From 4e199e7a52ea4c892616b56206198b2810aaf743 Mon Sep 17 00:00:00 2001 From: Blessing Krofegha Date: Thu, 16 Feb 2023 13:21:28 +0100 Subject: [PATCH] Updated documentation app for performance (#245) * update old files * updated theme * added docs files * add gitignore * remove old logo * remove toc in all pages * adjusted algolia settings * upgraded docs * remove unused file * remove files * stash changes * update branch * merge file * updated files * update files * added neccessary files * update files * updated files * install dependencies * add replacer file * restructure files * updated breakline * enable image preview * add community links * switch navbar item * increase font-weight * add period * update placeholder * remove writing time * updated styles * update css styles * updated file * stash changes * updated files * fixed horizontal scroll bar issue * remove unused files * updated zksync logo * remove breaking tag * correct wrong tag * added link to matterlabs * updated wrong tag * fix logo alignment * stash changes * updated files * update styles * remove unneccessary files * add import files * correct typo * corrected code copy issues * remove redudant copy icon * remove wrong tag * updated the homepage * updated link * update link * updated icon * stash changes * updated files * updated logo * stash changes * updated files * add image to homepage * update footer * remove horizonta scroll * updated color * remove error file * update styles * update style * updated styles * updated homepage * update intro text * update navbar * add period to sentence * fixed breadcrumb issue * replace zkSync 2.0 to zkSync Era * change typography * updated files * fix issues * removing unused references to toc, adjusting toc css and removing unused files * improving landing page and fixing more things * update contributors * update contributors * update python file * more improvements * updating image * more updates * removing redirect to /dev * yet more fixes * fix broken links * fix typo * updated testnet info * revert devOps to see docs state * fixing lots of paths * updated testnet info * updated intro page * added hidden section * some css improvements, including fixing footer to the bottom * fixing dead links, and more updated to zksync era and lite * addressing igor comments * made hidden sidebar content visible * fix toc structure * removes warning paymaster tut * removes warning aa tut * updates warning under review * adjusting page transition time * git overview page * added hyperscaling images * fix all broken links * update minor typo * hid text without info * adjustments to hardhat verify --------- Co-authored-by: Ramon Canales Co-authored-by: Antonio --- .github/.github/ISSUE_TEMPLATE/bug-report.md | 2 +- .github/workflows/deploy-preview.yml | 5 +- .github/workflows/deploy-prod.yml | 6 +- .github/workflows/deploy-staging.yml | 6 +- .github/workflows/release.yml | 6 +- .gitignore | 10 +- .husky/.gitignore | 2 +- .husky/commit-msg | 2 +- .husky/pre-commit | 2 +- .markdownlint.json | 76 +- .nuxt/App.js | 212 - .nuxt/client.js | 817 - .nuxt/components/index.js | 133 - .nuxt/components/nuxt-build-indicator.vue | 143 - .nuxt/components/nuxt-child.js | 122 - .nuxt/components/nuxt-error.vue | 98 - .nuxt/components/nuxt-link.client.js | 98 - .nuxt/components/nuxt-link.server.js | 16 - .nuxt/components/nuxt-loading.vue | 177 - .nuxt/components/nuxt.js | 101 - .nuxt/components/plugin.js | 75 - .nuxt/components/readme.md | 73 - .nuxt/components/utils.js | 30 - .nuxt/empty.js | 1 - .nuxt/google-gtag.js | 29 - .nuxt/index.js | 294 - .nuxt/inkline.js | 4 - .nuxt/jsonp.js | 82 - .nuxt/loading.html | 110 - .nuxt/middleware.js | 3 - .nuxt/mixins/fetch.client.js | 90 - .nuxt/mixins/fetch.server.js | 69 - .nuxt/pwa/icon.plugin.js | 5 - .nuxt/pwa/meta.json | 79 - .nuxt/pwa/meta.plugin.js | 6 - .nuxt/pwa/meta.utils.js | 36 - .nuxt/router.js | 48 - .nuxt/router.scrollBehavior.js | 36 - .nuxt/routes.json | 9 - .nuxt/sentry.client.js | 32 - .nuxt/sentry.server.config.js | 2 - .nuxt/sentry.server.js | 6 - .nuxt/server.js | 312 - .nuxt/store.js | 146 - .nuxt/utils.js | 630 - .nuxt/vetur/tags.json | 197 - .nuxt/views/app.template.html | 9 - .nuxt/views/error.html | 23 - .nuxt/vue-scrollto.js | 8 - .nuxt/workbox.js | 20 - .prettierignore | 2 +- .releaserc | 49 +- .yarn/releases/yarn-3.1.1.cjs | 0 .yarnrc.yml | 2 +- CHANGELOG.md | 2 +- LICENSE | 2 +- LICENSE-APACHE | 2 +- README.md | 18 +- cli-dev.sh | 28 +- commitlint.config.js | 4 +- cspell-zksync.txt | 2 +- cspell.json | 22 +- docs/.vuepress/components/TocHeader.vue | 17 - docs/.vuepress/config.js | 388 - docs/.vuepress/config.ts | 46 + docs/.vuepress/enhanceApp.js | 47 - docs/.vuepress/navbar/en.ts | 36 + docs/.vuepress/navbar/index.ts | 1 + docs/.vuepress/public/LogoHero.svg | 11 - docs/.vuepress/public/LogotypeLight.svg | 11 - {public => docs/.vuepress/public}/README.md | 0 .../.vuepress/public}/_nuxt/022f994.js | 0 .../.vuepress/public}/_nuxt/05cc566.js | 0 .../.vuepress/public}/_nuxt/07204ed.js | 0 .../.vuepress/public}/_nuxt/08fc647.js | 0 .../.vuepress/public}/_nuxt/3acf056.js | 0 .../.vuepress/public}/_nuxt/3cf3a88.js | 0 .../.vuepress/public}/_nuxt/429ab63.js | 0 .../.vuepress/public}/_nuxt/4c8cf8f.js | 0 .../.vuepress/public}/_nuxt/5e3d62e.js | 0 .../.vuepress/public}/_nuxt/5f041a3.js | 0 .../.vuepress/public}/_nuxt/6a8659b.js | 0 .../.vuepress/public}/_nuxt/6a9a12e.js | 0 .../.vuepress/public}/_nuxt/6c0fadd.js | 0 .../.vuepress/public}/_nuxt/6e15fd2.js | 0 .../.vuepress/public}/_nuxt/9dbf9b7.js | 0 .../.vuepress/public}/_nuxt/LICENSES | 0 .../.vuepress/public}/_nuxt/a39479c.js | 0 .../.vuepress/public}/_nuxt/aba3055.js | 0 .../.vuepress/public}/_nuxt/ad023a1.js | 0 .../.vuepress/public}/_nuxt/b1a63d4.js | 0 .../.vuepress/public}/_nuxt/b2aeb6d.js | 0 .../.vuepress/public}/_nuxt/c1bfe53.js | 0 .../.vuepress/public}/_nuxt/c940709.js | 0 .../.vuepress/public}/_nuxt/css/012c286.css | 0 .../.vuepress/public}/_nuxt/css/0f2b4d8.css | 0 .../.vuepress/public}/_nuxt/css/14f47b8.css | 0 .../.vuepress/public}/_nuxt/css/2221154.css | 0 .../.vuepress/public}/_nuxt/css/2cbc39d.css | 0 .../.vuepress/public}/_nuxt/css/2f663d3.css | 0 .../.vuepress/public}/_nuxt/css/63402a9.css | 0 .../.vuepress/public}/_nuxt/css/795b28e.css | 0 .../.vuepress/public}/_nuxt/css/a037713.css | 0 .../.vuepress/public}/_nuxt/css/e74ffff.css | 0 .../.vuepress/public}/_nuxt/css/f9190e9.css | 0 .../.vuepress/public}/_nuxt/d0f35b7.js | 0 .../.vuepress/public}/_nuxt/e0b9647.js | 0 .../.vuepress/public}/_nuxt/eb26aff.js | 0 .../.vuepress/public}/_nuxt/f861278.js | 0 .../.vuepress/public}/_nuxt/fe88811.js | 0 .../_nuxt/fonts/FKGrotesk-Bold.2bbd645.woff | Bin .../_nuxt/fonts/FKGrotesk-Bold.40893cb.ttf | Bin .../_nuxt/fonts/FKGrotesk-Bold.ac0bda8.woff2 | Bin .../_nuxt/fonts/FKGrotesk-Bold.faa9400.eot | Bin .../_nuxt/fonts/FKGrotesk-Regular.032f14c.eot | Bin .../fonts/FKGrotesk-Regular.1f8acbb.woff | Bin .../_nuxt/fonts/FKGrotesk-Regular.2309d02.ttf | Bin .../fonts/FKGrotesk-Regular.f377e04.woff2 | Bin .../_nuxt/fonts/fa-brands-400.1059147.woff2 | Bin .../_nuxt/fonts/fa-brands-400.34804e7.woff | Bin .../_nuxt/fonts/fa-brands-400.3848279.ttf | Bin .../_nuxt/fonts/fa-brands-400.6c1d3d5.eot | Bin .../_nuxt/fonts/fa-duotone-900.63fd19c.woff | Bin .../_nuxt/fonts/fa-duotone-900.7749cf4.ttf | Bin .../_nuxt/fonts/fa-duotone-900.a69d114.woff2 | Bin .../_nuxt/fonts/fa-duotone-900.fbe8fb8.eot | Bin .../_nuxt/fonts/fa-light-300.8389ada.eot | Bin .../_nuxt/fonts/fa-light-300.9ccb657.woff2 | Bin .../_nuxt/fonts/fa-light-300.d58496a.ttf | Bin .../_nuxt/fonts/fa-light-300.d8f8190.woff | Bin .../_nuxt/fonts/fa-regular-400.126e350.woff2 | Bin .../_nuxt/fonts/fa-regular-400.6d74740.ttf | Bin .../_nuxt/fonts/fa-regular-400.71f36b6.eot | Bin .../_nuxt/fonts/fa-regular-400.7b842c9.woff | Bin .../_nuxt/fonts/fa-solid-900.228fa19.eot | Bin .../_nuxt/fonts/fa-solid-900.ba0b120.ttf | Bin .../_nuxt/fonts/fa-solid-900.dbe8505.woff2 | Bin .../_nuxt/fonts/fa-solid-900.e4506c4.woff | Bin .../public}/_nuxt/fonts/inkline.20a42ef.woff | Bin .../public}/_nuxt/fonts/inkline.ebe25a0.ttf | Bin .../public}/_nuxt/fonts/inkline.ff99d3f.eot | Bin .../_nuxt/icons/icon_120x120.3825bf.png | Bin .../_nuxt/icons/icon_144x144.3825bf.png | Bin .../_nuxt/icons/icon_152x152.3825bf.png | Bin .../_nuxt/icons/icon_192x192.3825bf.png | Bin .../_nuxt/icons/icon_384x384.3825bf.png | Bin .../_nuxt/icons/icon_512x512.3825bf.png | Bin .../public}/_nuxt/icons/icon_64x64.3825bf.png | Bin .../icons/splash_ipad_1536x2048.3825bf.png | Bin .../splash_ipadpro10_1668x2224.3825bf.png | Bin .../splash_ipadpro12_2048x2732.3825bf.png | Bin .../splash_ipadpro9_1536x2048.3825bf.png | Bin .../icons/splash_iphone6_50x1334.3825bf.png | Bin .../splash_iphoneplus_1080x1920.3825bf.png | Bin .../icons/splash_iphonese_640x1136.3825bf.png | Bin .../icons/splash_iphonex_1125x2436.3825bf.png | Bin .../icons/splash_iphonexr_828x1792.3825bf.png | Bin .../splash_iphonexsmax_1242x2688.3825bf.png | Bin .../public}/_nuxt/img/1inch.e5d5248.svg | 0 .../public}/_nuxt/img/1kx.321ed64.svg | 0 .../_nuxt/img/FKGrotesk-Bold.02eb70b.svg | 0 .../_nuxt/img/FKGrotesk-Regular.caa5ecc.svg | 0 .../public}/_nuxt/img/Frame 4062.07fb5e9.svg | 0 .../public}/_nuxt/img/Group 4051.6aed06b.svg | 0 .../public}/_nuxt/img/Group-1.8f5ff1b.svg | 0 .../public}/_nuxt/img/aave.9ccb985.svg | 0 .../public}/_nuxt/img/argent.8428545.svg | 0 .../public}/_nuxt/img/balancer.1d6aa53.svg | 0 .../public}/_nuxt/img/balancer.e73252d.svg | 0 .../public}/_nuxt/img/binance.df6389e.svg | 0 .../public}/_nuxt/img/buter.08a65ae.png | Bin .../public}/_nuxt/img/clock.68ee0ee.svg | 0 .../public}/_nuxt/img/code.c8b172f.jpg | Bin .../_nuxt/img/coinbase-ventures.d71f86b.svg | 0 .../public}/_nuxt/img/coinbase.e837c84.svg | 0 .../img/coingecko-ventures 1.07dc31d.svg | 0 .../public}/_nuxt/img/coingecko.007631f.png | Bin .../public}/_nuxt/img/coingecko.fef8a26.svg | 0 .../img/coinify-argent-750x375 1.1a31d9c.svg | 0 .../public}/_nuxt/img/curve.af02ac5.svg | 0 .../public}/_nuxt/img/curve.c84c372.svg | 0 .../_nuxt/img/decentralized.a676210.jpg | Bin .../_nuxt/img/dekryptcapital.5fc2fe9.svg | 0 .../public}/_nuxt/img/dragonfly.8b17b72.svg | 0 .../_nuxt/img/ethereumFoundation.3044b41.svg | 0 .../_nuxt/img/fa-brands-400.f74b845.svg | 0 .../_nuxt/img/fa-duotone-900.a1636de.svg | 0 .../_nuxt/img/fa-light-300.8ca3751.svg | 0 .../_nuxt/img/fa-regular-400.d74dfd8.svg | 0 .../_nuxt/img/fa-solid-900.5eef26d.svg | 0 .../public}/_nuxt/img/flexa.ad8ad45.svg | 0 .../public}/_nuxt/img/gitcoin.a05c82f.svg | 0 .../public}/_nuxt/img/golem.249273f.svg | 0 .../public}/_nuxt/img/hashed.622900d.svg | 0 .../public}/_nuxt/img/huobi.97958f4.svg | 0 .../public}/_nuxt/img/imtoken.57e65c3.svg | 0 .../public}/_nuxt/img/itamar.0c23bcf.jpeg | Bin .../public}/_nuxt/img/logo.615763d.svg | 0 .../public}/_nuxt/img/loopring.720730b.svg | 0 .../public}/_nuxt/img/moonpay.cb7356b.svg | 0 .../public}/_nuxt/img/mykey.2f3fe7e.svg | 0 .../public}/_nuxt/img/numio.b38ff89.png | Bin .../public}/_nuxt/img/paraswap.f619f45.svg | 0 .../public}/_nuxt/img/placeholder.abb9008.svg | 0 .../public}/_nuxt/img/ripio.aad2767.svg | 0 .../public}/_nuxt/img/shield.32ec66c.svg | 0 .../public}/_nuxt/img/stablepay.3d324d8.svg | 0 .../public}/_nuxt/img/storj.f6625c3.svg | 0 .../public}/_nuxt/img/synthetix.4137a24.svg | 0 .../public}/_nuxt/img/usv.87e252f.svg | 0 .../public}/_nuxt/img/weights.93f4097.svg | 0 .../public}/_nuxt/img/zkv.3fec993.svg | 0 .../public}/_nuxt/manifest.9b892c1d.json | 0 docs/.vuepress/public/bounty-table.png | Bin 33779 -> 0 bytes docs/.vuepress/public/chart.png | Bin 540332 -> 0 bytes docs/.vuepress/public/chart2.png | Bin 451073 -> 0 bytes docs/.vuepress/public/chart3.png | Bin 451517 -> 0 bytes docs/.vuepress/public/chart4.png | Bin 295692 -> 0 bytes docs/.vuepress/public/connect-1.png | Bin 12002 -> 0 bytes docs/.vuepress/public/deposit-1.png | Bin 60365 -> 0 bytes docs/.vuepress/public/f1.svg | 14 - docs/.vuepress/public/f2.svg | 13 - docs/.vuepress/public/f3.svg | 5 - docs/.vuepress/public/favicon.ico | Bin 1709 -> 6011 bytes docs/.vuepress/public/images/code-dark.png | Bin 0 -> 56556 bytes docs/.vuepress/public/images/code-light.png | Bin 0 -> 58198 bytes docs/.vuepress/public/logo.svg | 12 + {public => docs/.vuepress/public}/social.jpg | Bin docs/.vuepress/public/start-1.png | Bin 57437 -> 0 bytes docs/.vuepress/public/start-2.png | Bin 78799 -> 0 bytes docs/.vuepress/public/start-3.png | Bin 161992 -> 0 bytes docs/.vuepress/public/start-4.png | Bin 78557 -> 0 bytes docs/.vuepress/public/start-5.png | Bin 70990 -> 0 bytes {public => docs/.vuepress/public}/sw.js | 0 docs/.vuepress/public/transfer-1.png | Bin 64201 -> 0 bytes docs/.vuepress/public/withdraw-1.png | Bin 61010 -> 0 bytes docs/.vuepress/public/zk-sync-era-dark.svg | 12 + docs/.vuepress/public/zk-sync-era-light.svg | 12 + .../public/zk-sync-era-line-dark.svg | 35 + .../public/zk-sync-era-line-light.svg | 39 + docs/.vuepress/public/zksync-1.0-audit.pdf | Bin 43825 -> 0 bytes docs/.vuepress/redirects.js | 27 - docs/.vuepress/sidebar/en.ts | 166 + docs/.vuepress/sidebar/index.ts | 1 + docs/.vuepress/styles/index.scss | 399 + docs/.vuepress/styles/index.styl | 158 - docs/.vuepress/styles/palette.scss | 2 + docs/.vuepress/styles/palette.styl | 12 - docs/.vuepress/theme.ts | 63 + docs/.vuepress/theme/components/Home.vue | 394 - docs/.vuepress/theme/index.js | 3 - docs/.vuepress/theme/layouts/404.vue | 17 - docs/README.md | 95 +- docs/api/README.md | 3 - docs/api/api.md | 11 +- docs/api/go/README.md | 2 +- docs/api/go/getting-started.md | 9 +- docs/api/hardhat/README.md | 11 +- docs/api/hardhat/compiling-libraries.md | 2 - docs/api/hardhat/getting-started.md | 18 +- .../hardhat/hardhat-zksync-chai-matchers.md | 5 +- docs/api/hardhat/hardhat-zksync-deploy.md | 5 +- docs/api/hardhat/hardhat-zksync-solc.md | 5 +- docs/api/hardhat/hardhat-zksync-verify.md | 8 +- docs/api/hardhat/hardhat-zksync-vyper.md | 6 +- docs/api/hardhat/migrating-to-zksync.md | 4 +- docs/api/hardhat/plugins.md | 5 +- docs/api/hardhat/testing.md | 7 +- docs/api/java/README.md | 2 +- docs/api/java/getting-started.md | 6 +- docs/api/js/README.md | 4 +- docs/api/js/accounts-l1-l2.md | 4 +- docs/api/js/accounts.md | 3 - docs/api/js/features.md | 6 +- docs/api/js/front-end.md | 4 +- docs/api/js/getting-started.md | 7 +- docs/api/js/providers.md | 3 - docs/api/js/utils.md | 2 - docs/api/python/README.md | 11 +- docs/api/python/accounts-l1-l2.md | 4 +- docs/api/python/accounts.md | 4 +- docs/api/python/contract-interface.md | 9 +- docs/api/python/getting-started.md | 15 +- docs/api/python/providers.md | 6 +- docs/api/python/types.md | 2 +- docs/api/swift/README.md | 2 +- docs/api/swift/getting-started.md | 4 +- docs/api/swift/providers.md | 4 +- docs/api/tools/block-explorer/README.md | 4 +- docs/api/tools/block-explorer/block-view.md | 3 - .../block-explorer/contract-verification.md | 7 +- docs/api/tools/block-explorer/intro.md | 5 +- docs/api/tools/block-explorer/search.md | 3 - docs/api/tools/block-explorer/zkevm.md | 3 - docs/api/tools/zksync-cli/README.md | 9 +- docs/assets/images/code-dark.png | Bin 0 -> 56556 bytes docs/assets/images/code-light.png | Bin 0 -> 58198 bytes docs/assets/images/image1.png | Bin 0 -> 39480 bytes docs/assets/images/image2.png | Bin 0 -> 38914 bytes docs/assets/images/image3.png | Bin 0 -> 154125 bytes docs/assets/images/image4.png | Bin 0 -> 22115 bytes docs/assets/images/image5.png | Bin 0 -> 81326 bytes docs/dev/README.md | 77 +- docs/dev/building-on-zksync/README.md | 13 + .../contracts/contract-deployment.md | 16 +- .../contracts/contract-verification.md | 15 +- .../contracts/contracts.md | 18 +- .../building-on-zksync/events.md | 0 .../fair-onboarding-alpha.md | 6 +- .../hello-world.md | 12 +- docs/dev/building-on-zksync/rpc.md | 5 + docs/dev/developer-guides/README.md | 7 +- docs/dev/developer-guides/aa.md | 26 +- .../bridging/bridging-asset.md | 3 - .../bridging/l1-l2-interop.md | 17 +- docs/dev/developer-guides/bridging/l1-l2.md | 4 +- docs/dev/developer-guides/bridging/l2-l1.md | 12 +- .../building-on-zksync/README.md | 12 - .../building-on-zksync/rpc.md | 5 - docs/dev/developer-guides/security.md | 5 +- .../{contracts => }/system-contracts.md | 6 +- .../developer-guides/transactions/blocks.md | 7 +- .../transactions/fee-model.md | 7 +- .../transactions/transactions.md | 7 +- .../{building-on-zksync => }/videos.md | 6 +- docs/dev/fundamentals/README.md | 7 +- docs/dev/fundamentals/hyperscaling.md | 156 + docs/dev/fundamentals/rollups.md | 3 - docs/dev/fundamentals/testnet.md | 89 +- docs/dev/fundamentals/zkSync.md | 13 +- .../testnet/migration-to-testnet-paymaster.md | 2 +- docs/dev/troubleshooting/README.md | 4 +- docs/dev/troubleshooting/changelog.md | 2 +- .../docs-contribution/community-resources.md | 5 +- .../troubleshooting/docs-contribution/docs.md | 5 +- .../{fundamentals => troubleshooting}/faq.md | 59 +- docs/dev/troubleshooting/important-links.md | 7 +- docs/dev/troubleshooting/known-issues.md | 8 +- docs/dev/troubleshooting/status.md | 4 +- docs/dev/tutorials/README.md | 10 +- docs/dev/tutorials/aa-daily-spend-limit.md | 28 +- docs/dev/tutorials/cross-chain-tutorial.md | 8 +- docs/dev/tutorials/custom-aa-tutorial.md | 18 +- .../tutorials/custom-paymaster-tutorial.md | 18 +- firebase.json | 118 +- husky.config.js | 14 +- package.json | 53 +- public/.nojekyll | 0 public/404.html | 9 - public/favicon.png | Bin 4745 -> 0 bytes public/icon.png | Bin 4745 -> 0 bytes public/index.html | 9 - replacer.js | 2 +- yarn-error.log | 4959 +++++ yarn.lock | 17583 ++++++---------- 355 files changed, 13422 insertions(+), 16961 deletions(-) delete mode 100644 .nuxt/App.js delete mode 100644 .nuxt/client.js delete mode 100644 .nuxt/components/index.js delete mode 100644 .nuxt/components/nuxt-build-indicator.vue delete mode 100644 .nuxt/components/nuxt-child.js delete mode 100644 .nuxt/components/nuxt-error.vue delete mode 100644 .nuxt/components/nuxt-link.client.js delete mode 100644 .nuxt/components/nuxt-link.server.js delete mode 100644 .nuxt/components/nuxt-loading.vue delete mode 100644 .nuxt/components/nuxt.js delete mode 100644 .nuxt/components/plugin.js delete mode 100644 .nuxt/components/readme.md delete mode 100644 .nuxt/components/utils.js delete mode 100644 .nuxt/empty.js delete mode 100644 .nuxt/google-gtag.js delete mode 100644 .nuxt/index.js delete mode 100644 .nuxt/inkline.js delete mode 100644 .nuxt/jsonp.js delete mode 100644 .nuxt/loading.html delete mode 100644 .nuxt/middleware.js delete mode 100644 .nuxt/mixins/fetch.client.js delete mode 100644 .nuxt/mixins/fetch.server.js delete mode 100644 .nuxt/pwa/icon.plugin.js delete mode 100644 .nuxt/pwa/meta.json delete mode 100644 .nuxt/pwa/meta.plugin.js delete mode 100644 .nuxt/pwa/meta.utils.js delete mode 100644 .nuxt/router.js delete mode 100644 .nuxt/router.scrollBehavior.js delete mode 100644 .nuxt/routes.json delete mode 100644 .nuxt/sentry.client.js delete mode 100644 .nuxt/sentry.server.config.js delete mode 100644 .nuxt/sentry.server.js delete mode 100644 .nuxt/server.js delete mode 100644 .nuxt/store.js delete mode 100644 .nuxt/utils.js delete mode 100644 .nuxt/vetur/tags.json delete mode 100644 .nuxt/views/app.template.html delete mode 100644 .nuxt/views/error.html delete mode 100644 .nuxt/vue-scrollto.js delete mode 100644 .nuxt/workbox.js mode change 100755 => 100644 .yarn/releases/yarn-3.1.1.cjs mode change 100755 => 100644 cli-dev.sh delete mode 100644 docs/.vuepress/components/TocHeader.vue delete mode 100644 docs/.vuepress/config.js create mode 100644 docs/.vuepress/config.ts delete mode 100644 docs/.vuepress/enhanceApp.js create mode 100644 docs/.vuepress/navbar/en.ts create mode 100644 docs/.vuepress/navbar/index.ts delete mode 100755 docs/.vuepress/public/LogoHero.svg delete mode 100755 docs/.vuepress/public/LogotypeLight.svg rename {public => docs/.vuepress/public}/README.md (100%) rename {public => docs/.vuepress/public}/_nuxt/022f994.js (100%) rename {public => docs/.vuepress/public}/_nuxt/05cc566.js (100%) rename {public => docs/.vuepress/public}/_nuxt/07204ed.js (100%) rename {public => docs/.vuepress/public}/_nuxt/08fc647.js (100%) rename {public => docs/.vuepress/public}/_nuxt/3acf056.js (100%) rename {public => docs/.vuepress/public}/_nuxt/3cf3a88.js (100%) rename {public => docs/.vuepress/public}/_nuxt/429ab63.js (100%) rename {public => docs/.vuepress/public}/_nuxt/4c8cf8f.js (100%) rename {public => docs/.vuepress/public}/_nuxt/5e3d62e.js (100%) rename {public => docs/.vuepress/public}/_nuxt/5f041a3.js (100%) rename {public => docs/.vuepress/public}/_nuxt/6a8659b.js (100%) rename {public => docs/.vuepress/public}/_nuxt/6a9a12e.js (100%) rename {public => docs/.vuepress/public}/_nuxt/6c0fadd.js (100%) rename {public => docs/.vuepress/public}/_nuxt/6e15fd2.js (100%) rename {public => docs/.vuepress/public}/_nuxt/9dbf9b7.js (100%) rename {public => docs/.vuepress/public}/_nuxt/LICENSES (100%) rename {public => docs/.vuepress/public}/_nuxt/a39479c.js (100%) rename {public => docs/.vuepress/public}/_nuxt/aba3055.js (100%) rename {public => docs/.vuepress/public}/_nuxt/ad023a1.js (100%) rename {public => docs/.vuepress/public}/_nuxt/b1a63d4.js (100%) rename {public => docs/.vuepress/public}/_nuxt/b2aeb6d.js (100%) rename {public => docs/.vuepress/public}/_nuxt/c1bfe53.js (100%) rename {public => docs/.vuepress/public}/_nuxt/c940709.js (100%) rename {public => docs/.vuepress/public}/_nuxt/css/012c286.css (100%) rename {public => docs/.vuepress/public}/_nuxt/css/0f2b4d8.css (100%) rename {public => docs/.vuepress/public}/_nuxt/css/14f47b8.css (100%) rename {public => docs/.vuepress/public}/_nuxt/css/2221154.css (100%) rename {public => docs/.vuepress/public}/_nuxt/css/2cbc39d.css (100%) rename {public => docs/.vuepress/public}/_nuxt/css/2f663d3.css (100%) rename {public => docs/.vuepress/public}/_nuxt/css/63402a9.css (100%) rename {public => docs/.vuepress/public}/_nuxt/css/795b28e.css (100%) rename {public => docs/.vuepress/public}/_nuxt/css/a037713.css (100%) rename {public => docs/.vuepress/public}/_nuxt/css/e74ffff.css (100%) rename {public => docs/.vuepress/public}/_nuxt/css/f9190e9.css (100%) rename {public => docs/.vuepress/public}/_nuxt/d0f35b7.js (100%) rename {public => docs/.vuepress/public}/_nuxt/e0b9647.js (100%) rename {public => docs/.vuepress/public}/_nuxt/eb26aff.js (100%) rename {public => docs/.vuepress/public}/_nuxt/f861278.js (100%) rename {public => docs/.vuepress/public}/_nuxt/fe88811.js (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/FKGrotesk-Bold.2bbd645.woff (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/FKGrotesk-Bold.40893cb.ttf (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/FKGrotesk-Bold.ac0bda8.woff2 (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/FKGrotesk-Bold.faa9400.eot (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/FKGrotesk-Regular.032f14c.eot (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/FKGrotesk-Regular.1f8acbb.woff (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/FKGrotesk-Regular.2309d02.ttf (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/FKGrotesk-Regular.f377e04.woff2 (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-brands-400.1059147.woff2 (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-brands-400.34804e7.woff (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-brands-400.3848279.ttf (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-brands-400.6c1d3d5.eot (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-duotone-900.63fd19c.woff (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-duotone-900.7749cf4.ttf (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-duotone-900.a69d114.woff2 (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-duotone-900.fbe8fb8.eot (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-light-300.8389ada.eot (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-light-300.9ccb657.woff2 (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-light-300.d58496a.ttf (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-light-300.d8f8190.woff (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-regular-400.126e350.woff2 (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-regular-400.6d74740.ttf (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-regular-400.71f36b6.eot (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-regular-400.7b842c9.woff (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-solid-900.228fa19.eot (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-solid-900.ba0b120.ttf (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-solid-900.dbe8505.woff2 (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/fa-solid-900.e4506c4.woff (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/inkline.20a42ef.woff (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/inkline.ebe25a0.ttf (100%) rename {public => docs/.vuepress/public}/_nuxt/fonts/inkline.ff99d3f.eot (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/icon_120x120.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/icon_144x144.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/icon_152x152.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/icon_192x192.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/icon_384x384.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/icon_512x512.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/icon_64x64.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/splash_ipad_1536x2048.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/splash_ipadpro10_1668x2224.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/splash_ipadpro12_2048x2732.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/splash_ipadpro9_1536x2048.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/splash_iphone6_50x1334.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/splash_iphoneplus_1080x1920.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/splash_iphonese_640x1136.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/splash_iphonex_1125x2436.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/splash_iphonexr_828x1792.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/icons/splash_iphonexsmax_1242x2688.3825bf.png (100%) rename {public => docs/.vuepress/public}/_nuxt/img/1inch.e5d5248.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/1kx.321ed64.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/FKGrotesk-Bold.02eb70b.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/FKGrotesk-Regular.caa5ecc.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/Frame 4062.07fb5e9.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/Group 4051.6aed06b.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/Group-1.8f5ff1b.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/aave.9ccb985.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/argent.8428545.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/balancer.1d6aa53.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/balancer.e73252d.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/binance.df6389e.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/buter.08a65ae.png (100%) rename {public => docs/.vuepress/public}/_nuxt/img/clock.68ee0ee.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/code.c8b172f.jpg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/coinbase-ventures.d71f86b.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/coinbase.e837c84.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/coingecko-ventures 1.07dc31d.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/coingecko.007631f.png (100%) rename {public => docs/.vuepress/public}/_nuxt/img/coingecko.fef8a26.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/coinify-argent-750x375 1.1a31d9c.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/curve.af02ac5.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/curve.c84c372.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/decentralized.a676210.jpg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/dekryptcapital.5fc2fe9.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/dragonfly.8b17b72.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/ethereumFoundation.3044b41.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/fa-brands-400.f74b845.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/fa-duotone-900.a1636de.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/fa-light-300.8ca3751.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/fa-regular-400.d74dfd8.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/fa-solid-900.5eef26d.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/flexa.ad8ad45.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/gitcoin.a05c82f.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/golem.249273f.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/hashed.622900d.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/huobi.97958f4.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/imtoken.57e65c3.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/itamar.0c23bcf.jpeg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/logo.615763d.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/loopring.720730b.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/moonpay.cb7356b.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/mykey.2f3fe7e.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/numio.b38ff89.png (100%) rename {public => docs/.vuepress/public}/_nuxt/img/paraswap.f619f45.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/placeholder.abb9008.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/ripio.aad2767.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/shield.32ec66c.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/stablepay.3d324d8.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/storj.f6625c3.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/synthetix.4137a24.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/usv.87e252f.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/weights.93f4097.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/img/zkv.3fec993.svg (100%) rename {public => docs/.vuepress/public}/_nuxt/manifest.9b892c1d.json (100%) delete mode 100644 docs/.vuepress/public/bounty-table.png delete mode 100644 docs/.vuepress/public/chart.png delete mode 100644 docs/.vuepress/public/chart2.png delete mode 100644 docs/.vuepress/public/chart3.png delete mode 100644 docs/.vuepress/public/chart4.png delete mode 100644 docs/.vuepress/public/connect-1.png delete mode 100644 docs/.vuepress/public/deposit-1.png delete mode 100644 docs/.vuepress/public/f1.svg delete mode 100644 docs/.vuepress/public/f2.svg delete mode 100644 docs/.vuepress/public/f3.svg mode change 100755 => 100644 docs/.vuepress/public/favicon.ico create mode 100644 docs/.vuepress/public/images/code-dark.png create mode 100644 docs/.vuepress/public/images/code-light.png create mode 100644 docs/.vuepress/public/logo.svg rename {public => docs/.vuepress/public}/social.jpg (100%) delete mode 100644 docs/.vuepress/public/start-1.png delete mode 100644 docs/.vuepress/public/start-2.png delete mode 100644 docs/.vuepress/public/start-3.png delete mode 100644 docs/.vuepress/public/start-4.png delete mode 100644 docs/.vuepress/public/start-5.png rename {public => docs/.vuepress/public}/sw.js (100%) delete mode 100644 docs/.vuepress/public/transfer-1.png delete mode 100644 docs/.vuepress/public/withdraw-1.png create mode 100644 docs/.vuepress/public/zk-sync-era-dark.svg create mode 100644 docs/.vuepress/public/zk-sync-era-light.svg create mode 100644 docs/.vuepress/public/zk-sync-era-line-dark.svg create mode 100644 docs/.vuepress/public/zk-sync-era-line-light.svg delete mode 100644 docs/.vuepress/public/zksync-1.0-audit.pdf delete mode 100644 docs/.vuepress/redirects.js create mode 100644 docs/.vuepress/sidebar/en.ts create mode 100644 docs/.vuepress/sidebar/index.ts create mode 100644 docs/.vuepress/styles/index.scss delete mode 100644 docs/.vuepress/styles/index.styl create mode 100644 docs/.vuepress/styles/palette.scss delete mode 100644 docs/.vuepress/styles/palette.styl create mode 100644 docs/.vuepress/theme.ts delete mode 100644 docs/.vuepress/theme/components/Home.vue delete mode 100644 docs/.vuepress/theme/index.js delete mode 100644 docs/.vuepress/theme/layouts/404.vue create mode 100644 docs/assets/images/code-dark.png create mode 100644 docs/assets/images/code-light.png create mode 100644 docs/assets/images/image1.png create mode 100644 docs/assets/images/image2.png create mode 100644 docs/assets/images/image3.png create mode 100644 docs/assets/images/image4.png create mode 100644 docs/assets/images/image5.png create mode 100644 docs/dev/building-on-zksync/README.md rename docs/dev/{developer-guides => building-on-zksync}/contracts/contract-deployment.md (77%) rename docs/dev/{developer-guides => building-on-zksync}/contracts/contract-verification.md (89%) rename docs/dev/{developer-guides => building-on-zksync}/contracts/contracts.md (87%) rename docs/dev/{developer-guides => }/building-on-zksync/events.md (100%) rename docs/dev/{developer-guides => }/building-on-zksync/fair-onboarding-alpha.md (98%) rename docs/dev/{developer-guides => building-on-zksync}/hello-world.md (97%) create mode 100644 docs/dev/building-on-zksync/rpc.md delete mode 100644 docs/dev/developer-guides/building-on-zksync/README.md delete mode 100644 docs/dev/developer-guides/building-on-zksync/rpc.md rename docs/dev/developer-guides/{contracts => }/system-contracts.md (97%) rename docs/dev/developer-guides/{building-on-zksync => }/videos.md (87%) create mode 100644 docs/dev/fundamentals/hyperscaling.md rename docs/dev/{fundamentals => troubleshooting}/faq.md (88%) delete mode 100644 public/.nojekyll delete mode 100644 public/404.html delete mode 100644 public/favicon.png delete mode 100644 public/icon.png delete mode 100644 public/index.html create mode 100644 yarn-error.log diff --git a/.github/.github/ISSUE_TEMPLATE/bug-report.md b/.github/.github/ISSUE_TEMPLATE/bug-report.md index 5a122d9a8c..b0aa896157 100644 --- a/.github/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/.github/ISSUE_TEMPLATE/bug-report.md @@ -47,4 +47,4 @@ Add any other context or screenshots about the feature request here. * Browser Name and version: * Operating System and version (desktop or mobile): -> Link to your issue / project: +> Link to your issue / project: \ No newline at end of file diff --git a/.github/workflows/deploy-preview.yml b/.github/workflows/deploy-preview.yml index cd6ccf6787..d9b175dc45 100644 --- a/.github/workflows/deploy-preview.yml +++ b/.github/workflows/deploy-preview.yml @@ -22,10 +22,13 @@ jobs: run: | yarn set version 3.1.1 yarn install - - name: "Generate rinkeby dist" run: yarn run docs:build + - name: "Copy 404" + run: | + cp ./dist/docs/404.html ./dist/404.html + - name: "Deploy preview" uses: matter-labs/action-hosting-deploy@main with: diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index ecb923066d..e0c485cff1 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -33,9 +33,13 @@ jobs: run: | yarn set version 3.1.1 yarn install - - name: "Deploy production" run: yarn run docs:build + + - name: "Copy 404" + run: | + cp ./dist/docs/404.html ./dist/404.html + - uses: matter-labs/action-hosting-deploy@main with: repoToken: '${{ secrets.GITHUB_TOKEN }}' diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index 085ba19ec9..226c2c0ccd 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -20,9 +20,13 @@ jobs: run: | yarn set version 3.1.1 yarn install - - name: "Deploy target: rinkeby-staging" run: yarn run docs:build + + - name: "Copy 404" + run: | + cp ./dist/docs/404.html ./dist/404.html + - uses: matter-labs/action-hosting-deploy@main with: repoToken: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 95f5c2012c..6781e38ff8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,6 +1,3 @@ -# This workflow will do a clean installation of node dependencies, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions - name: "CI: releasing version" "on": push: @@ -29,10 +26,9 @@ jobs: run: | yarn set version 3.1.1 yarn install - - name: "Semantic release" run: yarn semantic-release env: HUSKY: 0 CI: true - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5705f9a235..ccac3162ce 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - # dependencies node_modules +dist/ +node_modules/ /.pnp .temp/ .temp @@ -41,6 +41,10 @@ lib /report.txt /tokens.txt -# unignore !.yarn/releases/* !.yarn/plugins/* +.cache/ +.temp/ +.temp + +.DS_Store \ No newline at end of file diff --git a/.husky/.gitignore b/.husky/.gitignore index 31354ec138..c9cdc63b07 100644 --- a/.husky/.gitignore +++ b/.husky/.gitignore @@ -1 +1 @@ -_ +_ \ No newline at end of file diff --git a/.husky/commit-msg b/.husky/commit-msg index e8511eaeaf..314e821479 100644 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -npx --no-install commitlint --edit $1 +npx --no-install commitlint --edit $1 \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit index 2b25d25234..076c0ae61a 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -2,4 +2,4 @@ . "$(dirname "$0")/_/husky.sh" CI="1" -npx lint-staged +npx lint-staged \ No newline at end of file diff --git a/.markdownlint.json b/.markdownlint.json index 65d637010c..b7f95c6f5f 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,40 +1,40 @@ { - "default": true, - "line_length": { - "line_length": 250, - "tables": false, - "code_blocks": false - }, - "fenced-code-language": false, - "no-duplicate-header": false, - "first-header-h1": false, - "first-line-h1": false, - "no-inline-html": false, - "ol-prefix": false, - "MD026": { - "punctuation": ".,;:!。,;:!:" - }, - "MD013": { - "indent": 2, - "headings": false, - "line_length": 250, - "tables": false, - "code_blocks": false - }, - "MD003": { - "indent": 2, - "code_blocks": false, - "headings": false, - "line_length": 250, - "tables": false - }, - "MD007": { - "indent": 2, - "code_blocks": false, - "headings": false, - "line_length": 250, - "tables": false - }, - "no-hard-tabs": false, - "whitespace": false + "default": true, + "line_length": { + "line_length": 250, + "tables": false, + "code_blocks": false + }, + "fenced-code-language": false, + "no-duplicate-header": false, + "first-header-h1": false, + "first-line-h1": false, + "no-inline-html": false, + "ol-prefix": false, + "MD026": { + "punctuation": ".,;:!。,;:!:" + }, + "MD013": { + "indent": 2, + "headings": false, + "line_length": 250, + "tables": false, + "code_blocks": false + }, + "MD003": { + "indent": 2, + "code_blocks": false, + "headings": false, + "line_length": 250, + "tables": false + }, + "MD007": { + "indent": 2, + "code_blocks": false, + "headings": false, + "line_length": 250, + "tables": false + }, + "no-hard-tabs": false, + "whitespace": false } diff --git a/.nuxt/App.js b/.nuxt/App.js deleted file mode 100644 index deefeacbbc..0000000000 --- a/.nuxt/App.js +++ /dev/null @@ -1,212 +0,0 @@ -import Vue from 'vue' -import { decode, parsePath, withoutBase, withoutTrailingSlash, normalizeURL } from 'ufo' - -import { getMatchedComponentsInstances, getChildrenComponentInstancesUsingFetch, promisify, globalHandleError, urlJoin, sanitizeComponent } from './utils' -import NuxtError from '../src/layouts/error.vue' -import NuxtLoading from './components/nuxt-loading.vue' -import NuxtBuildIndicator from './components/nuxt-build-indicator' - -import '../node_modules/@inkline/inkline/src/inkline.scss' - -import '../src/assets/style/main.scss' - -import _6f6c098b from '../src/layouts/default.vue' - -const layouts = { "_default": sanitizeComponent(_6f6c098b) } - -export default { - render (h, props) { - const loadingEl = h('NuxtLoading', { ref: 'loading' }) - - const layoutEl = h(this.layout || 'nuxt') - const templateEl = h('div', { - domProps: { - id: '__layout' - }, - key: this.layoutName - }, [layoutEl]) - - const transitionEl = h('transition', { - props: { - name: 'layout', - mode: 'out-in' - }, - on: { - beforeEnter (el) { - // Ensure to trigger scroll event after calling scrollBehavior - window.$nuxt.$nextTick(() => { - window.$nuxt.$emit('triggerScroll') - }) - } - } - }, [templateEl]) - - return h('div', { - domProps: { - id: '__nuxt' - } - }, [ - loadingEl, - h(NuxtBuildIndicator), - transitionEl - ]) - }, - - data: () => ({ - isOnline: true, - - layout: null, - layoutName: '', - - nbFetching: 0 - }), - - beforeCreate () { - Vue.util.defineReactive(this, 'nuxt', this.$options.nuxt) - }, - created () { - // Add this.$nuxt in child instances - this.$root.$options.$nuxt = this - - if (process.client) { - // add to window so we can listen when ready - window.$nuxt = this - - this.refreshOnlineStatus() - // Setup the listeners - window.addEventListener('online', this.refreshOnlineStatus) - window.addEventListener('offline', this.refreshOnlineStatus) - } - // Add $nuxt.error() - this.error = this.nuxt.error - // Add $nuxt.context - this.context = this.$options.context - }, - - async mounted () { - this.$loading = this.$refs.loading - }, - - watch: { - 'nuxt.err': 'errorChanged' - }, - - computed: { - isOffline () { - return !this.isOnline - }, - - isFetching () { - return this.nbFetching > 0 - }, - - isPreview () { - return Boolean(this.$options.previewData) - }, - }, - - methods: { - refreshOnlineStatus () { - if (process.client) { - if (typeof window.navigator.onLine === 'undefined') { - // If the browser doesn't support connection status reports - // assume that we are online because most apps' only react - // when they now that the connection has been interrupted - this.isOnline = true - } else { - this.isOnline = window.navigator.onLine - } - } - }, - - async refresh () { - const pages = getMatchedComponentsInstances(this.$route) - - if (!pages.length) { - return - } - this.$loading.start() - - const promises = pages.map((page) => { - const p = [] - - // Old fetch - if (page.$options.fetch && page.$options.fetch.length) { - p.push(promisify(page.$options.fetch, this.context)) - } - if (page.$fetch) { - p.push(page.$fetch()) - } else { - // Get all component instance to call $fetch - for (const component of getChildrenComponentInstancesUsingFetch(page.$vnode.componentInstance)) { - p.push(component.$fetch()) - } - } - - if (page.$options.asyncData) { - p.push( - promisify(page.$options.asyncData, this.context) - .then((newData) => { - for (const key in newData) { - Vue.set(page.$data, key, newData[key]) - } - }) - ) - } - - return Promise.all(p) - }) - try { - await Promise.all(promises) - } catch (error) { - this.$loading.fail(error) - globalHandleError(error) - this.error(error) - } - this.$loading.finish() - }, - errorChanged () { - if (this.nuxt.err) { - if (this.$loading) { - if (this.$loading.fail) { - this.$loading.fail(this.nuxt.err) - } - if (this.$loading.finish) { - this.$loading.finish() - } - } - - let errorLayout = (NuxtError.options || NuxtError).layout; - - if (typeof errorLayout === 'function') { - errorLayout = errorLayout(this.context) - } - - this.setLayout(errorLayout) - } - }, - - setLayout (layout) { - if(layout && typeof layout !== 'string') { - throw new Error('[nuxt] Avoid using non-string value as layout property.') - } - - if (!layout || !layouts['_' + layout]) { - layout = 'default' - } - this.layoutName = layout - this.layout = layouts['_' + layout] - return this.layout - }, - loadLayout (layout) { - if (!layout || !layouts['_' + layout]) { - layout = 'default' - } - return Promise.resolve(layouts['_' + layout]) - }, - }, - - components: { - NuxtLoading - } -} diff --git a/.nuxt/client.js b/.nuxt/client.js deleted file mode 100644 index 7b5440c1a4..0000000000 --- a/.nuxt/client.js +++ /dev/null @@ -1,817 +0,0 @@ -import Vue from 'vue' -import fetch from 'unfetch' -import middleware from './middleware.js' -import { - applyAsyncData, - promisify, - middlewareSeries, - sanitizeComponent, - resolveRouteComponents, - getMatchedComponents, - getMatchedComponentsInstances, - flatMapComponents, - setContext, - getLocation, - compile, - getQueryDiff, - globalHandleError, - isSamePath, - urlJoin -} from './utils.js' -import { createApp, NuxtError } from './index.js' -import fetchMixin from './mixins/fetch.client' -import NuxtLink from './components/nuxt-link.client.js' // should be included after ./index.js - -// Fetch mixin -if (!Vue.__nuxt__fetch__mixin__) { - Vue.mixin(fetchMixin) - Vue.__nuxt__fetch__mixin__ = true -} - -// Component: -Vue.component(NuxtLink.name, NuxtLink) -Vue.component('NLink', NuxtLink) - -if (!global.fetch) { global.fetch = fetch } - -// Global shared references -let _lastPaths = [] -let app -let router -let store - -// Try to rehydrate SSR data from window -const NUXT = window.__NUXT__ || {} - -const $config = NUXT.config || {} -if ($config._app) { - __webpack_public_path__ = urlJoin($config._app.cdnURL, $config._app.assetsPath) -} - -Object.assign(Vue.config, {"silent":false,"performance":true}) - -const logs = NUXT.logs || [] - if (logs.length > 0) { - const ssrLogStyle = 'background: #2E495E;border-radius: 0.5em;color: white;font-weight: bold;padding: 2px 0.5em;' - console.group && console.group ('%cNuxt SSR', ssrLogStyle) - logs.forEach(logObj => (console[logObj.type] || console.log)(...logObj.args)) - delete NUXT.logs - console.groupEnd && console.groupEnd() -} - -// Setup global Vue error handler -if (!Vue.config.$nuxt) { - const defaultErrorHandler = Vue.config.errorHandler - Vue.config.errorHandler = async (err, vm, info, ...rest) => { - // Call other handler if exist - let handled = null - if (typeof defaultErrorHandler === 'function') { - handled = defaultErrorHandler(err, vm, info, ...rest) - } - if (handled === true) { - return handled - } - - if (vm && vm.$root) { - const nuxtApp = Object.keys(Vue.config.$nuxt) - .find(nuxtInstance => vm.$root[nuxtInstance]) - - // Show Nuxt Error Page - if (nuxtApp && vm.$root[nuxtApp].error && info !== 'render function') { - const currentApp = vm.$root[nuxtApp] - - // Load error layout - let layout = (NuxtError.options || NuxtError).layout - if (typeof layout === 'function') { - layout = layout(currentApp.context) - } - if (layout) { - await currentApp.loadLayout(layout).catch(() => {}) - } - currentApp.setLayout(layout) - - currentApp.error(err) - } - } - - if (typeof defaultErrorHandler === 'function') { - return handled - } - - // Log to console - if (process.env.NODE_ENV !== 'production') { - console.error(err) - } else { - console.error(err.message || err) - } - } - Vue.config.$nuxt = {} -} -Vue.config.$nuxt.$nuxt = true - -const errorHandler = Vue.config.errorHandler || console.error - -// Create and mount App -createApp(null, NUXT.config).then(mountApp).catch(errorHandler) - -function componentOption (component, key, ...args) { - if (!component || !component.options || !component.options[key]) { - return {} - } - const option = component.options[key] - if (typeof option === 'function') { - return option(...args) - } - return option -} - -function mapTransitions (toComponents, to, from) { - const componentTransitions = (component) => { - const transition = componentOption(component, 'transition', to, from) || {} - return (typeof transition === 'string' ? { name: transition } : transition) - } - - const fromComponents = from ? getMatchedComponents(from) : [] - const maxDepth = Math.max(toComponents.length, fromComponents.length) - - const mergedTransitions = [] - for (let i=0; i typeof toTransitions[key] !== 'undefined' && !key.toLowerCase().includes('leave')) - .forEach((key) => { transitions[key] = toTransitions[key] }) - - mergedTransitions.push(transitions) - } - return mergedTransitions -} - -async function loadAsyncComponents (to, from, next) { - // Check if route changed (this._routeChanged), only if the page is not an error (for validate()) - this._routeChanged = Boolean(app.nuxt.err) || from.name !== to.name - this._paramChanged = !this._routeChanged && from.path !== to.path - this._queryChanged = !this._paramChanged && from.fullPath !== to.fullPath - this._diffQuery = (this._queryChanged ? getQueryDiff(to.query, from.query) : []) - - if ((this._routeChanged || this._paramChanged) && this.$loading.start && !this.$loading.manual) { - this.$loading.start() - } - - try { - if (this._queryChanged) { - const Components = await resolveRouteComponents( - to, - (Component, instance) => ({ Component, instance }) - ) - // Add a marker on each component that it needs to refresh or not - const startLoader = Components.some(({ Component, instance }) => { - const watchQuery = Component.options.watchQuery - if (watchQuery === true) { - return true - } - if (Array.isArray(watchQuery)) { - return watchQuery.some(key => this._diffQuery[key]) - } - if (typeof watchQuery === 'function') { - return watchQuery.apply(instance, [to.query, from.query]) - } - return false - }) - - if (startLoader && this.$loading.start && !this.$loading.manual) { - this.$loading.start() - } - } - // Call next() - next() - } catch (error) { - const err = error || {} - const statusCode = err.statusCode || err.status || (err.response && err.response.status) || 500 - const message = err.message || '' - - // Handle chunk loading errors - // This may be due to a new deployment or a network problem - if (/^Loading( CSS)? chunk (\d)+ failed\./.test(message)) { - window.location.reload(true /* skip cache */) - return // prevent error page blinking for user - } - - this.error({ statusCode, message }) - this.$nuxt.$emit('routeChanged', to, from, err) - next() - } -} - -function applySSRData (Component, ssrData) { - if (NUXT.serverRendered && ssrData) { - applyAsyncData(Component, ssrData) - } - - Component._Ctor = Component - return Component -} - -// Get matched components -function resolveComponents (route) { - return flatMapComponents(route, async (Component, _, match, key, index) => { - // If component is not resolved yet, resolve it - if (typeof Component === 'function' && !Component.options) { - Component = await Component() - } - // Sanitize it and save it - const _Component = applySSRData(sanitizeComponent(Component), NUXT.data ? NUXT.data[index] : null) - match.components[key] = _Component - return _Component - }) -} - -function callMiddleware (Components, context, layout) { - let midd = [] - let unknownMiddleware = false - - // If layout is undefined, only call global middleware - if (typeof layout !== 'undefined') { - midd = [] // Exclude global middleware if layout defined (already called before) - layout = sanitizeComponent(layout) - if (layout.options.middleware) { - midd = midd.concat(layout.options.middleware) - } - Components.forEach((Component) => { - if (Component.options.middleware) { - midd = midd.concat(Component.options.middleware) - } - }) - } - - midd = midd.map((name) => { - if (typeof name === 'function') { - return name - } - if (typeof middleware[name] !== 'function') { - unknownMiddleware = true - this.error({ statusCode: 500, message: 'Unknown middleware ' + name }) - } - return middleware[name] - }) - - if (unknownMiddleware) { - return - } - return middlewareSeries(midd, context) -} - -async function render (to, from, next) { - if (this._routeChanged === false && this._paramChanged === false && this._queryChanged === false) { - return next() - } - // Handle first render on SPA mode - let spaFallback = false - if (to === from) { - _lastPaths = [] - spaFallback = true - } else { - const fromMatches = [] - _lastPaths = getMatchedComponents(from, fromMatches).map((Component, i) => { - return compile(from.matched[fromMatches[i]].path)(from.params) - }) - } - - // nextCalled is true when redirected - let nextCalled = false - const _next = (path) => { - if (from.path === path.path && this.$loading.finish) { - this.$loading.finish() - } - - if (from.path !== path.path && this.$loading.pause) { - this.$loading.pause() - } - - if (nextCalled) { - return - } - - nextCalled = true - next(path) - } - - // Update context - await setContext(app, { - route: to, - from, - next: _next.bind(this) - }) - this._dateLastError = app.nuxt.dateErr - this._hadError = Boolean(app.nuxt.err) - - // Get route's matched components - const matches = [] - const Components = getMatchedComponents(to, matches) - - // If no Components matched, generate 404 - if (!Components.length) { - // Default layout - await callMiddleware.call(this, Components, app.context) - if (nextCalled) { - return - } - - // Load layout for error page - const errorLayout = (NuxtError.options || NuxtError).layout - const layout = await this.loadLayout( - typeof errorLayout === 'function' - ? errorLayout.call(NuxtError, app.context) - : errorLayout - ) - - await callMiddleware.call(this, Components, app.context, layout) - if (nextCalled) { - return - } - - // Show error page - app.context.error({ statusCode: 404, message: 'This page could not be found' }) - return next() - } - - // Update ._data and other properties if hot reloaded - Components.forEach((Component) => { - if (Component._Ctor && Component._Ctor.options) { - Component.options.asyncData = Component._Ctor.options.asyncData - Component.options.fetch = Component._Ctor.options.fetch - } - }) - - // Apply transitions - this.setTransitions(mapTransitions(Components, to, from)) - - try { - // Call middleware - await callMiddleware.call(this, Components, app.context) - if (nextCalled) { - return - } - if (app.context._errored) { - return next() - } - - // Set layout - let layout = Components[0].options.layout - if (typeof layout === 'function') { - layout = layout(app.context) - } - layout = await this.loadLayout(layout) - - // Call middleware for layout - await callMiddleware.call(this, Components, app.context, layout) - if (nextCalled) { - return - } - if (app.context._errored) { - return next() - } - - // Call .validate() - let isValid = true - try { - for (const Component of Components) { - if (typeof Component.options.validate !== 'function') { - continue - } - - isValid = await Component.options.validate(app.context) - - if (!isValid) { - break - } - } - } catch (validationError) { - // ...If .validate() threw an error - this.error({ - statusCode: validationError.statusCode || '500', - message: validationError.message - }) - return next() - } - - // ...If .validate() returned false - if (!isValid) { - this.error({ statusCode: 404, message: 'This page could not be found' }) - return next() - } - - let instances - // Call asyncData & fetch hooks on components matched by the route. - await Promise.all(Components.map(async (Component, i) => { - // Check if only children route changed - Component._path = compile(to.matched[matches[i]].path)(to.params) - Component._dataRefresh = false - const childPathChanged = Component._path !== _lastPaths[i] - // Refresh component (call asyncData & fetch) when: - // Route path changed part includes current component - // Or route param changed part includes current component and watchParam is not `false` - // Or route query is changed and watchQuery returns `true` - if (this._routeChanged && childPathChanged) { - Component._dataRefresh = true - } else if (this._paramChanged && childPathChanged) { - const watchParam = Component.options.watchParam - Component._dataRefresh = watchParam !== false - } else if (this._queryChanged) { - const watchQuery = Component.options.watchQuery - if (watchQuery === true) { - Component._dataRefresh = true - } else if (Array.isArray(watchQuery)) { - Component._dataRefresh = watchQuery.some(key => this._diffQuery[key]) - } else if (typeof watchQuery === 'function') { - if (!instances) { - instances = getMatchedComponentsInstances(to) - } - Component._dataRefresh = watchQuery.apply(instances[i], [to.query, from.query]) - } - } - if (!this._hadError && this._isMounted && !Component._dataRefresh) { - return - } - - const promises = [] - - const hasAsyncData = ( - Component.options.asyncData && - typeof Component.options.asyncData === 'function' - ) - - const hasFetch = Boolean(Component.options.fetch) && Component.options.fetch.length - - const loadingIncrease = (hasAsyncData && hasFetch) ? 30 : 45 - - // Call asyncData(context) - if (hasAsyncData) { - const promise = promisify(Component.options.asyncData, app.context) - - promise.then((asyncDataResult) => { - applyAsyncData(Component, asyncDataResult) - - if (this.$loading.increase) { - this.$loading.increase(loadingIncrease) - } - }) - promises.push(promise) - } - - // Check disabled page loading - this.$loading.manual = Component.options.loading === false - - // Call fetch(context) - if (hasFetch) { - let p = Component.options.fetch(app.context) - if (!p || (!(p instanceof Promise) && (typeof p.then !== 'function'))) { - p = Promise.resolve(p) - } - p.then((fetchResult) => { - if (this.$loading.increase) { - this.$loading.increase(loadingIncrease) - } - }) - promises.push(p) - } - - return Promise.all(promises) - })) - - // If not redirected - if (!nextCalled) { - if (this.$loading.finish && !this.$loading.manual) { - this.$loading.finish() - } - - next() - } - } catch (err) { - const error = err || {} - if (error.message === 'ERR_REDIRECT') { - return this.$nuxt.$emit('routeChanged', to, from, error) - } - _lastPaths = [] - - globalHandleError(error) - - // Load error layout - let layout = (NuxtError.options || NuxtError).layout - if (typeof layout === 'function') { - layout = layout(app.context) - } - await this.loadLayout(layout) - - this.error(error) - this.$nuxt.$emit('routeChanged', to, from, error) - next() - } -} - -// Fix components format in matched, it's due to code-splitting of vue-router -function normalizeComponents (to, ___) { - flatMapComponents(to, (Component, _, match, key) => { - if (typeof Component === 'object' && !Component.options) { - // Updated via vue-router resolveAsyncComponents() - Component = Vue.extend(Component) - Component._Ctor = Component - match.components[key] = Component - } - return Component - }) -} - -function setLayoutForNextPage (to) { - // Set layout - let hasError = Boolean(this.$options.nuxt.err) - if (this._hadError && this._dateLastError === this.$options.nuxt.dateErr) { - hasError = false - } - let layout = hasError - ? (NuxtError.options || NuxtError).layout - : to.matched[0].components.default.options.layout - - if (typeof layout === 'function') { - layout = layout(app.context) - } - - this.setLayout(layout) -} - -function checkForErrors (app) { - // Hide error component if no error - if (app._hadError && app._dateLastError === app.$options.nuxt.dateErr) { - app.error() - } -} - -// When navigating on a different route but the same component is used, Vue.js -// Will not update the instance data, so we have to update $data ourselves -function fixPrepatch (to, ___) { - if (this._routeChanged === false && this._paramChanged === false && this._queryChanged === false) { - return - } - - const instances = getMatchedComponentsInstances(to) - const Components = getMatchedComponents(to) - - let triggerScroll = false - - Vue.nextTick(() => { - instances.forEach((instance, i) => { - if (!instance || instance._isDestroyed) { - return - } - - if ( - instance.constructor._dataRefresh && - Components[i] === instance.constructor && - instance.$vnode.data.keepAlive !== true && - typeof instance.constructor.options.data === 'function' - ) { - const newData = instance.constructor.options.data.call(instance) - for (const key in newData) { - Vue.set(instance.$data, key, newData[key]) - } - - triggerScroll = true - } - }) - - if (triggerScroll) { - // Ensure to trigger scroll event after calling scrollBehavior - window.$nuxt.$nextTick(() => { - window.$nuxt.$emit('triggerScroll') - }) - } - - checkForErrors(this) - - // Hot reloading - setTimeout(() => hotReloadAPI(this), 100) - }) -} - -function nuxtReady (_app) { - window.onNuxtReadyCbs.forEach((cb) => { - if (typeof cb === 'function') { - cb(_app) - } - }) - // Special JSDOM - if (typeof window._onNuxtLoaded === 'function') { - window._onNuxtLoaded(_app) - } - // Add router hooks - router.afterEach((to, from) => { - // Wait for fixPrepatch + $data updates - Vue.nextTick(() => _app.$nuxt.$emit('routeChanged', to, from)) - }) -} - -const noopData = () => { return {} } -const noopFetch = () => {} - -// Special hot reload with asyncData(context) -function getNuxtChildComponents ($parent, $components = []) { - $parent.$children.forEach(($child) => { - if ($child.$vnode && $child.$vnode.data.nuxtChild && !$components.find(c =>(c.$options.__file === $child.$options.__file))) { - $components.push($child) - } - if ($child.$children && $child.$children.length) { - getNuxtChildComponents($child, $components) - } - }) - - return $components -} - -function hotReloadAPI(_app) { - if (!module.hot) return - - let $components = getNuxtChildComponents(_app.$nuxt, []) - - $components.forEach(addHotReload.bind(_app)) -} - -function addHotReload ($component, depth) { - if ($component.$vnode.data._hasHotReload) return - $component.$vnode.data._hasHotReload = true - - var _forceUpdate = $component.$forceUpdate.bind($component.$parent) - - $component.$vnode.context.$forceUpdate = async () => { - let Components = getMatchedComponents(router.currentRoute) - let Component = Components[depth] - if (!Component) { - return _forceUpdate() - } - if (typeof Component === 'object' && !Component.options) { - // Updated via vue-router resolveAsyncComponents() - Component = Vue.extend(Component) - Component._Ctor = Component - } - this.error() - let promises = [] - const next = function (path) { - this.$loading.finish && this.$loading.finish() - router.push(path) - } - await setContext(app, { - route: router.currentRoute, - isHMR: true, - next: next.bind(this) - }) - const context = app.context - - if (this.$loading.start && !this.$loading.manual) { - this.$loading.start() - } - - callMiddleware.call(this, Components, context) - .then(() => { - // If layout changed - if (depth !== 0) { - return - } - - let layout = Component.options.layout || 'default' - if (typeof layout === 'function') { - layout = layout(context) - } - if (this.layoutName === layout) { - return - } - let promise = this.loadLayout(layout) - promise.then(() => { - this.setLayout(layout) - Vue.nextTick(() => hotReloadAPI(this)) - }) - return promise - }) - - .then(() => { - return callMiddleware.call(this, Components, context, this.layout) - }) - - .then(() => { - // Call asyncData(context) - let pAsyncData = promisify(Component.options.asyncData || noopData, context) - pAsyncData.then((asyncDataResult) => { - applyAsyncData(Component, asyncDataResult) - this.$loading.increase && this.$loading.increase(30) - }) - promises.push(pAsyncData) - - // Call fetch() - Component.options.fetch = Component.options.fetch || noopFetch - let pFetch = Component.options.fetch.length && Component.options.fetch(context) - if (!pFetch || (!(pFetch instanceof Promise) && (typeof pFetch.then !== 'function'))) { pFetch = Promise.resolve(pFetch) } - pFetch.then(() => this.$loading.increase && this.$loading.increase(30)) - promises.push(pFetch) - - return Promise.all(promises) - }) - .then(() => { - this.$loading.finish && this.$loading.finish() - _forceUpdate() - setTimeout(() => hotReloadAPI(this), 100) - }) - } -} - -async function mountApp (__app) { - // Set global variables - app = __app.app - router = __app.router - store = __app.store - - // Create Vue instance - const _app = new Vue(app) - - // Mounts Vue app to DOM element - const mount = () => { - _app.$mount('#__nuxt') - - // Add afterEach router hooks - router.afterEach(normalizeComponents) - - router.afterEach(setLayoutForNextPage.bind(_app)) - - router.afterEach(fixPrepatch.bind(_app)) - - // Listen for first Vue update - Vue.nextTick(() => { - // Call window.{{globals.readyCallback}} callbacks - nuxtReady(_app) - - // Enable hot reloading - hotReloadAPI(_app) - }) - } - - // Resolve route components - const Components = await Promise.all(resolveComponents(app.context.route)) - - // Enable transitions - _app.setTransitions = _app.$options.nuxt.setTransitions.bind(_app) - if (Components.length) { - _app.setTransitions(mapTransitions(Components, router.currentRoute)) - _lastPaths = router.currentRoute.matched.map(route => compile(route.path)(router.currentRoute.params)) - } - - // Initialize error handler - _app.$loading = {} // To avoid error while _app.$nuxt does not exist - if (NUXT.error) { - _app.error(NUXT.error) - } - - // Add beforeEach router hooks - router.beforeEach(loadAsyncComponents.bind(_app)) - router.beforeEach(render.bind(_app)) - - // Fix in static: remove trailing slash to force hydration - // Full static, if server-rendered: hydrate, to allow custom redirect to generated page - - // Fix in static: remove trailing slash to force hydration - if (NUXT.serverRendered && isSamePath(NUXT.routePath, _app.context.route.path)) { - return mount() - } - - // First render on client-side - const clientFirstMount = () => { - normalizeComponents(router.currentRoute, router.currentRoute) - setLayoutForNextPage.call(_app, router.currentRoute) - checkForErrors(_app) - // Don't call fixPrepatch.call(_app, router.currentRoute, router.currentRoute) since it's first render - mount() - } - - // fix: force next tick to avoid having same timestamp when an error happen on spa fallback - await new Promise(resolve => setTimeout(resolve, 0)) - render.call(_app, router.currentRoute, router.currentRoute, (path) => { - // If not redirected - if (!path) { - clientFirstMount() - return - } - - // Add a one-time afterEach hook to - // mount the app wait for redirect and route gets resolved - const unregisterHook = router.afterEach((to, from) => { - unregisterHook() - clientFirstMount() - }) - - // Push the path and let route to be resolved - router.push(path, undefined, (err) => { - if (err) { - errorHandler(err) - } - }) - }) -} diff --git a/.nuxt/components/index.js b/.nuxt/components/index.js deleted file mode 100644 index c1885ba09b..0000000000 --- a/.nuxt/components/index.js +++ /dev/null @@ -1,133 +0,0 @@ -import { wrapFunctional } from './utils' - -export { default as IBadge } from '../../node_modules/@inkline/inkline/src/components/IBadge/index.vue' -export { default as IAlert } from '../../node_modules/@inkline/inkline/src/components/IAlert/index.vue' -export { default as IBreadcrumbItem } from '../../node_modules/@inkline/inkline/src/components/IBreadcrumbItem/index.vue' -export { default as IBreadcrumb } from '../../node_modules/@inkline/inkline/src/components/IBreadcrumb/index.vue' -export { default as IButton } from '../../node_modules/@inkline/inkline/src/components/IButton/index.vue' -export { default as IButtonGroup } from '../../node_modules/@inkline/inkline/src/components/IButtonGroup/index.vue' -export { default as ICard } from '../../node_modules/@inkline/inkline/src/components/ICard/index.vue' -export { default as ICheckable } from '../../node_modules/@inkline/inkline/src/components/ICheckable/index.vue' -export { default as ICheckableGroup } from '../../node_modules/@inkline/inkline/src/components/ICheckableGroup/index.vue' -export { default as ICheckbox } from '../../node_modules/@inkline/inkline/src/components/ICheckbox/index.vue' -export { default as ICheckboxButton } from '../../node_modules/@inkline/inkline/src/components/ICheckboxButton/index.vue' -export { default as ICheckboxButtonGroup } from '../../node_modules/@inkline/inkline/src/components/ICheckboxButtonGroup/index.vue' -export { default as ICheckboxGroup } from '../../node_modules/@inkline/inkline/src/components/ICheckboxGroup/index.vue' -export { default as ICollapsible } from '../../node_modules/@inkline/inkline/src/components/ICollapsible/index.vue' -export { default as ICollapsibleItem } from '../../node_modules/@inkline/inkline/src/components/ICollapsibleItem/index.vue' -export { default as IColumn } from '../../node_modules/@inkline/inkline/src/components/IColumn/index.vue' -export { default as IContainer } from '../../node_modules/@inkline/inkline/src/components/IContainer/index.vue' -export { default as IDatatable } from '../../node_modules/@inkline/inkline/src/components/IDatatable/index.vue' -export { default as IDropdown } from '../../node_modules/@inkline/inkline/src/components/IDropdown/index.vue' -export { default as IDropdownDivider } from '../../node_modules/@inkline/inkline/src/components/IDropdownDivider/index.vue' -export { default as IDropdownItem } from '../../node_modules/@inkline/inkline/src/components/IDropdownItem/index.vue' -export { default as IDropdownMenu } from '../../node_modules/@inkline/inkline/src/components/IDropdownMenu/index.vue' -export { default as IForm } from '../../node_modules/@inkline/inkline/src/components/IForm/index.vue' -export { default as IFormError } from '../../node_modules/@inkline/inkline/src/components/IFormError/index.vue' -export { default as IFormGroup } from '../../node_modules/@inkline/inkline/src/components/IFormGroup/index.vue' -export { default as IFormLabel } from '../../node_modules/@inkline/inkline/src/components/IFormLabel/index.vue' -export { default as IHamburgerMenu } from '../../node_modules/@inkline/inkline/src/components/IHamburgerMenu/index.vue' -export { default as IHeader } from '../../node_modules/@inkline/inkline/src/components/IHeader/index.vue' -export { default as IIcon } from '../../node_modules/@inkline/inkline/src/components/IIcon/index.vue' -export { default as IInput } from '../../node_modules/@inkline/inkline/src/components/IInput/index.vue' -export { default as IInputNumber } from '../../node_modules/@inkline/inkline/src/components/IInputNumber/index.vue' -export { default as ILayout } from '../../node_modules/@inkline/inkline/src/components/ILayout/index.vue' -export { default as ILayoutAside } from '../../node_modules/@inkline/inkline/src/components/ILayoutAside/index.vue' -export { default as ILayoutContent } from '../../node_modules/@inkline/inkline/src/components/ILayoutContent/index.vue' -export { default as ILayoutFooter } from '../../node_modules/@inkline/inkline/src/components/ILayoutFooter/index.vue' -export { default as ILayoutHeader } from '../../node_modules/@inkline/inkline/src/components/ILayoutHeader/index.vue' -export { default as ILinkable } from '../../node_modules/@inkline/inkline/src/components/ILinkable/index.vue' -export { default as IListGroup } from '../../node_modules/@inkline/inkline/src/components/IListGroup/index.vue' -export { default as IListGroupItem } from '../../node_modules/@inkline/inkline/src/components/IListGroupItem/index.vue' -export { default as ILoader } from '../../node_modules/@inkline/inkline/src/components/ILoader/index.vue' -export { default as IMedia } from '../../node_modules/@inkline/inkline/src/components/IMedia/index.vue' -export { default as IModal } from '../../node_modules/@inkline/inkline/src/components/IModal/index.vue' -export { default as INav } from '../../node_modules/@inkline/inkline/src/components/INav/index.vue' -export { default as INavItem } from '../../node_modules/@inkline/inkline/src/components/INavItem/index.vue' -export { default as INavbar } from '../../node_modules/@inkline/inkline/src/components/INavbar/index.vue' -export { default as INavbarBrand } from '../../node_modules/@inkline/inkline/src/components/INavbarBrand/index.vue' -export { default as INavbarItems } from '../../node_modules/@inkline/inkline/src/components/INavbarItems/index.vue' -export { default as IPagination } from '../../node_modules/@inkline/inkline/src/components/IPagination/index.vue' -export { default as IPopover } from '../../node_modules/@inkline/inkline/src/components/IPopover/index.vue' -export { default as IProgress } from '../../node_modules/@inkline/inkline/src/components/IProgress/index.vue' -export { default as IProgressBar } from '../../node_modules/@inkline/inkline/src/components/IProgressBar/index.vue' -export { default as IRadio } from '../../node_modules/@inkline/inkline/src/components/IRadio/index.vue' -export { default as IRadioButton } from '../../node_modules/@inkline/inkline/src/components/IRadioButton/index.vue' -export { default as IRadioButtonGroup } from '../../node_modules/@inkline/inkline/src/components/IRadioButtonGroup/index.vue' -export { default as IRadioGroup } from '../../node_modules/@inkline/inkline/src/components/IRadioGroup/index.vue' -export { default as IRow } from '../../node_modules/@inkline/inkline/src/components/IRow/index.vue' -export { default as ISelect } from '../../node_modules/@inkline/inkline/src/components/ISelect/index.vue' -export { default as ISelectOption } from '../../node_modules/@inkline/inkline/src/components/ISelectOption/index.vue' -export { default as ISidebar } from '../../node_modules/@inkline/inkline/src/components/ISidebar/index.vue' -export { default as ITab } from '../../node_modules/@inkline/inkline/src/components/ITab/index.vue' -export { default as ITable } from '../../node_modules/@inkline/inkline/src/components/ITable/index.vue' -export { default as ITabs } from '../../node_modules/@inkline/inkline/src/components/ITabs/index.vue' -export { default as ITextarea } from '../../node_modules/@inkline/inkline/src/components/ITextarea/index.vue' -export { default as IToggle } from '../../node_modules/@inkline/inkline/src/components/IToggle/index.vue' -export { default as ITooltip } from '../../node_modules/@inkline/inkline/src/components/ITooltip/index.vue' - -export const LazyIBadge = import('../../node_modules/@inkline/inkline/src/components/IBadge/index.vue' /* webpackChunkName: "components/i-badge" */).then(c => wrapFunctional(c.default || c)) -export const LazyIAlert = import('../../node_modules/@inkline/inkline/src/components/IAlert/index.vue' /* webpackChunkName: "components/i-alert" */).then(c => wrapFunctional(c.default || c)) -export const LazyIBreadcrumbItem = import('../../node_modules/@inkline/inkline/src/components/IBreadcrumbItem/index.vue' /* webpackChunkName: "components/i-breadcrumb-item" */).then(c => wrapFunctional(c.default || c)) -export const LazyIBreadcrumb = import('../../node_modules/@inkline/inkline/src/components/IBreadcrumb/index.vue' /* webpackChunkName: "components/i-breadcrumb" */).then(c => wrapFunctional(c.default || c)) -export const LazyIButton = import('../../node_modules/@inkline/inkline/src/components/IButton/index.vue' /* webpackChunkName: "components/i-button" */).then(c => wrapFunctional(c.default || c)) -export const LazyIButtonGroup = import('../../node_modules/@inkline/inkline/src/components/IButtonGroup/index.vue' /* webpackChunkName: "components/i-button-group" */).then(c => wrapFunctional(c.default || c)) -export const LazyICard = import('../../node_modules/@inkline/inkline/src/components/ICard/index.vue' /* webpackChunkName: "components/i-card" */).then(c => wrapFunctional(c.default || c)) -export const LazyICheckable = import('../../node_modules/@inkline/inkline/src/components/ICheckable/index.vue' /* webpackChunkName: "components/i-checkable" */).then(c => wrapFunctional(c.default || c)) -export const LazyICheckableGroup = import('../../node_modules/@inkline/inkline/src/components/ICheckableGroup/index.vue' /* webpackChunkName: "components/i-checkable-group" */).then(c => wrapFunctional(c.default || c)) -export const LazyICheckbox = import('../../node_modules/@inkline/inkline/src/components/ICheckbox/index.vue' /* webpackChunkName: "components/i-checkbox" */).then(c => wrapFunctional(c.default || c)) -export const LazyICheckboxButton = import('../../node_modules/@inkline/inkline/src/components/ICheckboxButton/index.vue' /* webpackChunkName: "components/i-checkbox-button" */).then(c => wrapFunctional(c.default || c)) -export const LazyICheckboxButtonGroup = import('../../node_modules/@inkline/inkline/src/components/ICheckboxButtonGroup/index.vue' /* webpackChunkName: "components/i-checkbox-button-group" */).then(c => wrapFunctional(c.default || c)) -export const LazyICheckboxGroup = import('../../node_modules/@inkline/inkline/src/components/ICheckboxGroup/index.vue' /* webpackChunkName: "components/i-checkbox-group" */).then(c => wrapFunctional(c.default || c)) -export const LazyICollapsible = import('../../node_modules/@inkline/inkline/src/components/ICollapsible/index.vue' /* webpackChunkName: "components/i-collapsible" */).then(c => wrapFunctional(c.default || c)) -export const LazyICollapsibleItem = import('../../node_modules/@inkline/inkline/src/components/ICollapsibleItem/index.vue' /* webpackChunkName: "components/i-collapsible-item" */).then(c => wrapFunctional(c.default || c)) -export const LazyIColumn = import('../../node_modules/@inkline/inkline/src/components/IColumn/index.vue' /* webpackChunkName: "components/i-column" */).then(c => wrapFunctional(c.default || c)) -export const LazyIContainer = import('../../node_modules/@inkline/inkline/src/components/IContainer/index.vue' /* webpackChunkName: "components/i-container" */).then(c => wrapFunctional(c.default || c)) -export const LazyIDatatable = import('../../node_modules/@inkline/inkline/src/components/IDatatable/index.vue' /* webpackChunkName: "components/i-datatable" */).then(c => wrapFunctional(c.default || c)) -export const LazyIDropdown = import('../../node_modules/@inkline/inkline/src/components/IDropdown/index.vue' /* webpackChunkName: "components/i-dropdown" */).then(c => wrapFunctional(c.default || c)) -export const LazyIDropdownDivider = import('../../node_modules/@inkline/inkline/src/components/IDropdownDivider/index.vue' /* webpackChunkName: "components/i-dropdown-divider" */).then(c => wrapFunctional(c.default || c)) -export const LazyIDropdownItem = import('../../node_modules/@inkline/inkline/src/components/IDropdownItem/index.vue' /* webpackChunkName: "components/i-dropdown-item" */).then(c => wrapFunctional(c.default || c)) -export const LazyIDropdownMenu = import('../../node_modules/@inkline/inkline/src/components/IDropdownMenu/index.vue' /* webpackChunkName: "components/i-dropdown-menu" */).then(c => wrapFunctional(c.default || c)) -export const LazyIForm = import('../../node_modules/@inkline/inkline/src/components/IForm/index.vue' /* webpackChunkName: "components/i-form" */).then(c => wrapFunctional(c.default || c)) -export const LazyIFormError = import('../../node_modules/@inkline/inkline/src/components/IFormError/index.vue' /* webpackChunkName: "components/i-form-error" */).then(c => wrapFunctional(c.default || c)) -export const LazyIFormGroup = import('../../node_modules/@inkline/inkline/src/components/IFormGroup/index.vue' /* webpackChunkName: "components/i-form-group" */).then(c => wrapFunctional(c.default || c)) -export const LazyIFormLabel = import('../../node_modules/@inkline/inkline/src/components/IFormLabel/index.vue' /* webpackChunkName: "components/i-form-label" */).then(c => wrapFunctional(c.default || c)) -export const LazyIHamburgerMenu = import('../../node_modules/@inkline/inkline/src/components/IHamburgerMenu/index.vue' /* webpackChunkName: "components/i-hamburger-menu" */).then(c => wrapFunctional(c.default || c)) -export const LazyIHeader = import('../../node_modules/@inkline/inkline/src/components/IHeader/index.vue' /* webpackChunkName: "components/i-header" */).then(c => wrapFunctional(c.default || c)) -export const LazyIIcon = import('../../node_modules/@inkline/inkline/src/components/IIcon/index.vue' /* webpackChunkName: "components/i-icon" */).then(c => wrapFunctional(c.default || c)) -export const LazyIInput = import('../../node_modules/@inkline/inkline/src/components/IInput/index.vue' /* webpackChunkName: "components/i-input" */).then(c => wrapFunctional(c.default || c)) -export const LazyIInputNumber = import('../../node_modules/@inkline/inkline/src/components/IInputNumber/index.vue' /* webpackChunkName: "components/i-input-number" */).then(c => wrapFunctional(c.default || c)) -export const LazyILayout = import('../../node_modules/@inkline/inkline/src/components/ILayout/index.vue' /* webpackChunkName: "components/i-layout" */).then(c => wrapFunctional(c.default || c)) -export const LazyILayoutAside = import('../../node_modules/@inkline/inkline/src/components/ILayoutAside/index.vue' /* webpackChunkName: "components/i-layout-aside" */).then(c => wrapFunctional(c.default || c)) -export const LazyILayoutContent = import('../../node_modules/@inkline/inkline/src/components/ILayoutContent/index.vue' /* webpackChunkName: "components/i-layout-content" */).then(c => wrapFunctional(c.default || c)) -export const LazyILayoutFooter = import('../../node_modules/@inkline/inkline/src/components/ILayoutFooter/index.vue' /* webpackChunkName: "components/i-layout-footer" */).then(c => wrapFunctional(c.default || c)) -export const LazyILayoutHeader = import('../../node_modules/@inkline/inkline/src/components/ILayoutHeader/index.vue' /* webpackChunkName: "components/i-layout-header" */).then(c => wrapFunctional(c.default || c)) -export const LazyILinkable = import('../../node_modules/@inkline/inkline/src/components/ILinkable/index.vue' /* webpackChunkName: "components/i-linkable" */).then(c => wrapFunctional(c.default || c)) -export const LazyIListGroup = import('../../node_modules/@inkline/inkline/src/components/IListGroup/index.vue' /* webpackChunkName: "components/i-list-group" */).then(c => wrapFunctional(c.default || c)) -export const LazyIListGroupItem = import('../../node_modules/@inkline/inkline/src/components/IListGroupItem/index.vue' /* webpackChunkName: "components/i-list-group-item" */).then(c => wrapFunctional(c.default || c)) -export const LazyILoader = import('../../node_modules/@inkline/inkline/src/components/ILoader/index.vue' /* webpackChunkName: "components/i-loader" */).then(c => wrapFunctional(c.default || c)) -export const LazyIMedia = import('../../node_modules/@inkline/inkline/src/components/IMedia/index.vue' /* webpackChunkName: "components/i-media" */).then(c => wrapFunctional(c.default || c)) -export const LazyIModal = import('../../node_modules/@inkline/inkline/src/components/IModal/index.vue' /* webpackChunkName: "components/i-modal" */).then(c => wrapFunctional(c.default || c)) -export const LazyINav = import('../../node_modules/@inkline/inkline/src/components/INav/index.vue' /* webpackChunkName: "components/i-nav" */).then(c => wrapFunctional(c.default || c)) -export const LazyINavItem = import('../../node_modules/@inkline/inkline/src/components/INavItem/index.vue' /* webpackChunkName: "components/i-nav-item" */).then(c => wrapFunctional(c.default || c)) -export const LazyINavbar = import('../../node_modules/@inkline/inkline/src/components/INavbar/index.vue' /* webpackChunkName: "components/i-navbar" */).then(c => wrapFunctional(c.default || c)) -export const LazyINavbarBrand = import('../../node_modules/@inkline/inkline/src/components/INavbarBrand/index.vue' /* webpackChunkName: "components/i-navbar-brand" */).then(c => wrapFunctional(c.default || c)) -export const LazyINavbarItems = import('../../node_modules/@inkline/inkline/src/components/INavbarItems/index.vue' /* webpackChunkName: "components/i-navbar-items" */).then(c => wrapFunctional(c.default || c)) -export const LazyIPagination = import('../../node_modules/@inkline/inkline/src/components/IPagination/index.vue' /* webpackChunkName: "components/i-pagination" */).then(c => wrapFunctional(c.default || c)) -export const LazyIPopover = import('../../node_modules/@inkline/inkline/src/components/IPopover/index.vue' /* webpackChunkName: "components/i-popover" */).then(c => wrapFunctional(c.default || c)) -export const LazyIProgress = import('../../node_modules/@inkline/inkline/src/components/IProgress/index.vue' /* webpackChunkName: "components/i-progress" */).then(c => wrapFunctional(c.default || c)) -export const LazyIProgressBar = import('../../node_modules/@inkline/inkline/src/components/IProgressBar/index.vue' /* webpackChunkName: "components/i-progress-bar" */).then(c => wrapFunctional(c.default || c)) -export const LazyIRadio = import('../../node_modules/@inkline/inkline/src/components/IRadio/index.vue' /* webpackChunkName: "components/i-radio" */).then(c => wrapFunctional(c.default || c)) -export const LazyIRadioButton = import('../../node_modules/@inkline/inkline/src/components/IRadioButton/index.vue' /* webpackChunkName: "components/i-radio-button" */).then(c => wrapFunctional(c.default || c)) -export const LazyIRadioButtonGroup = import('../../node_modules/@inkline/inkline/src/components/IRadioButtonGroup/index.vue' /* webpackChunkName: "components/i-radio-button-group" */).then(c => wrapFunctional(c.default || c)) -export const LazyIRadioGroup = import('../../node_modules/@inkline/inkline/src/components/IRadioGroup/index.vue' /* webpackChunkName: "components/i-radio-group" */).then(c => wrapFunctional(c.default || c)) -export const LazyIRow = import('../../node_modules/@inkline/inkline/src/components/IRow/index.vue' /* webpackChunkName: "components/i-row" */).then(c => wrapFunctional(c.default || c)) -export const LazyISelect = import('../../node_modules/@inkline/inkline/src/components/ISelect/index.vue' /* webpackChunkName: "components/i-select" */).then(c => wrapFunctional(c.default || c)) -export const LazyISelectOption = import('../../node_modules/@inkline/inkline/src/components/ISelectOption/index.vue' /* webpackChunkName: "components/i-select-option" */).then(c => wrapFunctional(c.default || c)) -export const LazyISidebar = import('../../node_modules/@inkline/inkline/src/components/ISidebar/index.vue' /* webpackChunkName: "components/i-sidebar" */).then(c => wrapFunctional(c.default || c)) -export const LazyITab = import('../../node_modules/@inkline/inkline/src/components/ITab/index.vue' /* webpackChunkName: "components/i-tab" */).then(c => wrapFunctional(c.default || c)) -export const LazyITable = import('../../node_modules/@inkline/inkline/src/components/ITable/index.vue' /* webpackChunkName: "components/i-table" */).then(c => wrapFunctional(c.default || c)) -export const LazyITabs = import('../../node_modules/@inkline/inkline/src/components/ITabs/index.vue' /* webpackChunkName: "components/i-tabs" */).then(c => wrapFunctional(c.default || c)) -export const LazyITextarea = import('../../node_modules/@inkline/inkline/src/components/ITextarea/index.vue' /* webpackChunkName: "components/i-textarea" */).then(c => wrapFunctional(c.default || c)) -export const LazyIToggle = import('../../node_modules/@inkline/inkline/src/components/IToggle/index.vue' /* webpackChunkName: "components/i-toggle" */).then(c => wrapFunctional(c.default || c)) -export const LazyITooltip = import('../../node_modules/@inkline/inkline/src/components/ITooltip/index.vue' /* webpackChunkName: "components/i-tooltip" */).then(c => wrapFunctional(c.default || c)) diff --git a/.nuxt/components/nuxt-build-indicator.vue b/.nuxt/components/nuxt-build-indicator.vue deleted file mode 100644 index 913f5448d3..0000000000 --- a/.nuxt/components/nuxt-build-indicator.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - - diff --git a/.nuxt/components/nuxt-child.js b/.nuxt/components/nuxt-child.js deleted file mode 100644 index af27a4d349..0000000000 --- a/.nuxt/components/nuxt-child.js +++ /dev/null @@ -1,122 +0,0 @@ - -export default { - name: 'NuxtChild', - functional: true, - props: { - nuxtChildKey: { - type: String, - default: '' - }, - keepAlive: Boolean, - keepAliveProps: { - type: Object, - default: undefined - } - }, - render (_, { parent, data, props }) { - const h = parent.$createElement - - data.nuxtChild = true - const _parent = parent - const transitions = parent.$nuxt.nuxt.transitions - const defaultTransition = parent.$nuxt.nuxt.defaultTransition - - let depth = 0 - while (parent) { - if (parent.$vnode && parent.$vnode.data.nuxtChild) { - depth++ - } - parent = parent.$parent - } - data.nuxtChildDepth = depth - const transition = transitions[depth] || defaultTransition - const transitionProps = {} - transitionsKeys.forEach((key) => { - if (typeof transition[key] !== 'undefined') { - transitionProps[key] = transition[key] - } - }) - - const listeners = {} - listenersKeys.forEach((key) => { - if (typeof transition[key] === 'function') { - listeners[key] = transition[key].bind(_parent) - } - }) - if (process.client) { - // Add triggerScroll event on beforeEnter (fix #1376) - const beforeEnter = listeners.beforeEnter - listeners.beforeEnter = (el) => { - // Ensure to trigger scroll event after calling scrollBehavior - window.$nuxt.$nextTick(() => { - window.$nuxt.$emit('triggerScroll') - }) - if (beforeEnter) { - return beforeEnter.call(_parent, el) - } - } - } - - // make sure that leave is called asynchronous (fix #5703) - if (transition.css === false) { - const leave = listeners.leave - - // only add leave listener when user didnt provide one - // or when it misses the done argument - if (!leave || leave.length < 2) { - listeners.leave = (el, done) => { - if (leave) { - leave.call(_parent, el) - } - - _parent.$nextTick(done) - } - } - } - - let routerView = h('routerView', data) - - if (props.keepAlive) { - routerView = h('keep-alive', { props: props.keepAliveProps }, [routerView]) - } - - return h('transition', { - props: transitionProps, - on: listeners - }, [routerView]) - } -} - -const transitionsKeys = [ - 'name', - 'mode', - 'appear', - 'css', - 'type', - 'duration', - 'enterClass', - 'leaveClass', - 'appearClass', - 'enterActiveClass', - 'enterActiveClass', - 'leaveActiveClass', - 'appearActiveClass', - 'enterToClass', - 'leaveToClass', - 'appearToClass' -] - -const listenersKeys = [ - 'beforeEnter', - 'enter', - 'afterEnter', - 'enterCancelled', - 'beforeLeave', - 'leave', - 'afterLeave', - 'leaveCancelled', - 'beforeAppear', - 'appear', - 'afterAppear', - 'appearCancelled' -] diff --git a/.nuxt/components/nuxt-error.vue b/.nuxt/components/nuxt-error.vue deleted file mode 100644 index e71f7d0168..0000000000 --- a/.nuxt/components/nuxt-error.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - - - diff --git a/.nuxt/components/nuxt-link.client.js b/.nuxt/components/nuxt-link.client.js deleted file mode 100644 index 1477cfd039..0000000000 --- a/.nuxt/components/nuxt-link.client.js +++ /dev/null @@ -1,98 +0,0 @@ -import Vue from 'vue' - -const requestIdleCallback = window.requestIdleCallback || - function (cb) { - const start = Date.now() - return setTimeout(function () { - cb({ - didTimeout: false, - timeRemaining: () => Math.max(0, 50 - (Date.now() - start)) - }) - }, 1) - } - -const cancelIdleCallback = window.cancelIdleCallback || function (id) { - clearTimeout(id) -} - -const observer = window.IntersectionObserver && new window.IntersectionObserver((entries) => { - entries.forEach(({ intersectionRatio, target: link }) => { - if (intersectionRatio <= 0 || !link.__prefetch) { - return - } - link.__prefetch() - }) -}) - -export default { - name: 'NuxtLink', - extends: Vue.component('RouterLink'), - props: { - prefetch: { - type: Boolean, - default: true - }, - noPrefetch: { - type: Boolean, - default: false - } - }, - mounted () { - if (this.prefetch && !this.noPrefetch) { - this.handleId = requestIdleCallback(this.observe, { timeout: 2e3 }) - } - }, - beforeDestroy () { - cancelIdleCallback(this.handleId) - - if (this.__observed) { - observer.unobserve(this.$el) - delete this.$el.__prefetch - } - }, - methods: { - observe () { - // If no IntersectionObserver, avoid prefetching - if (!observer) { - return - } - // Add to observer - if (this.shouldPrefetch()) { - this.$el.__prefetch = this.prefetchLink.bind(this) - observer.observe(this.$el) - this.__observed = true - } - }, - shouldPrefetch () { - return this.getPrefetchComponents().length > 0 - }, - canPrefetch () { - const conn = navigator.connection - const hasBadConnection = this.$nuxt.isOffline || (conn && ((conn.effectiveType || '').includes('2g') || conn.saveData)) - - return !hasBadConnection - }, - getPrefetchComponents () { - const ref = this.$router.resolve(this.to, this.$route, this.append) - const Components = ref.resolved.matched.map(r => r.components.default) - - return Components.filter(Component => typeof Component === 'function' && !Component.options && !Component.__prefetched) - }, - prefetchLink () { - if (!this.canPrefetch()) { - return - } - // Stop observing this link (in case of internet connection changes) - observer.unobserve(this.$el) - const Components = this.getPrefetchComponents() - - for (const Component of Components) { - const componentOrPromise = Component() - if (componentOrPromise instanceof Promise) { - componentOrPromise.catch(() => {}) - } - Component.__prefetched = true - } - } - } -} diff --git a/.nuxt/components/nuxt-link.server.js b/.nuxt/components/nuxt-link.server.js deleted file mode 100644 index f1230908bf..0000000000 --- a/.nuxt/components/nuxt-link.server.js +++ /dev/null @@ -1,16 +0,0 @@ -import Vue from 'vue' - -export default { - name: 'NuxtLink', - extends: Vue.component('RouterLink'), - props: { - prefetch: { - type: Boolean, - default: true - }, - noPrefetch: { - type: Boolean, - default: false - } - } -} diff --git a/.nuxt/components/nuxt-loading.vue b/.nuxt/components/nuxt-loading.vue deleted file mode 100644 index c12ba27fcb..0000000000 --- a/.nuxt/components/nuxt-loading.vue +++ /dev/null @@ -1,177 +0,0 @@ - - - diff --git a/.nuxt/components/nuxt.js b/.nuxt/components/nuxt.js deleted file mode 100644 index a26c83e161..0000000000 --- a/.nuxt/components/nuxt.js +++ /dev/null @@ -1,101 +0,0 @@ -import Vue from 'vue' -import { compile } from '../utils' - -import NuxtError from '../../src/layouts/error.vue' - -import NuxtChild from './nuxt-child' - -export default { - name: 'Nuxt', - components: { - NuxtChild, - NuxtError - }, - props: { - nuxtChildKey: { - type: String, - default: undefined - }, - keepAlive: Boolean, - keepAliveProps: { - type: Object, - default: undefined - }, - name: { - type: String, - default: 'default' - } - }, - errorCaptured (error) { - // if we receive and error while showing the NuxtError component - // capture the error and force an immediate update so we re-render - // without the NuxtError component - if (this.displayingNuxtError) { - this.errorFromNuxtError = error - this.$forceUpdate() - } - }, - computed: { - routerViewKey () { - // If nuxtChildKey prop is given or current route has children - if (typeof this.nuxtChildKey !== 'undefined' || this.$route.matched.length > 1) { - return this.nuxtChildKey || compile(this.$route.matched[0].path)(this.$route.params) - } - - const [matchedRoute] = this.$route.matched - - if (!matchedRoute) { - return this.$route.path - } - - const Component = matchedRoute.components.default - - if (Component && Component.options) { - const { options } = Component - - if (options.key) { - return (typeof options.key === 'function' ? options.key(this.$route) : options.key) - } - } - - const strict = /\/$/.test(matchedRoute.path) - return strict ? this.$route.path : this.$route.path.replace(/\/$/, '') - } - }, - beforeCreate () { - Vue.util.defineReactive(this, 'nuxt', this.$root.$options.nuxt) - }, - render (h) { - // if there is no error - if (!this.nuxt.err) { - // Directly return nuxt child - return h('NuxtChild', { - key: this.routerViewKey, - props: this.$props - }) - } - - // if an error occurred within NuxtError show a simple - // error message instead to prevent looping - if (this.errorFromNuxtError) { - this.$nextTick(() => (this.errorFromNuxtError = false)) - - return h('div', {}, [ - h('h2', 'An error occurred while showing the error page'), - h('p', 'Unfortunately an error occurred and while showing the error page another error occurred'), - h('p', `Error details: ${this.errorFromNuxtError.toString()}`), - h('nuxt-link', { props: { to: '/' } }, 'Go back to home') - ]) - } - - // track if we are showing the NuxtError component - this.displayingNuxtError = true - this.$nextTick(() => (this.displayingNuxtError = false)) - - return h(NuxtError, { - props: { - error: this.nuxt.err - } - }) - } -} diff --git a/.nuxt/components/plugin.js b/.nuxt/components/plugin.js deleted file mode 100644 index 2dca2a4585..0000000000 --- a/.nuxt/components/plugin.js +++ /dev/null @@ -1,75 +0,0 @@ -import Vue from 'vue' -import { wrapFunctional } from './utils' - -const components = { - IBadge: () => import('../../node_modules/@inkline/inkline/src/components/IBadge/index.vue' /* webpackChunkName: "components/i-badge" */).then(c => wrapFunctional(c.default || c)), - IAlert: () => import('../../node_modules/@inkline/inkline/src/components/IAlert/index.vue' /* webpackChunkName: "components/i-alert" */).then(c => wrapFunctional(c.default || c)), - IBreadcrumbItem: () => import('../../node_modules/@inkline/inkline/src/components/IBreadcrumbItem/index.vue' /* webpackChunkName: "components/i-breadcrumb-item" */).then(c => wrapFunctional(c.default || c)), - IBreadcrumb: () => import('../../node_modules/@inkline/inkline/src/components/IBreadcrumb/index.vue' /* webpackChunkName: "components/i-breadcrumb" */).then(c => wrapFunctional(c.default || c)), - IButton: () => import('../../node_modules/@inkline/inkline/src/components/IButton/index.vue' /* webpackChunkName: "components/i-button" */).then(c => wrapFunctional(c.default || c)), - IButtonGroup: () => import('../../node_modules/@inkline/inkline/src/components/IButtonGroup/index.vue' /* webpackChunkName: "components/i-button-group" */).then(c => wrapFunctional(c.default || c)), - ICard: () => import('../../node_modules/@inkline/inkline/src/components/ICard/index.vue' /* webpackChunkName: "components/i-card" */).then(c => wrapFunctional(c.default || c)), - ICheckable: () => import('../../node_modules/@inkline/inkline/src/components/ICheckable/index.vue' /* webpackChunkName: "components/i-checkable" */).then(c => wrapFunctional(c.default || c)), - ICheckableGroup: () => import('../../node_modules/@inkline/inkline/src/components/ICheckableGroup/index.vue' /* webpackChunkName: "components/i-checkable-group" */).then(c => wrapFunctional(c.default || c)), - ICheckbox: () => import('../../node_modules/@inkline/inkline/src/components/ICheckbox/index.vue' /* webpackChunkName: "components/i-checkbox" */).then(c => wrapFunctional(c.default || c)), - ICheckboxButton: () => import('../../node_modules/@inkline/inkline/src/components/ICheckboxButton/index.vue' /* webpackChunkName: "components/i-checkbox-button" */).then(c => wrapFunctional(c.default || c)), - ICheckboxButtonGroup: () => import('../../node_modules/@inkline/inkline/src/components/ICheckboxButtonGroup/index.vue' /* webpackChunkName: "components/i-checkbox-button-group" */).then(c => wrapFunctional(c.default || c)), - ICheckboxGroup: () => import('../../node_modules/@inkline/inkline/src/components/ICheckboxGroup/index.vue' /* webpackChunkName: "components/i-checkbox-group" */).then(c => wrapFunctional(c.default || c)), - ICollapsible: () => import('../../node_modules/@inkline/inkline/src/components/ICollapsible/index.vue' /* webpackChunkName: "components/i-collapsible" */).then(c => wrapFunctional(c.default || c)), - ICollapsibleItem: () => import('../../node_modules/@inkline/inkline/src/components/ICollapsibleItem/index.vue' /* webpackChunkName: "components/i-collapsible-item" */).then(c => wrapFunctional(c.default || c)), - IColumn: () => import('../../node_modules/@inkline/inkline/src/components/IColumn/index.vue' /* webpackChunkName: "components/i-column" */).then(c => wrapFunctional(c.default || c)), - IContainer: () => import('../../node_modules/@inkline/inkline/src/components/IContainer/index.vue' /* webpackChunkName: "components/i-container" */).then(c => wrapFunctional(c.default || c)), - IDatatable: () => import('../../node_modules/@inkline/inkline/src/components/IDatatable/index.vue' /* webpackChunkName: "components/i-datatable" */).then(c => wrapFunctional(c.default || c)), - IDropdown: () => import('../../node_modules/@inkline/inkline/src/components/IDropdown/index.vue' /* webpackChunkName: "components/i-dropdown" */).then(c => wrapFunctional(c.default || c)), - IDropdownDivider: () => import('../../node_modules/@inkline/inkline/src/components/IDropdownDivider/index.vue' /* webpackChunkName: "components/i-dropdown-divider" */).then(c => wrapFunctional(c.default || c)), - IDropdownItem: () => import('../../node_modules/@inkline/inkline/src/components/IDropdownItem/index.vue' /* webpackChunkName: "components/i-dropdown-item" */).then(c => wrapFunctional(c.default || c)), - IDropdownMenu: () => import('../../node_modules/@inkline/inkline/src/components/IDropdownMenu/index.vue' /* webpackChunkName: "components/i-dropdown-menu" */).then(c => wrapFunctional(c.default || c)), - IForm: () => import('../../node_modules/@inkline/inkline/src/components/IForm/index.vue' /* webpackChunkName: "components/i-form" */).then(c => wrapFunctional(c.default || c)), - IFormError: () => import('../../node_modules/@inkline/inkline/src/components/IFormError/index.vue' /* webpackChunkName: "components/i-form-error" */).then(c => wrapFunctional(c.default || c)), - IFormGroup: () => import('../../node_modules/@inkline/inkline/src/components/IFormGroup/index.vue' /* webpackChunkName: "components/i-form-group" */).then(c => wrapFunctional(c.default || c)), - IFormLabel: () => import('../../node_modules/@inkline/inkline/src/components/IFormLabel/index.vue' /* webpackChunkName: "components/i-form-label" */).then(c => wrapFunctional(c.default || c)), - IHamburgerMenu: () => import('../../node_modules/@inkline/inkline/src/components/IHamburgerMenu/index.vue' /* webpackChunkName: "components/i-hamburger-menu" */).then(c => wrapFunctional(c.default || c)), - IHeader: () => import('../../node_modules/@inkline/inkline/src/components/IHeader/index.vue' /* webpackChunkName: "components/i-header" */).then(c => wrapFunctional(c.default || c)), - IIcon: () => import('../../node_modules/@inkline/inkline/src/components/IIcon/index.vue' /* webpackChunkName: "components/i-icon" */).then(c => wrapFunctional(c.default || c)), - IInput: () => import('../../node_modules/@inkline/inkline/src/components/IInput/index.vue' /* webpackChunkName: "components/i-input" */).then(c => wrapFunctional(c.default || c)), - IInputNumber: () => import('../../node_modules/@inkline/inkline/src/components/IInputNumber/index.vue' /* webpackChunkName: "components/i-input-number" */).then(c => wrapFunctional(c.default || c)), - ILayout: () => import('../../node_modules/@inkline/inkline/src/components/ILayout/index.vue' /* webpackChunkName: "components/i-layout" */).then(c => wrapFunctional(c.default || c)), - ILayoutAside: () => import('../../node_modules/@inkline/inkline/src/components/ILayoutAside/index.vue' /* webpackChunkName: "components/i-layout-aside" */).then(c => wrapFunctional(c.default || c)), - ILayoutContent: () => import('../../node_modules/@inkline/inkline/src/components/ILayoutContent/index.vue' /* webpackChunkName: "components/i-layout-content" */).then(c => wrapFunctional(c.default || c)), - ILayoutFooter: () => import('../../node_modules/@inkline/inkline/src/components/ILayoutFooter/index.vue' /* webpackChunkName: "components/i-layout-footer" */).then(c => wrapFunctional(c.default || c)), - ILayoutHeader: () => import('../../node_modules/@inkline/inkline/src/components/ILayoutHeader/index.vue' /* webpackChunkName: "components/i-layout-header" */).then(c => wrapFunctional(c.default || c)), - ILinkable: () => import('../../node_modules/@inkline/inkline/src/components/ILinkable/index.vue' /* webpackChunkName: "components/i-linkable" */).then(c => wrapFunctional(c.default || c)), - IListGroup: () => import('../../node_modules/@inkline/inkline/src/components/IListGroup/index.vue' /* webpackChunkName: "components/i-list-group" */).then(c => wrapFunctional(c.default || c)), - IListGroupItem: () => import('../../node_modules/@inkline/inkline/src/components/IListGroupItem/index.vue' /* webpackChunkName: "components/i-list-group-item" */).then(c => wrapFunctional(c.default || c)), - ILoader: () => import('../../node_modules/@inkline/inkline/src/components/ILoader/index.vue' /* webpackChunkName: "components/i-loader" */).then(c => wrapFunctional(c.default || c)), - IMedia: () => import('../../node_modules/@inkline/inkline/src/components/IMedia/index.vue' /* webpackChunkName: "components/i-media" */).then(c => wrapFunctional(c.default || c)), - IModal: () => import('../../node_modules/@inkline/inkline/src/components/IModal/index.vue' /* webpackChunkName: "components/i-modal" */).then(c => wrapFunctional(c.default || c)), - INav: () => import('../../node_modules/@inkline/inkline/src/components/INav/index.vue' /* webpackChunkName: "components/i-nav" */).then(c => wrapFunctional(c.default || c)), - INavItem: () => import('../../node_modules/@inkline/inkline/src/components/INavItem/index.vue' /* webpackChunkName: "components/i-nav-item" */).then(c => wrapFunctional(c.default || c)), - INavbar: () => import('../../node_modules/@inkline/inkline/src/components/INavbar/index.vue' /* webpackChunkName: "components/i-navbar" */).then(c => wrapFunctional(c.default || c)), - INavbarBrand: () => import('../../node_modules/@inkline/inkline/src/components/INavbarBrand/index.vue' /* webpackChunkName: "components/i-navbar-brand" */).then(c => wrapFunctional(c.default || c)), - INavbarItems: () => import('../../node_modules/@inkline/inkline/src/components/INavbarItems/index.vue' /* webpackChunkName: "components/i-navbar-items" */).then(c => wrapFunctional(c.default || c)), - IPagination: () => import('../../node_modules/@inkline/inkline/src/components/IPagination/index.vue' /* webpackChunkName: "components/i-pagination" */).then(c => wrapFunctional(c.default || c)), - IPopover: () => import('../../node_modules/@inkline/inkline/src/components/IPopover/index.vue' /* webpackChunkName: "components/i-popover" */).then(c => wrapFunctional(c.default || c)), - IProgress: () => import('../../node_modules/@inkline/inkline/src/components/IProgress/index.vue' /* webpackChunkName: "components/i-progress" */).then(c => wrapFunctional(c.default || c)), - IProgressBar: () => import('../../node_modules/@inkline/inkline/src/components/IProgressBar/index.vue' /* webpackChunkName: "components/i-progress-bar" */).then(c => wrapFunctional(c.default || c)), - IRadio: () => import('../../node_modules/@inkline/inkline/src/components/IRadio/index.vue' /* webpackChunkName: "components/i-radio" */).then(c => wrapFunctional(c.default || c)), - IRadioButton: () => import('../../node_modules/@inkline/inkline/src/components/IRadioButton/index.vue' /* webpackChunkName: "components/i-radio-button" */).then(c => wrapFunctional(c.default || c)), - IRadioButtonGroup: () => import('../../node_modules/@inkline/inkline/src/components/IRadioButtonGroup/index.vue' /* webpackChunkName: "components/i-radio-button-group" */).then(c => wrapFunctional(c.default || c)), - IRadioGroup: () => import('../../node_modules/@inkline/inkline/src/components/IRadioGroup/index.vue' /* webpackChunkName: "components/i-radio-group" */).then(c => wrapFunctional(c.default || c)), - IRow: () => import('../../node_modules/@inkline/inkline/src/components/IRow/index.vue' /* webpackChunkName: "components/i-row" */).then(c => wrapFunctional(c.default || c)), - ISelect: () => import('../../node_modules/@inkline/inkline/src/components/ISelect/index.vue' /* webpackChunkName: "components/i-select" */).then(c => wrapFunctional(c.default || c)), - ISelectOption: () => import('../../node_modules/@inkline/inkline/src/components/ISelectOption/index.vue' /* webpackChunkName: "components/i-select-option" */).then(c => wrapFunctional(c.default || c)), - ISidebar: () => import('../../node_modules/@inkline/inkline/src/components/ISidebar/index.vue' /* webpackChunkName: "components/i-sidebar" */).then(c => wrapFunctional(c.default || c)), - ITab: () => import('../../node_modules/@inkline/inkline/src/components/ITab/index.vue' /* webpackChunkName: "components/i-tab" */).then(c => wrapFunctional(c.default || c)), - ITable: () => import('../../node_modules/@inkline/inkline/src/components/ITable/index.vue' /* webpackChunkName: "components/i-table" */).then(c => wrapFunctional(c.default || c)), - ITabs: () => import('../../node_modules/@inkline/inkline/src/components/ITabs/index.vue' /* webpackChunkName: "components/i-tabs" */).then(c => wrapFunctional(c.default || c)), - ITextarea: () => import('../../node_modules/@inkline/inkline/src/components/ITextarea/index.vue' /* webpackChunkName: "components/i-textarea" */).then(c => wrapFunctional(c.default || c)), - IToggle: () => import('../../node_modules/@inkline/inkline/src/components/IToggle/index.vue' /* webpackChunkName: "components/i-toggle" */).then(c => wrapFunctional(c.default || c)), - ITooltip: () => import('../../node_modules/@inkline/inkline/src/components/ITooltip/index.vue' /* webpackChunkName: "components/i-tooltip" */).then(c => wrapFunctional(c.default || c)) -} - -for (const name in components) { - Vue.component(name, components[name]) - Vue.component('Lazy' + name, components[name]) -} diff --git a/.nuxt/components/readme.md b/.nuxt/components/readme.md deleted file mode 100644 index 871d7c3d07..0000000000 --- a/.nuxt/components/readme.md +++ /dev/null @@ -1,73 +0,0 @@ -# Discovered Components - -This is an auto-generated list of components discovered by [nuxt/components](https://github.com/nuxt/components). - -You can directly use them in pages and other components without the need to import them. - -**Tip:** If a component is conditionally rendered with `v-if` and is big, it is better to use `Lazy` or `lazy-` prefix to lazy load. - -- `` | `` (../node_modules/@inkline/inkline/src/components/IBadge/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IAlert/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IBreadcrumbItem/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IBreadcrumb/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IButton/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IButtonGroup/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ICard/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ICheckable/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ICheckableGroup/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ICheckbox/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ICheckboxButton/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ICheckboxButtonGroup/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ICheckboxGroup/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ICollapsible/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ICollapsibleItem/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IColumn/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IContainer/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IDatatable/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IDropdown/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IDropdownDivider/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IDropdownItem/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IDropdownMenu/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IForm/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IFormError/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IFormGroup/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IFormLabel/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IHamburgerMenu/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IHeader/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IIcon/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IInput/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IInputNumber/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ILayout/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ILayoutAside/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ILayoutContent/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ILayoutFooter/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ILayoutHeader/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ILinkable/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IListGroup/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IListGroupItem/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ILoader/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IMedia/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IModal/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/INav/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/INavItem/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/INavbar/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/INavbarBrand/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/INavbarItems/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IPagination/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IPopover/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IProgress/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IProgressBar/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IRadio/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IRadioButton/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IRadioButtonGroup/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IRadioGroup/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IRow/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ISelect/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ISelectOption/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ISidebar/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ITab/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ITable/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ITabs/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ITextarea/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/IToggle/index.vue) -- `` | `` (../node_modules/@inkline/inkline/src/components/ITooltip/index.vue) diff --git a/.nuxt/components/utils.js b/.nuxt/components/utils.js deleted file mode 100644 index b79efd5d06..0000000000 --- a/.nuxt/components/utils.js +++ /dev/null @@ -1,30 +0,0 @@ -// nuxt/nuxt.js#8607 -export function wrapFunctional(options) { - if (!options || !options.functional) { - return options - } - - const propKeys = Array.isArray(options.props) ? options.props : Object.keys(options.props || {}) - - return { - render(h) { - const attrs = {} - const props = {} - - for (const key in this.$attrs) { - if (propKeys.includes(key)) { - props[key] = this.$attrs[key] - } else { - attrs[key] = this.$attrs[key] - } - } - - return h(options, { - on: this.$listeners, - attrs, - props, - scopedSlots: this.$scopedSlots, - }, this.$slots.default) - } - } -} diff --git a/.nuxt/empty.js b/.nuxt/empty.js deleted file mode 100644 index a3ac0d8486..0000000000 --- a/.nuxt/empty.js +++ /dev/null @@ -1 +0,0 @@ -// This file is intentionally left empty for noop aliases diff --git a/.nuxt/google-gtag.js b/.nuxt/google-gtag.js deleted file mode 100644 index 9728a0b365..0000000000 --- a/.nuxt/google-gtag.js +++ /dev/null @@ -1,29 +0,0 @@ -export default function ({app: {router}}, inject) { - if(true){ - // inject empty gtag function for disabled mode - inject('gtag', () => {}) - return - } - - window.dataLayer = window.dataLayer || [] - function gtag () { - dataLayer.push(arguments) - if(false){ - console.debug('gtag tracking called with following arguments:', arguments) - } - } - inject('gtag', gtag) - gtag('js', new Date()) - gtag('config','GTM-T5WRP8N',{ - "anonymize_ip": true, - "send_page_view": true -}) - - if(!false){ - router.afterEach((to) => { - gtag('config', 'GTM-T5WRP8N', {'page_path': to.fullPath}) - }) - } - - // additional accounts -} diff --git a/.nuxt/index.js b/.nuxt/index.js deleted file mode 100644 index 60529cd202..0000000000 --- a/.nuxt/index.js +++ /dev/null @@ -1,294 +0,0 @@ -import Vue from 'vue' -import Vuex from 'vuex' -import Meta from 'vue-meta' -import ClientOnly from 'vue-client-only' -import NoSsr from 'vue-no-ssr' -import { createRouter } from './router.js' -import NuxtChild from './components/nuxt-child.js' -import NuxtError from '../src/layouts/error.vue' -import Nuxt from './components/nuxt.js' -import App from './App.js' -import { setContext, getLocation, getRouteData, normalizeError } from './utils' -import { createStore } from './store.js' - -/* Plugins */ - -import nuxt_plugin_sentryserver_1cc25e10 from 'nuxt_plugin_sentryserver_1cc25e10' // Source: ./sentry.server.js (mode: 'server') -import nuxt_plugin_sentryclient_91ee26f0 from 'nuxt_plugin_sentryclient_91ee26f0' // Source: ./sentry.client.js (mode: 'client') -import nuxt_plugin_inkline_46ad5eb0 from 'nuxt_plugin_inkline_46ad5eb0' // Source: ./inkline.js (mode: 'all') -import nuxt_plugin_plugin_48f74394 from 'nuxt_plugin_plugin_48f74394' // Source: ./components/plugin.js (mode: 'all') -import nuxt_plugin_vuescrollto_269f6e3d from 'nuxt_plugin_vuescrollto_269f6e3d' // Source: ./vue-scrollto.js (mode: 'client') -import nuxt_plugin_googlegtag_12e1200a from 'nuxt_plugin_googlegtag_12e1200a' // Source: ./google-gtag.js (mode: 'client') -import nuxt_plugin_workbox_6358bc68 from 'nuxt_plugin_workbox_6358bc68' // Source: ./workbox.js (mode: 'client') -import nuxt_plugin_metaplugin_6bf9c90a from 'nuxt_plugin_metaplugin_6bf9c90a' // Source: ./pwa/meta.plugin.js (mode: 'all') -import nuxt_plugin_iconplugin_62aa7e22 from 'nuxt_plugin_iconplugin_62aa7e22' // Source: ./pwa/icon.plugin.js (mode: 'all') -import nuxt_plugin_main_9266bca6 from 'nuxt_plugin_main_9266bca6' // Source: ../src/plugins/main (mode: 'all') - -// Component: -Vue.component(ClientOnly.name, ClientOnly) - -// TODO: Remove in Nuxt 3: -Vue.component(NoSsr.name, { - ...NoSsr, - render (h, ctx) { - if (process.client && !NoSsr._warned) { - NoSsr._warned = true - - console.warn(' has been deprecated and will be removed in Nuxt 3, please use instead') - } - return NoSsr.render(h, ctx) - } -}) - -// Component: -Vue.component(NuxtChild.name, NuxtChild) -Vue.component('NChild', NuxtChild) - -// Component NuxtLink is imported in server.js or client.js - -// Component: -Vue.component(Nuxt.name, Nuxt) - -Object.defineProperty(Vue.prototype, '$nuxt', { - get() { - const globalNuxt = this.$root.$options.$nuxt - if (process.client && !globalNuxt && typeof window !== 'undefined') { - return window.$nuxt - } - return globalNuxt - }, - configurable: true -}) - -Vue.use(Meta, {"keyName":"head","attribute":"data-n-head","ssrAttribute":"data-n-head-ssr","tagIDKeyName":"hid"}) - -const defaultTransition = {"name":"page","mode":"out-in","appear":true,"appearClass":"appear","appearActiveClass":"appear-active","appearToClass":"appear-to"} - -const originalRegisterModule = Vuex.Store.prototype.registerModule - -function registerModule (path, rawModule, options = {}) { - const preserveState = process.client && ( - Array.isArray(path) - ? !!path.reduce((namespacedState, path) => namespacedState && namespacedState[path], this.state) - : path in this.state - ) - return originalRegisterModule.call(this, path, rawModule, { preserveState, ...options }) -} - -async function createApp(ssrContext, config = {}) { - const router = await createRouter(ssrContext, config) - - const store = createStore(ssrContext) - // Add this.$router into store actions/mutations - store.$router = router - - // Create Root instance - - // here we inject the router and store to all child components, - // making them available everywhere as `this.$router` and `this.$store`. - const app = { - head: {"name":"zkSync — Rely on math, not validators","titleTemplate":"zkSync — Rely on math, not validators","meta":[{"hid":"keywords","name":"keywords","content":"\"zkSync, Matter Labs, rollup, ZK rollup, zero confirmation, ZKP, zero-knowledge proofs, Ethereum, crypto, blockchain, permissionless, L2, secure payments, scalable"},{"hid":"author","name":"author","content":"https:\u002F\u002Fmatter-labs.io"},{"http-equiv":"pragma","content":"no-cache"},{"http-equiv":"cache-control","content":"no-cache , no-store, must-revalidate"},{"http-equiv":"expires","content":"0"},{"charset":"utf-8"},{"name":"viewport","content":"width=device-width, initial-scale=1"},{"hid":"description","name":"description","content":"zkSync is a ZK rollup solving Ethereum scalability with zero security compromises."},{"hid":"msapplication-TileImage","name":"msapplication-TileImage","content":"\u002Ficon.png"},{"hid":"theme-color","name":"theme-color","content":"#4e529a"},{"hid":"msapplication-TileColor","property":"msapplication-TileColor","content":"#4e529a"},{"hid":"author","name":"author","content":"https:\u002F\u002Fzksync.io"},{"hid":"publisher","name":"publisher","content":"https:\u002F\u002Fzksync.io"},{"hid":"apple-mobile-web-app-title","name":"apple-mobile-web-app-title","content":"zkSync — Rely on math, not validators"},{"hid":"theme-color","name":"theme-color","content":"#4e529a"},{"hid":"og:title","name":"og:title","content":"zkSync — Rely on math, not validators"},{"hid":"og:description","name":"og:description","content":"zkSync is a ZK rollup solving Ethereum scalability with zero security compromises."},{"hid":"og:type","name":"og:type","content":"website"},{"hid":"og:url","name":"og:url","content":"https:\u002F\u002Fzksync.io"},{"hid":"og:image","name":"og:image","content":"https:\u002F\u002Fzksync.io\u002Fsocial.jpg"},{"hid":"og:locale","name":"og:locale","content":"en_US"},{"hid":"og:site_name","name":"og:site_name","content":"zkSync — Rely on math, not validators"},{"hid":"twitter:card","name":"twitter:card","content":"https:\u002F\u002Fzksync.io\u002Fsocial.jpg"},{"hid":"twitter:site","name":"twitter:site","content":"@zksync"},{"hid":"twitter:creator","name":"twitter:creator","content":"@zksync"},{"hid":"twitter:title","name":"twitter:title","content":"zkSync — Rely on math, not validators"},{"hid":"twitter:description","name":"twitter:description","content":"zkSync is a ZK rollup solving Ethereum scalability with zero security compromises."},{"hid":"twitter:image","name":"twitter:image","content":"https:\u002F\u002Fzksync.io\u002Fsocial.jpg"}],"link":[{"rel":"preconnect","href":"https:\u002F\u002Ffonts.gstatic.com"},{"rel":"stylesheet","href":"https:\u002F\u002Ffonts.googleapis.com\u002Fcss2?family=Open+Sans:wght@400;600;700&display=swap"}],"style":[],"script":[]}, - - store, - router, - nuxt: { - defaultTransition, - transitions: [defaultTransition], - setTransitions (transitions) { - if (!Array.isArray(transitions)) { - transitions = [transitions] - } - transitions = transitions.map((transition) => { - if (!transition) { - transition = defaultTransition - } else if (typeof transition === 'string') { - transition = Object.assign({}, defaultTransition, { name: transition }) - } else { - transition = Object.assign({}, defaultTransition, transition) - } - return transition - }) - this.$options.nuxt.transitions = transitions - return transitions - }, - - err: null, - dateErr: null, - error (err) { - err = err || null - app.context._errored = Boolean(err) - err = err ? normalizeError(err) : null - let nuxt = app.nuxt // to work with @vue/composition-api, see https://github.com/nuxt/nuxt.js/issues/6517#issuecomment-573280207 - if (this) { - nuxt = this.nuxt || this.$options.nuxt - } - nuxt.dateErr = Date.now() - nuxt.err = err - // Used in src/server.js - if (ssrContext) { - ssrContext.nuxt.error = err - } - return err - } - }, - ...App - } - - // Make app available into store via this.app - store.app = app - - const next = ssrContext ? ssrContext.next : location => app.router.push(location) - // Resolve route - let route - if (ssrContext) { - route = router.resolve(ssrContext.url).route - } else { - const path = getLocation(router.options.base, router.options.mode) - route = router.resolve(path).route - } - - // Set context to app.context - await setContext(app, { - store, - route, - next, - error: app.nuxt.error.bind(app), - payload: ssrContext ? ssrContext.payload : undefined, - req: ssrContext ? ssrContext.req : undefined, - res: ssrContext ? ssrContext.res : undefined, - beforeRenderFns: ssrContext ? ssrContext.beforeRenderFns : undefined, - ssrContext - }) - - function inject(key, value) { - if (!key) { - throw new Error('inject(key, value) has no key provided') - } - if (value === undefined) { - throw new Error(`inject('${key}', value) has no value provided`) - } - - key = '$' + key - // Add into app - app[key] = value - // Add into context - if (!app.context[key]) { - app.context[key] = value - } - - // Add into store - store[key] = app[key] - - // Check if plugin not already installed - const installKey = '__nuxt_' + key + '_installed__' - if (Vue[installKey]) { - return - } - Vue[installKey] = true - // Call Vue.use() to install the plugin into vm - Vue.use(() => { - if (!Object.prototype.hasOwnProperty.call(Vue.prototype, key)) { - Object.defineProperty(Vue.prototype, key, { - get () { - return this.$root.$options[key] - } - }) - } - }) - } - - // Inject runtime config as $config - inject('config', config) - - if (process.client) { - // Replace store state before plugins execution - if (window.__NUXT__ && window.__NUXT__.state) { - store.replaceState(window.__NUXT__.state) - } - } - - // Add enablePreview(previewData = {}) in context for plugins - if (process.static && process.client) { - app.context.enablePreview = function (previewData = {}) { - app.previewData = Object.assign({}, previewData) - inject('preview', previewData) - } - } - // Plugin execution - - if (process.server && typeof nuxt_plugin_sentryserver_1cc25e10 === 'function') { - await nuxt_plugin_sentryserver_1cc25e10(app.context, inject) - } - - if (process.client && typeof nuxt_plugin_sentryclient_91ee26f0 === 'function') { - await nuxt_plugin_sentryclient_91ee26f0(app.context, inject) - } - - if (typeof nuxt_plugin_inkline_46ad5eb0 === 'function') { - await nuxt_plugin_inkline_46ad5eb0(app.context, inject) - } - - if (typeof nuxt_plugin_plugin_48f74394 === 'function') { - await nuxt_plugin_plugin_48f74394(app.context, inject) - } - - if (process.client && typeof nuxt_plugin_vuescrollto_269f6e3d === 'function') { - await nuxt_plugin_vuescrollto_269f6e3d(app.context, inject) - } - - if (process.client && typeof nuxt_plugin_googlegtag_12e1200a === 'function') { - await nuxt_plugin_googlegtag_12e1200a(app.context, inject) - } - - if (process.client && typeof nuxt_plugin_workbox_6358bc68 === 'function') { - await nuxt_plugin_workbox_6358bc68(app.context, inject) - } - - if (typeof nuxt_plugin_metaplugin_6bf9c90a === 'function') { - await nuxt_plugin_metaplugin_6bf9c90a(app.context, inject) - } - - if (typeof nuxt_plugin_iconplugin_62aa7e22 === 'function') { - await nuxt_plugin_iconplugin_62aa7e22(app.context, inject) - } - - if (typeof nuxt_plugin_main_9266bca6 === 'function') { - await nuxt_plugin_main_9266bca6(app.context, inject) - } - - // Lock enablePreview in context - if (process.static && process.client) { - app.context.enablePreview = function () { - console.warn('You cannot call enablePreview() outside a plugin.') - } - } - - // Wait for async component to be resolved first - await new Promise((resolve, reject) => { - router.replace(app.context.route.fullPath, resolve, (err) => { - // https://github.com/vuejs/vue-router/blob/v3.4.3/src/util/errors.js - if (!err._isRouter) return reject(err) - if (err.type !== 2 /* NavigationFailureType.redirected */) return resolve() - - // navigated to a different route in router guard - const unregister = router.afterEach(async (to, from) => { - if (process.server && ssrContext && ssrContext.url) { - ssrContext.url = to.fullPath - } - app.context.route = await getRouteData(to) - app.context.params = to.params || {} - app.context.query = to.query || {} - unregister() - resolve() - }) - }) - }) - - return { - store, - app, - router - } -} - -export { createApp, NuxtError } diff --git a/.nuxt/inkline.js b/.nuxt/inkline.js deleted file mode 100644 index bae2f28ca2..0000000000 --- a/.nuxt/inkline.js +++ /dev/null @@ -1,4 +0,0 @@ -import Vue from 'vue'; -import { Inkline } from '@inkline/inkline/src'; - -Vue.use(Inkline, {"config":{"variant":"dark"}}); diff --git a/.nuxt/jsonp.js b/.nuxt/jsonp.js deleted file mode 100644 index 702adf2189..0000000000 --- a/.nuxt/jsonp.js +++ /dev/null @@ -1,82 +0,0 @@ -const chunks = {} // chunkId => exports -const chunksInstalling = {} // chunkId => Promise -const failedChunks = {} - -function importChunk(chunkId, src) { - // Already installed - if (chunks[chunkId]) { - return Promise.resolve(chunks[chunkId]) - } - - // Failed loading - if (failedChunks[chunkId]) { - return Promise.reject(failedChunks[chunkId]) - } - - // Installing - if (chunksInstalling[chunkId]) { - return chunksInstalling[chunkId] - } - - // Set a promise in chunk cache - let resolve, reject - const promise = chunksInstalling[chunkId] = new Promise((_resolve, _reject) => { - resolve = _resolve - reject = _reject - }) - - // Clear chunk data from cache - delete chunks[chunkId] - - // Start chunk loading - const script = document.createElement('script') - script.charset = 'utf-8' - script.timeout = 120 - script.src = src - let timeout - - // Create error before stack unwound to get useful stacktrace later - const error = new Error() - - // Complete handlers - const onScriptComplete = script.onerror = script.onload = (event) => { - // Cleanups - clearTimeout(timeout) - delete chunksInstalling[chunkId] - - // Avoid mem leaks in IE - script.onerror = script.onload = null - - // Verify chunk is loaded - if (chunks[chunkId]) { - return resolve(chunks[chunkId]) - } - - // Something bad happened - const errorType = event && (event.type === 'load' ? 'missing' : event.type) - const realSrc = event && event.target && event.target.src - error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')' - error.name = 'ChunkLoadError' - error.type = errorType - error.request = realSrc - failedChunks[chunkId] = error - reject(error) - } - - // Timeout - timeout = setTimeout(() => { - onScriptComplete({ type: 'timeout', target: script }) - }, 120000) - - // Append script - document.head.appendChild(script) - - // Return promise - return promise -} - -export function installJsonp() { - window.__NUXT_JSONP__ = function (chunkId, exports) { chunks[chunkId] = exports } - window.__NUXT_JSONP_CACHE__ = chunks - window.__NUXT_IMPORT__ = importChunk -} diff --git a/.nuxt/loading.html b/.nuxt/loading.html deleted file mode 100644 index 5a85e9a9b7..0000000000 --- a/.nuxt/loading.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - -
Loading...
- - diff --git a/.nuxt/middleware.js b/.nuxt/middleware.js deleted file mode 100644 index 343ef9541f..0000000000 --- a/.nuxt/middleware.js +++ /dev/null @@ -1,3 +0,0 @@ -const middleware = {} - -export default middleware diff --git a/.nuxt/mixins/fetch.client.js b/.nuxt/mixins/fetch.client.js deleted file mode 100644 index 017e559e76..0000000000 --- a/.nuxt/mixins/fetch.client.js +++ /dev/null @@ -1,90 +0,0 @@ -import Vue from 'vue' -import { hasFetch, normalizeError, addLifecycleHook, createGetCounter } from '../utils' - -const isSsrHydration = (vm) => vm.$vnode && vm.$vnode.elm && vm.$vnode.elm.dataset && vm.$vnode.elm.dataset.fetchKey -const nuxtState = window.__NUXT__ - -export default { - beforeCreate () { - if (!hasFetch(this)) { - return - } - - this._fetchDelay = typeof this.$options.fetchDelay === 'number' ? this.$options.fetchDelay : 200 - - Vue.util.defineReactive(this, '$fetchState', { - pending: false, - error: null, - timestamp: Date.now() - }) - - this.$fetch = $fetch.bind(this) - addLifecycleHook(this, 'created', created) - addLifecycleHook(this, 'beforeMount', beforeMount) - } -} - -function beforeMount() { - if (!this._hydrated) { - return this.$fetch() - } -} - -function created() { - if (!isSsrHydration(this)) { - return - } - - // Hydrate component - this._hydrated = true - this._fetchKey = this.$vnode.elm.dataset.fetchKey - const data = nuxtState.fetch[this._fetchKey] - - // If fetch error - if (data && data._error) { - this.$fetchState.error = data._error - return - } - - // Merge data - for (const key in data) { - Vue.set(this.$data, key, data[key]) - } -} - -function $fetch() { - if (!this._fetchPromise) { - this._fetchPromise = $_fetch.call(this) - .then(() => { delete this._fetchPromise }) - } - return this._fetchPromise -} - -async function $_fetch() { - this.$nuxt.nbFetching++ - this.$fetchState.pending = true - this.$fetchState.error = null - this._hydrated = false - let error = null - const startTime = Date.now() - - try { - await this.$options.fetch.call(this) - } catch (err) { - if (process.dev) { - console.error('Error in fetch():', err) - } - error = normalizeError(err) - } - - const delayLeft = this._fetchDelay - (Date.now() - startTime) - if (delayLeft > 0) { - await new Promise(resolve => setTimeout(resolve, delayLeft)) - } - - this.$fetchState.error = error - this.$fetchState.pending = false - this.$fetchState.timestamp = Date.now() - - this.$nextTick(() => this.$nuxt.nbFetching--) -} diff --git a/.nuxt/mixins/fetch.server.js b/.nuxt/mixins/fetch.server.js deleted file mode 100644 index 24a00686f1..0000000000 --- a/.nuxt/mixins/fetch.server.js +++ /dev/null @@ -1,69 +0,0 @@ -import Vue from 'vue' -import { hasFetch, normalizeError, addLifecycleHook, purifyData, createGetCounter } from '../utils' - -async function serverPrefetch() { - if (!this._fetchOnServer) { - return - } - - // Call and await on $fetch - try { - await this.$options.fetch.call(this) - } catch (err) { - if (process.dev) { - console.error('Error in fetch():', err) - } - this.$fetchState.error = normalizeError(err) - } - this.$fetchState.pending = false - - // Define an ssrKey for hydration - this._fetchKey = this._fetchKey || this.$ssrContext.fetchCounters['']++ - - // Add data-fetch-key on parent element of Component - const attrs = this.$vnode.data.attrs = this.$vnode.data.attrs || {} - attrs['data-fetch-key'] = this._fetchKey - - // Add to ssrContext for window.__NUXT__.fetch - - if (this.$ssrContext.nuxt.fetch[this._fetchKey] !== undefined) { - console.warn(`Duplicate fetch key detected (${this._fetchKey}). This may lead to unexpected results.`) - } - - this.$ssrContext.nuxt.fetch[this._fetchKey] = - this.$fetchState.error ? { _error: this.$fetchState.error } : purifyData(this._data) -} - -export default { - created() { - if (!hasFetch(this)) { - return - } - - if (typeof this.$options.fetchOnServer === 'function') { - this._fetchOnServer = this.$options.fetchOnServer.call(this) !== false - } else { - this._fetchOnServer = this.$options.fetchOnServer !== false - } - - const defaultKey = this.$options._scopeId || this.$options.name || '' - const getCounter = createGetCounter(this.$ssrContext.fetchCounters, defaultKey) - - if (typeof this.$options.fetchKey === 'function') { - this._fetchKey = this.$options.fetchKey.call(this, getCounter) - } else { - const key = 'string' === typeof this.$options.fetchKey ? this.$options.fetchKey : defaultKey - this._fetchKey = key ? key + ':' + getCounter(key) : String(getCounter(key)) - } - - // Added for remove vue undefined warning while ssr - this.$fetch = () => {} // issue #8043 - Vue.util.defineReactive(this, '$fetchState', { - pending: true, - error: null, - timestamp: Date.now() - }) - - addLifecycleHook(this, 'serverPrefetch', serverPrefetch) - } -} diff --git a/.nuxt/pwa/icon.plugin.js b/.nuxt/pwa/icon.plugin.js deleted file mode 100644 index 37aef22404..0000000000 --- a/.nuxt/pwa/icon.plugin.js +++ /dev/null @@ -1,5 +0,0 @@ -export default async function (ctx, inject) { - const icons = {"64x64":"/_nuxt/icons/icon_64x64.3825bf.png","120x120":"/_nuxt/icons/icon_120x120.3825bf.png","144x144":"/_nuxt/icons/icon_144x144.3825bf.png","152x152":"/_nuxt/icons/icon_152x152.3825bf.png","192x192":"/_nuxt/icons/icon_192x192.3825bf.png","384x384":"/_nuxt/icons/icon_384x384.3825bf.png","512x512":"/_nuxt/icons/icon_512x512.3825bf.png","ipad_1536x2048":"/_nuxt/icons/splash_ipad_1536x2048.3825bf.png","ipadpro9_1536x2048":"/_nuxt/icons/splash_ipadpro9_1536x2048.3825bf.png","ipadpro10_1668x2224":"/_nuxt/icons/splash_ipadpro10_1668x2224.3825bf.png","ipadpro12_2048x2732":"/_nuxt/icons/splash_ipadpro12_2048x2732.3825bf.png","iphonese_640x1136":"/_nuxt/icons/splash_iphonese_640x1136.3825bf.png","iphone6_50x1334":"/_nuxt/icons/splash_iphone6_50x1334.3825bf.png","iphoneplus_1080x1920":"/_nuxt/icons/splash_iphoneplus_1080x1920.3825bf.png","iphonex_1125x2436":"/_nuxt/icons/splash_iphonex_1125x2436.3825bf.png","iphonexr_828x1792":"/_nuxt/icons/splash_iphonexr_828x1792.3825bf.png","iphonexsmax_1242x2688":"/_nuxt/icons/splash_iphonexsmax_1242x2688.3825bf.png"} - const getIcon = size => icons[size + 'x' + size] || '' - inject('icon', getIcon) -} diff --git a/.nuxt/pwa/meta.json b/.nuxt/pwa/meta.json deleted file mode 100644 index 3fa5fb212c..0000000000 --- a/.nuxt/pwa/meta.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "title": "zksync-docs", - "meta": [ - { - "hid": "charset", - "charset": "utf-8" - }, - { - "hid": "viewport", - "name": "viewport", - "content": "width=device-width, initial-scale=1" - }, - { - "hid": "mobile-web-app-capable", - "name": "mobile-web-app-capable", - "content": "yes" - }, - { - "hid": "apple-mobile-web-app-title", - "name": "apple-mobile-web-app-title", - "content": "zksync-docs" - }, - { - "hid": "author", - "name": "author", - "content": "Matter Labs" - }, - { - "hid": "description", - "name": "description", - "content": "zkSync.io new landing" - }, - { - "hid": "og:type", - "name": "og:type", - "property": "og:type", - "content": "website" - }, - { - "hid": "og:title", - "name": "og:title", - "property": "og:title", - "content": "zksync-docs" - }, - { - "hid": "og:site_name", - "name": "og:site_name", - "property": "og:site_name", - "content": "zksync-docs" - }, - { - "hid": "og:description", - "name": "og:description", - "property": "og:description", - "content": "zkSync.io new landing" - } - ], - "link": [ - { - "hid": "shortcut-icon", - "rel": "shortcut icon", - "href": "/_nuxt/icons/icon_64x64.3825bf.png" - }, - { - "hid": "apple-touch-icon", - "rel": "apple-touch-icon", - "href": "/_nuxt/icons/icon_512x512.3825bf.png", - "sizes": "512x512" - }, - { - "rel": "manifest", - "href": "/_nuxt/manifest.9b892c1d.json", - "hid": "manifest" - } - ], - "htmlAttrs": { - "lang": "en" - } -} diff --git a/.nuxt/pwa/meta.plugin.js b/.nuxt/pwa/meta.plugin.js deleted file mode 100644 index 55768af5dc..0000000000 --- a/.nuxt/pwa/meta.plugin.js +++ /dev/null @@ -1,6 +0,0 @@ -import { mergeMeta } from './meta.utils' -import meta from './meta.json' - -export default function ({ app }) { - mergeMeta(app.head, meta) -} diff --git a/.nuxt/pwa/meta.utils.js b/.nuxt/pwa/meta.utils.js deleted file mode 100644 index 7e74a7668b..0000000000 --- a/.nuxt/pwa/meta.utils.js +++ /dev/null @@ -1,36 +0,0 @@ -export function mergeMeta (to, from) { - if (typeof to === 'function') { - // eslint-disable-next-line no-console - console.warn('Cannot merge meta. Avoid using head as a function!') - return - } - - for (const key in from) { - const value = from[key] - if (Array.isArray(value)) { - to[key] = to[key] || [] - for (const item of value) { - // Avoid duplicates - if ( - (item.hid && hasMeta(to[key], 'hid', item.hid)) || - (item.name && hasMeta(to[key], 'name', item.name)) - ) { - continue - } - // Add meta - to[key].push(item) - } - } else if (typeof value === 'object') { - to[key] = to[key] || {} - for (const attr in value) { - to[key][attr] = value[attr] - } - } else if (to[key] === undefined) { - to[key] = value - } - } -} - -function hasMeta (arr, key, val) { - return arr.find(obj => val ? obj[key] === val : obj[key]) -} diff --git a/.nuxt/router.js b/.nuxt/router.js deleted file mode 100644 index 514fe4e4a7..0000000000 --- a/.nuxt/router.js +++ /dev/null @@ -1,48 +0,0 @@ -import Vue from 'vue' -import Router from 'vue-router' -import { normalizeURL, decode } from 'ufo' -import { interopDefault } from './utils' -import scrollBehavior from './router.scrollBehavior.js' - -const _4ceb8f67 = () => interopDefault(import('../src/pages/index.vue' /* webpackChunkName: "pages/index" */)) - -const emptyFn = () => {} - -Vue.use(Router) - -export const routerOptions = { - mode: 'history', - base: '/', - linkActiveClass: 'nuxt-link-active', - linkExactActiveClass: 'nuxt-link-exact-active', - scrollBehavior, - - routes: [{ - path: "/", - component: _4ceb8f67, - name: "index" - }], - - fallback: false -} - -export function createRouter (ssrContext, config) { - const base = (config._app && config._app.basePath) || routerOptions.base - const router = new Router({ ...routerOptions, base }) - - // TODO: remove in Nuxt 3 - const originalPush = router.push - router.push = function push (location, onComplete = emptyFn, onAbort) { - return originalPush.call(this, location, onComplete, onAbort) - } - - const resolve = router.resolve.bind(router) - router.resolve = (to, current, append) => { - if (typeof to === 'string') { - to = normalizeURL(to) - } - return resolve(to, current, append) - } - - return router -} diff --git a/.nuxt/router.scrollBehavior.js b/.nuxt/router.scrollBehavior.js deleted file mode 100644 index 7da7835002..0000000000 --- a/.nuxt/router.scrollBehavior.js +++ /dev/null @@ -1,36 +0,0 @@ -export default async function (to, from, savedPosition) { - if (to.path !== from.path) { - this.app.$store.commit("scroll/setLastPath", from.path); - this.app.$store.commit("scroll/setLastScroll", savedPosition); - } - - if (savedPosition) { - return savedPosition; - } - - const findEl = (hash, x) => { - return ( - document.querySelector(hash) || - new Promise((resolve) => { - if (x > 100) { - return resolve(); - } - setTimeout(() => { - resolve(findEl(hash, ++x || 1)); - }, 200); - }) - ); - }; - - if (to.hash) { - const el = await findEl(to.hash); - const offsetTop = el.getBoundingClientRect().top + window.pageYOffset - 84; /* 84px - size of the header */ - if ("scrollBehavior" in document.documentElement.style) { - return window.scrollTo({ top: offsetTop, behavior: "smooth" }); - } else { - return window.scrollTo(0, offsetTop); - } - } - - return { x: 0, y: 0 }; -} diff --git a/.nuxt/routes.json b/.nuxt/routes.json deleted file mode 100644 index e04c550ef4..0000000000 --- a/.nuxt/routes.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "name": "index", - "path": "/", - "component": "/home/stanislav/matter-labs/zksync-docs/src/pages/index.vue", - "chunkName": "pages/index", - "_name": "_4ceb8f67" - } -] diff --git a/.nuxt/sentry.client.js b/.nuxt/sentry.client.js deleted file mode 100644 index 2ff57521ce..0000000000 --- a/.nuxt/sentry.client.js +++ /dev/null @@ -1,32 +0,0 @@ -import VueLib from 'vue' -import merge from 'lodash.merge' -import * as Sentry from '@sentry/browser' -import { Dedupe, ExtraErrorData, ReportingObserver, RewriteFrames, Vue } from '@sentry/integrations' - -export default function (ctx, inject) { - /* eslint-disable object-curly-spacing, quote-props, quotes, key-spacing, comma-spacing */ - const config = { - dsn:"https:\u002F\u002F1f18c5c8e8fb4f2491be8d9daac67145@o496053.ingest.sentry.io\u002F5635442", - environment:"development", - tracesSampleRate:1 - } - - const runtimeConfigKey = "sentry" - if (ctx.$config && runtimeConfigKey && ctx.$config[runtimeConfigKey]) { - merge(config, ctx.$config[runtimeConfigKey].config, ctx.$config[runtimeConfigKey].clientConfig) - } - - config.integrations = [ - new Dedupe({}), - new ExtraErrorData({}), - new ReportingObserver({}), - new RewriteFrames({}), - new Vue({ Vue: VueLib, ...{"attachProps":true,"logErrors":true}}) - ] - - /* eslint-enable object-curly-spacing, quote-props, quotes, key-spacing, comma-spacing */ - Sentry.init(config) - - inject('sentry', Sentry) - ctx.$sentry = Sentry -} diff --git a/.nuxt/sentry.server.config.js b/.nuxt/sentry.server.config.js deleted file mode 100644 index ccdd35378e..0000000000 --- a/.nuxt/sentry.server.config.js +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable */ -export const config = {"environment":"development","tracesSampleRate":1} diff --git a/.nuxt/sentry.server.js b/.nuxt/sentry.server.js deleted file mode 100644 index 111d3b93a0..0000000000 --- a/.nuxt/sentry.server.js +++ /dev/null @@ -1,6 +0,0 @@ -/** @type {import('@nuxt/types').Module} */ -export default function (ctx, inject) { - const sentry = process.sentry || {} - inject('sentry', sentry) - ctx.$sentry = sentry -} diff --git a/.nuxt/server.js b/.nuxt/server.js deleted file mode 100644 index 63f660b011..0000000000 --- a/.nuxt/server.js +++ /dev/null @@ -1,312 +0,0 @@ -import Vue from 'vue' -import { joinURL, normalizeURL, withQuery } from 'ufo' -import fetch from 'node-fetch' -import middleware from './middleware.js' -import { - applyAsyncData, - middlewareSeries, - sanitizeComponent, - getMatchedComponents, - promisify -} from './utils.js' -import fetchMixin from './mixins/fetch.server' -import { createApp, NuxtError } from './index.js' -import NuxtLink from './components/nuxt-link.server.js' // should be included after ./index.js - -// Update serverPrefetch strategy -Vue.config.optionMergeStrategies.serverPrefetch = Vue.config.optionMergeStrategies.created - -// Fetch mixin -if (!Vue.__nuxt__fetch__mixin__) { - Vue.mixin(fetchMixin) - Vue.__nuxt__fetch__mixin__ = true -} - -if (!Vue.__original_use__) { - Vue.__original_use__ = Vue.use - Vue.__install_times__ = 0 - Vue.use = function (plugin, ...args) { - plugin.__nuxt_external_installed__ = Vue._installedPlugins.includes(plugin) - return Vue.__original_use__(plugin, ...args) - } -} -if (Vue.__install_times__ === 2) { - Vue.__install_times__ = 0 - Vue._installedPlugins = Vue._installedPlugins.filter(plugin => { - return plugin.__nuxt_external_installed__ === true - }) -} -Vue.__install_times__++ - -// Component: -Vue.component(NuxtLink.name, NuxtLink) -Vue.component('NLink', NuxtLink) - -if (!global.fetch) { global.fetch = fetch } - -const noopApp = () => new Vue({ render: h => h('div', { domProps: { id: '__nuxt' } }) }) - -const createNext = ssrContext => (opts) => { - // If static target, render on client-side - ssrContext.redirected = opts - if (ssrContext.target === 'static' || !ssrContext.res) { - ssrContext.nuxt.serverRendered = false - return - } - let fullPath = withQuery(opts.path, opts.query) - const $config = ssrContext.runtimeConfig || {} - const routerBase = ($config._app && $config._app.basePath) || '/' - if (!fullPath.startsWith('http') && (routerBase !== '/' && !fullPath.startsWith(routerBase))) { - fullPath = joinURL(routerBase, fullPath) - } - // Avoid loop redirect - if (decodeURI(fullPath) === decodeURI(ssrContext.url)) { - ssrContext.redirected = false - return - } - ssrContext.res.writeHead(opts.status, { - Location: normalizeURL(fullPath) - }) - ssrContext.res.end() -} - -// This exported function will be called by `bundleRenderer`. -// This is where we perform data-prefetching to determine the -// state of our application before actually rendering it. -// Since data fetching is async, this function is expected to -// return a Promise that resolves to the app instance. -export default async (ssrContext) => { - // Create ssrContext.next for simulate next() of beforeEach() when wanted to redirect - ssrContext.redirected = false - ssrContext.next = createNext(ssrContext) - // Used for beforeNuxtRender({ Components, nuxtState }) - ssrContext.beforeRenderFns = [] - // Nuxt object (window.{{globals.context}}, defaults to window.__NUXT__) - ssrContext.nuxt = { layout: 'default', data: [], fetch: {}, error: null, state: null, serverRendered: true, routePath: '' } - - ssrContext.fetchCounters = {} - - // Remove query from url is static target - - // Public runtime config - ssrContext.nuxt.config = ssrContext.runtimeConfig.public - if (ssrContext.nuxt.config._app) { - __webpack_public_path__ = joinURL(ssrContext.nuxt.config._app.cdnURL, ssrContext.nuxt.config._app.assetsPath) - } - // Create the app definition and the instance (created for each request) - const { app, router, store } = await createApp(ssrContext, ssrContext.runtimeConfig.private) - const _app = new Vue(app) - // Add ssr route path to nuxt context so we can account for page navigation between ssr and csr - ssrContext.nuxt.routePath = app.context.route.path - - // Add meta infos (used in renderer.js) - ssrContext.meta = _app.$meta() - - // Keep asyncData for each matched component in ssrContext (used in app/utils.js via this.$ssrContext) - ssrContext.asyncData = {} - - const beforeRender = async () => { - // Call beforeNuxtRender() methods - await Promise.all(ssrContext.beforeRenderFns.map(fn => promisify(fn, { Components, nuxtState: ssrContext.nuxt }))) - - ssrContext.rendered = () => { - // Add the state from the vuex store - ssrContext.nuxt.state = store.state - } - } - - const renderErrorPage = async () => { - // Don't server-render the page in static target - if (ssrContext.target === 'static') { - ssrContext.nuxt.serverRendered = false - } - - // Load layout for error page - const layout = (NuxtError.options || NuxtError).layout - const errLayout = typeof layout === 'function' ? layout.call(NuxtError, app.context) : layout - ssrContext.nuxt.layout = errLayout || 'default' - await _app.loadLayout(errLayout) - _app.setLayout(errLayout) - - await beforeRender() - return _app - } - const render404Page = () => { - app.context.error({ statusCode: 404, path: ssrContext.url, message: 'This page could not be found' }) - return renderErrorPage() - } - - const s = Date.now() - - // Components are already resolved by setContext -> getRouteData (app/utils.js) - const Components = getMatchedComponents(app.context.route) - - /* - ** Dispatch store nuxtServerInit - */ - if (store._actions && store._actions.nuxtServerInit) { - try { - await store.dispatch('nuxtServerInit', app.context) - } catch (err) { - console.debug('Error occurred when calling nuxtServerInit: ', err.message) - throw err - } - } - // ...If there is a redirect or an error, stop the process - if (ssrContext.redirected) { - return noopApp() - } - if (ssrContext.nuxt.error) { - return renderErrorPage() - } - - /* - ** Call global middleware (nuxt.config.js) - */ - let midd = [] - midd = midd.map((name) => { - if (typeof name === 'function') { - return name - } - if (typeof middleware[name] !== 'function') { - app.context.error({ statusCode: 500, message: 'Unknown middleware ' + name }) - } - return middleware[name] - }) - await middlewareSeries(midd, app.context) - // ...If there is a redirect or an error, stop the process - if (ssrContext.redirected) { - return noopApp() - } - if (ssrContext.nuxt.error) { - return renderErrorPage() - } - - /* - ** Set layout - */ - let layout = Components.length ? Components[0].options.layout : NuxtError.layout - if (typeof layout === 'function') { - layout = layout(app.context) - } - await _app.loadLayout(layout) - if (ssrContext.nuxt.error) { - return renderErrorPage() - } - layout = _app.setLayout(layout) - ssrContext.nuxt.layout = _app.layoutName - - /* - ** Call middleware (layout + pages) - */ - midd = [] - - layout = sanitizeComponent(layout) - if (layout.options.middleware) { - midd = midd.concat(layout.options.middleware) - } - - Components.forEach((Component) => { - if (Component.options.middleware) { - midd = midd.concat(Component.options.middleware) - } - }) - midd = midd.map((name) => { - if (typeof name === 'function') { - return name - } - if (typeof middleware[name] !== 'function') { - app.context.error({ statusCode: 500, message: 'Unknown middleware ' + name }) - } - return middleware[name] - }) - await middlewareSeries(midd, app.context) - // ...If there is a redirect or an error, stop the process - if (ssrContext.redirected) { - return noopApp() - } - if (ssrContext.nuxt.error) { - return renderErrorPage() - } - - /* - ** Call .validate() - */ - let isValid = true - try { - for (const Component of Components) { - if (typeof Component.options.validate !== 'function') { - continue - } - - isValid = await Component.options.validate(app.context) - - if (!isValid) { - break - } - } - } catch (validationError) { - // ...If .validate() threw an error - app.context.error({ - statusCode: validationError.statusCode || '500', - message: validationError.message - }) - return renderErrorPage() - } - - // ...If .validate() returned false - if (!isValid) { - // Render a 404 error page - return render404Page() - } - - // If no Components found, returns 404 - if (!Components.length) { - return render404Page() - } - - // Call asyncData & fetch hooks on components matched by the route. - const asyncDatas = await Promise.all(Components.map((Component) => { - const promises = [] - - // Call asyncData(context) - if (Component.options.asyncData && typeof Component.options.asyncData === 'function') { - const promise = promisify(Component.options.asyncData, app.context) - promise.then((asyncDataResult) => { - ssrContext.asyncData[Component.cid] = asyncDataResult - applyAsyncData(Component) - return asyncDataResult - }) - promises.push(promise) - } else { - promises.push(null) - } - - // Call fetch(context) - if (Component.options.fetch && Component.options.fetch.length) { - promises.push(Component.options.fetch(app.context)) - } else { - promises.push(null) - } - - return Promise.all(promises) - })) - - if (process.env.DEBUG && asyncDatas.length) console.debug('Data fetching ' + ssrContext.url + ': ' + (Date.now() - s) + 'ms') - - // datas are the first row of each - ssrContext.nuxt.data = asyncDatas.map(r => r[0] || {}) - - // ...If there is a redirect or an error, stop the process - if (ssrContext.redirected) { - return noopApp() - } - if (ssrContext.nuxt.error) { - return renderErrorPage() - } - - // Call beforeNuxtRender methods & add store state - await beforeRender() - - return _app -} diff --git a/.nuxt/store.js b/.nuxt/store.js deleted file mode 100644 index 8b5896b3a8..0000000000 --- a/.nuxt/store.js +++ /dev/null @@ -1,146 +0,0 @@ -import Vue from 'vue' -import Vuex from 'vuex' - -Vue.use(Vuex) - -const VUEX_PROPERTIES = ['state', 'getters', 'actions', 'mutations'] - -let store = {}; - -(function updateModules () { - store = normalizeRoot(require('../src/store/index.ts'), 'store/index.ts') - - // If store is an exported method = classic mode (deprecated) - - if (typeof store === 'function') { - return console.warn('Classic mode for store/ is deprecated and will be removed in Nuxt 3.') - } - - // Enforce store modules - store.modules = store.modules || {} - - resolveStoreModules(require('../src/store/scroll/index.ts'), 'scroll/index.ts') - - // If the environment supports hot reloading... - - if (process.client && module.hot) { - // Whenever any Vuex module is updated... - module.hot.accept([ - '../src/store/index.ts', - '../src/store/scroll/index.ts', - ], () => { - // Update `root.modules` with the latest definitions. - updateModules() - // Trigger a hot update in the store. - window.$nuxt.$store.hotUpdate(store) - }) - } -})() - -// createStore -export const createStore = store instanceof Function ? store : () => { - return new Vuex.Store(Object.assign({ - strict: (process.env.NODE_ENV !== 'production') - }, store)) -} - -function normalizeRoot (moduleData, filePath) { - moduleData = moduleData.default || moduleData - - if (moduleData.commit) { - throw new Error(`[nuxt] ${filePath} should export a method that returns a Vuex instance.`) - } - - if (typeof moduleData !== 'function') { - // Avoid TypeError: setting a property that has only a getter when overwriting top level keys - moduleData = Object.assign({}, moduleData) - } - return normalizeModule(moduleData, filePath) -} - -function normalizeModule (moduleData, filePath) { - if (moduleData.state && typeof moduleData.state !== 'function') { - console.warn(`'state' should be a method that returns an object in ${filePath}`) - - const state = Object.assign({}, moduleData.state) - // Avoid TypeError: setting a property that has only a getter when overwriting top level keys - moduleData = Object.assign({}, moduleData, { state: () => state }) - } - return moduleData -} - -function resolveStoreModules (moduleData, filename) { - moduleData = moduleData.default || moduleData - // Remove store src + extension (./foo/index.js -> foo/index) - const namespace = filename.replace(/\.(js|mjs|ts)$/, '') - const namespaces = namespace.split('/') - let moduleName = namespaces[namespaces.length - 1] - const filePath = `store/${filename}` - - moduleData = moduleName === 'state' - ? normalizeState(moduleData, filePath) - : normalizeModule(moduleData, filePath) - - // If src is a known Vuex property - if (VUEX_PROPERTIES.includes(moduleName)) { - const property = moduleName - const propertyStoreModule = getStoreModule(store, namespaces, { isProperty: true }) - - // Replace state since it's a function - mergeProperty(propertyStoreModule, moduleData, property) - return - } - - // If file is foo/index.js, it should be saved as foo - const isIndexModule = (moduleName === 'index') - if (isIndexModule) { - namespaces.pop() - moduleName = namespaces[namespaces.length - 1] - } - - const storeModule = getStoreModule(store, namespaces) - - for (const property of VUEX_PROPERTIES) { - mergeProperty(storeModule, moduleData[property], property) - } - - if (moduleData.namespaced === false) { - delete storeModule.namespaced - } -} - -function normalizeState (moduleData, filePath) { - if (typeof moduleData !== 'function') { - console.warn(`${filePath} should export a method that returns an object`) - const state = Object.assign({}, moduleData) - return () => state - } - return normalizeModule(moduleData, filePath) -} - -function getStoreModule (storeModule, namespaces, { isProperty = false } = {}) { - // If ./mutations.js - if (!namespaces.length || (isProperty && namespaces.length === 1)) { - return storeModule - } - - const namespace = namespaces.shift() - - storeModule.modules[namespace] = storeModule.modules[namespace] || {} - storeModule.modules[namespace].namespaced = true - storeModule.modules[namespace].modules = storeModule.modules[namespace].modules || {} - - return getStoreModule(storeModule.modules[namespace], namespaces, { isProperty }) -} - -function mergeProperty (storeModule, moduleData, property) { - if (!moduleData) { - return - } - - if (property === 'state') { - storeModule.state = moduleData || storeModule.state - } else { - storeModule[property] = Object.assign({}, storeModule[property], moduleData) - } -} diff --git a/.nuxt/utils.js b/.nuxt/utils.js deleted file mode 100644 index 10e046692e..0000000000 --- a/.nuxt/utils.js +++ /dev/null @@ -1,630 +0,0 @@ -import Vue from 'vue' -import { isSamePath as _isSamePath, joinURL, normalizeURL, withQuery, withoutTrailingSlash } from 'ufo' - -// window.{{globals.loadedCallback}} hook -// Useful for jsdom testing or plugins (https://github.com/tmpvar/jsdom#dealing-with-asynchronous-script-loading) -if (process.client) { - window.onNuxtReadyCbs = [] - window.onNuxtReady = (cb) => { - window.onNuxtReadyCbs.push(cb) - } -} - -export function createGetCounter (counterObject, defaultKey = '') { - return function getCounter (id = defaultKey) { - if (counterObject[id] === undefined) { - counterObject[id] = 0 - } - return counterObject[id]++ - } -} - -export function empty () {} - -export function globalHandleError (error) { - if (Vue.config.errorHandler) { - Vue.config.errorHandler(error) - } -} - -export function interopDefault (promise) { - return promise.then(m => m.default || m) -} - -export function hasFetch(vm) { - return vm.$options && typeof vm.$options.fetch === 'function' && !vm.$options.fetch.length -} -export function purifyData(data) { - if (process.env.NODE_ENV === 'production') { - return data - } - - return Object.entries(data).filter( - ([key, value]) => { - const valid = !(value instanceof Function) && !(value instanceof Promise) - if (!valid) { - console.warn(`${key} is not able to be stringified. This will break in a production environment.`) - } - return valid - } - ).reduce((obj, [key, value]) => { - obj[key] = value - return obj - }, {}) -} -export function getChildrenComponentInstancesUsingFetch(vm, instances = []) { - const children = vm.$children || [] - for (const child of children) { - if (child.$fetch) { - instances.push(child) - continue; // Don't get the children since it will reload the template - } - if (child.$children) { - getChildrenComponentInstancesUsingFetch(child, instances) - } - } - return instances -} - -export function applyAsyncData (Component, asyncData) { - if ( - // For SSR, we once all this function without second param to just apply asyncData - // Prevent doing this for each SSR request - !asyncData && Component.options.__hasNuxtData - ) { - return - } - - const ComponentData = Component.options._originDataFn || Component.options.data || function () { return {} } - Component.options._originDataFn = ComponentData - - Component.options.data = function () { - const data = ComponentData.call(this, this) - if (this.$ssrContext) { - asyncData = this.$ssrContext.asyncData[Component.cid] - } - return { ...data, ...asyncData } - } - - Component.options.__hasNuxtData = true - - if (Component._Ctor && Component._Ctor.options) { - Component._Ctor.options.data = Component.options.data - } -} - -export function sanitizeComponent (Component) { - // If Component already sanitized - if (Component.options && Component._Ctor === Component) { - return Component - } - if (!Component.options) { - Component = Vue.extend(Component) // fix issue #6 - Component._Ctor = Component - } else { - Component._Ctor = Component - Component.extendOptions = Component.options - } - // If no component name defined, set file path as name, (also fixes #5703) - if (!Component.options.name && Component.options.__file) { - Component.options.name = Component.options.__file - } - return Component -} - -export function getMatchedComponents (route, matches = false, prop = 'components') { - return Array.prototype.concat.apply([], route.matched.map((m, index) => { - return Object.keys(m[prop]).map((key) => { - matches && matches.push(index) - return m[prop][key] - }) - })) -} - -export function getMatchedComponentsInstances (route, matches = false) { - return getMatchedComponents(route, matches, 'instances') -} - -export function flatMapComponents (route, fn) { - return Array.prototype.concat.apply([], route.matched.map((m, index) => { - return Object.keys(m.components).reduce((promises, key) => { - if (m.components[key]) { - promises.push(fn(m.components[key], m.instances[key], m, key, index)) - } else { - delete m.components[key] - } - return promises - }, []) - })) -} - -export function resolveRouteComponents (route, fn) { - return Promise.all( - flatMapComponents(route, async (Component, instance, match, key) => { - // If component is a function, resolve it - if (typeof Component === 'function' && !Component.options) { - try { - Component = await Component() - } catch (error) { - // Handle webpack chunk loading errors - // This may be due to a new deployment or a network problem - if ( - error && - error.name === 'ChunkLoadError' && - typeof window !== 'undefined' && - window.sessionStorage - ) { - const timeNow = Date.now() - const previousReloadTime = parseInt(window.sessionStorage.getItem('nuxt-reload')) - - // check for previous reload time not to reload infinitely - if (!previousReloadTime || previousReloadTime + 60000 < timeNow) { - window.sessionStorage.setItem('nuxt-reload', timeNow) - window.location.reload(true /* skip cache */) - } - } - - throw error - } - } - match.components[key] = Component = sanitizeComponent(Component) - return typeof fn === 'function' ? fn(Component, instance, match, key) : Component - }) - ) -} - -export async function getRouteData (route) { - if (!route) { - return - } - // Make sure the components are resolved (code-splitting) - await resolveRouteComponents(route) - // Send back a copy of route with meta based on Component definition - return { - ...route, - meta: getMatchedComponents(route).map((Component, index) => { - return { ...Component.options.meta, ...(route.matched[index] || {}).meta } - }) - } -} - -export async function setContext (app, context) { - // If context not defined, create it - if (!app.context) { - app.context = { - isStatic: process.static, - isDev: true, - isHMR: false, - app, - store: app.store, - payload: context.payload, - error: context.error, - base: app.router.options.base, - env: {"LESSOPEN":"| /usr/bin/lesspipe %s","npm_package_optionalDependencies_fs_extra":"^9.1.0","npm_package_devDependencies__nuxt_typescript_build":"^2.0.5","npm_package_dependencies_vuepress_plugin_canonical":"^1.0.0","npm_package_dependencies__babel_plugin_syntax_jsx":"latest","USER":"stanislav","DATABASE_URL":"postgres://postgres@localhost/plasma","LC_TIME":"en_US.UTF-8","npm_package_stylelint_rules_selector_type_no_unknown_0":"true","npm_package_devDependencies__nuxtjs_dotenv":"1.4.1","npm_package_devDependencies__nuxt_types":"^2.15.2","npm_package_scripts_docs_build":"vuepress build docs","npm_config_version_commit_hooks":"true","npm_config_user_agent":"yarn/1.22.5 npm/? node/v14.14.0 linux x64","TEXTDOMAIN":"im-config","XDG_SEAT":"seat0","npm_package_dependencies_vue":"^2.6.12","npm_package_bugs_url":"https://github.com/matter-labs/zksync-docs/issues","npm_package_scripts_fmt_check":"prettier --check \"docs/**/*.md\"","npm_config_bin_links":"true","SSH_AGENT_PID":"3875","XDG_SESSION_TYPE":"x11","npm_node_execpath":"/home/stanislav/.nvm/versions/node/v14.14.0/bin/node","npm_package_stylelint_rules_plugin_rational_order_1_empty_line_between_groups":"false","npm_package_devDependencies_vue_property_decorator":"^9.1.2","npm_package_devDependencies_vue_class_component":"^7.2.6","npm_package_devDependencies__types_hammerjs":"^2.0.39","npm_package_dependencies__types_lodash":"^4.14.168","npm_package_dependencies__babel_core":"^7.13.1","npm_config_init_version":"1.0.0","SHLVL":"1","npm_package_dependencies_vue_scrollto":"^2.20.0","npm_package_dependencies__vuepress_core":"^1.8.2","OLDPWD":"/home/stanislav/matter-labs","QT4_IM_MODULE":"xim","HOME":"/home/stanislav","npm_package_stylelint_rules_no_descending_specificity":"true","npm_package_stylelint_extends_0":"stylelint-config-recommended","npm_package_devDependencies__typescript_eslint_parser":"^4.15.1","npm_package_scripts_md_deadlinks":"check-md","npm_package_browserslist_production_0":">0.2%","DESKTOP_SESSION":"ubuntu","NVM_BIN":"/home/stanislav/.nvm/versions/node/v14.14.0/bin","npm_package_stylelint_extends_1":"stylelint-config-rational-order","npm_package_lint_staged____css_scss_":"yarn run lint-css","npm_package_devDependencies_eslint_config_prettier":"^7.2.0","npm_package_dependencies__types_js_cookie":"^2.2.6","npm_package_browserslist_production_1":"not dead","NVM_INC":"/home/stanislav/.nvm/versions/node/v14.14.0/include/node","npm_package_optionalDependencies__sentry_webpack_plugin":"^1.14.1","npm_package_browserslist_production_2":"not op_mini all","npm_config_init_license":"MIT","GNOME_SHELL_SESSION_MODE":"ubuntu","GTK_MODULES":"gail:atk-bridge","YARN_WRAP_OUTPUT":"false","npm_package_stylelint_rules_scss_at_rule_no_unknown":"true","npm_package_devDependencies_vue_server_renderer":"^2.6.12","npm_package_dependencies__nuxtjs_sentry":"^5.0.1","npm_package_scripts_md_lint":"markdownlint docs","npm_config_version_tag_prefix":"v","LC_MONETARY":"en_US.UTF-8","npm_package_scripts_docs_deploy":"yarn docs:build && firebase deploy","DBUS_SESSION_BUS_ADDRESS":"unix:path=/run/user/1000/bus","npm_package_stylelint_rules_no_empty_source_1_severity":"warning","npm_package_dependencies__nuxtjs_pwa":"^3.3.5","npm_package_scripts_start_firebase":"firebase serve --only hosting","COLORTERM":"truecolor","npm_package_devDependencies_typescript":"<=4.1.5","npm_package_devDependencies_markdownlint":"^0.21.1","npm_package_devDependencies_cspell":"^4.1.5","npm_package_check_md_ignoreFootnotes":"true","npm_package_check_md_cwd":"./docs","npm_package_scripts_lint_css":"stylelint --fix \"**/*.scss\"","npm_package_description":"zkSync.io new landing","NVM_DIR":"/home/stanislav/.nvm","ZKSYNC_HOME":"/home/stanislav/matter-labs/zksync-dev","npm_package_readmeFilename":"README.md","npm_package_stylelint_plugins_0":"stylelint-order","npm_package_dependencies_nuxt_social_meta":"^0.0.5","npm_package_dependencies_nuxt":"^2.15.0","npm_package_homepage":"https://zksync.io/","MANDATORY_PATH":"/usr/share/gconf/ubuntu.mandatory.path","IM_CONFIG_PHASE":"2","npm_package_stylelint_plugins_1":"stylelint-scss","npm_package_devDependencies_ts_loader":"^8.0.17","npm_package_devDependencies_prettier":"^2.2.1","npm_package_devDependencies__nuxtjs_style_resources":"^1.0.0","npm_package_dependencies_vuepress":"^1.8.2","npm_package_dependencies_prismjs":"^1.23.0","npm_package_scripts_dev":"sh ./cli-check-env.sh && nuxt","LOGNAME":"stanislav","GTK_IM_MODULE":"ibus","npm_package_stylelint_plugins_2":"stylelint-config-rational-order/plugin","npm_package_devDependencies_vue_template_compiler":"^2.6.12","npm_package_dependencies_vuepress_plugin_fulltext_search":"^2.1.0","npm_package_dependencies_hammerjs":"^2.0.8","npm_package_dependencies__nuxtjs_google_gtag":"^1.0.4","DESKTOP_AUTOSTART_ID":"10e29f5b153b9ffe5162210541323714600000037970007","_":"/usr/bin/yarn","npm_package_stylelint_rules_plugin_rational_order_1_border_in_box_model":"false","npm_package_stylelint_rules_plugin_no_low_performance_animation_properties_0":"true","npm_package_stylelint_plugins_3":"stylelint-high-performance-animation","npm_package_devDependencies_node_sass":"4.14.1","npm_package_check_md_exitLevel":"warn","npm_package_scripts_zk_ci_prepare":"yarn nuxt-ci:build && yarn ci && yarn docs:build && yarn zk-copy","npm_package_scripts_ci":"yarn run fmt:check; yarn run cspell; yarn run md:lint; yarn run md:deadlinks","npm_package_private":"true","DEFAULTS_PATH":"/usr/share/gconf/ubuntu.default.path","npm_package_stylelint_plugins_4":"stylelint-declaration-use-variable","npm_config_registry":"https://registry.yarnpkg.com","USERNAME":"stanislav","XDG_SESSION_ID":"2","TERM":"xterm-256color","npm_package_devDependencies_stylelint":"^13.10.0","GNOME_DESKTOP_SESSION_ID":"this-is-deprecated","npm_config_ignore_scripts":"","WINDOWPATH":"2","npm_package_dependencies_css_loader":"^5.0.2","npm_package_scripts_audit_dependencies":"yarn npm audit --package-lock-only --audit-level critical --json | yarn-audit-html --output audit.html","npm_package_browserslist_development_0":"last 1 chrome version","PATH":"/tmp/yarn--1622117489887-0.6909904851199782:/home/stanislav/matter-labs/zksync-docs/node_modules/.bin:/home/stanislav/.config/yarn/link/node_modules/.bin:/home/stanislav/.nvm/versions/node/v14.14.0/libexec/lib/node_modules/npm/bin/node-gyp-bin:/home/stanislav/.nvm/versions/node/v14.14.0/lib/node_modules/npm/bin/node-gyp-bin:/home/stanislav/.nvm/versions/node/v14.14.0/bin/node_modules/npm/bin/node-gyp-bin:/home/stanislav/Documents/swift-5.3.2-RELEASE-ubuntu18.04/usr/bin:/home/stanislav/.yarn/bin:/home/stanislav/matter-labs/zksync-dev/bin:/home/stanislav/.nvm/versions/node/v14.14.0/bin:/home/stanislav/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin::/usr/local/ssl/bin:/usr/local/go/bin","NODE":"/home/stanislav/.nvm/versions/node/v14.14.0/bin/node","PAPERSIZE":"letter","SESSION_MANAGER":"local/stanislav-ThinkPad-X1-Carbon-Gen-8:@/tmp/.ICE-unix/3797,unix/stanislav-ThinkPad-X1-Carbon-Gen-8:/tmp/.ICE-unix/3797","npm_package_devDependencies__nuxtjs_eslint_config_typescript":"^5.0.0","npm_package_dependencies_postcss":"7.0.32","npm_package_browserslist_development_1":"last 1 firefox version","npm_package_name":"zksync-docs","XDG_MENU_PREFIX":"gnome-","GNOME_TERMINAL_SCREEN":"/org/gnome/Terminal/screen/10b9aeea_890d_4e62_9949_ddf4e293ca6b","LC_ADDRESS":"en_US.UTF-8","XDG_RUNTIME_DIR":"/run/user/1000","npm_package_scripts_fmt":"prettier --write \"docs/**/*.md\"","npm_package_browserslist_development_2":"last 1 safari version","DISPLAY":":0","LANG":"en_US.UTF-8","OPENSSL_DIR":"/usr/local/ssl","XDG_CURRENT_DESKTOP":"ubuntu:GNOME","LC_TELEPHONE":"en_US.UTF-8","npm_package_devDependencies_webpack":"^4.46.0","npm_package_devDependencies_eslint":"^7.20.0","LS_COLORS":"rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:","XDG_SESSION_DESKTOP":"ubuntu","XMODIFIERS":"@im=ibus","GNOME_TERMINAL_SERVICE":":1.79","XAUTHORITY":"/run/user/1000/gdm/Xauthority","npm_lifecycle_script":"sh ./cli-check-env.sh && nuxt","npm_package_devDependencies_dotenv":"8.2.0","SSH_AUTH_SOCK":"/run/user/1000/keyring/ssh","npm_package_dependencies_httpinvoke":"^1.4.0","npm_package_dependencies__nuxtjs_eslint_module":"^3.0.2","npm_package_scripts_cspell":"cspell docs/**/*.md","npm_config_version_git_message":"v%s","LC_NAME":"en_US.UTF-8","SHELL":"/bin/bash","npm_lifecycle_event":"dev","npm_package_stylelint_rules_selector_type_no_unknown_1_ignore_0":"custom-elements","npm_package_husky_hooks_commit_msg":"commitlint --format -E HUSKY_GIT_PARAMS","npm_package_husky_hooks_pre_commit":"lint-staged","npm_package_devDependencies_check_md":"^1.0.1","npm_package_devDependencies__types_babel__preset_env":"^7","npm_package_devDependencies__inkline_nuxt":"^2.3.5","npm_package_dependencies_vue_loader":"^15.9.6","npm_package_dependencies_prism":"^4.1.2","npm_package_dependencies__vue_cli_service":"^4.5.11","npm_package_scripts_docs_dev":"vuepress dev docs","npm_package_scripts_nuxt_ci_build":"yarn run nuxt-ci && yarn run generate --fail-on-error","npm_package_version":"2.1.2","QT_ACCESSIBILITY":"1","WEB3_API":"https://eth-mainnet.alchemyapi.io/v2/ZfzGmD-NkSYIU6wTdpUQkrJnAPKfUC_o","GDMSESSION":"ubuntu","npm_config_argv":"{\"remain\":[],\"cooked\":[\"run\",\"dev\"],\"original\":[\"dev\"]}","npm_package_stylelint_rules_plugin_no_low_performance_animation_properties_1_severity":"warning","npm_package_devDependencies_commitlint":"^11.0.0","npm_package_dependencies__types_prismjs":"^1.16.3","npm_package_scripts_nuxt_ci":"rm -fr node_modules && rm -rf 'public/*' && sh ./cli-check-env.sh && yarn install --immutable --immutable-cache","LESSCLOSE":"/usr/bin/lesspipe %s %s","npm_package_devDependencies_markdownlint_cli":"^0.24.0","npm_package_dependencies_markdown_it_footnote":"3.0.2","npm_package_dependencies_aos":"^2.3.4","npm_package_check_md_defaultIndex_0":"README.md","LC_MEASUREMENT":"en_US.UTF-8","npm_package_stylelint_rules_plugin_rational_order_0":"true","npm_package_devDependencies_sass_loader":"^10.1.1","npm_package_dependencies_vue_prism_editor":"^1.2.2","npm_config_version_git_tag":"true","npm_config_version_git_sign":"","TEXTDOMAINDIR":"/usr/share/locale/","GPG_AGENT_INFO":"/run/user/1000/gnupg/S.gpg-agent:0:1","LC_IDENTIFICATION":"en_US.UTF-8","npm_package_devDependencies_fork_ts_checker_webpack_plugin":"^6.1.0","npm_package_scripts_lint_ts":"eslint --fix \"**/*.{ts, js, vue}\"","npm_package_scripts_generate":"sh ./cli-check-env.sh && nuxt generate","npm_package_license":"MIT","npm_config_strict_ssl":"true","npm_config_username":"stanislavbezkor","XDG_VTNR":"2","QT_IM_MODULE":"ibus","npm_package_devDependencies__types_babel__core":"^7","npm_package_scripts_format":"prettier --write","PWD":"/home/stanislav/matter-labs/zksync-docs","npm_execpath":"/usr/share/yarn/bin/yarn.js","npm_package_stylelint_rules_sh_waqar_declaration_use_variable_0_0":"/color/","npm_package_scripts_zk_copy":"sh ./cli-merge.sh","CLUTTER_IM_MODULE":"xim","NVM_CD_FLAGS":"","XDG_DATA_DIRS":"/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop","XDG_CONFIG_DIRS":"/etc/xdg/xdg-ubuntu:/etc/xdg","npm_package_stylelint_rules_sh_waqar_declaration_use_variable_0_1":"font-size","npm_package_devDependencies_eslint_plugin_prettier_vue":"^2.1.1","npm_package_author_name":"Matter Labs","LC_NUMERIC":"en_US.UTF-8","npm_package_stylelint_rules_sh_waqar_declaration_use_variable_0_2":"font-family","npm_package_devDependencies_eslint_plugin_vue":"^7.6.0","npm_config_save_prefix":"^","npm_config_ignore_optional":"","LC_PAPER":"en_US.UTF-8","npm_package_stylelint_rules_sh_waqar_declaration_use_variable_0_3":"font-weight","VTE_VERSION":"5202","npm_package_lint_staged____ts_tsx__0":"yarn run lint-ts","INIT_CWD":"/home/stanislav/matter-labs/zksync-docs","ZK_SYNC_LIBRARY_PATH":"/home/stanislav/matter-labs/zksync-python/zks-crypto-linux-x64.so","npm_package_stylelint_rules_no_empty_source_0":"true","npm_package_lint_staged____ts_tsx__1":"yarn run format","npm_package_eslintConfig_extends":"@nuxtjs/eslint-config","npm_package_dependencies__babel_preset_env":"7.12.17","npm_config_email":"stanislavbezkor@gmail.com","NODE_ENV":"development","_applied":"true","SENTRY_DSN":"https://1f18c5c8e8fb4f2491be8d9daac67145@o496053.ingest.sentry.io/5635442","SITE_TITLE":"zkSync — Rely on math, not validators","SITE_DESCRIPTION":"zkSync is a ZK rollup solving Ethereum scalability with zero security compromises.","SITE_KEYWORDS":"\"zkSync, Matter Labs, rollup, ZK rollup, zero confirmation, ZKP, zero-knowledge proofs, Ethereum, crypto, blockchain, permissionless, L2, secure payments, scalable","GTAG_ID":"GTM-T5WRP8N"} - } - // Only set once - - if (context.req) { - app.context.req = context.req - } - if (context.res) { - app.context.res = context.res - } - - if (context.ssrContext) { - app.context.ssrContext = context.ssrContext - } - app.context.redirect = (status, path, query) => { - if (!status) { - return - } - app.context._redirected = true - // if only 1 or 2 arguments: redirect('/') or redirect('/', { foo: 'bar' }) - let pathType = typeof path - if (typeof status !== 'number' && (pathType === 'undefined' || pathType === 'object')) { - query = path || {} - path = status - pathType = typeof path - status = 302 - } - if (pathType === 'object') { - path = app.router.resolve(path).route.fullPath - } - // "/absolute/route", "./relative/route" or "../relative/route" - if (/(^[.]{1,2}\/)|(^\/(?!\/))/.test(path)) { - app.context.next({ - path, - query, - status - }) - } else { - path = withQuery(path, query) - if (process.server) { - app.context.next({ - path, - status - }) - } - if (process.client) { - // https://developer.mozilla.org/en-US/docs/Web/API/Location/replace - window.location.replace(path) - - // Throw a redirect error - throw new Error('ERR_REDIRECT') - } - } - } - if (process.server) { - app.context.beforeNuxtRender = fn => context.beforeRenderFns.push(fn) - } - if (process.client) { - app.context.nuxtState = window.__NUXT__ - } - } - - // Dynamic keys - const [currentRouteData, fromRouteData] = await Promise.all([ - getRouteData(context.route), - getRouteData(context.from) - ]) - - if (context.route) { - app.context.route = currentRouteData - } - - if (context.from) { - app.context.from = fromRouteData - } - - app.context.next = context.next - app.context._redirected = false - app.context._errored = false - app.context.isHMR = Boolean(context.isHMR) - app.context.params = app.context.route.params || {} - app.context.query = app.context.route.query || {} -} - -export function middlewareSeries (promises, appContext) { - if (!promises.length || appContext._redirected || appContext._errored) { - return Promise.resolve() - } - return promisify(promises[0], appContext) - .then(() => { - return middlewareSeries(promises.slice(1), appContext) - }) -} - -export function promisify (fn, context) { - let promise - if (fn.length === 2) { - console.warn('Callback-based asyncData, fetch or middleware calls are deprecated. ' + - 'Please switch to promises or async/await syntax') - - // fn(context, callback) - promise = new Promise((resolve) => { - fn(context, function (err, data) { - if (err) { - context.error(err) - } - data = data || {} - resolve(data) - }) - }) - } else { - promise = fn(context) - } - - if (promise && promise instanceof Promise && typeof promise.then === 'function') { - return promise - } - return Promise.resolve(promise) -} - -// Imported from vue-router -export function getLocation (base, mode) { - if (mode === 'hash') { - return window.location.hash.replace(/^#\//, '') - } - - base = decodeURI(base).slice(0, -1) // consideration is base is normalized with trailing slash - let path = decodeURI(window.location.pathname) - - if (base && path.startsWith(base)) { - path = path.slice(base.length) - } - - const fullPath = (path || '/') + window.location.search + window.location.hash - - return normalizeURL(fullPath) -} - -// Imported from path-to-regexp - -/** - * Compile a string to a template function for the path. - * - * @param {string} str - * @param {Object=} options - * @return {!function(Object=, Object=)} - */ -export function compile (str, options) { - return tokensToFunction(parse(str, options), options) -} - -export function getQueryDiff (toQuery, fromQuery) { - const diff = {} - const queries = { ...toQuery, ...fromQuery } - for (const k in queries) { - if (String(toQuery[k]) !== String(fromQuery[k])) { - diff[k] = true - } - } - return diff -} - -export function normalizeError (err) { - let message - if (!(err.message || typeof err === 'string')) { - try { - message = JSON.stringify(err, null, 2) - } catch (e) { - message = `[${err.constructor.name}]` - } - } else { - message = err.message || err - } - return { - ...err, - message, - statusCode: (err.statusCode || err.status || (err.response && err.response.status) || 500) - } -} - -/** - * The main path matching regexp utility. - * - * @type {RegExp} - */ -const PATH_REGEXP = new RegExp([ - // Match escaped characters that would otherwise appear in future matches. - // This allows the user to escape special characters that won't transform. - '(\\\\.)', - // Match Express-style parameters and un-named parameters with a prefix - // and optional suffixes. Matches appear as: - // - // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined] - // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined] - // "/*" => ["/", undefined, undefined, undefined, undefined, "*"] - '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))' -].join('|'), 'g') - -/** - * Parse a string for the raw tokens. - * - * @param {string} str - * @param {Object=} options - * @return {!Array} - */ -function parse (str, options) { - const tokens = [] - let key = 0 - let index = 0 - let path = '' - const defaultDelimiter = (options && options.delimiter) || '/' - let res - - while ((res = PATH_REGEXP.exec(str)) != null) { - const m = res[0] - const escaped = res[1] - const offset = res.index - path += str.slice(index, offset) - index = offset + m.length - - // Ignore already escaped sequences. - if (escaped) { - path += escaped[1] - continue - } - - const next = str[index] - const prefix = res[2] - const name = res[3] - const capture = res[4] - const group = res[5] - const modifier = res[6] - const asterisk = res[7] - - // Push the current path onto the tokens. - if (path) { - tokens.push(path) - path = '' - } - - const partial = prefix != null && next != null && next !== prefix - const repeat = modifier === '+' || modifier === '*' - const optional = modifier === '?' || modifier === '*' - const delimiter = res[2] || defaultDelimiter - const pattern = capture || group - - tokens.push({ - name: name || key++, - prefix: prefix || '', - delimiter, - optional, - repeat, - partial, - asterisk: Boolean(asterisk), - pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?') - }) - } - - // Match any characters still remaining. - if (index < str.length) { - path += str.substr(index) - } - - // If the path exists, push it onto the end. - if (path) { - tokens.push(path) - } - - return tokens -} - -/** - * Prettier encoding of URI path segments. - * - * @param {string} - * @return {string} - */ -function encodeURIComponentPretty (str, slashAllowed) { - const re = slashAllowed ? /[?#]/g : /[/?#]/g - return encodeURI(str).replace(re, (c) => { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) -} - -/** - * Encode the asterisk parameter. Similar to `pretty`, but allows slashes. - * - * @param {string} - * @return {string} - */ -function encodeAsterisk (str) { - return encodeURIComponentPretty(str, true) -} - -/** - * Escape a regular expression string. - * - * @param {string} str - * @return {string} - */ -function escapeString (str) { - return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, '\\$1') -} - -/** - * Escape the capturing group by escaping special characters and meaning. - * - * @param {string} group - * @return {string} - */ -function escapeGroup (group) { - return group.replace(/([=!:$/()])/g, '\\$1') -} - -/** - * Expose a method for transforming tokens into the path function. - */ -function tokensToFunction (tokens, options) { - // Compile all the tokens into regexps. - const matches = new Array(tokens.length) - - // Compile all the patterns before compilation. - for (let i = 0; i < tokens.length; i++) { - if (typeof tokens[i] === 'object') { - matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options)) - } - } - - return function (obj, opts) { - let path = '' - const data = obj || {} - const options = opts || {} - const encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent - - for (let i = 0; i < tokens.length; i++) { - const token = tokens[i] - - if (typeof token === 'string') { - path += token - - continue - } - - const value = data[token.name || 'pathMatch'] - let segment - - if (value == null) { - if (token.optional) { - // Prepend partial segment prefixes. - if (token.partial) { - path += token.prefix - } - - continue - } else { - throw new TypeError('Expected "' + token.name + '" to be defined') - } - } - - if (Array.isArray(value)) { - if (!token.repeat) { - throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`') - } - - if (value.length === 0) { - if (token.optional) { - continue - } else { - throw new TypeError('Expected "' + token.name + '" to not be empty') - } - } - - for (let j = 0; j < value.length; j++) { - segment = encode(value[j]) - - if (!matches[i].test(segment)) { - throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`') - } - - path += (j === 0 ? token.prefix : token.delimiter) + segment - } - - continue - } - - segment = token.asterisk ? encodeAsterisk(value) : encode(value) - - if (!matches[i].test(segment)) { - throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"') - } - - path += token.prefix + segment - } - - return path - } -} - -/** - * Get the flags for a regexp from the options. - * - * @param {Object} options - * @return {string} - */ -function flags (options) { - return options && options.sensitive ? '' : 'i' -} - -export function addLifecycleHook(vm, hook, fn) { - if (!vm.$options[hook]) { - vm.$options[hook] = [] - } - if (!vm.$options[hook].includes(fn)) { - vm.$options[hook].push(fn) - } -} - -export const urlJoin = joinURL - -export const stripTrailingSlash = withoutTrailingSlash - -export const isSamePath = _isSamePath - -export function setScrollRestoration (newVal) { - try { - window.history.scrollRestoration = newVal; - } catch(e) {} -} diff --git a/.nuxt/vetur/tags.json b/.nuxt/vetur/tags.json deleted file mode 100644 index ff34233503..0000000000 --- a/.nuxt/vetur/tags.json +++ /dev/null @@ -1,197 +0,0 @@ -{ - "IBadge": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IBadge/index.vue" - }, - "IAlert": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IAlert/index.vue" - }, - "IBreadcrumbItem": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IBreadcrumbItem/index.vue" - }, - "IBreadcrumb": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IBreadcrumb/index.vue" - }, - "IButton": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IButton/index.vue" - }, - "IButtonGroup": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IButtonGroup/index.vue" - }, - "ICard": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ICard/index.vue" - }, - "ICheckable": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ICheckable/index.vue" - }, - "ICheckableGroup": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ICheckableGroup/index.vue" - }, - "ICheckbox": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ICheckbox/index.vue" - }, - "ICheckboxButton": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ICheckboxButton/index.vue" - }, - "ICheckboxButtonGroup": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ICheckboxButtonGroup/index.vue" - }, - "ICheckboxGroup": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ICheckboxGroup/index.vue" - }, - "ICollapsible": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ICollapsible/index.vue" - }, - "ICollapsibleItem": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ICollapsibleItem/index.vue" - }, - "IColumn": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IColumn/index.vue" - }, - "IContainer": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IContainer/index.vue" - }, - "IDatatable": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IDatatable/index.vue" - }, - "IDropdown": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IDropdown/index.vue" - }, - "IDropdownDivider": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IDropdownDivider/index.vue" - }, - "IDropdownItem": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IDropdownItem/index.vue" - }, - "IDropdownMenu": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IDropdownMenu/index.vue" - }, - "IForm": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IForm/index.vue" - }, - "IFormError": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IFormError/index.vue" - }, - "IFormGroup": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IFormGroup/index.vue" - }, - "IFormLabel": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IFormLabel/index.vue" - }, - "IHamburgerMenu": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IHamburgerMenu/index.vue" - }, - "IHeader": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IHeader/index.vue" - }, - "IIcon": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IIcon/index.vue" - }, - "IInput": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IInput/index.vue" - }, - "IInputNumber": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IInputNumber/index.vue" - }, - "ILayout": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ILayout/index.vue" - }, - "ILayoutAside": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ILayoutAside/index.vue" - }, - "ILayoutContent": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ILayoutContent/index.vue" - }, - "ILayoutFooter": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ILayoutFooter/index.vue" - }, - "ILayoutHeader": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ILayoutHeader/index.vue" - }, - "ILinkable": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ILinkable/index.vue" - }, - "IListGroup": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IListGroup/index.vue" - }, - "IListGroupItem": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IListGroupItem/index.vue" - }, - "ILoader": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ILoader/index.vue" - }, - "IMedia": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IMedia/index.vue" - }, - "IModal": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IModal/index.vue" - }, - "INav": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/INav/index.vue" - }, - "INavItem": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/INavItem/index.vue" - }, - "INavbar": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/INavbar/index.vue" - }, - "INavbarBrand": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/INavbarBrand/index.vue" - }, - "INavbarItems": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/INavbarItems/index.vue" - }, - "IPagination": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IPagination/index.vue" - }, - "IPopover": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IPopover/index.vue" - }, - "IProgress": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IProgress/index.vue" - }, - "IProgressBar": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IProgressBar/index.vue" - }, - "IRadio": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IRadio/index.vue" - }, - "IRadioButton": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IRadioButton/index.vue" - }, - "IRadioButtonGroup": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IRadioButtonGroup/index.vue" - }, - "IRadioGroup": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IRadioGroup/index.vue" - }, - "IRow": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IRow/index.vue" - }, - "ISelect": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ISelect/index.vue" - }, - "ISelectOption": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ISelectOption/index.vue" - }, - "ISidebar": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ISidebar/index.vue" - }, - "ITab": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ITab/index.vue" - }, - "ITable": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ITable/index.vue" - }, - "ITabs": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ITabs/index.vue" - }, - "ITextarea": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ITextarea/index.vue" - }, - "IToggle": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/IToggle/index.vue" - }, - "ITooltip": { - "description": "Auto imported from ../node_modules/@inkline/inkline/src/components/ITooltip/index.vue" - } -} diff --git a/.nuxt/views/app.template.html b/.nuxt/views/app.template.html deleted file mode 100644 index 3427d3ea23..0000000000 --- a/.nuxt/views/app.template.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - {{ HEAD }} - - - {{ APP }} - - diff --git a/.nuxt/views/error.html b/.nuxt/views/error.html deleted file mode 100644 index 082a41fcb0..0000000000 --- a/.nuxt/views/error.html +++ /dev/null @@ -1,23 +0,0 @@ - - - -Server error - - - - - -
-
- -
Server error
-
{{ message }}
-
- -
- - diff --git a/.nuxt/vue-scrollto.js b/.nuxt/vue-scrollto.js deleted file mode 100644 index 35be47c1a9..0000000000 --- a/.nuxt/vue-scrollto.js +++ /dev/null @@ -1,8 +0,0 @@ -import Vue from 'vue' -import VueScrollTo from 'vue-scrollto' - -Vue.use(VueScrollTo, {}) - -export default function (ctx, inject) { - inject('scrollTo', VueScrollTo.scrollTo) -} diff --git a/.nuxt/workbox.js b/.nuxt/workbox.js deleted file mode 100644 index b2992c8a4f..0000000000 --- a/.nuxt/workbox.js +++ /dev/null @@ -1,20 +0,0 @@ -if ('serviceWorker' in navigator) { - navigator.serviceWorker.getRegistrations().then((registrations) => { - for (const registration of registrations) { - console.info('[pwa] [workbox] Unregistering service worker:', registration) - registration.unregister() - } - }) -} - -if ('caches' in window) { - caches.keys() - .then((keys) => { - if (keys.length) { - console.info('[pwa] [workbox] Cleaning cache for:', keys.join(', ')) - for (const key of keys) { - caches.delete(key) - } - } - }) -} diff --git a/.prettierignore b/.prettierignore index c296726d41..93a16c0a1e 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,4 +2,4 @@ node_modules .github .idea public -/docs/README.md +/docs/README.md \ No newline at end of file diff --git a/.releaserc b/.releaserc index 237db7cf20..020b0ccfdb 100644 --- a/.releaserc +++ b/.releaserc @@ -1,24 +1,25 @@ -{ - "branches": "main", - "debug": true, - "tagFormat": "${version}", - "addReleases": "top", - "npmPublish": false, - "plugins": [ - "@semantic-release/commit-analyzer", - "@semantic-release/release-notes-generator", - [ - "@semantic-release/npm", - { - "npmPublish": false - } - ], - "@semantic-release/github", - [ - "@semantic-release/changelog", - { - "changelogFile": "CHANGELOG.md" - } - ] - ] -} + + { + "branches": "main", + "debug": true, + "tagFormat": "${version}", + "addReleases": "top", + "npmPublish": false, + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + [ + "@semantic-release/npm", + { + "npmPublish": false + } + ], + "@semantic-release/github", + [ + "@semantic-release/changelog", + { + "changelogFile": "CHANGELOG.md" + } + ] + ] + } \ No newline at end of file diff --git a/.yarn/releases/yarn-3.1.1.cjs b/.yarn/releases/yarn-3.1.1.cjs old mode 100755 new mode 100644 diff --git a/.yarnrc.yml b/.yarnrc.yml index 3b47771042..f2ebfe3ab4 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,3 +1,3 @@ nodeLinker: node-modules -yarnPath: .yarn/releases/yarn-3.1.1.cjs +yarnPath: .yarn/releases/yarn-3.1.1.cjs \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ea62d5384..de5c12eb58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,4 +19,4 @@ # Changelog -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. \ No newline at end of file diff --git a/LICENSE b/LICENSE index 81e0d7afbd..98b215f94f 100644 --- a/LICENSE +++ b/LICENSE @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +SOFTWARE. \ No newline at end of file diff --git a/LICENSE-APACHE b/LICENSE-APACHE index 261eeb9e9f..f49a4e16e6 100644 --- a/LICENSE-APACHE +++ b/LICENSE-APACHE @@ -198,4 +198,4 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and - limitations under the License. + limitations under the License. \ No newline at end of file diff --git a/README.md b/README.md index 7306d9ea77..2cb5220420 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# zkSync v2.0 Documentation +# zkSync Era Documentation [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/matter-labs/zksync-web-v2-docs?color=%234E529A&label=changelog)](CHANGELOG.md) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/matter-labs/zksync-wallet/blob/master/LICENSE-MIT) [![GitHub license](https://img.shields.io/badge/license-Apache%202-blue)](https://github.com/matter-labs/zksync-wallet/blob/master/LICENSE-MIT) @@ -9,8 +9,8 @@ > zkEVM is a virtual machine that executes smart contracts in a way that is compatible with zero-knowledge-proof computation. > Our zkEVM keeps EVM semantics, but is also ZK-friendly and takes on traditional CPU architectures. -Constantly updated, [zkSync: Docs for 2.0](https://v2-docs.zksync.io/dev) offers the most complete knowledge about the upcoming **zkSync 2.0**. -zkSync 2 release has built-in EVM compatibility which makes it a single key to release EVM-compatible ZK rollup. +Constantly updated, [zkSync Era Docs](https://era.zksync.io/docs) offers the most complete knowledge about the upcoming **zkSync Era**. +zkSync Era release has built-in EVM compatibility which makes it a single key to release EVM-compatible ZK rollup. We call it [zkEVM](https://zksync.io/zkevm): long-awaited way to preserve the battle-tested code and knowledge gained after years of working with Solidity scaling it with Layer 2. @@ -23,7 +23,6 @@ The Frontend team chose the `yarn@berry` packager, so don't forget to install `n ```bash # configure yarn version: berry or specifically 3.1.1. $ yarn set version berry - ``` ### Main scripts @@ -34,7 +33,6 @@ $ yarn add # serve with hot reload at localhost:8080 $ yarn docs:dev - # static generation to dist $ yarn docs:build ``` @@ -49,28 +47,20 @@ You can check it locally as follows: ```bash # check dead links $ yarn lint:dead - # check spelling $ yarn lint:spell - # check with markdownlint $ yarn lint:mdl - # check with prettier $ yarn lint:fmt - # fix with markdownlint $ yarn fix:mdl - # fix with prettier $ yarn fix:fmt - # run all checks $ yarn ci - # run all fixes $ yarn ci:fix - # build for production $ yarn ci:build ``` @@ -138,4 +128,4 @@ Configuration in `.cSpell.json`: "name": "zksync", "path": "./cspell-zksync.txt" } ] -``` +``` \ No newline at end of file diff --git a/cli-dev.sh b/cli-dev.sh old mode 100755 new mode 100644 index 474bc47691..e098380a86 --- a/cli-dev.sh +++ b/cli-dev.sh @@ -5,20 +5,20 @@ CATEGORY="$1" ACTION="$2" if [ $CATEGORY == "clean" ]; then - if [ $ACTION == "yarn" ]; then - echo "Yarn garbage collection started" - echo "" - echo " - dropping node_modules folder..." - rm -rf node_modules - echo " Done" - echo " - removing .yarn cached files..." - rm -rf .yarn/cache .yarn/build-state.yml .yarn/install-state.gz - echo " Done" - echo " - cleaning yarn cache..." - yarn cache clean --all - printf " Done\n\n" - echo "All done!" - fi + if [ $ACTION == "yarn" ]; then + echo "Yarn garbage collection started" + echo "" + echo " - dropping node_modules folder..." + rm -rf node_modules + echo " Done" + echo " - removing .yarn cached files..." + rm -rf .yarn/cache .yarn/build-state.yml .yarn/install-state.gz + echo " Done" + echo " - cleaning yarn cache..." + yarn cache clean --all + printf " Done\n\n" + echo "All done!" + fi fi if [ $CATEGORY == "ci" ]; then diff --git a/commitlint.config.js b/commitlint.config.js index 2c193077b7..35bec48a2f 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -1,3 +1,3 @@ module.exports = ({ - "extends": ["@commitlint/config-conventional"], -}); +"extends": ["@commitlint/config-conventional"], +}); \ No newline at end of file diff --git a/cspell-zksync.txt b/cspell-zksync.txt index 1d75a7498d..950cd35c83 100644 --- a/cspell-zksync.txt +++ b/cspell-zksync.txt @@ -105,4 +105,4 @@ zksolc zksyncrobot precompiles vyper -zkvyper +zkvyper \ No newline at end of file diff --git a/cspell.json b/cspell.json index bc46c390df..497e5f6de9 100644 --- a/cspell.json +++ b/cspell.json @@ -1,13 +1,13 @@ { - "language": "en", - "ignorePaths": [ +"language": "en", +"ignorePaths": [ "node_modules/**", ".github/**", ".firebase/**", ".yarn/**", "dist/**" - ], - "dictionaries": [ +], +"dictionaries": [ "typescript", "cpp", "npm", @@ -30,13 +30,13 @@ "fullstack", "softwareTerms", "zksync" - ], - "dictionaryDefinitions": [ +], +"dictionaryDefinitions": [ { - "name": "zksync", - "addWords": true, - "path": "./cspell-zksync.txt" + "name": "zksync", + "addWords": true, + "path": "./cspell-zksync.txt" } - ], - "allowCompoundWords": true +], +"allowCompoundWords": true } diff --git a/docs/.vuepress/components/TocHeader.vue b/docs/.vuepress/components/TocHeader.vue deleted file mode 100644 index 3ff854fff6..0000000000 --- a/docs/.vuepress/components/TocHeader.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js deleted file mode 100644 index 9d493f4f5c..0000000000 --- a/docs/.vuepress/config.js +++ /dev/null @@ -1,388 +0,0 @@ -module.exports = { - title: "zkSync — Accelerating the mass adoption of crypto for personal sovereignty", // adding title gives us a header with search box - description: "zkSync is a ZK rollup that represents the end-game for scaling Ethereum - one that scales its technology and values without degrading security or decentralization", - dest: "dist", - markdown: { - toc: { includeLevel: [2, 3] }, - }, - extendMarkdown: (md) => { - // Add support of footnotes (like [^1]) in markdown - md.use(require("markdown-it-footnote")); - }, - plugins: [ - "vuepress-plugin-table-of-contents", - "@vuepress/back-to-top", - [ - "vuepress-plugin-dehydrate", - { - noSSR: "404.html", - noScript: [], - }, - ], - [ - "flexsearch", - { - /* - Plugin custom options - */ - maxSuggestions: 10, // how many search suggestions to show on the menu, the default is 10. - searchPaths: null, // an array of paths to search in, keep it null to search all docs. - searchHotkeys: ["s"], // Hot keys to activate the search input, the default is "s" but you can add more. - searchResultLength: 60, // the length of the suggestion result text by characters, the default is 60 characters. - splitHighlightedWords: " ", // regex or string to split highlighted words by, keep it null to use flexsearch.split - noExtraSpaceAfterHtmlTag: false, // don't add extra spaces in highlighted results - }, - ], - ], - themeConfig: { - algolia: { - appId: "LCWOUB1OFO", - apiKey: "02c1c8f11c747321c9a5938492820d67", - indexName: "v2-zksync", - algoliaOptions: { - hitsPerPage: 10, - facetFilters: "", - }, - }, - repo: "matter-labs/zksync-web-v2-docs", - editLinks: true, - docsDir: "docs", - docsBranch: "main", - logo: "/LogotypeLight.svg", - lastUpdated: "Last Updated", - - nav: [ - // { - // text: "User Docs", - // link: "/faq/", - // }, - { - text: "Developer Docs", - link: "/dev/", - }, - { - text: "Tools/SDKs", - link: "/api/", - }, - { - text: "Contact", - link: "/contact.html", - }, - { - text: "v2.0", - items: [ - { - text: "v2.0", - link: "/dev/", - }, - { - text: "v1.x", - link: "https://docs.zksync.io", - }, - ], - }, - ], - //displayAllHeaders: true, - sidebar: { - "/legal/": ["/legal/terms", "/legal/privacy"], - - "/dev": [ - { - title: "Introduction", - path: "/dev/", - collapsable: false, // optional, defaults to true - }, - { - title: "Getting started", - path: "/dev/fundamentals", - collapsable: false, - children: ["/dev/fundamentals/rollups.md", "/dev/fundamentals/zkSync.md", "/dev/fundamentals/testnet.md", "/dev/fundamentals/faq.md"], - }, - { - title: "Understanding zkSync", - path: "/dev/developer-guides", - collapsable: false, - children: [ - "/dev/developer-guides/transactions/transactions.md", - "/dev/developer-guides/transactions/blocks.md", - "/dev/developer-guides/contracts/system-contracts.md", - "/dev/developer-guides/aa.md", - "/dev/developer-guides/security.md", - "/dev/developer-guides/transactions/fee-model.md", - "/dev/developer-guides/bridging/bridging-asset.md", - "/dev/developer-guides/bridging/l1-l2-interop.md", - "/dev/developer-guides/bridging/l1-l2.md", - "/dev/developer-guides/bridging/l2-l1.md", - ], - }, - { - title: "Building on zkSync", - path: "/dev/developer-guides/building-on-zksync", - collapsable: false, - children: [ - "/dev/developer-guides/hello-world.md", - "/dev/developer-guides/contracts/contracts.md", - "/dev/developer-guides/contracts/contract-deployment.md", - "/dev/developer-guides/contracts/contract-verification.md", - "/dev/developer-guides/building-on-zksync/events.md", - "/dev/developer-guides/building-on-zksync/rpc.md", - "/dev/developer-guides/building-on-zksync/videos.md", - "/dev/developer-guides/building-on-zksync/fair-onboarding-alpha.md", - ], - }, - { - title: "Tutorials", - path: "/dev/tutorials", - collapsable: false, - children: [ - "/dev/tutorials/cross-chain-tutorial.md", - "/dev/tutorials/custom-aa-tutorial.md", - "/dev/tutorials/custom-paymaster-tutorial.md", - "/dev/tutorials/aa-daily-spend-limit.md", - ], - }, - { - title: "Troubleshooting", - path: "/dev/troubleshooting", - collapsable: false, - children: [ - "/dev/troubleshooting/changelog.md", - "/dev/troubleshooting/important-links.md", - "/dev/troubleshooting/status.md", - "/dev/troubleshooting/docs-contribution/docs.md", - "/dev/troubleshooting/docs-contribution/community-resources.md", - "/dev/troubleshooting/known-issues.md", - ], - }, - ], - "/api": [ - { - title: "Overview", // required - path: "/api/", // optional, which should be a absolute path. - collapsable: false, // optional, defaults to true - sidebarDepth: 0, // optional, defaults to 1 - }, - { - title: "Web3 API", // required - path: "/api/api.md", // optional, which should be a absolute path. - collapsable: false, // optional, defaults to true - sidebarDepth: 1, // optional, defaults to 1 - }, - // { - // title: "L1 contract interface", - // path: "/api/contracts.md", - // collapsable: false, // optional, defaults to true - // sidebarDepth: 1, // optional, defaults to 1 - // //children: ["/api/contracts/l1-l2.md"], - // }, - { - title: "JavaScript SDK", // required - path: "/api/js", // optional, which should be a absolute path. - collapsable: false, // optional, defaults to true - sidebarDepth: 1, // optional, defaults to 1 - children: [ - "/api/js/getting-started", - "/api/js/providers", - "/api/js/accounts", - "/api/js/accounts-l1-l2", - "/api/js/contracts", - "/api/js/features", - "/api/js/utils", - "/api/js/types", - "/api/js/front-end", - ], - }, - { - title: "Python SDK", // required - path: "/api/python/", // optional, which should be a absolute path. - collapsable: false, // optional, defaults to true - sidebarDepth: 1, // optional, defaults to 1 - children: [ - "/api/python/getting-started", - "/api/python/providers", - "/api/python/accounts", - "/api/python/accounts-l1-l2", - "/api/python/contract-interface", - "/api/python/types", - ], - }, - { - title: "Java SDK", // required - path: "/api/java/getting-started", // optional, which should be a absolute path. - collapsable: false, // optional, defaults to true - sidebarDepth: 1, // optional, defaults to 1 - children: ["/api/java/getting-started"], - }, - { - title: "GO SDK", // required - path: "/api/go/getting-started", // optional, which should be a absolute path. - collapsable: false, // optional, defaults to true - sidebarDepth: 1, // optional, defaults to 1 - children: ["/api/go/getting-started"], - }, - { - title: "Swift SDK", // required - path: "/api/swift/getting-started", // optional, which should be a absolute path. - collapsable: false, // optional, defaults to true - sidebarDepth: 1, // optional, defaults to 1 - children: ["/api/swift/getting-started", "/api/swift/providers"], - }, - { - title: "Hardhat", // required - path: "/api/hardhat", // optional, which should be a absolute path. - collapsable: false, // optional, defaults to true - sidebarDepth: 1, - children: [ - "/api/hardhat/getting-started", - "/api/hardhat/migrating-to-zksync", - "/api/hardhat/plugins", - "/api/hardhat/hardhat-zksync-solc", - "/api/hardhat/hardhat-zksync-vyper", - "/api/hardhat/hardhat-zksync-deploy", - "/api/hardhat/hardhat-zksync-chai-matchers", - "/api/hardhat/hardhat-zksync-verify", - "/api/hardhat/testing", - "/api/hardhat/compiling-libraries", - ], - }, - { - title: "Block Explorer", // required - path: "/api/tools/block-explorer", // optional, which should be a absolute path. - collapsable: false, // optional, defaults to true - sidebarDepth: 1, // optional, defaults to 1 - children: ["/api/tools/block-explorer/intro", "/api/tools/block-explorer/block-view", "/api/tools/block-explorer/contract-verification"], - }, - { - title: "zkSync CLI", // required - path: "/api/tools/zksync-cli/", // optional, which should be a absolute path. - collapsable: false, // optional, defaults to true - sidebarDepth: 0, // optional, defaults to 1 - }, - ], - }, - // - // { - // title: "Getting started", - // path: "/dev/", - // collapsable: false, // optional, defaults to true - // }, - // { - // title: "About the testnet", - // path: "/dev/testnet", - // collapsable: false, - // children: [ - // "/dev/testnet/user.md", - // "/dev/testnet/metamask.md", - // "/dev/testnet/important-links.md", - // "/dev/testnet/status.md", - // "/dev/testnet/known-issues.md", - // "/dev/testnet/reporting-issues.md", - // ], - // }, - // { - // title: "ZK rollup basics", - // path: "/dev/rollups.md", - // collapsable: false - // }, - // { - // title: "Understanding zkSync 2.0", - // path: "/dev/zksync-v2", - // collapsable: false, - // children: [ - // "/dev/zksync-v2/overview.md", - // "/dev/zksync-v2/system-contracts.md", - // "/dev/zksync-v2/handling-of-eth.md", - // "/dev/zksync-v2/fee-model.md", - // "/dev/zksync-v2/tx-types.md", - // "/dev/zksync-v2/contracts.md", - // "/dev/zksync-v2/aa.md", - // "/dev/zksync-v2/blocks-and-time.md", - // "/dev/zksync-v2/web3.md", - // "/dev/zksync-v2/confirmation-and-finality.md", - // "/dev/zksync-v2/temp-limits.md", - // "/dev/zksync-v2/decentralization-roadmap.md", - // "/dev/zksync-v2/l1-l2-interop.md", - // "/dev/zksync-v2/bridging-funds.md", - // ], - // }, - // { - // title: "Developer guide", - // path: "/dev/guide", - // collapsable: false, - // children: [ - // "/dev/guide/quickstart.md", - // "/dev/guide/hello-world.md", - // "/dev/guide/contract-verification.md", - // "/dev/guide/solidity-vyper.md", - // "/dev/guide/deploying.md", - // "/dev/guide/front-end-integration.md", - // "/dev/guide/l1-l2.md", - // "/dev/guide/l2-l1.md", - // "/dev/guide/build-custom-bridge.md", - // "/dev/guide/cross-chain-tutorial.md", - // "/dev/guide/custom-aa-tutorial.md", - // "/dev/guide/custom-paymaster-tutorial.md", - // "/dev/guide/migration-to-testnet-paymaster.md" - // ], - }, - // { - // title: "Introduction", // required - // path: "/dev/", // optional, which should be a absolute path. - // collapsable: false, // optional, defaults to true - // }, - // { - // title: "Comparison to v1.0", // required - // path: "/dev/v1-vs-v2.md", // optional, which should be a absolute path. - // collapsable: false, // optional, defaults to true - // }, - // { - // title: "Comparison to Ethereum", // required - // path: "/dev/ethereum-vs-v2.md", // optional, which should be a absolute path. - // collapsable: false, // optional, defaults to true - // }, - // { - // title: "Tutorials", - // path: "/dev/tutorials", - // collapsable: false, - // children: ["/dev/tutorials/connecting-to-metamask.md", "/dev/tutorials/bridging-funds.md", "/dev/tutorials/basic.md"], - // }, - // { - // title: "Communicating with L1", // required - // path: "/dev/communication-with-l1.md", // optional, which should be a absolute path. - // collapsable: false, // optional, defaults to true - // }, - // { - // title: "Troubleshooting", - // path: "/dev/troubleshooting.md", // optional, which should be a absolute path. - // } - - head: [ - ["script", { src: "/__/firebase/7.13.2/firebase-app.js", defer: true }, ""], - ["script", { src: "/__/firebase/7.13.2/firebase-analytics.js", defer: true }, ""], - ["script", { src: "/__/firebase/init.js", defer: true }, ""], - //Hack: Make clicking on the logo go to home url - [ - "script", - {}, - ` - const logoUrlChanger = setInterval(function() { - //Anchor above the logo image - const homeEls = document.getElementsByClassName("home-link"); - if(homeEls.length > 0) { - const homeEl = homeEls[0]; - homeEl.setAttribute("href", "https://zksync.io"); - homeEl.setAttribute("onclick", "document.location='https://zksync.io';return false;"); - clearInterval(logoUrlChanger); - } - - //Actual logo image - const logoEls = document.getElementsByClassName("logo") - if(logoEls.length > 0) { - const logoEl = logoEls[0] - logoEl.setAttribute("onclick", "document.location='https://zksync.io';return false;"); - clearInterval(logoUrlChanger); - } - }, 1000)`, - ], - ], -}; diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts new file mode 100644 index 0000000000..6c082e4694 --- /dev/null +++ b/docs/.vuepress/config.ts @@ -0,0 +1,46 @@ +import { defineUserConfig } from "vuepress"; +import docsearchPlugin from "@vuepress/plugin-docsearch"; +import theme from "./theme.js"; + +export default defineUserConfig({ + dest: "dist/docs", + + base: "/docs/", + + head: [ + ['link', { rel: 'preconnect', href: 'https://fonts.googleapis.com' }], + ['link', { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: true }], + ['link', { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap' }], + ], + + locales: { + "/": { + lang: "en-US", + title: "", + description: "zkSync is a user-centric zk rollup platform from Matter Labs. It is a scaling solution for Ethereum, already live on Ethereum mainnet.", + } + }, + + theme, + + plugins: [ + docsearchPlugin({ + appId: "LCWOUB1OFO", + apiKey: "9a4932a3e119b24ef5f19a85c08d9c81", + indexName: "v2-zksync", + locales: { + "/": { + placeholder: "Search the docs", + translations: { + button: { + buttonText: "Search", + buttonAriaLabel: "Search docs", + }, + }, + }, + }, + }), + ], + + shouldPrefetch: false, +}); diff --git a/docs/.vuepress/enhanceApp.js b/docs/.vuepress/enhanceApp.js deleted file mode 100644 index a881c09cb7..0000000000 --- a/docs/.vuepress/enhanceApp.js +++ /dev/null @@ -1,47 +0,0 @@ -const { redirects } = require('./redirects.js'); - -function getRedirectRoute(to) { -const exactRedirect = redirects - .filter((item) => item.exact) - .find((item) => to.path === item.from && item.to); - -if (exactRedirect) { - return { ...to, path: exactRedirect.to, replace: true }; -} - -return undefined; -} - -/// store variables for global use. -export let globalStore = {}; - -let spaLoaded = false; -export default ({ Vue, router }) => { - Vue.config.ignoredElements = [ - // Use a `RegExp` to ignore all elements that start with "toc-" - // 2.5+ only - /^toc-/ - ]; -router.beforeEach((to, from, next) => { - // Checking the startup route for the SPA to see if it - // exists in the SPA router objects. - const route = router.options.routes.find((obj) => obj.path == to.path); - - if (!spaLoaded && !route) { - // An external inbound link will cause the SPA to reload. - // Therefore after loading the SPA there is no need to run the - // redirect process again on each internal link. - spaLoaded = true; - - const redirect = getRedirectRoute(to); - - if (redirect) { - redirect.path = redirect.path.replace('//', '/'); - - // I use router.replace, instead of `router.push` here, because it doesn't mess with the history stack. - router.replace(redirect); - } - } - next(); -}); -}; \ No newline at end of file diff --git a/docs/.vuepress/navbar/en.ts b/docs/.vuepress/navbar/en.ts new file mode 100644 index 0000000000..f65ae745cc --- /dev/null +++ b/docs/.vuepress/navbar/en.ts @@ -0,0 +1,36 @@ +import { navbar } from "vuepress-theme-hope"; + +export const enNavbar = navbar([ + { + text: "Home", + link: "/" + }, + + { + text: "Developer docs", + link: "/dev/" + }, + + { + text: "Tools and SDK", + link: "/api/" + }, + { + text: "Contacts and Links", + link: "/contact.html" + }, + + { + text: "Versions", + children: [ + { + text: "zkSync Era", + link: "/dev/", + }, + { + text: "zkSync Lite", + link: "https://docs.zksync.io", + }, + ], + } +]); diff --git a/docs/.vuepress/navbar/index.ts b/docs/.vuepress/navbar/index.ts new file mode 100644 index 0000000000..7a1d3317ed --- /dev/null +++ b/docs/.vuepress/navbar/index.ts @@ -0,0 +1 @@ +export * from "./en.js"; \ No newline at end of file diff --git a/docs/.vuepress/public/LogoHero.svg b/docs/.vuepress/public/LogoHero.svg deleted file mode 100755 index a3e314a395..0000000000 --- a/docs/.vuepress/public/LogoHero.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/.vuepress/public/LogotypeLight.svg b/docs/.vuepress/public/LogotypeLight.svg deleted file mode 100755 index 826574a8af..0000000000 --- a/docs/.vuepress/public/LogotypeLight.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/public/README.md b/docs/.vuepress/public/README.md similarity index 100% rename from public/README.md rename to docs/.vuepress/public/README.md diff --git a/public/_nuxt/022f994.js b/docs/.vuepress/public/_nuxt/022f994.js similarity index 100% rename from public/_nuxt/022f994.js rename to docs/.vuepress/public/_nuxt/022f994.js diff --git a/public/_nuxt/05cc566.js b/docs/.vuepress/public/_nuxt/05cc566.js similarity index 100% rename from public/_nuxt/05cc566.js rename to docs/.vuepress/public/_nuxt/05cc566.js diff --git a/public/_nuxt/07204ed.js b/docs/.vuepress/public/_nuxt/07204ed.js similarity index 100% rename from public/_nuxt/07204ed.js rename to docs/.vuepress/public/_nuxt/07204ed.js diff --git a/public/_nuxt/08fc647.js b/docs/.vuepress/public/_nuxt/08fc647.js similarity index 100% rename from public/_nuxt/08fc647.js rename to docs/.vuepress/public/_nuxt/08fc647.js diff --git a/public/_nuxt/3acf056.js b/docs/.vuepress/public/_nuxt/3acf056.js similarity index 100% rename from public/_nuxt/3acf056.js rename to docs/.vuepress/public/_nuxt/3acf056.js diff --git a/public/_nuxt/3cf3a88.js b/docs/.vuepress/public/_nuxt/3cf3a88.js similarity index 100% rename from public/_nuxt/3cf3a88.js rename to docs/.vuepress/public/_nuxt/3cf3a88.js diff --git a/public/_nuxt/429ab63.js b/docs/.vuepress/public/_nuxt/429ab63.js similarity index 100% rename from public/_nuxt/429ab63.js rename to docs/.vuepress/public/_nuxt/429ab63.js diff --git a/public/_nuxt/4c8cf8f.js b/docs/.vuepress/public/_nuxt/4c8cf8f.js similarity index 100% rename from public/_nuxt/4c8cf8f.js rename to docs/.vuepress/public/_nuxt/4c8cf8f.js diff --git a/public/_nuxt/5e3d62e.js b/docs/.vuepress/public/_nuxt/5e3d62e.js similarity index 100% rename from public/_nuxt/5e3d62e.js rename to docs/.vuepress/public/_nuxt/5e3d62e.js diff --git a/public/_nuxt/5f041a3.js b/docs/.vuepress/public/_nuxt/5f041a3.js similarity index 100% rename from public/_nuxt/5f041a3.js rename to docs/.vuepress/public/_nuxt/5f041a3.js diff --git a/public/_nuxt/6a8659b.js b/docs/.vuepress/public/_nuxt/6a8659b.js similarity index 100% rename from public/_nuxt/6a8659b.js rename to docs/.vuepress/public/_nuxt/6a8659b.js diff --git a/public/_nuxt/6a9a12e.js b/docs/.vuepress/public/_nuxt/6a9a12e.js similarity index 100% rename from public/_nuxt/6a9a12e.js rename to docs/.vuepress/public/_nuxt/6a9a12e.js diff --git a/public/_nuxt/6c0fadd.js b/docs/.vuepress/public/_nuxt/6c0fadd.js similarity index 100% rename from public/_nuxt/6c0fadd.js rename to docs/.vuepress/public/_nuxt/6c0fadd.js diff --git a/public/_nuxt/6e15fd2.js b/docs/.vuepress/public/_nuxt/6e15fd2.js similarity index 100% rename from public/_nuxt/6e15fd2.js rename to docs/.vuepress/public/_nuxt/6e15fd2.js diff --git a/public/_nuxt/9dbf9b7.js b/docs/.vuepress/public/_nuxt/9dbf9b7.js similarity index 100% rename from public/_nuxt/9dbf9b7.js rename to docs/.vuepress/public/_nuxt/9dbf9b7.js diff --git a/public/_nuxt/LICENSES b/docs/.vuepress/public/_nuxt/LICENSES similarity index 100% rename from public/_nuxt/LICENSES rename to docs/.vuepress/public/_nuxt/LICENSES diff --git a/public/_nuxt/a39479c.js b/docs/.vuepress/public/_nuxt/a39479c.js similarity index 100% rename from public/_nuxt/a39479c.js rename to docs/.vuepress/public/_nuxt/a39479c.js diff --git a/public/_nuxt/aba3055.js b/docs/.vuepress/public/_nuxt/aba3055.js similarity index 100% rename from public/_nuxt/aba3055.js rename to docs/.vuepress/public/_nuxt/aba3055.js diff --git a/public/_nuxt/ad023a1.js b/docs/.vuepress/public/_nuxt/ad023a1.js similarity index 100% rename from public/_nuxt/ad023a1.js rename to docs/.vuepress/public/_nuxt/ad023a1.js diff --git a/public/_nuxt/b1a63d4.js b/docs/.vuepress/public/_nuxt/b1a63d4.js similarity index 100% rename from public/_nuxt/b1a63d4.js rename to docs/.vuepress/public/_nuxt/b1a63d4.js diff --git a/public/_nuxt/b2aeb6d.js b/docs/.vuepress/public/_nuxt/b2aeb6d.js similarity index 100% rename from public/_nuxt/b2aeb6d.js rename to docs/.vuepress/public/_nuxt/b2aeb6d.js diff --git a/public/_nuxt/c1bfe53.js b/docs/.vuepress/public/_nuxt/c1bfe53.js similarity index 100% rename from public/_nuxt/c1bfe53.js rename to docs/.vuepress/public/_nuxt/c1bfe53.js diff --git a/public/_nuxt/c940709.js b/docs/.vuepress/public/_nuxt/c940709.js similarity index 100% rename from public/_nuxt/c940709.js rename to docs/.vuepress/public/_nuxt/c940709.js diff --git a/public/_nuxt/css/012c286.css b/docs/.vuepress/public/_nuxt/css/012c286.css similarity index 100% rename from public/_nuxt/css/012c286.css rename to docs/.vuepress/public/_nuxt/css/012c286.css diff --git a/public/_nuxt/css/0f2b4d8.css b/docs/.vuepress/public/_nuxt/css/0f2b4d8.css similarity index 100% rename from public/_nuxt/css/0f2b4d8.css rename to docs/.vuepress/public/_nuxt/css/0f2b4d8.css diff --git a/public/_nuxt/css/14f47b8.css b/docs/.vuepress/public/_nuxt/css/14f47b8.css similarity index 100% rename from public/_nuxt/css/14f47b8.css rename to docs/.vuepress/public/_nuxt/css/14f47b8.css diff --git a/public/_nuxt/css/2221154.css b/docs/.vuepress/public/_nuxt/css/2221154.css similarity index 100% rename from public/_nuxt/css/2221154.css rename to docs/.vuepress/public/_nuxt/css/2221154.css diff --git a/public/_nuxt/css/2cbc39d.css b/docs/.vuepress/public/_nuxt/css/2cbc39d.css similarity index 100% rename from public/_nuxt/css/2cbc39d.css rename to docs/.vuepress/public/_nuxt/css/2cbc39d.css diff --git a/public/_nuxt/css/2f663d3.css b/docs/.vuepress/public/_nuxt/css/2f663d3.css similarity index 100% rename from public/_nuxt/css/2f663d3.css rename to docs/.vuepress/public/_nuxt/css/2f663d3.css diff --git a/public/_nuxt/css/63402a9.css b/docs/.vuepress/public/_nuxt/css/63402a9.css similarity index 100% rename from public/_nuxt/css/63402a9.css rename to docs/.vuepress/public/_nuxt/css/63402a9.css diff --git a/public/_nuxt/css/795b28e.css b/docs/.vuepress/public/_nuxt/css/795b28e.css similarity index 100% rename from public/_nuxt/css/795b28e.css rename to docs/.vuepress/public/_nuxt/css/795b28e.css diff --git a/public/_nuxt/css/a037713.css b/docs/.vuepress/public/_nuxt/css/a037713.css similarity index 100% rename from public/_nuxt/css/a037713.css rename to docs/.vuepress/public/_nuxt/css/a037713.css diff --git a/public/_nuxt/css/e74ffff.css b/docs/.vuepress/public/_nuxt/css/e74ffff.css similarity index 100% rename from public/_nuxt/css/e74ffff.css rename to docs/.vuepress/public/_nuxt/css/e74ffff.css diff --git a/public/_nuxt/css/f9190e9.css b/docs/.vuepress/public/_nuxt/css/f9190e9.css similarity index 100% rename from public/_nuxt/css/f9190e9.css rename to docs/.vuepress/public/_nuxt/css/f9190e9.css diff --git a/public/_nuxt/d0f35b7.js b/docs/.vuepress/public/_nuxt/d0f35b7.js similarity index 100% rename from public/_nuxt/d0f35b7.js rename to docs/.vuepress/public/_nuxt/d0f35b7.js diff --git a/public/_nuxt/e0b9647.js b/docs/.vuepress/public/_nuxt/e0b9647.js similarity index 100% rename from public/_nuxt/e0b9647.js rename to docs/.vuepress/public/_nuxt/e0b9647.js diff --git a/public/_nuxt/eb26aff.js b/docs/.vuepress/public/_nuxt/eb26aff.js similarity index 100% rename from public/_nuxt/eb26aff.js rename to docs/.vuepress/public/_nuxt/eb26aff.js diff --git a/public/_nuxt/f861278.js b/docs/.vuepress/public/_nuxt/f861278.js similarity index 100% rename from public/_nuxt/f861278.js rename to docs/.vuepress/public/_nuxt/f861278.js diff --git a/public/_nuxt/fe88811.js b/docs/.vuepress/public/_nuxt/fe88811.js similarity index 100% rename from public/_nuxt/fe88811.js rename to docs/.vuepress/public/_nuxt/fe88811.js diff --git a/public/_nuxt/fonts/FKGrotesk-Bold.2bbd645.woff b/docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Bold.2bbd645.woff similarity index 100% rename from public/_nuxt/fonts/FKGrotesk-Bold.2bbd645.woff rename to docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Bold.2bbd645.woff diff --git a/public/_nuxt/fonts/FKGrotesk-Bold.40893cb.ttf b/docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Bold.40893cb.ttf similarity index 100% rename from public/_nuxt/fonts/FKGrotesk-Bold.40893cb.ttf rename to docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Bold.40893cb.ttf diff --git a/public/_nuxt/fonts/FKGrotesk-Bold.ac0bda8.woff2 b/docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Bold.ac0bda8.woff2 similarity index 100% rename from public/_nuxt/fonts/FKGrotesk-Bold.ac0bda8.woff2 rename to docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Bold.ac0bda8.woff2 diff --git a/public/_nuxt/fonts/FKGrotesk-Bold.faa9400.eot b/docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Bold.faa9400.eot similarity index 100% rename from public/_nuxt/fonts/FKGrotesk-Bold.faa9400.eot rename to docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Bold.faa9400.eot diff --git a/public/_nuxt/fonts/FKGrotesk-Regular.032f14c.eot b/docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Regular.032f14c.eot similarity index 100% rename from public/_nuxt/fonts/FKGrotesk-Regular.032f14c.eot rename to docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Regular.032f14c.eot diff --git a/public/_nuxt/fonts/FKGrotesk-Regular.1f8acbb.woff b/docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Regular.1f8acbb.woff similarity index 100% rename from public/_nuxt/fonts/FKGrotesk-Regular.1f8acbb.woff rename to docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Regular.1f8acbb.woff diff --git a/public/_nuxt/fonts/FKGrotesk-Regular.2309d02.ttf b/docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Regular.2309d02.ttf similarity index 100% rename from public/_nuxt/fonts/FKGrotesk-Regular.2309d02.ttf rename to docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Regular.2309d02.ttf diff --git a/public/_nuxt/fonts/FKGrotesk-Regular.f377e04.woff2 b/docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Regular.f377e04.woff2 similarity index 100% rename from public/_nuxt/fonts/FKGrotesk-Regular.f377e04.woff2 rename to docs/.vuepress/public/_nuxt/fonts/FKGrotesk-Regular.f377e04.woff2 diff --git a/public/_nuxt/fonts/fa-brands-400.1059147.woff2 b/docs/.vuepress/public/_nuxt/fonts/fa-brands-400.1059147.woff2 similarity index 100% rename from public/_nuxt/fonts/fa-brands-400.1059147.woff2 rename to docs/.vuepress/public/_nuxt/fonts/fa-brands-400.1059147.woff2 diff --git a/public/_nuxt/fonts/fa-brands-400.34804e7.woff b/docs/.vuepress/public/_nuxt/fonts/fa-brands-400.34804e7.woff similarity index 100% rename from public/_nuxt/fonts/fa-brands-400.34804e7.woff rename to docs/.vuepress/public/_nuxt/fonts/fa-brands-400.34804e7.woff diff --git a/public/_nuxt/fonts/fa-brands-400.3848279.ttf b/docs/.vuepress/public/_nuxt/fonts/fa-brands-400.3848279.ttf similarity index 100% rename from public/_nuxt/fonts/fa-brands-400.3848279.ttf rename to docs/.vuepress/public/_nuxt/fonts/fa-brands-400.3848279.ttf diff --git a/public/_nuxt/fonts/fa-brands-400.6c1d3d5.eot b/docs/.vuepress/public/_nuxt/fonts/fa-brands-400.6c1d3d5.eot similarity index 100% rename from public/_nuxt/fonts/fa-brands-400.6c1d3d5.eot rename to docs/.vuepress/public/_nuxt/fonts/fa-brands-400.6c1d3d5.eot diff --git a/public/_nuxt/fonts/fa-duotone-900.63fd19c.woff b/docs/.vuepress/public/_nuxt/fonts/fa-duotone-900.63fd19c.woff similarity index 100% rename from public/_nuxt/fonts/fa-duotone-900.63fd19c.woff rename to docs/.vuepress/public/_nuxt/fonts/fa-duotone-900.63fd19c.woff diff --git a/public/_nuxt/fonts/fa-duotone-900.7749cf4.ttf b/docs/.vuepress/public/_nuxt/fonts/fa-duotone-900.7749cf4.ttf similarity index 100% rename from public/_nuxt/fonts/fa-duotone-900.7749cf4.ttf rename to docs/.vuepress/public/_nuxt/fonts/fa-duotone-900.7749cf4.ttf diff --git a/public/_nuxt/fonts/fa-duotone-900.a69d114.woff2 b/docs/.vuepress/public/_nuxt/fonts/fa-duotone-900.a69d114.woff2 similarity index 100% rename from public/_nuxt/fonts/fa-duotone-900.a69d114.woff2 rename to docs/.vuepress/public/_nuxt/fonts/fa-duotone-900.a69d114.woff2 diff --git a/public/_nuxt/fonts/fa-duotone-900.fbe8fb8.eot b/docs/.vuepress/public/_nuxt/fonts/fa-duotone-900.fbe8fb8.eot similarity index 100% rename from public/_nuxt/fonts/fa-duotone-900.fbe8fb8.eot rename to docs/.vuepress/public/_nuxt/fonts/fa-duotone-900.fbe8fb8.eot diff --git a/public/_nuxt/fonts/fa-light-300.8389ada.eot b/docs/.vuepress/public/_nuxt/fonts/fa-light-300.8389ada.eot similarity index 100% rename from public/_nuxt/fonts/fa-light-300.8389ada.eot rename to docs/.vuepress/public/_nuxt/fonts/fa-light-300.8389ada.eot diff --git a/public/_nuxt/fonts/fa-light-300.9ccb657.woff2 b/docs/.vuepress/public/_nuxt/fonts/fa-light-300.9ccb657.woff2 similarity index 100% rename from public/_nuxt/fonts/fa-light-300.9ccb657.woff2 rename to docs/.vuepress/public/_nuxt/fonts/fa-light-300.9ccb657.woff2 diff --git a/public/_nuxt/fonts/fa-light-300.d58496a.ttf b/docs/.vuepress/public/_nuxt/fonts/fa-light-300.d58496a.ttf similarity index 100% rename from public/_nuxt/fonts/fa-light-300.d58496a.ttf rename to docs/.vuepress/public/_nuxt/fonts/fa-light-300.d58496a.ttf diff --git a/public/_nuxt/fonts/fa-light-300.d8f8190.woff b/docs/.vuepress/public/_nuxt/fonts/fa-light-300.d8f8190.woff similarity index 100% rename from public/_nuxt/fonts/fa-light-300.d8f8190.woff rename to docs/.vuepress/public/_nuxt/fonts/fa-light-300.d8f8190.woff diff --git a/public/_nuxt/fonts/fa-regular-400.126e350.woff2 b/docs/.vuepress/public/_nuxt/fonts/fa-regular-400.126e350.woff2 similarity index 100% rename from public/_nuxt/fonts/fa-regular-400.126e350.woff2 rename to docs/.vuepress/public/_nuxt/fonts/fa-regular-400.126e350.woff2 diff --git a/public/_nuxt/fonts/fa-regular-400.6d74740.ttf b/docs/.vuepress/public/_nuxt/fonts/fa-regular-400.6d74740.ttf similarity index 100% rename from public/_nuxt/fonts/fa-regular-400.6d74740.ttf rename to docs/.vuepress/public/_nuxt/fonts/fa-regular-400.6d74740.ttf diff --git a/public/_nuxt/fonts/fa-regular-400.71f36b6.eot b/docs/.vuepress/public/_nuxt/fonts/fa-regular-400.71f36b6.eot similarity index 100% rename from public/_nuxt/fonts/fa-regular-400.71f36b6.eot rename to docs/.vuepress/public/_nuxt/fonts/fa-regular-400.71f36b6.eot diff --git a/public/_nuxt/fonts/fa-regular-400.7b842c9.woff b/docs/.vuepress/public/_nuxt/fonts/fa-regular-400.7b842c9.woff similarity index 100% rename from public/_nuxt/fonts/fa-regular-400.7b842c9.woff rename to docs/.vuepress/public/_nuxt/fonts/fa-regular-400.7b842c9.woff diff --git a/public/_nuxt/fonts/fa-solid-900.228fa19.eot b/docs/.vuepress/public/_nuxt/fonts/fa-solid-900.228fa19.eot similarity index 100% rename from public/_nuxt/fonts/fa-solid-900.228fa19.eot rename to docs/.vuepress/public/_nuxt/fonts/fa-solid-900.228fa19.eot diff --git a/public/_nuxt/fonts/fa-solid-900.ba0b120.ttf b/docs/.vuepress/public/_nuxt/fonts/fa-solid-900.ba0b120.ttf similarity index 100% rename from public/_nuxt/fonts/fa-solid-900.ba0b120.ttf rename to docs/.vuepress/public/_nuxt/fonts/fa-solid-900.ba0b120.ttf diff --git a/public/_nuxt/fonts/fa-solid-900.dbe8505.woff2 b/docs/.vuepress/public/_nuxt/fonts/fa-solid-900.dbe8505.woff2 similarity index 100% rename from public/_nuxt/fonts/fa-solid-900.dbe8505.woff2 rename to docs/.vuepress/public/_nuxt/fonts/fa-solid-900.dbe8505.woff2 diff --git a/public/_nuxt/fonts/fa-solid-900.e4506c4.woff b/docs/.vuepress/public/_nuxt/fonts/fa-solid-900.e4506c4.woff similarity index 100% rename from public/_nuxt/fonts/fa-solid-900.e4506c4.woff rename to docs/.vuepress/public/_nuxt/fonts/fa-solid-900.e4506c4.woff diff --git a/public/_nuxt/fonts/inkline.20a42ef.woff b/docs/.vuepress/public/_nuxt/fonts/inkline.20a42ef.woff similarity index 100% rename from public/_nuxt/fonts/inkline.20a42ef.woff rename to docs/.vuepress/public/_nuxt/fonts/inkline.20a42ef.woff diff --git a/public/_nuxt/fonts/inkline.ebe25a0.ttf b/docs/.vuepress/public/_nuxt/fonts/inkline.ebe25a0.ttf similarity index 100% rename from public/_nuxt/fonts/inkline.ebe25a0.ttf rename to docs/.vuepress/public/_nuxt/fonts/inkline.ebe25a0.ttf diff --git a/public/_nuxt/fonts/inkline.ff99d3f.eot b/docs/.vuepress/public/_nuxt/fonts/inkline.ff99d3f.eot similarity index 100% rename from public/_nuxt/fonts/inkline.ff99d3f.eot rename to docs/.vuepress/public/_nuxt/fonts/inkline.ff99d3f.eot diff --git a/public/_nuxt/icons/icon_120x120.3825bf.png b/docs/.vuepress/public/_nuxt/icons/icon_120x120.3825bf.png similarity index 100% rename from public/_nuxt/icons/icon_120x120.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/icon_120x120.3825bf.png diff --git a/public/_nuxt/icons/icon_144x144.3825bf.png b/docs/.vuepress/public/_nuxt/icons/icon_144x144.3825bf.png similarity index 100% rename from public/_nuxt/icons/icon_144x144.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/icon_144x144.3825bf.png diff --git a/public/_nuxt/icons/icon_152x152.3825bf.png b/docs/.vuepress/public/_nuxt/icons/icon_152x152.3825bf.png similarity index 100% rename from public/_nuxt/icons/icon_152x152.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/icon_152x152.3825bf.png diff --git a/public/_nuxt/icons/icon_192x192.3825bf.png b/docs/.vuepress/public/_nuxt/icons/icon_192x192.3825bf.png similarity index 100% rename from public/_nuxt/icons/icon_192x192.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/icon_192x192.3825bf.png diff --git a/public/_nuxt/icons/icon_384x384.3825bf.png b/docs/.vuepress/public/_nuxt/icons/icon_384x384.3825bf.png similarity index 100% rename from public/_nuxt/icons/icon_384x384.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/icon_384x384.3825bf.png diff --git a/public/_nuxt/icons/icon_512x512.3825bf.png b/docs/.vuepress/public/_nuxt/icons/icon_512x512.3825bf.png similarity index 100% rename from public/_nuxt/icons/icon_512x512.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/icon_512x512.3825bf.png diff --git a/public/_nuxt/icons/icon_64x64.3825bf.png b/docs/.vuepress/public/_nuxt/icons/icon_64x64.3825bf.png similarity index 100% rename from public/_nuxt/icons/icon_64x64.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/icon_64x64.3825bf.png diff --git a/public/_nuxt/icons/splash_ipad_1536x2048.3825bf.png b/docs/.vuepress/public/_nuxt/icons/splash_ipad_1536x2048.3825bf.png similarity index 100% rename from public/_nuxt/icons/splash_ipad_1536x2048.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/splash_ipad_1536x2048.3825bf.png diff --git a/public/_nuxt/icons/splash_ipadpro10_1668x2224.3825bf.png b/docs/.vuepress/public/_nuxt/icons/splash_ipadpro10_1668x2224.3825bf.png similarity index 100% rename from public/_nuxt/icons/splash_ipadpro10_1668x2224.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/splash_ipadpro10_1668x2224.3825bf.png diff --git a/public/_nuxt/icons/splash_ipadpro12_2048x2732.3825bf.png b/docs/.vuepress/public/_nuxt/icons/splash_ipadpro12_2048x2732.3825bf.png similarity index 100% rename from public/_nuxt/icons/splash_ipadpro12_2048x2732.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/splash_ipadpro12_2048x2732.3825bf.png diff --git a/public/_nuxt/icons/splash_ipadpro9_1536x2048.3825bf.png b/docs/.vuepress/public/_nuxt/icons/splash_ipadpro9_1536x2048.3825bf.png similarity index 100% rename from public/_nuxt/icons/splash_ipadpro9_1536x2048.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/splash_ipadpro9_1536x2048.3825bf.png diff --git a/public/_nuxt/icons/splash_iphone6_50x1334.3825bf.png b/docs/.vuepress/public/_nuxt/icons/splash_iphone6_50x1334.3825bf.png similarity index 100% rename from public/_nuxt/icons/splash_iphone6_50x1334.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/splash_iphone6_50x1334.3825bf.png diff --git a/public/_nuxt/icons/splash_iphoneplus_1080x1920.3825bf.png b/docs/.vuepress/public/_nuxt/icons/splash_iphoneplus_1080x1920.3825bf.png similarity index 100% rename from public/_nuxt/icons/splash_iphoneplus_1080x1920.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/splash_iphoneplus_1080x1920.3825bf.png diff --git a/public/_nuxt/icons/splash_iphonese_640x1136.3825bf.png b/docs/.vuepress/public/_nuxt/icons/splash_iphonese_640x1136.3825bf.png similarity index 100% rename from public/_nuxt/icons/splash_iphonese_640x1136.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/splash_iphonese_640x1136.3825bf.png diff --git a/public/_nuxt/icons/splash_iphonex_1125x2436.3825bf.png b/docs/.vuepress/public/_nuxt/icons/splash_iphonex_1125x2436.3825bf.png similarity index 100% rename from public/_nuxt/icons/splash_iphonex_1125x2436.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/splash_iphonex_1125x2436.3825bf.png diff --git a/public/_nuxt/icons/splash_iphonexr_828x1792.3825bf.png b/docs/.vuepress/public/_nuxt/icons/splash_iphonexr_828x1792.3825bf.png similarity index 100% rename from public/_nuxt/icons/splash_iphonexr_828x1792.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/splash_iphonexr_828x1792.3825bf.png diff --git a/public/_nuxt/icons/splash_iphonexsmax_1242x2688.3825bf.png b/docs/.vuepress/public/_nuxt/icons/splash_iphonexsmax_1242x2688.3825bf.png similarity index 100% rename from public/_nuxt/icons/splash_iphonexsmax_1242x2688.3825bf.png rename to docs/.vuepress/public/_nuxt/icons/splash_iphonexsmax_1242x2688.3825bf.png diff --git a/public/_nuxt/img/1inch.e5d5248.svg b/docs/.vuepress/public/_nuxt/img/1inch.e5d5248.svg similarity index 100% rename from public/_nuxt/img/1inch.e5d5248.svg rename to docs/.vuepress/public/_nuxt/img/1inch.e5d5248.svg diff --git a/public/_nuxt/img/1kx.321ed64.svg b/docs/.vuepress/public/_nuxt/img/1kx.321ed64.svg similarity index 100% rename from public/_nuxt/img/1kx.321ed64.svg rename to docs/.vuepress/public/_nuxt/img/1kx.321ed64.svg diff --git a/public/_nuxt/img/FKGrotesk-Bold.02eb70b.svg b/docs/.vuepress/public/_nuxt/img/FKGrotesk-Bold.02eb70b.svg similarity index 100% rename from public/_nuxt/img/FKGrotesk-Bold.02eb70b.svg rename to docs/.vuepress/public/_nuxt/img/FKGrotesk-Bold.02eb70b.svg diff --git a/public/_nuxt/img/FKGrotesk-Regular.caa5ecc.svg b/docs/.vuepress/public/_nuxt/img/FKGrotesk-Regular.caa5ecc.svg similarity index 100% rename from public/_nuxt/img/FKGrotesk-Regular.caa5ecc.svg rename to docs/.vuepress/public/_nuxt/img/FKGrotesk-Regular.caa5ecc.svg diff --git a/public/_nuxt/img/Frame 4062.07fb5e9.svg b/docs/.vuepress/public/_nuxt/img/Frame 4062.07fb5e9.svg similarity index 100% rename from public/_nuxt/img/Frame 4062.07fb5e9.svg rename to docs/.vuepress/public/_nuxt/img/Frame 4062.07fb5e9.svg diff --git a/public/_nuxt/img/Group 4051.6aed06b.svg b/docs/.vuepress/public/_nuxt/img/Group 4051.6aed06b.svg similarity index 100% rename from public/_nuxt/img/Group 4051.6aed06b.svg rename to docs/.vuepress/public/_nuxt/img/Group 4051.6aed06b.svg diff --git a/public/_nuxt/img/Group-1.8f5ff1b.svg b/docs/.vuepress/public/_nuxt/img/Group-1.8f5ff1b.svg similarity index 100% rename from public/_nuxt/img/Group-1.8f5ff1b.svg rename to docs/.vuepress/public/_nuxt/img/Group-1.8f5ff1b.svg diff --git a/public/_nuxt/img/aave.9ccb985.svg b/docs/.vuepress/public/_nuxt/img/aave.9ccb985.svg similarity index 100% rename from public/_nuxt/img/aave.9ccb985.svg rename to docs/.vuepress/public/_nuxt/img/aave.9ccb985.svg diff --git a/public/_nuxt/img/argent.8428545.svg b/docs/.vuepress/public/_nuxt/img/argent.8428545.svg similarity index 100% rename from public/_nuxt/img/argent.8428545.svg rename to docs/.vuepress/public/_nuxt/img/argent.8428545.svg diff --git a/public/_nuxt/img/balancer.1d6aa53.svg b/docs/.vuepress/public/_nuxt/img/balancer.1d6aa53.svg similarity index 100% rename from public/_nuxt/img/balancer.1d6aa53.svg rename to docs/.vuepress/public/_nuxt/img/balancer.1d6aa53.svg diff --git a/public/_nuxt/img/balancer.e73252d.svg b/docs/.vuepress/public/_nuxt/img/balancer.e73252d.svg similarity index 100% rename from public/_nuxt/img/balancer.e73252d.svg rename to docs/.vuepress/public/_nuxt/img/balancer.e73252d.svg diff --git a/public/_nuxt/img/binance.df6389e.svg b/docs/.vuepress/public/_nuxt/img/binance.df6389e.svg similarity index 100% rename from public/_nuxt/img/binance.df6389e.svg rename to docs/.vuepress/public/_nuxt/img/binance.df6389e.svg diff --git a/public/_nuxt/img/buter.08a65ae.png b/docs/.vuepress/public/_nuxt/img/buter.08a65ae.png similarity index 100% rename from public/_nuxt/img/buter.08a65ae.png rename to docs/.vuepress/public/_nuxt/img/buter.08a65ae.png diff --git a/public/_nuxt/img/clock.68ee0ee.svg b/docs/.vuepress/public/_nuxt/img/clock.68ee0ee.svg similarity index 100% rename from public/_nuxt/img/clock.68ee0ee.svg rename to docs/.vuepress/public/_nuxt/img/clock.68ee0ee.svg diff --git a/public/_nuxt/img/code.c8b172f.jpg b/docs/.vuepress/public/_nuxt/img/code.c8b172f.jpg similarity index 100% rename from public/_nuxt/img/code.c8b172f.jpg rename to docs/.vuepress/public/_nuxt/img/code.c8b172f.jpg diff --git a/public/_nuxt/img/coinbase-ventures.d71f86b.svg b/docs/.vuepress/public/_nuxt/img/coinbase-ventures.d71f86b.svg similarity index 100% rename from public/_nuxt/img/coinbase-ventures.d71f86b.svg rename to docs/.vuepress/public/_nuxt/img/coinbase-ventures.d71f86b.svg diff --git a/public/_nuxt/img/coinbase.e837c84.svg b/docs/.vuepress/public/_nuxt/img/coinbase.e837c84.svg similarity index 100% rename from public/_nuxt/img/coinbase.e837c84.svg rename to docs/.vuepress/public/_nuxt/img/coinbase.e837c84.svg diff --git a/public/_nuxt/img/coingecko-ventures 1.07dc31d.svg b/docs/.vuepress/public/_nuxt/img/coingecko-ventures 1.07dc31d.svg similarity index 100% rename from public/_nuxt/img/coingecko-ventures 1.07dc31d.svg rename to docs/.vuepress/public/_nuxt/img/coingecko-ventures 1.07dc31d.svg diff --git a/public/_nuxt/img/coingecko.007631f.png b/docs/.vuepress/public/_nuxt/img/coingecko.007631f.png similarity index 100% rename from public/_nuxt/img/coingecko.007631f.png rename to docs/.vuepress/public/_nuxt/img/coingecko.007631f.png diff --git a/public/_nuxt/img/coingecko.fef8a26.svg b/docs/.vuepress/public/_nuxt/img/coingecko.fef8a26.svg similarity index 100% rename from public/_nuxt/img/coingecko.fef8a26.svg rename to docs/.vuepress/public/_nuxt/img/coingecko.fef8a26.svg diff --git a/public/_nuxt/img/coinify-argent-750x375 1.1a31d9c.svg b/docs/.vuepress/public/_nuxt/img/coinify-argent-750x375 1.1a31d9c.svg similarity index 100% rename from public/_nuxt/img/coinify-argent-750x375 1.1a31d9c.svg rename to docs/.vuepress/public/_nuxt/img/coinify-argent-750x375 1.1a31d9c.svg diff --git a/public/_nuxt/img/curve.af02ac5.svg b/docs/.vuepress/public/_nuxt/img/curve.af02ac5.svg similarity index 100% rename from public/_nuxt/img/curve.af02ac5.svg rename to docs/.vuepress/public/_nuxt/img/curve.af02ac5.svg diff --git a/public/_nuxt/img/curve.c84c372.svg b/docs/.vuepress/public/_nuxt/img/curve.c84c372.svg similarity index 100% rename from public/_nuxt/img/curve.c84c372.svg rename to docs/.vuepress/public/_nuxt/img/curve.c84c372.svg diff --git a/public/_nuxt/img/decentralized.a676210.jpg b/docs/.vuepress/public/_nuxt/img/decentralized.a676210.jpg similarity index 100% rename from public/_nuxt/img/decentralized.a676210.jpg rename to docs/.vuepress/public/_nuxt/img/decentralized.a676210.jpg diff --git a/public/_nuxt/img/dekryptcapital.5fc2fe9.svg b/docs/.vuepress/public/_nuxt/img/dekryptcapital.5fc2fe9.svg similarity index 100% rename from public/_nuxt/img/dekryptcapital.5fc2fe9.svg rename to docs/.vuepress/public/_nuxt/img/dekryptcapital.5fc2fe9.svg diff --git a/public/_nuxt/img/dragonfly.8b17b72.svg b/docs/.vuepress/public/_nuxt/img/dragonfly.8b17b72.svg similarity index 100% rename from public/_nuxt/img/dragonfly.8b17b72.svg rename to docs/.vuepress/public/_nuxt/img/dragonfly.8b17b72.svg diff --git a/public/_nuxt/img/ethereumFoundation.3044b41.svg b/docs/.vuepress/public/_nuxt/img/ethereumFoundation.3044b41.svg similarity index 100% rename from public/_nuxt/img/ethereumFoundation.3044b41.svg rename to docs/.vuepress/public/_nuxt/img/ethereumFoundation.3044b41.svg diff --git a/public/_nuxt/img/fa-brands-400.f74b845.svg b/docs/.vuepress/public/_nuxt/img/fa-brands-400.f74b845.svg similarity index 100% rename from public/_nuxt/img/fa-brands-400.f74b845.svg rename to docs/.vuepress/public/_nuxt/img/fa-brands-400.f74b845.svg diff --git a/public/_nuxt/img/fa-duotone-900.a1636de.svg b/docs/.vuepress/public/_nuxt/img/fa-duotone-900.a1636de.svg similarity index 100% rename from public/_nuxt/img/fa-duotone-900.a1636de.svg rename to docs/.vuepress/public/_nuxt/img/fa-duotone-900.a1636de.svg diff --git a/public/_nuxt/img/fa-light-300.8ca3751.svg b/docs/.vuepress/public/_nuxt/img/fa-light-300.8ca3751.svg similarity index 100% rename from public/_nuxt/img/fa-light-300.8ca3751.svg rename to docs/.vuepress/public/_nuxt/img/fa-light-300.8ca3751.svg diff --git a/public/_nuxt/img/fa-regular-400.d74dfd8.svg b/docs/.vuepress/public/_nuxt/img/fa-regular-400.d74dfd8.svg similarity index 100% rename from public/_nuxt/img/fa-regular-400.d74dfd8.svg rename to docs/.vuepress/public/_nuxt/img/fa-regular-400.d74dfd8.svg diff --git a/public/_nuxt/img/fa-solid-900.5eef26d.svg b/docs/.vuepress/public/_nuxt/img/fa-solid-900.5eef26d.svg similarity index 100% rename from public/_nuxt/img/fa-solid-900.5eef26d.svg rename to docs/.vuepress/public/_nuxt/img/fa-solid-900.5eef26d.svg diff --git a/public/_nuxt/img/flexa.ad8ad45.svg b/docs/.vuepress/public/_nuxt/img/flexa.ad8ad45.svg similarity index 100% rename from public/_nuxt/img/flexa.ad8ad45.svg rename to docs/.vuepress/public/_nuxt/img/flexa.ad8ad45.svg diff --git a/public/_nuxt/img/gitcoin.a05c82f.svg b/docs/.vuepress/public/_nuxt/img/gitcoin.a05c82f.svg similarity index 100% rename from public/_nuxt/img/gitcoin.a05c82f.svg rename to docs/.vuepress/public/_nuxt/img/gitcoin.a05c82f.svg diff --git a/public/_nuxt/img/golem.249273f.svg b/docs/.vuepress/public/_nuxt/img/golem.249273f.svg similarity index 100% rename from public/_nuxt/img/golem.249273f.svg rename to docs/.vuepress/public/_nuxt/img/golem.249273f.svg diff --git a/public/_nuxt/img/hashed.622900d.svg b/docs/.vuepress/public/_nuxt/img/hashed.622900d.svg similarity index 100% rename from public/_nuxt/img/hashed.622900d.svg rename to docs/.vuepress/public/_nuxt/img/hashed.622900d.svg diff --git a/public/_nuxt/img/huobi.97958f4.svg b/docs/.vuepress/public/_nuxt/img/huobi.97958f4.svg similarity index 100% rename from public/_nuxt/img/huobi.97958f4.svg rename to docs/.vuepress/public/_nuxt/img/huobi.97958f4.svg diff --git a/public/_nuxt/img/imtoken.57e65c3.svg b/docs/.vuepress/public/_nuxt/img/imtoken.57e65c3.svg similarity index 100% rename from public/_nuxt/img/imtoken.57e65c3.svg rename to docs/.vuepress/public/_nuxt/img/imtoken.57e65c3.svg diff --git a/public/_nuxt/img/itamar.0c23bcf.jpeg b/docs/.vuepress/public/_nuxt/img/itamar.0c23bcf.jpeg similarity index 100% rename from public/_nuxt/img/itamar.0c23bcf.jpeg rename to docs/.vuepress/public/_nuxt/img/itamar.0c23bcf.jpeg diff --git a/public/_nuxt/img/logo.615763d.svg b/docs/.vuepress/public/_nuxt/img/logo.615763d.svg similarity index 100% rename from public/_nuxt/img/logo.615763d.svg rename to docs/.vuepress/public/_nuxt/img/logo.615763d.svg diff --git a/public/_nuxt/img/loopring.720730b.svg b/docs/.vuepress/public/_nuxt/img/loopring.720730b.svg similarity index 100% rename from public/_nuxt/img/loopring.720730b.svg rename to docs/.vuepress/public/_nuxt/img/loopring.720730b.svg diff --git a/public/_nuxt/img/moonpay.cb7356b.svg b/docs/.vuepress/public/_nuxt/img/moonpay.cb7356b.svg similarity index 100% rename from public/_nuxt/img/moonpay.cb7356b.svg rename to docs/.vuepress/public/_nuxt/img/moonpay.cb7356b.svg diff --git a/public/_nuxt/img/mykey.2f3fe7e.svg b/docs/.vuepress/public/_nuxt/img/mykey.2f3fe7e.svg similarity index 100% rename from public/_nuxt/img/mykey.2f3fe7e.svg rename to docs/.vuepress/public/_nuxt/img/mykey.2f3fe7e.svg diff --git a/public/_nuxt/img/numio.b38ff89.png b/docs/.vuepress/public/_nuxt/img/numio.b38ff89.png similarity index 100% rename from public/_nuxt/img/numio.b38ff89.png rename to docs/.vuepress/public/_nuxt/img/numio.b38ff89.png diff --git a/public/_nuxt/img/paraswap.f619f45.svg b/docs/.vuepress/public/_nuxt/img/paraswap.f619f45.svg similarity index 100% rename from public/_nuxt/img/paraswap.f619f45.svg rename to docs/.vuepress/public/_nuxt/img/paraswap.f619f45.svg diff --git a/public/_nuxt/img/placeholder.abb9008.svg b/docs/.vuepress/public/_nuxt/img/placeholder.abb9008.svg similarity index 100% rename from public/_nuxt/img/placeholder.abb9008.svg rename to docs/.vuepress/public/_nuxt/img/placeholder.abb9008.svg diff --git a/public/_nuxt/img/ripio.aad2767.svg b/docs/.vuepress/public/_nuxt/img/ripio.aad2767.svg similarity index 100% rename from public/_nuxt/img/ripio.aad2767.svg rename to docs/.vuepress/public/_nuxt/img/ripio.aad2767.svg diff --git a/public/_nuxt/img/shield.32ec66c.svg b/docs/.vuepress/public/_nuxt/img/shield.32ec66c.svg similarity index 100% rename from public/_nuxt/img/shield.32ec66c.svg rename to docs/.vuepress/public/_nuxt/img/shield.32ec66c.svg diff --git a/public/_nuxt/img/stablepay.3d324d8.svg b/docs/.vuepress/public/_nuxt/img/stablepay.3d324d8.svg similarity index 100% rename from public/_nuxt/img/stablepay.3d324d8.svg rename to docs/.vuepress/public/_nuxt/img/stablepay.3d324d8.svg diff --git a/public/_nuxt/img/storj.f6625c3.svg b/docs/.vuepress/public/_nuxt/img/storj.f6625c3.svg similarity index 100% rename from public/_nuxt/img/storj.f6625c3.svg rename to docs/.vuepress/public/_nuxt/img/storj.f6625c3.svg diff --git a/public/_nuxt/img/synthetix.4137a24.svg b/docs/.vuepress/public/_nuxt/img/synthetix.4137a24.svg similarity index 100% rename from public/_nuxt/img/synthetix.4137a24.svg rename to docs/.vuepress/public/_nuxt/img/synthetix.4137a24.svg diff --git a/public/_nuxt/img/usv.87e252f.svg b/docs/.vuepress/public/_nuxt/img/usv.87e252f.svg similarity index 100% rename from public/_nuxt/img/usv.87e252f.svg rename to docs/.vuepress/public/_nuxt/img/usv.87e252f.svg diff --git a/public/_nuxt/img/weights.93f4097.svg b/docs/.vuepress/public/_nuxt/img/weights.93f4097.svg similarity index 100% rename from public/_nuxt/img/weights.93f4097.svg rename to docs/.vuepress/public/_nuxt/img/weights.93f4097.svg diff --git a/public/_nuxt/img/zkv.3fec993.svg b/docs/.vuepress/public/_nuxt/img/zkv.3fec993.svg similarity index 100% rename from public/_nuxt/img/zkv.3fec993.svg rename to docs/.vuepress/public/_nuxt/img/zkv.3fec993.svg diff --git a/public/_nuxt/manifest.9b892c1d.json b/docs/.vuepress/public/_nuxt/manifest.9b892c1d.json similarity index 100% rename from public/_nuxt/manifest.9b892c1d.json rename to docs/.vuepress/public/_nuxt/manifest.9b892c1d.json diff --git a/docs/.vuepress/public/bounty-table.png b/docs/.vuepress/public/bounty-table.png deleted file mode 100644 index 989f4d58b788a927cc012c8c3c2e52a4142a90e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33779 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 SDwiY@_<>3(NEV74`uz_OsNIAB diff --git a/docs/.vuepress/public/chart.png b/docs/.vuepress/public/chart.png deleted file mode 100644 index 21b1a004d95f9d874803716b6579003a14206924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540332 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
~GmNZ%6FoViW!OZSPy2$ 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

tgeqWo0Hi_geCmC6lOi=;)eu)a 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�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