From 97b9f9c5d09d0ee43bb527e51801d2771e9e68df Mon Sep 17 00:00:00 2001 From: Leila Wang Date: Fri, 1 Sep 2023 11:10:52 +0000 Subject: [PATCH 001/117] Initial vite project. --- .../boxes/private-token/.eslintrc.cjs | 18 + yarn-project/boxes/private-token/.gitignore | 24 + yarn-project/boxes/private-token/README.md | 27 + yarn-project/boxes/private-token/index.html | 13 + yarn-project/boxes/private-token/package.json | 28 + .../boxes/private-token/public/vite.svg | 1 + yarn-project/boxes/private-token/src/App.css | 42 ++ yarn-project/boxes/private-token/src/App.tsx | 35 ++ .../boxes/private-token/src/assets/react.svg | 1 + .../boxes/private-token/src/index.css | 69 +++ yarn-project/boxes/private-token/src/main.tsx | 10 + .../boxes/private-token/src/vite-env.d.ts | 1 + .../boxes/private-token/tsconfig.json | 25 + .../boxes/private-token/tsconfig.node.json | 10 + .../boxes/private-token/vite.config.ts | 7 + yarn-project/package.json | 1 + yarn-project/yarn.lock | 569 +++++++++++++++++- 17 files changed, 879 insertions(+), 2 deletions(-) create mode 100644 yarn-project/boxes/private-token/.eslintrc.cjs create mode 100644 yarn-project/boxes/private-token/.gitignore create mode 100644 yarn-project/boxes/private-token/README.md create mode 100644 yarn-project/boxes/private-token/index.html create mode 100644 yarn-project/boxes/private-token/package.json create mode 100644 yarn-project/boxes/private-token/public/vite.svg create mode 100644 yarn-project/boxes/private-token/src/App.css create mode 100644 yarn-project/boxes/private-token/src/App.tsx create mode 100644 yarn-project/boxes/private-token/src/assets/react.svg create mode 100644 yarn-project/boxes/private-token/src/index.css create mode 100644 yarn-project/boxes/private-token/src/main.tsx create mode 100644 yarn-project/boxes/private-token/src/vite-env.d.ts create mode 100644 yarn-project/boxes/private-token/tsconfig.json create mode 100644 yarn-project/boxes/private-token/tsconfig.node.json create mode 100644 yarn-project/boxes/private-token/vite.config.ts diff --git a/yarn-project/boxes/private-token/.eslintrc.cjs b/yarn-project/boxes/private-token/.eslintrc.cjs new file mode 100644 index 00000000000..d6c95379530 --- /dev/null +++ b/yarn-project/boxes/private-token/.eslintrc.cjs @@ -0,0 +1,18 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + ignorePatterns: ['dist', '.eslintrc.cjs'], + parser: '@typescript-eslint/parser', + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, +} diff --git a/yarn-project/boxes/private-token/.gitignore b/yarn-project/boxes/private-token/.gitignore new file mode 100644 index 00000000000..a547bf36d8d --- /dev/null +++ b/yarn-project/boxes/private-token/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/yarn-project/boxes/private-token/README.md b/yarn-project/boxes/private-token/README.md new file mode 100644 index 00000000000..1ebe379f5f4 --- /dev/null +++ b/yarn-project/boxes/private-token/README.md @@ -0,0 +1,27 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + project: ['./tsconfig.json', './tsconfig.node.json'], + tsconfigRootDir: __dirname, + }, +``` + +- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` +- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list diff --git a/yarn-project/boxes/private-token/index.html b/yarn-project/boxes/private-token/index.html new file mode 100644 index 00000000000..e4b78eae123 --- /dev/null +++ b/yarn-project/boxes/private-token/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/yarn-project/boxes/private-token/package.json b/yarn-project/boxes/private-token/package.json new file mode 100644 index 00000000000..60b7d8fd17a --- /dev/null +++ b/yarn-project/boxes/private-token/package.json @@ -0,0 +1,28 @@ +{ + "name": "private-token", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", + "@vitejs/plugin-react": "^4.0.3", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "typescript": "^5.0.2", + "vite": "^4.4.5" + } +} diff --git a/yarn-project/boxes/private-token/public/vite.svg b/yarn-project/boxes/private-token/public/vite.svg new file mode 100644 index 00000000000..e7b8dfb1b2a --- /dev/null +++ b/yarn-project/boxes/private-token/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/yarn-project/boxes/private-token/src/App.css b/yarn-project/boxes/private-token/src/App.css new file mode 100644 index 00000000000..b9d355df2a5 --- /dev/null +++ b/yarn-project/boxes/private-token/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/yarn-project/boxes/private-token/src/App.tsx b/yarn-project/boxes/private-token/src/App.tsx new file mode 100644 index 00000000000..afe48ac7501 --- /dev/null +++ b/yarn-project/boxes/private-token/src/App.tsx @@ -0,0 +1,35 @@ +import { useState } from 'react' +import reactLogo from './assets/react.svg' +import viteLogo from '/vite.svg' +import './App.css' + +function App() { + const [count, setCount] = useState(0) + + return ( + <> +
+ + Vite logo + + + React logo + +
+

Vite + React

+
+ +

+ Edit src/App.tsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ) +} + +export default App diff --git a/yarn-project/boxes/private-token/src/assets/react.svg b/yarn-project/boxes/private-token/src/assets/react.svg new file mode 100644 index 00000000000..6c87de9bb33 --- /dev/null +++ b/yarn-project/boxes/private-token/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/yarn-project/boxes/private-token/src/index.css b/yarn-project/boxes/private-token/src/index.css new file mode 100644 index 00000000000..2c3fac689c7 --- /dev/null +++ b/yarn-project/boxes/private-token/src/index.css @@ -0,0 +1,69 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/yarn-project/boxes/private-token/src/main.tsx b/yarn-project/boxes/private-token/src/main.tsx new file mode 100644 index 00000000000..3d7150da80e --- /dev/null +++ b/yarn-project/boxes/private-token/src/main.tsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.tsx' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/yarn-project/boxes/private-token/src/vite-env.d.ts b/yarn-project/boxes/private-token/src/vite-env.d.ts new file mode 100644 index 00000000000..11f02fe2a00 --- /dev/null +++ b/yarn-project/boxes/private-token/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/yarn-project/boxes/private-token/tsconfig.json b/yarn-project/boxes/private-token/tsconfig.json new file mode 100644 index 00000000000..a7fc6fbf23d --- /dev/null +++ b/yarn-project/boxes/private-token/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/yarn-project/boxes/private-token/tsconfig.node.json b/yarn-project/boxes/private-token/tsconfig.node.json new file mode 100644 index 00000000000..42872c59f5b --- /dev/null +++ b/yarn-project/boxes/private-token/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/yarn-project/boxes/private-token/vite.config.ts b/yarn-project/boxes/private-token/vite.config.ts new file mode 100644 index 00000000000..5a33944a9b4 --- /dev/null +++ b/yarn-project/boxes/private-token/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}) diff --git a/yarn-project/package.json b/yarn-project/package.json index ed867d96a2b..7e591c01472 100644 --- a/yarn-project/package.json +++ b/yarn-project/package.json @@ -35,6 +35,7 @@ "l1-artifacts", "p2p", "p2p-bootstrap", + "boxes/private-token", "prover-client", "rollup-provider", "aztec-node", diff --git a/yarn-project/yarn.lock b/yarn-project/yarn.lock index 9ce39dfd1b4..6c7ba66fbb3 100644 --- a/yarn-project/yarn.lock +++ b/yarn-project/yarn.lock @@ -787,6 +787,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.22.10": + version: 7.22.13 + resolution: "@babel/code-frame@npm:7.22.13" + dependencies: + "@babel/highlight": ^7.22.13 + chalk: ^2.4.2 + checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.22.9": version: 7.22.9 resolution: "@babel/compat-data@npm:7.22.9" @@ -817,6 +827,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.22.9": + version: 7.22.11 + resolution: "@babel/core@npm:7.22.11" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.22.10 + "@babel/generator": ^7.22.10 + "@babel/helper-compilation-targets": ^7.22.10 + "@babel/helper-module-transforms": ^7.22.9 + "@babel/helpers": ^7.22.11 + "@babel/parser": ^7.22.11 + "@babel/template": ^7.22.5 + "@babel/traverse": ^7.22.11 + "@babel/types": ^7.22.11 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: f258b2539ea2e5bfe55a708c2f3e1093a1b4744f12becc35abeb896037b66210de9a8ad6296a706046d5dc3a24e564362b73a9b814e5bfe500c8baab60c22d2e + languageName: node + linkType: hard + "@babel/generator@npm:7.17.7": version: 7.17.7 resolution: "@babel/generator@npm:7.17.7" @@ -840,6 +873,31 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/generator@npm:7.22.10" + dependencies: + "@babel/types": ^7.22.10 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 59a79730abdff9070692834bd3af179e7a9413fa2ff7f83dff3eb888765aeaeb2bfc7b0238a49613ed56e1af05956eff303cc139f2407eda8df974813e486074 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/helper-compilation-targets@npm:7.22.10" + dependencies: + "@babel/compat-data": ^7.22.9 + "@babel/helper-validator-option": ^7.22.5 + browserslist: ^4.21.9 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: f6f1896816392bcff671bbe6e277307729aee53befb4a66ea126e2a91eda78d819a70d06fa384c74ef46c1595544b94dca50bef6c78438d9ffd31776dafbd435 + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.22.9": version: 7.22.9 resolution: "@babel/helper-compilation-targets@npm:7.22.9" @@ -951,6 +1009,17 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/helpers@npm:7.22.11" + dependencies: + "@babel/template": ^7.22.5 + "@babel/traverse": ^7.22.11 + "@babel/types": ^7.22.11 + checksum: 93186544228b5e371486466ec3b86a77cce91beeff24a5670ca8ec46d50328f7700dab82d532351286e9d68624dc51d6d71589b051dd9535e44be077a43ec013 + languageName: node + linkType: hard + "@babel/helpers@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helpers@npm:7.22.6" @@ -962,6 +1031,17 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.22.13": + version: 7.22.13 + resolution: "@babel/highlight@npm:7.22.13" + dependencies: + "@babel/helper-validator-identifier": ^7.22.5 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: 7266d2bff8aa8fc78eb65b6e92a8211e12897a731126a282d2f9bb50d8fcaa4c1b02af2284f990ac7e3ab8d892d448a2cab8f5ed0ea8a90bce2c025b11ebe802 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.22.5": version: 7.22.5 resolution: "@babel/highlight@npm:7.22.5" @@ -982,6 +1062,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.22.11": + version: 7.22.14 + resolution: "@babel/parser@npm:7.22.14" + bin: + parser: ./bin/babel-parser.js + checksum: a2293971f0889726a3d5a35fcceedc71d2fa4c8d97f438fc348fe0cf7e739affc6e2665e4c6ddd4900714772e19bfd5d6feb967ca1f623b894c0099ecb148b52 + languageName: node + linkType: hard + "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -1136,6 +1225,28 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx-self@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 671eebfabd14a0c7d6ae805fff7e289dfdb7ba984bb100ea2ef6dad1d6a665ebbb09199ab2e64fca7bc78bd0fdc80ca897b07996cf215fafc32c67bc564309af + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4ca2bd62ca14f8bbdcda9139f3f799e1c1c1bae504b67c1ca9bca142c53d81926d1a2b811f66a625f20999b2d352131053d886601f1ba3c1e9378c104d884277 + languageName: node + linkType: hard + "@babel/runtime@npm:^7.21.0": version: 7.22.6 resolution: "@babel/runtime@npm:7.22.6" @@ -1174,6 +1285,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/traverse@npm:7.22.11" + dependencies: + "@babel/code-frame": ^7.22.10 + "@babel/generator": ^7.22.10 + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-function-name": ^7.22.5 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.22.11 + "@babel/types": ^7.22.11 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 4ad62d548ca8b95dbf45bae16cc167428f174f3c837d55a5878b1f17bdbc8b384d6df741dc7c461b62c04d881cf25644d3ab885909ba46e3ac43224e2b15b504 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.22.6, @babel/traverse@npm:^7.22.8": version: 7.22.8 resolution: "@babel/traverse@npm:7.22.8" @@ -1213,6 +1342,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.22.10, @babel/types@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/types@npm:7.22.11" + dependencies: + "@babel/helper-string-parser": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.5 + to-fast-properties: ^2.0.0 + checksum: 431a6446896adb62c876d0fe75263835735d3c974aae05356a87eb55f087c20a777028cf08eadcace7993e058bbafe3b21ce2119363222c6cef9eedd7a204810 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -1516,6 +1656,30 @@ __metadata: languageName: node linkType: hard +"@eslint/eslintrc@npm:^2.1.2": + version: 2.1.2 + resolution: "@eslint/eslintrc@npm:2.1.2" + dependencies: + ajv: ^6.12.4 + debug: ^4.3.2 + espree: ^9.6.0 + globals: ^13.19.0 + ignore: ^5.2.0 + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 + strip-json-comments: ^3.1.1 + checksum: bc742a1e3b361f06fedb4afb6bf32cbd27171292ef7924f61c62f2aed73048367bcc7ac68f98c06d4245cd3fabc43270f844e3c1699936d4734b3ac5398814a7 + languageName: node + linkType: hard + +"@eslint/js@npm:8.48.0": + version: 8.48.0 + resolution: "@eslint/js@npm:8.48.0" + checksum: b2755f9c0ee810c886eba3c50dcacb184ba5a5cd1cbc01988ee506ad7340653cae0bd55f1d95c64b56dfc6d25c2caa7825335ffd2c50165bae9996fe0f396851 + languageName: node + linkType: hard + "@eslint/js@npm:^8.46.0": version: 8.46.0 resolution: "@eslint/js@npm:8.46.0" @@ -3376,6 +3540,13 @@ __metadata: languageName: node linkType: hard +"@types/prop-types@npm:*": + version: 15.7.5 + resolution: "@types/prop-types@npm:15.7.5" + checksum: 5b43b8b15415e1f298243165f1d44390403bb2bd42e662bca3b5b5633fdd39c938e91b7fce3a9483699db0f7a715d08cef220c121f723a634972fdf596aec980 + languageName: node + linkType: hard + "@types/qs@npm:*": version: 6.9.7 resolution: "@types/qs@npm:6.9.7" @@ -3390,6 +3561,26 @@ __metadata: languageName: node linkType: hard +"@types/react-dom@npm:^18.2.7": + version: 18.2.7 + resolution: "@types/react-dom@npm:18.2.7" + dependencies: + "@types/react": "*" + checksum: e02ea908289a7ad26053308248d2b87f6aeafd73d0e2de2a3d435947bcea0422599016ffd1c3e38ff36c42f5e1c87c7417f05b0a157e48649e4a02f21727d54f + languageName: node + linkType: hard + +"@types/react@npm:*, @types/react@npm:^18.2.15": + version: 18.2.21 + resolution: "@types/react@npm:18.2.21" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: ffed203bfe7aad772b8286f7953305c9181ac3a8f27d3f5400fbbc2a8e27ca8e5bbff818ee014f39ca0d19d2b3bb154e5bdbec7e232c6f80b59069375aa78349 + languageName: node + linkType: hard + "@types/retry@npm:0.12.1": version: 0.12.1 resolution: "@types/retry@npm:0.12.1" @@ -3397,6 +3588,13 @@ __metadata: languageName: node linkType: hard +"@types/scheduler@npm:*": + version: 0.16.3 + resolution: "@types/scheduler@npm:0.16.3" + checksum: 2b0aec39c24268e3ce938c5db2f2e77f5c3dd280e05c262d9c2fe7d890929e4632a6b8e94334017b66b45e4f92a5aa42ba3356640c2a1175fa37bef2f5200767 + languageName: node + linkType: hard + "@types/semver@npm:^7.5.0": version: 7.5.0 resolution: "@types/semver@npm:7.5.0" @@ -3517,6 +3715,31 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/eslint-plugin@npm:^6.0.0": + version: 6.5.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.5.0" + dependencies: + "@eslint-community/regexpp": ^4.5.1 + "@typescript-eslint/scope-manager": 6.5.0 + "@typescript-eslint/type-utils": 6.5.0 + "@typescript-eslint/utils": 6.5.0 + "@typescript-eslint/visitor-keys": 6.5.0 + debug: ^4.3.4 + graphemer: ^1.4.0 + ignore: ^5.2.4 + natural-compare: ^1.4.0 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependencies: + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: d81525c9a081186ec1ae7d957972065d50bae8fe4b3de111e573adc7267bb830baaec8f1ae47d3b937984ac34324bacc3951868b7986d4f9974bbe480f2261c0 + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^6.2.1": version: 6.2.1 resolution: "@typescript-eslint/eslint-plugin@npm:6.2.1" @@ -3543,6 +3766,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/parser@npm:^6.0.0": + version: 6.5.0 + resolution: "@typescript-eslint/parser@npm:6.5.0" + dependencies: + "@typescript-eslint/scope-manager": 6.5.0 + "@typescript-eslint/types": 6.5.0 + "@typescript-eslint/typescript-estree": 6.5.0 + "@typescript-eslint/visitor-keys": 6.5.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: e9a70886ec2660aee5c77cdff67ba11651eb855b7ecd3ad1e70837fce997d6e6db9dfe1e1eab46a9b2147cbc034ae9c109951f3bc24ce54e78cae669b6bc9c95 + languageName: node + linkType: hard + "@typescript-eslint/parser@npm:^6.2.1": version: 6.2.1 resolution: "@typescript-eslint/parser@npm:6.2.1" @@ -3571,6 +3812,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:6.5.0": + version: 6.5.0 + resolution: "@typescript-eslint/scope-manager@npm:6.5.0" + dependencies: + "@typescript-eslint/types": 6.5.0 + "@typescript-eslint/visitor-keys": 6.5.0 + checksum: 30d78143f68e07d6bd15a147f64cc16830f8a8c8409b37aa7c7d205d7585f3648ec1c5365b3f177b7561971b407f773f6dba83b3b78fa63091045f2d6bbc6b9f + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:6.2.1": version: 6.2.1 resolution: "@typescript-eslint/type-utils@npm:6.2.1" @@ -3588,6 +3839,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/type-utils@npm:6.5.0": + version: 6.5.0 + resolution: "@typescript-eslint/type-utils@npm:6.5.0" + dependencies: + "@typescript-eslint/typescript-estree": 6.5.0 + "@typescript-eslint/utils": 6.5.0 + debug: ^4.3.4 + ts-api-utils: ^1.0.1 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 80b9e5099f5bdb05348ea8664c0a5084efc851de43ef6c1997041e1f07e9cc34ac874cc9e8afb317c887513d657e2583ad360e3d57feaab775bde0acc1807982 + languageName: node + linkType: hard + "@typescript-eslint/types@npm:6.2.1": version: 6.2.1 resolution: "@typescript-eslint/types@npm:6.2.1" @@ -3595,6 +3863,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:6.5.0": + version: 6.5.0 + resolution: "@typescript-eslint/types@npm:6.5.0" + checksum: 950ec16991d71494d10cb752535bbc4395295e3f03a716d53ec55bbb0aaff487aa774cc5002f775ffcc80b9f0e16ac53ecebf7cac1444ca4f7a847b0859ffbfb + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:6.2.1": version: 6.2.1 resolution: "@typescript-eslint/typescript-estree@npm:6.2.1" @@ -3613,6 +3888,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:6.5.0": + version: 6.5.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.5.0" + dependencies: + "@typescript-eslint/types": 6.5.0 + "@typescript-eslint/visitor-keys": 6.5.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependenciesMeta: + typescript: + optional: true + checksum: 05717fa1f2609fa5669803191cf309a379c815aaf4fff6850f40560eec8749759c36b288f05cecffd5c1d0be8de1fe414ecfee6ecf99b6ae521baa48c8b58455 + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:6.2.1": version: 6.2.1 resolution: "@typescript-eslint/utils@npm:6.2.1" @@ -3630,6 +3923,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:6.5.0": + version: 6.5.0 + resolution: "@typescript-eslint/utils@npm:6.5.0" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@types/json-schema": ^7.0.12 + "@types/semver": ^7.5.0 + "@typescript-eslint/scope-manager": 6.5.0 + "@typescript-eslint/types": 6.5.0 + "@typescript-eslint/typescript-estree": 6.5.0 + semver: ^7.5.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: 58a82213c8a7bac97a6538b9845c1de5c5692fbf72548f95ed5e044a222608590bcafbb9eacba92a8c4e9eb3e5d0a2fd553eae0d6694ed2d6152aed4dabf9480 + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:6.2.1": version: 6.2.1 resolution: "@typescript-eslint/visitor-keys@npm:6.2.1" @@ -3640,6 +3950,30 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:6.5.0": + version: 6.5.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.5.0" + dependencies: + "@typescript-eslint/types": 6.5.0 + eslint-visitor-keys: ^3.4.1 + checksum: 768a02dd0d8aae45708646bb0c51e67da09e71dc101bb0a0e55d7e0c8eadfea2f531acd3035d1ec34bf2380b66188f3fc47c6bef0201eae36b2dcc48d1934442 + languageName: node + linkType: hard + +"@vitejs/plugin-react@npm:^4.0.3": + version: 4.0.4 + resolution: "@vitejs/plugin-react@npm:4.0.4" + dependencies: + "@babel/core": ^7.22.9 + "@babel/plugin-transform-react-jsx-self": ^7.22.5 + "@babel/plugin-transform-react-jsx-source": ^7.22.5 + react-refresh: ^0.14.0 + peerDependencies: + vite: ^4.2.0 + checksum: ec25400dc7c5fce914122d1f57de0fbaff9216addb8cd6187308ad2c7a3d3b73ea3a6f2dd0a8c7ec5e90e56b37046fe90d3e0ec285a9446e73695cb174377f84 + languageName: node + linkType: hard + "@wagmi/chains@npm:1.6.0": version: 1.6.0 resolution: "@wagmi/chains@npm:1.6.0" @@ -4712,7 +5046,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0": +"chalk@npm:^2.0.0, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -5245,6 +5579,13 @@ __metadata: languageName: node linkType: hard +"csstype@npm:^3.0.2": + version: 3.1.2 + resolution: "csstype@npm:3.1.2" + checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 + languageName: node + linkType: hard + "data-uri-to-buffer@npm:^5.0.1": version: 5.0.1 resolution: "data-uri-to-buffer@npm:5.0.1" @@ -6041,6 +6382,24 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react-hooks@npm:^4.6.0": + version: 4.6.0 + resolution: "eslint-plugin-react-hooks@npm:4.6.0" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: 23001801f14c1d16bf0a837ca7970d9dd94e7b560384b41db378b49b6e32dc43d6e2790de1bd737a652a86f81a08d6a91f402525061b47719328f586a57e86c3 + languageName: node + linkType: hard + +"eslint-plugin-react-refresh@npm:^0.4.3": + version: 0.4.3 + resolution: "eslint-plugin-react-refresh@npm:0.4.3" + peerDependencies: + eslint: ">=7" + checksum: 0332c950bb46c3058fd06acb1dbdc3ea0af05238645f4c0f575e0e367440dc56afb928f855833d321b9e8109e08c63d5f476cc55d507f883a80c289bfcd509cb + languageName: node + linkType: hard + "eslint-plugin-tsdoc@npm:^0.2.17": version: 0.2.17 resolution: "eslint-plugin-tsdoc@npm:0.2.17" @@ -6078,6 +6437,13 @@ __metadata: languageName: node linkType: hard +"eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 + languageName: node + linkType: hard + "eslint@npm:^8.21.0, eslint@npm:^8.35.0, eslint@npm:^8.37.0": version: 8.46.0 resolution: "eslint@npm:8.46.0" @@ -6125,6 +6491,53 @@ __metadata: languageName: node linkType: hard +"eslint@npm:^8.45.0": + version: 8.48.0 + resolution: "eslint@npm:8.48.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.2 + "@eslint/js": 8.48.0 + "@humanwhocodes/config-array": ^0.11.10 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + ajv: ^6.12.4 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 + esquery: ^1.4.2 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + graphemer: ^1.4.0 + ignore: ^5.2.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.3 + strip-ansi: ^6.0.1 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: f20b359a4f8123fec5c033577368cc020d42978b1b45303974acd8da7a27063168ee3fe297ab5b35327162f6a93154063e3ce6577102f70f9809aff793db9bd0 + languageName: node + linkType: hard + "espree@npm:^9.6.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" @@ -8417,7 +8830,7 @@ __metadata: languageName: node linkType: hard -"js-tokens@npm:^4.0.0": +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 @@ -9022,6 +9435,17 @@ __metadata: languageName: node linkType: hard +"loose-envify@npm:^1.1.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -10173,6 +10597,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.27": + version: 8.4.29 + resolution: "postcss@npm:8.4.29" + dependencies: + nanoid: ^3.3.6 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: dd6daa25e781db9ae5b651d9b7bfde0ec6e60e86a37da69a18eb4773d5ddd51e28fc4ff054fbdc04636a31462e6bf09a1e50986f69ac52b10d46b7457cd36d12 + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -10212,6 +10647,25 @@ __metadata: languageName: node linkType: hard +"private-token@workspace:boxes/private-token": + version: 0.0.0-use.local + resolution: "private-token@workspace:boxes/private-token" + dependencies: + "@types/react": ^18.2.15 + "@types/react-dom": ^18.2.7 + "@typescript-eslint/eslint-plugin": ^6.0.0 + "@typescript-eslint/parser": ^6.0.0 + "@vitejs/plugin-react": ^4.0.3 + eslint: ^8.45.0 + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-refresh: ^0.4.3 + react: ^18.2.0 + react-dom: ^18.2.0 + typescript: ^5.0.2 + vite: ^4.4.5 + languageName: unknown + linkType: soft + "process@npm:^0.11.10": version: 0.11.10 resolution: "process@npm:0.11.10" @@ -10489,6 +10943,18 @@ __metadata: languageName: node linkType: hard +"react-dom@npm:^18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + scheduler: ^0.23.0 + peerDependencies: + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + languageName: node + linkType: hard + "react-is@npm:^18.0.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" @@ -10496,6 +10962,22 @@ __metadata: languageName: node linkType: hard +"react-refresh@npm:^0.14.0": + version: 0.14.0 + resolution: "react-refresh@npm:0.14.0" + checksum: dc69fa8c993df512f42dd0f1b604978ae89bd747c0ed5ec595c0cc50d535fb2696619ccd98ae28775cc01d0a7c146a532f0f7fb81dc22e1977c242a4912312f4 + languageName: node + linkType: hard + +"react@npm:^18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + languageName: node + linkType: hard + "read-pkg-up@npm:^7.0.1": version: 7.0.1 resolution: "read-pkg-up@npm:7.0.1" @@ -10750,6 +11232,20 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^3.27.1": + version: 3.28.1 + resolution: "rollup@npm:3.28.1" + dependencies: + fsevents: ~2.3.2 + dependenciesMeta: + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 1fcab0929c16130218447c76c19b56ccc0e677110552462297e3679188fc70185a6ec418cef8ce138ec9fb78fd5188537a3f5d28762788e8c88b12a7fb8ba0fb + languageName: node + linkType: hard + "run-applescript@npm:^5.0.0": version: 5.0.0 resolution: "run-applescript@npm:5.0.0" @@ -10837,6 +11333,15 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" + dependencies: + loose-envify: ^1.1.0 + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + languageName: node + linkType: hard + "schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": version: 3.3.0 resolution: "schema-utils@npm:3.3.0" @@ -11967,6 +12472,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:^5.0.2": + version: 5.2.2 + resolution: "typescript@npm:5.2.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 7912821dac4d962d315c36800fe387cdc0a6298dba7ec171b350b4a6e988b51d7b8f051317786db1094bd7431d526b648aba7da8236607febb26cf5b871d2d3c + languageName: node + linkType: hard + "typescript@npm:^5.0.4": version: 5.1.6 resolution: "typescript@npm:5.1.6" @@ -11977,6 +12492,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@^5.0.2#~builtin": + version: 5.2.2 + resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=1f5320" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 07106822b4305de3f22835cbba949a2b35451cad50888759b6818421290ff95d522b38ef7919e70fb381c5fe9c1c643d7dea22c8b31652a717ddbd57b7f4d554 + languageName: node + linkType: hard + "typescript@patch:typescript@^5.0.4#~builtin": version: 5.1.6 resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=1f5320" @@ -12296,6 +12821,46 @@ __metadata: languageName: node linkType: hard +"vite@npm:^4.4.5": + version: 4.4.9 + resolution: "vite@npm:4.4.9" + dependencies: + esbuild: ^0.18.10 + fsevents: ~2.3.2 + postcss: ^8.4.27 + rollup: ^3.27.1 + peerDependencies: + "@types/node": ">= 14" + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: c511024ceae39c68c7dbf2ac4381ee655cd7bb62cf43867a14798bc835d3320b8fa7867a336143c30825c191c1fb4e9aa3348fce831ab617e96203080d3d2908 + languageName: node + linkType: hard + "vscode-oniguruma@npm:^1.7.0": version: 1.7.0 resolution: "vscode-oniguruma@npm:1.7.0" From c75d38b35667233a26e11a0589fe53432cf7541a Mon Sep 17 00:00:00 2001 From: Leila Wang Date: Sat, 2 Sep 2023 18:34:27 +0000 Subject: [PATCH 002/117] Webpack build. --- .../boxes/private-token/.eslintrc.cjs | 51 +- yarn-project/boxes/private-token/index.html | 13 - yarn-project/boxes/private-token/package.json | 54 +- .../boxes/private-token/src/.prettierrc.json | 6 + .../boxes/private-token/src/@types/index.d.ts | 4 + yarn-project/boxes/private-token/src/App.css | 42 - yarn-project/boxes/private-token/src/App.tsx | 35 - .../boxes/private-token/src/app/index.html | 14 + .../boxes/private-token/src/app/index.tsx | 16 + .../private-token/src/assets/favicon.ico | Bin 0 -> 4286 bytes .../boxes/private-token/src/assets/react.svg | 1 - .../boxes/private-token/src/index.css | 69 - yarn-project/boxes/private-token/src/main.tsx | 10 - .../boxes/private-token/src/vite-env.d.ts | 1 - .../boxes/private-token/tsconfig.dest.json | 12 + .../boxes/private-token/tsconfig.json | 47 +- .../boxes/private-token/tsconfig.node.json | 10 - .../boxes/private-token/vite.config.ts | 7 - .../boxes/private-token/webpack.config.js | 95 + yarn-project/yarn.lock | 3584 +++++++++++++++-- 20 files changed, 3576 insertions(+), 495 deletions(-) delete mode 100644 yarn-project/boxes/private-token/index.html create mode 100644 yarn-project/boxes/private-token/src/.prettierrc.json create mode 100644 yarn-project/boxes/private-token/src/@types/index.d.ts delete mode 100644 yarn-project/boxes/private-token/src/App.css delete mode 100644 yarn-project/boxes/private-token/src/App.tsx create mode 100644 yarn-project/boxes/private-token/src/app/index.html create mode 100644 yarn-project/boxes/private-token/src/app/index.tsx create mode 100644 yarn-project/boxes/private-token/src/assets/favicon.ico delete mode 100644 yarn-project/boxes/private-token/src/assets/react.svg delete mode 100644 yarn-project/boxes/private-token/src/index.css delete mode 100644 yarn-project/boxes/private-token/src/main.tsx delete mode 100644 yarn-project/boxes/private-token/src/vite-env.d.ts create mode 100644 yarn-project/boxes/private-token/tsconfig.dest.json delete mode 100644 yarn-project/boxes/private-token/tsconfig.node.json delete mode 100644 yarn-project/boxes/private-token/vite.config.ts create mode 100644 yarn-project/boxes/private-token/webpack.config.js diff --git a/yarn-project/boxes/private-token/.eslintrc.cjs b/yarn-project/boxes/private-token/.eslintrc.cjs index d6c95379530..93359038995 100644 --- a/yarn-project/boxes/private-token/.eslintrc.cjs +++ b/yarn-project/boxes/private-token/.eslintrc.cjs @@ -5,14 +5,57 @@ module.exports = { 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:react-hooks/recommended', + 'plugin:import/recommended', + 'plugin:import/typescript', + 'prettier', ], + settings: { + 'import/resolver': { + typescript: true, + node: true, + }, + }, ignorePatterns: ['dist', '.eslintrc.cjs'], parser: '@typescript-eslint/parser', plugins: ['react-refresh'], + overrides: [ + { + files: ['*.ts', '*.tsx'], + parserOptions: { + // hacky workaround for CI not having the same tsconfig setup + project: true, + }, + }, + ], rules: { - 'react-refresh/only-export-components': [ - 'warn', - { allowConstantExport: true }, + 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }], + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/await-thenable': 'error', + '@typescript-eslint/no-floating-promises': 2, + '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }], + 'require-await': 2, + 'no-console': 'warn', + 'no-constant-condition': 'off', + camelcase: 2, + 'no-restricted-imports': [ + 'error', + { + patterns: [ + { + group: ['client-dest'], + message: "Fix this absolute garbage import. It's your duty to solve it before it spreads.", + }, + { + group: ['dest'], + message: 'You should not be importing from a build directory. Did you accidentally do a relative import?', + }, + ], + }, ], + 'import/no-unresolved': 'error', + 'import/no-extraneous-dependencies': 'error', }, -} +}; diff --git a/yarn-project/boxes/private-token/index.html b/yarn-project/boxes/private-token/index.html deleted file mode 100644 index e4b78eae123..00000000000 --- a/yarn-project/boxes/private-token/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Vite + React + TS - - -
- - - diff --git a/yarn-project/boxes/private-token/package.json b/yarn-project/boxes/private-token/package.json index 60b7d8fd17a..5e33e0e8ce0 100644 --- a/yarn-project/boxes/private-token/package.json +++ b/yarn-project/boxes/private-token/package.json @@ -4,25 +4,63 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "vite", - "build": "tsc && vite build", - "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview" + "build": "yarn clean && webpack", + "clean": "rm -rf ./dest .tsbuildinfo", + "start": "serve -p 8080 ./dest", + "start:dev": "webpack serve --mode=development", + "start:remote": "/bin/bash -c \"$(curl -fsSL 'https://up-dev.aztec.network')\"", + "formatting": "prettier --check ./src && eslint ./src", + "formatting:fix": "prettier -w ./src" }, "dependencies": { + "@aztec/aztec.js": "workspace:^", + "@aztec/cli": "workspace:^", + "@aztec/foundation": "workspace:^", + "@aztec/noir-compiler": "workspace:^", + "@aztec/noir-contracts": "workspace:^", + "@aztec/types": "workspace:^", + "formik": "^2.4.3", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "styled-components": "^6.0.7", + "styled-reset": "^4.5.1", + "tailwindcss": "^3.3.3", + "yup": "^1.2.0" }, "devDependencies": { + "@svgr/webpack": "^8.1.0", "@types/react": "^18.2.15", "@types/react-dom": "^18.2.7", + "@types/styled-components": "^5.1.26", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", - "@vitejs/plugin-react": "^4.0.3", + "copy-webpack-plugin": "^11.0.0", "eslint": "^8.45.0", + "eslint-import-resolver-typescript": "^3.5.5", + "eslint-plugin-import": "^2.27.5", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.3", - "typescript": "^5.0.2", - "vite": "^4.4.5" + "prettier": "^3.0.3", + "resolve-typescript-plugin": "^2.0.1", + "ts-jest": "^29.1.0", + "ts-loader": "^9.4.4", + "ts-node": "^10.9.1", + "typescript": "^5.0.4", + "util": "^0.12.5", + "webpack": "^5.88.2", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] } } diff --git a/yarn-project/boxes/private-token/src/.prettierrc.json b/yarn-project/boxes/private-token/src/.prettierrc.json new file mode 100644 index 00000000000..7c3bbec6848 --- /dev/null +++ b/yarn-project/boxes/private-token/src/.prettierrc.json @@ -0,0 +1,6 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "printWidth": 120, + "arrowParens": "avoid" +} diff --git a/yarn-project/boxes/private-token/src/@types/index.d.ts b/yarn-project/boxes/private-token/src/@types/index.d.ts new file mode 100644 index 00000000000..091d25e2101 --- /dev/null +++ b/yarn-project/boxes/private-token/src/@types/index.d.ts @@ -0,0 +1,4 @@ +declare module '*.svg' { + const content: any; + export default content; +} diff --git a/yarn-project/boxes/private-token/src/App.css b/yarn-project/boxes/private-token/src/App.css deleted file mode 100644 index b9d355df2a5..00000000000 --- a/yarn-project/boxes/private-token/src/App.css +++ /dev/null @@ -1,42 +0,0 @@ -#root { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - -.logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: filter 300ms; -} -.logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); -} -.logo.react:hover { - filter: drop-shadow(0 0 2em #61dafbaa); -} - -@keyframes logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -@media (prefers-reduced-motion: no-preference) { - a:nth-of-type(2) .logo { - animation: logo-spin infinite 20s linear; - } -} - -.card { - padding: 2em; -} - -.read-the-docs { - color: #888; -} diff --git a/yarn-project/boxes/private-token/src/App.tsx b/yarn-project/boxes/private-token/src/App.tsx deleted file mode 100644 index afe48ac7501..00000000000 --- a/yarn-project/boxes/private-token/src/App.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' -import './App.css' - -function App() { - const [count, setCount] = useState(0) - - return ( - <> - -

Vite + React

-
- -

- Edit src/App.tsx and save to test HMR -

-
-

- Click on the Vite and React logos to learn more -

- - ) -} - -export default App diff --git a/yarn-project/boxes/private-token/src/app/index.html b/yarn-project/boxes/private-token/src/app/index.html new file mode 100644 index 00000000000..c3f84962100 --- /dev/null +++ b/yarn-project/boxes/private-token/src/app/index.html @@ -0,0 +1,14 @@ + + + + + + + + Private Token Noir Contract + + +
+ + + diff --git a/yarn-project/boxes/private-token/src/app/index.tsx b/yarn-project/boxes/private-token/src/app/index.tsx new file mode 100644 index 00000000000..59365a1b1a4 --- /dev/null +++ b/yarn-project/boxes/private-token/src/app/index.tsx @@ -0,0 +1,16 @@ +import * as React from 'react'; +import * as ReactDOM from 'react-dom/client'; +import { Reset } from 'styled-reset'; +// import Home from './page.js'; +import { L2Tx } from '@aztec/types'; +import { TxHash } from '@aztec/aztec.js'; + +const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement); +root.render( + + + {/* */} + {L2Tx.random().blockHash.toString()} + {TxHash.ZERO.toString()} + , +); diff --git a/yarn-project/boxes/private-token/src/assets/favicon.ico b/yarn-project/boxes/private-token/src/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1c85cef482e601f1fe5e291df4e97a3aef958676 GIT binary patch literal 4286 zcmcJRv2KGf5QdEy7&=g?Qb*#kQ<4XWRK_Ig17!$p1Hj$6IXcY0Os7Ar&J z%yag+Ws^k_r?_#M-5c9%UC6S@R*$ivC6tCK>`)p8*eCL99>hI?4eM(k#@MJ{C=FBC zp)^R?zBRb8eQA)eciHlb`s@pASjyqllTvo4*Jo>RW&6-Dmpw-Vv2(DikA8Cu z^uuy)E3Wvr5`~{C6m+4|1HBSaVqz)1=1Ki7{1dOc5Cq73Mdt zjz3BLeo31}lO57}vq`E$78gw#MRiidRa_+n&!U>=JmYh`hSzco$8rwN#W~yD%wQHX GiTwx67ZB?J literal 0 HcmV?d00001 diff --git a/yarn-project/boxes/private-token/src/assets/react.svg b/yarn-project/boxes/private-token/src/assets/react.svg deleted file mode 100644 index 6c87de9bb33..00000000000 --- a/yarn-project/boxes/private-token/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yarn-project/boxes/private-token/src/index.css b/yarn-project/boxes/private-token/src/index.css deleted file mode 100644 index 2c3fac689c7..00000000000 --- a/yarn-project/boxes/private-token/src/index.css +++ /dev/null @@ -1,69 +0,0 @@ -:root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} diff --git a/yarn-project/boxes/private-token/src/main.tsx b/yarn-project/boxes/private-token/src/main.tsx deleted file mode 100644 index 3d7150da80e..00000000000 --- a/yarn-project/boxes/private-token/src/main.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import App from './App.tsx' -import './index.css' - -ReactDOM.createRoot(document.getElementById('root')!).render( - - - , -) diff --git a/yarn-project/boxes/private-token/src/vite-env.d.ts b/yarn-project/boxes/private-token/src/vite-env.d.ts deleted file mode 100644 index 11f02fe2a00..00000000000 --- a/yarn-project/boxes/private-token/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/yarn-project/boxes/private-token/tsconfig.dest.json b/yarn-project/boxes/private-token/tsconfig.dest.json new file mode 100644 index 00000000000..a459c9926f6 --- /dev/null +++ b/yarn-project/boxes/private-token/tsconfig.dest.json @@ -0,0 +1,12 @@ +{ + "extends": ".", + "references": [ + { "path": "../../aztec.js" }, + { "path": "../../aztec-cli" }, + { "path": "../../foundation" }, + { "path": "../../noir-compiler" }, + { "path": "../../noir-contracts" }, + { "path": "../../types" } + ], + "exclude": ["src/**/*.test.ts"] +} diff --git a/yarn-project/boxes/private-token/tsconfig.json b/yarn-project/boxes/private-token/tsconfig.json index a7fc6fbf23d..c22c81126c9 100644 --- a/yarn-project/boxes/private-token/tsconfig.json +++ b/yarn-project/boxes/private-token/tsconfig.json @@ -1,25 +1,32 @@ { "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ + "rootDir": "src", + "outDir": "dest", + "tsBuildInfoFile": ".tsbuildinfo", + "target": "es2020", + "lib": ["esnext", "dom", "DOM.Iterable"], + "module": "NodeNext", + "moduleResolution": "NodeNext", "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true + "declaration": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "downlevelIteration": true, + "inlineSourceMap": true, + "declarationMap": true, + "importHelpers": true, + "resolveJsonModule": true, + "composite": true, + "skipLibCheck": true, + "jsx": "react-jsx" }, - "include": ["src"], - "references": [{ "path": "./tsconfig.node.json" }] + "include": ["src", "src/**/*.json"], + "references": [ + { "path": "../../aztec.js" }, + { "path": "../../aztec-cli" }, + { "path": "../../foundation" }, + { "path": "../../noir-compiler" }, + { "path": "../../noir-contracts" }, + { "path": "../../types" } + ] } diff --git a/yarn-project/boxes/private-token/tsconfig.node.json b/yarn-project/boxes/private-token/tsconfig.node.json deleted file mode 100644 index 42872c59f5b..00000000000 --- a/yarn-project/boxes/private-token/tsconfig.node.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/yarn-project/boxes/private-token/vite.config.ts b/yarn-project/boxes/private-token/vite.config.ts deleted file mode 100644 index 5a33944a9b4..00000000000 --- a/yarn-project/boxes/private-token/vite.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react' - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [react()], -}) diff --git a/yarn-project/boxes/private-token/webpack.config.js b/yarn-project/boxes/private-token/webpack.config.js new file mode 100644 index 00000000000..4b65bbe765b --- /dev/null +++ b/yarn-project/boxes/private-token/webpack.config.js @@ -0,0 +1,95 @@ +import CopyWebpackPlugin from 'copy-webpack-plugin'; +import { createRequire } from 'module'; +import { dirname, resolve } from 'path'; +import ResolveTypeScriptPlugin from 'resolve-typescript-plugin'; +import { fileURLToPath } from 'url'; +import webpack from 'webpack'; + +const require = createRequire(import.meta.url); + +export default (_, argv) => ({ + target: 'web', + mode: 'production', + devtool: false, + entry: { + main: './src/app/index.tsx', + }, + module: { + rules: [ + { + test: /\.tsx?$/, + use: [ + { + loader: 'ts-loader', + options: { + configFile: 'tsconfig.dest.json', + }, + }, + ], + }, + { + test: /\.svg$/, + use: ['@svgr/webpack'], + }, + ], + }, + output: { + path: resolve(dirname(fileURLToPath(import.meta.url)), './dest'), + filename: 'index.js', + }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify(argv.mode || 'production'), + }, + }), + new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'] }), + new CopyWebpackPlugin({ + patterns: [ + // { + // from: `${path.dirname(require.resolve(`@aztec/sdk`))}/aztec-connect.wasm`, + // to: 'aztec-connect.wasm', + // }, + // { + // from: `${path.dirname(require.resolve(`@aztec/sdk`))}/web_worker.js`, + // to: 'web_worker.js', + // }, + { + from: './src/assets', + }, + { + from: './src/app/index.html', + to: 'index.html', + }, + ], + }), + ], + resolve: { + plugins: [new ResolveTypeScriptPlugin()], + alias: { + // All node specific code, wherever it's located, should be imported as below. + // Provides a clean and simple way to always strip out the node code for the web build. + './node/index.js': false, + }, + fallback: { + crypto: false, + os: false, + fs: false, + path: false, + url: false, + worker_threads: false, + events: require.resolve('events/'), + buffer: require.resolve('buffer/'), + util: require.resolve('util/'), + stream: require.resolve('stream-browserify'), + string_decoder: require.resolve('string_decoder/'), + tty: require.resolve('tty-browserify'), + }, + }, + devServer: { + historyApiFallback: true, + client: { + overlay: false, + }, + }, +}); diff --git a/yarn-project/yarn.lock b/yarn-project/yarn.lock index 6c7ba66fbb3..9310833c521 100644 --- a/yarn-project/yarn.lock +++ b/yarn-project/yarn.lock @@ -47,6 +47,13 @@ __metadata: languageName: node linkType: hard +"@alloc/quick-lru@npm:^5.2.0": + version: 5.2.0 + resolution: "@alloc/quick-lru@npm:5.2.0" + checksum: bdc35758b552bcf045733ac047fb7f9a07c4678b944c641adfbd41f798b4b91fffd0fdc0df2578d9b0afc7b4d636aa6e110ead5d6281a2adc1ab90efd7f057f8 + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.2.0": version: 2.2.1 resolution: "@ampproject/remapping@npm:2.2.1" @@ -778,6 +785,33 @@ __metadata: languageName: unknown linkType: soft +"@babel/cli@npm:^7.21.0": + version: 7.22.10 + resolution: "@babel/cli@npm:7.22.10" + dependencies: + "@jridgewell/trace-mapping": ^0.3.17 + "@nicolo-ribaudo/chokidar-2": 2.1.8-no-fsevents.3 + chokidar: ^3.4.0 + commander: ^4.0.1 + convert-source-map: ^1.1.0 + fs-readdir-recursive: ^1.1.0 + glob: ^7.2.0 + make-dir: ^2.1.0 + slash: ^2.0.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + dependenciesMeta: + "@nicolo-ribaudo/chokidar-2": + optional: true + chokidar: + optional: true + bin: + babel: ./bin/babel.js + babel-external-helpers: ./bin/babel-external-helpers.js + checksum: f6cbd237d62f196a3835f7eec07b3fea1a4ba3b7acf61616d6d22ce2c2653e29f869a254bf3de6d0fef65f577b3c9a6137aac89887679889ca9a56f0d2e07f18 + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.5": version: 7.22.5 resolution: "@babel/code-frame@npm:7.22.5" @@ -797,7 +831,7 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.9": +"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": version: 7.22.9 resolution: "@babel/compat-data@npm:7.22.9" checksum: bed77d9044ce948b4327b30dd0de0779fa9f3a7ed1f2d31638714ed00229fa71fc4d1617ae0eb1fad419338d3658d0e9a5a083297451e09e73e078d0347ff808 @@ -827,7 +861,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.22.9": +"@babel/core@npm:^7.21.0, @babel/core@npm:^7.21.3": version: 7.22.11 resolution: "@babel/core@npm:7.22.11" dependencies: @@ -885,7 +919,25 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.10": +"@babel/helper-annotate-as-pure@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d + languageName: node + linkType: hard + +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.5": + version: 7.22.10 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.10" + dependencies: + "@babel/types": ^7.22.10 + checksum: 6de4a1f30e6244f9a1efdfcbe89df39923df3d165be606da5ad11319f8a11c12c72c60d9dc5fb696363281e2d6f741444c1af51f525fc7cf1d2a90fe23370bd9 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.10, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6": version: 7.22.10 resolution: "@babel/helper-compilation-targets@npm:7.22.10" dependencies: @@ -913,6 +965,53 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.22.11, @babel/helper-create-class-features-plugin@npm:^7.22.5": + version: 7.22.11 + resolution: "@babel/helper-create-class-features-plugin@npm:7.22.11" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-function-name": ^7.22.5 + "@babel/helper-member-expression-to-functions": ^7.22.5 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.9 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: b7aeb22e29aba5327616328576363522b3b186918faeda605e300822af4a5f29416eb34b5bd825d07ab496550e271d02d7634f0022a62b5b8cbf0eb6389bc3fa + languageName: node + linkType: hard + +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": + version: 7.22.9 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.9" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + regexpu-core: ^5.3.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 87cb48a7ee898ab205374274364c3adc70b87b08c7bd07f51019ae4562c0170d7148e654d591f825dee14b5fe11666a0e7966872dfdbfa0d1b94b861ecf0e4e1 + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.4.2": + version: 0.4.2 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.2" + dependencies: + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-plugin-utils": ^7.22.5 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 1f6dec0c5d0876d278fe15b71238eccc5f74c4e2efa2c78aaafa8bc2cc96336b8e68d94cd1a78497356c96e8b91b8c1f4452179820624d1702aee2f9832e6569 + languageName: node + linkType: hard + "@babel/helper-environment-visitor@npm:^7.16.7, @babel/helper-environment-visitor@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-environment-visitor@npm:7.22.5" @@ -939,7 +1038,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.22.5": +"@babel/helper-member-expression-to-functions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-member-expression-to-functions@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 4bd5791529c280c00743e8bdc669ef0d4cd1620d6e3d35e0d42b862f8262bc2364973e5968007f960780344c539a4b9cf92ab41f5b4f94560a9620f536de2a39 + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-module-imports@npm:7.22.5" dependencies: @@ -948,7 +1056,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.22.9": +"@babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9": version: 7.22.9 resolution: "@babel/helper-module-transforms@npm:7.22.9" dependencies: @@ -963,13 +1071,48 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0": +"@babel/helper-optimise-call-expression@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.22.5 resolution: "@babel/helper-plugin-utils@npm:7.22.5" checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 languageName: node linkType: hard +"@babel/helper-remap-async-to-generator@npm:^7.22.5, @babel/helper-remap-async-to-generator@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/helper-remap-async-to-generator@npm:7.22.9" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-wrap-function": ^7.22.9 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 05538079447829b13512157491cc77f9cf1ea7e1680e15cff0682c3ed9ee162de0c4862ece20a6d6b2df28177a1520bcfe45993fbeccf2747a81795a7c3f6290 + languageName: node + linkType: hard + +"@babel/helper-replace-supers@npm:^7.22.5, @babel/helper-replace-supers@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/helper-replace-supers@npm:7.22.9" + dependencies: + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-member-expression-to-functions": ^7.22.5 + "@babel/helper-optimise-call-expression": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: d41471f56ff2616459d35a5df1900d5f0756ae78b1027040365325ef332d66e08e3be02a9489756d870887585ff222403a228546e93dd7019e19e59c0c0fe586 + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -979,6 +1122,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.16.7, @babel/helper-split-export-declaration@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" @@ -1009,6 +1161,17 @@ __metadata: languageName: node linkType: hard +"@babel/helper-wrap-function@npm:^7.22.9": + version: 7.22.10 + resolution: "@babel/helper-wrap-function@npm:7.22.10" + dependencies: + "@babel/helper-function-name": ^7.22.5 + "@babel/template": ^7.22.5 + "@babel/types": ^7.22.10 + checksum: 854bd85fc1de1d4c633f04aa1f5b6b022fbc013b47d012b6a11a7a9125a1f4a2a4f13a3e0d7a7056fe7eda8a9ecd1ea3daf8af685685a2d1b16578768cfdd28f + languageName: node + linkType: hard + "@babel/helpers@npm:^7.22.11": version: 7.22.11 resolution: "@babel/helpers@npm:7.22.11" @@ -1062,188 +1225,1110 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.22.11": - version: 7.22.14 - resolution: "@babel/parser@npm:7.22.14" - bin: - parser: ./bin/babel-parser.js - checksum: a2293971f0889726a3d5a35fcceedc71d2fa4c8d97f438fc348fe0cf7e739affc6e2665e4c6ddd4900714772e19bfd5d6feb967ca1f623b894c0099ecb148b52 +"@babel/parser@npm:^7.22.11": + version: 7.22.14 + resolution: "@babel/parser@npm:7.22.14" + bin: + parser: ./bin/babel-parser.js + checksum: a2293971f0889726a3d5a35fcceedc71d2fa4c8d97f438fc348fe0cf7e739affc6e2665e4c6ddd4900714772e19bfd5d6feb967ca1f623b894c0099ecb148b52 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 1e353a060fb2cd8f1256d28cd768f16fb02513f905b9b6d656fb0242c96c341a196fa188b27c2701506a6e27515359fbcc1a5ca7fa8b9b530cf88fbd137baefc + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/plugin-transform-optional-chaining": ^7.22.5 + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 16e7a5f3bf2f2ac0ca032a70bf0ebd7e886d84dbb712b55c0643c04c495f0f221fbcbca14b5f8f8027fa6c87a3dafae0934022ad2b409384af6c5c356495b7bd + languageName: node + linkType: hard + +"@babel/plugin-external-helpers@npm:^7.18.6": + version: 7.22.5 + resolution: "@babel/plugin-external-helpers@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3cd44da2eff95a83ea3d763737c0fb3ed92fcaf534c120bb550e064b1c9c70c3f45366b65b096584f0fbe759b2225860ff824108398e4fa7c76b041b2f529397 + languageName: node + linkType: hard + +"@babel/plugin-proposal-class-properties@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422 + languageName: node + linkType: hard + +"@babel/plugin-proposal-object-rest-spread@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" + dependencies: + "@babel/compat-data": ^7.20.5 + "@babel/helper-compilation-targets": ^7.20.7 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.20.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1329db17009964bc644484c660eab717cb3ca63ac0ab0f67c651a028d1bc2ead51dc4064caea283e46994f1b7221670a35cbc0b4beb6273f55e915494b5aa0b2 + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": + version: 7.21.0-placeholder-for-preset-env.2 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d97745d098b835d55033ff3a7fb2b895b9c5295b08a5759e4f20df325aa385a3e0bc9bd5ad8f2ec554a44d4e6525acfc257b8c5848a1345cb40f26a30e277e91 + languageName: node + linkType: hard + +"@babel/plugin-syntax-async-generators@npm:^7.8.4": + version: 7.8.4 + resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 + languageName: node + linkType: hard + +"@babel/plugin-syntax-bigint@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": ^7.12.13 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 + languageName: node + linkType: hard + +"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd + languageName: node + linkType: hard + +"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-assertions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2b8b5572db04a7bef1e6cd20debf447e4eef7cb012616f5eceb8fa3e23ce469b8f76ee74fd6d1e158ba17a8f58b0aec579d092fb67c5a30e83ccfbc5754916c1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 197b3c5ea2a9649347f033342cb222ab47f4645633695205c0250c6bf2af29e643753b8bb24a2db39948bef08e7c540babfd365591eb57fc110cb30b425ffc47 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b + languageName: node + linkType: hard + +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.22.5, @babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.22.5 + resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8829d30c2617ab31393d99cec2978e41f014f4ac6f01a1cecf4c4dd8320c3ec12fdc3ce121126b2d8d32f6887e99ca1a0bad53dedb1e6ad165640b92b24980ce + languageName: node + linkType: hard + +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 + languageName: node + linkType: hard + +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 + languageName: node + linkType: hard + +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @babel/plugin-syntax-top-level-await@npm:^7.8.3": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e + languageName: node + linkType: hard + +"@babel/plugin-syntax-typescript@npm:^7.22.5, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.22.5 + resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8ab7718fbb026d64da93681a57797d60326097fd7cb930380c8bffd9eb101689e90142c760a14b51e8e69c88a73ba3da956cb4520a3b0c65743aee5c71ef360a + languageName: node + linkType: hard + +"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c + languageName: node + linkType: hard + +"@babel/plugin-transform-arrow-functions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 35abb6c57062802c7ce8bd96b2ef2883e3124370c688bbd67609f7d2453802fb73944df8808f893b6c67de978eb2bcf87bbfe325e46d6f39b5fcb09ece11d01a + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.22.11" + dependencies: + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.9 + "@babel/plugin-syntax-async-generators": ^7.8.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f11227a1d2831972a7fe28ed54a618ee251547632dc384b2f291f9d8d6aae1177a68c6bbd7709ab78275fa84e757ae795ec08061d94f6f01826f02a35ee875d4 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-to-generator@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.22.5" + dependencies: + "@babel/helper-module-imports": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b95f23f99dcb379a9f0a1c2a3bbea3f8dc0e1b16dc1ac8b484fe378370169290a7a63d520959a9ba1232837cf74a80e23f6facbe14fd42a3cda6d3c2d7168e62 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoped-functions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 416b1341858e8ca4e524dee66044735956ced5f478b2c3b9bc11ec2285b0c25d7dbb96d79887169eb938084c95d0a89338c8b2fe70d473bd9dc92e5d9db1732c + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoping@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-block-scoping@npm:7.22.10" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b1d06f358dedcb748a57e5feea4b9285c60593fb2912b921f22898c57c552c78fe18128678c8f84dd4ea1d4e5aebede8783830b24cd63f22c30261156d78bc77 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-properties@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-class-properties@npm:7.22.5" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b830152dfc2ff2f647f0abe76e6251babdfbef54d18c4b2c73a6bf76b1a00050a5d998dac80dc901a48514e95604324943a9dd39317073fe0928b559e0e0c579 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-static-block@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-class-static-block@npm:7.22.11" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.11 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + peerDependencies: + "@babel/core": ^7.12.0 + checksum: 69f040506fad66f1c6918d288d0e0edbc5c8a07c8b4462c1184ad2f9f08995d68b057126c213871c0853ae0c72afc60ec87492049dfacb20902e32346a448bcb + languageName: node + linkType: hard + +"@babel/plugin-transform-classes@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/plugin-transform-classes@npm:7.22.6" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-function-name": ^7.22.5 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + globals: ^11.1.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8380e855c01033dbc7460d9acfbc1fc37c880350fa798c2de8c594ef818ade0e4c96173ec72f05f2a4549d8d37135e18cb62548352d51557b45a0fb4388d2f3f + languageName: node + linkType: hard + +"@babel/plugin-transform-computed-properties@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-computed-properties@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/template": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c2a77a0f94ec71efbc569109ec14ea2aa925b333289272ced8b33c6108bdbb02caf01830ffc7e49486b62dec51911924d13f3a76f1149f40daace1898009e131 + languageName: node + linkType: hard + +"@babel/plugin-transform-destructuring@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-destructuring@npm:7.22.10" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 011707801bd0029fd4f0523d24d06fdc0cbe8c9da280d75728f76713d639c4dc976e1b56a1ba7bff25468f86867efb71c9b4cac81140adbdd0abf2324b19a8bb + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 409b658d11e3082c8f69e9cdef2d96e4d6d11256f005772425fb230cc48fd05945edbfbcb709dab293a1a2f01f9c8a5bb7b4131e632b23264039d9f95864b453 + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-keys@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bb1280fbabaab6fab2ede585df34900712698210a3bd413f4df5bae6d8c24be36b496c92722ae676a7a67d060a4624f4d6c23b923485f906bfba8773c69f55b4 + languageName: node + linkType: hard + +"@babel/plugin-transform-dynamic-import@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 78fc9c532210bf9e8f231747f542318568ac360ee6c27e80853962c984283c73da3f8f8aebe83c2096090a435b356b092ed85de617a156cbe0729d847632be45 + languageName: node + linkType: hard + +"@babel/plugin-transform-exponentiation-operator@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.22.5" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f2d660c1b1d51ad5fec1cd5ad426a52187204068c4158f8c4aa977b31535c61b66898d532603eef21c15756827be8277f724c869b888d560f26d7fe848bb5eae + languageName: node + linkType: hard + +"@babel/plugin-transform-export-namespace-from@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 73af5883a321ed56a4bfd43c8a7de0164faebe619287706896fc6ee2f7a4e69042adaa1338c0b8b4bdb9f7e5fdceb016fb1d40694cb43ca3b8827429e8aac4bf + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-for-of@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d7b8d4db010bce7273674caa95c4e6abd909362866ce297e86a2ecaa9ae636e05d525415811db9b3c942155df7f3651d19b91dd6c41f142f7308a97c7cb06023 + languageName: node + linkType: hard + +"@babel/plugin-transform-function-name@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-function-name@npm:7.22.5" + dependencies: + "@babel/helper-compilation-targets": ^7.22.5 + "@babel/helper-function-name": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cff3b876357999cb8ae30e439c3ec6b0491a53b0aa6f722920a4675a6dd5b53af97a833051df4b34791fe5b3dd326ccf769d5c8e45b322aa50ee11a660b17845 + languageName: node + linkType: hard + +"@babel/plugin-transform-json-strings@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-json-strings@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-json-strings": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 50665e5979e66358c50e90a26db53c55917f78175127ac2fa05c7888d156d418ffb930ec0a109353db0a7c5f57c756ce01bfc9825d24cbfd2b3ec453f2ed8cba + languageName: node + linkType: hard + +"@babel/plugin-transform-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ec37cc2ffb32667af935ab32fe28f00920ec8a1eb999aa6dc6602f2bebd8ba205a558aeedcdccdebf334381d5c57106c61f52332045730393e73410892a9735b + languageName: node + linkType: hard + +"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c664e9798e85afa7f92f07b867682dee7392046181d82f5d21bae6f2ca26dfe9c8375cdc52b7483c3fc09a983c1989f60eff9fbc4f373b0c0a74090553d05739 + languageName: node + linkType: hard + +"@babel/plugin-transform-member-expression-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ec4b0e07915ddd4fda0142fd104ee61015c208608a84cfa13643a95d18760b1dc1ceb6c6e0548898b8c49e5959a994e46367260176dbabc4467f729b21868504 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-amd@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-modules-amd@npm:7.22.5" + dependencies: + "@babel/helper-module-transforms": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7da4c4ebbbcf7d182abb59b2046b22d86eee340caf8a22a39ef6a727da2d8acfec1f714fcdcd5054110b280e4934f735e80a6848d192b6834c5d4459a014f04d + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-commonjs@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.22.11" + dependencies: + "@babel/helper-module-transforms": ^7.22.9 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-simple-access": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c15ad7f1234a930cab214224bb85f6b3a3f301fa1d4d15bef193e5c11c614ce369551e5cbb708fde8d3f7e1cb84b05e9798a3647a11b56c3d67580e362a712d4 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.22.11" + dependencies: + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-module-transforms": ^7.22.9 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d0991e4bdc3352b6a9f4d12b6662e3645d892cd5c3c005ba5f14e65f1e218c6a8f7f4497e64a51d82a046e507aaa7db3143b800b0270dca1824cbd214ff3363d + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-modules-umd@npm:7.22.5" + dependencies: + "@babel/helper-module-transforms": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 46622834c54c551b231963b867adbc80854881b3e516ff29984a8da989bd81665bd70e8cba6710345248e97166689310f544aee1a5773e262845a8f1b3e5b8b4 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-new-target@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6b72112773487a881a1d6ffa680afde08bad699252020e86122180ee7a88854d5da3f15d9bca3331cf2e025df045604494a8208a2e63b486266b07c14e2ffbf3 + languageName: node + linkType: hard + +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 167babecc8b8fe70796a7b7d34af667ebbf43da166c21689502e5e8cc93180b7a85979c77c9f64b7cce431b36718bd0a6df9e5e0ffea4ae22afb22cfef886372 + languageName: node + linkType: hard + +"@babel/plugin-transform-numeric-separator@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: af064d06a4a041767ec396a5f258103f64785df290e038bba9f0ef454e6c914f2ac45d862bbdad8fac2c7ad47fa4e95356f29053c60c100a0160b02a995fe2a3 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-rest-spread@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.22.11" + dependencies: + "@babel/compat-data": ^7.22.9 + "@babel/helper-compilation-targets": ^7.22.10 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b9c9ed8df8d6d7563eb42844d8e3e6748ba8f7568998230f7317bc49304db65828df48fc4b93bf4421772a6c9f7b389f3dd1c4e84379c17dd9ee223fb3fc5245 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-super@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-object-super@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b71887877d74cb64dbccb5c0324fa67e31171e6a5311991f626650e44a4083e5436a1eaa89da78c0474fb095d4ec322d63ee778b202d33aa2e4194e1ed8e62d7 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-catch-binding@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f17abd90e1de67c84d63afea29c8021c74abb2794d3a6eeafb0bbe7372d3db32aefca386e392116ec63884537a4a2815d090d26264d259bacc08f6e3ed05294c + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-chaining@npm:^7.22.12, @babel/plugin-transform-optional-chaining@npm:^7.22.5": + version: 7.22.12 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.22.12" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 47065439bb721a0967cdcc83895700bb7b18b146b2ef27e43449d7b5a7130a2497afadddc42c616253858cac6732546646b9f0c581f4bb8a3d362baeb4c30bbb + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-parameters@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b44f89cf97daf23903776ba27c2ab13b439d80d8c8a95be5c476ab65023b1e0c0e94c28d3745f3b60a58edc4e590fa0cd4287a0293e51401ca7d29a2ddb13b8e + languageName: node + linkType: hard + +"@babel/plugin-transform-private-methods@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-private-methods@npm:7.22.5" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 321479b4fcb6d3b3ef622ab22fd24001e43d46e680e8e41324c033d5810c84646e470f81b44cbcbef5c22e99030784f7cac92f1829974da7a47a60a7139082c3 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-property-in-object@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.22.11" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.22.11 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4d029d84901e53c46dead7a46e2990a7bc62470f4e4ca58a0d063394f86652fd58fe4eea1eb941da3669cd536b559b9d058b342b59300026346b7a2a51badac8 + languageName: node + linkType: hard + +"@babel/plugin-transform-property-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-property-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 796176a3176106f77fcb8cd04eb34a8475ce82d6d03a88db089531b8f0453a2fb8b0c6ec9a52c27948bc0ea478becec449893741fc546dfc3930ab927e3f9f2e + languageName: node + linkType: hard + +"@babel/plugin-transform-react-constant-elements@npm:^7.21.3": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-constant-elements@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 596db90e37174dd703f4859fef3c86156a7c8564d8351168ac6fdca79c912ef8b8746ae04516ac3909d2cc750702d58d451badacb3c54ea998938ad05d99f9d2 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-display-name@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-display-name@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a12bfd1e4e93055efca3ace3c34722571bda59d9740dca364d225d9c6e3ca874f134694d21715c42cc63d79efd46db9665bd4a022998767f9245f1e29d5d204d + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-development@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" + dependencies: + "@babel/plugin-transform-react-jsx": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 36bc3ff0b96bb0ef4723070a50cfdf2e72cfd903a59eba448f9fe92fea47574d6f22efd99364413719e1f3fb3c51b6c9b2990b87af088f8486a84b2a5f9e4560 languageName: node linkType: hard -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" +"@babel/plugin-transform-react-jsx@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx@npm:7.22.5" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-module-imports": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-jsx": ^7.22.5 + "@babel/types": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 + checksum: c8f93f29f32cf79683ca2b8958fd62f38155674846ef27a7d4b6fbeb8713c37257418391731b58ff8024ec37b888bed5960e615a3f552e28245d2082e7f2a2df languageName: node linkType: hard -"@babel/plugin-syntax-bigint@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" +"@babel/plugin-transform-react-pure-annotations@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.22.5" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 + checksum: 092021c4f404e267002099ec20b3f12dd730cb90b0d83c5feed3dc00dbe43b9c42c795a18e7c6c7d7bddea20c7dd56221b146aec81b37f2e7eb5137331c61120 languageName: node linkType: hard -"@babel/plugin-syntax-class-properties@npm:^7.8.3": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" +"@babel/plugin-transform-regenerator@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-regenerator@npm:7.22.10" dependencies: - "@babel/helper-plugin-utils": ^7.12.13 + "@babel/helper-plugin-utils": ^7.22.5 + regenerator-transform: ^0.15.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc + checksum: e13678d62d6fa96f11cb8b863f00e8693491e7adc88bfca3f2820f80cbac8336e7dec3a596eee6a1c4663b7ececc3564f2cd7fb44ed6d4ce84ac2bb7f39ecc6e languageName: node linkType: hard -"@babel/plugin-syntax-import-meta@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" +"@babel/plugin-transform-reserved-words@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-reserved-words@npm:7.22.5" dependencies: - "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b + checksum: 3ffd7dbc425fe8132bfec118b9817572799cab1473113a635d25ab606c1f5a2341a636c04cf6b22df3813320365ed5a965b5eeb3192320a10e4cc2c137bd8bfc languageName: node linkType: hard -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" +"@babel/plugin-transform-shorthand-properties@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.22.5" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a + checksum: a5ac902c56ea8effa99f681340ee61bac21094588f7aef0bc01dff98246651702e677552fa6d10e548c4ac22a3ffad047dd2f8c8f0540b68316c2c203e56818b languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.7.2": +"@babel/plugin-transform-spread@npm:^7.22.5": version: 7.22.5 - resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" + resolution: "@babel/plugin-transform-spread@npm:7.22.5" dependencies: "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8829d30c2617ab31393d99cec2978e41f014f4ac6f01a1cecf4c4dd8320c3ec12fdc3ce121126b2d8d32f6887e99ca1a0bad53dedb1e6ad165640b92b24980ce + checksum: 5587f0deb60b3dfc9b274e269031cc45ec75facccf1933ea2ea71ced9fd3ce98ed91bb36d6cd26817c14474b90ed998c5078415f0eab531caf301496ce24c95c languageName: node linkType: hard -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" +"@babel/plugin-transform-sticky-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.22.5" dependencies: - "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 + checksum: 63b2c575e3e7f96c32d52ed45ee098fb7d354b35c2223b8c8e76840b32cc529ee0c0ceb5742fd082e56e91e3d82842a367ce177e82b05039af3d602c9627a729 languageName: node linkType: hard -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" +"@babel/plugin-transform-template-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-template-literals@npm:7.22.5" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 + checksum: 27e9bb030654cb425381c69754be4abe6a7c75b45cd7f962cd8d604b841b2f0fb7b024f2efc1c25cc53f5b16d79d5e8cfc47cacbdaa983895b3aeefa3e7e24ff languageName: node linkType: hard -"@babel/plugin-syntax-numeric-separator@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" +"@babel/plugin-transform-typeof-symbol@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.22.5" dependencies: - "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 + checksum: 82a53a63ffc3010b689ca9a54e5f53b2718b9f4b4a9818f36f9b7dba234f38a01876680553d2716a645a61920b5e6e4aaf8d4a0064add379b27ca0b403049512 languageName: node linkType: hard -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" +"@babel/plugin-transform-typescript@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-typescript@npm:7.22.11" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.22.11 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-typescript": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf + checksum: a0dc3c2427b55602944705c9a91b4c074524badd5ea87edb603ddeabe7fae531bcbe68475106d7a00079b67bb422dbf2e9f50e15c25ac24d7e9fe77f37ebcfb4 languageName: node linkType: hard -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" +"@babel/plugin-transform-unicode-escapes@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.10" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 + checksum: 807f40ed1324c8cb107c45358f1903384ca3f0ef1d01c5a3c5c9b271c8d8eec66936a3dcc8d75ddfceea9421420368c2e77ae3adef0a50557e778dfe296bf382 languageName: node linkType: hard -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" +"@babel/plugin-transform-unicode-property-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.22.5" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 + checksum: 2495e5f663cb388e3d888b4ba3df419ac436a5012144ac170b622ddfc221f9ea9bdba839fa2bc0185cb776b578030666406452ec7791cbf0e7a3d4c88ae9574c languageName: node linkType: hard -"@babel/plugin-syntax-top-level-await@npm:^7.8.3": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" +"@babel/plugin-transform-unicode-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.22.5" dependencies: - "@babel/helper-plugin-utils": ^7.14.5 + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e + checksum: 6b5d1404c8c623b0ec9bd436c00d885a17d6a34f3f2597996343ddb9d94f6379705b21582dfd4cec2c47fd34068872e74ab6b9580116c0566b3f9447e2a7fa06 languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.7.2": +"@babel/plugin-transform-unicode-sets-regex@npm:^7.22.5": version: 7.22.5 - resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: c042070f980b139547f8b0179efbc049ac5930abec7fc26ed7a41d89a048d8ab17d362200e204b6f71c3c20d6991a0e74415e1a412a49adc8131c2a40c04822e + languageName: node + linkType: hard + +"@babel/preset-env@npm:^7.20.2": + version: 7.22.14 + resolution: "@babel/preset-env@npm:7.22.14" dependencies: + "@babel/compat-data": ^7.22.9 + "@babel/helper-compilation-targets": ^7.22.10 "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-option": ^7.22.5 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.22.5 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.22.5 + "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + "@babel/plugin-syntax-import-assertions": ^7.22.5 + "@babel/plugin-syntax-import-attributes": ^7.22.5 + "@babel/plugin-syntax-import-meta": ^7.10.4 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 + "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 + "@babel/plugin-transform-arrow-functions": ^7.22.5 + "@babel/plugin-transform-async-generator-functions": ^7.22.11 + "@babel/plugin-transform-async-to-generator": ^7.22.5 + "@babel/plugin-transform-block-scoped-functions": ^7.22.5 + "@babel/plugin-transform-block-scoping": ^7.22.10 + "@babel/plugin-transform-class-properties": ^7.22.5 + "@babel/plugin-transform-class-static-block": ^7.22.11 + "@babel/plugin-transform-classes": ^7.22.6 + "@babel/plugin-transform-computed-properties": ^7.22.5 + "@babel/plugin-transform-destructuring": ^7.22.10 + "@babel/plugin-transform-dotall-regex": ^7.22.5 + "@babel/plugin-transform-duplicate-keys": ^7.22.5 + "@babel/plugin-transform-dynamic-import": ^7.22.11 + "@babel/plugin-transform-exponentiation-operator": ^7.22.5 + "@babel/plugin-transform-export-namespace-from": ^7.22.11 + "@babel/plugin-transform-for-of": ^7.22.5 + "@babel/plugin-transform-function-name": ^7.22.5 + "@babel/plugin-transform-json-strings": ^7.22.11 + "@babel/plugin-transform-literals": ^7.22.5 + "@babel/plugin-transform-logical-assignment-operators": ^7.22.11 + "@babel/plugin-transform-member-expression-literals": ^7.22.5 + "@babel/plugin-transform-modules-amd": ^7.22.5 + "@babel/plugin-transform-modules-commonjs": ^7.22.11 + "@babel/plugin-transform-modules-systemjs": ^7.22.11 + "@babel/plugin-transform-modules-umd": ^7.22.5 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 + "@babel/plugin-transform-new-target": ^7.22.5 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.22.11 + "@babel/plugin-transform-numeric-separator": ^7.22.11 + "@babel/plugin-transform-object-rest-spread": ^7.22.11 + "@babel/plugin-transform-object-super": ^7.22.5 + "@babel/plugin-transform-optional-catch-binding": ^7.22.11 + "@babel/plugin-transform-optional-chaining": ^7.22.12 + "@babel/plugin-transform-parameters": ^7.22.5 + "@babel/plugin-transform-private-methods": ^7.22.5 + "@babel/plugin-transform-private-property-in-object": ^7.22.11 + "@babel/plugin-transform-property-literals": ^7.22.5 + "@babel/plugin-transform-regenerator": ^7.22.10 + "@babel/plugin-transform-reserved-words": ^7.22.5 + "@babel/plugin-transform-shorthand-properties": ^7.22.5 + "@babel/plugin-transform-spread": ^7.22.5 + "@babel/plugin-transform-sticky-regex": ^7.22.5 + "@babel/plugin-transform-template-literals": ^7.22.5 + "@babel/plugin-transform-typeof-symbol": ^7.22.5 + "@babel/plugin-transform-unicode-escapes": ^7.22.10 + "@babel/plugin-transform-unicode-property-regex": ^7.22.5 + "@babel/plugin-transform-unicode-regex": ^7.22.5 + "@babel/plugin-transform-unicode-sets-regex": ^7.22.5 + "@babel/preset-modules": 0.1.6-no-external-plugins + "@babel/types": ^7.22.11 + babel-plugin-polyfill-corejs2: ^0.4.5 + babel-plugin-polyfill-corejs3: ^0.8.3 + babel-plugin-polyfill-regenerator: ^0.5.2 + core-js-compat: ^3.31.0 + semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8ab7718fbb026d64da93681a57797d60326097fd7cb930380c8bffd9eb101689e90142c760a14b51e8e69c88a73ba3da956cb4520a3b0c65743aee5c71ef360a + checksum: a62b5717a86c41ab675ac0f4d46ff504088fb2cce2011aa36508453d2235a3ecf1f6d127aa57962310fcce4ec18bad840ccd09987a78c57e4d1b4339cedeaacd + languageName: node + linkType: hard + +"@babel/preset-modules@npm:0.1.6-no-external-plugins": + version: 0.1.6-no-external-plugins + resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@babel/types": ^7.4.4 + esutils: ^2.0.2 + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.22.5": +"@babel/preset-react@npm:^7.18.6": version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.22.5" + resolution: "@babel/preset-react@npm:7.22.5" dependencies: "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-option": ^7.22.5 + "@babel/plugin-transform-react-display-name": ^7.22.5 + "@babel/plugin-transform-react-jsx": ^7.22.5 + "@babel/plugin-transform-react-jsx-development": ^7.22.5 + "@babel/plugin-transform-react-pure-annotations": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 671eebfabd14a0c7d6ae805fff7e289dfdb7ba984bb100ea2ef6dad1d6a665ebbb09199ab2e64fca7bc78bd0fdc80ca897b07996cf215fafc32c67bc564309af + checksum: b977c7ee83e93f62d77e61929ca3d97e5291e026e2f025a1b8b7ac9186486ed56c7d5bc36f0becabe0c24e8c42a4e4f2243a3cf841384cfafc3204c5d3e6c619 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-source@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.22.5" +"@babel/preset-typescript@npm:^7.21.0": + version: 7.22.11 + resolution: "@babel/preset-typescript@npm:7.22.11" dependencies: "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-option": ^7.22.5 + "@babel/plugin-syntax-jsx": ^7.22.5 + "@babel/plugin-transform-modules-commonjs": ^7.22.11 + "@babel/plugin-transform-typescript": ^7.22.11 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4ca2bd62ca14f8bbdcda9139f3f799e1c1c1bae504b67c1ca9bca142c53d81926d1a2b811f66a625f20999b2d352131053d886601f1ba3c1e9378c104d884277 + checksum: 8ae7162c31db896f5eeecd6f67ab2e58555fdc06fe84e95fe4a3f60b64cd6f782d2d7dfbde0c0eac04b55dac18222752d91dd8786245cccedd7e42f080e07233 + languageName: node + linkType: hard + +"@babel/regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "@babel/regjsgen@npm:0.8.0" + checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 languageName: node linkType: hard @@ -1256,6 +2341,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.8.4": + version: 7.22.11 + resolution: "@babel/runtime@npm:7.22.11" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: a5cd6683a8fcdb8065cb1677f221e22f6c67ec8f15ad1d273b180b93ab3bd86c66da2c48f500d4e72d8d2cfa85ff4872a3f350e5aa3855630036af5da765c001 + languageName: node + linkType: hard + "@babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3": version: 7.22.5 resolution: "@babel/template@npm:7.22.5" @@ -1285,7 +2379,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.22.11": +"@babel/traverse@npm:^7.21.2, @babel/traverse@npm:^7.22.11": version: 7.22.11 resolution: "@babel/traverse@npm:7.22.11" dependencies: @@ -1342,7 +2436,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.22.10, @babel/types@npm:^7.22.11": +"@babel/types@npm:^7.21.3, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.11, @babel/types@npm:^7.4.4": version: 7.22.11 resolution: "@babel/types@npm:7.22.11" dependencies: @@ -1456,6 +2550,29 @@ __metadata: languageName: node linkType: hard +"@emotion/is-prop-valid@npm:^1.2.1": + version: 1.2.1 + resolution: "@emotion/is-prop-valid@npm:1.2.1" + dependencies: + "@emotion/memoize": ^0.8.1 + checksum: 8f42dc573a3fad79b021479becb639b8fe3b60bdd1081a775d32388bca418ee53074c7602a4c845c5f75fa6831eb1cbdc4d208cc0299f57014ed3a02abcad16a + languageName: node + linkType: hard + +"@emotion/memoize@npm:^0.8.1": + version: 0.8.1 + resolution: "@emotion/memoize@npm:0.8.1" + checksum: a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0 + languageName: node + linkType: hard + +"@emotion/unitless@npm:^0.8.0": + version: 0.8.1 + resolution: "@emotion/unitless@npm:0.8.1" + checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 + languageName: node + linkType: hard + "@es-joy/jsdoccomment@npm:~0.37.0": version: 0.37.1 resolution: "@es-joy/jsdoccomment@npm:0.37.1" @@ -2061,6 +3178,13 @@ __metadata: languageName: node linkType: hard +"@leichtgewicht/ip-codec@npm:^2.0.1": + version: 2.0.4 + resolution: "@leichtgewicht/ip-codec@npm:2.0.4" + checksum: 468de1f04d33de6d300892683d7c8aecbf96d1e2c5fe084f95f816e50a054d45b7c1ebfb141a1447d844b86a948733f6eebd92234da8581c84a1ad4de2946a2d + languageName: node + linkType: hard + "@libp2p/bootstrap@npm:^9.0.4": version: 9.0.4 resolution: "@libp2p/bootstrap@npm:9.0.4" @@ -2600,6 +3724,13 @@ __metadata: languageName: node linkType: hard +"@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3": + version: 2.1.8-no-fsevents.3 + resolution: "@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3" + checksum: ee55cc9241aeea7eb94b8a8551bfa4246c56c53bc71ecda0a2104018fcc328ba5723b33686bdf9cc65d4df4ae65e8016b89e0bbdeb94e0309fe91bb9ced42344 + languageName: node + linkType: hard + "@noble/ciphers@npm:^0.1.4": version: 0.1.4 resolution: "@noble/ciphers@npm:0.1.4" @@ -2868,6 +3999,162 @@ __metadata: languageName: node linkType: hard +"@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3fc8e35d16f5abe0af5efe5851f27581225ac405d6a1ca44cda0df064cddfcc29a428c48c2e4bef6cebf627c9ac2f652a096030edb02cf5a120ce28d3c234710 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ff992893c6c4ac802713ba3a97c13be34e62e6d981c813af40daabcd676df68a72a61bd1e692bb1eda3587f1b1d700ea462222ae2153bb0f46886632d4f88d08 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0fb691b63a21bac00da3aa2dccec50d0d5a5b347ff408d60803b84410d8af168f2656e4ba1ee1f24dab0ae4e4af77901f2928752bb0434c1f6788133ec599ec8 + languageName: node + linkType: hard + +"@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1edda65ef4f4dd8f021143c8ec276a08f6baa6f733b8e8ee2e7775597bf6b97afb47fdeefd579d6ae6c959fe2e634f55cd61d99377631212228c8cfb351b8921 + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 876cec891488992e6a9aebb8155e2bea4ec461b4718c51de36e988e00e271c6d9d01ef6be17b9effd44b2b3d7db0b41c161a5904a46ae6f38b26b387ad7f3709 + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: be0e2d391164428327d9ec469a52cea7d93189c6b0e2c290999e048f597d777852f701c64dca44cd45b31ed14a7f859520326e2e4ad7c3a4545d0aa235bc7e9a + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 85b434a57572f53bd2b9f0606f253e1fcf57b4a8c554ec3f2d43ed17f50d8cae200cb3aaf1ec9d626e1456e8b135dce530ae047eb0bed6d4bf98a752d6640459 + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-svg-component@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-transform-svg-component@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 04e2023d75693eeb0890341c40e449881184663056c249be7e5c80168e4aabb0fadd255e8d5d2dbf54b8c2a6e700efba994377135bfa4060dc4a2e860116ef8c + languageName: node + linkType: hard + +"@svgr/babel-preset@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/babel-preset@npm:8.1.0" + dependencies: + "@svgr/babel-plugin-add-jsx-attribute": 8.0.0 + "@svgr/babel-plugin-remove-jsx-attribute": 8.0.0 + "@svgr/babel-plugin-remove-jsx-empty-expression": 8.0.0 + "@svgr/babel-plugin-replace-jsx-attribute-value": 8.0.0 + "@svgr/babel-plugin-svg-dynamic-title": 8.0.0 + "@svgr/babel-plugin-svg-em-dimensions": 8.0.0 + "@svgr/babel-plugin-transform-react-native-svg": 8.1.0 + "@svgr/babel-plugin-transform-svg-component": 8.0.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3a67930f080b8891e1e8e2595716b879c944d253112bae763dce59807ba23454d162216c8d66a0a0e3d4f38a649ecd6c387e545d1e1261dd69a68e9a3392ee08 + languageName: node + linkType: hard + +"@svgr/core@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/core@npm:8.1.0" + dependencies: + "@babel/core": ^7.21.3 + "@svgr/babel-preset": 8.1.0 + camelcase: ^6.2.0 + cosmiconfig: ^8.1.3 + snake-case: ^3.0.4 + checksum: da4a12865c7dc59829d58df8bd232d6c85b7115fda40da0d2f844a1a51886e2e945560596ecfc0345d37837ac457de86a931e8b8d8550e729e0c688c02250d8a + languageName: node + linkType: hard + +"@svgr/hast-util-to-babel-ast@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/hast-util-to-babel-ast@npm:8.0.0" + dependencies: + "@babel/types": ^7.21.3 + entities: ^4.4.0 + checksum: 88401281a38bbc7527e65ff5437970414391a86158ef4b4046c89764c156d2d39ecd7cce77be8a51994c9fb3249170cb1eb8b9128b62faaa81743ef6ed3534ab + languageName: node + linkType: hard + +"@svgr/plugin-jsx@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/plugin-jsx@npm:8.1.0" + dependencies: + "@babel/core": ^7.21.3 + "@svgr/babel-preset": 8.1.0 + "@svgr/hast-util-to-babel-ast": 8.0.0 + svg-parser: ^2.0.4 + peerDependencies: + "@svgr/core": "*" + checksum: 0418a9780753d3544912ee2dad5d2cf8d12e1ba74df8053651b3886aeda54d5f0f7d2dece0af5e0d838332c4f139a57f0dabaa3ca1afa4d1a765efce6a7656f2 + languageName: node + linkType: hard + +"@svgr/plugin-svgo@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/plugin-svgo@npm:8.1.0" + dependencies: + cosmiconfig: ^8.1.3 + deepmerge: ^4.3.1 + svgo: ^3.0.2 + peerDependencies: + "@svgr/core": "*" + checksum: 59d9d214cebaacca9ca71a561f463d8b7e5a68ca9443e4792a42d903acd52259b1790c0680bc6afecc3f00a255a6cbd7ea278a9f625bac443620ea58a590c2d0 + languageName: node + linkType: hard + +"@svgr/webpack@npm:^8.1.0": + version: 8.1.0 + resolution: "@svgr/webpack@npm:8.1.0" + dependencies: + "@babel/core": ^7.21.3 + "@babel/plugin-transform-react-constant-elements": ^7.21.3 + "@babel/preset-env": ^7.20.2 + "@babel/preset-react": ^7.18.6 + "@babel/preset-typescript": ^7.21.0 + "@svgr/core": 8.1.0 + "@svgr/plugin-jsx": 8.1.0 + "@svgr/plugin-svgo": 8.1.0 + checksum: c6eec5b0cf2fb2ecd3a7a362d272eda35330b17c76802a3481f499b5d07ff8f87b31d2571043bff399b051a1767b1e2e499dbf186104d1c06d76f9f1535fac01 + languageName: node + linkType: hard + "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -2902,6 +4189,13 @@ __metadata: languageName: node linkType: hard +"@trysound/sax@npm:0.2.0": + version: 0.2.0 + resolution: "@trysound/sax@npm:0.2.0" + checksum: 11226c39b52b391719a2a92e10183e4260d9651f86edced166da1d95f39a0a1eaa470e44d14ac685ccd6d3df7e2002433782872c0feeb260d61e80f21250e65c + languageName: node + linkType: hard + "@tsconfig/node10@npm:^1.0.7": version: 1.0.9 resolution: "@tsconfig/node10@npm:1.0.9" @@ -2982,18 +4276,37 @@ __metadata: version: 7.20.1 resolution: "@types/babel__traverse@npm:7.20.1" dependencies: - "@babel/types": ^7.20.7 - checksum: 58341e23c649c0eba134a1682d4f20d027fad290d92e5740faa1279978f6ed476fc467ae51ce17a877e2566d805aeac64eae541168994367761ec883a4150221 + "@babel/types": ^7.20.7 + checksum: 58341e23c649c0eba134a1682d4f20d027fad290d92e5740faa1279978f6ed476fc467ae51ce17a877e2566d805aeac64eae541168994367761ec883a4150221 + languageName: node + linkType: hard + +"@types/body-parser@npm:*": + version: 1.19.2 + resolution: "@types/body-parser@npm:1.19.2" + dependencies: + "@types/connect": "*" + "@types/node": "*" + checksum: e17840c7d747a549f00aebe72c89313d09fbc4b632b949b2470c5cb3b1cb73863901ae84d9335b567a79ec5efcfb8a28ff8e3f36bc8748a9686756b6d5681f40 + languageName: node + linkType: hard + +"@types/bonjour@npm:^3.5.9": + version: 3.5.10 + resolution: "@types/bonjour@npm:3.5.10" + dependencies: + "@types/node": "*" + checksum: bfcadb042a41b124c4e3de4925e3be6d35b78f93f27c4535d5ff86980dc0f8bc407ed99b9b54528952dc62834d5a779392f7a12c2947dd19330eb05a6bcae15a languageName: node linkType: hard -"@types/body-parser@npm:*": - version: 1.19.2 - resolution: "@types/body-parser@npm:1.19.2" +"@types/connect-history-api-fallback@npm:^1.3.5": + version: 1.5.0 + resolution: "@types/connect-history-api-fallback@npm:1.5.0" dependencies: - "@types/connect": "*" + "@types/express-serve-static-core": "*" "@types/node": "*" - checksum: e17840c7d747a549f00aebe72c89313d09fbc4b632b949b2470c5cb3b1cb73863901ae84d9335b567a79ec5efcfb8a28ff8e3f36bc8748a9686756b6d5681f40 + checksum: f180e7c540728d6dd3a1eb2376e445fe7f9de4ee8a5b460d5ad80062cdb6de6efc91c6851f39e9d5933b3dcd5cd370673c52343a959aa091238b6f863ea4447c languageName: node linkType: hard @@ -3075,6 +4388,18 @@ __metadata: languageName: node linkType: hard +"@types/express-serve-static-core@npm:*": + version: 4.17.36 + resolution: "@types/express-serve-static-core@npm:4.17.36" + dependencies: + "@types/node": "*" + "@types/qs": "*" + "@types/range-parser": "*" + "@types/send": "*" + checksum: 410b13cbd663f18c0f8729e7f2ff54d960d96de76ebbae7cadb612972f85cc66c54051e00d32f11aa230c0a683d81a6d6fc7f7e4e383a95c0801494c517f36e1 + languageName: node + linkType: hard + "@types/express-serve-static-core@npm:^4.17.33": version: 4.17.35 resolution: "@types/express-serve-static-core@npm:4.17.35" @@ -3087,7 +4412,7 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:*": +"@types/express@npm:*, @types/express@npm:^4.17.13": version: 4.17.17 resolution: "@types/express@npm:4.17.17" dependencies: @@ -3118,6 +4443,16 @@ __metadata: languageName: node linkType: hard +"@types/hoist-non-react-statics@npm:*": + version: 3.3.1 + resolution: "@types/hoist-non-react-statics@npm:3.3.1" + dependencies: + "@types/react": "*" + hoist-non-react-statics: ^3.3.0 + checksum: 2c0778570d9a01d05afabc781b32163f28409bb98f7245c38d5eaf082416fdb73034003f5825eb5e21313044e8d2d9e1f3fe2831e345d3d1b1d20bcd12270719 + languageName: node + linkType: hard + "@types/http-assert@npm:*": version: 1.5.3 resolution: "@types/http-assert@npm:1.5.3" @@ -3132,6 +4467,15 @@ __metadata: languageName: node linkType: hard +"@types/http-proxy@npm:^1.17.8": + version: 1.17.11 + resolution: "@types/http-proxy@npm:1.17.11" + dependencies: + "@types/node": "*" + checksum: 38ef4f8c91c7a5b664cf6dd4d90de7863f88549a9f8ef997f2f1184e4f8cf2e7b9b63c04f0b7b962f34a09983073a31a9856de5aae5159b2ddbb905a4c44dc9f + languageName: node + linkType: hard + "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.4 resolution: "@types/istanbul-lib-coverage@npm:2.0.4" @@ -3167,7 +4511,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.8": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.12 resolution: "@types/json-schema@npm:7.0.12" checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293 @@ -3581,6 +4925,13 @@ __metadata: languageName: node linkType: hard +"@types/retry@npm:0.12.0": + version: 0.12.0 + resolution: "@types/retry@npm:0.12.0" + checksum: 61a072c7639f6e8126588bf1eb1ce8835f2cb9c2aba795c4491cf6310e013267b0c8488039857c261c387e9728c1b43205099223f160bb6a76b4374f741b5603 + languageName: node + linkType: hard + "@types/retry@npm:0.12.1": version: 0.12.1 resolution: "@types/retry@npm:0.12.1" @@ -3612,7 +4963,16 @@ __metadata: languageName: node linkType: hard -"@types/serve-static@npm:*": +"@types/serve-index@npm:^1.9.1": + version: 1.9.1 + resolution: "@types/serve-index@npm:1.9.1" + dependencies: + "@types/express": "*" + checksum: 026f3995fb500f6df7c3fe5009e53bad6d739e20b84089f58ebfafb2f404bbbb6162bbe33f72d2f2af32d5b8d3799c8e179793f90d9ed5871fb8591190bb6056 + languageName: node + linkType: hard + +"@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10": version: 1.15.2 resolution: "@types/serve-static@npm:1.15.2" dependencies: @@ -3648,6 +5008,15 @@ __metadata: languageName: node linkType: hard +"@types/sockjs@npm:^0.3.33": + version: 0.3.33 + resolution: "@types/sockjs@npm:0.3.33" + dependencies: + "@types/node": "*" + checksum: b9bbb2b5c5ead2fb884bb019f61a014e37410bddd295de28184e1b2e71ee6b04120c5ba7b9954617f0bdf962c13d06249ce65004490889c747c80d3f628ea842 + languageName: node + linkType: hard + "@types/stack-utils@npm:^2.0.0": version: 2.0.1 resolution: "@types/stack-utils@npm:2.0.1" @@ -3655,6 +5024,24 @@ __metadata: languageName: node linkType: hard +"@types/styled-components@npm:^5.1.26": + version: 5.1.26 + resolution: "@types/styled-components@npm:5.1.26" + dependencies: + "@types/hoist-non-react-statics": "*" + "@types/react": "*" + csstype: ^3.0.2 + checksum: 84f53b3101739b20d1731554fb7735bc2f3f5d050a8b392e9845403c8c8bbd729737d033978649f9195a97b557875b010d46e35a4538564a2d0dbcce661dbf76 + languageName: node + linkType: hard + +"@types/stylis@npm:^4.0.2": + version: 4.2.0 + resolution: "@types/stylis@npm:4.2.0" + checksum: 02a47584acd2fcb664f7d8270a69686c83752bdfb855f804015d33116a2b09c0b2ac535213a4a7b6d3a78b2915b22b4024cce067ae979beee0e4f8f5fdbc26a9 + languageName: node + linkType: hard + "@types/superagent@npm:*": version: 4.1.18 resolution: "@types/superagent@npm:4.1.18" @@ -3681,7 +5068,7 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:^8.5.4": +"@types/ws@npm:^8.5.4, @types/ws@npm:^8.5.5": version: 8.5.5 resolution: "@types/ws@npm:8.5.5" dependencies: @@ -3960,20 +5347,6 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-react@npm:^4.0.3": - version: 4.0.4 - resolution: "@vitejs/plugin-react@npm:4.0.4" - dependencies: - "@babel/core": ^7.22.9 - "@babel/plugin-transform-react-jsx-self": ^7.22.5 - "@babel/plugin-transform-react-jsx-source": ^7.22.5 - react-refresh: ^0.14.0 - peerDependencies: - vite: ^4.2.0 - checksum: ec25400dc7c5fce914122d1f57de0fbaff9216addb8cd6187308ad2c7a3d3b73ea3a6f2dd0a8c7ec5e90e56b37046fe90d3e0ec285a9446e73695cb174377f84 - languageName: node - linkType: hard - "@wagmi/chains@npm:1.6.0": version: 1.6.0 resolution: "@wagmi/chains@npm:1.6.0" @@ -4243,7 +5616,7 @@ __metadata: languageName: node linkType: hard -"accepts@npm:^1.3.5": +"accepts@npm:^1.3.5, accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": version: 1.3.8 resolution: "accepts@npm:1.3.8" dependencies: @@ -4333,6 +5706,20 @@ __metadata: languageName: node linkType: hard +"ajv-formats@npm:^2.1.1": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: ^8.0.0 + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 4a287d937f1ebaad4683249a4c40c0fa3beed30d9ddc0adba04859026a622da0d317851316ea64b3680dc60f5c3c708105ddd5d5db8fe595d9d0207fd19f90b7 + languageName: node + linkType: hard + "ajv-keywords@npm:^3.5.2": version: 3.5.2 resolution: "ajv-keywords@npm:3.5.2" @@ -4342,6 +5729,17 @@ __metadata: languageName: node linkType: hard +"ajv-keywords@npm:^5.1.0": + version: 5.1.0 + resolution: "ajv-keywords@npm:5.1.0" + dependencies: + fast-deep-equal: ^3.1.3 + peerDependencies: + ajv: ^8.8.2 + checksum: c35193940b853119242c6757787f09ecf89a2c19bcd36d03ed1a615e710d19d450cb448bfda407b939aba54b002368c8bff30529cc50a0536a8e10bcce300421 + languageName: node + linkType: hard + "ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:~6.12.6": version: 6.12.6 resolution: "ajv@npm:6.12.6" @@ -4354,6 +5752,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^8.0.0, ajv@npm:^8.9.0": + version: 8.12.0 + resolution: "ajv@npm:8.12.0" + dependencies: + fast-deep-equal: ^3.1.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js: ^4.2.2 + checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 + languageName: node + linkType: hard + "ansi-escapes@npm:^4.2.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -4363,6 +5773,15 @@ __metadata: languageName: node linkType: hard +"ansi-html-community@npm:^0.0.8": + version: 0.0.8 + resolution: "ansi-html-community@npm:0.0.8" + bin: + ansi-html: bin/ansi-html + checksum: 04c568e8348a636963f915e48eaa3e01218322e1169acafdd79c384f22e5558c003f79bbc480c1563865497482817c7eed025f0653ebc17642fededa5cb42089 + languageName: node + linkType: hard + "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" @@ -4416,6 +5835,13 @@ __metadata: languageName: node linkType: hard +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 0ee8a9bdbe882c90464d75d1f55cf027f5458650c4bd1f0467e65aec38ccccda07ca5844969ee77ed46d04e7dded3eaceb027e8d32f385688523fe305fa7e1de + languageName: node + linkType: hard + "any-signal@npm:^4.1.1": version: 4.1.1 resolution: "any-signal@npm:4.1.1" @@ -4423,7 +5849,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.3": +"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: @@ -4457,6 +5883,13 @@ __metadata: languageName: node linkType: hard +"arg@npm:^5.0.2": + version: 5.0.2 + resolution: "arg@npm:5.0.2" + checksum: 6c69ada1a9943d332d9e5382393e897c500908d91d5cb735a01120d5f71daf1b339b7b8980cbeaba8fd1afc68e658a739746179e4315a26e8a28951ff9930078 + languageName: node + linkType: hard + "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -4483,6 +5916,20 @@ __metadata: languageName: node linkType: hard +"array-flatten@npm:1.1.1": + version: 1.1.1 + resolution: "array-flatten@npm:1.1.1" + checksum: a9925bf3512d9dce202112965de90c222cd59a4fbfce68a0951d25d965cf44642931f40aac72309c41f12df19afa010ecadceb07cfff9ccc1621e99d89ab5f3b + languageName: node + linkType: hard + +"array-flatten@npm:^2.1.2": + version: 2.1.2 + resolution: "array-flatten@npm:2.1.2" + checksum: e8988aac1fbfcdaae343d08c9a06a6fddd2c6141721eeeea45c3cf523bf4431d29a46602929455ed548c7a3e0769928cdc630405427297e7081bd118fdec9262 + languageName: node + linkType: hard + "array-includes@npm:^3.1.6": version: 3.1.6 resolution: "array-includes@npm:3.1.6" @@ -4659,6 +6106,42 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs2@npm:^0.4.5": + version: 0.4.5 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.5" + dependencies: + "@babel/compat-data": ^7.22.6 + "@babel/helper-define-polyfill-provider": ^0.4.2 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 33a8e06aa54e2858d211c743d179f0487b03222f9ca1bfd7c4865bca243fca942a3358cb75f6bb894ed476cbddede834811fbd6903ff589f055821146f053e1a + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.8.3": + version: 0.8.3 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.3" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.4.2 + core-js-compat: ^3.31.0 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: dcbb30e551702a82cfd4d2c375da2c317658e55f95e9edcda93b9bbfdcc8fb6e5344efcb144e04d3406859e7682afce7974c60ededd9f12072a48a83dd22a0da + languageName: node + linkType: hard + +"babel-plugin-polyfill-regenerator@npm:^0.5.2": + version: 0.5.2 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.2" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.4.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: d962200f604016a9a09bc9b4aaf60a3db7af876bb65bcefaeac04d44ac9d9ec4037cf24ce117760cc141d7046b6394c7eb0320ba9665cb4a2ee64df2be187c93 + languageName: node + linkType: hard + "babel-preset-current-node-syntax@npm:^1.0.0": version: 1.0.1 resolution: "babel-preset-current-node-syntax@npm:1.0.1" @@ -4714,6 +6197,13 @@ __metadata: languageName: node linkType: hard +"batch@npm:0.6.1": + version: 0.6.1 + resolution: "batch@npm:0.6.1" + checksum: 61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f + languageName: node + linkType: hard + "benchmark@npm:^2.1.4": version: 2.1.4 resolution: "benchmark@npm:2.1.4" @@ -4731,6 +6221,13 @@ __metadata: languageName: node linkType: hard +"binary-extensions@npm:^2.0.0": + version: 2.2.0 + resolution: "binary-extensions@npm:2.2.0" + checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 + languageName: node + linkType: hard + "bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9": version: 4.12.0 resolution: "bn.js@npm:4.12.0" @@ -4745,6 +6242,45 @@ __metadata: languageName: node linkType: hard +"body-parser@npm:1.20.1": + version: 1.20.1 + resolution: "body-parser@npm:1.20.1" + dependencies: + bytes: 3.1.2 + content-type: ~1.0.4 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: ~1.6.18 + unpipe: 1.0.0 + checksum: f1050dbac3bede6a78f0b87947a8d548ce43f91ccc718a50dd774f3c81f2d8b04693e52acf62659fad23101827dd318da1fb1363444ff9a8482b886a3e4a5266 + languageName: node + linkType: hard + +"bonjour-service@npm:^1.0.11": + version: 1.1.1 + resolution: "bonjour-service@npm:1.1.1" + dependencies: + array-flatten: ^2.1.2 + dns-equal: ^1.0.0 + fast-deep-equal: ^3.1.3 + multicast-dns: ^7.2.5 + checksum: 832d0cf78b91368fac8bb11fd7a714e46f4c4fb1bb14d7283bce614a6fb3aae2f3fe209aba5b4fa051811c1cab6921d073a83db8432fb23292f27dd4161fb0f1 + languageName: node + linkType: hard + +"boolbase@npm:^1.0.0": + version: 1.0.0 + resolution: "boolbase@npm:1.0.0" + checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0 + languageName: node + linkType: hard + "bplist-parser@npm:^0.2.0": version: 0.2.0 resolution: "bplist-parser@npm:0.2.0" @@ -4773,7 +6309,7 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2": +"braces@npm:^3.0.2, braces@npm:~3.0.2": version: 3.0.2 resolution: "braces@npm:3.0.2" dependencies: @@ -4853,7 +6389,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.14.5, browserslist@npm:^4.21.9": +"browserslist@npm:^4.14.5, browserslist@npm:^4.21.10, browserslist@npm:^4.21.9": version: 4.21.10 resolution: "browserslist@npm:4.21.10" dependencies: @@ -4953,6 +6489,13 @@ __metadata: languageName: node linkType: hard +"bytes@npm:3.0.0": + version: 3.0.0 + resolution: "bytes@npm:3.0.0" + checksum: a2b386dd8188849a5325f58eef69c3b73c51801c08ffc6963eddc9be244089ba32d19347caf6d145c86f315ae1b1fc7061a32b0c1aa6379e6a719090287ed101 + languageName: node + linkType: hard + "bytes@npm:3.1.2, bytes@npm:^3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" @@ -5007,6 +6550,13 @@ __metadata: languageName: node linkType: hard +"camelcase-css@npm:^2.0.1": + version: 2.0.1 + resolution: "camelcase-css@npm:2.0.1" + checksum: 1cec2b3b3dcb5026688a470b00299a8db7d904c4802845c353dbd12d9d248d3346949a814d83bfd988d4d2e5b9904c07efe76fecd195a1d4f05b543e7c0b56b1 + languageName: node + linkType: hard + "camelcase-keys@npm:^6.2.2": version: 6.2.2 resolution: "camelcase-keys@npm:6.2.2" @@ -5032,6 +6582,13 @@ __metadata: languageName: node linkType: hard +"camelize@npm:^1.0.0": + version: 1.0.1 + resolution: "camelize@npm:1.0.1" + checksum: 91d8611d09af725e422a23993890d22b2b72b4cabf7239651856950c76b4bf53fe0d0da7c5e4db05180e898e4e647220e78c9fbc976113bd96d603d1fcbfcb99 + languageName: node + linkType: hard + "caniuse-lite@npm:^1.0.30001517": version: 1.0.30001518 resolution: "caniuse-lite@npm:1.0.30001518" @@ -5074,6 +6631,25 @@ __metadata: languageName: node linkType: hard +"chokidar@npm:^3.4.0, chokidar@npm:^3.5.3": + version: 3.5.3 + resolution: "chokidar@npm:3.5.3" + dependencies: + anymatch: ~3.1.2 + braces: ~3.0.2 + fsevents: ~2.3.2 + glob-parent: ~5.1.2 + is-binary-path: ~2.1.0 + is-glob: ~4.0.1 + normalize-path: ~3.0.0 + readdirp: ~3.6.0 + dependenciesMeta: + fsevents: + optional: true + checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c + languageName: node + linkType: hard + "chownr@npm:^2.0.0": version: 2.0.0 resolution: "chownr@npm:2.0.0" @@ -5250,7 +6826,7 @@ __metadata: languageName: node linkType: hard -"colorette@npm:^2.0.14": +"colorette@npm:^2.0.10, colorette@npm:^2.0.14": version: 2.0.20 resolution: "colorette@npm:2.0.20" checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d @@ -5297,6 +6873,20 @@ __metadata: languageName: node linkType: hard +"commander@npm:^4.0.0, commander@npm:^4.0.1": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 + languageName: node + linkType: hard + +"commander@npm:^7.2.0": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc + languageName: node + linkType: hard + "commander@npm:^9.0.0": version: 9.5.0 resolution: "commander@npm:9.5.0" @@ -5330,7 +6920,7 @@ __metadata: languageName: node linkType: hard -"compressible@npm:^2.0.18": +"compressible@npm:^2.0.18, compressible@npm:~2.0.16": version: 2.0.18 resolution: "compressible@npm:2.0.18" dependencies: @@ -5339,6 +6929,21 @@ __metadata: languageName: node linkType: hard +"compression@npm:^1.7.4": + version: 1.7.4 + resolution: "compression@npm:1.7.4" + dependencies: + accepts: ~1.3.5 + bytes: 3.0.0 + compressible: ~2.0.16 + debug: 2.6.9 + on-headers: ~1.0.2 + safe-buffer: 5.1.2 + vary: ~1.1.2 + checksum: 35c0f2eb1f28418978615dc1bc02075b34b1568f7f56c62d60f4214d4b7cc00d0f6d282b5f8a954f59872396bd770b6b15ffd8aa94c67d4bce9b8887b906999b + languageName: node + linkType: hard + "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -5386,6 +6991,13 @@ __metadata: languageName: node linkType: hard +"connect-history-api-fallback@npm:^2.0.0": + version: 2.0.0 + resolution: "connect-history-api-fallback@npm:2.0.0" + checksum: dc5368690f4a5c413889792f8df70d5941ca9da44523cde3f87af0745faee5ee16afb8195434550f0504726642734f2683d6c07f8b460f828a12c45fbd4c9a68 + languageName: node + linkType: hard + "console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" @@ -5393,7 +7005,7 @@ __metadata: languageName: node linkType: hard -"content-disposition@npm:~0.5.2": +"content-disposition@npm:0.5.4, content-disposition@npm:~0.5.2": version: 0.5.4 resolution: "content-disposition@npm:0.5.4" dependencies: @@ -5402,7 +7014,7 @@ __metadata: languageName: node linkType: hard -"content-type@npm:^1.0.4": +"content-type@npm:^1.0.4, content-type@npm:~1.0.4": version: 1.0.5 resolution: "content-type@npm:1.0.5" checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766 @@ -5416,7 +7028,7 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": +"convert-source-map@npm:^1.1.0, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 @@ -5437,6 +7049,20 @@ __metadata: languageName: node linkType: hard +"cookie-signature@npm:1.0.6": + version: 1.0.6 + resolution: "cookie-signature@npm:1.0.6" + checksum: f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a + languageName: node + linkType: hard + +"cookie@npm:0.5.0": + version: 0.5.0 + resolution: "cookie@npm:0.5.0" + checksum: 1f4bd2ca5765f8c9689a7e8954183f5332139eb72b6ff783d8947032ec1fdf43109852c178e21a953a30c0dd42257828185be01b49d1eb1a67fd054ca588a180 + languageName: node + linkType: hard + "cookiejar@npm:^2.1.4": version: 2.1.4 resolution: "cookiejar@npm:2.1.4" @@ -5461,6 +7087,31 @@ __metadata: languageName: node linkType: hard +"copy-webpack-plugin@npm:^11.0.0": + version: 11.0.0 + resolution: "copy-webpack-plugin@npm:11.0.0" + dependencies: + fast-glob: ^3.2.11 + glob-parent: ^6.0.1 + globby: ^13.1.1 + normalize-path: ^3.0.0 + schema-utils: ^4.0.0 + serialize-javascript: ^6.0.0 + peerDependencies: + webpack: ^5.1.0 + checksum: df4f8743f003a29ee7dd3d9b1789998a3a99051c92afb2ba2203d3dacfa696f4e757b275560fafb8f206e520a0aa78af34b990324a0e36c2326cefdeef3ca82e + languageName: node + linkType: hard + +"core-js-compat@npm:^3.31.0": + version: 3.32.1 + resolution: "core-js-compat@npm:3.32.1" + dependencies: + browserslist: ^4.21.10 + checksum: 2ce0002d6d2acabfc6f4c1ea32915683406a10051a186db354b761303cb6f5728f83887d070fb8d0072b5601bb16cb0d24555ee72bfa6df244f7b3ef74d61f76 + languageName: node + linkType: hard + "core-js@npm:^3.6.5": version: 3.32.0 resolution: "core-js@npm:3.32.0" @@ -5468,14 +7119,14 @@ __metadata: languageName: node linkType: hard -"core-util-is@npm:^1.0.2": +"core-util-is@npm:^1.0.2, core-util-is@npm:~1.0.0": version: 1.0.3 resolution: "core-util-is@npm:1.0.3" checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 languageName: node linkType: hard -"cosmiconfig@npm:8.2.0": +"cosmiconfig@npm:8.2.0, cosmiconfig@npm:^8.1.3": version: 8.2.0 resolution: "cosmiconfig@npm:8.2.0" dependencies: @@ -5549,37 +7200,113 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: ^3.1.0 - shebang-command: ^2.0.0 - which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"crypto-browserify@npm:^3.12.0": + version: 3.12.0 + resolution: "crypto-browserify@npm:3.12.0" + dependencies: + browserify-cipher: ^1.0.0 + browserify-sign: ^4.0.0 + create-ecdh: ^4.0.0 + create-hash: ^1.1.0 + create-hmac: ^1.1.0 + diffie-hellman: ^5.0.0 + inherits: ^2.0.1 + pbkdf2: ^3.0.3 + public-encrypt: ^4.0.0 + randombytes: ^2.0.0 + randomfill: ^1.0.3 + checksum: c1609af82605474262f3eaa07daa0b2140026bd264ab316d4bf1170272570dbe02f0c49e29407fe0d3634f96c507c27a19a6765fb856fed854a625f9d15618e2 + languageName: node + linkType: hard + +"css-color-keywords@npm:^1.0.0": + version: 1.0.0 + resolution: "css-color-keywords@npm:1.0.0" + checksum: 8f125e3ad477bd03c77b533044bd9e8a6f7c0da52d49bbc0bbe38327b3829d6ba04d368ca49dd9ff3b667d2fc8f1698d891c198bbf8feade1a5501bf5a296408 + languageName: node + linkType: hard + +"css-select@npm:^5.1.0": + version: 5.1.0 + resolution: "css-select@npm:5.1.0" + dependencies: + boolbase: ^1.0.0 + css-what: ^6.1.0 + domhandler: ^5.0.2 + domutils: ^3.0.1 + nth-check: ^2.0.1 + checksum: 2772c049b188d3b8a8159907192e926e11824aea525b8282981f72ba3f349cf9ecd523fdf7734875ee2cb772246c22117fc062da105b6d59afe8dcd5c99c9bda + languageName: node + linkType: hard + +"css-to-react-native@npm:^3.2.0": + version: 3.2.0 + resolution: "css-to-react-native@npm:3.2.0" + dependencies: + camelize: ^1.0.0 + css-color-keywords: ^1.0.0 + postcss-value-parser: ^4.0.2 + checksum: 263be65e805aef02c3f20c064665c998a8c35293e1505dbe6e3054fb186b01a9897ac6cf121f9840e5a9dfe3fb3994f6fcd0af84a865f1df78ba5bf89e77adce + languageName: node + linkType: hard + +"css-tree@npm:^2.2.1": + version: 2.3.1 + resolution: "css-tree@npm:2.3.1" + dependencies: + mdn-data: 2.0.30 + source-map-js: ^1.0.1 + checksum: 493cc24b5c22b05ee5314b8a0d72d8a5869491c1458017ae5ed75aeb6c3596637dbe1b11dac2548974624adec9f7a1f3a6cf40593dc1f9185eb0e8279543fbc0 + languageName: node + linkType: hard + +"css-tree@npm:~2.2.0": + version: 2.2.1 + resolution: "css-tree@npm:2.2.1" + dependencies: + mdn-data: 2.0.28 + source-map-js: ^1.0.1 + checksum: b94aa8cc2f09e6f66c91548411fcf74badcbad3e150345074715012d16333ce573596ff5dfca03c2a87edf1924716db765120f94247e919d72753628ba3aba27 + languageName: node + linkType: hard + +"css-what@npm:^6.1.0": + version: 6.1.0 + resolution: "css-what@npm:6.1.0" + checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 languageName: node linkType: hard -"crypto-browserify@npm:^3.12.0": - version: 3.12.0 - resolution: "crypto-browserify@npm:3.12.0" +"csso@npm:^5.0.5": + version: 5.0.5 + resolution: "csso@npm:5.0.5" dependencies: - browserify-cipher: ^1.0.0 - browserify-sign: ^4.0.0 - create-ecdh: ^4.0.0 - create-hash: ^1.1.0 - create-hmac: ^1.1.0 - diffie-hellman: ^5.0.0 - inherits: ^2.0.1 - pbkdf2: ^3.0.3 - public-encrypt: ^4.0.0 - randombytes: ^2.0.0 - randomfill: ^1.0.3 - checksum: c1609af82605474262f3eaa07daa0b2140026bd264ab316d4bf1170272570dbe02f0c49e29407fe0d3634f96c507c27a19a6765fb856fed854a625f9d15618e2 + css-tree: ~2.2.0 + checksum: 0ad858d36bf5012ed243e9ec69962a867509061986d2ee07cc040a4b26e4d062c00d4c07e5ba8d430706ceb02dd87edd30a52b5937fd45b1b6f2119c4993d59a languageName: node linkType: hard -"csstype@npm:^3.0.2": +"csstype@npm:^3.0.2, csstype@npm:^3.1.2": version: 3.1.2 resolution: "csstype@npm:3.1.2" checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 @@ -5623,6 +7350,15 @@ __metadata: languageName: node linkType: hard +"debug@npm:2.6.9": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: 2.0.0 + checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 + languageName: node + linkType: hard + "debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" @@ -5687,7 +7423,14 @@ __metadata: languageName: node linkType: hard -"deepmerge@npm:^4.2.2": +"deepmerge@npm:^2.1.1": + version: 2.2.1 + resolution: "deepmerge@npm:2.2.1" + checksum: 284b71065079e66096229f735a9a0222463c9ca9ee9dda7d5e9a0545bf254906dbc7377e3499ca3b2212073672b1a430d80587993b43b87d8de17edc6af649a8 + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 @@ -5716,7 +7459,7 @@ __metadata: languageName: node linkType: hard -"default-gateway@npm:^6.0.2": +"default-gateway@npm:^6.0.2, default-gateway@npm:^6.0.3": version: 6.0.3 resolution: "default-gateway@npm:6.0.3" dependencies: @@ -5735,6 +7478,13 @@ __metadata: languageName: node linkType: hard +"define-lazy-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "define-lazy-prop@npm:2.0.0" + checksum: 0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2 + languageName: node + linkType: hard + "define-lazy-prop@npm:^3.0.0": version: 3.0.0 resolution: "define-lazy-prop@npm:3.0.0" @@ -5808,7 +7558,7 @@ __metadata: languageName: node linkType: hard -"destroy@npm:^1.0.4": +"destroy@npm:1.2.0, destroy@npm:^1.0.4": version: 1.2.0 resolution: "destroy@npm:1.2.0" checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 @@ -5822,7 +7572,7 @@ __metadata: languageName: node linkType: hard -"detect-node@npm:^2.1.0": +"detect-node@npm:^2.0.4, detect-node@npm:^2.1.0": version: 2.1.0 resolution: "detect-node@npm:2.1.0" checksum: 832184ec458353e41533ac9c622f16c19f7c02d8b10c303dfd3a756f56be93e903616c0bb2d4226183c9351c15fc0b3dba41a17a2308262afabcfa3776e6ae6e @@ -5853,6 +7603,13 @@ __metadata: languageName: node linkType: hard +"didyoumean@npm:^1.2.2": + version: 1.2.2 + resolution: "didyoumean@npm:1.2.2" + checksum: d5d98719d58b3c2fa59663c4c42ba9716f1fd01245c31d5fce31915bd3aa26e6aac149788e007358f778ebbd68a2256eb5973e8ca6f221df221ba060115acf2e + languageName: node + linkType: hard + "diff-sequences@npm:^29.4.3": version: 29.4.3 resolution: "diff-sequences@npm:29.4.3" @@ -5887,6 +7644,20 @@ __metadata: languageName: node linkType: hard +"dlv@npm:^1.1.3": + version: 1.1.3 + resolution: "dlv@npm:1.1.3" + checksum: d7381bca22ed11933a1ccf376db7a94bee2c57aa61e490f680124fa2d1cd27e94eba641d9f45be57caab4f9a6579de0983466f620a2cd6230d7ec93312105ae7 + languageName: node + linkType: hard + +"dns-equal@npm:^1.0.0": + version: 1.0.0 + resolution: "dns-equal@npm:1.0.0" + checksum: a8471ac849c7c13824f053babea1bc26e2f359394dd5a460f8340d8abd13434be01e3327a5c59d212f8c8997817450efd3f3ac77bec709b21979cf0235644524 + languageName: node + linkType: hard + "dns-over-http-resolver@npm:^2.1.0": version: 2.1.1 resolution: "dns-over-http-resolver@npm:2.1.1" @@ -5899,6 +7670,15 @@ __metadata: languageName: node linkType: hard +"dns-packet@npm:^5.2.2": + version: 5.6.1 + resolution: "dns-packet@npm:5.6.1" + dependencies: + "@leichtgewicht/ip-codec": ^2.0.1 + checksum: 64c06457f0c6e143f7a0946e0aeb8de1c5f752217cfa143ef527467c00a6d78db1835cfdb6bb68333d9f9a4963cf23f410439b5262a8935cce1236f45e344b81 + languageName: node + linkType: hard + "doctrine@npm:^2.1.0": version: 2.1.0 resolution: "doctrine@npm:2.1.0" @@ -5917,6 +7697,54 @@ __metadata: languageName: node linkType: hard +"dom-serializer@npm:^2.0.0": + version: 2.0.0 + resolution: "dom-serializer@npm:2.0.0" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.2 + entities: ^4.2.0 + checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 + languageName: node + linkType: hard + +"domelementtype@npm:^2.3.0": + version: 2.3.0 + resolution: "domelementtype@npm:2.3.0" + checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 + languageName: node + linkType: hard + +"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": + version: 5.0.3 + resolution: "domhandler@npm:5.0.3" + dependencies: + domelementtype: ^2.3.0 + checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c + languageName: node + linkType: hard + +"domutils@npm:^3.0.1": + version: 3.1.0 + resolution: "domutils@npm:3.1.0" + dependencies: + dom-serializer: ^2.0.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 + languageName: node + linkType: hard + +"dot-case@npm:^3.0.4": + version: 3.0.4 + resolution: "dot-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169 + languageName: node + linkType: hard + "dotenv@npm:^16.0.3": version: 16.3.1 resolution: "dotenv@npm:16.3.1" @@ -5995,7 +7823,7 @@ __metadata: languageName: node linkType: hard -"encodeurl@npm:^1.0.2": +"encodeurl@npm:^1.0.2, encodeurl@npm:~1.0.2": version: 1.0.2 resolution: "encodeurl@npm:1.0.2" checksum: e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c @@ -6030,6 +7858,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^4.2.0, entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -6238,7 +8073,7 @@ __metadata: languageName: node linkType: hard -"escape-html@npm:^1.0.3": +"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 @@ -6598,6 +8433,13 @@ __metadata: languageName: node linkType: hard +"etag@npm:~1.8.1": + version: 1.8.1 + resolution: "etag@npm:1.8.1" + checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff + languageName: node + linkType: hard + "event-iterator@npm:^2.0.0": version: 2.0.0 resolution: "event-iterator@npm:2.0.0" @@ -6620,7 +8462,7 @@ __metadata: languageName: node linkType: hard -"eventemitter3@npm:^4.0.7": +"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.7": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 @@ -6707,6 +8549,45 @@ __metadata: languageName: node linkType: hard +"express@npm:^4.17.3": + version: 4.18.2 + resolution: "express@npm:4.18.2" + dependencies: + accepts: ~1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + content-disposition: 0.5.4 + content-type: ~1.0.4 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: ~1.0.2 + escape-html: ~1.0.3 + etag: ~1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: ~1.1.2 + on-finished: 2.4.1 + parseurl: ~1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: ~2.0.7 + qs: 6.11.0 + range-parser: ~1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: ~1.6.18 + utils-merge: 1.0.1 + vary: ~1.1.2 + checksum: 3c4b9b076879442f6b968fe53d85d9f1eeacbb4f4c41e5f16cc36d77ce39a2b0d81b3f250514982110d815b2f7173f5561367f9110fcc541f9371948e8c8b037 + languageName: node + linkType: hard + "extract-zip@npm:2.0.1": version: 2.0.1 resolution: "extract-zip@npm:2.0.1" @@ -6738,7 +8619,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": +"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": version: 3.3.1 resolution: "fast-glob@npm:3.3.1" dependencies: @@ -6788,6 +8669,15 @@ __metadata: languageName: node linkType: hard +"faye-websocket@npm:^0.11.3": + version: 0.11.4 + resolution: "faye-websocket@npm:0.11.4" + dependencies: + websocket-driver: ">=0.5.1" + checksum: d49a62caf027f871149fc2b3f3c7104dc6d62744277eb6f9f36e2d5714e847d846b9f7f0d0b7169b25a012e24a594cde11a93034b30732e4c683f20b8a5019fa + languageName: node + linkType: hard + "fb-watchman@npm:^2.0.0": version: 2.0.2 resolution: "fb-watchman@npm:2.0.2" @@ -6840,6 +8730,21 @@ __metadata: languageName: node linkType: hard +"finalhandler@npm:1.2.0": + version: 1.2.0 + resolution: "finalhandler@npm:1.2.0" + dependencies: + debug: 2.6.9 + encodeurl: ~1.0.2 + escape-html: ~1.0.3 + on-finished: 2.4.1 + parseurl: ~1.3.3 + statuses: 2.0.1 + unpipe: ~1.0.0 + checksum: 92effbfd32e22a7dff2994acedbd9bcc3aa646a3e919ea6a53238090e87097f8ef07cced90aa2cc421abdf993aefbdd5b00104d55c7c5479a8d00ed105b45716 + languageName: node + linkType: hard + "find-up@npm:^4.0.0, find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" @@ -6884,6 +8789,16 @@ __metadata: languageName: node linkType: hard +"follow-redirects@npm:^1.0.0": + version: 1.15.2 + resolution: "follow-redirects@npm:1.15.2" + peerDependenciesMeta: + debug: + optional: true + checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190 + languageName: node + linkType: hard + "for-each@npm:^0.3.3": version: 0.3.3 resolution: "for-each@npm:0.3.3" @@ -6926,6 +8841,30 @@ __metadata: languageName: node linkType: hard +"formik@npm:^2.4.3": + version: 2.4.3 + resolution: "formik@npm:2.4.3" + dependencies: + deepmerge: ^2.1.1 + hoist-non-react-statics: ^3.3.0 + lodash: ^4.17.21 + lodash-es: ^4.17.21 + react-fast-compare: ^2.0.1 + tiny-warning: ^1.0.2 + tslib: ^2.0.0 + peerDependencies: + react: ">=16.8.0" + checksum: d98dabfce97beb5cf2ff10bdaff61e0cb9e1d29090cfcad706efc793d06674cfe65299d432d32518a2756a58b6b6bfe85ceec8b47b4f5f9dcc375bcd7a37107a + languageName: node + linkType: hard + +"forwarded@npm:0.2.0": + version: 0.2.0 + resolution: "forwarded@npm:0.2.0" + checksum: fd27e2394d8887ebd16a66ffc889dc983fbbd797d5d3f01087c020283c0f019a7d05ee85669383d8e0d216b116d720fc0cef2f6e9b7eb9f4c90c6e0bc7fd28e6 + languageName: node + linkType: hard + "freeport-promise@npm:^2.0.0": version: 2.0.0 resolution: "freeport-promise@npm:2.0.0" @@ -6933,7 +8872,7 @@ __metadata: languageName: node linkType: hard -"fresh@npm:~0.5.2": +"fresh@npm:0.5.2, fresh@npm:~0.5.2": version: 0.5.2 resolution: "fresh@npm:0.5.2" checksum: 13ea8b08f91e669a64e3ba3a20eb79d7ca5379a81f1ff7f4310d54e2320645503cc0c78daedc93dfb6191287295f6479544a649c64d8e41a1c0fb0c221552346 @@ -6987,6 +8926,20 @@ __metadata: languageName: node linkType: hard +"fs-monkey@npm:^1.0.4": + version: 1.0.4 + resolution: "fs-monkey@npm:1.0.4" + checksum: 8b254c982905c0b7e028eab22b410dc35a5c0019c1c860456f5f54ae6a61666e1cb8c6b700d6c88cc873694c00953c935847b9959cc4dcf274aacb8673c1e8bf + languageName: node + linkType: hard + +"fs-readdir-recursive@npm:^1.1.0": + version: 1.1.0 + resolution: "fs-readdir-recursive@npm:1.1.0" + checksum: 29d50f3d2128391c7fc9fd051c8b7ea45bcc8aa84daf31ef52b17218e20bfd2bd34d02382742801954cc8d1905832b68227f6b680a666ce525d8b6b75068ad1e + languageName: node + linkType: hard + "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" @@ -7156,7 +9109,7 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^5.1.2": +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" dependencies: @@ -7165,7 +9118,7 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^6.0.2": +"glob-parent@npm:^6.0.1, glob-parent@npm:^6.0.2": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" dependencies: @@ -7181,6 +9134,20 @@ __metadata: languageName: node linkType: hard +"glob@npm:7.1.6": + version: 7.1.6 + resolution: "glob@npm:7.1.6" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.0.4 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 351d549dd90553b87c2d3f90ce11aed9e1093c74130440e7ae0592e11bbcd2ce7f0ebb8ba6bfe63aaf9b62166a7f4c80cb84490ae5d78408bb2572bf7d4ee0a6 + languageName: node + linkType: hard + "glob@npm:^10.2.2": version: 10.3.3 resolution: "glob@npm:10.3.3" @@ -7196,7 +9163,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4": +"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -7249,7 +9216,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^13.1.3": +"globby@npm:^13.1.1, globby@npm:^13.1.3": version: 13.2.2 resolution: "globby@npm:13.2.2" dependencies: @@ -7285,6 +9252,13 @@ __metadata: languageName: node linkType: hard +"handle-thing@npm:^2.0.0": + version: 2.0.1 + resolution: "handle-thing@npm:2.0.1" + checksum: 68071f313062315cd9dce55710e9496873945f1dd425107007058fc1629f93002a7649fcc3e464281ce02c7e809a35f5925504ab8105d972cf649f1f47cb7d6c + languageName: node + linkType: hard + "hard-rejection@npm:^2.1.0": version: 2.1.0 resolution: "hard-rejection@npm:2.1.0" @@ -7414,6 +9388,15 @@ __metadata: languageName: node linkType: hard +"hoist-non-react-statics@npm:^3.3.0": + version: 3.3.2 + resolution: "hoist-non-react-statics@npm:3.3.2" + dependencies: + react-is: ^16.7.0 + checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 + languageName: node + linkType: hard + "hosted-git-info@npm:^2.1.4": version: 2.8.9 resolution: "hosted-git-info@npm:2.8.9" @@ -7421,6 +9404,25 @@ __metadata: languageName: node linkType: hard +"hpack.js@npm:^2.1.6": + version: 2.1.6 + resolution: "hpack.js@npm:2.1.6" + dependencies: + inherits: ^2.0.1 + obuf: ^1.0.0 + readable-stream: ^2.0.1 + wbuf: ^1.1.0 + checksum: 2de144115197967ad6eeee33faf41096c6ba87078703c5cb011632dcfbffeb45784569e0cf02c317bd79c48375597c8ec88c30fff5bb0b023e8f654fb6e9c06e + languageName: node + linkType: hard + +"html-entities@npm:^2.3.2": + version: 2.4.0 + resolution: "html-entities@npm:2.4.0" + checksum: 25bea32642ce9ebd0eedc4d24381883ecb0335ccb8ac26379a0958b9b16652fdbaa725d70207ce54a51db24103436a698a8e454397d3ba8ad81460224751f1dc + languageName: node + linkType: hard + "html-escaper@npm:^2.0.0": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" @@ -7445,6 +9447,13 @@ __metadata: languageName: node linkType: hard +"http-deceiver@npm:^1.2.7": + version: 1.2.7 + resolution: "http-deceiver@npm:1.2.7" + checksum: 64d7d1ae3a6933eb0e9a94e6f27be4af45a53a96c3c34e84ff57113787105a89fff9d1c3df263ef63add823df019b0e8f52f7121e32393bb5ce9a713bf100b41 + languageName: node + linkType: hard + "http-errors@npm:2.0.0, http-errors@npm:^2.0.0": version: 2.0.0 resolution: "http-errors@npm:2.0.0" @@ -7483,6 +9492,13 @@ __metadata: languageName: node linkType: hard +"http-parser-js@npm:>=0.5.1": + version: 0.5.8 + resolution: "http-parser-js@npm:0.5.8" + checksum: 6bbdf2429858e8cf13c62375b0bfb6dc3955ca0f32e58237488bc86cd2378f31d31785fd3ac4ce93f1c74e0189cf8823c91f5cb061696214fd368d2452dc871d + languageName: node + linkType: hard + "http-proxy-agent@npm:^5.0.0": version: 5.0.0 resolution: "http-proxy-agent@npm:5.0.0" @@ -7504,6 +9520,35 @@ __metadata: languageName: node linkType: hard +"http-proxy-middleware@npm:^2.0.3": + version: 2.0.6 + resolution: "http-proxy-middleware@npm:2.0.6" + dependencies: + "@types/http-proxy": ^1.17.8 + http-proxy: ^1.18.1 + is-glob: ^4.0.1 + is-plain-obj: ^3.0.0 + micromatch: ^4.0.2 + peerDependencies: + "@types/express": ^4.17.13 + peerDependenciesMeta: + "@types/express": + optional: true + checksum: 2ee85bc878afa6cbf34491e972ece0f5be0a3e5c98a60850cf40d2a9a5356e1fc57aab6cff33c1fc37691b0121c3a42602d2b1956c52577e87a5b77b62ae1c3a + languageName: node + linkType: hard + +"http-proxy@npm:^1.18.1": + version: 1.18.1 + resolution: "http-proxy@npm:1.18.1" + dependencies: + eventemitter3: ^4.0.0 + follow-redirects: ^1.0.0 + requires-port: ^1.0.0 + checksum: f5bd96bf83e0b1e4226633dbb51f8b056c3e6321917df402deacec31dd7fe433914fc7a2c1831cf7ae21e69c90b3a669b8f434723e9e8b71fd68afe30737b6a5 + languageName: node + linkType: hard + "https-proxy-agent@npm:^5.0.0": version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" @@ -7632,7 +9677,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.4": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 @@ -7703,7 +9748,14 @@ __metadata: languageName: node linkType: hard -"ipaddr.js@npm:^2.1.0": +"ipaddr.js@npm:1.9.1": + version: 1.9.1 + resolution: "ipaddr.js@npm:1.9.1" + checksum: f88d3825981486f5a1942414c8d77dd6674dd71c065adcfa46f578d677edcb99fda25af42675cb59db492fdf427b34a5abfcde3982da11a8fd83a500b41cfe77 + languageName: node + linkType: hard + +"ipaddr.js@npm:^2.0.1, ipaddr.js@npm:^2.1.0": version: 2.1.0 resolution: "ipaddr.js@npm:2.1.0" checksum: 807a054f2bd720c4d97ee479d6c9e865c233bea21f139fb8dabd5a35c4226d2621c42e07b4ad94ff3f82add926a607d8d9d37c625ad0319f0e08f9f2bd1968e2 @@ -7754,6 +9806,15 @@ __metadata: languageName: node linkType: hard +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: ^2.0.0 + checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c + languageName: node + linkType: hard + "is-boolean-object@npm:^1.1.0": version: 1.1.2 resolution: "is-boolean-object@npm:1.1.2" @@ -7787,6 +9848,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.13.0": + version: 2.13.0 + resolution: "is-core-module@npm:2.13.0" + dependencies: + has: ^1.0.3 + checksum: 053ab101fb390bfeb2333360fd131387bed54e476b26860dc7f5a700bbf34a0ec4454f7c8c4d43e8a0030957e4b3db6e16d35e1890ea6fb654c833095e040355 + languageName: node + linkType: hard + "is-date-object@npm:^1.0.1": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" @@ -7796,7 +9866,7 @@ __metadata: languageName: node linkType: hard -"is-docker@npm:^2.0.0": +"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": version: 2.2.1 resolution: "is-docker@npm:2.2.1" bin: @@ -7851,7 +9921,7 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: @@ -7929,6 +9999,13 @@ __metadata: languageName: node linkType: hard +"is-plain-obj@npm:^3.0.0": + version: 3.0.0 + resolution: "is-plain-obj@npm:3.0.0" + checksum: a6ebdf8e12ab73f33530641972a72a4b8aed6df04f762070d823808303e4f76d87d5ea5bd76f96a7bbe83d93f04ac7764429c29413bd9049853a69cb630fb21c + languageName: node + linkType: hard + "is-plain-object@npm:^2.0.4": version: 2.0.4 resolution: "is-plain-object@npm:2.0.4" @@ -8023,6 +10100,13 @@ __metadata: languageName: node linkType: hard +"isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab + languageName: node + linkType: hard + "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -8823,6 +10907,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:^1.18.2": + version: 1.19.3 + resolution: "jiti@npm:1.19.3" + bin: + jiti: bin/jiti.js + checksum: de3dacdfe30948d96b69712b04cc28127c17f43d5233a5aa069933e04ac4c9aaf265bef4cdf2b0c2a6f5af236a58aea9bfea83e8e289e2490802bdff7f99bff7 + languageName: node + linkType: hard + "jju@npm:~1.4.0": version: 1.4.0 resolution: "jju@npm:1.4.0" @@ -8876,6 +10969,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:~0.5.0": + version: 0.5.0 + resolution: "jsesc@npm:0.5.0" + bin: + jsesc: bin/jsesc + checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17 + languageName: node + linkType: hard + "json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" @@ -8890,6 +10992,13 @@ __metadata: languageName: node linkType: hard +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad + languageName: node + linkType: hard + "json-stable-stringify-without-jsonify@npm:^1.0.1": version: 1.0.1 resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" @@ -9090,6 +11199,16 @@ __metadata: languageName: node linkType: hard +"launch-editor@npm:^2.6.0": + version: 2.6.0 + resolution: "launch-editor@npm:2.6.0" + dependencies: + picocolors: ^1.0.0 + shell-quote: ^1.7.3 + checksum: 48e4230643e8fdb5c14c11314706d58d9f3fbafe2606be3d6e37da1918ad8bfe39dd87875c726a1b59b9f4da99d87ec3e36d4c528464f0b820f9e91e5cb1c02d + languageName: node + linkType: hard + "level-concat-iterator@npm:^3.0.0": version: 3.1.0 resolution: "level-concat-iterator@npm:3.1.0" @@ -9220,6 +11339,13 @@ __metadata: languageName: node linkType: hard +"lilconfig@npm:^2.0.5, lilconfig@npm:^2.1.0": + version: 2.1.0 + resolution: "lilconfig@npm:2.1.0" + checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -9264,6 +11390,13 @@ __metadata: languageName: node linkType: hard +"lodash-es@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash-es@npm:4.17.21" + checksum: 05cbffad6e2adbb331a4e16fbd826e7faee403a1a04873b82b42c0f22090f280839f85b95393f487c1303c8a3d2a010048bf06151a6cbe03eee4d388fb0a12d2 + languageName: node + linkType: hard + "lodash.camelcase@npm:^4.3.0": version: 4.3.0 resolution: "lodash.camelcase@npm:4.3.0" @@ -9306,6 +11439,13 @@ __metadata: languageName: node linkType: hard +"lodash.debounce@npm:^4.0.8": + version: 4.0.8 + resolution: "lodash.debounce@npm:4.0.8" + checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 + languageName: node + linkType: hard + "lodash.every@npm:^4.6.0": version: 4.6.0 resolution: "lodash.every@npm:4.6.0" @@ -9446,6 +11586,15 @@ __metadata: languageName: node linkType: hard +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -9492,6 +11641,16 @@ __metadata: languageName: node linkType: hard +"make-dir@npm:^2.1.0": + version: 2.1.0 + resolution: "make-dir@npm:2.1.0" + dependencies: + pify: ^4.0.1 + semver: ^5.6.0 + checksum: 043548886bfaf1820323c6a2997e6d2fa51ccc2586ac14e6f14634f7458b4db2daf15f8c310e2a0abd3e0cddc64df1890d8fc7263033602c47bb12cbfcf86aab + languageName: node + linkType: hard + "make-dir@npm:^4.0.0": version: 4.0.0 resolution: "make-dir@npm:4.0.0" @@ -9581,6 +11740,20 @@ __metadata: languageName: node linkType: hard +"mdn-data@npm:2.0.28": + version: 2.0.28 + resolution: "mdn-data@npm:2.0.28" + checksum: f51d587a6ebe8e426c3376c74ea6df3e19ec8241ed8e2466c9c8a3904d5d04397199ea4f15b8d34d14524b5de926d8724ae85207984be47e165817c26e49e0aa + languageName: node + linkType: hard + +"mdn-data@npm:2.0.30": + version: 2.0.30 + resolution: "mdn-data@npm:2.0.30" + checksum: d6ac5ac7439a1607df44b22738ecf83f48e66a0874e4482d6424a61c52da5cde5750f1d1229b6f5fa1b80a492be89465390da685b11f97d62b8adcc6e88189aa + languageName: node + linkType: hard + "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -9601,6 +11774,15 @@ __metadata: languageName: node linkType: hard +"memfs@npm:^3.4.3": + version: 3.5.3 + resolution: "memfs@npm:3.5.3" + dependencies: + fs-monkey: ^1.0.4 + checksum: 18dfdeacad7c8047b976a6ccd58bc98ba76e122ad3ca0e50a21837fe2075fc0d9aafc58ab9cf2576c2b6889da1dd2503083f2364191b695273f40969db2ecc44 + languageName: node + linkType: hard + "meow@npm:^7.1.1": version: 7.1.1 resolution: "meow@npm:7.1.1" @@ -9620,6 +11802,13 @@ __metadata: languageName: node linkType: hard +"merge-descriptors@npm:1.0.1": + version: 1.0.1 + resolution: "merge-descriptors@npm:1.0.1" + checksum: 5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26 + languageName: node + linkType: hard + "merge-options@npm:^3.0.4": version: 3.0.4 resolution: "merge-options@npm:3.0.4" @@ -9643,14 +11832,14 @@ __metadata: languageName: node linkType: hard -"methods@npm:^1.1.2": +"methods@npm:^1.1.2, methods@npm:~1.1.2": version: 1.1.2 resolution: "methods@npm:1.1.2" checksum: 0917ff4041fa8e2f2fda5425a955fe16ca411591fbd123c0d722fcf02b73971ed6f764d85f0a6f547ce49ee0221ce2c19a5fa692157931cecb422984f1dcd13a languageName: node linkType: hard -"micromatch@npm:^4.0.0, micromatch@npm:^4.0.4": +"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -9679,7 +11868,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.18, mime-types@npm:^2.1.27, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.18, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -9688,6 +11877,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:1.6.0": + version: 1.6.0 + resolution: "mime@npm:1.6.0" + bin: + mime: cli.js + checksum: fef25e39263e6d207580bdc629f8872a3f9772c923c7f8c7e793175cee22777bbe8bba95e5d509a40aaa292d8974514ce634ae35769faa45f22d17edda5e8557 + languageName: node + linkType: hard + "mime@npm:2.6.0": version: 2.6.0 resolution: "mime@npm:2.6.0" @@ -9901,6 +12099,13 @@ __metadata: languageName: node linkType: hard +"ms@npm:2.0.0": + version: 2.0.0 + resolution: "ms@npm:2.0.0" + checksum: 0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 + languageName: node + linkType: hard + "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -9908,13 +12113,25 @@ __metadata: languageName: node linkType: hard -"ms@npm:^2.0.0, ms@npm:^2.1.1": +"ms@npm:2.1.3, ms@npm:^2.0.0, ms@npm:^2.1.1": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d languageName: node linkType: hard +"multicast-dns@npm:^7.2.5": + version: 7.2.5 + resolution: "multicast-dns@npm:7.2.5" + dependencies: + dns-packet: ^5.2.2 + thunky: ^1.0.2 + bin: + multicast-dns: cli.js + checksum: 00b8a57df152d4cd0297946320a94b7c3cdf75a46a2247f32f958a8927dea42958177f9b7fdae69fab2e4e033fb3416881af1f5e9055a3e1542888767139e2fb + languageName: node + linkType: hard + "multiformats@npm:^11.0.0, multiformats@npm:^11.0.2": version: 11.0.2 resolution: "multiformats@npm:11.0.2" @@ -9929,6 +12146,17 @@ __metadata: languageName: node linkType: hard +"mz@npm:^2.7.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: ^1.0.0 + object-assign: ^4.0.1 + thenify-all: ^1.0.0 + checksum: 8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87 + languageName: node + linkType: hard + "nanoid@npm:^3.3.6": version: 3.3.6 resolution: "nanoid@npm:3.3.6" @@ -9998,6 +12226,16 @@ __metadata: languageName: node linkType: hard +"no-case@npm:^3.0.4": + version: 3.0.4 + resolution: "no-case@npm:3.0.4" + dependencies: + lower-case: ^2.0.2 + tslib: ^2.0.3 + checksum: 0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c + languageName: node + linkType: hard + "node-cleanup@npm:^2.1.2": version: 2.1.2 resolution: "node-cleanup@npm:2.1.2" @@ -10019,7 +12257,7 @@ __metadata: languageName: node linkType: hard -"node-forge@npm:^1.1.0": +"node-forge@npm:^1, node-forge@npm:^1.1.0": version: 1.3.1 resolution: "node-forge@npm:1.3.1" checksum: 08fb072d3d670599c89a1704b3e9c649ff1b998256737f0e06fbd1a5bf41cae4457ccaee32d95052d80bbafd9ffe01284e078c8071f0267dc9744e51c5ed42a9 @@ -10095,7 +12333,7 @@ __metadata: languageName: node linkType: hard -"normalize-path@npm:^3.0.0": +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 @@ -10132,6 +12370,22 @@ __metadata: languageName: node linkType: hard +"nth-check@npm:^2.0.1": + version: 2.1.1 + resolution: "nth-check@npm:2.1.1" + dependencies: + boolbase: ^1.0.0 + checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3 + languageName: node + linkType: hard + +"object-assign@npm:^4.0.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + "object-hash@npm:^2.0.1": version: 2.2.0 resolution: "object-hash@npm:2.2.0" @@ -10139,6 +12393,13 @@ __metadata: languageName: node linkType: hard +"object-hash@npm:^3.0.0": + version: 3.0.0 + resolution: "object-hash@npm:3.0.0" + checksum: 80b4904bb3857c52cc1bfd0b52c0352532ca12ed3b8a6ff06a90cd209dfda1b95cee059a7625eb9da29537027f68ac4619363491eedb2f5d3dddbba97494fd6c + languageName: node + linkType: hard + "object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": version: 1.12.3 resolution: "object-inspect@npm:1.12.3" @@ -10206,7 +12467,14 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:^2.3.0": +"obuf@npm:^1.0.0, obuf@npm:^1.1.2": + version: 1.1.2 + resolution: "obuf@npm:1.1.2" + checksum: 41a2ba310e7b6f6c3b905af82c275bf8854896e2e4c5752966d64cbcd2f599cfffd5932006bcf3b8b419dfdacebb3a3912d5d94e10f1d0acab59876c8757f27f + languageName: node + linkType: hard + +"on-finished@npm:2.4.1, on-finished@npm:^2.3.0": version: 2.4.1 resolution: "on-finished@npm:2.4.1" dependencies: @@ -10215,6 +12483,13 @@ __metadata: languageName: node linkType: hard +"on-headers@npm:~1.0.2": + version: 1.0.2 + resolution: "on-headers@npm:1.0.2" + checksum: 2bf13467215d1e540a62a75021e8b318a6cfc5d4fc53af8e8f84ad98dbcea02d506c6d24180cd62e1d769c44721ba542f3154effc1f7579a8288c9f7873ed8e5 + languageName: node + linkType: hard + "once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -10258,6 +12533,17 @@ __metadata: languageName: node linkType: hard +"open@npm:^8.0.9": + version: 8.4.2 + resolution: "open@npm:8.4.2" + dependencies: + define-lazy-prop: ^2.0.0 + is-docker: ^2.1.1 + is-wsl: ^2.2.0 + checksum: 6388bfff21b40cb9bd8f913f9130d107f2ed4724ea81a8fd29798ee322b361ca31fa2cdfb491a5c31e43a3996cfe9566741238c7a741ada8d7af1cb78d85cf26 + languageName: node + linkType: hard + "open@npm:^9.1.0": version: 9.1.0 resolution: "open@npm:9.1.0" @@ -10355,6 +12641,16 @@ __metadata: languageName: node linkType: hard +"p-retry@npm:^4.5.0": + version: 4.6.2 + resolution: "p-retry@npm:4.6.2" + dependencies: + "@types/retry": 0.12.0 + retry: ^0.13.1 + checksum: 45c270bfddaffb4a895cea16cb760dcc72bdecb6cb45fef1971fa6ea2e91ddeafddefe01e444ac73e33b1b3d5d29fb0dd18a7effb294262437221ddc03ce0f2e + languageName: node + linkType: hard + "p-retry@npm:^5.0.0": version: 5.1.2 resolution: "p-retry@npm:5.1.2" @@ -10454,7 +12750,7 @@ __metadata: languageName: node linkType: hard -"parseurl@npm:^1.3.2": +"parseurl@npm:^1.3.2, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 @@ -10506,6 +12802,13 @@ __metadata: languageName: node linkType: hard +"path-to-regexp@npm:0.1.7": + version: 0.1.7 + resolution: "path-to-regexp@npm:0.1.7" + checksum: 69a14ea24db543e8b0f4353305c5eac6907917031340e5a8b37df688e52accd09e3cebfe1660b70d76b6bd89152f52183f28c74813dbf454ba1a01c82a38abce + languageName: node + linkType: hard + "path-to-regexp@npm:^6.2.1": version: 6.2.1 resolution: "path-to-regexp@npm:6.2.1" @@ -10556,14 +12859,28 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf languageName: node linkType: hard -"pirates@npm:^4.0.4": +"pify@npm:^2.3.0": + version: 2.3.0 + resolution: "pify@npm:2.3.0" + checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba + languageName: node + linkType: hard + +"pify@npm:^4.0.1": + version: 4.0.1 + resolution: "pify@npm:4.0.1" + checksum: 9c4e34278cb09987685fa5ef81499c82546c033713518f6441778fbec623fc708777fe8ac633097c72d88470d5963094076c7305cafc7ad340aae27cfacd856b + languageName: node + linkType: hard + +"pirates@npm:^4.0.1, pirates@npm:^4.0.4": version: 4.0.6 resolution: "pirates@npm:4.0.6" checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 @@ -10586,18 +12903,77 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.26": - version: 8.4.27 - resolution: "postcss@npm:8.4.27" +"postcss-import@npm:^15.1.0": + version: 15.1.0 + resolution: "postcss-import@npm:15.1.0" dependencies: - nanoid: ^3.3.6 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: 1cdd0c298849df6cd65f7e646a3ba36870a37b65f55fd59d1a165539c263e9b4872a402bf4ed1ca1bc31f58b68b2835545e33ea1a23b161a1f8aa6d5ded81e78 + postcss-value-parser: ^4.0.0 + read-cache: ^1.0.0 + resolve: ^1.1.7 + peerDependencies: + postcss: ^8.0.0 + checksum: 7bd04bd8f0235429009d0022cbf00faebc885de1d017f6d12ccb1b021265882efc9302006ba700af6cab24c46bfa2f3bc590be3f9aee89d064944f171b04e2a3 + languageName: node + linkType: hard + +"postcss-js@npm:^4.0.1": + version: 4.0.1 + resolution: "postcss-js@npm:4.0.1" + dependencies: + camelcase-css: ^2.0.1 + peerDependencies: + postcss: ^8.4.21 + checksum: 5c1e83efeabeb5a42676193f4357aa9c88f4dc1b3c4a0332c132fe88932b33ea58848186db117cf473049fc233a980356f67db490bd0a7832ccba9d0b3fd3491 + languageName: node + linkType: hard + +"postcss-load-config@npm:^4.0.1": + version: 4.0.1 + resolution: "postcss-load-config@npm:4.0.1" + dependencies: + lilconfig: ^2.0.5 + yaml: ^2.1.1 + peerDependencies: + postcss: ">=8.0.9" + ts-node: ">=9.0.0" + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + checksum: b61f890499ed7dcda1e36c20a9582b17d745bad5e2b2c7bc96942465e406bc43ae03f270c08e60d1e29dab1ee50cb26970b5eb20c9aae30e066e20bd607ae4e4 + languageName: node + linkType: hard + +"postcss-nested@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-nested@npm:6.0.1" + dependencies: + postcss-selector-parser: ^6.0.11 + peerDependencies: + postcss: ^8.2.14 + checksum: 7ddb0364cd797de01e38f644879189e0caeb7ea3f78628c933d91cc24f327c56d31269384454fc02ecaf503b44bfa8e08870a7c4cc56b23bc15640e1894523fa + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.0.11": + version: 6.0.13 + resolution: "postcss-selector-parser@npm:6.0.13" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: f89163338a1ce3b8ece8e9055cd5a3165e79a15e1c408e18de5ad8f87796b61ec2d48a2902d179ae0c4b5de10fccd3a325a4e660596549b040bc5ad1b465f096 languageName: node linkType: hard -"postcss@npm:^8.4.27": +"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.0.2": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f + languageName: node + linkType: hard + +"postcss@npm:^8.4.23": version: 8.4.29 resolution: "postcss@npm:8.4.29" dependencies: @@ -10608,6 +12984,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.26": + version: 8.4.27 + resolution: "postcss@npm:8.4.27" + dependencies: + nanoid: ^3.3.6 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 1cdd0c298849df6cd65f7e646a3ba36870a37b65f55fd59d1a165539c263e9b4872a402bf4ed1ca1bc31f58b68b2835545e33ea1a23b161a1f8aa6d5ded81e78 + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -10624,6 +13011,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^3.0.3": + version: 3.0.3 + resolution: "prettier@npm:3.0.3" + bin: + prettier: bin/prettier.cjs + checksum: e10b9af02b281f6c617362ebd2571b1d7fc9fb8a3bd17e371754428cda992e5e8d8b7a046e8f7d3e2da1dcd21aa001e2e3c797402ebb6111b5cd19609dd228e0 + languageName: node + linkType: hard + "pretty-format@npm:^29.0.0, pretty-format@npm:^29.6.2": version: 29.6.2 resolution: "pretty-format@npm:29.6.2" @@ -10651,21 +13047,51 @@ __metadata: version: 0.0.0-use.local resolution: "private-token@workspace:boxes/private-token" dependencies: + "@aztec/aztec.js": "workspace:^" + "@aztec/cli": "workspace:^" + "@aztec/foundation": "workspace:^" + "@aztec/noir-compiler": "workspace:^" + "@aztec/noir-contracts": "workspace:^" + "@aztec/types": "workspace:^" + "@svgr/webpack": ^8.1.0 "@types/react": ^18.2.15 "@types/react-dom": ^18.2.7 + "@types/styled-components": ^5.1.26 "@typescript-eslint/eslint-plugin": ^6.0.0 "@typescript-eslint/parser": ^6.0.0 - "@vitejs/plugin-react": ^4.0.3 + copy-webpack-plugin: ^11.0.0 eslint: ^8.45.0 + eslint-import-resolver-typescript: ^3.5.5 + eslint-plugin-import: ^2.27.5 eslint-plugin-react-hooks: ^4.6.0 eslint-plugin-react-refresh: ^0.4.3 + formik: ^2.4.3 + prettier: ^3.0.3 react: ^18.2.0 react-dom: ^18.2.0 - typescript: ^5.0.2 - vite: ^4.4.5 + resolve-typescript-plugin: ^2.0.1 + styled-components: ^6.0.7 + styled-reset: ^4.5.1 + tailwindcss: ^3.3.3 + ts-jest: ^29.1.0 + ts-loader: ^9.4.4 + ts-node: ^10.9.1 + typescript: ^5.0.4 + util: ^0.12.5 + webpack: ^5.88.2 + webpack-cli: ^5.1.4 + webpack-dev-server: ^4.15.1 + yup: ^1.2.0 languageName: unknown linkType: soft +"process-nextick-args@npm:~2.0.0": + version: 2.0.1 + resolution: "process-nextick-args@npm:2.0.1" + checksum: 1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf + languageName: node + linkType: hard + "process@npm:^0.11.10": version: 0.11.10 resolution: "process@npm:0.11.10" @@ -10716,6 +13142,13 @@ __metadata: languageName: node linkType: hard +"property-expr@npm:^2.0.5": + version: 2.0.5 + resolution: "property-expr@npm:2.0.5" + checksum: 4ebe82ce45aaf1527e96e2ab84d75d25217167ec3ff6378cf83a84fb4abc746e7c65768a79d275881602ae82f168f9a6dfaa7f5e331d0fcc83d692770bcce5f1 + languageName: node + linkType: hard + "protobufjs@npm:^7.0.0": version: 7.2.4 resolution: "protobufjs@npm:7.2.4" @@ -10748,6 +13181,16 @@ __metadata: languageName: node linkType: hard +"proxy-addr@npm:~2.0.7": + version: 2.0.7 + resolution: "proxy-addr@npm:2.0.7" + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + checksum: 29c6990ce9364648255454842f06f8c46fcd124d3e6d7c5066df44662de63cdc0bad032e9bf5a3d653ff72141cc7b6019873d685708ac8210c30458ad99f2b74 + languageName: node + linkType: hard + "proxy-agent@npm:6.3.0": version: 6.3.0 resolution: "proxy-agent@npm:6.3.0" @@ -10875,6 +13318,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:6.11.0": + version: 6.11.0 + resolution: "qs@npm:6.11.0" + dependencies: + side-channel: ^1.0.4 + checksum: 6e1f29dd5385f7488ec74ac7b6c92f4d09a90408882d0c208414a34dd33badc1a621019d4c799a3df15ab9b1d0292f97c1dd71dc7c045e69f81a8064e5af7297 + languageName: node + linkType: hard + "qs@npm:^6.11.0, qs@npm:^6.5.2": version: 6.11.2 resolution: "qs@npm:6.11.2" @@ -10924,6 +13376,13 @@ __metadata: languageName: node linkType: hard +"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": + version: 1.2.1 + resolution: "range-parser@npm:1.2.1" + checksum: 0a268d4fea508661cf5743dfe3d5f47ce214fd6b7dec1de0da4d669dd4ef3d2144468ebe4179049eff253d9d27e719c88dae55be64f954e80135a0cada804ec9 + languageName: node + linkType: hard + "rate-limiter-flexible@npm:^2.3.11": version: 2.4.2 resolution: "rate-limiter-flexible@npm:2.4.2" @@ -10931,6 +13390,18 @@ __metadata: languageName: node linkType: hard +"raw-body@npm:2.5.1": + version: 2.5.1 + resolution: "raw-body@npm:2.5.1" + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + checksum: 5362adff1575d691bb3f75998803a0ffed8c64eabeaa06e54b4ada25a0cd1b2ae7f4f5ec46565d1bec337e08b5ac90c76eaa0758de6f72a633f025d754dec29e + languageName: node + linkType: hard + "raw-body@npm:^2.3.3": version: 2.5.2 resolution: "raw-body@npm:2.5.2" @@ -10955,6 +13426,20 @@ __metadata: languageName: node linkType: hard +"react-fast-compare@npm:^2.0.1": + version: 2.0.4 + resolution: "react-fast-compare@npm:2.0.4" + checksum: 06046595f90a4e3e3a56f40a8078c00aa71bdb064ddb98343f577f546aa22e888831fd45f009c93b34707cc842b4c637737e956fd13d6f80607ee92fb9cf9a1c + languageName: node + linkType: hard + +"react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + "react-is@npm:^18.0.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" @@ -10962,13 +13447,6 @@ __metadata: languageName: node linkType: hard -"react-refresh@npm:^0.14.0": - version: 0.14.0 - resolution: "react-refresh@npm:0.14.0" - checksum: dc69fa8c993df512f42dd0f1b604978ae89bd747c0ed5ec595c0cc50d535fb2696619ccd98ae28775cc01d0a7c146a532f0f7fb81dc22e1977c242a4912312f4 - languageName: node - linkType: hard - "react@npm:^18.2.0": version: 18.2.0 resolution: "react@npm:18.2.0" @@ -10978,6 +13456,15 @@ __metadata: languageName: node linkType: hard +"read-cache@npm:^1.0.0": + version: 1.0.0 + resolution: "read-cache@npm:1.0.0" + dependencies: + pify: ^2.3.0 + checksum: cffc728b9ede1e0667399903f9ecaf3789888b041c46ca53382fa3a06303e5132774dc0a96d0c16aa702dbac1ea0833d5a868d414f5ab2af1e1438e19e6657c6 + languageName: node + linkType: hard + "read-pkg-up@npm:^7.0.1": version: 7.0.1 resolution: "read-pkg-up@npm:7.0.1" @@ -11001,7 +13488,22 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0": +"readable-stream@npm:^2.0.1": + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" + dependencies: + core-util-is: ~1.0.0 + inherits: ~2.0.3 + isarray: ~1.0.0 + process-nextick-args: ~2.0.0 + safe-buffer: ~5.1.1 + string_decoder: ~1.1.1 + util-deprecate: ~1.0.1 + checksum: 65645467038704f0c8aaf026a72fbb588a9e2ef7a75cd57a01702ee9db1c4a1e4b03aaad36861a6a0926546a74d174149c8c207527963e0c2d3eee2f37678a42 + languageName: node + linkType: hard + +"readable-stream@npm:^3.0.6, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -11012,6 +13514,15 @@ __metadata: languageName: node linkType: hard +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: ^2.2.1 + checksum: 1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 + languageName: node + linkType: hard + "receptacle@npm:^1.3.2": version: 1.3.2 resolution: "receptacle@npm:1.3.2" @@ -11040,6 +13551,22 @@ __metadata: languageName: node linkType: hard +"regenerate-unicode-properties@npm:^10.1.0": + version: 10.1.0 + resolution: "regenerate-unicode-properties@npm:10.1.0" + dependencies: + regenerate: ^1.4.2 + checksum: b1a8929588433ab8b9dc1a34cf3665b3b472f79f2af6ceae00d905fc496b332b9af09c6718fb28c730918f19a00dc1d7310adbaa9b72a2ec7ad2f435da8ace17 + languageName: node + linkType: hard + +"regenerate@npm:^1.4.2": + version: 1.4.2 + resolution: "regenerate@npm:1.4.2" + checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 + languageName: node + linkType: hard + "regenerator-runtime@npm:^0.13.11": version: 0.13.11 resolution: "regenerator-runtime@npm:0.13.11" @@ -11047,6 +13574,22 @@ __metadata: languageName: node linkType: hard +"regenerator-runtime@npm:^0.14.0": + version: 0.14.0 + resolution: "regenerator-runtime@npm:0.14.0" + checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3 + languageName: node + linkType: hard + +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" + dependencies: + "@babel/runtime": ^7.8.4 + checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 + languageName: node + linkType: hard + "regexp.prototype.flags@npm:^1.5.0": version: 1.5.0 resolution: "regexp.prototype.flags@npm:1.5.0" @@ -11058,6 +13601,31 @@ __metadata: languageName: node linkType: hard +"regexpu-core@npm:^5.3.1": + version: 5.3.2 + resolution: "regexpu-core@npm:5.3.2" + dependencies: + "@babel/regjsgen": ^0.8.0 + regenerate: ^1.4.2 + regenerate-unicode-properties: ^10.1.0 + regjsparser: ^0.9.1 + unicode-match-property-ecmascript: ^2.0.0 + unicode-match-property-value-ecmascript: ^2.1.0 + checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 + languageName: node + linkType: hard + +"regjsparser@npm:^0.9.1": + version: 0.9.1 + resolution: "regjsparser@npm:0.9.1" + dependencies: + jsesc: ~0.5.0 + bin: + regjsparser: bin/parser + checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc + languageName: node + linkType: hard + "repeat-string@npm:^1.6.1": version: 1.6.1 resolution: "repeat-string@npm:1.6.1" @@ -11072,6 +13640,20 @@ __metadata: languageName: node linkType: hard +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff + languageName: node + linkType: hard + "resolve-cwd@npm:^3.0.0": version: 3.0.0 resolution: "resolve-cwd@npm:3.0.0" @@ -11130,6 +13712,19 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^1.1.7, resolve@npm:^1.14.2, resolve@npm:^1.22.2": + version: 1.22.4 + resolution: "resolve@npm:1.22.4" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 23f25174c2736ce24c6d918910e0d1f89b6b38fefa07a995dff864acd7863d59a7f049e691f93b4b2ee29696303390d921552b6d1b841ed4a8101f517e1d0124 + languageName: node + linkType: hard + "resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3": version: 1.22.3 resolution: "resolve@npm:1.22.3" @@ -11153,6 +13748,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.22.2#~builtin": + version: 1.22.4 + resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=c3c19d" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: c45f2545fdc4d21883861b032789e20aa67a2f2692f68da320cc84d5724cd02f2923766c5354b3210897e88f1a7b3d6d2c7c22faeead8eed7078e4c783a444bc + languageName: node + linkType: hard + "resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin": version: 1.22.3 resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=c3c19d" @@ -11232,20 +13840,6 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.27.1": - version: 3.28.1 - resolution: "rollup@npm:3.28.1" - dependencies: - fsevents: ~2.3.2 - dependenciesMeta: - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 1fcab0929c16130218447c76c19b56ccc0e677110552462297e3679188fc70185a6ec418cef8ce138ec9fb78fd5188537a3f5d28762788e8c88b12a7fb8ba0fb - languageName: node - linkType: hard - "run-applescript@npm:^5.0.0": version: 5.0.0 resolution: "run-applescript@npm:5.0.0" @@ -11285,7 +13879,14 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c + languageName: node + linkType: hard + +"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 @@ -11353,6 +13954,34 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^4.0.0": + version: 4.2.0 + resolution: "schema-utils@npm:4.2.0" + dependencies: + "@types/json-schema": ^7.0.9 + ajv: ^8.9.0 + ajv-formats: ^2.1.1 + ajv-keywords: ^5.1.0 + checksum: 26a0463d47683258106e6652e9aeb0823bf0b85843039e068b57da1892f7ae6b6b1094d48e9ed5ba5cbe9f7166469d880858b9d91abe8bd249421eb813850cde + languageName: node + linkType: hard + +"select-hose@npm:^2.0.0": + version: 2.0.0 + resolution: "select-hose@npm:2.0.0" + checksum: d7e5fcc695a4804209d232a1b18624a5134be334d4e1114b0721f7a5e72bd73da483dcf41528c1af4f4f4892ad7cfd6a1e55c8ffb83f9c9fe723b738db609dbb + languageName: node + linkType: hard + +"selfsigned@npm:^2.1.1": + version: 2.1.1 + resolution: "selfsigned@npm:2.1.1" + dependencies: + node-forge: ^1 + checksum: aa9ce2150a54838978d5c0aee54d7ebe77649a32e4e690eb91775f71fdff773874a4fbafd0ac73d8ec3b702ff8a395c604df4f8e8868528f36fd6c15076fb43a + languageName: node + linkType: hard + "semver-match@npm:0.1.1": version: 0.1.1 resolution: "semver-match@npm:0.1.1" @@ -11362,7 +13991,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.1.0": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.1.0, semver@npm:^5.6.0": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -11391,7 +14020,28 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^6.0.1": +"send@npm:0.18.0": + version: 0.18.0 + resolution: "send@npm:0.18.0" + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: ~1.0.2 + escape-html: ~1.0.3 + etag: ~1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: ~1.2.1 + statuses: 2.0.1 + checksum: 74fc07ebb58566b87b078ec63e5a3e41ecd987e4272ba67b7467e86c6ad51bc6b0b0154133b6d8b08a2ddda360464f71382f7ef864700f34844a76c8027817a8 + languageName: node + linkType: hard + +"serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.1": version: 6.0.1 resolution: "serialize-javascript@npm:6.0.1" dependencies: @@ -11400,6 +14050,33 @@ __metadata: languageName: node linkType: hard +"serve-index@npm:^1.9.1": + version: 1.9.1 + resolution: "serve-index@npm:1.9.1" + dependencies: + accepts: ~1.3.4 + batch: 0.6.1 + debug: 2.6.9 + escape-html: ~1.0.3 + http-errors: ~1.6.2 + mime-types: ~2.1.17 + parseurl: ~1.3.2 + checksum: e2647ce13379485b98a53ba2ea3fbad4d44b57540d00663b02b976e426e6194d62ac465c0d862cb7057f65e0de8ab8a684aa095427a4b8612412eca0d300d22f + languageName: node + linkType: hard + +"serve-static@npm:1.15.0": + version: 1.15.0 + resolution: "serve-static@npm:1.15.0" + dependencies: + encodeurl: ~1.0.2 + escape-html: ~1.0.3 + parseurl: ~1.3.3 + send: 0.18.0 + checksum: af57fc13be40d90a12562e98c0b7855cf6e8bd4c107fe9a45c212bf023058d54a1871b1c89511c3958f70626fff47faeb795f5d83f8cf88514dbaeb2b724464d + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -11461,6 +14138,13 @@ __metadata: languageName: node linkType: hard +"shallowequal@npm:^1.1.0": + version: 1.1.0 + resolution: "shallowequal@npm:1.1.0" + checksum: f4c1de0837f106d2dbbfd5d0720a5d059d1c66b42b580965c8f06bb1db684be8783538b684092648c981294bf817869f743a066538771dbecb293df78f765e00 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -11537,6 +14221,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^2.0.0": + version: 2.0.0 + resolution: "slash@npm:2.0.0" + checksum: 512d4350735375bd11647233cb0e2f93beca6f53441015eea241fe784d8068281c3987fbaa93e7ef1c38df68d9c60013045c92837423c69115297d6169aa85e6 + languageName: node + linkType: hard + "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -11558,6 +14249,27 @@ __metadata: languageName: node linkType: hard +"snake-case@npm:^3.0.4": + version: 3.0.4 + resolution: "snake-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 0a7a79900bbb36f8aaa922cf111702a3647ac6165736d5dc96d3ef367efc50465cac70c53cd172c382b022dac72ec91710608e5393de71f76d7142e6fd80e8a3 + languageName: node + linkType: hard + +"sockjs@npm:^0.3.24": + version: 0.3.24 + resolution: "sockjs@npm:0.3.24" + dependencies: + faye-websocket: ^0.11.3 + uuid: ^8.3.2 + websocket-driver: ^0.7.4 + checksum: 355309b48d2c4e9755349daa29cea1c0d9ee23e49b983841c6bf7a20276b00d3c02343f9f33f26d2ee8b261a5a02961b52a25c8da88b2538c5b68d3071b4934c + languageName: node + linkType: hard + "socks-proxy-agent@npm:^7.0.0": version: 7.0.0 resolution: "socks-proxy-agent@npm:7.0.0" @@ -11590,7 +14302,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.2": +"source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": version: 1.0.2 resolution: "source-map-js@npm:1.0.2" checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c @@ -11672,6 +14384,33 @@ __metadata: languageName: node linkType: hard +"spdy-transport@npm:^3.0.0": + version: 3.0.0 + resolution: "spdy-transport@npm:3.0.0" + dependencies: + debug: ^4.1.0 + detect-node: ^2.0.4 + hpack.js: ^2.1.6 + obuf: ^1.1.2 + readable-stream: ^3.0.6 + wbuf: ^1.7.3 + checksum: 0fcaad3b836fb1ec0bdd39fa7008b9a7a84a553f12be6b736a2512613b323207ffc924b9551cef0378f7233c85916cff1118652e03a730bdb97c0e042243d56c + languageName: node + linkType: hard + +"spdy@npm:^4.0.2": + version: 4.0.2 + resolution: "spdy@npm:4.0.2" + dependencies: + debug: ^4.1.0 + handle-thing: ^2.0.0 + http-deceiver: ^1.2.7 + select-hose: ^2.0.0 + spdy-transport: ^3.0.0 + checksum: 2c739d0ff6f56ad36d2d754d0261d5ec358457bea7cbf77b1b05b0c6464f2ce65b85f196305f50b7bd9120723eb94bae9933466f28e67e5cd8cde4e27f1d75f8 + languageName: node + linkType: hard + "split@npm:0.3": version: 0.3.3 resolution: "split@npm:0.3.3" @@ -11853,6 +14592,15 @@ __metadata: languageName: node linkType: hard +"string_decoder@npm:~1.1.1": + version: 1.1.1 + resolution: "string_decoder@npm:1.1.1" + dependencies: + safe-buffer: ~5.1.0 + checksum: 9ab7e56f9d60a28f2be697419917c50cac19f3e8e6c28ef26ed5f4852289fe0de5d6997d29becf59028556f2c62983790c1d9ba1e2a3cc401768ca12d5183a5b + languageName: node + linkType: hard + "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -11915,6 +14663,74 @@ __metadata: languageName: node linkType: hard +"styled-components@npm:^6.0.7": + version: 6.0.7 + resolution: "styled-components@npm:6.0.7" + dependencies: + "@babel/cli": ^7.21.0 + "@babel/core": ^7.21.0 + "@babel/helper-module-imports": ^7.18.6 + "@babel/plugin-external-helpers": ^7.18.6 + "@babel/plugin-proposal-class-properties": ^7.18.6 + "@babel/plugin-proposal-object-rest-spread": ^7.20.7 + "@babel/preset-env": ^7.20.2 + "@babel/preset-react": ^7.18.6 + "@babel/preset-typescript": ^7.21.0 + "@babel/traverse": ^7.21.2 + "@emotion/is-prop-valid": ^1.2.1 + "@emotion/unitless": ^0.8.0 + "@types/stylis": ^4.0.2 + css-to-react-native: ^3.2.0 + csstype: ^3.1.2 + postcss: ^8.4.23 + shallowequal: ^1.1.0 + stylis: ^4.3.0 + tslib: ^2.5.0 + peerDependencies: + babel-plugin-styled-components: ">= 2" + react: ">= 16.8.0" + react-dom: ">= 16.8.0" + peerDependenciesMeta: + babel-plugin-styled-components: + optional: true + checksum: 38645f38f145225e456f8f9303f5be1d988180e0e3d84d1f3e1d14fb006c7deb69704745e266d61016616a154938697d011a0bff6eaeb7dd25dbba659e2411f7 + languageName: node + linkType: hard + +"styled-reset@npm:^4.5.1": + version: 4.5.1 + resolution: "styled-reset@npm:4.5.1" + peerDependencies: + styled-components: ">=4.0.0 || >=5.0.0 || >=6.0.0" + checksum: ff6c5bbc738017a535a5e74cc3b2e7112652691c8e4acae700fe3d051f870035e2d911e6629a9a626349ccc58ba9842b83793bd9111f4e1c9e1fa695f773d2b8 + languageName: node + linkType: hard + +"stylis@npm:^4.3.0": + version: 4.3.0 + resolution: "stylis@npm:4.3.0" + checksum: 6120de3f03eacf3b5adc8e7919c4cca991089156a6badc5248752a3088106afaaf74996211a6817a7760ebeadca09004048eea31875bd8d4df51386365c50025 + languageName: node + linkType: hard + +"sucrase@npm:^3.32.0": + version: 3.34.0 + resolution: "sucrase@npm:3.34.0" + dependencies: + "@jridgewell/gen-mapping": ^0.3.2 + commander: ^4.0.0 + glob: 7.1.6 + lines-and-columns: ^1.1.6 + mz: ^2.7.0 + pirates: ^4.0.1 + ts-interface-checker: ^0.1.9 + bin: + sucrase: bin/sucrase + sucrase-node: bin/sucrase-node + checksum: 61860063bdf6103413698e13247a3074d25843e91170825a9752e4af7668ffadd331b6e99e92fc32ee5b3c484ee134936f926fa9039d5711fafff29d017a2110 + languageName: node + linkType: hard + "superagent@npm:^8.0.5": version: 8.0.9 resolution: "superagent@npm:8.0.9" @@ -11977,6 +14793,29 @@ __metadata: languageName: node linkType: hard +"svg-parser@npm:^2.0.4": + version: 2.0.4 + resolution: "svg-parser@npm:2.0.4" + checksum: b3de6653048212f2ae7afe4a423e04a76ec6d2d06e1bf7eacc618a7c5f7df7faa5105561c57b94579ec831fbbdbf5f190ba56a9205ff39ed13eabdf8ab086ddf + languageName: node + linkType: hard + +"svgo@npm:^3.0.2": + version: 3.0.2 + resolution: "svgo@npm:3.0.2" + dependencies: + "@trysound/sax": 0.2.0 + commander: ^7.2.0 + css-select: ^5.1.0 + css-tree: ^2.2.1 + csso: ^5.0.5 + picocolors: ^1.0.0 + bin: + svgo: bin/svgo + checksum: 381ba14aa782e71ab7033227634a3041c11fa3e2769aeaf0df43a08a615de61925108e34f55af6e7c5146f4a3109e78deabb4fa9d687e36d45d1f848b4e23d17 + languageName: node + linkType: hard + "synckit@npm:^0.8.5": version: 0.8.5 resolution: "synckit@npm:0.8.5" @@ -11987,6 +14826,39 @@ __metadata: languageName: node linkType: hard +"tailwindcss@npm:^3.3.3": + version: 3.3.3 + resolution: "tailwindcss@npm:3.3.3" + dependencies: + "@alloc/quick-lru": ^5.2.0 + arg: ^5.0.2 + chokidar: ^3.5.3 + didyoumean: ^1.2.2 + dlv: ^1.1.3 + fast-glob: ^3.2.12 + glob-parent: ^6.0.2 + is-glob: ^4.0.3 + jiti: ^1.18.2 + lilconfig: ^2.1.0 + micromatch: ^4.0.5 + normalize-path: ^3.0.0 + object-hash: ^3.0.0 + picocolors: ^1.0.0 + postcss: ^8.4.23 + postcss-import: ^15.1.0 + postcss-js: ^4.0.1 + postcss-load-config: ^4.0.1 + postcss-nested: ^6.0.1 + postcss-selector-parser: ^6.0.11 + resolve: ^1.22.2 + sucrase: ^3.32.0 + bin: + tailwind: lib/cli.js + tailwindcss: lib/cli.js + checksum: 0195c7a3ebb0de5e391d2a883d777c78a4749f0c532d204ee8aea9129f2ed8e701d8c0c276aa5f7338d07176a3c2a7682c1d0ab9c8a6c2abe6d9325c2954eb50 + languageName: node + linkType: hard + "tapable@npm:^2.1.1, tapable@npm:^2.2.0": version: 2.2.1 resolution: "tapable@npm:2.2.1" @@ -12091,6 +14963,24 @@ __metadata: languageName: node linkType: hard +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: ">= 3.1.0 < 4" + checksum: dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: ^1.0.0 + checksum: 84e1b804bfec49f3531215f17b4a6e50fd4397b5f7c1bccc427b9c656e1ecfb13ea79d899930184f78bc2f57285c54d9a50a590c8868f4f0cef5c1d9f898b05e + languageName: node + linkType: hard + "through@npm:2, through@npm:^2.3.8, through@npm:~2.3, through@npm:~2.3.1": version: 2.3.8 resolution: "through@npm:2.3.8" @@ -12098,6 +14988,27 @@ __metadata: languageName: node linkType: hard +"thunky@npm:^1.0.2": + version: 1.1.0 + resolution: "thunky@npm:1.1.0" + checksum: 993096c472b6b8f30e29dc777a8d17720e4cab448375041f20c0cb802a09a7fb2217f2a3e8cdc11851faa71c957e2db309357367fc9d7af3cb7a4d00f4b66034 + languageName: node + linkType: hard + +"tiny-case@npm:^1.0.3": + version: 1.0.3 + resolution: "tiny-case@npm:1.0.3" + checksum: 3f7a30c39d5b0e1bc097b0b271bec14eb5b836093db034f35a0de26c14422380b50dc12bfd37498cf35b192f5df06f28a710712c87ead68872a9e37ad6f6049d + languageName: node + linkType: hard + +"tiny-warning@npm:^1.0.2": + version: 1.0.3 + resolution: "tiny-warning@npm:1.0.3" + checksum: da62c4acac565902f0624b123eed6dd3509bc9a8d30c06e017104bedcf5d35810da8ff72864400ad19c5c7806fc0a8323c68baf3e326af7cb7d969f846100d71 + languageName: node + linkType: hard + "titleize@npm:^3.0.0": version: 3.0.0 resolution: "titleize@npm:3.0.0" @@ -12142,6 +15053,13 @@ __metadata: languageName: node linkType: hard +"toposort@npm:^2.0.2": + version: 2.0.2 + resolution: "toposort@npm:2.0.2" + checksum: d64c74b570391c9432873f48e231b439ee56bc49f7cb9780b505cfdf5cb832f808d0bae072515d93834dd6bceca5bb34448b5b4b408335e4d4716eaf68195dcb + languageName: node + linkType: hard + "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -12206,6 +15124,13 @@ __metadata: languageName: node linkType: hard +"ts-interface-checker@npm:^0.1.9": + version: 0.1.13 + resolution: "ts-interface-checker@npm:0.1.13" + checksum: 20c29189c2dd6067a8775e07823ddf8d59a33e2ffc47a1bd59a5cb28bb0121a2969a816d5e77eda2ed85b18171aa5d1c4005a6b88ae8499ec7cc49f78571cb5e + languageName: node + linkType: hard + "ts-jest@npm:^29.1.0": version: 29.1.1 resolution: "ts-jest@npm:29.1.1" @@ -12327,6 +15252,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.0.0, tslib@npm:^2.0.3": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad + languageName: node + linkType: hard + "tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.0": version: 2.6.1 resolution: "tslib@npm:2.6.1" @@ -12399,7 +15331,14 @@ __metadata: languageName: node linkType: hard -"type-is@npm:^1.6.16, type-is@npm:^1.6.18": +"type-fest@npm:^2.19.0": + version: 2.19.0 + resolution: "type-fest@npm:2.19.0" + checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 + languageName: node + linkType: hard + +"type-is@npm:^1.6.16, type-is@npm:^1.6.18, type-is@npm:~1.6.18": version: 1.6.18 resolution: "type-is@npm:1.6.18" dependencies: @@ -12472,16 +15411,6 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.0.2": - version: 5.2.2 - resolution: "typescript@npm:5.2.2" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 7912821dac4d962d315c36800fe387cdc0a6298dba7ec171b350b4a6e988b51d7b8f051317786db1094bd7431d526b648aba7da8236607febb26cf5b871d2d3c - languageName: node - linkType: hard - "typescript@npm:^5.0.4": version: 5.1.6 resolution: "typescript@npm:5.1.6" @@ -12492,16 +15421,6 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^5.0.2#~builtin": - version: 5.2.2 - resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=1f5320" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 07106822b4305de3f22835cbba949a2b35451cad50888759b6818421290ff95d522b38ef7919e70fb381c5fe9c1c643d7dea22c8b31652a717ddbd57b7f4d554 - languageName: node - linkType: hard - "typescript@patch:typescript@^5.0.4#~builtin": version: 5.1.6 resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=1f5320" @@ -12592,6 +15511,37 @@ __metadata: languageName: node linkType: hard +"unicode-canonical-property-names-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" + checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 + languageName: node + linkType: hard + +"unicode-match-property-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-match-property-ecmascript@npm:2.0.0" + dependencies: + unicode-canonical-property-names-ecmascript: ^2.0.0 + unicode-property-aliases-ecmascript: ^2.0.0 + checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a + languageName: node + linkType: hard + +"unicode-match-property-value-ecmascript@npm:^2.1.0": + version: 2.1.0 + resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" + checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220 + languageName: node + linkType: hard + +"unicode-property-aliases-ecmascript@npm:^2.0.0": + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b + languageName: node + linkType: hard + "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" @@ -12624,7 +15574,7 @@ __metadata: languageName: node linkType: hard -"unpipe@npm:1.0.0": +"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 @@ -12675,7 +15625,7 @@ __metadata: languageName: node linkType: hard -"util-deprecate@npm:^1.0.1": +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 @@ -12695,6 +15645,22 @@ __metadata: languageName: node linkType: hard +"utils-merge@npm:1.0.1": + version: 1.0.1 + resolution: "utils-merge@npm:1.0.1" + checksum: c81095493225ecfc28add49c106ca4f09cdf56bc66731aa8dabc2edbbccb1e1bfe2de6a115e5c6a380d3ea166d1636410b62ef216bb07b3feb1cfde1d95d5080 + languageName: node + linkType: hard + +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df + languageName: node + linkType: hard + "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" @@ -12730,7 +15696,7 @@ __metadata: languageName: node linkType: hard -"vary@npm:^1.1.2": +"vary@npm:^1.1.2, vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b @@ -12821,46 +15787,6 @@ __metadata: languageName: node linkType: hard -"vite@npm:^4.4.5": - version: 4.4.9 - resolution: "vite@npm:4.4.9" - dependencies: - esbuild: ^0.18.10 - fsevents: ~2.3.2 - postcss: ^8.4.27 - rollup: ^3.27.1 - peerDependencies: - "@types/node": ">= 14" - less: "*" - lightningcss: ^1.21.0 - sass: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - bin: - vite: bin/vite.js - checksum: c511024ceae39c68c7dbf2ac4381ee655cd7bb62cf43867a14798bc835d3320b8fa7867a336143c30825c191c1fb4e9aa3348fce831ab617e96203080d3d2908 - languageName: node - linkType: hard - "vscode-oniguruma@npm:^1.7.0": version: 1.7.0 resolution: "vscode-oniguruma@npm:1.7.0" @@ -12894,6 +15820,15 @@ __metadata: languageName: node linkType: hard +"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3": + version: 1.7.3 + resolution: "wbuf@npm:1.7.3" + dependencies: + minimalistic-assert: ^1.0.0 + checksum: 2abc306c96930b757972a1c4650eb6b25b5d99f24088714957f88629e137db569368c5de0e57986c89ea70db2f1df9bba11a87cb6d0c8694b6f53a0159fab3bf + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -12933,6 +15868,68 @@ __metadata: languageName: node linkType: hard +"webpack-dev-middleware@npm:^5.3.1": + version: 5.3.3 + resolution: "webpack-dev-middleware@npm:5.3.3" + dependencies: + colorette: ^2.0.10 + memfs: ^3.4.3 + mime-types: ^2.1.31 + range-parser: ^1.2.1 + schema-utils: ^4.0.0 + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + checksum: dd332cc6da61222c43d25e5a2155e23147b777ff32fdf1f1a0a8777020c072fbcef7756360ce2a13939c3f534c06b4992a4d659318c4a7fe2c0530b52a8a6621 + languageName: node + linkType: hard + +"webpack-dev-server@npm:^4.15.1": + version: 4.15.1 + resolution: "webpack-dev-server@npm:4.15.1" + dependencies: + "@types/bonjour": ^3.5.9 + "@types/connect-history-api-fallback": ^1.3.5 + "@types/express": ^4.17.13 + "@types/serve-index": ^1.9.1 + "@types/serve-static": ^1.13.10 + "@types/sockjs": ^0.3.33 + "@types/ws": ^8.5.5 + ansi-html-community: ^0.0.8 + bonjour-service: ^1.0.11 + chokidar: ^3.5.3 + colorette: ^2.0.10 + compression: ^1.7.4 + connect-history-api-fallback: ^2.0.0 + default-gateway: ^6.0.3 + express: ^4.17.3 + graceful-fs: ^4.2.6 + html-entities: ^2.3.2 + http-proxy-middleware: ^2.0.3 + ipaddr.js: ^2.0.1 + launch-editor: ^2.6.0 + open: ^8.0.9 + p-retry: ^4.5.0 + rimraf: ^3.0.2 + schema-utils: ^4.0.0 + selfsigned: ^2.1.1 + serve-index: ^1.9.1 + sockjs: ^0.3.24 + spdy: ^4.0.2 + webpack-dev-middleware: ^5.3.1 + ws: ^8.13.0 + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + bin: + webpack-dev-server: bin/webpack-dev-server.js + checksum: cd0063b068d2b938fd76c412d555374186ac2fa84bbae098265212ed50a5c15d6f03aa12a5a310c544a242943eb58c0bfde4c296d5c36765c182f53799e1bc71 + languageName: node + linkType: hard + "webpack-merge@npm:^5.7.3": version: 5.9.0 resolution: "webpack-merge@npm:5.9.0" @@ -12987,6 +15984,24 @@ __metadata: languageName: node linkType: hard +"websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4": + version: 0.7.4 + resolution: "websocket-driver@npm:0.7.4" + dependencies: + http-parser-js: ">=0.5.1" + safe-buffer: ">=5.1.0" + websocket-extensions: ">=0.1.1" + checksum: fffe5a33fe8eceafd21d2a065661d09e38b93877eae1de6ab5d7d2734c6ed243973beae10ae48c6613cfd675f200e5a058d1e3531bc9e6c5d4f1396ff1f0bfb9 + languageName: node + linkType: hard + +"websocket-extensions@npm:>=0.1.1": + version: 0.1.4 + resolution: "websocket-extensions@npm:0.1.4" + checksum: 5976835e68a86afcd64c7a9762ed85f2f27d48c488c707e67ba85e717b90fa066b98ab33c744d64255c9622d349eedecf728e65a5f921da71b58d0e9591b9038 + languageName: node + linkType: hard + "whatwg-url@npm:^5.0.0": version: 5.0.0 resolution: "whatwg-url@npm:5.0.0" @@ -13227,6 +16242,13 @@ __metadata: languageName: node linkType: hard +"yaml@npm:^2.1.1": + version: 2.3.2 + resolution: "yaml@npm:2.3.2" + checksum: acd80cc24df12c808c6dec8a0176d404ef9e6f08ad8786f746ecc9d8974968c53c6e8a67fdfabcc5f99f3dc59b6bb0994b95646ff03d18e9b1dcd59eccc02146 + languageName: node + linkType: hard + "yaml@npm:^2.1.3": version: 2.3.1 resolution: "yaml@npm:2.3.1" @@ -13311,3 +16333,15 @@ __metadata: checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 languageName: node linkType: hard + +"yup@npm:^1.2.0": + version: 1.2.0 + resolution: "yup@npm:1.2.0" + dependencies: + property-expr: ^2.0.5 + tiny-case: ^1.0.3 + toposort: ^2.0.2 + type-fest: ^2.19.0 + checksum: f0cdceb144e358c6155670f3e27404b65b090cc12594fde6db2699523661e13542aaf87ebe8e542b67f29a5f3f9bc5f23a3a3bb09e17f10d125353d35b841fac + languageName: node + linkType: hard From 6cf94f62d5f189932673b457a590b2b4b1b9dbd1 Mon Sep 17 00:00:00 2001 From: Leila Wang Date: Mon, 4 Sep 2023 18:07:57 +0000 Subject: [PATCH 003/117] Aztec box ui. --- .../private-token/{src => }/.prettierrc.json | 0 yarn-project/boxes/private-token/package.json | 12 +- .../boxes/private-token/postcss.config.cjs | 6 + .../src/app/components/banner.tsx | 43 + .../src/app/components/button.tsx | 28 + .../src/app/components/popup.tsx | 42 + .../src/app/components/spinner.tsx | 20 + .../boxes/private-token/src/app/contract.tsx | 84 + .../src/app/contract_function_form.tsx | 140 ++ .../boxes/private-token/src/app/home.tsx | 65 + .../boxes/private-token/src/app/index.css | 60 + .../boxes/private-token/src/app/index.html | 3 +- .../boxes/private-token/src/app/index.tsx | 11 +- .../private-token/src/app/wallet_dropdown.tsx | 53 + .../src/artifacts/PrivateToken.ts | 110 + .../src/artifacts/private_token_contract.json | 251 ++ .../private-token/src/assets/aztec_logo.svg | 8 + .../boxes/private-token/src/config.ts | 7 + .../src/scripts/call_contract_function.ts | 15 + .../src/scripts/deploy_contract.ts | 15 + .../boxes/private-token/src/scripts/index.ts | 3 + .../src/scripts/view_contract_function.ts | 15 + .../boxes/private-token/tailwind.config.cjs | 39 + .../boxes/private-token/webpack.config.js | 20 +- yarn-project/yarn.lock | 2210 ++--------------- 25 files changed, 1254 insertions(+), 2006 deletions(-) rename yarn-project/boxes/private-token/{src => }/.prettierrc.json (100%) create mode 100644 yarn-project/boxes/private-token/postcss.config.cjs create mode 100644 yarn-project/boxes/private-token/src/app/components/banner.tsx create mode 100644 yarn-project/boxes/private-token/src/app/components/button.tsx create mode 100644 yarn-project/boxes/private-token/src/app/components/popup.tsx create mode 100644 yarn-project/boxes/private-token/src/app/components/spinner.tsx create mode 100644 yarn-project/boxes/private-token/src/app/contract.tsx create mode 100644 yarn-project/boxes/private-token/src/app/contract_function_form.tsx create mode 100644 yarn-project/boxes/private-token/src/app/home.tsx create mode 100644 yarn-project/boxes/private-token/src/app/index.css create mode 100644 yarn-project/boxes/private-token/src/app/wallet_dropdown.tsx create mode 100644 yarn-project/boxes/private-token/src/artifacts/PrivateToken.ts create mode 100644 yarn-project/boxes/private-token/src/artifacts/private_token_contract.json create mode 100644 yarn-project/boxes/private-token/src/assets/aztec_logo.svg create mode 100644 yarn-project/boxes/private-token/src/config.ts create mode 100644 yarn-project/boxes/private-token/src/scripts/call_contract_function.ts create mode 100644 yarn-project/boxes/private-token/src/scripts/deploy_contract.ts create mode 100644 yarn-project/boxes/private-token/src/scripts/index.ts create mode 100644 yarn-project/boxes/private-token/src/scripts/view_contract_function.ts create mode 100644 yarn-project/boxes/private-token/tailwind.config.cjs diff --git a/yarn-project/boxes/private-token/src/.prettierrc.json b/yarn-project/boxes/private-token/.prettierrc.json similarity index 100% rename from yarn-project/boxes/private-token/src/.prettierrc.json rename to yarn-project/boxes/private-token/.prettierrc.json diff --git a/yarn-project/boxes/private-token/package.json b/yarn-project/boxes/private-token/package.json index 5e33e0e8ce0..a251dd3d3c9 100644 --- a/yarn-project/boxes/private-token/package.json +++ b/yarn-project/boxes/private-token/package.json @@ -10,7 +10,8 @@ "start:dev": "webpack serve --mode=development", "start:remote": "/bin/bash -c \"$(curl -fsSL 'https://up-dev.aztec.network')\"", "formatting": "prettier --check ./src && eslint ./src", - "formatting:fix": "prettier -w ./src" + "formatting:fix": "prettier -w ./src", + "compile": "This script should compile contracts/ and output their abi and ts wrapper to artifacts/" }, "dependencies": { "@aztec/aztec.js": "workspace:^", @@ -22,26 +23,27 @@ "formik": "^2.4.3", "react": "^18.2.0", "react-dom": "^18.2.0", - "styled-components": "^6.0.7", - "styled-reset": "^4.5.1", "tailwindcss": "^3.3.3", "yup": "^1.2.0" }, "devDependencies": { - "@svgr/webpack": "^8.1.0", "@types/react": "^18.2.15", "@types/react-dom": "^18.2.7", - "@types/styled-components": "^5.1.26", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", + "autoprefixer": "^10.4.15", "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.8.1", "eslint": "^8.45.0", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-import": "^2.27.5", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.3", + "postcss": "^8.4.29", + "postcss-loader": "^7.3.3", "prettier": "^3.0.3", "resolve-typescript-plugin": "^2.0.1", + "style-loader": "^3.3.3", "ts-jest": "^29.1.0", "ts-loader": "^9.4.4", "ts-node": "^10.9.1", diff --git a/yarn-project/boxes/private-token/postcss.config.cjs b/yarn-project/boxes/private-token/postcss.config.cjs new file mode 100644 index 00000000000..95cd618b13f --- /dev/null +++ b/yarn-project/boxes/private-token/postcss.config.cjs @@ -0,0 +1,6 @@ +const tailwindcss = require('tailwindcss'); +const autoprefixer = require('autoprefixer'); + +module.exports = { + plugins: [tailwindcss('./tailwind.config.cjs'), autoprefixer], +}; diff --git a/yarn-project/boxes/private-token/src/app/components/banner.tsx b/yarn-project/boxes/private-token/src/app/components/banner.tsx new file mode 100644 index 00000000000..4b6135b9884 --- /dev/null +++ b/yarn-project/boxes/private-token/src/app/components/banner.tsx @@ -0,0 +1,43 @@ +interface Props { + background: string; + direction: string; + animated?: boolean; +} + +/** + * + * @param background - background color, either "black" or "purple" + * @returns a moving banner repeating the word PRIVACY + */ +export default function Banner({ background, direction, animated }: Props) { + // Determine direction + const start = !animated ? '' : direction === 'reverse' ? 'animate-marquee' : 'animate-marquee3'; + const end = !animated ? '' : direction === 'reverse' ? 'animate-marquee2' : 'animate-marquee4'; + + // Apply relevant color styles + const containerStyles = + background === 'black' + ? `relative flex overflow-x-hidden bg-indigo-950 text-orange-100` + : `relative flex overflow-x-hidden bg-orange-100 text-indigo-950`; + + return ( +
+
+ {/* Generate text elements */} + {Array.from({ length: 50 }, (_, index) => ( + + PRIVACY + + ))} +
+
+ {/* Generate text elements */} + {Array.from({ length: 50 }, (_, index) => ( + + PRIVACY + + ))} +
+
+ ); +} diff --git a/yarn-project/boxes/private-token/src/app/components/button.tsx b/yarn-project/boxes/private-token/src/app/components/button.tsx new file mode 100644 index 00000000000..7ed950e93c7 --- /dev/null +++ b/yarn-project/boxes/private-token/src/app/components/button.tsx @@ -0,0 +1,28 @@ +import Spinner from './spinner.js'; + +interface Props { + children: string; + isLoading?: boolean; + disabled?: boolean; + onClick?: () => void; +} + +export default function Button({ children, isLoading, disabled, onClick }: Props) { + return ( + + ); +} diff --git a/yarn-project/boxes/private-token/src/app/components/popup.tsx b/yarn-project/boxes/private-token/src/app/components/popup.tsx new file mode 100644 index 00000000000..4084825e580 --- /dev/null +++ b/yarn-project/boxes/private-token/src/app/components/popup.tsx @@ -0,0 +1,42 @@ +import Button from './button.js'; + +interface Props { + children: string; + buttonText?: string; + isWarning?: boolean; + onClose?: () => void; +} + +export default function Popup({ children, buttonText = 'Close', isWarning = false, onClose }: Props) { + return ( +
+
+
+
+
+ {isWarning && ( + + )} +
{children}
+ +
+
+
+
+
+ ); +} diff --git a/yarn-project/boxes/private-token/src/app/components/spinner.tsx b/yarn-project/boxes/private-token/src/app/components/spinner.tsx new file mode 100644 index 00000000000..f0dddffec40 --- /dev/null +++ b/yarn-project/boxes/private-token/src/app/components/spinner.tsx @@ -0,0 +1,20 @@ +export default function Spinner() { + return ( + + ); +} diff --git a/yarn-project/boxes/private-token/src/app/contract.tsx b/yarn-project/boxes/private-token/src/app/contract.tsx new file mode 100644 index 00000000000..79b5693c993 --- /dev/null +++ b/yarn-project/boxes/private-token/src/app/contract.tsx @@ -0,0 +1,84 @@ +import { AztecAddress } from '@aztec/aztec.js'; +import { FunctionAbi } from '@aztec/foundation/abi'; +import { useState } from 'react'; +import { contractAbi } from '../config.js'; +import Popup from './components/popup.js'; +import ContractFunctionForm from './contract_function_form.js'; + +const functionTypeSortOrder = { + secret: 0, + open: 1, + unconstrained: 2, +}; + +export default function Contract() { + const [contractAddress, setContractAddress] = useState(); + const [processingFunction, setProcessingFunction] = useState(''); + const [errorMsg, setError] = useState(''); + const [result, setResult] = useState(''); + + const handleSubmitForm = (functionName: string) => setProcessingFunction(functionName); + const handleContractDeployed = (address: AztecAddress) => { + setContractAddress(address); + setResult(`Contract deployed at: ${address}`); + }; + const handleResult = (returnValues: any) => { + // TODO: Serialise returnValues to string according to the returnTypes defined in the function abi. + setResult(`Return values: ${returnValues}`); + }; + const handleClosePopup = () => { + setResult(''); + setError(''); + setProcessingFunction(''); + }; + + const constructorAbi = contractAbi.functions.find(f => f.name === 'constructor')!; + const hasResult = !!(result || errorMsg); + + return ( +
+
+
{`${contractAbi.name} Noir Smart Contract`}
+ {!!contractAddress &&
{`Contract address: ${contractAddress}`}
} +
+ {!contractAddress && ( + handleSubmitForm('constructor')} + onSuccess={handleContractDeployed} + onError={setError} + /> + )} + {!!contractAddress && ( +
+ {contractAbi.functions + .filter(f => f.name !== 'constructor' && !f.isInternal) + .sort((a, b) => functionTypeSortOrder[a.functionType] - functionTypeSortOrder[b.functionType]) + .map((functionAbi: FunctionAbi) => ( + handleSubmitForm(functionAbi.name)} + onSuccess={handleResult} + onError={setError} + /> + ))} +
+ )} + {!!(errorMsg || result) && ( + + {errorMsg || result} + + )} +
+ ); +} diff --git a/yarn-project/boxes/private-token/src/app/contract_function_form.tsx b/yarn-project/boxes/private-token/src/app/contract_function_form.tsx new file mode 100644 index 00000000000..d118dd5ca66 --- /dev/null +++ b/yarn-project/boxes/private-token/src/app/contract_function_form.tsx @@ -0,0 +1,140 @@ +import { AztecAddress, Fr } from '@aztec/aztec.js'; +import { ContractAbi, FunctionAbi } from '@aztec/foundation/abi'; +import { useFormik } from 'formik'; +import * as Yup from 'yup'; +import { rpcClient } from '../config.js'; +import { callContractFunction, deployContract, viewContractFunction } from '../scripts/index.js'; +import Button from './components/button.js'; + +// hack: add `any` at the end to get the array schema to typecheck +type NoirFunctionYupSchema = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + [key: string]: Yup.NumberSchema | Yup.ArraySchema | Yup.BooleanSchema | any; +}; + +type NoirFunctionFormValues = { + [key: string]: string | number | number[] | boolean; +}; + +function generateYupSchema(functionAbi: FunctionAbi) { + const parameterSchema: NoirFunctionYupSchema = {}; + const initialValues: NoirFunctionFormValues = {}; + for (const param of functionAbi.parameters) { + // set some super crude default values + switch (param.type.kind) { + case 'field': + // todo: make these hex strings instead, because they are bigints + // and yup doesn't support bigint + parameterSchema[param.name] = Yup.string().required(); + initialValues[param.name] = '0x64'; + break; + case 'array': + // eslint-disable-next-line no-case-declarations + const arrayLength = param.type.length; + parameterSchema[param.name] = Yup.array().of(Yup.number()).min(arrayLength).max(arrayLength); + initialValues[param.name] = Array(arrayLength).fill(200); + break; + case 'boolean': + parameterSchema[param.name] = Yup.boolean().required(); + initialValues[param.name] = false; + break; + } + } + + return { validationSchema: Yup.object().shape(parameterSchema), initialValues }; +} + +async function handleFunctionCall( + contractAddress: AztecAddress | undefined, + contractAbi: ContractAbi, + functionName: string, + args: any, +) { + if (functionName === 'constructor') { + const salt = Fr.random(); + return await deployContract(contractAbi, args, salt, rpcClient); + } + + const functionAbi = contractAbi.functions.find(f => f.name === functionName)!; + if (functionAbi.functionType === 'unconstrained') { + return await viewContractFunction(contractAddress!, contractAbi, functionName, args, rpcClient); + } else { + return await callContractFunction(contractAddress!, contractAbi, functionName, args, rpcClient); + } +} + +interface ContractFunctionFormProps { + contractAddress?: AztecAddress; + contractAbi: ContractAbi; + functionAbi: FunctionAbi; + title?: string; + buttonText?: string; + isLoading: boolean; + disabled: boolean; + onSubmit: () => void; + onSuccess: (result: any) => void; + onError: (msg: string) => void; +} + +export default function ContractFunctionForm({ + contractAddress, + contractAbi, + functionAbi, + title, + buttonText = 'Submit', + isLoading, + disabled, + onSubmit, + onSuccess, + onError, +}: ContractFunctionFormProps) { + const { validationSchema, initialValues } = generateYupSchema(functionAbi); + const formik = useFormik({ + initialValues: initialValues, + validationSchema: validationSchema, + onSubmit: async (values: any) => { + onSubmit(); + try { + const result = await handleFunctionCall(contractAddress, contractAbi, functionAbi.name, values); + onSuccess(result); + } catch (e: any) { + onError(e.message); + } + }, + }); + + return ( +
+

{title || `${functionAbi.name} (${functionAbi.functionType})`}

+
+
+ {functionAbi.parameters.map(input => ( +
+ +
+ +
+ {formik.touched[input.name] && formik.errors[input.name] && ( +
{formik.errors[input.name]?.toString()}
+ )} +
+ ))} +
+
+ +
+
+
+ ); +} diff --git a/yarn-project/boxes/private-token/src/app/home.tsx b/yarn-project/boxes/private-token/src/app/home.tsx new file mode 100644 index 00000000000..6352b557e8e --- /dev/null +++ b/yarn-project/boxes/private-token/src/app/home.tsx @@ -0,0 +1,65 @@ +import { AztecAddress } from '@aztec/aztec.js'; +import { useState } from 'react'; +import Banner from './components/banner.js'; +import Spinner from './components/spinner.js'; +import Contract from './contract.js'; +import { WalletDropdown } from './wallet_dropdown.js'; + +export default function Home() { + const [isLoadingWallet, setIsLoadingWallet] = useState(true); + const [selectedWallet, setSelectedWallet] = useState(); + const [selectWalletError, setSelectedWalletError] = useState(''); + + const handleSelectWallet = (address: AztecAddress | undefined) => { + setSelectedWallet(address); + setIsLoadingWallet(false); + }; + + const handleSelectWalletError = (msg: string) => { + setSelectedWalletError(msg); + setIsLoadingWallet(false); + }; + + return ( +
+
+ + +
+ +
+
+
+ Aztec +
+
+ +
+
+
+ {isLoadingWallet && ( +
+ +
+ )} + {!isLoadingWallet && ( +
+ {!!selectWalletError && `Failed to load accounts: ${selectWalletError}`} + {!selectWalletError && } +
+ )} +
+
+ +
+
+ + +
+
+ ); +} diff --git a/yarn-project/boxes/private-token/src/app/index.css b/yarn-project/boxes/private-token/src/app/index.css new file mode 100644 index 00000000000..84cd8b41763 --- /dev/null +++ b/yarn-project/boxes/private-token/src/app/index.css @@ -0,0 +1,60 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; + overflow-x: hidden; + + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient(to bottom, transparent, rgb(var(--background-end-rgb))) rgb(var(--background-start-rgb)); +} + +#root { + width: 100%; + max-width: 1280px; + margin: 0 auto; + padding: 0rem; + text-align: center; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } +} diff --git a/yarn-project/boxes/private-token/src/app/index.html b/yarn-project/boxes/private-token/src/app/index.html index c3f84962100..57ece0ccf91 100644 --- a/yarn-project/boxes/private-token/src/app/index.html +++ b/yarn-project/boxes/private-token/src/app/index.html @@ -4,8 +4,7 @@ - - Private Token Noir Contract + Private Token Noir Smart Contract
diff --git a/yarn-project/boxes/private-token/src/app/index.tsx b/yarn-project/boxes/private-token/src/app/index.tsx index 59365a1b1a4..acaa7208a82 100644 --- a/yarn-project/boxes/private-token/src/app/index.tsx +++ b/yarn-project/boxes/private-token/src/app/index.tsx @@ -1,16 +1,11 @@ import * as React from 'react'; import * as ReactDOM from 'react-dom/client'; -import { Reset } from 'styled-reset'; -// import Home from './page.js'; -import { L2Tx } from '@aztec/types'; -import { TxHash } from '@aztec/aztec.js'; +import Home from './home.js'; +import './index.css'; const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement); root.render( - - {/* */} - {L2Tx.random().blockHash.toString()} - {TxHash.ZERO.toString()} + , ); diff --git a/yarn-project/boxes/private-token/src/app/wallet_dropdown.tsx b/yarn-project/boxes/private-token/src/app/wallet_dropdown.tsx new file mode 100644 index 00000000000..4ad6aff5373 --- /dev/null +++ b/yarn-project/boxes/private-token/src/app/wallet_dropdown.tsx @@ -0,0 +1,53 @@ +import { AztecAddress, CompleteAddress } from '@aztec/aztec.js'; +import { useEffect, useState } from 'react'; + +interface Props { + selected: AztecAddress | undefined; + onSelectChange: (value: AztecAddress) => void; + onError: (msg: string) => void; +} + +export function WalletDropdown({ selected, onSelectChange, onError }: Props) { + const [wallets, setOptions] = useState(); + + useEffect(() => { + if (wallets) { + return; + } + const loadOptions = async () => { + const fetchedOptions = [await CompleteAddress.random()]; + // TODO + // const fetchedOptions = await rpcClient.getAccounts(); + setOptions(fetchedOptions); + onSelectChange(fetchedOptions[0]?.address); + }; + loadOptions().catch(e => { + setOptions([]); + onError(e.message); + }); + }); + + return ( +
+
+ {'Wallet: '} + {!wallets && 'not hooked in yet'} +
+ {!!wallets && ( + + )} +
+ ); +} diff --git a/yarn-project/boxes/private-token/src/artifacts/PrivateToken.ts b/yarn-project/boxes/private-token/src/artifacts/PrivateToken.ts new file mode 100644 index 00000000000..7e10f6b581e --- /dev/null +++ b/yarn-project/boxes/private-token/src/artifacts/PrivateToken.ts @@ -0,0 +1,110 @@ +/* Autogenerated file, do not edit! */ + +/* eslint-disable */ +import { + AztecAddress, + CompleteAddress, + ContractBase, + ContractFunctionInteraction, + ContractMethod, + DeployMethod, + FieldLike, + Wallet, +} from '@aztec/aztec.js'; +import { ContractAbi } from '@aztec/foundation/abi'; +import { Fr, Point } from '@aztec/foundation/fields'; +import { AztecRPC, PublicKey } from '@aztec/types'; + +import PrivateTokenContractAbiJson from '../artifacts/private_token_contract.json' assert { type: 'json' }; + +export const PrivateTokenContractAbi = PrivateTokenContractAbiJson as unknown as ContractAbi; + +/** + * Type-safe interface for contract PrivateToken; + */ +export class PrivateTokenContract extends ContractBase { + private constructor( + /** The deployed contract's complete address. */ + completeAddress: CompleteAddress, + /** The wallet. */ + wallet: Wallet, + ) { + super(completeAddress, PrivateTokenContractAbi, wallet); + } + + get address() { + return this.completeAddress.address; + } + + /** + * Creates a contract instance. + * @param address - The deployed contract's address. + * @param wallet - The wallet to use when interacting with the contract. + * @returns A promise that resolves to a new Contract instance. + */ + public static async at( + /** The deployed contract's address. */ + address: AztecAddress, + /** The wallet. */ + wallet: Wallet, + ) { + const extendedContractData = await wallet.getExtendedContractData(address); + if (extendedContractData === undefined) { + throw new Error('Contract ' + address.toString() + ' is not deployed'); + } + return new PrivateTokenContract(extendedContractData.getCompleteAddress(), wallet); + } + + /** + * Creates a tx to deploy a new instance of this contract. + */ + public static deploy(rpc: AztecRPC, initial_supply: FieldLike, owner: FieldLike) { + return new DeployMethod( + Point.ZERO, + rpc, + PrivateTokenContractAbi, + Array.from(arguments).slice(1), + ); + } + + /** + * Creates a tx to deploy a new instance of this contract using the specified public key to derive the address. + */ + public static deployWithPublicKey(rpc: AztecRPC, publicKey: PublicKey, initial_supply: FieldLike, owner: FieldLike) { + return new DeployMethod( + publicKey, + rpc, + PrivateTokenContractAbi, + Array.from(arguments).slice(2), + ); + } + + /** + * Returns this contract's ABI. + */ + public static get abi(): ContractAbi { + return PrivateTokenContractAbi; + } + + /** Type-safe wrappers for the public methods exposed by the contract. */ + public methods!: { + /** compute_note_hash_and_nullifier(contract_address: field, nonce: field, storage_slot: field, preimage: array) */ + compute_note_hash_and_nullifier: (( + contract_address: FieldLike, + nonce: FieldLike, + storage_slot: FieldLike, + preimage: FieldLike[], + ) => ContractFunctionInteraction) & + Pick; + + /** getBalance(owner: field) */ + getBalance: ((owner: FieldLike) => ContractFunctionInteraction) & Pick; + + /** mint(amount: field, owner: field) */ + mint: ((amount: FieldLike, owner: FieldLike) => ContractFunctionInteraction) & Pick; + + /** transfer(amount: field, recipient: field) */ + transfer: ((amount: FieldLike, recipient: FieldLike) => ContractFunctionInteraction) & + Pick; + }; +} diff --git a/yarn-project/boxes/private-token/src/artifacts/private_token_contract.json b/yarn-project/boxes/private-token/src/artifacts/private_token_contract.json new file mode 100644 index 00000000000..6860b4cc868 --- /dev/null +++ b/yarn-project/boxes/private-token/src/artifacts/private_token_contract.json @@ -0,0 +1,251 @@ +{ + "name": "PrivateToken", + "functions": [ + { + "name": "compute_note_hash_and_nullifier", + "functionType": "unconstrained", + "isInternal": false, + "parameters": [ + { + "name": "contract_address", + "type": { + "kind": "field" + }, + "visibility": "private" + }, + { + "name": "nonce", + "type": { + "kind": "field" + }, + "visibility": "private" + }, + { + "name": "storage_slot", + "type": { + "kind": "field" + }, + "visibility": "private" + }, + { + "name": "preimage", + "type": { + "kind": "array", + "length": 3, + "type": { + "kind": "field" + } + }, + "visibility": "private" + } + ], + "returnTypes": [ + { + "kind": "array", + "length": 4, + "type": { + "kind": "field" + } + } + ], + "bytecode": "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", + "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" + }, + { + "name": "constructor", + "functionType": "secret", + "isInternal": false, + "parameters": [ + { + "name": "initial_supply", + "type": { + "kind": "field" + }, + "visibility": "private" + }, + { + "name": "owner", + "type": { + "kind": "field" + }, + "visibility": "private" + } + ], + "returnTypes": [], + "bytecode": "H4sIAAAAAAAA/+2c93MTRxTH15Yt40JLwfTe650lYYlqeugGElpIwOVsDG4YGTAd0jvpPSEkIb33MsnkH8vknnk7fj5E+EFvPXwHdmbne/LJe9/P7t273b09/WOMuWqupYIwF4a5iLft5+LI5zhvy2Q/17AmvIXJZFBdFfgJv86rytSnU14yVb8w7af9VDrVWJVOJIJ0Ml2dqc9Uexk/mQj8plQm0eRdSyNFWV6eyaXPUSA+R4P4HAPicyyIz3EgPseD+JwA4nMiiM9JID4ng/icAuJzKojPaSA+p4P4nAHicyaIz1kgPmeD+JwD4nMuiM95ID7ng/hcAOLTA/Hpg/isAvGZAPGZBPGZUvRJ3mjubiKXNyLM/4a5knUk6yjW0axjWMeyjmMdzzqBdSLrJNbJrFNYp7JOY53OOoN1Juss1tmsc1jnss5jnc+6gNVj9VmrWBOsSdaUKG9hmKtN/6TdhmmDca5lQHwuAvG5GMTnEhCfS0F8LgPxuRzEZw2IzxUgPleC+FwF4nM1iM81ID7XGv0+7zAuj/p71PdLs2ZYF7EuZl3CupR1Gety1hrWFawrWVexrmZdw7rW9PU514X5PtM/adfher069G0dFnJ5603/cQOlDWHeGOaYuX5tQC4+L7/kbzC654hNm8R2EWuh+FuMNe6AyUSOE63HITn+pnpwF420yUG5m43eheKKe7N+GzkNupsVfQ5UEBhh3ASBLWL7ThDIs8wRXKHa5W41t3YQIO6t+m3kxUSZ8kSoFdulrHEHx3dw0nu0wrA44p2SvejopB/ESqk5yG6va2/saFvbErQ2FuT4D1kTsci+UrFt95UIKvXYutXod8as8egkbq3p65RtC/N25pEduA38nW3iuzvCfD+XK0+xG9WJl19S78DFHPvVvNe48lgJ4LHWgUcXPncYN32LB8R2BSsFpGg/QwauAvG3aIBzEOITrkL8IMFhIrw2xA/nz+0d2ZamnlVdQV02aNzSkQ1kJdp7RSxHQTIYyP1F4uDxSDmyYu0+mDuCyVEJLnzmW9ZOZWbtK56uzJ2iLpXKHbDRkGb0LxAe7UW0K8y7w7xHMAxmHaDI5KzzGRccNsnIRPuLdI+bkBHeiPo2OerNiONTlLR3jrAjXNtd39rSsDHoydVmsRzlyjtMNJDKdrT7egOh9slKF5qLiy3aPaaTlrq4u1n3sA4N894wPxipIG0+7RvHPsW6Mg78URDa56Dcvxxze/klf68j7r+VuW0qVOZXbB9fk5niQLG5Pmm3f6GjdrqVh90ufe4C8bnb6N677kxj3H7TGLLjZuPyQ2F+2PSlMaxy9CpHtLk6crfDlEKZ4DARXjulYJ/9B20t2TXtDV09neGUwqaOZtkpLmEtzlGOrFdKRWK7WNRnPPLduPBVo8NcVWr6plGMOLZMNWJbPgko0/XSe22Vi2NZX/Y45WJ/ifBRruujd0q8LMIvPTg6bi9/xU34K3L4qBhAfjnFWBbxKa99u+9/Z728/JKvPXi5kc98O937QXweAPFZB+KzHsRnA4jPRhCfAYjPJmWfLp6ZuZj0agZpn4MgPltAfB4C8XkYxGcriM82EJ/tID47QHx2gvg8AuKzC8TnURCfWRCf3SA+j4H4PA7i8wSIzx4QnydBfJ4C8XkaxOcZEJ9nQXyeA/F5HsTnBRCfFx351F68UqDI/AgIc6Ei86MgzDFF5sdAmIsUmR8HYS5WZH4ChDmuyPwkCPM6ReanQJj3KzI/DcJ8QJH5GRDmOkXmZ0GY6xWZnwNhblBkfh6EuVGR+QUQ5kCR+RIIc5Mi84sgzM2KzC+BMB9UZH4ZhLlFkfkVEOZDisyvgjAfVmR+DYS5VZH5dRDmNkXmN0CY2xWZ3wRh7lBkfguEuVOR+W0Q5iOKzO+AMHcpMr8LwnxUkfk9EOasIvP7IMzdisyXQZiPKTJ/AMJ8XJH5CgjzCUXmD0GYexSZPwJhPqnI/DEI8ylF5qsgzKcVmT8BYT6jyPwpCPNZRebPQJjPKTJ/DsJ8XpH5CxDmC4rMX4IwX1Rk/gqEuUSR+WsQ5kGKzN+AMJcqMn8LwlymyPwdCHO5IvP3IMwVisw/gDAPVmT+EYR5iCLzTyDMQxWZfwZhHqbI/AsI83BF5l9BmO9SZP4NhPluRebfQZjvUWT+A4T5XkXmPxWZK7kc+2Oj9E4UvSNkfwWfxoM0PrI/GGh/xJD6G3T/pfsRxWeKV3T90vlM7Uu89OOylaJOF7HSO3H0jhi9M0XvENE7NfSOCb1zQe8g0Jp8WqNOa7ZpDTOt6b0UZlrzSWsgaU0grZGjNWO0horWFNEaG1pzQmswaE0CPaOnZ9b0DJeeaV4OMz3zuhJmeiZCzwhozpzmkGlOleYYac6N5qBoTobmKGjMTmNYGtPRGIf6/NQHpj4h9ZGoz0D3ULqnUIylmEPXIJ2T1Eb/ASYkDrZNkwAA", + "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" + }, + { + "name": "getBalance", + "functionType": "unconstrained", + "isInternal": false, + "parameters": [ + { + "name": "owner", + "type": { + "kind": "field" + }, + "visibility": "private" + } + ], + "returnTypes": [ + { + "kind": "field" + } + ], + "bytecode": "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", + "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" + }, + { + "name": "mint", + "functionType": "secret", + "isInternal": false, + "parameters": [ + { + "name": "amount", + "type": { + "kind": "field" + }, + "visibility": "private" + }, + { + "name": "owner", + "type": { + "kind": "field" + }, + "visibility": "private" + } + ], + "returnTypes": [], + "bytecode": "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", + "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" + }, + { + "name": "transfer", + "functionType": "secret", + "isInternal": false, + "parameters": [ + { + "name": "amount", + "type": { + "kind": "field" + }, + "visibility": "private" + }, + { + "name": "recipient", + "type": { + "kind": "field" + }, + "visibility": "private" + } + ], + "returnTypes": [], + "bytecode": "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", + "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" + } + ], + "debug": { + "debugSymbols": [ + "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7HU6e53OXqez1+nsdTp7nc5ep7PX6ex1Onudzl6ns9fb2evt7PV29no7e72dvd7OXm9nr7ez19vZ6+3s9Xb2ejt7vZ293s5eb2evt7PX29nr7ez1dvZ6O3u9nb3ezl5vZ6+3s9fb2evt7PV29no7e72Lva7712v7zvUcIcsroazYK2Z5JZjllWCWV4JZXglmeSWY5ZVglleCmVtJsVfKir1i5lZS7BUzt5Jir5i5lRR7xcytpNgrZm4lxV4xcysp9oqZW0mxV8zcSoq9YuZWUuwVM7eSYq+YuZUUe8XMraTYK2ZuJcVeMXMrKfaKmVtJsVfM3EqKvWLmVlLsFTO3kmKvmLmVFHvFzK2k2CtmbiXFXjFzKyn2iplbSbFXzNxKir1i5lZS7BUzt5Jir5i5lRR7xcytpNgrZm4lxV4xUytZxV4xUytZxV4xUytZxV4xUytZxV4xUytZxV4xcysp9oqZW0mxV8zcSoq9YuZWUuwVM7eSYq+YuZUUe8XMraTYK2ZuJcVeMXMrKfaKmVuJs9fl7HU5e13OXpez1+XsdTl7Xc5el7PX5ex1OXtdzl6Xs9fl7HU5e13OXpez1+XsdTl7Xc5el7PX5ex1OXtdzl6Xs9fl7HU5e13OXpez1+XsdTl7Xc5el7PX5ex1OXtdzl6Xs9fl7HU5e13OXpez1+XsdTl7Xc5el7PX5ex1OXtdzl6Xs9fl7HU5e13OXpez1+XsdTl7Xc5el7PX5ex1OXtdzl6Xs9fl7HU5e13OXpez1+XsdTl7Xc5el7PX5ex1OXtdzl63s9ft7HU7e93OXrez1+3sdTt73c5et7PX7ex1O3vdzl63s9ft7HU7e93OXrez1+3sdTt73c5et7PX7ex1O3vdzl63s9ft7HU7e93OXrez1+3sdTt73c5et7PX7ex1O3vdzl63s9ft7HU7e93OXrez1+3sdTt73c5et7PX7ex1O3vdzl63s9ft7HU7e93OXrez1+3sdTt73c5et7PX7ex1O3vdzl63s9ft7HU7e93OXrez1+3sdTt73c5et7PX7ex1O3vdzl63s9ft7HU7e93OXrez1+3sdTt73c5et7PX7ex1O3vdzl63s9ft7HU7e93OXrez1+3sdTt73c5et7PX7ex1O3vdzl63s9ft7HU7e93FXvfx+37T90/g/5I9xV4xyyvBLK8Es7wSzPJKMMsrwSyvBLO8EszySjBzKyn2iplbSbFXzNxKir1i5lZS7BUzt5Jir5i5lRR7xcytpNgrZm4lxV4xcysp9oqZW0mxV8zcSoq9YuZWUuwVM7eSYq+YuZUUe8XMraTYK2ZuJcVeMXMrKfaKmVtJsVfM3EqKvWLmVlLsFTO3kmKvmLmVFHvFzK2k2CtmbiXFXjFzKyn2iplbSbFXzNxKir1i5lZS7BUzt5Jir5i5lRR7xcytpNgrZm4lxV4xcysp9oqZW0mxV8zcSoq9YuZWUuwVM7eSYq+YuZUUe8XMraTYK2ZuJcVeMXMrKfaKmVtJsVfM3EqKvWLmVlLsFTO3kmKvmKmVHD8OX99O7eTt1FDeTi3l7dRU3k5t5e3UWN5OreXt1FzeTu7FMezbyb04iH07uRdHsW8n9+Iw9u3kXhzHvp3ciwPZt5N7cST7dnIvDmXfTu7Fsezbyb04mH07uRdHs28n9+Jw9u3kXhzPvp3ciwPat5N7cUT7dnIvDmnfTu7FMe3byb04qH07uRdHtW8n9+Kw9u3kXhzXvp3ciwPbt5N7cWT7dnIvDm3fTu7Fse3byb04uH07uRdHt28n9+Lw9u3kXhzfvp3ciwPct5N7cYT7dnIvDnHfTu7FMe7byb04yH07uRdHuW8n9+Iw9+3kXhznvp3ciwPdt5N7caT7dnIvDnXfTu7Fse7byb042H07uRdHu28n9+Jw9+3kXhzvvp3byyF995C+e0jfPaTvHtJ3D+m7h/TdQ/ruIX33kL57SN89pO8e0ncP6buH9N1D+u4hffeQvntI3z2k7x7Sdw/pu4f03UP67iF995C+e0jfPaTvHtJ3D+m7h/TdQ/ruIX33kL57SN89pO8e0ncP6buH9N1D+u4hffeQvntI3z2k7x7Sdw/pu4f03UP67iF995C+e0jfPaTvHtJ3D+m7h/TdQ/ruIX33kL57SN89pO8e0ncP6buH9N1D+u4hffeQvntI3z2k7x7Sdw/pu4f03UP67lF89/m5fnXP+kld3gt3eS/c5b1wl/fCXd4Ld3kv3OW9YFd8l7u8F+7kXorvcif3UnyXO7mX4rvcyb0U38Wu+C53ci/Fd7mTeym+y53cS/Fd7uReiu9y5/ZyFt/lzu3lLL7LndvLWXyXO7eXs/gud24vZ/Fd7uReiu9yJ/dSfJc7uZfiu9zJvRTf5U7upfgud3IvxXe5k3spvsud3EvxXe7kXorvcif3UnyXO7mX4rvcyb0U3+VO7qX4LndyL8V3uZN7Kb7LndxL8V3u5F6K73In91J8lzu5l+K73Mm9FN/lTu6l+C53ci/Fd7mTeym+y53cS/Fd7uReiu9yJ/dSfJc7uZfiu9zJvRTf5U7upfgud3IvxXe5k3spvsud3Iv03VP67il995S+e0rfPaXvntJ3T+m7p/TdU/ruKX33lL57St89pe+e0ndP6bun9N1T+u4pffeUvntK3z2l757Sd0/pu6f03VP67il995S+O6TvDum7Q/rukL47pO8O6btD+u6Qvjuk7w7pu0P67pC+O6TvDum7Q/rukL47pO8O6btD+u6Qvjuk7w7pu0P67pC+O6TvDum7Q/rukL47pO8O6btD+u6Qvjuk7w7pu0P67pC+O6TvDum7Q/rukL47pO8O6btD+u6Qvjuk7w7pu0P67pC+O6TvDum7Q/rukL47pO8O6btD+u6Qvjuk7w7pu0P67pC+O6TvDum7Q/rukL47pO8O6btD+u6Qvjuk7w7pu0P67pC+O6TvDum7Q/rukL47pO8O6btD+u6Qvjuk7w7pu0P67pC+O6TvDum7Q/rukL47pO8O6btD+u6Qvjuk7w7pu0P67pC+O6TvDum7Q/rukL57Sd+9pO9e0ncv6buX9N1L+u4lffeSvntJ372k717Sdy/pu5f03Uv67iV995K+e0nfvaTvXtJ3L+m7l/TdS/ruJX33kr57Sd+9pO9e0ncv6buX9N1L+u4lffeSvntJ372k717Sdy/pu5f03Uv67iV995K+e0nfvaTvXtJ3L+m7l/TdS/ruJX33kr57Sd+9pO9e0ncv6buX9N1L+u4lffeSvntJ372y746fn/VnN37ukbq4lw9d3At32Xc/dHEvH7q4lw9d3MuHLu7lQxf38qGLe/nQyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qyb1k3/3Qub3M7LsfOreXmX33Q+f2MrPvfujcXmb23Q+d28vMvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3vJvvuhk3uRvjul707pu1P67pS+O6XvTum7U/rulL47pe9O6btT+u6Uvjul707pu1P67pS+O6XvTum7U/rulL47pe9O6btT+u6Uvjul707pu1P67pS+O6XvTum7U/rulL47pe9O6btT+u6Uvjul707pu1P67pS+O6Xv3tJ3b+m7t/TdW/ruLX33lr57S9+9pe/e0ndv6bu39N1b+u4tffeWvntL372l797Sd2/pu7f03Vv67i1995a+e0vfvaXv3tJ3b+m7t/TdW/ruLX33lr57S9+9pe/e0ndv6bu39N1b+u4tffeWvntL372l797Sd2/pu7f03Vv67i1995a+e0vfvaXv3tJ3b+m7t/TdW/ruLX33lr57S9+9pe/e0ndv6bu39N1b+u4tffeWvntL372l797Sd2/pu7f03Vv67i1995a+e0vfvaXv3tJ3b+m7t/TdW/ruLX33lr57S9+9pe/e0ndv6bu39N1b+u4tffeWvntL372l797Sd2/pu7f03Vv67i1995a+e0vfvaXv3tJ3b+m7t/TdW/rukr67pO8u6btL+u6Svruk7y7pu0v67pK+u6TvLum7S/rukr67pO8u6btL+u6Svruk7y7pu0v67pK+u6TvLum7S/rukr67pO8u6btL+u6Svruk7y7pu0v67pK+u6TvLum7S/rukr67pO8u6btL+u6Svruk7y7pu0v67pK+u6TvLum7S/rukr67pO8u6btL+u6Svruk7y7pu0v67pK+u6TvLum7S/ruKr57zF/PnxjHWqnLe+Eu74W7vBfu8l64y3vhLu+Fu7wX7vJeuMt7wa74LndyL8V3uZN7Kb7LndxL8V3u5F6K73In91J8lzu5l+K73Mm9FN/lTu6l+C53ci/Fd7mTeym+y53cS/Fd7uReiu9yJ/dSfJc7uZfiu9y5veziu9y5veziu9y5veziu9y5veziu9y5veziu9zJvRTf5U7upfgud3IvxXe5k3spvsud3EvxXe7kXorvcif3UnyXO7mX4rvcyb0U3+VO7qX4LndyL8V3uZN7Kb7LndxL8V3u5F6K73In91J8lzu5l+K73Mm9FN/lTu6l+C53ci/Fd7mTeym+y53cS/Fd7uReiu9yJ/dSfJc7uZfiu9zJvRTf5U7uRfrulr67pe9u6btb+u6Wvrul727pu1v67pa+u6Xvbum7W/rulr67pe9u6btb+u6Wvrul727pu1v67pa+u6Xvbum7W/rulr67pe9u6btb+u6Wvrul727pu1v67pa+u6Xvbum7W/rulr67pe9u6buP9N1H+u4jffeRvvtI332k7z7Sdx/pu4/03Uf67iN995G++0jffaTvPtJ3H+m7j/TdR/ruI333kb77SN99pO8+0ncf6buP9N1H+u4jffeRvvtI332k7z7Sdx/pu4/03Uf67iN995G++0jffaTvPtJ3H+m7j/TdR/ruI333kb77SN99pO8+0ncf6buP9N1H+u4jffeRvvtI332k7z7Sdx/pu4/03Uf67iN995G++0jffaTvPtJ3H+m7j/TdR/ruI333kb77SN99pO8+0ncf6buP9N1H+u4jffeRvvtI332k7z7Sdx/pu4/03Uf67iN995G++0jffaTvPtJ3H+m7j/TdR/ruI333kb77SN99pO8+0ncf6buP9N1H+u4jffdxvnv+ON99O7WXt1N7eTu1l7dTe3k7tZe3U3t5O7WXt1N7eTu5F+e7byf34nz37eRenO++ndyL8923k3txvvt2ci/Od99O7sX57tvJvTjffTu5F+e7byf34nz37eRenO++ndyL8923k3txvvt2ci/Od99O7sX57tvJvTjffTu5F+e7byf34nz37eRenO++ndyL8923k3txvvt2ci/Od99O7sX57tvJvTjffTu5F+e7byf34nz37eRenO++ndyL8923k3txvvt2ci/Od99O7sX57tvJvTjffTu5F+e7byf34nz37eRenO++ndyL8923k3txvvt2ci/Od99O7sX57tvJvTjffTu5F+e7byf34nz37eRenO++ndyL8923k3txvvt2bi+H9N1D+u4hffeQvntI3z2k7x7Sdw/pu4f03UP67iF995C+e0jfPaTvHtJ3D+kah3SNQ7rGIV3jkK5xSNc4pGsc0jUO6RpHdo3jmH9mx3n9ru7jV5W1AKv4GWAVPwGs4vXHKl59rOK1xyp+c94v1K/q+glV/h1M/1n5V/Bx7V/V3KnKV+O6fldPqvLVoCrvkK5G/FMLK3Xl8y9frPI3har8TaEqb4OqvA2q8jaoytugSm0j/9LFSm0j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5U7upbgpd3IvxU25k3spbsqd3EtxU+7kXoqbcif3UtyUO7mX4qbcub2M4qbcub2M4qbcub2M4qbcub2M4qbcub2M4qbcyb0UN+VO7qW4KXdyL8VNuZN7KW7KndxLcVPu5F6Km3L3YS8zdR/2ErsPe4ld8aWf/aub4/7dXet3V3wJu+JL1DWPxK54JHbFI7ErHold8UjsikdiVzwSO7mX5pHYyb00j8RO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8VO7qWdN8XO7eVq502xc3u52nlT7NxeruKm3Lm9XO28KXZuL1c7b4qd3Es7b4qd3Es7b4qd3Es7b4qd3Es7b4qd3Es7b4qd3Es7b4qd3Es7b4qd3Es7b4qd3Es7b3r99t15X6kre6Eue+t5jl/dOX7O1OWXdnIXP78PXfz8PnTx8/vQxc/vQ5ff6spdfrErd/ndrtzl17til731Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3kr31Qyf3Ut5Kz53cS3k3PXdyL+UN9dzJvWRv/dDJvWRv/dDJvWRv/dDJvWRv/dDJvWRv/dDJvWRv/dDJvWRv/dDJvWRv/dDJvWRv/dC5vczsrR86t5eZvfVD5/Yys7d+6NxeZvbWD53by8ze+qGTe8ne+qGTe8ne+qGTe8ne+qGTe8ne+qGTe8ne+qGTe8ne+qGTe8ne+qGTe8ne+qGTe8ne+qGTe8nnaT90ci/Sd6f03Sl9d0rfndJ3p/TdKX13St+d0nen9N0pfXdK353Sd6f03Sl9d0rfndJ3p/TdKX13St+d0nen9N0pfXdK353Sd6f03Sl9d0rfndJ3p/TdKX13St+d0nen9N0pfXdK353Sd6f03Sl9d0rfndJ3p/TdKX13lvOt6/79XJx9PKnL/97PXf73fu7y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RpZOrNQ2snJipbaRhRMrtY2sm1ipbWTZxEptI6smVmobWTSxMts4s2ZiZbZxZsnEymzjzIqJldnGmQUTK7ONM+slVmobWS6xUtvIaomV2kYWS6zUNrJWYqW2kaUSK7WNrJRYqW1kocRKbSPrJFZqG1kmsVLbyCqJldpGFkms1DayRmKltpElEiu1jayQWKltZIHESm0j6yNWahtZHrFS28inSrFS28gnSq/16w0o1/Nf37f0VnEbWMVtYBW3QVV2UaziNrCK28AqbgOruA2s4jawUtvILoqV2kZ2Uaqyi2KltpFdFCu1jeyiWKltZBfFSm0juyhWahvZRbFS28guipXaRnZRrNQ2sotipbaRXRQrtY3solipbWQXxUptI7soVmob2UWxUtvILoqV2kZ2UazUNrKLYqW2kV0UK7WN7KJYqW1kF8XKbGNkF8XKbGNkF8XKbGNkF8XKbGNkF8XKbGNkF8VKbSO7KFZqG9lFsVLbyC6KldpGdlGs1Dayi2KltpFdFCu1jeyiWKltZBfFSm0juyhWahvZRbFS28guipXaRnZRrNQ2sotipbaRXRQrtY3solipbWQXxUptI7soVmob2UWxUttQLjqUiw7lokO56FAuOpSLDuWiQ7noUC46lIsO5aJDuehQLjqUiw7lokO56FAuOpSLDuWiQ7noUC46sovOn1/VnHeq4jawitugKrsoVnEbWMVtYBW3gVXcBlZxG1jFbWCltpFdFCu1jeyiWKltZBfFSm0juyhWahvZRbFS28guipXaRnZRrNQ2sotipbaRXRQrtY3solipbWQXxcps48ouipXZxpVdFCuzjSu7KFZmG1d2UazMNq7solipbWQXxUptI7soVmob2UWxUtvILoqV2kZ2UazUNrKLYqW2kV0UK7WN7KJYqW1kF8VKbSO7KFZqG9lFsVLbyC6KldpGdlGs1Dayi2KltpFdFCu1jeyiWKltZBfFSm0juyhWahvZRbFS28guipXaRnZRrNQ2sotipbaRXRQrtY3solipbWQXxUptI7soVmob2UWxUtvILoqV2kZ2UazUNpSLXspFL+Wil3LRS7nopVz0Ui56KRe9lIteykUv5aKXctFLueilXPRSLnopF72Ui17KRS/lopdy0Uu56KVc9Cp3qd+/Xrwx/uHfidbxu4pXHqt8ZxBV+a4xqvJdY1Tlu8aoyneN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LjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kFXOh1We39Vu51bdP6+qun9eVXX/vOb5XfVft+r+eVXV/fOqqvvnVVX373JV3b/LVXXfRlE9rLKq7tuoqvs2qoq28bDKqqJtPKyyqmgbD6usKtrGwyqrirbxsMqqom08rLKqaBsPq6wq2sbDKquKtvGwyqqibTyssqpoGw+rrCraxsMqq4q28bDKqqJtPKyyqmgbD6usKtrGwyqrirbxsMqqom08rLKqaBsPq6wq2sbDKquKtvGwyqqibTyssqpoGw+rrCraxsMqq4q28bDKqqJtPKyyqmgbD6usKtrGwyqrirbxsMqqom08rLKqaBsPq6wq2sbDKquKtvGwyqqibTyssqpoGw+rrCraxsMqq4q28bDKqqJtPKyyqmgbD6usKtrGwyqrirbxsMqqom08rLKqaBuPM5xVJdtYDxetKtnGerhoVck2FrnoIhdd5KKLXHSRiy5y0UUuushFF7noIhdd5KKLXHSRiy5y0UUuushFF7noIhdd5KKLXHSRiy5y0UUuushFF7noIhdd5KKLXHSRiy5y0UUuushFF7noIhdd5KKLXHSRiy5y0UUuushFF7noIhdd5KKLXHSRiy5y0UUuushFF7noIhdd5KKLXHSRiy5y0UUuushFF7noIhdd5KKLXHSRiy5y0UUuushFF7noIhdd5KKLXHSRiy5y0UUuushFF7noIhdd5KKLXHSRiy5y0UUuushFF7noIhdd5KKLXHSRiy5y0UUuushFF7noIhdd5KKLXHSRiy5y0UUuushFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXHSTi25y0U0uuslFN7noJhfd5KKbXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMueshFD7noIRc95KKHXPSQix5y0UMuesRF2y9x0a+CbXwVbOOrYBtfBdv4KtjGV8E2vgq28VWwja+ibYiLfhVtQ1z0q2gbDxcd+8/VfRtVdd9GVd23UVX3bVTVfRtF9XDRqrp/ylV1fYbz1/p7NeM//y7xV12fYVldn2FZXZ9hVd39sKyu36+yuj75srp+v8rq+v0qq+v3q6xoG3c/LCvaxt0Pq+ruh2VF27j7YVnRNu5+WFa0jbsflhVt4+6HZUXbuPthWdE27n5YVrSNux/+h+ry+/NfVW3jXlXbuFfVNu5VtY17VW3jWt39sKyqbdyrahv3qtrGvaJt3P2wrGgbdz8sK9rG3Q+r6u6HZUXbuPthWdE27n5YVrSNux+WFW3j7odlRdu4+2FZ0TbuflhWtI27H5YVbePuh2VF27j7YVnRNu5+WFa0jbsflhVt4+6HZUXbuPthWdE27n5YVrKNuPthWck24u6HZSXbiLsflpVsI+5+WFayjbj7YVnRNu5+WFa0jbsflhVt4+6HZUXbuPthWdE27n5YVrSNux+WFW3jro5lRdu4n6ssK9pG6aL3irZRuui9om2ULnqvaBuli94r2kbpoveKtlG66L2ibZQueq9oG6WL3ivaRumi94q2UbrovaJtlC56r2gbpYveK9pG6aL3irZRuui9om2Qiwa5aJCLBrlokIsGuWiQiwa5aJCLBrlokIsGuWiQiwa5aJCLBrlokIsGuWiQiwa5aJCLBrlokIsGuWiQiwa5aJCLBrlokIsGuWiQiwa5aJCLBrlokIsGuWiQiwa5aJCLBrlokIsGuWiQiwa5aJCLBrloIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRizZy0UYu2shFG7loIxdt5KKNXLSRi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7loJxft5KKdXLSTi3Zy0U4u2slFO7lokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya5aJKLJrlokosmuWiSiya56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kIsOctFBLjrIRQe56CAXHeSig1x0kItOctFJLjrJRSe56CQXneSik1x0kotOctFJLjrJRSe56CQXnWSV82GVY/yu5rpV98+rqu6fV1XdP6+ielhlVd0/r6q6f15Vdf8uV9X9u1xV921UFW3jYZVVRdt4WGVRPayyqmgbD6usKtrGwyqrirbxsMqqom08rLKqaBsPq6wq2sbDKquKtvGwyv9T7Xmrqm3cq2ob96raxr2qtnGvqm1cq4dVVlW1jXtVbeNeVdu4V7SNh1VWFW3jYZVVRdt4WGVRPayyqmgbD6usKtrGwyqrirbxsMqqom08rLKqaBsPq6wq2sbDKquKtvGwyqqibTyssqpoGw+rrCraxsMqq4q28bDKqqJtPKyyqmgbD6usKtrGwyqrirbxsMqqom08rLKqaBsPq6wq2sbDKquKtvGwyqqSbayHVVaVbGM9rLKqZBvrYZVVJdtYD6usKtnGelhlVdE2HlZZVbSNh1VWFW3jcYazqmgbpYveK9pG6aL3irZRuui9om2ULnqvaBuli94r2kbpoveKtlG66L2ibZQueq9oG6WL3ivaRumi94q2UbrovaJtlC56r2gbpYveK9pG6aL3irZBLrrIRRe56CIXXeSii1x0kYsuctFFLrrIRRe56CIXXeSii1x0kYsuctFFLrrIRRe56CIXXeSii1x0kYsuctFFLrrIRRe56CIXXeSii1x0kYsuctFFLrrIRRe56CIXXeSii1x0kYsuctFFLrrIRRe56CIXXeSii1x0kYsuctFFLrrIRRe56CIXXeSii1x0kYsuctFNLrrJRTe56CYX3eSim1x0k4tuctFNLrrJRTe5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A313oO8O9N2BvjvQdwf67kDfHei7A313oO8O9N2BvjvQdwf67kDfHei7A313oO8O9N2BvjvQdwf67kDfHei7A313oO8O9N2BvjvQdwf67kDfHei7A313oO8O9N2BvjvQdwf67kDfHei7A313oO8O9N2BvjvQdwf67kDfHei7A313oO8O9N2BvjvQdwf67kDfHei7A313oO8O9N2BvjvQdwf67kDfHei7A313oO8O9N2BvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N1jvjt+me9+He3l62gvX0d7+Tray9fRXr6O9vJ1tJevo718He7FfPfrcC/mu1+HezHf/Trci/nu1+FezHe/Dvdivvt1uBfz3a/DvZjvfh3uxXz363Av5rtfh3sx3/063Iv57tfhXsx3vw73Yr77dbgX892vw72Y734d7sV89+twL+a7X4d7Md/9OtyL+e7X4V7Md78O92K++3W4F/Pdr8O9mO9+He7FfPfrcC/mu1+HezHf/Trci/nu1+FezHe/Dvdivvt1uBfz3a/DvZjvfh3uxXz363Av5rtfh3sx3/063Iv57tfhXsx3vw73Yr77dbgX892vw72Y734d7sV89+twL+a7X4d7Md/9OtyL+e7X4V7Md7/O9hLou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+u9F3N/ruRt/d6LsbfXej72703Y2+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd896LsHffeg7x703YO+e9B3D/ruQd895rvzl/nu19Fevo728nW0l6+jvXwd7eXraC9fR3v5OtrL1+FezHe/Dvdivvt1uBfz3a/DvZjvfh3uxXz363Av5rtfh3sx3/063Iv57tfhXsx3vw73Yr77dbgX892vw72Y734d7sV89+twL+a7X4d7Md/9OtyL+e7X4V7Md78O92K++3W4F/Pdr8O9mO9+He7FfPfrcC/mu1+HezHf/Trci/nu1+FezHe/Dvdivvt1uBfz3a/DvZjvfh3uxXz363Av5rtfh3sx3/063Iv57tfhXsx3vw73Yr77dbgX892vw72Y734d7sV89+twL+a7X4d7Md/9OtyL+e7X4V7Md78O92K++3W4F/Pdr8O9mO9+He7FfPfrbC+Bvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvQdxv6bkPfbei7DX23oe829N2GvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7HX23o+929N2OvtvRdzv6bkff7ei7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670HcX+u5C313ouwt9d6HvLvTdhb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdY767fpnvfh3t5etoL19He/k62svX0V6+jvbydbSXr6O9fB3uxXz363Av5rtfh3sx3/063Iv57tfhXsx3vw73Yr77dbgX892vw72Y734d7sV89+twL+a7X4d7Md/9OtyL+e7X4V7Md78O92K++3W4F/Pdr8O9mO9+He7FfPfrcC/mu1+HezHf/Trci/nu1+FezHe/Dvdivvt1uBfz3a/DvZjvfh3uxXz363Av5rtfh3sx3/063Iv57tfhXsx3vw73Yr77dbgX892vw72Y734d7sV89+twL+a7X4d7Md/9OtyL+e7X4V7Md78O92K++3W4F/Pdr8O9mO9+He7FfPfrcC/mu1+HezHf/Trci/nu1+FezHe/zvYS6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvjvQdwf67kDfHei7A313oO8O9N3x8N2+83c357p1973U3X0vZffw3bq776Xu7nupu/te6u6+l7q776Xu7nupO9zLw3frDvfy8N26w708fLfucC8P36073MvDd+sO9/Lw3brDvTx8t+5wLw/frTvcy8N36w738vDdusO9PHy37nAvD9+tO9zLw3frDvfy8N26w708fLfucC8P36073MvDd+sO9/Lw3brDvTx8t+5wLw/frTvcy8N36w738vDdusO9PHy37nAvD9+tO9zLw3frDvfy8N26w708fLfucC8P36073MvDd+sO9/Lw3brDvTx8t+5wLw/frTvcy8N36w738vDdusO9PHy37nAvD9+tO9zLw3frDvfy8N26w708fLfucC8P36073MvDd+vO9jIfvlt3tpf58N26s73Mh+/Wne1lPny37mwvE313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvjvRdyf67kTfnei7E313ou9O9N2JvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7C313oe8u9N2FvrvQdxf67kLfXei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvrvRdzf67kbf3ei7G313o+9u9N2NvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPei7B333oO8e9N2DvnvQdw/67kHfPea7+5f57tfRXr6O9vJ1tJevo718He3l62gvX0d7+Tray9fhXsx3vw73Yr77dbgX892vw72Y734d7sV89+twL+a7X4d7Md/9OtyL+e7X4V7Md78O92K++3W4F/Pdr8O9mO9+He7FfPfrcC/mu1+HezHf/Trci/nu1+FezHe/Dvdivvt1uBfz3a/DvZjvfh3uxXz363Av5rtfh3sx3/063Iv57tfhXsx3vw73Yr77dbgX892vw72Y734d7sV89+twL+a7X4d7Md/9OtyL+e7X4V7Md78O92K++3W4F/Pdr8O9mO9+He7FfPfrcC/mu1+HezHf/Trci/nu1+FezHe/Dvdivvt1uBfz3a/DvZjvfh3uxXz362wvgb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvou4G+G+i7gb4b6LuBvhvouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3ou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LuJvpvou4m+m+i7ib6b6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsTfXei70703Ym+O9F3J/ruRN+d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u9B3F/ruQt9d6LsLfXeh7y703YW+u/53Z/eaK7mOrNm2S8GHRLJx1fcrB07EPgWYFe2OfwksTGSm69N6jKC70HcX+u5C313ouwt9d6HvLvTdhb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouxt9d6PvbvTdjb670Xc3+u5G393ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdg7570HcP+u5B3z3ouwd996DvHvTdY757/pjvfh3t5etoL19He/k62svX0V6+jvbydbSXr6O9fB3uxXz363Av5rtfh3sx3/063Iv57tfhXsx3vw73Yr77dbgX892vw72Y734d7sV89+twL+a7X4d7Md/9OtyL+e7X4V7Md78O92K++3W4F/Pdr8O9mO9+He7FfPfrcC/mu1+HezHf/Trci/nu1+FezHe/Dvdivvt1uBfz3a/DvZjvfh3uxXz363Av5rtfh3sx3/063Iv57tfhXsx3vw73Yr77dbgX892vw72Y734d7sV89+twL+a7X4d7Md/9OtyL+e7X4V7Md78O92K++3W4F/Pdr8O9mO9+He7FfPfrcC/mu1+HezHf/Trci/nu1+FezHe/zvbS0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323ouw19t6HvNvTdhr7b0Hcb+m5D323oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr7b0Xc7+m5H3+3oux19t6PvdvTdjr470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouwN9d6DvDvTdgb470HcH+u5A3x3ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib470Xcn+u5E353ouxN9d6LvTvTdib77oO8+6LsP+u6Dvvug7z7ouw/67oO++6DvPui7D/rug777oO8+6LsP+u6Dvvug7z7ouw/67oO++6DvPui7T+ym7W3jf7q2nvavW++/LrwOhS68DoUuvA6FLrwO9y5200IXXodCF963hS68bwtdeN8WOtxL7KaFDvcSu2mhw73EblrocC+xmxY63EvspoUO9xK7aaHDvcRuWuhwL7GbFjrcS+ymhQ73ErtpocO9xG5a6HAvsZsWOtxL7KaFDvcSu2mhw73EblrocC+xmxY63EvspoUO9xK7aaHDvcRuWuhwL7GbFjrcS+ymhQ73ErtpocO9xG5a6HAvsZsWOtxL7KaFDvcSu2mhw73EblrocC+xmxa62AvO2//+nXrW+Nf993dq4pH3LvaCexd7wb2LveDWvbEP7v7n+Z9u996iLryPCl14HxW68PoVuvD6Fbrw+hW68PoVuvD6FbrwPrp3sQ8WOtxL7IOFDvcS+2Chw73EPljocC+xDxY63Evsg4UO9xKf/yx0uJf4/Gehw73EjlnocC+xYxY63Evs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LYS6nER0C6EuJxHdQqjLSUS3EOpyEtEthLqcRHQLoS4nEd1CqMtJRLcQ6nIS0S2EupxEdAuhLicR3UKoy0lEtxDqchLRLYS6nER0C6EuJxHdQqjLSUS3EOpyEtEthLickYhuIcTljORUcCHE5Qw15KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeqSHPf2F7wjBbzjXMlnMNs+Vcw2w51zBbzjXMlnMJn9SQr2G2nGuYLeca4nKe1JCvIS7nSQ35GuJyntSQr6EuJzXka6jLSQ35GupyUkO+hrqc1JCvoS4nNeRrmCxn/wu/OUdhZsj3MFnOPUyWcw+T5dzDZDn3MFnOPUyWcw+T5dzDZDn3UJeTGfI91OVkhnwPdTmZId9DXU5myPdQl5MZ8j3U5WSGfA91OZkh30NdTmbI91CXkxnyPdTlZIZ8D3U5mSHfQ11OZsj3UJeTGfI91OVkhnwPdTmZId9DXU5myPdQl5MZ8j3U5WSGfA91OZkh30NdTmbI91CXkxnyPdTlZIZ8D3U5mSHfQ11OZsj3UJeTGfI91OVkhnwPdTmZId9DXU5myPdQl5MZ8j3U5WSGfA91OZkh30NdTmbI91CXkxnyPdTlZIZ8D3U5mSHfQ1zOmxnyPcTlvJkh30NczpsZ8j3E5byZId9DXM6bGfI91OVkhnwPdTmZId9DXU5myPdQl5MZ8j3U5WSGfA91OWrIrxryq4b8qiG/asivGvKrhvyqIb9qyK8a8quG/Kohv2rIrxryq4b8qiG/asivGvKrhvyqIb9qyK8a8quG/Kohv2rIrxryq4b8qiG/asivGvKrhvyqIb9qyK8a8quG/Kohv2rIrxryq4b8qiG/asivGvKrhvyqIb9qyK8a8quG/Kohv2rIrxryq4b8qiG/asivGvKrhvyqIb9qyK8a8quG/Kohv2rIrxryq4b8qiG/asivGvKrhvyqIb9qyK8a8quG/Kohv2rIrxryq4b8qiG/asivGvKrhvyqIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeasg7M+T136f27T9hmCznHibLuYfJcu5hspx7mCznHibLuYfJcu5hspx7mCznGmaGfA91OZkh30NdTmbI91CXkxnyPdTlZIZ8D3U5mSHfQ11OZsj3UJeTGfI91AFkFHwNY5hd56y/4Z/WwjC8HJUwvByVMLwclTC8HJUwvJErYXgdK2F4HStheCNXwvBGLoQxzFZCXU4Ms5VQlxPDbCXU5cQwWwl1OTHMVkJczolhthLick4Ms5UQl3NimK2EuJwTw2wlxOWcGGYroS4nhtlKqMuJYbYS6nJimK2EupwYZiuhLieG2Uqoy4lhthLqcmKYrYS6nBhmK6EuJ4bZSqjLiWG2EupyYpithLqcGGYroS4nhtlKqMuJYbYS6nJimK2EupwYZiuhLieG2Uqoy4lhthLqcmKYrYS6nBhmK6EuJ4bZSqjLiWG2EupyYpithLqcGGYroS4nhtlKqMuJYbYS6nJimK2EupwYZiuhLieG2Uqoy4lhthLqcmKYrYS6nBhmK6EuJ4bZSqjLiUW3Eupy4sO9lVCXo4Z81JCPGvJRQz5qyEcN+aghHzXko4Z81JCPGvJRQz5qyEcN+aghHzXko4Z81JCPGvJBQ25/0JC/0JbzhbacL7TlfKEt5wttOV9oy/lCW84X2nK+UJeDhvyFuhw05C/U5aAhf6EuBw35C3U5aMhfqMtBQ/5CXQ4a8hfqctCQv1CXg4b8hbocNOQv1OWgIX+hLgcN+Qt1OWjIX6jLQUP+Ql0OGvIX6nLQkL9Ql4OG/IW6HDTkL9TloCH/nuauoS4HDfn3KF8NdTloyL/nOGqoy0FD/j3ES0NdDhry7wkuGKIh/57foKEuBw359+HdGupy0JB/n9yqoS4HDfn3sX0a6nLQkH+f2aShLgcN+feBHRrqctCQf+/WxhAN+fdeTQ11OWjIvzfqaKjLQUP+HSjXUJeDhvw7TaihLgcN+XeURENdDhry798RNdTloCH/ENnCpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ25qyE0NuakhNzXkpobc1JCbGnJTQ+5qyF0NuashdzXkrobc1ZC7GnJXQ+5qyF0NuashdzXkrobc1ZC7GnJXQ+5qyF0NuashdzXkrobc1ZC7GnJXQ+5qyF0NuashdzXkrobc1ZC7GnJXQ+5qyF0NuashdzXkrobc1ZC7GnJXQ+5qyF0NuashdzXkrobc1ZC7GnJXQ+5qyD35kOE//d+HDP+ZwSdMtp58yHAhjD/wsxDGH/hZCOMP/CyE4XIqYfxRsYUw/qTQQhh/UmghjD8qthDqcpIPGS6EupzkQ4YLoS4n+ZDhQqjLST5kuBDqcpIPGS6EupzkQ4YLoS4n+ZDhQqjLST5kuBDqcpJPJy6EupzkQXWFUJeTPKiuEOpykgfVFUJdTvKgukKoy0keVFcIdTnJg+oKoS4neVBdIdTlJA+qK4S6nORBdYVQl5M8qK4Q6nKSB9UVQlzOSB5UVwhxOSN5UF0hxOWM2JArIS5nJA+qK4S4nJE8qK4Q6nKSB9UVQl1O8qC6QqjLSR5UVwh1OcmD6gqhLid5UF0h1OUkD6orhLqc5EF1hVCXkzyorhDqcpIH1RVCXU7yoLpCqMtJHlRXCHU5yYPqCqEuJ3lQXSHU5SQPqiuEupzkQXWFUJeTPKiuEOpykgfVFUJdTvKgukKoy0keVFcIdTnJg+oKoS5HDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashDDXmoIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryVEOeashTDXmqIU815KmGPNWQpxryo4b8qCE/asiPGvKjhvyoIT9qyI8a8qOG/KghP2rIjxryo4b8qCE/asiPGvKjhvyoIT9qyI8a8qOG/KghP2rIjxryo4b8qCE/asiPGvKjhvyoIT9qyI8a8qOG/KghP2rIjxryo4b8qCE/asiPGvKjhvyoIT9qyI8a8qOG/KghP2rIjxryo4b8qCE/asiPGvKjhvyoIT9qyI8a8qOG/KghP2rIjxryo4b8qCE/asiPGvKjhvyoIT9qyI8a8qOG/KghP2rIjxryo4b8qCE/asiPGvKjhvyoIT9qyI8a8qOG/KghP2rIjxryo4b8qCE/asiPGvKjhvyoIT9qyI8a8qOG/KghP2rIjxryo4b8qCE/asiPGvKrhvyqIb9qyK8a8quG/Kohv2rIrxryq4b8qiG/asivGvKrhvyqIb9qyK8a8quG/Kohv2rIrxryq4b8qiG/asivGvKrhvyqIb9qyK8a8quG/Kohv2rIrxryq4b8qiG/asivGvKrhvyqIb8quq+K7puJ7v7zN2x/njBMruM9TK7jPUyu4z1MruM9TK7jPUy+A9zD5DvANcxE9x4my7mHupxMdO+hLicT3Xuoy8lE9x7qcjLRvYaZ6N5DXU4muvdQl5OJ7j3U5WSiew91OZno3kNdTia691CXk4nuPdTlZKJ7D3U5mejeQ11OJrr3UJeTie491OVkonsPdTmZ6N5DXU4muvdQl5OJ7j3U5WSiew91OZno3kNdTia691CXk4nuPdTlZKJ7D3E5KxPde4jLWZno3kNczspE9x7iclYmuvcQl7My0b2HupxMdO+hLicT3Xuoy8lE9x7qcjLRvYe6nEx076EuJxPde6jLyUT3HupyMtG9h7qcTHTvoS4nE917qMvJRPce6nIy0b2HupxMdO+hLicT3Xuoy8lOBd9DXU5myPdQl6OGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQlxryUkNeashLDXmpIS815KWGvNSQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDXmrIW815K2GvNWQtxryVkPeashbDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNSQjxryUUM+ashHDfmoIR815KOGfNCQ+x805C+05XyhLecLbTlfaMv5QlvOF9pyvtCW84W2nC/U5aAhf6EuBw35C3U5aMhfqMtBQ/5CXQ4a8hfqctCQv1CXg4b8hbocNOQv1OWgIX+hLgcN+Qt1OWjIX6jLQUP+Ql0OGvIX6nLQkL9Ql4OG/IW6HDTkL9TloCF/oS4HDfkLdTloyF+oy0FD/kJdDhryF+py0JC/UJeDhvyFuhw05C9MlvM+f8M/6w3DZDn3MFnONcwM+R4my7mHyXLuYbKce5gs5x4my7mHyXLuoS4nM+R7qMvJDPke6nIyQ76HupzMkO+hLicz5Huoy8kM+R7qcjJDvoe6nMyQ76EuJzHk9v73s2OHPzsSQy6E8XIKYbycQhgvpxDGy7mHiSEXwng5hTBeTiGMl1MIdTmJIRdCXU5iyIVQl5MY8jVsiSEXQlxOSwy5EOJyWmLIhRCX0xJDLoS4nJYYciHU5SSGXAh1OYkhF0JdTmLIhVCXkxhyIdTlJIZcCHU5iSEXQl1OYsiFUJeTGHIh1OUkhlwIdTmJIRdCXU5iyIVQl5MYciHU5SSGXAh1OYkhF0JdTmLIhVCXkxhyIdTlJIZcCHU5iSEXQl1OYsiFUJeTGHIh1OUkhlwIdTmJIRdCXU5iyIVQl5MYciHU5SSGXAh1OYkhF0JdTmLIhVCXkxhyIdTlJIZcCHU5iSEXQl1OYsiFUJeTGHIh1OUkhlwIdTmJIRdCXU5iyIVQl5MYciHU5SSGXAh1OWrITQ25qSE3NeSmhtzUkJsaclNDbmrITQ25qSE3NeSmhtzUkJsaclND7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeSuhtzVkLsacldD7mrIXQ25qyF3NeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDHmrIQw15qCEPNeShhjzUkIca8lBDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeSphjzVkKca8lRDnmrIUw15qiFPNeRHDflRQ37UkB815EcN+VFDftSQHzXkRw35UUN+1JAfNeRHDflRQ37U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7xb03YK+W9B3C/puQd8t6LsFfbeg7xb03YK+W9B3C/puQd8t6LsFfbeg7xb03YK+W9B3C/puQd8t6LsFfbeg7xb03YK+W9B3C/puQd8t6LsFfbeg71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puRd+t6LsVfbei71b03Yq+W9F3K/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh7zb03Ya+29B3G/puQ99t6LsNfbeh73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/puR9/t6Lsdfbej73b03Y6+29F3O/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg7w703YG+O9B3B/ruQN8d6LsDfXeg74Y3BN5b0BpzC1plbkHrzC1opbkFrTW3oNXmFrTe3IJWnFtQm4PUewtqcxB7b0FtDnLvLajNQfC9BbU5SL63oDYH0fcWnDen5vYeHOltGpw35yA4b85BcN6cg+C8OQfBeXMOgvPmHATnzTkIzpuzDy749yCozVkA8EFQm7Mg4IOgNmeBwAdBbc6CgQ+C2pwFBB8EtTkLCj4IanMWGHwQ1OYsOPggqM1ZgPBBUJuzIOGDoDZngcIHQW3OgoUPgtqcBQwfBLU5Cxo+CGpzFjh8ENTmLHj4IKjNWQDxQVCbsyDig6A2Z4HEB0FtzoKJD4LanAUUHwS1OQsqPghqcxZYfBDU5iy4+CCozVmA8UFQm7Mg44OgNmeBxgdBbc6CjQ+C2pwFHB8EtTkLOj4IanMWeHwQ1OYs+PggqM1ZAPJBUJuzIOSDIDYnLAz5IIjNCQtDPghic8LCkA+C2JywMOSDIDYnLAz5IKjNWRjyQVCbszDkg6A2Z2HIB0FtzsKQD4LanIUhHwS1OQtDPghqc9SQgxpyUEMOashBDTmoIQc15KCGHNSQgxpyUEMOashBDTmoIQc15KCGHNSQgxpyUEMOashBDTmoIQc15KCGHNSQgxpyUEMOashBDTmoIQc15KCGHNSQgxpyUEMOashBDTmoIQc15KCGHNSQgxpyUEMOashBDTmoIQc15KCGHNSQgxpyUEMOashBDTmoIQc15KCGHNSQgxpyUEMOashBDTmoIQc15KCGHNSQgxpyUEMOashBDTmoIQc15KCGHNSQgxpyUEMOashBDTmoIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyVEOOashRDTmqIUc15KiGHNWQoxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpISc15KSGnNSQkxpyUkNOashJDTmpIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyVkPOashZDTmrIWc15KyGnNWQsxpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIRc15KKGXNSQixpyUUMuashFDbmoIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyVUOuashVDbmqIVc15KqGXNWQqxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpITc15KaG3NSQmxpyU0NuashNDbmpIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxpyV0PuashdDbmrIXc15K6G3NWQuxryUEMeashDDXmoIQ815KGGPNSQhxryUEMeashD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vQX1PK5Et7+9B8NbmQYX53EfXJzHfXBxHvfBxXncBxfncR9cXAH2wcUVYBtcie4+uGjOPqjNWYnuPqjNWYnuPqjNWYnuPqjNWYnuLhhWorsPYnPCSnT3QWxOWInuPojNCSvR3QexOWEluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmcluvugNmd1V/A+qM1ZGfI+qM1RQw5qyEENOaghBzXkoIYc1JCDGnJQQw5qyEENOaghBzXkoIYc1JCDGnJQQw5qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIYc1ZCjGnJUQ45qyFENOaohRzXkqIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyEkNOakhJzXkpIac1JCTGnJSQ05qyFkN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" + ], + "fileMap": { + "1": { + "source": "mod storage;\n\ncontract PrivateToken {\n // Libs\n use dep::value_note::{\n balance_utils,\n utils::{increment, decrement},\n value_note::{VALUE_NOTE_LEN, ValueNoteMethods},\n };\n\n use dep::aztec::note::{\n note_header::NoteHeader,\n utils as note_utils,\n };\n\n // docs:start:storage-import\n use crate::storage::Storage;\n // docs:end:storage-import\n\n // docs:start:constructor\n // Constructs the contract and sets `initial_supply` which is fully owned by `owner`.\n #[aztec(private)]\n fn constructor(\n initial_supply: Field, \n owner: Field\n ) {\n let storage = Storage::init();\n // Insert new note to a set of user notes and emit the newly created encrypted note preimage via oracle call.\n let owner_balance = storage.balances.at(owner);\n if (initial_supply != 0) {\n increment(&mut context, owner_balance, initial_supply, owner);\n }\n }\n // docs:end:constructor\n\n // docs:start:mint\n // Mints `amount` of tokens to `owner`.\n #[aztec(private)]\n fn mint(\n amount: Field, \n owner: Field\n ) {\n let storage = Storage::init();\n\n // Insert new note to a set of user notes and emit the newly created encrypted note preimage via oracle call.\n let owner_balance = storage.balances.at(owner);\n increment(&mut context, owner_balance, amount, owner);\n }\n // docs:end:mint\n\n // docs:start:transfer\n // Transfers `amount` of tokens from msg_sender to a `recipient`.\n #[aztec(private)]\n fn transfer(\n amount: Field, \n recipient: Field,\n ) {\n let storage = Storage::init();\n let sender = context.msg_sender();\n\n // Pick from the set of sender's notes to spend amount.\n let sender_balance = storage.balances.at(sender);\n decrement(&mut context, sender_balance, amount, sender);\n\n // Creates new note for the recipient.\n let recipient_balance = storage.balances.at(recipient);\n increment(&mut context, recipient_balance, amount, recipient);\n }\n // docs:end:transfer\n\n // docs:start:getBalance\n // Helper function to get the balance of a user (\"unconstrained\" is a Noir alternative of Solidity's \"view\" function).\n unconstrained fn getBalance(\n owner: Field,\n ) -> Field {\n let storage = Storage::init();\n\n // Get the set of notes owned by the user.\n let owner_balance = storage.balances.at(owner);\n\n // Return the sum of all notes in the set.\n balance_utils::get_balance(owner_balance)\n }\n // docs:end:getBalance\n\n // Computes note hash and nullifier.\n // Note 1: Needs to be defined by every contract producing logs.\n // Note 2: Having it in all the contracts gives us the ability to compute the note hash and nullifier differently for different kind of notes.\n // docs:start:compute_note_hash_and_nullifier\n unconstrained fn compute_note_hash_and_nullifier(contract_address: Field, nonce: Field, storage_slot: Field, preimage: [Field; VALUE_NOTE_LEN]) -> [Field; 4] {\n let note_header = NoteHeader { contract_address, nonce, storage_slot };\n note_utils::compute_note_hash_and_nullifier(ValueNoteMethods, note_header, preimage)\n }\n // docs:end:compute_note_hash_and_nullifier\n}\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-contracts/src/contracts/private_token_contract/src/main" + }, + "4": { + "source": "mod poseidon;\n\n#[foreign(sha256)]\nfn sha256(_input : [u8; N]) -> [u8; 32] {}\n\n#[foreign(blake2s)]\nfn blake2s(_input : [u8; N]) -> [u8; 32] {}\n\nfn pedersen(input : [Field; N]) -> [Field; 2] {\n pedersen_with_separator(input, 0)\n}\n\n#[foreign(pedersen)]\nfn pedersen_with_separator(_input : [Field; N], _separator : u32) -> [Field; 2] {}\n\n#[foreign(hash_to_field_128_security)]\nfn hash_to_field(_input : [Field; N]) -> Field {}\n\n#[foreign(keccak256)]\nfn keccak256(_input : [u8; N], _message_size: u32) -> [u8; 32] {}\n\n// mimc-p/p implementation\n// constants are (publicly generated) random numbers, for instance using keccak as a ROM.\n// You must use constants generated for the native field\n// Rounds number should be ~ log(p)/log(exp)\n// For 254 bit primes, exponent 7 and 91 rounds seems to be recommended\nfn mimc(x: Field, k: Field, constants: [Field; N], exp : Field) -> Field {\n //round 0\n let mut t = x + k;\n let mut h = t.pow_32(exp);\n //next rounds\n for i in 1 .. constants.len() {\n t = h + k + constants[i];\n h = t.pow_32(exp);\n };\n h + k\n}\n\nglobal MIMC_BN254_ROUNDS = 91;\n\n//mimc implementation with hardcoded parameters for BN254 curve.\nfn mimc_bn254(array: [Field; N]) -> Field {\n //mimc parameters\n let exponent = 7;\n //generated from seed \"mimc\" using keccak256 \n let constants: [Field; MIMC_BN254_ROUNDS] = [\n 0, \n 20888961410941983456478427210666206549300505294776164667214940546594746570981,\n 15265126113435022738560151911929040668591755459209400716467504685752745317193,\n 8334177627492981984476504167502758309043212251641796197711684499645635709656,\n 1374324219480165500871639364801692115397519265181803854177629327624133579404,\n 11442588683664344394633565859260176446561886575962616332903193988751292992472,\n 2558901189096558760448896669327086721003508630712968559048179091037845349145,\n 11189978595292752354820141775598510151189959177917284797737745690127318076389,\n 3262966573163560839685415914157855077211340576201936620532175028036746741754,\n 17029914891543225301403832095880481731551830725367286980611178737703889171730,\n 4614037031668406927330683909387957156531244689520944789503628527855167665518,\n 19647356996769918391113967168615123299113119185942498194367262335168397100658,\n 5040699236106090655289931820723926657076483236860546282406111821875672148900,\n 2632385916954580941368956176626336146806721642583847728103570779270161510514,\n 17691411851977575435597871505860208507285462834710151833948561098560743654671,\n 11482807709115676646560379017491661435505951727793345550942389701970904563183,\n 8360838254132998143349158726141014535383109403565779450210746881879715734773,\n 12663821244032248511491386323242575231591777785787269938928497649288048289525,\n 3067001377342968891237590775929219083706800062321980129409398033259904188058,\n 8536471869378957766675292398190944925664113548202769136103887479787957959589,\n 19825444354178182240559170937204690272111734703605805530888940813160705385792,\n 16703465144013840124940690347975638755097486902749048533167980887413919317592,\n 13061236261277650370863439564453267964462486225679643020432589226741411380501,\n 10864774797625152707517901967943775867717907803542223029967000416969007792571,\n 10035653564014594269791753415727486340557376923045841607746250017541686319774,\n 3446968588058668564420958894889124905706353937375068998436129414772610003289,\n 4653317306466493184743870159523234588955994456998076243468148492375236846006,\n 8486711143589723036499933521576871883500223198263343024003617825616410932026,\n 250710584458582618659378487568129931785810765264752039738223488321597070280,\n 2104159799604932521291371026105311735948154964200596636974609406977292675173,\n 16313562605837709339799839901240652934758303521543693857533755376563489378839,\n 6032365105133504724925793806318578936233045029919447519826248813478479197288,\n 14025118133847866722315446277964222215118620050302054655768867040006542798474,\n 7400123822125662712777833064081316757896757785777291653271747396958201309118,\n 1744432620323851751204287974553233986555641872755053103823939564833813704825,\n 8316378125659383262515151597439205374263247719876250938893842106722210729522,\n 6739722627047123650704294650168547689199576889424317598327664349670094847386,\n 21211457866117465531949733809706514799713333930924902519246949506964470524162,\n 13718112532745211817410303291774369209520657938741992779396229864894885156527,\n 5264534817993325015357427094323255342713527811596856940387954546330728068658,\n 18884137497114307927425084003812022333609937761793387700010402412840002189451,\n 5148596049900083984813839872929010525572543381981952060869301611018636120248,\n 19799686398774806587970184652860783461860993790013219899147141137827718662674,\n 19240878651604412704364448729659032944342952609050243268894572835672205984837,\n 10546185249390392695582524554167530669949955276893453512788278945742408153192,\n 5507959600969845538113649209272736011390582494851145043668969080335346810411,\n 18177751737739153338153217698774510185696788019377850245260475034576050820091,\n 19603444733183990109492724100282114612026332366576932662794133334264283907557,\n 10548274686824425401349248282213580046351514091431715597441736281987273193140,\n 1823201861560942974198127384034483127920205835821334101215923769688644479957,\n 11867589662193422187545516240823411225342068709600734253659804646934346124945,\n 18718569356736340558616379408444812528964066420519677106145092918482774343613,\n 10530777752259630125564678480897857853807637120039176813174150229243735996839,\n 20486583726592018813337145844457018474256372770211860618687961310422228379031,\n 12690713110714036569415168795200156516217175005650145422920562694422306200486,\n 17386427286863519095301372413760745749282643730629659997153085139065756667205,\n 2216432659854733047132347621569505613620980842043977268828076165669557467682,\n 6309765381643925252238633914530877025934201680691496500372265330505506717193,\n 20806323192073945401862788605803131761175139076694468214027227878952047793390,\n 4037040458505567977365391535756875199663510397600316887746139396052445718861,\n 19948974083684238245321361840704327952464170097132407924861169241740046562673,\n 845322671528508199439318170916419179535949348988022948153107378280175750024,\n 16222384601744433420585982239113457177459602187868460608565289920306145389382,\n 10232118865851112229330353999139005145127746617219324244541194256766741433339,\n 6699067738555349409504843460654299019000594109597429103342076743347235369120,\n 6220784880752427143725783746407285094967584864656399181815603544365010379208,\n 6129250029437675212264306655559561251995722990149771051304736001195288083309,\n 10773245783118750721454994239248013870822765715268323522295722350908043393604,\n 4490242021765793917495398271905043433053432245571325177153467194570741607167,\n 19596995117319480189066041930051006586888908165330319666010398892494684778526,\n 837850695495734270707668553360118467905109360511302468085569220634750561083,\n 11803922811376367215191737026157445294481406304781326649717082177394185903907,\n 10201298324909697255105265958780781450978049256931478989759448189112393506592,\n 13564695482314888817576351063608519127702411536552857463682060761575100923924,\n 9262808208636973454201420823766139682381973240743541030659775288508921362724,\n 173271062536305557219323722062711383294158572562695717740068656098441040230,\n 18120430890549410286417591505529104700901943324772175772035648111937818237369,\n 20484495168135072493552514219686101965206843697794133766912991150184337935627,\n 19155651295705203459475805213866664350848604323501251939850063308319753686505,\n 11971299749478202793661982361798418342615500543489781306376058267926437157297,\n 18285310723116790056148596536349375622245669010373674803854111592441823052978,\n 7069216248902547653615508023941692395371990416048967468982099270925308100727,\n 6465151453746412132599596984628739550147379072443683076388208843341824127379,\n 16143532858389170960690347742477978826830511669766530042104134302796355145785,\n 19362583304414853660976404410208489566967618125972377176980367224623492419647,\n 1702213613534733786921602839210290505213503664731919006932367875629005980493,\n 10781825404476535814285389902565833897646945212027592373510689209734812292327,\n 4212716923652881254737947578600828255798948993302968210248673545442808456151,\n 7594017890037021425366623750593200398174488805473151513558919864633711506220,\n 18979889247746272055963929241596362599320706910852082477600815822482192194401,\n 13602139229813231349386885113156901793661719180900395818909719758150455500533,\n ];\n\n let mut r = 0;\n for elem in array {\n let h = mimc(elem, r, constants, exponent);\n r = r + elem + h;\n }\n r\n}\n", + "path": "std/hash" + }, + "32": { + "source": "use crate::constants_gen::{\n RETURN_VALUES_LENGTH,\n MAX_READ_REQUESTS_PER_CALL,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n GENERATOR_INDEX__FUNCTION_ARGS,\n HISTORIC_BLOCK_DATA_LENGTH,\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\n CALL_CONTEXT_LENGTH,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\n CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH,\n CONTRACT_STORAGE_READ_LENGTH,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\n GENERATOR_INDEX__FUNCTION_DATA,\n GENERATOR_INDEX__PUBLIC_DATA_READ,\n GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST,\n GENERATOR_INDEX__CALL_CONTEXT,\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\n};\n\nuse crate::oracle::debug_log;\nuse crate::types::vec::BoundedVec;\nuse crate::types::point::Point;\n\nstruct PrivateGlobalVariables {\n chain_id: Field,\n version: Field,\n}\n\nimpl PrivateGlobalVariables {\n fn serialize(self) -> [Field; 2] {\n [self.chain_id, self.version]\n }\n}\n\nstruct PublicGlobalVariables {\n chain_id: Field,\n version: Field,\n block_number: Field,\n timestamp: Field,\n}\n\nimpl PublicGlobalVariables {\n fn serialize(self) -> [Field; 4] {\n [self.chain_id, self.version, self.block_number, self.timestamp]\n }\n}\n\nstruct ContractDeploymentData {\n deployer_public_key: Point,\n constructor_vk_hash : Field,\n function_tree_root : Field,\n contract_address_salt : Field,\n portal_contract_address : Field,\n}\n\nimpl ContractDeploymentData {\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\n [\n self.deployer_public_key.x,\n self.deployer_public_key.y,\n self.constructor_vk_hash,\n self.function_tree_root,\n self.contract_address_salt,\n self.portal_contract_address,\n ]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)[0]\n }\n}\n\n// PrivateContextInputs are expected to be provided to each private function\nstruct PrivateContextInputs {\n call_context : CallContext,\n block_data: HistoricBlockData,\n\n contract_deployment_data: ContractDeploymentData,\n\n private_global_variables: PrivateGlobalVariables,\n}\n\n// PublicContextInputs are expected to be provided to each public function\nstruct PublicContextInputs {\n call_context: CallContext,\n block_data: HistoricBlockData,\n\n public_global_variables: PublicGlobalVariables,\n}\n\nstruct CallContext {\n msg_sender : Field,\n storage_contract_address : Field,\n portal_contract_address : Field,\n\n is_delegate_call : bool,\n is_static_call : bool,\n is_contract_deployment: bool,\n}\n\nimpl CallContext {\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\n [\n self.msg_sender,\n self.storage_contract_address,\n self.portal_contract_address,\n self.is_delegate_call as Field,\n self.is_static_call as Field,\n self.is_contract_deployment as Field,\n ]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)[0]\n }\n}\n\nstruct HistoricBlockData {\n private_data_tree_root : Field,\n nullifier_tree_root : Field,\n contract_tree_root : Field,\n l1_to_l2_messages_tree_root : Field,\n blocks_tree_root: Field,\n public_data_tree_root: Field,\n global_variables_hash: Field,\n}\n\nimpl HistoricBlockData {\n // NOTE: this order must match the order in `private_circuit_public_inputs.hpp`\n fn serialize(self) -> [Field; HISTORIC_BLOCK_DATA_LENGTH] {\n [\n self.private_data_tree_root,\n self.nullifier_tree_root,\n self.contract_tree_root,\n self.l1_to_l2_messages_tree_root,\n self.blocks_tree_root,\n self.public_data_tree_root,\n self.global_variables_hash,\n ]\n }\n\n fn empty() -> Self {\n Self { private_data_tree_root: 0, nullifier_tree_root: 0, contract_tree_root: 0, l1_to_l2_messages_tree_root: 0, blocks_tree_root: 0, public_data_tree_root: 0, global_variables_hash: 0 }\n }\n}\n\nstruct FunctionData {\n function_selector: Field,\n is_internal: bool,\n is_private: bool,\n is_constructor: bool,\n}\n\nimpl FunctionData {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator([\n self.function_selector,\n self.is_internal as Field,\n self.is_private as Field,\n self.is_constructor as Field,\n ], GENERATOR_INDEX__FUNCTION_DATA)[0]\n }\n}\n\nstruct PrivateCircuitPublicInputs {\n call_context: CallContext,\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n read_requests: [Field; crate::abi::MAX_READ_REQUESTS_PER_CALL],\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\n nullified_commitments: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\n private_call_stack: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n // Explore introducing a new type like uint256 (similar to Point), so it's more explicit that\n // we're talking about a single number backed by two field elements.\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n encrypted_log_preimages_length: Field,\n unencrypted_log_preimages_length: Field,\n block_data: HistoricBlockData,\n contract_deployment_data: ContractDeploymentData,\n chain_id: Field,\n version: Field,\n}\n\nimpl PrivateCircuitPublicInputs {\n fn hash(self) -> Field {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push(self.call_context.hash());\n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n fields.push_array(self.read_requests);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.nullified_commitments);\n fields.push_array(self.private_call_stack);\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.encrypted_logs_hash);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push(self.contract_deployment_data.hash());\n fields.push(self.chain_id);\n fields.push(self.version);\n\n dep::std::hash::pedersen_with_separator(fields.storage, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)[0]\n }\n\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push_array(self.call_context.serialize());\n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n fields.push_array(self.read_requests);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.private_call_stack);\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.encrypted_logs_hash);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push_array(self.contract_deployment_data.serialize());\n fields.push(self.chain_id);\n fields.push(self.version);\n fields.storage\n }\n}\n\nstruct ContractStorageRead {\n storage_slot: Field,\n value: Field,\n}\n\nimpl ContractStorageRead {\n fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\n [self.storage_slot, self.value]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)[0]\n }\n\n fn empty() -> Self {\n Self { storage_slot: 0, value: 0 }\n }\n}\n\nstruct ContractStorageUpdateRequest {\n storage_slot: Field,\n old_value: Field,\n new_value: Field,\n}\n\nimpl ContractStorageUpdateRequest {\n fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\n [self.storage_slot, self.old_value, self.new_value]\n }\n\n fn hash(self) -> Field {\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)[0]\n }\n\n fn empty() -> Self {\n Self { storage_slot: 0, old_value: 0, new_value: 0 }\n }\n}\n\n\nstruct PublicCircuitPublicInputs {\n call_context: CallContext,\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [ContractStorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_read: [ContractStorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [Field; crate::abi::MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [Field; crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: Field,\n block_data: HistoricBlockData,\n prover_address: Field,\n\n // TODO: include globals in here and check them elsewhere\n // https://github.com/AztecProtocol/aztec-packages/issues/1567\n}\n\nimpl PublicCircuitPublicInputs {\n \n fn hash(self) -> Field {\n let mut inputs: BoundedVec = BoundedVec::new(0);\n inputs.push(self.call_context.hash());\n inputs.push(self.args_hash);\n inputs.push_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n inputs.push(self.contract_storage_update_requests[i].hash());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n inputs.push(self.contract_storage_read[i].hash());\n }\n inputs.push_array(self.public_call_stack);\n inputs.push_array(self.new_commitments);\n inputs.push_array(self.new_nullifiers);\n inputs.push_array(self.new_l2_to_l1_msgs);\n\n // We do not include block_data since it's not in the cpp hash\n\n inputs.push_array(self.unencrypted_logs_hash);\n inputs.push(self.unencrypted_log_preimages_length);\n inputs.push_array(self.block_data.serialize()); // see https://github.com/AztecProtocol/aztec-packages/issues/1473\n inputs.push(self.prover_address);\n\n dep::std::hash::pedersen_with_separator(inputs.storage, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)[0]\n }\n\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec = BoundedVec::new(0); \n fields.push_array(self.call_context.serialize()); \n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n fields.push_array(self.contract_storage_update_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n fields.push_array(self.contract_storage_read[i].serialize());\n }\n fields.push_array(self.public_call_stack);\n fields.push_array(self.new_commitments);\n fields.push_array(self.new_nullifiers);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.block_data.serialize());\n fields.push(self.prover_address);\n fields.storage\n }\n}\n\nstruct Hasher {\n fields: [Field],\n}\n\nimpl Hasher {\n fn new()-> Self {\n Self { fields: [] }\n }\n\n fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n fn add_multiple(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 16;\n\nfn hash_args(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n for i in 0..ARGS_HASH_CHUNK_COUNT {\n let mut chunk_hash = 0;\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\n if start_chunk_index < (args.len() as u32) {\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\n if item_index < (args.len() as u32) {\n chunk_args[j] = args[item_index];\n }\n }\n chunk_hash = dep::std::hash::pedersen_with_separator(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS)[0];\n }\n chunks_hashes[i] = chunk_hash;\n }\n dep::std::hash::pedersen_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)[0]\n }\n}\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/abi" + }, + "34": { + "source": "use crate::context::PrivateContext;\nuse crate::oracle;\nuse crate::types::point::Point;\n\nfn emit_encrypted_log(\n context: &mut PrivateContext,\n contract_address: Field,\n storage_slot: Field,\n encryption_pub_key: Point,\n log: [Field; N],\n) {\n let _ = oracle::logs::emit_encrypted_log(contract_address, storage_slot, encryption_pub_key, log);\n context.accumulate_encrypted_logs(log);\n}\n\nfn emit_unencrypted_log(\n context: &mut PrivateContext,\n log: T,\n) {\n let _ = oracle::logs::emit_unencrypted_log(log);\n context.accumulate_unencrypted_logs(log);\n}\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/log" + }, + "40": { + "source": "use dep::std::option::Option;\nuse crate::abi::PublicContextInputs;\nuse crate::context::{\n PrivateContext,\n PublicContext,\n};\nuse crate::note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::compute_inner_note_hash,\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\nuse crate::constants_gen::EMPTY_NULLIFIED_COMMITMENT;\n\nfn create_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface,\n) {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\n let set_header = note_interface.set_header;\n set_header(note, header);\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n let serialise = note_interface.serialise;\n let preimage = serialise(*note);\n assert(notify_created_note(storage_slot, preimage, inner_note_hash) == 0);\n\n context.push_new_note_hash(inner_note_hash);\n}\n\nfn create_note_hash_from_public(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface,\n) {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\n let set_header = note_interface.set_header;\n set_header(note, header);\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n context.push_new_note_hash(inner_note_hash);\n}\n\nfn destroy_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: Note,\n note_interface: NoteInterface,\n) {\n let mut nullifier = 0;\n let mut nullified_commitment: Field = EMPTY_NULLIFIED_COMMITMENT;\n let compute_nullifier = note_interface.compute_nullifier;\n nullifier = compute_nullifier(note);\n\n let serialise = note_interface.serialise;\n let preimage = serialise(note);\n\n // We also need the note commitment corresponding to the \"nullifier\"\n let get_header = note_interface.get_header;\n let header = get_header(note);\n // 0 nonce implies \"transient\" nullifier (must nullify a commitment in this TX).\n // `nullified_commitment` is used to inform the kernel which pending commitment\n // the nullifier corresponds to so they can be matched and both squashed/deleted.\n // nonzero nonce implies \"persistable\" nullifier (nullifies a persistent/in-tree\n // commitment) in which case `nullified_commitment` is not used since the kernel\n // just siloes and forwards the nullier to its output.\n if (header.nonce == 0) {\n // TODO(1718): Can we reuse the note commitment computed in `compute_nullifier`?\n nullified_commitment = compute_inner_note_hash(note_interface, note);\n }\n assert(notify_nullified_note(storage_slot, nullifier, preimage, nullified_commitment) == 0);\n\n context.push_new_nullifier(nullifier, nullified_commitment)\n}", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/lifecycle" + }, + "41": { + "source": "use dep::std::option::Option;\nuse crate::constants_gen::{\n MAX_READ_REQUESTS_PER_CALL,\n GET_NOTE_ORACLE_RETURN_LENGTH,\n GET_NOTES_ORACLE_RETURN_LENGTH,\n MAX_NOTES_PER_PAGE,\n VIEW_NOTE_ORACLE_RETURN_LENGTH,\n};\nuse crate::context::PrivateContext;\nuse crate::note::{\n note_getter_options::{NoteGetterOptions, Select, Sort},\n note_interface::NoteInterface,\n note_header::NoteHeader,\n note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_or_nullify,\n utils::compute_unique_siloed_note_hash,\n utils::compute_inner_note_hash,\n utils::compute_siloed_note_hash,\n};\nuse crate::messaging::get_commitment_getter_data::make_commitment_getter_data;\nuse crate::oracle;\nuse crate::types::vec::BoundedVec;\n\nfn check_note_header(\n context: PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: Note,\n) {\n let get_header = note_interface.get_header;\n let header = get_header(note);\n let contract_address = context.this_address();\n assert(header.contract_address == contract_address);\n assert(header.storage_slot == storage_slot);\n}\n\nfn ensure_note_exists(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: &mut Note,\n) {\n let saved_note = get_note_internal(storage_slot, note_interface);\n\n // Only copy over the header to the original note to make sure the preimage is the same.\n let get_header = note_interface.get_header;\n let set_header = note_interface.set_header;\n let note_header = get_header(saved_note);\n set_header(note, note_header);\n\n check_note_header(*context, storage_slot, note_interface, *note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, *note);\n context.push_read_request(note_hash_for_read_request);\n}\n\n// Ensure a note's hash exists in the tree without retrieving the entire\n// notes via the oracle.\n// Modifies the note by populating it with header info.\nfn ensure_note_hash_exists(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n note: &mut Note,\n) {\n // Initialize header of note. Must be done before computing note hashes as it initializes the:\n // - storage slot (used in inner note hash)\n // - the contract address (used in siloed note hash)\n // - and the nonce (used in the unique siloed note hash)\n let set_header = note_interface.set_header;\n let note_header = NoteHeader {\n contract_address: (*context).this_address(),\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // real nonce (once public kernel applies nonces).\n nonce: 0,\n storage_slot\n };\n set_header(note, note_header);\n\n // Get a note from oracle and early out if it doesn't exist.\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\n\n let raw_oracle_ret = oracle::get_commitment::get_commitment(inner_note_hash);\n let deserialized_oracle_ret = make_commitment_getter_data(raw_oracle_ret, 0);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // unique_siloed_note_hash once public kernel applies nonces\n let saved_siloed_note_hash = deserialized_oracle_ret.message;\n\n assert(saved_siloed_note_hash != 0); // TODO(dbanks12): necessary?\n\n check_note_header(*context, storage_slot, note_interface, *note);\n\n // Ensure that the note hash retrieved from oracle matches the one computed from note.\n let computed_siloed_note_hash = compute_siloed_note_hash(note_interface, *note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\n // compute_note_hash_for_read_or_nullify once public kernel applies nonces\n assert(computed_siloed_note_hash == saved_siloed_note_hash);\n\n context.push_read_request(computed_siloed_note_hash);\n}\n\nfn get_note(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n) -> Note {\n let note = get_note_internal(storage_slot, note_interface);\n\n check_note_header(*context, storage_slot, note_interface, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n\n context.push_read_request(note_hash_for_read_request);\n note\n}\n\nfn get_notes(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteGetterOptions,\n) -> [Option; MAX_READ_REQUESTS_PER_CALL] {\n let opt_notes = get_notes_internal(storage_slot, note_interface, options);\n for i in 0..opt_notes.len() {\n let opt_note = opt_notes[i];\n let mut note_hash_for_read_request = 0;\n if opt_note.is_some() {\n let note = opt_note.unwrap_unchecked();\n check_note_header(*context, storage_slot, note_interface, note);\n note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n };\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_read_request(note_hash_for_read_request);\n };\n\n // TODO(#1660)\n // Move it back to get_notes_internal and only make read request for selected notes.\n let filter = options.filter;\n let filter_args = options.filter_args;\n filter(opt_notes, filter_args)\n}\n\nunconstrained fn get_note_internal(\n storage_slot: Field,\n note_interface: NoteInterface,\n) -> Note {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n 0,\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n placeholder_note,\n placeholder_fields,\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal(\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteGetterOptions,\n) -> [Option; MAX_READ_REQUESTS_PER_CALL] {\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n num_selects,\n select_by,\n select_values,\n sort_by,\n sort_order,\n options.limit,\n options.offset,\n placeholder_opt_notes,\n placeholder_fields,\n )\n}\n\nunconstrained fn view_notes(\n storage_slot: Field,\n note_interface: NoteInterface,\n options: NoteViewerOptions,\n) -> [Option; MAX_NOTES_PER_PAGE] {\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n num_selects,\n select_by,\n select_values,\n sort_by,\n sort_order,\n options.limit,\n options.offset,\n placeholder_opt_notes,\n placeholder_fields,\n )\n}\n\nunconstrained fn flatten_options(\n selects: BoundedVec, N>,\n sorts: BoundedVec, N>,\n) -> (u8, [u8; N], [Field; N], [u8; N], [u2; N]) {\n let mut num_selects = 0;\n let mut select_by = [0; N];\n let mut select_values = [0; N];\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by[num_selects] = select.unwrap_unchecked().field_index;\n select_values[num_selects] = select.unwrap_unchecked().value;\n num_selects += 1;\n };\n };\n\n let mut sort_by = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by[i] = sort.unwrap_unchecked().field_index;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n };\n\n (num_selects, select_by, select_values, sort_by, sort_order)\n}", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_getter" + }, + "43": { + "source": "use dep::std::hash::{pedersen, pedersen_with_separator};\nuse crate::constants_gen::{GENERATOR_INDEX__UNIQUE_COMMITMENT, GENERATOR_INDEX__SILOED_COMMITMENT};\n\nfn compute_inner_hash(storage_slot: Field, note_hash: Field) -> Field {\n // TODO(#1205) Do we need a generator index here?\n pedersen([storage_slot, note_hash])[0]\n}\n\nfn compute_siloed_hash(contract_address: Field, inner_note_hash: Field) -> Field {\n let inputs = [contract_address, inner_note_hash];\n pedersen_with_separator(inputs, GENERATOR_INDEX__SILOED_COMMITMENT)[0]\n}\n\nfn compute_unique_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n pedersen_with_separator(inputs, GENERATOR_INDEX__UNIQUE_COMMITMENT)[0]\n}\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_hash" + }, + "46": { + "source": "use dep::std::option::Option;\nuse crate::constants_gen::MAX_NOTES_PER_PAGE;\nuse crate::note::note_getter_options::{Select, Sort};\nuse crate::types::vec::BoundedVec;\n\n// docs:start:NoteViewerOptions\nstruct NoteViewerOptions {\n selects: BoundedVec, N>,\n sorts: BoundedVec, N>,\n limit: u32,\n offset: u32,\n}\n// docs:end:NoteViewerOptions\n\nimpl NoteViewerOptions {\n fn new() -> NoteViewerOptions {\n NoteViewerOptions {\n selects: BoundedVec::new(Option::none()),\n sorts: BoundedVec::new(Option::none()),\n limit: MAX_NOTES_PER_PAGE as u32,\n offset: 0,\n }\n }\n\n fn select(&mut self, field_index: u8, value: Field) -> Self {\n self.selects.push(Option::some(Select::new(field_index, value)));\n *self\n }\n\n fn sort(&mut self, field_index: u8, order: u2) -> Self {\n self.sorts.push(Option::some(Sort::new(field_index, order)));\n *self\n }\n\n fn set_limit(&mut self, limit: u32) -> Self {\n assert(limit <= MAX_NOTES_PER_PAGE as u32);\n self.limit = limit;\n *self\n }\n\n fn set_offset(&mut self, offset: u32) -> Self {\n self.offset = offset;\n *self\n }\n}\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_viewer_options" + }, + "47": { + "source": "use crate::note::{\n note_hash::{compute_inner_hash, compute_siloed_hash, compute_unique_hash},\n note_header::NoteHeader,\n note_interface::NoteInterface,\n};\nuse crate::utils::arr_copy_slice;\n\nfn compute_inner_note_hash(\n note_interface: NoteInterface,\n note: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note);\n\n let compute_note_hash = note_interface.compute_note_hash;\n let note_hash = compute_note_hash(note);\n\n compute_inner_hash(header.storage_slot, note_hash)\n}\n\nfn compute_siloed_note_hash(\n note_interface: NoteInterface,\n note_with_header: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n let inner_note_hash = compute_inner_note_hash(note_interface, note_with_header);\n\n compute_siloed_hash(header.contract_address, inner_note_hash)\n}\n\nfn compute_unique_siloed_note_hash(\n note_interface: NoteInterface,\n note_with_header: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n let siloed_note_hash = compute_siloed_note_hash(note_interface, note_with_header);\n\n compute_unique_hash(header.nonce, siloed_note_hash)\n}\n\nfn compute_note_hash_for_read_or_nullify(\n note_interface: NoteInterface,\n note_with_header: Note,\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n if (header.nonce == 0) {\n // when nonce is zero, that means we are reading a pending note (doesn't have a nonce yet),\n // so we just read the inner_note_hash (kernel will silo by contract address)\n compute_inner_note_hash(note_interface, note_with_header)\n } else {\n // When nonce is nonzero, that means we are reading a settled note (from tree) created in a\n // previous TX. So we need the unique_siloed_note_hash which has already been hashed with\n // contract address and then nonce. This hash will match the existing leaf in the private\n // data tree, so the kernel can just perform a membership check directly on this hash/leaf.\n compute_unique_siloed_note_hash(note_interface, note_with_header)\n }\n\n}\n\nfn compute_note_hash_and_nullifier(\n note_interface: NoteInterface,\n note_header: NoteHeader,\n preimage: [Field; S],\n) -> [Field; 4] {\n let deserialise = note_interface.deserialise;\n let set_header = note_interface.set_header;\n let mut note = deserialise(arr_copy_slice(preimage, [0; N], 0));\n set_header(&mut note, note_header);\n\n let compute_note_hash = note_interface.compute_note_hash;\n let note_hash = compute_note_hash(note);\n let inner_note_hash = compute_inner_hash(note_header.storage_slot, note_hash);\n\n let siloed_note_hash = compute_siloed_hash(note_header.contract_address, inner_note_hash);\n\n let unique_siloed_note_hash = compute_unique_hash(note_header.nonce, siloed_note_hash);\n\n let compute_nullifier = note_interface.compute_nullifier;\n let inner_nullifier = compute_nullifier(note);\n\n [inner_note_hash, siloed_note_hash, unique_siloed_note_hash, inner_nullifier]\n}\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/utils" + }, + "50": { + "source": "struct Map {\n storage_slot: Field,\n state_var_constructor: fn (Field) -> V,\n}\n\nimpl Map {\n fn new(storage_slot: Field, state_var_constructor: fn (Field) -> V) -> Map {\n assert(storage_slot != 0); // Storage slot 0 not allowed. Storage slots must start from 1.\n Map { storage_slot, state_var_constructor }\n }\n\n fn at(self, key: Field) -> V {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = dep::std::hash::pedersen([\n self.storage_slot, \n key,\n ])[0];\n\n let state_var_constructor = self.state_var_constructor; \n state_var_constructor(derived_storage_slot)\n }\n}\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/state_vars/map" + }, + "52": { + "source": "use dep::std::option::Option;\nuse crate::abi::PublicContextInputs;\nuse crate::constants_gen::{MAX_READ_REQUESTS_PER_CALL, MAX_NOTES_PER_PAGE};\nuse crate::context::{\n PrivateContext,\n PublicContext,\n};\nuse crate::note::lifecycle::{create_note, create_note_hash_from_public, destroy_note};\nuse crate::note::{\n note_getter::{get_notes, ensure_note_exists, ensure_note_hash_exists, view_notes},\n note_getter_options::NoteGetterOptions,\n note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions,\n utils::compute_inner_note_hash,\n};\n\nstruct Set {\n storage_slot: Field,\n note_interface: NoteInterface,\n}\n\nimpl Set {\n fn new(storage_slot: Field, note_interface: NoteInterface) -> Self {\n assert(storage_slot != 0); // Storage slot 0 not allowed. Storage slots must start from 1.\n Set { storage_slot, note_interface }\n }\n\n fn insert(self, context: &mut PrivateContext, note: &mut Note) {\n create_note(context, self.storage_slot, note, self.note_interface);\n }\n\n fn insert_from_public(self, context: &mut PublicContext, note: &mut Note) {\n create_note_hash_from_public(context, self.storage_slot, note, self.note_interface);\n }\n\n // TODO(#1386)\n // Should be replaced by `assert_contains_and_remove`.\n fn assert_contains_note_and_remove(self, context: &mut PrivateContext, note: Note) {\n let mut note_with_header = note;\n ensure_note_exists(context, self.storage_slot, self.note_interface, &mut note_with_header);\n self.remove(context, note_with_header);\n }\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386):\n // replace function above ^ once public kernel injects\n // nonces to note hashes.\n fn assert_contains_and_remove(self, context: &mut PrivateContext, note: Note) {\n let mut note_with_header = note;\n // Modifies note with the header which is necessary for the next step (remove).\n ensure_note_hash_exists(context, self.storage_slot, self.note_interface, &mut note_with_header);\n\n let get_header = self.note_interface.get_header;\n let set_header = self.note_interface.set_header;\n let mut header = get_header(note);\n // Set the nonce to nonzero so that the nullifier is treated as persistable\n // (non-transient) and so the private kernel does not attempt to match it to\n // a pending noteHash/commitment and squash them.\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): remove\n // this hack once public kernel injects nonces.\n header.nonce = 1;\n set_header(&mut note_with_header, header);\n\n self.remove(context, note_with_header);\n }\n\n fn remove(self, context: &mut PrivateContext, note: Note) {\n destroy_note(context, self.storage_slot, note, self.note_interface);\n }\n\n fn get_notes(\n self,\n context: &mut PrivateContext,\n options: NoteGetterOptions,\n ) -> [Option; MAX_READ_REQUESTS_PER_CALL] {\n let storage_slot = self.storage_slot;\n let opt_notes = get_notes(context, storage_slot, self.note_interface, options);\n opt_notes\n }\n\n unconstrained fn view_notes(\n self,\n options: NoteViewerOptions,\n ) -> [Option; MAX_NOTES_PER_PAGE] {\n view_notes(self.storage_slot, self.note_interface, options)\n }\n}\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/state_vars/set" + }, + "56": { + "source": "\nstruct BoundedVec {\n storage: [T; MaxLen],\n len: Field,\n}\n\nimpl BoundedVec {\n fn new(initial_value: T) -> Self {\n BoundedVec { storage: [initial_value; MaxLen], len: 0 }\n }\n\n fn get(mut self: Self, index: Field) -> T {\n assert(index as u64 < self.len as u64);\n self.storage[index]\n }\n\n fn push(&mut self, elem: T) {\n assert(self.len as u64 < MaxLen as u64);\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n fn push_array(&mut self, array: [T; Len]) {\n let newLen = self.len + array.len();\n assert(newLen as u64 <= MaxLen as u64);\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = newLen;\n }\n\n fn pop(&mut self) -> T {\n assert(self.len as u64 > 0);\n\n let elem = self.storage[self.len - 1];\n self.len -= 1;\n elem\n }\n}\n\n// #[test]\n// fn test_vec() {\n// let vec: BoundedVec = BoundedVec::new(0);\n// assert(vec.len == 0);\n// let vec1 = vec.push(1);\n// assert(vec1.len == 1);\n// let vec2 = vec1.push(1);\n// assert(vec2.len == 2);\n// let vec3 = vec2.push(1);\n// assert(vec3.len == 3);\n// let x = vec3.pop();\n// assert(x == 1);\n// }", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/types/vec" + }, + "61": { + "source": "fn arr_copy_slice(\n src: [T; N],\n mut dst: [T; M],\n offset: Field,\n) -> [T; M] {\n for i in 0..dst.len() {\n dst[i] = src[i + offset];\n }\n dst\n}", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/utils" + }, + "71": { + "source": "use crate::types::point::Point;\nuse dep::std::hash;\nuse crate::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\n\n#[oracle(getPublicKey)]\nfn get_public_key_oracle(_address: Field) -> [Field; 3] {}\n\nunconstrained fn get_public_key_internal(address: Field) -> [Field; 3] {\n get_public_key_oracle(address)\n}\n\nfn get_public_key(address: Field) -> Point {\n let result = get_public_key_internal(address);\n let pub_key_x = result[0];\n let pub_key_y = result[1];\n let partial_address = result[2];\n \n let calculated_address = hash::pedersen_with_separator([pub_key_x, pub_key_y, partial_address], GENERATOR_INDEX__CONTRACT_ADDRESS)[0];\n assert(calculated_address == address);\n \n Point::new(pub_key_x, pub_key_y)\n}\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/oracle/get_public_key" + }, + "72": { + "source": "use crate::types::point::Point;\nuse crate::oracle::get_public_key::get_public_key;\n\n#[oracle(getSecretKey)]\nfn get_secret_key_oracle(_owner: Point) -> Field {}\n\nunconstrained fn get_secret_key(owner: Field) -> Field {\n let owner_nullifying_public_key = get_public_key(owner);\n get_secret_key_oracle(owner_nullifying_public_key)\n}", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/oracle/get_secret_key" + }, + "73": { + "source": "\n\n#[oracle(getRandomField)]\nfn rand_oracle() -> Field {}\n\nunconstrained fn rand() -> Field {\n rand_oracle()\n}\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/oracle/rand" + }, + "76": { + "source": "use dep::std::option::Option;\nuse crate::note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n};\nuse crate::utils::arr_copy_slice;\n\n#[oracle(notifyCreatedNote)]\nfn notify_created_note_oracle(\n _storage_slot: Field,\n _preimage: [Field; N],\n _inner_note_hash: Field,\n) -> Field {}\n\nunconstrained fn notify_created_note(\n storage_slot: Field,\n preimage: [Field; N],\n inner_note_hash: Field,\n) -> Field {\n notify_created_note_oracle(storage_slot, preimage, inner_note_hash)\n}\n\n#[oracle(notifyNullifiedNote)]\nfn notify_nullified_note_oracle(\n _storage_slot: Field,\n _nullifier: Field,\n _preimage: [Field; N],\n _inner_note_hash: Field,\n) -> Field {}\n\nunconstrained fn notify_nullified_note(\n storage_slot: Field,\n nullifier: Field,\n preimage: [Field; N],\n inner_note_hash: Field,\n) -> Field {\n notify_nullified_note_oracle(storage_slot, nullifier, preimage, inner_note_hash)\n}\n\n#[oracle(getNotes)]\nfn get_notes_oracle(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by: [u8; N],\n _select_values: [Field; N],\n _sort_by: [u8; N],\n _sort_order: [u2; N],\n _limit: u32,\n _offset: u32,\n _return_size: u32,\n _placeholder_fields: [Field; S],\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper(\n storage_slot: Field,\n num_selects: u8,\n select_by: [u8; N],\n select_values: [Field; N],\n sort_by: [u8; N],\n sort_order: [u2; N],\n limit: u32,\n offset: u32,\n mut placeholder_fields: [Field; S],\n)-> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(storage_slot, num_selects, select_by, select_values, sort_by, sort_order, limit, offset, return_size, placeholder_fields)\n}\n\nunconstrained fn get_notes(\n storage_slot: Field,\n note_interface: NoteInterface,\n num_selects: u8,\n select_by: [u8; M],\n select_values: [Field; M],\n sort_by: [u8; M],\n sort_order: [u2; M],\n limit: u32,\n offset: u32,\n mut placeholder_opt_notes: [Option; S], // TODO: Remove it and use `limit` to initialise the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialise the note array.\n) -> [Option; S] {\n let fields = get_notes_oracle_wrapper(storage_slot, num_selects, select_by, select_values, sort_by, sort_order, limit, offset, placeholder_fields);\n let num_notes = fields[0] as u32;\n let contract_address = fields[1];\n let deserialise = note_interface.deserialise;\n let set_header = note_interface.set_header;\n for i in 0..placeholder_opt_notes.len() {\n if i as u32 < num_notes {\n // lengths named as per typescript.\n let return_header_length: Field = 2; // num_notes & contract_address.\n let extra_preimage_length: Field = 2; // nonce & is_some.\n let read_offset: Field = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let header = NoteHeader { contract_address, nonce, storage_slot };\n let is_some = fields[read_offset + 1] as bool;\n if is_some {\n let preimage = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = deserialise(preimage);\n set_header(&mut note, header);\n placeholder_opt_notes[i] = Option::some(note);\n }\n };\n };\n placeholder_opt_notes\n}\n\nunconstrained fn is_nullifier_emitted(nullifier: Field) -> bool {\n // TODO\n nullifier == 0\n}", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/oracle/notes" + }, + "78": { + "source": "use crate::types::point::Point;\nuse crate::constants_gen::NUM_FIELDS_PER_SHA256;\n\n// TODO: Should take encrypted data.\n#[oracle(emitEncryptedLog)]\nfn emit_encrypted_log_oracle(\n _contract_address: Field,\n _storage_slot: Field,\n _encryption_pub_key: Point,\n _preimage: [Field; N],\n) -> Field {}\n\nunconstrained fn emit_encrypted_log(\n contract_address: Field,\n storage_slot: Field,\n encryption_pub_key: Point,\n preimage: [Field; N],\n) -> [Field; NUM_FIELDS_PER_SHA256] {\n [emit_encrypted_log_oracle(\n contract_address,\n storage_slot,\n encryption_pub_key,\n preimage,\n ), 0]\n}\n\n#[oracle(emitUnencryptedLog)]\nfn emit_unencrypted_log_oracle(_message: T) -> Field {}\n\nunconstrained fn emit_unencrypted_log(message: T) -> [Field; NUM_FIELDS_PER_SHA256] {\n // https://github.com/AztecProtocol/aztec-packages/issues/885\n [emit_unencrypted_log_oracle(message), 0]\n}", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/noir-aztec/src/oracle/logs" + }, + "81": { + "source": "use dep::aztec::note::{\n note_getter::view_notes,\n note_viewer_options::NoteViewerOptions,\n};\nuse dep::aztec::state_vars::set::Set;\nuse crate::value_note::{VALUE_NOTE_LEN, ValueNote};\n\nunconstrained fn get_balance(set: Set) -> Field {\n get_balance_with_offset(set, 0)\n}\n\nunconstrained fn get_balance_with_offset(set: Set, offset: u32) -> Field {\n let mut balance = 0;\n\n let options = NoteViewerOptions::new().set_offset(offset);\n let opt_notes = set.view_notes(options);\n let len = opt_notes.len();\n for i in 0..len {\n if opt_notes[i].is_some() {\n balance += opt_notes[i].unwrap_unchecked().value;\n }\n }\n if (opt_notes[len - 1].is_some()) {\n balance += get_balance_with_offset(set, offset + opt_notes.len() as u32);\n }\n\n balance\n}", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/value-note/src/balance_utils" + }, + "82": { + "source": "use dep::std::option::Option;\nuse dep::aztec::constants_gen::MAX_READ_REQUESTS_PER_CALL;\nuse crate::value_note::ValueNote;\n\nfn filter_notes_min_sum(notes: [Option; MAX_READ_REQUESTS_PER_CALL], min_sum: Field) -> [Option; MAX_READ_REQUESTS_PER_CALL] {\n let mut selected = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\n let mut sum = 0;\n for i in 0..notes.len() {\n if notes[i].is_some() & (sum < min_sum as u120) {\n let note = notes[i].unwrap_unchecked();\n selected[i] = Option::some(note);\n sum += note.value as u120;\n }\n }\n selected\n}", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/value-note/src/filter" + }, + "83": { + "source": "use dep::std::option::Option;\nuse dep::aztec::context::PrivateContext;\n// docs:start:encrypted_import\n\nuse dep::aztec::log::emit_encrypted_log;\n\n// docs:end:encrypted_import\nuse dep::aztec::note::note_getter_options::{NoteGetterOptions, SortOrder};\nuse dep::aztec::oracle::get_public_key::get_public_key;\nuse dep::aztec::state_vars::set::Set;\nuse crate::{\n filter::filter_notes_min_sum,\n value_note::{ValueNote, VALUE_NOTE_LEN},\n};\n\n// Sort the note values (0th field) in descending order.\n// Pick the fewest notes whose sum is equal to or greater than `amount`.\nfn create_note_getter_options_for_decreasing_balance(amount: Field) -> NoteGetterOptions {\n NoteGetterOptions::with_filter(filter_notes_min_sum, amount).sort(0, SortOrder.DESC)\n}\n\n// Creates a new note for the recipient.\n// Inserts it to the recipient's set of notes.\nfn increment(\n context: &mut PrivateContext,\n balance: Set,\n amount: Field,\n recipient: Field,\n) {\n let mut note = ValueNote::new(amount, recipient);\n create_note(context, balance, recipient, &mut note);\n\n // It won't compile if Set.insert() is in an if statement :(\n // if amount as u120 > 0 {\n // create_note(context, balance, recipient, &mut note);\n // }\n}\n\n// Find some of the `owner`'s notes whose values add up to the `amount`.\n// Remove those notes.\n// If the value of the removed notes exceeds the requested `amount`, create a new note containing the excess value, so that exactly `amount` is removed.\n// Fail if the sum of the selected notes is less than the amount.\nfn decrement(\n context: &mut PrivateContext,\n balance: Set,\n amount: Field,\n owner: Field,\n) {\n let sum = decrement_by_at_most(context, balance, amount, owner);\n assert(sum == amount);\n}\n\n// Similar to `decrement`, except that it doesn't fail if the decremented amount is less than max_amount.\n// The motivation behind this function is that there is an upper-bound on the number of notes a function may\n// read and nullify. The requested decrementation `amount` might be spread across too many of the `owner`'s\n// notes to 'fit' within this upper-bound, so we might have to remove an amount less than `amount`. A common\n// pattern is to repeatedly call this function across many function calls, until enough notes have been nullified to\n// equal `amount`.\n//\n// It returns the decremented amount, which should be less than or equal to max_amount.\nfn decrement_by_at_most(\n context: &mut PrivateContext,\n balance: Set,\n max_amount: Field,\n owner: Field,\n) -> Field {\n let options = create_note_getter_options_for_decreasing_balance(max_amount);\n let opt_notes = balance.get_notes(context, options);\n\n let mut decremented = 0;\n for i in 0..opt_notes.len() {\n if opt_notes[i].is_some() {\n decremented += destroy_note(context, balance, owner, opt_notes[i].unwrap_unchecked());\n }\n }\n\n // Add the change value back to the owner's balance.\n let mut change_value = 0;\n if decremented as u120 > max_amount as u120 {\n change_value = decremented - max_amount;\n decremented -= change_value;\n }\n increment(context, balance, change_value, owner);\n\n decremented\n}\n\nfn create_note(\n context: &mut PrivateContext,\n balance: Set,\n owner: Field,\n note: &mut ValueNote,\n) {\n // Insert the new note to the owner's set of notes.\n balance.insert(context, note);\n\n // Remove this if statement if we can wrap this create_note function in an if statement.\n if note.value != 0 {\n // Emit the newly created encrypted note preimages via oracle calls.\n // docs:start:encrypted\n let application_contract_address = (*context).this_address();\n let note_storage_slot = balance.storage_slot;\n let encryption_pub_key = get_public_key(owner);\n let encrypted_data = (*note).serialise();\n\n emit_encrypted_log(\n context,\n application_contract_address,\n note_storage_slot,\n encryption_pub_key,\n encrypted_data,\n );\n // docs:end:encrypted\n }\n}\n\n// Removes the note from the owner's set of notes.\n// Returns the value of the destroyed note.\nfn destroy_note(\n context: &mut PrivateContext,\n balance: Set,\n owner: Field,\n note: ValueNote,\n) -> Field {\n // Ensure the note is actually owned by the owner (to prevent user from generating a valid proof while\n // spending someone else's notes).\n assert(note.owner == owner);\n\n balance.remove(context, note);\n \n note.value\n}\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/value-note/src/utils" + }, + "84": { + "source": "use dep::aztec::note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::compute_note_hash_for_read_or_nullify,\n};\nuse dep::aztec::oracle::{\n rand::rand,\n get_secret_key::get_secret_key,\n};\n\nglobal VALUE_NOTE_LEN: Field = 3; // 3 plus a header.\n\nstruct ValueNote {\n value: Field,\n owner: Field,\n randomness: Field,\n header: NoteHeader,\n}\n\nimpl ValueNote {\n fn new(value: Field, owner: Field) -> Self {\n let randomness = rand();\n let header = NoteHeader::empty();\n ValueNote {\n value,\n owner,\n randomness,\n header,\n }\n }\n\n fn serialise(self) -> [Field; VALUE_NOTE_LEN] {\n [self.value, self.owner, self.randomness]\n }\n\n fn deserialise(preimage: [Field; VALUE_NOTE_LEN]) -> Self {\n ValueNote {\n value: preimage[0],\n owner: preimage[1],\n randomness: preimage[2],\n header: NoteHeader::empty(),\n }\n }\n\n fn compute_note_hash(self) -> Field {\n // TODO(#1205) Should use a non-zero generator index.\n dep::std::hash::pedersen([\n self.value, \n self.owner,\n self.randomness,\n ])[0]\n }\n\n // docs:start:nullifier\n\n fn compute_nullifier(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_read_or_nullify(ValueNoteMethods, self);\n let secret = get_secret_key(self.owner);\n // TODO(#1205) Should use a non-zero generator index.\n dep::std::hash::pedersen([\n note_hash_for_nullify,\n secret,\n ])[0]\n }\n\n // docs:end:nullifier\n\n fn set_header(&mut self, header: NoteHeader) {\n self.header = header;\n }\n}\n\nfn deserialise(preimage: [Field; VALUE_NOTE_LEN]) -> ValueNote {\n ValueNote::deserialise(preimage)\n}\n\nfn serialise(note: ValueNote) -> [Field; VALUE_NOTE_LEN] {\n note.serialise()\n}\n\nfn compute_note_hash(note: ValueNote) -> Field {\n note.compute_note_hash()\n}\n\nfn compute_nullifier(note: ValueNote) -> Field {\n note.compute_nullifier()\n}\n\nfn get_header(note: ValueNote) -> NoteHeader {\n note.header\n}\n\nfn set_header(note: &mut ValueNote, header: NoteHeader) {\n note.set_header(header)\n}\n\nglobal ValueNoteMethods = NoteInterface {\n deserialise,\n serialise,\n compute_note_hash,\n compute_nullifier,\n get_header,\n set_header,\n};\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-libs/value-note/src/value_note" + }, + "85": { + "source": "use dep::aztec::state_vars::{\n map::Map,\n set::Set\n};\nuse dep::value_note::value_note::{\n ValueNote,\n ValueNoteMethods,\n VALUE_NOTE_LEN,\n};\n\n// docs:start:storage-declaration\n// highlight-next-line:storage-declaration\nstruct Storage {\n // maps an aztec address to its balance\n balances: Map>,\n}\n\n// highlight-next-line:storage-declaration\nimpl Storage {\n fn init() -> Self {\n Storage {\n balances: Map::new(1, |slot| Set::new(slot, ValueNoteMethods)),\n }\n }\n}\n// docs:end:storage-declaration\n", + "path": "/mnt/user-data/leila/aztec/aztec-packages/yarn-project/noir-contracts/src/contracts/private_token_contract/src/storage" + } + } + } +} diff --git a/yarn-project/boxes/private-token/src/assets/aztec_logo.svg b/yarn-project/boxes/private-token/src/assets/aztec_logo.svg new file mode 100644 index 00000000000..64a3648326d --- /dev/null +++ b/yarn-project/boxes/private-token/src/assets/aztec_logo.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/yarn-project/boxes/private-token/src/config.ts b/yarn-project/boxes/private-token/src/config.ts new file mode 100644 index 00000000000..2d7f02965b7 --- /dev/null +++ b/yarn-project/boxes/private-token/src/config.ts @@ -0,0 +1,7 @@ +import { createAztecRpcClient } from '@aztec/aztec.js'; +import { PrivateTokenContractAbi } from './artifacts/PrivateToken.js'; // update this if using a different contract + +export const contractAbi = PrivateTokenContractAbi; + +const SANDBOX_URL = process.env.SANDBOX_URL || 'http://localhost:8080'; +export const rpcClient = createAztecRpcClient(SANDBOX_URL); diff --git a/yarn-project/boxes/private-token/src/scripts/call_contract_function.ts b/yarn-project/boxes/private-token/src/scripts/call_contract_function.ts new file mode 100644 index 00000000000..d4126745d6e --- /dev/null +++ b/yarn-project/boxes/private-token/src/scripts/call_contract_function.ts @@ -0,0 +1,15 @@ +import { AztecAddress, AztecRPC } from '@aztec/aztec.js'; +import { ContractAbi } from '@aztec/foundation/abi'; + +// REMOVE THIS +/* eslint-disable @typescript-eslint/no-unused-vars */ +export async function callContractFunction( + address: AztecAddress, + abi: ContractAbi, + functionName: string, + args: any, + rpc: AztecRPC, +) { + await new Promise(resolve => setTimeout(resolve, 2000)); + return AztecAddress.random(); +} diff --git a/yarn-project/boxes/private-token/src/scripts/deploy_contract.ts b/yarn-project/boxes/private-token/src/scripts/deploy_contract.ts new file mode 100644 index 00000000000..2d0b0eb54f8 --- /dev/null +++ b/yarn-project/boxes/private-token/src/scripts/deploy_contract.ts @@ -0,0 +1,15 @@ +import { AztecAddress, Fr } from '@aztec/aztec.js'; +import { ContractAbi } from '@aztec/foundation/abi'; +import { AztecRPC } from '@aztec/types'; + +// REMOVE THIS +/* eslint-disable @typescript-eslint/no-unused-vars */ +export async function deployContract( + contractAbi: ContractAbi, + args: any, // key: value object where parameter name is the key. make function generic to pass in + salt: Fr, + client: AztecRPC, +): Promise { + await new Promise(resolve => setTimeout(resolve, 2000)); + return AztecAddress.random(); +} diff --git a/yarn-project/boxes/private-token/src/scripts/index.ts b/yarn-project/boxes/private-token/src/scripts/index.ts new file mode 100644 index 00000000000..df02bc0be10 --- /dev/null +++ b/yarn-project/boxes/private-token/src/scripts/index.ts @@ -0,0 +1,3 @@ +export * from './call_contract_function.js'; +export * from './deploy_contract.js'; +export * from './view_contract_function.js'; diff --git a/yarn-project/boxes/private-token/src/scripts/view_contract_function.ts b/yarn-project/boxes/private-token/src/scripts/view_contract_function.ts new file mode 100644 index 00000000000..0d80e6e6c23 --- /dev/null +++ b/yarn-project/boxes/private-token/src/scripts/view_contract_function.ts @@ -0,0 +1,15 @@ +import { AztecAddress, AztecRPC, Fr } from '@aztec/aztec.js'; +import { ContractAbi } from '@aztec/foundation/abi'; + +// REMOVE THIS +/* eslint-disable @typescript-eslint/no-unused-vars */ +export async function viewContractFunction( + address: AztecAddress, + abi: ContractAbi, + functionName: string, + args: any, + rpc: AztecRPC, +) { + await new Promise(resolve => setTimeout(resolve, 2000)); + return [Fr.random()]; +} diff --git a/yarn-project/boxes/private-token/tailwind.config.cjs b/yarn-project/boxes/private-token/tailwind.config.cjs new file mode 100644 index 00000000000..0c47f457cba --- /dev/null +++ b/yarn-project/boxes/private-token/tailwind.config.cjs @@ -0,0 +1,39 @@ +export default { + content: ['./src/app/**/*.{html,tsx}'], + theme: { + extend: { + colors: { + 'aztec-purple': '#646cff', + }, + animation: { + marquee: 'marquee 120s linear infinite', + marquee2: 'marquee2 120s linear infinite', + marquee3: 'marquee3 120s linear infinite', + marquee4: 'marquee4 120s linear infinite', + }, + keyframes: { + marquee: { + '0%': { transform: 'translateX(0%)' }, + '100%': { transform: 'translateX(-100%)' }, + }, + marquee2: { + '0%': { transform: 'translateX(100%)' }, + '100%': { transform: 'translateX(0%)' }, + }, + marquee3: { + '0%': { transform: 'translateX(-100%)' }, + '100%': { transform: 'translateX(0%)' }, + }, + marquee4: { + '0%': { transform: 'translateX(0%)' }, + '100%': { transform: 'translateX(100%)' }, + }, + }, + backgroundImage: { + 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', + 'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', + }, + }, + }, + plugins: [], +}; diff --git a/yarn-project/boxes/private-token/webpack.config.js b/yarn-project/boxes/private-token/webpack.config.js index 4b65bbe765b..50bf8ac1e41 100644 --- a/yarn-project/boxes/private-token/webpack.config.js +++ b/yarn-project/boxes/private-token/webpack.config.js @@ -28,8 +28,8 @@ export default (_, argv) => ({ ], }, { - test: /\.svg$/, - use: ['@svgr/webpack'], + test: /\.css$/i, + use: ['style-loader', 'css-loader', 'postcss-loader'], }, ], }, @@ -46,14 +46,13 @@ export default (_, argv) => ({ new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'] }), new CopyWebpackPlugin({ patterns: [ - // { - // from: `${path.dirname(require.resolve(`@aztec/sdk`))}/aztec-connect.wasm`, - // to: 'aztec-connect.wasm', - // }, - // { - // from: `${path.dirname(require.resolve(`@aztec/sdk`))}/web_worker.js`, - // to: 'web_worker.js', - // }, + { + from: `${dirname(require.resolve(`@aztec/circuits.js`)).replace( + /\/dest$/, + '', + )}/resources/aztec3-circuits.wasm`, + to: 'aztec3-circuits.wasm', + }, { from: './src/assets', }, @@ -87,6 +86,7 @@ export default (_, argv) => ({ }, }, devServer: { + port: 3000, historyApiFallback: true, client: { overlay: false, diff --git a/yarn-project/yarn.lock b/yarn-project/yarn.lock index 9310833c521..e2551a2b890 100644 --- a/yarn-project/yarn.lock +++ b/yarn-project/yarn.lock @@ -785,33 +785,6 @@ __metadata: languageName: unknown linkType: soft -"@babel/cli@npm:^7.21.0": - version: 7.22.10 - resolution: "@babel/cli@npm:7.22.10" - dependencies: - "@jridgewell/trace-mapping": ^0.3.17 - "@nicolo-ribaudo/chokidar-2": 2.1.8-no-fsevents.3 - chokidar: ^3.4.0 - commander: ^4.0.1 - convert-source-map: ^1.1.0 - fs-readdir-recursive: ^1.1.0 - glob: ^7.2.0 - make-dir: ^2.1.0 - slash: ^2.0.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - dependenciesMeta: - "@nicolo-ribaudo/chokidar-2": - optional: true - chokidar: - optional: true - bin: - babel: ./bin/babel.js - babel-external-helpers: ./bin/babel-external-helpers.js - checksum: f6cbd237d62f196a3835f7eec07b3fea1a4ba3b7acf61616d6d22ce2c2653e29f869a254bf3de6d0fef65f577b3c9a6137aac89887679889ca9a56f0d2e07f18 - languageName: node - linkType: hard - "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.5": version: 7.22.5 resolution: "@babel/code-frame@npm:7.22.5" @@ -821,17 +794,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.22.10": - version: 7.22.13 - resolution: "@babel/code-frame@npm:7.22.13" - dependencies: - "@babel/highlight": ^7.22.13 - chalk: ^2.4.2 - checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": +"@babel/compat-data@npm:^7.22.9": version: 7.22.9 resolution: "@babel/compat-data@npm:7.22.9" checksum: bed77d9044ce948b4327b30dd0de0779fa9f3a7ed1f2d31638714ed00229fa71fc4d1617ae0eb1fad419338d3658d0e9a5a083297451e09e73e078d0347ff808 @@ -861,29 +824,6 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.21.0, @babel/core@npm:^7.21.3": - version: 7.22.11 - resolution: "@babel/core@npm:7.22.11" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.22.10 - "@babel/generator": ^7.22.10 - "@babel/helper-compilation-targets": ^7.22.10 - "@babel/helper-module-transforms": ^7.22.9 - "@babel/helpers": ^7.22.11 - "@babel/parser": ^7.22.11 - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.11 - "@babel/types": ^7.22.11 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.3 - semver: ^6.3.1 - checksum: f258b2539ea2e5bfe55a708c2f3e1093a1b4744f12becc35abeb896037b66210de9a8ad6296a706046d5dc3a24e564362b73a9b814e5bfe500c8baab60c22d2e - languageName: node - linkType: hard - "@babel/generator@npm:7.17.7": version: 7.17.7 resolution: "@babel/generator@npm:7.17.7" @@ -907,49 +847,6 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/generator@npm:7.22.10" - dependencies: - "@babel/types": ^7.22.10 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 - jsesc: ^2.5.1 - checksum: 59a79730abdff9070692834bd3af179e7a9413fa2ff7f83dff3eb888765aeaeb2bfc7b0238a49613ed56e1af05956eff303cc139f2407eda8df974813e486074 - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d - languageName: node - linkType: hard - -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.5": - version: 7.22.10 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.10" - dependencies: - "@babel/types": ^7.22.10 - checksum: 6de4a1f30e6244f9a1efdfcbe89df39923df3d165be606da5ad11319f8a11c12c72c60d9dc5fb696363281e2d6f741444c1af51f525fc7cf1d2a90fe23370bd9 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.10, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6": - version: 7.22.10 - resolution: "@babel/helper-compilation-targets@npm:7.22.10" - dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-validator-option": ^7.22.5 - browserslist: ^4.21.9 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: f6f1896816392bcff671bbe6e277307729aee53befb4a66ea126e2a91eda78d819a70d06fa384c74ef46c1595544b94dca50bef6c78438d9ffd31776dafbd435 - languageName: node - linkType: hard - "@babel/helper-compilation-targets@npm:^7.22.9": version: 7.22.9 resolution: "@babel/helper-compilation-targets@npm:7.22.9" @@ -965,53 +862,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.22.11, @babel/helper-create-class-features-plugin@npm:^7.22.5": - version: 7.22.11 - resolution: "@babel/helper-create-class-features-plugin@npm:7.22.11" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 - "@babel/helper-member-expression-to-functions": ^7.22.5 - "@babel/helper-optimise-call-expression": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.9 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: b7aeb22e29aba5327616328576363522b3b186918faeda605e300822af4a5f29416eb34b5bd825d07ab496550e271d02d7634f0022a62b5b8cbf0eb6389bc3fa - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": - version: 7.22.9 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.9" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - regexpu-core: ^5.3.1 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 87cb48a7ee898ab205374274364c3adc70b87b08c7bd07f51019ae4562c0170d7148e654d591f825dee14b5fe11666a0e7966872dfdbfa0d1b94b861ecf0e4e1 - languageName: node - linkType: hard - -"@babel/helper-define-polyfill-provider@npm:^0.4.2": - version: 0.4.2 - resolution: "@babel/helper-define-polyfill-provider@npm:0.4.2" - dependencies: - "@babel/helper-compilation-targets": ^7.22.6 - "@babel/helper-plugin-utils": ^7.22.5 - debug: ^4.1.1 - lodash.debounce: ^4.0.8 - resolve: ^1.14.2 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 1f6dec0c5d0876d278fe15b71238eccc5f74c4e2efa2c78aaafa8bc2cc96336b8e68d94cd1a78497356c96e8b91b8c1f4452179820624d1702aee2f9832e6569 - languageName: node - linkType: hard - "@babel/helper-environment-visitor@npm:^7.16.7, @babel/helper-environment-visitor@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-environment-visitor@npm:7.22.5" @@ -1038,16 +888,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-member-expression-to-functions@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 4bd5791529c280c00743e8bdc669ef0d4cd1620d6e3d35e0d42b862f8262bc2364973e5968007f960780344c539a4b9cf92ab41f5b4f94560a9620f536de2a39 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.22.5": +"@babel/helper-module-imports@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-module-imports@npm:7.22.5" dependencies: @@ -1056,7 +897,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9": +"@babel/helper-module-transforms@npm:^7.22.9": version: 7.22.9 resolution: "@babel/helper-module-transforms@npm:7.22.9" dependencies: @@ -1071,48 +912,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.22.5 resolution: "@babel/helper-plugin-utils@npm:7.22.5" checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.22.5, @babel/helper-remap-async-to-generator@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-remap-async-to-generator@npm:7.22.9" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-wrap-function": ^7.22.9 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 05538079447829b13512157491cc77f9cf1ea7e1680e15cff0682c3ed9ee162de0c4862ece20a6d6b2df28177a1520bcfe45993fbeccf2747a81795a7c3f6290 - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.22.5, @babel/helper-replace-supers@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-replace-supers@npm:7.22.9" - dependencies: - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-member-expression-to-functions": ^7.22.5 - "@babel/helper-optimise-call-expression": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: d41471f56ff2616459d35a5df1900d5f0756ae78b1027040365325ef332d66e08e3be02a9489756d870887585ff222403a228546e93dd7019e19e59c0c0fe586 - languageName: node - linkType: hard - "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -1122,15 +928,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 - languageName: node - linkType: hard - "@babel/helper-split-export-declaration@npm:^7.16.7, @babel/helper-split-export-declaration@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" @@ -1161,28 +958,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.22.9": - version: 7.22.10 - resolution: "@babel/helper-wrap-function@npm:7.22.10" - dependencies: - "@babel/helper-function-name": ^7.22.5 - "@babel/template": ^7.22.5 - "@babel/types": ^7.22.10 - checksum: 854bd85fc1de1d4c633f04aa1f5b6b022fbc013b47d012b6a11a7a9125a1f4a2a4f13a3e0d7a7056fe7eda8a9ecd1ea3daf8af685685a2d1b16578768cfdd28f - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/helpers@npm:7.22.11" - dependencies: - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.11 - "@babel/types": ^7.22.11 - checksum: 93186544228b5e371486466ec3b86a77cce91beeff24a5670ca8ec46d50328f7700dab82d532351286e9d68624dc51d6d71589b051dd9535e44be077a43ec013 - languageName: node - linkType: hard - "@babel/helpers@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helpers@npm:7.22.6" @@ -1194,17 +969,6 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.22.13": - version: 7.22.13 - resolution: "@babel/highlight@npm:7.22.13" - dependencies: - "@babel/helper-validator-identifier": ^7.22.5 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - checksum: 7266d2bff8aa8fc78eb65b6e92a8211e12897a731126a282d2f9bb50d8fcaa4c1b02af2284f990ac7e3ab8d892d448a2cab8f5ed0ea8a90bce2c025b11ebe802 - languageName: node - linkType: hard - "@babel/highlight@npm:^7.22.5": version: 7.22.5 resolution: "@babel/highlight@npm:7.22.5" @@ -1225,86 +989,6 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.22.11": - version: 7.22.14 - resolution: "@babel/parser@npm:7.22.14" - bin: - parser: ./bin/babel-parser.js - checksum: a2293971f0889726a3d5a35fcceedc71d2fa4c8d97f438fc348fe0cf7e739affc6e2665e4c6ddd4900714772e19bfd5d6feb967ca1f623b894c0099ecb148b52 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 1e353a060fb2cd8f1256d28cd768f16fb02513f905b9b6d656fb0242c96c341a196fa188b27c2701506a6e27515359fbcc1a5ca7fa8b9b530cf88fbd137baefc - languageName: node - linkType: hard - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.22.5 - peerDependencies: - "@babel/core": ^7.13.0 - checksum: 16e7a5f3bf2f2ac0ca032a70bf0ebd7e886d84dbb712b55c0643c04c495f0f221fbcbca14b5f8f8027fa6c87a3dafae0934022ad2b409384af6c5c356495b7bd - languageName: node - linkType: hard - -"@babel/plugin-external-helpers@npm:^7.18.6": - version: 7.22.5 - resolution: "@babel/plugin-external-helpers@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3cd44da2eff95a83ea3d763737c0fb3ed92fcaf534c120bb550e064b1c9c70c3f45366b65b096584f0fbe759b2225860ff824108398e4fa7c76b041b2f529397 - languageName: node - linkType: hard - -"@babel/plugin-proposal-class-properties@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422 - languageName: node - linkType: hard - -"@babel/plugin-proposal-object-rest-spread@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" - dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.20.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 1329db17009964bc644484c660eab717cb3ca63ac0ab0f67c651a028d1bc2ead51dc4064caea283e46994f1b7221670a35cbc0b4beb6273f55e915494b5aa0b2 - languageName: node - linkType: hard - -"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": - version: 7.21.0-placeholder-for-preset-env.2 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d97745d098b835d55033ff3a7fb2b895b9c5295b08a5759e4f20df325aa385a3e0bc9bd5ad8f2ec554a44d4e6525acfc257b8c5848a1345cb40f26a30e277e91 - languageName: node - linkType: hard - "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -1327,1008 +1011,135 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": +"@babel/plugin-syntax-class-properties@npm:^7.8.3": version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": ^7.12.13 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-static-block@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 - languageName: node - linkType: hard - -"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd - languageName: node - linkType: hard - -"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-assertions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2b8b5572db04a7bef1e6cd20debf447e4eef7cb012616f5eceb8fa3e23ce469b8f76ee74fd6d1e158ba17a8f58b0aec579d092fb67c5a30e83ccfbc5754916c1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-attributes@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 197b3c5ea2a9649347f033342cb222ab47f4645633695205c0250c6bf2af29e643753b8bb24a2db39948bef08e7c540babfd365591eb57fc110cb30b425ffc47 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b - languageName: node - linkType: hard - -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.22.5, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.22.5 - resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8829d30c2617ab31393d99cec2978e41f014f4ac6f01a1cecf4c4dd8320c3ec12fdc3ce121126b2d8d32f6887e99ca1a0bad53dedb1e6ad165640b92b24980ce - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 - languageName: node - linkType: hard - -"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @babel/plugin-syntax-top-level-await@npm:^7.8.3": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.22.5, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.22.5 - resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8ab7718fbb026d64da93681a57797d60326097fd7cb930380c8bffd9eb101689e90142c760a14b51e8e69c88a73ba3da956cb4520a3b0c65743aee5c71ef360a - languageName: node - linkType: hard - -"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c - languageName: node - linkType: hard - -"@babel/plugin-transform-arrow-functions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 35abb6c57062802c7ce8bd96b2ef2883e3124370c688bbd67609f7d2453802fb73944df8808f893b6c67de978eb2bcf87bbfe325e46d6f39b5fcb09ece11d01a - languageName: node - linkType: hard - -"@babel/plugin-transform-async-generator-functions@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.22.11" - dependencies: - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.9 - "@babel/plugin-syntax-async-generators": ^7.8.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f11227a1d2831972a7fe28ed54a618ee251547632dc384b2f291f9d8d6aae1177a68c6bbd7709ab78275fa84e757ae795ec08061d94f6f01826f02a35ee875d4 - languageName: node - linkType: hard - -"@babel/plugin-transform-async-to-generator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.22.5" - dependencies: - "@babel/helper-module-imports": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b95f23f99dcb379a9f0a1c2a3bbea3f8dc0e1b16dc1ac8b484fe378370169290a7a63d520959a9ba1232837cf74a80e23f6facbe14fd42a3cda6d3c2d7168e62 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoped-functions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 416b1341858e8ca4e524dee66044735956ced5f478b2c3b9bc11ec2285b0c25d7dbb96d79887169eb938084c95d0a89338c8b2fe70d473bd9dc92e5d9db1732c - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoping@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-block-scoping@npm:7.22.10" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b1d06f358dedcb748a57e5feea4b9285c60593fb2912b921f22898c57c552c78fe18128678c8f84dd4ea1d4e5aebede8783830b24cd63f22c30261156d78bc77 - languageName: node - linkType: hard - -"@babel/plugin-transform-class-properties@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-class-properties@npm:7.22.5" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b830152dfc2ff2f647f0abe76e6251babdfbef54d18c4b2c73a6bf76b1a00050a5d998dac80dc901a48514e95604324943a9dd39317073fe0928b559e0e0c579 - languageName: node - linkType: hard - -"@babel/plugin-transform-class-static-block@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-class-static-block@npm:7.22.11" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.11 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - peerDependencies: - "@babel/core": ^7.12.0 - checksum: 69f040506fad66f1c6918d288d0e0edbc5c8a07c8b4462c1184ad2f9f08995d68b057126c213871c0853ae0c72afc60ec87492049dfacb20902e32346a448bcb - languageName: node - linkType: hard - -"@babel/plugin-transform-classes@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/plugin-transform-classes@npm:7.22.6" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-compilation-targets": ^7.22.6 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 - "@babel/helper-optimise-call-expression": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - globals: ^11.1.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8380e855c01033dbc7460d9acfbc1fc37c880350fa798c2de8c594ef818ade0e4c96173ec72f05f2a4549d8d37135e18cb62548352d51557b45a0fb4388d2f3f - languageName: node - linkType: hard - -"@babel/plugin-transform-computed-properties@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-computed-properties@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/template": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c2a77a0f94ec71efbc569109ec14ea2aa925b333289272ced8b33c6108bdbb02caf01830ffc7e49486b62dec51911924d13f3a76f1149f40daace1898009e131 - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-destructuring@npm:7.22.10" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 011707801bd0029fd4f0523d24d06fdc0cbe8c9da280d75728f76713d639c4dc976e1b56a1ba7bff25468f86867efb71c9b4cac81140adbdd0abf2324b19a8bb - languageName: node - linkType: hard - -"@babel/plugin-transform-dotall-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.22.5" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 409b658d11e3082c8f69e9cdef2d96e4d6d11256f005772425fb230cc48fd05945edbfbcb709dab293a1a2f01f9c8a5bb7b4131e632b23264039d9f95864b453 - languageName: node - linkType: hard - -"@babel/plugin-transform-duplicate-keys@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bb1280fbabaab6fab2ede585df34900712698210a3bd413f4df5bae6d8c24be36b496c92722ae676a7a67d060a4624f4d6c23b923485f906bfba8773c69f55b4 - languageName: node - linkType: hard - -"@babel/plugin-transform-dynamic-import@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.22.11" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 78fc9c532210bf9e8f231747f542318568ac360ee6c27e80853962c984283c73da3f8f8aebe83c2096090a435b356b092ed85de617a156cbe0729d847632be45 - languageName: node - linkType: hard - -"@babel/plugin-transform-exponentiation-operator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.22.5" - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f2d660c1b1d51ad5fec1cd5ad426a52187204068c4158f8c4aa977b31535c61b66898d532603eef21c15756827be8277f724c869b888d560f26d7fe848bb5eae - languageName: node - linkType: hard - -"@babel/plugin-transform-export-namespace-from@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.22.11" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 73af5883a321ed56a4bfd43c8a7de0164faebe619287706896fc6ee2f7a4e69042adaa1338c0b8b4bdb9f7e5fdceb016fb1d40694cb43ca3b8827429e8aac4bf - languageName: node - linkType: hard - -"@babel/plugin-transform-for-of@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-for-of@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d7b8d4db010bce7273674caa95c4e6abd909362866ce297e86a2ecaa9ae636e05d525415811db9b3c942155df7f3651d19b91dd6c41f142f7308a97c7cb06023 - languageName: node - linkType: hard - -"@babel/plugin-transform-function-name@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-function-name@npm:7.22.5" - dependencies: - "@babel/helper-compilation-targets": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cff3b876357999cb8ae30e439c3ec6b0491a53b0aa6f722920a4675a6dd5b53af97a833051df4b34791fe5b3dd326ccf769d5c8e45b322aa50ee11a660b17845 - languageName: node - linkType: hard - -"@babel/plugin-transform-json-strings@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-json-strings@npm:7.22.11" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-json-strings": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 50665e5979e66358c50e90a26db53c55917f78175127ac2fa05c7888d156d418ffb930ec0a109353db0a7c5f57c756ce01bfc9825d24cbfd2b3ec453f2ed8cba - languageName: node - linkType: hard - -"@babel/plugin-transform-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-literals@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ec37cc2ffb32667af935ab32fe28f00920ec8a1eb999aa6dc6602f2bebd8ba205a558aeedcdccdebf334381d5c57106c61f52332045730393e73410892a9735b - languageName: node - linkType: hard - -"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.22.11" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c664e9798e85afa7f92f07b867682dee7392046181d82f5d21bae6f2ca26dfe9c8375cdc52b7483c3fc09a983c1989f60eff9fbc4f373b0c0a74090553d05739 - languageName: node - linkType: hard - -"@babel/plugin-transform-member-expression-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ec4b0e07915ddd4fda0142fd104ee61015c208608a84cfa13643a95d18760b1dc1ceb6c6e0548898b8c49e5959a994e46367260176dbabc4467f729b21868504 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-amd@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-modules-amd@npm:7.22.5" - dependencies: - "@babel/helper-module-transforms": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7da4c4ebbbcf7d182abb59b2046b22d86eee340caf8a22a39ef6a727da2d8acfec1f714fcdcd5054110b280e4934f735e80a6848d192b6834c5d4459a014f04d - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-commonjs@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.22.11" - dependencies: - "@babel/helper-module-transforms": ^7.22.9 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-simple-access": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c15ad7f1234a930cab214224bb85f6b3a3f301fa1d4d15bef193e5c11c614ce369551e5cbb708fde8d3f7e1cb84b05e9798a3647a11b56c3d67580e362a712d4 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-systemjs@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.22.11" - dependencies: - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-module-transforms": ^7.22.9 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d0991e4bdc3352b6a9f4d12b6662e3645d892cd5c3c005ba5f14e65f1e218c6a8f7f4497e64a51d82a046e507aaa7db3143b800b0270dca1824cbd214ff3363d - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-umd@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-modules-umd@npm:7.22.5" - dependencies: - "@babel/helper-module-transforms": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 46622834c54c551b231963b867adbc80854881b3e516ff29984a8da989bd81665bd70e8cba6710345248e97166689310f544aee1a5773e262845a8f1b3e5b8b4 - languageName: node - linkType: hard - -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623 - languageName: node - linkType: hard - -"@babel/plugin-transform-new-target@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-new-target@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6b72112773487a881a1d6ffa680afde08bad699252020e86122180ee7a88854d5da3f15d9bca3331cf2e025df045604494a8208a2e63b486266b07c14e2ffbf3 - languageName: node - linkType: hard - -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.22.11" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 167babecc8b8fe70796a7b7d34af667ebbf43da166c21689502e5e8cc93180b7a85979c77c9f64b7cce431b36718bd0a6df9e5e0ffea4ae22afb22cfef886372 - languageName: node - linkType: hard - -"@babel/plugin-transform-numeric-separator@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.22.11" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: af064d06a4a041767ec396a5f258103f64785df290e038bba9f0ef454e6c914f2ac45d862bbdad8fac2c7ad47fa4e95356f29053c60c100a0160b02a995fe2a3 - languageName: node - linkType: hard - -"@babel/plugin-transform-object-rest-spread@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.22.11" - dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-compilation-targets": ^7.22.10 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b9c9ed8df8d6d7563eb42844d8e3e6748ba8f7568998230f7317bc49304db65828df48fc4b93bf4421772a6c9f7b389f3dd1c4e84379c17dd9ee223fb3fc5245 - languageName: node - linkType: hard - -"@babel/plugin-transform-object-super@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-object-super@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b71887877d74cb64dbccb5c0324fa67e31171e6a5311991f626650e44a4083e5436a1eaa89da78c0474fb095d4ec322d63ee778b202d33aa2e4194e1ed8e62d7 - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-catch-binding@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.22.11" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f17abd90e1de67c84d63afea29c8021c74abb2794d3a6eeafb0bbe7372d3db32aefca386e392116ec63884537a4a2815d090d26264d259bacc08f6e3ed05294c - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-chaining@npm:^7.22.12, @babel/plugin-transform-optional-chaining@npm:^7.22.5": - version: 7.22.12 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.22.12" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 47065439bb721a0967cdcc83895700bb7b18b146b2ef27e43449d7b5a7130a2497afadddc42c616253858cac6732546646b9f0c581f4bb8a3d362baeb4c30bbb - languageName: node - linkType: hard - -"@babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-parameters@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b44f89cf97daf23903776ba27c2ab13b439d80d8c8a95be5c476ab65023b1e0c0e94c28d3745f3b60a58edc4e590fa0cd4287a0293e51401ca7d29a2ddb13b8e - languageName: node - linkType: hard - -"@babel/plugin-transform-private-methods@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-private-methods@npm:7.22.5" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 321479b4fcb6d3b3ef622ab22fd24001e43d46e680e8e41324c033d5810c84646e470f81b44cbcbef5c22e99030784f7cac92f1829974da7a47a60a7139082c3 - languageName: node - linkType: hard - -"@babel/plugin-transform-private-property-in-object@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.22.11" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.11 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4d029d84901e53c46dead7a46e2990a7bc62470f4e4ca58a0d063394f86652fd58fe4eea1eb941da3669cd536b559b9d058b342b59300026346b7a2a51badac8 - languageName: node - linkType: hard - -"@babel/plugin-transform-property-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-property-literals@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 796176a3176106f77fcb8cd04eb34a8475ce82d6d03a88db089531b8f0453a2fb8b0c6ec9a52c27948bc0ea478becec449893741fc546dfc3930ab927e3f9f2e - languageName: node - linkType: hard - -"@babel/plugin-transform-react-constant-elements@npm:^7.21.3": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-constant-elements@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 596db90e37174dd703f4859fef3c86156a7c8564d8351168ac6fdca79c912ef8b8746ae04516ac3909d2cc750702d58d451badacb3c54ea998938ad05d99f9d2 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-display-name@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-display-name@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a12bfd1e4e93055efca3ace3c34722571bda59d9740dca364d225d9c6e3ca874f134694d21715c42cc63d79efd46db9665bd4a022998767f9245f1e29d5d204d - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-development@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" - dependencies: - "@babel/plugin-transform-react-jsx": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 36bc3ff0b96bb0ef4723070a50cfdf2e72cfd903a59eba448f9fe92fea47574d6f22efd99364413719e1f3fb3c51b6c9b2990b87af088f8486a84b2a5f9e4560 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx@npm:7.22.5" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-module-imports": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-jsx": ^7.22.5 - "@babel/types": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c8f93f29f32cf79683ca2b8958fd62f38155674846ef27a7d4b6fbeb8713c37257418391731b58ff8024ec37b888bed5960e615a3f552e28245d2082e7f2a2df - languageName: node - linkType: hard - -"@babel/plugin-transform-react-pure-annotations@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.22.5" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 092021c4f404e267002099ec20b3f12dd730cb90b0d83c5feed3dc00dbe43b9c42c795a18e7c6c7d7bddea20c7dd56221b146aec81b37f2e7eb5137331c61120 - languageName: node - linkType: hard - -"@babel/plugin-transform-regenerator@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-regenerator@npm:7.22.10" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - regenerator-transform: ^0.15.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e13678d62d6fa96f11cb8b863f00e8693491e7adc88bfca3f2820f80cbac8336e7dec3a596eee6a1c4663b7ececc3564f2cd7fb44ed6d4ce84ac2bb7f39ecc6e - languageName: node - linkType: hard - -"@babel/plugin-transform-reserved-words@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-reserved-words@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3ffd7dbc425fe8132bfec118b9817572799cab1473113a635d25ab606c1f5a2341a636c04cf6b22df3813320365ed5a965b5eeb3192320a10e4cc2c137bd8bfc - languageName: node - linkType: hard - -"@babel/plugin-transform-shorthand-properties@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a5ac902c56ea8effa99f681340ee61bac21094588f7aef0bc01dff98246651702e677552fa6d10e548c4ac22a3ffad047dd2f8c8f0540b68316c2c203e56818b - languageName: node - linkType: hard - -"@babel/plugin-transform-spread@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-spread@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 5587f0deb60b3dfc9b274e269031cc45ec75facccf1933ea2ea71ced9fd3ce98ed91bb36d6cd26817c14474b90ed998c5078415f0eab531caf301496ce24c95c - languageName: node - linkType: hard - -"@babel/plugin-transform-sticky-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.22.5" + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.12.13 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 63b2c575e3e7f96c32d52ed45ee098fb7d354b35c2223b8c8e76840b32cc529ee0c0ceb5742fd082e56e91e3d82842a367ce177e82b05039af3d602c9627a729 + checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-template-literals@npm:7.22.5" +"@babel/plugin-syntax-import-meta@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 27e9bb030654cb425381c69754be4abe6a7c75b45cd7f962cd8d604b841b2f0fb7b024f2efc1c25cc53f5b16d79d5e8cfc47cacbdaa983895b3aeefa3e7e24ff + checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.22.5" +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 82a53a63ffc3010b689ca9a54e5f53b2718b9f4b4a9818f36f9b7dba234f38a01876680553d2716a645a61920b5e6e4aaf8d4a0064add379b27ca0b403049512 + checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-typescript@npm:7.22.11" +"@babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.22.5 + resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.11 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-typescript": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a0dc3c2427b55602944705c9a91b4c074524badd5ea87edb603ddeabe7fae531bcbe68475106d7a00079b67bb422dbf2e9f50e15c25ac24d7e9fe77f37ebcfb4 + checksum: 8829d30c2617ab31393d99cec2978e41f014f4ac6f01a1cecf4c4dd8320c3ec12fdc3ce121126b2d8d32f6887e99ca1a0bad53dedb1e6ad165640b92b24980ce languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.10" +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 807f40ed1324c8cb107c45358f1903384ca3f0ef1d01c5a3c5c9b271c8d8eec66936a3dcc8d75ddfceea9421420368c2e77ae3adef0a50557e778dfe296bf382 + checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.22.5" +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2495e5f663cb388e3d888b4ba3df419ac436a5012144ac170b622ddfc221f9ea9bdba839fa2bc0185cb776b578030666406452ec7791cbf0e7a3d4c88ae9574c + checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.22.5" +"@babel/plugin-syntax-numeric-separator@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6b5d1404c8c623b0ec9bd436c00d885a17d6a34f3f2597996343ddb9d94f6379705b21582dfd4cec2c47fd34068872e74ab6b9580116c0566b3f9447e2a7fa06 + checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.22.5" +"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: - "@babel/core": ^7.0.0 - checksum: c042070f980b139547f8b0179efbc049ac5930abec7fc26ed7a41d89a048d8ab17d362200e204b6f71c3c20d6991a0e74415e1a412a49adc8131c2a40c04822e + "@babel/core": ^7.0.0-0 + checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf languageName: node linkType: hard -"@babel/preset-env@npm:^7.20.2": - version: 7.22.14 - resolution: "@babel/preset-env@npm:7.22.14" +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-compilation-targets": ^7.22.10 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.22.5 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.22.5 - "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-class-properties": ^7.12.13 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.22.5 - "@babel/plugin-syntax-import-attributes": ^7.22.5 - "@babel/plugin-syntax-import-meta": ^7.10.4 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.22.5 - "@babel/plugin-transform-async-generator-functions": ^7.22.11 - "@babel/plugin-transform-async-to-generator": ^7.22.5 - "@babel/plugin-transform-block-scoped-functions": ^7.22.5 - "@babel/plugin-transform-block-scoping": ^7.22.10 - "@babel/plugin-transform-class-properties": ^7.22.5 - "@babel/plugin-transform-class-static-block": ^7.22.11 - "@babel/plugin-transform-classes": ^7.22.6 - "@babel/plugin-transform-computed-properties": ^7.22.5 - "@babel/plugin-transform-destructuring": ^7.22.10 - "@babel/plugin-transform-dotall-regex": ^7.22.5 - "@babel/plugin-transform-duplicate-keys": ^7.22.5 - "@babel/plugin-transform-dynamic-import": ^7.22.11 - "@babel/plugin-transform-exponentiation-operator": ^7.22.5 - "@babel/plugin-transform-export-namespace-from": ^7.22.11 - "@babel/plugin-transform-for-of": ^7.22.5 - "@babel/plugin-transform-function-name": ^7.22.5 - "@babel/plugin-transform-json-strings": ^7.22.11 - "@babel/plugin-transform-literals": ^7.22.5 - "@babel/plugin-transform-logical-assignment-operators": ^7.22.11 - "@babel/plugin-transform-member-expression-literals": ^7.22.5 - "@babel/plugin-transform-modules-amd": ^7.22.5 - "@babel/plugin-transform-modules-commonjs": ^7.22.11 - "@babel/plugin-transform-modules-systemjs": ^7.22.11 - "@babel/plugin-transform-modules-umd": ^7.22.5 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 - "@babel/plugin-transform-new-target": ^7.22.5 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.22.11 - "@babel/plugin-transform-numeric-separator": ^7.22.11 - "@babel/plugin-transform-object-rest-spread": ^7.22.11 - "@babel/plugin-transform-object-super": ^7.22.5 - "@babel/plugin-transform-optional-catch-binding": ^7.22.11 - "@babel/plugin-transform-optional-chaining": ^7.22.12 - "@babel/plugin-transform-parameters": ^7.22.5 - "@babel/plugin-transform-private-methods": ^7.22.5 - "@babel/plugin-transform-private-property-in-object": ^7.22.11 - "@babel/plugin-transform-property-literals": ^7.22.5 - "@babel/plugin-transform-regenerator": ^7.22.10 - "@babel/plugin-transform-reserved-words": ^7.22.5 - "@babel/plugin-transform-shorthand-properties": ^7.22.5 - "@babel/plugin-transform-spread": ^7.22.5 - "@babel/plugin-transform-sticky-regex": ^7.22.5 - "@babel/plugin-transform-template-literals": ^7.22.5 - "@babel/plugin-transform-typeof-symbol": ^7.22.5 - "@babel/plugin-transform-unicode-escapes": ^7.22.10 - "@babel/plugin-transform-unicode-property-regex": ^7.22.5 - "@babel/plugin-transform-unicode-regex": ^7.22.5 - "@babel/plugin-transform-unicode-sets-regex": ^7.22.5 - "@babel/preset-modules": 0.1.6-no-external-plugins - "@babel/types": ^7.22.11 - babel-plugin-polyfill-corejs2: ^0.4.5 - babel-plugin-polyfill-corejs3: ^0.8.3 - babel-plugin-polyfill-regenerator: ^0.5.2 - core-js-compat: ^3.31.0 - semver: ^6.3.1 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a62b5717a86c41ab675ac0f4d46ff504088fb2cce2011aa36508453d2235a3ecf1f6d127aa57962310fcce4ec18bad840ccd09987a78c57e4d1b4339cedeaacd + checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 languageName: node linkType: hard -"@babel/preset-modules@npm:0.1.6-no-external-plugins": - version: 0.1.6-no-external-plugins - resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@babel/types": ^7.4.4 - esutils: ^2.0.2 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: - "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 - checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 + "@babel/core": ^7.0.0-0 + checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 languageName: node linkType: hard -"@babel/preset-react@npm:^7.18.6": - version: 7.22.5 - resolution: "@babel/preset-react@npm:7.22.5" +"@babel/plugin-syntax-top-level-await@npm:^7.8.3": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 - "@babel/plugin-transform-react-display-name": ^7.22.5 - "@babel/plugin-transform-react-jsx": ^7.22.5 - "@babel/plugin-transform-react-jsx-development": ^7.22.5 - "@babel/plugin-transform-react-pure-annotations": ^7.22.5 + "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b977c7ee83e93f62d77e61929ca3d97e5291e026e2f025a1b8b7ac9186486ed56c7d5bc36f0becabe0c24e8c42a4e4f2243a3cf841384cfafc3204c5d3e6c619 + checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.21.0": - version: 7.22.11 - resolution: "@babel/preset-typescript@npm:7.22.11" +"@babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.22.5 + resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" dependencies: "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 - "@babel/plugin-syntax-jsx": ^7.22.5 - "@babel/plugin-transform-modules-commonjs": ^7.22.11 - "@babel/plugin-transform-typescript": ^7.22.11 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8ae7162c31db896f5eeecd6f67ab2e58555fdc06fe84e95fe4a3f60b64cd6f782d2d7dfbde0c0eac04b55dac18222752d91dd8786245cccedd7e42f080e07233 - languageName: node - linkType: hard - -"@babel/regjsgen@npm:^0.8.0": - version: 0.8.0 - resolution: "@babel/regjsgen@npm:0.8.0" - checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 + checksum: 8ab7718fbb026d64da93681a57797d60326097fd7cb930380c8bffd9eb101689e90142c760a14b51e8e69c88a73ba3da956cb4520a3b0c65743aee5c71ef360a languageName: node linkType: hard @@ -2341,15 +1152,6 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.8.4": - version: 7.22.11 - resolution: "@babel/runtime@npm:7.22.11" - dependencies: - regenerator-runtime: ^0.14.0 - checksum: a5cd6683a8fcdb8065cb1677f221e22f6c67ec8f15ad1d273b180b93ab3bd86c66da2c48f500d4e72d8d2cfa85ff4872a3f350e5aa3855630036af5da765c001 - languageName: node - linkType: hard - "@babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3": version: 7.22.5 resolution: "@babel/template@npm:7.22.5" @@ -2379,24 +1181,6 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.21.2, @babel/traverse@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/traverse@npm:7.22.11" - dependencies: - "@babel/code-frame": ^7.22.10 - "@babel/generator": ^7.22.10 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.22.11 - "@babel/types": ^7.22.11 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: 4ad62d548ca8b95dbf45bae16cc167428f174f3c837d55a5878b1f17bdbc8b384d6df741dc7c461b62c04d881cf25644d3ab885909ba46e3ac43224e2b15b504 - languageName: node - linkType: hard - "@babel/traverse@npm:^7.22.6, @babel/traverse@npm:^7.22.8": version: 7.22.8 resolution: "@babel/traverse@npm:7.22.8" @@ -2436,17 +1220,6 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.21.3, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.11, @babel/types@npm:^7.4.4": - version: 7.22.11 - resolution: "@babel/types@npm:7.22.11" - dependencies: - "@babel/helper-string-parser": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.5 - to-fast-properties: ^2.0.0 - checksum: 431a6446896adb62c876d0fe75263835735d3c974aae05356a87eb55f087c20a777028cf08eadcace7993e058bbafe3b21ce2119363222c6cef9eedd7a204810 - languageName: node - linkType: hard - "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -2550,29 +1323,6 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:^1.2.1": - version: 1.2.1 - resolution: "@emotion/is-prop-valid@npm:1.2.1" - dependencies: - "@emotion/memoize": ^0.8.1 - checksum: 8f42dc573a3fad79b021479becb639b8fe3b60bdd1081a775d32388bca418ee53074c7602a4c845c5f75fa6831eb1cbdc4d208cc0299f57014ed3a02abcad16a - languageName: node - linkType: hard - -"@emotion/memoize@npm:^0.8.1": - version: 0.8.1 - resolution: "@emotion/memoize@npm:0.8.1" - checksum: a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0 - languageName: node - linkType: hard - -"@emotion/unitless@npm:^0.8.0": - version: 0.8.1 - resolution: "@emotion/unitless@npm:0.8.1" - checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 - languageName: node - linkType: hard - "@es-joy/jsdoccomment@npm:~0.37.0": version: 0.37.1 resolution: "@es-joy/jsdoccomment@npm:0.37.1" @@ -3724,13 +2474,6 @@ __metadata: languageName: node linkType: hard -"@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3": - version: 2.1.8-no-fsevents.3 - resolution: "@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3" - checksum: ee55cc9241aeea7eb94b8a8551bfa4246c56c53bc71ecda0a2104018fcc328ba5723b33686bdf9cc65d4df4ae65e8016b89e0bbdeb94e0309fe91bb9ced42344 - languageName: node - linkType: hard - "@noble/ciphers@npm:^0.1.4": version: 0.1.4 resolution: "@noble/ciphers@npm:0.1.4" @@ -3999,162 +2742,6 @@ __metadata: languageName: node linkType: hard -"@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3fc8e35d16f5abe0af5efe5851f27581225ac405d6a1ca44cda0df064cddfcc29a428c48c2e4bef6cebf627c9ac2f652a096030edb02cf5a120ce28d3c234710 - languageName: node - linkType: hard - -"@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ff992893c6c4ac802713ba3a97c13be34e62e6d981c813af40daabcd676df68a72a61bd1e692bb1eda3587f1b1d700ea462222ae2153bb0f46886632d4f88d08 - languageName: node - linkType: hard - -"@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0fb691b63a21bac00da3aa2dccec50d0d5a5b347ff408d60803b84410d8af168f2656e4ba1ee1f24dab0ae4e4af77901f2928752bb0434c1f6788133ec599ec8 - languageName: node - linkType: hard - -"@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 1edda65ef4f4dd8f021143c8ec276a08f6baa6f733b8e8ee2e7775597bf6b97afb47fdeefd579d6ae6c959fe2e634f55cd61d99377631212228c8cfb351b8921 - languageName: node - linkType: hard - -"@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 876cec891488992e6a9aebb8155e2bea4ec461b4718c51de36e988e00e271c6d9d01ef6be17b9effd44b2b3d7db0b41c161a5904a46ae6f38b26b387ad7f3709 - languageName: node - linkType: hard - -"@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: be0e2d391164428327d9ec469a52cea7d93189c6b0e2c290999e048f597d777852f701c64dca44cd45b31ed14a7f859520326e2e4ad7c3a4545d0aa235bc7e9a - languageName: node - linkType: hard - -"@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 85b434a57572f53bd2b9f0606f253e1fcf57b4a8c554ec3f2d43ed17f50d8cae200cb3aaf1ec9d626e1456e8b135dce530ae047eb0bed6d4bf98a752d6640459 - languageName: node - linkType: hard - -"@svgr/babel-plugin-transform-svg-component@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-transform-svg-component@npm:8.0.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 04e2023d75693eeb0890341c40e449881184663056c249be7e5c80168e4aabb0fadd255e8d5d2dbf54b8c2a6e700efba994377135bfa4060dc4a2e860116ef8c - languageName: node - linkType: hard - -"@svgr/babel-preset@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/babel-preset@npm:8.1.0" - dependencies: - "@svgr/babel-plugin-add-jsx-attribute": 8.0.0 - "@svgr/babel-plugin-remove-jsx-attribute": 8.0.0 - "@svgr/babel-plugin-remove-jsx-empty-expression": 8.0.0 - "@svgr/babel-plugin-replace-jsx-attribute-value": 8.0.0 - "@svgr/babel-plugin-svg-dynamic-title": 8.0.0 - "@svgr/babel-plugin-svg-em-dimensions": 8.0.0 - "@svgr/babel-plugin-transform-react-native-svg": 8.1.0 - "@svgr/babel-plugin-transform-svg-component": 8.0.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3a67930f080b8891e1e8e2595716b879c944d253112bae763dce59807ba23454d162216c8d66a0a0e3d4f38a649ecd6c387e545d1e1261dd69a68e9a3392ee08 - languageName: node - linkType: hard - -"@svgr/core@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/core@npm:8.1.0" - dependencies: - "@babel/core": ^7.21.3 - "@svgr/babel-preset": 8.1.0 - camelcase: ^6.2.0 - cosmiconfig: ^8.1.3 - snake-case: ^3.0.4 - checksum: da4a12865c7dc59829d58df8bd232d6c85b7115fda40da0d2f844a1a51886e2e945560596ecfc0345d37837ac457de86a931e8b8d8550e729e0c688c02250d8a - languageName: node - linkType: hard - -"@svgr/hast-util-to-babel-ast@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/hast-util-to-babel-ast@npm:8.0.0" - dependencies: - "@babel/types": ^7.21.3 - entities: ^4.4.0 - checksum: 88401281a38bbc7527e65ff5437970414391a86158ef4b4046c89764c156d2d39ecd7cce77be8a51994c9fb3249170cb1eb8b9128b62faaa81743ef6ed3534ab - languageName: node - linkType: hard - -"@svgr/plugin-jsx@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/plugin-jsx@npm:8.1.0" - dependencies: - "@babel/core": ^7.21.3 - "@svgr/babel-preset": 8.1.0 - "@svgr/hast-util-to-babel-ast": 8.0.0 - svg-parser: ^2.0.4 - peerDependencies: - "@svgr/core": "*" - checksum: 0418a9780753d3544912ee2dad5d2cf8d12e1ba74df8053651b3886aeda54d5f0f7d2dece0af5e0d838332c4f139a57f0dabaa3ca1afa4d1a765efce6a7656f2 - languageName: node - linkType: hard - -"@svgr/plugin-svgo@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/plugin-svgo@npm:8.1.0" - dependencies: - cosmiconfig: ^8.1.3 - deepmerge: ^4.3.1 - svgo: ^3.0.2 - peerDependencies: - "@svgr/core": "*" - checksum: 59d9d214cebaacca9ca71a561f463d8b7e5a68ca9443e4792a42d903acd52259b1790c0680bc6afecc3f00a255a6cbd7ea278a9f625bac443620ea58a590c2d0 - languageName: node - linkType: hard - -"@svgr/webpack@npm:^8.1.0": - version: 8.1.0 - resolution: "@svgr/webpack@npm:8.1.0" - dependencies: - "@babel/core": ^7.21.3 - "@babel/plugin-transform-react-constant-elements": ^7.21.3 - "@babel/preset-env": ^7.20.2 - "@babel/preset-react": ^7.18.6 - "@babel/preset-typescript": ^7.21.0 - "@svgr/core": 8.1.0 - "@svgr/plugin-jsx": 8.1.0 - "@svgr/plugin-svgo": 8.1.0 - checksum: c6eec5b0cf2fb2ecd3a7a362d272eda35330b17c76802a3481f499b5d07ff8f87b31d2571043bff399b051a1767b1e2e499dbf186104d1c06d76f9f1535fac01 - languageName: node - linkType: hard - "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -4189,13 +2776,6 @@ __metadata: languageName: node linkType: hard -"@trysound/sax@npm:0.2.0": - version: 0.2.0 - resolution: "@trysound/sax@npm:0.2.0" - checksum: 11226c39b52b391719a2a92e10183e4260d9651f86edced166da1d95f39a0a1eaa470e44d14ac685ccd6d3df7e2002433782872c0feeb260d61e80f21250e65c - languageName: node - linkType: hard - "@tsconfig/node10@npm:^1.0.7": version: 1.0.9 resolution: "@tsconfig/node10@npm:1.0.9" @@ -4443,16 +3023,6 @@ __metadata: languageName: node linkType: hard -"@types/hoist-non-react-statics@npm:*": - version: 3.3.1 - resolution: "@types/hoist-non-react-statics@npm:3.3.1" - dependencies: - "@types/react": "*" - hoist-non-react-statics: ^3.3.0 - checksum: 2c0778570d9a01d05afabc781b32163f28409bb98f7245c38d5eaf082416fdb73034003f5825eb5e21313044e8d2d9e1f3fe2831e345d3d1b1d20bcd12270719 - languageName: node - linkType: hard - "@types/http-assert@npm:*": version: 1.5.3 resolution: "@types/http-assert@npm:1.5.3" @@ -5024,24 +3594,6 @@ __metadata: languageName: node linkType: hard -"@types/styled-components@npm:^5.1.26": - version: 5.1.26 - resolution: "@types/styled-components@npm:5.1.26" - dependencies: - "@types/hoist-non-react-statics": "*" - "@types/react": "*" - csstype: ^3.0.2 - checksum: 84f53b3101739b20d1731554fb7735bc2f3f5d050a8b392e9845403c8c8bbd729737d033978649f9195a97b557875b010d46e35a4538564a2d0dbcce661dbf76 - languageName: node - linkType: hard - -"@types/stylis@npm:^4.0.2": - version: 4.2.0 - resolution: "@types/stylis@npm:4.2.0" - checksum: 02a47584acd2fcb664f7d8270a69686c83752bdfb855f804015d33116a2b09c0b2ac535213a4a7b6d3a78b2915b22b4024cce067ae979beee0e4f8f5fdbc26a9 - languageName: node - linkType: hard - "@types/superagent@npm:*": version: 4.1.18 resolution: "@types/superagent@npm:4.1.18" @@ -6050,6 +4602,24 @@ __metadata: languageName: node linkType: hard +"autoprefixer@npm:^10.4.15": + version: 10.4.15 + resolution: "autoprefixer@npm:10.4.15" + dependencies: + browserslist: ^4.21.10 + caniuse-lite: ^1.0.30001520 + fraction.js: ^4.2.0 + normalize-range: ^0.1.2 + picocolors: ^1.0.0 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.1.0 + bin: + autoprefixer: bin/autoprefixer + checksum: d490b14fb098c043e109fc13cd23628f146af99a493d35b9df3a26f8ec0b4dd8937c5601cdbaeb465b98ea31d3ea05aa7184711d4d93dfb52358d073dcb67032 + languageName: node + linkType: hard + "available-typed-arrays@npm:^1.0.5": version: 1.0.5 resolution: "available-typed-arrays@npm:1.0.5" @@ -6106,42 +4676,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.5": - version: 0.4.5 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.5" - dependencies: - "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.4.2 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 33a8e06aa54e2858d211c743d179f0487b03222f9ca1bfd7c4865bca243fca942a3358cb75f6bb894ed476cbddede834811fbd6903ff589f055821146f053e1a - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs3@npm:^0.8.3": - version: 0.8.3 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.3" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.4.2 - core-js-compat: ^3.31.0 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: dcbb30e551702a82cfd4d2c375da2c317658e55f95e9edcda93b9bbfdcc8fb6e5344efcb144e04d3406859e7682afce7974c60ededd9f12072a48a83dd22a0da - languageName: node - linkType: hard - -"babel-plugin-polyfill-regenerator@npm:^0.5.2": - version: 0.5.2 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.2" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.4.2 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: d962200f604016a9a09bc9b4aaf60a3db7af876bb65bcefaeac04d44ac9d9ec4037cf24ce117760cc141d7046b6394c7eb0320ba9665cb4a2ee64df2be187c93 - languageName: node - linkType: hard - "babel-preset-current-node-syntax@npm:^1.0.0": version: 1.0.1 resolution: "babel-preset-current-node-syntax@npm:1.0.1" @@ -6269,15 +4803,8 @@ __metadata: array-flatten: ^2.1.2 dns-equal: ^1.0.0 fast-deep-equal: ^3.1.3 - multicast-dns: ^7.2.5 - checksum: 832d0cf78b91368fac8bb11fd7a714e46f4c4fb1bb14d7283bce614a6fb3aae2f3fe209aba5b4fa051811c1cab6921d073a83db8432fb23292f27dd4161fb0f1 - languageName: node - linkType: hard - -"boolbase@npm:^1.0.0": - version: 1.0.0 - resolution: "boolbase@npm:1.0.0" - checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0 + multicast-dns: ^7.2.5 + checksum: 832d0cf78b91368fac8bb11fd7a714e46f4c4fb1bb14d7283bce614a6fb3aae2f3fe209aba5b4fa051811c1cab6921d073a83db8432fb23292f27dd4161fb0f1 languageName: node linkType: hard @@ -6582,13 +5109,6 @@ __metadata: languageName: node linkType: hard -"camelize@npm:^1.0.0": - version: 1.0.1 - resolution: "camelize@npm:1.0.1" - checksum: 91d8611d09af725e422a23993890d22b2b72b4cabf7239651856950c76b4bf53fe0d0da7c5e4db05180e898e4e647220e78c9fbc976113bd96d603d1fcbfcb99 - languageName: node - linkType: hard - "caniuse-lite@npm:^1.0.30001517": version: 1.0.30001518 resolution: "caniuse-lite@npm:1.0.30001518" @@ -6596,6 +5116,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001520": + version: 1.0.30001525 + resolution: "caniuse-lite@npm:1.0.30001525" + checksum: a0d190c185b8e1220dbc72e42f310633059aa175ca3396eb781b249ac3da6c62b30cb8efc5fa24d632cb938f58d90b0c7772d1c9942b6643cf418c27c2cb8632 + languageName: node + linkType: hard + "catering@npm:^2.0.0, catering@npm:^2.1.0": version: 2.1.1 resolution: "catering@npm:2.1.1" @@ -6603,7 +5130,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.4.2": +"chalk@npm:^2.0.0": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -6631,7 +5158,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.4.0, chokidar@npm:^3.5.3": +"chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: @@ -6873,20 +5400,13 @@ __metadata: languageName: node linkType: hard -"commander@npm:^4.0.0, commander@npm:^4.0.1": +"commander@npm:^4.0.0": version: 4.1.1 resolution: "commander@npm:4.1.1" checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 languageName: node linkType: hard -"commander@npm:^7.2.0": - version: 7.2.0 - resolution: "commander@npm:7.2.0" - checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc - languageName: node - linkType: hard - "commander@npm:^9.0.0": version: 9.5.0 resolution: "commander@npm:9.5.0" @@ -7028,7 +5548,7 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.1.0, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": +"convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 @@ -7103,15 +5623,6 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.31.0": - version: 3.32.1 - resolution: "core-js-compat@npm:3.32.1" - dependencies: - browserslist: ^4.21.10 - checksum: 2ce0002d6d2acabfc6f4c1ea32915683406a10051a186db354b761303cb6f5728f83887d070fb8d0072b5601bb16cb0d24555ee72bfa6df244f7b3ef74d61f76 - languageName: node - linkType: hard - "core-js@npm:^3.6.5": version: 3.32.0 resolution: "core-js@npm:3.32.0" @@ -7126,7 +5637,7 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:8.2.0, cosmiconfig@npm:^8.1.3": +"cosmiconfig@npm:8.2.0": version: 8.2.0 resolution: "cosmiconfig@npm:8.2.0" dependencies: @@ -7138,6 +5649,23 @@ __metadata: languageName: node linkType: hard +"cosmiconfig@npm:^8.2.0": + version: 8.3.0 + resolution: "cosmiconfig@npm:8.3.0" + dependencies: + import-fresh: ^3.3.0 + js-yaml: ^4.1.0 + parse-json: ^5.2.0 + path-type: ^4.0.0 + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 535e2d542aa31c764840a25e2d22189a59d0bbad56df2eaf3eb85a9e8c696f7ba19e8545e1ff03720e281f5a284f7a73e0f8729b30804474207bcbc8de83cb7c + languageName: node + linkType: hard + "create-ecdh@npm:^4.0.0": version: 4.0.4 resolution: "create-ecdh@npm:4.0.4" @@ -7230,61 +5758,21 @@ __metadata: languageName: node linkType: hard -"css-color-keywords@npm:^1.0.0": - version: 1.0.0 - resolution: "css-color-keywords@npm:1.0.0" - checksum: 8f125e3ad477bd03c77b533044bd9e8a6f7c0da52d49bbc0bbe38327b3829d6ba04d368ca49dd9ff3b667d2fc8f1698d891c198bbf8feade1a5501bf5a296408 - languageName: node - linkType: hard - -"css-select@npm:^5.1.0": - version: 5.1.0 - resolution: "css-select@npm:5.1.0" - dependencies: - boolbase: ^1.0.0 - css-what: ^6.1.0 - domhandler: ^5.0.2 - domutils: ^3.0.1 - nth-check: ^2.0.1 - checksum: 2772c049b188d3b8a8159907192e926e11824aea525b8282981f72ba3f349cf9ecd523fdf7734875ee2cb772246c22117fc062da105b6d59afe8dcd5c99c9bda - languageName: node - linkType: hard - -"css-to-react-native@npm:^3.2.0": - version: 3.2.0 - resolution: "css-to-react-native@npm:3.2.0" - dependencies: - camelize: ^1.0.0 - css-color-keywords: ^1.0.0 - postcss-value-parser: ^4.0.2 - checksum: 263be65e805aef02c3f20c064665c998a8c35293e1505dbe6e3054fb186b01a9897ac6cf121f9840e5a9dfe3fb3994f6fcd0af84a865f1df78ba5bf89e77adce - languageName: node - linkType: hard - -"css-tree@npm:^2.2.1": - version: 2.3.1 - resolution: "css-tree@npm:2.3.1" - dependencies: - mdn-data: 2.0.30 - source-map-js: ^1.0.1 - checksum: 493cc24b5c22b05ee5314b8a0d72d8a5869491c1458017ae5ed75aeb6c3596637dbe1b11dac2548974624adec9f7a1f3a6cf40593dc1f9185eb0e8279543fbc0 - languageName: node - linkType: hard - -"css-tree@npm:~2.2.0": - version: 2.2.1 - resolution: "css-tree@npm:2.2.1" +"css-loader@npm:^6.8.1": + version: 6.8.1 + resolution: "css-loader@npm:6.8.1" dependencies: - mdn-data: 2.0.28 - source-map-js: ^1.0.1 - checksum: b94aa8cc2f09e6f66c91548411fcf74badcbad3e150345074715012d16333ce573596ff5dfca03c2a87edf1924716db765120f94247e919d72753628ba3aba27 - languageName: node - linkType: hard - -"css-what@npm:^6.1.0": - version: 6.1.0 - resolution: "css-what@npm:6.1.0" - checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe + icss-utils: ^5.1.0 + postcss: ^8.4.21 + postcss-modules-extract-imports: ^3.0.0 + postcss-modules-local-by-default: ^4.0.3 + postcss-modules-scope: ^3.0.0 + postcss-modules-values: ^4.0.0 + postcss-value-parser: ^4.2.0 + semver: ^7.3.8 + peerDependencies: + webpack: ^5.0.0 + checksum: 7c1784247bdbe76dc5c55fb1ac84f1d4177a74c47259942c9cfdb7a8e6baef11967a0bc85ac285f26bd26d5059decb848af8154a03fdb4f4894f41212f45eef3 languageName: node linkType: hard @@ -7297,16 +5785,7 @@ __metadata: languageName: node linkType: hard -"csso@npm:^5.0.5": - version: 5.0.5 - resolution: "csso@npm:5.0.5" - dependencies: - css-tree: ~2.2.0 - checksum: 0ad858d36bf5012ed243e9ec69962a867509061986d2ee07cc040a4b26e4d062c00d4c07e5ba8d430706ceb02dd87edd30a52b5937fd45b1b6f2119c4993d59a - languageName: node - linkType: hard - -"csstype@npm:^3.0.2, csstype@npm:^3.1.2": +"csstype@npm:^3.0.2": version: 3.1.2 resolution: "csstype@npm:3.1.2" checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 @@ -7430,7 +5909,7 @@ __metadata: languageName: node linkType: hard -"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1": +"deepmerge@npm:^4.2.2": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 @@ -7697,54 +6176,6 @@ __metadata: languageName: node linkType: hard -"dom-serializer@npm:^2.0.0": - version: 2.0.0 - resolution: "dom-serializer@npm:2.0.0" - dependencies: - domelementtype: ^2.3.0 - domhandler: ^5.0.2 - entities: ^4.2.0 - checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 - languageName: node - linkType: hard - -"domelementtype@npm:^2.3.0": - version: 2.3.0 - resolution: "domelementtype@npm:2.3.0" - checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 - languageName: node - linkType: hard - -"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": - version: 5.0.3 - resolution: "domhandler@npm:5.0.3" - dependencies: - domelementtype: ^2.3.0 - checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c - languageName: node - linkType: hard - -"domutils@npm:^3.0.1": - version: 3.1.0 - resolution: "domutils@npm:3.1.0" - dependencies: - dom-serializer: ^2.0.0 - domelementtype: ^2.3.0 - domhandler: ^5.0.3 - checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 - languageName: node - linkType: hard - -"dot-case@npm:^3.0.4": - version: 3.0.4 - resolution: "dot-case@npm:3.0.4" - dependencies: - no-case: ^3.0.4 - tslib: ^2.0.3 - checksum: a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169 - languageName: node - linkType: hard - "dotenv@npm:^16.0.3": version: 16.3.1 resolution: "dotenv@npm:16.3.1" @@ -7858,13 +6289,6 @@ __metadata: languageName: node linkType: hard -"entities@npm:^4.2.0, entities@npm:^4.4.0": - version: 4.5.0 - resolution: "entities@npm:4.5.0" - checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 - languageName: node - linkType: hard - "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -8865,6 +7289,13 @@ __metadata: languageName: node linkType: hard +"fraction.js@npm:^4.2.0": + version: 4.3.6 + resolution: "fraction.js@npm:4.3.6" + checksum: e96ae77e64ebfd442d3a5a01a3f0637b0663fc2440bcf2841b3ad9341ba24c81fb2e3e7142e43ef7d088558c6b3f8609df135b201adc7a1c674aea6a71384162 + languageName: node + linkType: hard + "freeport-promise@npm:^2.0.0": version: 2.0.0 resolution: "freeport-promise@npm:2.0.0" @@ -8933,13 +7364,6 @@ __metadata: languageName: node linkType: hard -"fs-readdir-recursive@npm:^1.1.0": - version: 1.1.0 - resolution: "fs-readdir-recursive@npm:1.1.0" - checksum: 29d50f3d2128391c7fc9fd051c8b7ea45bcc8aa84daf31ef52b17218e20bfd2bd34d02382742801954cc8d1905832b68227f6b680a666ce525d8b6b75068ad1e - languageName: node - linkType: hard - "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" @@ -9163,7 +7587,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0": +"glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -9610,6 +8034,15 @@ __metadata: languageName: node linkType: hard +"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": + version: 5.1.0 + resolution: "icss-utils@npm:5.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 5c324d283552b1269cfc13a503aaaa172a280f914e5b81544f3803bc6f06a3b585fb79f66f7c771a2c052db7982c18bf92d001e3b47282e3abbbb4c4cc488d68 + languageName: node + linkType: hard + "ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -9624,7 +8057,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -10969,15 +9402,6 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:~0.5.0": - version: 0.5.0 - resolution: "jsesc@npm:0.5.0" - bin: - jsesc: bin/jsesc - checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17 - languageName: node - linkType: hard - "json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" @@ -11439,13 +9863,6 @@ __metadata: languageName: node linkType: hard -"lodash.debounce@npm:^4.0.8": - version: 4.0.8 - resolution: "lodash.debounce@npm:4.0.8" - checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 - languageName: node - linkType: hard - "lodash.every@npm:^4.6.0": version: 4.6.0 resolution: "lodash.every@npm:4.6.0" @@ -11586,15 +10003,6 @@ __metadata: languageName: node linkType: hard -"lower-case@npm:^2.0.2": - version: 2.0.2 - resolution: "lower-case@npm:2.0.2" - dependencies: - tslib: ^2.0.3 - checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 - languageName: node - linkType: hard - "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -11641,16 +10049,6 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^2.1.0": - version: 2.1.0 - resolution: "make-dir@npm:2.1.0" - dependencies: - pify: ^4.0.1 - semver: ^5.6.0 - checksum: 043548886bfaf1820323c6a2997e6d2fa51ccc2586ac14e6f14634f7458b4db2daf15f8c310e2a0abd3e0cddc64df1890d8fc7263033602c47bb12cbfcf86aab - languageName: node - linkType: hard - "make-dir@npm:^4.0.0": version: 4.0.0 resolution: "make-dir@npm:4.0.0" @@ -11740,20 +10138,6 @@ __metadata: languageName: node linkType: hard -"mdn-data@npm:2.0.28": - version: 2.0.28 - resolution: "mdn-data@npm:2.0.28" - checksum: f51d587a6ebe8e426c3376c74ea6df3e19ec8241ed8e2466c9c8a3904d5d04397199ea4f15b8d34d14524b5de926d8724ae85207984be47e165817c26e49e0aa - languageName: node - linkType: hard - -"mdn-data@npm:2.0.30": - version: 2.0.30 - resolution: "mdn-data@npm:2.0.30" - checksum: d6ac5ac7439a1607df44b22738ecf83f48e66a0874e4482d6424a61c52da5cde5750f1d1229b6f5fa1b80a492be89465390da685b11f97d62b8adcc6e88189aa - languageName: node - linkType: hard - "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -12226,16 +10610,6 @@ __metadata: languageName: node linkType: hard -"no-case@npm:^3.0.4": - version: 3.0.4 - resolution: "no-case@npm:3.0.4" - dependencies: - lower-case: ^2.0.2 - tslib: ^2.0.3 - checksum: 0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c - languageName: node - linkType: hard - "node-cleanup@npm:^2.1.2": version: 2.1.2 resolution: "node-cleanup@npm:2.1.2" @@ -12340,6 +10714,13 @@ __metadata: languageName: node linkType: hard +"normalize-range@npm:^0.1.2": + version: 0.1.2 + resolution: "normalize-range@npm:0.1.2" + checksum: 9b2f14f093593f367a7a0834267c24f3cb3e887a2d9809c77d8a7e5fd08738bcd15af46f0ab01cc3a3d660386f015816b5c922cea8bf2ee79777f40874063184 + languageName: node + linkType: hard + "npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" @@ -12370,15 +10751,6 @@ __metadata: languageName: node linkType: hard -"nth-check@npm:^2.0.1": - version: 2.1.1 - resolution: "nth-check@npm:2.1.1" - dependencies: - boolbase: ^1.0.0 - checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3 - languageName: node - linkType: hard - "object-assign@npm:^4.0.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -12873,13 +11245,6 @@ __metadata: languageName: node linkType: hard -"pify@npm:^4.0.1": - version: 4.0.1 - resolution: "pify@npm:4.0.1" - checksum: 9c4e34278cb09987685fa5ef81499c82546c033713518f6441778fbec623fc708777fe8ac633097c72d88470d5963094076c7305cafc7ad340aae27cfacd856b - languageName: node - linkType: hard - "pirates@npm:^4.0.1, pirates@npm:^4.0.4": version: 4.0.6 resolution: "pirates@npm:4.0.6" @@ -12945,6 +11310,64 @@ __metadata: languageName: node linkType: hard +"postcss-loader@npm:^7.3.3": + version: 7.3.3 + resolution: "postcss-loader@npm:7.3.3" + dependencies: + cosmiconfig: ^8.2.0 + jiti: ^1.18.2 + semver: ^7.3.8 + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + checksum: c724044d6ae56334535c26bb4efc9c151431d44d60bc8300157c760747281a242757d8dab32db72738434531175b38a408cb0b270bb96207c07584dcfcd899ff + languageName: node + linkType: hard + +"postcss-modules-extract-imports@npm:^3.0.0": + version: 3.0.0 + resolution: "postcss-modules-extract-imports@npm:3.0.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 4b65f2f1382d89c4bc3c0a1bdc5942f52f3cb19c110c57bd591ffab3a5fee03fcf831604168205b0c1b631a3dce2255c70b61aaae3ef39d69cd7eb450c2552d2 + languageName: node + linkType: hard + +"postcss-modules-local-by-default@npm:^4.0.3": + version: 4.0.3 + resolution: "postcss-modules-local-by-default@npm:4.0.3" + dependencies: + icss-utils: ^5.0.0 + postcss-selector-parser: ^6.0.2 + postcss-value-parser: ^4.1.0 + peerDependencies: + postcss: ^8.1.0 + checksum: 2f8083687f3d6067885f8863dd32dbbb4f779cfcc7e52c17abede9311d84faf6d3ed8760e7c54c6380281732ae1f78e5e56a28baf3c271b33f450a11c9e30485 + languageName: node + linkType: hard + +"postcss-modules-scope@npm:^3.0.0": + version: 3.0.0 + resolution: "postcss-modules-scope@npm:3.0.0" + dependencies: + postcss-selector-parser: ^6.0.4 + peerDependencies: + postcss: ^8.1.0 + checksum: 330b9398dbd44c992c92b0dc612c0626135e2cc840fee41841eb61247a6cfed95af2bd6f67ead9dd9d0bb41f5b0367129d93c6e434fa3e9c58ade391d9a5a138 + languageName: node + linkType: hard + +"postcss-modules-values@npm:^4.0.0": + version: 4.0.0 + resolution: "postcss-modules-values@npm:4.0.0" + dependencies: + icss-utils: ^5.0.0 + peerDependencies: + postcss: ^8.1.0 + checksum: f7f2cdf14a575b60e919ad5ea52fed48da46fe80db2733318d71d523fc87db66c835814940d7d05b5746b0426e44661c707f09bdb83592c16aea06e859409db6 + languageName: node + linkType: hard + "postcss-nested@npm:^6.0.1": version: 6.0.1 resolution: "postcss-nested@npm:6.0.1" @@ -12956,7 +11379,7 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.11": +"postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": version: 6.0.13 resolution: "postcss-selector-parser@npm:6.0.13" dependencies: @@ -12966,14 +11389,14 @@ __metadata: languageName: node linkType: hard -"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.0.2": +"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": version: 4.2.0 resolution: "postcss-value-parser@npm:4.2.0" checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f languageName: node linkType: hard -"postcss@npm:^8.4.23": +"postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.29": version: 8.4.29 resolution: "postcss@npm:8.4.29" dependencies: @@ -13053,25 +11476,26 @@ __metadata: "@aztec/noir-compiler": "workspace:^" "@aztec/noir-contracts": "workspace:^" "@aztec/types": "workspace:^" - "@svgr/webpack": ^8.1.0 "@types/react": ^18.2.15 "@types/react-dom": ^18.2.7 - "@types/styled-components": ^5.1.26 "@typescript-eslint/eslint-plugin": ^6.0.0 "@typescript-eslint/parser": ^6.0.0 + autoprefixer: ^10.4.15 copy-webpack-plugin: ^11.0.0 + css-loader: ^6.8.1 eslint: ^8.45.0 eslint-import-resolver-typescript: ^3.5.5 eslint-plugin-import: ^2.27.5 eslint-plugin-react-hooks: ^4.6.0 eslint-plugin-react-refresh: ^0.4.3 formik: ^2.4.3 + postcss: ^8.4.29 + postcss-loader: ^7.3.3 prettier: ^3.0.3 react: ^18.2.0 react-dom: ^18.2.0 resolve-typescript-plugin: ^2.0.1 - styled-components: ^6.0.7 - styled-reset: ^4.5.1 + style-loader: ^3.3.3 tailwindcss: ^3.3.3 ts-jest: ^29.1.0 ts-loader: ^9.4.4 @@ -13551,22 +11975,6 @@ __metadata: languageName: node linkType: hard -"regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.0 - resolution: "regenerate-unicode-properties@npm:10.1.0" - dependencies: - regenerate: ^1.4.2 - checksum: b1a8929588433ab8b9dc1a34cf3665b3b472f79f2af6ceae00d905fc496b332b9af09c6718fb28c730918f19a00dc1d7310adbaa9b72a2ec7ad2f435da8ace17 - languageName: node - linkType: hard - -"regenerate@npm:^1.4.2": - version: 1.4.2 - resolution: "regenerate@npm:1.4.2" - checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 - languageName: node - linkType: hard - "regenerator-runtime@npm:^0.13.11": version: 0.13.11 resolution: "regenerator-runtime@npm:0.13.11" @@ -13574,22 +11982,6 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.14.0": - version: 0.14.0 - resolution: "regenerator-runtime@npm:0.14.0" - checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3 - languageName: node - linkType: hard - -"regenerator-transform@npm:^0.15.2": - version: 0.15.2 - resolution: "regenerator-transform@npm:0.15.2" - dependencies: - "@babel/runtime": ^7.8.4 - checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 - languageName: node - linkType: hard - "regexp.prototype.flags@npm:^1.5.0": version: 1.5.0 resolution: "regexp.prototype.flags@npm:1.5.0" @@ -13601,31 +11993,6 @@ __metadata: languageName: node linkType: hard -"regexpu-core@npm:^5.3.1": - version: 5.3.2 - resolution: "regexpu-core@npm:5.3.2" - dependencies: - "@babel/regjsgen": ^0.8.0 - regenerate: ^1.4.2 - regenerate-unicode-properties: ^10.1.0 - regjsparser: ^0.9.1 - unicode-match-property-ecmascript: ^2.0.0 - unicode-match-property-value-ecmascript: ^2.1.0 - checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 - languageName: node - linkType: hard - -"regjsparser@npm:^0.9.1": - version: 0.9.1 - resolution: "regjsparser@npm:0.9.1" - dependencies: - jsesc: ~0.5.0 - bin: - regjsparser: bin/parser - checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc - languageName: node - linkType: hard - "repeat-string@npm:^1.6.1": version: 1.6.1 resolution: "repeat-string@npm:1.6.1" @@ -13712,7 +12079,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.7, resolve@npm:^1.14.2, resolve@npm:^1.22.2": +"resolve@npm:^1.1.7, resolve@npm:^1.22.2": version: 1.22.4 resolution: "resolve@npm:1.22.4" dependencies: @@ -13748,7 +12115,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.22.2#~builtin": +"resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.22.2#~builtin": version: 1.22.4 resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=c3c19d" dependencies: @@ -13991,7 +12358,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.1.0, semver@npm:^5.6.0": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.1.0": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -14138,13 +12505,6 @@ __metadata: languageName: node linkType: hard -"shallowequal@npm:^1.1.0": - version: 1.1.0 - resolution: "shallowequal@npm:1.1.0" - checksum: f4c1de0837f106d2dbbfd5d0720a5d059d1c66b42b580965c8f06bb1db684be8783538b684092648c981294bf817869f743a066538771dbecb293df78f765e00 - languageName: node - linkType: hard - "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -14221,13 +12581,6 @@ __metadata: languageName: node linkType: hard -"slash@npm:^2.0.0": - version: 2.0.0 - resolution: "slash@npm:2.0.0" - checksum: 512d4350735375bd11647233cb0e2f93beca6f53441015eea241fe784d8068281c3987fbaa93e7ef1c38df68d9c60013045c92837423c69115297d6169aa85e6 - languageName: node - linkType: hard - "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -14249,16 +12602,6 @@ __metadata: languageName: node linkType: hard -"snake-case@npm:^3.0.4": - version: 3.0.4 - resolution: "snake-case@npm:3.0.4" - dependencies: - dot-case: ^3.0.4 - tslib: ^2.0.3 - checksum: 0a7a79900bbb36f8aaa922cf111702a3647ac6165736d5dc96d3ef367efc50465cac70c53cd172c382b022dac72ec91710608e5393de71f76d7142e6fd80e8a3 - languageName: node - linkType: hard - "sockjs@npm:^0.3.24": version: 0.3.24 resolution: "sockjs@npm:0.3.24" @@ -14302,7 +12645,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": +"source-map-js@npm:^1.0.2": version: 1.0.2 resolution: "source-map-js@npm:1.0.2" checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c @@ -14663,53 +13006,12 @@ __metadata: languageName: node linkType: hard -"styled-components@npm:^6.0.7": - version: 6.0.7 - resolution: "styled-components@npm:6.0.7" - dependencies: - "@babel/cli": ^7.21.0 - "@babel/core": ^7.21.0 - "@babel/helper-module-imports": ^7.18.6 - "@babel/plugin-external-helpers": ^7.18.6 - "@babel/plugin-proposal-class-properties": ^7.18.6 - "@babel/plugin-proposal-object-rest-spread": ^7.20.7 - "@babel/preset-env": ^7.20.2 - "@babel/preset-react": ^7.18.6 - "@babel/preset-typescript": ^7.21.0 - "@babel/traverse": ^7.21.2 - "@emotion/is-prop-valid": ^1.2.1 - "@emotion/unitless": ^0.8.0 - "@types/stylis": ^4.0.2 - css-to-react-native: ^3.2.0 - csstype: ^3.1.2 - postcss: ^8.4.23 - shallowequal: ^1.1.0 - stylis: ^4.3.0 - tslib: ^2.5.0 - peerDependencies: - babel-plugin-styled-components: ">= 2" - react: ">= 16.8.0" - react-dom: ">= 16.8.0" - peerDependenciesMeta: - babel-plugin-styled-components: - optional: true - checksum: 38645f38f145225e456f8f9303f5be1d988180e0e3d84d1f3e1d14fb006c7deb69704745e266d61016616a154938697d011a0bff6eaeb7dd25dbba659e2411f7 - languageName: node - linkType: hard - -"styled-reset@npm:^4.5.1": - version: 4.5.1 - resolution: "styled-reset@npm:4.5.1" +"style-loader@npm:^3.3.3": + version: 3.3.3 + resolution: "style-loader@npm:3.3.3" peerDependencies: - styled-components: ">=4.0.0 || >=5.0.0 || >=6.0.0" - checksum: ff6c5bbc738017a535a5e74cc3b2e7112652691c8e4acae700fe3d051f870035e2d911e6629a9a626349ccc58ba9842b83793bd9111f4e1c9e1fa695f773d2b8 - languageName: node - linkType: hard - -"stylis@npm:^4.3.0": - version: 4.3.0 - resolution: "stylis@npm:4.3.0" - checksum: 6120de3f03eacf3b5adc8e7919c4cca991089156a6badc5248752a3088106afaaf74996211a6817a7760ebeadca09004048eea31875bd8d4df51386365c50025 + webpack: ^5.0.0 + checksum: f59c953f56f6a935bd6a1dfa409f1128fed2b66b48ce4a7a75b85862a7156e5e90ab163878962762f528ec4d510903d828da645e143fbffd26f055dc1c094078 languageName: node linkType: hard @@ -14793,29 +13095,6 @@ __metadata: languageName: node linkType: hard -"svg-parser@npm:^2.0.4": - version: 2.0.4 - resolution: "svg-parser@npm:2.0.4" - checksum: b3de6653048212f2ae7afe4a423e04a76ec6d2d06e1bf7eacc618a7c5f7df7faa5105561c57b94579ec831fbbdbf5f190ba56a9205ff39ed13eabdf8ab086ddf - languageName: node - linkType: hard - -"svgo@npm:^3.0.2": - version: 3.0.2 - resolution: "svgo@npm:3.0.2" - dependencies: - "@trysound/sax": 0.2.0 - commander: ^7.2.0 - css-select: ^5.1.0 - css-tree: ^2.2.1 - csso: ^5.0.5 - picocolors: ^1.0.0 - bin: - svgo: bin/svgo - checksum: 381ba14aa782e71ab7033227634a3041c11fa3e2769aeaf0df43a08a615de61925108e34f55af6e7c5146f4a3109e78deabb4fa9d687e36d45d1f848b4e23d17 - languageName: node - linkType: hard - "synckit@npm:^0.8.5": version: 0.8.5 resolution: "synckit@npm:0.8.5" @@ -15252,7 +13531,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.3": +"tslib@npm:^2.0.0": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad @@ -15511,37 +13790,6 @@ __metadata: languageName: node linkType: hard -"unicode-canonical-property-names-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" - checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 - languageName: node - linkType: hard - -"unicode-match-property-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-match-property-ecmascript@npm:2.0.0" - dependencies: - unicode-canonical-property-names-ecmascript: ^2.0.0 - unicode-property-aliases-ecmascript: ^2.0.0 - checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a - languageName: node - linkType: hard - -"unicode-match-property-value-ecmascript@npm:^2.1.0": - version: 2.1.0 - resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" - checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220 - languageName: node - linkType: hard - -"unicode-property-aliases-ecmascript@npm:^2.0.0": - version: 2.1.0 - resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" - checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b - languageName: node - linkType: hard - "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" From 6af5308322d028e289abad98b8d48393e78c49c3 Mon Sep 17 00:00:00 2001 From: Leila Wang Date: Tue, 5 Sep 2023 10:44:38 +0000 Subject: [PATCH 004/117] Cleanup. --- yarn-project/boxes/private-token/public/vite.svg | 1 - .../boxes/private-token/src/app/components/banner.tsx | 2 +- .../boxes/private-token/src/app/components/button.tsx | 4 ++-- .../boxes/private-token/src/app/components/index.ts | 4 ++++ .../boxes/private-token/src/app/components/popup.tsx | 4 ++-- .../boxes/private-token/src/app/components/spinner.tsx | 2 +- yarn-project/boxes/private-token/src/app/contract.tsx | 6 +++--- .../boxes/private-token/src/app/contract_function_form.tsx | 4 ++-- yarn-project/boxes/private-token/src/app/home.tsx | 7 +++---- yarn-project/boxes/private-token/src/app/index.tsx | 2 +- 10 files changed, 19 insertions(+), 17 deletions(-) delete mode 100644 yarn-project/boxes/private-token/public/vite.svg create mode 100644 yarn-project/boxes/private-token/src/app/components/index.ts diff --git a/yarn-project/boxes/private-token/public/vite.svg b/yarn-project/boxes/private-token/public/vite.svg deleted file mode 100644 index e7b8dfb1b2a..00000000000 --- a/yarn-project/boxes/private-token/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yarn-project/boxes/private-token/src/app/components/banner.tsx b/yarn-project/boxes/private-token/src/app/components/banner.tsx index 4b6135b9884..6157e1c93d1 100644 --- a/yarn-project/boxes/private-token/src/app/components/banner.tsx +++ b/yarn-project/boxes/private-token/src/app/components/banner.tsx @@ -9,7 +9,7 @@ interface Props { * @param background - background color, either "black" or "purple" * @returns a moving banner repeating the word PRIVACY */ -export default function Banner({ background, direction, animated }: Props) { +export function Banner({ background, direction, animated }: Props) { // Determine direction const start = !animated ? '' : direction === 'reverse' ? 'animate-marquee' : 'animate-marquee3'; const end = !animated ? '' : direction === 'reverse' ? 'animate-marquee2' : 'animate-marquee4'; diff --git a/yarn-project/boxes/private-token/src/app/components/button.tsx b/yarn-project/boxes/private-token/src/app/components/button.tsx index 7ed950e93c7..4ac24cadb53 100644 --- a/yarn-project/boxes/private-token/src/app/components/button.tsx +++ b/yarn-project/boxes/private-token/src/app/components/button.tsx @@ -1,4 +1,4 @@ -import Spinner from './spinner.js'; +import { Spinner } from './spinner.js'; interface Props { children: string; @@ -7,7 +7,7 @@ interface Props { onClick?: () => void; } -export default function Button({ children, isLoading, disabled, onClick }: Props) { +export function Button({ children, isLoading, disabled, onClick }: Props) { return (