From 1d6952af87c04871bf7e3c7c413778e6cf9fc1b0 Mon Sep 17 00:00:00 2001 From: James Bayly <46693720+jamesbayly@users.noreply.github.com> Date: Mon, 19 Dec 2022 22:29:11 +1300 Subject: [PATCH] Vuepress2 (#254) * Vuepress2 migration * Finish Vuepress 2 migration * Update Node Version * Use Actions V3 * Update build * Fix Vuepress 2 build * Update package.json * Use node with size limits * Update Markdown semantics --- .github/workflows/deploy-prod.yml | 7 +- .github/workflows/deploy-staging.yml | 7 +- .github/workflows/pr.yml | 2 +- docs/.vuepress/config.js | 415 - docs/.vuepress/config.ts | 426 + .../img/{muti-chain.jpg => multi_chain.jpg} | Bin .../styles/{index.styl => index.scss} | 0 docs/.vuepress/styles/palette.scss | 10 + docs/.vuepress/styles/palette.styl | 10 - docs/README.md | 8 +- docs/academy/herocourse/module1.md | 138 +- docs/academy/herocourse/module2.md | 252 +- docs/academy/herocourse/module3.md | 1115 +- docs/academy/herocourse/module4.md | 532 +- docs/academy/herocourse/module6.md | 23 +- docs/bg/README.md | 7 +- docs/bg/build/install.md | 14 +- docs/bg/build/introduction.md | 4 +- docs/bg/build/manifest.md | 22 +- docs/bg/build/mapping.md | 125 +- docs/bg/build/substrate-evm.md | 12 +- docs/bg/faqs/faqs.md | 17 +- docs/bg/quickstart/helloworld-localhost.md | 12 +- docs/bg/quickstart/quickstart-avalanche.md | 23 +- docs/bg/quickstart/quickstart-cosmos.md | 17 +- docs/bg/quickstart/quickstart-polkadot.md | 57 +- docs/bg/quickstart/quickstart-terra.md | 71 +- docs/bg/quickstart/quickstart.md | 6 +- docs/bg/run_publish/connect.md | 6 +- docs/bg/run_publish/query.md | 2 +- docs/bg/run_publish/references.md | 20 +- docs/bg/run_publish/run.md | 99 +- docs/bg/run_publish/subscription.md | 2 +- docs/bg/run_publish/upgrade.md | 6 +- docs/bg/subquery_network/introduction.md | 8 +- docs/build/cosmos-evm.md | 2 +- docs/build/graph-migration.md | 8 +- docs/build/graphql.md | 11 +- docs/build/install.md | 37 +- docs/build/introduction.md | 25 +- docs/build/manifest/polkadot.md | 2 +- docs/build/mapping/polkadot.md | 10 +- docs/build/mapping/store.md | 4 +- docs/build/multi-chain.md | 4 +- docs/build/substrate-evm.md | 20 +- docs/de/README.md | 7 +- docs/de/build/install.md | 16 +- docs/de/build/introduction.md | 4 +- docs/de/build/manifest.md | 26 +- docs/de/build/mapping.md | 6 +- docs/de/build/substrate-evm.md | 12 +- docs/de/faqs/faqs.md | 17 +- docs/de/miscellaneous/contributing.md | 38 +- docs/de/quickstart/helloworld-localhost.md | 12 +- docs/de/quickstart/quickstart-avalanche.md | 25 +- docs/de/quickstart/quickstart-cosmos.md | 28 +- docs/de/quickstart/quickstart-polkadot.md | 71 +- docs/de/quickstart/quickstart-terra.md | 82 +- docs/de/quickstart/quickstart.md | 6 +- docs/de/run_publish/connect.md | 6 +- docs/de/run_publish/query.md | 2 +- docs/de/run_publish/references.md | 16 +- docs/de/run_publish/run.md | 99 +- docs/de/run_publish/subscription.md | 4 +- docs/de/run_publish/upgrade.md | 10 +- docs/de/subquery_network/introduction.md | 8 +- docs/es/README.md | 7 +- docs/es/build/install.md | 16 +- docs/es/build/introduction.md | 4 +- docs/es/build/manifest.md | 52 +- docs/es/build/mapping.md | 6 +- docs/es/build/substrate-evm.md | 12 +- docs/es/faqs/faqs.md | 17 +- docs/es/miscellaneous/contributing.md | 38 +- docs/es/quickstart/helloworld-localhost.md | 31 +- docs/es/quickstart/quickstart-avalanche.md | 18 +- docs/es/quickstart/quickstart-cosmos.md | 19 +- docs/es/quickstart/quickstart-polkadot.md | 25 +- docs/es/quickstart/quickstart-terra.md | 27 +- docs/es/quickstart/quickstart.md | 6 +- docs/es/run_publish/connect.md | 6 +- docs/es/run_publish/query.md | 2 +- docs/es/run_publish/references.md | 16 +- docs/es/run_publish/run.md | 99 +- docs/es/run_publish/subscription.md | 2 +- docs/es/run_publish/upgrade.md | 6 +- docs/es/subquery_network/introduction.md | 8 +- docs/faqs/faqs.md | 29 +- docs/fr/README.md | 7 +- docs/fr/build/install.md | 12 +- docs/fr/build/introduction.md | 2 +- docs/fr/build/manifest.md | 46 +- docs/fr/build/mapping.md | 16 +- docs/fr/build/substrate-evm.md | 18 +- docs/fr/faqs/faqs.md | 17 +- docs/fr/miscellaneous/contributing.md | 38 +- docs/fr/quickstart/helloworld-localhost.md | 12 +- docs/fr/quickstart/quickstart-avalanche.md | 12 +- docs/fr/quickstart/quickstart-cosmos.md | 17 +- docs/fr/quickstart/quickstart-polkadot.md | 57 +- docs/fr/quickstart/quickstart-terra.md | 71 +- docs/fr/quickstart/quickstart.md | 6 +- docs/fr/run_publish/connect.md | 6 +- docs/fr/run_publish/query.md | 2 +- docs/fr/run_publish/references.md | 16 +- docs/fr/run_publish/run.md | 99 +- docs/fr/run_publish/subscription.md | 2 +- docs/fr/run_publish/upgrade.md | 6 +- docs/fr/subquery_network/introduction.md | 8 +- docs/id/README.md | 7 +- docs/id/build/install.md | 16 +- docs/id/build/introduction.md | 4 +- docs/id/build/manifest.md | 24 +- docs/id/build/mapping.md | 6 +- docs/id/build/substrate-evm.md | 12 +- docs/id/faqs/faqs.md | 17 +- docs/id/miscellaneous/contributing.md | 38 +- docs/id/quickstart/helloworld-localhost.md | 12 +- docs/id/quickstart/quickstart-avalanche.md | 23 +- docs/id/quickstart/quickstart-cosmos.md | 28 +- docs/id/quickstart/quickstart-polkadot.md | 57 +- docs/id/quickstart/quickstart-terra.md | 82 +- docs/id/quickstart/quickstart.md | 10 +- docs/id/run_publish/aggregate.md | 2 +- docs/id/run_publish/connect.md | 6 +- docs/id/run_publish/publish.md | 2 +- docs/id/run_publish/query.md | 2 +- docs/id/run_publish/references.md | 18 +- docs/id/run_publish/run.md | 97 +- docs/id/run_publish/subscription.md | 6 +- docs/id/run_publish/upgrade.md | 8 +- docs/id/subquery_network/introduction.md | 8 +- docs/it/README.md | 7 +- .../tutorials_examples/block-height.md | 2 +- .../tutorials_examples/delete-projects.md | 4 +- .../academy/tutorials_examples/dictionary.md | 14 +- .../academy/tutorials_examples/run-indexer.md | 2 +- docs/it/build/install.md | 16 +- docs/it/build/introduction.md | 4 +- docs/it/build/manifest.md | 22 +- docs/it/build/mapping.md | 6 +- docs/it/build/substrate-evm.md | 12 +- docs/it/faqs/faqs.md | 17 +- docs/it/miscellaneous/contributing.md | 38 +- docs/it/quickstart/helloworld-localhost.md | 12 +- docs/it/quickstart/quickstart-avalanche.md | 12 +- docs/it/quickstart/quickstart-cosmos.md | 17 +- docs/it/quickstart/quickstart-polkadot.md | 57 +- docs/it/quickstart/quickstart-terra.md | 71 +- docs/it/quickstart/quickstart.md | 6 +- docs/it/run_publish/connect.md | 6 +- docs/it/run_publish/query.md | 2 +- docs/it/run_publish/references.md | 16 +- docs/it/run_publish/run.md | 99 +- docs/it/run_publish/subscription.md | 2 +- docs/it/run_publish/upgrade.md | 6 +- docs/it/subquery_network/introduction.md | 8 +- docs/ja/README.md | 7 +- .../academy/tutorials_examples/run-indexer.md | 14 +- docs/ja/build/install.md | 30 +- docs/ja/build/introduction.md | 6 +- docs/ja/build/manifest.md | 22 +- docs/ja/build/mapping.md | 6 +- docs/ja/build/substrate-evm.md | 72 +- docs/ja/faqs/faqs.md | 25 +- docs/ja/miscellaneous/contributing.md | 42 +- docs/ja/quickstart/helloworld-localhost.md | 30 +- docs/ja/quickstart/quickstart-avalanche.md | 14 +- docs/ja/quickstart/quickstart-cosmos.md | 19 +- docs/ja/quickstart/quickstart-polkadot.md | 59 +- docs/ja/quickstart/quickstart-terra.md | 73 +- docs/ja/quickstart/quickstart.md | 6 +- .../ja/quickstart/understanding-helloworld.md | 20 +- docs/ja/run_publish/connect.md | 8 +- docs/ja/run_publish/query.md | 6 +- docs/ja/run_publish/references.md | 16 +- docs/ja/run_publish/run.md | 99 +- docs/ja/run_publish/subscription.md | 2 +- docs/ja/run_publish/upgrade.md | 6 +- docs/ja/subquery_network/introduction.md | 8 +- docs/ko/README.md | 7 +- docs/ko/build/install.md | 16 +- docs/ko/build/introduction.md | 4 +- docs/ko/build/manifest.md | 50 +- docs/ko/build/mapping.md | 8 +- docs/ko/build/substrate-evm.md | 64 +- docs/ko/faqs/faqs.md | 17 +- docs/ko/miscellaneous/contributing.md | 38 +- docs/ko/quickstart/helloworld-localhost.md | 16 +- docs/ko/quickstart/quickstart-avalanche.md | 12 +- docs/ko/quickstart/quickstart-cosmos.md | 17 +- docs/ko/quickstart/quickstart-polkadot.md | 57 +- docs/ko/quickstart/quickstart-terra.md | 71 +- docs/ko/quickstart/quickstart.md | 6 +- docs/ko/run_publish/connect.md | 6 +- docs/ko/run_publish/query.md | 2 +- docs/ko/run_publish/references.md | 16 +- docs/ko/run_publish/run.md | 99 +- docs/ko/run_publish/subscription.md | 2 +- docs/ko/run_publish/upgrade.md | 6 +- docs/ko/subquery_network/introduction.md | 8 +- docs/miscellaneous/contributing.md | 38 +- docs/quickstart/quickstart.md | 13 +- docs/quickstart/quickstart_chains/algorand.md | 37 +- .../quickstart/quickstart_chains/avalanche.md | 37 +- .../quickstart_chains/cosmos-cronos.md | 61 +- .../quickstart_chains/cosmos-thorchain.md | 37 +- docs/quickstart/quickstart_chains/cosmos.md | 39 +- docs/quickstart/quickstart_chains/flare.md | 37 +- .../quickstart_chains/polkadot-humanode.md | 60 +- docs/quickstart/quickstart_chains/polkadot.md | 49 +- docs/quickstart/quickstart_chains/terra.md | 33 +- docs/ru/README.md | 7 +- docs/ru/build/install.md | 16 +- docs/ru/build/introduction.md | 4 +- docs/ru/build/manifest.md | 53 +- docs/ru/build/mapping.md | 41 +- docs/ru/build/substrate-evm.md | 14 +- docs/ru/faqs/faqs.md | 25 +- docs/ru/miscellaneous/contributing.md | 38 +- docs/ru/quickstart/helloworld-localhost.md | 16 +- docs/ru/quickstart/quickstart-avalanche.md | 12 +- docs/ru/quickstart/quickstart-cosmos.md | 17 +- docs/ru/quickstart/quickstart-polkadot.md | 57 +- docs/ru/quickstart/quickstart-terra.md | 71 +- docs/ru/quickstart/quickstart.md | 6 +- docs/ru/run_publish/connect.md | 4 +- docs/ru/run_publish/references.md | 16 +- docs/ru/run_publish/run.md | 101 +- docs/ru/run_publish/upgrade.md | 4 +- docs/run_publish/cli.md | 13 +- docs/run_publish/publish.md | 6 +- docs/run_publish/query.md | 2 +- docs/run_publish/references.md | 8 +- docs/run_publish/run.md | 99 +- docs/run_publish/subscription.md | 2 +- docs/subquery_network/introduction.md | 10 +- docs/subquery_network/kepler/consumers.md | 33 +- .../kepler/indexers/become-an-indexer.md | 41 +- .../kepler/indexers/faqs-indexers.md | 2 +- .../kepler/indexers/install-indexer-linux.md | 4 +- .../kepler/season3-challenges/dashboard.md | 9 +- .../kepler/season3-challenges/season3.md | 30 +- docs/th/README.md | 7 +- docs/th/build/install.md | 18 +- docs/th/build/introduction.md | 4 +- docs/th/build/manifest.md | 40 +- docs/th/build/mapping.md | 6 +- docs/th/build/substrate-evm.md | 12 +- docs/th/faqs/faqs.md | 19 +- docs/th/miscellaneous/contributing.md | 38 +- docs/th/quickstart/helloworld-localhost.md | 6 +- docs/th/quickstart/quickstart-avalanche.md | 18 +- docs/th/quickstart/quickstart-cosmos.md | 19 +- docs/th/quickstart/quickstart-polkadot.md | 57 +- docs/th/quickstart/quickstart-terra.md | 65 +- docs/th/quickstart/quickstart.md | 6 +- docs/th/run_publish/connect.md | 6 +- docs/th/run_publish/query.md | 2 +- docs/th/run_publish/references.md | 16 +- docs/th/run_publish/run.md | 99 +- docs/th/run_publish/subscription.md | 2 +- docs/th/run_publish/upgrade.md | 6 +- docs/th/subquery_network/introduction.md | 8 +- docs/tr/README.md | 7 +- docs/tr/build/graphql.md | 80 +- docs/tr/build/install.md | 16 +- docs/tr/build/introduction.md | 4 +- docs/tr/build/manifest.md | 22 +- docs/tr/build/mapping.md | 6 +- docs/tr/build/substrate-evm.md | 14 +- docs/tr/faqs/faqs.md | 17 +- docs/tr/miscellaneous/contributing.md | 38 +- docs/tr/quickstart/helloworld-localhost.md | 6 +- docs/tr/quickstart/quickstart-avalanche.md | 14 +- docs/tr/quickstart/quickstart-cosmos.md | 17 +- docs/tr/quickstart/quickstart-polkadot.md | 63 +- docs/tr/quickstart/quickstart-terra.md | 80 +- docs/tr/quickstart/quickstart.md | 6 +- docs/tr/run_publish/connect.md | 6 +- docs/tr/run_publish/historical.md | 2 +- docs/tr/run_publish/query.md | 2 +- docs/tr/run_publish/references.md | 16 +- docs/tr/run_publish/run.md | 99 +- docs/tr/run_publish/subscription.md | 2 +- docs/tr/run_publish/upgrade.md | 6 +- docs/tr/subquery_network/introduction.md | 8 +- docs/uk/README.md | 7 +- docs/uk/build/install.md | 16 +- docs/uk/build/introduction.md | 12 +- docs/uk/build/manifest.md | 24 +- docs/uk/build/mapping.md | 6 +- docs/uk/build/substrate-evm.md | 39 +- docs/uk/faqs/faqs.md | 17 +- docs/uk/quickstart/helloworld-localhost.md | 20 +- docs/uk/quickstart/quickstart-avalanche.md | 29 +- docs/uk/quickstart/quickstart-cosmos.md | 32 +- docs/uk/quickstart/quickstart-polkadot.md | 59 +- docs/uk/quickstart/quickstart-terra.md | 61 +- docs/uk/quickstart/quickstart.md | 8 +- docs/uk/run_publish/connect.md | 4 +- docs/uk/run_publish/references.md | 16 +- docs/uk/run_publish/run.md | 99 +- docs/uk/run_publish/sandbox.md | 8 +- docs/uk/run_publish/upgrade.md | 4 +- docs/vi/README.md | 7 +- docs/vi/build/install.md | 16 +- docs/vi/build/introduction.md | 4 +- docs/vi/build/manifest.md | 42 +- docs/vi/build/mapping.md | 6 +- docs/vi/build/substrate-evm.md | 23 +- docs/vi/faqs/faqs.md | 17 +- docs/vi/miscellaneous/contributing.md | 38 +- docs/vi/quickstart/helloworld-localhost.md | 12 +- docs/vi/quickstart/quickstart-avalanche.md | 14 +- docs/vi/quickstart/quickstart-cosmos.md | 19 +- docs/vi/quickstart/quickstart-polkadot.md | 59 +- docs/vi/quickstart/quickstart-terra.md | 73 +- docs/vi/quickstart/quickstart.md | 6 +- docs/vi/run_publish/connect.md | 6 +- docs/vi/run_publish/query.md | 2 +- docs/vi/run_publish/references.md | 16 +- docs/vi/run_publish/run.md | 99 +- docs/vi/run_publish/subscription.md | 2 +- docs/vi/run_publish/upgrade.md | 6 +- docs/zh/README.md | 7 +- .../academy/tutorials_examples/terminology.md | 4 +- docs/zh/build/graphql.md | 63 +- docs/zh/build/install.md | 32 +- docs/zh/build/manifest.md | 80 +- docs/zh/build/mapping.md | 9 +- docs/zh/build/substrate-evm.md | 68 +- docs/zh/faqs/faqs.md | 49 +- docs/zh/quickstart/helloworld-localhost.md | 13 +- docs/zh/quickstart/quickstart-avalanche.md | 74 +- docs/zh/quickstart/quickstart-cosmos.md | 65 +- docs/zh/quickstart/quickstart-polkadot.md | 111 +- docs/zh/quickstart/quickstart-terra.md | 129 +- docs/zh/quickstart/quickstart.md | 42 +- docs/zh/run_publish/aggregate.md | 2 +- docs/zh/run_publish/connect.md | 6 +- docs/zh/run_publish/publish.md | 31 +- docs/zh/run_publish/query.md | 6 +- docs/zh/run_publish/references.md | 54 +- docs/zh/run_publish/run.md | 109 +- docs/zh/run_publish/upgrade.md | 27 +- docs/zh/subquery_network/payment-methods.md | 6 +- package.json | 16 +- yarn.lock | 9890 ++++------------- 349 files changed, 7124 insertions(+), 13948 deletions(-) delete mode 100644 docs/.vuepress/config.js create mode 100644 docs/.vuepress/config.ts rename docs/.vuepress/public/assets/img/{muti-chain.jpg => multi_chain.jpg} (100%) rename docs/.vuepress/styles/{index.styl => index.scss} (100%) create mode 100644 docs/.vuepress/styles/palette.scss delete mode 100644 docs/.vuepress/styles/palette.styl diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index b459831e850..036e06afd2d 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -6,10 +6,11 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 with: - node-version: 12 + # choose node.js version to use + node-version: 16 - run: npm install -g yarn - run: yarn install - run: yarn docs:build diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index 90ae6d99515..073696fe1fe 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -11,10 +11,11 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 with: - node-version: 12 + # choose node.js version to use + node-version: 16 - run: npm install -g yarn - run: yarn install - run: yarn docs:build diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index b513701818f..dffde7cb029 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 16 - run: npm install -g yarn - run: yarn install - run: yarn docs:build diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js deleted file mode 100644 index 600e291c987..00000000000 --- a/docs/.vuepress/config.js +++ /dev/null @@ -1,415 +0,0 @@ -const { config } = require("vuepress-theme-hope"); - -module.exports = config({ - title: "SubQuery Academy", - head: [ - ["link", { rel: "icon", href: "public/assets/img/logo.png" }], - [ - "link", - { - rel: "icon", - href: "public/assets/favicons/favicon.ico", - type: "image/x-icon", - }, - ], - [ - "link", - { - rel: "apple-touch-icon", - type: "image/png", - sizes: "180x180", - href: "public/assets/favicons/apple-touch-icon.png", - }, - ], - [ - "link", - { - rel: "icon", - type: "image/png", - sizes: "32x32", - href: "public/assets/favicons/favicon-32x32.png", - }, - ], - [ - "link", - { - rel: "icon", - type: "image/png", - sizes: "16x16", - href: "public/assets/favicons/favicon-16x16.png", - }, - ], - ["link", { rel: "manifest", href: "public/assets/manifest.json" }], - ], - locales: { - "/": { - lang: "en-UK", - title: "SubQuery Academy", - description: - "Explore and transform your chain data to build intuitive dApps faster!", - }, - "/de/": { - lang: "de", - title: "SubQuery Academy", - description: - "Explore and transform your chain data to build intuitive dApps faster!.", - }, - // "/id/": { - // lang: "id", - // title: "SubQuery Academy", - // description: - // "Explore and transform your chain data to build intuitive dApps faster!.", - // }, - "/ru/": { - lang: "ru", - title: "SubQuery Academy", - description: - "Explore and transform your chain data to build intuitive dApps faster!.", - }, - // "/th/": { - // lang: "th", - // title: "SubQuery Academy", - // description: - // "Explore and transform your chain data to build intuitive dApps faster!.", - // }, - // "/tr/": { - // lang: "tr", - // title: "SubQuery Academy", - // description: - // "Explore and transform your chain data to build intuitive dApps faster!.", - // }, - "/uk/": { - lang: "uk", - title: "SubQuery Academy", - description: - "Explore and transform your chain data to build intuitive dApps faster!.", - }, - "/vi/": { - lang: "vi", - title: "SubQuery Academy", - description: - "Explore and transform your chain data to build intuitive dApps faster!.", - }, - "/zh/": { - lang: "zh-CN", - title: "SubQuery Academy", - description: - "Explore and transform your chain data to build intuitive dApps faster!.", - }, - /* - "/es/": { - lang: "es", - title: "SubQuery Academy", - description: - "Explore and transform your chain data to build intuitive dApps faster!.", - }, - */ - /* - "/it/": { - lang: "it", - title: "SubQuery Academy", - description: - "Explore and transform your chain data to build intuitive dApps faster!.", - }, - "/ja/": { - lang: "ja", - title: "SubQuery Academy", - description: - "Explore and transform your chain data to build intuitive dApps faster!.", - }, - "/ko/": { - lang: "ko", - title: "SubQuery Academy", - description: - "Explore and transform your chain data to build intuitive dApps faster!.", - }, - */ - }, - themeConfig: { - algolia: { - appId: "30B5W460WL", - apiKey: "7f75a78b4f95cebe82c0ced1ff75235e", - indexName: "subquery", - }, - cleanUrl: false, - contributor: false, - hostname: "https://academy.subquery.network", - lastUpdated: true, - locales: { - "/": getSidebar("", "English"), - "/zh/": getSidebar("/zh", "Chinese"), - "/de/": getSidebar("/de", "German"), - "/vi/": getSidebar("/vi", "Vietnamese"), - "/ru/": getSidebar("/ru", "Russian"), - "/uk/": getSidebar("/uk", "Ukranian"), - }, - logo: "/assets/img/logo.png", - logoLink: "https://subquery.network", - markdown: { - extractHeaders: ["h2", "h3"], - }, - mdEnhance: { - codegroup: true, - }, - nav: [ - { - text: "Explorer", - link: "https://explorer.subquery.network/", - target: "_blank", - rel: "", - }, - { - text: "Projects", - link: "https://project.subquery.network/", - target: "_blank", - rel: "", - }, - { text: "Documentation", link: "/" }, - { - text: "GitHub", - link: "https://github.com/subquery/subql", - target: "_blank", - rel: "", - }, - ], - plugins: [ - [ - "@vuepress/plugin-google-analytics", - { - id: "G-MY90N76MNK", - }, - "fulltext-search", - "@vuepress/pwa", - ], - ], - pwa: true, - sidebarDepth: 2, - themeColor: false, - }, -}); - -chainWebpack: (config) => { - /** Webpack rule to handle some non-image assets that we'll use */ - config.module - .rule("files") - .test(/\.(pdf|zip|ait|log|txt)$/) - .use("file-loader") - .loader("file-loader") - .options({ - name: `[path][name].[ext]`, - limit: 10000, - esModule: false, - }); - /** Explicitly setting esModule:false - * to avoid this issue https://github.com/vuejs/vue-loader/issues/1612 - */ - config.module.rule("images").use("url-loader").options({ - limit: 10000, - esModule: false, - }); -}; - -function getSidebar(locale, language) { - return { - selectLanguageName: language, - sidebar: [ - { - title: "Welcome", - path: `${locale === "" ? "/" : locale}`, - collapsable: true, - }, - { - title: "Quick Start", - path: `${locale}/quickstart/quickstart`, - collapsable: true, - children: [ - `${locale}/quickstart/quickstart.md`, - { - title: "2. Specific Chains", - collapsable: true, - children: [ - `${locale}/quickstart/quickstart_chains/polkadot.md`, - `${locale}/quickstart/quickstart_chains/polkadot-humanode.md`, - `${locale}/quickstart/quickstart_chains/cosmos.md`, - `${locale}/quickstart/quickstart_chains/cosmos-cronos.md`, - `${locale}/quickstart/quickstart_chains/cosmos-thorchain.md`, - `${locale}/quickstart/quickstart_chains/algorand.md`, - `${locale}/quickstart/quickstart_chains/avalanche.md`, - `${locale}/quickstart/quickstart_chains/flare.md`, - `${locale}/quickstart/quickstart_chains/terra.md`, - ], - }, - `${locale}/quickstart/whats-next.md`, - ], - }, - { - title: "Build", - path: `${locale}/build/introduction`, - collapsable: true, - children: [ - `${locale}/build/introduction.md`, - `${locale}/build/install.md`, - { - title: "Manifest File", - collapsable: true, - children: [ - `${locale}/build/manifest/polkadot.md`, - `${locale}/build/manifest/cosmos.md`, - `${locale}/build/manifest/avalanche.md`, - `${locale}/build/manifest/algorand.md`, - `${locale}/build/manifest/flare.md`, - `${locale}/build/manifest/terra.md`, - ], - }, - `${locale}/build/graphql.md`, - { - title: "Mapping", - collapsable: true, - children: [ - `${locale}/build/mapping/polkadot.md`, - `${locale}/build/mapping/cosmos.md`, - `${locale}/build/mapping/avalanche.md`, - `${locale}/build/mapping/algorand.md`, - `${locale}/build/mapping/flare.md`, - `${locale}/build/mapping/terra.md`, - `${locale}/build/mapping/store.md`, - ], - }, - `${locale}/build/multi-chain.md`, - `${locale}/build/substrate-evm.md`, - `${locale}/build/substrate-wasm.md`, - `${locale}/build/cosmos-evm.md`, - `${locale}/build/dynamicdatasources.md`, - `${locale}/build/graph-migration.md`, - `${locale}/build/optimisation.md`, - ], - }, - { - title: "Run & Publish", - path: `${locale}/run_publish/publish`, - collapsable: true, - children: [ - `${locale}/run_publish/run.md`, - `${locale}/run_publish/publish.md`, - `${locale}/run_publish/cli.md`, - `${locale}/run_publish/query.md`, - `${locale}/run_publish/graphql.md`, - `${locale}/run_publish/ipfs.md`, - `${locale}/run_publish/aggregate.md`, - `${locale}/run_publish/subscription.md`, - `${locale}/run_publish/historical.md`, - `${locale}/run_publish/references.md`, - ], - }, - { - title: "SubQuery Network", - path: `${locale}/subquery_network/introduction`, - collapsable: true, - children: [ - `${locale}/subquery_network/introduction.md`, - `${locale}/subquery_network/token.md`, - `${locale}/subquery_network/consumers.md`, - `${locale}/subquery_network/indexers.md`, - `${locale}/subquery_network/delegators.md`, - `${locale}/subquery_network/architects.md`, - `${locale}/subquery_network/payment-methods.md`, - `${locale}/subquery_network/foundation.md`, - `${locale}/subquery_network/design-philosophy.md`, - { - title: "Kepler Network", - path: `${locale}/subquery_network/kepler/welcome`, - collapsable: true, - children: [ - `${locale}/subquery_network/kepler/welcome.md`, - { - title: "Indexers", - path: `${locale}/subquery_network/kepler/indexers/become-an-indexer`, - collapsable: true, - children: [ - `${locale}/subquery_network/kepler/indexers/become-an-indexer.md`, - `${locale}/subquery_network/kepler/indexers/install-indexer-locally.md`, - `${locale}/subquery_network/kepler/indexers/install-indexer-linux.md`, - `${locale}/subquery_network/kepler/indexers/install-indexer-aws.md`, - `${locale}/subquery_network/kepler/indexers/index-project.md`, - `${locale}/subquery_network/kepler/indexers/ssh-in-aws.md`, - `${locale}/subquery_network/kepler/indexers/troubleshooting-indexers.md`, - `${locale}/subquery_network/kepler/indexers/faqs-indexers.md`, - ], - }, - `${locale}/subquery_network/kepler/delegators.md`, - `${locale}/subquery_network/kepler/consumers.md`, - { - title: "Metamask", - path: `${locale}/subquery_network/kepler/metamask/connect-metamask`, - collapsable: true, - children: [ - `${locale}/subquery_network/kepler/metamask/connect-metamask.md`, - ], - }, - ], - }, - ], - }, - { - title: "Courses", - path: `${locale}/academy/herocourse/welcome`, - collapsable: true, - children: [ - { - title: "Hero Course", - path: `${locale}/academy/herocourse/welcome`, - collapsable: true, - children: [ - `${locale}/academy/herocourse/welcome.md`, - `${locale}/academy/herocourse/module1.md`, - `${locale}/academy/herocourse/module2.md`, - `${locale}/academy/herocourse/module3.md`, - `${locale}/academy/herocourse/module4.md`, - `${locale}/academy/herocourse/module5.md`, - `${locale}/academy/herocourse/module6.md`, - ], - }, - { - title: "Tutorials & Examples", - path: `${locale}/academy/tutorials_examples/introduction`, - collapsable: true, - children: [ - `${locale}/academy/tutorials_examples/introduction.md`, - `${locale}/academy/tutorials_examples/block-height.md`, - `${locale}/academy/tutorials_examples/batch-size.md`, - `${locale}/academy/tutorials_examples/run-indexer.md`, - `${locale}/academy/tutorials_examples/dictionary.md`, - `${locale}/academy/tutorials_examples/debug-projects.md`, - `${locale}/academy/tutorials_examples/delete-projects.md`, - `${locale}/academy/tutorials_examples/terminology.md`, - ], - }, - `${locale}/academy/subquery101/subquery101.md`, - ], - }, - { - title: "Miscellaneous", - path: `${locale}/miscellaneous/contributing`, - collapsable: true, - children: [ - `${locale}/miscellaneous/contributing.md`, - `${locale}/miscellaneous/social_media.md`, - `${locale}/miscellaneous/branding.md`, - `${locale}/miscellaneous/ambassadors.md`, - ], - }, - { - title: "FAQs", - path: `${locale}/faqs/faqs`, - collapsable: true, - children: [`${locale}/faqs/faqs.md`], - }, - { - title: "Glossary", - path: `${locale}/glossary/glossary`, - collapsable: true, - children: [`${locale}/glossary/glossary.md`], - }, - ], - }; -} diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts new file mode 100644 index 00000000000..b1c019dff11 --- /dev/null +++ b/docs/.vuepress/config.ts @@ -0,0 +1,426 @@ +import { defineUserConfig, SidebarConfig, SidebarConfigArray } from "vuepress"; +import { defaultTheme } from "vuepress"; +import { googleAnalyticsPlugin } from "@vuepress/plugin-google-analytics"; +import { sitemapPlugin } from "vuepress-plugin-sitemap2"; +import { pwaPlugin } from "vuepress-plugin-pwa2"; +import { mdEnhancePlugin } from "vuepress-plugin-md-enhance"; +import { seoPlugin } from "vuepress-plugin-seo2"; +import { docsearchPlugin } from "@vuepress/plugin-docsearch"; + +export default defineUserConfig({ + plugins: [ + googleAnalyticsPlugin({ + id: "G-MY90N76MNK", + }), + pwaPlugin({ + manifest: { + short_name: "SubQL Docs", + }, + favicon: "https://academy.subquery.network/assets/favicons/favicon.ico", + }), + mdEnhancePlugin({ + linkCheck: true, + codetabs: true, + }), // TODO remove legacy mode //https://vuepress-theme-hope.github.io/v2/md-enhance/migration.html + sitemapPlugin({ + hostname: "https://blog.subquery.network", + }), + seoPlugin({ + hostname: "https://blog.subquery.network", + author: "SubQuery Team", + autoDescription: true, + twitterID: "@SubQueryNetwork", + }), + docsearchPlugin({ + appId: "30B5W460WL", + apiKey: "7f75a78b4f95cebe82c0ced1ff75235e", + indexName: "subquery", + }), + ], + title: "SubQuery Academy (Documentation)", + description: + "Learn how to build with SubQuery. SubQuery is a fast, flexible, and reliable open-source data indexer that provides you with custom APIs for your web3 project. Build your API anywhere across multiple chains in minutes with our open-source SDK.", + head: [ + ["link", { rel: "icon", href: "/assets/img/logo.png" }], + [ + "link", + { + rel: "icon", + href: "assets/favicons/favicon.ico", + type: "image/x-icon", + }, + ], + [ + "link", + { + rel: "apple-touch-icon", + type: "image/png", + sizes: "180x180", + href: "assets/favicons/apple-touch-icon.png", + }, + ], + [ + "link", + { + rel: "icon", + type: "image/png", + sizes: "32x32", + href: "assets/favicons/favicon-32x32.png", + }, + ], + [ + "link", + { + rel: "icon", + type: "image/png", + sizes: "16x16", + href: "assets/favicons/favicon-16x16.png", + }, + ], + ["link", { rel: "manifest", href: "assets/manifest.json" }], + ], + locales: { + "/": { + lang: "en-UK", + title: "SubQuery Academy (Documentation)", + description: + "Explore and transform your chain data to build intuitive dApps faster!", + }, + "/de/": { + lang: "de", + title: "SubQuery Academy (Documentation)", + description: + "Explore and transform your chain data to build intuitive dApps faster!.", + }, + // "/id/": { + // lang: "id", + // title: "SubQuery Academy (Documentation)", + // description: + // "Explore and transform your chain data to build intuitive dApps faster!.", + // }, + "/ru/": { + lang: "ru", + title: "SubQuery Academy (Documentation)", + description: + "Explore and transform your chain data to build intuitive dApps faster!.", + }, + // "/th/": { + // lang: "th", + // title: "SubQuery Academy (Documentation)", + // description: + // "Explore and transform your chain data to build intuitive dApps faster!.", + // }, + // "/tr/": { + // lang: "tr", + // title: "SubQuery Academy (Documentation)", + // description: + // "Explore and transform your chain data to build intuitive dApps faster!.", + // }, + "/uk/": { + lang: "uk", + title: "SubQuery Academy (Documentation)", + description: + "Explore and transform your chain data to build intuitive dApps faster!.", + }, + "/vi/": { + lang: "vi", + title: "SubQuery Academy (Documentation)", + description: + "Explore and transform your chain data to build intuitive dApps faster!.", + }, + "/zh/": { + lang: "zh-CN", + title: "SubQuery Academy (Documentation)", + description: + "Explore and transform your chain data to build intuitive dApps faster!.", + }, + /* + "/es/": { + lang: "es", + title: "SubQuery Academy (Documentation)", + description: + "Explore and transform your chain data to build intuitive dApps faster!.", + }, + */ + /* + "/it/": { + lang: "it", + title: "SubQuery Academy (Documentation)", + description: + "Explore and transform your chain data to build intuitive dApps faster!.", + }, + "/ja/": { + lang: "ja", + title: "SubQuery Academy (Documentation)", + description: + "Explore and transform your chain data to build intuitive dApps faster!.", + }, + "/ko/": { + lang: "ko", + title: "SubQuery Academy (Documentation)", + description: + "Explore and transform your chain data to build intuitive dApps faster!.", + }, + */ + }, + theme: defaultTheme({ + lastUpdated: true, + locales: { + "/": { + sidebar: getSidebar(""), + }, + "/zh/": { + selectLanguageName: "Chinese", + sidebar: getSidebar("/zh"), + }, + "/vi/": { + selectLanguageName: "Vietnamese", + sidebar: getSidebar("/vi"), + }, + "/ru/": { + selectLanguageName: "Russian", + sidebar: getSidebar("/ru"), + }, + "/uk/": { + selectLanguageName: "Ukranian", + sidebar: getSidebar("/uk"), + }, + }, + logo: "/assets/img/logo.png", + navbar: [ + { + text: "Explorer", + link: "https://explorer.subquery.network/", + target: "_blank", + rel: "", + }, + { + text: "Projects", + link: "https://project.subquery.network/", + target: "_blank", + rel: "", + }, + { text: "Documentation", link: "/" }, + { + text: "GitHub", + link: "https://github.com/subquery/subql", + target: "_blank", + rel: "", + }, + ], + sidebarDepth: 2, + docsRepo: "https://github.com/subquery/documentation", + docsDir: "docs", + docsBranch: "master", + }), +}); + +chainWebpack: (config) => { + /** Webpack rule to handle some non-image assets that we'll use */ + config.module + .rule("files") + .test(/\.(pdf|zip|ait|log|txt)$/) + .use("file-loader") + .loader("file-loader") + .options({ + name: `[path][name].[ext]`, + limit: 10000, + esModule: false, + }); + /** Explicitly setting esModule:false + * to avoid this issue https://github.com/vuejs/vue-loader/issues/1612 + */ + config.module.rule("images").use("url-loader").options({ + limit: 10000, + esModule: false, + }); +}; + +function getSidebar(locale: string): SidebarConfigArray { + return [ + { + text: "Welcome", + link: `${locale === "" ? "/" : locale}`, + }, + { + text: "Quick Start", + link: `${locale}/quickstart/quickstart`, + collapsible: true, + children: [ + `${locale}/quickstart/quickstart.md`, + { + text: "2. Specific Chains", + children: [ + `${locale}/quickstart/quickstart_chains/polkadot.md`, + `${locale}/quickstart/quickstart_chains/polkadot-humanode.md`, + `${locale}/quickstart/quickstart_chains/cosmos.md`, + `${locale}/quickstart/quickstart_chains/cosmos-cronos.md`, + `${locale}/quickstart/quickstart_chains/cosmos-thorchain.md`, + `${locale}/quickstart/quickstart_chains/algorand.md`, + `${locale}/quickstart/quickstart_chains/avalanche.md`, + `${locale}/quickstart/quickstart_chains/flare.md`, + `${locale}/quickstart/quickstart_chains/terra.md`, + ], + }, + `${locale}/quickstart/whats-next.md`, + ], + }, + { + text: "Build", + link: `${locale}/build/introduction`, + collapsible: true, + children: [ + `${locale}/build/introduction.md`, + `${locale}/build/install.md`, + { + text: "Manifest File", + children: [ + `${locale}/build/manifest/polkadot.md`, + `${locale}/build/manifest/cosmos.md`, + `${locale}/build/manifest/avalanche.md`, + `${locale}/build/manifest/algorand.md`, + `${locale}/build/manifest/flare.md`, + `${locale}/build/manifest/terra.md`, + ], + }, + `${locale}/build/graphql.md`, + { + text: "Mapping", + children: [ + `${locale}/build/mapping/polkadot.md`, + `${locale}/build/mapping/cosmos.md`, + `${locale}/build/mapping/avalanche.md`, + `${locale}/build/mapping/algorand.md`, + `${locale}/build/mapping/flare.md`, + `${locale}/build/mapping/terra.md`, + `${locale}/build/mapping/store.md`, + ], + }, + `${locale}/build/multi-chain.md`, + `${locale}/build/substrate-evm.md`, + `${locale}/build/substrate-wasm.md`, + `${locale}/build/cosmos-evm.md`, + `${locale}/build/dynamicdatasources.md`, + `${locale}/build/graph-migration.md`, + `${locale}/build/optimisation.md`, + ], + }, + { + text: "Run & Publish", + link: `${locale}/run_publish/publish`, + collapsible: true, + children: [ + `${locale}/run_publish/run.md`, + `${locale}/run_publish/publish.md`, + `${locale}/run_publish/cli.md`, + `${locale}/run_publish/query.md`, + `${locale}/run_publish/graphql.md`, + `${locale}/run_publish/ipfs.md`, + `${locale}/run_publish/aggregate.md`, + `${locale}/run_publish/subscription.md`, + `${locale}/run_publish/historical.md`, + `${locale}/run_publish/references.md`, + ], + }, + { + text: "SubQuery Network", + link: `${locale}/subquery_network/introduction`, + collapsible: true, + children: [ + `${locale}/subquery_network/introduction.md`, + `${locale}/subquery_network/token.md`, + `${locale}/subquery_network/consumers.md`, + `${locale}/subquery_network/indexers.md`, + `${locale}/subquery_network/delegators.md`, + `${locale}/subquery_network/architects.md`, + `${locale}/subquery_network/payment-methods.md`, + `${locale}/subquery_network/foundation.md`, + `${locale}/subquery_network/design-philosophy.md`, + { + text: "Kepler Network", + link: `${locale}/subquery_network/kepler/welcome`, + children: [ + `${locale}/subquery_network/kepler/welcome.md`, + { + text: "Indexers", + link: `${locale}/subquery_network/kepler/indexers/become-an-indexer`, + children: [ + `${locale}/subquery_network/kepler/indexers/become-an-indexer.md`, + `${locale}/subquery_network/kepler/indexers/install-indexer-locally.md`, + `${locale}/subquery_network/kepler/indexers/install-indexer-linux.md`, + `${locale}/subquery_network/kepler/indexers/install-indexer-aws.md`, + `${locale}/subquery_network/kepler/indexers/index-project.md`, + `${locale}/subquery_network/kepler/indexers/ssh-in-aws.md`, + `${locale}/subquery_network/kepler/indexers/troubleshooting-indexers.md`, + `${locale}/subquery_network/kepler/indexers/faqs-indexers.md`, + ], + }, + `${locale}/subquery_network/kepler/delegators.md`, + `${locale}/subquery_network/kepler/consumers.md`, + { + text: "Metamask", + link: `${locale}/subquery_network/kepler/metamask/connect-metamask`, + children: [ + `${locale}/subquery_network/kepler/metamask/connect-metamask.md`, + ], + }, + ], + }, + ], + }, + { + text: "Courses", + link: `${locale}/academy/herocourse/welcome`, + collapsible: true, + children: [ + { + text: "Hero Course", + link: `${locale}/academy/herocourse/welcome`, + children: [ + `${locale}/academy/herocourse/welcome.md`, + `${locale}/academy/herocourse/module1.md`, + `${locale}/academy/herocourse/module2.md`, + `${locale}/academy/herocourse/module3.md`, + `${locale}/academy/herocourse/module4.md`, + `${locale}/academy/herocourse/module5.md`, + `${locale}/academy/herocourse/module6.md`, + ], + }, + { + text: "Tutorials & Examples", + link: `${locale}/academy/tutorials_examples/introduction`, + children: [ + `${locale}/academy/tutorials_examples/introduction.md`, + `${locale}/academy/tutorials_examples/block-height.md`, + `${locale}/academy/tutorials_examples/batch-size.md`, + `${locale}/academy/tutorials_examples/run-indexer.md`, + `${locale}/academy/tutorials_examples/dictionary.md`, + `${locale}/academy/tutorials_examples/debug-projects.md`, + `${locale}/academy/tutorials_examples/delete-projects.md`, + `${locale}/academy/tutorials_examples/terminology.md`, + ], + }, + `${locale}/academy/subquery101/subquery101.md`, + ], + }, + { + text: "Miscellaneous", + link: `${locale}/miscellaneous/contributing`, + collapsible: true, + children: [ + `${locale}/miscellaneous/contributing.md`, + `${locale}/miscellaneous/social_media.md`, + `${locale}/miscellaneous/branding.md`, + `${locale}/miscellaneous/ambassadors.md`, + ], + }, + { + text: "FAQs", + link: `${locale}/faqs/faqs.md`, + }, + { + text: "Glossary", + link: `${locale}/glossary/glossary.md`, + }, + ]; +} diff --git a/docs/.vuepress/public/assets/img/muti-chain.jpg b/docs/.vuepress/public/assets/img/multi_chain.jpg similarity index 100% rename from docs/.vuepress/public/assets/img/muti-chain.jpg rename to docs/.vuepress/public/assets/img/multi_chain.jpg diff --git a/docs/.vuepress/styles/index.styl b/docs/.vuepress/styles/index.scss similarity index 100% rename from docs/.vuepress/styles/index.styl rename to docs/.vuepress/styles/index.scss diff --git a/docs/.vuepress/styles/palette.scss b/docs/.vuepress/styles/palette.scss new file mode 100644 index 00000000000..201e4a9ecb1 --- /dev/null +++ b/docs/.vuepress/styles/palette.scss @@ -0,0 +1,10 @@ +$rightAnchorBgColor: #fff; +$rightAnchorTextColor: #000000; +$rightAnchorFontSize: 14px; +// btn +$rightAnchorBtnTextColor: $rightAnchorTextColor; +$rightAnchorBtnBgColor: $rightAnchorBgColor; +// menu +$rightAnchorMenuTextColor: $rightAnchorTextColor; +$accentColor: #3eaf7c; +$codeBgColor: rgba(127, 127, 127, 0.12); diff --git a/docs/.vuepress/styles/palette.styl b/docs/.vuepress/styles/palette.styl deleted file mode 100644 index 7e358c6b485..00000000000 --- a/docs/.vuepress/styles/palette.styl +++ /dev/null @@ -1,10 +0,0 @@ -$rightAnchorBgColor = #fff; -$rightAnchorTextColor = $textColor; -$rightAnchorFontSize = 14px; -// btn -$rightAnchorBtnTextColor = $rightAnchorTextColor; -$rightAnchorBtnBgColor = $rightAnchorBgColor; -// menu -$rightAnchorMenuTextColor = $rightAnchorTextColor; -$accentColor = #3EAF7C; -$codeBgColor = rgba(127,127,127,0.12); \ No newline at end of file diff --git a/docs/README.md b/docs/README.md index 3edc1f341c8..2eef6363ebc 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,7 +4,7 @@

Build Faster dApps withSubQuery Academy

-

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


+

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

SubQuery now supports Polkadot, Avalanche, Cosmos, Algorand, and Flare.

@@ -12,7 +12,7 @@

Get a Kick-Start With Our Quick Start Guide

-

Build your first SubQuery project in less than 10 mins with simple guided steps. +

Build your first SubQuery project in less than 10 mins with simple guided steps.

Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

@@ -134,9 +134,7 @@
- - - + diff --git a/docs/academy/herocourse/module1.md b/docs/academy/herocourse/module1.md index dd009fa38ed..eb1b93f0bab 100644 --- a/docs/academy/herocourse/module1.md +++ b/docs/academy/herocourse/module1.md @@ -1,26 +1,25 @@ -## Module 1: Getting started +# Module 1: Getting started ## Introduction In this module, you will become familiar with SubQuery and get some hands-on experience by creating a simple Hello World SubQuery project. This project will use the **subql CLI** to create an empty project shell. Then a code will be provided to query the Polkadot mainnet for the blockheight. Note that a Docker environment will be used to simplify the running process. - ## Reference -* [Hello World PDF workbook](/assets/pdf/Hello_World_Lab.pdf) -* [Subql Starter Github](https://github.com/subquery/subql-starter) +- [Hello World PDF workbook](/assets/pdf/Hello_World_Lab.pdf) +- [Subql Starter Github](https://github.com/subquery/subql-starter) ## Pre-Requisites You will require the following: -* NPM package manager. -* SubQuery CLI (@subql/cli). -* Docker. +- NPM package manager. +- SubQuery CLI (@subql/cli). +- Docker. ### NPM Package Manager -First, you must check whether you have installed the latest version of node or not. +First, you must check whether you have installed the latest version of node or not. Run this command: @@ -30,17 +29,18 @@ It should return a result with the latest version of npm, if you have it install `v18.2.0` -::: info Note -Node v12 or higher is required. -::: +::: tip Note +Node v12 or higher is required. +::: -If you haven't installed the npm, please run the following command in your terminal and install the latest version of node. +If you haven't installed the npm, please run the following command in your terminal and install the latest version of node. ``` brew update brew install node node -v ``` + You will get the latest npm version as the output in the end. ### SubQuery CLI @@ -60,7 +60,6 @@ subql -v You will get an output similar to this: `@subql/cli/1.0.1 darwin-x64 node-v18.2.0` - ### Docker Please visit [Docker's official site](https://docs.docker.com/get-docker/) for instructions on how to install Docker for your specific operating system. @@ -83,35 +82,33 @@ Please visit [Docker's official site](https://docs.docker.com/get-docker/) for i The first step to create a SubQuery project with the following command: - ``` $ subql init Project name [subql-starter]: HelloWorld ? Select a network family Substrate ? Select a network Polkadot ? Select a template project subql-starter Starter project for subquery -RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]: -Git repository [https://github.com/subquery/subql-starter]: +RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]: +Git repository [https://github.com/subquery/subql-starter]: Fetching network genesis hash... done Author [Ian He & Jay Ji]: Sean -Description [This project can be use as a starting po...]: -Version [1.0.0]: -License [MIT]: +Description [This project can be use as a starting po...]: +Version [1.0.0]: +License [MIT]: Preparing project... done HelloWorld is ready ``` Note that any text in the square brackets are the default values, which will be used if nothing is provided. -This creates a framework and the following directory structure, saving your time. +This creates a framework and the following directory structure, saving your time. #### Step 2: Update the Mappings File -The initialisation command pre-creates a sample mappings file with 3 functions: `handleBlock, handleEvent and handleCall`. We will focus on the first function called `handleBlock` for this excerise. Hence, delete the remaining functions. +The initialisation command pre-creates a sample mappings file with 3 functions: `handleBlock, handleEvent and handleCall`. We will focus on the first function called `handleBlock` for this excerise. Hence, delete the remaining functions. - The `mappingHandler.ts` file should look like this: - ``` import {SubstrateExtrinsic,SubstrateEvent,SubstrateBlock} from "@subql/types"; import {StarterEntity} from "../types"; @@ -128,10 +125,9 @@ export async function handleBlock(block: SubstrateBlock): Promise { #### Step 3: Update the Manifest File (aka project.yaml) -The initialisation command also pre-creates a sample manifest file and defines 3 handlers. Since you have removed `handleEvent` and `handleCall` from the mappings file, you have to remove them from the manifest file as well. - -- The ***updated*** part of the manifest file should look like this: +The initialisation command also pre-creates a sample manifest file and defines 3 handlers. Since you have removed `handleEvent` and `handleCall` from the mappings file, you have to remove them from the manifest file as well. +- The **_updated_** part of the manifest file should look like this: ``` @@ -145,14 +141,12 @@ dataSources: kind: substrate/BlockHandler ``` - - #### Step 4: Update the Graphql Schema -The default `schema.graphql` file will contain 5 fields. We can remove the fields from 2 to 5, because the `handleBlock` function in the mappings file only uses “field1”. +The default `schema.graphql` file will contain 5 fields. We can remove the fields from 2 to 5, because the `handleBlock` function in the mappings file only uses “field1”. -::: info Note -Rename field1 to something more meaningful. Eg blockHeight. Note that if you do this, don’t forget to update the reference to field1 in the mappings file appropriately. +::: tip Note +Rename field1 to something more meaningful. Eg blockHeight. Note that if you do this, don’t forget to update the reference to field1 in the mappings file appropriately. ::: The schema file should look like this: @@ -168,46 +162,39 @@ type StarterEntity @entity { Install the node dependencies by running the following commands: +::: code-tabs +@tab:active yarn - - - - ```shell - yarn install - ``` - - +```shell +yarn install +``` - +@tab npm - ```bash - npm install - ``` +```bash +npm install +``` - - +::: #### Step 6: Generate the Associated Typescript Next, we will generate the associated typescript with the following command: - - +::: code-tabs +@tab:active yarn - ```shell - yarn codegen - ``` - - +```shell +yarn codegen +``` - +@tab npm - ```bash - npm run-script codegen - ``` +```bash +npm run-script codegen +``` - - +::: You should see a new folder appear with 2 new files. @@ -215,47 +202,40 @@ You should see a new folder appear with 2 new files. The next step is to build the project with the following command: - - +::: code-tabs +@tab:active yarn - ```shell - yarn build - ``` - - +```shell +yarn build +``` - +@tab npm - ```bash - npm run-script build - ``` +```bash +npm run-script build +``` - - +::: This bundles the app into static files for production. - #### Step 8: Start the Docker Container Run the docker command to pull the images and to start the container. - ``` docker-compose pull && docker-compose up ``` ::: warning Important -You need to have Docker installed as noted in the prerequisite. +You need to have Docker installed as noted in the prerequisite. ::: - #### Step 9: Run a Query Once the docker container is up and running, which could take a few minutes, open up your browser, and navigate to `www.localhost:3000`. -This will open up a “playground” where you can create your query. Copy the example below. - +This will open up a “playground” where you can create your query. Copy the example below. ``` { @@ -269,6 +249,6 @@ This will open up a “playground” where you can create your query. Copy the e } ``` -::: info Note -If you renamed field1 something else, modify this query appropriately. -::: \ No newline at end of file +::: tip Note +If you renamed field1 something else, modify this query appropriately. +::: diff --git a/docs/academy/herocourse/module2.md b/docs/academy/herocourse/module2.md index f0f0855e6dc..93edc001cc3 100644 --- a/docs/academy/herocourse/module2.md +++ b/docs/academy/herocourse/module2.md @@ -1,8 +1,8 @@ # Module 2: SubQuery Basics -This module explains the working of the basic files of a SubQuery Project with an example. The module is divided into 3 short video lessons, each describing the usage of these files an what modfications you may need to do. +This module explains the working of the basic files of a SubQuery Project with an example. The module is divided into 3 short video lessons, each describing the usage of these files an what modfications you may need to do. -Refer to the documentation references, given at the end of the each lesson, for an in-depth explanation. +Refer to the documentation references, given at the end of the each lesson, for an in-depth explanation. ## Lesson 1: The Manifest File @@ -64,7 +64,7 @@ Using the starter project for this exercise, we will use an **event handler** to - **Completion of [Module 1](../herocourse/module1.md)** -### Overview of Steps Involved +### Overview of Steps Involved 1. Initialise the starter project. 2. Update your mappings, manifest file, and graphql schema file by removing all the default code except for the `handleEvent` function. @@ -74,25 +74,23 @@ Using the starter project for this exercise, we will use an **event handler** to ### Detailed Steps - #### Step 1: Initialise Your Project The first step is to create a SubQuery project with the following command: - ``` $ subql init Project name [subql-starter]: account-balance ? Select a network family Substrate ? Select a network Polkadot ? Select a template project subql-starter Starter project for subquery -RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]: -Git repository [https://github.com/subquery/subql-starter]: +RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]: +Git repository [https://github.com/subquery/subql-starter]: Fetching network genesis hash... done -Author [Ian He & Jay Ji]: -Description [This project can be use as a starting po...]: -Version [1.0.0]: -License [MIT]: +Author [Ian He & Jay Ji]: +Description [This project can be use as a starting po...]: +Version [1.0.0]: +License [MIT]: Preparing project... done account-balance is ready ``` @@ -101,31 +99,29 @@ account-balance is ready The default `schema.graphql` file contains 5 fields. Rename the field2 to `account` and field3 to `balance`. In addition, rename the entity to `Account`. -::: info Note +::: tip Note Whenever you update the manifest file, don’t forget to update the reference to field1 in the `mappings` file and to regenerate the code via yarn codegen. ::: - The schema file should look like this: - ``` type Account @entity { id: ID! #id is a required field account: String #This is a Polkadot address - balance: BigInt # This is the amount of DOT + balance: BigInt # This is the amount of DOT } ``` - #### Step 3: Update the Manifest File (aka project.yaml) -The initialisation command also pre-creates a sample manifest file and defines 3 handlers. Because we are only focusing on Events, let’s remove `handleBlock`and `handleCall` from the mappings file. +The initialisation command also pre-creates a sample manifest file and defines 3 handlers. Because we are only focusing on Events, let’s remove `handleBlock`and `handleCall` from the mappings file. ::: warning Important Avoid messing with the auto-generated version names(as shown in the initial section of the manifest file). ::: -- The ***updated*** part of the manifest file should look like this: +- The **_updated_** part of the manifest file should look like this: ``` @@ -147,25 +143,22 @@ dataSources: method: Deposit ``` -::: info Note +::: tip Note Comment out genesisHash by prefixing with #. This is not required for now. ::: #### Step 4: Update the Mappings File -The initialisation command pre-creates a sample mappings file with 3 functions: `handleBlock`, `handleEvent`, and `handleCall`. Since you will only focus on `handleEvent`, let’s delete the remaining functions. - -You need to make a few other changes as well. Since the Account entity (formally called the StarterEntity) was instantiated in the `handleBlock` function but you no longer have this, you have to instantiate this within your `handleEvent` function. You also need to update the argument that you pass to the constructor. +The initialisation command pre-creates a sample mappings file with 3 functions: `handleBlock`, `handleEvent`, and `handleCall`. Since you will only focus on `handleEvent`, let’s delete the remaining functions. +You need to make a few other changes as well. Since the Account entity (formally called the StarterEntity) was instantiated in the `handleBlock` function but you no longer have this, you have to instantiate this within your `handleEvent` function. You also need to update the argument that you pass to the constructor. ``` let record = new Account(event.extrinsic.block.block.header.hash.toString()); ``` - - The mappingHandler.ts file should look like this: - ``` import {SubstrateEvent} from "@subql/types"; import {Account} from "../types"; @@ -183,175 +176,156 @@ export async function handleEvent(event: SubstrateEvent): Promise { } ``` - - #### Step 5: Install the Dependencies Install the node dependencies by running the following commands: +::: code-tabs +@tab:active yarn - - - - ```shell - yarn install - ``` - - +```shell +yarn install +``` - +@tab npm - ```bash - npm install - ``` +```bash +npm install +``` - - +::: #### Step 6: Generate the Associated Typescript Next, let's generate the associated typescript with the following command: - - - - ```shell - yarn codegen - ``` +::: code-tabs +@tab:active yarn - +```shell +yarn codegen +``` - +@tab npm - ```bash - npm run-script codegen - ``` +```bash +npm run-script codegen +``` - - +::: #### Step 7: Build the Project The next step is to build the project with the command as follows: - - - - ```shell - yarn build - ``` +::: code-tabs +@tab:active yarn - +```shell +yarn build +``` - +@tab npm - ```bash - npm run-script build - ``` +```bash +npm run-script build +``` - - +::: This code bundles the app into static files for production. - #### Step 8: Start the Docker Container Run the docker command to pull the images and to start the container. - ``` docker-compose pull & docker-compose up ``` +#### Step 9: Run a Query +Once the docker container is up to date and starts running, which might take a few minutes, open up your browser and navigate to `www.localhost:3000`. -#### Step 9: Run a Query +This will open up a “playground” where you can create your query. Copy the example below: -Once the docker container is up to date and starts running, which might take a few minutes, open up your browser and navigate to `www.localhost:3000`. +::: code-tabs -This will open up a “playground” where you can create your query. Copy the example below: +@tab query - - - - ``` - query { - accounts(first:10 orderBy:BALANCE_DESC){ - nodes{ - account - balance - } +``` +query { + accounts(first:10 orderBy:BALANCE_DESC){ + nodes{ + account + balance } } - ``` - - - - - ``` - { - "data": { - "accounts": { - "nodes": [ - { - "account": "13wY4rD88C3Xzd4brFMPkAMEMC3dSuAR2NC6PZ5BEsZ5t6rJ", - "balance": "162804160" - }, - { - "account": "146YJHyD5cjFN77HrfKhxUFbU8WjApwk9ncGD6NbxE66vhMS", - "balance": "130775360" - }, - { - "account": "146YJHyD5cjFN77HrfKhxUFbU8WjApwk9ncGD6NbxE66vhMS", - "balance": "130644160" - }, - { - "account": "146YJHyD5cjFN77HrfKhxUFbU8WjApwk9ncGD6NbxE66vhMS", - "balance": "117559360" - }, - { - "account": "12H7nsDUrJUSCQQJrTKAFfyCWSactiSdjoVUixqcd9CZHTGt", - "balance": "117359360" - }, - { - "account": "146YJHyD5cjFN77HrfKhxUFbU8WjApwk9ncGD6NbxE66vhMS", - "balance": "108648000" - }, - { - "account": "13wY4rD88C3Xzd4brFMPkAMEMC3dSuAR2NC6PZ5BEsZ5t6rJ", - "balance": "108648000" - }, - { - "account": "12zSBXtK9evQRCG9Gsdr72RbqNzbNn2Suox2cTfugCLmWjqG", - "balance": "108648000" - }, - { - "account": "15zF7zvdUiy2eYCgN6KWbv2SJPdbSP6vdHs1YTZDGjRcSMHN", - "balance": "108448000" - }, - { - "account": "15zF7zvdUiy2eYCgN6KWbv2SJPdbSP6vdHs1YTZDGjRcSMHN", - "balance": "108448000" - } - ] - } +} +``` + +@tab result + +``` +{ + "data": { + "accounts": { + "nodes": [ + { + "account": "13wY4rD88C3Xzd4brFMPkAMEMC3dSuAR2NC6PZ5BEsZ5t6rJ", + "balance": "162804160" + }, + { + "account": "146YJHyD5cjFN77HrfKhxUFbU8WjApwk9ncGD6NbxE66vhMS", + "balance": "130775360" + }, + { + "account": "146YJHyD5cjFN77HrfKhxUFbU8WjApwk9ncGD6NbxE66vhMS", + "balance": "130644160" + }, + { + "account": "146YJHyD5cjFN77HrfKhxUFbU8WjApwk9ncGD6NbxE66vhMS", + "balance": "117559360" + }, + { + "account": "12H7nsDUrJUSCQQJrTKAFfyCWSactiSdjoVUixqcd9CZHTGt", + "balance": "117359360" + }, + { + "account": "146YJHyD5cjFN77HrfKhxUFbU8WjApwk9ncGD6NbxE66vhMS", + "balance": "108648000" + }, + { + "account": "13wY4rD88C3Xzd4brFMPkAMEMC3dSuAR2NC6PZ5BEsZ5t6rJ", + "balance": "108648000" + }, + { + "account": "12zSBXtK9evQRCG9Gsdr72RbqNzbNn2Suox2cTfugCLmWjqG", + "balance": "108648000" + }, + { + "account": "15zF7zvdUiy2eYCgN6KWbv2SJPdbSP6vdHs1YTZDGjRcSMHN", + "balance": "108448000" + }, + { + "account": "15zF7zvdUiy2eYCgN6KWbv2SJPdbSP6vdHs1YTZDGjRcSMHN", + "balance": "108448000" + } + ] } } - ``` - - +} +``` +::: If you have nothing returned, wait for a few minutes and let your node index a few blocks. -Here, we have queried for the balance of DOT tokens for all addresses (accounts) on the Polkadot Mainnet blockchain. We have limited this to the first 10 and sorted it by the “richest” account holders first. - +Here, we have queried for the balance of DOT tokens for all addresses (accounts) on the Polkadot Mainnet blockchain. We have limited this to the first 10 and sorted it by the “richest” account holders first. #### Bonus -Try to aggregate the balances across addresses and find the total balance of an address. - +Try to aggregate the balances across addresses and find the total balance of an address. ### References diff --git a/docs/academy/herocourse/module3.md b/docs/academy/herocourse/module3.md index 8238b14fe99..06f1fd2843f 100644 --- a/docs/academy/herocourse/module3.md +++ b/docs/academy/herocourse/module3.md @@ -1,13 +1,12 @@ # Module 3: Relationships -This module explains the different types of entity relations **(one-to-one, one-to-many, and many-to-many)** with guided examples. The module is divided into 3 video lessons for in-depth explanations. +This module explains the different types of entity relations **(one-to-one, one-to-many, and many-to-many)** with guided examples. The module is divided into 3 video lessons for in-depth explanations. :::info Note -For a basic uderstanding of the terminologies related to entity relations, visit [GraphQL Schema Documentation.](../../build/graphql.md) +For a basic uderstanding of the terminologies related to entity relations, visit [GraphQL Schema Documentation.](../../build/graphql.md) ::: -Let's have a look at each relationship one-by-one. - +Let's have a look at each relationship one-by-one. ## Lesson 1: One to Many Entities @@ -15,16 +14,15 @@ Let's have a look at each relationship one-by-one. -### Exercise - Balances Transfers (One-to-Many) +### Exercise - Balances Transfers (One-to-Many) -In these exercises, we will take the starter project and focus on understanding **one to many entity relationships**. We will create a project that allows us to query for accounts and determine how much was transferred to what receiving address. +In these exercises, we will take the starter project and focus on understanding **one to many entity relationships**. We will create a project that allows us to query for accounts and determine how much was transferred to what receiving address. ### Pre-Requisites Completion of [Module 2](../herocourse/module2.md). - -### Overview of Steps Involved +### Overview of Steps Involved 1. Initialise the starter project. 2. Update your mappings, manifest file, and graphql schema file by removing all the default code except for the `handleEvent` function. @@ -34,40 +32,35 @@ Completion of [Module 2](../herocourse/module2.md). ### Detailed Steps - #### Step 1: Initialise Your Project The first step to create a SubQuery project using the following command: - ``` $ subql init Project name [subql-starter]: account-transfers ? Select a network family Substrate ? Select a network Polkadot ? Select a template project subql-starter Starter project for subquery -RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]: -Git repository [https://github.com/subquery/subql-starter]: +RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]: +Git repository [https://github.com/subquery/subql-starter]: Fetching network genesis hash... done -Author [Ian He & Jay Ji]: -Description [This project can be use as a starting po...]: -Version [1.0.0]: -License [MIT]: +Author [Ian He & Jay Ji]: +Description [This project can be use as a starting po...]: +Version [1.0.0]: +License [MIT]: Preparing project... done account-transfers is ready ``` - - #### Step 2: Update the Graphql Schema Create an entity called `Account`. This account will contain multiple transfers. Here, an account can be considered as a **Polkadot address** owned by someone. -Transfers can be considered as a transaction with an amount, a sender, and a receiver(let’s ignore the sender for now). Here, you will obtain the amount transferred, the blockNumber, and to whom it was sent(also known as the receiver). +Transfers can be considered as a transaction with an amount, a sender, and a receiver(let’s ignore the sender for now). Here, you will obtain the amount transferred, the blockNumber, and to whom it was sent(also known as the receiver). - The schema file should look like this: - ``` type Account @entity { id: ID! #this primary key is set as the toAddress @@ -83,14 +76,13 @@ type Transfer @entity { #### Step 3: Update the Manifest File (aka project.yaml) -Update the manifest file to only include the `handleEvent` handler and update the filter method to `Transfer`. The reason is that we only want to work with the "balance transfer events" in this example. These events will contain the data of those transactions, which are being transferred from one account to another. +Update the manifest file to only include the `handleEvent` handler and update the filter method to `Transfer`. The reason is that we only want to work with the "balance transfer events" in this example. These events will contain the data of those transactions, which are being transferred from one account to another. ::: warning Important Avoid messing with the auto-generated version names(as shown in the initial section of the manifest file). ::: -- The ***updated*** part of the `project.yaml` file should look similar to as below: - +- The **_updated_** part of the `project.yaml` file should look similar to as below: ``` network: @@ -111,32 +103,28 @@ dataSources: method: Transfer ``` -::: info Note +::: tip Note Note the inclusion of a `dictionary` and the exclusion of the `genesisHash`. ::: - #### Step 4: Update the Mappings File -The initialisation command pre-creates a sample mappings file with 3 functions: `handleBlock`, `handleEvent`, and `handleCall`. As we are only focusing on `handleEvent`, delete the remaining functions. +The initialisation command pre-creates a sample mappings file with 3 functions: `handleBlock`, `handleEvent`, and `handleCall`. As we are only focusing on `handleEvent`, delete the remaining functions. -Note that you also need to make a few other changes. First, understand that the `balance.transfer` event gives access to an array of data in the following format: [from, to, value]. +Note that you also need to make a few other changes. First, understand that the `balance.transfer` event gives access to an array of data in the following format: [from, to, value]. This indicates that you can access the values as follows: - ``` const fromAddress = event.event.data[0]; - const toAddress = event.event.data[1]; + const toAddress = event.event.data[1]; const amount = event.event.data[2]; ``` - -Furthermore, as the `Account` entity (formally called the StarterEntity) was instantiated in the `handleBlock` function and you no longer have this, you need to instantiate it within the `handleEvent` function. +Furthermore, as the `Account` entity (formally called the StarterEntity) was instantiated in the `handleBlock` function and you no longer have this, you need to instantiate it within the `handleEvent` function. However, you must first test and see if this value is already in your database. The reason is that an event can contain multiple transfers to the SAME `toAddress`. As a result, you get the `toAddress` if the value is present in the database. And if it does not exist, save it to the database. - ``` const toAccount = await Account.get(toAddress.toString()); if (!toAccount) { @@ -146,7 +134,6 @@ However, you must first test and see if this value is already in your database. For the `Transfer` entity object, set the primary key as the `blocknumber+event.idx` (which guarantees uniqueness) and then set the other fields of the `Transfer` entity object accordingly. - ``` const transfer = new Transfer(`${event.block.block.header.number.toNumber()}-${event.idx}`, ); transfer.blockNumber = event.block.block.header.number.toBigInt(); @@ -157,7 +144,6 @@ For the `Transfer` entity object, set the primary key as the `blocknumber+event. - The `mappingHandler.ts` file should look like this: - ``` import {SubstrateEvent} from "@subql/types"; import {Account, Transfer} from "../types"; @@ -166,291 +152,265 @@ import {Balance} from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { { // The balances.transfer event has the following payload \[from, to, value\] that we can access - + // const fromAddress = event.event.data[0]; - const toAddress = event.event.data[1]; + const toAddress = event.event.data[1]; const amount = event.event.data[2]; - + // query for toAddress from DB const toAccount = await Account.get(toAddress.toString()); // if not in DB, instantiate a new Account object using the toAddress as a unique ID if (!toAccount) { await new Account(toAddress.toString()).save(); } - + // instantiate a new Transfer object using the block number and event.idx as a unique ID const transfer = new Transfer(`${event.block.block.header.number.toNumber()}-${event.idx}`, ); transfer.blockNumber = event.block.block.header.number.toBigInt(); transfer.toId = toAddress.toString(); transfer.amount = (amount as Balance).toBigInt(); await transfer.save(); - + } } ``` - #### Step 5: Install the Dependencies Install the node dependencies by running the following commands: - - - - ```shell - yarn install - ``` +::: code-tabs +@tab:active yarn - +```shell +yarn install +``` - +@tab npm - ```bash - npm install - ``` +```bash +npm install +``` - - +::: #### Step 6: Generate the Associated Typescript Next, we will generate the associated typescript with the following command: - - - - ```shell - yarn codegen - ``` - - +::: code-tabs +@tab:active yarn - +```shell +yarn codegen +``` - ```bash - npm run-script codegen - ``` +@tab npm - - +```bash +npm run-script codegen +``` +::: #### Step 7: Build the Project The next step is to build the project with the following command: - - - - ```shell - yarn build - ``` +::: code-tabs +@tab:active yarn - +```shell +yarn build +``` - +@tab npm - ```bash - npm run-script build - ``` +```bash +npm run-script build +``` - - +::: This code bundles the app into static files for production. - #### Step 8: Start the Docker Container Run the docker command to pull the images and start the container. - ``` docker-compose pull & docker-compose up ``` - #### Step 9: Run a Query Once the docker container is all set and running, which may take a few minutes, open up your browser and navigate to `www.localhost:3000`. This will open up a “playground” where you can create your query. Copy the example below and see the results: - - +::: code-tabs +@tab:active Query - ``` - query{ - accounts(first: 3){ - nodes{ - id - } - } +``` +query{ +accounts(first: 3){ + nodes{ + id + } } +} - ``` - +``` - +@tab result - ``` - { - "data": { - "accounts": { - "nodes": [ - { - "id": "11k5GkWb9npuqWRq5Pyk51RSnRyskPrPtsyoCApteEUjNou" - }, - { - "id": "121dZJsfG7uNvszPSpYvBzwnrcF1P4ejjrE1G6FSWHqht5tC" - }, - { - "id": "121rwkQAH3yCD1EcaRgc3nELSoZn29RoTtCN55mcN7RkBA66" - } - ] - } +``` +{ + "data": { + "accounts": { + "nodes": [ + { + "id": "11k5GkWb9npuqWRq5Pyk51RSnRyskPrPtsyoCApteEUjNou" + }, + { + "id": "121dZJsfG7uNvszPSpYvBzwnrcF1P4ejjrE1G6FSWHqht5tC" + }, + { + "id": "121rwkQAH3yCD1EcaRgc3nELSoZn29RoTtCN55mcN7RkBA66" + } + ] } } +} - ``` - - - +``` -The above code will query the `account` entity returning the id. We have defined the id here as the `toAddress`(also known as the receiving address). +::: +The above code will query the `account` entity returning the id. We have defined the id here as the `toAddress`(also known as the receiving address). - You can also query for all the **transfers**. Copy this given code and see the results: - - +::: code-tabs +@tab query - ``` - query{ - transfers(first: 3){ - nodes{ - id - amount - blockNumber - } +``` +query{ +transfers(first: 3){ + nodes{ + id + amount + blockNumber } } - - ``` - - - +} - ``` - { - "data": { - "transfers": { - "nodes": [ - { - "id": "7280565-2", - "amount": "400009691000", - "blockNumber": "7280565" - }, - { - "id": "7280566-2", - "amount": "23174700000000", - "blockNumber": "7280566" - }, - { - "id": "7280570-5", - "amount": "400000000000", - "blockNumber": "7280570" - } - ] - } +``` + +@tab result + +``` + { + "data": { + "transfers": { + "nodes": [ + { + "id": "7280565-2", + "amount": "400009691000", + "blockNumber": "7280565" + }, + { + "id": "7280566-2", + "amount": "23174700000000", + "blockNumber": "7280566" + }, + { + "id": "7280570-5", + "amount": "400000000000", + "blockNumber": "7280570" + } + ] } } - ``` - - - +} +``` +::: -- Note an amazing possibility here. We can even query the account id from within the transfer query. The example below shows that we are querying for transfers where we have an **associated amount** and **blockNumber**. After that we can link this to the receiving or `to` address as follows: +- Note an amazing possibility here. We can even query the account id from within the transfer query. The example below shows that we are querying for transfers where we have an **associated amount** and **blockNumber**. After that we can link this to the receiving or `to` address as follows: - - +::: code-tabs +@tab query - ``` - query{ - transfers(first: 3){ - nodes{ +``` +query{ + transfers(first: 3){ + nodes{ + id + amount + blockNumber + to{ id - amount - blockNumber - to{ - id - } - } } - } - ``` - - - - ``` - { - "data": { - "transfers": { - "nodes": [ - { - "id": "7280565-2", - "amount": "400009691000", - "blockNumber": "7280565", - "to": { - "id": "15kUt2i86LHRWCkE3D9Bg1HZAoc2smhn1fwPzDERTb1BXAkX" - } - }, - { - "id": "7280566-2", - "amount": "23174700000000", - "blockNumber": "7280566", - "to": { - "id": "14uh77yjhC3TLAE6KaCLvkjN7yFeUkejm7o7fdaSsggwD1ua" - } - }, - { - "id": "7280567-2", - "amount": "3419269000000", - "blockNumber": "7280567", - "to": { - "id": "12sj9HTNQ7aiQoRg5wLyuemgvmFcrWeUJRi3aEUnJLmAE56Y" - } - } - ] } } } - ``` - - - - +``` +@tab result -Let's have a look at the database schema and understand the working. +``` +{ + "data": { + "transfers": { + "nodes": [ + { + "id": "7280565-2", + "amount": "400009691000", + "blockNumber": "7280565", + "to": { + "id": "15kUt2i86LHRWCkE3D9Bg1HZAoc2smhn1fwPzDERTb1BXAkX" + } + }, + { + "id": "7280566-2", + "amount": "23174700000000", + "blockNumber": "7280566", + "to": { + "id": "14uh77yjhC3TLAE6KaCLvkjN7yFeUkejm7o7fdaSsggwD1ua" + } + }, + { + "id": "7280567-2", + "amount": "3419269000000", + "blockNumber": "7280567", + "to": { + "id": "12sj9HTNQ7aiQoRg5wLyuemgvmFcrWeUJRi3aEUnJLmAE56Y" + } + } + ] + } + } +} +``` -The **accounts table** is a standalone table which contains only receiving addresses(`accounts.id`). The **transfer table** contains `to_id` which are links or points back to the accounts. +::: -Simply put, one account links to many transfers. In other words, each unique Polkadot address, stored in `accounts.id`, links to one or more than one Polkadot address, which has an associated amount and block number. +Let's have a look at the database schema and understand the working. +The **accounts table** is a standalone table which contains only receiving addresses(`accounts.id`). The **transfer table** contains `to_id` which are links or points back to the accounts. +Simply put, one account links to many transfers. In other words, each unique Polkadot address, stored in `accounts.id`, links to one or more than one Polkadot address, which has an associated amount and block number. ### References -* [Account Transfers PDF workbook](/assets/pdf/Account_Transfers.pdf) -* [Account Transfers Github](https://github.com/subquery/tutorials-account-transfers) -* [One-to-many relationships](../../build/graphql.md#one-to-many-relationships) +- [Account Transfers PDF workbook](/assets/pdf/Account_Transfers.pdf) +- [Account Transfers Github](https://github.com/subquery/tutorials-account-transfers) +- [One-to-many relationships](../../build/graphql.md#one-to-many-relationships) --- - ## Lesson 2: Many to Many Entities
@@ -459,16 +419,14 @@ Simply put, one account links to many transfers. In other words, each unique Pol ### Exercise - Council Proposals (Many-to-Many) -Here, we will take the starter project and focus on learning how many-to-many entity relationships work. We will create a project which allows us to query for the number of votes that councillors have made and how many votes a given proposal has received. - +Here, we will take the starter project and focus on learning how many-to-many entity relationships work. We will create a project which allows us to query for the number of votes that councillors have made and how many votes a given proposal has received. -[Refer to this page](https://polkadot.network/blog/a-walkthrough-of-polkadots-governance/) to learn more about the Polkadot governance structure. +[Refer to this page](https://polkadot.network/blog/a-walkthrough-of-polkadots-governance/) to learn more about the Polkadot governance structure. ### Pre-Requisites Completion of [Module 2](../herocourse/module2.md). - ### Overview of Steps Involved 1. Initialise the starter project. @@ -477,7 +435,6 @@ Completion of [Module 2](../herocourse/module2.md). 4. Deploy your code in Docker. 5. Query for address balances in the playground. - ### Detailed Steps #### Step 1: Initialise Your Project @@ -490,28 +447,26 @@ Project name [subql-starter]: council-proposal ? Select a network Polkadot ? Select a template project subql-starter Starter project for subquery Cloning project... done -RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]: -Git repository [https://github.com/subquery/subql-starter]: +RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]: +Git repository [https://github.com/subquery/subql-starter]: Fetching network genesis hash... done -Author [Ian He & Jay Ji]: -Description [This project can be use as a starting po...]: -Version [0.0.4]: -License [MIT]: +Author [Ian He & Jay Ji]: +Description [This project can be use as a starting po...]: +Version [0.0.4]: +License [MIT]: Preparing project... done council-proposal is ready ``` #### Step 2: Update the Graphql Schema -Let’s first create an entity called `Proposals`. This proposal is an event of type council. To simply put, you will extract data from the **council event**. Visit [this page](https://polkadot.js.org/docs/substrate/events#council) for more information. +Let’s first create an entity called `Proposals`. This proposal is an event of type council. To simply put, you will extract data from the **council event**. Visit [this page](https://polkadot.js.org/docs/substrate/events#council) for more information. Focus on the `proposed` method within the council event. The `proposed` method is defined as: ->“*A motion (given hash) has been proposed (by given account) with a threshold (given MemberCount). [account, proposal_index, proposal_hash, threshold]” - [source](https://polkadot.js.org/docs/substrate/events/#proposedaccountid32-u32-h256-u32-1)* - - +> “_A motion (given hash) has been proposed (by given account) with a threshold (given MemberCount). [account, proposal_index, proposal_hash, threshold]” - [source](https://polkadot.js.org/docs/substrate/events/#proposedaccountid32-u32-h256-u32-1)_ -Hence, you need to add the following fields: `id`, `index`, `hash`, `voteThreshold` and `block` to your entity. +Hence, you need to add the following fields: `id`, `index`, `hash`, `voteThreshold` and `block` to your entity. ``` id => account @@ -521,20 +476,13 @@ Hence, you need to add the following fields: `id`, `index`, `hash`, `voteThresho block => Not a part of proposed method but useful to extract ``` - - -Next, let’s create an entity object called `Councillor`. This object will hold the number of votes each **councillor** has made. +Next, let’s create an entity object called `Councillor`. This object will hold the number of votes each **councillor** has made. Finally, let’s create a **VoteHistory** entity. This will be another [council event](https://polkadot.js.org/docs/substrate/events#council) using the [voted](https://polkadot.js.org/docs/substrate/events#votedaccountid32-h256-bool-u32-u32) method defined as: +> “_A motion (given hash) has been voted on by a given account, leaving a tally ("yes votes" and "no votes" respectively given as MemberCount). [account, proposal_hash, voted, yes, no]”- [source](https://polkadot.js.org/docs/substrate/events/#votedaccountid32-h256-bool-u32-u32-1)_ - - ->“*A motion (given hash) has been voted on by a given account, leaving a tally ("yes votes" and "no votes" respectively given as MemberCount). [account, proposal_hash, voted, yes, no]”- [source](https://polkadot.js.org/docs/substrate/events/#votedaccountid32-h256-bool-u32-u32-1)* - - - -You need to add the following fields: `id`, `proposalHash`, `approvedVote`, `councillor`, `votedYes`, `votedNo`, and `block` to your entity. +You need to add the following fields: `id`, `proposalHash`, `approvedVote`, `councillor`, `votedYes`, `votedNo`, and `block` to your entity. ``` id => account @@ -546,14 +494,12 @@ You need to add the following fields: `id`, `proposalHash`, `approvedVote`, `cou block => Not a part of proposed method but useful to extract ``` -Here, we have specified the type as the proposal entityNote for `proposalHash`. We have also introduced a new field called `Councillor` and allocated it the `Councillor` type. This has created a table where these two columns work as references to their respective tables. +Here, we have specified the type as the proposal entityNote for `proposalHash`. We have also introduced a new field called `Councillor` and allocated it the `Councillor` type. This has created a table where these two columns work as references to their respective tables. - -This indicates that the **VoteHistory entity** or **VoteHistory database table** can link the `Councillor` entity to the `Proposal` entity. And that creates a **many to many** relationship. In simple terms, councillor can vote for many proposals and a proposal will have many votes. +This indicates that the **VoteHistory entity** or **VoteHistory database table** can link the `Councillor` entity to the `Proposal` entity. And that creates a **many to many** relationship. In simple terms, councillor can vote for many proposals and a proposal will have many votes. - The schema file should look like this: - ``` type Proposal @entity { id: ID! @@ -582,11 +528,9 @@ type Councillor @entity { #### Step 3: Update the Manifest File (aka project.yaml) -Update the manifest file to include two **Event handlers**. Also update the **filter** method to `council/Proposed` and `council/Voted`. - - -- The ***updated*** part of the `project.yaml` file should look simiar to as below: +Update the manifest file to include two **Event handlers**. Also update the **filter** method to `council/Proposed` and `council/Voted`. +- The **_updated_** part of the `project.yaml` file should look simiar to as below: ``` dataSources: @@ -607,17 +551,15 @@ dataSources: method: Voted ``` - #### Step 4: Update the Mappings File This mapping file will contain three functions: `handleCouncilProposedEvent`, `handleCouncilVotedEvent`, and `ensureCouncillor`. - Let’s have a look at the first function `handleCouncilProposedEvent`. ##### 4.1 handleCouncilProposedEvent -You can access the values of the event with the following code: +You can access the values of the event with the following code: ``` const { @@ -629,13 +571,11 @@ You can access the values of the event with the following code: - Then instantiate a new `Proposal` object: - ``` const proposal = new Proposal(proposal_hash.toString()); ``` -- After that assign each of the events to a variable in the Proposal object and save it. - +- After that assign each of the events to a variable in the Proposal object and save it. ``` proposal.index = proposal_index.toString(); @@ -646,7 +586,6 @@ You can access the values of the event with the following code: await proposal.save(); ``` - ##### 4.2 handleCouncilVotedEvent This function follows a similar format to `handleCouncilProposedEvent`. The event parameters are first obtained as below: @@ -659,7 +598,7 @@ const { } = event; ``` -However, before storing the values into the `voteHistory` object, a helper function is used to check if the `councillorId` already exists. +However, before storing the values into the `voteHistory` object, a helper function is used to check if the `councillorId` already exists. ``` await ensureCouncillor(councilorId.toString()); @@ -673,7 +612,6 @@ However, before storing the values into the `voteHistory` object, a helper funct This helper function checks if the councillor entity exists. If it does NOT exist, a new one is created and the number of votes is set to zero. Otherwise, the number of votes is incremented by one. - ``` async function ensureCouncillor(accountId: string): Promise { // ensure that our account entities exist @@ -686,13 +624,8 @@ async function ensureCouncillor(accountId: string): Promise { await councillor.save(); ``` - - - The complete mapping file looks similar to as follows: - - - ``` import { SubstrateEvent } from "@subql/types"; import { bool, Int } from "@polkadot/types"; @@ -752,74 +685,63 @@ async function ensureCouncillor(accountId: string): Promise { Install the node dependencies by running the following command: - - +::: code-tabs +@tab:active yarn - ```shell - yarn install - ``` +```shell +yarn install +``` - +@tab npm - +```bash +npm install +``` - ```bash - npm install - ``` +::: - - -``` +```` #### Step 6: Generate the Associated Typescript Next, generate the associated typescript using the following command: +::: code-tabs +@tab:active yarn - - - - ```shell - yarn codegen - ``` - - - - +```shell +yarn codegen +```` - ```bash - npm run-script codegen - ``` +@tab npm - - +```bash +npm run-script codegen +``` +::: #### Step 7: Build the Project Now, let's build the project with the following command: - - +::: code-tabs +@tab:active yarn - ```shell - yarn build - ``` - - +```shell +yarn build +``` - +@tab npm - ```bash - npm run-script build - ``` +```bash +npm run-script build +``` - - +::: This code bundles the app into static files for production. - #### Step 8: Start the Docker Container Run the docker command to pull the images and start the container. @@ -834,123 +756,119 @@ Once the docker container is up to date and running successfully, which may take This will open up a **playground** where you can create your query. Copy the example below and have a look at the results: - - - - ``` - query { - councillors (first: 3 orderBy: NUMBER_OF_VOTES_DESC) { - nodes { - id - numberOfVotes - voteHistories (first: 5) { - totalCount - nodes { - approvedVote - } - } +::: code-tabs +@tab:active Query + +``` +query { + councillors (first: 3 orderBy: NUMBER_OF_VOTES_DESC) { + nodes { + id + numberOfVotes + voteHistories (first: 5) { + totalCount + nodes { + approvedVote + } } - } - } + } + } +} - ``` - +``` - - ``` - { - "data": { - "councillors": { - "nodes": [ - { - "id": "12hAtDZJGt4of3m2GqZcUCVAjZPALfvPwvtUTFZPQUbdX1Ud", - "numberOfVotes": 61, - "voteHistories": { - "totalCount": 61, - "nodes": [ - { - "approvedVote": true - }, - { - "approvedVote": true - }, - { - "approvedVote": true - }, - { - "approvedVote": true - }, - { - "approvedVote": true - } - ] - } - }, - { - "id": "1363HWTPzDrzAQ6ChFiMU6mP4b6jmQid2ae55JQcKtZnpLGv", - "numberOfVotes": 60, - "voteHistory": { - "totalCount": 60, - "nodes": [ - { - "approvedVote": true - }, - { - "approvedVote": true - }, - { - "approvedVote": true - }, - { - "approvedVote": true - }, - { - "approvedVote": true - } - ] - } - }, - { - "id": "12NLgzqfhuJkc9mZ5XUTTG85N8yhhzfptwqF1xVhtK3ZX7f6", - "numberOfVotes": 56, - "voteHistory": { - "totalCount": 56, - "nodes": [ - { - "approvedVote": true - }, - { - "approvedVote": true - }, - { - "approvedVote": true - }, - { - "approvedVote": true - }, - { - "approvedVote": true - } - ] - } +@tab result + +``` +{ + "data": { + "councillors": { + "nodes": [ + { + "id": "12hAtDZJGt4of3m2GqZcUCVAjZPALfvPwvtUTFZPQUbdX1Ud", + "numberOfVotes": 61, + "voteHistories": { + "totalCount": 61, + "nodes": [ + { + "approvedVote": true + }, + { + "approvedVote": true + }, + { + "approvedVote": true + }, + { + "approvedVote": true + }, + { + "approvedVote": true + } + ] } - ] - } + }, + { + "id": "1363HWTPzDrzAQ6ChFiMU6mP4b6jmQid2ae55JQcKtZnpLGv", + "numberOfVotes": 60, + "voteHistory": { + "totalCount": 60, + "nodes": [ + { + "approvedVote": true + }, + { + "approvedVote": true + }, + { + "approvedVote": true + }, + { + "approvedVote": true + }, + { + "approvedVote": true + } + ] + } + }, + { + "id": "12NLgzqfhuJkc9mZ5XUTTG85N8yhhzfptwqF1xVhtK3ZX7f6", + "numberOfVotes": 56, + "voteHistory": { + "totalCount": 56, + "nodes": [ + { + "approvedVote": true + }, + { + "approvedVote": true + }, + { + "approvedVote": true + }, + { + "approvedVote": true + }, + { + "approvedVote": true + } + ] + } + } + ] } } - ``` - - - - +} +``` -The above code will query the councillors. It will return the **number of votes**, the **totalCount**, and the **number of approved votes** for each councillor. +::: +The above code will query the councillors. It will return the **number of votes**, the **totalCount**, and the **number of approved votes** for each councillor. ### Bonus -Including a **Reverse Lookup** on the schema file will allow you to customise the fields on which you can query. - +Including a **Reverse Lookup** on the schema file will allow you to customise the fields on which you can query. ``` type Proposal @entity { @@ -982,12 +900,11 @@ type Councillor @entity { Here, by adding `voteHistory_p` and `voteHistory_b`, `voteHistories` becomes `voteHistory_c`. - ### References -* [Council Proposal PDF workbook](/assets/pdf/Council_Proposal.pdf) -* [Council Proposal Github](https://github.com/subquery/tutorials-council-proposals) -* [Many-to-Many relationships](../../build/graphql.md#many-to-many-relationships) +- [Council Proposal PDF workbook](/assets/pdf/Council_Proposal.pdf) +- [Council Proposal Github](https://github.com/subquery/tutorials-council-proposals) +- [Many-to-Many relationships](../../build/graphql.md#many-to-many-relationships) --- @@ -997,17 +914,14 @@ Here, by adding `voteHistory_p` and `voteHistory_b`, `voteHistories` becomes `vo
- - ### Exercise - Account Transfer (With Reverse Lookup) -In this exercise, we will take the starter project and learn about the reverse lookups. +In this exercise, we will take the starter project and learn about the reverse lookups. ### Pre-Requisites Completion of [Module 3: Lesson 1 - One to many entities.](module3.md#lesson-1-one-to-many-entities) - ### Overview of Steps Involved 1. Git clone the [tutorials-account-transfers](https://github.com/subquery/tutorials-account-transfers) project. @@ -1019,26 +933,23 @@ Completion of [Module 3: Lesson 1 - One to many entities.](module3.md#lesson-1-o #### Step 1: Clone Account Transfer Project -Start by cloning the `tutorials-account-transfers` Github repository. +Start by cloning the `tutorials-account-transfers` Github repository. -::: info Note -This github project was a part of the exercise for **Module 3 - Lesson 2** (See Reference in the end of the Lesson 2). +::: tip Note +This github project was a part of the exercise for **Module 3 - Lesson 2** (See Reference in the end of the Lesson 2). ::: Run the following command: - ``` git clone https://github.com/subquery/tutorials-account-transfers.git ``` - -#### Step 2: Confirm that Project Works +#### Step 2: Confirm that Project Works Run the basic commands to run the project and check if it's all set. - ``` yarn install yarn codegen @@ -1047,123 +958,118 @@ docker-compose pull && docker-compose up ``` -Once the docker container is running, which may take a few minutes, open up your browser and navigate to `www.localhost:3000`. +Once the docker container is running, which may take a few minutes, open up your browser and navigate to `www.localhost:3000`. This will open up a **playground** where you can create your query. Copy the example below and see the result: - - +::: code-tabs +@tab:active Query - ``` - query{ - accounts(first: 3){ - nodes{ - id - } - } +``` +query{ + accounts(first: 3){ + nodes{ + id + } } - ``` - + } +``` - - - ``` - { - "data": { - "accounts": { - "nodes": [ - { - "id": "11k5GkWb9npuqWRq5Pyk51RSnRyskPrPtsyoCApteEUjNou" - }, - { - "id": "121dZJsfG7uNvszPSpYvBzwnrcF1P4ejjrE1G6FSWHqht5tC" - }, - { - "id": "121rwkQAH3yCD1EcaRgc3nELSoZn29RoTtCN55mcN7RkBA66" - } - ] - } +@tab result + +``` +{ + "data": { + "accounts": { + "nodes": [ + { + "id": "11k5GkWb9npuqWRq5Pyk51RSnRyskPrPtsyoCApteEUjNou" + }, + { + "id": "121dZJsfG7uNvszPSpYvBzwnrcF1P4ejjrE1G6FSWHqht5tC" + }, + { + "id": "121rwkQAH3yCD1EcaRgc3nELSoZn29RoTtCN55mcN7RkBA66" + } + ] } } - ``` - - +} +``` +::: -The above code will query the account entity returning the id. Here. we have defined the id as the `toAddress`(also known as the **receiving address**). +The above code will query the account entity returning the id. Here. we have defined the id as the `toAddress`(also known as the **receiving address**). +- As noted in a previous exercise(**Lesson 1**), we query the account id from within the **transfer entity**. -- As noted in a previous exercise(**Lesson 1**), we query the account id from within the **transfer entity**. +The example given below shows that we are querying for transfers where we have an associated amount and blockNumber. After that, we can link this to the receiving or `to` address as follows: -The example given below shows that we are querying for transfers where we have an associated amount and blockNumber. After that, we can link this to the receiving or `to` address as follows: +::: code-tabs +@tab query - - - - ``` - query{ - transfers(first: 3){ - nodes{ +``` +query{ + transfers(first: 3){ + nodes{ + id + amount + blockNumber + to{ id - amount - blockNumber - to{ - id - } - } + } } } - ``` - + } +``` - +@tab result - ``` - { - "data": { - "transfers": { - "nodes": [ - { - "id": "7280565-2", - "amount": "400009691000", - "blockNumber": "7280565", - "to": { - "id": "15kUt2i86LHRWCkE3D9Bg1HZAoc2smhn1fwPzDERTb1BXAkX" - } - }, - { - "id": "7280566-2", - "amount": "23174700000000", - "blockNumber": "7280566", - "to": { - "id": "14uh77yjhC3TLAE6KaCLvkjN7yFeUkejm7o7fdaSsggwD1ua" - } - }, - { - "id": "7280567-2", - "amount": "3419269000000", - "blockNumber": "7280567", - "to": { - "id": "12sj9HTNQ7aiQoRg5wLyuemgvmFcrWeUJRi3aEUnJLmAE56Y" - } +``` +{ + "data": { + "transfers": { + "nodes": [ + { + "id": "7280565-2", + "amount": "400009691000", + "blockNumber": "7280565", + "to": { + "id": "15kUt2i86LHRWCkE3D9Bg1HZAoc2smhn1fwPzDERTb1BXAkX" } - ] - } + }, + { + "id": "7280566-2", + "amount": "23174700000000", + "blockNumber": "7280566", + "to": { + "id": "14uh77yjhC3TLAE6KaCLvkjN7yFeUkejm7o7fdaSsggwD1ua" + } + }, + { + "id": "7280567-2", + "amount": "3419269000000", + "blockNumber": "7280567", + "to": { + "id": "12sj9HTNQ7aiQoRg5wLyuemgvmFcrWeUJRi3aEUnJLmAE56Y" + } + } + ] } } - ``` - - - +} +``` +::: #### Step 3: Add a Reverse Lookup -Add an extra field to the **Account** entity called `myToAddress`. Assign it the type `Transfer`, and add the `@derived` annotation. +Add an extra field to the **Account** entity called `myToAddress`. Assign it the type `Transfer`, and add the `@derived` annotation. -This will create a **virtual field** called `myToAddress`, which can be accessed from the Account entity. Note that it is virtual because the database table structure does not change. +This will create a **virtual field** called `myToAddress`, which can be accessed from the Account entity. Note that it is virtual because the database table structure does not change. + - Allows you to do a reverse lookup in Graphql. - Adds a `GetElementByID()` on the child entities. @@ -1183,108 +1089,105 @@ type Transfer @entity { #### Step 4: Recompile and Test - - +::: code-tabs +@tab:active Query - ``` - query{ - accounts(first:5){ - nodes{ - id - myToAddress{ - nodes{ - id - amount - } +``` +query{ + accounts(first:5){ + nodes{ + id + myToAddress{ + nodes{ + id + amount } } } } - ``` - +} +``` - +@tab result - ``` - { - "data": { - "accounts": { - "nodes": [ - { - "id": "1112NRMkvMb5x3EwGsLSzXyw7kSLxug4uFH1ec3CnDe7ZoG", - "myToAddress": { - "nodes": [ - { - "id": "1206531-14", - "amount": "123000000000" - }, - { - "id": "1206533-9", - "amount": "30000000000" - }, - { - "id": "1249840-2", - "amount": "100000000000" - } - ] - } - }, - { - "id": "1117zZ65F4sz3EH9hZdAivERch99XMXADHicJn7ZmKUrrxT", - "myToAddress": { - "nodes": [ - { - "id": "1256968-5", - "amount": "86880000000" - }, - { - "id": "1256984-5", - "amount": "12299500000000" - } - ] - } - }, - { - "id": "11212d8rV4pj73RLoXqiEJweNs2qU1SsfwbzzRWVzn2o5ZCt", - "myToAddress": { - "nodes": [ - { - "id": "1212424-9", - "amount": "50000000000" - }, - { - "id": "1212680-3", - "amount": "150000000000" - }, - { - "id": "1212719-3", - "amount": "22622363200000" - }, - { - "id": "1240252-2", - "amount": "41055764800000" - }, - { - "id": "1258672-6", - "amount": "49000000000" - } - ] - } +``` +{ + "data": { + "accounts": { + "nodes": [ + { + "id": "1112NRMkvMb5x3EwGsLSzXyw7kSLxug4uFH1ec3CnDe7ZoG", + "myToAddress": { + "nodes": [ + { + "id": "1206531-14", + "amount": "123000000000" + }, + { + "id": "1206533-9", + "amount": "30000000000" + }, + { + "id": "1249840-2", + "amount": "100000000000" + } + ] } - ] - } + }, + { + "id": "1117zZ65F4sz3EH9hZdAivERch99XMXADHicJn7ZmKUrrxT", + "myToAddress": { + "nodes": [ + { + "id": "1256968-5", + "amount": "86880000000" + }, + { + "id": "1256984-5", + "amount": "12299500000000" + } + ] + } + }, + { + "id": "11212d8rV4pj73RLoXqiEJweNs2qU1SsfwbzzRWVzn2o5ZCt", + "myToAddress": { + "nodes": [ + { + "id": "1212424-9", + "amount": "50000000000" + }, + { + "id": "1212680-3", + "amount": "150000000000" + }, + { + "id": "1212719-3", + "amount": "22622363200000" + }, + { + "id": "1240252-2", + "amount": "41055764800000" + }, + { + "id": "1258672-6", + "amount": "49000000000" + } + ] + } + } + ] } } - ``` - - - +} +``` +::: -Adding the `@derivedFrom` keyword to the `myToAddress` field allows a **virtual field** to appear in the `Account` object. You can see this in the documentation tab. This allows a **Reverse Lookup** where the `Transfer.to` field can be accessed from `Account.myToAddress`. +Adding the `@derivedFrom` keyword to the `myToAddress` field allows a **virtual field** to appear in the `Account` object. You can see this in the documentation tab. This allows a **Reverse Lookup** where the `Transfer.to` field can be accessed from `Account.myToAddress`. ### References -* [Account Transfer with Reverse Lookups PDF Workbook](/assets/pdf/Account_Transfer_with_Reverse_Lookups.pdf) -* [Account Transfer with Reverse Lookups Github](https://github.com/subquery/tutorials-account-transfer-reverse-lookups) -* [Reverse lookups](../../build/graphql.md#reverse-lookups) +- [Account Transfer with Reverse Lookups PDF Workbook](/assets/pdf/Account_Transfer_with_Reverse_Lookups.pdf) +- [Account Transfer with Reverse Lookups Github](https://github.com/subquery/tutorials-account-transfer-reverse-lookups) +- [Reverse lookups](../../build/graphql.md#reverse-lookups) diff --git a/docs/academy/herocourse/module4.md b/docs/academy/herocourse/module4.md index 206ad85342d..bfc30bed856 100644 --- a/docs/academy/herocourse/module4.md +++ b/docs/academy/herocourse/module4.md @@ -1,6 +1,6 @@ # Module 4: Aggregation -This module explains how you can aggregate data with a video lesson. The module is further divided into 4 guided exercises. +This module explains how you can aggregate data with a video lesson. The module is further divided into 4 guided exercises. ## Lesson 1: Aggregation Basics @@ -10,19 +10,17 @@ This module explains how you can aggregate data with a video lesson. The module ## Exercises -In these exercises, we will take the starter project and see how we can aggregate data. We will focus on indexing the staking rewards and then aggregating them over a particular account. +In these exercises, we will take the starter project and see how we can aggregate data. We will focus on indexing the staking rewards and then aggregating them over a particular account. -To summarise, we will determine how much reward an account has accumulated over time. +To summarise, we will determine how much reward an account has accumulated over time. ## Pre-Requisites Completion of [Module 3](../herocourse/module3.md). - ## Exercise 1: Index Staking Rewards -Before you aggregate all the staked rewards earned by a user, or to be precise a **DOT account owner**, you need to index those staking rewards. - +Before you aggregate all the staked rewards earned by a user, or to be precise a **DOT account owner**, you need to index those staking rewards. ### Overview of Steps Involved @@ -38,26 +36,23 @@ Before you aggregate all the staked rewards earned by a user, or to be precise a The first step to create a SubQuery project with the following command: - ``` $ subql init Project name [subql-starter]: staking-rewards ? Select a network family Substrate ? Select a network Polkadot ? Select a template project subql-starter Starter project for subquery -RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]: -Git repository [https://github.com/subquery/subql-starter]: +RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]: +Git repository [https://github.com/subquery/subql-starter]: Fetching network genesis hash... done -Author [Ian He & Jay Ji]: -Description [This project can be use as a starting po...]: -Version [1.0.0]: -License [MIT]: +Author [Ian He & Jay Ji]: +Description [This project can be use as a starting po...]: +Version [1.0.0]: +License [MIT]: Preparing project... done staking-rewards is ready ``` - - #### Step 2: Update the Graphql Schema Add an entity called `StakingReward`. This entity will allow you to record the account-reward along with the balance. Moreover, the block height will help you perform a cross check. @@ -74,12 +69,9 @@ type StakingReward @entity{ } ``` - - #### Step 3: Update the Manifest File (aka project.yaml) -Update the manifest file by including a `handleStakingRewarded` handler and updating the filter method to `staking/Rewarded`. This is the only event you require to capture for now. Hence, remove the `blockHandler` and `callHandler`. - +Update the manifest file by including a `handleStakingRewarded` handler and updating the filter method to `staking/Rewarded`. This is the only event you require to capture for now. Hence, remove the `blockHandler` and `callHandler`. ``` - handler: handleStakingRewarded @@ -89,16 +81,14 @@ Update the manifest file by including a `handleStakingRewarded` handler and upda method: Rewarded ``` -::: info Note -The `Rewarded` method was recently introduced from the block [6,713,249](https://github.com/polkadot-js/api/blob/master/packages/types-known/src/upgrades/polkadot.ts) onwards. It was previously called `Reward`. For this exercise, we will use this the new format and use a startBlock of 7,000,000. +::: tip Note +The `Rewarded` method was recently introduced from the block [6,713,249](https://github.com/polkadot-js/api/blob/master/packages/types-known/src/upgrades/polkadot.ts) onwards. It was previously called `Reward`. For this exercise, we will use this the new format and use a startBlock of 7,000,000. ::: - ::: warning Important Avoid messing with the auto-generated version names(as shown in the initial section of the manifest file). ::: - - The updated part of the manifest file will look like as follows: ``` @@ -140,12 +130,9 @@ bad indentation of a sequence entry (17:5) error Command failed with exit code 1. ``` - - #### Step 4: Create `handleStakingRewarded` and Update Mapping File -The initialisation of the project also pre-creates a sample mappings file with 3 functions: `handleBlock`, `handleEvent` and `handleCall`. Delete all of these functions as you need to create your own. - +The initialisation of the project also pre-creates a sample mappings file with 3 functions: `handleBlock`, `handleEvent` and `handleCall`. Delete all of these functions as you need to create your own. ``` export async function handleStakingRewarded(event: SubstrateEvent): Promise { @@ -153,25 +140,19 @@ export async function handleStakingRewarded(event: SubstrateEvent): Promise - +::: code-tabs +@tab:active yarn - ```shell - yarn install - yarn codegen - yarn build - yarn start:docker +```shell +yarn install +yarn codegen +yarn build +yarn start:docker ``` - +@tab npm - - - ```bash - npm install - npm run-script codegen - npm run-script build - ``` +```bash +npm install +npm run-script codegen +npm run-script build +``` - - +::: #### Step 6: Query the Project -Once the docker container is up and running successfully, which may take a few minutes, open up your browser and navigate to `www.localhost:3000`. +Once the docker container is up and running successfully, which may take a few minutes, open up your browser and navigate to `www.localhost:3000`. This will open up a “playground” where you can create your query. Copy the example below and see the results: - - - - ``` - query{ - stakingRewards(first: 3 orderBy:BLOCK_HEIGHT_ASC){ - nodes{ - blockHeight - account - date - balance - } +::: code-tabs +@tab:active Query + +``` +query{ + stakingRewards(first: 3 orderBy:BLOCK_HEIGHT_ASC){ + nodes{ + blockHeight + account + date + balance } } - ``` - - - - - ``` - { - "data": { - "stakingRewards": { - "nodes": [ - { - "blockHeight": 7000064, - "account": "16jWQMBXZNxfgXJmVL61gMX4uqtc9WTXV3c8DGx6DUKejm7", - "date": "2021-09-26T16:50:18.001", - "balance": "2189068638" - }, - { - "blockHeight": 7000064, - "account": "13MnytvGDqJLGZbizqd8CDKJUPa9UJyzXcdxRiJEv5g2hq47", - "date": "2021-09-26T16:50:18.001", - "balance": "2050030971" - }, - { - "blockHeight": 7000064, - "account": "12L117g377z195J3WaPshEaFC8vsNMyiMi8CTWfWVJdmBAJ4", - "date": "2021-09-26T16:50:18.001", - "balance": "2007885451" - }, - { - "blockHeight": 7000064, - "account": "13owVsvG3GtmDYfcnDNCVm54z6X6VgYf37QRMFywrVPpkJvv", - "date": "2021-09-26T16:50:18.001", - "balance": "1987101808" - }, - } - } - ``` - - +} +``` +@tab result + +``` +{ + "data": { + "stakingRewards": { + "nodes": [ + { + "blockHeight": 7000064, + "account": "16jWQMBXZNxfgXJmVL61gMX4uqtc9WTXV3c8DGx6DUKejm7", + "date": "2021-09-26T16:50:18.001", + "balance": "2189068638" + }, + { + "blockHeight": 7000064, + "account": "13MnytvGDqJLGZbizqd8CDKJUPa9UJyzXcdxRiJEv5g2hq47", + "date": "2021-09-26T16:50:18.001", + "balance": "2050030971" + }, + { + "blockHeight": 7000064, + "account": "12L117g377z195J3WaPshEaFC8vsNMyiMi8CTWfWVJdmBAJ4", + "date": "2021-09-26T16:50:18.001", + "balance": "2007885451" + }, + { + "blockHeight": 7000064, + "account": "13owVsvG3GtmDYfcnDNCVm54z6X6VgYf37QRMFywrVPpkJvv", + "date": "2021-09-26T16:50:18.001", + "balance": "1987101808" + }, + } + } +``` +::: -Congratulations! You have now indexed all staking rewards for all accounts from the block 7 Million onwards. +Congratulations! You have now indexed all staking rewards for all accounts from the block 7 Million onwards. In the next exercise, let’s aggregate or sum up these rewards for each account. @@ -310,12 +281,10 @@ Compeletion of [Module 4 - Exercise 1](module4.md#exercise-1-index-staking-rewar ### Detailed Steps - #### Step 1: Add an Entity Called Sum Reward Add a new entity called `SumReward` with extra fields as shown below: - ``` type SumReward @entity{ id: ID! # AccountId @@ -324,10 +293,8 @@ type SumReward @entity{ } ``` - - **The new schema file should now look like this:** - ``` type StakingReward @entity{ id: ID! #blockHeight-eventIdx @@ -343,13 +310,10 @@ type SumReward @entity{ } ``` - - #### Step 2: Update the Manifest File(aka project.yaml) Add an extra handler called `handleSumRewarded` and filter it by `staking/Rewarded`. - ``` - handler: handleSumRewarded kind: substrate/EventHandler @@ -358,9 +322,7 @@ Add an extra handler called `handleSumRewarded` and filter it by `staking/Reward method: Rewarded ``` - -The ***latest and updated part*** of the manifest file should look like as below: - +The **_latest and updated part_** of the manifest file should look like as below: ``` dataSources: @@ -381,23 +343,20 @@ dataSources: method: Rewarded ``` - - -::: info Note -This is how more than one mapping handler can be added to a project. Also note that the order is very crucial. +::: tip Note +This is how more than one mapping handler can be added to a project. Also note that the order is very crucial. Otherwise you may encounter an error such as: ``` ERROR failed to index block at height 7000064 handleStakingRewarded() SequelizeForeignKeyConstraintError: insert or update on table "staking_rewards" violates foreign key constraint "staking_rewards_account_id_fkey" ``` -::: +::: -#### Step 3: Create `handleSumRewarded` Function and Update Mapping File +#### Step 3: Create `handleSumRewarded` Function and Update Mapping File Next, create a function called `handleSumRewarded` along with a helper function called `createSumReward`. - ``` function createSumReward(accountId: string): SumReward { const entity = new SumReward(accountId); @@ -417,13 +376,12 @@ export async function handleSumRewarded(event: SubstrateEvent): Promise { } ``` -::: info Note +::: tip Note Run `yarn codegen` and import the new entity to remove the errors. ::: The complete and updated mapping file should now look like: - ``` import {SubstrateEvent} from "@subql/types"; import {StakingReward, SumReward} from "../types"; @@ -457,80 +415,72 @@ export async function handleSumRewarded(event: SubstrateEvent): Promise { } ``` - - #### Step 4: Rebuild the Project See building a project in the [previous exercise](module4.md#step-5-install-dependencies-and-build-the-project). -::: info Note -Delete your database instance, i.e. the `.data folder`, as you have modified the schema file. +::: tip Note +Delete your database instance, i.e. the `.data folder`, as you have modified the schema file. ::: - #### Step 5: Query the Project Run the following query to list out the total rewards for each account. - - - - ``` - query{ - sumRewards(first:3 orderBy:BLOCKHEIGHT_ASC){ - nodes{ - blockheight - id - totalReward - } +::: code-tabs +@tab:active Query + +``` +query{ + sumRewards(first:3 orderBy:BLOCKHEIGHT_ASC){ + nodes{ + blockheight + id + totalReward } } - ``` - - - - - ``` - { - "data": { - "sumRewards": { - "nodes": [ - { - "blockheight": 7000064, - "id": "121FXj85TuKfrQM1Pdcjj4ibbJNnfsqCtMsJ24rSvGEdWDdv", - "totalReward": "10901386603" - }, - { - "blockheight": 7000064, - "id": "123MFw5gAkCjcqEhapJ5zon4Ppyp59Rq2kyNQqEHbfwvM4Ni", - "totalReward": "1023809925" - }, - { - "blockheight": 7000064, - "id": "129N6sYY5r9LnfaMY2AG9px9yYyUhN6FERPXKLfirwBrjkJv", - "totalReward": "980420660" - } - ] - } +} +``` + +@tab result + +``` +{ + "data": { + "sumRewards": { + "nodes": [ + { + "blockheight": 7000064, + "id": "121FXj85TuKfrQM1Pdcjj4ibbJNnfsqCtMsJ24rSvGEdWDdv", + "totalReward": "10901386603" + }, + { + "blockheight": 7000064, + "id": "123MFw5gAkCjcqEhapJ5zon4Ppyp59Rq2kyNQqEHbfwvM4Ni", + "totalReward": "1023809925" + }, + { + "blockheight": 7000064, + "id": "129N6sYY5r9LnfaMY2AG9px9yYyUhN6FERPXKLfirwBrjkJv", + "totalReward": "980420660" + } + ] } } +} - ``` - - - - +``` +::: -What if not only could you display the `totalReward`, but also the show the individual rewards that made up this `totalReward`? -That's what we will explore in our next exercise. +What if not only could you display the `totalReward`, but also the show the individual rewards that made up this `totalReward`? +That's what we will explore in our next exercise. --- - ## Exercise 3: Viewing Both Aggregated and Individual Staking Rewards -So far in this module, we have managed to query for all the staking rewards and aggregate them for each account. Now we will make an improvement, and view the aggregate amount as well as the individual amounts as a child set. +So far in this module, we have managed to query for all the staking rewards and aggregate them for each account. Now we will make an improvement, and view the aggregate amount as well as the individual amounts as a child set. ### Pre-Requisites @@ -538,11 +488,9 @@ Completion of **[Module 4 - Exercise 2](module4.md#exercise-2-aggregate-staking- ### Detailed Steps - #### Step 1: Modify the Schema File -Update the graphql schema field called account to be type `SumReward`. We are creating a one-many entity relationship where one `sumReward` will comprise of many individual staking rewards. - +Update the graphql schema field called account to be type `SumReward`. We are creating a one-many entity relationship where one `sumReward` will comprise of many individual staking rewards. ``` type StakingReward @entity{ @@ -570,37 +518,30 @@ type SumReward @entity{ } ``` - -#### Step 2: Check the Manifest File +#### Step 2: Check the Manifest File The manifest file does not need to be modified. - #### Step 3: Update `handleStakingRewarded` in the Mapping File(aka project.yaml) In `handleStakingRewarded`, modify: - ``` entity.account = account.toString(); ``` - to: - ``` entity.accountId = account.toString(); ``` +Note that you are creating here a relationship between two entities or tables. Hence, he `StakingReward` entity needs to have a column that contains the same value as the primary key column in the `SumReward` entity. -Note that you are creating here a relationship between two entities or tables. Hence, he `StakingReward` entity needs to have a column that contains the same value as the primary key column in the `SumReward` entity. - -Because the `SumReward` entity has been assigned the **account value (account.toString())**, you must do the same here. +Because the `SumReward` entity has been assigned the **account value (account.toString())**, you must do the same here. - **Now, the whole updated mappings file should look like this:** - ``` import {SubstrateEvent} from "@subql/types"; import {StakingReward, SumReward} from "../types"; @@ -633,78 +574,72 @@ export async function handleSumRewarded(event: SubstrateEvent): Promise { } ``` - - #### Step 4: Rebuild the Project -Refer the steps given in the previous exercise to [build the project](module4.md#step-5-install-dependencies-and-build-the-project). +Refer the steps given in the previous exercise to [build the project](module4.md#step-5-install-dependencies-and-build-the-project). :::info Note You may need to delete your database folder(`.data folder`) because a new field will be created and included in your database schema. ::: - #### Step 5: Query the Project -Now, run a query and utilise a `stakingRewardsByAccountId` field. This field is automatically created to find the individual staking rewards. +Now, run a query and utilise a `stakingRewardsByAccountId` field. This field is automatically created to find the individual staking rewards. -Below is an example query of one specific account: +Below is an example query of one specific account: - - +::: code-tabs +@tab:active Query - ``` - query{ - sumRewards(filter: {id:{equalTo:"16jWQMBXZNxfgXJmVL61gMX4uqtc9WTXV3c8DGx6DUKejm7"}}){ - nodes{ - blockheight - id - totalReward - stakingRewardsByAccountId{ - nodes{ - balance - } +``` +query{ + sumRewards(filter: {id:{equalTo:"16jWQMBXZNxfgXJmVL61gMX4uqtc9WTXV3c8DGx6DUKejm7"}}){ + nodes{ + blockheight + id + totalReward + stakingRewardsByAccountId{ + nodes{ + balance } - } + } } } - ``` - - - - - ``` - { - "data": { - "sumRewards": { - "nodes": [ - { - "blockheight": 7013941, - "id": "16jWQMBXZNxfgXJmVL61gMX4uqtc9WTXV3c8DGx6DUKejm7", - "totalReward": "4049635655", - "stakingRewardsByAccountId": { - "nodes": [ - { - "balance": "2189068638" - }, - { - "balance": "1860567017" - } - ] - } +} +``` + +@tab result + +``` +{ + "data": { + "sumRewards": { + "nodes": [ + { + "blockheight": 7013941, + "id": "16jWQMBXZNxfgXJmVL61gMX4uqtc9WTXV3c8DGx6DUKejm7", + "totalReward": "4049635655", + "stakingRewardsByAccountId": { + "nodes": [ + { + "balance": "2189068638" + }, + { + "balance": "1860567017" + } + ] } - ] - } + } + ] } } +} - ``` - - - +``` -- Note that the result shows that a total reward of `4049635655` is made up of two balances. +::: +- Note that the result shows that a total reward of `4049635655` is made up of two balances. --- @@ -712,9 +647,9 @@ Below is an example query of one specific account: So far, we have used the `Rewarded` method in the manifest file. -As mentioned in the previous exercise, `Rewarded` was only recently introduced from block [6713249](https://github.com/polkadot-js/api/blob/master/packages/types-known/src/upgrades/polkadot.ts) onwards. It was previously called `Reward`. +As mentioned in the previous exercise, `Rewarded` was only recently introduced from block [6713249](https://github.com/polkadot-js/api/blob/master/packages/types-known/src/upgrades/polkadot.ts) onwards. It was previously called `Reward`. -Hence, you need to update your code to capture all the staking rewards prior to this change. +Hence, you need to update your code to capture all the staking rewards prior to this change. ### Pre-Requisites @@ -724,9 +659,7 @@ Completion of **[Module 4 - Exercise 2](module4.md#exercise-2-aggregate-staking- #### Step 1: Update the Manifest File(aka project.yaml) -Add the following mapping filters to the manifest file. Note that we have removed the **“ed”** from the handler name and the method. - - +Add the following mapping filters to the manifest file. Note that we have removed the **“ed”** from the handler name and the method. ``` - handler: handleSumReward @@ -741,8 +674,7 @@ Add the following mapping filters to the manifest file. Note that we have remove method: Reward ``` -- The ***updated part** of the manifest file should like this: - +- The **\*updated part** of the manifest file should like this: ``` dataSources: @@ -763,8 +695,7 @@ dataSources: method: Reward ``` - -::: info Note +::: tip Note Also change the start block to 6,000,000, which should return the staking reward data. When you change the starting block, don’t forget to delete the database and reindex. @@ -774,7 +705,6 @@ When you change the starting block, don’t forget to delete the database and re Create a redirect function from the old method to utilise the same code. The reason is that we have already captured the event. - ``` export async function handleSumReward(event: SubstrateEvent): Promise { await handleSumRewarded(event) @@ -829,68 +759,62 @@ export async function handleSumRewarded(event: SubstrateEvent): Promise { ``` - - - #### Step 3: Rebuild the Project -To build the project, refer the steps provided in the [previous exercise](module4.md#step-5-install-dependencies-and-build-the-project). - +To build the project, refer the steps provided in the [previous exercise](module4.md#step-5-install-dependencies-and-build-the-project). #### Step 4: Query the Project -Re-run the previous queries. The data should appear for the blocks starting from 6 Million. +Re-run the previous queries. The data should appear for the blocks starting from 6 Million. :::info Note -You have to wait for a while until the relevant blocks get indexed. +You have to wait for a while until the relevant blocks get indexed. ::: - - - - ``` - query{ - sumRewards(first:3 orderBy:BLOCKHEIGHT_ASC){ - nodes{ - blockheight - id - totalReward - } +::: code-tabs +@tab:active Query + +``` +query{ + sumRewards(first:3 orderBy:BLOCKHEIGHT_ASC){ + nodes{ + blockheight + id + totalReward } } - ``` - - - - - ``` - { - "data": { - "sumRewards": { - "nodes": [ - { - "blockheight": 6001338, - "id": "11283CvjWWXesEPQxryZYxjBwTqFV7NMRw8reNGJfzQF4GvS", - "totalReward": "5068047768" - }, - { - "blockheight": 6001338, - "id": "112EHZp2Dn8jqW9iqpAUFW3ChmiiT6cMnN1arsqJtatnthfz", - "totalReward": "503936239" - }, - { - "blockheight": 6001338, - "id": "11agCcnJ8cYvKby6p27CiLxBaS1G1hnbRmwtUBAQ3beygUA", - "totalReward": "1874696285" - } - ] - } +} +``` + +@tab result + +``` +{ + "data": { + "sumRewards": { + "nodes": [ + { + "blockheight": 6001338, + "id": "11283CvjWWXesEPQxryZYxjBwTqFV7NMRw8reNGJfzQF4GvS", + "totalReward": "5068047768" + }, + { + "blockheight": 6001338, + "id": "112EHZp2Dn8jqW9iqpAUFW3ChmiiT6cMnN1arsqJtatnthfz", + "totalReward": "503936239" + }, + { + "blockheight": 6001338, + "id": "11agCcnJ8cYvKby6p27CiLxBaS1G1hnbRmwtUBAQ3beygUA", + "totalReward": "1874696285" + } + ] } } - ``` - - +} +``` +::: ### References diff --git a/docs/academy/herocourse/module6.md b/docs/academy/herocourse/module6.md index 1eb36dcae4b..d426f4a8a7c 100644 --- a/docs/academy/herocourse/module6.md +++ b/docs/academy/herocourse/module6.md @@ -2,14 +2,14 @@ ## Block v Events v Calls -To process a SubQuery project and index data as fast and as efficient as possible, it is necessary to understand how things work under the covers. +To process a SubQuery project and index data as fast and as efficient as possible, it is necessary to understand how things work under the covers. SubQuery has three handlers to process blockchain data: [block handlers](../../build/mapping/polkadot.md#block-handler), [event handlers](../../build/mapping/polkadot.md#event-handler), and [call handlers](../../build/mapping/polkadot.md#call-handler). **Block handlers** are very inefficient. They inspect every single block to grab data to index. In a case with over seven million blocks, if each block could be indexed in 10ms, this would take over eight (8) days to fully index the blockchain. Therefore, it is advisable to avoid using block handlers if possible. -**Event and call handlers** are the recommended handlers to use, in conjunction with mapping filters of course, as their performance is much better. The mapping filter allows the project to index only the blocks that satisfy the filter criteria. +**Event and call handlers** are the recommended handlers to use, in conjunction with mapping filters of course, as their performance is much better. The mapping filter allows the project to index only the blocks that satisfy the filter criteria. For example, below is a filter indexing the **staking** module and the **Rewarded** method. @@ -21,20 +21,19 @@ For example, below is a filter indexing the **staking** module and the **Rewarde method: Rewarded ``` -::: info Note +::: tip Note For even more performance gains, using a dictionary is highly recommended. ::: - ## Using a Dictionary -The concept of a **dictionary** was introduced in previous modules (For e.g. [Module 5 - Overriding Endpoints](../herocourse/module5.md#step-3-override-endpoints)). +The concept of a **dictionary** was introduced in previous modules (For e.g. [Module 5 - Overriding Endpoints](../herocourse/module5.md#step-3-override-endpoints)). Due to its importance, pleae review [Understanding how a dictionary works](../tutorials_examples/dictionary.md) and remember to include it in all your projects. ## Event & Extrinsic Names -A popular question while creating SubQuery projects is - how do you know what data you can extract from the Polkadot blockchain? +A popular question while creating SubQuery projects is - how do you know what data you can extract from the Polkadot blockchain? There are several resource options: @@ -65,7 +64,7 @@ Note that not all explorers are equal. Some may be easier to use and some may re The previous two methods of knowing what blockchain data is available, along with the **type** (which is just as important), are great. However, learning to connect directly to the **Polkadot API via command line** provides several advantages. -To begin with, it provides access to the most up to date API specifications because the [documentation](https://polkadot.js.org/docs/substrate/events/) could be slightly outdated. +To begin with, it provides access to the most up to date API specifications because the [documentation](https://polkadot.js.org/docs/substrate/events/) could be slightly outdated. Furthermore, it allows developers to understand the exact arguments and their types. This is essential when there are issues and debugging is required. And finally, it is very useful when integrating with custom chains where sometimes documentation is not available. @@ -104,7 +103,7 @@ api = await ApiPromise.create({ provider }); #### Fetching a Block -To get block hash at the height `h`, run: +To get block hash at the height `h`, run: **const blockHash = await api.rpc.chain.getBlockHash(h)** @@ -138,13 +137,13 @@ To check the args (input for transaction) types, enter: myExtrinsic.meta.args ``` -You should see a Vec/array. The size of the array means how many arg this extrinsics takes, and each arg metadata info should include 'name', 'type', 'typeName'. +You should see a Vec/array. The size of the array means how many arg this extrinsics takes, and each arg metadata info should include 'name', 'type', 'typeName'. We are looking for the `type`. For eg: 'MultiAddress' is the type interface from **Polkadot/api**. #### Getting Events at a Certain Block Height -Events cannot be extracted from a block, but they can be queried. Since we already have the `blockHash `(from above), we can **‘lock’** the current API to this particular block height. +Events cannot be extracted from a block, but they can be queried. Since we already have the `blockHash `(from above), we can **‘lock’** the current API to this particular block height. - Start with: @@ -233,6 +232,6 @@ Using a smaller batch size can reduce memory usage and not leave users hanging f Note that some events only start to occur at higher block height. Hence, one way to test a mapping function faster is to adjust the starting block height. See [How to start at a different block height?](../tutorials_examples/block-height.md). - ## Bonus Tutorial -* [201 Lab List All Transaction Workbook](/assets/pdf/SubQuery_201_Lab_List_All_Transaction.pdf) \ No newline at end of file + +- [201 Lab List All Transaction Workbook](/assets/pdf/SubQuery_201_Lab_List_All_Transaction.pdf) diff --git a/docs/bg/README.md b/docs/bg/README.md index c04866347f7..7628622107f 100644 --- a/docs/bg/README.md +++ b/docs/bg/README.md @@ -4,7 +4,7 @@

Build Faster dApps withSubQuery Academy

-

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


+

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

@@ -12,7 +12,7 @@

Get a Kick-Start With Our Quick Start Guide

-

Build your first SubQuery project in less than 10 mins with simple guided steps. +

Build your first SubQuery project in less than 10 mins with simple guided steps.

Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

@@ -134,8 +134,7 @@
- - + diff --git a/docs/bg/build/install.md b/docs/bg/build/install.md index 3a828d5def1..cfbf1f5eeb1 100644 --- a/docs/bg/build/install.md +++ b/docs/bg/build/install.md @@ -8,21 +8,23 @@ Инсталирайте SubQuery CLI във вашия терминал, като използвате Yarn или NPM: - ```bash npm install -g @subql/cli ``` ```shell yarn global add @subql/cli ``` You can then run help to see available commands and usage provide by CLI +`bash npm install -g @subql/cli ` `shell yarn global add @subql/cli ` You can then run help to see available commands and usage provide by CLI + ## Инсталиране на @subql/node Нодата SubQuery е реализация, която извлича базирани върху субстрат блокчейн данни за проекта SubQuery и ги записва в базата данни на Postgres. Инсталирайте нодата SubQuery node като използвате за целта терминалите Yarn или NPM: - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: Once installed, you can can start a node with: ```shell subql-node ``` + > Забележка: Ако използвате Docker или хостинг на проекта в други SubQuery проекти, може да пропуснете тази стъпка. Причината е следната: нодата SubQuery вече е част от Docker контейнера и инфраструктурата на хостинга. ## Инсталиране на @subql/query @@ -31,7 +33,7 @@ subql-node Инсталирайте запитване SubQuery като използвате за целта терминалите Yarn или NPM: - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> Забележка: Ако използвате Docker или хостинг на проекта в други SubQuery проекти, може да пропуснете тази стъпка. Причината е следната: нодата SubQuery вече е част от Docker контейнера и инфраструктурата на хостинга. \ No newline at end of file +> Забележка: Ако използвате Docker или хостинг на проекта в други SubQuery проекти, може да пропуснете тази стъпка. Причината е следната: нодата SubQuery вече е част от Docker контейнера и инфраструктурата на хостинга. diff --git a/docs/bg/build/introduction.md b/docs/bg/build/introduction.md index 1d6ec81f37b..bffe70d7dea 100644 --- a/docs/bg/build/introduction.md +++ b/docs/bg/build/introduction.md @@ -51,8 +51,8 @@ yarn codegen Изпълнете командата за изграждане от основната директория на проекта. - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### Алтернативни опции за играждане diff --git a/docs/bg/build/manifest.md b/docs/bg/build/manifest.md index 7b398ff029f..3a22386841c 100644 --- a/docs/bg/build/manifest.md +++ b/docs/bg/build/manifest.md @@ -4,7 +4,7 @@ Манифестът може да бъде във формат YAML или JSON. В този документ ще използваме YAML във всички примери. По-долу е даден стандартен пример за основен `project.yaml`. - ` yml specVersion: 0.2.0 name: example-project # version: 1.0.0 # Версия на проекта description: '' # Посочете името на проекта repository: 'https://github.com/subquery/subql-starter' # Git адрес на хранилището на вашия проект schema: file: ./schema.graphql # Местоположението на вашия файл със схема на GraphQL network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Генезис хеш на мрежата endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # По избор предоставете HTTP крайната точка на речник с пълна верига, за да ускорите обработката dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # Това променя вашия начален блок за индексиране, задайте го по-високо, за да пропуснете първоначалните блокове с по-малко данни mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ` yml specVersion: "0.0.1" description: '' # Описание на вашия проект repository: 'https://github.com/subquery/subql-starter' # Git адрес на хранилището на вашия проект schema: ./schema.graphql # Местоположението на вашия файл със схема на GraphQL network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # По избор предоставете HTTP крайната точка на речник с пълна верига, за да ускорите обработката dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # Това променя вашия начален блок за индексиране, задайте го по-високо, за да пропуснете първоначалните блокове с по-малко данни mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Филтърът е по избор, но се препоръчва за ускоряване на обработката на събития module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project # version: 1.0.0 # Версия на проекта description: '' # Посочете името на проекта repository: 'https://github.com/subquery/subql-starter' # Git адрес на хранилището на вашия проект schema: file: ./schema.graphql # Местоположението на вашия файл със схема на GraphQL network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Генезис хеш на мрежата endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # По избор предоставете HTTP крайната точка на речник с пълна верига, за да ускорите обработката dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # Това променя вашия начален блок за индексиране, задайте го по-високо, за да пропуснете първоначалните блокове с по-малко данни mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` @tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Описание на вашия проект repository: 'https://github.com/subquery/subql-starter' # Git адрес на хранилището на вашия проект schema: ./schema.graphql # Местоположението на вашия файл със схема на GraphQL network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # По избор предоставете HTTP крайната точка на речник с пълна верига, за да ускорите обработката dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # Това променя вашия начален блок за индексиране, задайте го по-високо, за да пропуснете първоначалните блокове с по-малко данни mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Филтърът е по избор, но се препоръчва за ускоряване на обработката на събития module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## Мигриране от v0.0.1 към v0.2.0 @@ -81,9 +81,9 @@ USAGE $ subql init [PROJECTNAME] ### Мапинг спецификации -| Поле | v0.0.1 | v0.2.0 | Описание | -| ---------------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **file** | Низ | 𐄂 | Път до записа за мапинг | +| Поле | v0.0.1 | v0.2.0 | Описание | +| ---------------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **file** | Низ | 𐄂 | Път до записа за мапинг | | **handlers & filters** | [Манипулатори и филтри по подразбиране](./manifest/#mapping-handlers-and-filters) | Манипулатори и филтри по подразбиране,
[Персонализирани манипулатори и филтри](#custom-data-sources) | Избройте всички [мапинг функции](./mapping/polkadot.md) и съответните им типове манипулатори, с допълнителни филтри за мапинг.

За персонализирани манипулатори за мапинг по време на изпълнение, моля, вижте [Персонализирани източници на данни](#custom-data-sources) | ## Източници на данни и мапинг @@ -104,8 +104,8 @@ dataSources: **Вашият SubQuery проект ще бъде много по-ефективен, когато използвате само манипулатори на събития и повиквания с подходящи филтри за мапинг** -| Манипулатор | Поддържан филтър | -| ------------------------------------------ | ---------------------------- | +| Манипулатор | Поддържан филтър | +| --------------------------------------------------- | ---------------------------- | | [BlockHandler](./mapping/polkadot.md#block-handler) | `specVersion` | | [EventHandler](./mapping/polkadot.md#event-handler) | `module`,`method` | | [CallHandler](./mapping/polkadot.md#call-handler) | `module`,`method` ,`success` | @@ -153,8 +153,8 @@ dataSources: В примера v0.2.0 по-долу, `network.chaintypes` сочат към файл, който включва всички персонализирани типове. Това е стандартен файл със спецификации на веригата, който декларира специфичните типове, поддържани от този блокчейн в `.json`, `.yaml` или `.js` формат. - `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # относителният път на файла до мястото, където се съхраняват персонализирани типове ...` - `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Опционално specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # относителният път на файла до мястото, където се съхраняват персонализирани типове ...` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Опционално specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: За да използвате машинопис за вашия файл с типове вериги, включете го в папка `src` (например `./src/types.ts`), стартирайте `yarn build` и след това посочете генерирания js файл, разположен в папка `dist`. @@ -171,7 +171,7 @@ network: Ето пример за файл с `.ts` типове вериги: - `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` ::: ## Персонализирани източници на данни @@ -197,6 +197,6 @@ network: По-долу е даден пример, който показва различни източници на данни за мрежите Polkadot и Kusama. - `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Създайте шаблон, за да избегнете излишък определения: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #По избор specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` +::: code-tabs @tab v0.0.1 `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Създайте шаблон, за да избегнете излишък определения: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #По избор specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` - +::: diff --git a/docs/bg/build/mapping.md b/docs/bg/build/mapping.md index 33a72e2788b..deef13ed41b 100644 --- a/docs/bg/build/mapping.md +++ b/docs/bg/build/mapping.md @@ -13,13 +13,13 @@ Можете да използвате манипулатори на блокове, за да улавяте информация всеки път, когато нов блок е прикачен към веригата на Substrate, напр. номер на блока. За да се постигне това, дефиниран BlockHandler ще бъде заявен веднъж за всеки блок. ```ts -import {SubstrateBlock} from "@subql/types"; +import { SubstrateBlock } from "@subql/types"; export async function handleBlock(block: SubstrateBlock): Promise { - // Create a new StarterEntity with the block hash as it's ID - const record = new starterEntity(block.block.header.hash.toString()); - record.field1 = block.block.header.number.toNumber(); - await record.save(); + // Create a new StarterEntity with the block hash as it's ID + const record = new starterEntity(block.block.header.hash.toString()); + record.field1 = block.block.header.number.toNumber(); + await record.save(); } ``` @@ -51,25 +51,30 @@ export async function handleEvent(event: SubstrateEvent): Promise { ```ts export async function handleCall(extrinsic: SubstrateExtrinsic): Promise { - const record = new starterEntity(extrinsic.block.block.header.hash.toString()); - record.field4 = extrinsic.block.timestamp; - await record.save(); + const record = new starterEntity( + extrinsic.block.block.header.hash.toString() + ); + record.field4 = extrinsic.block.timestamp; + await record.save(); } ``` [SubstrateExtrinsic](https://github.com/OnFinality-io/subql/blob/a5ab06526dcffe5912206973583669c7f5b9fdc9/packages/types/src/interfaces.ts#L21) разширява [GenericExtrinsic](https://github.com/polkadot-js/api/blob/a9c9fb5769dec7ada8612d6068cf69de04aa15ed/packages/types/src/extrinsic/Extrinsic.ts#L170). Прилага му се `id` (блокът, към който принадлежи този външен елемент) и предоставя външен елемент, който разширява събитията между този блок. Освен това, той записва статуса на успех на този външен елемент. ## Състояния на заявка + Нашата цел е да покрием всички източници на данни за потребители за манипулатори на мапинг (повече от трите типа събития на интерфейса по-горе). Ето защо ние разкрихме някои от @polkadot/api интерфейсите, за да увеличим възможностите. Това са интерфейсите, които в момента поддържаме: -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) ще направи заявка към текущия блок. -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) ще направи множество заявки от един тип към текущия блок. -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) ще направи множество заявки от различен тип към текущия блок. + +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) ще направи заявка към **текущия** блок. +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) ще направи множество заявки от **един** тип към текущия блок. +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) ще направи множество заявки от **различен** тип към текущия блок. Това са интерфейсите, които **НЕ ** поддържаме в момента: -- ~~api.tx.*~~ -- ~~api.derive.*~~ + +- ~~api.tx.\*~~ +- ~~api.derive.\*~~ - ~~api.query.<module>.<method>.at~~ - ~~api.query.<module>.<method>.entriesAt~~ - ~~api.query.<module>.<method>.entriesPaged~~ @@ -97,6 +102,7 @@ const b1 = await api.rpc.chain.getBlock(blockhash); // Ще използва текущия блок по подразбиране, по този начин: const b2 = await api.rpc.chain.getBlock(); ``` + - За [Персонализирани Substrate Вериги](#custom-substrate-chains) RPC повиквания, вижте [употреба](#usage). ## Модули и библиотеки @@ -147,6 +153,7 @@ SubQuery може да се използва във всяка верига, б ```shell curl -H "Content-Type: application/json" -d '{"id":"1", "jsonrpc":"2.0", "method": "state_getMetadata", "params":[]}' http://localhost:9933 ``` + или от неговата **websocket** крайна точка с помощта на [`websocat`](https://github.com/vi/websocat): ```shell @@ -160,46 +167,49 @@ echo state_getMetadata | websocat 'ws://127.0.0.1:9944' --jsonrpc След това копирайте и поставете резултата в JSON файл. В нашия пример [kitty](https://github.com/subquery/tutorials-kitty-chain), създадохме `api-interface/kitty.json`. #### Дефиниции на типове + Предполагаме, че потребителят познава специфичните типове и RPC поддръжка от веригата, и това е дефинирано в [Манифеста](./manifest.md). Следвайки [видовете сетъпи](https://polkadot.js.org/docs/api/examples/promise/typegen#metadata-setup), създаваме : + - `src/api-interfaces/definitions.ts` - това експортира всички дефиниции на подпапки ```ts -export { default as kitties } from './kitties/definitions'; +export { default as kitties } from "./kitties/definitions"; ``` - `src/api-interfaces/kitties/definitions.ts` - дефиниции на типа за модула Kitties + ```ts export default { - // custom types - types: { - Address: "AccountId", - LookupSource: "AccountId", - KittyIndex: "u32", - Kitty: "[u8; 16]" + // custom types + types: { + Address: "AccountId", + LookupSource: "AccountId", + KittyIndex: "u32", + Kitty: "[u8; 16]", + }, + // custom rpc : api.rpc.kitties.getKittyPrice + rpc: { + getKittyPrice: { + description: "Get Kitty price", + params: [ + { + name: "at", + type: "BlockHash", + isHistoric: true, + isOptional: false, + }, + { + name: "kittyIndex", + type: "KittyIndex", + isOptional: false, + }, + ], + type: "Balance", }, - // custom rpc : api.rpc.kitties.getKittyPrice - rpc: { - getKittyPrice:{ - description: 'Get Kitty price', - params: [ - { - name: 'at', - type: 'BlockHash', - isHistoric: true, - isOptional: false - }, - { - name: 'kittyIndex', - type: 'KittyIndex', - isOptional: false - } - ], - type: 'Balance' - } - } -} + }, +}; ``` #### Пакети @@ -251,28 +261,32 @@ yarn generate:meta ```json { "compilerOptions": { - // this is the package name we use (in the interface imports, --package for generators) */ - "kitty-birthinfo/*": ["src/*"], - // here we replace the @polkadot/api augmentation with our own, generated from chain - "@polkadot/api/augment": ["src/interfaces/augment-api.ts"], - // replace the augmented types with our own, as generated from definitions - "@polkadot/types/augment": ["src/interfaces/augment-types.ts"] - } + // this is the package name we use (in the interface imports, --package for generators) */ + "kitty-birthinfo/*": ["src/*"], + // here we replace the @polkadot/api augmentation with our own, generated from chain + "@polkadot/api/augment": ["src/interfaces/augment-api.ts"], + // replace the augmented types with our own, as generated from definitions + "@polkadot/types/augment": ["src/interfaces/augment-types.ts"] + } } ``` ### Използване Сега във функцията за преобразуване можем да покажем как метаданните и типовете всъщност декорират API. RPC крайната точка ще поддържа модулите и методите, които декларирахме по-горе. И за да използвате персонализирано rpc повикване, моля, вижте раздел [Персонализирани верижни rpc повиквания](#custom-chain-rpc-calls) + ```typescript export async function kittyApiHandler(): Promise { - //return the KittyIndex type - const nextKittyId = await api.query.kitties.nextKittyId(); - // return the Kitty type, input parameters types are AccountId and KittyIndex - const allKitties = await api.query.kitties.kitties('xxxxxxxxx',123) - logger.info(`Next kitty id ${nextKittyId}`) - //Custom rpc, set undefined to blockhash - const kittyPrice = await api.rpc.kitties.getKittyPrice(undefined,nextKittyId); + //return the KittyIndex type + const nextKittyId = await api.query.kitties.nextKittyId(); + // return the Kitty type, input parameters types are AccountId and KittyIndex + const allKitties = await api.query.kitties.kitties("xxxxxxxxx", 123); + logger.info(`Next kitty id ${nextKittyId}`); + //Custom rpc, set undefined to blockhash + const kittyPrice = await api.rpc.kitties.getKittyPrice( + undefined, + nextKittyId + ); } ``` @@ -281,6 +295,7 @@ export async function kittyApiHandler(): Promise { ### Rpc повиквания в персонализирана верига За да поддържаме персонализирани верижни RPC преобразувания, трябва ръчно да вкараме RPC дефиниции за `typesBundle`, позволявайки конфигурация по спецификация. Можете да дефинирате `typesBundle` в `project.yml`. И моля, не забравяйте, че се поддържат само повиквания тип `isHistoric`. + ```yaml ... types: { diff --git a/docs/bg/build/substrate-evm.md b/docs/bg/build/substrate-evm.md index c17babea6cd..164979c6233 100644 --- a/docs/bg/build/substrate-evm.md +++ b/docs/bg/build/substrate-evm.md @@ -74,7 +74,7 @@ | ------ | --------------- | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | topics | Масив на низове | Transfer(address indexed from,address indexed to,uint256 value) | Филтърът за теми следва филтрите за регистрационни файлове на Ethereum JSON-PRC, повече документация можете да намерите [тук](https://docs.ethers.io/v5/concepts/events/). | -Бележка по теми: +**Бележка по теми:** Има няколко подобрения от основните филтри за регистрационни файлове: - Темите не трябва да са подплатени с 0 @@ -97,17 +97,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Contract address (or recipient if transfer) to filter, if `null` should be for contract creation - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -122,7 +122,7 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## Известни ограничения diff --git a/docs/bg/faqs/faqs.md b/docs/bg/faqs/faqs.md index 6084f81c607..1a3dc4df908 100644 --- a/docs/bg/faqs/faqs.md +++ b/docs/bg/faqs/faqs.md @@ -16,7 +16,7 @@ SubQuery също така предоставя безплатен хостин **Мрежата на SubQuery** -SubQuery Network позволява на разработчиците напълно да децентрализират своят инфраструктурен стек. Това е най-отворена, производителна, надеждна и мащабируема услуга за данни за dApps. SubQuery Network индексира и предоставя данни за глобалната общност по стимулиран начин, който подлежи на проверка. След като публикувате вашия проект в SubQuery Network, всеки получава възможност да го индексира и хоства - предоставяйки данни на потребителите по целия свят по-бързо и надеждно. +SubQuery Network позволява на разработчиците напълно да децентрализират своят инфраструктурен стек. Това е най-отворена, производителна, надеждна и мащабируема услуга за данни за dApps. SubQuery Network индексира и предоставя данни за глобалната общност по стимулиран начин, който подлежи на проверка. След като публикувате вашия проект в SubQuery Network, всеки получава възможност да го индексира и хоства - предоставяйки данни на потребителите по целия свят по-бързо и надеждно. Повече информация [тук](/subquery_network/introduction.md). @@ -26,7 +26,7 @@ SubQuery Network позволява на разработчиците напъл ## По какъв начин мога да допринеса или да дам обратна връзка към SubQuery? -Ние харесваме приноса и обратната връзка от общността. За да използвате с ваш код, направете "форк" на интересуващото ви хранилището и направете промените си. След това изпратете PR или Pull Request. Не забравяйте да тествате също. Проверете също така нашето ръководство за участие. +Ние харесваме приноса и обратната връзка от общността. За да използвате с ваш код, направете "форк" на интересуващото ви хранилището и направете промените си. След това изпратете PR или Pull Request. Не забравяйте да тествате също. Проверете също така нашето [ръководство за участие](../miscellaneous/contributing.html). За да дадете обратна връзка, свържете се с нас на hello@subquery.network или преминете към нашия [канал на discord](https://discord.com/invite/78zg8aBSMG). @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Обърнете внимание, че се препоръчва да използвате `--force-clean`, когато променяте `startBlock` в манифеста на проекта (`project.yaml`), за да започнете преиндексиране от конфигурирания блок. Ако `startBlock` се промени без `--force-clean` на проекта, тогава индексаторът ще продължи да индексира с предварително конфигурирания `startBlock`. - ## Как мога да оптимизирам проекта си, за да го направя по-бърз? Производителността решаващ фактор във всеки един проект. За щастие има няколко неща, които можете да направите, за подобряването и. Представяме Ви списък с някои предложения: @@ -89,13 +88,13 @@ subql-node -f . --force-clean --subquery-name= - Задайте началния блок в момента, в който контракта е инициализиран. - Винаги използвайте [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (можем да ви помогнем да създадете такъв за вашата нова мрежа). - Оптимизирайте дизайна на вашата схема, организирайте я по възможно най-опростен начин. - - Опитайте се да намалите ненужните полета и колони. - - Създайте толкова индекси, колкото е необхидимо. + - Опитайте се да намалите ненужните полета и колони. + - Създайте толкова индекси, колкото е необхидимо. - Използвайте паралелна/групова обработка възможно най-често. - - Използвайте `api.queryMulti()` за оптимизиране на Polkadot API повикванията вътре във функциите за картографиране и поисквайте ги периодично. Това е по-бързият начин. - - Използвайте `Promise.all()`. В случай на множество асинхронни функции е по-добре да ги изпълните и разрешите паралелно. - - Ако искате да създадете много обекти в рамките на един манипулатор, можете да използвате `store.bulkCreate(entityName: string, entities: Entity[])`. Можете да ги създавате паралелно, няма нужда да правите това по отделно. + - Използвайте `api.queryMulti()` за оптимизиране на Polkadot API повикванията вътре във функциите за картографиране и поисквайте ги периодично. Това е по-бързият начин. + - Използвайте `Promise.all()`. В случай на множество асинхронни функции е по-добре да ги изпълните и разрешите паралелно. + - Ако искате да създадете много обекти в рамките на един манипулатор, можете да използвате `store.bulkCreate(entityName: string, entities: Entity[])`. Можете да ги създавате паралелно, няма нужда да правите това по отделно. - Осъществяването на API повиквания към състояние на заявка може да бъде бавно. Можете да опитате да сведете до минимум повикванията, където е възможно, и да използвате данни за `външни/транзакции/събития`. - Използвайте `worker threads`, за да преместите обработката на блоковете в собствена работна нишка. Може да се ускори индексирането до 4 пъти (в зависимост от конкретния проект). Можете лесно да активирате това с помощта на flag `-workers=`. Имайте предвид, че броят на наличните процесорни ядра стриктно ограничава използването на работните потоци. Засега, тези функции са налични само за Substrate и Cosmos и скоро ще бъдат интегрирани към Avalanche. - Забележете, че `JSON.stringify` не подкрепя нативния `BigInts`. Нашата библиотека за регистриране ще направи това вътрешно, при опит за регистрирате на обект. Търсим заобиколно решение за това. -- Използвайте удобен филтър `modulo`, за да стартирате манипулатор само веднъж към определен блок. Този филтър позволява обработка на произволен брой блокове, което е изключително полезно за групиране и изчисляване на данни на зададен интервал. Например, ако модулът е зададен на 50, манипулаторът на блокове ще работи на всеки 50 блока. Той осигурява дори повече контрол върху индексирането на данни на разработчиците и може да бъде внедрен като такъв в манифеста на вашия проект. \ No newline at end of file +- Използвайте удобен филтър `modulo`, за да стартирате манипулатор само веднъж към определен блок. Този филтър позволява обработка на произволен брой блокове, което е изключително полезно за групиране и изчисляване на данни на зададен интервал. Например, ако модулът е зададен на 50, манипулаторът на блокове ще работи на всеки 50 блока. Той осигурява дори повече контрол върху индексирането на данни на разработчиците и може да бъде внедрен като такъв в манифеста на вашия проект. diff --git a/docs/bg/quickstart/helloworld-localhost.md b/docs/bg/quickstart/helloworld-localhost.md index 0861fbf269e..75d8a509781 100644 --- a/docs/bg/quickstart/helloworld-localhost.md +++ b/docs/bg/quickstart/helloworld-localhost.md @@ -88,8 +88,8 @@ cd subqlHelloWorld Сега направете инсталация на yarn или node, за да инсталирате различните зависимости. - ```shell yarn install ``` - ```bash npm install ``` +::: code-tabs @tab:active yarn `shell yarn install ` +@tab npm `bash npm install ` ::: Пример за `yarn install` @@ -109,8 +109,8 @@ success Saved lockfile. Сега стартирайте `yarn codegen`, за да генерирате Typescript от схемата GraphQL. - ```shell yarn codegen ``` - ```bash npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `bash npm run-script codegen ` ::: Пример за `yarn codegen` @@ -133,8 +133,8 @@ $ ./node_modules/.bin/subql codegen Следващата стъпка е да създадете код с `yarn build`. - ```shell yarn build ``` - ```bash npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: Пример за `yarn build` diff --git a/docs/bg/quickstart/quickstart-avalanche.md b/docs/bg/quickstart/quickstart-avalanche.md index 21a2de51b4a..2fa7ff6eda0 100644 --- a/docs/bg/quickstart/quickstart-avalanche.md +++ b/docs/bg/quickstart/quickstart-avalanche.md @@ -59,8 +59,8 @@ subql init И накрая, в директорията на проекта изпълнете следната команда, за да инсталирате зависимостите на новия проект. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Внасяне на промени във вашия проект @@ -92,8 +92,8 @@ type PangolinApproval @entity { **Важно: Когато правите промени във файла schema, моля, уверете се, че отново сте създали директорията си с типове със следната команда yarn codegen. Направете го сега.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Ще намерите генерираните модели в директорията `/src/types/models`. За повече информация относно файла `schema.graphql`, проверете нашата документация в раздела [Build/GraphQL Schema](../build/graphql.md) @@ -169,7 +169,7 @@ export async function handleLog(event: AvalancheLog): Promise { За да стартираме вашия нов проект SubQuery, първо трябва да изградим нашата работа. Изпълнете командата за изграждане от основната директория на проекта. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Важно: Всеки път, когато правите промени във вашите функции за картографиране, ще трябва да изградите отново своя проект** @@ -183,13 +183,11 @@ export async function handleLog(event: AvalancheLog): Promise { В директорията на проекта изпълнете следната команда: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Може да отнеме известно време изтеглянето на необходимите пакети ([`@subql/node`](https://www.npmjs.com/package/@subql/node), -`@subql/query` и Postgres) за първи път, но скоро ще видите работещ нод на SubQuery. Бъдете търпеливи.

- - +`@subql/query` и Postgres) за първи път, но скоро ще видите работещ нод на SubQuery. Бъдете търпеливи. ### Направете заявка за вашият проект @@ -199,8 +197,6 @@ export async function handleLog(event: AvalancheLog): Promise { За нов стартов SubQuery проект можете да опитате следната заявка, за да получите представа как работи или [научете повече относно езика за заявки GraphQL ](../run_publish/graphql.md). - - ```graphql query { pangolinApprovals(first: 5) { @@ -217,17 +213,12 @@ query { } ``` - - - ### Публикувайте своя SubQuery проект SubQuery предоставя безплатна управлявана услуга, с помощта който можете да разгърнете новия си проект. Може да го разгърнете в [SubQuery Projects](https://project.subquery.network) и да направите запитване с помощта на нашият [Explorer](https://explorer.subquery.network). [Прочетете ръководството за публикуване на новия си проект в SubQuery Projects](../run_publish/publish.md), **Обърнете внимание, че трябва да внедрите чрез IPFS**. - - ## Следващите стъпки Поздравления, вече имате локално работещ SubQuery проект, който приема заявки за GraphQL API за прехвърляне на данни от bLuna. diff --git a/docs/bg/quickstart/quickstart-cosmos.md b/docs/bg/quickstart/quickstart-cosmos.md index dedc07c4dbb..4bff2ca10cd 100644 --- a/docs/bg/quickstart/quickstart-cosmos.md +++ b/docs/bg/quickstart/quickstart-cosmos.md @@ -44,8 +44,8 @@ Cosmos is not yet supported in SubQuery's CLI (`subql`), to start with Juno clon И накрая, в директорията на проекта изпълнете следната команда, за да инсталирате зависимостите на новия проект. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Промени във вашият проект @@ -75,8 +75,8 @@ type Vote @entity { **Важно: Когато правите промени във файла schema, моля, уверете се, че отново сте създали директорията си с типове със следната команда yarn codegen. Направете го сега.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Ще намерите генирираните модели в директорията `/src/types/models`. За повече информация относно файла `schema.graphql`, проверете нашата документация в раздела [Build/GraphQL Schema](../build/graphql.md) @@ -145,7 +145,7 @@ What this is doing is receiving a CosmosMessage which includes message data on t За да стартираме вашия нов проект SubQuery, първо трябва да изградим нашата работа. Изпълнете командата за изграждане от основната директория на проекта. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: ** Важно: Всеки път, когато правите промени във вашите mapping функции, ще трябва да изградите отново своя проект** @@ -159,7 +159,7 @@ What this is doing is receiving a CosmosMessage which includes message data on t В директорията на проекта изпълнете следната команда: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Изтеглянето на необходимите пакети може да отнеме известно време ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) за първи път, но скоро ще видите работеща нода SubQuery. Бъдете търпеливи. @@ -173,10 +173,9 @@ What this is doing is receiving a CosmosMessage which includes message data on t ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id diff --git a/docs/bg/quickstart/quickstart-polkadot.md b/docs/bg/quickstart/quickstart-polkadot.md index dccfdc99577..d98fa55061f 100644 --- a/docs/bg/quickstart/quickstart-polkadot.md +++ b/docs/bg/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql init Ще ви бъдат зададени някои въпроси, по време на инициализирането на проекта SubQuery: - Име на проект: Име на проект за вашия проект SubQuery -- Мрежово семейство: Семейството на блокчейн от слой 1, което този проект SubQuery ще бъде разработен за индексиране. Използвайте клавишите със стрелки, за да изберете от наличните опции. За това ръководство ще използваме *"Substrate"* -- Мрежа: Конкретната мрежа, която този проект SubQuery ще бъде разработен за индексиране. Използвайте клавишите със стрелки, за да изберете от наличните опции. За това ръководство ще използваме *"Polkadot"* -- Шаблонен проект: Изберете шаблонен проект на SubQuery, който ще осигури отправна точка за започване на разработка. Предлагаме да изберете проекта *"subql-starter"*. -- RPC крайна точка: Предоставете HTTPS URL на работеща RPC крайна точка, която ще се използва по подразбиране за този проект. Можете бързо да получите достъп до публични крайни точки за различни мрежи на Polkadot, да създадете свой собствен частен специален Нод с помощта на [OnFinality](https://app.onfinality.io) или просто да използвате крайната точка на Polkadot по подразбиране. Този вид нода RPC трябва да представлява архивна нода (да има състояние на пълна веригата). За това ръководство ще използваме стойността по подразбиране *"https://polkadot.api.onfinality.io"* +- Мрежово семейство: Семейството на блокчейн от слой 1, което този проект SubQuery ще бъде разработен за индексиране. Използвайте клавишите със стрелки, за да изберете от наличните опции. За това ръководство ще използваме _"Substrate"_ +- Мрежа: Конкретната мрежа, която този проект SubQuery ще бъде разработен за индексиране. Използвайте клавишите със стрелки, за да изберете от наличните опции. За това ръководство ще използваме _"Polkadot"_ +- Шаблонен проект: Изберете шаблонен проект на SubQuery, който ще осигури отправна точка за започване на разработка. Предлагаме да изберете проекта _"subql-starter"_. +- RPC крайна точка: Предоставете HTTPS URL на работеща RPC крайна точка, която ще се използва по подразбиране за този проект. Можете бързо да получите достъп до публични крайни точки за различни мрежи на Polkadot, да създадете свой собствен частен специален Нод с помощта на [OnFinality](https://app.onfinality.io) или просто да използвате крайната точка на Polkadot по подразбиране. Този вид нода RPC трябва да представлява архивна нода (да има състояние на пълна веригата). За това ръководство ще използваме стойността по подразбиране _"https://polkadot.api.onfinality.io"_ - Git хранилище: Предоставете URL на Git към репозитория, в която този проект SubQuery ще бъде хостван (когато се хоства в SubQuery Explorer) или приемете предоставеното по подразбиране. - Автори: Въведете собственика на този проект SubQuery тук (например вашето име!) или приемете предоставеното по подразбиране. - Описание: Предоставете кратък параграф за вашия проект, който описва какви данни съдържа и какво могат да правят потребителите с него или да приемат предоставеното по подразбиране. @@ -57,8 +57,8 @@ subql init Накрая, под директорията на проекта, изпълнете следната команда, за да инсталирате зависимостите на новия проект. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Внасяне на промени във вашия проект @@ -88,8 +88,8 @@ type Transfer @entity { **Важно: Когато правите промени във файла schema, моля, уверете се, че отново сте създали директорията си с типове със следната команда yarn codegen.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Ще намерите генерираните модели в директорията `/src/types/models`. За повече информация относно файла `schema.graphql`, проверете нашата документация в раздела [Build/GraphQL Schema](../build/graphql.md) @@ -133,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { - // Get data from the event - // The balances.transfer event has the following payload \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Create the new transfer entity - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Get data from the event + // The balances.transfer event has the following payload \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Create the new transfer entity + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -160,7 +160,7 @@ export async function handleEvent(event: SubstrateEvent): Promise { За да стартираме вашия нов проект SubQuery, първо трябва да изградим нашата работа. Изпълнете командата за изграждане от основната директория на проекта. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Важно: Всеки път, когато правите промени във вашите функции за картографиране, ще трябва да изградите отново своя проект** @@ -174,7 +174,7 @@ export async function handleEvent(event: SubstrateEvent): Promise { Под директорията на проекта изпълнете следната команда: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Може да отнеме известно време изтеглянето на необходимите пакети ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query) и Postgres) за първи път, но скоро трябва да видите работещ нод на SubQuery на екрана на терминала. @@ -189,10 +189,7 @@ export async function handleEvent(event: SubstrateEvent): Promise { ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount diff --git a/docs/bg/quickstart/quickstart-terra.md b/docs/bg/quickstart/quickstart-terra.md index d721a55de40..88861659258 100644 --- a/docs/bg/quickstart/quickstart-terra.md +++ b/docs/bg/quickstart/quickstart-terra.md @@ -45,11 +45,11 @@ subql init Ще ви бъдат зададени някои въпроси, по време на инициализирането на проекта SubQuery: - Project Name: A name for your SubQuery project -- Мрежово семейство: Блокчейн мрежовото семейство от слой 1, което този проект SubQuery ще бъде разработен за индексиране, използвайте клавишите със стрелки на клавиатурата си, за да изберете от опциите, за това ръководство ще използваме *„Terra“* -- Мрежа: Конкретната мрежа, която този проект SubQuery ще бъде разработен за индексиране, използвайте клавишите със стрелки на клавиатурата си, за да изберете от опциите, за това ръководство ще използваме *„Terra“* -- Template: Изберете шаблон за проекта SubQuery, който ще служи като начална точка за започване на разработка, предлагаме да изберете *"Starter project"* +- Мрежово семейство: Блокчейн мрежовото семейство от слой 1, което този проект SubQuery ще бъде разработен за индексиране, използвайте клавишите със стрелки на клавиатурата си, за да изберете от опциите, за това ръководство ще използваме _„Terra“_ +- Мрежа: Конкретната мрежа, която този проект SubQuery ще бъде разработен за индексиране, използвайте клавишите със стрелки на клавиатурата си, за да изберете от опциите, за това ръководство ще използваме _„Terra“_ +- Template: Изберете шаблон за проекта SubQuery, който ще служи като начална точка за започване на разработка, предлагаме да изберете _"Starter project"_ - Git repository (опционално): посочете Git URL хранилище, в което ще се съхранява този проект SubQuery (при разполагане в SubQuery Explorer) -- RPC endpoint (Необходимо): Укажете HTTPS URL за работеща крайна точка RPC която ще бъде използвана по подразбиране за този проект. Този вид нода RPC трябва да представлява архивна нода (да има състояние на пълна веригата). За това ръководство ще използваме стойността по подразбиране *"https://terra-columbus-5.beta.api.onfinality.io"* +- RPC endpoint (Необходимо): Укажете HTTPS URL за работеща крайна точка RPC която ще бъде използвана по подразбиране за този проект. Този вид нода RPC трябва да представлява архивна нода (да има състояние на пълна веригата). За това ръководство ще използваме стойността по подразбиране _"https://terra-columbus-5.beta.api.onfinality.io"_ - Authors (задължително): въведете собственика на този проект за SubQuery тук (например вашето име!) - Description (опционално): можете да предоставите кратко описание за вашия проект, който описва какви данни съдържа и какво могат да правят потребителите с него - Version (Задължително): въведете свой персонализиран номер на версията или използвайте стойността по подразбиране (`1.0.0`) @@ -59,8 +59,8 @@ subql init И накрая, в директорията на проекта изпълнете следната команда, за да инсталирате зависимостите на новия проект. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Промени във вашият проект @@ -91,8 +91,8 @@ type Transfer @entity { **Важно: Когато правите промени във файла schema, моля, уверете се, че отново сте създали директорията си с типове със следната команда yarn codegen. Направете го сега.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Ще намерите генирираните модели в директорията `/src/types/models`. За повече информация относно файла `schema.graphql`, проверете нашата документация в раздела [Build/GraphQL Schema](../build/graphql.md) @@ -143,30 +143,30 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Print debugging data from the event - // logger.info(JSON.stringify(event)); - - // Create the new transfer entity with a unique ID - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Print debugging data from the event + // logger.info(JSON.stringify(event)); + + // Create the new transfer entity with a unique ID + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` @@ -178,7 +178,7 @@ export async function handleEvent( За да стартираме вашия нов проект SubQuery, първо трябва да изградим нашата работа. Изпълнете командата за изграждане от основната директория на проекта. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: ** Важно: Всеки път, когато правите промени във вашите mapping функции, ще трябва да изградите отново своя проект** @@ -192,7 +192,7 @@ export async function handleEvent( В директорията на проекта изпълнете следната команда: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Изтеглянето на необходимите пакети може да отнеме известно време ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) за първи път, но скоро ще видите работеща нода SubQuery. Бъдете търпеливи. @@ -207,10 +207,7 @@ export async function handleEvent( ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash diff --git a/docs/bg/quickstart/quickstart.md b/docs/bg/quickstart/quickstart.md index 0d41fc24502..6d44657b9f0 100644 --- a/docs/bg/quickstart/quickstart.md +++ b/docs/bg/quickstart/quickstart.md @@ -89,8 +89,8 @@ HelloWorld is ready Накрая изпълнете следната команда, за да инсталирате зависимостите на новия проект от директорията на новия проект. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: Вече инициализирахте първия си проект на SubQuery само с няколко прости стъпки. Нека сега персонализираме стандартния шаблонен проект за конкретна блокова верига, която представлява интерес. @@ -104,4 +104,4 @@ HelloWorld is ready 2. Манифест на проекта в `project.yaml`. 3. Mapping функциите в директорията `src/mappings/`. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/bg/run_publish/connect.md b/docs/bg/run_publish/connect.md index 596373662f1..2908dcac435 100644 --- a/docs/bg/run_publish/connect.md +++ b/docs/bg/run_publish/connect.md @@ -2,10 +2,10 @@ Once your deployment has succesfully completed and our nodes have indexed your data from the chain, you'll be able to connect to your project via the displayed Query endpoint. -![Проектът се внедрява и се синхронизира](/assets/img/projects-deploy-sync.png) +![Проектът се внедрява и се синхронизира](/assets/img/projects_deploy_sync.png) Като алтернатива можете да щракнете върху трите точки до заглавието на вашия проект и да го видите в SubQuery Explorer. There you can use the in browser playground to get started. -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/bg/run_publish/query.md b/docs/bg/run_publish/query.md index 087a40ae2c4..f9cc64cd3b2 100644 --- a/docs/bg/run_publish/query.md +++ b/docs/bg/run_publish/query.md @@ -12,4 +12,4 @@ SubQuery explorer ще ви помогне да започнете работа. On the top right of the playground, you'll find a _Docs_ button that will open a documentation draw. Тази документация се генерира автоматично и ви помага да намерите за какви обекти и методи можете да направите заявка. -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/bg/run_publish/references.md b/docs/bg/run_publish/references.md index 5edcfadc2f9..b6cdd430f70 100644 --- a/docs/bg/run_publish/references.md +++ b/docs/bg/run_publish/references.md @@ -21,11 +21,11 @@ Тази команда използва webpack за генериране на пакет от проект на subquery. -| Опции | Описание | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | локална папка на проекта subquery (ако все още не сте в папка) | -| -o, --output | посочете изходната папка на build например build-folder | -| --mode=(production | prod | development | dev) | [ default: production ] | +| Опции | Описание | +| ------------------ | -------------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | локална папка на проекта subquery (ако все още не сте в папка) | +| -o, --output | посочете изходната папка на build например build-folder | +| --mode=(production | prod | development | dev) | [ default: production ] | - With `subql build` you can specify additional entry points in exports field although it will always build `index.ts` automatically. @@ -106,7 +106,7 @@ This displays the current version. ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -338,8 +338,6 @@ The port the subquery indexing service binds to. By default this is set to `3000 Disables automated historical state tracking, [see Historic State Tracking](./historical.md). By default this is set to `false`. - - ### -w, --workers This will move block fetching and processing into a worker. By default, this feature is **disabled**. You can enable it with the `--workers=` flag. Note that the number of available CPU cores strictly limits the usage of worker threads. So, when using the `--workers=` flag, always specify the number of workers. With no flag provided, everything will run in the same thread. @@ -348,7 +346,7 @@ This will move block fetching and processing into a worker. By default, this fea It is at an early experimental stage at the moment, but we plan to enable it by default. ::: -::: info Note +::: tip Note This feature is available for Substrate and Cosmos, and soon will be integrated for Avalanche. ::: diff --git a/docs/bg/run_publish/run.md b/docs/bg/run_publish/run.md index 2d7d6e6c486..64a160878f5 100644 --- a/docs/bg/run_publish/run.md +++ b/docs/bg/run_publish/run.md @@ -4,7 +4,7 @@ This guide works through how to run a local SubQuery node on your infrastructure ## Using Docker -An alternative solution is to run a Docker Container, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. +An alternative solution is to run a **Docker Container**, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. Under the project directory run the following command: @@ -12,7 +12,7 @@ Under the project directory run the following command: docker-compose pull && docker-compose up ``` -::: info Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: +::: tip Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: ## Running an Indexer (subql/node) @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Installation - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: Once installed, you can start a node with the following command: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Point to local project path - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ Depending on the configuration of your Postgres database (e.g. a different datab #### Specify a configuration file - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ When the indexer first indexes the chain, fetching single blocks will significan #### Run in local mode - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Switching to local model will create Postgres tables in the default schema `public`. diff --git a/docs/bg/run_publish/subscription.md b/docs/bg/run_publish/subscription.md index 646a7a1627d..faba1ec79a8 100644 --- a/docs/bg/run_publish/subscription.md +++ b/docs/bg/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery вече поддържа и Graphql абонаменти. Подобн Абонаментите са много полезни, когато искате вашето клиентско приложение да промени данни или да покаже някои нови данни веднага щом тази промяна настъпи или новите данни са налични. Subscriptions allow you to _subscribe_ to your SubQuery project for changes. -::: info Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: +::: tip Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: ## Как да се абонирам за обект diff --git a/docs/bg/run_publish/upgrade.md b/docs/bg/run_publish/upgrade.md index cb699b1c73a..e3b5b29ab55 100644 --- a/docs/bg/run_publish/upgrade.md +++ b/docs/bg/run_publish/upgrade.md @@ -77,10 +77,10 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n След като внедряването ви приключи успешно и нашите нодове са индексирали вашите данни от веригата, ще можете да се свържете с вашия проект чрез показания ендпойнт на GraphQL Query. -![Проектът се внедрява и се синхронизира](/assets/img/projects-deploy-sync.png) +![Проектът се внедрява и се синхронизира](/assets/img/projects_deploy_sync.png) Като алтернатива можете да щракнете върху трите точки до заглавието на вашия проект и да го видите в SubQuery Explorer. There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/bg/subquery_network/introduction.md b/docs/bg/subquery_network/introduction.md index 295c7a86735..b03b437906c 100644 --- a/docs/bg/subquery_network/introduction.md +++ b/docs/bg/subquery_network/introduction.md @@ -18,22 +18,22 @@ There’s a role for everyone in the network, from highly technical developers t Consumers will ask the SubQuery Network for specific data for their dApps or tools, and pay an advertised amount of SQT for each request. -::: info Note Learn more about [Consumers](./consumers.md). ::: +::: tip Note Learn more about [Consumers](./consumers.md). ::: ### Indexers Indexers will run and maintain high quality SubQuery projects in their own infrastructure, running both the indexer and query service, and will be rewarded in SQT for the requests that they serve. -::: info Note Learn more about [Indexers](./indexers.md). ::: +::: tip Note Learn more about [Indexers](./indexers.md). ::: ### Делегатори Delegators will participate in the Network by supporting their favourite Indexers to earn rewards based on the work those indexers do. -::: info Note Learn more about [Delegators](./delegators.md). ::: +::: tip Note Learn more about [Delegators](./delegators.md). ::: ### Architects Architects are the builders of the SubQuery projects that the Network runs on. They author and publish SubQuery projects for the Network to index and run. -::: info Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: +::: tip Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: diff --git a/docs/build/cosmos-evm.md b/docs/build/cosmos-evm.md index 068ef043cc6..a78ca5f208f 100644 --- a/docs/build/cosmos-evm.md +++ b/docs/build/cosmos-evm.md @@ -2,7 +2,7 @@ We provide a custom data source processor for [Cosmos's Ethermint EVM](https://github.com/cosmos/ethermint). This offers a simple way to filter and index both EVM and Cosmos activity on many Cosmos networks within a single SubQuery project. -::: info Note +::: tip Note Ethermint chains (e.g. Cronos) are usually fully EVM compatible, which means that you can use two options for indexing Ethermint data. You can index Ethermint contract data via the standard Cosmos RPC interface, or via Ethereum APIs. For Cronos, we provide a [starter project for each](https://github.com/subquery/cosmos-subql-starter/tree/main/Cronos) and you can compare the two different options in the [Cronos quick start guide](../quickstart/quickstart_chains/cosmos-cronos.md). This document goes into detail about how to use the Ethermint Cosmos RPCs (rather than the Ethereum API) diff --git a/docs/build/graph-migration.md b/docs/build/graph-migration.md index 928630dfcb8..0847a6c5e1e 100644 --- a/docs/build/graph-migration.md +++ b/docs/build/graph-migration.md @@ -59,7 +59,7 @@ The manifest file contains the largest set of differences, but once you understa ![Difference between a SubGraph and a SubQuery project](/assets/img/subgraph-manifest-3.png) -:::: code-group +::: code-group ::: code-group-item SubGraph @@ -166,7 +166,7 @@ dataSources: ::: -:::: +::: ## Mapping @@ -178,7 +178,7 @@ The functions are defined the same way. Moreover, entities can be instantiated, ![Difference between a SubGraph and a SubQuery project](/assets/img/subgraph-mapping.png) -:::: code-group +::: code-group ::: code-group-item SubGraph @@ -227,7 +227,7 @@ export async function handleUnlockAttackNFTs( ::: -:::: +::: ## Querying Contracts diff --git a/docs/build/graphql.md b/docs/build/graphql.md index 62c1a213027..b0f481b38d0 100644 --- a/docs/build/graphql.md +++ b/docs/build/graphql.md @@ -8,23 +8,20 @@ The `schema.graphql` file defines the various GraphQL schemas. Due to the way th When you make any changes to the schema file, don't forget to regenerate your types directory. ::: - - +::: code-tabs +@tab:active yarn ```shell yarn codegen ``` - - - +@tab npm ```shell npm run-script codegen ``` - - +::: ### Entities diff --git a/docs/build/install.md b/docs/build/install.md index e4fa0398e0f..8d1f85547c2 100644 --- a/docs/build/install.md +++ b/docs/build/install.md @@ -8,23 +8,20 @@ The [@subql/cli](https://github.com/subquery/subql/tree/main/packages/cli) tool Install SubQuery CLI globally on your terminal by using Yarn or NPM: - - +::: code-tabs +@tab npm ```bash npm install -g @subql/cli ``` - - - +@tab:active yarn ```shell yarn global add @subql/cli ``` - - +::: You can then run help to see available commands and usage provide by CLI: @@ -38,23 +35,20 @@ A SubQuery node is an implementation that extracts substrate-based blockchain da Install SubQuery node globally on your terminal by using Yarn or NPM: - - +::: code-tabs +@tab npm ```bash npm install -g @subql/node ``` - - - +@tab:active yarn ```shell yarn global add @subql/node ``` - - +::: Once installed, you can can start a node with: @@ -62,7 +56,7 @@ Once installed, you can can start a node with: subql-node ``` -::: info Note +::: tip Note If you are using Docker or hosting your project in SubQuery Projects, you can skip this step. This is because the SubQuery node is already provided in the Docker container and the hosting infrastructure. ::: @@ -72,24 +66,21 @@ The SubQuery query library provides a service that allows you to query your proj Install SubQuery query globally on your terminal by using Yarn or NPM: - - +::: code-tabs +@tab npm ```bash npm install -g @subql/query ``` - - - +@tab:active yarn ```shell yarn global add @subql/query ``` - - +::: -::: info Note +::: tip Note If you are using Docker or hosting your project in SubQuery Projects, you can skip this step also. This is because the SubQuery node is already provided in the Docker container and the hosting infrastructure. ::: diff --git a/docs/build/introduction.md b/docs/build/introduction.md index a9d469501ce..3e379068b8b 100644 --- a/docs/build/introduction.md +++ b/docs/build/introduction.md @@ -30,7 +30,7 @@ The following map provides an overview of the directory structure of a SubQuery L README.md L schema.graphql L tsconfig.json - + ``` For example: @@ -53,23 +53,20 @@ In order to run your SubQuery Project on a locally hosted SubQuery Node, you nee Run the build command from the project's root directory. - - - - ```shell - yarn build - ``` +::: code-tabs +@tab:active yarn - +```shell +yarn build +``` - +@tab npm - ```bash - npm run-script build - ``` +```bash +npm run-script build +``` - - +::: ### Alternative build options diff --git a/docs/build/manifest/polkadot.md b/docs/build/manifest/polkadot.md index c78f523945f..9a1421042a0 100644 --- a/docs/build/manifest/polkadot.md +++ b/docs/build/manifest/polkadot.md @@ -234,7 +234,7 @@ filter: timestamp: "*/5 * * * *" ``` -::: info Note +::: tip Note We use the [cron-converter](https://github.com/roccivic/cron-converter) package to generate unix timestamps for iterations out of the given cron expression. So, make sure the format of the cron expression given in the `timestamp` filter is compatible with the package. ::: diff --git a/docs/build/mapping/polkadot.md b/docs/build/mapping/polkadot.md index b18fe2f2819..b8804a9850a 100644 --- a/docs/build/mapping/polkadot.md +++ b/docs/build/mapping/polkadot.md @@ -51,7 +51,7 @@ export async function handleEvent(event: SubstrateEvent): Promise { A `SubstrateEvent` is an extended interface type of the [EventRecord](https://github.com/polkadot-js/api/blob/f0ce53f5a5e1e5a77cc01bf7f9ddb7fcf8546d11/packages/types/src/interfaces/system/types.ts#L149). Besides the event data, it also includes an `id` (the block to which this event belongs) and the extrinsic inside of this block. -::: info Note +::: tip Note From `@subql/types` version `X.X.X` onwards `SubstrateEvent` is now generic. This can provide you with higher type safety when developing your project. ```ts @@ -77,7 +77,7 @@ export async function handleCall(extrinsic: SubstrateExtrinsic): Promise { The [SubstrateExtrinsic](https://github.com/OnFinality-io/subql/blob/a5ab06526dcffe5912206973583669c7f5b9fdc9/packages/types/src/interfaces.ts#L21) extends [GenericExtrinsic](https://github.com/polkadot-js/api/blob/a9c9fb5769dec7ada8612d6068cf69de04aa15ed/packages/types/src/extrinsic/Extrinsic.ts#L170). It is assigned an `id` (the block to which this extrinsic belongs) and provides an extrinsic property that extends the events among this block. Additionally, it records the success status of this extrinsic. -::: info Note +::: tip Note From `@subql/types` version `X.X.X` onwards `SubstrateExtrinsic` is now generic. This can provide you with higher type safety when developing your project. ```ts @@ -139,9 +139,9 @@ Our goal is to cover all data sources for users for mapping handlers (more than These are the interfaces we currently support: -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) will query the current block. -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) will make multiple queries of the same type at the current block. -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) will make multiple queries of different types at the current block. +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) will query the **current** block. +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) will make multiple queries of the **same** type at the current block. +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) will make multiple queries of **different** types at the current block. These are the interfaces we do **NOT** support currently: diff --git a/docs/build/mapping/store.md b/docs/build/mapping/store.md index b128b6d492d..7f1cc31dd0f 100644 --- a/docs/build/mapping/store.md +++ b/docs/build/mapping/store.md @@ -2,7 +2,7 @@ The SubQuery store is an injected class that allows users to interact with records in the database from within mapping functions. This will come handy when user demands using multiple entity records as the parameters in the mapping function, or create/update multiple records in a single place. -::: info Note +::: tip Note Note that there are additional methods autogenerated with your entities that also interact with the store. Most users will find those methods sufficient for their projects. ::: @@ -15,7 +15,7 @@ export interface Store { entity: string, field: string, value: any, - options?: { limit?: number, offset?: number } + options?: { limit?: number; offset?: number } ): Promise; getOneByField( entity: string, diff --git a/docs/build/multi-chain.md b/docs/build/multi-chain.md index ab4a44c9c67..7a0067a12ce 100644 --- a/docs/build/multi-chain.md +++ b/docs/build/multi-chain.md @@ -6,11 +6,11 @@ You can use the same SubQuery project, which includes the same GraphQL schema an For example, you could capture XCM transaction data from all Polkadot parachains or monitoring IBC messages across Cosmos Zones in a single project, with a single database, and a single query endpoint. -![Multi-chain](/assets/img/multi-chain.jpg) +![Multi-chain](/assets/img/multi_chain.jpg) ## How it Works -::: info Requirements for multi-chain indexing +::: tip Requirements for multi-chain indexing 1. All projects must reference the same [GraphQL schema](./graphql.md) in their `project.yaml` 2. All projects must index to the same PostgreSQL table schema, this is set in your `docker-compose.yml` diff --git a/docs/build/substrate-evm.md b/docs/build/substrate-evm.md index ddcd69c7b48..c96fbca65d1 100644 --- a/docs/build/substrate-evm.md +++ b/docs/build/substrate-evm.md @@ -129,8 +129,8 @@ Changes from the `Log` type: - `args` is added if the `abi` field is provided and the arguments can be successfully parsed. You can add a generic parameter like so to type `args`: `FrontierEvmEvent<{ from: string, to: string, value: BigNumber }>`. - - +::: code-tabs +@tab Frontier EVM ```ts import { Approval, Transaction } from "../types"; @@ -178,8 +178,7 @@ export async function handleFrontierEvmCall( } ``` - - +@tab Acala EVM+ ```ts import { Approval, Transaction } from "../types"; @@ -224,15 +223,14 @@ export async function handleAcalaEvmCall( } ``` - - +::: ## Data Source Example This is an extract from the `project.yaml` manifest file. - - +::: code-tabs +@tab Frontier EVM ```yaml dataSources: @@ -269,8 +267,7 @@ dataSources: function: "approve(address to,uint256 value)" ``` - - +@tab Acala EVM+ ```yaml dataSources: @@ -305,8 +302,7 @@ dataSources: from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` - - +::: ## Querying contracts diff --git a/docs/de/README.md b/docs/de/README.md index 77ad45ea5d1..b0e3816cff0 100644 --- a/docs/de/README.md +++ b/docs/de/README.md @@ -4,7 +4,7 @@

Build Faster dApps withSubQuery Academy

-

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


+

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

@@ -12,7 +12,7 @@

Get a Kick-Start With Our Quick Start Guide

-

Build your first SubQuery project in less than 10 mins with simple guided steps. +

Build your first SubQuery project in less than 10 mins with simple guided steps.

Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

@@ -134,8 +134,7 @@
- - + diff --git a/docs/de/build/install.md b/docs/de/build/install.md index b13b5818870..5ea993606b8 100644 --- a/docs/de/build/install.md +++ b/docs/de/build/install.md @@ -8,28 +8,30 @@ Das Tool [@subql/cli](https://github.com/subquery/subql/tree/docs-new-section/pa Installieren Sie SubQuery CLI global auf Ihrem Terminal, indem Sie Yarn oder NPM verwenden: - ```bash npm install -g @subql/cli ``` - ```shell yarn global add @subql/cli ``` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` +@tab:active yarn `shell yarn global add @subql/cli ` ::: Sie können dann help ausführen, um die verfügbaren Befehle und die Nutzung anzuzeigen, die von der CLI bereitgestellt werden: ```shell subql help ``` + ## Installieren Sie bitte @subql/node Eine SubQuery-Node ist eine Implementierung, die substratbasierte Blockchain-Daten pro SubQuery-Projekt extrahiert und in einer Postgres-Datenbank speichert. Installieren Sie die SubQuery-Node global auf Ihrem Terminal, indem Sie Yarn oder NPM verwenden: - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: Nach der Installation können Sie eine Node starten mit: ```shell subql-node ``` + > Hinweis: Wenn Sie Docker verwenden oder Ihr Projekt in SubQuery-Projekten hosten, können Sie diesen Schritt überspringen. Dies liegt daran, dass die SubQuery-Node bereits im Docker-Container und der Hosting-Infrastruktur bereitgestellt wird. ## Installieren Sie bitte @subql/query @@ -38,7 +40,7 @@ Die SubQuery-Abfragebibliothek stellt einen Dienst bereit, mit dem Sie Ihr Proje Installieren Sie die SubQuery-Abfrage global auf Ihrem Terminal, indem Sie Yarn oder NPM verwenden: - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> Hinweis: Wenn Sie Docker verwenden oder Ihr Projekt in SubQuery-Projekten hosten, können Sie diesen Schritt auch überspringen. Dies liegt daran, dass die SubQuery-Node bereits im Docker-Container und der Hosting-Infrastruktur bereitgestellt wird. \ No newline at end of file +> Hinweis: Wenn Sie Docker verwenden oder Ihr Projekt in SubQuery-Projekten hosten, können Sie diesen Schritt auch überspringen. Dies liegt daran, dass die SubQuery-Node bereits im Docker-Container und der Hosting-Infrastruktur bereitgestellt wird. diff --git a/docs/de/build/introduction.md b/docs/de/build/introduction.md index a4fa6072867..ec1d724eb2f 100644 --- a/docs/de/build/introduction.md +++ b/docs/de/build/introduction.md @@ -51,8 +51,8 @@ Um Ihr SubQuery-Projekt auf einer lokal gehosteten SubQuery-Node auszuführen, m Führen Sie den Build-Befehl im Stammverzeichnis des Projekts aus. - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### Alternative Build-Optionen diff --git a/docs/de/build/manifest.md b/docs/de/build/manifest.md index c45225e2852..49f1d18da22 100644 --- a/docs/de/build/manifest.md +++ b/docs/de/build/manifest.md @@ -4,7 +4,7 @@ Die Manifestdatei `project.yaml` kann als Einstiegspunkt Ihres Projekts angesehe Das Manifest kann entweder im YAML- oder im JSON-Format vorliegen. In diesem Dokument verwenden wir YAML in allen Beispielen. Unten sehen Sie ein Standardbeispiel einer einfachen `project.yaml`. - ` yml specVersion: 0.2.0 name: example-project # Geben Sie den Projektnamen an Version: 1.0.0 # Projektversion description: '' # Beschreibung Ihres Projekts repository: 'https://github.com/subquery/subql-starter' # Git-Repository-Adresse Ihres Projekts Schema: file: ./schema.graphql # Der Speicherort Ihrer GraphQL-Schemadatei Netzwerk: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis-Hash des Netzwerks endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Geben Sie optional den HTTP-Endpunkt eines vollständigen Kettenwörterbuchs an, um die Verarbeitung zu beschleunigen dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # Dies ändert Ihren Startblock für die Indizierung, stellen Sie diesen höher ein, um Anfangsblöcke mit weniger Daten zu überspringen mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ` yml specVersion: "0.0.1" description: '' # Beschreibung Ihres Projekts repository: 'https://github.com/subquery/subql-starter' # Git-Repository-Adresse Ihres Projekts schema: ./schema.graphql # Der Speicherort Ihrer GraphQL-Schemadatei Netzwerk: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Geben Sie optional den HTTP-Endpunkt eines vollständigen Kettenwörterbuchs an, um die Verarbeitung zu beschleunigen dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # Dies ändert Ihren Startblock für die Indizierung, stellen Sie diesen höher ein, um Anfangsblöcke mit weniger Daten zu überspringen mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter ist optional, wird aber empfohlen, um die Ereignisverarbeitung zu beschleunigen module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project # Geben Sie den Projektnamen an Version: 1.0.0 # Projektversion description: '' # Beschreibung Ihres Projekts repository: 'https://github.com/subquery/subql-starter' # Git-Repository-Adresse Ihres Projekts Schema: file: ./schema.graphql # Der Speicherort Ihrer GraphQL-Schemadatei Netzwerk: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis-Hash des Netzwerks endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Geben Sie optional den HTTP-Endpunkt eines vollständigen Kettenwörterbuchs an, um die Verarbeitung zu beschleunigen dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # Dies ändert Ihren Startblock für die Indizierung, stellen Sie diesen höher ein, um Anfangsblöcke mit weniger Daten zu überspringen mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` @tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Beschreibung Ihres Projekts repository: 'https://github.com/subquery/subql-starter' # Git-Repository-Adresse Ihres Projekts schema: ./schema.graphql # Der Speicherort Ihrer GraphQL-Schemadatei Netzwerk: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Geben Sie optional den HTTP-Endpunkt eines vollständigen Kettenwörterbuchs an, um die Verarbeitung zu beschleunigen dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # Dies ändert Ihren Startblock für die Indizierung, stellen Sie diesen höher ein, um Anfangsblöcke mit weniger Daten zu überspringen mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter ist optional, wird aber empfohlen, um die Ereignisverarbeitung zu beschleunigen module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## Migration von v0.0.1 auf v0.2.0 @@ -81,9 +81,9 @@ Definiert die Daten, die gefiltert und extrahiert werden, und den Speicherort de ### Mapping Spec -| Bereich | v0.0.1 | v0.2.0 | Beschreibung | -| -------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Datei** | String | 𐄂 | Pfad zum Mapping-Eintrag | +| Bereich | v0.0.1 | v0.2.0 | Beschreibung | +| -------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Datei** | String | 𐄂 | Pfad zum Mapping-Eintrag | | **handler & Filter** | [Standardhandler und -filter](./manifest/#mapping-handlers-and-filters) | Standardhandler und -filter,
[Benutzerdefinierte Handler und Filter](#custom-data-sources) | Listen Sie alle [Zuordnungsfunktionen](./mapping/polkadot.md) und ihre entsprechenden Handlertypen mit zusätzlichen Zuordnungsfiltern auf.

Informationen zu benutzerdefinierten Laufzeit-Zuordnungshandlern finden Sie unter [Benutzerdefinierte Datenquellen](#custom-data-sources) | ## Data Sources und Mapping @@ -104,8 +104,8 @@ In der folgenden Tabelle werden Filter erläutert, die von verschiedenen Handler **Ihr SubQuery-Projekt wird viel effizienter, wenn Sie nur Ereignis- und Call-handler mit geeigneten Zuordnungsfiltern verwenden** -| Handler | Unterstützte Filter: | -| ------------------------------------------ | --------------------------- | +| Handler | Unterstützte Filter: | +| --------------------------------------------------- | --------------------------- | | [Blockhandler](./mapping/polkadot.md#block-handler) | `specVersion` | | [EventHandler](./mapping/polkadot.md#event-handler) | `module`,`method` | | [CallHandler](./mapping/polkadot.md#call-handler) | `Modul`,`Methode` ,`Erfolg` | @@ -151,12 +151,12 @@ Sie können Daten aus benutzerdefinierten Chains indizieren, indem Sie auch Chai Wir unterstützen die zusätzlichen Typen, die von Substrat-Laufzeitmodulen verwendet werden, `typesAlias`, `typesBundle`, `typesChain` und `typesSpec` werden ebenfalls unterstützt . -Im folgenden v0.2.0-Beispiel verweisen die `network.chaintypes` auf eine Datei, die alle benutzerdefinierten Typen enthält. Dies ist eine standardmäßige Chainspec-Datei, die die von dieser Blockchain unterstützten spezifischen Typen entweder in < 0>.json-, `.yaml`- oder `.js`-Format. +Im folgenden v0.2.0-Beispiel verweisen die `network.chaintypes` auf eine Datei, die alle benutzerdefinierten Typen enthält. Dies ist eine standardmäßige Chainspec-Datei, die die von dieser Blockchain unterstützten spezifischen Typen entweder in `.json`, `.yaml`- oder `.js`-Format. - `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # Der relative Dateipfad, in dem benutzerdefinierte Typen gespeichert werden` - `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # Der relative Dateipfad, in dem benutzerdefinierte Typen gespeichert werden` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: -Um Typoskript für Ihre Chaintypendatei zu verwenden, fügen Sie es in den `src`-Ordner ein (z. B. `./src/types.ts`), führen Sie `yarn build und zeigen Sie dann auf die generierte js-Datei, die sich im Ordner dist` befindet. +Um Typoskript für Ihre Chaintypendatei zu verwenden, fügen Sie es in den `src`-Ordner ein (z. B. `./src/types.ts`), führen Sie `yarn build und zeigen Sie dann auf die generierte js-Datei, die sich im Ordner `dist` befindet. ```yml network: @@ -171,7 +171,7 @@ Beachten Sie Folgendes bei der Verwendung der Chaintypendatei mit der Erweiterun Hier ist ein Beispiel für eine `.ts`-Chaintypdatei: - `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` ::: ## Benutzerdefinierte Datenquellen @@ -197,6 +197,6 @@ Benutzer können `Datenquellen` einen `Filter` hinzufügen, um zu entscheiden, w Unten sehen Sie ein Beispiel, das verschiedene Datenquellen für das Polkadot- und das Kusama-Netzwerk zeigt. - ```yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Erstellen Sie eine Vorlage, um Redundanzen zu vermeiden definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #verwenden Sie die Vorlage hier - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # Man kann wiederverwenden oder ändern +::: code-tabs @tab v0.0.1 ```yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Erstellen Sie eine Vorlage, um Redundanzen zu vermeiden definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #verwenden Sie die Vorlage hier - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # Man kann wiederverwenden oder ändern - +::: diff --git a/docs/de/build/mapping.md b/docs/de/build/mapping.md index cf0297360e6..b1997d9578d 100644 --- a/docs/de/build/mapping.md +++ b/docs/de/build/mapping.md @@ -67,9 +67,9 @@ Unser Ziel ist es, alle Datenquellen für Benutzer für das Mapping von Handlern Dies sind die Schnittstellen, die wir derzeit unterstützen: -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) fragt den aktuellen Block ab. -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) führt mehrere Abfragen des gleichen Typs im aktuellen Block durch. -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) führt im aktuellen Block mehrere Abfragen verschiedener Typen durch. +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) fragt den **aktuellen** Block ab. +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) führt mehrere Abfragen des **gleichen** Typs im aktuellen Block durch. +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) führt im aktuellen Block mehrere Abfragen **verschiedener** Typen durch. Dies sind die Schnittstellen, die wir derzeit **NICHT** unterstützen: diff --git a/docs/de/build/substrate-evm.md b/docs/de/build/substrate-evm.md index d632804469c..7e452eae777 100644 --- a/docs/de/build/substrate-evm.md +++ b/docs/de/build/substrate-evm.md @@ -74,7 +74,7 @@ Funktioniert genauso wie [substrate/EventHandler](../create/mapping/#event-handl | ------- | ------------ | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | Themen | String Array | Transfer(Addresse indexed von,Addresse indexed zu,uint256 value) | Der Themenfilter folgt den Ethereum JSON-PRC-Protokollfiltern, weitere Dokumentation finden Sie [hier](https://docs.ethers.io/v5/concepts/events/). | -Hinweis zu Themen: +**Hinweis zu Themen:** Es gibt einige Verbesserungen der grundlegenden Protokollfilter: - Themen müssen nicht 0 gepolstert sein @@ -97,17 +97,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Contract address (or recipient if transfer) to filter, if `null` should be for contract creation - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -122,7 +122,7 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## Bekannte Einschränkungen diff --git a/docs/de/faqs/faqs.md b/docs/de/faqs/faqs.md index af3a214b2ca..77abd56003e 100644 --- a/docs/de/faqs/faqs.md +++ b/docs/de/faqs/faqs.md @@ -16,7 +16,7 @@ SubQuery bietet Entwicklern außerdem kostenloses, produktionstaugliches Hosting **SubQuery-Netzwerk** -Das SubQuery-Netzwerk ermöglicht Entwicklern die vollständige Dezentralisierung ihres Infrastruktur-Stacks. Es ist der offenste, leistungsfähigste, zuverlässigste und skalierbarste Datendienst für dApps. Das SubQuery-Netzwerk indiziert und stellt Daten für die globale Gemeinschaft auf eine motivierte und überprüfbare Weise bereit. Nachdem Sie Ihr Projekt im SubQuery-Netzwerk veröffentlicht haben, kann jeder es indizieren und hosten, wodurch Daten schneller und zuverlässiger für Benutzer auf der ganzen Welt bereitgestellt werden. +Das SubQuery-Netzwerk ermöglicht Entwicklern die vollständige Dezentralisierung ihres Infrastruktur-Stacks. Es ist der offenste, leistungsfähigste, zuverlässigste und skalierbarste Datendienst für dApps. Das SubQuery-Netzwerk indiziert und stellt Daten für die globale Gemeinschaft auf eine motivierte und überprüfbare Weise bereit. Nachdem Sie Ihr Projekt im SubQuery-Netzwerk veröffentlicht haben, kann jeder es indizieren und hosten, wodurch Daten schneller und zuverlässiger für Benutzer auf der ganzen Welt bereitgestellt werden. Weitere Info finden Sie [hier](/subquery_network/introduction.md). @@ -26,7 +26,7 @@ Der beste Einstieg in SubQuery ist unser [Hello World Tutorial](/assets/pdf/Hell ## Wie kann ich zu SubQuery beitragen oder Feedback geben? -Wir lieben Beiträge und Feedback aus der Community. Um den Code beizutragen, forken Sie das Repository Ihres Interesses und nehmen Sie Ihre Änderungen vor. Senden Sie dann einen PR- oder Pull-Request. Vergessen Sie nicht, auch zu testen. Sehen Sie sich auch unsere Richtlinien für Beiträge an +Wir lieben Beiträge und Feedback aus der Community. Um den Code beizutragen, forken Sie das Repository Ihres Interesses und nehmen Sie Ihre Änderungen vor. Senden Sie dann einen PR- oder Pull-Request. Vergessen Sie nicht, auch zu testen. Sehen Sie sich auch unsere [Richtlinien für Beiträge](../miscellaneous/contributing.html) an Um Feedback zu geben, kontaktiere uns unter hello@subquery.net oder besuche unseren [Discord-Kanal](https://discord.com/invite/78zg8aBSMG). @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Beachten Sie, dass empfohlen wird, `--force-clean` zu verwenden, wenn Sie den `startBlock` im Projektmanifest (`project.yaml`) ändern, um zu beginnen Neuindizierung aus dem konfigurierten Block. Wenn `startBlock` ohne `--force-clean` des Projekts geändert wird, dann wird der Indexer die Indizierung mit dem zuvor konfigurierten `startBlock` fortsetzen. - ## Wie kann ich mein Projekt optimieren, um es zu beschleunigen? Leistung ist ein entscheidender Faktor in jedem Projekt. Glücklicherweise gibt es mehrere Dinge, die Sie tun könnten, um es zu verbessern. Hier ist die Liste mit einigen Vorschlägen: @@ -89,13 +88,13 @@ Leistung ist ein entscheidender Faktor in jedem Projekt. Glücklicherweise gibt - Setzen Sie den Startblock auf den Zeitpunkt, an dem der Vertrag initialisiert wurde. - Verwenden Sie immer ein [Wörterbuch](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (wir können Ihnen helfen, eines für Ihr neues Netzwerk zu erstellen). - Optimieren Sie Ihr Schemadesign, halten Sie es so einfach wie möglich. - - Versuchen Sie unnötige Felder und Spalten zu reduzieren. - - Erstellen Sie nach Bedarf Indizes. + - Versuchen Sie unnötige Felder und Spalten zu reduzieren. + - Erstellen Sie nach Bedarf Indizes. - Verwenden Sie so oft wie möglich Parallel-/Batch-Verarbeitung. - - Verwenden Sie `api.queryMulti()`, um Polkadot-API-Aufrufe innerhalb von Mapping-Funktionen zu optimieren und sie parallel abzufragen. Dies ist ein schnellerer Weg als eine Schleife. - - Verwende `Promise.all()`. Bei mehreren asynchronen Funktionen ist es besser, sie parallel auszuführen und aufzulösen. - - Wenn Sie viele Entitäten in einem einzigen Handler erstellen möchten, können Sie `store.bulkCreate(entityName: string, entity: Entity[])` verwenden. Sie können sie parallel erstellen, ohne dass Sie dies einzeln tun müssen. + - Verwenden Sie `api.queryMulti()`, um Polkadot-API-Aufrufe innerhalb von Mapping-Funktionen zu optimieren und sie parallel abzufragen. Dies ist ein schnellerer Weg als eine Schleife. + - Verwende `Promise.all()`. Bei mehreren asynchronen Funktionen ist es besser, sie parallel auszuführen und aufzulösen. + - Wenn Sie viele Entitäten in einem einzigen Handler erstellen möchten, können Sie `store.bulkCreate(entityName: string, entity: Entity[])` verwenden. Sie können sie parallel erstellen, ohne dass Sie dies einzeln tun müssen. - Das Ausführen von API-Aufrufen zum Abfragen des Status kann langsam sein. Sie könnten versuchen, Anrufe nach Möglichkeit zu minimieren und `extrinsische/Transaktions-/Ereignisdaten` zu verwenden. - Verwenden Sie `Worker-Threads`, um den Blockabruf und die Blockverarbeitung in einen eigenen Worker-Thread zu verschieben. Es könnte die Indizierung um das bis zu 4-fache beschleunigen (abhängig vom jeweiligen Projekt). Sie können es einfach mit dem Flag `-workers=` aktivieren. Beachten Sie, dass die Anzahl der verfügbaren CPU-Kerne die Verwendung von Worker-Threads streng begrenzt. Derzeit ist es nur für Substrate und Cosmos verfügbar und wird bald für Avalanche integriert. - Beachten Sie, dass `JSON.stringify` keine nativen `BigInts` unterstützt. Unsere Protokollierungsbibliothek wird dies intern tun, wenn Sie versuchen, ein Objekt zu protokollieren. Wir suchen nach einem Workaround dafür. -- Verwenden Sie einen praktischen `Modulo`-Filter, um einen Handler nur einmal für einen bestimmten Block auszuführen. Dieser Filter ermöglicht die Verarbeitung einer beliebigen Anzahl von Blöcken, was äußerst nützlich ist, um Daten in einem festgelegten Intervall zu gruppieren und zu berechnen. Wenn Modulo beispielsweise auf 50 eingestellt ist, wird der Blockhandler alle 50 Blöcke ausgeführt. Es bietet Entwicklern noch mehr Kontrolle über die Indizierung von Daten und kann wie unten in Ihrem Projektmanifest implementiert werden. \ No newline at end of file +- Verwenden Sie einen praktischen `Modulo`-Filter, um einen Handler nur einmal für einen bestimmten Block auszuführen. Dieser Filter ermöglicht die Verarbeitung einer beliebigen Anzahl von Blöcken, was äußerst nützlich ist, um Daten in einem festgelegten Intervall zu gruppieren und zu berechnen. Wenn Modulo beispielsweise auf 50 eingestellt ist, wird der Blockhandler alle 50 Blöcke ausgeführt. Es bietet Entwicklern noch mehr Kontrolle über die Indizierung von Daten und kann wie unten in Ihrem Projektmanifest implementiert werden. diff --git a/docs/de/miscellaneous/contributing.md b/docs/de/miscellaneous/contributing.md index 059e57264ff..f5cae8b4c6d 100644 --- a/docs/de/miscellaneous/contributing.md +++ b/docs/de/miscellaneous/contributing.md @@ -2,7 +2,7 @@ Herzlich Willkommen und vielen Dank, dass Sie in Erwägung ziehen, zu diesem SubQuery-Projekt beizutragen! Gemeinsam können wir den Weg in eine dezentralere Zukunft ebnen. -::: info Hinweis Diese Dokumentation wird vom SubQuery-Team aktiv gepflegt. Wir freuen uns über Ihre Beiträge. Sie können dies tun, indem Sie unser GitHub-Projekt verzweigen und Änderungen an allen Dokumentations-Markdown-Dateien im Verzeichnis `docs` vornehmen. ::: +::: tip Hinweis Diese Dokumentation wird vom SubQuery-Team aktiv gepflegt. Wir freuen uns über Ihre Beiträge. Sie können dies tun, indem Sie unser GitHub-Projekt verzweigen und Änderungen an allen Dokumentations-Markdown-Dateien im Verzeichnis `docs` vornehmen. ::: Was folgt, ist eine Reihe von Richtlinien (keine Regeln) für das Mitwirken an SubQuery. Die Befolgung dieser Richtlinien hilft uns dabei, den Beitragsprozess für alle Beteiligten einfach und effektiv zu gestalten. Es teilt auch mit, dass Sie sich bereit erklären, die Zeit der Entwickler zu respektieren, die dieses Projekt verwalten und entwickeln. Im Gegenzug werden wir diesen Respekt erwidern, indem wir Ihr Problem angehen, Änderungen in Betracht ziehen, an Verbesserungen mitarbeiten und Ihnen helfen, Ihre Pull-Anfragen abzuschließen. @@ -14,8 +14,8 @@ Wir nehmen unsere Open-Source-Community-Projekte und Verantwortung ernst und hal Beiträge zu unseren Repositories erfolgen über Issues und Pull Requests (PRs). Einige allgemeine Richtlinien, die beides abdecken: -* Suchen Sie nach bestehenden Problemen und PRs, bevor Sie Ihre eigenen erstellen. -* Wir arbeiten hart daran, sicherzustellen, dass Probleme umgehend behoben werden, aber je nach Auswirkung kann es eine Weile dauern, die Ursache zu untersuchen. Eine freundliche @-Erwähnung im Kommentarthread an den Einreicher oder einen Beitragenden kann helfen, Aufmerksamkeit zu erregen, wenn Ihr Problem blockiert. +- Suchen Sie nach bestehenden Problemen und PRs, bevor Sie Ihre eigenen erstellen. +- Wir arbeiten hart daran, sicherzustellen, dass Probleme umgehend behoben werden, aber je nach Auswirkung kann es eine Weile dauern, die Ursache zu untersuchen. Eine freundliche @-Erwähnung im Kommentarthread an den Einreicher oder einen Beitragenden kann helfen, Aufmerksamkeit zu erregen, wenn Ihr Problem blockiert. ## Wie man einen Beitrag leistet @@ -23,32 +23,32 @@ Beiträge zu unseren Repositories erfolgen über Issues und Pull Requests (PRs). Fehler werden als GitHub-Probleme verfolgt. Wenn Sie ein Problem protokollieren, erklären Sie das Problem und fügen Sie zusätzliche Details hinzu, um den Betreuern zu helfen, das Problem zu reproduzieren: -* Verwenden Sie einen klaren und beschreibenden Titel für das Problem, um das Problem zu identifizieren. -* Beschreiben Sie die genauen Schritte, um das Problem zu reproduzieren. -* Beschreiben Sie das Verhalten, das Sie beobachtet haben, nachdem Sie die Schritte ausgeführt haben. -* Erklären Sie, welches Verhalten Sie stattdessen erwartet haben und warum. -* Fügen Sie wenn möglich Screenshots hinzu. +- Verwenden Sie einen klaren und beschreibenden Titel für das Problem, um das Problem zu identifizieren. +- Beschreiben Sie die genauen Schritte, um das Problem zu reproduzieren. +- Beschreiben Sie das Verhalten, das Sie beobachtet haben, nachdem Sie die Schritte ausgeführt haben. +- Erklären Sie, welches Verhalten Sie stattdessen erwartet haben und warum. +- Fügen Sie wenn möglich Screenshots hinzu. ### Senden von Pull-Requests Im Allgemeinen folgen wir dem „Fork-and-Pull“-Git-Workflow: -* Verzweigen Sie das Repository zu Ihrem eigenen Github-Konto. -* Klonen Sie das Projekt auf Ihren Computer. -* Erstellen Sie lokal einen Zweig mit einem prägnanten, aber aussagekräftigen Namen. -* Übernehmen Sie Änderungen an der Verzweigung. -* Befolgen Sie alle Formatierungs- und Testrichtlinien, die für dieses Repo spezifisch sind. -* Pushen Sie Änderungen an Ihren Fork. -* Öffnen Sie eine PR in unserem Repository. +- Verzweigen Sie das Repository zu Ihrem eigenen Github-Konto. +- Klonen Sie das Projekt auf Ihren Computer. +- Erstellen Sie lokal einen Zweig mit einem prägnanten, aber aussagekräftigen Namen. +- Übernehmen Sie Änderungen an der Verzweigung. +- Befolgen Sie alle Formatierungs- und Testrichtlinien, die für dieses Repo spezifisch sind. +- Pushen Sie Änderungen an Ihren Fork. +- Öffnen Sie eine PR in unserem Repository. ## Kodierungskonventionen ### Git-Commit-Nachrichten -* Verwenden Sie die Gegenwartsform ("Add feature" not "Added feature"). -* Verwenden Sie den Imperativ ("Move cursor to..." not "Moves cursor to..."). -* Beschränken Sie die erste Zeile auf 72 Zeichen oder weniger. +- Verwenden Sie die Gegenwartsform ("Add feature" not "Added feature"). +- Verwenden Sie den Imperativ ("Move cursor to..." not "Moves cursor to..."). +- Beschränken Sie die erste Zeile auf 72 Zeichen oder weniger. ### JavaScript-Styleguide -* Der gesamte JavaScript-Code ist mit Prettier und ESLint versehen. +- Der gesamte JavaScript-Code ist mit Prettier und ESLint versehen. diff --git a/docs/de/quickstart/helloworld-localhost.md b/docs/de/quickstart/helloworld-localhost.md index 3d212fe4ce7..c07d1d5c6b3 100644 --- a/docs/de/quickstart/helloworld-localhost.md +++ b/docs/de/quickstart/helloworld-localhost.md @@ -88,8 +88,8 @@ cd subqlHelloWorld Führen Sie nun eine Yarn- oder Nodeinstallation durch, um die verschiedenen Abhängigkeiten zu installieren. - ```shell yarn install ``` - ```bash npm install ``` +::: code-tabs @tab:active yarn `shell yarn install ` +@tab npm `bash npm install ` ::: Beispiel von`yarn install` @@ -109,8 +109,8 @@ success Saved lockfile. Führen Sie nun `yarn codegen` aus, um Typescript aus dem GraphQL-Schema zu generieren. - ```shell yarn codegen ``` - ```bash npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `bash npm run-script codegen ` ::: Beispiel von `yarn codegen` @@ -133,8 +133,8 @@ $ ./node_modules/.bin/subql codegen Der nächste Schritt besteht darin, den Code mit `yarn build` zu erstellen. - ```shell yarn build ``` - ```bash npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: Beispiel von`yarn build` diff --git a/docs/de/quickstart/quickstart-avalanche.md b/docs/de/quickstart/quickstart-avalanche.md index 3c7fba267e3..e5a68db9fea 100644 --- a/docs/de/quickstart/quickstart-avalanche.md +++ b/docs/de/quickstart/quickstart-avalanche.md @@ -59,8 +59,8 @@ Nachdem der Initialisierungsprozess abgeschlossen ist, sollten Sie sehen, dass e Führen Sie zuletzt im Projektverzeichnis den folgenden Befehl aus, um die Abhängigkeiten des neuen Projekts zu installieren. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Änderungen an Ihrem Projekt vornehmen @@ -92,8 +92,8 @@ type PangolinApproval @entity { **Wichtig: Wenn Sie Änderungen an der Schemadatei vornehmen, stellen Sie bitte sicher, dass Sie Ihr Typenverzeichnis neu generieren. Tun Sie dies jetzt.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Sie finden die generierten Modelle im Verzeichnis `/src/types/models`. Weitere Informationen zur Datei `schema.graphql` finden Sie in unserer Dokumentation unter [Build/GraphQL Schema](../build/graphql.md) @@ -169,7 +169,7 @@ Weitere Informationen zu Mapping-Funktionen finden Sie in unserer Dokumentation Um Ihr neues SubQuery-Projekt auszuführen, müssen wir zuerst unsere Arbeit erstellen. Führen Sie den Build-Befehl im Stammverzeichnis des Projekts aus. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Wichtig: Wenn Sie Änderungen an Ihren Zuordnungsfunktionen vornehmen, müssen Sie Ihr Projekt neu erstellen** @@ -183,13 +183,11 @@ Die gesamte Konfiguration, die steuert, wie ein SubQuery-Node ausgeführt wird, Führen Sie im Projektverzeichnis den folgenden Befehl aus: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Es kann einige Zeit dauern, die erforderlichen Pakete herunterzuladen ([`@subql/node`](https://www.npmjs.com/package/@subql/node), -`@subql/query` und Postgres) zum ersten Mal, aber bald werden Sie einen laufenden SubQuery-Node sehen. Seien Sie hier bitte geduldig.

- - +`@subql/query` und Postgres) zum ersten Mal, aber bald werden Sie einen laufenden SubQuery-Node sehen. Seien Sie hier bitte geduldig. ### Fragen Sie Ihr Projekt ab @@ -199,8 +197,6 @@ Sie sollten sehen, dass im Explorer ein GraphQL-Playground angezeigt wird und di Für ein neues SubQuery-Starterprojekt können Sie die folgende Abfrage ausprobieren, um einen Eindruck davon zu bekommen, wie sie funktioniert, oder [mehr über die GraphQL-Abfragesprache erfahren](../run_publish/graphql.md). - - ```graphql query { pangolinApprovals(first: 5) { @@ -215,21 +211,14 @@ query { } } } - - ``` - - - ### Veröffentlichen Sie Ihr SubQuery-Projekt SubQuery bietet einen kostenlosen verwalteten Dienst, wenn Sie Ihr neues Projekt bereitstellen können. Sie können es in [SubQuery-Projekten](https://project.subquery.network) bereitstellen und mit unserem [Explorer](https://explorer.subquery.network) abfragen. [Lesen Sie den Leitfaden zur Veröffentlichung Ihres neuen Projekts in SubQuery Projects](../run_publish/publish.md), **Beachten Sie, dass Sie es über IPFS bereitstellen müssen**. - - ## Weitere Schritte Herzlichen Glückwunsch, Sie haben jetzt ein lokal ausgeführtes SubQuery-Projekt, das GraphQL-API-Anforderungen für die Übertragung von Daten von bLuna akzeptiert. diff --git a/docs/de/quickstart/quickstart-cosmos.md b/docs/de/quickstart/quickstart-cosmos.md index 1a9b834e783..1f24ffc14dd 100644 --- a/docs/de/quickstart/quickstart-cosmos.md +++ b/docs/de/quickstart/quickstart-cosmos.md @@ -44,8 +44,8 @@ Nachdem der Initialisierungsprozess abgeschlossen ist, sollten Sie sehen, dass e Führen Sie zuletzt im Projektverzeichnis den folgenden Befehl aus, um die Abhängigkeiten des neuen Projekts zu installieren. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Änderungen an Ihrem Projekt vornehmen @@ -75,8 +75,8 @@ type Vote @entity { **Wichtig: Wenn Sie Änderungen an der Schemadatei vornehmen, stellen Sie bitte sicher, dass Sie Ihr Typenverzeichnis neu generieren. Tun Sie dies jetzt.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Sie finden die generierten Modelle im Verzeichnis `/src/types/models`. Weitere Informationen zur Datei `schema.graphql` finden Sie in unserer Dokumentation unter [Build/GraphQL Schema](../build/graphql.md) @@ -145,7 +145,7 @@ Weitere Informationen zu Mapping-Funktionen finden Sie in unserer Dokumentation Um Ihr neues SubQuery-Projekt auszuführen, müssen wir zuerst unsere Arbeit erstellen. Führen Sie den Build-Befehl im Stammverzeichnis des Projekts aus. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Wichtig: Wenn Sie Änderungen an Ihren Zuordnungsfunktionen vornehmen, müssen Sie Ihr Projekt neu erstellen** @@ -159,13 +159,11 @@ Die gesamte Konfiguration, die steuert, wie ein SubQuery-Node ausgeführt wird, Führen Sie im Projektverzeichnis den folgenden Befehl aus: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Es kann einige Zeit dauern, die erforderlichen Pakete herunterzuladen ([`@subql/node`](https://www.npmjs.com/package/@subql/node), -`@subql/query` und Postgres) zum ersten Mal, aber bald werden Sie einen laufenden SubQuery-Knoten sehen. Seien Sie hier bitte geduldig.

- - +`@subql/query` und Postgres) zum ersten Mal, aber bald werden Sie einen laufenden SubQuery-Knoten sehen. Seien Sie hier bitte geduldig. ### Fragen Sie Ihr Projekt ab @@ -175,14 +173,11 @@ Sie sollten sehen, dass im Explorer ein GraphQL-Playground angezeigt wird und di Für ein neues SubQuery-Starterprojekt können Sie die folgende Abfrage ausprobieren, um einen Eindruck davon zu bekommen, wie sie funktioniert, oder [mehr über die GraphQL-Abfragesprache erfahren](../run_publish/graphql.md). - - ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id @@ -194,19 +189,14 @@ query { } ``` - Den endgültigen Code dieses Projekts können Sie hier unter [https://github.com/jamesbayly/juno-terra-developer-fund-votes](https://github.com/jamesbayly/juno-terra-developer-fund-votes) einsehen - - ### Veröffentlichen Sie Ihr SubQuery-Projekt SubQuery bietet einen kostenlosen verwalteten Dienst, wenn Sie Ihr neues Projekt bereitstellen können. Sie können es in [SubQuery-Projekten](https://project.subquery.network) bereitstellen und mit unserem [Explorer](https://explorer.subquery.network) abfragen. [Lesen Sie die Anleitung zum Veröffentlichen Ihres neuen Projekts in SubQuery Projects](../publish/publish.md) - - ## Weitere Schritte Herzlichen Glückwunsch, Sie haben jetzt ein lokal ausgeführtes SubQuery-Projekt, das GraphQL-API-Anforderungen für die Übertragung von Daten von bLuna akzeptiert. diff --git a/docs/de/quickstart/quickstart-polkadot.md b/docs/de/quickstart/quickstart-polkadot.md index 45c2c872d01..6479d41b359 100644 --- a/docs/de/quickstart/quickstart-polkadot.md +++ b/docs/de/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql init Während das SubQuery-Projekt initialisiert wird, werden Ihnen bestimmte Fragen gestellt: - Projektname: Ein Projektname für Ihr SubQuery-Projekt -- Netzwerkfamilie: Die Layer-1-Blockchain-Netzwerkfamilie, für deren Indizierung dieses SubQuery-Projekt entwickelt wird. Verwenden Sie die Pfeiltasten, um aus den verfügbaren Optionen auszuwählen. Für diese Anleitung verwenden wir *"Substrat"* -- Netzwerk: Das spezifische Netzwerk, für das dieses SubQuery-Projekt entwickelt wird, um es zu indizieren. Verwenden Sie die Pfeiltasten, um aus den verfügbaren Optionen auszuwählen. Für diese Anleitung verwenden wir *"Polkadot"* -- Vorlagenprojekt: Wählen Sie ein SubQuery-Vorlagenprojekt aus, das als Ausgangspunkt für den Beginn der Entwicklung dient. Wir empfehlen, das Projekt *"subql-starter"* auszuwählen. -- RPC-Endpunkt: Geben Sie eine HTTPS-URL zu einem ausgeführten RPC-Endpunkt an, der standardmäßig für dieses Projekt verwendet wird. Sie können schnell auf öffentliche Endpunkte für verschiedene Polkadot-Netzwerke zugreifen, Ihren eigenen privaten dedizierten Nodes mit [OnFinality](https://app.onfinality.io) erstellen oder einfach den standardmäßigen Polkadot-Endpunkt verwenden. Dieser RPC-Node muss ein Archivnode sein (den Zustand der vollständigen Chain haben). Für diese Anleitung verwenden wir den Standardwert *"https://polkadot.api.onfinality.io"* +- Netzwerkfamilie: Die Layer-1-Blockchain-Netzwerkfamilie, für deren Indizierung dieses SubQuery-Projekt entwickelt wird. Verwenden Sie die Pfeiltasten, um aus den verfügbaren Optionen auszuwählen. Für diese Anleitung verwenden wir _"Substrat"_ +- Netzwerk: Das spezifische Netzwerk, für das dieses SubQuery-Projekt entwickelt wird, um es zu indizieren. Verwenden Sie die Pfeiltasten, um aus den verfügbaren Optionen auszuwählen. Für diese Anleitung verwenden wir _"Polkadot"_ +- Vorlagenprojekt: Wählen Sie ein SubQuery-Vorlagenprojekt aus, das als Ausgangspunkt für den Beginn der Entwicklung dient. Wir empfehlen, das Projekt _"subql-starter"_ auszuwählen. +- RPC-Endpunkt: Geben Sie eine HTTPS-URL zu einem ausgeführten RPC-Endpunkt an, der standardmäßig für dieses Projekt verwendet wird. Sie können schnell auf öffentliche Endpunkte für verschiedene Polkadot-Netzwerke zugreifen, Ihren eigenen privaten dedizierten Nodes mit [OnFinality](https://app.onfinality.io) erstellen oder einfach den standardmäßigen Polkadot-Endpunkt verwenden. Dieser RPC-Node muss ein Archivnode sein (den Zustand der vollständigen Chain haben). Für diese Anleitung verwenden wir den Standardwert _"https://polkadot.api.onfinality.io"_ - Git-Repository: Geben Sie eine Git-URL zu einem Repository an, in dem dieses SubQuery-Projekt gehostet wird (wenn es in SubQuery Explorer gehostet wird), oder akzeptieren Sie die bereitgestellte Standardeinstellung. - Autoren: Geben Sie hier den Eigentümer dieses SubQuery-Projekts ein (z. B. Ihren Namen!) oder übernehmen Sie die vorgegebene Vorgabe. - Beschreibung: Geben Sie einen kurzen Absatz zu Ihrem Projekt an, der beschreibt, welche Daten es enthält und was Benutzer damit tun können, oder akzeptieren Sie die bereitgestellte Standardeinstellung. @@ -57,8 +57,8 @@ Nachdem der Initialisierungsprozess abgeschlossen ist, sollten Sie sehen, dass e Führen Sie zuletzt im Projektverzeichnis den folgenden Befehl aus, um die Abhängigkeiten des neuen Projekts zu installieren. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Änderungen an Ihrem Projekt vornehmen @@ -88,8 +88,8 @@ type Transfer @entity { **Wichtig: Wenn Sie Änderungen an der Schemadatei vornehmen, stellen Sie bitte sicher, dass Sie Ihr Typenverzeichnis neu generieren.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Sie finden die generierten Modelle im Verzeichnis `/src/types/models`. Weitere Informationen zur Datei `schema.graphql` finden Sie in unserer Dokumentation unter [Build/GraphQL Schema](../build/graphql.md) @@ -111,7 +111,6 @@ dataSources: filter: module: balances method: Transfer - ``` Das bedeutet, dass wir jedes Mal, wenn ein `balances.Transfer`-Ereignis auftritt, eine `handleEvent`-Mapping-Funktion ausführen. @@ -134,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { - // Get data from the event - // The balances.transfer event has the following payload \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Create the new transfer entity - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Get data from the event + // The balances.transfer event has the following payload \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Create the new transfer entity + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -161,7 +160,7 @@ Weitere Informationen zu Mapping-Funktionen finden Sie in unserer Dokumentation Um Ihr neues SubQuery-Projekt auszuführen, müssen wir zuerst unsere Arbeit erstellen. Führen Sie den Build-Befehl im Stammverzeichnis des Projekts aus. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Wichtig: Wenn Sie Änderungen an Ihren Zuordnungsfunktionen vornehmen, müssen Sie Ihr Projekt neu erstellen** @@ -175,13 +174,11 @@ Die gesamte Konfiguration, die steuert, wie ein SubQuery-Node ausgeführt wird, Führen Sie im Projektverzeichnis den folgenden Befehl aus: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Es kann einige Zeit dauern, die erforderlichen Pakete herunterzuladen ([`@subql/node`](https://www.npmjs.com/package/@subql/node), -`@subql/query` und Postgres) zum ersten Mal, aber bald sollten Sie einen laufenden SubQuery-Node auf dem Terminalbildschirm sehen.

- - +`@subql/query` und Postgres) zum ersten Mal, aber bald sollten Sie einen laufenden SubQuery-Node auf dem Terminalbildschirm sehen. ### Fragen Sie Ihr Projekt ab @@ -191,15 +188,10 @@ Sie sollten einen GraphQL-Playground im Browser und die Schemas sehen, die zur A Probieren Sie für ein neues SubQuery-Starterprojekt die folgende Abfrage aus, um zu verstehen, wie sie funktioniert, oder erfahren Sie mehr über die [GraphQL-Abfragesprache](../run_publish/graphql.md). - - ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount @@ -210,21 +202,14 @@ Probieren Sie für ein neues SubQuery-Starterprojekt die folgende Abfrage aus, u } } } - - ``` - - - ### Veröffentlichen Sie Ihr SubQuery-Projekt SubQuery bietet einen kostenlosen verwalteten Dienst, in dem Sie Ihr neues Projekt bereitstellen können. Sie können es in [SubQuery-Projekten](https://project.subquery.network) bereitstellen und mit unserem [Explorer](https://explorer.subquery.network) abfragen. Lesen Sie den Leitfaden zum [Veröffentlichen Ihres neuen Projekts in SubQuery Projects](../run_publish/publish.md) - - ## Weitere Schritte Herzlichen Glückwunsch, Sie haben jetzt ein lokal ausgeführtes SubQuery-Projekt, das GraphQL-API-Anforderungen für die Datenübertragung akzeptiert. diff --git a/docs/de/quickstart/quickstart-terra.md b/docs/de/quickstart/quickstart-terra.md index 1220736033e..a6458486893 100644 --- a/docs/de/quickstart/quickstart-terra.md +++ b/docs/de/quickstart/quickstart-terra.md @@ -45,11 +45,11 @@ subql init Während das SubQuery-Projekt initialisiert wird, werden Ihnen bestimmte Fragen gestellt: - Projektname: Ein Name für Ihr SubQuery-Projekt -- Netzwerkfamilie: Die Layer-1-Blockchain-Netzwerkfamilie, für deren Indizierung dieses SubQuery-Projekt entwickelt wird, verwenden Sie die Pfeiltasten auf Ihrer Tastatur, um aus den Optionen auszuwählen. Für diese Anleitung verwenden wir *"Terra"* -- Netzwerk: Das spezifische Netzwerk, für dessen Indexierung dieses SubQuery-Projekt entwickelt wird, verwenden Sie die Pfeiltasten auf Ihrer Tastatur, um aus den Optionen auszuwählen. Für diese Anleitung verwenden wir *"Terra"* -- Vorlage: Wählen Sie eine SubQuery-Projektvorlage aus, die einen Ausgangspunkt für den Beginn der Entwicklung bietet. Wir empfehlen die Auswahl des *"Starter-Projekts"* +- Netzwerkfamilie: Die Layer-1-Blockchain-Netzwerkfamilie, für deren Indizierung dieses SubQuery-Projekt entwickelt wird, verwenden Sie die Pfeiltasten auf Ihrer Tastatur, um aus den Optionen auszuwählen. Für diese Anleitung verwenden wir _"Terra"_ +- Netzwerk: Das spezifische Netzwerk, für dessen Indexierung dieses SubQuery-Projekt entwickelt wird, verwenden Sie die Pfeiltasten auf Ihrer Tastatur, um aus den Optionen auszuwählen. Für diese Anleitung verwenden wir _"Terra"_ +- Vorlage: Wählen Sie eine SubQuery-Projektvorlage aus, die einen Ausgangspunkt für den Beginn der Entwicklung bietet. Wir empfehlen die Auswahl des _"Starter-Projekts"_ - Git-Repository (optional): Geben Sie eine Git-URL zu einem Repository an, in dem dieses SubQuery-Projekt gehostet wird (wenn es in SubQuery Explorer gehostet wird). -- RPC-Endpunkt (erforderlich): Geben Sie eine HTTPS-URL zu einem ausgeführten RPC-Endpunkt an, der standardmäßig für dieses Projekt verwendet wird. Dieser RPC-Node muss ein Archivnode sein (den Zustand der vollständigen Chain haben). Für diese Anleitung verwenden wir den Standardwert *"https://terra-columbus-5.beta.api.onfinality.io"* +- RPC-Endpunkt (erforderlich): Geben Sie eine HTTPS-URL zu einem ausgeführten RPC-Endpunkt an, der standardmäßig für dieses Projekt verwendet wird. Dieser RPC-Node muss ein Archivnode sein (den Zustand der vollständigen Chain haben). Für diese Anleitung verwenden wir den Standardwert _"https://terra-columbus-5.beta.api.onfinality.io"_ - Autoren (erforderlich): Geben Sie hier den Eigentümer dieses SubQuery-Projekts ein (z. B. Ihren Namen!) - Beschreibung (Optional): Sie können einen kurzen Absatz über Ihr Projekt bereitstellen, der beschreibt, welche Daten es enthält und was Benutzer damit tun können - Version (erforderlich): Geben Sie eine benutzerdefinierte Versionsnummer ein oder verwenden Sie die Standardversion (`1.0.0`). @@ -59,8 +59,8 @@ Nachdem der Initialisierungsprozess abgeschlossen ist, sollten Sie sehen, dass e Führen Sie zuletzt im Projektverzeichnis den folgenden Befehl aus, um die Abhängigkeiten des neuen Projekts zu installieren. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Änderungen an Ihrem Projekt vornehmen @@ -91,8 +91,8 @@ type Transfer @entity { **Wichtig: Wenn Sie Änderungen an der Schemadatei vornehmen, stellen Sie bitte sicher, dass Sie Ihr Typenverzeichnis neu generieren. Tun Sie dies jetzt.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Sie finden die generierten Modelle im Verzeichnis `/src/types/models`. Weitere Informationen zur Datei `schema.graphql` finden Sie in unserer Dokumentation unter [Build/GraphQL Schema](../build/graphql.md) @@ -143,30 +143,30 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Debugging-Daten aus dem Ereignis drucken - // logger.info(JSON.stringify(event)); - - // Erstellen Sie die neue Übertragungsentität mit einer eindeutigen ID - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Debugging-Daten aus dem Ereignis drucken + // logger.info(JSON.stringify(event)); + + // Erstellen Sie die neue Übertragungsentität mit einer eindeutigen ID + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` @@ -178,7 +178,7 @@ Weitere Informationen zu Mapping-Funktionen finden Sie in unserer Dokumentation Um Ihr neues SubQuery-Projekt auszuführen, müssen wir zuerst unsere Arbeit erstellen. Führen Sie den Build-Befehl im Stammverzeichnis des Projekts aus. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Wichtig: Wenn Sie Änderungen an Ihren Zuordnungsfunktionen vornehmen, müssen Sie Ihr Projekt neu erstellen** @@ -192,13 +192,11 @@ Die gesamte Konfiguration, die steuert, wie ein SubQuery-Node ausgeführt wird, Führen Sie im Projektverzeichnis den folgenden Befehl aus: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Es kann einige Zeit dauern, die erforderlichen Pakete herunterzuladen ([`@subql/node`](https://www.npmjs.com/package/@subql/node), -`@subql/query` und Postgres) zum ersten Mal, aber bald werden Sie einen laufenden SubQuery-Knoten sehen. Seien Sie hier bitte geduldig.

- - +`@subql/query` und Postgres) zum ersten Mal, aber bald werden Sie einen laufenden SubQuery-Knoten sehen. Seien Sie hier bitte geduldig. ### Fragen Sie Ihr Projekt ab @@ -208,15 +206,10 @@ Sie sollten sehen, dass im Explorer ein GraphQL-Playground angezeigt wird und di Für ein neues SubQuery-Starterprojekt können Sie die folgende Abfrage ausprobieren, um einen Eindruck davon zu bekommen, wie sie funktioniert, oder [mehr über die GraphQL-Abfragesprache erfahren](../run_publish/graphql.md). - - ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash @@ -230,17 +223,12 @@ Für ein neues SubQuery-Starterprojekt können Sie die folgende Abfrage ausprobi } ``` - - - ### Veröffentlichen Sie Ihr SubQuery-Projekt SubQuery bietet einen kostenlosen verwalteten Dienst, wenn Sie Ihr neues Projekt bereitstellen können. Sie können es in [SubQuery-Projekten](https://project.subquery.network) bereitstellen und mit unserem [Explorer](https://explorer.subquery.network) abfragen. [Lesen Sie die Anleitung zum Veröffentlichen Ihres neuen Projekts in SubQuery Projects](../publish/publish.md) - - ## Weitere Schritte Herzlichen Glückwunsch, Sie haben jetzt ein lokal ausgeführtes SubQuery-Projekt, das GraphQL-API-Anforderungen für die Übertragung von Daten von bLuna akzeptiert. diff --git a/docs/de/quickstart/quickstart.md b/docs/de/quickstart/quickstart.md index de9954bd6fc..43c496a3a19 100644 --- a/docs/de/quickstart/quickstart.md +++ b/docs/de/quickstart/quickstart.md @@ -89,8 +89,8 @@ Nachdem Sie den Initialisierungsprozess abgeschlossen haben, sehen Sie einen Ord Führen Sie abschließend den folgenden Befehl aus, um die Abhängigkeiten des neuen Projekts aus dem Verzeichnis des neuen Projekts zu installieren. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: Mit wenigen Handgriffen haben Sie nun Ihr erstes SubQuery-Projekt initialisiert. Lassen Sie uns nun das Standardvorlagenprojekt für eine bestimmte Blockchain von Interesse anpassen. @@ -104,4 +104,4 @@ Es gibt 3 wichtige Dateien, die geändert werden müssen. Dies sind: 2. Das Projektmanifest in `project.yaml`. 3. Die Mapping-Funktionen im Verzeichnis `src/mappings/`. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/de/run_publish/connect.md b/docs/de/run_publish/connect.md index 1369cf327ae..1ed28c965dd 100644 --- a/docs/de/run_publish/connect.md +++ b/docs/de/run_publish/connect.md @@ -2,10 +2,10 @@ Sobald Ihre Bereitstellung erfolgreich abgeschlossen wurde und unsere Knoten Ihre Daten aus der Chain indiziert haben, können Sie über den angezeigten Abfrageendpunkt eine Verbindung zu Ihrem Projekt herstellen. -![Projekt wird bereitgestellt und synchronisiert](/assets/img/projects-deploy-sync.png) +![Projekt wird bereitgestellt und synchronisiert](/assets/img/projects_deploy_sync.png) Alternativ können Sie auf die drei Punkte neben dem Titel Ihres Projekts klicken und es im SubQuery Explorer anzeigen. Dort können Sie den Spielplatz im Browser verwenden, um loszulegen. -![Projekte im SubQuery Explorer](/assets/img/projects-explorer.png) +![Projekte im SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Hinweis Erfahren Sie mehr über die [GraphQL-Abfragesprache.](./graphql.md) ::: +::: tip Hinweis Erfahren Sie mehr über die [GraphQL-Abfragesprache.](./graphql.md) ::: diff --git a/docs/de/run_publish/query.md b/docs/de/run_publish/query.md index b028e4dd4a5..08557f14219 100644 --- a/docs/de/run_publish/query.md +++ b/docs/de/run_publish/query.md @@ -12,4 +12,4 @@ Sie werden auch feststellen, dass der SubQuery-Explorer eine Spielwiese zum Auff Oben rechts auf dem Spielplatz finden Sie eine Schaltfläche _Dokumente_, die eine Dokumentationsziehung öffnet. Diese Dokumentation wird automatisch generiert und hilft Ihnen zu finden, welche Entitäten und Methoden Sie abfragen können. -::: info Hinweis Erfahren Sie mehr über die [GraphQL-Abfragesprache.](./graphql.md) ::: +::: tip Hinweis Erfahren Sie mehr über die [GraphQL-Abfragesprache.](./graphql.md) ::: diff --git a/docs/de/run_publish/references.md b/docs/de/run_publish/references.md index cc07f31b733..dc5f74cf201 100644 --- a/docs/de/run_publish/references.md +++ b/docs/de/run_publish/references.md @@ -21,10 +21,10 @@ COMMANDS This command is uses webpack to generate a bundle of a subquery project. -| Options | Beschreibung | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | local folder of subquery project (if not in folder already) | -| -o, --output | specify output folder of build e.g. build-folder | +| Options | Beschreibung | +| ------------------ | ----------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | local folder of subquery project (if not in folder already) | +| -o, --output | specify output folder of build e.g. build-folder | | --mode=(production | prod | development | dev) | [ default: production ] | - With `subql build` you can specify additional entry points in exports field although it will always build `index.ts` automatically. @@ -106,7 +106,7 @@ This displays the current version. ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -346,7 +346,7 @@ This will move block fetching and processing into a worker. By default, this fea It is at an early experimental stage at the moment, but we plan to enable it by default. ::: -::: info Note +::: tip Note This feature is available for Substrate and Cosmos, and soon will be integrated for Avalanche. ::: diff --git a/docs/de/run_publish/run.md b/docs/de/run_publish/run.md index 851d03b9ef9..35bdb3d98de 100644 --- a/docs/de/run_publish/run.md +++ b/docs/de/run_publish/run.md @@ -4,7 +4,7 @@ This guide works through how to run a local SubQuery node on your infrastructure ## Using Docker -An alternative solution is to run a Docker Container, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. +An alternative solution is to run a **Docker Container**, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. Under the project directory run the following command: @@ -12,7 +12,7 @@ Under the project directory run the following command: docker-compose pull && docker-compose up ``` -::: info Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: +::: tip Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: ## Running an Indexer (subql/node) @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Installation - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: Once installed, you can start a node with the following command: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Point to local project path - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ Depending on the configuration of your Postgres database (e.g. a different datab #### Specify a configuration file - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ When the indexer first indexes the chain, fetching single blocks will significan #### Run in local mode - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Switching to local model will create Postgres tables in the default schema `public`. diff --git a/docs/de/run_publish/subscription.md b/docs/de/run_publish/subscription.md index 72a6d75aedb..44456f14117 100644 --- a/docs/de/run_publish/subscription.md +++ b/docs/de/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery unterstützt jetzt auch Graphql-Abonnements. Wie Abfragen ermöglichen Abonnements sind sehr nützlich, wenn Sie möchten, dass Ihre Clientanwendung Daten ändert oder einige neue Daten anzeigt, sobald diese Änderung eintritt oder die neuen Daten verfügbar sind. Mit Abonnements können Sie Ihr SubQuery-Projekt für Änderungen _abonnieren_. -::: info Hinweis Lesen Sie mehr über [Abonnements](https://www.apollographql.com/docs/react/data/subscriptions/). ::: +::: tip Hinweis Lesen Sie mehr über [Abonnements](https://www.apollographql.com/docs/react/data/subscriptions/). ::: ## So abonnieren Sie eine Entität @@ -39,7 +39,7 @@ Es gibt zwei Arten von Filtern, die wir unterstützen: - `id` : Filtern, um nur Änderungen zurückzugeben, die eine bestimmte Entität betreffen (durch die ID bezeichnet). - `mutation_type`: Nur der gleiche Mutationstyp wird aktualisiert. -Angenommen, wir haben eine Entität ` Balances `, die den Saldo jedes Kontos aufzeichnet. +Angenommen, wir haben eine Entität `Balances`, die den Saldo jedes Kontos aufzeichnet. ```graphql type Balances { diff --git a/docs/de/run_publish/upgrade.md b/docs/de/run_publish/upgrade.md index a0bbd39e2ea..b94541de1f1 100644 --- a/docs/de/run_publish/upgrade.md +++ b/docs/de/run_publish/upgrade.md @@ -71,18 +71,16 @@ jobs: ## Führen Sie ein Upgrade auf den neuesten Indexer- und Abfragedienst durch -Wenn Sie nur auf den neuesten Indexer ([`@subql/node`](https://www.npmjs.com/package/@subql/node)) oder Abfragedienst ( - -`@subql/query`) Um von unseren regelmäßigen Leistungs- und Stabilitätsverbesserungen zu profitieren, wählen Sie einfach eine neuere Version unserer Pakete aus und speichern Sie. Dies verursacht nur wenige Minuten Ausfallzeit, da die Dienste, auf denen Ihr Projekt ausgeführt wird, neu gestartet werden.

+Wenn Sie nur auf den neuesten Indexer ([`@subql/node`](https://www.npmjs.com/package/@subql/node)) oder Abfragedienst (`@subql/query`) aktualisieren möchten. Um von unseren regelmäßigen Leistungs- und Stabilitätsverbesserungen zu profitieren, wählen Sie einfach eine neuere Version unserer Pakete aus und speichern Sie. Dies verursacht nur wenige Minuten Ausfallzeit, da die Dienste, auf denen Ihr Projekt ausgeführt wird, neu gestartet werden. ## Nächste Schritte - Verbinden Sie sich mit Ihrem Projekt Sobald Ihre Bereitstellung erfolgreich abgeschlossen wurde und unsere Nodes Ihre Daten aus der Chain indiziert haben, können Sie über den angezeigten GraphQL-Abfrageendpunkt eine Verbindung zu Ihrem Projekt herstellen. -![Projekt wird bereitgestellt und synchronisiert](/assets/img/projects-deploy-sync.png) +![Projekt wird bereitgestellt und synchronisiert](/assets/img/projects_deploy_sync.png) Alternativ können Sie auf die drei Punkte neben dem Titel Ihres Projekts klicken und es im SubQuery Explorer anzeigen. Dort können Sie den Playground im Browser verwenden, um loszulegen - [lesen Sie hier mehr über die Verwendung unseres Explorers](../run_publish/query.md). -![Projekte im SubQuery Explorer](/assets/img/projects-explorer.png) +![Projekte im SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Hinweis Erfahren Sie mehr über die [GraphQL-Abfragesprache.](./graphql.md) ::: +::: tip Hinweis Erfahren Sie mehr über die [GraphQL-Abfragesprache.](./graphql.md) ::: diff --git a/docs/de/subquery_network/introduction.md b/docs/de/subquery_network/introduction.md index b9d551d9fb0..0609a232c7e 100644 --- a/docs/de/subquery_network/introduction.md +++ b/docs/de/subquery_network/introduction.md @@ -18,22 +18,22 @@ Es gibt eine Rolle für jeden im Netzwerk, von hochtechnischen Entwicklern bis h Verbraucher fragen das SubQuery-Netzwerk nach bestimmten Daten für ihre dApps oder Tools und zahlen für jede Anfrage einen beworbenen SQT-Betrag. -::: info Note Learn more about [Consumers](./consumers.md). ::: +::: tip Note Learn more about [Consumers](./consumers.md). ::: ### Indexers Indexer führen und pflegen qualitativ hochwertige SubQuery-Projekte in ihrer eigenen Infrastruktur, führen sowohl den Indexer als auch den Abfragedienst aus und werden für die von ihnen bedienten Anforderungen mit SQT belohnt. -::: info Note Learn more about [Indexers](./indexers.md). ::: +::: tip Note Learn more about [Indexers](./indexers.md). ::: ### Delegators Die Delegierenden beteiligen sich am Netzwerk, indem sie ihre bevorzugten Indexer dabei unterstützen, Belohnungen basierend auf der Arbeit dieser Indexer zu verdienen. -::: info Note Learn more about [Delegators](./delegators.md). ::: +::: tip Note Learn more about [Delegators](./delegators.md). ::: ### Architekt Architekten sind die Ersteller der SubQuery-Projekte, auf denen das Netzwerk ausgeführt wird. Sie erstellen und veröffentlichen SubQuery-Projekte, die das Netzwerk indizieren und ausführen kann. -::: info Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: +::: tip Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: diff --git a/docs/es/README.md b/docs/es/README.md index 589da661cac..156377bb309 100644 --- a/docs/es/README.md +++ b/docs/es/README.md @@ -4,7 +4,7 @@

Build Faster dApps withSubQuery Academy

-

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


+

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

@@ -12,7 +12,7 @@

Get a Kick-Start With Our Quick Start Guide

-

Build your first SubQuery project in less than 10 mins with simple guided steps. +

Build your first SubQuery project in less than 10 mins with simple guided steps.

Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

@@ -134,8 +134,7 @@
- - + diff --git a/docs/es/build/install.md b/docs/es/build/install.md index c265b416b74..1be74447bcd 100644 --- a/docs/es/build/install.md +++ b/docs/es/build/install.md @@ -8,28 +8,30 @@ La herramienta [@subql/cli](https://github.com/subquery/subql/tree/docs-new-sect Instalar SubQuery CLI globalmente en tu terminal usando Yarn o NPM: - ```bash npm install -g @subql/cli ``` - ```shell yarn global add @subql/cli ``` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` +@tab:active yarn `shell yarn global add @subql/cli ` ::: You can then run help to see available commands and usage provide by CLI: ```shell subql help ``` + ## Install @subql/node Un nodo de SubQuery es una implementación que extrae datos de blockchain basados en substrate por el proyecto SubQuery y lo guarda en una base de datos de Postgres. Instala la consulta de SubQuery globalmente en tu terminal usando Yarn o NPM: - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: Once installed, you can can start a node with: ```shell subql-node ``` + > Nota: Si estás usando Docker o alojando tu proyecto en Proyectos de SubQuery, puedes saltarte este paso. Esto se debe a que el nodo SubQuery ya se proporciona en el contenedor Docker y en la infraestructura de alojamiento. ## Install @subql/query @@ -38,7 +40,7 @@ La biblioteca de consultas de SubQuery proporciona un servicio que le permite co Instala el nodo SubQuery globalmente en tu terminal usando Yarn o NPM: - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> Nota: Si estás usando Docker o alojando tu proyecto en Proyectos de SubQuery, puedes saltarte este paso también. Esto se debe a que el nodo SubQuery ya se proporciona en el contenedor Docker y en la infraestructura de alojamiento. \ No newline at end of file +> Nota: Si estás usando Docker o alojando tu proyecto en Proyectos de SubQuery, puedes saltarte este paso también. Esto se debe a que el nodo SubQuery ya se proporciona en el contenedor Docker y en la infraestructura de alojamiento. diff --git a/docs/es/build/introduction.md b/docs/es/build/introduction.md index 25013c5f849..3973cc4320d 100644 --- a/docs/es/build/introduction.md +++ b/docs/es/build/introduction.md @@ -51,8 +51,8 @@ Para ejecutar tu proyecto SubQuery en un nodo SubQuery alojado localmente, prime Ejecuta el comando de compilación desde el directorio raíz del proyecto. - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### Alternative build options diff --git a/docs/es/build/manifest.md b/docs/es/build/manifest.md index 345f315783e..78a505e6b25 100644 --- a/docs/es/build/manifest.md +++ b/docs/es/build/manifest.md @@ -4,7 +4,7 @@ El Manifiesto `project.yaml` puede ser visto como un punto de entrada de tu proy El manifiesto puede estar en formato YAML o JSON. En este documento, utilizaremos YAML en todos los ejemplos. A continuación se muestra un ejemplo estándar de un `project.yaml` básico. - ``` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ````. [Vea aquí](#cli-options) para más información +``` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ````. [Vea aquí](#cli-options) para más información Bajo `red`: @@ -77,9 +77,9 @@ Define los datos que serán filtrados y extraídos y la ubicación del manejador ### Especificación de mapeo -| Campo | v0.0.1 | v0.2.0 | Descripción | -| --------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **archivo** | String | 𐄂 | Ruta a la entrada de mapeo | +| Campo | v0.0.1 | v0.2.0 | Descripción | +| --------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **archivo** | String | 𐄂 | Ruta a la entrada de mapeo | | **manipuladores y filtros** | [Controladores y filtros predeterminados](./manifestar/#mapeo-handlers-y-filtros) | Controladores y filtros por defecto,
[Controladores y filtros personalizados](#custom-data-sources) | Lista todas las [funciones de mapeo](./mapping/polkadot.md) y sus correspondientes tipos de manejador, con filtros de mapeo adicionales.

Para manejadores de mapeo de tiempo de ejecución personalizados, por favor vea [fuentes de datos personalizadas](#custom-data-sources) | ## Fuentes de datos y mapeo @@ -100,8 +100,8 @@ La siguiente tabla explica los filtros soportados por diferentes manejadores. **Tu proyecto de SubQuery será mucho más eficiente cuando sólo utilices controladores de eventos y llamadas con filtros de mapeo apropiados** -| Manejador | Filtro compatible | -| -------------------------------------------------- | ---------------------------- | +| Manejador | Filtro compatible | +| ----------------------------------------------------------- | ---------------------------- | | [Manejador de bloques](./mapping/polkadot.md#block-handler) | `specVersion` | | [EventHandler](./mapping/polkadot.md#event-handler) | `module`,`method` | | [CallHandler](./mapping/polkadot.md#call-handler) | `module`,`method` ,`success` | @@ -149,8 +149,8 @@ Soportamos los tipos adicionales usados por módulos de tiempo de ejecución sub En el ejemplo v0.2.0 de abajo, la red `. haintypes` están apuntando a un archivo que tiene todos los tipos personalizados incluidos, Este es un archivo estándar de chainspec que declara los tipos específicos soportados por este blockchain en cualquiera de los dos `. son`, `.yaml` o `.js formato`. - `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # la ruta relativa al lugar donde se almacenan los tipos personalizados ...` - `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # la ruta relativa al lugar donde se almacenan los tipos personalizados ...` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: To use typescript for your chain types file include it in the `src` folder (e.g. `./src/types.ts`), run `yarn build` and then point to the generated js file located in the `dist` folder. @@ -167,7 +167,7 @@ Cosas a tener en cuenta sobre el uso del archivo de tipos de cadena con extensi A continuación se muestra un ejemplo de un archivo de tipos de cadena `.ts `: - ts importar {typesBundleDeprecated} desde "moonbeam-types-bundle" exportar predeterminado {typesBundle: typesBundleDeprecated}; '' +::: code-tabs @tab types.ts ts importar {typesBundleDeprecated} desde "moonbeam-types-bundle" exportar predeterminado {typesBundle: typesBundleDeprecated}; '' ::: ## Fuentes de datos personalizadas @@ -179,29 +179,11 @@ Las fuentes de datos personalizadas se pueden utilizar con fuentes de datos norm Aquí hay una lista de fuentes de datos personalizadas compatibles: - - - - - . Entre redes, es probable que varias opciones sean diferentes (por ejemplo, el bloque de inicio del índice). Por lo tanto, permitimos a los usuarios definir diferentes detalles para cada fuente de datos, lo que significa que un proyecto de SubQuery puede ser utilizado en múltiples redes.

- -

- Los usuarios pueden añadir un filtro en fuentes de datos para decidir qué fuente de datos ejecutar en cada red. -

- -

- A continuación hay un ejemplo que muestra diferentes fuentes de datos para las redes Polkadot y Kusama. -

- -

- - `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` -

- -

- -

+Controladores admitidos +Entre redes, es probable que varias opciones sean diferentes (por ejemplo, el bloque de inicio del índice). Por lo tanto, permitimos a los usuarios definir diferentes detalles para cada fuente de datos, lo que significa que un proyecto de SubQuery puede ser utilizado en múltiples redes. + +Los usuarios pueden añadir un `filtro` en `fuentes de datos` para decidir qué fuente de datos ejecutar en cada red. + +A continuación hay un ejemplo que muestra diferentes fuentes de datos para las redes Polkadot y Kusama. + +::: code-tabs @tab v0.0.1 `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` ::: diff --git a/docs/es/build/mapping.md b/docs/es/build/mapping.md index ee045de8d0f..ac178153cd2 100644 --- a/docs/es/build/mapping.md +++ b/docs/es/build/mapping.md @@ -67,9 +67,9 @@ Nuestro objetivo es cubrir todas las fuentes de datos para los usuarios de los m Estas son las interfaces que actualmente soportamos: -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) consultará el bloque actual. -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) hará múltiples consultas del mismo tipo en el bloque actual. -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) hará múltiples consultas de diferentes tipos en el bloque actual. +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) consultará el bloque actual. +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) hará múltiples consultas del mismo tipo en el bloque actual. +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) hará múltiples consultas de **diferentes** tipos en el bloque actual. Estas son las interfaces que actualmente no soportamos **NOT**: diff --git a/docs/es/build/substrate-evm.md b/docs/es/build/substrate-evm.md index 6172ea8770f..e41abe5b3f9 100644 --- a/docs/es/build/substrate-evm.md +++ b/docs/es/build/substrate-evm.md @@ -74,7 +74,7 @@ Funciona de la misma manera que [substrate/EventHandler](../create/mapping/#even | ----- | --------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | | temas | Arreglo de secuencias | Transferencia (índice de dirección de,dirección indexada a,valor uint256) | El filtro de temas sigue los filtros de registro JSON-PRC de Ethereum, se puede encontrar más documentación [aquí](https://docs.ethers.io/v5/concepts/events/). | -Nota sobre temas: +**Nota sobre temas:** Hay un par de mejoras en los filtros básicos de registro: - Los temas no necesitan ser acolchados 0 @@ -97,17 +97,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Contract address (or recipient if transfer) to filter, if `null` should be for contract creation - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -122,7 +122,7 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## Limitantes conocidas diff --git a/docs/es/faqs/faqs.md b/docs/es/faqs/faqs.md index 9f82532871e..b182ff2d4d5 100644 --- a/docs/es/faqs/faqs.md +++ b/docs/es/faqs/faqs.md @@ -16,7 +16,7 @@ Subquery también provee alojamiento gratuito, de grado de producción de proyec **La red de SubQuery** -La red SubQuery permite a los desarrolladores descentralizar completamente su pila de infraestructura. Es el servicio de datos más abierto, eficiente, fiable y escalable para dApps. SubQuery Network indexa y da servicio a la comunidad global de una manera incentivada y verificable. Después de publicar tu proyecto en SubQuery Network, cualquiera puede indexarlo y alojarlo - proporcionando datos a los usuarios de todo el mundo de manera más rápida y fiable. +La red SubQuery permite a los desarrolladores descentralizar completamente su pila de infraestructura. Es el servicio de datos más abierto, eficiente, fiable y escalable para dApps. SubQuery Network indexa y da servicio a la comunidad global de una manera incentivada y verificable. Después de publicar tu proyecto en SubQuery Network, cualquiera puede indexarlo y alojarlo - proporcionando datos a los usuarios de todo el mundo de manera más rápida y fiable. Más información [aquí](/subquery_network/introduction.md). @@ -26,7 +26,7 @@ La mejor manera de empezar con SubQuery es probar nuestro [tutorial de Hola Mund ## ¿Cómo puedo contribuir o dar comentarios a SubQuery? -Nos encantan las contribuciones y comentarios de la comunidad. Para contribuir con el código, bifurca el repositorio de su interés y realice sus cambios. Luego envíe un PR o Pull Request. No te olvides de probar también. Also check out our contributions guidelines. +Nos encantan las contribuciones y comentarios de la comunidad. Para contribuir con el código, bifurca el repositorio de su interés y realice sus cambios. Luego envíe un PR o Pull Request. No te olvides de probar también. Also check out our [contributions guidelines](../miscellaneous/contributing.html). Para dar comentarios, contáctanos a hello@subquery.network o salta a nuestro [canal de discord](https://discord.com/invite/78zg8aBSMG). @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Tenga en cuenta que se recomienda usar `--force-clean` al cambiar el `startBlock` dentro del manifiesto del proyecto (`proyecto. aml`) para comenzar a reindexar desde el bloque configurado. Si `startBlock` se cambia sin un `--force-clean` del proyecto entonces el indexador continuará indexando con el `startBlock` previamente configurado. - ## How can I optimise my project to speed it up? Performance is a crucial factor in each project. Fortunately, there are several things you could do to improve it. Here is the list of some suggestions: @@ -89,13 +88,13 @@ Performance is a crucial factor in each project. Fortunately, there are several - Set the start block to when the contract was initialised. - Always use a [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (we can help create one for your new network). - Optimise your schema design, keep it as simple as possible. - - Try to reduce unnecessary fields and columns. - - Create indexes as needed. + - Try to reduce unnecessary fields and columns. + - Create indexes as needed. - Use parallel/batch processing as often as possible. - - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. - - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. - - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. + - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. + - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. + - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. - Making API calls to query state can be slow. You could try to minimise calls where possible and to use `extrinsic/transaction/event` data. - Use `worker threads` to move block fetching and block processing into its own worker thread. It could speed up indexing by up to 4 times (depending on the particular project). You can easily enable it using the `-workers=` flag. Note that the number of available CPU cores strictly limits the usage of worker threads. For now, it is only available for Substrate and Cosmos and will soon be integrated for Avalanche. - Note that `JSON.stringify` doesn’t support native `BigInts`. Our logging library will do this internally if you attempt to log an object. We are looking at a workaround for this. -- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. \ No newline at end of file +- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. diff --git a/docs/es/miscellaneous/contributing.md b/docs/es/miscellaneous/contributing.md index 913ae7519d1..33047085d9c 100644 --- a/docs/es/miscellaneous/contributing.md +++ b/docs/es/miscellaneous/contributing.md @@ -2,7 +2,7 @@ ¡Bienvenido y un gran agradecimiento por considerar contribuir a este proyecto de SubQuery! Juntos podemos allanar el camino hacia un futuro más descentralizado. -::: info Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: +::: tip Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: What follows is a set of guidelines (not rules) for contributing to SubQuery. Following these guidelines will help us make the contribution process easy and effective for everyone involved. It also communicates that you agree to respect the time of the developers managing and developing this project. In return, we will reciprocate that respect by addressing your issue, considering changes, collaborating on improvements, and helping you finalise your pull requests. @@ -14,8 +14,8 @@ We take our open source community projects and responsibility seriously and hold Contributions to our repositories are made through Issues and Pull Requests (PRs). A few general guidelines that cover both: -* Busca problemas y PRs existentes antes de crear los tuyos. -* Trabajamos arduamente para garantizar que las cuestiones se traten con rapidez, pero dependiendo del impacto, podría tardar un tiempo en investigar la causa raíz. Una mención amigable @ en el hilo de comentarios para el envío o un colaborador puede ayudar a llamar la atención si su problema está bloqueando. +- Busca problemas y PRs existentes antes de crear los tuyos. +- Trabajamos arduamente para garantizar que las cuestiones se traten con rapidez, pero dependiendo del impacto, podría tardar un tiempo en investigar la causa raíz. Una mención amigable @ en el hilo de comentarios para el envío o un colaborador puede ayudar a llamar la atención si su problema está bloqueando. ## ¿Cómo contribuir? @@ -23,32 +23,32 @@ Contributions to our repositories are made through Issues and Pull Requests (PRs Bugs are tracked as GitHub issues. When logging an issue, explain the problem and include additional details to help maintainers reproduce the problem: -* Utilice un título claro y descriptivo para identificar el problema. -* Describa los pasos exactos para reproducir el problema. -* Describa el comportamiento que observó después de seguir los pasos. -* Explicar qué comportamiento esperabas ver en su lugar y por qué. -* Incluye capturas de pantalla si es posible. +- Utilice un título claro y descriptivo para identificar el problema. +- Describa los pasos exactos para reproducir el problema. +- Describa el comportamiento que observó después de seguir los pasos. +- Explicar qué comportamiento esperabas ver en su lugar y por qué. +- Incluye capturas de pantalla si es posible. ### Envío de Pull Request In general, we follow the "fork-and-pull" Git workflow: -* Fork the repository to your own Github account. -* Clone the project to your machine. -* Create a branch locally with a succinct but descriptive name. -* Commit changes to the branch. -* Following any formatting and testing guidelines specific to this repo. -* Push changes to your fork. -* Open a PR in our repository. +- Fork the repository to your own Github account. +- Clone the project to your machine. +- Create a branch locally with a succinct but descriptive name. +- Commit changes to the branch. +- Following any formatting and testing guidelines specific to this repo. +- Push changes to your fork. +- Open a PR in our repository. ## Convenciones de Código ### Mensajes de Git Commit -* Use the present tense ("Add feature" not "Added feature"). -* Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). -* Limit the first line to 72 characters or less. +- Use the present tense ("Add feature" not "Added feature"). +- Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). +- Limit the first line to 72 characters or less. ### Guía de estilo de JavaScript -* All JavaScript code is linted with Prettier and ESLint. +- All JavaScript code is linted with Prettier and ESLint. diff --git a/docs/es/quickstart/helloworld-localhost.md b/docs/es/quickstart/helloworld-localhost.md index a73234062dc..0f0f4f9b928 100644 --- a/docs/es/quickstart/helloworld-localhost.md +++ b/docs/es/quickstart/helloworld-localhost.md @@ -70,7 +70,7 @@ RPC endpoint: [wss://polkadot. pi.onfinality.io/public-ws]: Repositorio Git [https://github.com/subquery/subql-starter]: Obteniendo la genesis de red hash.. done Autor [Ian He & Jay Ji]: -Descripción [Este proyecto puede ser utilizado como un inicio de...: +Descripción [Este proyecto puede ser utilizado como un inicio de...]: Versión [0.0.4]: Licencia [MIT]: proyecto de preparación... hecho @@ -88,14 +88,16 @@ cd subqlHelloWorld Ahora haga una instalación de yarn o node para instalar las distintas dependencias. - ```shell yarn build ``` ```bash npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `bash npm run-script build ` ::: An example of `yarn build` -```shell -# Yarn yarn install # NPM npm install

+````shell +# Yarn yarn install # NPM npm install +``` -
> yarn install
+```shell
+yarn install
 yarn install v1.22.10
 info No lockfile found.
 [1/4] 🔍  Resolving packages...
@@ -104,13 +106,16 @@ info No lockfile found.
 [4/4] 🔨  Building fresh packages...
 success Saved lockfile.
 ✨  Done in 31.84s.
-```
+````
 
 ## 3. Step 3: Generador de codigo
 
 Ahora ejecuta `yarn codegen` para generar Typescript desde el esquema GraphQL.
 
- # Yarn yarn codegen # NPM npm run-script codegen
+```shell
+# Yarn yarn codegen
+# NPM npm run-script codegen
+```
 
 ```shell
 > yarn codegen
@@ -122,9 +127,11 @@ $ ./node_modules/.bin/subql codegen
 * Schema StarterEntity generated !
 * Models index generated !
 * Types index generated !
-✨  Done in 1.02s

+✨ Done in 1.02s +``` -
> yarn codegen
+````shell
+yarn codegen
 yarn run v1.22.10
 $ ./node_modules/.bin/subql codegen
 ===============================
@@ -138,7 +145,8 @@ $ ./node_modules/.bin/subql codegen
 * Tipo de índice generado!
 * Tipo de índice generado!
 ✨ Hecho en 0.06s. ```
- ✨ Hecho en 1.02s. 
+ ✨ Hecho en 1.02s. +``` **Advertencia** Cuando se hacen cambios en el archivo de schema, por favor recuerde volver a ejecutar `yarn codegen` para regenerar el directorio de tipos. @@ -146,7 +154,7 @@ $ ./node_modules/.bin/subql codegen El siguiente paso es construir el código con `yarn build`. - # Yarn yarn build # NPM npm run-script build +`# Yarn yarn build # NPM npm run-script build` ```shell > yarn build @@ -199,3 +207,4 @@ El número de bloques en el patio de juego debe coincidir con el número de bloq ## Resúmen En este inicio rápido, demostramos los pasos básicos para poner en marcha un proyecto inicial dentro de un entorno Docker y luego navegamos a localhost:3000 y ejecutamos una consulta para devolver el número de bloque de la red mainnet Polkadot. +```` diff --git a/docs/es/quickstart/quickstart-avalanche.md b/docs/es/quickstart/quickstart-avalanche.md index beb72e2c0ce..65191f5e8c8 100644 --- a/docs/es/quickstart/quickstart-avalanche.md +++ b/docs/es/quickstart/quickstart-avalanche.md @@ -59,7 +59,11 @@ Después de completar el proceso de inicialización, debería ver una carpeta co Por último, bajo el directorio del proyecto, ejecute el siguiente comando para instalar las dependencias del nuevo proyecto. - shell cd PROJECT_NAME npm install ``` Hacer cambios en su proyecto En el paquete de inicio que acaba de inicializar, proporcionamos una configuración estándar para su nuevo proyecto. Usted trabajará principalmente en los siguientes archivos: +```shell +cd PROJECT_NAME npm install +``` + +Hacer cambios en su proyecto En el paquete de inicio que acaba de inicializar, proporcionamos una configuración estándar para su nuevo proyecto. Usted trabajará principalmente en los siguientes archivos: 1. El esquema GraphQL en `schema.graphql` 2. El manifiesto del proyecto en `project.yaml` @@ -87,8 +91,8 @@ type PangolinApproval @entity { **Importante: Cuando realice cambios en el archivo de esquema, asegúrese de que regenera el directorio de sus tipos. Hágalo ahora.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models`. Para más información sobre el archivo `schema.graphql` , revisa nuestra documentación en [Esquema de Build/GraphQL](../build/graphql.md) @@ -164,15 +168,15 @@ Para más información sobre las funciones de mapeo, revisa nuestra documentaci Para ejecutar tu nuevo SubQuery Project primero necesitamos construir nuestro trabajo. Ejecuta el comando de compilación desde el directorio raíz del proyecto. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: -**Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project**. La forma más sencilla de hacerlo es utilizando Docker.

+**Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project**. La forma más sencilla de hacerlo es utilizando Docker. Toda la configuración que controla cómo se ejecuta un nodo SubQuery se define en este archivo `docker-compose.yml`. Para un nuevo proyecto que ha sido inicializado no necesitarás cambiar nada aquí, pero puedes leer más sobre el archivo y la configuración en nuestra sección [Ejecutar un proyecto](../run_publish/run.md) Bajo el directorio del proyecto ejecute el siguiente comando: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Sea paciente aquí. @@ -186,7 +190,7 @@ Para un nuevo proyecto inicial de SubQuery, puedes probar la siguiente consulta ```graphql query { - pangolinApprovals(first: 5) { + pangolinApprovals(first: 5) { nodes { id blockNumber diff --git a/docs/es/quickstart/quickstart-cosmos.md b/docs/es/quickstart/quickstart-cosmos.md index 0a34a6d5ecb..95d056d2b3d 100644 --- a/docs/es/quickstart/quickstart-cosmos.md +++ b/docs/es/quickstart/quickstart-cosmos.md @@ -44,7 +44,7 @@ Después de completar el proceso de inicialización, debería ver una carpeta co Por último, bajo el directorio del proyecto, ejecute el siguiente comando para instalar las dependencias del nuevo proyecto. - shell cd PROJECT_NAME npm install ``` Hacer cambios en su proyecto En el paquete de inicio que acaba de inicializar, proporcionamos una configuración estándar para su nuevo proyecto. Usted trabajará principalmente en los siguientes archivos: +`cd PROJECT_NAME npm install` Hacer cambios en su proyecto En el paquete de inicio que acaba de inicializar, proporcionamos una configuración estándar para su nuevo proyecto. Usted trabajará principalmente en los siguientes archivos: 1. El esquema GraphQL en `schema.graphql` 2. El manifiesto del proyecto en `project.yaml` @@ -71,10 +71,10 @@ type Vote @entity { **Importante: Cuando realice cambios en el archivo de esquema, asegúrese de que regenera el directorio de sus tipos. Hágalo ahora.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: -You'll find the generated models in the `/src/types/models` Para más información sobre el archivo `schema.graphql` , revisa nuestra documentación en [Esquema de Build/GraphQL](../build/graphql.md) +You'll find the generated models in the `/src/types/models` Para más información sobre el archivo `schema.graphql` , revisa nuestra documentación en [Esquema de Build/GraphQL](../build/graphql.md) ### Actualizando el archivo de manifiesto del proyecto @@ -141,15 +141,15 @@ Para más información sobre las funciones de mapeo, revisa nuestra documentaci Para ejecutar tu nuevo SubQuery Project primero necesitamos construir nuestro trabajo. Ejecuta el comando de compilación desde el directorio raíz del proyecto. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: -**Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** La forma más fácil de hacer esto es usando Docker.

+**Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** La forma más fácil de hacer esto es usando Docker. Toda la configuración que controla cómo se ejecuta un nodo de SubQuery está definida en este archivo `docker-compose.yml`. Para un nuevo proyecto que ha sido inicializado no necesitarás cambiar nada aquí, pero puedes leer más sobre el archivo y la configuración en nuestra sección [Ejecutar un proyecto](../run_publish/run.md) Bajo el directorio del proyecto ejecute el siguiente comando: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Sea paciente aquí. @@ -163,10 +163,9 @@ Para un nuevo proyecto inicial de SubQuery, puedes probar la siguiente consulta ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id diff --git a/docs/es/quickstart/quickstart-polkadot.md b/docs/es/quickstart/quickstart-polkadot.md index 089b17c8cc5..0048478f49d 100644 --- a/docs/es/quickstart/quickstart-polkadot.md +++ b/docs/es/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql init Se le harán ciertas preguntas ya que el proyecto de SubQuery está initalizado: - Nombre del proyecto: Un nombre de proyecto para su proyecto de SubQuery -- Familia de redes: La familia de redes de blockchain de capa 1 para la que se desarrollará este proyecto de SubQuery. Utilice las teclas de flecha para seleccionar las opciones disponibles. Para esta guía, utilizaremos *"Substrate"* -- Red: La red específica para la que se desarrollará este proyecto de SubQuery. Utilice las teclas de flecha para seleccionar las opciones disponibles. Para esta guía, utilizaremos *"Polkadot"* -- Proyecto de plantilla: Seleccione un proyecto de plantilla de SubQuery que le proporcionará un punto de partida para comenzar el desarrollo. Sugerimos seleccionar el proyecto *"subql-starter"*. -- Punto final RPC: Proporcione una URL HTTPS a un punto final RPC en ejecución que se utilizará por defecto para este proyecto. Puede acceder rápidamente a los puntos finales públicos para diferentes redes de Polkadot, crear tu propio nodo privado dedicado utilizando [OnFinality](https://app.onfinality.io) o simplemente utilizar el punto final predeterminado de Polkadot. Este nodo RPC debe ser un nodo de archivo (tienen el estado completo de cadena). Para esta guía, utilizaremos el valor por defecto *"https://polkadot.api.onfinality.io"* +- Familia de redes: La familia de redes de blockchain de capa 1 para la que se desarrollará este proyecto de SubQuery. Utilice las teclas de flecha para seleccionar las opciones disponibles. Para esta guía, utilizaremos _"Substrate"_ +- Red: La red específica para la que se desarrollará este proyecto de SubQuery. Utilice las teclas de flecha para seleccionar las opciones disponibles. Para esta guía, utilizaremos _"Polkadot"_ +- Proyecto de plantilla: Seleccione un proyecto de plantilla de SubQuery que le proporcionará un punto de partida para comenzar el desarrollo. Sugerimos seleccionar el proyecto _"subql-starter"_. +- Punto final RPC: Proporcione una URL HTTPS a un punto final RPC en ejecución que se utilizará por defecto para este proyecto. Puede acceder rápidamente a los puntos finales públicos para diferentes redes de Polkadot, crear tu propio nodo privado dedicado utilizando [OnFinality](https://app.onfinality.io) o simplemente utilizar el punto final predeterminado de Polkadot. Este nodo RPC debe ser un nodo de archivo (tienen el estado completo de cadena). Para esta guía, utilizaremos el valor por defecto _"https://polkadot.api.onfinality.io"_ - Git repository: Proporcione una URL Git a un repositorio en el que se alojará este proyecto SubQuery (cuando se aloje en el Explorador de SubQuery) o acepte el predeterminado proporcionado. - Autores: Introduzca aquí el propietario de este proyecto de SubQuery (por ejemplo, su nombre) o acepte el valor predeterminado proporcionado. - Descripción: Proporcione un breve párrafo sobre su proyecto que describa los datos que contiene y lo que los usuarios pueden hacer con ellos o acepte el valor predeterminado proporcionado. @@ -57,7 +57,7 @@ Una vez completado el proceso de inicialización, deberías ver que se ha creado Por último, en el directorio del proyecto, ejecute el siguiente comando para instalar las dependencias del nuevo proyecto. - shell cd PROJECT_NAME npm install ``` Hacer cambios en su proyecto En el paquete de inicio que acaba de inicializar, proporcionamos una configuración estándar para su nuevo proyecto. Estos son: +`cd PROJECT_NAME npm install` Hacer cambios en su proyecto En el paquete de inicio que acaba de inicializar, proporcionamos una configuración estándar para su nuevo proyecto. Estos son: 1. El esquema GraphQL en `schema.graphql` 2. El manifiesto del proyecto en `project.yaml` @@ -83,8 +83,8 @@ type Transfer @entity { **Importante: Cuando realice cambios en el archivo de esquema, asegúrese de que regenera el directorio de sus tipos.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. Para más información sobre el archivo `schema.graphql` , revisa nuestra documentación en [Esquema de Build/GraphQL](../build/graphql.md) @@ -149,15 +149,15 @@ Para más información sobre las funciones de mapeo, revisa nuestra documentaci Para ejecutar su nuevo Proyecto SubQuery, primero tenemos que construir nuestro trabajo. Ejecuta el comando de compilación desde el directorio raíz del proyecto. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: -**Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project**. La forma más fácil de hacer esto es usando Docker.

+**Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project**. La forma más fácil de hacer esto es usando Docker. Toda la configuración que controla cómo se ejecuta un nodo SubQuery se define en el archivo `docker-compose.yml`. Para un nuevo proyecto que acaba de ser inicializado no necesitará cambiar nada, pero puede leer más sobre el archivo y los ajustes en nuestra sección [Ejecutar un proyecto](../run_publish/run.md). En el directorio del proyecto, ejecute el siguiente comando: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. @@ -172,10 +172,7 @@ Para un nuevo proyecto de inicio de SubQuery, pruebe la siguiente consulta para ```graphql { consulta { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodos { id cantidad diff --git a/docs/es/quickstart/quickstart-terra.md b/docs/es/quickstart/quickstart-terra.md index 0ff6b5ac098..8cf07cc402b 100644 --- a/docs/es/quickstart/quickstart-terra.md +++ b/docs/es/quickstart/quickstart-terra.md @@ -45,11 +45,11 @@ subql init Se le harán ciertas preguntas ya que el proyecto de SubQuery está initalizado: - Nombre del proyecto: Un nombre para tu proyecto de Subconsulta -- Familia de Red: La familia de red de blockchain capa 1 que este proyecto de SubQuery será desarrollado para indexar, usa las teclas de flecha de tu teclado para seleccionar entre las opciones, para esta guía usaremos *"Terra"* -- Red: La red específica que este proyecto de Subconsulta será desarrollado para indexar, usa las teclas de flecha de tu teclado para seleccionar entre las opciones, para esta guía usaremos *"Terra"* -- Plantilla: Seleccione una plantilla de proyecto de SubQuery que proporcionará un punto de partida para comenzar el desarrollo, le sugerimos seleccionar el *"Inicio del proyecto"* +- Familia de Red: La familia de red de blockchain capa 1 que este proyecto de SubQuery será desarrollado para indexar, usa las teclas de flecha de tu teclado para seleccionar entre las opciones, para esta guía usaremos _"Terra"_ +- Red: La red específica que este proyecto de Subconsulta será desarrollado para indexar, usa las teclas de flecha de tu teclado para seleccionar entre las opciones, para esta guía usaremos _"Terra"_ +- Plantilla: Seleccione una plantilla de proyecto de SubQuery que proporcionará un punto de partida para comenzar el desarrollo, le sugerimos seleccionar el _"Inicio del proyecto"_ - Repositorio Git (opcional): Proporcione una URL Git a un repositorio en el que este proyecto de SubQuery será alojado (cuando esté alojado en SubQuery Explorer) -- endpoint RPC (requerido): Proporcione una URL HTTPS a un endpoint RPC en ejecución que se utilizará por defecto para este proyecto. Este nodo RPC debe ser un nodo de archivo (tienen el estado completo de cadena). Para esta guía usaremos el valor predeterminado *"https://terra-columbus-5.beta.api.onfinality.io"* +- endpoint RPC (requerido): Proporcione una URL HTTPS a un endpoint RPC en ejecución que se utilizará por defecto para este proyecto. Este nodo RPC debe ser un nodo de archivo (tienen el estado completo de cadena). Para esta guía usaremos el valor predeterminado _"https://terra-columbus-5.beta.api.onfinality.io"_ - Autores (Requeridos): Introduzca el propietario de este proyecto de Subconsulta aquí (por ejemplo, su nombre) - Descripción (Opcional): Puede proporcionar un párrafo corto sobre su proyecto que describa qué datos contiene y qué pueden hacer los usuarios con él - Versión (Requerida): Introduzca un número de versión personalizado o utilice el predeterminado (`1.0.0`) @@ -59,7 +59,7 @@ Después de completar el proceso de inicialización, debería ver una carpeta co Por último, bajo el directorio del proyecto, ejecute el siguiente comando para instalar las dependencias del nuevo proyecto. - shell cd PROJECT_NAME npm install ``` Hacer cambios en su proyecto En el paquete de inicio que acaba de inicializar, proporcionamos una configuración estándar para su nuevo proyecto. Usted trabajará principalmente en los siguientes archivos: +`cd PROJECT_NAME npm install` Hacer cambios en su proyecto En el paquete de inicio que acaba de inicializar, proporcionamos una configuración estándar para su nuevo proyecto. Estos son: 1. El esquema GraphQL en `schema.graphql` 2. El manifiesto del proyecto en `project.yaml` @@ -86,10 +86,10 @@ type Transfer @entity { **Importante: Cuando realice cambios en el archivo de esquema, asegúrese de que regenera el directorio de sus tipos. Hágalo ahora.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: -You'll find the generated models in the `/src/types/models` Para más información sobre el archivo `schema.graphql` , revisa nuestra documentación en [Esquema de Build/GraphQL](../build/graphql.md) +You'll find the generated models in the `/src/types/models` Para más información sobre el archivo `schema.graphql` , revisa nuestra documentación en [Esquema de Build/GraphQL](../build/graphql.md) ### Actualizando el archivo de manifiesto del proyecto @@ -159,15 +159,15 @@ Para más información sobre las funciones de mapeo, revisa nuestra documentaci Para ejecutar tu nuevo SubQuery Project primero necesitamos construir nuestro trabajo. Ejecuta el comando de compilación desde el directorio raíz del proyecto. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: -**Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** La forma más fácil de hacer esto es usando Docker.

+**Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** La forma más fácil de hacer esto es usando Docker. Toda la configuración que controla cómo se ejecuta un nodo de SubQuery está definida en este archivo `docker-compose.yml`. Para un nuevo proyecto que ha sido inicializado no necesitarás cambiar nada aquí, pero puedes leer más sobre el archivo y la configuración en nuestra sección [Ejecutar un proyecto](../run_publish/run.md) Bajo el directorio del proyecto ejecute el siguiente comando: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Sea paciente aquí. @@ -182,10 +182,7 @@ Para un nuevo proyecto inicial de SubQuery, puedes probar la siguiente consulta ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash diff --git a/docs/es/quickstart/quickstart.md b/docs/es/quickstart/quickstart.md index 87d0d832d7a..107a94b460e 100644 --- a/docs/es/quickstart/quickstart.md +++ b/docs/es/quickstart/quickstart.md @@ -89,8 +89,8 @@ Después de completar el proceso de inicialización, verá una carpeta con el no Finalmente, ejecute el siguiente comando para instalar las dependencias del nuevo proyecto desde el directorio del nuevo proyecto. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: You have now initialised your first SubQuery project with just a few simple steps. Personalicemos ahora el proyecto de plantilla estándar para un blockchain específico de interés. @@ -104,4 +104,4 @@ Hay 3 archivos importantes que necesitan ser modificados. These are: 2. The Project Manifest in `project.yaml`. 3. The Mapping functions in `src/mappings/` directory. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/es/run_publish/connect.md b/docs/es/run_publish/connect.md index 9fa0abeab57..64aec0ae1db 100644 --- a/docs/es/run_publish/connect.md +++ b/docs/es/run_publish/connect.md @@ -2,10 +2,10 @@ Once your deployment has succesfully completed and our nodes have indexed your data from the chain, you'll be able to connect to your project via the displayed Query endpoint. -![Proyecto en despliegue y sincronización](/assets/img/projects-deploy-sync.png) +![Proyecto en despliegue y sincronización](/assets/img/projects_deploy_sync.png) Alternativamente, puedes hacer clic en los tres puntos al lado del título de tu proyecto, y verlo en SubQuery Explorer. There you can use the in browser playground to get started. -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/es/run_publish/query.md b/docs/es/run_publish/query.md index 88d42cae25a..11c65360cc4 100644 --- a/docs/es/run_publish/query.md +++ b/docs/es/run_publish/query.md @@ -12,4 +12,4 @@ También notará que el SubQuery Explorer proporciona un área de juego para des On the top right of the playground, you'll find a _Docs_ button that will open a documentation draw. Esta documentación se genera automáticamente y le ayuda a encontrar qué entidades y métodos puede consultar. -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/es/run_publish/references.md b/docs/es/run_publish/references.md index caf40cea3b4..b7e6ff2dfe4 100644 --- a/docs/es/run_publish/references.md +++ b/docs/es/run_publish/references.md @@ -21,10 +21,10 @@ COMMANDS This command is uses webpack to generate a bundle of a subquery project. -| Options | Descripción | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | local folder of subquery project (if not in folder already) | -| -o, --output | specify output folder of build e.g. build-folder | +| Options | Descripción | +| ------------------ | ----------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | local folder of subquery project (if not in folder already) | +| -o, --output | specify output folder of build e.g. build-folder | | --mode=(production | prod | development | dev) | [ default: production ] | - With `subql build` you can specify additional entry points in exports field although it will always build `index.ts` automatically. @@ -106,7 +106,7 @@ This displays the current version. ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -346,7 +346,7 @@ This will move block fetching and processing into a worker. By default, this fea It is at an early experimental stage at the moment, but we plan to enable it by default. ::: -::: info Note +::: tip Note This feature is available for Substrate and Cosmos, and soon will be integrated for Avalanche. ::: diff --git a/docs/es/run_publish/run.md b/docs/es/run_publish/run.md index bbbd9b160bc..db1a7889079 100644 --- a/docs/es/run_publish/run.md +++ b/docs/es/run_publish/run.md @@ -4,7 +4,7 @@ This guide works through how to run a local SubQuery node on your infrastructure ## Using Docker -An alternative solution is to run a Docker Container, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. +An alternative solution is to run a **Docker Container**, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. Under the project directory run the following command: @@ -12,7 +12,7 @@ Under the project directory run the following command: docker-compose pull && docker-compose up ``` -::: info Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: +::: tip Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: ## Running an Indexer (subql/node) @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Installation - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: Once installed, you can start a node with the following command: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Point to local project path - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ Depending on the configuration of your Postgres database (e.g. a different datab #### Specify a configuration file - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ When the indexer first indexes the chain, fetching single blocks will significan #### Run in local mode - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Switching to local model will create Postgres tables in the default schema `public`. diff --git a/docs/es/run_publish/subscription.md b/docs/es/run_publish/subscription.md index 9c4eb48da19..e8edcf2f0ea 100644 --- a/docs/es/run_publish/subscription.md +++ b/docs/es/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery ahora también soporta Suscripciones Graphql. Al igual que las consulta Las suscripciones son muy útiles cuando desea que su aplicación cliente cambie datos o muestre algunos nuevos datos tan pronto como se produzca ese cambio o los nuevos datos estén disponibles. Subscriptions allow you to _subscribe_ to your SubQuery project for changes. -::: info Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: +::: tip Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: ## Cómo suscribirse a una entidad diff --git a/docs/es/run_publish/upgrade.md b/docs/es/run_publish/upgrade.md index 09ba29cc68d..a12393e0ce3 100644 --- a/docs/es/run_publish/upgrade.md +++ b/docs/es/run_publish/upgrade.md @@ -77,10 +77,10 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n Una vez que el despliegue se ha completado correctamente y nuestros nodos han indexado sus datos de la cadena, podrás conectarte a tu proyecto a través del punto final de la Consulta mostrada en GraphQL. -![Proyecto en despliegue y sincronización](/assets/img/projects-deploy-sync.png) +![Proyecto en despliegue y sincronización](/assets/img/projects_deploy_sync.png) Alternativamente, puedes hacer clic en los tres puntos al lado del título de tu proyecto, y verlo en SubQuery Explorer. There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/es/subquery_network/introduction.md b/docs/es/subquery_network/introduction.md index e6b0f6586bc..75618fbc75b 100644 --- a/docs/es/subquery_network/introduction.md +++ b/docs/es/subquery_network/introduction.md @@ -18,22 +18,22 @@ Hay un papel para todos en la red, desde desarrolladores altamente técnicos has Los consumidores solicitarán a SubQuery Network datos específicos para sus dApps o herramientas, y pagarán una cantidad anunciada de SQT por cada solicitud. -::: info Note Learn more about [Consumers](./consumers.md). ::: +::: tip Note Learn more about [Consumers](./consumers.md). ::: ### Indexadores Los indexadores ejecutarán y mantendrán proyectos de SubQuery de alta calidad en su propia infraestructura, ejecutando tanto el indexador como el servicio de consultas, y será recompensado en SQT por las peticiones que sirven. -::: info Note Learn more about [Indexers](./indexers.md). ::: +::: tip Note Learn more about [Indexers](./indexers.md). ::: ### Delegadores Los dedores participarán en la Red apoyando a sus indexadores favoritos para ganar recompensas en función del trabajo que hagan esos indexadores. -::: info Note Learn more about [Delegators](./delegators.md). ::: +::: tip Note Learn more about [Delegators](./delegators.md). ::: ### Arquitectos Los arquitectos son los constructores de los proyectos SubQuery en los que se ejecuta la red. Autorizan y publican proyectos de SubQuery para la Red para indexar y ejecutar. -::: info Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: +::: tip Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: diff --git a/docs/faqs/faqs.md b/docs/faqs/faqs.md index 7c4848a2a0f..9a35a11769f 100644 --- a/docs/faqs/faqs.md +++ b/docs/faqs/faqs.md @@ -2,9 +2,9 @@ ## What is SubQuery? -SubQuery is an open source blockchain data indexer for developers that provides fast, flexible, reliable, and decentralised APIs to power leading multi-chain apps. +SubQuery is an open source blockchain data indexer for developers that provides fast, flexible, reliable, and decentralised APIs to power leading multi-chain apps. -Our goal is to save developers' time and money by eliminating the need of building their own indexing solution. Now, they can fully focus on developing their applications. SubQuery helps developers create the decentralised products of the future. +Our goal is to save developers' time and money by eliminating the need of building their own indexing solution. Now, they can fully focus on developing their applications. SubQuery helps developers create the decentralised products of the future.
@@ -16,29 +16,29 @@ SubQuery also provides free, production grade hosting of projects for developers **The SubQuery Network** -The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. +The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. -More information [here](/subquery_network/introduction.md). +More information [here](/subquery_network/introduction.md). ## What is the best way to get started with SubQuery? -The best way to get started with SubQuery is to try out our [Hello World tutorial](/assets/pdf/Hello_World_Lab.pdf). This is a simple 5 min walk through exercise. Download the starter template, build the project, use Docker to run a node on your localhost, and run a simple query. +The best way to get started with SubQuery is to try out our [Hello World tutorial](/assets/pdf/Hello_World_Lab.pdf). This is a simple 5 min walk through exercise. Download the starter template, build the project, use Docker to run a node on your localhost, and run a simple query. ## How can I contribute or give feedback to SubQuery? -We love contributions and feedback from the community. To contribute the code, fork the repository of your interest and make your changes. Then submit a PR or Pull Request. Don't forget to test as well. Also check out our contributions guidelines. +We love contributions and feedback from the community. To contribute the code, fork the repository of your interest and make your changes. Then submit a PR or Pull Request. Don't forget to test as well. Also check out our [contributions guidelines](../miscellaneous/contributing.html). To give feedback, contact us at hello@subquery.network or jump onto our [discord channel](https://discord.com/invite/78zg8aBSMG). -## How much does it cost to host my project in SubQuery Projects? +## How much does it cost to host my project in SubQuery Projects? This service is being provided to the community with a generous free tier! You can host your first two SubQuery projects for absolutely free! -## What are deployment slots? +## What are deployment slots? -Deployment slots are a feature in [SubQuery Projects](https://project.subquery.network) that is the equivalent of a development environment. For example, in any software organisation there is normally a development environment and a production environment as a minimum (ignoring localhost that is). Typically additional environments such as staging and pre-prod or even QA are included depending on the needs of the organisation and their development set up. +Deployment slots are a feature in [SubQuery Projects](https://project.subquery.network) that is the equivalent of a development environment. For example, in any software organisation there is normally a development environment and a production environment as a minimum (ignoring localhost that is). Typically additional environments such as staging and pre-prod or even QA are included depending on the needs of the organisation and their development set up. -SubQuery currently has two slots available. A staging slot and a production slot. This allows developers to deploy their SubQuery to the staging environment and all going well, "promote to production" at the click of a button. +SubQuery currently has two slots available. A staging slot and a production slot. This allows developers to deploy their SubQuery to the staging environment and all going well, "promote to production" at the click of a button. ## What is the advantage of a staging slot? @@ -50,7 +50,7 @@ The staging slot is not shown to the public in the [Explorer](https://explorer.s If you are already familiar with blockchain concepts, you can think of extrinsics as comparable to transactions. More formally though, an extrinsic is a piece of information that comes from outside the chain and is included in a block. There are three categories of extrinsics. They are inherents, signed transactions, and unsigned transactions. -Inherent extrinsics are pieces of information that are not signed and only inserted into a block by the block author. +Inherent extrinsics are pieces of information that are not signed and only inserted into a block by the block author. Signed transaction extrinsics are transactions that contain a signature of the account that issued the transaction. They stands to pay a fee to have the transaction included on chain. @@ -68,7 +68,7 @@ The network.endpoint for the Polkadot network is `wss://polkadot.api.onfinality. ## How do I iteratively develop my project schema? -A known issue with developing a changing project schema is that when lauching your Subquery node for testing, the previously indexed blocks will be incompatible with your new schema. In order to iteratively develop schemas the indexed blocks stored in the database must be cleared, this can be achieved by launching your node with the `--force-clean` flag. For example: +A known issue with developing a changing project schema is that when lauching your Subquery node for testing, the previously indexed blocks will be incompatible with your new schema. In order to iteratively develop schemas the indexed blocks stored in the database must be cleared, this can be achieved by launching your node with the `--force-clean` flag. For example: ```shell subql-node -f . --force-clean --subquery-name= @@ -76,8 +76,7 @@ subql-node -f . --force-clean --subquery-name= Note that it is recommended to use `--force-clean` when changing the `startBlock` within the project manifest (`project.yaml`) in order to begin reindexing from the configured block. If `startBlock` is changed without a `--force-clean` of the project, then the indexer will continue indexing with the previously configured `startBlock`. - ## How can I optimise my project to speed it up? -Performance is a crucial factor in each project. Fortunately, there are several things you could do to improve it. -You can find our recommendations in the [Project Optimisation](../build/optimisation.md). \ No newline at end of file +Performance is a crucial factor in each project. Fortunately, there are several things you could do to improve it. +You can find our recommendations in the [Project Optimisation](../build/optimisation.md). diff --git a/docs/fr/README.md b/docs/fr/README.md index c75183622f8..1c0b7233830 100644 --- a/docs/fr/README.md +++ b/docs/fr/README.md @@ -4,7 +4,7 @@

Build Faster dApps withSubQuery Academy

-

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


+

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

@@ -12,7 +12,7 @@

Get a Kick-Start With Our Quick Start Guide

-

Build your first SubQuery project in less than 10 mins with simple guided steps. +

Build your first SubQuery project in less than 10 mins with simple guided steps.

Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

@@ -134,8 +134,7 @@
- - + diff --git a/docs/fr/build/install.md b/docs/fr/build/install.md index 16b12135005..e61b257bf68 100644 --- a/docs/fr/build/install.md +++ b/docs/fr/build/install.md @@ -8,26 +8,28 @@ L'outil [@subql/cli](https://github.com/subquery/subql/tree/docs-new-section/pac Installez SubQuery CLI globalement sur votre terminal en utilisant Yarn ou NPM : - `bash npm install -g @subql/cli ` `shell yarn global add @subql/cli ` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` @tab:active yarn `shell yarn global add @subql/cli ` ::: Vous pouvez ensuite lancer l'aide pour voir les commandes disponibles et l'utilisation fournie par CLI : ```shell subql help ``` + ## Installer @subql/node Un nœud SubQuery est une implémentation qui extrait les données de la blockchain basée sur le substrat par le projet SubQuery et les enregistre dans une base de données Postgres. Installez le nœud SubQuery globalement sur votre terminal en utilisant Yarn ou NPM : - `bash npm install -g @subql/node ` `shell yarn global add @subql/node ` +::: code-tabs @tab npm `bash npm install -g @subql/node ` @tab:active yarn `shell yarn global add @subql/node ` ::: Une fois installé, vous pouvez démarrer un nœud avec : ```shell subql-node ``` + > Note : Si vous utilisez Docker ou si vous hébergez votre projet dans SubQuery Projects, vous pouvez sauter cette étape. En effet, le nœud SubQuery est déjà fourni dans le conteneur Docker et l'infrastructure d'hébergement. ## Installer @subql/query @@ -36,7 +38,7 @@ La bibliothèque de requêtes SubQuery fournit un service qui vous permet d'inte Installez SubQuery query globalement sur votre terminal en utilisant Yarn ou NPM : - `bash npm install -g @subql/query ` - `shell yarn global add @subql/query ` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> Note : Si vous utilisez Docker ou si vous hébergez votre projet dans SubQuery Projects, vous pouvez également sauter cette étape. En effet, le nœud SubQuery est déjà fourni dans le conteneur Docker et l'infrastructure d'hébergement. \ No newline at end of file +> Note : Si vous utilisez Docker ou si vous hébergez votre projet dans SubQuery Projects, vous pouvez également sauter cette étape. En effet, le nœud SubQuery est déjà fourni dans le conteneur Docker et l'infrastructure d'hébergement. diff --git a/docs/fr/build/introduction.md b/docs/fr/build/introduction.md index 19f700e7223..4bb9411074f 100644 --- a/docs/fr/build/introduction.md +++ b/docs/fr/build/introduction.md @@ -51,7 +51,7 @@ Afin d'exécuter votre projet SubQuery sur un noeud SubQuery hébergé localemen Exécutez la commande build depuis le répertoire racine du projet. - `shell yarn build ` `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `bash npm run-script build ` ::: ### Autres options de compilation diff --git a/docs/fr/build/manifest.md b/docs/fr/build/manifest.md index cee8adcb230..becfb2c9f8b 100644 --- a/docs/fr/build/manifest.md +++ b/docs/fr/build/manifest.md @@ -4,7 +4,7 @@ Le fichier Manifeste `project.yaml` peut être vu comme un point d'entrée de vo Le manifeste peut être au format YAML ou JSON. Dans ce document, nous utiliserons YAML dans tous les exemples. Ci-dessous est un exemple type d'un `project.yaml` de base. - ` yml specVersion: 0.2.0 name: example-project # Fournir le nom du projet version: 1.0.0 # Version du projet description: '' # Description de votre projet repository: 'https://github.com/subquery/subql-starter' # Adresse du dépôt Git de votre projet schema: file: ./schema.graphql # L'emplacement de votre fichier de schéma GraphQL network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Il est possible de fournir le point de terminaison HTTP d'un dictionnaire de chaîne complet pour accélérer le traitement. dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # Cela modifie le bloc de départ de l'indexation, définissez-le plus haut pour sauter les blocs initiaux avec moins de données. mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ` yml specVersion: "0.0.1" description: '' # Description de votre projet repository: 'https://github.com/subquery/subql-starter' # Adresse du dépôt Git de votre projet schema: ./schema.graphql # L'emplacement de votre fichier de schéma GraphQL network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Il est possible de fournir le point de terminaison HTTP d'un dictionnaire de chaîne complet pour accélérer le traitement. dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # Cela modifie le bloc de départ de l'indexation, définissez-le plus haut pour sauter les blocs initiaux avec moins de données. mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Le filtre est facultatif mais suggéré pour accélérer le traitement des événements. module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project # Fournir le nom du projet version: 1.0.0 # Version du projet description: '' # Description de votre projet repository: 'https://github.com/subquery/subql-starter' # Adresse du dépôt Git de votre projet schema: file: ./schema.graphql # L'emplacement de votre fichier de schéma GraphQL network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Il est possible de fournir le point de terminaison HTTP d'un dictionnaire de chaîne complet pour accélérer le traitement. dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # Cela modifie le bloc de départ de l'indexation, définissez-le plus haut pour sauter les blocs initiaux avec moins de données. mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` @tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Description de votre projet repository: 'https://github.com/subquery/subql-starter' # Adresse du dépôt Git de votre projet schema: ./schema.graphql # L'emplacement de votre fichier de schéma GraphQL network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Il est possible de fournir le point de terminaison HTTP d'un dictionnaire de chaîne complet pour accélérer le traitement. dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # Cela modifie le bloc de départ de l'indexation, définissez-le plus haut pour sauter les blocs initiaux avec moins de données. mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Le filtre est facultatif mais suggéré pour accélérer le traitement des événements. module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## Migration de v0.0.1 à v0.2.0 @@ -30,12 +30,12 @@ USAGE $ subql init [PROJECTNAME] ARGUMENTS PROJECTNAME Donne le nom du projet de démarrage. -| Options | Description | -| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| -f, --force | | -| -l, --location=location | dossier local pour créer le projet | -| --install-dependencies | Installer également les dépendances | -| --npm | Force l'utilisation de NPM au lieu de yarn, ne fonctionne qu'avec l'option `install-dependencies` | +| Options | Description | +| ----------------------- | ------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | +| -f, --force | | +| -l, --location=location | dossier local pour créer le projet | +| --install-dependencies | Installer également les dépendances | +| --npm | Force l'utilisation de NPM au lieu de yarn, ne fonctionne qu'avec l'option `install-dependencies` | | --specVersion=0.0.1 | 0.2.0 [default: 0.2.0] | La version de la spécification à utiliser par le projet. | ## Aperçu  @@ -71,19 +71,19 @@ ARGUMENTS PROJECTNAME Donne le nom du projet de démarrage. ### Datasource Spec Définit les données qui seront filtrées et extraites et l'emplacement du gestionnaire de la fonction de mappage pour la transformation des données à appliquer. -| Champ | v0.0.1 | v0.2.0 | Description | +| Champ | v0.0.1 | v0.2.0 | Description | | -------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **name** | String | 𐄂 | Nom de la source de données | -| **kind** | [substrate/Runtime](./manifest/#data-sources-and-mapping) | substrate/Runtime, [substrate/CustomDataSource](./manifest/#custom-data-sources) | Nous prenons en charge les types de données provenant du runtime de substrat par défaut, tels que les blocs, les événements et les extrinsèques (appels).
À partir de la version 0.2.0, nous prenons en charge les données provenant de runtime personnalisés, tels que les contrats intelligents. | -| **startBlock** | Entier | Entier | Ceci change le bloc de départ de l'indexation, mettez-le plus haut pour sauter les blocs initiaux avec moins de données. | -| **mapping** | Mapping Spec | Mapping Spec | | -| **filter** | [network-filters](./manifest/#network-filters) | 𐄂 | Filtrer la source de données à exécuter par le nom du spec du point de terminaison réseau. | +| **name** | String | 𐄂 | Nom de la source de données | +| **kind** | [substrate/Runtime](./manifest/#data-sources-and-mapping) | substrate/Runtime, [substrate/CustomDataSource](./manifest/#custom-data-sources) | Nous prenons en charge les types de données provenant du runtime de substrat par défaut, tels que les blocs, les événements et les extrinsèques (appels).
À partir de la version 0.2.0, nous prenons en charge les données provenant de runtime personnalisés, tels que les contrats intelligents. | +| **startBlock** | Entier | Entier | Ceci change le bloc de départ de l'indexation, mettez-le plus haut pour sauter les blocs initiaux avec moins de données. | +| **mapping** | Mapping Spec | Mapping Spec | | +| **filter** | [network-filters](./manifest/#network-filters) | 𐄂 | Filtrer la source de données à exécuter par le nom du spec du point de terminaison réseau. | ### Mapping Spec -| Champ | v0.0.1 | v0.2.0 | Description | -| ---------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **file** | String | 𐄂 | Chemin d'accès à l'entrée de mapping | +| Champ | v0.0.1 | v0.2.0 | Description | +| ---------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **file** | String | 𐄂 | Chemin d'accès à l'entrée de mapping | | **handlers & filters** | [Default handlers and filters](./manifest/#mapping-handlers-and-filters) | Default handlers and filters,
[Custom handlers and filters](#custom-data-sources) | Liste toutes les [fonctions de mappage](./mapping/polkadot.md) et leurs types de gestion correspondants, avec des filtres de mappage supplémentaires.

Pour les gestionnaires de mapping des runtimes personnalisés veuillez consulter [les sources de données personnalisées](#custom-data-sources) | ## Sources de données et mapping @@ -104,8 +104,8 @@ Le tableau suivant explique les filtres supportés par les différents gestionna **Votre projet SubQuery sera beaucoup plus efficace si vous utilisez uniquement des gestionnaires d'événements et d'appels avec des filtres de mapping appropriés.** -| Gestionnaire | Filtres pris en charge  | -| ------------------------------------------ | ---------------------------- | +| Gestionnaire | Filtres pris en charge  | +| --------------------------------------------------- | ---------------------------- | | [BlockHandler](./mapping/polkadot.md#block-handler) | `specVersion` | | [EventHandler](./mapping/polkadot.md#event-handler) | `module`,`method` | | [CallHandler](./mapping/polkadot.md#call-handler) | `module`,`method` ,`success` | @@ -153,8 +153,8 @@ Nous supportons les types supplémentaires utilisés par les modules d'exécutio Dans l'exemple v0.2.0 ci-dessous, `network.chaintypes` pointe vers un fichier qui contient tous les types personnalisés. Il s'agit d'un fichier chainspec standard qui déclare les types spécifiques pris en charge par cette blockchain au format `.json`, `.yaml` ou `.js`. - `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` `yml ... ``` - ``` yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` @tab v0.0.1 ` yml ... ``` +@tab v0.0.1 ``` yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true ` ::: Pour utiliser Typescript pour votre fichier de types de chaînes, incluez-le dans le dossier `src` (par exemple `./src/types.ts`), exécutez `yarn build` et pointez ensuite sur le fichier js généré situé dans le dossier `dist`. @@ -171,7 +171,7 @@ Points à noter concernant l'utilisation du fichier de types de chaîne avec l'e Voici un exemple d'un fichier de types de chaînes `.ts`: - `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` ::: ## Sources de données personnalisées @@ -197,6 +197,6 @@ Les utilisateurs peuvent ajouter un `filtre` sur les `dataSources` pour décider Voici un exemple qui montre différentes sources de données pour les réseaux Polkadot et Kusama. - `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` +::: code-tabs @tab v0.0.1 `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` - +::: diff --git a/docs/fr/build/mapping.md b/docs/fr/build/mapping.md index 2f11ae9876c..e4b1668e31f 100644 --- a/docs/fr/build/mapping.md +++ b/docs/fr/build/mapping.md @@ -62,14 +62,17 @@ export async function handleCall(extrinsic: SubstrateExtrinsic): Promise { Le [SubstrateExtrinsic](https://github.com/OnFinality-io/subql/blob/a5ab06526dcffe5912206973583669c7f5b9fdc9/packages/types/src/interfaces.ts#L21) étend [GenericExtrinsic](https://github.com/polkadot-js/api/blob/a9c9fb5769dec7ada8612d6068cf69de04aa15ed/packages/types/src/extrinsic/Extrinsic.ts#L170). On lui attribue un `id` (le bloc auquel cet extrinsèque appartient) et il fournit une propriété extrinsèque qui étend les événements parmi ce bloc. En outre, elle enregistre l'état de réussite de cette extrinsèque. ## États des requêtes + Notre objectif est de couvrir toutes les sources de données des utilisateurs pour les gestionnaires de mappage (plus que les trois types d'événements d'interface ci-dessus). Par conséquent, nous avons exposé certaines des interfaces @polkadot/api pour augmenter les capacités. Ce sont les interfaces que nous supportons actuellement : -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) interrogera le bloc actuel. -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) fera plusieurs requêtes du même type au bloc actuel. -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) effectuera plusieurs requêtes de différents types dans le bloc actuel. + +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) interrogera le bloc **actuel**. +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) fera plusieurs requêtes du **même** type au bloc actuel. +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) effectuera plusieurs requêtes de **différents** types dans le bloc actuel. Voici les interfaces que nous ne supportons **pas** actuellement : + - ~~api.tx.\*~~ - ~~api.derive.\*~~ - ~~api.query.<module>.<method>.at~~ @@ -98,6 +101,7 @@ const blockhash = `0x844047c4cf1719ba6d54891e92c071a41e3dfe789d064871148e9d41ef0 // Il utilisera le bloc actuel par défaut comme ceci const b2 = await api.rpc.chain.getBlock(); ``` + - Pour les appels RPC des [chaînes de substrat personnalisées](#custom-substrate-chains), voir l'[utilisation](#usage). ## Modules et bibliothèques @@ -150,6 +154,7 @@ Nous avons besoin de métadonnées pour générer les points de terminaison de l ```shell curl -H "Content-Type: application/json" -d '{"id":"1", "jsonrpc":"2.0", "method": "state_getMetadata", "params":[]}' http://localhost:9933 ``` + ou de son point de terminaison **websocket** avec l'aide de [`websocat`](https://github.com/vi/websocat): ```shell @@ -163,9 +168,11 @@ echo state_getMetadata | websocat 'ws://127.0.0.1:9944' --jsonrpc Ensuite, copiez et collez la sortie dans un fichier JSON. Dans notre [exemple de kitty](https://github.com/subquery/tutorials-kitty-chain), nous avons créé `api-interface/kitty.json`. #### Définitions des types + Nous supposons que l'utilisateur connaît les types spécifiques et le support RPC de la chaîne, et que cela est défini dans le [Manifest](./manifest.md). Après la [configuration des types](https://polkadot.js.org/docs/api/examples/promise/typegen#metadata-setup), nous créons : + - `src/api-interfaces/definitions.ts` - ceci exporte toutes les définitions des sous-dossiers. ```ts @@ -173,6 +180,7 @@ export { default as kitties } from "./kitties/definitions"; ``` - `src/api-interfaces/kitties/definitions.ts` - définitions des types pour le module kitties. + ```ts export default { // types personnalisés @@ -267,6 +275,7 @@ Cette commande va générer les métadonnées et un nouvel api-augment pour les ### Utilisation Maintenant, dans la fonction de mappage, nous pouvons montrer comment les métadonnées et les types décorent réellement l'API. Le point de terminaison RPC supportera les modules et les méthodes que nous avons déclarés ci-dessus. Et pour utiliser un appel RPC personnalisé, veuillez consulter la section [Appels RPC personnalisés de la chaîne](#custom-chain-rpc-calls). + ```typescript export async function kittyApiHandler(): Promise { // retourne le type de KittyIndex @@ -286,6 +295,7 @@ export async function kittyApiHandler(): Promise { ### Appels rpc de chaîne personnalisés Pour prendre en charge les appels RPC en chaîne personnalisés, nous devons injecter manuellement des définitions RPC pour `typesBundle`, ce qui permet une configuration par spécification. Vous pouvez définir le `typesBundle` dans le `project.yml`. Et n'oubliez pas que seuls les appels de type `isHistoric` sont supportés. + ```yaml ... types: { diff --git a/docs/fr/build/substrate-evm.md b/docs/fr/build/substrate-evm.md index adcff6a5dd6..3da62a281d7 100644 --- a/docs/fr/build/substrate-evm.md +++ b/docs/fr/build/substrate-evm.md @@ -44,10 +44,10 @@ Fonctionne de la même manière que [substrate/CallHandler](../create/mapping/#c ### Filtres d'appel -| Champ | Type | Exemple(s) | Description | -| -------- | ------ | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| function | String | 0x095ea7b3, approve(address to,uint256 value) | Soit [Signature de fonction](https://docs.ethers.io/v5/api/utils/abi/fragments/#FunctionFragment) chaînes ou la fonction `sighash` pour filtrer la fonction appelée sur le contrat | -| from | String | 0x6bd193ee6d2104f14f94e2ca6efefae561a4334b | Une adresse Ethereum qui a envoyé la transaction | +| Champ | Type | Exemple(s) | Description | +| -------- | ------ | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| function | String | 0x095ea7b3, approve(address to,uint256 value) | Soit [Signature de fonction](https://docs.ethers.io/v5/api/utils/abi/fragments/#FunctionFragment) chaînes ou la fonction `sighash` pour filtrer la fonction appelée sur le contrat | +| from | String | 0x6bd193ee6d2104f14f94e2ca6efefae561a4334b | Une adresse Ethereum qui a envoyé la transaction | ### Gestionnaires @@ -74,7 +74,7 @@ Fonctionne de la même manière que [substrate/CallHandler](../create/mapping/#e | ------ | ------------ | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | topics | String array | Transfer(address indexed from,address indexed to,uint256 value) | Le filtre des sujets suit les filtres de log Ethereum JSON-PRC , vous trouverez plus de documentation [ici](https://docs.ethers.io/v5/concepts/events/). | -Note sur les sujets : +**Note sur les sujets:** Il y a quelques améliorations à partir des filtres de log de base : - Les sujets n'ont pas besoin d'être remplis de 0 @@ -97,16 +97,16 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Doit être une clé d'actifs abi: erc20 # Adresse du contrat (ou du destinataire en cas de transfert) à filtrer, si `null`, ce sera pour la création du contrat. address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -120,7 +120,7 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## Limitations connues diff --git a/docs/fr/faqs/faqs.md b/docs/fr/faqs/faqs.md index 7eaf38ba9b9..ff586a574bd 100644 --- a/docs/fr/faqs/faqs.md +++ b/docs/fr/faqs/faqs.md @@ -16,7 +16,7 @@ SubQuery also provides free, production grade hosting of projects for developers **The SubQuery Network** -The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. +The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. More information [here](/subquery_network/introduction.md). @@ -26,7 +26,7 @@ The best way to get started with SubQuery is to try out our [Hello World tutoria ## Comment puis-je contribuer ou faire un retour à SubQuery? -Nous aimons les contributions et les commentaires de la communauté. To contribute the code, fork the repository of your interest and make your changes. Ensuite soumettez une PR ou une Pull Request. Don't forget to test as well. Also check out our contributions guidelines. +Nous aimons les contributions et les commentaires de la communauté. To contribute the code, fork the repository of your interest and make your changes. Ensuite soumettez une PR ou une Pull Request. Don't forget to test as well. Also check out our [contributions guidelines](../miscellaneous/contributing.html). To give feedback, contact us at hello@subquery.network or jump onto our [discord channel](https://discord.com/invite/78zg8aBSMG). @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Note that it is recommended to use `--force-clean` when changing the `startBlock` within the project manifest (`project.yaml`) in order to begin reindexing from the configured block. If `startBlock` is changed without a `--force-clean` of the project, then the indexer will continue indexing with the previously configured `startBlock`. - ## How can I optimise my project to speed it up? Performance is a crucial factor in each project. Fortunately, there are several things you could do to improve it. Here is the list of some suggestions: @@ -89,13 +88,13 @@ Performance is a crucial factor in each project. Fortunately, there are several - Set the start block to when the contract was initialised. - Always use a [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (we can help create one for your new network). - Optimise your schema design, keep it as simple as possible. - - Try to reduce unnecessary fields and columns. - - Create indexes as needed. + - Try to reduce unnecessary fields and columns. + - Create indexes as needed. - Use parallel/batch processing as often as possible. - - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. - - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. - - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. + - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. + - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. + - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. - Making API calls to query state can be slow. You could try to minimise calls where possible and to use `extrinsic/transaction/event` data. - Use `worker threads` to move block fetching and block processing into its own worker thread. It could speed up indexing by up to 4 times (depending on the particular project). You can easily enable it using the `-workers=` flag. Note that the number of available CPU cores strictly limits the usage of worker threads. For now, it is only available for Substrate and Cosmos and will soon be integrated for Avalanche. - Note that `JSON.stringify` doesn’t support native `BigInts`. Our logging library will do this internally if you attempt to log an object. We are looking at a workaround for this. -- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. \ No newline at end of file +- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. diff --git a/docs/fr/miscellaneous/contributing.md b/docs/fr/miscellaneous/contributing.md index 33b835c7b29..7efd4724d1c 100644 --- a/docs/fr/miscellaneous/contributing.md +++ b/docs/fr/miscellaneous/contributing.md @@ -2,7 +2,7 @@ Bienvenue et un grand merci d'avoir envisagé de contribuer à ce projet SubQuery ! Ensemble, nous pouvons ouvrir la voie à un avenir plus décentralisé. -::: info Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: +::: tip Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: What follows is a set of guidelines (not rules) for contributing to SubQuery. Following these guidelines will help us make the contribution process easy and effective for everyone involved. It also communicates that you agree to respect the time of the developers managing and developing this project. In return, we will reciprocate that respect by addressing your issue, considering changes, collaborating on improvements, and helping you finalise your pull requests. @@ -14,8 +14,8 @@ We take our open source community projects and responsibility seriously and hold Contributions to our repositories are made through Issues and Pull Requests (PRs). A few general guidelines that cover both: -* Recherchez les numéros d'Issues et de PRs existants avant de créer les vôtres. -* Nous nous efforçons de faire en sorte que les problèmes soient traités rapidement mais, en fonction de l'impact, l'enquête sur la cause profonde peut prendre un certain temps. Une mention amicale @ dans le fil de commentaires à l'auteur de la proposition ou à un contributeur peut aider à attirer l'attention si votre problème est bloquant. +- Recherchez les numéros d'Issues et de PRs existants avant de créer les vôtres. +- Nous nous efforçons de faire en sorte que les problèmes soient traités rapidement mais, en fonction de l'impact, l'enquête sur la cause profonde peut prendre un certain temps. Une mention amicale @ dans le fil de commentaires à l'auteur de la proposition ou à un contributeur peut aider à attirer l'attention si votre problème est bloquant. ## Comment contribuer @@ -23,32 +23,32 @@ Contributions to our repositories are made through Issues and Pull Requests (PRs Bugs are tracked as GitHub issues. When logging an issue, explain the problem and include additional details to help maintainers reproduce the problem: -* Utilisez un titre clair et descriptif de la question pour identifier le problème. -* Décrivez les étapes exactes pour reproduire le problème. -* Décrivez le comportement que vous avez observé après avoir suivi les étapes. -* Expliquez quel comportement vous vous attendiez à voir à la place et pourquoi. -* Incluez des captures d'écran si possible. +- Utilisez un titre clair et descriptif de la question pour identifier le problème. +- Décrivez les étapes exactes pour reproduire le problème. +- Décrivez le comportement que vous avez observé après avoir suivi les étapes. +- Expliquez quel comportement vous vous attendiez à voir à la place et pourquoi. +- Incluez des captures d'écran si possible. ### Soumettre des Pull Requests In general, we follow the "fork-and-pull" Git workflow: -* Fork the repository to your own Github account. -* Clone the project to your machine. -* Create a branch locally with a succinct but descriptive name. -* Commit changes to the branch. -* Following any formatting and testing guidelines specific to this repo. -* Push changes to your fork. -* Open a PR in our repository. +- Fork the repository to your own Github account. +- Clone the project to your machine. +- Create a branch locally with a succinct but descriptive name. +- Commit changes to the branch. +- Following any formatting and testing guidelines specific to this repo. +- Push changes to your fork. +- Open a PR in our repository. ## Conventions de codage ### Messages de commit Git -* Use the present tense ("Add feature" not "Added feature"). -* Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). -* Limit the first line to 72 characters or less. +- Use the present tense ("Add feature" not "Added feature"). +- Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). +- Limit the first line to 72 characters or less. ### Guide de style JavaScript -* All JavaScript code is linted with Prettier and ESLint. +- All JavaScript code is linted with Prettier and ESLint. diff --git a/docs/fr/quickstart/helloworld-localhost.md b/docs/fr/quickstart/helloworld-localhost.md index 06a1f45161b..87063a57d9d 100644 --- a/docs/fr/quickstart/helloworld-localhost.md +++ b/docs/fr/quickstart/helloworld-localhost.md @@ -88,8 +88,8 @@ cd subqlHelloWorld Maintenant, faites un yarn ou un node install pour installer les différentes dépendances. - ```shell yarn install ``` - ```bash npm install ``` +::: code-tabs @tab:active yarn `shell yarn install ` +@tab npm `bash npm install ` ::: Un exemple de `yarn install` @@ -109,8 +109,8 @@ success Saved lockfile. Exécutez maintenant `yarn codegen` pour générer du Typescript à partir du schéma GraphQL. - ```shell yarn codegen ``` - ```bash npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `bash npm run-script codegen ` ::: Un exemple de `yarn codegen` @@ -133,8 +133,8 @@ $ ./node_modules/.bin/subql codegen L'étape suivante consiste à construire le code avec `yarn build`. - ```shell yarn build ``` - ```bash npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: Un exemple de `yarn build` diff --git a/docs/fr/quickstart/quickstart-avalanche.md b/docs/fr/quickstart/quickstart-avalanche.md index e9870da36ca..0e577122c2c 100644 --- a/docs/fr/quickstart/quickstart-avalanche.md +++ b/docs/fr/quickstart/quickstart-avalanche.md @@ -59,8 +59,8 @@ Une fois le processus d'initialisation terminé, vous devriez voir qu'un dossier Enfin, dans le répertoire du projet, exécutez la commande suivante pour installer les dépendances du nouveau projet. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Apporter des modifications à votre projet @@ -92,8 +92,8 @@ type PangolinApproval @entity { **Important : Lorsque vous apportez des modifications au fichier de schéma, veillez à régénérer votre répertoire de types. Faites-le maintenant.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Vous trouverez les modèles générés dans le répertoire `/src/types/models`. Pour plus d'informations sur le fichier `schema.graphql`, consultez notre documentation sous [Build/GraphQL Schema](../build/graphql.md) @@ -169,7 +169,7 @@ Pour plus d'informations sur les fonctions de mappage, consultez notre documenta Afin d'exécuter votre nouveau projet SubQuery, nous devons d'abord construire notre travail. Exécutez la commande de construction à partir du répertoire racine du projet. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important : chaque fois que vous apportez des modifications à vos fonctions de mapping, vous devrez reconstruire votre projet**. @@ -183,7 +183,7 @@ Toute la configuration qui contrôle la façon dont un nœud SubQuery est exécu Dans le répertoire du projet, exécutez la commande suivante : - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Il peut falloir un certain temps pour télécharger les paquets requis ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), et Postgres) pour la première fois mais bientôt vous verrez un nœud SubQuery en fonctionnement. Soyez patient ici. diff --git a/docs/fr/quickstart/quickstart-cosmos.md b/docs/fr/quickstart/quickstart-cosmos.md index 4dd41df687f..0c52d91204c 100644 --- a/docs/fr/quickstart/quickstart-cosmos.md +++ b/docs/fr/quickstart/quickstart-cosmos.md @@ -44,8 +44,8 @@ Une fois le processus d'initialisation terminé, vous devriez voir qu'un dossier Enfin, dans le répertoire du projet, exécutez la commande suivante pour installer les dépendances du nouveau projet. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Apporter des modifications à votre projet @@ -75,8 +75,8 @@ type Vote @entity { **Important : Lorsque vous apportez des modifications au fichier de schéma, veillez à régénérer votre répertoire de types. Faites-le maintenant.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Vous trouverez les modèles générés dans le répertoire `/src/types/models`. Pour plus d'informations sur le fichier `schema.graphql`, consultez notre documentation sous [Build/GraphQL Schema](../build/graphql.md) @@ -145,7 +145,7 @@ Pour plus d'informations sur les fonctions de mappage, consultez notre documenta Afin d'exécuter votre nouveau projet SubQuery, nous devons d'abord construire notre travail. Exécutez la commande de construction à partir du répertoire racine du projet. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important : chaque fois que vous apportez des modifications à vos fonctions de cartographie, vous devez reconstruire votre projet** @@ -159,7 +159,7 @@ Toute la configuration qui contrôle la façon dont un nœud SubQuery est exécu Dans le répertoire du projet, exécutez la commande suivante : - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Le téléchargement des paquets nécessaires peut prendre un certain temps. ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), et Postgres) pour la première fois, mais bientôt vous verrez un nœud SubQuery en cours d'exécution. Soyez patient ici. @@ -173,10 +173,9 @@ Pour un nouveau projet de démarrage SubQuery, vous pouvez essayer la requête s ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id diff --git a/docs/fr/quickstart/quickstart-polkadot.md b/docs/fr/quickstart/quickstart-polkadot.md index 096ff1d1685..fee097d6efb 100644 --- a/docs/fr/quickstart/quickstart-polkadot.md +++ b/docs/fr/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql init Certaines questions vous seront posées au fur et à mesure de l'initalisation du projet SubQuery : - Project name: un nom de projet pour votre projet SubQuery -- Network family: La famille de réseaux blockchain de niveau 1 que ce projet SubQuery sera développé pour indexer. Utilisez les touches fléchées pour choisir parmi les options disponibles. Pour ce guide, nous utiliserons *"Substrat"* -- Network: Le réseau spécifique que ce projet SubQuery sera développé pour indexer. Utilisez les touches fléchées pour choisir parmi les options disponibles. Pour ce guide, nous utiliserons *"Polkadot"* -- Template project: Sélectionnez un projet de modèle de SubQuery qui fournira un point de départ pour commencer le développement. Nous vous suggérons de sélectionner le projet *"subql-starter"*. -- RPC endpoint: Fournissez une URL HTTPS vers un point de terminaison RPC en cours d'exécution qui sera utilisé par défaut pour ce projet. Vous pouvez accéder rapidement aux points d'extrémité publics de différents réseaux Polkadot, créer votre propre nœud privé dédié en utilisant [OnFinality](https://app.onfinality.io) ou simplement utiliser le point d'extrémité Polkadot par défaut. Ce nœud RPC doit être un nœud d'archive (avoir l'état complet de la chaîne). Pour ce guide, nous utiliserons la valeur par défaut *"https://polkadot.api.onfinality.io"* +- Network family: La famille de réseaux blockchain de niveau 1 que ce projet SubQuery sera développé pour indexer. Utilisez les touches fléchées pour choisir parmi les options disponibles. Pour ce guide, nous utiliserons _"Substrat"_ +- Network: Le réseau spécifique que ce projet SubQuery sera développé pour indexer. Utilisez les touches fléchées pour choisir parmi les options disponibles. Pour ce guide, nous utiliserons _"Polkadot"_ +- Template project: Sélectionnez un projet de modèle de SubQuery qui fournira un point de départ pour commencer le développement. Nous vous suggérons de sélectionner le projet _"subql-starter"_. +- RPC endpoint: Fournissez une URL HTTPS vers un point de terminaison RPC en cours d'exécution qui sera utilisé par défaut pour ce projet. Vous pouvez accéder rapidement aux points d'extrémité publics de différents réseaux Polkadot, créer votre propre nœud privé dédié en utilisant [OnFinality](https://app.onfinality.io) ou simplement utiliser le point d'extrémité Polkadot par défaut. Ce nœud RPC doit être un nœud d'archive (avoir l'état complet de la chaîne). Pour ce guide, nous utiliserons la valeur par défaut _"https://polkadot.api.onfinality.io"_ - Git repository: Fournissez une URL Git d'un repo dans lequel ce projet SubQuery sera hébergé (lorsqu'il est hébergé dans SubQuery Explorer) ou acceptez la valeur par défaut fournie. - Authors: Auteurs : Saisissez ici le propriétaire de ce projet SubQuery (par exemple, votre nom !) ou acceptez la valeur par défaut fournie. - Description: Fournissez un court paragraphe sur votre projet décrivant les données qu'il contient et ce que les utilisateurs peuvent en faire ou acceptez la proposition par défaut. @@ -57,8 +57,8 @@ Une fois le processus d'initialisation terminé, vous devriez voir qu'un dossier Enfin, dans le répertoire du projet, exécutez la commande suivante pour installer les dépendances du nouveau projet. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Modifications de votre projet @@ -88,8 +88,8 @@ type Transfer @entity { **Important : Lorsque vous apportez des modifications au fichier de schéma, veillez à régénérer votre répertoire de types.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Vous trouverez les modèles générés dans le répertoire `/src/types/models`. Pour plus d'informations sur le fichier `schema.graphql`, consultez notre documentation sous [Build/GraphQL Schema](../build/graphql.md) @@ -133,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { - // Obtenir les données de l'événement - // L'événement balance.transfer a la charge utile suivante .[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Créer la nouvelle entité de transfert - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Obtenir les données de l'événement + // L'événement balance.transfer a la charge utile suivante .[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Créer la nouvelle entité de transfert + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -160,7 +160,7 @@ Pour plus d'informations sur les fonctions de mappage, consultez notre documenta Afin d'exécuter votre nouveau projet SubQuery, nous devons d'abord construire notre travail. Exécutez la commande de construction à partir du répertoire racine du projet. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important : chaque fois que vous apportez des modifications à vos fonctions de mapping, vous devrez reconstruire votre projet**. @@ -174,7 +174,7 @@ Toute la configuration qui contrôle la façon dont un nœud SubQuery est exécu Sous le répertoire du projet, exécutez la commande suivante : - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Il peut falloir un certain temps pour télécharger les paquets requis ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), et Postgres) pour la première fois, mais bientôt vous devriez voir un nœud SubQuery en fonctionnement dans l'écran du terminal. @@ -189,10 +189,7 @@ Pour un nouveau projet de démarrage de SubQuery, essayez la requête suivante p ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount diff --git a/docs/fr/quickstart/quickstart-terra.md b/docs/fr/quickstart/quickstart-terra.md index 60cc18b382c..7b37aad3084 100644 --- a/docs/fr/quickstart/quickstart-terra.md +++ b/docs/fr/quickstart/quickstart-terra.md @@ -45,11 +45,11 @@ subql init Certaines questions vous seront posées au fur et à mesure de l'initalisation du projet SubQuery : - Project Name: A name for your SubQuery project -- Famille de réseau : La famille de réseau blockchain de couche 1 que ce projet SubQuery sera développé pour indexer, utilisez les touches fléchées de votre clavier pour sélectionner parmi les options, pour ce guide nous utiliserons *"Terra"* -- Réseau : Le réseau spécifique que ce projet SubQuery sera développé pour indexer, utilisez les touches fléchées de votre clavier pour sélectionner parmi les options, pour ce guide nous utiliserons *"Terra"* -- Template: Sélectionnez un modèle de projet SubQuery qui fournira un point de départ pour commencer le développement, nous suggérons de sélectionner le *"Projet de démarrage"* +- Famille de réseau : La famille de réseau blockchain de couche 1 que ce projet SubQuery sera développé pour indexer, utilisez les touches fléchées de votre clavier pour sélectionner parmi les options, pour ce guide nous utiliserons _"Terra"_ +- Réseau : Le réseau spécifique que ce projet SubQuery sera développé pour indexer, utilisez les touches fléchées de votre clavier pour sélectionner parmi les options, pour ce guide nous utiliserons _"Terra"_ +- Template: Sélectionnez un modèle de projet SubQuery qui fournira un point de départ pour commencer le développement, nous suggérons de sélectionner le _"Projet de démarrage"_ - Git repository (Facultatif): Fournir l'URL Git d'un repo dans lequel le projet SubQuery sera hébergé (lorsqu'il est hébergé dans SubQuery Explorer) -- RPC endpoint (Obligatoire): Fournissez une URL HTTPS vers un point de terminaison RPC en cours d'exécution qui sera utilisé par défaut pour ce projet. Ce nœud RPC doit être un nœud d'archive (avoir l'état complet de la chaîne). Pour ce guide, nous utiliserons la valeur par défaut *"https://polkadot.api.onfinality.io"* +- RPC endpoint (Obligatoire): Fournissez une URL HTTPS vers un point de terminaison RPC en cours d'exécution qui sera utilisé par défaut pour ce projet. Ce nœud RPC doit être un nœud d'archive (avoir l'état complet de la chaîne). Pour ce guide, nous utiliserons la valeur par défaut _"https://polkadot.api.onfinality.io"_ - Authors (Obligatoire): Entrez ici le propriétaire de ce projet de SubQuery (par exemple, votre nom !) - Description (Facultatif) : Vous pouvez fournir un court paragraphe sur votre projet qui décrit les données qu'il contient et ce que les utilisateurs peuvent faire avec - Version (Obligatoire) : Saisissez un numéro de version personnalisé ou utilisez la valeur par défaut (`1.0.0`) @@ -59,8 +59,8 @@ Une fois le processus d'initialisation terminé, vous devriez voir qu'un dossier Enfin, dans le répertoire du projet, exécutez la commande suivante pour installer les dépendances du nouveau projet. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Apporter des modifications à votre projet @@ -90,8 +90,8 @@ type Transfer @entity { **Important : Lorsque vous apportez des modifications au fichier de schéma, veillez à régénérer votre répertoire de types. Faites-le maintenant.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Vous trouverez les modèles générés dans le répertoire `/src/types/models`. Pour plus d'informations sur le fichier `schema.graphql`, consultez notre documentation sous [Build/GraphQL Schema](../build/graphql.md) @@ -142,30 +142,30 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Imprimer les données de débogage de l'événement - // logger.info(JSON.stringify(event)); - - // Créer la nouvelle entité de transfert avec un ID unique - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Imprimer les données de débogage de l'événement + // logger.info(JSON.stringify(event)); + + // Créer la nouvelle entité de transfert avec un ID unique + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` @@ -177,7 +177,7 @@ Pour plus d'informations sur les fonctions de mappage, consultez notre documenta Afin d'exécuter votre nouveau projet SubQuery, nous devons d'abord construire notre travail. Exécutez la commande de construction à partir du répertoire racine du projet. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important : chaque fois que vous apportez des modifications à vos fonctions de cartographie, vous devez reconstruire votre projet** @@ -191,7 +191,7 @@ Toute la configuration qui contrôle la façon dont un nœud SubQuery est exécu Dans le répertoire du projet, exécutez la commande suivante : - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Le téléchargement des paquets nécessaires peut prendre un certain temps. ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), et Postgres) pour la première fois, mais bientôt vous verrez un nœud SubQuery en cours d'exécution. Soyez patient ici. @@ -206,10 +206,7 @@ Pour un nouveau projet de démarrage SubQuery, vous pouvez essayer la requête s ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash diff --git a/docs/fr/quickstart/quickstart.md b/docs/fr/quickstart/quickstart.md index 3f0fffe6778..9b3053c241d 100644 --- a/docs/fr/quickstart/quickstart.md +++ b/docs/fr/quickstart/quickstart.md @@ -89,8 +89,8 @@ After you complete the initialisation process, you will see a folder with your p Finally, run the following command to install the new project’s dependencies from within the new project's directory. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: You have now initialised your first SubQuery project with just a few simple steps. Let’s now customise the standard template project for a specific blockchain of interest. @@ -104,4 +104,4 @@ There are 3 important files that need to be modified. These are: 2. The Project Manifest in `project.yaml`. 3. The Mapping functions in `src/mappings/` directory. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/fr/run_publish/connect.md b/docs/fr/run_publish/connect.md index 69878defb1b..8ce6f0e74bf 100644 --- a/docs/fr/run_publish/connect.md +++ b/docs/fr/run_publish/connect.md @@ -2,10 +2,10 @@ Once your deployment has succesfully completed and our nodes have indexed your data from the chain, you'll be able to connect to your project via the displayed Query endpoint. -![Projet en cours de déploiement et de synchronisation](/assets/img/projects-deploy-sync.png) +![Projet en cours de déploiement et de synchronisation](/assets/img/projects_deploy_sync.png) Vous pouvez également cliquer sur les trois points situés à côté du titre de votre projet, et le visualiser dans l'explorateur de SubQuery. There you can use the in browser playground to get started. -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/fr/run_publish/query.md b/docs/fr/run_publish/query.md index f7ab4d55254..30e9c8dedb3 100644 --- a/docs/fr/run_publish/query.md +++ b/docs/fr/run_publish/query.md @@ -12,4 +12,4 @@ Vous remarquerez également que l'explorateur SubQuery fournit un terrain de jeu On the top right of the playground, you'll find a _Docs_ button that will open a documentation draw. Cette documentation est générée automatiquement et vous aide à trouver les entités et les méthodes que vous pouvez interroger. -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/fr/run_publish/references.md b/docs/fr/run_publish/references.md index 16a87c75335..83bdcb08208 100644 --- a/docs/fr/run_publish/references.md +++ b/docs/fr/run_publish/references.md @@ -21,10 +21,10 @@ COMMANDS This command is uses webpack to generate a bundle of a subquery project. -| Options | Description | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | local folder of subquery project (if not in folder already) | -| -o, --output | specify output folder of build e.g. build-folder | +| Options | Description | +| ------------------ | ----------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | local folder of subquery project (if not in folder already) | +| -o, --output | specify output folder of build e.g. build-folder | | --mode=(production | prod | development | dev) | [ default: production ] | - With `subql build` you can specify additional entry points in exports field although it will always build `index.ts` automatically. @@ -106,7 +106,7 @@ This displays the current version. ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -346,7 +346,7 @@ This will move block fetching and processing into a worker. By default, this fea It is at an early experimental stage at the moment, but we plan to enable it by default. ::: -::: info Note +::: tip Note This feature is available for Substrate and Cosmos, and soon will be integrated for Avalanche. ::: diff --git a/docs/fr/run_publish/run.md b/docs/fr/run_publish/run.md index b98c2543378..562e49b153f 100644 --- a/docs/fr/run_publish/run.md +++ b/docs/fr/run_publish/run.md @@ -4,7 +4,7 @@ This guide works through how to run a local SubQuery node on your infrastructure ## Using Docker -An alternative solution is to run a Docker Container, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. +An alternative solution is to run a **Docker Container**, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. Under the project directory run the following command: @@ -12,7 +12,7 @@ Under the project directory run the following command: docker-compose pull && docker-compose up ``` -::: info Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: +::: tip Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: ## Running an Indexer (subql/node) @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Installation - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: Once installed, you can start a node with the following command: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Point to local project path - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ Depending on the configuration of your Postgres database (e.g. a different datab #### Specify a configuration file - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ When the indexer first indexes the chain, fetching single blocks will significan #### Run in local mode - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Switching to local model will create Postgres tables in the default schema `public`. diff --git a/docs/fr/run_publish/subscription.md b/docs/fr/run_publish/subscription.md index 2ab13088215..60c7c44ec2d 100644 --- a/docs/fr/run_publish/subscription.md +++ b/docs/fr/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery prend désormais en charge les abonnements Graphql. Comme les requêtes Les abonnements sont très utiles lorsque vous souhaitez que votre application client modifie des données ou affiche de nouvelles données dès que ce changement se produit ou que les nouvelles données sont disponibles. Subscriptions allow you to _subscribe_ to your SubQuery project for changes. -::: info Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: +::: tip Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: ## Comment souscrire à une entité diff --git a/docs/fr/run_publish/upgrade.md b/docs/fr/run_publish/upgrade.md index beaa2e9149f..030755d0461 100644 --- a/docs/fr/run_publish/upgrade.md +++ b/docs/fr/run_publish/upgrade.md @@ -77,10 +77,10 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n Une fois que votre déploiement a été effectué avec succès et que nos nœuds ont indexé vos données depuis chaîne, vous pourrez vous connecter à votre projet via le point de terminaison GraphQL Query affiché. -![Projet en cours de déploiement et de synchronisation](/assets/img/projects-deploy-sync.png) +![Projet en cours de déploiement et de synchronisation](/assets/img/projects_deploy_sync.png) Vous pouvez également cliquer sur les trois points situés à côté du titre de votre projet, et le visualiser dans l'explorateur de SubQuery. There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/fr/subquery_network/introduction.md b/docs/fr/subquery_network/introduction.md index 295d4a0e0d8..6394db677b8 100644 --- a/docs/fr/subquery_network/introduction.md +++ b/docs/fr/subquery_network/introduction.md @@ -18,22 +18,22 @@ There’s a role for everyone in the network, from highly technical developers t Consumers will ask the SubQuery Network for specific data for their dApps or tools, and pay an advertised amount of SQT for each request. -::: info Note Learn more about [Consumers](./consumers.md). ::: +::: tip Note Learn more about [Consumers](./consumers.md). ::: ### Indexers Indexers will run and maintain high quality SubQuery projects in their own infrastructure, running both the indexer and query service, and will be rewarded in SQT for the requests that they serve. -::: info Note Learn more about [Indexers](./indexers.md). ::: +::: tip Note Learn more about [Indexers](./indexers.md). ::: ### Delegators Delegators will participate in the Network by supporting their favourite Indexers to earn rewards based on the work those indexers do. -::: info Note Learn more about [Delegators](./delegators.md). ::: +::: tip Note Learn more about [Delegators](./delegators.md). ::: ### Architects Architects are the builders of the SubQuery projects that the Network runs on. They author and publish SubQuery projects for the Network to index and run. -::: info Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: +::: tip Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: diff --git a/docs/id/README.md b/docs/id/README.md index 412a9774754..0fe8225b0c9 100644 --- a/docs/id/README.md +++ b/docs/id/README.md @@ -4,7 +4,7 @@

Bangun dApps Lebih Cepat denganSubQuery Academy

-

Jelajahi dan terapkan API open-source kustom Anda sendiri yang efisien antara data terdesentralisasi Anda dan alat untuk menanyakan data lebih cepat dan menghemat waktu Anda.


+

Jelajahi dan terapkan API open-source kustom Anda sendiri yang efisien antara data terdesentralisasi Anda dan alat untuk menanyakan data lebih cepat dan menghemat waktu Anda.

SubQuery sekarang mendukung Polkadot, Avalanche, Cosmos, dan Algorand.

@@ -12,7 +12,7 @@

Mulailah dengan Panduan Memulai Cepat kami

-

Bangun proyek SubQuery pertama Anda dalam waktu kurang dari 10 menit dengan langkah-langkah sederhana yang dipandu. +

Bangun proyek SubQuery pertama Anda dalam waktu kurang dari 10 menit dengan langkah-langkah sederhana yang dipandu.

Mulai kueri data untuk dApps Anda di jaringan blockchain yang paling Anda sukai menggunakan proyek pemula kami. Jelajahi dan modifikasi file-file penting, dan pahami cara kerja SubQuery.

@@ -134,8 +134,7 @@
- - + diff --git a/docs/id/build/install.md b/docs/id/build/install.md index 298108aad1c..c5edd771955 100644 --- a/docs/id/build/install.md +++ b/docs/id/build/install.md @@ -8,28 +8,30 @@ Library [@subql/cli](https://github.com/subquery/subql/tree/docs-new-section/pac Menginstal SubQuery CLI secara global di terminal Anda dengan menggunakan Yarn atau NPM: - ```bash npm install -g @subql/cli ``` - ```shell yarn global add @subql/cli ``` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` +@tab:active yarn `shell yarn global add @subql/cli ` ::: Anda kemudian dapat menjalankan bantuan untuk melihat perintah dan penggunaan yang tersedia yang disediakan oleh CLI: ```shell subql help ``` + ## Menginstal @subql/node Node SubQuery adalah implementasi yang mengekstrak data blockchain berbasis substrate per proyek SubQuery dan menyimpannya ke dalam database Postgres. Menginstal node SubQuery secara global di terminal Anda dengan menggunakan Yarn atau NPM: - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: Setelah diinstal, Anda dapat memulai simpul dengan: ```shell subql-node ``` + > Catatan: Jika Anda menggunakan Docker atau menghosting proyek Anda di Proyek SubQuery, Anda dapat melewati langkah ini. Ini karena node SubQuery sudah disediakan di Docker container dan hosting infrastruktur. ## Menginstal @subql/query @@ -38,7 +40,7 @@ Library SubQuery query menyediakan layanan yang memungkinkan Anda membuat kueri Pasang Subquery query secara global di terminal Anda dengan menggunakan Yarn atau NPM: - ```NPM npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `NPM npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> Catatan: Jika Anda menggunakan Docker atau menghosting proyek Anda di Proyek SubQuery, Anda juga dapat melewati langkah ini. Ini karena node SubQuery sudah disediakan di Docker container dan hosting infrastruktur. \ No newline at end of file +> Catatan: Jika Anda menggunakan Docker atau menghosting proyek Anda di Proyek SubQuery, Anda juga dapat melewati langkah ini. Ini karena node SubQuery sudah disediakan di Docker container dan hosting infrastruktur. diff --git a/docs/id/build/introduction.md b/docs/id/build/introduction.md index 2e07f9c7081..809b7e5ff19 100644 --- a/docs/id/build/introduction.md +++ b/docs/id/build/introduction.md @@ -51,8 +51,8 @@ Untuk menjalankan Proyek SubQuery Anda di host Node SubQuery secara lokal, perta Jalankan perintah bentuk dari direktori proyek. - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### Opsi pembuatan alternatif diff --git a/docs/id/build/manifest.md b/docs/id/build/manifest.md index fe18da5d8d7..d20f674ac32 100644 --- a/docs/id/build/manifest.md +++ b/docs/id/build/manifest.md @@ -4,7 +4,7 @@ File Manifest `project.yaml` bisa dilihat sebagai titik masuk proyek Anda dan me Manifest bisa dalam format YAML atau JSON. Dalam dokumen ini, kita akan menggunakan YAML di semua contoh. Di bawah ini merupakan contoh standar `project.yaml` standar. - ` yml specVersion: 0.2.0 name: example-project # Berikan nama proyek version: 1.0.0 # Versi proyek description: '' # Deskripsi dari proyek anda repository: 'https://github.com/subquery/subql-starter' # Alamat git repository dari proyek anda schema: file: ./schema.graphql # Lokasi file skema GraphQL Anda network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash dari jaringan endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Secara opsional, berikan titik akhir HTTP dari dictionary chain lengkap untuk mempercepat pemrosesan dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # Ini mengubah blok awal pengindeksan Anda, setel ini lebih tinggi untuk melewati blok awal dengan lebih sedikit data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter adalah opsional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ` yml specVersion: "0.0.1" description: '' # Deskripsi dari proyek anda repository: 'https://github.com/subquery/subql-starter' # Alamat git repository dari proyek anda schema: ./schema.graphql # Lokasi file skema GraphQL Anda network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Secara opsional, berikan titik akhir HTTP dari dictionary chain lengkap untuk mempercepat pemrosesan dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # Ini mengubah blok awal pengindeksan Anda, setel ini lebih tinggi untuk melewati blok awal dengan lebih sedikit data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter bersifat opsional tetapi disarankan untuk mempercepat pemrosesan acara module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project # Berikan nama proyek version: 1.0.0 # Versi proyek description: '' # Deskripsi dari proyek anda repository: 'https://github.com/subquery/subql-starter' # Alamat git repository dari proyek anda schema: file: ./schema.graphql # Lokasi file skema GraphQL Anda network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash dari jaringan endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Secara opsional, berikan titik akhir HTTP dari dictionary chain lengkap untuk mempercepat pemrosesan dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # Ini mengubah blok awal pengindeksan Anda, setel ini lebih tinggi untuk melewati blok awal dengan lebih sedikit data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter adalah opsional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` @tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Deskripsi dari proyek anda repository: 'https://github.com/subquery/subql-starter' # Alamat git repository dari proyek anda schema: ./schema.graphql # Lokasi file skema GraphQL Anda network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Secara opsional, berikan titik akhir HTTP dari dictionary chain lengkap untuk mempercepat pemrosesan dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # Ini mengubah blok awal pengindeksan Anda, setel ini lebih tinggi untuk melewati blok awal dengan lebih sedikit data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter bersifat opsional tetapi disarankan untuk mempercepat pemrosesan acara module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## Migrasi dari v0.0.1 to v0.2.0 @@ -81,9 +81,9 @@ Mendefinisikan data yang akan difilter dan diekstraksi dan lokasi pengendali fun ### Mapping Spec -| Field | v0.0.1 | v0.2.0 | Deskripsi | -| ---------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **file** | String | 𐄂 | Jalur ke entri pemetaan | +| Field | v0.0.1 | v0.2.0 | Deskripsi | +| ---------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **file** | String | 𐄂 | Jalur ke entri pemetaan | | **handlers & filters** | [Penangan dan filter default](./manifest/#mapping-handlers-and-filters) | Penangan dan filter default,
[Penangan dan filter khusus](#custom-data-sources) | Buat daftar semua [fungsi pemetaan](./mapping/polkadot.md) dan jenis handler yang sesuai, dengan filter pemetaan tambahan.

Untuk handler pemetaan runtime kustom, lihat [Sumber data kustom](#custom-data-sources) | ## Sumber Data dan Pemetaan @@ -104,8 +104,8 @@ Tabel berikut menjelaskan filter yang didukung oleh penangan yang berbeda. **Proyek SubQuery Anda akan jauh lebih efisien bila Anda hanya menggunakan event dan call handler dengan filter pemetaan yang sesuai** -| Handler | Filter yang didukung | -| ------------------------------------------ | ---------------------------- | +| Handler | Filter yang didukung | +| --------------------------------------------------- | ---------------------------- | | [BlockHandler](./mapping/polkadot.md#block-handler) | `specVersion` | | [EventHandler](./mapping/polkadot.md#event-handler) | `module`,`method` | | [CallHandler](./mapping/polkadot.md#call-handler) | `module`,`method` ,`success` | @@ -151,10 +151,10 @@ Anda dapat mengindeks data dari rantai kustom dengan juga menyertakan jenis rant Kami mendukung jenis tambahan yang digunakan oleh modul waktu proses media, `typesAlias`, `typesBundle`, `typesChain`, dan `typesSpec` juga didukung. -Dalam contoh v0.2.0 di bawah ini, `network.chaintypes` menunjuk ke file yang memiliki semua tipe kustom yang disertakan, Ini adalah file chainspec standar yang menyatakan tipe spesifik yang didukung oleh blockchain ini di < 0>.json
, `.yaml` atau `.js` format. +Dalam contoh v0.2.0 di bawah ini, `network.chaintypes` menunjuk ke file yang memiliki semua tipe kustom yang disertakan, Ini adalah file chainspec standar yang menyatakan tipe spesifik yang didukung oleh blockchain ini di `.json`, `.yaml` atau `.js` format. - `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # Filepath relatif ke tempat jenis kustom disimpan ...` - `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # Filepath relatif ke tempat jenis kustom disimpan ...` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: Untuk menggunakan TypeScript untuk file jenis rantai Anda, masukkan dalam folder `src` (misalnya `./src/types.ts`), jalankan `yarn build` dan lalu arahkan ke file js yang dihasilkan yang terletak di folder `dist`. @@ -171,7 +171,7 @@ Hal-hal yang perlu diperhatikan tentang menggunakan file jenis rantai dengan eks Berikut adalah contoh file jenis rantai `.ts`: - `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` ::: ## Sumber Data Khusus @@ -197,6 +197,6 @@ Pengguna dapat menambahkan `filter` pada `dataSources` untuk memutuskan sumber d Di bawah ini merupakan contoh yang menunjukkan sumber data berbeda untuk jaringan Polkadot dan Kusama. - `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Buat template untuk menghindari redundansi definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #pakai template disini - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # dapat digunakan kembali atau diubah ` +::: code-tabs @tab v0.0.1 `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Buat template untuk menghindari redundansi definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #pakai template disini - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # dapat digunakan kembali atau diubah ` - +::: diff --git a/docs/id/build/mapping.md b/docs/id/build/mapping.md index d76de7c853f..089089dd4ee 100644 --- a/docs/id/build/mapping.md +++ b/docs/id/build/mapping.md @@ -67,9 +67,9 @@ Tujuan kami adalah mencakup semua sumber data bagi pengguna untuk mapping handle Ini adalah interface yang saat ini kami dukung: -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) akan mengkueri balok current. -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) akan membuat beberapa jenis kueri yang sama di balok saat ini. -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) akan membuat beberapa jenis kueri berbeda di balok saat ini. +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) akan mengkueri balok **current**. +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) akan membuat beberapa jenis kueri yang **sama** di balok saat ini. +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) akan membuat beberapa jenis kueri **berbeda** di balok saat ini. Ini adalah interface yang kami **TIDAK** dukung saat ini: diff --git a/docs/id/build/substrate-evm.md b/docs/id/build/substrate-evm.md index 25c35568579..49a014dbe40 100644 --- a/docs/id/build/substrate-evm.md +++ b/docs/id/build/substrate-evm.md @@ -74,7 +74,7 @@ Bekerja dengan cara yang sama seperti [substrate/EventHandler](../create/mapping | ------ | ------------ | --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | | topics | String array | Transfer(address indexed from,address indexed to,uint256 value) | Filter topik mengikuti filter log Ethereum JSON-PRC, dokumentasi selengkapnya dapat ditemukan [di sini](https://docs.ethers.io/v5/concepts/events/). | -Catatan tentang topik: +**Catatan tentang topik:** Ada beberapa peningkatan dari filter log dasar: - Topik tidak perlu diisi 0 @@ -97,17 +97,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Alamat kontrak (atau penerima jika transfer) untuk difilter, jika `null` seharusnya untuk pembuatan kontrak - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -122,7 +122,7 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## Batasan yang Diketahui diff --git a/docs/id/faqs/faqs.md b/docs/id/faqs/faqs.md index f2d629fa149..dcbb92d6d82 100644 --- a/docs/id/faqs/faqs.md +++ b/docs/id/faqs/faqs.md @@ -16,7 +16,7 @@ SubQuery juga menyediakan hosting proyek kelas produksi gratis untuk para pengem **SubQuery Network** -Jaringan SubQuery memungkinkan pengembang untuk sepenuhnya mendesentralisasi tumpukan infrastruktur mereka. Ini adalah layanan data yang paling terbuka, berkinerja, andal, dan dapat diskalakan untuk dApps. Jaringan SubQuery mengindeks dan melayani data ke komunitas global dengan cara yang berinsentif dan dapat diverifikasi. Setelah memublikasikan proyek Anda ke Jaringan SubQuery, siapa pun dapat mengindeks dan menghostingnya - menyediakan data kepada pengguna di seluruh dunia dengan lebih cepat dan andal. +Jaringan SubQuery memungkinkan pengembang untuk sepenuhnya mendesentralisasi tumpukan infrastruktur mereka. Ini adalah layanan data yang paling terbuka, berkinerja, andal, dan dapat diskalakan untuk dApps. Jaringan SubQuery mengindeks dan melayani data ke komunitas global dengan cara yang berinsentif dan dapat diverifikasi. Setelah memublikasikan proyek Anda ke Jaringan SubQuery, siapa pun dapat mengindeks dan menghostingnya - menyediakan data kepada pengguna di seluruh dunia dengan lebih cepat dan andal. Informasi lebih lanjut [di sini](/subquery_network/introduction.md). @@ -26,7 +26,7 @@ Cara terbaik untuk memulai SubQuery adalah mencoba [Hello World Tutorial](/asset ## Bagaimana saya bisa berkontribusi atau memberi masukan ke SubQuery? -Kami menyukai kontribusi dan umpan balik dari komunitas. Untuk menyumbangkan kode, fork repositori yang Anda minati dan buat perubahan Anda. Kemudian kirimkan PR atau Pull Request. Jangan lupa untuk mengujinya juga. Lihat juga pedoman kontribusi kami. +Kami menyukai kontribusi dan umpan balik dari komunitas. Untuk menyumbangkan kode, fork repositori yang Anda minati dan buat perubahan Anda. Kemudian kirimkan PR atau Pull Request. Jangan lupa untuk mengujinya juga. Lihat juga pedoman [kontribusi kami](../miscellaneous/contributing.html). Untuk memberi umpan balik, hubungi kami di hello@subquery.network atau buka [discord channel](https://discord.com/invite/78zg8aBSMG) kami. @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Perhatikan bahwa disarankan untuk menggunakan `--force-clean` saat mengubah `startBlock` dalam manifes proyek (`project.yaml`) untuk memulai pengindeksan ulang dari blok yang dikonfigurasi. Jika `startBlock` diubah tanpa `--force-clean` proyek, maka pengindeks akan melanjutkan pengindeksan dengan `startBlock` yang dikonfigurasi sebelumnya. - ## Bagaimana saya bisa mengoptimalkan proyek saya untuk mempercepatnya? Performa merupakan faktor krusial dalam setiap proyek. Untungnya, ada beberapa hal yang bisa Anda lakukan untuk memperbaikinya. Berikut ini daftar beberapa saran: @@ -89,13 +88,13 @@ Performa merupakan faktor krusial dalam setiap proyek. Untungnya, ada beberapa h - Atur blok awal ke saat kontrak diinisialisasi. - Selalu gunakan [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (kami dapat membantu membuatnya untuk jaringan baru Anda). - Optimalkan desain skema Anda, buatlah sesederhana mungkin. - - Cobalah untuk mengurangi bidang dan kolom yang tidak perlu. - - Buat indeks sesuai kebutuhan. + - Cobalah untuk mengurangi bidang dan kolom yang tidak perlu. + - Buat indeks sesuai kebutuhan. - Gunakan pemrosesan paralel/batch sesering mungkin. - - Gunakan `api.queryMulti()` untuk mengoptimalkan panggilan API Polkadot di dalam fungsi pemetaan dan menanyakannya secara paralel. Ini adalah cara yang lebih cepat daripada loop. - - Gunakan `Promise.all()`. Dalam kasus beberapa fungsi async, lebih baik mengeksekusinya dan menyelesaikannya secara paralel. - - Jika Anda ingin membuat banyak entitas dalam satu handler, Anda dapat menggunakan `store.bulkCreate(entityName: string, entities: Entity[])`. Anda bisa membuatnya secara paralel, tidak perlu melakukannya satu per satu. + - Gunakan `api.queryMulti()` untuk mengoptimalkan panggilan API Polkadot di dalam fungsi pemetaan dan menanyakannya secara paralel. Ini adalah cara yang lebih cepat daripada loop. + - Gunakan `Promise.all()`. Dalam kasus beberapa fungsi async, lebih baik mengeksekusinya dan menyelesaikannya secara paralel. + - Jika Anda ingin membuat banyak entitas dalam satu handler, Anda dapat menggunakan `store.bulkCreate(entityName: string, entities: Entity[])`. Anda bisa membuatnya secara paralel, tidak perlu melakukannya satu per satu. - Membuat panggilan API untuk menanyakan state bisa lambat. Anda bisa mencoba untuk meminimalkan pemanggilan jika memungkinkan dan menggunakan data `ekstrinsik/transaksi/event`. - Gunakan `worker threads` untuk memindahkan pengambilan blok dan pemrosesan blok ke dalam thread pekerja sendiri. Ini bisa mempercepat pengindeksan hingga 4 kali lipat (tergantung pada proyek tertentu). Anda bisa dengan mudah mengaktifkannya dengan menggunakan flag `-workers=`. Perhatikan bahwa jumlah core CPU yang tersedia sangat membatasi penggunaan thread pekerja. Untuk saat ini, ini hanya tersedia untuk Substrate dan Cosmos dan akan segera diintegrasikan untuk Avalanche. - Perhatikan bahwa `JSON.stringify` tidak mendukung native `BigInts`. Pustaka logging kami akan melakukan hal ini secara internal jika Anda mencoba untuk mencatat sebuah objek. Kami sedang mencari solusi untuk ini. -- Gunakan filter `modulo` yang mudah digunakan untuk menjalankan handler hanya sekali ke blok tertentu. Filter ini memungkinkan penanganan sejumlah blok tertentu, yang sangat berguna untuk mengelompokkan dan menghitung data pada interval yang ditetapkan. Sebagai contoh, jika modulo diatur ke 50, block handler akan berjalan pada setiap 50 blok. Ini memberikan lebih banyak kontrol atas data pengindeksan kepada pengembang dan dapat diimplementasikan seperti di bawah ini dalam manifes proyek Anda. \ No newline at end of file +- Gunakan filter `modulo` yang mudah digunakan untuk menjalankan handler hanya sekali ke blok tertentu. Filter ini memungkinkan penanganan sejumlah blok tertentu, yang sangat berguna untuk mengelompokkan dan menghitung data pada interval yang ditetapkan. Sebagai contoh, jika modulo diatur ke 50, block handler akan berjalan pada setiap 50 blok. Ini memberikan lebih banyak kontrol atas data pengindeksan kepada pengembang dan dapat diimplementasikan seperti di bawah ini dalam manifes proyek Anda. diff --git a/docs/id/miscellaneous/contributing.md b/docs/id/miscellaneous/contributing.md index 5ecbdf0d86f..2afb238d60c 100644 --- a/docs/id/miscellaneous/contributing.md +++ b/docs/id/miscellaneous/contributing.md @@ -2,7 +2,7 @@ Selamat datang dan terima kasih banyak telah mempertimbangkan untuk berkontribusi pada proyek SubQuery ini! Bersama-sama kita dapat membuka jalan menuju masa depan yang lebih terdesentralisasi. -:::: info Catatan Dokumentasi ini secara aktif dikelola oleh tim SubQuery. Kami juga menerima kontribusi. Anda dapat melakukannya dengan melakukan forking proyek GitHub kami dan membuat perubahan pada semua file markdown dokumentasi di bawah direktori `docs`. ::: +::: tip Catatan Dokumentasi ini secara aktif dikelola oleh tim SubQuery. Kami juga menerima kontribusi. Anda dapat melakukannya dengan melakukan forking proyek GitHub kami dan membuat perubahan pada semua file markdown dokumentasi di bawah direktori `docs`. ::: Berikut ini adalah seperangkat pedoman (bukan aturan) untuk berkontribusi pada SubQuery. Mengikuti panduan ini akan membantu kami membuat proses kontribusi menjadi mudah dan efektif untuk semua orang yang terlibat. Ini juga menyampaikan bahwa Anda setuju untuk menghormati waktu dari developer yang mengelola dan mengembangkan proyek ini. Sebagai imbalannya, kami akan membalas rasa hormat itu dengan mengatasi masalah Anda, mempertimbangkan perubahan, berkolaborasi dalam peningkatan, dan membantu Anda menyelesaikan pull request Anda. @@ -14,8 +14,8 @@ Kami menganggap serius proyek dan tanggung jawab komunitas open source kami dan Kontribusi ke repositori kami dilakukan melalui Issue and Pull Request (PR). Beberapa pedoman umum yang mencakup keduanya: -* Cari Issue and PR yang ada terlebih dahulu sebelum membuat milik Anda sendiri. -* Kami bekerja keras untuk memastikan issue ditangani dengan segera, tetapi tergantung pada dampaknya, mungkin bisa memakan waktu cukup lama untuk menyelidiki akar masalahnya. Sebuah @ sebutan ramah di utas komentar kepada pengirim atau kontributor dapat membantu menarik perhatian jika issue Anda terblokir. +- Cari Issue and PR yang ada terlebih dahulu sebelum membuat milik Anda sendiri. +- Kami bekerja keras untuk memastikan issue ditangani dengan segera, tetapi tergantung pada dampaknya, mungkin bisa memakan waktu cukup lama untuk menyelidiki akar masalahnya. Sebuah @ sebutan ramah di utas komentar kepada pengirim atau kontributor dapat membantu menarik perhatian jika issue Anda terblokir. ## Bagaimana Berkontribusi @@ -23,32 +23,32 @@ Kontribusi ke repositori kami dilakukan melalui Issue and Pull Request (PR). Beb Bug dilacak sebagai issue GitHub. Saat mencatatkan log issue, jelaskan masalahnya dan sertakan detail tambahan untuk membantu pengelola mereproduksi masalah itu: -* Gunakan judul issue yang jelas dan deskriptif untuk mengidentifikasi masalah. -* Jelaskan langkah-langkah yang akurat untuk mereproduksi masalah. -* Jelaskan perilaku yang Anda amati setelah mengikuti langkah-langkah tersebut. -* Jelaskan perilaku mana yang Anda harapkan untuk dilihat dan mengapa. -* Sertakan screenshot jika memungkinkan. +- Gunakan judul issue yang jelas dan deskriptif untuk mengidentifikasi masalah. +- Jelaskan langkah-langkah yang akurat untuk mereproduksi masalah. +- Jelaskan perilaku yang Anda amati setelah mengikuti langkah-langkah tersebut. +- Jelaskan perilaku mana yang Anda harapkan untuk dilihat dan mengapa. +- Sertakan screenshot jika memungkinkan. ### Mengirimkan Pull Request Secara umum, kami mengikuti alur kerja "fork-and-pull" Git: -* Fork repositori ke akun Github Anda sendiri. -* Clone proyek ke mesin Anda. -* Buat branch secara lokal dengan nama yang ringkas namun deskriptif. -* Commit perubahan ke branch. -* Ikuti pedoman pemformatan dan testing apa pun yang khusus untuk repo ini. -* Push perubahan ke fork Anda. -* Buka sebuah PR di repositori kami. +- Fork repositori ke akun Github Anda sendiri. +- Clone proyek ke mesin Anda. +- Buat branch secara lokal dengan nama yang ringkas namun deskriptif. +- Commit perubahan ke branch. +- Ikuti pedoman pemformatan dan testing apa pun yang khusus untuk repo ini. +- Push perubahan ke fork Anda. +- Buka sebuah PR di repositori kami. ## Konvensi Coding ### Pesan Git Commit -* Gunakan bentuk waktu kini ("Tambahkan fitur" bukan "Fitur yang ditambahkan"). -* Gunakan suasana perintah ("Pindahkan kursor ke..." bukan "Memindahkan kursor ke..."). -* Batasi baris pertama hingga 72 karakter atau kurang. +- Gunakan bentuk waktu kini ("Tambahkan fitur" bukan "Fitur yang ditambahkan"). +- Gunakan suasana perintah ("Pindahkan kursor ke..." bukan "Memindahkan kursor ke..."). +- Batasi baris pertama hingga 72 karakter atau kurang. ### JavaScript Styleguide -* Semua kode JavaScript diverifikasi dengan Prettier dan ESLint. +- Semua kode JavaScript diverifikasi dengan Prettier dan ESLint. diff --git a/docs/id/quickstart/helloworld-localhost.md b/docs/id/quickstart/helloworld-localhost.md index d8b52f91c1a..08091c67bcc 100644 --- a/docs/id/quickstart/helloworld-localhost.md +++ b/docs/id/quickstart/helloworld-localhost.md @@ -88,8 +88,8 @@ cd subqlHelloWorld Sekarang lakukan instal yarn atau node untuk menginstal berbagai dependencies. - ```shell yarn install ``` - ```bash npm install ``` +::: code-tabs @tab:active yarn `shell yarn install ` +@tab npm `bash npm install ` ::: Sebagai Contoh `yarn install` @@ -109,8 +109,8 @@ berhasil Menyimpan file kunci. Sekarang jalankan `yarn codegen` untuk menghasilkan TypeScript dari skema GraphQL. - ```shell yarn codegen ``` - ```bash npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `bash npm run-script codegen ` ::: An example of `yarn codegen` @@ -133,8 +133,8 @@ $ ./node_modules/.bin/subql codegen Langkah selanjutnya adalah membuat kode dengan `yarn build`. - ```shell yarn build ``` - ```bash npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: An example of `yarn build` diff --git a/docs/id/quickstart/quickstart-avalanche.md b/docs/id/quickstart/quickstart-avalanche.md index 1ab6b9c72d9..0b8078789b9 100644 --- a/docs/id/quickstart/quickstart-avalanche.md +++ b/docs/id/quickstart/quickstart-avalanche.md @@ -59,8 +59,8 @@ Setelah proses inisialisasi selesai, Anda akan melihat folder dengan nama proyek Terakhir, di bawah direktori proyek, jalankan perintah berikut untuk menginstal dependensi proyek baru. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Membuat Perubahan pada Proyek Anda @@ -92,8 +92,8 @@ type PangolinApproval @entity { **Penting: Saat Anda membuat perubahan apa pun pada file skema, pastikan Anda membuat ulang direktori tipe Anda. Lakukan ini sekarang.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Anda akan menemukan model yang dihasilkan di direktori `/src/types/models`. Untuk informasi lebih lanjut tentang file `schema.graphql`, lihat dokumentasi kami di bawah [Build/GraphQL Schema](../build/graphql.md) @@ -169,7 +169,7 @@ Untuk informasi lebih lanjut tentang fungsi pemetaan, lihat dokumentasi kami di Untuk menjalankan Proyek SubQuery baru Anda, pertama-tama kita perlu membangun pekerjaan kita. Jalankan perintah build dari direktori root proyek. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Penting: Setiap kali Anda membuat perubahan pada fungsi pemetaan, Anda harus membangun kembali proyek Anda** @@ -183,13 +183,11 @@ Semua konfigurasi yang mengontrol bagaimana node SubQuery dijalankan didefinisik Di bawah direktori proyek jalankan perintah berikut: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Mungkin perlu beberapa saat untuk mengunduh paket yang diperlukan ([`@subql/node`](https://www.npmjs.com/package/@subql/node), -`@subql/query`, dan Postgres) untuk pertama kalinya tetapi segera Anda akan melihat node SubQuery yang sedang berjalan. Sabar pada proses di sini.

- - +`@subql/query`, dan Postgres) untuk pertama kalinya tetapi segera Anda akan melihat node SubQuery yang sedang berjalan. Sabar pada proses di sini. ### Kueri Proyek Anda @@ -199,8 +197,6 @@ Anda akan melihat taman bermain GraphQL ditampilkan di explorer dan skema yang s Untuk proyek pemula SubQuery baru, Anda dapat mencoba kueri berikut untuk mengetahui cara kerjanya atau [pelajari lebih lanjut tentang bahasa Kueri GraphQL](../run_publish/graphql.md). - - ```graphql query { pangolinApprovals(first: 5) { @@ -217,17 +213,12 @@ query { } ``` - - - ### Publikasikan Proyek SubQuery Anda SubQuery menyediakan layanan terkelola gratis saat Anda dapat menerapkan proyek baru Anda. Anda dapat menerapkannya ke [Proyek SubQuery](https://project.subquery.network) dan menanyakannya menggunakan [Explorer](https://explorer.subquery.network) kami. [Baca panduan untuk memublikasikan proyek baru Anda ke Proyek SubQuery](../run_publish/publish.md), **Perhatikan bahwa Anda harus menerapkan melalui IPFS**. - - ## Langkah selanjutnya Selamat, Anda sekarang memiliki proyek SubQuery yang berjalan secara lokal yang menerima permintaan GraphQL API untuk mentransfer data dari bLuna. diff --git a/docs/id/quickstart/quickstart-cosmos.md b/docs/id/quickstart/quickstart-cosmos.md index 7236f8edf11..b0c4be4d8e8 100644 --- a/docs/id/quickstart/quickstart-cosmos.md +++ b/docs/id/quickstart/quickstart-cosmos.md @@ -44,8 +44,8 @@ Setelah proses inisialisasi selesai, Anda akan melihat folder dengan nama proyek Terakhir, di bawah direktori proyek, jalankan perintah berikut untuk menginstal dependensi proyek baru. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Membuat Perubahan pada Proyek Anda @@ -75,8 +75,8 @@ type Vote @entity { **Penting: Saat Anda membuat perubahan apa pun pada file skema, pastikan Anda membuat ulang direktori tipe Anda. Lakukan ini sekarang.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Anda akan menemukan model yang dihasilkan di direktori `/src/types/models`. Untuk informasi lebih lanjut tentang file `schema.graphql`, lihat dokumentasi kami di bawah [Build/GraphQL Schema](../build/graphql.md) @@ -145,7 +145,7 @@ Untuk informasi lebih lanjut tentang fungsi pemetaan, lihat dokumentasi kami di Untuk menjalankan Proyek SubQuery baru Anda, pertama-tama kita perlu membangun pekerjaan kita. Jalankan perintah build dari direktori root proyek. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Penting: Setiap kali Anda membuat perubahan pada fungsi pemetaan, Anda harus membangun kembali proyek Anda** @@ -159,13 +159,11 @@ Semua konfigurasi yang mengontrol bagaimana node SubQuery dijalankan didefinisik Di bawah direktori proyek jalankan perintah berikut: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Mungkin perlu beberapa saat untuk mengunduh paket yang diperlukan ([`@subql/node`](https://www.npmjs.com/package/@subql/node), -`@subql/query`, dan Postgres) untuk pertama kalinya tetapi segera Anda akan melihat node SubQuery yang sedang berjalan. Sabar pada proses di sini.

- - +`@subql/query`, dan Postgres) untuk pertama kalinya tetapi segera Anda akan melihat node SubQuery yang sedang berjalan. Sabar pada proses di sini. ### Kueri Proyek Anda @@ -175,14 +173,11 @@ Anda akan melihat taman bermain GraphQL ditampilkan di explorer dan skema yang s Untuk proyek pemula SubQuery baru, Anda dapat mencoba kueri berikut untuk mengetahui cara kerjanya atau [pelajari lebih lanjut tentang bahasa Kueri GraphQL](../run_publish/graphql.md). - - ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id @@ -194,19 +189,14 @@ query { } ``` - Anda dapat melihat kode akhir proyek ini di [https://github.com/jamesbayly/juno-terra-developer-fund-votes](https://github.com/jamesbayly/juno-terra-developer-fund-votes) - - ### Publikasikan Proyek SubQuery Anda SubQuery menyediakan layanan terkelola gratis saat Anda dapat menerapkan proyek baru Anda. Anda dapat menerapkannya ke [Proyek SubQuery](https://project.subquery.network) dan menanyakannya menggunakan [Explorer](https://explorer.subquery.network) kami. [Baca panduan untuk memublikasikan proyek baru Anda ke Proyek SubQuery](../run_publish/publish.md) - - ## Langkah selanjutnya Selamat, Anda sekarang memiliki proyek SubQuery yang berjalan secara lokal yang menerima permintaan GraphQL API untuk mentransfer data dari bLuna. diff --git a/docs/id/quickstart/quickstart-polkadot.md b/docs/id/quickstart/quickstart-polkadot.md index 36abb554644..74021b97fa5 100644 --- a/docs/id/quickstart/quickstart-polkadot.md +++ b/docs/id/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql init Anda akan ditanyai pertanyaan tertentu saat proyek SubQuery diinisialisasi: - Nama Proyek: Nama untuk proyek SubQuery Anda -- Jaringan: Jaringan blockchain yang akan diindeks oleh proyek SubQuery ini. Gunakan tombol panah untuk memilih dari opsi yang tersedia. Untuk panduan ini, kami akan menggunakan *"Substrat"* -- Jaringan: Jaringan blockchain yang akan diindeks oleh proyek SubQuery ini. Gunakan tombol panah untuk memilih dari opsi yang tersedia. Untuk panduan ini, kami akan menggunakan *"Polkadot"* -- Template: Pilih template proyek SubQuery yang akan memberikan titik awal untuk memulai pengembangan. Sebaiknya pilih proyek *"subql-starter"*. -- Titik akhir RPC: Berikan URL HTTPS ke titik akhir RPC yang sedang berjalan yang akan digunakan secara default untuk proyek ini. Anda dapat dengan cepat mengakses titik akhir publik untuk jaringan Polkadot yang berbeda atau bahkan membuat simpul khusus pribadi Anda sendiri menggunakan [OnFinality](https://app.onfinality.io) atau cukup gunakan titik akhir Polkadot default. Node RPC ini harus berupa node arsip (memiliki status rantai penuh). Untuk panduan ini kami akan menggunakan nilai default *"https://polkadot.api.onfinality.io"* +- Jaringan: Jaringan blockchain yang akan diindeks oleh proyek SubQuery ini. Gunakan tombol panah untuk memilih dari opsi yang tersedia. Untuk panduan ini, kami akan menggunakan _"Substrat"_ +- Jaringan: Jaringan blockchain yang akan diindeks oleh proyek SubQuery ini. Gunakan tombol panah untuk memilih dari opsi yang tersedia. Untuk panduan ini, kami akan menggunakan _"Polkadot"_ +- Template: Pilih template proyek SubQuery yang akan memberikan titik awal untuk memulai pengembangan. Sebaiknya pilih proyek _"subql-starter"_. +- Titik akhir RPC: Berikan URL HTTPS ke titik akhir RPC yang sedang berjalan yang akan digunakan secara default untuk proyek ini. Anda dapat dengan cepat mengakses titik akhir publik untuk jaringan Polkadot yang berbeda atau bahkan membuat simpul khusus pribadi Anda sendiri menggunakan [OnFinality](https://app.onfinality.io) atau cukup gunakan titik akhir Polkadot default. Node RPC ini harus berupa node arsip (memiliki status rantai penuh). Untuk panduan ini kami akan menggunakan nilai default _"https://polkadot.api.onfinality.io"_ - Repositori Git: Berikan URL Git ke repo tempat proyek SubQuery ini akan dihosting (ketika dihosting di SubQuery Explorer) atau terima default yang disediakan. - Penulis: Masukkan pemilik proyek SubQuery ini di sini (mis. nama Anda!) atau terima default yang disediakan. - Deskripsi: Berikan paragraf singkat tentang proyek Anda yang menjelaskan data apa yang dikandungnya dan apa yang dapat dilakukan pengguna dengannya atau menerima default yang disediakan. @@ -57,8 +57,8 @@ Setelah proses inisialisasi selesai, Anda akan melihat bahwa folder dengan nama Terakhir, di bawah direktori proyek, jalankan perintah berikut untuk menginstal dependensi proyek baru. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Membuat Perubahan pada Proyek Anda @@ -88,8 +88,8 @@ type Transfer @entity { **Penting: Saat Anda membuat perubahan apa pun pada file skema, pastikan Anda membuat ulang direktori tipe Anda.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Anda akan menemukan model yang dihasilkan di `/src/types/models` directory. Untuk informasi lebih lanjut tentang file `schema.graphql`, lihat dokumentasi kami di bawah [Build/GraphQL Schema](../build/graphql.md) @@ -133,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleTransfer(event: SubstrateEvent): Promise { - // Dapatkan data dari event - // Peristiwa balances.transfer memiliki muatan berikut \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Buat entitas transfer baru - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Dapatkan data dari event + // Peristiwa balances.transfer memiliki muatan berikut \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Buat entitas transfer baru + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -160,7 +160,7 @@ Untuk informasi lebih lanjut tentang fungsi pemetaan, lihat dokumentasi kami di Untuk menjalankan Proyek SubQuery baru Anda, pertama-tama kita perlu membangun pekerjaan kita. Jalankan perintah build dari direktori root proyek. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Penting: Setiap kali Anda membuat perubahan pada fungsi pemetaan, Anda harus membangun kembali proyek Anda** @@ -174,7 +174,7 @@ Semua konfigurasi yang mengontrol bagaimana node SubQuery dijalankan didefinisik Di bawah direktori proyek jalankan perintah berikut: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Mungkin perlu beberapa saat untuk mengunduh paket yang diperlukan ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) untuk pertama kalinya tetapi segera Anda akan melihat node SubQuery yang sedang berjalan. @@ -189,10 +189,7 @@ Untuk proyek pemula SubQuery baru, coba kueri berikut untuk memahami cara kerjan ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount diff --git a/docs/id/quickstart/quickstart-terra.md b/docs/id/quickstart/quickstart-terra.md index caa068c580b..a2669b6837f 100644 --- a/docs/id/quickstart/quickstart-terra.md +++ b/docs/id/quickstart/quickstart-terra.md @@ -45,11 +45,11 @@ subql init Anda akan ditanyai pertanyaan tertentu saat proyek SubQuery diinisialisasi: - Nama Proyek: Nama untuk proyek SubQuery Anda -- Keluarga Jaringan: Keluarga jaringan blockchain layer-1 yang proyek SubQuery ini akan dikembangkan untuk diindeks, gunakan tombol panah pada keyboard Anda untuk memilih dari opsi, untuk panduan ini kita akan menggunakan *"Terra"* -- Jaringan: Jaringan spesifik yang akan diindeks oleh proyek SubQuery ini, gunakan tombol panah pada keyboard Anda untuk memilih dari opsi, untuk panduan ini kami akan menggunakan *"Terra"* -- Template: Pilih template proyek SubQuery yang akan memberikan titik awal untuk memulai pengembangan, sebaiknya pilih *"Proyek Pemula"* +- Keluarga Jaringan: Keluarga jaringan blockchain layer-1 yang proyek SubQuery ini akan dikembangkan untuk diindeks, gunakan tombol panah pada keyboard Anda untuk memilih dari opsi, untuk panduan ini kita akan menggunakan _"Terra"_ +- Jaringan: Jaringan spesifik yang akan diindeks oleh proyek SubQuery ini, gunakan tombol panah pada keyboard Anda untuk memilih dari opsi, untuk panduan ini kami akan menggunakan _"Terra"_ +- Template: Pilih template proyek SubQuery yang akan memberikan titik awal untuk memulai pengembangan, sebaiknya pilih _"Proyek Pemula"_ - Git repository (Opsional): Berikan URL Git ke repo tempat proyek SubQuery ini akan dihosting (saat dihosting di SubQuery Explorer) -- RPC endpoint (Diperlukan): Berikan URL HTTPS ke titik akhir RPC yang sedang berjalan yang akan digunakan secara default untuk proyek ini. Node RPC ini harus berupa node arsip (memiliki status rantai penuh). Untuk panduan ini kita akan menggunakan nilai default *"https://terra-columbus-5.beta.api.onfinality.io"* +- RPC endpoint (Diperlukan): Berikan URL HTTPS ke titik akhir RPC yang sedang berjalan yang akan digunakan secara default untuk proyek ini. Node RPC ini harus berupa node arsip (memiliki status rantai penuh). Untuk panduan ini kita akan menggunakan nilai default _"https://terra-columbus-5.beta.api.onfinality.io"_ - Authors (Diperlukan): Masukkan pemilik proyek SubQuery ini di sini (misal. nama Anda!) - Description (Opsional): Anda dapat memberikan paragraf singkat tentang proyek Anda yang menjelaskan data apa yang ada di dalamnya dan apa yang dapat dilakukan pengguna dengannya - Version (Diperlukan): Masukkan nomor versi khusus atau gunakan default (`1.0.0`) @@ -59,8 +59,8 @@ Setelah proses inisialisasi selesai, Anda akan melihat folder dengan nama proyek Terakhir, di bawah direktori proyek, jalankan perintah berikut untuk menginstal dependensi proyek baru. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Membuat Perubahan pada Proyek Anda @@ -91,8 +91,8 @@ type Transfer @entity { **Penting: Saat Anda membuat perubahan apa pun pada file skema, pastikan Anda membuat ulang direktori tipe Anda. Lakukan ini sekarang.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Anda akan menemukan model yang dihasilkan di direktori `/src/types/models`. Untuk informasi lebih lanjut tentang file `schema.graphql`, lihat dokumentasi kami di bawah [Build/GraphQL Schema](../build/graphql.md) @@ -143,30 +143,30 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Print debugging data from the event - // logger.info(JSON.stringify(event)); - - // Create the new transfer entity with a unique ID - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Print debugging data from the event + // logger.info(JSON.stringify(event)); + + // Create the new transfer entity with a unique ID + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` @@ -178,7 +178,7 @@ Untuk informasi lebih lanjut tentang fungsi pemetaan, lihat dokumentasi kami di Untuk menjalankan Proyek SubQuery baru Anda, pertama-tama kita perlu membangun pekerjaan kita. Jalankan perintah build dari direktori root proyek. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Penting: Setiap kali Anda membuat perubahan pada fungsi pemetaan, Anda harus membangun kembali proyek Anda** @@ -192,13 +192,11 @@ Semua konfigurasi yang mengontrol bagaimana node SubQuery dijalankan didefinisik Di bawah direktori proyek jalankan perintah berikut: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Mungkin perlu beberapa saat untuk mengunduh paket yang diperlukan ([`@subql/node`](https://www.npmjs.com/package/@subql/node), -`@subql/query`, dan Postgres) untuk pertama kalinya tetapi segera Anda akan melihat node SubQuery yang sedang berjalan. Sabar pada proses di sini.

- - +`@subql/query`, dan Postgres) untuk pertama kalinya tetapi segera Anda akan melihat node SubQuery yang sedang berjalan. Sabar pada proses di sini. ### Kueri Proyek Anda @@ -208,15 +206,10 @@ Anda akan melihat taman bermain GraphQL ditampilkan di explorer dan skema yang s Untuk proyek pemula SubQuery baru, Anda dapat mencoba kueri berikut untuk mengetahui cara kerjanya atau [pelajari lebih lanjut tentang bahasa Kueri GraphQL](../run_publish/graphql.md). - - ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash @@ -230,17 +223,12 @@ Untuk proyek pemula SubQuery baru, Anda dapat mencoba kueri berikut untuk menget } ``` - - - ### Publikasikan Proyek SubQuery Anda SubQuery menyediakan layanan terkelola gratis saat Anda dapat menerapkan proyek baru Anda. Anda dapat menerapkannya ke [Proyek SubQuery](https://project.subquery.network) dan menanyakannya menggunakan [Explorer](https://explorer.subquery.network) kami. [Baca panduan untuk memublikasikan proyek baru Anda ke Proyek SubQuery](../run_publish/publish.md) - - ## Langkah selanjutnya Selamat, Anda sekarang memiliki proyek SubQuery yang berjalan secara lokal yang menerima permintaan GraphQL API untuk mentransfer data dari bLuna. diff --git a/docs/id/quickstart/quickstart.md b/docs/id/quickstart/quickstart.md index 0510cdd432c..c4cf603c691 100644 --- a/docs/id/quickstart/quickstart.md +++ b/docs/id/quickstart/quickstart.md @@ -26,7 +26,7 @@ Instal SubQuery CLI secara global di terminal Anda dengan menggunakan NPM: npm install -g @subql/cli ``` -::::: bahaya Kami **JANGAN** mendorong penggunaan `yarn global` untuk menginstal `@subql/cli` karena manajemen ketergantungannya yang buruk. Hal ini dapat menyebabkan beberapa kesalahan. ::: +:::: bahaya Kami **JANGAN** mendorong penggunaan `yarn global` untuk menginstal `@subql/cli` karena manajemen ketergantungannya yang buruk. Hal ini dapat menyebabkan beberapa kesalahan. ::: Lihatlah semua perintah yang tersedia dan penggunaannya. Jalankan perintah yang diberikan di bawah ini di CLI: @@ -42,7 +42,7 @@ Jalankan perintah berikut di dalam direktori yang ingin Anda buat proyek SubQuer subql init ``` -:::: peringatan Penting +::: peringatan Penting **Untuk Pengguna Cosmos** @@ -89,8 +89,8 @@ Setelah Anda menyelesaikan proses inisialisasi, Anda akan melihat folder dengan Terakhir, jalankan perintah berikut untuk menginstal dependensi proyek baru dari dalam direktori proyek baru. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: You have now initialised your first SubQuery project with just a few simple steps. Sekarang mari kita sesuaikan proyek templat standar untuk blockchain tertentu yang diminati. @@ -104,4 +104,4 @@ Ada 3 file penting yang perlu dimodifikasi. Ini adalah: 2. Manifes Proyek di `project.yaml`. 3. Fungsi-fungsi pemetaan dalam direktori `src/mappings/`. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/id/run_publish/aggregate.md b/docs/id/run_publish/aggregate.md index 4404b672aed..e82f1cfaf2e 100644 --- a/docs/id/run_publish/aggregate.md +++ b/docs/id/run_publish/aggregate.md @@ -26,6 +26,6 @@ SubQuery menyediakan fungsi agregat berikut saat dalam mode tidak aman: Implementasi fungsi agregat SubQuery didasarkan pada [pg-agregates](https://github.com/graphile/pg-aggregates), Anda dapat menemukan informasi lebih lanjut di sana. -:::: peringatan Penting Harap dicatat bahwa anda harus mengaktifkan flag `--unsafe` pada layanan kueri untuk menggunakan fungsi-fungsi ini. [Baca untuk selengkapnya](./references.md#unsafe-query-service). +::: peringatan Penting Harap dicatat bahwa anda harus mengaktifkan flag `--unsafe` pada layanan kueri untuk menggunakan fungsi-fungsi ini. [Baca untuk selengkapnya](./references.md#unsafe-query-service). Juga, perhatikan bahwa perintah `--unsafe` akan mencegah proyek Anda dijalankan di Jaringan SubQuery, dan Anda harus menghubungi dukungan jika Anda ingin perintah ini dijalankan dengan proyek Anda di [ layanan terkelola SubQuery](https://project.subquery.network). ::: diff --git a/docs/id/run_publish/connect.md b/docs/id/run_publish/connect.md index 1d32b06c3ab..ce011d5f798 100644 --- a/docs/id/run_publish/connect.md +++ b/docs/id/run_publish/connect.md @@ -2,10 +2,10 @@ Setelah penyebaran Anda berhasil diselesaikan dan node kami telah mengindeks data Anda dari rantai, Anda akan dapat terhubung ke proyek Anda melalui titik akhir Query yang ditampilkan. -![Proyek sedang diterapkan dan disinkronkan](/assets/img/projects-deploy-sync.png) +![Proyek sedang diterapkan dan disinkronkan](/assets/img/projects_deploy_sync.png) Atau, Anda dapat mengklik tiga titik di samping judul proyek Anda, dan melihatnya di SubQuery Explorer. Di sana Anda dapat menggunakan taman bermain di browser untuk memulai. -![Proyek di SubQuery Explorer](/assets/img/projects-explorer.png) +![Proyek di SubQuery Explorer](/assets/img/projects_explorer.png) -::::: info Catatan Pelajari lebih lanjut tentang [GraphQL Query language.](./graphql.md) ::: +:::: tip Catatan Pelajari lebih lanjut tentang [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/id/run_publish/publish.md b/docs/id/run_publish/publish.md index c9c1c6190e9..7a3775495da 100644 --- a/docs/id/run_publish/publish.md +++ b/docs/id/run_publish/publish.md @@ -19,7 +19,7 @@ Anda bisa meningkatkan untuk memanfaatkan layanan berbayar berikut ini: Saat menerapkan ke Layanan Terkelola SubQuery, Anda harus terlebih dahulu meng-host basis kode Anda di [IPFS](https://ipfs.io/). Hosting a project in IPFS makes it available for everyone and reduces your reliance on centralised services like GitHub. -::::peringatan Alur Penyebaran GitHub sudah tidak digunakan lagi untuk IPFS +:::peringatan Alur Penyebaran GitHub sudah tidak digunakan lagi untuk IPFS Jika proyek Anda masih disebarkan melalui GitHub, baca panduan migrasi untuk penyebaran IPFS [di sini](./ipfs.md) ::: diff --git a/docs/id/run_publish/query.md b/docs/id/run_publish/query.md index 1604d9f0a11..eec93d166c1 100644 --- a/docs/id/run_publish/query.md +++ b/docs/id/run_publish/query.md @@ -12,4 +12,4 @@ Anda juga akan melihat bahwa SubQuery Explorer menyediakan tempat bermain untuk Pada bagian kanan atas taman bermain, Anda akan menemukan tombol _Docs_ yang akan membuka gambar dokumentasi. Dokumentasi ini dibuat secara otomatis dan membantu Anda menemukan entitas dan metode apa yang dapat Anda kueri. -::::: info Catatan Pelajari lebih lanjut tentang [GraphQL Query language.](./graphql.md) ::: +:::: tip Catatan Pelajari lebih lanjut tentang [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/id/run_publish/references.md b/docs/id/run_publish/references.md index 6d537b33a3c..faf1a7dfc52 100644 --- a/docs/id/run_publish/references.md +++ b/docs/id/run_publish/references.md @@ -21,11 +21,11 @@ PERINTAH Perintah ini menggunakan webpack untuk menghasilkan bundel proyek subquery. -| Pilihan | Deskripsi | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | folder lokal proyek subquery (jika belum ada di folder) | -| -o, --output | tentukan folder keluaran build mis. membangun-folder | -| --mode=(production | prod | development | dev) | [ default: production ] | +| Pilihan | Deskripsi | +| ------------------ | ------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | folder lokal proyek subquery (jika belum ada di folder) | +| -o, --output | tentukan folder keluaran build mis. membangun-folder | +| --mode=(production | prod | development | dev) | [ default: production ] | - Dengan `subql build` Anda dapat menentukan titik masuk tambahan di bidang ekspor meskipun itu akan selalu dibangun `index.ts` secara otomatis. @@ -106,7 +106,7 @@ Ini menampilkan versi saat ini. ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -346,7 +346,7 @@ Ini akan memindahkan pengambilan dan pemrosesan blok ke dalam worker. Secara def Saat ini, ini masih dalam tahap percobaan awal, tetapi kami berencana untuk mengaktifkannya secara default. ::: -:::: info Catatan +::: tip Catatan Fitur ini tersedia untuk Substrate dan Cosmos, dan akan segera diintegrasikan untuk Avalanche. ::: diff --git a/docs/id/run_publish/run.md b/docs/id/run_publish/run.md index 8676a8c74fc..b68788ffbbb 100644 --- a/docs/id/run_publish/run.md +++ b/docs/id/run_publish/run.md @@ -4,7 +4,7 @@ Panduan ini bekerja melalui cara menjalankan node SubQuery lokal pada infrastruk ## Gunakan Docker -Solusi alternatif adalah dengan menjalankan Docker Container, yang ditentukan oleh file `docker-compose.yml`. Untuk proyek baru yang baru saja diinisialisasi, Anda tidak perlu mengubah apa pun di sini. +Solusi alternatif adalah dengan menjalankan **Docker Container**, yang ditentukan oleh file `docker-compose.yml`. Untuk proyek baru yang baru saja diinisialisasi, Anda tidak perlu mengubah apa pun di sini. Di bawah direktori proyek jalankan perintah berikut: @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Instalasi - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: Setelah terinstal, Anda dapat memulai node dengan perintah berikut: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Arahkan ke jalur proyek lokal - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ Bergantung pada konfigurasi database Postgres Anda (misalnya kata sandi database #### Tentukan file konfigurasi - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ Saat pengindeks pertama kali mengindeks rantai, mengambil blok tunggal akan seca #### Berjalan dalam mode lokal - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Beralih ke model lokal akan membuat tabel Postgres dalam skema default `publik`. diff --git a/docs/id/run_publish/subscription.md b/docs/id/run_publish/subscription.md index c732db9c928..138769ab050 100644 --- a/docs/id/run_publish/subscription.md +++ b/docs/id/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery sekarang juga mendukung Graphql Subscriptions. Seperti kueri, langganan Langganan sangat berguna ketika Anda ingin aplikasi klien Anda mengubah data atau menampilkan beberapa data baru segera setelah perubahan itu terjadi atau data baru tersedia. Langganan memungkinkan Anda untuk _berlangganan_ ke proyek SubQuery Anda untuk perubahan. -:::: info Catatan Baca lebih lanjut tentang [Langganan](https://www.apollographql.com/docs/react/data/subscriptions/). ::: +::: tip Catatan Baca lebih lanjut tentang [Langganan](https://www.apollographql.com/docs/react/data/subscriptions/). ::: ## Cara Berlangganan Entitas @@ -65,8 +65,8 @@ subscription { Perhatikan bahwa filter `mutasi` dapat berupa salah satu dari `INSERT`, `UPDATE` atau `DELETE`. -:::: peringatan Penting Harap dicatat bahwa Anda harus mengaktifkan flag `--subscription` pada node dan layanan kueri untuk menggunakan fungsi-fungsi ini. ::: +::: peringatan Penting Harap dicatat bahwa Anda harus mengaktifkan flag `--subscription` pada node dan layanan kueri untuk menggunakan fungsi-fungsi ini. ::: -::::: peringatan Penting +:::: peringatan Penting Fitur subkripsi berfungsi pada Layanan Terkelola SubQuery ketika Anda langsung memanggil titik akhir GraphQL yang terdaftar. Ini tidak akan berfungsi dalam taman bermain GraphQL dalam browser. ::: diff --git a/docs/id/run_publish/upgrade.md b/docs/id/run_publish/upgrade.md index 894cd3b2dd9..59d9e60259f 100644 --- a/docs/id/run_publish/upgrade.md +++ b/docs/id/run_publish/upgrade.md @@ -52,7 +52,7 @@ Dengan diperkenalkannya fitur penyebaran untuk CLI, kami telah menambahkan **Def - Langkah 3: Setelah proyek Anda dibuat, navigasikan ke halaman Tindakan GitHub dari proyek Anda, dan pilih alur kerja `CLI deploy`. - Langkah 4: Anda akan melihat bidang input di mana Anda dapat memasukkan kode unik proyek Anda yang dibuat di SubQuery Projects. Anda bisa mendapatkan kode dari URL di Proyek SubQuery [Proyek SubQuery](https://project.subquery.network). Kode ini didasarkan pada nama proyek Anda, di mana spasi diganti dengan tanda hubung `-`. misalnya `nama proyek saya` menjadi `nama proyek saya`. -:::: tips Tip +::: tips Tip Setelah alur kerja selesai, Anda seharusnya dapat melihat proyek Anda diterapkan ke Managed Service kami. ::: @@ -77,10 +77,10 @@ Jika Anda hanya ingin meng-upgrade ke indexer terbaru ([`@subql/node`](https://w Setelah penerapan Anda berhasil diselesaikan dan node kami telah mengindeks data Anda dari chain, Anda akan dapat terhubung ke proyek Anda melalui titik akhir Kueri GraphQL yang ditampilkan. -![Proyek sedang diterapkan dan disinkronkan](/assets/img/projects-deploy-sync.png) +![Proyek sedang diterapkan dan disinkronkan](/assets/img/projects_deploy_sync.png) Atau, Anda dapat mengklik tiga titik di samping judul proyek Anda, dan melihatnya di SubQuery Explorer. Di sana Anda dapat menggunakan taman bermain di browser untuk memulai - [baca lebih lanjut tentang cara menggunakan Explorer kami di sini](../run_publish/query.md). -![Proyek di SubQuery Explorer](/assets/img/projects-explorer.png) +![Proyek di SubQuery Explorer](/assets/img/projects_explorer.png) -::::: info Catatan Pelajari lebih lanjut tentang [GraphQL Query language.](./graphql.md) ::: +:::: tip Catatan Pelajari lebih lanjut tentang [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/id/subquery_network/introduction.md b/docs/id/subquery_network/introduction.md index e347a578b6e..65eed51f966 100644 --- a/docs/id/subquery_network/introduction.md +++ b/docs/id/subquery_network/introduction.md @@ -18,22 +18,22 @@ Ada peran untuk semua orang di jaringan, mulai dari pengembang yang sangat tekni Konsumen akan meminta Jaringan SubQuery untuk data spesifik untuk dApps atau alat mereka, dan membayar sejumlah SQT yang diiklankan untuk setiap permintaan. -::: info Note Learn more about [Consumers](./consumers.md). ::: +::: tip Note Learn more about [Consumers](./consumers.md). ::: ### Pengindeks Pengindeks akan menjalankan dan memelihara proyek SubQuery berkualitas tinggi di infrastruktur mereka sendiri, menjalankan pengindeks dan layanan kueri, dan akan diberi imbalan dalam SQT untuk permintaan yang mereka layani. -::: info Note Learn more about [Indexers](./indexers.md). ::: +::: tip Note Learn more about [Indexers](./indexers.md). ::: ### Delegator Delegator akan berpartisipasi dalam Jaringan dengan mendukung Pengindeks favorit mereka untuk mendapatkan hadiah berdasarkan pekerjaan yang dilakukan pengindeks tersebut. -::: info Note Learn more about [Delegators](./delegators.md). ::: +::: tip Note Learn more about [Delegators](./delegators.md). ::: ### Arsitek Arsitek adalah pembangun proyek SubQuery yang dijalankan Jaringan. Mereka menulis dan menerbitkan proyek SubQuery untuk Jaringan untuk diindeks dan dijalankan. -::: info Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: +::: tip Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: diff --git a/docs/it/README.md b/docs/it/README.md index 35751300ad8..51e4ceecb51 100644 --- a/docs/it/README.md +++ b/docs/it/README.md @@ -4,7 +4,7 @@

Build Faster dApps withSubQuery Academy

-

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


+

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

@@ -12,7 +12,7 @@

Get a Kick-Start With Our Quick Start Guide

-

Build your first SubQuery project in less than 10 mins with simple guided steps. +

Build your first SubQuery project in less than 10 mins with simple guided steps.

Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

@@ -135,8 +135,7 @@
- - + diff --git a/docs/it/academy/tutorials_examples/block-height.md b/docs/it/academy/tutorials_examples/block-height.md index 7086169ed3a..76ae1f61026 100644 --- a/docs/it/academy/tutorials_examples/block-height.md +++ b/docs/it/academy/tutorials_examples/block-height.md @@ -42,7 +42,7 @@ Lo svantaggio più ovvio sarà che non sarete in grado di interrogare i dati sul ## Come capire l'altezza attuale della blockchain? -Se si utilizza la rete Polkadot, è possibile visitare < 0 > https ://polkascan.io/, selezionare la rete e quindi visualizzare la figura «Blocco finalizzato». +Se si utilizza la rete Polkadot, è possibile visitare https://polkascan.io/, selezionare la rete e quindi visualizzare la figura «Blocco finalizzato». ## Devo fare una ricostruzione o un codegen? diff --git a/docs/it/academy/tutorials_examples/delete-projects.md b/docs/it/academy/tutorials_examples/delete-projects.md index e6157e71350..0746f4fba95 100644 --- a/docs/it/academy/tutorials_examples/delete-projects.md +++ b/docs/it/academy/tutorials_examples/delete-projects.md @@ -4,7 +4,7 @@ È importante mantenere i progetti in SubQuery Project aggiornati e pertinenti. Per i progetti caricati in SubQuery Project a fini di test, è consigliabile eliminarli successivamente per risparmiare risorse e costi. -L'esecuzione di un nodo indicizzatore è un'altra opzione al di fuori dell'utilizzo di Docker o di un progetto ospitato in < 0 > Progetti SubQuery . Richiede più tempo e sforzo, ma migliorerà la comprensione di come SubQuery funziona sotto le copertine. +L'esecuzione di un nodo indicizzatore è un'altra opzione al di fuori dell'utilizzo di Docker o di un progetto ospitato in Progetti SubQuery. Richiede più tempo e sforzo, ma migliorerà la comprensione di come SubQuery funziona sotto le copertine. ## Eliminazione di un progetto dallo slot di gestione temporanea @@ -16,4 +16,4 @@ Per eliminare un progetto dallo slot di gestione temporanea, fare clic sui 3 pun Per eliminare un progetto dallo slot di produzione, è necessario eliminare l'intero progetto. Passare all'angolo in alto a destra e fare clic sui 3 punti che sono le impostazioni per l'intero progetto. Quindi selezionare «Elimina progetto». -![Eliminazione di un progetto dallo slot di gestione temporanea](/assets/img/delete_production.png) \ No newline at end of file +![Eliminazione di un progetto dallo slot di gestione temporanea](/assets/img/delete_production.png) diff --git a/docs/it/academy/tutorials_examples/dictionary.md b/docs/it/academy/tutorials_examples/dictionary.md index 5f7dfddcc9c..2660ec56733 100644 --- a/docs/it/academy/tutorials_examples/dictionary.md +++ b/docs/it/academy/tutorials_examples/dictionary.md @@ -1,10 +1,10 @@ # Funzionamento di un dizionario SubQuery -L'idea di un progetto di dizionario generico è quella di indicizzare tutti i dati di una blockchain e registrare gli eventi, gli estrinsechi e i relativi tipi (modulo e metodo) in un database in ordine di altezza del blocco. Un altro progetto può quindi interrogare questo punto finale < 0 > network.dictionary anziché quello predefinito < 0 > network.endpoint definito nel file manifesto. +L'idea di un progetto di dizionario generico è quella di indicizzare tutti i dati di una blockchain e registrare gli eventi, gli estrinsechi e i relativi tipi (modulo e metodo) in un database in ordine di altezza del blocco. Un altro progetto può quindi interrogare questo punto finale network.dictionary anziché quello predefinito network.endpoint definito nel file manifesto. -L'endpoint < 0 > network.dictionary è un parametro facoltativo che, se presente, rileverà e utilizzerà automaticamente. < 0 > network.endpoint è obbligatorio e non verrà compilato se non è presente. +L'endpoint network.dictionary è un parametro facoltativo che, se presente, rileverà e utilizzerà automaticamente. network.endpoint è obbligatorio e non verrà compilato se non è presente. -Prendendo come esempio il dizionario < 0 > SubQuery del progetto, il file < 1 > schema definisce le entità 3; estrinseco, eventi, specVersion. Queste 3 entità contengono 6, 4 e 2 campi rispettivamente. Quando questo progetto è in esecuzione, questi campi sono riflessi nelle tabelle del database. +Prendendo come esempio il dizionario SubQuery del progetto, il file schema definisce le entità 3; estrinseco, eventi, specVersion. Queste 3 entità contengono 6, 4 e 2 campi rispettivamente. Quando questo progetto è in esecuzione, questi campi sono riflessi nelle tabelle del database. ![tabella extrinsics](/assets/img/extrinsics_table.png) ![tabella eventi](/assets/img/events_table.png) ![tabella specversion](/assets/img/specversion_table.png) @@ -12,7 +12,7 @@ I dati della blockchain vengono quindi memorizzati in queste tabelle e indicizza ## Come incorporare un dizionario nel progetto? -Aggiungere < 0 > dizionario: https ://api.subquery.network/sq/subquery/dictionary-polkadot alla sezione di rete del manifesto. Eg: +Aggiungere dizionario: https://api.subquery.network/sq/subquery/dictionary-polkadot alla sezione di rete del manifesto. Eg: ```shell network: @@ -22,7 +22,7 @@ network: ## Cosa succede quando un dizionario NON è usato? -Quando un dizionario NON viene utilizzato, un indicizzatore preleva tutti i dati di blocco tramite l'api polkadot in base al flag < 0 > batch-size che è 100 per impostazione predefinita e lo inserisce in un buffer per l'elaborazione. In seguito, l'indicizzatore prende tutti questi blocchi dal buffer e, durante l'elaborazione dei dati del blocco, verifica se l'evento e l'estrinseco in questi blocchi corrispondono al filtro definito dall'utente. +Quando un dizionario NON viene utilizzato, un indicizzatore preleva tutti i dati di blocco tramite l'api polkadot in base al flag `batch-size` che è 100 per impostazione predefinita e lo inserisce in un buffer per l'elaborazione. In seguito, l'indicizzatore prende tutti questi blocchi dal buffer e, durante l'elaborazione dei dati del blocco, verifica se l'evento e l'estrinseco in questi blocchi corrispondono al filtro definito dall'utente. ## Cosa succede quando si utilizza un dizionario? @@ -38,6 +38,6 @@ Ciò significa che l'utilizzo di un dizionario può ridurre la quantità di dati ## Quando un dizionario NON è utile? -Quando < 0 > gestori di blocchi vengono utilizzati per raccogliere dati da una catena, ogni blocco deve essere elaborato. Pertanto, l'utilizzo di un dizionario in questo caso non offre alcun vantaggio e l'indicizzatore passa automaticamente all'approccio predefinito non dizionario. +Quando gestori di blocchi vengono utilizzati per raccogliere dati da una catena, ogni blocco deve essere elaborato. Pertanto, l'utilizzo di un dizionario in questo caso non offre alcun vantaggio e l'indicizzatore passa automaticamente all'approccio predefinito non dizionario. -Inoltre, quando si tratta di eventi o di eventi estrinseci che si verificano o esistono in ogni blocco come < 0 > timestamp.set , l'utilizzo di un dizionario non offrirà alcun vantaggio aggiuntivo. +Inoltre, quando si tratta di eventi o di eventi estrinseci che si verificano o esistono in ogni blocco come `timestamp.set`, l'utilizzo di un dizionario non offrirà alcun vantaggio aggiuntivo. diff --git a/docs/it/academy/tutorials_examples/run-indexer.md b/docs/it/academy/tutorials_examples/run-indexer.md index eeb77f0d92a..81af02487eb 100644 --- a/docs/it/academy/tutorials_examples/run-indexer.md +++ b/docs/it/academy/tutorials_examples/run-indexer.md @@ -8,7 +8,7 @@ ## Introduction -L'esecuzione di un nodo indicizzatore è un'altra opzione al di fuori dell'utilizzo di Docker o di un progetto ospitato in < 0 > Progetti SubQuery . Richiede più tempo e sforzo, ma migliorerà la comprensione di come SubQuery funziona sotto le copertine. +L'esecuzione di un nodo indicizzatore è un'altra opzione al di fuori dell'utilizzo di Docker o di un progetto ospitato in `Progetti SubQuery`. Richiede più tempo e sforzo, ma migliorerà la comprensione di come SubQuery funziona sotto le copertine. ## Postgres diff --git a/docs/it/build/install.md b/docs/it/build/install.md index ddfa2eb6c32..22ea46b5302 100644 --- a/docs/it/build/install.md +++ b/docs/it/build/install.md @@ -8,28 +8,30 @@ Lo strumento [@subql/cli](https://github.com/subquery/subql/tree/docs-new-sectio Installate SubQuery CLI globalmente sul vostro terminale usando Yarn o NPM: - ```bash npm install -g @subql/cli ``` - ```shell yarn global add @subql/cli ``` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` +@tab:active yarn `shell yarn global add @subql/cli ` ::: You can then run help to see available commands and usage provide by CLI: ```shell subql help ``` + ## Installare @subql/node Un nodo SubQuery è un'implementazione che estrae i dati della blockchain basati sul substrato secondo il progetto SubQuery e li salva in un database Postgres. Installate il nodo SubQuery globalmente sul vostro terminale usando Yarn o NPM: - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: Once installed, you can can start a node with: ```shell subql-node ``` + > Nota: se state usando Docker o ospitate il vostro progetto in SubQuery Projects, potete saltare questo passo. Questo perché il nodo SubQuery è già fornito nel contenitore Docker e nell'infrastruttura di hosting. ## Installare @subql/query @@ -38,7 +40,7 @@ La libreria di query SubQuery fornisce un servizio che ti permette di interrogar Installate la query SubQuery globalmente sul vostro terminale usando Yarn o NPM: - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> Nota: se state usando Docker o ospitate il vostro progetto in SubQuery Projects, potete anche saltare questo passo. Questo perché il nodo SubQuery è già fornito nel contenitore Docker e nell'infrastruttura di hosting. \ No newline at end of file +> Nota: se state usando Docker o ospitate il vostro progetto in SubQuery Projects, potete anche saltare questo passo. Questo perché il nodo SubQuery è già fornito nel contenitore Docker e nell'infrastruttura di hosting. diff --git a/docs/it/build/introduction.md b/docs/it/build/introduction.md index 442fc83b5a7..1d16d7d9abe 100644 --- a/docs/it/build/introduction.md +++ b/docs/it/build/introduction.md @@ -51,8 +51,8 @@ Per eseguire il tuo progetto SubQuery su un SubQuery Node ospitato localmente, d Eseguite il comando di compilazione dalla directory principale del progetto. - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### Alternative build options diff --git a/docs/it/build/manifest.md b/docs/it/build/manifest.md index e744ddddef4..8737af44f7d 100644 --- a/docs/it/build/manifest.md +++ b/docs/it/build/manifest.md @@ -4,7 +4,7 @@ Il file Manifest `project.yaml` può essere visto come un punto di ingresso del Il manifesto può essere in formato YAML o JSON. In questo documento useremo YAML in tutti gli esempi. Di seguito è riportato un esempio standard di un `project.yaml` di base. - ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` @tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## Migrating from v0.0.1 to v0.2.0 @@ -81,9 +81,9 @@ Defines the data that will be filtered and extracted and the location of the map ### Mapping Spec -| Field | v0.0.1 | v0.2.0 | Description | -| ---------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **file** | String | 𐄂 | Path to the mapping entry | +| Field | v0.0.1 | v0.2.0 | Description | +| ---------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **file** | String | 𐄂 | Path to the mapping entry | | **handlers & filters** | [Default handlers and filters](./manifest/#mapping-handlers-and-filters) | Default handlers and filters,
[Custom handlers and filters](#custom-data-sources) | Elenca tutte le [mapping functions](./mapping/polkadot.md) e i relativi tipi di gestori, con filtri di mappatura aggiuntivi.

For custom runtimes mapping handlers please view [Custom data sources](#custom-data-sources) | ## Data Sources and Mapping @@ -104,8 +104,8 @@ The following table explains filters supported by different handlers. **Your SubQuery project will be much more efficient when you only use event and call handlers with appropriate mapping filters** -| Handler | Supported filter | -| ------------------------------------------ | ---------------------------- | +| Handler | Supported filter | +| --------------------------------------------------- | ---------------------------- | | [BlockHandler](./mapping/polkadot.md#block-handler) | `specVersion` | | [EventHandler](./mapping/polkadot.md#event-handler) | `module`,`method` | | [CallHandler](./mapping/polkadot.md#call-handler) | `module`,`method` ,`success` | @@ -153,8 +153,8 @@ We support the additional types used by substrate runtime modules, `typesAlias`, In the v0.2.0 example below, the `network.chaintypes` are pointing to a file that has all the custom types included, This is a standard chainspec file that declares the specific types supported by this blockchain in either `.json`, `.yaml` or `.js` format. - `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` - `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: To use typescript for your chain types file include it in the `src` folder (e.g. `./src/types.ts`), run `yarn build` and then point to the generated js file located in the `dist` folder. @@ -171,7 +171,7 @@ Things to note about using the chain types file with extension `.ts` or `.js`: Here is an example of a `.ts` chain types file: - `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` ::: ## Custom Data Sources @@ -197,6 +197,6 @@ Users can add a `filter` on `dataSources` to decide which data source to run on Below is an example that shows different data sources for both the Polkadot and Kusama networks. - `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` +::: code-tabs @tab v0.0.1 `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` - +::: diff --git a/docs/it/build/mapping.md b/docs/it/build/mapping.md index 2dc8590b25b..3f65df618ab 100644 --- a/docs/it/build/mapping.md +++ b/docs/it/build/mapping.md @@ -67,9 +67,9 @@ Il nostro obiettivo è coprire tutte le origini dati per gli utenti per i gestor Queste sono le interfacce che attualmente supportiamo: -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) will query the current block. -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) will make multiple queries of the same type at the current block. -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) will make multiple queries of different types at the current block. +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) will query the **current** block. +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) will make multiple queries of the **same** type at the current block. +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) will make multiple queries of **different** types at the current block. Queste sono le interfacce che attualmente **NON** supportiamo: diff --git a/docs/it/build/substrate-evm.md b/docs/it/build/substrate-evm.md index c7897ced956..f83402c1538 100644 --- a/docs/it/build/substrate-evm.md +++ b/docs/it/build/substrate-evm.md @@ -74,7 +74,7 @@ Works in the same way as [substrate/EventHandler](../create/mapping/#event-handl | ------ | ------------ | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | topics | String array | Transfer(address indexed from,address indexed to,uint256 value) | The topics filter follows the Ethereum JSON-PRC log filters, more documentation can be found [here](https://docs.ethers.io/v5/concepts/events/). | -Note on topics: +**Note on topics:** There are a couple of improvements from basic log filters: - Topics don't need to be 0 padded @@ -97,17 +97,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Contract address (or recipient if transfer) to filter, if `null` should be for contract creation - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -122,7 +122,7 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## Known Limitations diff --git a/docs/it/faqs/faqs.md b/docs/it/faqs/faqs.md index eab94389f0e..89ba9691a63 100644 --- a/docs/it/faqs/faqs.md +++ b/docs/it/faqs/faqs.md @@ -16,7 +16,7 @@ SubQuery also provides free, production grade hosting of projects for developers **The SubQuery Network** -The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. +The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. More information [here](/subquery_network/introduction.md). @@ -26,7 +26,7 @@ The best way to get started with SubQuery is to try out our [Hello World tutoria ## Come posso contribuire o fornire feedback a SubQuery? -Amiamo i contributi e il feedback della comunità. To contribute the code, fork the repository of your interest and make your changes. Quindi inviate una PR o una richiesta di estrazione. Don't forget to test as well. Also check out our contributions guidelines. +Amiamo i contributi e il feedback della comunità. To contribute the code, fork the repository of your interest and make your changes. Quindi inviate una PR o una richiesta di estrazione. Don't forget to test as well. Also check out our [contributions guidelines](../miscellaneous/contributing.html). To give feedback, contact us at hello@subquery.network or jump onto our [discord channel](https://discord.com/invite/78zg8aBSMG). @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Note that it is recommended to use `--force-clean` when changing the `startBlock` within the project manifest (`project.yaml`) in order to begin reindexing from the configured block. If `startBlock` is changed without a `--force-clean` of the project, then the indexer will continue indexing with the previously configured `startBlock`. - ## How can I optimise my project to speed it up? Performance is a crucial factor in each project. Fortunately, there are several things you could do to improve it. Here is the list of some suggestions: @@ -89,13 +88,13 @@ Performance is a crucial factor in each project. Fortunately, there are several - Set the start block to when the contract was initialised. - Always use a [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (we can help create one for your new network). - Optimise your schema design, keep it as simple as possible. - - Try to reduce unnecessary fields and columns. - - Create indexes as needed. + - Try to reduce unnecessary fields and columns. + - Create indexes as needed. - Use parallel/batch processing as often as possible. - - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. - - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. - - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. + - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. + - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. + - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. - Making API calls to query state can be slow. You could try to minimise calls where possible and to use `extrinsic/transaction/event` data. - Use `worker threads` to move block fetching and block processing into its own worker thread. It could speed up indexing by up to 4 times (depending on the particular project). You can easily enable it using the `-workers=` flag. Note that the number of available CPU cores strictly limits the usage of worker threads. For now, it is only available for Substrate and Cosmos and will soon be integrated for Avalanche. - Note that `JSON.stringify` doesn’t support native `BigInts`. Our logging library will do this internally if you attempt to log an object. We are looking at a workaround for this. -- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. \ No newline at end of file +- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. diff --git a/docs/it/miscellaneous/contributing.md b/docs/it/miscellaneous/contributing.md index 8f148e18c7a..c39fc0fdd5a 100644 --- a/docs/it/miscellaneous/contributing.md +++ b/docs/it/miscellaneous/contributing.md @@ -2,7 +2,7 @@ Benvenuto e un grande grazie per aver considerato di contribuire a questo progetto SubQuery! Insieme possiamo aprire la strada verso un futuro più decentralizzato. -::: info Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: +::: tip Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: What follows is a set of guidelines (not rules) for contributing to SubQuery. Following these guidelines will help us make the contribution process easy and effective for everyone involved. It also communicates that you agree to respect the time of the developers managing and developing this project. In return, we will reciprocate that respect by addressing your issue, considering changes, collaborating on improvements, and helping you finalise your pull requests. @@ -14,8 +14,8 @@ We take our open source community projects and responsibility seriously and hold Contributions to our repositories are made through Issues and Pull Requests (PRs). A few general guidelines that cover both: -* Cerca le questioni e i PR esistenti prima di crearne uno tuo. -* Lavoriamo duramente per assicurarci che i problemi siano gestiti tempestivamente ma, a seconda dell'impatto, potrebbe essere necessario un po' di tempo per indagare sulla causa principale. Un'amichevole menzione @ nel thread dei commenti al presentatore o a un collaboratore può aiutare ad attirare l'attenzione se il tuo problema è bloccante. +- Cerca le questioni e i PR esistenti prima di crearne uno tuo. +- Lavoriamo duramente per assicurarci che i problemi siano gestiti tempestivamente ma, a seconda dell'impatto, potrebbe essere necessario un po' di tempo per indagare sulla causa principale. Un'amichevole menzione @ nel thread dei commenti al presentatore o a un collaboratore può aiutare ad attirare l'attenzione se il tuo problema è bloccante. ## Come contribuire @@ -23,32 +23,32 @@ Contributions to our repositories are made through Issues and Pull Requests (PRs Bugs are tracked as GitHub issues. When logging an issue, explain the problem and include additional details to help maintainers reproduce the problem: -* Usate un titolo chiaro e descrittivo per la questione per identificare il problema. -* Descrivete i passi esatti per riprodurre il problema. -* Descrivi il comportamento che hai osservato dopo aver seguito i passi. -* Spiega quale comportamento ti aspettavi di vedere invece e perché. -* Includi degli screenshot se possibile. +- Usate un titolo chiaro e descrittivo per la questione per identificare il problema. +- Descrivete i passi esatti per riprodurre il problema. +- Descrivi il comportamento che hai osservato dopo aver seguito i passi. +- Spiega quale comportamento ti aspettavi di vedere invece e perché. +- Includi degli screenshot se possibile. ### Invio di richieste di pull In general, we follow the "fork-and-pull" Git workflow: -* Fork the repository to your own Github account. -* Clone the project to your machine. -* Create a branch locally with a succinct but descriptive name. -* Commit changes to the branch. -* Following any formatting and testing guidelines specific to this repo. -* Push changes to your fork. -* Open a PR in our repository. +- Fork the repository to your own Github account. +- Clone the project to your machine. +- Create a branch locally with a succinct but descriptive name. +- Commit changes to the branch. +- Following any formatting and testing guidelines specific to this repo. +- Push changes to your fork. +- Open a PR in our repository. ## Convenzioni di codifica ### Messaggi di commit di Git -* Use the present tense ("Add feature" not "Added feature"). -* Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). -* Limit the first line to 72 characters or less. +- Use the present tense ("Add feature" not "Added feature"). +- Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). +- Limit the first line to 72 characters or less. ### JavaScript Styleguide -* All JavaScript code is linted with Prettier and ESLint. +- All JavaScript code is linted with Prettier and ESLint. diff --git a/docs/it/quickstart/helloworld-localhost.md b/docs/it/quickstart/helloworld-localhost.md index 9d3b421f191..b369894390b 100644 --- a/docs/it/quickstart/helloworld-localhost.md +++ b/docs/it/quickstart/helloworld-localhost.md @@ -88,8 +88,8 @@ cd subqlHelloWorld Ora fate un'installazione di yarn o node per installare le varie dipendenze. - ```shell yarn install ``` - ```bash npm install ``` +::: code-tabs @tab:active yarn `shell yarn install ` +@tab npm `bash npm install ` ::: An example of `yarn install` @@ -109,8 +109,8 @@ success Saved lockfile. Ora esegui `yarn codegen` per generare Typescript dallo schema GraphQL. - ```shell yarn codegen ``` - ```bash npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `bash npm run-script codegen ` ::: An example of `yarn codegen` @@ -133,8 +133,8 @@ $ ./node_modules/.bin/subql codegen Il prossimo passo è costruire il codice con `yarn build`. - ```shell yarn build ``` - ```bash npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: An example of `yarn build` diff --git a/docs/it/quickstart/quickstart-avalanche.md b/docs/it/quickstart/quickstart-avalanche.md index ebee0b8c298..dea3d8927fc 100644 --- a/docs/it/quickstart/quickstart-avalanche.md +++ b/docs/it/quickstart/quickstart-avalanche.md @@ -59,8 +59,8 @@ After the initialisation process is complete, you should see a folder with your Last, under the project directory, run following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -92,8 +92,8 @@ type PangolinApproval @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory. Do this now.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -169,7 +169,7 @@ For more information about mapping functions, check out our documentation under In order run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -183,7 +183,7 @@ All configuration that controls how a SubQuery node is run is defined in this `d Under the project directory run following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Be patient here. diff --git a/docs/it/quickstart/quickstart-cosmos.md b/docs/it/quickstart/quickstart-cosmos.md index 32366fbd189..d41507a9961 100644 --- a/docs/it/quickstart/quickstart-cosmos.md +++ b/docs/it/quickstart/quickstart-cosmos.md @@ -44,8 +44,8 @@ After the initialisation process is complete, you should see a folder with your Last, under the project directory, run following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -75,8 +75,8 @@ type Vote @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory. Do this now.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -145,7 +145,7 @@ For more information about mapping functions, check out our documentation under In order run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -159,7 +159,7 @@ All configuration that controls how a SubQuery node is run is defined in this `d Under the project directory run following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Be patient here. @@ -173,10 +173,9 @@ For a new SubQuery starter project, you can try the following query to get a tas ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id diff --git a/docs/it/quickstart/quickstart-polkadot.md b/docs/it/quickstart/quickstart-polkadot.md index 6c68a29a9cb..66cd1cd66be 100644 --- a/docs/it/quickstart/quickstart-polkadot.md +++ b/docs/it/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql init You'll be asked certain questions as the SubQuery project is initalised: - Project name: A project name for your SubQuery project -- Network family: The layer-1 blockchain network family that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use *"Substrate"* -- Network: The specific network that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use *"Polkadot"* -- Template project: Select a SubQuery template project that will provide a starting point to begin development. We suggest selecting the *"subql-starter"* project. -- RPC endpoint: Provide an HTTPS URL to a running RPC endpoint that will be used by default for this project. You can quickly access public endpoints for different Polkadot networks, create your own private dedicated node using [OnFinality](https://app.onfinality.io) or just use the default Polkadot endpoint. This RPC node must be an archive node (have the full chain state). For this guide, we will use the default value *"https://polkadot.api.onfinality.io"* +- Network family: The layer-1 blockchain network family that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use _"Substrate"_ +- Network: The specific network that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use _"Polkadot"_ +- Template project: Select a SubQuery template project that will provide a starting point to begin development. We suggest selecting the _"subql-starter"_ project. +- RPC endpoint: Provide an HTTPS URL to a running RPC endpoint that will be used by default for this project. You can quickly access public endpoints for different Polkadot networks, create your own private dedicated node using [OnFinality](https://app.onfinality.io) or just use the default Polkadot endpoint. This RPC node must be an archive node (have the full chain state). For this guide, we will use the default value _"https://polkadot.api.onfinality.io"_ - Git repository: Provide a Git URL to a repo that this SubQuery project will be hosted in (when hosted in SubQuery Explorer) or accept the provided default. - Authors: Enter the owner of this SubQuery project here (e.g. your name!) or accept the provided default. - Description: Provide a short paragraph about your project that describes what data it contains and what users can do with it or accept the provided default. @@ -57,8 +57,8 @@ After the initialisation process is complete, you should see that a folder with Last, under the project directory, run the following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -88,8 +88,8 @@ type Transfer @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -133,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { - // Get data from the event - // The balances.transfer event has the following payload \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Create the new transfer entity - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Get data from the event + // The balances.transfer event has the following payload \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Create the new transfer entity + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -160,7 +160,7 @@ For more information about mapping functions, check out our documentation under In order to run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you will need to rebuild your project** @@ -174,7 +174,7 @@ All configuration that controls how a SubQuery node is run is defined in the `do Under the project directory, run the following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you should see a running SubQuery node in the terminal screen. @@ -189,10 +189,7 @@ For a new SubQuery starter project, try the following query to understand how it ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount diff --git a/docs/it/quickstart/quickstart-terra.md b/docs/it/quickstart/quickstart-terra.md index 4baaf4b9b4e..47c85151a72 100644 --- a/docs/it/quickstart/quickstart-terra.md +++ b/docs/it/quickstart/quickstart-terra.md @@ -45,11 +45,11 @@ subql init You'll be asked certain questions as the SubQuery project is initalised: - Project Name: A name for your SubQuery project -- Network Family: The layer-1 blockchain network family that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use *"Terra"* -- Network: The specific network that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use *"Terra"* -- Template: Select a SubQuery project template that will provide a starting point to begin development, we suggest selecting the *"Starter project"* +- Network Family: The layer-1 blockchain network family that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use _"Terra"_ +- Network: The specific network that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use _"Terra"_ +- Template: Select a SubQuery project template that will provide a starting point to begin development, we suggest selecting the _"Starter project"_ - Git repository (Optional): Provide a Git URL to a repo that this SubQuery project will be hosted in (when hosted in SubQuery Explorer) -- RPC endpoint (Required): Provide a HTTPS URL to a running RPC endpoint that will be used by default for this project. This RPC node must be an archive node (have the full chain state). For this guide we will use the default value *"https://terra-columbus-5.beta.api.onfinality.io"* +- RPC endpoint (Required): Provide a HTTPS URL to a running RPC endpoint that will be used by default for this project. This RPC node must be an archive node (have the full chain state). For this guide we will use the default value _"https://terra-columbus-5.beta.api.onfinality.io"_ - Authors (Required): Enter the owner of this SubQuery project here (e.g. your name!) - Description (Optional): You can provide a short paragraph about your project that describe what data it contains and what users can do with it - Version (Required): Enter a custom version number or use the default (`1.0.0`) @@ -59,8 +59,8 @@ After the initialisation process is complete, you should see a folder with your Last, under the project directory, run following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -91,8 +91,8 @@ type Transfer @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory. Do this now.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -143,30 +143,30 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Print debugging data from the event - // logger.info(JSON.stringify(event)); - - // Create the new transfer entity with a unique ID - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Print debugging data from the event + // logger.info(JSON.stringify(event)); + + // Create the new transfer entity with a unique ID + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` @@ -178,7 +178,7 @@ For more information about mapping functions, check out our documentation under In order run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -192,7 +192,7 @@ All configuration that controls how a SubQuery node is run is defined in this `d Under the project directory run following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Be patient here. @@ -207,10 +207,7 @@ For a new SubQuery starter project, you can try the following query to get a tas ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash diff --git a/docs/it/quickstart/quickstart.md b/docs/it/quickstart/quickstart.md index 7b73707289a..d80fced0f30 100644 --- a/docs/it/quickstart/quickstart.md +++ b/docs/it/quickstart/quickstart.md @@ -89,8 +89,8 @@ After you complete the initialisation process, you will see a folder with your p Finally, run the following command to install the new project’s dependencies from within the new project's directory. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: You have now initialised your first SubQuery project with just a few simple steps. Let’s now customise the standard template project for a specific blockchain of interest. @@ -104,4 +104,4 @@ There are 3 important files that need to be modified. These are: 2. The Project Manifest in `project.yaml`. 3. The Mapping functions in `src/mappings/` directory. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/it/run_publish/connect.md b/docs/it/run_publish/connect.md index 2db154b8305..3e5ecf629b6 100644 --- a/docs/it/run_publish/connect.md +++ b/docs/it/run_publish/connect.md @@ -2,10 +2,10 @@ Once your deployment has succesfully completed and our nodes have indexed your data from the chain, you'll be able to connect to your project via the displayed Query endpoint. -![Progetto distribuito e sincronizzato](/assets/img/projects-deploy-sync.png) +![Progetto distribuito e sincronizzato](/assets/img/projects_deploy_sync.png) In alternativa, puoi cliccare sui tre puntini accanto al titolo del tuo progetto e visualizzarlo su SubQuery Explorer. There you can use the in browser playground to get started. -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/it/run_publish/query.md b/docs/it/run_publish/query.md index 8ddeca7197c..95a5d54a0a9 100644 --- a/docs/it/run_publish/query.md +++ b/docs/it/run_publish/query.md @@ -12,4 +12,4 @@ Noterai anche che il SubQuery Explorer fornisce un parco giochi per scoprire i d On the top right of the playground, you'll find a _Docs_ button that will open a documentation draw. Questa documentazione è generata automaticamente e vi aiuta a trovare quali entità e metodi potete interrogare. -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/it/run_publish/references.md b/docs/it/run_publish/references.md index d8875888374..9330af125b2 100644 --- a/docs/it/run_publish/references.md +++ b/docs/it/run_publish/references.md @@ -21,10 +21,10 @@ COMMANDS This command is uses webpack to generate a bundle of a subquery project. -| Options | Descrizione | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | local folder of subquery project (if not in folder already) | -| -o, --output | specify output folder of build e.g. build-folder | +| Options | Descrizione | +| ------------------ | ----------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | local folder of subquery project (if not in folder already) | +| -o, --output | specify output folder of build e.g. build-folder | | --mode=(production | prod | development | dev) | [ default: production ] | - With `subql build` you can specify additional entry points in exports field although it will always build `index.ts` automatically. @@ -106,7 +106,7 @@ This displays the current version. ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -346,7 +346,7 @@ This will move block fetching and processing into a worker. By default, this fea It is at an early experimental stage at the moment, but we plan to enable it by default. ::: -::: info Note +::: tip Note This feature is available for Substrate and Cosmos, and soon will be integrated for Avalanche. ::: diff --git a/docs/it/run_publish/run.md b/docs/it/run_publish/run.md index b98c2543378..562e49b153f 100644 --- a/docs/it/run_publish/run.md +++ b/docs/it/run_publish/run.md @@ -4,7 +4,7 @@ This guide works through how to run a local SubQuery node on your infrastructure ## Using Docker -An alternative solution is to run a Docker Container, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. +An alternative solution is to run a **Docker Container**, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. Under the project directory run the following command: @@ -12,7 +12,7 @@ Under the project directory run the following command: docker-compose pull && docker-compose up ``` -::: info Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: +::: tip Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: ## Running an Indexer (subql/node) @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Installation - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: Once installed, you can start a node with the following command: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Point to local project path - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ Depending on the configuration of your Postgres database (e.g. a different datab #### Specify a configuration file - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ When the indexer first indexes the chain, fetching single blocks will significan #### Run in local mode - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Switching to local model will create Postgres tables in the default schema `public`. diff --git a/docs/it/run_publish/subscription.md b/docs/it/run_publish/subscription.md index 9bbc2661f96..29cf660d492 100644 --- a/docs/it/run_publish/subscription.md +++ b/docs/it/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery now also supports Graphql Subscriptions. Like queries, subscriptions en Subscriptions are very useful when you want your client application to change data or show some new data as soon as that change occurs or the new data is available. Subscriptions allow you to _subscribe_ to your SubQuery project for changes. -::: info Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: +::: tip Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: ## How to Subscribe to an Entity diff --git a/docs/it/run_publish/upgrade.md b/docs/it/run_publish/upgrade.md index 8b905941746..dc785fab231 100644 --- a/docs/it/run_publish/upgrade.md +++ b/docs/it/run_publish/upgrade.md @@ -77,10 +77,10 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n Una volta che il tuo deployment è stato completato con successo e i nostri nodi hanno indicizzato i tuoi dati dalla catena, sarai in grado di connetterti al tuo progetto tramite l'endpoint GraphQL Query visualizzato. -![Progetto distribuito e sincronizzato](/assets/img/projects-deploy-sync.png) +![Progetto distribuito e sincronizzato](/assets/img/projects_deploy_sync.png) In alternativa, puoi cliccare sui tre puntini accanto al titolo del tuo progetto e visualizzarlo su SubQuery Explorer. There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/it/subquery_network/introduction.md b/docs/it/subquery_network/introduction.md index 295d4a0e0d8..6394db677b8 100644 --- a/docs/it/subquery_network/introduction.md +++ b/docs/it/subquery_network/introduction.md @@ -18,22 +18,22 @@ There’s a role for everyone in the network, from highly technical developers t Consumers will ask the SubQuery Network for specific data for their dApps or tools, and pay an advertised amount of SQT for each request. -::: info Note Learn more about [Consumers](./consumers.md). ::: +::: tip Note Learn more about [Consumers](./consumers.md). ::: ### Indexers Indexers will run and maintain high quality SubQuery projects in their own infrastructure, running both the indexer and query service, and will be rewarded in SQT for the requests that they serve. -::: info Note Learn more about [Indexers](./indexers.md). ::: +::: tip Note Learn more about [Indexers](./indexers.md). ::: ### Delegators Delegators will participate in the Network by supporting their favourite Indexers to earn rewards based on the work those indexers do. -::: info Note Learn more about [Delegators](./delegators.md). ::: +::: tip Note Learn more about [Delegators](./delegators.md). ::: ### Architects Architects are the builders of the SubQuery projects that the Network runs on. They author and publish SubQuery projects for the Network to index and run. -::: info Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: +::: tip Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: diff --git a/docs/ja/README.md b/docs/ja/README.md index 81325593827..0c3df69330f 100644 --- a/docs/ja/README.md +++ b/docs/ja/README.md @@ -4,7 +4,7 @@

Build Faster dApps withSubQuery Academy

-

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


+

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

@@ -12,7 +12,7 @@

Get a Kick-Start With Our Quick Start Guide

-

Build your first SubQuery project in less than 10 mins with simple guided steps. +

Build your first SubQuery project in less than 10 mins with simple guided steps.

Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

@@ -134,8 +134,7 @@
- - + diff --git a/docs/ja/academy/tutorials_examples/run-indexer.md b/docs/ja/academy/tutorials_examples/run-indexer.md index 79ee8b7e9b2..9fedd61bc6b 100644 --- a/docs/ja/academy/tutorials_examples/run-indexer.md +++ b/docs/ja/academy/tutorials_examples/run-indexer.md @@ -8,13 +8,13 @@ ## はじめに -Docker を使用するか、[SubQuery Projects](https://project.subquery.network/) でプロジェクトをホストしてもらう以外に、インデクサノードを実行することもできます。 より多くの時間と労力を必要としますが、SubQueryがどのように機能するのか、その理解を深めることができます。 +Docker を使用するか、[SubQuery Projects](https://project.subquery.network/) でプロジェクトをホストしてもらう以外に、インデクサノードを実行することもできます。 より多くの時間と労力を必要としますが、SubQuery がどのように機能するのか、その理解を深めることができます。 ## Postgres -インフラストラクチャ上でインデクサノードを実行するには、Postgres データベースのセットアップが必要です。 Postgresは [ここ](https://www.postgresql.org/download/)からインストールできます 。バージョンが12以上であることを確認してください。 +インフラストラクチャ上でインデクサノードを実行するには、Postgres データベースのセットアップが必要です。 Postgres は [ここ](https://www.postgresql.org/download/)からインストールできます 。バージョンが 12 以上であることを確認してください。 -## subql/nodeをインストールする +## subql/node をインストールする 次に、SubQuery ノードを実行するには、次のコマンドを実行します。 @@ -31,7 +31,7 @@ npm install -g @subql/node 0.19.1 ``` -## DBコンフィグの設定 +## DB コンフィグの設定 次に、以下の環境変数を設定する必要があります。 @@ -55,8 +55,8 @@ subql-node -f . もしプロジェクトがない場合は、`git clone https://github.com/subquery/subql-helloworld` を実行してください。 インデクサノードが起動し、ブロックのインデックス作成を開始するのが見えるはずです。 -## Postgresの検査 +## Postgres の検査 -Postgresに移動すると、作成された2つのテーブルが表示されます。 `public.subquery` と `subquery_1.starter_entities`です。 +Postgres に移動すると、作成された 2 つのテーブルが表示されます。 `public.subquery` と `subquery_1.starter_entities`です。 -`public ubqueries ` には、インデクサが「現在の状態を理解する」ために開始時にチェックする行が 1 つだけ含まれており、どこから継続するかが分かります。 `starter_entities` テーブルには、インデックスが含まれます。 データを表示するには、`select (*) from subquery_1.starter_entities` を実行してください。 +`public subqueries` には、インデクサが「現在の状態を理解する」ために開始時にチェックする行が 1 つだけ含まれており、どこから継続するかが分かります。 `starter_entities` テーブルには、インデックスが含まれます。 データを表示するには、`select (*) from subquery_1.starter_entities` を実行してください。 diff --git a/docs/ja/build/install.md b/docs/ja/build/install.md index ab3d1917648..d339ee62d29 100644 --- a/docs/ja/build/install.md +++ b/docs/ja/build/install.md @@ -1,4 +1,4 @@ -# SubQueryのインストール +# SubQuery のインストール SubQuery プロジェクトの作成には、さまざまなコンポーネントが必要です。 [@subql/cli](https://github.com/subquery/subql/tree/docs-new-section/packages/cli) ツールは、SubQuery プロジェクトの作成に使用されます。 インデクサを実行するには、 [@subql/node](https://github.com/subquery/subql/tree/docs-new-section/packages/node) コンポーネントが必要です。 クエリを生成するには、 [@subql/query](https://github.com/subquery/subql/tree/docs-new-section/packages/query) ライブラリが必要です。 @@ -8,37 +8,39 @@ SubQuery プロジェクトの作成には、さまざまなコンポーネン Yarn または NPM を使用して、端末に SubQuery CLI をインストールします。 - ```bash npm install -g @subql/cli ``` - ```shell yarn global add @subql/cli ``` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` +@tab:active yarn `shell yarn global add @subql/cli ` ::: -helpを実行すると、CLIで利用可能なコマンドや使い方が表示されます。 +help を実行すると、CLI で利用可能なコマンドや使い方が表示されます。 ```shell subql help ``` + ## @subql/node をインストールする -SubQueryノードは、SubQueryプロジェクトごとにSubstrateベースのブロックチェーンデータを抽出し、Postgresデータベースに保存します。 +SubQuery ノードは、SubQuery プロジェクトごとに Substrate ベースのブロックチェーンデータを抽出し、Postgres データベースに保存します。 -SubQueryノードをYarnやNPMを使って端末にインストールします。 +SubQuery ノードを Yarn や NPM を使って端末にインストールします。 - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: インストールすると、次のようにノードを起動することができます。 ```shell subql-node ``` -> 注意: Dockerを使用している場合、またはSubQuery Projectsでプロジェクトをホスティングしている場合は、この手順をスキップできます。 これは、SubQueryノードがDockerコンテナとホスティングインフラストラクチャにすでに提供されているためです。 -## @subql/queryをインストールする +> 注意: Docker を使用している場合、または SubQuery Projects でプロジェクトをホスティングしている場合は、この手順をスキップできます。 これは、SubQuery ノードが Docker コンテナとホスティングインフラストラクチャにすでに提供されているためです。 + +## @subql/query をインストールする -SubQueryクエリライブラリは、ブラウザを介した「プレイグラウンド」環境でプロジェクトにクエリを発行するサービスを提供します。 +SubQuery クエリライブラリは、ブラウザを介した「プレイグラウンド」環境でプロジェクトにクエリを発行するサービスを提供します。 Yarn または NPM を使用して、端末に SubQuery クエリ をインストールします。 - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> 注意: Dockerを使用している場合、またはSubQuery Projectsでプロジェクトをホスティングしている場合は、この手順をスキップできます。 これは、SubQueryノードがDockerコンテナとホスティングインフラストラクチャにすでに提供されているためです。 \ No newline at end of file +> 注意: Docker を使用している場合、または SubQuery Projects でプロジェクトをホスティングしている場合は、この手順をスキップできます。 これは、SubQuery ノードが Docker コンテナとホスティングインフラストラクチャにすでに提供されているためです。 diff --git a/docs/ja/build/introduction.md b/docs/ja/build/introduction.md index bcb61350ff5..0a212fef28e 100644 --- a/docs/ja/build/introduction.md +++ b/docs/ja/build/introduction.md @@ -51,8 +51,8 @@ yarn codegen プロジェクトのルートディレクトリから build コマンドを実行します。 - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### 代替のビルド オプション @@ -88,7 +88,7 @@ exports フィールドで指定されているかどうかに関わらず、 `i ## ロギング -`console.log` メソッドは **サポートされなくなりました**。 代わりに、 `logger` モジュールが型に組み込まれています。 つまり、さまざまなロガーレベルを受け入れるロガーをサポートすることができます。 +`console.log` メソッドは **サポートされなくなりました**。 代わりに、 `logger` モジュールが型に組み込まれています。 つまり、さまざまなロガーレベルを受け入れるロガーをサポートすることができます。 ```typescript logger.info("Info level message"); diff --git a/docs/ja/build/manifest.md b/docs/ja/build/manifest.md index 09fb25b5f35..1b83d8c0727 100644 --- a/docs/ja/build/manifest.md +++ b/docs/ja/build/manifest.md @@ -4,7 +4,7 @@ マニフェストは YAML または JSON 形式で使用できます。 このドキュメントでは、すべての例で YAML を使用します。 以下は、基本的な `project.yaml` の例です。 - ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` @tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## v0.0.1 から v0.2.0 への移行 @@ -81,9 +81,9 @@ ### Mapping の仕様 -| フィールド | v0.0.1 | v0.2.0 | 説明 | -| ---------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| **file** | String | 𐄂 | マッピングエントリへのパス | +| フィールド | v0.0.1 | v0.2.0 | 説明 | +| ---------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **file** | String | 𐄂 | マッピングエントリへのパス | | **handlers & filters** | [デフォルトのハンドラとフィルタ](./manifest/#mapping-handlers-and-filters) | デフォルトのハンドラとフィルタ、
[カスタムハンドラとフィルタ](#custom-data-sources) | 追加のマッピングフィルタを使用して、すべての [マッピング関数](./mapping/polkadot.md) とそれに対応するハンドラータイプをリストします。

カスタムランタイムマッピングハンドラについては、 [カスタムデータソース](#custom-data-sources) を参照してください。 | ## データソースとマッピング @@ -104,8 +104,8 @@ dataSources: **SubQuery プロジェクトは、イベントと適切なマッピングフィルタを使用するだけで、より効率的になります。** -| ハンドラ | サポートされるフィルタ | -| ------------------------------------------ | ---------------------------- | +| ハンドラ | サポートされるフィルタ | +| --------------------------------------------------- | ---------------------------- | | [BlockHandler](./mapping/polkadot.md#block-handler) | `specVersion` | | [EventHandler](./mapping/polkadot.md#event-handler) | `module`,`method` | | [CallHandler](./mapping/polkadot.md#call-handler) | `module`,`method` ,`success` | @@ -153,8 +153,8 @@ substrate ランタイムモジュールで使用される追加の型をサポ 以下の v0.2.0 の例では、`network.chaintypes`は、すべてのカスタムタイプが含まれているファイルを指しています。 これは、このブロックチェーンがサポートする特定のタイプを`.json`または`.yaml`形式で宣言する標準的なチェーンスペックファイルです。 - `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` - `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: To use typescript for your chain types file include it in the `src` folder (e.g. `./src/types.ts`), run `yarn build` and then point to the generated js file located in the `dist` folder. @@ -171,7 +171,7 @@ network: 以下は、 `.ts` チェーンタイプファイルの例です: - `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` ::: ## カスタムデータソース @@ -197,6 +197,6 @@ network: 以下は Polkadot と Kusama ネットワークの異なるデータソースを示す例です。 - `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` +::: code-tabs @tab v0.0.1 `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` - +::: diff --git a/docs/ja/build/mapping.md b/docs/ja/build/mapping.md index 96e5a10115f..cc41cb57750 100644 --- a/docs/ja/build/mapping.md +++ b/docs/ja/build/mapping.md @@ -67,9 +67,9 @@ export async function handleCall(extrinsic: SubstrateExtrinsic): Promise { これらは現在サポートされているインターフェースです: -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) は 現在の ブロックを問い合わせます。 -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) は、現在のブロックで 同じ 型の複数のクエリを実行します。 -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) は、現在のブロックで 異なる 型の複数のクエリを実行します。 +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) は **現在の** ブロックを問い合わせます。 +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) は、現在のブロックで **同じ** 型の複数のクエリを実行します。 +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) は、現在のブロックで **異なる** 型の複数のクエリを実行します。 これらは現在サポート **されていない** インターフェイスです: diff --git a/docs/ja/build/substrate-evm.md b/docs/ja/build/substrate-evm.md index d3ab24b4430..ccb37b5d247 100644 --- a/docs/ja/build/substrate-evm.md +++ b/docs/ja/build/substrate-evm.md @@ -1,10 +1,10 @@ -# SubstrateのEVMサポート +# Substrate の EVM サポート -MoonbeamとMoonriverのEVM用にカスタムデータソースプロセッサを提供しています。 これは、Moonbeamのネットワーク上のEVMとSubstrateのアクティビティを1つのSubQueryプロジェクトでフィルタリングし、インデックスを作成するシンプルな方法です。 +Moonbeam と Moonriver の EVM 用にカスタムデータソースプロセッサを提供しています。 これは、Moonbeam のネットワーク上の EVM と Substrate のアクティビティを 1 つの SubQuery プロジェクトでフィルタリングし、インデックスを作成するシンプルな方法です。 サポートされているネットワーク: -| ネットワーク名 | Websocket エンドポイント | ディクショナリエンドポイント | +| ネットワーク名 | Websocket エンドポイント | ディクショナリエンドポイント | | -------------- | -------------------------------------------------- | -------------------------------------------------------------------- | | Moonbeam | `wss://moonbeam.api.onfinality.io/public-ws` | `https://api.subquery.network/sq/subquery/moonbeam-dictionary` | | Moonriver | `wss://moonriver.api.onfinality.io/public-ws` | `https://api.subquery.network/sq/subquery/moonriver-dictionary` | @@ -20,34 +20,34 @@ MoonbeamとMoonriverのEVM用にカスタムデータソースプロセッサを ## データソース仕様 -| フィールド | 型 | 必須 | 説明 | -| ----------------- | -------------------------------------------------------------- | --- | --------------------- | -| processor.file | `'./node_modules/@subql/contract-processors/dist/moonbeam.js'` | Yes | データプロセッサコードへのファイル参照 | -| processor.options | [ProcessorOptions](#processor-options) | No | Moonbeamプロセッサ固有のオプション | -| assets | `{ [key: String]: { file: String }}` | No | 外部ファイルのオブジェクト | +| フィールド | 型 | 必須 | 説明 | +| ----------------- | -------------------------------------------------------------- | ---- | -------------------------------------- | +| processor.file | `'./node_modules/@subql/contract-processors/dist/moonbeam.js'` | Yes | データプロセッサコードへのファイル参照 | +| processor.options | [ProcessorOptions](#processor-options) | No | Moonbeam プロセッサ固有のオプション | +| assets | `{ [key: String]: { file: String }}` | No | 外部ファイルのオブジェクト | ### プロセッサオプション -| フィールド | 型 | 必須 | 説明 | -| ------- | ---------------- | -- | ----------------------------------------------------------- | -| abi | String | No | 引数を解析するためにプロセッサが使用する ABI です。 `assets` のキーでなければなりません | -| address | String or `null` | No | イベントの発信元または発信先となるコントラクトアドレス。 `null` はコントラクトの作成呼び出しをキャプチャします | +| フィールド | 型 | 必須 | 説明 | +| ---------- | ---------------- | ---- | -------------------------------------------------------------------------------------------------------------- | +| abi | String | No | 引数を解析するためにプロセッサが使用する ABI です。 `assets` のキーでなければなりません | +| address | String or `null` | No | イベントの発信元または発信先となるコントラクトアドレス。 `null` はコントラクトの作成呼び出しをキャプチャします | ## MoonbeamCall ハンドラの引数が異なり、若干のフィルタリング変更以外は、[substrate/CallHandler](../create/mapping/#call-handler)と同じように動作する。 -| フィールド | 型 | 必須 | 説明 | -| ------ | ---------------------------- | --- | -------------------- | -| kind | 'substrate/MoonbeamCall' | Yes | 呼び出しハンドラであることを指定します。 | -| filter | [Call Filter](#call-filters) | No | 実行するデータソースをフィルタする | +| フィールド | 型 | 必須 | 説明 | +| ---------- | ---------------------------- | ---- | ---------------------------------------- | +| kind | 'substrate/MoonbeamCall' | Yes | 呼び出しハンドラであることを指定します。 | +| filter | [Call Filter](#call-filters) | No | 実行するデータソースをフィルタする | ### Call Filters -| フィールド | 型 | 例 | 説明 | -| -------- | ------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -| function | String | 0x095ea7b3, approve(address to,uint256 value) | [Function Signature](https://docs.ethers.io/v5/api/utils/abi/fragments/#FunctionFragment) 文字列、またはコントラクトで呼び出された関数をフィルタする関数 `sighash` のいずれか。 | -| from | String | 0x6bd193ee6d2104f14f94e2ca6efefae561a4334b | トランザクションを送信したイーサリアムアドレス | +| フィールド | 型 | 例 | 説明 | +| ---------- | ------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| function | String | 0x095ea7b3, approve(address to,uint256 value) | [Function Signature](https://docs.ethers.io/v5/api/utils/abi/fragments/#FunctionFragment) 文字列、またはコントラクトで呼び出された関数をフィルタする関数 `sighash` のいずれか。 | +| from | String | 0x6bd193ee6d2104f14f94e2ca6efefae561a4334b | トランザクションを送信したイーサリアムアドレス | ### ハンドラ @@ -63,22 +63,22 @@ MoonbeamとMoonriverのEVM用にカスタムデータソースプロセッサを ハンドラの引数が異なり、若干のフィルタリング変更以外は、[substrate/EventHandler](../create/mapping/#event-handler)と同じように動作する。 -| フィールド | 型 | 必須 | 説明 | -| ------ | ------------------------------ | --- | -------------------- | -| kind | 'substrate/MoonbeamEvent' | Yes | 呼び出しハンドラであることを指定します。 | -| filter | [Event Filter](#event-filters) | No | 実行するデータソースをフィルタする | +| フィールド | 型 | 必須 | 説明 | +| ---------- | ------------------------------ | ---- | ---------------------------------------- | +| kind | 'substrate/MoonbeamEvent' | Yes | 呼び出しハンドラであることを指定します。 | +| filter | [Event Filter](#event-filters) | No | 実行するデータソースをフィルタする | ### イベントフィルタ -| フィールド | 型 | 例 | 説明 | -| ------ | ------------ | --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -| topics | String array | Transfer(address indexed from,address indexed to,uint256 value) | topicsは、Ethereum JSON-PRCログフィルタに従います。詳細なドキュメントは[こちら](https://docs.ethers.io/v5/concepts/events/)です。 | +| フィールド | 型 | 例 | 説明 | +| ---------- | ------------ | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| topics | String array | Transfer(address indexed from,address indexed to,uint256 value) | topics は、Ethereum JSON-PRC ログフィルタに従います。詳細なドキュメントは[こちら](https://docs.ethers.io/v5/concepts/events/)です。 | -topicsに関する注意: +**topics に関する注意:** 基本的なログフィルタにはいくつかの改善点があります: -- topicsを 0 埋めする必要はありません。 -- [Event Fragment](https://docs.ethers.io/v5/api/utils/abi/fragments/#EventFragment) を提供し、そのIDに自動的に変換できます +- topics を 0 埋めする必要はありません。 +- [Event Fragment](https://docs.ethers.io/v5/api/utils/abi/fragments/#EventFragment) を提供し、その ID に自動的に変換できます ### ハンドラ @@ -97,17 +97,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Contract address (or recipient if transfer) to filter, if `null` should be for contract creation - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -122,11 +122,11 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## 既知の制限事項 -- ハンドラ内のEVM状態を問い合わせる方法は現在ありません。 +- ハンドラ内の EVM 状態を問い合わせる方法は現在ありません。 - 呼び出しハンドラで戻り値を取得する方法はありません。 - `blockHash` プロパティは現在未定義のままです。代わりに `blockNumber` プロパティを使用できます。 diff --git a/docs/ja/faqs/faqs.md b/docs/ja/faqs/faqs.md index c29b3b9e5ec..bcc3606a131 100644 --- a/docs/ja/faqs/faqs.md +++ b/docs/ja/faqs/faqs.md @@ -1,6 +1,6 @@ # Frequently Asked Questions -## SubQueryとは? +## SubQuery とは? SubQuery is an open source blockchain data indexer for developers that provides fast, flexible, reliable, and decentralised APIs to power leading multi-chain apps. @@ -16,21 +16,21 @@ SubQuery also provides free, production grade hosting of projects for developers **The SubQuery Network** -The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. +The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. More information [here](/subquery_network/introduction.md). -## SubQueryを始めるための最良の方法は何ですか? +## SubQuery を始めるための最良の方法は何ですか? The best way to get started with SubQuery is to try out our [Hello World tutorial](/assets/pdf/Hello_World_Lab.pdf). This is a simple 5 min walk through exercise. Download the starter template, build the project, use Docker to run a node on your localhost, and run a simple query. -## SubQueryにどのように貢献したりフィードバックを与えたりできますか? +## SubQuery にどのように貢献したりフィードバックを与えたりできますか? -私たちはコミュニティからの貢献とフィードバックが大好きです。 To contribute the code, fork the repository of your interest and make your changes. 次にPRまたはPullリクエストを送信します。 Don't forget to test as well. Also check out our contributions guidelines. +私たちはコミュニティからの貢献とフィードバックが大好きです。 To contribute the code, fork the repository of your interest and make your changes. 次に PR または Pull リクエストを送信します。 Don't forget to test as well. Also check out our [contributions guidelines](../miscellaneous/contributing.html). To give feedback, contact us at hello@subquery.network or jump onto our [discord channel](https://discord.com/invite/78zg8aBSMG). -## 自分のプロジェクトをSubQuery Projectsで公開するにはどのくらいの費用がかかりますか? +## 自分のプロジェクトを SubQuery Projects で公開するにはどのくらいの費用がかかりますか? This service is being provided to the community with a generous free tier! You can host your first two SubQuery projects for absolutely free! @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Note that it is recommended to use `--force-clean` when changing the `startBlock` within the project manifest (`project.yaml`) in order to begin reindexing from the configured block. If `startBlock` is changed without a `--force-clean` of the project, then the indexer will continue indexing with the previously configured `startBlock`. - ## How can I optimise my project to speed it up? Performance is a crucial factor in each project. Fortunately, there are several things you could do to improve it. Here is the list of some suggestions: @@ -89,13 +88,13 @@ Performance is a crucial factor in each project. Fortunately, there are several - Set the start block to when the contract was initialised. - Always use a [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (we can help create one for your new network). - Optimise your schema design, keep it as simple as possible. - - Try to reduce unnecessary fields and columns. - - Create indexes as needed. + - Try to reduce unnecessary fields and columns. + - Create indexes as needed. - Use parallel/batch processing as often as possible. - - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. - - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. - - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. + - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. + - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. + - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. - Making API calls to query state can be slow. You could try to minimise calls where possible and to use `extrinsic/transaction/event` data. - Use `worker threads` to move block fetching and block processing into its own worker thread. It could speed up indexing by up to 4 times (depending on the particular project). You can easily enable it using the `-workers=` flag. Note that the number of available CPU cores strictly limits the usage of worker threads. For now, it is only available for Substrate and Cosmos and will soon be integrated for Avalanche. - Note that `JSON.stringify` doesn’t support native `BigInts`. Our logging library will do this internally if you attempt to log an object. We are looking at a workaround for this. -- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. \ No newline at end of file +- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. diff --git a/docs/ja/miscellaneous/contributing.md b/docs/ja/miscellaneous/contributing.md index d631948c0ad..04769d6b292 100644 --- a/docs/ja/miscellaneous/contributing.md +++ b/docs/ja/miscellaneous/contributing.md @@ -1,8 +1,8 @@ -# SubQueryへの貢献 +# SubQuery への貢献 -このSubQueryプロジェクトへの貢献をご検討いただき、誠にありがとうございます! 私たちは共に、より分散化された未来への道を切り開くことができます。 +この SubQuery プロジェクトへの貢献をご検討いただき、誠にありがとうございます! 私たちは共に、より分散化された未来への道を切り開くことができます。 -::: info Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: +::: tip Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: What follows is a set of guidelines (not rules) for contributing to SubQuery. Following these guidelines will help us make the contribution process easy and effective for everyone involved. It also communicates that you agree to respect the time of the developers managing and developing this project. In return, we will reciprocate that respect by addressing your issue, considering changes, collaborating on improvements, and helping you finalise your pull requests. @@ -14,8 +14,8 @@ We take our open source community projects and responsibility seriously and hold Contributions to our repositories are made through Issues and Pull Requests (PRs). A few general guidelines that cover both: -* 自分で作成する前に、既存のIssuesやPRを検索してください。 -* 迅速な対応に努めていますが、影響によっては原因究明に時間がかかる場合もあります。 あなたの問題がブロックされている場合、コメントスレッドで投稿者や投稿者に友好的に@で言及することで、注意を引くことができます。 +- 自分で作成する前に、既存の Issues や PR を検索してください。 +- 迅速な対応に努めていますが、影響によっては原因究明に時間がかかる場合もあります。 あなたの問題がブロックされている場合、コメントスレッドで投稿者や投稿者に友好的に@で言及することで、注意を引くことができます。 ## 貢献方法 @@ -23,32 +23,32 @@ Contributions to our repositories are made through Issues and Pull Requests (PRs Bugs are tracked as GitHub issues. When logging an issue, explain the problem and include additional details to help maintainers reproduce the problem: -* 問題を特定するために、明確で説明的なタイトルを使用します。 -* 問題を再現するための正確なステップを記述します。 -* 手順に従って観察した動作を説明します。 -* どの動作を期待するか、またその理由を説明します。 -* 可能であればスクリーンショットを含めます。 +- 問題を特定するために、明確で説明的なタイトルを使用します。 +- 問題を再現するための正確なステップを記述します。 +- 手順に従って観察した動作を説明します。 +- どの動作を期待するか、またその理由を説明します。 +- 可能であればスクリーンショットを含めます。 ### プルリクエストを送る In general, we follow the "fork-and-pull" Git workflow: -* Fork the repository to your own Github account. -* Clone the project to your machine. -* Create a branch locally with a succinct but descriptive name. -* Commit changes to the branch. -* Following any formatting and testing guidelines specific to this repo. -* Push changes to your fork. -* Open a PR in our repository. +- Fork the repository to your own Github account. +- Clone the project to your machine. +- Create a branch locally with a succinct but descriptive name. +- Commit changes to the branch. +- Following any formatting and testing guidelines specific to this repo. +- Push changes to your fork. +- Open a PR in our repository. ## コーディング規約 ### コミットメッセージ -* Use the present tense ("Add feature" not "Added feature"). -* Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). -* Limit the first line to 72 characters or less. +- Use the present tense ("Add feature" not "Added feature"). +- Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). +- Limit the first line to 72 characters or less. ### JavaScript Styleguide -* All JavaScript code is linted with Prettier and ESLint. +- All JavaScript code is linted with Prettier and ESLint. diff --git a/docs/ja/quickstart/helloworld-localhost.md b/docs/ja/quickstart/helloworld-localhost.md index 9bf4d22dd0d..ea08d9494d9 100644 --- a/docs/ja/quickstart/helloworld-localhost.md +++ b/docs/ja/quickstart/helloworld-localhost.md @@ -1,6 +1,6 @@ # Hello World (localhost & Docker) -SubQuery Hello World のクイックスタートへようこそ。 クイックスタートでは、いくつかの簡単な手順でデフォルトのスタータープロジェクトをDockerで実行する方法を説明します。 +SubQuery Hello World のクイックスタートへようこそ。 クイックスタートでは、いくつかの簡単な手順でデフォルトのスタータープロジェクトを Docker で実行する方法を説明します。 ## 学習のねらい @@ -8,12 +8,12 @@ SubQuery Hello World のクイックスタートへようこそ。 クイック - 必要な前提条件を理解すること - 基本的な一般的なコマンドを理解すること -- localhost:3000に移動して、プレイグラウンドを表示できるようになること -- Polkadotメインネットのブロックの高さを取得するための簡単なクエリを実行すること +- localhost:3000 に移動して、プレイグラウンドを表示できるようになること +- Polkadot メインネットのブロックの高さを取得するための簡単なクエリを実行すること ## 対象者 -このガイドは、開発経験があり、SubQueryについてもっと学ぶことに興味がある新規開発者を対象としています。 +このガイドは、開発経験があり、SubQuery についてもっと学ぶことに興味がある新規開発者を対象としています。 ## ビデオガイド @@ -86,10 +86,10 @@ cd subqlHelloWorld ## 2. 依存するモジュールをインストールする -ここで様々な依存関係をインストールするために、yarnまたはnodeのインストールを実行します。 +ここで様々な依存関係をインストールするために、yarn または node のインストールを実行します。 - ```shell yarn install ``` - ```bash npm install ``` +::: code-tabs @tab:active yarn `shell yarn install ` +@tab npm `bash npm install ` ::: 例 `yarn install` @@ -107,10 +107,10 @@ success Saved lockfile. ## 3. コードを生成する -ここで`yarn codegen`を実行して、GraphQLスキーマからTypescriptを生成します。 +ここで`yarn codegen`を実行して、GraphQL スキーマから Typescript を生成します。 - ```shell yarn codegen ``` - ```bash npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `bash npm run-script codegen ` ::: 例 `yarn codegen` @@ -127,14 +127,14 @@ $ ./node_modules/.bin/subql codegen ✨ Done in 1.02s. ``` -**警告** スキーマファイルに変更があった場合、`yarn codegen` を再実行し、typesディレクトリを再生成することを忘れないようにしてください。 +**警告** スキーマファイルに変更があった場合、`yarn codegen` を再実行し、types ディレクトリを再生成することを忘れないようにしてください。 ## 4. コードをビルドする 次のステップは、 `yarn build` でコードをビルドすることです。 - ```shell yarn build ``` - ```bash npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: 例 `yarn build` @@ -147,7 +147,7 @@ $ tsc -b ## 5. Docker を実行する -Dockerを使用すると、必要なインフラをすべてDockerイメージ内で提供できるため、この例を非常に迅速に実行することができます。 `docker-compose pull && docker-compose up` を実行する +Docker を使用すると、必要なインフラをすべて Docker イメージ内で提供できるため、この例を非常に迅速に実行することができます。 `docker-compose pull && docker-compose up` を実行する これですべてがキックされ、最終的にブロックがフェッチされます。 @@ -192,4 +192,4 @@ http://localhost:3000/ にアクセスし、以下のクエリを画面左側に ## 概要 -このクイックスタートでは、Docker環境内でプロジェクトを立ち上げて実行する基本的な手順を示した後、localhost:3000にナビゲートして、メインネットPolkadotネットワークのブロック番号を返すクエリーを実行しました。 +このクイックスタートでは、Docker 環境内でプロジェクトを立ち上げて実行する基本的な手順を示した後、localhost:3000 にナビゲートして、メインネット Polkadot ネットワークのブロック番号を返すクエリーを実行しました。 diff --git a/docs/ja/quickstart/quickstart-avalanche.md b/docs/ja/quickstart/quickstart-avalanche.md index f2fbce2a895..c58c403992b 100644 --- a/docs/ja/quickstart/quickstart-avalanche.md +++ b/docs/ja/quickstart/quickstart-avalanche.md @@ -6,7 +6,7 @@ In this Quick start guide, we're going to start with a simple Avalanche starter このガイドの最後には、SubQuery ノード上で動作する SubQuery プロジェクトを作成し、GraphQL エンドポイントからデータを照会できるようになります。 -まだの方は、SubQueryで使われている[用語](../#terminology)に慣れることをお勧めします。 +まだの方は、SubQuery で使われている[用語](../#terminology)に慣れることをお勧めします。 **The goal of this quick start guide is to index all Pangolin token _Approve_ logs, it should only take 10-15 minutes** @@ -59,8 +59,8 @@ After the initialisation process is complete, you should see a folder with your Last, under the project directory, run following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -92,8 +92,8 @@ type PangolinApproval @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory. Do this now.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -169,7 +169,7 @@ For more information about mapping functions, check out our documentation under In order run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -183,7 +183,7 @@ All configuration that controls how a SubQuery node is run is defined in this `d Under the project directory run following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Be patient here. diff --git a/docs/ja/quickstart/quickstart-cosmos.md b/docs/ja/quickstart/quickstart-cosmos.md index 3ce94c5ae70..2af98831a18 100644 --- a/docs/ja/quickstart/quickstart-cosmos.md +++ b/docs/ja/quickstart/quickstart-cosmos.md @@ -6,7 +6,7 @@ In this Quick start guide, we're going to start with a simple Cosmos starter pro このガイドの最後には、SubQuery ノード上で動作する SubQuery プロジェクトを作成し、GraphQL エンドポイントからデータを照会できるようになります。 -まだの方は、SubQueryで使われている[用語](../#terminology)に慣れることをお勧めします。 +まだの方は、SubQuery で使われている[用語](../#terminology)に慣れることをお勧めします。 **The goal of this quick start guide is to adapt the standard starter project to begin indexing all votes on the [Terra Developer Fund](https://daodao.zone/multisig/juno1lgnstas4ruflg0eta394y8epq67s4rzhg5anssz3rc5zwvjmmvcql6qps2) (which also contributed to SubQuery) from Cosmos, it should only take 10-15 minutes** @@ -44,8 +44,8 @@ After the initialisation process is complete, you should see a folder with your Last, under the project directory, run following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -75,8 +75,8 @@ type Vote @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory. Do this now.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -145,7 +145,7 @@ For more information about mapping functions, check out our documentation under In order run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -159,7 +159,7 @@ All configuration that controls how a SubQuery node is run is defined in this `d Under the project directory run following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Be patient here. @@ -173,10 +173,9 @@ For a new SubQuery starter project, you can try the following query to get a tas ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id diff --git a/docs/ja/quickstart/quickstart-polkadot.md b/docs/ja/quickstart/quickstart-polkadot.md index 4742b385a2b..baf1ba6497b 100644 --- a/docs/ja/quickstart/quickstart-polkadot.md +++ b/docs/ja/quickstart/quickstart-polkadot.md @@ -4,7 +4,7 @@ In this quick start guide, we're going to start with a simple Substrate/Polkadot このガイドの最後には、SubQuery ノード上で動作する SubQuery プロジェクトを作成し、GraphQL エンドポイントからデータを照会できるようになります。 -まだの方は、SubQueryで使われている[用語](../#terminology)に慣れることをお勧めします。 +まだの方は、SubQuery で使われている[用語](../#terminology)に慣れることをお勧めします。 **The goal of this quick start guide is to adapt the standard starter project to begin indexing all transfers from Polkadot, it should only take 10-15 minutes** @@ -43,10 +43,10 @@ subql init You'll be asked certain questions as the SubQuery project is initalised: - Project name: A project name for your SubQuery project -- Network family: The layer-1 blockchain network family that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use *"Substrate"* -- Network: The specific network that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use *"Polkadot"* -- Template project: Select a SubQuery template project that will provide a starting point to begin development. We suggest selecting the *"subql-starter"* project. -- RPC endpoint: Provide an HTTPS URL to a running RPC endpoint that will be used by default for this project. You can quickly access public endpoints for different Polkadot networks, create your own private dedicated node using [OnFinality](https://app.onfinality.io) or just use the default Polkadot endpoint. This RPC node must be an archive node (have the full chain state). For this guide, we will use the default value *"https://polkadot.api.onfinality.io"* +- Network family: The layer-1 blockchain network family that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use _"Substrate"_ +- Network: The specific network that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use _"Polkadot"_ +- Template project: Select a SubQuery template project that will provide a starting point to begin development. We suggest selecting the _"subql-starter"_ project. +- RPC endpoint: Provide an HTTPS URL to a running RPC endpoint that will be used by default for this project. You can quickly access public endpoints for different Polkadot networks, create your own private dedicated node using [OnFinality](https://app.onfinality.io) or just use the default Polkadot endpoint. This RPC node must be an archive node (have the full chain state). For this guide, we will use the default value _"https://polkadot.api.onfinality.io"_ - Git repository: Provide a Git URL to a repo that this SubQuery project will be hosted in (when hosted in SubQuery Explorer) or accept the provided default. - Authors: Enter the owner of this SubQuery project here (e.g. your name!) or accept the provided default. - Description: Provide a short paragraph about your project that describes what data it contains and what users can do with it or accept the provided default. @@ -57,8 +57,8 @@ After the initialisation process is complete, you should see that a folder with Last, under the project directory, run the following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -88,8 +88,8 @@ type Transfer @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -133,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { - // Get data from the event - // The balances.transfer event has the following payload \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Create the new transfer entity - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Get data from the event + // The balances.transfer event has the following payload \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Create the new transfer entity + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -160,7 +160,7 @@ For more information about mapping functions, check out our documentation under In order to run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you will need to rebuild your project** @@ -174,7 +174,7 @@ All configuration that controls how a SubQuery node is run is defined in the `do Under the project directory, run the following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you should see a running SubQuery node in the terminal screen. @@ -189,10 +189,7 @@ For a new SubQuery starter project, try the following query to understand how it ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount diff --git a/docs/ja/quickstart/quickstart-terra.md b/docs/ja/quickstart/quickstart-terra.md index 0a0bbde9829..3c17d841a58 100644 --- a/docs/ja/quickstart/quickstart-terra.md +++ b/docs/ja/quickstart/quickstart-terra.md @@ -6,7 +6,7 @@ In this Quick start guide, we're going to start with a simple Terra starter proj このガイドの最後には、SubQuery ノード上で動作する SubQuery プロジェクトを作成し、GraphQL エンドポイントからデータを照会できるようになります。 -まだの方は、SubQueryで使われている[用語](../#terminology)に慣れることをお勧めします。 +まだの方は、SubQuery で使われている[用語](../#terminology)に慣れることをお勧めします。 **The goal of this quick start guide is to adapt the standard starter project to begin indexing all transfers from Terra, it should only take 10-15 minutes** @@ -45,11 +45,11 @@ subql init You'll be asked certain questions as the SubQuery project is initalised: - Project Name: A name for your SubQuery project -- Network Family: The layer-1 blockchain network family that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use *"Terra"* -- Network: The specific network that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use *"Terra"* -- Template: Select a SubQuery project template that will provide a starting point to begin development, we suggest selecting the *"Starter project"* +- Network Family: The layer-1 blockchain network family that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use _"Terra"_ +- Network: The specific network that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use _"Terra"_ +- Template: Select a SubQuery project template that will provide a starting point to begin development, we suggest selecting the _"Starter project"_ - Git repository (Optional): Provide a Git URL to a repo that this SubQuery project will be hosted in (when hosted in SubQuery Explorer) -- RPC endpoint (Required): Provide a HTTPS URL to a running RPC endpoint that will be used by default for this project. This RPC node must be an archive node (have the full chain state). For this guide we will use the default value *"https://terra-columbus-5.beta.api.onfinality.io"* +- RPC endpoint (Required): Provide a HTTPS URL to a running RPC endpoint that will be used by default for this project. This RPC node must be an archive node (have the full chain state). For this guide we will use the default value _"https://terra-columbus-5.beta.api.onfinality.io"_ - Authors (Required): Enter the owner of this SubQuery project here (e.g. your name!) - Description (Optional): You can provide a short paragraph about your project that describe what data it contains and what users can do with it - Version (Required): Enter a custom version number or use the default (`1.0.0`) @@ -59,8 +59,8 @@ After the initialisation process is complete, you should see a folder with your Last, under the project directory, run following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -91,8 +91,8 @@ type Transfer @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory. Do this now.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -143,30 +143,30 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Print debugging data from the event - // logger.info(JSON.stringify(event)); - - // Create the new transfer entity with a unique ID - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Print debugging data from the event + // logger.info(JSON.stringify(event)); + + // Create the new transfer entity with a unique ID + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` @@ -178,7 +178,7 @@ For more information about mapping functions, check out our documentation under In order run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -192,7 +192,7 @@ All configuration that controls how a SubQuery node is run is defined in this `d Under the project directory run following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Be patient here. @@ -207,10 +207,7 @@ For a new SubQuery starter project, you can try the following query to get a tas ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash diff --git a/docs/ja/quickstart/quickstart.md b/docs/ja/quickstart/quickstart.md index 68d38a77381..510abb384b2 100644 --- a/docs/ja/quickstart/quickstart.md +++ b/docs/ja/quickstart/quickstart.md @@ -89,8 +89,8 @@ After you complete the initialisation process, you will see a folder with your p Finally, run the following command to install the new project’s dependencies from within the new project's directory. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: You have now initialised your first SubQuery project with just a few simple steps. Let’s now customise the standard template project for a specific blockchain of interest. @@ -104,4 +104,4 @@ There are 3 important files that need to be modified. These are: 2. The Project Manifest in `project.yaml`. 3. The Mapping functions in `src/mappings/` directory. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/ja/quickstart/understanding-helloworld.md b/docs/ja/quickstart/understanding-helloworld.md index 26189b8ef19..02f97197576 100644 --- a/docs/ja/quickstart/understanding-helloworld.md +++ b/docs/ja/quickstart/understanding-helloworld.md @@ -1,6 +1,6 @@ # Hello World の説明 -[Hello World クイックスタート ガイド](helloworld-localhost.md)では、いくつかの簡単なコマンドを実行し、非常に迅速にプロジェクトを立ち上げて実行する方法を説明しました。 これにより、すべての前提条件が整っていることを確認し、ローカルのプレイグラウンドを使用して、SubQueryから最初のデータを取得するための簡単なクエリを作成することができたのです。 ここでは、これらのコマンドの意味を詳しく説明します。 +[Hello World クイックスタート ガイド](helloworld-localhost.md)では、いくつかの簡単なコマンドを実行し、非常に迅速にプロジェクトを立ち上げて実行する方法を説明しました。 これにより、すべての前提条件が整っていることを確認し、ローカルのプレイグラウンドを使用して、SubQuery から最初のデータを取得するための簡単なクエリを作成することができたのです。 ここでは、これらのコマンドの意味を詳しく説明します。 ## subql init @@ -14,21 +14,21 @@ ![key subql files](/assets/img/main_subql_files.png) -これらのファイルは私たちが行う全てのコアファイルです。 そのため、これらのファイルについては、別の記事で詳しく説明します。 今のところ、スキーマにはユーザーがSubQuery APIにリクエストできるデータの記述があり、プロジェクトのyamlファイルには「設定」タイプのパラメータ、そしてもちろんmappingHandlersにはデータを変換する関数が含まれるtypescriptがあることだけは知っておいてください。 +これらのファイルは私たちが行う全てのコアファイルです。 そのため、これらのファイルについては、別の記事で詳しく説明します。 今のところ、スキーマにはユーザーが SubQuery API にリクエストできるデータの記述があり、プロジェクトの yaml ファイルには「設定」タイプのパラメータ、そしてもちろん mappingHandlers にはデータを変換する関数が含まれる typescript があることだけは知っておいてください。 ## yarn install 次に実行するのは`yarn install`です。 `npm install` も使用可能です。 -> 歴史を簡単に説明します。 Node Package Manager(npm)は、2010年にリリースされ、JavaScript開発者の間で絶大な人気を誇るパッケージマネージャです。 Node.jsをシステムにインストールする際に、自動的にインストールされるデフォルトのパッケージです。 Yarnは当時、npmで作業する際のパフォーマンスやセキュリティの欠点を解消する目的で、2016年にFacebookがリリースしたものです。 +> 歴史を簡単に説明します。 Node Package Manager(npm)は、2010 年にリリースされ、JavaScript 開発者の間で絶大な人気を誇るパッケージマネージャです。 Node.js をシステムにインストールする際に、自動的にインストールされるデフォルトのパッケージです。 Yarn は当時、npm で作業する際のパフォーマンスやセキュリティの欠点を解消する目的で、2016 年に Facebook がリリースしたものです。 -yarnが行うのは、`package.json`ファイルを見て、他の様々な依存関係をダウンロードすることです。 `package.json`ファイルを見ると、あまり依存関係がないように見えますが、コマンドを実行すると、18,983個のファイルが追加されていることに気づきます。 これは、それぞれの依存関係がまた依存関係を持つことになるからです。 +yarn が行うのは、`package.json`ファイルを見て、他の様々な依存関係をダウンロードすることです。 `package.json`ファイルを見ると、あまり依存関係がないように見えますが、コマンドを実行すると、18,983 個のファイルが追加されていることに気づきます。 これは、それぞれの依存関係がまた依存関係を持つことになるからです。 ![key subql files](/assets/img/dependencies.png) ## yarn codegen -次に `yarn codegen` または `npm run-script codegen` を実行します。 これはGraphQLスキーマ(`schema.graphql`内)を取得し、関連するtypescriptモデルファイルを生成します(したがって出力ファイルの拡張子は.tsになります)。 これらの生成されたファイルは決して変更せず、ソースの `schema.graphql` ファイルのみを変更します。 +次に `yarn codegen` または `npm run-script codegen` を実行します。 これは GraphQL スキーマ(`schema.graphql`内)を取得し、関連する typescript モデルファイルを生成します(したがって出力ファイルの拡張子は.ts になります)。 これらの生成されたファイルは決して変更せず、ソースの `schema.graphql` ファイルのみを変更します。 ![key subql files](/assets/img/typescript.png) @@ -40,7 +40,7 @@ yarnが行うのは、`package.json`ファイルを見て、他の様々な依 ## docker-compose -最後は、Dockerコマンド`docker-compose pull && docker-compose up`(別々に実行することも可能)を組み合わせて実行します。 `pull` コマンドは、Docker Hub から必要なすべてのイメージを取得し、 `up` コマンドはコンテナを起動します。 +最後は、Docker コマンド`docker-compose pull && docker-compose up`(別々に実行することも可能)を組み合わせて実行します。 `pull` コマンドは、Docker Hub から必要なすべてのイメージを取得し、 `up` コマンドはコンテナを起動します。 ```shell > docker-compose pull @@ -49,16 +49,16 @@ Pulling subquery-node ... done Pulling graphql-engine ... done ``` -コンテナが開始されると、ターミナルはノードの状態とGraphQLエンジンの状態を示す多くのテキストを出力します。 以下のように表示されます: +コンテナが開始されると、ターミナルはノードの状態と GraphQL エンジンの状態を示す多くのテキストを出力します。 以下のように表示されます: ``` subquery-node_1 | 2021-06-06T02:04:25.490Z INFO fetch block [1, 100] ``` -SubQueryノードが同期を開始したことがわかります。 +SubQuery ノードが同期を開始したことがわかります。 ## 概要 -さて、カバーの中で何が起きているのかがわかったところで、問題はここから先です。 あなたに自信があれば、プロジェクトの作成方法の学習に飛び込んで、3 つの重要なファイルについて詳しく学ぶことができます。 マニフェストファイル、GraphQL スキーマ、およびマッピングファイル。 +さて、カバーの中で何が起きているのかがわかったところで、問題はここから先です。 あなたに自信があれば、[プロジェクトの作成方法](../quickstart/quickstart.md)の学習に飛び込んで、3 つの重要なファイルについて詳しく学ぶことができます。 マニフェストファイル、GraphQL スキーマ、およびマッピングファイル。 -それ以外の場合は、SubQueryがホストするインフラストラクチャで、この Hello World の例をどのように実行するかを見ていきます。 スタートブロックを変更し、すぐに利用可能なオープンソースプロジェクトを実行することで、SubQueryプロジェクトを実行することにします。 +それ以外の場合は、SubQuery がホストするインフラストラクチャで、この Hello World の例をどのように実行するかを見ていきます。 スタートブロックを変更し、すぐに利用可能なオープンソースプロジェクトを実行することで、SubQuery プロジェクトを実行することにします。 diff --git a/docs/ja/run_publish/connect.md b/docs/ja/run_publish/connect.md index f06aad4590f..f1a2f127d81 100644 --- a/docs/ja/run_publish/connect.md +++ b/docs/ja/run_publish/connect.md @@ -2,10 +2,10 @@ Once your deployment has succesfully completed and our nodes have indexed your data from the chain, you'll be able to connect to your project via the displayed Query endpoint. -![プロジェクトを展開および同期する](/assets/img/projects-deploy-sync.png) +![プロジェクトを展開および同期する](/assets/img/projects_deploy_sync.png) -または、プロジェクトのタイトルの横にある3つの点をクリックして、SubQuery Explorer で表示することもできます。 There you can use the in browser playground to get started. +または、プロジェクトのタイトルの横にある 3 つの点をクリックして、SubQuery Explorer で表示することもできます。 There you can use the in browser playground to get started. -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/ja/run_publish/query.md b/docs/ja/run_publish/query.md index a0a9559008c..ffaf5e3fc56 100644 --- a/docs/ja/run_publish/query.md +++ b/docs/ja/run_publish/query.md @@ -4,12 +4,12 @@ ![SubQuery Explorer](https://static.subquery.network/media/explorer/explorer-header.png) -SubQuery Explorerは簡単に開始できます。 私たちはこれらのSubQueryノードをオンラインでホスティングしており、誰もが無料でそれぞれクエリを実行することができます。 これらのマネージドノードは、SubQueryチームによってパフォーマンスレベルで監視および実行され、これにより本番アプリケーションの使用と依存が可能になります。 +SubQuery Explorer は簡単に開始できます。 私たちはこれらの SubQuery ノードをオンラインでホスティングしており、誰もが無料でそれぞれクエリを実行することができます。 これらのマネージドノードは、SubQuery チームによってパフォーマンスレベルで監視および実行され、これにより本番アプリケーションの使用と依存が可能になります。 ![SubQuery Project](https://static.subquery.network/media/explorer/explorer-project.png) -SubQuery Explorer は、サンプルクエリを使用して利用可能なデータを検出するためのプレイグラウンドを提供していることにも注意してください。コードを実装することなくブラウザで直接クエリをテストすることができます。 さらに、開発者が世界中のPolkadotデータを照会し、分析するための旅をよりよくサポートするために、ドキュメントにいくつかの小さな改良を加えました。 +SubQuery Explorer は、サンプルクエリを使用して利用可能なデータを検出するためのプレイグラウンドを提供していることにも注意してください。コードを実装することなくブラウザで直接クエリをテストすることができます。 さらに、開発者が世界中の Polkadot データを照会し、分析するための旅をよりよくサポートするために、ドキュメントにいくつかの小さな改良を加えました。 On the top right of the playground, you'll find a _Docs_ button that will open a documentation draw. このドキュメントは自動的に生成され、クエリできるエンティティやメソッドを見つけるのに役立ちます。 -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/ja/run_publish/references.md b/docs/ja/run_publish/references.md index 1c52897aec5..9d7d3fce7e4 100644 --- a/docs/ja/run_publish/references.md +++ b/docs/ja/run_publish/references.md @@ -21,10 +21,10 @@ COMMANDS This command is uses webpack to generate a bundle of a subquery project. -| Options | 説明 | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | local folder of subquery project (if not in folder already) | -| -o, --output | specify output folder of build e.g. build-folder | +| Options | 説明 | +| ------------------ | ----------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | local folder of subquery project (if not in folder already) | +| -o, --output | specify output folder of build e.g. build-folder | | --mode=(production | prod | development | dev) | [ default: production ] | - With `subql build` you can specify additional entry points in exports field although it will always build `index.ts` automatically. @@ -106,7 +106,7 @@ This displays the current version. ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -346,7 +346,7 @@ This will move block fetching and processing into a worker. By default, this fea It is at an early experimental stage at the moment, but we plan to enable it by default. ::: -::: info Note +::: tip Note This feature is available for Substrate and Cosmos, and soon will be integrated for Avalanche. ::: diff --git a/docs/ja/run_publish/run.md b/docs/ja/run_publish/run.md index b98c2543378..562e49b153f 100644 --- a/docs/ja/run_publish/run.md +++ b/docs/ja/run_publish/run.md @@ -4,7 +4,7 @@ This guide works through how to run a local SubQuery node on your infrastructure ## Using Docker -An alternative solution is to run a Docker Container, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. +An alternative solution is to run a **Docker Container**, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. Under the project directory run the following command: @@ -12,7 +12,7 @@ Under the project directory run the following command: docker-compose pull && docker-compose up ``` -::: info Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: +::: tip Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: ## Running an Indexer (subql/node) @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Installation - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: Once installed, you can start a node with the following command: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Point to local project path - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ Depending on the configuration of your Postgres database (e.g. a different datab #### Specify a configuration file - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ When the indexer first indexes the chain, fetching single blocks will significan #### Run in local mode - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Switching to local model will create Postgres tables in the default schema `public`. diff --git a/docs/ja/run_publish/subscription.md b/docs/ja/run_publish/subscription.md index 9bbc2661f96..29cf660d492 100644 --- a/docs/ja/run_publish/subscription.md +++ b/docs/ja/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery now also supports Graphql Subscriptions. Like queries, subscriptions en Subscriptions are very useful when you want your client application to change data or show some new data as soon as that change occurs or the new data is available. Subscriptions allow you to _subscribe_ to your SubQuery project for changes. -::: info Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: +::: tip Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: ## How to Subscribe to an Entity diff --git a/docs/ja/run_publish/upgrade.md b/docs/ja/run_publish/upgrade.md index c3372468844..92da18a5d1e 100644 --- a/docs/ja/run_publish/upgrade.md +++ b/docs/ja/run_publish/upgrade.md @@ -77,10 +77,10 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n デプロイが正常に完了し、ノードがチェーンからデータのインデックスを作成したら、表示された GraphQL クエリエンドポイントからプロジェクトに接続することができるようになります。 -![プロジェクトを展開および同期する](/assets/img/projects-deploy-sync.png) +![プロジェクトを展開および同期する](/assets/img/projects_deploy_sync.png) または、プロジェクトのタイトルの横にある 3 つの点をクリックして、SubQuery Explorer で表示することもできます。 There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/ja/subquery_network/introduction.md b/docs/ja/subquery_network/introduction.md index 295d4a0e0d8..6394db677b8 100644 --- a/docs/ja/subquery_network/introduction.md +++ b/docs/ja/subquery_network/introduction.md @@ -18,22 +18,22 @@ There’s a role for everyone in the network, from highly technical developers t Consumers will ask the SubQuery Network for specific data for their dApps or tools, and pay an advertised amount of SQT for each request. -::: info Note Learn more about [Consumers](./consumers.md). ::: +::: tip Note Learn more about [Consumers](./consumers.md). ::: ### Indexers Indexers will run and maintain high quality SubQuery projects in their own infrastructure, running both the indexer and query service, and will be rewarded in SQT for the requests that they serve. -::: info Note Learn more about [Indexers](./indexers.md). ::: +::: tip Note Learn more about [Indexers](./indexers.md). ::: ### Delegators Delegators will participate in the Network by supporting their favourite Indexers to earn rewards based on the work those indexers do. -::: info Note Learn more about [Delegators](./delegators.md). ::: +::: tip Note Learn more about [Delegators](./delegators.md). ::: ### Architects Architects are the builders of the SubQuery projects that the Network runs on. They author and publish SubQuery projects for the Network to index and run. -::: info Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: +::: tip Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: diff --git a/docs/ko/README.md b/docs/ko/README.md index 0265018eaed..88bf227f0d7 100644 --- a/docs/ko/README.md +++ b/docs/ko/README.md @@ -4,7 +4,7 @@

Build Faster dApps withSubQuery Academy

-

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


+

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

@@ -12,7 +12,7 @@

Get a Kick-Start With Our Quick Start Guide

-

Build your first SubQuery project in less than 10 mins with simple guided steps. +

Build your first SubQuery project in less than 10 mins with simple guided steps.

Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

@@ -134,8 +134,7 @@
- - + diff --git a/docs/ko/build/install.md b/docs/ko/build/install.md index eb9fe331a9f..cefedff8a6c 100644 --- a/docs/ko/build/install.md +++ b/docs/ko/build/install.md @@ -8,28 +8,30 @@ Yarn 또는 NPM을 사용하여 서브쿼리 CLI를 단말기에 글로벌 설치: - ```bash npm install -g @subql/cli ``` - ```shell yarn global add @subql/cli ``` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` +@tab:active yarn `shell yarn global add @subql/cli ` ::: You can then run help to see available commands and usage provide by CLI: ```shell subql help ``` + ## @subql/node 설치 서브쿼리 노드는 서브쿼리 프로젝트별 Substrate 기반 블록체인 데이터을 추출하고, Postgres 데이터베이스에 저장합니다. Yarn 또는 NPM을 사용하여 단말기에 서브쿼리 노드를 글로벌 설치: - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: Once installed, you can can start a node with: ```shell subql-node ``` + > 주의: Docker를 사용하거나 서브쿼리 프로젝트에서 프로젝트를 호스팅하는 경우라면, 이 단계를 건너뛸 수 있습니다. 이는 서브쿼리 노드가 이미 Docker 컨테이너 및 호스팅 인프라에 제공되고 있기 때문입니다. ## @subql/query 설치 @@ -38,7 +40,7 @@ subql-node Yarn 또는 NPM을 사용하여 서브쿼리 쿼리를 단말기에 글로벌 설치: - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> 주의: Docker를 사용하거나 서브쿼리 프로젝트에서 프로젝트를 호스팅하는 경우라면, 이 단계를 건너뛸 수 있습니다. 이는 서브쿼리 노드가 이미 Docker 컨테이너 및 호스팅 인프라에 제공되고 있기 때문입니다. \ No newline at end of file +> 주의: Docker를 사용하거나 서브쿼리 프로젝트에서 프로젝트를 호스팅하는 경우라면, 이 단계를 건너뛸 수 있습니다. 이는 서브쿼리 노드가 이미 Docker 컨테이너 및 호스팅 인프라에 제공되고 있기 때문입니다. diff --git a/docs/ko/build/introduction.md b/docs/ko/build/introduction.md index 588ef9e0c54..b8387003bed 100644 --- a/docs/ko/build/introduction.md +++ b/docs/ko/build/introduction.md @@ -51,8 +51,8 @@ yarn codegen 프로젝트의 루트 디렉터리에서 빌드 명령을 실행합니다. - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### 대체 빌드 옵션 diff --git a/docs/ko/build/manifest.md b/docs/ko/build/manifest.md index 06e36aa4693..91c201ead5c 100644 --- a/docs/ko/build/manifest.md +++ b/docs/ko/build/manifest.md @@ -4,7 +4,7 @@ Manifest `project.yaml` 파일은 프로젝트의 시작점으로 볼 수 있으 매니페스트는 YAML 또는 JSON 형식일 수 있습니다. 이 문서의 모든 예제는 YAML을 기준으로 합니다. 다음은 기본 `project.yaml`의 표준 예시입니다. - ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` @tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## v0.0.1에서 v0.2.0으로 업그레이드 @@ -30,13 +30,13 @@ USAGE $ subql init [PROJECTNAME] ARGUMENTS PROJECTNAME Give the starter project name -| 옵션 | 설명 | -| ----------------------- | ----------------------------------------------------- | -| -f, --force | | -| -l, --location=location | 프로젝트를 생성할 로컬 폴더 | -| --install-dependencies | 종속성들의 설치 | +| 옵션 | 설명 | +| ----------------------- | --------------------------------------------------------------------- | ----------------------------- | +| -f, --force | | +| -l, --location=location | 프로젝트를 생성할 로컬 폴더 | +| --install-dependencies | 종속성들의 설치 | | --npm | yarn 대신 NPM을 강제로 사용, `install-dependencies` 플래그에서만 작동 | -| --specVersion=0.0.1 | 0.2.0 [기본값: 0.2.0] | 프로젝트에서 사용할 사양 버전 | +| --specVersion=0.0.1 | 0.2.0 [기본값: 0.2.0] | 프로젝트에서 사용할 사양 버전 | ## 개요 @@ -71,19 +71,19 @@ ARGUMENTS PROJECTNAME Give the starter project name ### DataSource 사양 필터링 및 추출할 데이터와 적용할 데이터 변환에 대한 매핑 함수 처리기의 위치를 정의합니다. -| 필드 | v0.0.1 | v0.2.0 | 설명 | +| 필드 | v0.0.1 | v0.2.0 | 설명 | | -------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| **name** | String | 𐄂 | 데이터 출처 명명 | -| **kind** | [substrate/Runtime](./manifest/#data-sources-and-mapping) | substrate/Runtime, [substrate/CustomDataSource](./manifest/#custom-data-sources) | 블록, 이벤트 및 외부(호출)와 같은 기본 기판 런타임의 데이터 유형을 지원합니다.
v0.2.0부터 스마트 계약과 같은 사용자 정의 런타임의 데이터를 지원합니다. | -| **startBlock** | Integer | Integer | 이것은 인덱싱 시작 블록을 변경하고 더 적은 데이터로 초기 블록을 건너뛰려면 이 값을 높게 설정합니다. | -| **mapping** | Mapping Spec | Mapping Spec | | -| **filter** | [network-filters](./manifest/#network-filters) | 𐄂 | 네트워크 끝점 사양 이름으로 실행할 데이터 원본 필터링 | +| **name** | String | 𐄂 | 데이터 출처 명명 | +| **kind** | [substrate/Runtime](./manifest/#data-sources-and-mapping) | substrate/Runtime, [substrate/CustomDataSource](./manifest/#custom-data-sources) | 블록, 이벤트 및 외부(호출)와 같은 기본 기판 런타임의 데이터 유형을 지원합니다.
v0.2.0부터 스마트 계약과 같은 사용자 정의 런타임의 데이터를 지원합니다. | +| **startBlock** | Integer | Integer | 이것은 인덱싱 시작 블록을 변경하고 더 적은 데이터로 초기 블록을 건너뛰려면 이 값을 높게 설정합니다. | +| **mapping** | Mapping Spec | Mapping Spec | | +| **filter** | [network-filters](./manifest/#network-filters) | 𐄂 | 네트워크 끝점 사양 이름으로 실행할 데이터 원본 필터링 | ### Mapping Spec -| 필드 | v0.0.1 | v0.2.0 | 설명 | -| ---------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **file** | String | 𐄂 | Entry 맵핑을 위한 path | +| 필드 | v0.0.1 | v0.2.0 | 설명 | +| ---------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **file** | String | 𐄂 | Entry 맵핑을 위한 path | | **handlers & filters** | [기본 핸들러와 필터](./manifest/#mapping-handlers-and-filters) | 기본 핸들러와 필터,
[Custom handlers and filters](#custom-data-sources) | [mapping functions](./mapping/polkadot.md) 과 그에 상응하는 핸들러 유형을 추가적인 맵핑 필터와 함께 나열하세요.

커스텀 런타임 맵핑을 위해서는 [Custom data sources](#custom-data-sources)을 참조하세요. | ## Data Source와 맵핑 @@ -104,8 +104,8 @@ dataSources: **적절한 매핑 필터가 있는 이벤트 및 호출 핸들러만 사용할 때 SubQuery 프로젝트가 훨씬 더 효율적입니다.** -| 핸들러 | 지원되는 필터 | -| ------------------------------------------- | ---------------------------- | +| 핸들러 | 지원되는 필터 | +| ---------------------------------------------------- | ---------------------------- | | [블록핸들러](./mapping/polkadot.md#block-handler) | `specVersion` | | [이벤트 핸들러](./mapping/polkadot.md#event-handler) | `module`,`method` | | [콜핸들러](./mapping/polkadot.md#call-handler) | `module`,`method` ,`success` | @@ -153,10 +153,10 @@ filter: 아래 v0.2.0 예제에서 `network.chaintypes`는 모든 사용자 정의 유형이 포함된 파일을 가리키고 있습니다. 이것은 이 블록체인이 지원하는 특정 유형을 `.json`, `.yaml` 또는 `.js`로 선언하는 표준 chainspec 파일입니다. - `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` - `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: -체인 유형 파일에 typescript를 사용하려면 `src` 폴더(예: `./src/types.ts`)에 파일을 포함하고 `yarn build 그런 다음 dist` 폴더에 있는 생성된 js 파일을 가리킵니다. +체인 유형 파일에 typescript를 사용하려면 `src` 폴더(예: `./src/types.ts`)에 파일을 포함하고 `yarn build` 그런 다음 `dist` 폴더에 있는 생성된 js 파일을 가리킵니다. ```yml network: @@ -171,7 +171,7 @@ network: 다음은 `.ts` 체인 유형 파일의 예입니다. - `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` ::: ## 사용자 정의 데이터 소스 @@ -183,7 +183,7 @@ network: 다음은 지원되는 사용자 지정 데이터 소스 목록입니다. -| 종류 | 지원 Handlers | 필터 | 소개 | +| 종류 | 지원 Handlers | 필터 | 소개 | | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------- | -------------------------------------------------------------------------------- | | [substrate/Moonbeam](./moonbeam/#data-source-example) | [substrate/MoonbeamEvent](./moonbeam/#moonbeamevent), [substrate/MoonbeamCall](./moonbeam/#moonbeamcall) | See filters under each handlers | Provides easy interaction with EVM transactions and events on Moonbeams networks | @@ -197,6 +197,6 @@ network: 다음은 Polkadot 및 Kusama 네트워크 모두에 대해 서로 다른 데이터 소스를 보여주는 예입니다. - `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` +::: code-tabs @tab v0.0.1 `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` - +::: diff --git a/docs/ko/build/mapping.md b/docs/ko/build/mapping.md index be45457b0f0..00fe3e9c33f 100644 --- a/docs/ko/build/mapping.md +++ b/docs/ko/build/mapping.md @@ -67,9 +67,9 @@ export async function handleCall(extrinsic: SubstrateExtrinsic): Promise { 현재 지원되는 인터페이스는 다음과 같습니다: -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) 은 현재의 블록을 쿼리합니다. -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type)는 현재의 블록과 같은 타입의 여러 Query를 생성합니다. -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types)은 현재 블럭과 다른 타입의 여러 Query를 생성합니다. +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) 은 **현재의** 블록을 쿼리합니다. +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type)는 현재의 블록과 **같은** 타입의 여러 Query를 생성합니다. +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types)은 현재 블럭과 **다른** 타입의 여러 Query를 생성합니다. 현재 **지원하고 있지 않은** 인터페이스는 다음과 같습니다: @@ -166,7 +166,7 @@ echo state_getMetadata | websocat 'ws://127.0.0.1:9944' --jsonrpc [types setup](https://polkadot.js.org/docs/api/examples/promise/typegen#metadata-setup)에 따라 다음을 생성합니다: -- < 0 > srcapi-interfaces definitions.ts < 0 >: 모든 서브폴더 정의를 내보냅니다. +- `src.api-interfaces definitions.ts`: 모든 서브폴더 정의를 내보냅니다. ```ts export { default as kitties } from "./kitties/definitions"; diff --git a/docs/ko/build/substrate-evm.md b/docs/ko/build/substrate-evm.md index 52cf4d38a6d..db689001518 100644 --- a/docs/ko/build/substrate-evm.md +++ b/docs/ko/build/substrate-evm.md @@ -4,13 +4,13 @@ 지원되는 네트워크: -| 네트워크 이름 | 웹소켓 엔드포인트 | 딕셔너리 엔드포인트 | -| ------- | ----------------------------------------------------------------- | -------------------------------------------------------------------- | -| 문빔 | `wss://moonbeam.api.onfinality.io/public-ws` | `https://api.subquery.network/sq/subquery/moonbeam-dictionary` | -| 문리버 | `wss://moonriver.api.onfinality.io/public-ws -Contextrequest` | `https://api.subquery.network/sq/subquery/moonriver-dictionary` | -| 문베이스 알파 | `wss://moonbeam-alpha.api.onfinality.io/public-ws -Contextrequest` | `https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary` | +| 네트워크 이름 | 웹소켓 엔드포인트 | 딕셔너리 엔드포인트 | +| --------------- | -------------------------------------------------------------------- | -------------------------------------------------------------- | +| 문빔 | `wss://moonbeam.api.onfinality.io/public-ws` | `https://api.subquery.network/sq/subquery/moonbeam-dictionary` | +| 문리버 | `wss://moonriver.api.onfinality.io/public-ws | +| Contextrequest` | `https://api.subquery.network/sq/subquery/moonriver-dictionary` | +| 문베이스 알파 | `wss://moonbeam-alpha.api.onfinality.io/public-ws | +| Contextrequest` | `https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary` | **[기본 Moonriver EVM 프로젝트](https://github.com/subquery/tutorials-moonriver-evm-starter)와 더불어 이벤트 및 콜 핸들러를 참조하세요.** 또한 본 프로젝트는 [서브쿼리 익스플로러](https://explorer.subquery.network/subquery/subquery/moonriver-evm-starter-project)를 통해 실시간 호스팅됩니다. @@ -22,31 +22,31 @@ Contextrequest` | `https://api.subquery.network/sq/subquery/moonbase-alpha-dicti ## 데이터 소스 사양 -| 필드 | 타입 | 요구사항 | 설명 | -| ----------------- | -------------------------------------------------------------- | ---- | ------------------------------------------ | -| processor.file | `'./node_modules/@subql/contract-processors/dist/moonbeam.js'` | 네 | 데이터 프로세서 코드에 대한 파일 참조 | -| processor.options | [ProcessorOptions](#processor-options) | 아니오 | Options specific to the Moonbeam Processor | -| assets | `{ [key: String]: { file: String }}` | 아니오 | An object of external asset files | +| 필드 | 타입 | 요구사항 | 설명 | +| ----------------- | -------------------------------------------------------------- | -------- | ------------------------------------------ | +| processor.file | `'./node_modules/@subql/contract-processors/dist/moonbeam.js'` | 네 | 데이터 프로세서 코드에 대한 파일 참조 | +| processor.options | [ProcessorOptions](#processor-options) | 아니오 | Options specific to the Moonbeam Processor | +| assets | `{ [key: String]: { file: String }}` | 아니오 | An object of external asset files | ### 프로세서 옵션 -| 필드 | 타입 | 요구사항 | 설명 | -| ---- | ---------------- | ---- | ----------------------------------------------------------------- | -| abi | String | 아니오 | ABI는 프로세서가 인자 파싱을 위해 사용. 반드시 `assets`의 키여야 합니다 | -| 어드레스 | String 또는 `null` | 아니오 | 이벤트 또는 콜이 만들어진 거래 주소. `null` will capture contract creation calls | +| 필드 | 타입 | 요구사항 | 설명 | +| -------- | ------------------ | -------- | -------------------------------------------------------------------------------- | +| abi | String | 아니오 | ABI는 프로세서가 인자 파싱을 위해 사용. 반드시 `assets`의 키여야 합니다 | +| 어드레스 | String 또는 `null` | 아니오 | 이벤트 또는 콜이 만들어진 거래 주소. `null` will capture contract creation calls | ## MoonbeamCall Works in the same way as [substrate/CallHandler](../create/mapping/#call-handler) except with a different handler argument and minor filtering changes. -| 필드 | 타입 | 요구사항 | 설명 | -| ------ | ---------------------------- | ---- | ------------------------------------------- | -| kind | 'substrate/MoonbeamCall' | 네 | Specifies that this is an Call type handler | -| filter | [Call Filter](#call-filters) | 아니오 | Filter the data source to execute | +| 필드 | 타입 | 요구사항 | 설명 | +| ------ | ---------------------------- | -------- | ------------------------------------------- | +| kind | 'substrate/MoonbeamCall' | 네 | Specifies that this is an Call type handler | +| filter | [Call Filter](#call-filters) | 아니오 | Filter the data source to execute | ### Call Filters -| 필드 | 타입 | 예시 | 설명 | +| 필드 | 타입 | 예시 | 설명 | | -------- | ------ | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | function | String | 0x095ea7b3, approve(address to,uint256 value) | Either [Function Signature](https://docs.ethers.io/v5/api/utils/abi/fragments/#FunctionFragment) strings or the function `sighash` to filter the function called on the contract | | from | String | 0x6bd193ee6d2104f14f94e2ca6efefae561a4334b | An Ethereum address that sent the transaction | @@ -65,18 +65,18 @@ Works in the same way as [substrate/CallHandler](../create/mapping/#call-handler Works in the same way as [substrate/EventHandler](../create/mapping/#event-handler) except with a different handler argument and minor filtering changes. -| 필드 | 타입 | 요구사항 | 설명 | -| ------ | ------------------------------ | ---- | -------------------------------------------- | -| kind | 'substrate/MoonbeamEvent' | 네 | Specifies that this is an Event type handler | -| filter | [Event Filter](#event-filters) | 아니오 | Filter the data source to execute | +| 필드 | 타입 | 요구사항 | 설명 | +| ------ | ------------------------------ | -------- | -------------------------------------------- | +| kind | 'substrate/MoonbeamEvent' | 네 | Specifies that this is an Event type handler | +| filter | [Event Filter](#event-filters) | 아니오 | Filter the data source to execute | ### 이벤트 필터 -| 필드 | 타입 | 예시 | 설명 | +| 필드 | 타입 | 예시 | 설명 | | ------ | ------------ | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | topics | String array | Transfer(address indexed from,address indexed to,uint256 value) | The topics filter follows the Ethereum JSON-PRC log filters, more documentation can be found [here](https://docs.ethers.io/v5/concepts/events/). | -Note on topics: +**Note on topics:** There are a couple of improvements from basic log filters: - Topics don't need to be 0 padded @@ -99,17 +99,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Contract address (or recipient if transfer) to filter, if `null` should be for contract creation - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -124,7 +124,7 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## 알려진 제약사항 diff --git a/docs/ko/faqs/faqs.md b/docs/ko/faqs/faqs.md index 4eddd2a9c33..5204fd6a6eb 100644 --- a/docs/ko/faqs/faqs.md +++ b/docs/ko/faqs/faqs.md @@ -16,7 +16,7 @@ SubQuery also provides free, production grade hosting of projects for developers **The SubQuery Network** -The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. +The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. More information [here](/subquery_network/introduction.md). @@ -26,7 +26,7 @@ The best way to get started with SubQuery is to try out our [Hello World tutoria ## SubQuery에 기여하거나 피드백을 하려면 어떻게 해야하나요? -우리는 언제나 커뮤니티의 기여와 피드백을 환영합니다. To contribute the code, fork the repository of your interest and make your changes. 그런 다음 PR 또는 풀 리퀘스트를 통해 제출해주세요. Don't forget to test as well. Also check out our contributions guidelines. +우리는 언제나 커뮤니티의 기여와 피드백을 환영합니다. To contribute the code, fork the repository of your interest and make your changes. 그런 다음 PR 또는 풀 리퀘스트를 통해 제출해주세요. Don't forget to test as well. Also check out our [contributions guidelines](../miscellaneous/contributing.html). To give feedback, contact us at hello@subquery.network or jump onto our [discord channel](https://discord.com/invite/78zg8aBSMG). @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Note that it is recommended to use `--force-clean` when changing the `startBlock` within the project manifest (`project.yaml`) in order to begin reindexing from the configured block. If `startBlock` is changed without a `--force-clean` of the project, then the indexer will continue indexing with the previously configured `startBlock`. - ## How can I optimise my project to speed it up? Performance is a crucial factor in each project. Fortunately, there are several things you could do to improve it. Here is the list of some suggestions: @@ -89,13 +88,13 @@ Performance is a crucial factor in each project. Fortunately, there are several - Set the start block to when the contract was initialised. - Always use a [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (we can help create one for your new network). - Optimise your schema design, keep it as simple as possible. - - Try to reduce unnecessary fields and columns. - - Create indexes as needed. + - Try to reduce unnecessary fields and columns. + - Create indexes as needed. - Use parallel/batch processing as often as possible. - - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. - - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. - - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. + - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. + - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. + - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. - Making API calls to query state can be slow. You could try to minimise calls where possible and to use `extrinsic/transaction/event` data. - Use `worker threads` to move block fetching and block processing into its own worker thread. It could speed up indexing by up to 4 times (depending on the particular project). You can easily enable it using the `-workers=` flag. Note that the number of available CPU cores strictly limits the usage of worker threads. For now, it is only available for Substrate and Cosmos and will soon be integrated for Avalanche. - Note that `JSON.stringify` doesn’t support native `BigInts`. Our logging library will do this internally if you attempt to log an object. We are looking at a workaround for this. -- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. \ No newline at end of file +- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. diff --git a/docs/ko/miscellaneous/contributing.md b/docs/ko/miscellaneous/contributing.md index a45707e71d6..2d63908f320 100644 --- a/docs/ko/miscellaneous/contributing.md +++ b/docs/ko/miscellaneous/contributing.md @@ -2,7 +2,7 @@ SubQuery 프로젝트에 도움을 주는 여러분을 환영하고 깊은 감사의 말씀을 드립니다. 우리는 함께 보다 탈중화 미래를 위한 길을 마련할 수 있습니다. -::: info Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: +::: tip Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: What follows is a set of guidelines (not rules) for contributing to SubQuery. Following these guidelines will help us make the contribution process easy and effective for everyone involved. It also communicates that you agree to respect the time of the developers managing and developing this project. In return, we will reciprocate that respect by addressing your issue, considering changes, collaborating on improvements, and helping you finalise your pull requests. @@ -14,8 +14,8 @@ We take our open source community projects and responsibility seriously and hold Contributions to our repositories are made through Issues and Pull Requests (PRs). A few general guidelines that cover both: -* 본인의 것을 만들기 전에 기존의 Issues 및 PRs를 검색하십시오. -* 우리는 문제가 신속하게 처리될 수 있도록 열심히 노력하고 있지만, 영향 정도에 따라 근본 원인을 파악하는데 좀 더 시간이 걸릴 수 있습니다. 당신의 문제가 막힌 경우, 댓글로 친절하게 @로 제출자 혹은 기여자를 언급하면 보다 쉽게 관심을 끌 수 있습니다. +- 본인의 것을 만들기 전에 기존의 Issues 및 PRs를 검색하십시오. +- 우리는 문제가 신속하게 처리될 수 있도록 열심히 노력하고 있지만, 영향 정도에 따라 근본 원인을 파악하는데 좀 더 시간이 걸릴 수 있습니다. 당신의 문제가 막힌 경우, 댓글로 친절하게 @로 제출자 혹은 기여자를 언급하면 보다 쉽게 관심을 끌 수 있습니다. ## 기여 방법 @@ -23,32 +23,32 @@ Contributions to our repositories are made through Issues and Pull Requests (PRs Bugs are tracked as GitHub issues. When logging an issue, explain the problem and include additional details to help maintainers reproduce the problem: -* 문제를 식별하기 위해 문제에 대해 명확하고 자세한 제목을 사용합니다. -* 문제를 재현 확인하기 위한 정확한 단계를 설명합니다. -* 단계들을 수행한 후에 당신이 보았던 동작을 설명하십시오. -* 당신이 기대 예상했던 작동과 그 이유를 설명하세요. -* 가능하다면, 스크린샷을 첨부하세요. +- 문제를 식별하기 위해 문제에 대해 명확하고 자세한 제목을 사용합니다. +- 문제를 재현 확인하기 위한 정확한 단계를 설명합니다. +- 단계들을 수행한 후에 당신이 보았던 동작을 설명하십시오. +- 당신이 기대 예상했던 작동과 그 이유를 설명하세요. +- 가능하다면, 스크린샷을 첨부하세요. ### Pull Requests 제출 In general, we follow the "fork-and-pull" Git workflow: -* Fork the repository to your own Github account. -* Clone the project to your machine. -* Create a branch locally with a succinct but descriptive name. -* Commit changes to the branch. -* Following any formatting and testing guidelines specific to this repo. -* Push changes to your fork. -* Open a PR in our repository. +- Fork the repository to your own Github account. +- Clone the project to your machine. +- Create a branch locally with a succinct but descriptive name. +- Commit changes to the branch. +- Following any formatting and testing guidelines specific to this repo. +- Push changes to your fork. +- Open a PR in our repository. ## 코딩 규칙 ### Git 커밋 메시지 -* Use the present tense ("Add feature" not "Added feature"). -* Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). -* Limit the first line to 72 characters or less. +- Use the present tense ("Add feature" not "Added feature"). +- Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). +- Limit the first line to 72 characters or less. ### 자바스크립트 스타일 지침 -* All JavaScript code is linted with Prettier and ESLint. +- All JavaScript code is linted with Prettier and ESLint. diff --git a/docs/ko/quickstart/helloworld-localhost.md b/docs/ko/quickstart/helloworld-localhost.md index 93885736b64..7328b32ec68 100644 --- a/docs/ko/quickstart/helloworld-localhost.md +++ b/docs/ko/quickstart/helloworld-localhost.md @@ -88,13 +88,13 @@ cd subqlHelloWorld 이제 다양한 종속성을 설치하기 위해 원사 또는 노드 설치를 수행합니다. - `shell yarn install ` - `bash npm install ` +::: code-tabs @tab:active yarn `shell yarn install ` +@tab npm `bash npm install ` ::: An example of `yarn install` ```shell -# Yarn yarn install # NPM npm install

+# Yarn yarn install # NPM npm install
> yarn install
 yarn install v1.22.10
@@ -123,7 +123,7 @@ $ ./node_modules/.bin/subql codegen
 ===============================
 ---------Subql Codegen---------
 ===============================
-* Schema StarterEntity generated !

+* Schema StarterEntity generated !
> yarn codegen
 yarn run v1.22.10
@@ -148,19 +148,19 @@ $ ./node_modules/.bin/subql codegen
 # NPM npm run-script build
 ```
 
-````shell
+```shell
 > yarn build
 yarn run v1.22.10
 $ tsc -b
-✨  Done in 5.68s. ```
-

+✨ Done in 5.68s. +``` ```shell > yarn build yarn run v1.22.10 $ tsc -b ✨ Done in 5.68s. -```` +``` ## 5. Docker 실행 diff --git a/docs/ko/quickstart/quickstart-avalanche.md b/docs/ko/quickstart/quickstart-avalanche.md index 7ced458bfb3..62a6e88223a 100644 --- a/docs/ko/quickstart/quickstart-avalanche.md +++ b/docs/ko/quickstart/quickstart-avalanche.md @@ -59,8 +59,8 @@ After the initialisation process is complete, you should see a folder with your Last, under the project directory, run following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -92,8 +92,8 @@ type PangolinApproval @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory. Do this now.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -169,7 +169,7 @@ For more information about mapping functions, check out our documentation under In order run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -183,7 +183,7 @@ All configuration that controls how a SubQuery node is run is defined in this `d Under the project directory run following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Be patient here. diff --git a/docs/ko/quickstart/quickstart-cosmos.md b/docs/ko/quickstart/quickstart-cosmos.md index 947196968cc..5bda04ae26a 100644 --- a/docs/ko/quickstart/quickstart-cosmos.md +++ b/docs/ko/quickstart/quickstart-cosmos.md @@ -44,8 +44,8 @@ After the initialisation process is complete, you should see a folder with your Last, under the project directory, run following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -75,8 +75,8 @@ type Vote @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory. Do this now.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -145,7 +145,7 @@ For more information about mapping functions, check out our documentation under In order run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -159,7 +159,7 @@ All configuration that controls how a SubQuery node is run is defined in this `d Under the project directory run following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Be patient here. @@ -173,10 +173,9 @@ For a new SubQuery starter project, you can try the following query to get a tas ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id diff --git a/docs/ko/quickstart/quickstart-polkadot.md b/docs/ko/quickstart/quickstart-polkadot.md index 6e484c48f67..38f856093ac 100644 --- a/docs/ko/quickstart/quickstart-polkadot.md +++ b/docs/ko/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql 초기화 You'll be asked certain questions as the SubQuery project is initalised: - Project name: A project name for your SubQuery project -- Network family: The layer-1 blockchain network family that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use *"Substrate"* -- Network: The specific network that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use *"Polkadot"* -- Template project: Select a SubQuery template project that will provide a starting point to begin development. We suggest selecting the *"subql-starter"* project. -- RPC endpoint: Provide an HTTPS URL to a running RPC endpoint that will be used by default for this project. You can quickly access public endpoints for different Polkadot networks, create your own private dedicated node using [OnFinality](https://app.onfinality.io) or just use the default Polkadot endpoint. This RPC node must be an archive node (have the full chain state). For this guide, we will use the default value *"https://polkadot.api.onfinality.io"* +- Network family: The layer-1 blockchain network family that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use _"Substrate"_ +- Network: The specific network that this SubQuery project will be developed to index. Use the arrow keys to select from the available options. For this guide, we will use _"Polkadot"_ +- Template project: Select a SubQuery template project that will provide a starting point to begin development. We suggest selecting the _"subql-starter"_ project. +- RPC endpoint: Provide an HTTPS URL to a running RPC endpoint that will be used by default for this project. You can quickly access public endpoints for different Polkadot networks, create your own private dedicated node using [OnFinality](https://app.onfinality.io) or just use the default Polkadot endpoint. This RPC node must be an archive node (have the full chain state). For this guide, we will use the default value _"https://polkadot.api.onfinality.io"_ - Git repository: Provide a Git URL to a repo that this SubQuery project will be hosted in (when hosted in SubQuery Explorer) or accept the provided default. - Authors: Enter the owner of this SubQuery project here (e.g. your name!) or accept the provided default. - Description: Provide a short paragraph about your project that describes what data it contains and what users can do with it or accept the provided default. @@ -57,8 +57,8 @@ After the initialisation process is complete, you should see that a folder with Last, under the project directory, run the following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -88,8 +88,8 @@ type Transfer @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -133,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { - // Get data from the event - // The balances.transfer event has the following payload \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Create the new transfer entity - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Get data from the event + // The balances.transfer event has the following payload \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Create the new transfer entity + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -160,7 +160,7 @@ For more information about mapping functions, check out our documentation under In order to run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you will need to rebuild your project** @@ -174,7 +174,7 @@ All configuration that controls how a SubQuery node is run is defined in the `do Under the project directory, run the following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you should see a running SubQuery node in the terminal screen. @@ -189,10 +189,7 @@ For a new SubQuery starter project, try the following query to understand how it ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount diff --git a/docs/ko/quickstart/quickstart-terra.md b/docs/ko/quickstart/quickstart-terra.md index 195ee24bd81..2bef39b3e92 100644 --- a/docs/ko/quickstart/quickstart-terra.md +++ b/docs/ko/quickstart/quickstart-terra.md @@ -45,11 +45,11 @@ subql 초기화 You'll be asked certain questions as the SubQuery project is initalised: - Project Name: A name for your SubQuery project -- Network Family: The layer-1 blockchain network family that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use *"Terra"* -- Network: The specific network that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use *"Terra"* -- Template: Select a SubQuery project template that will provide a starting point to begin development, we suggest selecting the *"Starter project"* +- Network Family: The layer-1 blockchain network family that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use _"Terra"_ +- Network: The specific network that this SubQuery project will be developed to index, use the arrow keys on your keyboard to select from the options, for this guide we will use _"Terra"_ +- Template: Select a SubQuery project template that will provide a starting point to begin development, we suggest selecting the _"Starter project"_ - Git repository (Optional): Provide a Git URL to a repo that this SubQuery project will be hosted in (when hosted in SubQuery Explorer) -- RPC endpoint (Required): Provide a HTTPS URL to a running RPC endpoint that will be used by default for this project. This RPC node must be an archive node (have the full chain state). For this guide we will use the default value *"https://terra-columbus-5.beta.api.onfinality.io"* +- RPC endpoint (Required): Provide a HTTPS URL to a running RPC endpoint that will be used by default for this project. This RPC node must be an archive node (have the full chain state). For this guide we will use the default value _"https://terra-columbus-5.beta.api.onfinality.io"_ - Authors (Required): Enter the owner of this SubQuery project here (e.g. your name!) - Description (Optional): You can provide a short paragraph about your project that describe what data it contains and what users can do with it - Version (Required): Enter a custom version number or use the default (`1.0.0`) @@ -59,8 +59,8 @@ After the initialisation process is complete, you should see a folder with your Last, under the project directory, run following command to install the new project's dependencies. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -91,8 +91,8 @@ type Transfer @entity { **Important: When you make any changes to the schema file, please ensure that you regenerate your types directory. Do this now.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. For more information about the `schema.graphql` file, check out our documentation under [Build/GraphQL Schema](../build/graphql.md) @@ -143,30 +143,30 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Print debugging data from the event - // logger.info(JSON.stringify(event)); - - // Create the new transfer entity with a unique ID - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Print debugging data from the event + // logger.info(JSON.stringify(event)); + + // Create the new transfer entity with a unique ID + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` @@ -178,7 +178,7 @@ For more information about mapping functions, check out our documentation under In order run your new SubQuery Project we first need to build our work. Run the build command from the project's root directory. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -192,7 +192,7 @@ All configuration that controls how a SubQuery node is run is defined in this `d Under the project directory run following command: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Be patient here. @@ -207,10 +207,7 @@ For a new SubQuery starter project, you can try the following query to get a tas ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash diff --git a/docs/ko/quickstart/quickstart.md b/docs/ko/quickstart/quickstart.md index 8f75618992d..7459ecb8b9b 100644 --- a/docs/ko/quickstart/quickstart.md +++ b/docs/ko/quickstart/quickstart.md @@ -89,8 +89,8 @@ After you complete the initialisation process, you will see a folder with your p Finally, run the following command to install the new project’s dependencies from within the new project's directory. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: You have now initialised your first SubQuery project with just a few simple steps. Let’s now customise the standard template project for a specific blockchain of interest. @@ -104,4 +104,4 @@ There are 3 important files that need to be modified. These are: 2. The Project Manifest in `project.yaml`. 3. The Mapping functions in `src/mappings/` directory. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/ko/run_publish/connect.md b/docs/ko/run_publish/connect.md index 605fc02dba1..e21a29377f2 100644 --- a/docs/ko/run_publish/connect.md +++ b/docs/ko/run_publish/connect.md @@ -2,10 +2,10 @@ Once your deployment has succesfully completed and our nodes have indexed your data from the chain, you'll be able to connect to your project via the displayed Query endpoint. -![배포 및 동기화된 프로젝트](/assets/img/projects-deploy-sync.png) +![배포 및 동기화된 프로젝트](/assets/img/projects_deploy_sync.png) 프로젝트 제목 옆에 있는 3개의 점을 클릭하여 SubQuery 탐색기로 표시할 수도 있습니다. There you can use the in browser playground to get started. -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/ko/run_publish/query.md b/docs/ko/run_publish/query.md index 0e427715fa4..e1ac6575f51 100644 --- a/docs/ko/run_publish/query.md +++ b/docs/ko/run_publish/query.md @@ -12,4 +12,4 @@ SubQuery Explorer를 사용하면 쉽게 시작할 수 있습니다. 저희는 On the top right of the playground, you'll find a _Docs_ button that will open a documentation draw. 이 문서는 자동으로 생성되어 조회할 수 있는 Entity와 Method를 찾는데 도움이 됩니다. -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/ko/run_publish/references.md b/docs/ko/run_publish/references.md index 66cd155a16d..8da7819dfcd 100644 --- a/docs/ko/run_publish/references.md +++ b/docs/ko/run_publish/references.md @@ -21,10 +21,10 @@ COMMANDS This command is uses webpack to generate a bundle of a subquery project. -| Options | 설명 | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | local folder of subquery project (if not in folder already) | -| -o, --output | specify output folder of build e.g. build-folder | +| Options | 설명 | +| ------------------ | ----------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | local folder of subquery project (if not in folder already) | +| -o, --output | specify output folder of build e.g. build-folder | | --mode=(production | prod | development | dev) | [ default: production ] | - With `subql build` you can specify additional entry points in exports field although it will always build `index.ts` automatically. @@ -106,7 +106,7 @@ This displays the current version. ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -346,7 +346,7 @@ This will move block fetching and processing into a worker. By default, this fea It is at an early experimental stage at the moment, but we plan to enable it by default. ::: -::: info Note +::: tip Note This feature is available for Substrate and Cosmos, and soon will be integrated for Avalanche. ::: diff --git a/docs/ko/run_publish/run.md b/docs/ko/run_publish/run.md index b98c2543378..562e49b153f 100644 --- a/docs/ko/run_publish/run.md +++ b/docs/ko/run_publish/run.md @@ -4,7 +4,7 @@ This guide works through how to run a local SubQuery node on your infrastructure ## Using Docker -An alternative solution is to run a Docker Container, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. +An alternative solution is to run a **Docker Container**, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. Under the project directory run the following command: @@ -12,7 +12,7 @@ Under the project directory run the following command: docker-compose pull && docker-compose up ``` -::: info Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: +::: tip Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: ## Running an Indexer (subql/node) @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Installation - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: Once installed, you can start a node with the following command: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Point to local project path - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ Depending on the configuration of your Postgres database (e.g. a different datab #### Specify a configuration file - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ When the indexer first indexes the chain, fetching single blocks will significan #### Run in local mode - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Switching to local model will create Postgres tables in the default schema `public`. diff --git a/docs/ko/run_publish/subscription.md b/docs/ko/run_publish/subscription.md index 9bbc2661f96..29cf660d492 100644 --- a/docs/ko/run_publish/subscription.md +++ b/docs/ko/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery now also supports Graphql Subscriptions. Like queries, subscriptions en Subscriptions are very useful when you want your client application to change data or show some new data as soon as that change occurs or the new data is available. Subscriptions allow you to _subscribe_ to your SubQuery project for changes. -::: info Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: +::: tip Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: ## How to Subscribe to an Entity diff --git a/docs/ko/run_publish/upgrade.md b/docs/ko/run_publish/upgrade.md index b1391baa06a..883f2628ad3 100644 --- a/docs/ko/run_publish/upgrade.md +++ b/docs/ko/run_publish/upgrade.md @@ -77,10 +77,10 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n 배포가 성공적으로 완료되고 노드가 체인에서 데이터를 인덱스화하면 표출된 GraphQL 쿼리 엔드포인트를 통해 프로젝트에 접속할 수 있습니다. -![배포 및 동기화된 프로젝트](/assets/img/projects-deploy-sync.png) +![배포 및 동기화된 프로젝트](/assets/img/projects_deploy_sync.png) 프로젝트 제목 옆에 있는 3개의 점을 클릭하여 SubQuery 탐색기로 표시할 수도 있습니다. There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/ko/subquery_network/introduction.md b/docs/ko/subquery_network/introduction.md index 295d4a0e0d8..6394db677b8 100644 --- a/docs/ko/subquery_network/introduction.md +++ b/docs/ko/subquery_network/introduction.md @@ -18,22 +18,22 @@ There’s a role for everyone in the network, from highly technical developers t Consumers will ask the SubQuery Network for specific data for their dApps or tools, and pay an advertised amount of SQT for each request. -::: info Note Learn more about [Consumers](./consumers.md). ::: +::: tip Note Learn more about [Consumers](./consumers.md). ::: ### Indexers Indexers will run and maintain high quality SubQuery projects in their own infrastructure, running both the indexer and query service, and will be rewarded in SQT for the requests that they serve. -::: info Note Learn more about [Indexers](./indexers.md). ::: +::: tip Note Learn more about [Indexers](./indexers.md). ::: ### Delegators Delegators will participate in the Network by supporting their favourite Indexers to earn rewards based on the work those indexers do. -::: info Note Learn more about [Delegators](./delegators.md). ::: +::: tip Note Learn more about [Delegators](./delegators.md). ::: ### Architects Architects are the builders of the SubQuery projects that the Network runs on. They author and publish SubQuery projects for the Network to index and run. -::: info Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: +::: tip Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: diff --git a/docs/miscellaneous/contributing.md b/docs/miscellaneous/contributing.md index 12b1bdfefed..4ab8192656a 100644 --- a/docs/miscellaneous/contributing.md +++ b/docs/miscellaneous/contributing.md @@ -2,7 +2,7 @@ Welcome and a big thank you for considering contributing to this SubQuery project! Together we can pave the way to a more decentralised future. -::: info Note +::: tip Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: @@ -16,8 +16,8 @@ We take our open source community projects and responsibility seriously and hold Contributions to our repositories are made through Issues and Pull Requests (PRs). A few general guidelines that cover both: -* Search for existing Issues and PRs before creating your own. -* We work hard to makes sure issues are handled in promptly but, depending on the impact, it could take a while to investigate the root cause. A friendly @ mention in the comment thread to the submitter or a contributor can help draw attention if your issue is blocking. +- Search for existing Issues and PRs before creating your own. +- We work hard to makes sure issues are handled in promptly but, depending on the impact, it could take a while to investigate the root cause. A friendly @ mention in the comment thread to the submitter or a contributor can help draw attention if your issue is blocking. ## How to Contribute @@ -25,32 +25,32 @@ Contributions to our repositories are made through Issues and Pull Requests (PRs Bugs are tracked as GitHub issues. When logging an issue, explain the problem and include additional details to help maintainers reproduce the problem: -* Use a clear and descriptive title for the issue to identify the problem. -* Describe the exact steps to reproduce the problem. -* Describe the behavior you observed after following the steps. -* Explain which behavior you expected to see instead and why. -* Include screenshots if possible. +- Use a clear and descriptive title for the issue to identify the problem. +- Describe the exact steps to reproduce the problem. +- Describe the behavior you observed after following the steps. +- Explain which behavior you expected to see instead and why. +- Include screenshots if possible. ### Submitting Pull Requests In general, we follow the "fork-and-pull" Git workflow: -* Fork the repository to your own Github account. -* Clone the project to your machine. -* Create a branch locally with a succinct but descriptive name. -* Commit changes to the branch. -* Following any formatting and testing guidelines specific to this repo. -* Push changes to your fork. -* Open a PR in our repository. +- Fork the repository to your own Github account. +- Clone the project to your machine. +- Create a branch locally with a succinct but descriptive name. +- Commit changes to the branch. +- Following any formatting and testing guidelines specific to this repo. +- Push changes to your fork. +- Open a PR in our repository. ## Coding Conventions ### Git Commit Messages -* Use the present tense ("Add feature" not "Added feature"). -* Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). -* Limit the first line to 72 characters or less. +- Use the present tense ("Add feature" not "Added feature"). +- Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). +- Limit the first line to 72 characters or less. ### JavaScript Styleguide -* All JavaScript code is linted with Prettier and ESLint. +- All JavaScript code is linted with Prettier and ESLint. diff --git a/docs/quickstart/quickstart.md b/docs/quickstart/quickstart.md index bc1e58556d4..fc468dee86c 100644 --- a/docs/quickstart/quickstart.md +++ b/docs/quickstart/quickstart.md @@ -92,25 +92,22 @@ After you complete the initialisation process, you will see a folder with your p Finally, run the following command to install the new project’s dependencies from within the new project's directory. - - +::: code-tabs +@tab:active yarn ```shell cd PROJECT_NAME yarn install ``` - - - +@tab npm ```shell cd PROJECT_NAME npm install ``` - - +::: You have now initialised your first SubQuery project with just a few simple steps. Let’s now customise the standard template project for a specific blockchain of interest. @@ -124,4 +121,4 @@ There are 3 important files that need to be modified. These are: 2. The Project Manifest in `project.yaml`. 3. The Mapping functions in `src/mappings/` directory. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/quickstart/quickstart_chains/algorand.md b/docs/quickstart/quickstart_chains/algorand.md index 77bd5604603..fba84f3ec22 100644 --- a/docs/quickstart/quickstart_chains/algorand.md +++ b/docs/quickstart/quickstart_chains/algorand.md @@ -12,7 +12,7 @@ Now, let's move forward and update these configurations. Previously, in the [1. Create a New Project](../quickstart.md) section, you must have noted [3 key files](../quickstart.md#_3-make-changes-to-your-project). Let's begin updating them one by one. -::: info Note +::: tip Note The final code of this project can be found [here](https://github.com/jamesbayly/algorand-planet-watch). ::: @@ -36,23 +36,20 @@ type Transaction @entity { When you make any changes to the schema file, please ensure that you regenerate your types directory. ::: - - +::: code-tabs +@tab:active yarn ```shell yarn codegen ``` - - - +@tab npm ```shell npm run-script codegen ``` - - +::: You will find the generated models in the `/src/types/models` directory. @@ -133,22 +130,20 @@ Check out our [Mappings](../../build/mapping/algorand.md) documentation to get m Next, build your work to run your new SubQuery project. Run the build command from the project's root directory as given here: - - +::: code-tabs +@tab:active yarn ```shell yarn build ``` - - +@tab npm ```shell npm run-script build ``` - - +::: ::: warning Important Whenever you make changes to your mapping functions, you must rebuild your project. @@ -166,24 +161,22 @@ However, visit the [Running SubQuery Locally](../../run_publish/run.md) to get m Run the following command under the project directory: - - +::: code-tabs +@tab:active yarn ```shell yarn start:docker ``` - - +@tab npm ```shell npm run-script start:docker ``` - - +::: -::: info Note +::: tip Note It may take a few minutes to download the required images and start the various nodes and Postgres databases. ::: @@ -391,7 +384,7 @@ You will see the result similar to below: } ``` -::: info Note +::: tip Note The final code of this project can be found [here](https://github.com/jamesbayly/algorand-planet-watch). ::: diff --git a/docs/quickstart/quickstart_chains/avalanche.md b/docs/quickstart/quickstart_chains/avalanche.md index 34cd957dea7..025e40f1362 100644 --- a/docs/quickstart/quickstart_chains/avalanche.md +++ b/docs/quickstart/quickstart_chains/avalanche.md @@ -11,7 +11,7 @@ Before we begin, make sure that you have initialised your project using the prov Now, let's move forward and update these configurations. Previously, in the [1. Create a New Project](../quickstart.md) section, you must have noted [3 key files](../quickstart.md#_3-make-changes-to-your-project). Let's begin updating them one by one. -::: info Note +::: tip Note The final code of this project can be found [here](https://github.com/jamesbayly/pangolin-rewards-tutorial). ::: @@ -36,23 +36,20 @@ type PangolinRewards @entity { When you make any changes to the schema file, please ensure that you regenerate your types directory. ::: - - +::: code-tabs +@tab:active yarn ```shell yarn codegen ``` - - - +@tab npm ```shell npm run-script codegen ``` - - +::: You will find the generated models in the `/src/types/models` directory. @@ -144,22 +141,20 @@ Check out our [Mappings](../../build/mapping/avalanche.md) documentation to get Next, build your work to run your new SubQuery project. Run the build command from the project's root directory as given here: - - +::: code-tabs +@tab:active yarn ```shell yarn build ``` - - +@tab npm ```shell npm run-script build ``` - - +::: ::: warning Important Whenever you make changes to your mapping functions, you must rebuild your project. @@ -177,24 +172,22 @@ However, visit the [Running SubQuery Locally](../../run_publish/run.md) to get m Run the following command under the project directory: - - +::: code-tabs +@tab:active yarn ```shell yarn start:docker ``` - - +@tab npm ```shell npm run-script start:docker ``` - - +::: -::: info Note +::: tip Note It may take a few minutes to download the required images and start the various nodes and Postgres databases. ::: @@ -246,7 +239,7 @@ You will see the result similar to below: } ``` -::: info Note +::: tip Note The final code of this project can be found [here](https://github.com/jamesbayly/pangolin-rewards-tutorial). ::: diff --git a/docs/quickstart/quickstart_chains/cosmos-cronos.md b/docs/quickstart/quickstart_chains/cosmos-cronos.md index 17ab7836385..8d287ec13a9 100644 --- a/docs/quickstart/quickstart_chains/cosmos-cronos.md +++ b/docs/quickstart/quickstart_chains/cosmos-cronos.md @@ -14,7 +14,7 @@ Now, let's move ahead in the process and update these configurations. Previously, in the [1. Create a New Project](../quickstart.md) section, you must have noted [3 key files](../quickstart.md#_3-make-changes-to-your-project). Let's begin updating them one by one. -::: info Note +::: tip Note The final code of this project can be found [here](https://github.com/deverka/cronos_crow_token_transfers). ::: @@ -37,23 +37,20 @@ type Transfer @entity { When you make any changes to the schema file, do not forget to regenerate your types directory. ::: - - +::: code-tabs +@tab:active yarn ```shell yarn codegen ``` - - - +@tab npm ```shell npm run-script codegen ``` - - +::: You will find the generated models in the `/src/types/models` directory. @@ -76,8 +73,8 @@ Note that the manifest file has already been set up correctly and doesn’t requ There are two versions of this file depending on your choice to index data via the ETH or Cosmos RPC ::: - - +::: code-tabs +@tab ETH ```yml dataSources: @@ -102,9 +99,7 @@ dataSources: - null ``` - - - +@tab Cosmos RPC ```yml dataSources: @@ -131,12 +126,11 @@ dataSources: - null ``` - - +::: The above code defines that you will be running a `handleTransfer` mapping function whenever there is an event emitted with the `transfer` method. Check out our [Manifest File](../../build/manifest/cosmos.md) documentation to get more information about the Project Manifest (`project.yaml`) file. -::: info Note +::: tip Note Please note that Cro Crow token requires a specific ABI interface. You need to: - Get the [Cro Crow contract ABI](https://cronoscan.com/address/0xe4ab77ed89528d90e6bcf0e1ac99c58da24e79d5#code). @@ -159,8 +153,8 @@ There are two versions of this file depending on your choice to index data via t Update your mapping files to match the following (**note the additional imports**): - - +::: code-tabs +@tab ETH ```ts import { Transfer } from "../types"; @@ -189,9 +183,7 @@ export async function handleTransfer( } ``` - - - +@tab Cosmos RPC ```ts import { Transfer } from "../types"; @@ -220,8 +212,7 @@ export async function handleTransfer( } ``` - - +::: Let’s understand how the above code works. Here, the function receives an `EthereumLog` or `EthermintEvmEvent` which includes data on the payload. We extract this data and then create a new `Transfer` entity defined earlier in the `schema.graphql` file. After that we use the `.save()` function to save the new entity (SubQuery will automatically save this to the database). Check out our [Mappings](../../build/mapping/cosmos.md) documentation and get information on the mapping functions in detail. @@ -229,22 +220,20 @@ Let’s understand how the above code works. Here, the function receives an `Eth Next, build your work to run your new SubQuery project. Run the build command from the project's root directory as given here: - - +::: code-tabs +@tab:active yarn ```shell yarn build ``` - - +@tab npm ```shell npm run-script build ``` - - +::: ::: warning Important Whenever you make changes to your mapping functions, you must rebuild your project. @@ -262,24 +251,22 @@ However, visit the [Running SubQuery Locally](../../run_publish/run.md) to get m Run the following command under the project directory: - - +::: code-tabs +@tab:active yarn ```shell yarn start:docker ``` - - +@tab npm ```shell npm run-script start:docker ``` - - +::: -::: info Note +::: tip Note It may take a few minutes to download the required images and start the various nodes and Postgres databases. ::: @@ -341,7 +328,7 @@ You will see the result similar to below: } ``` -::: info Note +::: tip Note The final code of this project can be found [here](https://github.com/deverka/cronos_crow_token_transfers). ::: diff --git a/docs/quickstart/quickstart_chains/cosmos-thorchain.md b/docs/quickstart/quickstart_chains/cosmos-thorchain.md index 93b552775c1..c44aeed748b 100644 --- a/docs/quickstart/quickstart_chains/cosmos-thorchain.md +++ b/docs/quickstart/quickstart_chains/cosmos-thorchain.md @@ -14,7 +14,7 @@ Now, let's move ahead in the process and update these configurations. Previously, in the [1. Create a New Project](../quickstart.md) section, you must have noted [3 key files](../quickstart.md#_3-make-changes-to-your-project). Let's begin updating them one by one. -::: info Note +::: tip The final code of this project can be found [here](https://github.com/subquery/cosmos-subql-starter/tree/main/Thorchain/thorchain-starter). ::: @@ -53,23 +53,20 @@ type Coin @entity { When you make any changes to the schema file, do not forget to regenerate your types directory. ::: - - +::: code-tabs +@tab:active yarn ```shell yarn codegen ``` - - - +@tab npm ```shell npm run-script codegen ``` - - +::: You will find the generated models in the `/src/types/models` directory. @@ -175,22 +172,20 @@ Let’s understand how the above code works. Here, the function receives an `Cos Next, build your work to run your new SubQuery project. Run the build command from the project's root directory as given here: - - +::: code-tabs +@tab:active yarn ```shell yarn build ``` - - +@tab npm ```shell npm run-script build ``` - - +::: ::: warning Important Whenever you make changes to your mapping functions, you must rebuild your project. @@ -208,24 +203,22 @@ However, visit the [Running SubQuery Locally](../../run_publish/run.md) to get m Run the following command under the project directory: - - +::: code-tabs +@tab:active yarn ```shell yarn start:docker ``` - - +@tab npm ```shell npm run-script start:docker ``` - - +::: -::: info Note +::: tip It may take a few minutes to download the required images and start the various nodes and Postgres databases. ::: @@ -284,7 +277,7 @@ query { You will see the result in JSON -::: info Note +::: tip The final code of this project can be found [here](https://github.com/subquery/cosmos-subql-starter/tree/main/Thorchain/thorchain-starter). ::: diff --git a/docs/quickstart/quickstart_chains/cosmos.md b/docs/quickstart/quickstart_chains/cosmos.md index 4defb3144fa..a0228dd9e32 100644 --- a/docs/quickstart/quickstart_chains/cosmos.md +++ b/docs/quickstart/quickstart_chains/cosmos.md @@ -18,7 +18,7 @@ Note that we are using Juno as the example here, but SubQuery supports all the f - [Cronos](https://github.com/subquery/cosmos-subql-starter/tree/main/Cronos) - and more, view the full list in [the cosmos-subql-starter repository](https://github.com/subquery/cosmos-subql-starter). -::: info Note +::: tip Note SubQuery can support more Cosmos zones than listed above. It requires importing `protobufs definitions` for specific chain types. See [Custom Cosmos Chains](../../build/manifest/cosmos.md#custom-chains) for more information. @@ -28,7 +28,7 @@ Now, let's move ahead in the process and update these configurations. Previously, in the [1. Create a New Project](../quickstart.md) section, you must have noted [3 key files](../quickstart.md#_3-make-changes-to-your-project). Let's begin updating them one by one. -::: info Note +::: tip Note The final code of this project can be found [here](https://github.com/jamesbayly/juno-terra-developer-fund-votes). ::: @@ -52,23 +52,20 @@ type Vote @entity { When you make any changes to the schema file, do not forget to regenerate your types directory. ::: - - +::: code-tabs +@tab:active yarn ```shell yarn codegen ``` - - - +@tab npm ```shell npm run-script codegen ``` - - +::: You will find the generated models in the `/src/types/models` directory. @@ -150,22 +147,20 @@ Check out our [Mappings](../../build/mapping/cosmos.md) documentation and get in Next, build your work to run your new SubQuery project. Run the build command from the project's root directory as given here: - - +::: code-tabs +@tab:active yarn ```shell yarn build ``` - - +@tab npm ```shell npm run-script build ``` - - +::: ::: warning Important Whenever you make changes to your mapping functions, you must rebuild your project. @@ -183,24 +178,22 @@ However, visit the [Running SubQuery Locally](../../run_publish/run.md) to get m Run the following command under the project directory: - - +::: code-tabs +@tab:active yarn ```shell yarn start:docker ``` - - +@tab npm ```shell npm run-script start:docker ``` - - +::: -::: info Note +::: tip Note It may take a few minutes to download the required images and start the various nodes and Postgres databases. ::: @@ -260,7 +253,7 @@ You will see the result similar to below: } ``` -::: info Note +::: tip Note The final code of this project can be found [here](https://github.com/jamesbayly/juno-terra-developer-fund-votes). ::: diff --git a/docs/quickstart/quickstart_chains/flare.md b/docs/quickstart/quickstart_chains/flare.md index ed275a73d65..66611398bf4 100644 --- a/docs/quickstart/quickstart_chains/flare.md +++ b/docs/quickstart/quickstart_chains/flare.md @@ -12,7 +12,7 @@ Now, let's move forward and update these configurations. Previously, in the [1. Create a New Project](../quickstart.md) section, you must have noted [3 key files](../quickstart.md#_3-make-changes-to-your-project). Let's begin updating them one by one. -::: info Note +::: tip Note The final code of this project can be found [here](https://github.com/jamesbayly/subql-flare-ftso-rewards). ::: @@ -45,23 +45,20 @@ Since we have a [many-to-many relationship](../../build/graphql.md#many-to-many- When you make any changes to the schema file, please ensure that you regenerate your types directory. ::: - - +::: code-tabs +@tab:active yarn ```shell yarn codegen ``` - - - +@tab npm ```shell npm run-script codegen ``` - - +::: You will find the generated models in the `/src/types/models` directory. @@ -185,22 +182,20 @@ Check out our [Mappings](../../build/mapping/flare.md) documentation to get more Next, build your work to run your new SubQuery project. Run the build command from the project's root directory as given here: - - +::: code-tabs +@tab:active yarn ```shell yarn build ``` - - +@tab npm ```shell npm run-script build ``` - - +::: ::: warning Important Whenever you make changes to your mapping functions, you must rebuild your project. @@ -218,24 +213,22 @@ However, visit the [Running SubQuery Locally](../../run_publish/run.md) to get m Run the following command under the project directory: - - +::: code-tabs +@tab:active yarn ```shell yarn start:docker ``` - - +@tab npm ```shell npm run-script start:docker ``` - - +::: -::: info Note +::: tip Note It may take a few minutes to download the required images and start the various nodes and Postgres databases. ::: @@ -308,7 +301,7 @@ You will see the result similar to below: } ``` -::: info Note +::: tip Note The final code of this project can be found [here](https://github.com/jamesbayly/subql-flare-ftso-rewards). ::: diff --git a/docs/quickstart/quickstart_chains/polkadot-humanode.md b/docs/quickstart/quickstart_chains/polkadot-humanode.md index 9574fc8fccd..8af16f4677c 100644 --- a/docs/quickstart/quickstart_chains/polkadot-humanode.md +++ b/docs/quickstart/quickstart_chains/polkadot-humanode.md @@ -1,4 +1,4 @@ -# Humanode Quick Start +# Polkadot Quick Start (Humanode) ## Goals @@ -38,20 +38,21 @@ type ImOnlineSomeOffline @entity { While making any changes to the schema file, make sure to regenerate your types directory ::: - - - ```shell - yarn codegen - ``` - - - - ```shell - npm run-script codegen - ``` - - - +::: code-tabs +@tab:active yarn + +```shell +yarn codegen +``` + +@tab npm + +```shell +npm run-script codegen +``` + +::: + You will find the generated models in the `/src/types/models` directory. Check out the [GraphQL Schema](../../build/graphql.md) documentation to get in-depth information on `schema.graphql` file. @@ -87,10 +88,10 @@ dataSources: filter: module: imOnline method: SomeOffline - ``` - +``` + This indicates that you will be running a `handleBioauthNewAuthenticationEvent` and `handleImonlineSomeOfflineEvent` mapping functions whenever there are events emitted from the `bioauth` and `imOnline modules` with the `NewAuthentication` and `SomeOffline` methods, respectively. - + Check out our [documentation](../../build/manifest/polkadot.md) to get more information about the Project Manifest (`project.yaml`) file. Next, let’s proceed ahead with the Mapping Function’s configuration. @@ -148,24 +149,23 @@ export async function handleImonlineSomeOfflineEvent( ``` ## 4. Building Your Project + Next, build your work to run your new SubQuery project. Run the build command from the project's root directory as given here: - - +::: code-tabs +@tab:active yarn ```shell yarn build ``` - - +@tab npm ```shell npm run-script build ``` - - +::: ::: warning Important Make sure to rebuild your project when you change your mapping functions. @@ -183,22 +183,20 @@ However, visit Running [SubQuery Locally](../../run_publish/run.html) to get mor Run the following command under the project directory: - - +::: code-tabs +@tab:active yarn ```shell yarn start:docker ``` - - +@tab npm ```shell npm run-script start:docker ``` - - +::: ::: warning Note It may take a few minutes to download the required images and start various nodes and Postgres databases. @@ -222,7 +220,7 @@ query { } } imOnlineSomeOfflineByNodeId (nodeId : 5) { - id + id } _metadata { lastProcessedHeight diff --git a/docs/quickstart/quickstart_chains/polkadot.md b/docs/quickstart/quickstart_chains/polkadot.md index 0e53c579ccb..3040a6e2151 100644 --- a/docs/quickstart/quickstart_chains/polkadot.md +++ b/docs/quickstart/quickstart_chains/polkadot.md @@ -32,19 +32,20 @@ type Transfer @entity { When you make any changes to the schema file, please ensure that you regenerate your types directory. ::: - - - ```shell - yarn codegen - ``` - - - - ```shell - npm run-script codegen - ``` - - +::: code-tabs +@tab:active yarn + +```shell +yarn codegen +``` + +@tab npm + +```shell +npm run-script codegen +``` + +::: You will find the generated models in the `/src/types/models` directory. @@ -129,22 +130,20 @@ Check out our [Mappings](../../build/mapping/polkadot.md) documentation to get d Next, build your work to run your new SubQuery project. Run the build command from the project's root directory as given here: - - +::: code-tabs +@tab:active yarn ```shell yarn build ``` - - +@tab npm ```shell npm run-script build ``` - - +::: ::: warning Important Whenever you make changes to your mapping functions, make sure to rebuild your project. @@ -162,24 +161,22 @@ However, visit the [Running SubQuery Locally](../../run_publish/run.md) to get m Run the following command under the project directory: - - +::: code-tabs +@tab:active yarn ```shell yarn start:docker ``` - - +@tab npm ```shell npm run-script start:docker ``` - - +::: -::: info Note +::: tip It may take a few minutes to download the required images and start the various nodes and Postgres databases. ::: diff --git a/docs/quickstart/quickstart_chains/terra.md b/docs/quickstart/quickstart_chains/terra.md index 006789b3672..ee093cb8948 100644 --- a/docs/quickstart/quickstart_chains/terra.md +++ b/docs/quickstart/quickstart_chains/terra.md @@ -33,23 +33,20 @@ type Transfer @entity { When you make any changes to the schema file, do make sure to regenerate your types directory. ::: - - +::: code-tabs +@tab:active yarn ```shell yarn codegen ``` - - - +@tab npm ```shell npm run-script codegen ``` - - +::: You will find the generated models in the `/src/types/models` directory. @@ -150,22 +147,20 @@ Check out our [Mappings](../../build/mapping/terra.md) documentation to get deta Next, build your work to run your new SubQuery project. Run the build command from the project's root directory as given here: - - +::: code-tabs +@tab:active yarn ```shell yarn build ``` - - +@tab npm ```shell npm run-script build ``` - - +::: ::: warning Important Whenever you make changes to your mapping functions, you must rebuild your project. @@ -183,24 +178,22 @@ However, visit the [Running SubQuery Locally](../../run_publish/run.md) to get m Run the following command under the project directory: - - +::: code-tabs +@tab:active yarn ```shell yarn start:docker ``` - - +@tab npm ```shell npm run-script start:docker ``` - - +::: -::: info Note +::: tip Note It may take a few minutes to download the required images and start the various nodes and Postgres databases. ::: diff --git a/docs/ru/README.md b/docs/ru/README.md index f16c7bfa3cf..04ee9e01fe4 100644 --- a/docs/ru/README.md +++ b/docs/ru/README.md @@ -4,7 +4,7 @@

Build Faster dApps withSubQuery Academy

-

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


+

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

@@ -12,7 +12,7 @@

Get a Kick-Start With Our Quick Start Guide

-

Build your first SubQuery project in less than 10 mins with simple guided steps. +

Build your first SubQuery project in less than 10 mins with simple guided steps.

Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

@@ -134,8 +134,7 @@
- - + diff --git a/docs/ru/build/install.md b/docs/ru/build/install.md index 8b98ba64c33..a27797f52fe 100644 --- a/docs/ru/build/install.md +++ b/docs/ru/build/install.md @@ -8,28 +8,30 @@ Установите SubQuery CLI на терминал, используя Yarn или NPM: - ```bash npm install -g @subql/cli ``` - ```shell yarn global add @subql/cli ``` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` +@tab:active yarn `shell yarn global add @subql/cli ` ::: You can then run help to see available commands and usage provide by CLI: ```shell subql help ``` + ## Установите @subql/node Узел SubQuery - это реализация, которая извлекает субстратегически данные блокчейна в рамках проекта SubQuery и сохраняет их в базу данных Postgres. Установите ноду SubQuery на терминал, используя Yarn или NPM: - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: Once installed, you can can start a node with: ```shell subql-node ``` + > Примечание: Если вы используете Docker или хостинг вашего проекта в проектах SubQuery вы можете пропустить этот шаг. Это происходит потому, что узел SubQuery уже находится в контейнере Docker и в инфраструктуре хостинга. ## Установите @subql/query @@ -38,7 +40,7 @@ subql-node Установите запрос SubQuery на терминал с помощью Yarn или NPM: - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> Примечание: Если вы используете Docker или хостинг вашего проекта в проектах SubQuery вы можете пропустить этот шаг. Это происходит потому, что узел SubQuery уже находится в контейнере Docker и в инфраструктуре хостинга. \ No newline at end of file +> Примечание: Если вы используете Docker или хостинг вашего проекта в проектах SubQuery вы можете пропустить этот шаг. Это происходит потому, что узел SubQuery уже находится в контейнере Docker и в инфраструктуре хостинга. diff --git a/docs/ru/build/introduction.md b/docs/ru/build/introduction.md index 8b87fd3d3e3..85b9bed8d65 100644 --- a/docs/ru/build/introduction.md +++ b/docs/ru/build/introduction.md @@ -51,8 +51,8 @@ yarn codegen Запустите команду сборки из корневого каталога проекта. - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### Альтернативные варианты сборки diff --git a/docs/ru/build/manifest.md b/docs/ru/build/manifest.md index a802869d94c..c5e60280916 100644 --- a/docs/ru/build/manifest.md +++ b/docs/ru/build/manifest.md @@ -4,7 +4,7 @@ Манифест может быть в формате YAML или JSON. В этом документе мы будем использовать YAML во всех примерах. Ниже приведен стандартный пример базового файла Манифест `project.yaml`. - ``` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ``` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` @tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## Migrating from v0.0.1 to v0.2.0 @@ -28,15 +28,15 @@ subql migrate функцию можно запустить в существую Использование $ subql init [PROJECTNAME] -Аргументы PROJECTNAME Задайте имя стартовому проекту +Аргументы PROJECTNAME Задайте имя стартовому проекту | Параметры | Описание | -| ----------------------- | --------------------------------------------------------------------------------------------- | +| ----------------------- | --------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | | f, --force | | | -l, --location=location | локальная папка для создания проекта | | --install-dependencies | также устанавливает зависимости | | --npm | Принудительное использование NPM вместо yarn, работает только с флагом `install-dependencies` | -| --specVersion=0.0.1 | 0.2.0 [default: 0.2.0] | Версия спецификации, которая будет использоваться проектом | +| --specVersion=0.0.1 | 0.2.0 [default: 0.2.0] | Версия спецификации, которая будет использоваться проектом | ## Обзор @@ -71,19 +71,19 @@ subql migrate функцию можно запустить в существую ### Спецификация источника данных Определяет данные, которые будут отфильтрованы и извлечены, а также расположение обработчика mapping функции для применяемого преобразования данных. -| Поле | v0.0.1 | v0.2.0 | Описание | +| Поле | v0.0.1 | v0.2.0 | Описание | | -------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **имя** | String | 𐄂 | Имя источника данных | -| **вид** | [substrate/Runtime](./manifest/#data-sources-and-mapping) | substrate/Runtime, [substrate/CustomDataSource](./manifest/#custom-data-sources) | Мы поддерживаем типы данных из среды выполнения substrate по умолчанию, такие как block, event и extrinsic(call).
Начиная с версии 0.2.0 мы поддерживаем данные из пользовательской среды выполнения, например смарт-контракта. | -| **startBlock** | Integer | Integer | Это изменяет ваш начальный блок индексации, установите его выше, чтобы пропустить начальные блоки с меньшим количеством данных | -| **mapping** | Mapping Spec | Mapping Spec | | -| **фильтр** | [network-filters](./manifest/#network-filters) | 𐄂 | Отфильтровать источник данных для выполнения по имени спецификации конечной точки сети | +| **имя** | String | 𐄂 | Имя источника данных | +| **вид** | [substrate/Runtime](./manifest/#data-sources-and-mapping) | substrate/Runtime, [substrate/CustomDataSource](./manifest/#custom-data-sources) | Мы поддерживаем типы данных из среды выполнения substrate по умолчанию, такие как block, event и extrinsic(call).
Начиная с версии 0.2.0 мы поддерживаем данные из пользовательской среды выполнения, например смарт-контракта. | +| **startBlock** | Integer | Integer | Это изменяет ваш начальный блок индексации, установите его выше, чтобы пропустить начальные блоки с меньшим количеством данных | +| **mapping** | Mapping Spec | Mapping Spec | | +| **фильтр** | [network-filters](./manifest/#network-filters) | 𐄂 | Отфильтровать источник данных для выполнения по имени спецификации конечной точки сети | ### Mapping Spec -| Поле | v0.0.1 | v0.2.0 | Описание | -| ------------------------- | ------------------------------------------------------------------------------ | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **файла** | String | 𐄂 | Путь к записи сопоставления | +| Поле | v0.0.1 | v0.2.0 | Описание | +| ------------------------- | ------------------------------------------------------------------------------ | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **файла** | String | 𐄂 | Путь к записи сопоставления | | **обработчики и фильтры** | [Обработчики и фильтры по умолчанию](./manifest/#mapping-handlers-and-filters) | Базовые обработчики и фильтры, Пользовательские обработчики и фильтры | Перечислите все [функции сопоставления](./mapping/polkadot.md) и их соответствующие типы обработчиков, с дополнительными фильтрами сопоставления. Для получения информации о пользовательских обработчиках отображения времени выполнения, пожалуйста, просмотрите раздел Пользовательские источники данных | ## Источники данных и Mapping @@ -104,8 +104,8 @@ dataSources: **Ваш проект SubQuery будет намного эффективнее, если вы будете использовать только обработчики событий и вызовов с соответствующими фильтрами сопоставления** -| Обработчик | Поддерживаемый фильтр | -| ------------------------------------------------ | --------------------- | +| Обработчик | Поддерживаемый фильтр | +| --------------------------------------------------------- | --------------------- | | [Обработчик блоков](./mapping/polkadot.md#block-handler) | `спецификация версии` | | [Обработчик событий](./mapping/polkadot.md#event-handler) | модуль,метод | | [Обработчик вызовов](./mapping/polkadot.md#call-handler) | модуль,метод ,успех | @@ -116,15 +116,15 @@ dataSources: ```yaml # Пример фильтра из обработчика вызовов -filter: - module: balances - method: Deposit - success: true +filter: + module: balances + method: Deposit + success: true ``` - Фильтры модулей и методов поддерживаются на любой цепи субстрата. - Фильтр success принимает логическое значение и используется для фильтрации по статусу успеха. -- Фильтр по спецификации определяет диапазон версии спецификации для блока субстрата. В следующих примерах описано, как выставить диапазоны версий. +- Фильтр по спецификации определяет диапазон версии спецификации для блока субстрата. В следующих примерах описано, как выставить диапазоны версий. ```yaml filter: @@ -153,8 +153,8 @@ filter: В приведенном ниже примере v0.2.0 `network.chaintypes` указывает на файл, в который включены все пользовательские типы, это стандартный файл chainspec, в котором объявляются конкретные типы, поддерживаемые этой цепочкой блоков, в формате `.json`, `.yaml` или `.js`. - ``` yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ... ``` - ``` yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true ``` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: Чтобы использовать typescript для вашего файла типов цепочек, включите его в папку `src` (например, `./src/types.ts`), запустите `yarn build` и затем укажите созданный файл js, расположенный в папке `dist`. @@ -162,7 +162,6 @@ filter: network: chaintypes: file: ./dist/types.js # Будет сгенерирован после yarn run build -... ``` На что следует обратить внимание при использовании файла типов цепочек с расширением `.ts` или `.js`: @@ -172,9 +171,9 @@ network: Вот пример файла типов цепочек `.ts`: - ```ts +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" -export default { typesBundle: typesBundleDeprecated }; ``` +export default { typesBundle: typesBundleDeprecated }; ` ::: ## Пользовательские источники данных @@ -200,6 +199,6 @@ export default { typesBundle: typesBundleDeprecated }; ``` ```yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ``` +::: code-tabs @tab v0.0.1 `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` - +::: diff --git a/docs/ru/build/mapping.md b/docs/ru/build/mapping.md index 18f6754fdcf..3e7c978085a 100644 --- a/docs/ru/build/mapping.md +++ b/docs/ru/build/mapping.md @@ -6,20 +6,20 @@ - Эти сопоставления также экспортированы в `src/index.ts` - Файлы сопоставлений являются ссылками в `project.yaml` под обработчиками сопоставлений. -Существует три класса функций сопоставления; [Block handlers](#block-handler), [Event Handlers](#event-handler), и [Call Handlers](#call-handler). +Существует три класса функций сопоставления; [Block handlers](#block-handler), [Event Handlers](#event-handler), и [Call Handlers](#call-handler). ## Обработчик блоков Вы можете использовать обработчики блоков для сбора информации каждый раз, когда новый блок присоединяется к цепочке Substrate, например, номер блока. Для этого определенный обработчик блоков будет вызываться один раз для каждого блока. ```ts -import {SubstrateBlock} from "@subql/types"; +import { SubstrateBlock } from "@subql/types"; export async function handleBlock(block: SubstrateBlock): Promise { - // Create a new StarterEntity with the block hash as it's ID - const record = new starterEntity(block.block.header.hash.toString()); - record.field1 = block.block.header.number.toNumber(); - await record.save(); + // Create a new StarterEntity with the block hash as it's ID + const record = new starterEntity(block.block.header.hash.toString()); + record.field1 = block.block.header.number.toNumber(); + await record.save(); } ``` @@ -51,26 +51,30 @@ export async function handleEvent(event: SubstrateEvent): Promise { ```ts export async function handleCall(extrinsic: SubstrateExtrinsic): Promise { - const record = new starterEntity(extrinsic.block.block.header.hash.toString()); - record.field4 = extrinsic.block.timestamp; - await record.save(); + const record = new starterEntity( + extrinsic.block.block.header.hash.toString() + ); + record.field4 = extrinsic.block.timestamp; + await record.save(); } - ``` [SubstrateExtrinsic](https://github.com/OnFinality-io/subql/blob/a5ab06526dcffe5912206973583669c7f5b9fdc9/packages/types/src/interfaces.ts#L21) расширяет [GenericExtrinsic](https://github.com/polkadot-js/api/blob/a9c9fb5769dec7ada8612d6068cf69de04aa15ed/packages/types/src/extrinsic/Extrinsic.ts#L170). Ему присваивается `id` (блок, к которому принадлежит данное внешнее свойство) и предоставляется внешнее свойство, расширяющее события этого блока. Кроме того, он регистрирует успешный статус этой надбавки. ## Состояния запроса + Наша цель - охватить все источники данных для пользователей для обработчиков отображения (больше, чем просто три вышеуказанных типа событий интерфейса). Поэтому мы раскрыли некоторые интерфейсы @polkadot/api для расширения возможностей. Это те интерфейсы, которые мы поддерживаем в настоящее время: -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) будет запрашивать current блок. -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) сделает несколько запросов типа same в текущем блоке. -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) сделает несколько запросов разных типов в текущем блоке. + +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) будет запрашивать **current** блок. +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) сделает несколько запросов типа **same** в текущем блоке. +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) сделает несколько запросов **разных типов** в текущем блоке. Это интерфейсы, которые мы **НЕ** поддерживаем сейчас: -- ~~api.tx.*~~ -- ~~api.derive.*~~ + +- ~~api.tx.\*~~ +- ~~api.derive.\*~~ - ~~api.query.<module>.<method>.at~~ - ~~api.query.<module>.<method>.entriesAt~~ - ~~api.query.<module>.<method>.entriesPaged~~ @@ -98,6 +102,7 @@ const b1 = ожидание api. pc.chain.getBlock(blockhash); // Он будет использовать текущий блок по умолчанию так: const b2 = await api.rpc.chain.getBlock(); ``` + - Для [Custom Substrate Chains](#custom-substrate-chains) RPC звонки смотрите [usage](#usage). ## Модули и Библиотеки @@ -148,6 +153,7 @@ SubQuery можно использовать в любой цепочке на ```shell curl -H "Content-Type: application/json" -d '{"id":"1", "jsonrpc":"2.0", "method": "state_getMetadata", "params":[]}' http://localhost:9933 ``` + или из его **веб-сокета** с помощью [`websocat`](https://github.com/vi/websocat): ```shell @@ -161,9 +167,11 @@ echo state_getMetadata | websocat 'ws://127.0.0.1:9944' --jsonrpc Далее скопируйте и вставьте вывод в файл JSON. В нашем [kitty example](https://github.com/subquery/subql-examples/tree/main/kitty), мы создали `api-interface/kitty.json`. #### Определения типов + Мы предполагаем, что пользователь знает конкретные типы и поддержку RPC из цепочки, и она определена в [Манифесте](./manifest.md). Следуя [установке типов](https://polkadot.js.org/docs/api/examples/promise/typegen#metadata-setup), мы создаем : + - `src/api-interfaces/definitions.ts` - экспортирует все определения подпапок ```ts @@ -171,6 +179,7 @@ echo state_getMetadata | websocat 'ws://127.0.0.1:9944' --jsonrpc ``` - `src/api-interfaces/kitties/definitions.ts` - определения типа для модуля котят + ```ts экспорт по умолчанию { // пользовательские типы @@ -248,6 +257,7 @@ yarn generate:meta ### Использование Теперь в функции отображения мы можем показать, как метаданные и типы фактически украшают API. Конечная точка RPC будет поддерживать модули и методы, которые мы объявили выше. А чтобы использовать пользовательский вызов rpc, смотрите раздел [ Пользовательские вызовы rpc цепочки](#custom-chain-rpc-calls). + ```typescript export async function kittyApiHandler(): Promise { //return the KittyIndex type @@ -265,6 +275,7 @@ export async function kittyApiHandler(): Promise { ### Пользовательские вызовы в цепочке rpc Для поддержки индивидуальных вызовов цепочки RPC мы должны вручную ввести определения RPC для `typesBundle`, что позволяет настроить каждый конкретный вызов. Вы можете определить `typesBundle` в `project.yml`. И помните, что поддерживаются только звонки типа `isHistoric`. + ```yaml ... типы: { diff --git a/docs/ru/build/substrate-evm.md b/docs/ru/build/substrate-evm.md index 9ef9152cc16..c488c4ad61a 100644 --- a/docs/ru/build/substrate-evm.md +++ b/docs/ru/build/substrate-evm.md @@ -51,7 +51,7 @@ ### Обработчики -В отличие от обычного обработчика, вы не получите `SubstrateExtrinsic` в качестве параметра, вместо этого вы получите `MoonbeamCall`, основанный на типе Ethers [TransactionResponse](https://docs.ethers.io/v5/api/providers/types/#providers-TransactionResponse). +В отличие от обычного обработчика, вы не получите `SubstrateExtrinsic` в качестве параметра, вместо этого вы получите `MoonbeamCall`, основанный на типе Ethers [TransactionResponse](https://docs.ethers.io/v5/api/providers/types/#providers-TransactionResponse). Отличия от типа `TransactionResponse` : @@ -74,7 +74,7 @@ | ---- | ------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | | темы | Массив строк. | Передача (адрес проиндексирован, адрес проиндексирован, значение uint256) | Фильтр тем соответствует фильтрам журнала Ethereum JSON-PRC, дополнительную документацию можно найти здесь. | - Примечание по темам: +**Примечание по темам:** Есть несколько улучшений по сравнению с базовыми фильтрами журналов: - Темы не должны быть заполнены на 0 @@ -97,17 +97,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Contract address (or recipient if transfer) to filter, if `null` should be for contract creation - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -122,7 +122,7 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## Известные ограничения diff --git a/docs/ru/faqs/faqs.md b/docs/ru/faqs/faqs.md index 3e2feb0bc38..ce62c56f588 100644 --- a/docs/ru/faqs/faqs.md +++ b/docs/ru/faqs/faqs.md @@ -4,7 +4,7 @@ SubQuery , это индексатор данных блокчейна с открытым исходным кодом для разработчиков, который предоставляет быстрые, гибкие, надежные и децентрализованные API для управления ведущими многоканальными приложениями. -Наша цель - это сэкономить время и деньги разработчиков, устранив необходимость разработки собственного решения для индексации. Сейчас они могут полностью сосредоточиться на разработке своих приложений. SubQuery - помогает разработчикам создавать децентрализованные продукты будущего. +Наша цель - это сэкономить время и деньги разработчиков, устранив необходимость разработки собственного решения для индексации. Сейчас они могут полностью сосредоточиться на разработке своих приложений. SubQuery - помогает разработчикам создавать децентрализованные продукты будущего.
@@ -12,13 +12,13 @@ SubQuery , это индексатор данных блокчейна с отк **Управляемая служба подзапроса** -Подзапрос также предоставляет бесплатный хостинг проектов для разработчиков. Наш управляемый сервис устраняет ответственность за управление инфраструктурой, чтобы разработчики делали то, что они делали лучше — это строить. Подробнее [здесь](/run_publish/publish.md). +Подзапрос также предоставляет бесплатный хостинг проектов для разработчиков. Наш управляемый сервис устраняет ответственность за управление инфраструктурой, чтобы разработчики делали то, что они делали лучше — это строить. Подробнее [здесь](/run_publish/publish.md). **Сеть SubQuery** -SubQuery Network позволяет разработчикам полностью децентрализовать свой стек инфраструктуры. Это самый открытый, производительный, надежный и масштабируемый сервис данных для dApps. SubQuery Network индексирует и предоставляет данные глобальному сообществу вознаграждаемым и поддающимся проверке способом. После публикации вашего проекта в SubQuery Network любой может индексировать и разместить его, предоставляя данные пользователям по всему миру быстрее и надежнее. +SubQuery Network позволяет разработчикам полностью децентрализовать свой стек инфраструктуры. Это самый открытый, производительный, надежный и масштабируемый сервис данных для dApps. SubQuery Network индексирует и предоставляет данные глобальному сообществу вознаграждаемым и поддающимся проверке способом. После публикации вашего проекта в SubQuery Network любой может индексировать и разместить его, предоставляя данные пользователям по всему миру быстрее и надежнее. -Подробнее [здесь](/subquery_network/introduction.md). +Подробнее [здесь](/subquery_network/introduction.md). ## Как лучше всего начать работу с SubQuery? @@ -26,7 +26,7 @@ SubQuery Network позволяет разработчикам полность ## Как я могу внести свой вклад или оставить отзыв о SubQuery? -Нам нравится вклад и обратная связь от сообщества. Чтобы внести свой код, "форкните" интересующий вас репозиторий и внесите свои изменения. Далее отправьте PR или Pull Request. Не забудьте также протестировать. Also check out our contributions guidelines. +Нам нравится вклад и обратная связь от сообщества. Чтобы внести свой код, "форкните" интересующий вас репозиторий и внесите свои изменения. Далее отправьте PR или Pull Request. Не забудьте также протестировать. Also check out our [contributions guidelines](../miscellaneous/contributing.html). Чтобы оставить отзыв, свяжитесь с нами по адресу hello@subquery.network или перейдите на наш канал [discord](https://discord.com/invite/78zg8aBSMG). @@ -60,7 +60,7 @@ Inherent Extrinsics - это части информации, которые н ## Что такое конечная точка для сети Кусама? -Конечная точка сети Kusama - `wss://kusama.api.onfinality.io/public-ws`. +Конечная точка сети Kusama - `wss://kusama.api.onfinality.io/public-ws`. ## Что является конечной точкой для сети Polkado mainnet? @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Обратите внимание, что рекомендуется использовать `--force-clean` при изменении `startBlock` в манифесте проекта (`project.yaml`), чтобы начать переиндексацию с настроенного блока. Если `startBlock` изменен без `--force-clean` проекта, то индексатор продолжит индексирование с ранее настроенным `startBlock`. - ## How can I optimise my project to speed it up? Performance is a crucial factor in each project. Fortunately, there are several things you could do to improve it. Here is the list of some suggestions: @@ -89,13 +88,13 @@ Performance is a crucial factor in each project. Fortunately, there are several - Set the start block to when the contract was initialised. - Always use a [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (we can help create one for your new network). - Optimise your schema design, keep it as simple as possible. - - Try to reduce unnecessary fields and columns. - - Create indexes as needed. + - Try to reduce unnecessary fields and columns. + - Create indexes as needed. - Use parallel/batch processing as often as possible. - - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. - - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. - - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. + - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. + - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. + - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. - Making API calls to query state can be slow. You could try to minimise calls where possible and to use `extrinsic/transaction/event` data. - Use `worker threads` to move block fetching and block processing into its own worker thread. It could speed up indexing by up to 4 times (depending on the particular project). You can easily enable it using the `-workers=` flag. Обращаем ваше внимание, что количество доступных ядер процессора строго ограничивает использование рабочих потоков. For now, it is only available for Substrate and Cosmos and will soon be integrated for Avalanche. - Note that `JSON.stringify` doesn’t support native `BigInts`. Our logging library will do this internally if you attempt to log an object. We are looking at a workaround for this. -- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. \ No newline at end of file +- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. diff --git a/docs/ru/miscellaneous/contributing.md b/docs/ru/miscellaneous/contributing.md index 472f41c45bd..7b1b1016470 100644 --- a/docs/ru/miscellaneous/contributing.md +++ b/docs/ru/miscellaneous/contributing.md @@ -2,7 +2,7 @@ Добро пожаловать и большое спасибо за то, что рассмотрели возможность внести свой вклад в этот проект SubQuery! Вместе мы сможем создать путь к более децентрализованному будущему. -::: info Примечание Эта документация активно модерируется командой SubQuery. Мы рады вашим вкладам. Вы можете сделать это, создав форк нашего проекта на GitHub и внеся изменения во все файлы разметки документации в каталоге `docs`. ::: +::: tip Примечание Эта документация активно модерируется командой SubQuery. Мы рады вашим вкладам. Вы можете сделать это, создав форк нашего проекта на GitHub и внеся изменения во все файлы разметки документации в каталоге `docs`. ::: Ниже приводится набор рекомендаций (не правил) по внесению вклада в SubQuery. Соблюдение этих рекомендаций поможет нам сделать процесс внесения взносов простым и эффективным для всех участников. Это также означает, что вы согласны уважать время разработчиков, управляющих и развивающих этот проект. В свою очередь, мы ответим на это уважением, учитывая изменения, рассматривая изменения, сотрудничая в улучшении и помогая вам дорабатывать ваши запросы. @@ -14,8 +14,8 @@ Вклад в наши репозитории осуществляется через Issues и Pull Requests (PRs). Несколько общих рекомендаций, которые охватывают оба варианта: -* Ищите существующие Замечания и PR, прежде чем создавать собственные. -* Мы прилагаем все усилия, чтобы обеспечить своевременное решение проблем, но, в зависимости от последствий, может потребоваться некоторое время, чтобы исследовать основную причину. Дружественное @ упоминание в ветке комментариев отправителю или участнику может помочь привлечь внимание, если ваша задача блокируется. +- Ищите существующие Замечания и PR, прежде чем создавать собственные. +- Мы прилагаем все усилия, чтобы обеспечить своевременное решение проблем, но, в зависимости от последствий, может потребоваться некоторое время, чтобы исследовать основную причину. Дружественное @ упоминание в ветке комментариев отправителю или участнику может помочь привлечь внимание, если ваша задача блокируется. ## Как сделать вклад @@ -23,32 +23,32 @@ Ошибки отслеживаются как проблемы на GitHub. При регистрации проблемы объясните ее суть и включите дополнительные сведения, которые помогут специалистам по сопровождению воспроизвести проблему: -* Чтобы идентифицировать проблему, используйте понятное и описательное название. -* Опишите точные шаги для воспроизведения проблемы. -* Опишите поведение, которое вы наблюдали после выполнения шагов. -* Объясните, какое поведение вы должны увидеть вместо этого и почему. -* Если возможно, включите скриншоты +- Чтобы идентифицировать проблему, используйте понятное и описательное название. +- Опишите точные шаги для воспроизведения проблемы. +- Опишите поведение, которое вы наблюдали после выполнения шагов. +- Объясните, какое поведение вы должны увидеть вместо этого и почему. +- Если возможно, включите скриншоты ### Отправка Pull Request'ов В целом, мы следуем рабочему процессу Git "fork-and-pull": -* Перенесите репозиторий на свой аккаунт Github. -* Клонируйте проект на свою машину. -* Создайте локальный филиал с кратким, но описательным именем. -* Зафиксируйте изменения в ветке. -* Соблюдение всех рекомендаций по форматированию и тестированию, характерных для данного репозитория. -* Отправить изменения в ваш форк. -* Откройте PR в нашем репозитории. +- Перенесите репозиторий на свой аккаунт Github. +- Клонируйте проект на свою машину. +- Создайте локальный филиал с кратким, но описательным именем. +- Зафиксируйте изменения в ветке. +- Соблюдение всех рекомендаций по форматированию и тестированию, характерных для данного репозитория. +- Отправить изменения в ваш форк. +- Откройте PR в нашем репозитории. ## Контрагенты кодирования ### Сообщения Git Commit -* Используйте настоящее время ("Добавить функцию", а не "Добавлена функция"). -* Используйте повелительное наклонение ("Move cursor to...", а не "Moves cursor to..."). -* Ограничьте первую строку 72 символами или менее. +- Используйте настоящее время ("Добавить функцию", а не "Добавлена функция"). +- Используйте повелительное наклонение ("Move cursor to...", а не "Moves cursor to..."). +- Ограничьте первую строку 72 символами или менее. ### Руководство по стилю JavaScript -* Весь код JavaScript проверяется с помощью Prettier и ESLint. +- Весь код JavaScript проверяется с помощью Prettier и ESLint. diff --git a/docs/ru/quickstart/helloworld-localhost.md b/docs/ru/quickstart/helloworld-localhost.md index 124a40aeb43..7c9a0dc7111 100644 --- a/docs/ru/quickstart/helloworld-localhost.md +++ b/docs/ru/quickstart/helloworld-localhost.md @@ -88,13 +88,13 @@ cd subqlHelloWorld Теперь выполните установку yarn или node, чтобы установить различные зависимости. - ```shell yarn install ``` - ```bash npm install ``` +::: code-tabs @tab:active yarn `shell yarn install ` +@tab npm `bash npm install ` ::: An example of `yarn install` ```shell -# Yarn yarn install # NPM npm install

+# Yarn yarn install # NPM npm install
> yarn install
 yarn install v1.22.10
@@ -111,7 +111,7 @@ success Saved lockfile.
 
 Теперь запустите `yarn codegen`, чтобы сгенерировать Typescript из схемы GraphQL.
 
- # Yarn yarn codegen # NPM npm run-script codegen
+`# Yarn yarn codegen # NPM npm run-script codegen`
 
 ```shell
 > yarn codegen
@@ -120,7 +120,7 @@ $ ./node_modules/.bin/subql codegen
 ===============================
 ---------Subql Codegen---------
 ===============================
-* Schema StarterEntity generated !

+* Schema StarterEntity generated !
> yarn codegen
 yarn run v1.22.10
@@ -140,14 +140,14 @@ $ ./node_modules/.bin/subql codegen
 
 Следующим шагом является создание кода с помощью `yarn build`.
 
- # Yarn yarn build # NPM npm run-script build
+`# Yarn yarn build # NPM npm run-script build`
 
 ```shell
 > yarn build
 yarn run v1.22.10
 $ tsc -b
-✨  Done in 5.68s. ```
-

+✨ Done in 5.68s. +``` ```shell > yarn build diff --git a/docs/ru/quickstart/quickstart-avalanche.md b/docs/ru/quickstart/quickstart-avalanche.md index 1d8a128801b..a48fb4d12fc 100644 --- a/docs/ru/quickstart/quickstart-avalanche.md +++ b/docs/ru/quickstart/quickstart-avalanche.md @@ -59,8 +59,8 @@ subql init Наконец, в каталоге проекта выполните следующую команду, чтобы установить зависимости нового проекта. - ``shell cd PROJECT_NAME yarn install ``` - ``shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn ` shell cd PROJECT_NAME yarn install ``` +@tab npm `shell cd PROJECT_NAME npm install ``` ::: ## Внесение изменений в ваш проект @@ -92,8 +92,8 @@ type PangolinApproval @entity { **Важно: когда вы вносите какие-либо изменения в файл schema, убедитесь, что вы заново создали каталог типов. Сделайте это сейчас.** - ``shell yarn codegen ``` - ``shell npm run-script codegen ``` +::: code-tabs @tab:active yarn ` shell yarn codegen ``` +@tab npm `shell npm run-script codegen ``` ::: Вы найдете сгенерированные модели в каталоге `/src/types/models`. Для получения дополнительной информации о файле `schema.graphql` ознакомьтесь с нашей документацией в разделе [Build/GraphQL Schema](../build/graphql.md) @@ -169,7 +169,7 @@ export async function handleLog(event: AvalancheLog): Promise { Чтобы запустить ваш новый проект SubQuery, нам сначала нужно собрать нашу работу. Запустите команду сборки из корневого каталога проекта. - ``shell yarn build ``` ``shell npm run-script build ``` +::: code-tabs @tab:active yarn ` shell yarn build ``` @tab npm `shell npm run-script build ``` ::: **Важно: Каждый раз, когда вы вносите изменения в функции отображения, вам нужно будет пересобрать проект**. @@ -183,7 +183,7 @@ export async function handleLog(event: AvalancheLog): Promise { В каталоге проекта выполните следующую команду: - ``shell yarn start:docker ``` ``shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn ` shell yarn start:docker ``` @tab npm `shell npm run-script start:docker ``` ::: Для первой загрузки необходимых пакетов ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query) и Postgres) может потребоваться некоторое время, но вскоре вы увидите работающий узел SubQuery. Проявите терпение. diff --git a/docs/ru/quickstart/quickstart-cosmos.md b/docs/ru/quickstart/quickstart-cosmos.md index ef3636c141a..ab05c9e6854 100644 --- a/docs/ru/quickstart/quickstart-cosmos.md +++ b/docs/ru/quickstart/quickstart-cosmos.md @@ -44,8 +44,8 @@ Cosmos is not yet supported in SubQuery's CLI (`subql`), to start with Juno clon Наконец, в каталоге проекта выполните следующую команду, чтобы установить зависимости нового проекта. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Внесение изменений в ваш проект @@ -75,8 +75,8 @@ type Vote @entity { **Важно: когда вы вносите какие-либо изменения в файл schema, убедитесь, что вы заново создали каталог типов. Сделайте это сейчас.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Вы найдете сгенерированные модели в каталоге `/src/types/models`. Для получения дополнительной информации о файле `schema.graphql` ознакомьтесь с нашей документацией в разделе [Build/GraphQL Schema](../build/graphql.md) @@ -145,7 +145,7 @@ What this is doing is receiving a CosmosMessage which includes message data on t Чтобы запустить ваш новый проект SubQuery, нам сначала нужно собрать нашу работу. Запустите команду сборки из корневого каталога проекта. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Важно: всякий раз, когда вы вносите изменения в свои функции сопоставления, вам нужно будет пересобрать свой проект**. @@ -159,7 +159,7 @@ What this is doing is receiving a CosmosMessage which includes message data on t В каталоге проекта выполните следующую команду: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Загрузка необходимых пакетов ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query) и Postgres) в первый раз может занять некоторое время, но вскоре вы увидите работающий узел SubQuery. Проявите терпение. @@ -173,10 +173,9 @@ What this is doing is receiving a CosmosMessage which includes message data on t ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id diff --git a/docs/ru/quickstart/quickstart-polkadot.md b/docs/ru/quickstart/quickstart-polkadot.md index 4a5b3e7182e..c56c23f7c43 100644 --- a/docs/ru/quickstart/quickstart-polkadot.md +++ b/docs/ru/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql init По мере инициализации проекта SubQuery вам будут заданы определенные вопросы: - Project name: Имя для вашего проекта SubQuery -- Network family: Семейство сетей блокчейнов уровня 1, для индексирования которого будет разработан этот проект SubQuery. Используйте клавиши со стрелками для выбора из доступных вариантов. В этом руководстве мы будем использовать *"Substrate"* -- Network: Конкретная сеть, для индексации которой будет разработан этот проект SubQuery. Используйте клавиши со стрелками для выбора из доступных вариантов. В этом руководстве мы будем использовать *"Polkadot"* -- Template project: Выберите шаблон проекта SubQuery, который послужит отправной точкой для начала разработки. Мы предлагаем выбрать проект *"subql-starter"*. -- RPC endpoint: Укажите URL-адрес HTTPS для работающей конечной точки RPC, которая будет использоваться по умолчанию для этого проекта. Вы можете быстро получить доступ к общедоступным конечным точкам для различных сетей Polkadot, создать свой собственный выделенный узел с помощью [OnFinality](https://app.onfinality.io) или просто использовать конечную точку Polkadot по умолчанию. Этот узел RPC должен быть архивным узлом (иметь состояние полной цепочки). В этом руководстве мы будем использовать значение по умолчанию *"https://polkadot.api.onfinality.io"* +- Network family: Семейство сетей блокчейнов уровня 1, для индексирования которого будет разработан этот проект SubQuery. Используйте клавиши со стрелками для выбора из доступных вариантов. В этом руководстве мы будем использовать _"Substrate"_ +- Network: Конкретная сеть, для индексации которой будет разработан этот проект SubQuery. Используйте клавиши со стрелками для выбора из доступных вариантов. В этом руководстве мы будем использовать _"Polkadot"_ +- Template project: Выберите шаблон проекта SubQuery, который послужит отправной точкой для начала разработки. Мы предлагаем выбрать проект _"subql-starter"_. +- RPC endpoint: Укажите URL-адрес HTTPS для работающей конечной точки RPC, которая будет использоваться по умолчанию для этого проекта. Вы можете быстро получить доступ к общедоступным конечным точкам для различных сетей Polkadot, создать свой собственный выделенный узел с помощью [OnFinality](https://app.onfinality.io) или просто использовать конечную точку Polkadot по умолчанию. Этот узел RPC должен быть архивным узлом (иметь состояние полной цепочки). В этом руководстве мы будем использовать значение по умолчанию _"https://polkadot.api.onfinality.io"_ - Git repository: укажите URL-адрес Git для репозитория, в котором будет размещен этот проект SubQuery (при размещении в SubQuery Explorer), или примите предоставленное значение по умолчанию. - Authors: Введите здесь владельца этого проекта SubQuery (например, ваше имя!) или примите предоставленное значение по умолчанию. - Description: Предоставьте короткий абзац о вашем проекте, в котором описывается, какие данные он содержит и что пользователи могут с ним делать, или примите предоставленное значение по умолчанию. @@ -57,8 +57,8 @@ subql init Наконец, в каталоге проекта выполните следующую команду, чтобы установить зависимости нового проекта. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Внесение изменений в ваш проект @@ -88,8 +88,8 @@ type Transfer @entity { **Важно: когда вы вносите какие-либо изменения в файл schema, убедитесь, что вы заново создали каталог типов.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Вы найдете сгенерированные модели в каталоге `/src/types/models`. Для получения дополнительной информации о файле `schema.graphql` ознакомьтесь с нашей документацией в разделе [Build/GraphQL Schema](../build/graphql.md) @@ -133,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { - // Получить данные о событии - // Событие balances.transfer имеет следующий пэйлоад \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Создать новый объект передачи - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Получить данные о событии + // Событие balances.transfer имеет следующий пэйлоад \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Создать новый объект передачи + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -160,7 +160,7 @@ export async function handleEvent(event: SubstrateEvent): Promise { Чтобы запустить ваш новый проект SubQuery, нам сначала нужно собрать нашу работу. Запустите команду сборки из корневого каталога проекта. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Важно: Всякий раз, когда вы вносите изменения в свои функции сопоставления, вам нужно будет пересобрать свой проект.**. @@ -174,7 +174,7 @@ export async function handleEvent(event: SubstrateEvent): Promise { В каталоге проекта выполните следующую команду: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Загрузка необходимых пакетов ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query) и Postgres) в первый раз может занять некоторое время, но вскоре вы должны увидеть работающий узел SubQuery на экране терминала. @@ -189,10 +189,7 @@ export async function handleEvent(event: SubstrateEvent): Promise { ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount diff --git a/docs/ru/quickstart/quickstart-terra.md b/docs/ru/quickstart/quickstart-terra.md index 0f92bdc0c60..1c7d76c4ee6 100644 --- a/docs/ru/quickstart/quickstart-terra.md +++ b/docs/ru/quickstart/quickstart-terra.md @@ -45,11 +45,11 @@ subql init По мере инициализации проекта SubQuery вам будут заданы определенные вопросы: - Project Name: A name for your SubQuery project -- Network Family: Семейство сетей блокчейнов уровня 1, для индексирования которого будет разработан этот проект SubQuery, используйте клавиши со стрелками на клавиатуре, чтобы выбрать один из вариантов, в этом руководстве мы будем использовать *"Terra"* -- Network: Конкретная сеть, для индексации которой будет разработан этот проект SubQuery, используйте клавиши со стрелками на клавиатуре, чтобы выбрать один из вариантов, в этом руководстве мы будем использовать *"Terra"* -- Template: Выберите шаблон проекта SubQuery, который послужит отправной точкой для начала разработки. Мы предлагаем выбрать *"Стартовый проект"* +- Network Family: Семейство сетей блокчейнов уровня 1, для индексирования которого будет разработан этот проект SubQuery, используйте клавиши со стрелками на клавиатуре, чтобы выбрать один из вариантов, в этом руководстве мы будем использовать _"Terra"_ +- Network: Конкретная сеть, для индексации которой будет разработан этот проект SubQuery, используйте клавиши со стрелками на клавиатуре, чтобы выбрать один из вариантов, в этом руководстве мы будем использовать _"Terra"_ +- Template: Выберите шаблон проекта SubQuery, который послужит отправной точкой для начала разработки. Мы предлагаем выбрать _"Стартовый проект"_ - Git repository (Опционально): Укажите URL-адрес Git для репозитория, в котором будет размещен этот проект SubQuery (при размещении в SubQuery Explorer) -- RPC endpoint (Обязательно): Укажите URL-адрес HTTPS для работающей конечной точки RPC, которая будет использоваться по умолчанию для этого проекта. Этот узел RPC должен быть архивным узлом (иметь состояние полной цепочки). В этом руководстве мы будем использовать значение по умолчанию *"https://terra-columbus-5.beta.api.onfinality.io"* +- RPC endpoint (Обязательно): Укажите URL-адрес HTTPS для работающей конечной точки RPC, которая будет использоваться по умолчанию для этого проекта. Этот узел RPC должен быть архивным узлом (иметь состояние полной цепочки). В этом руководстве мы будем использовать значение по умолчанию _"https://terra-columbus-5.beta.api.onfinality.io"_ - Authors (Обязательно): Введите здесь владельца этого проекта SubQuery (например, ваше имя!) - Description (Опционально): Вы можете предоставить короткий абзац о своем проекте, описывающий, какие данные он содержит и что пользователи могут с ним делать - Version (Обязательно): Введите собственный номер версии или используйте версию по умолчанию (`1.0.0`) @@ -59,8 +59,8 @@ subql init Наконец, в каталоге проекта выполните следующую команду, чтобы установить зависимости нового проекта. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Внесение изменений в ваш проект @@ -90,8 +90,8 @@ type Transfer @entity { **Важно: когда вы вносите какие-либо изменения в файл schema, убедитесь, что вы заново создали каталог типов. Сделайте это сейчас.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Вы найдете сгенерированные модели в каталоге `/src/types/models`. Для получения дополнительной информации о файле `schema.graphql` ознакомьтесь с нашей документацией в разделе [Build/GraphQL Schema](../build/graphql.md) @@ -142,30 +142,30 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Печать отладочных данных из события - // logger.info(JSON.stringify(event)); - - // Создайте новый объект передачи с уникальным идентификатором - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Печать отладочных данных из события + // logger.info(JSON.stringify(event)); + + // Создайте новый объект передачи с уникальным идентификатором + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` @@ -177,7 +177,7 @@ export async function handleEvent( Чтобы запустить ваш новый проект SubQuery, нам сначала нужно собрать нашу работу. Запустите команду сборки из корневого каталога проекта. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Важно: всякий раз, когда вы вносите изменения в свои функции сопоставления, вам нужно будет пересобрать свой проект**. @@ -191,7 +191,7 @@ export async function handleEvent( В каталоге проекта выполните следующую команду: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Загрузка необходимых пакетов ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query) и Postgres) в первый раз может занять некоторое время, но вскоре вы увидите работающий узел SubQuery. Проявите терпение. @@ -206,10 +206,7 @@ export async function handleEvent( ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash diff --git a/docs/ru/quickstart/quickstart.md b/docs/ru/quickstart/quickstart.md index 0b1e0417371..1ad9edf82c3 100644 --- a/docs/ru/quickstart/quickstart.md +++ b/docs/ru/quickstart/quickstart.md @@ -89,8 +89,8 @@ HelloWorld is ready Наконец, выполните следующую команду, чтобы установить зависимости нового проекта из каталога нового проекта. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: Теперь вы инициализировали свой первый проект SubQuery всего за несколько простых шагов. Давайте теперь настроим стандартный шаблон проекта для конкретного интересующего блокчейна. @@ -104,4 +104,4 @@ HelloWorld is ready 2. Манифест проекта в `project.yaml`. 3. Функции отображения в каталоге `src/mappings/`. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/ru/run_publish/connect.md b/docs/ru/run_publish/connect.md index c4664f57ee6..35c1b4ca1c5 100644 --- a/docs/ru/run_publish/connect.md +++ b/docs/ru/run_publish/connect.md @@ -2,10 +2,10 @@ После успешного завершения развертывания, когда наши узлы проиндексируют ваши данные из цепочки, вы сможете подключиться к своему проекту через отображаемую конечную точку Query. -![Проект будет развернут и синхронизирован](/assets/img/projects-deploy-sync.png) +![Проект будет развернут и синхронизирован](/assets/img/projects_deploy_sync.png) Кроме того, вы можете щелкнуть три точки рядом с названием вашего проекта и просмотреть его в SubQuery Explorer. Там вы можете использовать игровую площадку в браузере, чтобы начать работу. -![Проекты в SubQuery Explorer](/assets/img/projects-explorer.png) +![Проекты в SubQuery Explorer](/assets/img/projects_explorer.png) ::: Информация Примечание Узнайте больше о языке запросов [GraphQL.](./graphql.md) ::: diff --git a/docs/ru/run_publish/references.md b/docs/ru/run_publish/references.md index e44500bfe24..47dd1ee9fed 100644 --- a/docs/ru/run_publish/references.md +++ b/docs/ru/run_publish/references.md @@ -21,11 +21,11 @@ Эта команда использует webpack для генерации пакета проекта subquery. -| Параметры | Описание | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | локальная папка проекта subquery (если ее еще нет в папке) | -| -o, --output | указать выходную папку сборки, например, build-folder | -| --mode=(production | prod | development | dev) | [ default: production ] | +| Параметры | Описание | +| ------------------ | ---------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | локальная папка проекта subquery (если ее еще нет в папке) | +| -o, --output | указать выходную папку сборки, например, build-folder | +| --mode=(production | prod | development | dev) | [ default: production ] | - В `subql build` вы можете указать дополнительные точки входа в поле exports, хотя он всегда будет строить `index.ts` автоматически. @@ -106,7 +106,7 @@ Options: ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean diff --git a/docs/ru/run_publish/run.md b/docs/ru/run_publish/run.md index 90b90fa7502..8cb53b78462 100644 --- a/docs/ru/run_publish/run.md +++ b/docs/ru/run_publish/run.md @@ -4,7 +4,7 @@ ## Использование Docker -Альтернативным решением является запуск Docker Container, определенного файлом `docker-compose.yml`. Для нового проекта, который был только что инициализирован, вам не нужно будет ничего менять. +Альтернативным решением является запуск **Docker Container**, определенного файлом `docker-compose.yml`. Для нового проекта, который был только что инициализирован, вам не нужно будет ничего менять. В каталоге проекта выполните следующую команду: @@ -12,7 +12,7 @@ docker-compose pull && docker-compose up ``` -::: info Примечание Для первой загрузки необходимых пакетов ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query) и Postgres) может потребоваться некоторое время, но вскоре вы увидите работающий узел SubQuery. ::: +::: tip Примечание Для первой загрузки необходимых пакетов ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query) и Postgres) может потребоваться некоторое время, но вскоре вы увидите работающий узел SubQuery. ::: ## Запуск индексатора (subql/node) @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Установка - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: После установки вы можете запустить узел с помощью следующей команды: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Укажите путь к локальному проекту - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ subql-node -f your-project-path #### Укажите файл конфигурации - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ Result: #### Запуск в локальном режиме - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. При переключении на локальную модель будут созданы таблицы Postgres в схеме по умолчанию `public`. @@ -300,7 +275,7 @@ For debugging purposes, users can run the node in local mode. При перек "genesisHash": "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", "blockTime": 6000 } - + ``` diff --git a/docs/ru/run_publish/upgrade.md b/docs/ru/run_publish/upgrade.md index bf0934a43d4..df6da7f256d 100644 --- a/docs/ru/run_publish/upgrade.md +++ b/docs/ru/run_publish/upgrade.md @@ -77,10 +77,10 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n После успешного завершения установки и успешного индексирования нашими узлами ваших данных из цепочки, вы сможете подключиться к вашему проекту через отображённую конечную точку запроса GraphQL Query. -![Проект будет развернут и синхронизирован](/assets/img/projects-deploy-sync.png) +![Проект будет развернут и синхронизирован](/assets/img/projects_deploy_sync.png) Кроме того, вы можете щелкнуть три точки рядом с названием вашего проекта и просмотреть его в SubQuery Explorer. There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Проекты в SubQuery Explorer](/assets/img/projects-explorer.png) +![Проекты в SubQuery Explorer](/assets/img/projects_explorer.png) ::: Информация Примечание Узнайте больше о языке запросов [GraphQL.](./graphql.md) ::: diff --git a/docs/run_publish/cli.md b/docs/run_publish/cli.md index ef3615aaa8b..56276b5b824 100644 --- a/docs/run_publish/cli.md +++ b/docs/run_publish/cli.md @@ -17,23 +17,20 @@ The commands and parameters shown here may change, we suggest reviewing the curr Install SubQuery CLI globally on your terminal by using Yarn or NPM: - - +::: code-tabs +@tab:active npm ```bash npm install -g @subql/cli ``` - - - +@tab yarn ```shell yarn global add @subql/cli ``` - - +::: You can then run help to see available commands and usage provide by CLI: @@ -79,7 +76,7 @@ $ subql project:create-project Using the CLI, you can deploy a new version of your SubQuery project to the Managed Service. It supports both interactive and non-interactive methods. You may want to run this command after you delete the target deployment slot (staging or primary). -::: info Note +::: tip Note We suggest using the `--useDefaults` command for best results. ::: diff --git a/docs/run_publish/publish.md b/docs/run_publish/publish.md index 5eb6d72b968..ff2933dbff5 100644 --- a/docs/run_publish/publish.md +++ b/docs/run_publish/publish.md @@ -247,13 +247,13 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n Once your deployment has succesfully completed and our nodes have indexed your data from the chain, you'll be able to connect to your project via the displayed GraphQL Query endpoint. -![Project being deployed and synced](/assets/img/projects-deploy-sync.png) +![Project being deployed and synced](/assets/img/projects_deploy_sync.png) Alternatively, you can click on the three dots next to the title of your project, and view it on SubQuery Explorer. There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/run_publish/query.md b/docs/run_publish/query.md index 1ed4d2c415f..e1c1d668d6d 100644 --- a/docs/run_publish/query.md +++ b/docs/run_publish/query.md @@ -12,6 +12,6 @@ You’ll also note that the SubQuery Explorer provides a playground for discover On the top right of the playground, you'll find a _Docs_ button that will open a documentation draw. This documentation is automatically generated and helps you find what entities and methods you can query. -::: info Note +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/run_publish/references.md b/docs/run_publish/references.md index 25b4c7b03de..390f14a5f60 100644 --- a/docs/run_publish/references.md +++ b/docs/run_publish/references.md @@ -109,7 +109,7 @@ This displays the current version. ### reindex :::warning -In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. +In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -126,7 +126,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -139,7 +139,7 @@ This will also drop all related schema and tables of the project. `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: @@ -347,7 +347,7 @@ Note that this feature **requires historical indexing** to be enabled. Learn more [here](./historical.md). ::: -::: info Note +::: tip Note This feature is only available for Substrate-based blockchains; more networks will be supported in the future. ::: diff --git a/docs/run_publish/run.md b/docs/run_publish/run.md index c7b1cfe4aae..ad3637d6515 100644 --- a/docs/run_publish/run.md +++ b/docs/run_publish/run.md @@ -5,7 +5,7 @@ Don't want to worry about running your own SubQuery infrastructure? SubQuery pro ## Using Docker -An alternative solution is to run a Docker Container, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. +An alternative solution is to run a **Docker Container**, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. Under the project directory run the following command: @@ -13,7 +13,7 @@ Under the project directory run the following command: docker-compose pull && docker-compose up ``` -::: info Note +::: tip Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: @@ -35,48 +35,43 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Installation - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. @@ -84,43 +79,38 @@ Please note that we **DO NOT** encourage the use of `yarn global` due to its poo Once installed, you can start a node with the following command: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -129,43 +119,38 @@ To find out more, you can always run `--help`. #### Point to local project path - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -182,43 +167,38 @@ Depending on the configuration of your Postgres database (e.g. a different datab #### Specify a configuration file - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -236,43 +216,38 @@ When the indexer first indexes the chain, fetching single blocks will significan #### Run in local mode - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Switching to local model will create Postgres tables in the default schema `public`. diff --git a/docs/run_publish/subscription.md b/docs/run_publish/subscription.md index 9718316e3cd..f0107d80c3d 100644 --- a/docs/run_publish/subscription.md +++ b/docs/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery now also supports Graphql Subscriptions. Like queries, subscriptions en Subscriptions are very useful when you want your client application to change data or show some new data as soon as that change occurs or the new data is available. Subscriptions allow you to _subscribe_ to your SubQuery project for changes. -::: info Note +::: tip Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: diff --git a/docs/subquery_network/introduction.md b/docs/subquery_network/introduction.md index 5e956f7f6be..f4f902c0587 100644 --- a/docs/subquery_network/introduction.md +++ b/docs/subquery_network/introduction.md @@ -6,7 +6,7 @@ We’re building the most open, performant, reliable, and scalable data service The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. -After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. +After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. The SubQuery Network is facilitating an open web3 data revolution by allowing you to completely decentralise your infrastructure stack. @@ -18,7 +18,7 @@ There’s a role for everyone in the network, from highly technical developers t Consumers will ask the SubQuery Network for specific data for their dApps or tools, and pay an advertised amount of SQT for each request. -::: info Note +::: tip Note Learn more about [Consumers](./consumers.md). ::: @@ -26,7 +26,7 @@ Learn more about [Consumers](./consumers.md). Indexers will run and maintain high quality SubQuery projects in their own infrastructure, running both the indexer and query service, and will be rewarded in SQT for the requests that they serve. -::: info Note +::: tip Note Learn more about [Indexers](./indexers.md). ::: @@ -34,7 +34,7 @@ Learn more about [Indexers](./indexers.md). Delegators will participate in the Network by supporting their favourite Indexers to earn rewards based on the work those indexers do. -::: info Note +::: tip Note Learn more about [Delegators](./delegators.md). ::: @@ -42,6 +42,6 @@ Learn more about [Delegators](./delegators.md). Architects are the builders of the SubQuery projects that the Network runs on. They author and publish SubQuery projects for the Network to index and run. -::: info Note +::: tip Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: diff --git a/docs/subquery_network/kepler/consumers.md b/docs/subquery_network/kepler/consumers.md index 3824c85f46e..c9d9fd095f3 100644 --- a/docs/subquery_network/kepler/consumers.md +++ b/docs/subquery_network/kepler/consumers.md @@ -1,36 +1,35 @@ # Consumers -## Introduction +## Introduction -This guide explains what a consumer is and includes the necessary steps to become one. It also gives you an insight the benefits of becoming a consumer. +This guide explains what a consumer is and includes the necessary steps to become one. It also gives you an insight the benefits of becoming a consumer. ## Why Become a Consumer? -As a [consumer](../../consumers.md), you can get indexed data by entering into an agreement with an Indexer. In return, you can query the data you need quickly for your dApps, thereby saving you time figuring out how to get blockchain data yourself. +As a [consumer](../../consumers.md), you can get indexed data by entering into an agreement with an Indexer. In return, you can query the data you need quickly for your dApps, thereby saving you time figuring out how to get blockchain data yourself. **Begin your journey as a consumer by creating an offer. Follow any of these two methods:** -1. Create your own offer -2. Purchase an Indexer's plan +1. Create your own offer +2. Purchase an Indexer's plan -### Initial Preparation: +### Initial Preparation: -Before you create or purchase your first offer on SubQuery's Frontier Testnet, you must connect with **MetaMask**. Follow [these guided steps](./metamask/connect-metamask.md) and connect with MetaMask. +Before you create or purchase your first offer on SubQuery's Frontier Testnet, you must connect with **MetaMask**. Follow [these guided steps](./metamask/connect-metamask.md) and connect with MetaMask. ### Method-1. Create Your Own Offer TBC -### Method-2. Purchase an Indexer's Plan +### Method-2. Purchase an Indexer's Plan TBC ## How to make a use of your purchased plan and indexed data? -### Playground - -Playground is the place where you can run the readily available query(from any of your purchased plans). You can directly run or test the code right there and retrieve the data. +### Playground +Playground is the place where you can run the readily available query(from any of your purchased plans). You can directly run or test the code right there and retrieve the data. - Once you have purchased an offer using any of the above methods, head to `Plan & Offer`-> `My Service Agreements` tab. @@ -38,18 +37,16 @@ Playground is the place where you can run the readily available query(from any o ![Service Agreements](/assets/img/service_agreement.png) -- You will be redirected to a page, known as the Playground. +- You will be redirected to a page, known as the Playground. -- You will then see a code that you can directly use as the query and get the chain data for your project. You can also modify this query as per your requirements and retrieve the data in the desired format. +- You will then see a code that you can directly use as the query and get the chain data for your project. You can also modify this query as per your requirements and retrieve the data in the desired format. -::: info Note -You can visit the expired plan's service agreement under the `Expired` tab. +::: tip Note +You can visit the expired plan's service agreement under the `Expired` tab. ::: - ## Additional Information - ### Get a Service Agreement from an Indexer TBC @@ -60,4 +57,4 @@ TBC ### Withdraw SQT locked in an Offer After It Expires -TBC \ No newline at end of file +TBC diff --git a/docs/subquery_network/kepler/indexers/become-an-indexer.md b/docs/subquery_network/kepler/indexers/become-an-indexer.md index d40dc2b707b..0cf344b9693 100644 --- a/docs/subquery_network/kepler/indexers/become-an-indexer.md +++ b/docs/subquery_network/kepler/indexers/become-an-indexer.md @@ -6,20 +6,24 @@ Welcome to this guide of how to become an indexer. Let's take an overview of the ## Summary of Steps -| Steps | Process Flow | Additional References | -| ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | -| 1 | Set Up & Start Indexing (3 Methods)
  • [Locally](../indexers/install-indexer-locally.md)
  • Or [On Linux](../indexers/install-indexer-linux.md)
  • Or [On AWS](../indexers/install-indexer-aws.md)
| [How to SSH on AWS](../indexers/ssh-in-aws.md) | -| 2 | [Connect to MetaMask](../metamask/connect-metamask.md) | - | -| 3 | [Obtain Kepler Tokens](#3-obtain-ksqt-tokens) | - | -| 4 | [How to index a project](#4-how-to-index-a-project) | - | -| 5 | [Troubleshooting](../indexers/troubleshooting-indexers.md) | - | -| 6 | [FAQs](../indexers/faqs-indexers.md) | - | +| Steps | Process Flow | Additional References | +| ----- | ------------------------------------ | --------------------- | +| 1 | Set Up & Start Indexing (3 Methods): | -## 1. Select an environment +- [Locally](../indexers/install-indexer-locally.md) +- Or [On Linux](../indexers/install-indexer-linux.md) +- Or [On AWS](../indexers/install-indexer-aws.md) | [How to SSH on AWS](../indexers/ssh-in-aws.md) | + | 2 | [Connect to MetaMask](../metamask/connect-metamask.md) | - | + | 3 | [Obtain Kepler Tokens](#3-obtain-ksqt-tokens) | - | + | 4 | [How to index a project](#4-how-to-index-a-project) | - | + | 5 | [Troubleshooting](../indexers/troubleshooting-indexers.md) | - | + | 6 | [FAQs](../indexers/faqs-indexers.md) | - | + +## 1. Select an environment For those who are new to SubQuery, it is recommended to try running the Indexing Service on your local machine first. For **intermediate to advanced users**, it is recommended to set up a VM on AWS (or similar) to host your indexing service. -Select the appropriate link in step 1 above. +Select the appropriate link in step 1 above. ### Docker @@ -30,7 +34,6 @@ Note that you may or may not need to install Docker. If you use the SubQuery com `Important:` After installing your Indexer, you must SSH to your EC2 instance and download the lastest docker-compose.yml file. Visit [How to SSH into your AWS instance](../indexers/ssh-in-aws.md) if required. - 1. Run cd subquery-indexer 2. Run the follow cmd to download the latest `docker-compose.yml`: @@ -42,21 +45,20 @@ This will overwrite the existing docker-compose.yml file. Make sure the indexer service versions are correct: -| Service | Version | -| :----------------------------- | :----- | +| Service | Version | +| :----------------------------- | :-------- | | onfinality/subql-coordinator | v0.4.1-11 | -| onfinality/subql-indexer-proxy | latest | +| onfinality/subql-indexer-proxy | latest | ::: warning Important -Please change the default PostgreSQL password in the `POSTGRES_PASSWORD` field and in the coordinator-service's `postgres-password` field. Replace it with your own one. +Please change the default PostgreSQL password in the `POSTGRES_PASSWORD` field and in the coordinator-service's `postgres-password` field. Replace it with your own one. ::: - ## 2. Connect to MetaMask -Once your Indexing Service is all set and running successfully, [connect to your MetaMask wallet](../metamask/connect-metamask.md) +Once your Indexing Service is all set and running successfully, [connect to your MetaMask wallet](../metamask/connect-metamask.md) -## 3. Obtain kSQT tokens +## 3. Obtain kSQT tokens TBA @@ -64,9 +66,6 @@ TBA To index a project, please follow the instructions **[here](../indexers/index-project.md).** - ## Additional Notes - Visit [Troubleshooting](../indexers/troubleshooting-indexers.md) or [FAQs](../indexers/faqs-indexers.md) if you run into technical issues. - - diff --git a/docs/subquery_network/kepler/indexers/faqs-indexers.md b/docs/subquery_network/kepler/indexers/faqs-indexers.md index e10a31cd139..404ed27b5ab 100644 --- a/docs/subquery_network/kepler/indexers/faqs-indexers.md +++ b/docs/subquery_network/kepler/indexers/faqs-indexers.md @@ -98,7 +98,7 @@ in /etc/docker/daemon.json`echo "DOCKER_OPTS=\"--iptables=false\"" >> /etc/defau `service docker restart` -::: info Note +::: tip Note Note that turning off IP tables in Docker may cause your deployment containers to lose connectivity. If so, try this solution: [To Fix The Docker and UFW Security Flaw Without Disabling Iptables](https://hub.docker.com/r/chaifeng/ufw-docker-agent/). ::: diff --git a/docs/subquery_network/kepler/indexers/install-indexer-linux.md b/docs/subquery_network/kepler/indexers/install-indexer-linux.md index e3f300429a5..25c2b62f29e 100644 --- a/docs/subquery_network/kepler/indexers/install-indexer-linux.md +++ b/docs/subquery_network/kepler/indexers/install-indexer-linux.md @@ -33,7 +33,7 @@ DO NOT skip checking the Indexer Version after you finish the SSH process. - Visit [this section](../indexers/become-an-indexer.md#_2-1-check-indexer-version) and complete the process. ::: warning Important -Please change the default PostgreSQL password in the `POSTGRES_PASSWORD` field and in the coordinator-service's `postgres-password` field. Replace it with your own one. +Please change the default PostgreSQL password in the `POSTGRES_PASSWORD` field and in the coordinator-service's `postgres-password` field. Replace it with your own one. ::: - Then, install Docker and set auto start: @@ -85,7 +85,7 @@ It will start the following services: - `coordinator_proxy` - `proxy-redis` -::: info Note +::: tip Note Each project you start indexing will create 2 extra containers `node_qm----------` and `query_qm----------` that has the 13 first characters of the project's Qm-hash. ::: diff --git a/docs/subquery_network/kepler/season3-challenges/dashboard.md b/docs/subquery_network/kepler/season3-challenges/dashboard.md index f289faf4608..7e8feebf41c 100644 --- a/docs/subquery_network/kepler/season3-challenges/dashboard.md +++ b/docs/subquery_network/kepler/season3-challenges/dashboard.md @@ -2,23 +2,23 @@ Welcome to season 3 of Frontier (SubQuery's Testnet). Learn about the different areas within the explorer dashboard. -![Testnet dashboard](/assets/img/dashboard.png) - Explorer: When you log into the dashboard at https://frontier.subquery.network/, you will be taken to the Explorer dashboard where you will see a list of projects that are being indexed. ### Studio TBA -### Stake & Delegate: +### Stake & Delegate: This area: -- allows Indexers and Delegators to manage their stake, delegation, rewards and view tokens that are locked. + +- allows Indexers and Delegators to manage their stake, delegation, rewards and view tokens that are locked. - allows Delegators to select Indexers to delegate their SQT ### Plan & Offer This area: + - list service agreements - allows Indexers to create and manage their plans - allows Consumers to create and manage their offers @@ -27,5 +27,6 @@ This area: ### Mission This area shows: + - the missions that have been completed by network participants - A leaderboard of grouped by network participants diff --git a/docs/subquery_network/kepler/season3-challenges/season3.md b/docs/subquery_network/kepler/season3-challenges/season3.md index 2d322dc0026..ed2154c3193 100644 --- a/docs/subquery_network/kepler/season3-challenges/season3.md +++ b/docs/subquery_network/kepler/season3-challenges/season3.md @@ -68,8 +68,6 @@ To create a deployment-specific plan, navigate to `Plan & Offer` -> `My Plans`. - The example here shows Consumer 0xB559... purchasing a plan from Indexer 0x5F36... aka `Sean Indexer 27Jun`. -![Plan purchased](/assets/img/plan_purchased.png) - ### 8. Claim Your Reward @@ -110,8 +108,8 @@ Reach out and ask a Delegator to undelegate their tokens from your Indexer. ### 11. Accept an Offer in the Offer Marketplace -- To accept an offer in the "Offer Marketplace", navigate to `Plan & Offer` -> `Offer Marketplace`. -Then select `Accept` in the last column. +- To accept an offer in the "Offer Marketplace", navigate to `Plan & Offer` -> `Offer Marketplace`. + Then select `Accept` in the last column. ![Accept offer](/assets/img/accept_offer.png) @@ -125,39 +123,39 @@ Then select `Accept` in the last column. ### 12. Update Controller Account -- On the `Account` page, click on `Manage Controllers` button to visit the `Controller Management` page. +- On the `Account` page, click on `Manage Controllers` button to visit the `Controller Management` page. -- Next, click on `Create an Account` button to create a new controller account. +- Next, click on `Create an Account` button to create a new controller account. -![Controller Management](/assets/img/manage-controllers-page.png) +![Controller Management](/assets/img/manage-controllers-page.png) - Then you will see your new account on the screen. Click on the `Active` button as shown in the screen. -![Create new controller](/assets/img/create-new-controller-account.png) + ![Create new controller](/assets/img/create-new-controller-account.png) -- You will be asked to send the transaction on MetaMask. Hit `Send Transaction`. Confirm the transaction with Metamask as well. +- You will be asked to send the transaction on MetaMask. Hit `Send Transaction`. Confirm the transaction with Metamask as well. -![Active controller](/assets/img/send-tx-to-update-controller.png) +![Active controller](/assets/img/send-tx-to-update-controller.png) -- After the transaction has been processed, you would be able to see the new controller the top of the list. Note the `Active` label. +- After the transaction has been processed, you would be able to see the new controller the top of the list. Note the `Active` label. -![Controller updated](/assets/img/controller-page-controller-updated.png) +![Controller updated](/assets/img/controller-page-controller-updated.png) diff --git a/docs/th/README.md b/docs/th/README.md index efebff80b01..8c06f03ad4e 100644 --- a/docs/th/README.md +++ b/docs/th/README.md @@ -4,7 +4,7 @@

Build Faster dApps withSubQuery Academy

-

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


+

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

@@ -12,7 +12,7 @@

Get a Kick-Start With Our Quick Start Guide

-

Build your first SubQuery project in less than 10 mins with simple guided steps. +

Build your first SubQuery project in less than 10 mins with simple guided steps.

Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

@@ -134,8 +134,7 @@
- - + diff --git a/docs/th/build/install.md b/docs/th/build/install.md index 3960e8defff..69d149b95d5 100644 --- a/docs/th/build/install.md +++ b/docs/th/build/install.md @@ -1,6 +1,6 @@ # การติดตั้ง SubQuery -มันจะมีส่วนประกอบต่างๆ ที่จำเป็นในการสร้างโปรเจ็กต์ SubQuery, [@subql/cli](https://github.com/subquery/subql/tree/docs-new-section/packages/cli) ในการสร้างโปรเจ็กต์ SubQuery ส่วนประกอบ [@subql/node](https://github.com/subquery/subql/tree/docs-new-section/packages/node) ซึ่งจำเป็นสำหรับการรัน Indexer และชุดคำสั่ง [@subql/query](https://github.com/subquery/subql/tree/docs-new-section/packages/query) ซึ่งจำเป็นสำหรับการสร้าง Queries +มันจะมีส่วนประกอบต่างๆ ที่จำเป็นในการสร้างโปรเจ็กต์ SubQuery, [@subql/cli](https://github.com/subquery/subql/tree/docs-new-section/packages/cli) ในการสร้างโปรเจ็กต์ SubQuery ส่วนประกอบ [@subql/node](https://github.com/subquery/subql/tree/docs-new-section/packages/node) ซึ่งจำเป็นสำหรับการรัน Indexer และชุดคำสั่ง [@subql/query](https://github.com/subquery/subql/tree/docs-new-section/packages/query) ซึ่งจำเป็นสำหรับการสร้าง Queries ## ติดตั้ง @subql/cli @@ -8,28 +8,30 @@ ติดตั้ง SubQuery CLI แบบ Global บนเทอร์มินัลของคุณโดยใช้ Yarn หรือ NPM: - ```bash npm install -g @subql/cli ``` - ```shell yarn global add @subql/cli ``` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` +@tab:active yarn `shell yarn global add @subql/cli ` ::: คุณสามารถรันคำสั่ง help เพื่อดู command ที่ใช้ได้รวมถึงการใช้งานด้วย CLI: ```shell subql help ``` + ## ติดตั้ง @subql/node โหนด SubQuery เป็นการ Implement ที่ดึงข้อมูลบล็อกเชนที่ใช้ Substrate จากโปรเจ็กต์ SubQuery และบันทึกลงในฐานข้อมูล Postgres ติดตั้งโหนด SubQuery แบบ Global บนเทอร์มินัลของคุณโดยใช้ Yarn หรือ NPM: - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: Once installed, you can can start a node with: ```shell subql-node ``` + > หมายเหตุ: หากคุณใช้ Docker หรือคุณโฮสต์โปรเจ็กต์ของคุณใน SubQuery Projects คุณสามารถข้ามขั้นตอนนี้ได้ เนื่องจากมี SubQuery Node ให้ใน Docker Container และโครงสร้างพื้นฐานของโฮสต์อยู่แล้ว ## ติดตั้ง @subql/query @@ -38,7 +40,7 @@ Query Library ของ SubQuery ให้บริการที่จะช ติดตั้ง SubQuery query แบบ Global บนเทอร์มินอลของคุณโดยใช้ Yarn หรือ NPM: - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> หมายเหตุ: หากคุณใช้ Docker หรือโฮสต์โปรเจ็กต์ของคุณใน SubQuery Projects คุณสามารถข้ามขั้นตอนนี้ได้เช่นกัน เนื่องจากมี SubQuery Node ให้ใน Docker Container และโครงสร้างพื้นฐานของโฮสต์อยู่แล้ว \ No newline at end of file +> หมายเหตุ: หากคุณใช้ Docker หรือโฮสต์โปรเจ็กต์ของคุณใน SubQuery Projects คุณสามารถข้ามขั้นตอนนี้ได้เช่นกัน เนื่องจากมี SubQuery Node ให้ใน Docker Container และโครงสร้างพื้นฐานของโฮสต์อยู่แล้ว diff --git a/docs/th/build/introduction.md b/docs/th/build/introduction.md index a06d4a21bbf..16dd71b2bcb 100644 --- a/docs/th/build/introduction.md +++ b/docs/th/build/introduction.md @@ -51,8 +51,8 @@ yarn codegen รันคำสั่งในการสร้างจากไดเร็กทอรีเริ่มต้นของโปรเจกต์ - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### ตัวอย่างการสร้างตัวเลือก diff --git a/docs/th/build/manifest.md b/docs/th/build/manifest.md index 297a7c4801a..94e014a7076 100644 --- a/docs/th/build/manifest.md +++ b/docs/th/build/manifest.md @@ -4,8 +4,8 @@ Manifest สามารถใช้เครื่องมือในรูปแบบของ YAML หรือ JSON ซึ่งในคู่มือนี้ เราจะใช้ตัวอย่างเป็น YAML ตัวอย่างด้านล่างรูปแบบมาตรฐานของ `project.yaml` - ``` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` - ``` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +@tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## สำหรับการอัพเกรดเวอร์ชันจาก v0.0.1 สู่ v0.2.0 @@ -32,12 +32,12 @@ Manifest สามารถใช้เครื่องมือในรู หมายเหตุ PROJECTNAME ตั้งชื่อโปรเจกต์ | Options | Description | -| ----------------------- | ----------------------------------------------------------------------- | +| ----------------------- | ----------------------------------------------------------------------- | -------------------------- | | -f, --force | | | -l, --location=location | ตำแหน่งแฟ้มข้อมูลของโปรเจกต์ | | --install-dependencies | การติดตั้ง | | --npm | บังคับให้ใช้ NPM แทน yarn ใช้งานได้เฉพาะกับ `install-dependencies` flag | -| --specVersion=0.0.1 | 0.2.0 [default: 0.2.0] | เวอร์ชั่นที่ใช้กับโปรเจกต์ | +| --specVersion=0.0.1 | 0.2.0 [default: 0.2.0] | เวอร์ชั่นที่ใช้กับโปรเจกต์ | ## ภาพรวม @@ -72,19 +72,19 @@ Manifest สามารถใช้เครื่องมือในรู ### Datasource Spec กำหนดข้อมูลที่จะถูก คัดกรอง และ แยกออก จากตำแหน่งของตัวจัดการ mapping function handler สำหรับการแปลงข้อมูลที่จะนำไปใช้ -| Field | v0.0.1 | v0.2.0 | Description | +| Field | v0.0.1 | v0.2.0 | Description | | -------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **name** | String | 𐄂 | ชื่อสำหรับแหล่งข้อูล | -| **kind** | [substrate/Runtime](./manifest/#data-sources-and-mapping) | substrate/Runtime, [substrate/CustomDataSource](./manifest/#custom-data-sources) | ระบบรองรับประเภทข้อมูลจากเริ่มต้นของซับสเตรต เช่น บล็อก เหตุการณ์ และ extrinsic(call))
ตั้งแต่ v0.2.0 ระบบรองรับข้อมูลที่กำหนดเอง เช่น smart contact | -| **startBlock** | Integer | Integer | สิ่งนี้จะเปลี่ยนตำแหน่งการเริ่มต้นการจัดทำดัชนีของคุณ ตั้งค่าให้สูงกว่านี้เพื่อข้ามบล็อกเริ่มต้นที่มีข้อมูลน้อยลง | -| **mapping** | Mapping Spec | Mapping Spec | | -| **filter** | [network-filters](./manifest/#network-filters) | 𐄂 | กรองข้อมูลเพื่อดำเนินการตามชื่อข้อมูลเฉพาะของเครือข่าย | +| **name** | String | 𐄂 | ชื่อสำหรับแหล่งข้อูล | +| **kind** | [substrate/Runtime](./manifest/#data-sources-and-mapping) | substrate/Runtime, [substrate/CustomDataSource](./manifest/#custom-data-sources) | ระบบรองรับประเภทข้อมูลจากเริ่มต้นของซับสเตรต เช่น บล็อก เหตุการณ์ และ extrinsic(call))
ตั้งแต่ v0.2.0 ระบบรองรับข้อมูลที่กำหนดเอง เช่น smart contact | +| **startBlock** | Integer | Integer | สิ่งนี้จะเปลี่ยนตำแหน่งการเริ่มต้นการจัดทำดัชนีของคุณ ตั้งค่าให้สูงกว่านี้เพื่อข้ามบล็อกเริ่มต้นที่มีข้อมูลน้อยลง | +| **mapping** | Mapping Spec | Mapping Spec | | +| **filter** | [network-filters](./manifest/#network-filters) | 𐄂 | กรองข้อมูลเพื่อดำเนินการตามชื่อข้อมูลเฉพาะของเครือข่าย | ### Mapping Spec -| Field | v0.0.1 | v0.2.0 | Description | -| ---------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **file** | String | 𐄂 | ตำแหน่งไฟล์ของ mapping entry | +| Field | v0.0.1 | v0.2.0 | Description | +| ---------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **file** | String | 𐄂 | ตำแหน่งไฟล์ของ mapping entry | | **handlers & filters** | [Default handlers and filters](./manifest/#mapping-handlers-and-filters) | Default handlers and filters,
[Custom handlers and filters](#custom-data-sources) | ลิสท์รายการ [mapping functions](./mapping/polkadot.md) ทั้งหมด และ handler type ที่เกี่ยวข้อง รวมไปถึง mapping filters

สำหรับการใช้ custom runtimes mapping handlers กรุณาดูต่อที่ [Custom data sources](#custom-data-sources) | ## Data Sources and Mapping @@ -105,8 +105,8 @@ dataSources: **โปรเจ็คต์ SubQuery ของคุณจะมีประสิทธิภาพเพิ่มมากขึ้นเป็นอย่างมาก เมื่อคุณเพียงใช้ event และ call handlers ร่วมกับ mapping filters ที่เหมาะสม** -| Handlers (ตัวดำเนินการ) | Supported filter (ตัวกรองที่รองรับ) | -| ------------------------------------------ | ----------------------------------- | +| Handlers (ตัวดำเนินการ) | Supported filter (ตัวกรองที่รองรับ) | +| --------------------------------------------------- | ----------------------------------- | | [BlockHandler](./mapping/polkadot.md#block-handler) | `specVersion` | | [EventHandler](./mapping/polkadot.md#event-handler) | `module`,`method` | | [CallHandler](./mapping/polkadot.md#call-handler) | `module`,`method` ,`success` | @@ -154,8 +154,8 @@ filter: ใน v0.2.0 ตัวอย่างดังต่อไปนี้ `network.chaintypes` จะถูกชี้ไปที่ไฟล์ที่มี custom types ทั้งหมด นี่จะเป็นมาตรฐานของไฟล์ chainspec ที่ใช้ในการแสดงผลในรูปแบบ blockchain โดยรองรับทั้งรูปแบบ `.json`, `.yaml` หรือ `.js`. - ``` yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ... ``` - ``` yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true ``` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: หากต้องการใช้ typescript สำหรับเครือข่ายของคุณจะอยู่ใน `src` แฟ้มข้อมูล (e.g. `./src/types.ts`), run `yarn build` จากนั้นชี้ไปที่ไฟล์ js ที่ถูกสร้างขึ้นซึ่งอยู่ในไฟล์ `dist` ของแฟ้มข้อมูล @@ -172,7 +172,7 @@ network: นี่คือตัวอย่างของ `.ts` ไฟล์ chain types: - `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` ::: ## Custom Data Sources @@ -198,6 +198,6 @@ Custom Data Sources สามารถใช้ร่วมกับ normal data ด้านล่างนี้คือตัวอย่างที่แสดงแหล่งข้อมูลต่างๆ สำหรับทั้งเครือข่าย Polkadot และ Kusama - `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` +::: code-tabs @tab v0.0.1 `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` - +::: diff --git a/docs/th/build/mapping.md b/docs/th/build/mapping.md index baccd017637..ed2d6e35cc0 100644 --- a/docs/th/build/mapping.md +++ b/docs/th/build/mapping.md @@ -67,10 +67,10 @@ export async function handleCall(extrinsic: SubstrateExtrinsic): Promise { ซึ่งอินเทอร์เฟซที่เรารองรับในขณะนี้ ได้แก่ -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) สำหรับการคิวรี่บล็อก ปัจจุบัน -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) สำหรับการคิวรี่พร้อมกันหลายครั้งในอินเทอร์เฟซประเภท เดียวกัน ที่บล็อกปัจจุบัน +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) สำหรับการคิวรี่บล็อก **ปัจจุบัน** +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) สำหรับการคิวรี่พร้อมกันหลายครั้งในอินเทอร์เฟซประเภท **เดียวกัน** ที่บล็อกปัจจุบัน - [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) สำหรับการคิวรี่พร้อมกันหลายครั้งในอินเทอร์เฟซประเภท - ต่างกัน ที่บล็อกปัจจุบัน + **ต่างกัน** ที่บล็อกปัจจุบัน และนี่คืออินเทอร์เฟซที่ขณะนี้เรา **ไม่ได้** สนับสนุน ซึ่งได้แก่ diff --git a/docs/th/build/substrate-evm.md b/docs/th/build/substrate-evm.md index 666a8ae7f43..1c55e306827 100644 --- a/docs/th/build/substrate-evm.md +++ b/docs/th/build/substrate-evm.md @@ -74,7 +74,7 @@ Handler นี้จะไม่เหมือนกับ handler ทั่ว | ------ | ------------ | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | topics | String array | Transfer(address indexed from,address indexed to,uint256 value) | หัวข้อการคัดกรอง อ้างอิงตามการคัดกรอง log ของ Ethereum JSON-PRC โดยสามารถดูเอกสารเพิ่มเติมได้[ที่นี่](https://docs.ethers.io/v5/concepts/events/). | -หมายเหตุ: +**หมายเหตุ:** มีการปรับปรุงสองสามอย่างจากการคัดกรอง log พื้นฐาน: - หัวข้อไม่จำเป็นต้องมี pad เป็น 0 @@ -97,17 +97,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Contract address (or recipient if transfer) to filter, if `null` should be for contract creation - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -122,7 +122,7 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## ข้อจำกัดที่ทราบ diff --git a/docs/th/faqs/faqs.md b/docs/th/faqs/faqs.md index 6dc98535b7a..5c073c0505e 100644 --- a/docs/th/faqs/faqs.md +++ b/docs/th/faqs/faqs.md @@ -16,17 +16,17 @@ SubQuery also provides free, production grade hosting of projects for developers **เครื่อข่าย SubQuery** -The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. +The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. ข้อมูลเพิ่มเติม [ที่นี่](/subquery_network/introduction.md). ## วิธีที่ดีที่สุดในการเริ่มต้นใช้งาน SubQuery คืออะไร? -วิธีที่ดีที่สุดในการเริ่มต้นใช้งาน SubQuery คือทดลองทำตาม [Hello World tutorial](/assets/pdf/Hello_World_Lab.pdf) This is a simple 5 min walk through exercise. Download the starter template, build the project, use Docker to run a node on your localhost, and run a simple query. +วิธีที่ดีที่สุดในการเริ่มต้นใช้งาน SubQuery คือทดลองทำตาม [Hello World tutorial](/assets/pdf/Hello_World_Lab.pdf) This is a simple 5 min walk through exercise. Download the starter template, build the project, use Docker to run a node on your localhost, and run a simple query. ## ฉันจะมีส่วนร่วมหรือให้คำติชมกับ SubQuery ได้อย่างไร? -เรารักการมีส่วนร่วมและข้อเสนอแนะจากชุมชน To contribute the code, fork the repository of your interest and make your changes. จากนั้นส่ง PR หรือ Pull Request อย่าลืมทดสอบด้วยนะ Also check out our contributions guidelines. +เรารักการมีส่วนร่วมและข้อเสนอแนะจากชุมชน To contribute the code, fork the repository of your interest and make your changes. จากนั้นส่ง PR หรือ Pull Request อย่าลืมทดสอบด้วยนะ Also check out our [contributions guidelines](../miscellaneous/contributing.html). หากต้องการแสดงความคิดเห็น โปรดติดต่อเราที่ hello@subquery.network หรือไปที่ [discord ของเรา](https://discord.com/invite/78zg8aBSMG). @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= แนะนำว่าควรใช้ `--force-clean` เมื่อเปลี่ยน `startBlock` ที่อยู่ใน Project manifest (`project.yaml`) เพื่มเริ่มต้นการทำ Indexing ใหม่จาก Block ที่ถูกตั้งค่าไว้ If `startBlock` is changed without a `--force-clean` of the project, then the indexer will continue indexing with the previously configured `startBlock`. - ## How can I optimise my project to speed it up? Performance is a crucial factor in each project. Fortunately, there are several things you could do to improve it. Here is the list of some suggestions: @@ -89,13 +88,13 @@ Performance is a crucial factor in each project. Fortunately, there are several - Set the start block to when the contract was initialised. - Always use a [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (we can help create one for your new network). - Optimise your schema design, keep it as simple as possible. - - Try to reduce unnecessary fields and columns. - - Create indexes as needed. + - Try to reduce unnecessary fields and columns. + - Create indexes as needed. - Use parallel/batch processing as often as possible. - - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. - - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. - - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. + - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. + - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. + - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. - Making API calls to query state can be slow. You could try to minimise calls where possible and to use `extrinsic/transaction/event` data. - Use `worker threads` to move block fetching and block processing into its own worker thread. It could speed up indexing by up to 4 times (depending on the particular project). You can easily enable it using the `-workers=` flag. Note that the number of available CPU cores strictly limits the usage of worker threads. For now, it is only available for Substrate and Cosmos and will soon be integrated for Avalanche. - Note that `JSON.stringify` doesn’t support native `BigInts`. Our logging library will do this internally if you attempt to log an object. We are looking at a workaround for this. -- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. \ No newline at end of file +- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. diff --git a/docs/th/miscellaneous/contributing.md b/docs/th/miscellaneous/contributing.md index a8eeb3e2e83..d5ddf7239e0 100644 --- a/docs/th/miscellaneous/contributing.md +++ b/docs/th/miscellaneous/contributing.md @@ -2,7 +2,7 @@ ยินดีต้อนรับและขอขอบคุณเป็นอย่างยิ่งที่สนใจที่จะเข้าร่วมในโปรเจ็กต์ SubQuery นี้! ด้วยความร่วมมือกัน เราจะสามารถปูทางไปสู่อนาคตที่มีการกระจายอำนาจมากขึ้น -::: info Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: +::: tip Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: What follows is a set of guidelines (not rules) for contributing to SubQuery. Following these guidelines will help us make the contribution process easy and effective for everyone involved. It also communicates that you agree to respect the time of the developers managing and developing this project. In return, we will reciprocate that respect by addressing your issue, considering changes, collaborating on improvements, and helping you finalise your pull requests. @@ -14,8 +14,8 @@ We take our open source community projects and responsibility seriously and hold Contributions to our repositories are made through Issues and Pull Requests (PRs). A few general guidelines that cover both: -* การค้นหา Issues และ PR ที่มีอยู่ก่อนที่จะสร้าง Issues ของคุณเอง -* เราทำงานอย่างหนักเพื่อให้แน่ใจว่า Issues จะได้รับการจัดการโดยทันที แต่อาจใช้เวลาสักครู่ในการตรวจสอบหาสาเหตุ ทั้งนี้ขึ้นอยู่กับต้นเหต การใช้ @ mention ที่เป็นมิตรในความคิดเห็นถึงผู้ส่งหรือผู้ร่วมให้ข้อมูลสามารถช่วยดึงดูดความสนใจได้หาก Issue ของคุณยังไม่ได้รับการแก้ไข้ +- การค้นหา Issues และ PR ที่มีอยู่ก่อนที่จะสร้าง Issues ของคุณเอง +- เราทำงานอย่างหนักเพื่อให้แน่ใจว่า Issues จะได้รับการจัดการโดยทันที แต่อาจใช้เวลาสักครู่ในการตรวจสอบหาสาเหตุ ทั้งนี้ขึ้นอยู่กับต้นเหต การใช้ @ mention ที่เป็นมิตรในความคิดเห็นถึงผู้ส่งหรือผู้ร่วมให้ข้อมูลสามารถช่วยดึงดูดความสนใจได้หาก Issue ของคุณยังไม่ได้รับการแก้ไข้ ## วิธีการมีส่วนร่วม @@ -23,32 +23,32 @@ Contributions to our repositories are made through Issues and Pull Requests (PRs Bugs are tracked as GitHub issues. When logging an issue, explain the problem and include additional details to help maintainers reproduce the problem: -* ตั้งชื่อ Issue ที่ชัดเจนและสื่อความหมายเพื่อระบุปัญหา -* อธิบายขั้นตอนที่แน่นอนในการทำให้เกิดปัญหานี้ซ้ำ -* อธิบายอาการที่คุณสังเกตเห็นหลังจากทำตามขั้นตอนต่างๆ -* อธิบายว่าคุณคาดว่าจะเห็นผลลัพธ์ใดแทนและเพราะเหตุใด -* รวมภาพหน้าจอด้วย ถ้าเป็นไปได้ +- ตั้งชื่อ Issue ที่ชัดเจนและสื่อความหมายเพื่อระบุปัญหา +- อธิบายขั้นตอนที่แน่นอนในการทำให้เกิดปัญหานี้ซ้ำ +- อธิบายอาการที่คุณสังเกตเห็นหลังจากทำตามขั้นตอนต่างๆ +- อธิบายว่าคุณคาดว่าจะเห็นผลลัพธ์ใดแทนและเพราะเหตุใด +- รวมภาพหน้าจอด้วย ถ้าเป็นไปได้ ### การส่ง Pull Requests In general, we follow the "fork-and-pull" Git workflow: -* Fork the repository to your own Github account. -* Clone the project to your machine. -* Create a branch locally with a succinct but descriptive name. -* Commit changes to the branch. -* Following any formatting and testing guidelines specific to this repo. -* Push changes to your fork. -* Open a PR in our repository. +- Fork the repository to your own Github account. +- Clone the project to your machine. +- Create a branch locally with a succinct but descriptive name. +- Commit changes to the branch. +- Following any formatting and testing guidelines specific to this repo. +- Push changes to your fork. +- Open a PR in our repository. ## ข้อตกลงในการเขียนโค้ด ### ข้อความในการยืนยัน Git -* Use the present tense ("Add feature" not "Added feature"). -* Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). -* Limit the first line to 72 characters or less. +- Use the present tense ("Add feature" not "Added feature"). +- Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). +- Limit the first line to 72 characters or less. ### แนวทางรูปแบบสำหรับ JavaScript -* All JavaScript code is linted with Prettier and ESLint. +- All JavaScript code is linted with Prettier and ESLint. diff --git a/docs/th/quickstart/helloworld-localhost.md b/docs/th/quickstart/helloworld-localhost.md index 9afd12fe5c4..78dc8a01ee0 100644 --- a/docs/th/quickstart/helloworld-localhost.md +++ b/docs/th/quickstart/helloworld-localhost.md @@ -88,7 +88,7 @@ cd subqlHelloWorld ในตอนนี้ ให้ทำการติดตั้ง yarn หรือ node เพื่อติดตั้ง dependencies ต่างๆ - ```shell yarn install ``` ```bash npm install ``` +::: code-tabs @tab:active yarn `shell yarn install ` @tab npm `bash npm install ` ::: ตัวอย่างของ `yarn install` @@ -108,7 +108,7 @@ success Saved lockfile. ให้รัน `yarn codegen` เพื่อสร้าง typescript จาก GraphQL schema - ```shell yarn codegen ``` ```bash npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` @tab npm `bash npm run-script codegen ` ::: ตัวอย่างของ `yarn codegen` @@ -131,7 +131,7 @@ $ ./node_modules/.bin/subql codegen ขั้นตอนต่อไปคือการ build โค้ดด้วย `yarn build` - ```shell yarn build ``` ```bash npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `bash npm run-script build ` ::: ตัวอย่างของ `yarn build` diff --git a/docs/th/quickstart/quickstart-avalanche.md b/docs/th/quickstart/quickstart-avalanche.md index d2bc96a8c11..592c968bbc7 100644 --- a/docs/th/quickstart/quickstart-avalanche.md +++ b/docs/th/quickstart/quickstart-avalanche.md @@ -45,8 +45,8 @@ subql init เมื่อเราทำการสร้างโปรเจ็กต์ SubQuery จะมีรายละเอียดให้กรอกคือ: - Project Name: A name for your SubQuery project -- Network Family: ตระกูลเครือข่ายบล๊อคเชน layer-1 ที่โปรเจกต์ SubQuery จะถูกพัฒนาเพื่อ index ใช้ปุ่มลูกศรบนแป้นพิมพ์เพื่อเลือกจากตัวเลือกต่างๆ สำหรับคำแนะนำนี้ เราจะใช้_"Avalanche"_ -- Network: เฉพาะเครือข่ายที่โครงการ SubQuery นี้จะdevelop เพื่อสร้าง index ใช้ปุ่มลูกศรบนแป้นพิมพ์เพื่อเลือกจากตัวเลือกต่างๆ สำหรับคู่มือนี้เราจะใช้_"Avalanche"_ +- Network Family: ตระกูลเครือข่ายบล๊อคเชน layer-1 ที่โปรเจกต์ SubQuery จะถูกพัฒนาเพื่อ index ใช้ปุ่มลูกศรบนแป้นพิมพ์เพื่อเลือกจากตัวเลือกต่างๆ สำหรับคำแนะนำนี้ เราจะใช้*"Avalanche"* +- Network: เฉพาะเครือข่ายที่โครงการ SubQuery นี้จะdevelop เพื่อสร้าง index ใช้ปุ่มลูกศรบนแป้นพิมพ์เพื่อเลือกจากตัวเลือกต่างๆ สำหรับคู่มือนี้เราจะใช้*"Avalanche"* - Template: เลือกเทมเพลตโปรเจกต์ SubQuery ที่จะให้เป็นจุดเริ่มต้นเพื่อเริ่มการ Develop เราขอแนะนำให้เลือก _"Starter project"_ - Git repository (ทางเลือก): ระบุ Git URL ไปยัง repo ที่โปรเจกต์ SubQuery ที่จะถูกทำการโฮสต์ (เมื่อโฮสต์ใน Subquery Explorer) - RPC endpoint (จำเป็น): ระบุ HTTPS URL ไปยัง RPC endpoint ที่ทำงานอยู่ที่จะใช้งานเป็นค่าเริ่มต้นของโปรเจค RPC node นี้ต้องเป็น archive node (มีสถานะ full chain state) สำหรับคู่มือนี้เราจะใช้ค่าเริ่มต้น _"avalanche.api.onfinality.io"_ @@ -59,8 +59,8 @@ subql init สุดท้าย ภายใต้ไดเรกทอรีของโปรเจกต์ ให้รันคำสั่งต่อไปนี้เพื่อติดตั้ง dependencies ของโปรเจกต์ใหม่นี้ - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## สร้างความเปลี่ยนแปลงให้กับโปรเจกต์ของคุณ @@ -92,8 +92,8 @@ type PangolinApproval @entity { **สำคัญ: เมื่อคุณทำการเปลี่ยนแปลงใดๆ กับไฟล์ schemaโปรดตรวจสอบให้แน่ใจว่าคุณได้สร้าง directory types ของคุณขึ้นมาใหม่ ทำแบบนี้เลย** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: คุณจะพบโมเดลที่สร้างขึ้นใน `/src/types/models` directory. สำหรับข้อมูลเพิ่มเติมภายใน `schema.graphql` ไฟล์, โปรดตรวจสอบได้ที่ เอกสารของเราภายใต้ [Build/GraphQL Schema](../build/graphql.md) @@ -169,7 +169,7 @@ export async function handleLog(event: AvalancheLog): Promise { ในการใช้งานโปรเจกต์ SubQuery ใหม่ของคุณ เราต้องสร้างงานของเราก่อน ใช้คำสั่ง build จาก root directory ของโปรเจกต์ - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **สำคัญ เมื่อไรก็ตามที่มีการเปลี่ยนแปลงใน Mapping Functions คุณจำเป็นต้องสร้างโปรเจคของคุณใหม่** @@ -183,9 +183,9 @@ export async function handleLog(event: AvalancheLog): Promise { ภายใต้ poject directory ให้รันคำสั่งต่อไปนี้ - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: -อาจใช้เวลาสักครู่ในการดาวน์โหลดแพ็คเกจที่จำเป็นสำหรับครั้งแรก ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) แต่ในไม่ช้า คุณจะเห็น SubQuery node ที่ทำงานอยู่ อดทนไว้ +อาจใช้เวลาสักครู่ในการดาวน์โหลดแพ็คเกจที่จำเป็นสำหรับครั้งแรก ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) แต่ในไม่ช้า คุณจะเห็น SubQuery node ที่ทำงานอยู่ อดทนไว้ ### ทำการ Query โปรเจกต์ของคุณ diff --git a/docs/th/quickstart/quickstart-cosmos.md b/docs/th/quickstart/quickstart-cosmos.md index 612b6c5899e..f658152c796 100644 --- a/docs/th/quickstart/quickstart-cosmos.md +++ b/docs/th/quickstart/quickstart-cosmos.md @@ -44,8 +44,8 @@ Cosmos is not yet supported in SubQuery's CLI (`subql`), to start with Juno clon สุดท้ายแล้วภายใต้โปรเจกต์ไดเร็กทอรี ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งการพึ่งพาของโปรเจกต์ใหม่ - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## ทำการเปลี่ยนแปลงโปรเจกต์ของคุณ @@ -75,8 +75,8 @@ type Vote @entity { **สำคัญ: เมื่อคุณได้ทำการเปลี่ยนแปลงใดๆกับไฟล์ schema โปรดตรวจสอบให้มั่นใจว่าคุณสามารถนำชนิดของ directory กลับมาใหม่ได้ ทำแบบนี้เลย** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: คุณจะเจอรูปแบบที่สร้างขึ้นภายใน `/src/types/models` directory. สำหรับข้อมูลเพิ่มเติมภายใน `schema.graphql` ไฟล์, โปรดตรวจสอบได้ที่ เอกสารของเราภายใต้ [Build/GraphQL Schema](../build/graphql.md) @@ -145,7 +145,7 @@ What this is doing is receiving a CosmosMessage which includes message data on t ในการรันโปรเจกต์ SubQuery ใหม่ของคุณ เราต้องสร้างงานของเราก่อน ทำการ Run คำสั่งเริ่มต้นจาก project's root directory - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **สำคัญ เมื่อไรก็ตามที่มีการเปลี่ยนแปลงใน Mapping Functions คุณจำเป็นต้องสร้างโปรเจคของคุณใหม่** @@ -159,9 +159,9 @@ What this is doing is receiving a CosmosMessage which includes message data on t ภายใต้ poject directory ให้รันคำสั่งต่อไปนี้ - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: -อาจใช้เวลาสักครู่ในการดาวน์โหลดแพ็คเกจที่จำเป็นสำหรับครั้งแรก ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) แต่ในไม่ช้า คุณจะเห็น SubQuery node ที่ทำงานอยู่ อดทนไว้ +อาจใช้เวลาสักครู่ในการดาวน์โหลดแพ็คเกจที่จำเป็นสำหรับครั้งแรก ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) แต่ในไม่ช้า คุณจะเห็น SubQuery node ที่ทำงานอยู่ อดทนไว้ ### Query โปรเจกต์ของคุณ @@ -173,10 +173,9 @@ What this is doing is receiving a CosmosMessage which includes message data on t ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id diff --git a/docs/th/quickstart/quickstart-polkadot.md b/docs/th/quickstart/quickstart-polkadot.md index 3f74ae29ece..f36e3357099 100644 --- a/docs/th/quickstart/quickstart-polkadot.md +++ b/docs/th/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql init คุณจะถูกถามคำถามบางอย่างเมื่อโปรเจกต์ SubQuery เริ่มต้น: - ชื่อโปรเจกต์: ตั้งชื่อว่าโปรเจกต์ A สำหรับ โปรเจกต์ SubQuery ของคุณ -- Network family: ตระกูลเครือ Blockchain layer-1ที่โปรเจกต์ SubQuery จะ Develop เป็น Index ใช้ลูกศร เพื่อเลือก ตัวเลือกที่มีให้ สำหรับคำแนะนำนี้ เราจะใช้ *"Substrate"* -- เครือข่าย: เครือข่ายเฉพาะที่โครงการ SubQuery นี้จะถูกพัฒนาเพื่อสร้างดัชนี ใช้ลูกศร เพื่อเลือก ตัวเลือกที่มีให้ สำหรับคำแนะนำนี้ เราจะใช้ *"Polkadot* -- โครงการแม่แบบ: เลือกโครงการแม่แบบ SubQuery ที่จะใช้เป็นจุดเริ่มต้นเพื่อเริ่มการพัฒนา เราแนะนำให้เลือกโปรเจกต์ *"subql-starter"* -- RPC endpoint: ระบุ HTTPS URL ไปยัง RPC endpoint ที่ทำงานอยู่ที่จะใช้งานเป็นค่าเริ่มต้นของโปรเจก คุณสามารถเข้าถึง Endpoints สาธารณะได้อย่างรวดเร็วสำหรับเครือข่าย Polkadot ต่างๆหรือแม้แต่สามารถ สร้าง Node เฉพาะส่วนตัวของคุณเองโดยใช้ [OnFinality](https://app.onfinality.io) หรือเพียงแค่ใช้ Polkadot endpoints ที่เป็นค่าเริ่มต้น RPC node นี้ต้องเป็น archive node (มีสถานะ full chain state) สำหรับคู่มือนี้เราจะใช้ค่าเริ่มต้นคือ *"https://polkadot.api.onfinality.io"* +- Network family: ตระกูลเครือ Blockchain layer-1ที่โปรเจกต์ SubQuery จะ Develop เป็น Index ใช้ลูกศร เพื่อเลือก ตัวเลือกที่มีให้ สำหรับคำแนะนำนี้ เราจะใช้ _"Substrate"_ +- เครือข่าย: เครือข่ายเฉพาะที่โครงการ SubQuery นี้จะถูกพัฒนาเพื่อสร้างดัชนี ใช้ลูกศร เพื่อเลือก ตัวเลือกที่มีให้ สำหรับคำแนะนำนี้ เราจะใช้ _"Polkadot_ +- โครงการแม่แบบ: เลือกโครงการแม่แบบ SubQuery ที่จะใช้เป็นจุดเริ่มต้นเพื่อเริ่มการพัฒนา เราแนะนำให้เลือกโปรเจกต์ _"subql-starter"_ +- RPC endpoint: ระบุ HTTPS URL ไปยัง RPC endpoint ที่ทำงานอยู่ที่จะใช้งานเป็นค่าเริ่มต้นของโปรเจก คุณสามารถเข้าถึง Endpoints สาธารณะได้อย่างรวดเร็วสำหรับเครือข่าย Polkadot ต่างๆหรือแม้แต่สามารถ สร้าง Node เฉพาะส่วนตัวของคุณเองโดยใช้ [OnFinality](https://app.onfinality.io) หรือเพียงแค่ใช้ Polkadot endpoints ที่เป็นค่าเริ่มต้น RPC node นี้ต้องเป็น archive node (มีสถานะ full chain state) สำหรับคู่มือนี้เราจะใช้ค่าเริ่มต้นคือ _"https://polkadot.api.onfinality.io"_ - Git repository: ระบุ Git URL ไปยัง repo ที่จะโฮสต์โปรเจ็กต์ SubQuery นี้ (เมื่อโฮสต์ใน SubQuery Explorer) หรือยอมรับค่าเริ่มต้นที่ให้ไว้ - ผู้เขียน: ใส่ชื่อของเจ้าของโปรเจกต์ที่นี้ (เช่น ชื่อของคุณ) หรือใช้ค่าเดิม - คำอธิบาย: เป็นคำอธิบายสั้นๆของโปรเจกต์เกี่ยวกับข้อมูลด้านใน และ ผู้ใช้งานทั่วไปสามารถใช้อะไรได้บ้าง หรือ ตั้งไว้ค่าเดิม @@ -57,8 +57,8 @@ subql init สุดท้าย ภายใต้ไดเร็กทอรีโครงการ ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งการพึ่งพาของโปรเจ็กต์ใหม่ - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## การเปลี่ยนแปลงโครงการของคุณ @@ -88,8 +88,8 @@ type Transfer @entity { **สำคัญ: เมื่อคุณได้ทำการเปลี่ยนแปลงใดๆกับไฟล์ Schema โปรดตรวจสอบให้มั่นใจว่าคุณสามารถนำชนิดของ Directory กลับมาใหม่ได้** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: คุณจะพบโมเดลที่สร้างขึ้นใน `/src/types/models` directory. สำหรับข้อมูลเพิ่มเติมภายใน `schema.graphql` ไฟล์, โปรดตรวจสอบได้ที่ เอกสารของเราภายใต้ [Build/GraphQL Schema](../build/graphql.md) @@ -133,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { - // Get data from the event - // The balances.transfer event has the following payload \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Create the new transfer entity - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Get data from the event + // The balances.transfer event has the following payload \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Create the new transfer entity + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -160,7 +160,7 @@ export async function handleEvent(event: SubstrateEvent): Promise { ในการรันโปรเจกต์ SubQuery ใหม่ของคุณ จะมีสิ่งที่ต้องเตรียมการก่อน ทำการ Run คำสั่งเริ่มต้นจาก Project's root directory - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you will need to rebuild your project** @@ -174,7 +174,7 @@ Whenever you create a new SubQuery Project, you should always run it locally on ให้รันคำสั่งต่อไปนี้ ภายใต้ไดเรกทอรีของโปรเจกต์: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: อาจจะใช้เวลาสักครู่ในการดาวน์โหลดแพ็คเกจที่จำเป็นสำหรับครั้งแรก ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) แต่ในไม่ช้า คุณจะเห็น SubQuery node ที่ทำงานอยู่ในหน้าจอ @@ -189,10 +189,7 @@ Whenever you create a new SubQuery Project, you should always run it locally on ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount diff --git a/docs/th/quickstart/quickstart-terra.md b/docs/th/quickstart/quickstart-terra.md index a48686ede68..076243bd7bd 100644 --- a/docs/th/quickstart/quickstart-terra.md +++ b/docs/th/quickstart/quickstart-terra.md @@ -59,8 +59,8 @@ subql init สุดท้ายแล้วภายใต้โปรเจกต์ไดเร็กทอรี ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งการพึ่งพาของโปรเจกต์ใหม่ - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## ทำการเปลี่ยนแปลงโปรเจกต์ของคุณ @@ -91,8 +91,8 @@ type Transfer @entity { **สำคัญ: เมื่อคุณได้ทำการเปลี่ยนแปลงใดๆกับไฟล์ schema โปรดตรวจสอบให้มั่นใจว่าคุณสามารถนำชนิดของ directory กลับมาใหม่ได้ ทำแบบนี้เลย** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: คุณจะเจอรูปแบบที่สร้างขึ้นภายใน `/src/types/models` directory. สำหรับข้อมูลเพิ่มเติมภายใน `schema.graphql` ไฟล์, โปรดตรวจสอบได้ที่ เอกสารของเราภายใต้ [Build/GraphQL Schema](../build/graphql.md) @@ -143,30 +143,30 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Print debugging data from the event - // logger.info(JSON.stringify(event)); - - // Create the new transfer entity with a unique ID - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Print debugging data from the event + // logger.info(JSON.stringify(event)); + + // Create the new transfer entity with a unique ID + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` @@ -178,7 +178,7 @@ export async function handleEvent( ในการรันโปรเจกต์ SubQuery ใหม่ของคุณ เราต้องสร้างงานของเราก่อน ทำการ Run คำสั่งเริ่มต้นจาก project's root directory - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **สำคัญ เมื่อไรก็ตามที่มีการเปลี่ยนแปลงใน Mapping Functions คุณจำเป็นต้องสร้างโปรเจคของคุณใหม่** @@ -192,9 +192,9 @@ export async function handleEvent( ภายใต้ poject directory ให้รันคำสั่งต่อไปนี้ - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: -อาจใช้เวลาสักครู่ในการดาวน์โหลดแพ็คเกจที่จำเป็นสำหรับครั้งแรก ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) แต่ในไม่ช้า คุณจะเห็น SubQuery node ที่ทำงานอยู่ อดทนไว้ +อาจใช้เวลาสักครู่ในการดาวน์โหลดแพ็คเกจที่จำเป็นสำหรับครั้งแรก ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) แต่ในไม่ช้า คุณจะเห็น SubQuery node ที่ทำงานอยู่ อดทนไว้ ### Query โปรเจกต์ของคุณ @@ -207,10 +207,7 @@ export async function handleEvent( ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash diff --git a/docs/th/quickstart/quickstart.md b/docs/th/quickstart/quickstart.md index 186127798fd..ccbe0d3a493 100644 --- a/docs/th/quickstart/quickstart.md +++ b/docs/th/quickstart/quickstart.md @@ -89,8 +89,8 @@ After you complete the initialisation process, you will see a folder with your p Finally, run the following command to install the new project’s dependencies from within the new project's directory. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ตอนนี้คุณได้เริ่มต้นโปรเจคแรกของ SubQuery ด้วยขั้นตอนง่ายไม่กี่ขั้นตอน Let’s now customise the standard template project for a specific blockchain of interest. @@ -104,4 +104,4 @@ You may want to refer to the [command line arguments](../run_publish/references. 2. The Project Manifest in `project.yaml`. 3. The Mapping functions in `src/mappings/` directory. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/th/run_publish/connect.md b/docs/th/run_publish/connect.md index bd7e298b34d..4af62489dc4 100644 --- a/docs/th/run_publish/connect.md +++ b/docs/th/run_publish/connect.md @@ -2,10 +2,10 @@ Once your deployment has succesfully completed and our nodes have indexed your data from the chain, you'll be able to connect to your project via the displayed Query endpoint. -![โปรเจกต์ที่กำลัง deploy และ sync](/assets/img/projects-deploy-sync.png) +![โปรเจกต์ที่กำลัง deploy และ sync](/assets/img/projects_deploy_sync.png) หรือคุณสามารถคลิกที่จุดสามจุดถัดจากชื่อโปรเจกต์ของคุณ และดูบน SubQuery Explorer There you can use the in browser playground to get started. -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/th/run_publish/query.md b/docs/th/run_publish/query.md index 981bdc49199..d2cac6c1e1f 100644 --- a/docs/th/run_publish/query.md +++ b/docs/th/run_publish/query.md @@ -12,4 +12,4 @@ SubQuery explorer ทำให้การเริ่มต้นใช้ง On the top right of the playground, you'll find a _Docs_ button that will open a documentation draw. เอกสารนี้สร้างขึ้นโดยอัตโนมัติและช่วยให้คุณค้นหา entities และ methods ที่คุณสามารถค้นหาได้ -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/th/run_publish/references.md b/docs/th/run_publish/references.md index 4333816f9ec..fecea9ce5ee 100644 --- a/docs/th/run_publish/references.md +++ b/docs/th/run_publish/references.md @@ -21,10 +21,10 @@ COMMANDS This command is uses webpack to generate a bundle of a subquery project. -| Options | คำอธิบาย | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | local folder of subquery project (if not in folder already) | -| -o, --output | specify output folder of build e.g. build-folder | +| Options | คำอธิบาย | +| ------------------ | ----------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | local folder of subquery project (if not in folder already) | +| -o, --output | specify output folder of build e.g. build-folder | | --mode=(production | prod | development | dev) | [ default: production ] | - With `subql build` you can specify additional entry points in exports field although it will always build `index.ts` automatically. @@ -106,7 +106,7 @@ This displays the current version. ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -346,7 +346,7 @@ This will move block fetching and processing into a worker. By default, this fea It is at an early experimental stage at the moment, but we plan to enable it by default. ::: -::: info Note +::: tip Note This feature is available for Substrate and Cosmos, and soon will be integrated for Avalanche. ::: diff --git a/docs/th/run_publish/run.md b/docs/th/run_publish/run.md index 817bf63729a..5f55fcb5860 100644 --- a/docs/th/run_publish/run.md +++ b/docs/th/run_publish/run.md @@ -4,7 +4,7 @@ This guide works through how to run a local SubQuery node on your infrastructure ## การใช้งานรวมกับ Docker -An alternative solution is to run a Docker Container, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. +An alternative solution is to run a **Docker Container**, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. ภายใต้ Project Directory สามารถรันคำสั่งเหล่านี้ @@ -12,7 +12,7 @@ An alternative solution is to run a Docker Container, defined b docker-compose pull && docker-compose up ``` -::: info Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: +::: tip Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: ## Running an Indexer (subql/node) @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### การติดตั้ง - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: เมื่อติดตั้งแล้ว สามารถเริ่มรันโหนดด้วยคำสั่งเหล่านี้: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### ชี้ไปที่ local path ของโปรเจ็คต์ - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ Depending on the configuration of your Postgres database (e.g. a different datab #### Specify a configuration file - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ When the indexer first indexes the chain, fetching single blocks will significan #### รันในโหมด Local - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Switching to local model will create Postgres tables in the default schema `public`. diff --git a/docs/th/run_publish/subscription.md b/docs/th/run_publish/subscription.md index 6648f08262b..7b08aefef46 100644 --- a/docs/th/run_publish/subscription.md +++ b/docs/th/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery ยังรองรับ Graphql Subscriptions อีกด้วย การสมัครสมาชิกมีประโยชน์มากเมื่อคุณต้องการให้ client application ของคุณเปลี่ยนแปลงข้อมูลหรือแสดงข้อมูลใหม่บางอย่างทันทีที่การเปลี่ยนแปลงนั้นเกิดขึ้นหรือมีข้อมูลใหม่ Subscriptions allow you to _subscribe_ to your SubQuery project for changes. -::: info Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: +::: tip Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: ## วิธีการสมัครสมาชิกให้กับ Entity diff --git a/docs/th/run_publish/upgrade.md b/docs/th/run_publish/upgrade.md index 6478f2dc6d3..b2b299d6c89 100644 --- a/docs/th/run_publish/upgrade.md +++ b/docs/th/run_publish/upgrade.md @@ -77,10 +77,10 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n เมื่อการ deploy ของคุณเสร็จสมบูรณ์ และ โหนดของเราได้ทำจัดทำดัชนีข้อมูลของคุณจาก chain แล้ว คุณจะสามารถเชื่อมต่อกับโปรเจกต์ผ่าน GraphQL Query endpoint ที่ปรากฎขึ้นมา -![โปรเจกต์ที่กำลัง deploy และ sync](/assets/img/projects-deploy-sync.png) +![โปรเจกต์ที่กำลัง deploy และ sync](/assets/img/projects_deploy_sync.png) หรือคุณสามารถคลิกที่จุดสามจุดถัดจากชื่อโปรเจกต์ของคุณ และดูบน SubQuery Explorer There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/th/subquery_network/introduction.md b/docs/th/subquery_network/introduction.md index 79d032ea802..a091ee53465 100644 --- a/docs/th/subquery_network/introduction.md +++ b/docs/th/subquery_network/introduction.md @@ -18,22 +18,22 @@ There’s a role for everyone in the network, from highly technical developers t Consumers will ask the SubQuery Network for specific data for their dApps or tools, and pay an advertised amount of SQT for each request. -::: info Note Learn more about [Consumers](./consumers.md). ::: +::: tip Note Learn more about [Consumers](./consumers.md). ::: ### Indexers Indexers will run and maintain high quality SubQuery projects in their own infrastructure, running both the indexer and query service, and will be rewarded in SQT for the requests that they serve. -::: info Note Learn more about [Indexers](./indexers.md). ::: +::: tip Note Learn more about [Indexers](./indexers.md). ::: ### Delegators Delegators will participate in the Network by supporting their favourite Indexers to earn rewards based on the work those indexers do. -::: info Note Learn more about [Delegators](./delegators.md). ::: +::: tip Note Learn more about [Delegators](./delegators.md). ::: ### Architects Architects are the builders of the SubQuery projects that the Network runs on. They author and publish SubQuery projects for the Network to index and run. -::: info Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: +::: tip Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: diff --git a/docs/tr/README.md b/docs/tr/README.md index 78e29ddbe9f..b916abd0fd7 100644 --- a/docs/tr/README.md +++ b/docs/tr/README.md @@ -4,7 +4,7 @@

Build Faster dApps withSubQuery Academy

-

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


+

Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

@@ -12,7 +12,7 @@

Get a Kick-Start With Our Quick Start Guide

-

Build your first SubQuery project in less than 10 mins with simple guided steps. +

Build your first SubQuery project in less than 10 mins with simple guided steps.

Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

@@ -134,8 +134,7 @@
- - + diff --git a/docs/tr/build/graphql.md b/docs/tr/build/graphql.md index 8cb46150bd3..ae9ec1e94af 100644 --- a/docs/tr/build/graphql.md +++ b/docs/tr/build/graphql.md @@ -4,9 +4,10 @@ `schema.graphql` dosyası çeşitli GraphQL şemalarını tanımlar. GraphQL sorgu dilinin çalışma biçimi nedeniyle, şema dosyası temel olarak verilerinizin şeklini SubQuery'den belirler. GraphQL şema dilinde yazma hakkında daha fazla bilgi edinmek için [Schemas and Types](https://graphql.org/learn/schema/#type-language).'a göz atmanızı öneririz. -**Önemli: Şema dosyasında herhangi bir değişiklik yaptığınızda, lütfen aşağıdaki komutla türler dizininizi yeniden <>yarn codegen
** +**Önemli: Şema dosyasında herhangi bir değişiklik yaptığınızda, lütfen aşağıdaki komutla türler dizininizi yeniden `yarn codegen`** ### Varlık + Her varlık gerekli alanlarını < `ID!` türünde `id` olarak tanımlamalıdır. Birincil anahtar olarak kullanılır ve aynı türdeki tüm varlıklar arasında benzersizdir. Varlıktaki null olmayan alanlar `!` ile gösterilir. Lütfen aşağıdaki örneğe bakın: @@ -21,6 +22,7 @@ type Example @entity { ### Desteklenen skalerler ve türler Şu anda akan skalers türlerini destekliyoruz: + - `ID` - `Int` - `String` @@ -36,12 +38,10 @@ type Example @entity { Sorgu performansını artırmak için, yalnızca birincil anahtar olmayan bir alana `@index` ek açıklama uygulayarak bir varlık alanını dizine dizine ekleme. -Ancak, kullanıcıların herhangi bir <@index@index<>/1> nesnesine >0>0<> ek açıklama eklemesine izin vermeyiz. Varsayılan olarak, dizinler otomatik olarak yabancı anahtarlara ve veritabanındaki JSON alanlarına eklenir, ancak yalnızca sorgu hizmeti performansını artırmak için.

+Ancak, kullanıcıların herhangi bir `@index` nesnesine ek açıklama eklemesine izin vermeyiz. Varsayılan olarak, dizinler otomatik olarak yabancı anahtarlara ve veritabanındaki JSON alanlarına eklenir, ancak yalnızca sorgu hizmeti performansını artırmak için. İşte bir örnek. - - ```graphql kullanıcı @entity { yazın id: ID! @@ -50,28 +50,22 @@ kullanıcı @entity { yazın } type Title @entity { - id: ID! + id: ID! name: String! @index(unique:true) } ``` - -Bu kullanıcının adını bildiğimizi varsayarsak, ancak tüm kullanıcıları ayıklamak ve sonra ada göre filtrelemek yerine tam kimlik değerini bilmiyoruz, ad alanının arkasına `@index` ekleyebiliriz. Bu, sorgulamayı çok daha hızlı hale getirir ve ayrıca benzersizliği sağlamak için `unique: true` geçirebiliriz. +Bu kullanıcının adını bildiğimizi varsayarsak, ancak tüm kullanıcıları ayıklamak ve sonra ada göre filtrelemek yerine tam kimlik değerini bilmiyoruz, ad alanının arkasına `@index` ekleyebiliriz. Bu, sorgulamayı çok daha hızlı hale getirir ve ayrıca benzersizliği sağlamak için `unique: true` geçirebiliriz. **Bir alan benzersiz değilse, en büyük sonuç kümesi boyutu 100'dür** When code generation is run, this will automatically create a `getByName` under the `User` model, and the foreign key field `title` will create a `getByTitleId` method, which both can directly be accessed in the mapping function. - - ```sql /* Başlık varlığı için kayıt hazırlama */ UNVANLARA EKLE (kimlik, ad) DEĞERLER ('id_1', 'Kaptan') ``` - - - ```typescript Eşleme işlevinde işleyici {User} içinden ".. /types/models/User" @@ -84,25 +78,18 @@ const captainTitle = Title.getByName('Kaptan'); const pirateLords = User.getByTitleId(captainTitle.id) bekliyor; Tüm Kaptanların listesi ``` - - - ## Varlık İlişkileri Bir varlığın genellikle diğer varlıklarla iç içe geçmiş ilişkileri vardır. Alan değerini başka bir varlık adına ayarlamak, varsayılan olarak bu iki varlık arasında bire bir ilişki tanımlar. Farklı varlık ilişkileri (bire bir, bire çok ve çok-çok) aşağıdaki örnekler kullanılarak yapılandırılabilir. - - ### BireBir İlişkiler Yalnızca tek bir varlık başka bir varlıkla eşleştirildiğinde bire bir ilişkiler varsayılandır. Örnek: Pasaport yalnızca bir kişiye aittir ve bir kişinin yalnızca bir pasaportu vardır (bu örnekte): - - ```graphql kişi @entity { yazın id: Kimlik! @@ -114,10 +101,7 @@ Passport @entity { yazın } ``` - -veya - - +veya ```graphql kişi @entity { yazın @@ -130,17 +114,12 @@ Passport @entity { yazın } ``` - - - ### Bire Çok ilişkileri Alan türünün birden çok varlık içerdiğini belirtmek için köşeli ayraçları kullanabilirsiniz. Örnek: Bir kişinin birden fazla hesabı olabilir. - - ```graphql kişi @entity { yazın id: Kimlik! @@ -153,17 +132,12 @@ Hesap @varlığı yazın { } ``` - - - ### Çok-Çok ilişkileri Diğer iki varlığı bağlamak için bir eşleme varlığı uygulanarak çok-çok ilişkisi elde edilebilir. Örnek: Her kişi birden çok grubun (PersonGroup) bir parçasıdır ve grupların birden çok farklı kişisi (PersonGroup) vardır. - - ```graphql kişi @entity { yazın id: Kimlik! @@ -182,14 +156,11 @@ Grup @entity { yazın } ``` - Ayrıca, orta varlığın birden çok alanında aynı varlığın bağlantısını oluşturmak mümkündür. Örneğin, bir hesabın birden çok aktarımı olabilir ve her aktarımda bir kaynak ve hedef hesabı vardır. -Bu, Transfer tablosu aracılığıyla iki Hesap (itibaren ve bu) arasında çift yönlü bir ilişki kuracaktır. - - +Bu, Transfer tablosu aracılığıyla iki Hesap (itibaren ve bu) arasında çift yönlü bir ilişki kuracaktır. ```graphql type Account @entity { @@ -205,9 +176,6 @@ type Transfer @entity { } ``` - - - ### Geriye Doğru Aramalar Bir objede bir ilişki için geriye doğru aramayı etkinleştirmek için, alana `@derivedFrom` ekleyin ve başka bir varlığın geriye doğru arama alanının üzerine gelin. @@ -216,8 +184,6 @@ Bu, varlık üzerinde sorgulanabilecek bir sanal alan oluşturur. Bir Hesabı "Kimden" Aktar'a, sentTransfer veya receivedTransfer değerini ilgili alanlardan veya alanlardan türetilmiş olarak ayarlayarak Hesap varlığından erişilebilir. - - ```graphql type Account @entity { id: ID! @@ -234,9 +200,6 @@ type Transfer @entity { } ``` - - - ## JSON türü Yapılandırılmış verileri depolamanın hızlı bir yolu olan verileri JSON türü olarak kaydetmeyi destekliyoruz. Bu verileri sorgulamak için otomatik olarak karşılık gelen JSON arabirimleri oluşturacağız ve varlıkları tanımlamak ve yönetmek için size zaman kazandıracağız. @@ -247,17 +210,13 @@ Kullanıcıların aşağıdaki senaryolarda JSON türünü kullanmalarını öne - Rasgele anahtar/değer kullanıcı tercihlerini kaydetme (burada değer boole, metinsel veya sayısal olabilir ve farklı veri türleri için ayrı sütunlara sahip olmak istemezsiniz) - Şema geçicidir ve sık sık değişir - - ### JSON yönergesi tanımla Varlığa `jsonField` ek açıklaması ekleyerek özelliği JSON türü olarak tanımlayın. Bu, projenizdeki tüm JSON nesneleri için otomatik olarak `types/interfaces.ts` altında arabirimler oluşturur ve bunlara eşleme işlevinizden erişebilirsiniz. Varlığın aksine, jsonField yönerge nesnesi herhangi bir `id` alanı gerektirmez. Bir JSON nesnesi diğer JSON nesneleriyle de iç içe olabilir. - - -````graphql +```graphql type AddressDetail @jsonField { street: String! bölge: String! @@ -269,12 +228,9 @@ type ContactCard @jsonField { } Kullanıcı @entity { yazın - id: Kimlik! + id: Kimlik! kişi: [ContactCard] # JSON nesnelerinin listesini depolayın -```` - - - +``` ### JSON alanlarını sorgulama @@ -282,20 +238,12 @@ JSON türlerini kullanmanın dezavantajı, her metin araması yaptığında tüm Ancak, etki sorgu hizmetimizde hala kabul edilebilir. '0064' içeren bir telefon numarasına sahip ilk 5 kullanıcıyı bulmak için JSON alanındaki GraphQL sorgusunda `contains` işlecinin nasıl kullanılacağına ilişkin bir örnek aşağıda verilmiştir. - - ```graphql #To ilk 5 kullanıcının kendi telefon numaralarının '0064' içerdiğini bulun. -query{ - user( - first: 5, - filter: { - contactCard: { - contains: [{ phone: "0064" }] - } -}){ - nodes{ +query { + user(first: 5, filter: { contactCard: { contains: [{ phone: "0064" }] } }) { + nodes { id contactCard } diff --git a/docs/tr/build/install.md b/docs/tr/build/install.md index d2271769f1d..7ce2ca0782a 100644 --- a/docs/tr/build/install.md +++ b/docs/tr/build/install.md @@ -8,28 +8,30 @@ Bir SubQuery projesi oluştururken gerekli olan bazı bileşenler var. SubQuery Yarn veya NPM kullanarak SubQuery CLI'yi global biçimde terminalinize kurun: - ```bash npm install -g @subql/cli ``` - ```shell yarn global add @subql/cli ``` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` +@tab:active yarn `shell yarn global add @subql/cli ` ::: Ardından, CLI tarafından sağlanan kullanılabilir komutları ve kullanımı görmek için yardımı çalıştırabilirsiniz: ```shell subql help ``` + ## @subql/node'u kurun Bir SubQuery node'u, SubQuery projesindeki alt-tabanlı blok zinciri verilerini çıkaran ve bir Postgres veritabanına kaydeden bir uygulamadır. Yarn veya NPM kullanarak SubQuery node'unu global biçimde terminalinize kurun: - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: Kurulduktan sonra, ile bir düğüm başlatabilirsiniz: ```shell subql-node ``` + > Not: Docker kullanıyorsanız veya projenizi SubQuery Projelerinde barındırıyorsanız, bu adımı atlayabilirsiniz. Bunun nedeni, SubQuery node'unun Docker konteynerında ve barındırma altyapısında zaten sağlanmış olmasıdır. ## @subql/query'yi kurun @@ -38,7 +40,7 @@ SubQuery sorgu kütüphanesi, projenizi tarayıcınız aracılığıyla bir "ça Yarn veya NPM kullanarak SubQuery sorgusunu global biçimde terminalinize kurun: - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> Not: Docker kullanıyorsanız veya projenizi SubQuery Projelerinde barındırıyorsanız, bu adımı atlayabilirsiniz. Bunun nedeni, SubQuery node'unun Docker konteynerında ve barındırma altyapısında zaten sağlanmış olmasıdır. \ No newline at end of file +> Not: Docker kullanıyorsanız veya projenizi SubQuery Projelerinde barındırıyorsanız, bu adımı atlayabilirsiniz. Bunun nedeni, SubQuery node'unun Docker konteynerında ve barındırma altyapısında zaten sağlanmış olmasıdır. diff --git a/docs/tr/build/introduction.md b/docs/tr/build/introduction.md index 8a02773e99b..cdda59a153c 100644 --- a/docs/tr/build/introduction.md +++ b/docs/tr/build/introduction.md @@ -51,8 +51,8 @@ SubQuery Project yerel olarak barındırılan bir SubQuery Node çalıştırmak Yapı komutunu projenin kök dizininden çalıştırın. - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### Alternative build options diff --git a/docs/tr/build/manifest.md b/docs/tr/build/manifest.md index a0e28c06b67..7b8b6414d2e 100644 --- a/docs/tr/build/manifest.md +++ b/docs/tr/build/manifest.md @@ -4,7 +4,7 @@ Manifest `project.yaml` dosyası projenizin giriş noktası olarak görülebilir Bildirim YAML veya JSON biçiminde olabilir. Bu belgede, tüm örneklerde YAML kullanacağız. Aşağıda temel `project.yaml` standart bir örneği verilmiştir. - ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` @tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## Migrating from v0.0.1 to v0.2.0 @@ -81,9 +81,9 @@ Uygulanacak veri dönüşümü için eşleme fonksiyonu işleyicisinin konumunun ### Eşleme Tanımlama -| Field | v0.0.1 | v0.2.0 | Tanım | -| --------------------------- | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **dosya** | String | 𐄂 | Eşleme girdisinin yolu | +| Field | v0.0.1 | v0.2.0 | Tanım | +| --------------------------- | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **dosya** | String | 𐄂 | Eşleme girdisinin yolu | | **işleyiciler & filtreler** | [Varsayılan işleyiciler ve filtreler](./manifest/#eşleme-işleyicileri-ve-filtreleri) | Varsayılan işleyiciler ve filtreler,
[Özel işleyiciler ve filtreler](#custom-data-sources) | Ek eşleme filtreleriyle birlikte tüm [mapping işlevlerini](./mapping/polkadot.md) ve karşılık gelen işleyici türlerini listeleyin.

Özel çalışma zamanları eşleme işleyicileri için lütfen [Özel veri kaynaklarını](#custom-data-sources) görüntüleyin | ## Veri Kaynakları ve Eşleme @@ -104,8 +104,8 @@ Aşağıdaki tabloda, farklı işleyiciler tarafından desteklenen filtreler aç **Yalnızca uygun eşleme filtrelerine sahip olay ve çağrı işleyicilerini kullandığınızda SubQuery projeniz çok daha verimli olacaktır** -| Handler | Desteklenen filtre | -| ------------------------------------------ | ---------------------------- | +| Handler | Desteklenen filtre | +| --------------------------------------------------- | ---------------------------- | | [BlockHandler](./mapping/polkadot.md#block-handler) | `spekversiyon` | | [EventHandler](./mapping/polkadot.md#event-handler) | `module`,`method` | | [CallHandler](./mapping/polkadot.md#call-handler) | `module`,`method` ,`success` | @@ -153,8 +153,8 @@ Substrat çalışma zamanı modülleri tarafından kullanılan ek türleri deste Aşağıdaki v0.2.0 örneğinde, `network.chaintypes` tüm özel türleri içeren bir dosyaya işaret ediyor, bu, bu blok zinciri tarafından desteklenen belirli türleri `.json`, `.yaml` veya `.js` şeklinde belirten standart bir chainspec dosyasıdır. - `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # Özel türlerin depolandığı ilgili dosya yolu ...` - `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # Özel türlerin depolandığı ilgili dosya yolu ...` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: Zincir türleri dosyanızda typescript kullanmak için `src` klasörüne ekleyin (örn. `./src/types.ts`), ` yarn build`’i çalıştırın ve `dist` klasöründe bulunan oluşturulmuş js dosyası seçeneğine gelin. @@ -171,7 +171,7 @@ network: Aşağıda `.ts` zincir türleri dosyasına bir örnek verilmiştir: - `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` ::: ## Özel Veri Kaynakları @@ -197,6 +197,6 @@ Kullanıcılar, her ağda hangi veri kaynağının çalıştırılacağına kara Aşağıda, hem Polkadot hem de Kusama ağları için farklı veri kaynaklarını gösteren bir örnek verilmiştir. - ``yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Fazlalığı önlemek için bir şablon oluşturun definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #şablonu burada kullan - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # yeniden kullanabilir veya değiştirebilir ``` +::: code-tabs @tab v0.0.1 ``yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Fazlalığı önlemek için bir şablon oluşturun definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #şablonu burada kullan - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # yeniden kullanabilir veya değiştirebilir ``` - +::: diff --git a/docs/tr/build/mapping.md b/docs/tr/build/mapping.md index 63ddb47f1ec..49317e543f5 100644 --- a/docs/tr/build/mapping.md +++ b/docs/tr/build/mapping.md @@ -67,9 +67,9 @@ Amacımız, işleyicileri eşlemek için kullanıcılar için tüm veri kaynakla Şu anda desteklediğimiz arayüzler şunlardır: -- [api.query. <module>. <method>()](https://polkadot.js.org/docs/api/start/api.query) current bloğunu sorgular. -- [api.query. <module>. <method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) geçerli blokta same türünde birden çok sorgu yapar. -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) geçerli blokta different türlerinin birden çok sorgusunu yapar. +- [api.query. <module>. <method>()](https://polkadot.js.org/docs/api/start/api.query) **current** bloğunu sorgular. +- [api.query. <module>. <method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) geçerli blokta **same** türünde birden çok sorgu yapar. +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) geçerli blokta **different** türlerinin birden çok sorgusunu yapar. Şu anda desteklediğimiz **NOT** arabirimler şunlardır: diff --git a/docs/tr/build/substrate-evm.md b/docs/tr/build/substrate-evm.md index 2a7d20e43bd..df55502e3d8 100644 --- a/docs/tr/build/substrate-evm.md +++ b/docs/tr/build/substrate-evm.md @@ -74,7 +74,9 @@ Farklı bir işleyici argümanı ve küçük filtreleme değişiklikleri dışı | ---- | ------------ | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | konu | Dizge dizisi | Transfer(adres indekslendi, adres indekslendi, uint256 değeri) | Konular filtresi, Ethereum JSON-PRC günlük filtrelerini takip eder, daha fazla belge [burada](https://docs.ethers.io/v5/concepts/events/) bulunabilir. | -Konularla ilgili not: Temel günlük filtrelerinde birkaç iyileştirme var: +**Konularla ilgili not:** + +Temel günlük filtrelerinde birkaç iyileştirme var: - Konuların 0 dolgulu olması gerekmez - [Etkinlik Parçası](https://docs.ethers.io/v5/api/utils/abi/fragments/#EventFragment) dizeleri sağlanabilir ve otomatik olarak kimliklerine dönüştürülebilir @@ -96,17 +98,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Contract address (or recipient if transfer) to filter, if `null` should be for contract creation - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -121,7 +123,7 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## Bilinen sınırlamalar diff --git a/docs/tr/faqs/faqs.md b/docs/tr/faqs/faqs.md index 4522a3c5f63..c6a6bc0bcce 100644 --- a/docs/tr/faqs/faqs.md +++ b/docs/tr/faqs/faqs.md @@ -16,7 +16,7 @@ SubQuery also provides free, production grade hosting of projects for developers **The SubQuery Network** -The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. +The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. The SubQuery Network indexes and services data to the global community in an incentivised and verifiable way. After publishing your project to the SubQuery Network, anyone can index and host it - providing data to users around the world faster and reliably. More information [here](/subquery_network/introduction.md). @@ -26,7 +26,7 @@ The best way to get started with SubQuery is to try out our [Hello World tutoria ## SubQuery'ye nasıl katkıda bulunabilir veya geri bildirimde bulunabilirim? -Topluluktan gelen katkıları ve geri bildirimleri seviyoruz. To contribute the code, fork the repository of your interest and make your changes. Ardından bir PR veya Çekme İsteği gönderin. Don't forget to test as well. Also check out our contributions guidelines. +Topluluktan gelen katkıları ve geri bildirimleri seviyoruz. To contribute the code, fork the repository of your interest and make your changes. Ardından bir PR veya Çekme İsteği gönderin. Don't forget to test as well. Also check out our [contributions guidelines](../miscellaneous/contributing.html). To give feedback, contact us at hello@subquery.network or jump onto our [discord channel](https://discord.com/invite/78zg8aBSMG). @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Note that it is recommended to use `--force-clean` when changing the `startBlock` within the project manifest (`project.yaml`) in order to begin reindexing from the configured block. If `startBlock` is changed without a `--force-clean` of the project, then the indexer will continue indexing with the previously configured `startBlock`. - ## How can I optimise my project to speed it up? Performance is a crucial factor in each project. Fortunately, there are several things you could do to improve it. Here is the list of some suggestions: @@ -89,13 +88,13 @@ Performance is a crucial factor in each project. Fortunately, there are several - Set the start block to when the contract was initialised. - Always use a [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (we can help create one for your new network). - Optimise your schema design, keep it as simple as possible. - - Try to reduce unnecessary fields and columns. - - Create indexes as needed. + - Try to reduce unnecessary fields and columns. + - Create indexes as needed. - Use parallel/batch processing as often as possible. - - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. - - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. - - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. + - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. + - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. + - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. - Making API calls to query state can be slow. You could try to minimise calls where possible and to use `extrinsic/transaction/event` data. - Use `worker threads` to move block fetching and block processing into its own worker thread. It could speed up indexing by up to 4 times (depending on the particular project). You can easily enable it using the `-workers=` flag. Note that the number of available CPU cores strictly limits the usage of worker threads. For now, it is only available for Substrate and Cosmos and will soon be integrated for Avalanche. - Note that `JSON.stringify` doesn’t support native `BigInts`. Our logging library will do this internally if you attempt to log an object. We are looking at a workaround for this. -- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. \ No newline at end of file +- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. diff --git a/docs/tr/miscellaneous/contributing.md b/docs/tr/miscellaneous/contributing.md index 8f87736f67d..d72bafa334e 100644 --- a/docs/tr/miscellaneous/contributing.md +++ b/docs/tr/miscellaneous/contributing.md @@ -2,7 +2,7 @@ Hoş geldiniz ve bu SubQuery projesine katkıda bulunmayı düşündüğünüz için büyük bir teşekkür ederiz! Birlikte daha merkezi olmayan bir geleceğin yolunu açabiliriz. -::: info Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: +::: tip Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: What follows is a set of guidelines (not rules) for contributing to SubQuery. Following these guidelines will help us make the contribution process easy and effective for everyone involved. It also communicates that you agree to respect the time of the developers managing and developing this project. In return, we will reciprocate that respect by addressing your issue, considering changes, collaborating on improvements, and helping you finalise your pull requests. @@ -14,8 +14,8 @@ We take our open source community projects and responsibility seriously and hold Contributions to our repositories are made through Issues and Pull Requests (PRs). A few general guidelines that cover both: -* Kendi sorunlarınızı oluşturmadan önce mevcut Sorunları ve PRs arayın. -* Sorunların derhal ele alınmasından emin olmak için çok çalışıyoruz, ancak etkiye bağlı olarak, temel nedeni araştırmak biraz zaman alabilir. Yorum başlığındaki bir dost @ bahsetmesi gönderene veya bir katılımcıya sorununuzu engelliyorsa dikkat çekmeye yardımcı olabilir. +- Kendi sorunlarınızı oluşturmadan önce mevcut Sorunları ve PRs arayın. +- Sorunların derhal ele alınmasından emin olmak için çok çalışıyoruz, ancak etkiye bağlı olarak, temel nedeni araştırmak biraz zaman alabilir. Yorum başlığındaki bir dost @ bahsetmesi gönderene veya bir katılımcıya sorununuzu engelliyorsa dikkat çekmeye yardımcı olabilir. ## Nasıl Katkıda Bulunulur @@ -23,32 +23,32 @@ Contributions to our repositories are made through Issues and Pull Requests (PRs Bugs are tracked as GitHub issues. When logging an issue, explain the problem and include additional details to help maintainers reproduce the problem: -* Sorunu tanımlamak için sorun için açık ve açıklayıcı bir başlık kullanın. -* Sorunu yeniden oluşturmak için tam adımları açıklayın. -* Adımları takip ettikten sonra gözlemlediğiniz davranışı açıklayın. -* Bunun yerine hangi davranışı görmeyi beklediğinizi ve nedenini açıklayın. -* Mümkünse ekran görüntülerini ekleyin. +- Sorunu tanımlamak için sorun için açık ve açıklayıcı bir başlık kullanın. +- Sorunu yeniden oluşturmak için tam adımları açıklayın. +- Adımları takip ettikten sonra gözlemlediğiniz davranışı açıklayın. +- Bunun yerine hangi davranışı görmeyi beklediğinizi ve nedenini açıklayın. +- Mümkünse ekran görüntülerini ekleyin. ### Çekme İstekleri Gönderme In general, we follow the "fork-and-pull" Git workflow: -* Fork the repository to your own Github account. -* Clone the project to your machine. -* Create a branch locally with a succinct but descriptive name. -* Commit changes to the branch. -* Following any formatting and testing guidelines specific to this repo. -* Push changes to your fork. -* Open a PR in our repository. +- Fork the repository to your own Github account. +- Clone the project to your machine. +- Create a branch locally with a succinct but descriptive name. +- Commit changes to the branch. +- Following any formatting and testing guidelines specific to this repo. +- Push changes to your fork. +- Open a PR in our repository. ## Kodlama Kuralları ### Git İletileri Kaydet -* Use the present tense ("Add feature" not "Added feature"). -* Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). -* Limit the first line to 72 characters or less. +- Use the present tense ("Add feature" not "Added feature"). +- Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). +- Limit the first line to 72 characters or less. ### JavaScript Stil Kılavuzu -* All JavaScript code is linted with Prettier and ESLint. +- All JavaScript code is linted with Prettier and ESLint. diff --git a/docs/tr/quickstart/helloworld-localhost.md b/docs/tr/quickstart/helloworld-localhost.md index 3622c23cc60..9b486576baa 100644 --- a/docs/tr/quickstart/helloworld-localhost.md +++ b/docs/tr/quickstart/helloworld-localhost.md @@ -88,7 +88,7 @@ cd subqlHelloWorld Şimdi çeşitli bağımlılıkları yüklemek için bir iplik veya düğüm yüklemesi yapın. - ```shell yarn install ``` ```bash npm install ``` +::: code-tabs @tab:active yarn `shell yarn install ` @tab npm `bash npm install ` ::: Bir örnek `yarn install` @@ -108,7 +108,7 @@ başarı Kilit dosyası kaydedildi. Şimdi GraphQL şemasından Typescript oluşturmak için `yarn codegen` çalıştırın. - ```shell yarn codegen ``` ```bash npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` @tab npm `bash npm run-script codegen ` ::: Bir örnek`yarn codegen` @@ -131,7 +131,7 @@ $ ./node_modules/.bin/subql codegen Bir sonraki adım, kodu `yarn build` ile oluşturmaktır. - ```shell yarn build ``` ```bash npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `bash npm run-script build ` ::: Bir örnek `yarn build` diff --git a/docs/tr/quickstart/quickstart-avalanche.md b/docs/tr/quickstart/quickstart-avalanche.md index b741bf26894..e53aa3bc132 100644 --- a/docs/tr/quickstart/quickstart-avalanche.md +++ b/docs/tr/quickstart/quickstart-avalanche.md @@ -59,8 +59,8 @@ Başlatma işlemi tamamlandıktan sonra, dizin içinde proje adınızın oluştu Son olarak, proje dizini altında, yeni projenin bağımlılıklarını yüklemek için aşağıdaki komutu çalıştırın. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -92,8 +92,8 @@ type PangolinApproval @entity { **Önemli: Şema dosyasında herhangi bir değişiklik yaptığınızda, lütfen türler dizininizi yeniden oluşturduğunuzdan emin olun. Bunu şimdi yap.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. `schema.graphql` dosyası hakkında daha fazla bilgi için, [Build/GraphQL Schema](../build/graphql.md) altındaki belgelerimize bakın @@ -169,7 +169,7 @@ Eşleme işlevleri hakkında daha fazla bilgi için [Derleme/Eşlemeler](../buil Yeni SubQuery Projenizi çalıştırmak için önce çalışmamızı oluşturmamız gerekiyor. Yapı komutunu projenin kök dizininden çalıştırın. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -183,7 +183,7 @@ Bir SubQuery düğümünün nasıl çalıştırıldığını kontrol eden tüm y Proje dizini altında aşağıdaki komutu çalıştırın: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Burada sabırlı olun. @@ -197,7 +197,7 @@ Yeni bir SubQuery başlangıç projesi için, nasıl çalıştığını öğrenm ```graphql query { - pangolinApprovals(first: 5) { + pangolinApprovals(first: 5) { nodes { id blockNumber diff --git a/docs/tr/quickstart/quickstart-cosmos.md b/docs/tr/quickstart/quickstart-cosmos.md index 799d55024b3..d4141f3a6e0 100644 --- a/docs/tr/quickstart/quickstart-cosmos.md +++ b/docs/tr/quickstart/quickstart-cosmos.md @@ -44,8 +44,8 @@ Başlatma işlemi tamamlandıktan sonra, dizin içinde proje adınızın oluştu Son olarak, proje dizini altında, yeni projenin bağımlılıklarını yüklemek için aşağıdaki komutu çalıştırın. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -75,8 +75,8 @@ type Vote @entity { **Önemli: Şema dosyasında herhangi bir değişiklik yaptığınızda, lütfen türler dizininizi yeniden oluşturduğunuzdan emin olun. Bunu şimdi yap.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. `schema.graphql` dosyası hakkında daha fazla bilgi için, [Build/GraphQL Schema](../build/graphql.md) altındaki belgelerimize bakın @@ -145,7 +145,7 @@ Eşleme işlevleri hakkında daha fazla bilgi için [Derleme/Eşlemeler](../buil Yeni SubQuery Projenizi çalıştırmak için önce çalışmamızı oluşturmamız gerekiyor. Yapı komutunu projenin kök dizininden çalıştırın. - ```shell npm run-script build ``` +::: code-tabs @tab yarn `yarn build ` @tab npm `npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -159,7 +159,7 @@ Bir SubQuery düğümünün nasıl çalıştırıldığını kontrol eden tüm y Proje dizini altında aşağıdaki komutu çalıştırın: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Burada sabırlı olun. @@ -173,10 +173,9 @@ Yeni bir SubQuery başlangıç projesi için, nasıl çalıştığını öğrenm ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id diff --git a/docs/tr/quickstart/quickstart-polkadot.md b/docs/tr/quickstart/quickstart-polkadot.md index 4b1528b4973..f8fe6e0fe37 100644 --- a/docs/tr/quickstart/quickstart-polkadot.md +++ b/docs/tr/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql init SubQuery projesi initalised olarak size bazı sorular sorulana olacaktır: - Proje adı: SubQuery projeniz için bir proje adı -- Ağ ailesi: Bu SubQuery projesinin dizine eklemek için geliştirileceği katman-1 blok zinciri ağ ailesi. Mevcut seçenekler arasından seçim yapmak için ok tuşlarını kullanın. Bu kılavuz için *"Substrate"* kullanacağız -- Ağ: Bu SubQuery projesinin dizine eklemek için geliştirileceği belirli ağ. Mevcut seçenekler arasından seçim yapmak için ok tuşlarını kullanın. Bu kılavuz için *"Polkadot"* kullanacağız -- Şablon: Geliştirmeye başlamak için bir başlangıç ​​noktası sağlayacak bir SubQuery proje şablonu seçin. *"subql-starter"* projesini seçmenizi öneririz. -- RPC uç noktası: Bu proje için varsayılan olarak kullanılacak çalışan bir RPC uç noktasına wss URL'si sağlayın. Farklı Polkadot ağları için genel uç noktalara hızlı bir şekilde erişebilir veya hatta [OnFinality](https://app.onfinality.io) kullanarak kendi özel özel düğümünüzü oluşturabilir veya yalnızca varsayılan Polkadot uç noktasını kullanabilirsiniz. Bu RPC düğümü bir arşiv düğümü olmalıdır (tam zincir durumuna sahip). Bu kılavuz için *"https://polkadot.api.onfinality.io"* varsayılan değerini kullanacağız +- Ağ ailesi: Bu SubQuery projesinin dizine eklemek için geliştirileceği katman-1 blok zinciri ağ ailesi. Mevcut seçenekler arasından seçim yapmak için ok tuşlarını kullanın. Bu kılavuz için _"Substrate"_ kullanacağız +- Ağ: Bu SubQuery projesinin dizine eklemek için geliştirileceği belirli ağ. Mevcut seçenekler arasından seçim yapmak için ok tuşlarını kullanın. Bu kılavuz için _"Polkadot"_ kullanacağız +- Şablon: Geliştirmeye başlamak için bir başlangıç ​​noktası sağlayacak bir SubQuery proje şablonu seçin. _"subql-starter"_ projesini seçmenizi öneririz. +- RPC uç noktası: Bu proje için varsayılan olarak kullanılacak çalışan bir RPC uç noktasına wss URL'si sağlayın. Farklı Polkadot ağları için genel uç noktalara hızlı bir şekilde erişebilir veya hatta [OnFinality](https://app.onfinality.io) kullanarak kendi özel özel düğümünüzü oluşturabilir veya yalnızca varsayılan Polkadot uç noktasını kullanabilirsiniz. Bu RPC düğümü bir arşiv düğümü olmalıdır (tam zincir durumuna sahip). Bu kılavuz için _"https://polkadot.api.onfinality.io"_ varsayılan değerini kullanacağız - Git deposu: Bu SubQuery projesinin barındırılacağı bir depoya Git URL'si sağlayın (SubQuery Gezgini'nde barındırıldığında). - Yazarlar: Bu SubQuery projesinin sahibini buraya girin (örneğin adınız!) veya sağlanan varsayılanı kabul edin. - Açıklama: Projeniz hakkında hangi verileri içerdiğini ve kullanıcıların bunlarla neler yapabileceğini açıklayan kısa bir paragraf sağlayın veya sağlanan varsayılanı kabul edin. @@ -57,16 +57,16 @@ Başlatma işlemi tamamlandıktan sonra, dizin içinde proje adınızın oluştu Son olarak, proje dizini altında, yeni projenin bağımlılıklarını yüklemek için aşağıdaki komutu çalıştırın. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project In the starter package that was just initialised, a standard configuration has been provided. Bunlar: -`schema.graphql içindeki
  • GraphQL Şeması`
  • -2. `project.yaml` içindeki Proje Manifestosu -3. `src/mappings/` dizinindeki Eşleme işlevleri +- `schema.graphql içindeki` GraphQL Şeması` +- `project.yaml` içindeki Proje Manifestosu +- `src/mappings/` dizinindeki Eşleme işlevleri Bu hızlı başlangıç ​​kılavuzunun amacı, standart başlangıç ​​projesini Polkadot'tan tüm transferleri indekslemeye başlayacak şekilde uyarlamaktır, sadece - dakika sürmelidir. @@ -88,8 +88,8 @@ type Transfer @entity { **Önemli: Şema dosyasında herhangi bir değişiklik yaptığınızda, lütfen türler dizininizi yeniden oluşturduğunuzdan emin olun.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. `schema.graphql` dosyası hakkında daha fazla bilgi için, [Build/GraphQL Schema](../build/graphql.md) altındaki belgelerimize bakın @@ -133,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { - // Get data from the event - // The balances.transfer event has the following payload \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Create the new transfer entity - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Get data from the event + // The balances.transfer event has the following payload \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Create the new transfer entity + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -160,7 +160,7 @@ Eşleme işlevleri hakkında daha fazla bilgi için [Derleme/Eşlemeler](../buil Yeni SubQuery Projenizi çalıştırmak için önce çalışmamızı oluşturmamız gerekiyor. Yapı komutunu projenin kök dizininden çalıştırın. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab yarn `yarn build ` @tab npm `npm run-script build ` ::: **Important: Whenever you make changes to your mapping functions, you will need to rebuild your project** @@ -174,7 +174,7 @@ Bir SubQuery düğümünün nasıl çalıştırıldığını kontrol eden tüm y Proje dizininin altında aşağıdaki komutu çalıştırın: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you should see a running SubQuery node in the terminal screen. @@ -189,10 +189,7 @@ Yeni bir SubQuery başlangıç ​​projesi için, nasıl çalıştığını an ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount diff --git a/docs/tr/quickstart/quickstart-terra.md b/docs/tr/quickstart/quickstart-terra.md index 53b25ca8688..504cff34802 100644 --- a/docs/tr/quickstart/quickstart-terra.md +++ b/docs/tr/quickstart/quickstart-terra.md @@ -45,11 +45,11 @@ subql init SubQuery projesi initalised olarak size bazı sorular sorulana olacaktır: - Project Name: A name for your SubQuery project -- Ağ Ailesi: Bu SubQuery projesinin dizine eklemek için geliştirileceği katman-1 blok zinciri ağ ailesi, seçenekler arasından seçim yapmak için klavyenizdeki ok tuşlarını kullanın, bu kılavuz için *"Terra"* kullanacağız -- Ağ: Bu SubQuery projesinin dizine eklemek için geliştirileceği belirli ağ, seçenekler arasından seçim yapmak için klavyenizdeki ok tuşlarını kullanın, bu kılavuz için *"Terra"* kullanacağız -- Şablon: Geliştirmeye başlamak için bir başlangıç ​​noktası sağlayacak bir SubQuery proje şablonu seçin, *"Başlangıç ​​projesi"* öğesini seçmenizi öneririz +- Ağ Ailesi: Bu SubQuery projesinin dizine eklemek için geliştirileceği katman-1 blok zinciri ağ ailesi, seçenekler arasından seçim yapmak için klavyenizdeki ok tuşlarını kullanın, bu kılavuz için _"Terra"_ kullanacağız +- Ağ: Bu SubQuery projesinin dizine eklemek için geliştirileceği belirli ağ, seçenekler arasından seçim yapmak için klavyenizdeki ok tuşlarını kullanın, bu kılavuz için _"Terra"_ kullanacağız +- Şablon: Geliştirmeye başlamak için bir başlangıç ​​noktası sağlayacak bir SubQuery proje şablonu seçin, _"Başlangıç ​​projesi"_ öğesini seçmenizi öneririz - Git deposu (İsteğe Bağlı): Bu SubQuery projesinin barındırılacağı bir depoya Git URL'si sağlayın (SubQuery Gezgini'nde barındırıldığında) -- RPC uç noktası (Gerekli): Bu proje için varsayılan olarak kullanılacak çalışan bir RPC uç noktasına wss URL'si sağlayın. Bu RPC düğümü bir arşiv düğümü olmalıdır (tam zincir durumuna sahip). Bu kılavuz için *"https://terra-columbus-5.beta.api.onfinality.io"* varsayılan değerini kullanacağız +- RPC uç noktası (Gerekli): Bu proje için varsayılan olarak kullanılacak çalışan bir RPC uç noktasına wss URL'si sağlayın. Bu RPC düğümü bir arşiv düğümü olmalıdır (tam zincir durumuna sahip). Bu kılavuz için _"https://terra-columbus-5.beta.api.onfinality.io"_ varsayılan değerini kullanacağız - Yazarlar (Zorunlu): Bu SubQuery projesinin sahibini buraya girin (örn. adınız!) - Açıklama (İsteğe Bağlı): Projeniz hakkında hangi verileri içerdiğini ve kullanıcıların bu verilerle neler yapabileceğini açıklayan kısa bir paragraf sağlayabilirsiniz - Sürüm (Gerekli): Özel bir sürüm numarası girin veya varsayılanı kullanın (`1.0.0`) @@ -59,8 +59,8 @@ Başlatma işlemi tamamlandıktan sonra, dizin içinde proje adınızın oluştu Son olarak, proje dizini altında, yeni projenin bağımlılıklarını yüklemek için aşağıdaki komutu çalıştırın. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Making Changes to your Project @@ -91,8 +91,8 @@ type Transfer @entity { **Önemli: Şema dosyasında herhangi bir değişiklik yaptığınızda, lütfen türler dizininizi yeniden oluşturduğunuzdan emin olun. Bunu şimdi yap.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. `schema.graphql` dosyası hakkında daha fazla bilgi için, [Build/GraphQL Schema](../build/graphql.md) altındaki belgelerimize bakın @@ -143,30 +143,30 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Print debugging data from the event - // logger.info(JSON.stringify(event)); - - // Create the new transfer entity with a unique ID - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Print debugging data from the event + // logger.info(JSON.stringify(event)); + + // Create the new transfer entity with a unique ID + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` @@ -178,7 +178,16 @@ Eşleme işlevleri hakkında daha fazla bilgi için [Derleme/Eşlemeler](../buil Yeni SubQuery Projenizi çalıştırmak için önce çalışmamızı oluşturmamız gerekiyor. Yapı komutunu projenin kök dizininden çalıştırın. - ```shell npm run-script build ``` +::: code-tabs +@ tabl yarn + +`yarn build ` + +@tab npm + +`npm run-script build ` + +::: **Important: Whenever you make changes to your mapping functions, you'll need to rebuild your project** @@ -192,7 +201,7 @@ Bir SubQuery düğümünün nasıl çalıştırıldığını kontrol eden tüm y Proje dizini altında aşağıdaki komutu çalıştırın: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. Burada sabırlı olun. @@ -207,10 +216,7 @@ Yeni bir SubQuery başlangıç projesi için, nasıl çalıştığını öğrenm ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash diff --git a/docs/tr/quickstart/quickstart.md b/docs/tr/quickstart/quickstart.md index 09044919acb..147f8be4b5b 100644 --- a/docs/tr/quickstart/quickstart.md +++ b/docs/tr/quickstart/quickstart.md @@ -89,8 +89,8 @@ After you complete the initialisation process, you will see a folder with your p Finally, run the following command to install the new project’s dependencies from within the new project's directory. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: You have now initialised your first SubQuery project with just a few simple steps. Let’s now customise the standard template project for a specific blockchain of interest. @@ -104,4 +104,4 @@ There are 3 important files that need to be modified. These are: 2. The Project Manifest in `project.yaml`. 3. The Mapping functions in `src/mappings/` directory. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/tr/run_publish/connect.md b/docs/tr/run_publish/connect.md index 9b1a1e389ac..4d0c7cd3e58 100644 --- a/docs/tr/run_publish/connect.md +++ b/docs/tr/run_publish/connect.md @@ -2,10 +2,10 @@ Once your deployment has succesfully completed and our nodes have indexed your data from the chain, you'll be able to connect to your project via the displayed Query endpoint. -![Projenize yeni sürümü dağıtın](/assets/img/projects-deploy-sync.png) +![Projenize yeni sürümü dağıtın](/assets/img/projects_deploy_sync.png) Alternatif olarak, projenizin başlığının yanında bulunan üç noktaya tıklayabilir ve onu SubQuery Explorer'da görüntüleyebilirsiniz. There you can use the in browser playground to get started. -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/tr/run_publish/historical.md b/docs/tr/run_publish/historical.md index 3fde9d27938..e3d9cd940ea 100644 --- a/docs/tr/run_publish/historical.md +++ b/docs/tr/run_publish/historical.md @@ -28,7 +28,7 @@ Kısacası, herhangi bir SubQuery varlığı oluşturduğunuzda, güncellediğin ## Bunu Etkinleştirme -Bu özellik, en az `@subql/node@1.1.1 ve @subql/query1.1.0` ile başlayan tüm yeni projeler için varsayılan olarak etkinleştirilmiştir. Mevcut projenize eklemek istiyorsanız, `@subql/node` ve `@subql/query'i` güncelleyin ve ardından projenizi temiz bir veritabanıyla yeniden indeksleyin. +Bu özellik, en az `@subql/node@1.1.1` ve `@subql/query1.1.0` ile başlayan tüm yeni projeler için varsayılan olarak etkinleştirilmiştir. Mevcut projenize eklemek istiyorsanız, `@subql/node` ve `@subql/query'i` güncelleyin ve ardından projenizi temiz bir veritabanıyla yeniden indeksleyin. Bu özelliği herhangi bir nedenle devre dışı bırakmak isterseniz, `subql-node'da` `--disable-historical=true` parametresini ayarlayabilirsiniz. diff --git a/docs/tr/run_publish/query.md b/docs/tr/run_publish/query.md index 3ee118cf9b7..1cc28716f17 100644 --- a/docs/tr/run_publish/query.md +++ b/docs/tr/run_publish/query.md @@ -12,4 +12,4 @@ Ayrıca, SubQuery Explorer'ın örnek sorgularla mevcut verileri keşfetmek içi On the top right of the playground, you'll find a _Docs_ button that will open a documentation draw. Bu dokümantasyonlar otomatik olarak oluşturulur ve hangi varlıkları ve yöntemleri sorgulayabileceğinizi bulmanıza yardımcı olur. -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/tr/run_publish/references.md b/docs/tr/run_publish/references.md index b1a83c93976..0458ac5d402 100644 --- a/docs/tr/run_publish/references.md +++ b/docs/tr/run_publish/references.md @@ -21,10 +21,10 @@ COMMANDS This command is uses webpack to generate a bundle of a subquery project. -| Options | Tarif | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | local folder of subquery project (if not in folder already) | -| -o, --output | specify output folder of build e.g. build-folder | +| Options | Tarif | +| ------------------ | ----------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | local folder of subquery project (if not in folder already) | +| -o, --output | specify output folder of build e.g. build-folder | | --mode=(production | prod | development | dev) | [ default: production ] | - With `subql build` you can specify additional entry points in exports field although it will always build `index.ts` automatically. @@ -106,7 +106,7 @@ This displays the current version. ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -346,7 +346,7 @@ This will move block fetching and processing into a worker. By default, this fea It is at an early experimental stage at the moment, but we plan to enable it by default. ::: -::: info Note +::: tip Note This feature is available for Substrate and Cosmos, and soon will be integrated for Avalanche. ::: diff --git a/docs/tr/run_publish/run.md b/docs/tr/run_publish/run.md index b98c2543378..562e49b153f 100644 --- a/docs/tr/run_publish/run.md +++ b/docs/tr/run_publish/run.md @@ -4,7 +4,7 @@ This guide works through how to run a local SubQuery node on your infrastructure ## Using Docker -An alternative solution is to run a Docker Container, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. +An alternative solution is to run a **Docker Container**, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. Under the project directory run the following command: @@ -12,7 +12,7 @@ Under the project directory run the following command: docker-compose pull && docker-compose up ``` -::: info Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: +::: tip Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: ## Running an Indexer (subql/node) @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Installation - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: Once installed, you can start a node with the following command: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Point to local project path - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ Depending on the configuration of your Postgres database (e.g. a different datab #### Specify a configuration file - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ When the indexer first indexes the chain, fetching single blocks will significan #### Run in local mode - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Switching to local model will create Postgres tables in the default schema `public`. diff --git a/docs/tr/run_publish/subscription.md b/docs/tr/run_publish/subscription.md index bb47278a67a..28c31f8f2db 100644 --- a/docs/tr/run_publish/subscription.md +++ b/docs/tr/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery artık Graphql Aboneliklerini de destekliyor. Sorgular gibi, abonelikle Abonelikler, istemci uygulamanızın verileri değiştirmesini veya bu değişiklik meydana gelir gelmez veya yeni veriler kullanılabilir olduğunda bazı yeni verileri göstermesini istediğinizde çok kullanışlıdır. Subscriptions allow you to _subscribe_ to your SubQuery project for changes. -::: info Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: +::: tip Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: ## Bir Varlığa Nasıl Abone Olunur diff --git a/docs/tr/run_publish/upgrade.md b/docs/tr/run_publish/upgrade.md index 3a25534cc3f..33f9a226794 100644 --- a/docs/tr/run_publish/upgrade.md +++ b/docs/tr/run_publish/upgrade.md @@ -77,10 +77,10 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n Dağıtımınız başarıyla tamamlandıktan ve node'larımız zincirdeki verilerinizi dizine ekledikten sonra, görüntülenen GraphQL Query uç noktası aracılığıyla projenize bağlanabileceksiniz. -![Projenize yeni sürümü dağıtın](/assets/img/projects-deploy-sync.png) +![Projenize yeni sürümü dağıtın](/assets/img/projects_deploy_sync.png) Alternatif olarak, projenizin başlığının yanında bulunan üç noktaya tıklayabilir ve onu SubQuery Explorer'da görüntüleyebilirsiniz. There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/tr/subquery_network/introduction.md b/docs/tr/subquery_network/introduction.md index 295d4a0e0d8..6394db677b8 100644 --- a/docs/tr/subquery_network/introduction.md +++ b/docs/tr/subquery_network/introduction.md @@ -18,22 +18,22 @@ There’s a role for everyone in the network, from highly technical developers t Consumers will ask the SubQuery Network for specific data for their dApps or tools, and pay an advertised amount of SQT for each request. -::: info Note Learn more about [Consumers](./consumers.md). ::: +::: tip Note Learn more about [Consumers](./consumers.md). ::: ### Indexers Indexers will run and maintain high quality SubQuery projects in their own infrastructure, running both the indexer and query service, and will be rewarded in SQT for the requests that they serve. -::: info Note Learn more about [Indexers](./indexers.md). ::: +::: tip Note Learn more about [Indexers](./indexers.md). ::: ### Delegators Delegators will participate in the Network by supporting their favourite Indexers to earn rewards based on the work those indexers do. -::: info Note Learn more about [Delegators](./delegators.md). ::: +::: tip Note Learn more about [Delegators](./delegators.md). ::: ### Architects Architects are the builders of the SubQuery projects that the Network runs on. They author and publish SubQuery projects for the Network to index and run. -::: info Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: +::: tip Note Learn more about [how to build your first SubQuery project](../build/introduction.md). ::: diff --git a/docs/uk/README.md b/docs/uk/README.md index a45b8827511..4427cb24657 100644 --- a/docs/uk/README.md +++ b/docs/uk/README.md @@ -4,7 +4,7 @@

    Build Faster dApps withSubQuery Academy

    -

    Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


    +

    Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

    SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

    @@ -12,7 +12,7 @@

    Get a Kick-Start With Our Quick Start Guide

    -

    Build your first SubQuery project in less than 10 mins with simple guided steps. +

    Build your first SubQuery project in less than 10 mins with simple guided steps.

    Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

    @@ -134,8 +134,7 @@
    - - + diff --git a/docs/uk/build/install.md b/docs/uk/build/install.md index e46174e8072..b5788f73507 100644 --- a/docs/uk/build/install.md +++ b/docs/uk/build/install.md @@ -8,28 +8,30 @@ Встановіть SubQuery CLI у всьому світі на свій термінал, використовуючи пряжу або NPM: - ```shell yarn global add @subql/cli ``` - ```bash npm install -g @subql/cli ``` +::: code-tabs @tab:active yarn `shell yarn global add @subql/cli ` +@tab npm `bash npm install -g @subql/cli ` ::: Потім ви можете запустити довідку, щоб побачити доступні команди та використання, надані CLI: ```shell subql help ``` + ## Встановіть @subql/node Вузол SubQuery - це реалізація, яка витягує дані блокчейна на основі субстрату за проектом SubQuery і зберігає їх у базі даних Postgres. Встановіть вузол SubQuery у всьому світі на своєму терміналі за допомогою пряжі або NPM: - ```shell yarn global add @subql/node ``` - ```bash npm install -g @subql/node ``` +::: code-tabs @tab:active yarn `shell yarn global add @subql/node ` +@tab npm `bash npm install -g @subql/node ` ::: Після встановлення ви можете запустити вузол з: ```shell subql-node ``` + > Примітка. Якщо ви використовуєте Docker або розміщуєте свій проект у проектах SubQuery, ви можете пропустити цей крок. Це тому, що вузол SubQuery вже передбачений у контейнері Docker та хостинговій інфраструктурі. ## Встановіть @subql/query @@ -38,7 +40,7 @@ subql-node Встановіть запит SubQuery у всьому світі на своєму терміналі за допомогою пряжі або NPM: - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> Примітка. Якщо ви використовуєте Docker або розміщуєте свій проект у проектах SubQuery, ви також можете пропустити цей крок. Це тому, що вузол SubQuery вже передбачений у контейнері Docker та хостинговій інфраструктурі. \ No newline at end of file +> Примітка. Якщо ви використовуєте Docker або розміщуєте свій проект у проектах SubQuery, ви також можете пропустити цей крок. Це тому, що вузол SubQuery вже передбачений у контейнері Docker та хостинговій інфраструктурі. diff --git a/docs/uk/build/introduction.md b/docs/uk/build/introduction.md index 843b42c498d..3a2c50b7a5b 100644 --- a/docs/uk/build/introduction.md +++ b/docs/uk/build/introduction.md @@ -51,8 +51,8 @@ yarn codegen Запустіть команду збірки з кореневого каталогу проекту. - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### Альтернатива будують вибір @@ -80,13 +80,13 @@ yarn codegen L index.js ``` -Зауважте, що він буде створювати ` index.ts чи не вказано в поле експорту.

    +Зауважте, що він буде створювати ` index.ts чи не вказано в поле експорту. -

    Для отримання додаткової інформації про використання цього, включаючи прапори, див. Розділ Довідник .

    +Для отримання додаткової інформації про використання цього, включаючи прапори, див. Розділ https://doc.subquery.network/run_publish/references/#build -

    Ведення журналу

    +## Ведення журналу -

    Метод console.log` **більше не підтримується**. Замість цього ` logger ` модуль був введений в типи, який означає, що ми можемо підтримувати лісоруба, який може прийняти різні реєстраційні рівні. +Метод `console.log` **більше не підтримується**. Замість цього `logger` модуль був введений в типи, який означає, що ми можемо підтримувати лісоруба, який може прийняти різні реєстраційні рівні. ```typescript logger.info("Інформаційне повідомлення "); diff --git a/docs/uk/build/manifest.md b/docs/uk/build/manifest.md index fd7d631d6cc..485c26dc25c 100644 --- a/docs/uk/build/manifest.md +++ b/docs/uk/build/manifest.md @@ -4,7 +4,7 @@ Маніфест може бути у форматі YAML або JSON. У цьому документі ми будемо використовувати YAML у всіх прикладах. Нижче наведено стандартний приклад базового `project.yaml`. - ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: file: ./schema.graphql # The location of your GraphQL schema file network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Genesis hash of the network endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` @tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Description of your project repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # This changes your indexing start block, set this higher to skip initial blocks with less data mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter is optional but suggested to speed up event processing module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## Migrating from v0.0.1 to v0.2.0 @@ -22,9 +22,9 @@ ### Параметри CLI -За замовчуванням CLI буде генерувати SubQuery проекти для verison v0.2.0. Ця поведінка може бути перевизначена за керуванням ` SubQL init-specversion 0.0.1 project_name , хоча це не рекомендується, оскільки проект не буде підтриманий підзаписом обслуговування в майбутньому

    +За замовчуванням CLI буде генерувати SubQuery проекти для verison v0.2.0. Ця поведінка може бути перевизначена за керуванням ` SubQL init-specversion 0.0.1 project_name, хоча це не рекомендується, оскільки проект не буде підтриманий підзаписом обслуговування в майбутньому -

    subql migrate ` можна запустити в існуючому проекті для перенесення маніфесту проекту на останню версію. +`subql migrate` можна запустити в існуючому проекті для перенесення маніфесту проекту на останню версію. Використання $ subql init [назвапроекту] @@ -81,7 +81,7 @@ ### Специфікація карт -Перерахуйте всі mapping functions<0> та відповідні типи обробників за допомогою додаткових фільтрів відображення. <0 /> <0 /> Для користувацьких обробників відображення часу перегляньте [ Спеціальні джерела даних ](#custom-data-sources)

    - Amable - - Controladores admitidos -
    +Перерахуйте всі mapping functions<0> та відповідні типи обробників за допомогою додаткових фільтрів відображення. Для користувацьких обробників відображення часу перегляньте [ Спеціальні джерела даних ](#custom-data-sources) ## Джерела даних та картографування @@ -101,8 +101,8 @@ dataSources: **Ваш проект SubQuery буде набагато ефективнішим, якщо ви використовуєте лише обробники подій і викликів із відповідними фільтрами зіставлення** -| Обробник | Підтримуваний фільтр | -| ------------------------------------------------- | ------------------------- | +| Обробник | Підтримуваний фільтр | +| ---------------------------------------------------------- | ------------------------- | | [Обробник блокування](./mapping/polkadot.md#block-handler) | `версія специфікації` | | [Подіяльний обробник](./mapping/polkadot.md#event-handler) | `модуль`,`метод` | | [Обробник дзвінків](./mapping/polkadot.md#call-handler) | `модуль`,`метод` ,`успіx` | @@ -148,11 +148,11 @@ filter: Ми підтримуємо додаткові типи, які використовуються модулями середовища виконання, `typesAlias`, `typesBundle`, `typesChain` і `typesSpec` також підтримуються . -У наведеному нижче прикладі версії 0.2.0 `network.chaintypes` вказує на файл, який містить усі користувацькі типи. Це стандартний файл специфікації ланцюга, який оголошує конкретні типи, які підтримує цей блокчейн у < 0>.json, `.yaml` або `.js`. +У наведеному нижче прикладі версії 0.2.0 `network.chaintypes` вказує на файл, який містить усі користувацькі типи. Це стандартний файл специфікації ланцюга, який оголошує конкретні типи, які підтримує цей блокчейн у `.json`, `.yaml` або `.js`. - `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` - `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: To use typescript for your chain types file include it in the `src` folder (e.g. `./src/types.ts`), run `yarn build` and then point to the generated js file located in the `dist` folder. @@ -169,7 +169,7 @@ network: Ось приклад файлу типів ланцюга `.ts`: - `тс імпортувати {typeBundleDeprecated } з "moonbeam-types-bundle" експорт за замовчуванням {typeBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `тс імпортувати {typeBundleDeprecated } з "moonbeam-types-bundle" експорт за замовчуванням {typeBundle: typesBundleDeprecated }; ` ::: ## Спеціальні джерела даних @@ -195,6 +195,6 @@ network: Нижче наведено приклад, який показує різні джерела даних для мереж Polkadot і Kusama. - `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` +::: code-tabs @tab v0.0.1 `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` - +::: diff --git a/docs/uk/build/mapping.md b/docs/uk/build/mapping.md index ef83d7eff54..f6a950d5ff9 100644 --- a/docs/uk/build/mapping.md +++ b/docs/uk/build/mapping.md @@ -67,9 +67,9 @@ export async function handleCall(extrinsic: SubstrateExtrinsic): Promise { Це інтерфейси, які ми зараз підтримуємо: -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) буде запитувати поточний блок. -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) зробить декілька запитів того ж типу в поточному блоці. -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) зробить декілька запитів того ж типу в поточному блоці. +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) буде запитувати **поточний** блок. +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) зробить декілька запитів **того ж** типу в поточному блоці. +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) зробить декілька запитів **того ж** типу в поточному блоці. Це інтерфейси, які ми робимо **НЕ** підтримуємо: diff --git a/docs/uk/build/substrate-evm.md b/docs/uk/build/substrate-evm.md index 87947b03d2c..b63fc9cadc9 100644 --- a/docs/uk/build/substrate-evm.md +++ b/docs/uk/build/substrate-evm.md @@ -30,7 +30,7 @@ | поле | Тип | Обов’язково | Описання | | ------- | ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------ | -| abi | String | Ні | Процесор ABI використовується для аналізу аргументів. ПОВИНЕН бути ключем ` assets ` | +| abi | String | Ні | Процесор ABI використовується для аналізу аргументів. ПОВИНЕН бути ключем `assets` | | Address | String or `null` | Ні | Адреса контракту, з якої здійснюється подія або дзвінок. `null` буде захоплювати виклики створення контракту | ## Виклик Moonbeam @@ -44,20 +44,20 @@ ### Фільтр викликів -| поле | Тип | Приклади | Описання | -| ------- | ------ | --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Функція | String | 0x095ea7b3, затвердити (адресу на,uint256 значення) | Або [ Function Signature ](https://docs.ethers.io/v5/api/utils/abi/fragments/#FunctionFragment), або функція ` sighash ` для фільтрації функції, що викликається договором | -| від | String | 0x6bd193ee6d2104f14f94e2ca6efefae561a4334b | Ethereum адреса, яка надіслала транзакцію | +| поле | Тип | Приклади | Описання | +| ------- | ------ | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Функція | String | 0x095ea7b3, затвердити (адресу на,uint256 значення) | Або [ Function Signature ](https://docs.ethers.io/v5/api/utils/abi/fragments/#FunctionFragment), або функція `sighash` для фільтрації функції, що викликається договором | +| від | String | 0x6bd193ee6d2104f14f94e2ca6efefae561a4334b | Ethereum адреса, яка надіслала транзакцію | ### Обробники -На відміну від звичайного обробника, ви не отримаєте параметр ` SubstrateExtrinsic `, натомість ви отримаєте тип ` MoonbeamCall `, який базується на Ethers [ TransactionResponse ](https://docs.ethers.io/v5/api/providers/types/#providers-TransactionResponse). +На відміну від звичайного обробника, ви не отримаєте параметр `SubstrateExtrinsic`, натомість ви отримаєте тип `MoonbeamCall`, який базується на Ethers [ TransactionResponse ](https://docs.ethers.io/v5/api/providers/types/#providers-TransactionResponse). Зміни від `типу TransactionResponse`: -- Він не має ` wait ` та ` confirmations ` властивостей -- Властивість ` success ` додається щоб знати, якщо транзакція була успішною -- ` args ` додається, якщо поле ` abi ` надано і аргументи можна успішно проаналізувати +- Він не має `wait` та `confirmations` властивостей +- Властивість `success` додається щоб знати, якщо транзакція була успішною +- `args` додається, якщо поле `abi` надано і аргументи можна успішно проаналізувати ## Подія Moonbeam @@ -74,7 +74,8 @@ | ---- | ------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | теми | Масиви рядків | Transfer(адреса, індексована адреса, індексована в,uint256 значення) | Фільтр тем слідкує за фільтрами журналів Ethereum JSON-PRC, більше документації можна знайти [ here ](https://docs.ethers.io/v5/concepts/events/). | - Примітка до тем: +**Примітка до тем:** + Є кілька вдосконалень від основних фільтрів журналів: - Теми не потрібно 0 підкладати @@ -82,11 +83,11 @@ ### Обробники -На відміну від звичайного обробника, ви не отримаєте параметр ` SubstrateEvent `, натомість ви отримаєте ` MoonbeamEvent `, який базується на Ethers [ Log ](https://docs.ethers.io/v5/api/providers/types/#providers-Log). +На відміну від звичайного обробника, ви не отримаєте параметр `SubstrateEvent`, натомість ви отримаєте `MoonbeamEvent`, який базується на Ethers [ Log ](https://docs.ethers.io/v5/api/providers/types/#providers-Log). -Зміни з ` Log `: +Зміни з `Log`: -- ` args ` додається, якщо поле ` abi ` надано і аргументи можна успішно проаналізувати +- `args` додається, якщо поле `abi` надано і аргументи можна успішно проаналізувати ## Приклад джерела даних @@ -97,17 +98,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Contract address (or recipient if transfer) to filter, if `null` should be for contract creation - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -122,11 +123,11 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## Відомі обмеження - Наразі немає можливості запитувати стан EVM у обробнику - Немає можливості отримати квитанції про транзакції з обробниками дзвінків -- Властивості ` blockHash ` в даний час залишаються невизначеними, натомість можна використовувати властивість ` blockNumber ` +- Властивості `blockHash` в даний час залишаються невизначеними, натомість можна використовувати властивість `blockNumber` diff --git a/docs/uk/faqs/faqs.md b/docs/uk/faqs/faqs.md index 36cc664224e..67afd645347 100644 --- a/docs/uk/faqs/faqs.md +++ b/docs/uk/faqs/faqs.md @@ -16,7 +16,7 @@ SubQuery також надає безплатний хостинг проєкт **Про SubQuery Network** -SubQuery Network дозволяє розробникам повністю децентралізувати свій стек інфраструктури. Це відкритий, продуктивний, надійний і масштабований сервіс передачі даних для додатків. SubQuery Network індексує і надає дані світовій спільноті стимульованим і піддається перевірці способом. Після публікації вашого проєкт в SubQuery Network будь-який охочий може проіндексувати й розмістити його, надаючи дані користувачам по всьому світу швидше й надійніше. +SubQuery Network дозволяє розробникам повністю децентралізувати свій стек інфраструктури. Це відкритий, продуктивний, надійний і масштабований сервіс передачі даних для додатків. SubQuery Network індексує і надає дані світовій спільноті стимульованим і піддається перевірці способом. Після публікації вашого проєкт в SubQuery Network будь-який охочий може проіндексувати й розмістити його, надаючи дані користувачам по всьому світу швидше й надійніше. Більш детальна інформація [тут](/subquery_network/introduction.md). @@ -26,7 +26,7 @@ SubQuery Network дозволяє розробникам повністю дец ## Як я можу внести або надати відгуки на SubQuery? -Ми любимо внески та відгуки громади. Щоб внести свій внесок в код, розгалузите цікавить Вас репозиторій і внесіть свої зміни. Сформуйте PR або Pull Request. Не забудьте також протестувати. Also check out our contributions guidelines. +Ми любимо внески та відгуки громади. Щоб внести свій внесок в код, розгалузите цікавить Вас репозиторій і внесіть свої зміни. Сформуйте PR або Pull Request. Не забудьте також протестувати. Also check out our [contributions guidelines](../miscellaneous/contributing.html). Щоб залишити відгук, зв'яжіться з нами за адресою hello@subquery.network або перейдіть на наш канал [discord](https://discord.com/invite/78zg8aBSMG). @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Зверніть увагу, що рекомендується використовувати `--force-clean` при зміні `startBlock` в рамках маніфесту проєкту (`project.yaml`) для того, щоб почати пере індексацію з налаштованого блоку. Якщо `startBlock` змінюється без `--force-clean` проєкту, то індекси продовжать індексування за допомогою раніше налаштованих `startBlock`. - ## Як я можу оптимізувати свій проєкт, щоб прискорити його? Продуктивність є вирішальним фактором у кожному проєкті. На щастя, є кілька речей, які ви могли б зробити, щоб її покращити. Ось список деяких пропозицій: @@ -89,13 +88,13 @@ subql-node -f . --force-clean --subquery-name= - Set the start block to when the contract was initialised. - Always use a [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (we can help create one for your new network). - Optimise your schema design, keep it as simple as possible. - - Try to reduce unnecessary fields and columns. - - Create indexes as needed. + - Try to reduce unnecessary fields and columns. + - Create indexes as needed. - Use parallel/batch processing as often as possible. - - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. - - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. - - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. + - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. + - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. + - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. - Making API calls to query state can be slow. You could try to minimise calls where possible and to use `extrinsic/transaction/event` data. - Use `worker threads` to move block fetching and block processing into its own worker thread. It could speed up indexing by up to 4 times (depending on the particular project). You can easily enable it using the `-workers=` flag. Зауважте, що кількість доступних ядер ЦП суворо обмежує використання робочих потоків. For now, it is only available for Substrate and Cosmos and will soon be integrated for Avalanche. - Note that `JSON.stringify` doesn’t support native `BigInts`. Our logging library will do this internally if you attempt to log an object. We are looking at a workaround for this. -- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. \ No newline at end of file +- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. diff --git a/docs/uk/quickstart/helloworld-localhost.md b/docs/uk/quickstart/helloworld-localhost.md index 942ae3679e2..0323961c95f 100644 --- a/docs/uk/quickstart/helloworld-localhost.md +++ b/docs/uk/quickstart/helloworld-localhost.md @@ -59,7 +59,7 @@ My docker version is: Docker version 20.10.5, build 55c4c88 ## 1. Ініціалізація проекту -Перший крок при запуску з SubQuery - це запуск команди ` subql init `. Давайте ініціалізуємо стартовий проект із назвою ` subqlHelloWorld `. Зауважте, що обов'язковий лише автор. Все інше залишається порожнім внизу. +Перший крок при запуску з SubQuery - це запуск команди `subql init`. Давайте ініціалізуємо стартовий проект із назвою `subqlHelloWorld`. Зауважте, що обов'язковий лише автор. Все інше залишається порожнім внизу. ```shell > subql init subqlHelloWorld @@ -88,8 +88,8 @@ cd subqlHelloWorld Тепер зробіть встановлення пряжі або вузла, щоб встановити різні залежності. - ```shell yarn install ``` - ```bash npm install ``` +::: code-tabs @tab:active yarn `shell yarn install ` +@tab npm `bash npm install ` ::: An example of `yarn install` @@ -107,10 +107,10 @@ success Saved lockfile. ## 3. Створити код -Тепер запустіть ` yarn codegen `, щоб генерувати Typescript зі схеми GraphQL. +Тепер запустіть `yarn codegen`, щоб генерувати Typescript зі схеми GraphQL. - ```shell yarn codegen ``` - ```bash npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `bash npm run-script codegen ` ::: An example of `yarn codegen` @@ -127,14 +127,14 @@ $ ./node_modules/.bin/subql codegen ✨ Done in 1.02s. ``` -** Попередження ** Коли в файл схеми вносяться зміни, будь ласка, не забудьте повторно запустити ` yarn codegen ` для відновлення каталогу типів. +** Попередження ** Коли в файл схеми вносяться зміни, будь ласка, не забудьте повторно запустити `yarn codegen` для відновлення каталогу типів. ## 4. Створіть код -Наступний крок - побудувати код із ` yarn build `. +Наступний крок - побудувати код із `yarn build`. - ```shell yarn build ``` - ```bash npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: An example of `yarn build` diff --git a/docs/uk/quickstart/quickstart-avalanche.md b/docs/uk/quickstart/quickstart-avalanche.md index 15af55a872b..48d5c3668d1 100644 --- a/docs/uk/quickstart/quickstart-avalanche.md +++ b/docs/uk/quickstart/quickstart-avalanche.md @@ -59,8 +59,8 @@ subql init Нарешті, у каталозі проекту виконайте наступну команду, щоб встановити залежності нового проекту. - ``` shell компакт-диск PROJECT_NAME установка yarn ``` - ``` shell компакт-диск PROJECT_NAME npm встановити ``` +::: code-tabs @tab:active yarn `shell компакт-диск PROJECT_NAME установка yarn` +@tab npm `shell компакт-диск PROJECT_NAME npm встановити` ::: ## Внесення змін до проекту @@ -68,7 +68,7 @@ subql init 1. Схема GraphQL в `schema.graphql` 2. Маніфест проекту в `project.yaml` -3. Картографування функціонує в каталозі ` src / mappings / ` +3. Картографування функціонує в каталозі `src / mappings /` Метою цього короткого посібника є адаптація стандартного стартового проекту для індексації всіх журналів транзакцій Pangolin `Approve`. @@ -92,8 +92,8 @@ type PangolinApproval @entity { **Важливо: коли ви вносите будь-які зміни до файлу схеми, переконайтеся, що ви повторно створили каталог типів. Зробіть це зараз.** - ``` shell кодоген пряжі ``` - ``` shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell кодоген пряжі` +@tab npm `shell npm run-script codegen` ::: Згенеровані моделі можна знайти в каталозі `/src/types/models`. Щоб отримати додаткові відомості про файл `schema.graphql`, перегляньте нашу документацію в розділі [Build/GraphQL Schema](../build/graphql.md) @@ -136,7 +136,7 @@ dataSources: Перейдіть до функції відображення за замовчуванням у каталозі `src/mappings`. Ви побачите три експортовані функції: `handleBlock`, `handleLog` і `handleTransaction`. Ви можете видалити як функції `handleBlock`, так і `handleTransaction`, ми маємо справу лише з функцією `handleLog`. -Функція `handleLog` отримує дані про події щоразу, коли подія відповідає фільтрам, які ми вказали раніше в нашому `project.yaml`. Ми збираємося оновити його, щоб обробити всі журнали транзакцій ` approval ` та зберегти їх у сутності GraphQL, які ми створили раніше. +Функція `handleLog` отримує дані про події щоразу, коли подія відповідає фільтрам, які ми вказали раніше в нашому `project.yaml`. Ми збираємося оновити його, щоб обробити всі журнали транзакцій `approval` та зберегти їх у сутності GraphQL, які ми створили раніше. Ви можете оновити функцію `handleLog` до наступного (зверніть увагу на додатковий імпорт): @@ -169,7 +169,7 @@ export async function handleLog(event: AvalancheLog): Promise { Щоб запустити ваш новий проект SubQuery, нам спочатку потрібно створити нашу роботу. Запустіть команду збірки з кореневого каталогу проекту. - ``` shell побудова yarn ``` ``` shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell побудова yarn` @tab npm `shell npm run-script build` ::: **Важливо: щоразу, коли ви вносите зміни у свої функції відображення, вам потрібно буде перебудувати свій проект** @@ -183,13 +183,9 @@ export async function handleLog(event: AvalancheLog): Promise { У каталозі проекту виконайте таку команду: - ``` shell початок yarn:docker ``` ``` shell npm run-script start:docker ``` - -Завантаження необхідних пакетів може зайняти деякий час ([`@subql/node`](https://www.npmjs.com/package/@subql/node), - -`@subql/query` і Postgres) вперше, але незабаром ви побачите запущений вузол SubQuery. Будьте терплячі тут.

    - +::: code-tabs @tab:active yarn `shell початок yarn:docker` @tab npm `shell npm run-script start:docker` ::: +Завантаження необхідних пакетів може зайняти деякий час ([`@subql/node`](https://www.npmjs.com/package/@subql/node), `@subql/query`і Postgres) вперше, але незабаром ви побачите запущений вузол SubQuery. Будьте терплячі тут. ### Запитуйте свій проект @@ -199,8 +195,6 @@ export async function handleLog(event: AvalancheLog): Promise { Для нового початкового проекту SubQuery ви можете спробувати такий запит, щоб зрозуміти, як він працює, або [дізнатися більше про мову Query GraphQL](../run_publish/graphql.md). - - ```graphql query { pangolinApprovals(first: 5) { @@ -217,17 +211,12 @@ query { } ``` - - - ### Опублікуйте проект SubQuery SubQuery надає безкоштовну керовану службу, коли ви можете розгорнути свій новий проект. Ви можете розгорнути його в [SubQuery Projects](https://project.subquery.network) і зробити запит за допомогою нашого [ Explorer](https://explorer.subquery.network). [Прочитайте посібник, щоб опублікувати свій новий проект у SubQuery Projects](../run_publish/publish.md), **Зверніть увагу, що ви повинні розгорнути через IPFS**. - - ## Настуні кроки Вітаємо, тепер у вас є локально запущений проект SubQuery, який приймає запити GraphQL API для передачі даних з bLuna. diff --git a/docs/uk/quickstart/quickstart-cosmos.md b/docs/uk/quickstart/quickstart-cosmos.md index 204dc8bc653..783ceaac015 100644 --- a/docs/uk/quickstart/quickstart-cosmos.md +++ b/docs/uk/quickstart/quickstart-cosmos.md @@ -44,8 +44,8 @@ Cosmos is not yet supported in SubQuery's CLI (`subql`), to start with Juno clon Нарешті, у каталозі проекту виконайте наступну команду, щоб встановити залежності нового проекту. - ``` оболонка компакт-диск PROJECT_NAME установка yarn ``` - ``` оболонка компакт-диск PROJECT_NAME npm встановити ``` +::: code-tabs @tab:active yarn `оболонка компакт-диск PROJECT_NAME установка yarn` +@tab npm `оболонка компакт-диск PROJECT_NAME npm встановити` ::: ## Внесення змін до проекту @@ -53,7 +53,7 @@ Cosmos is not yet supported in SubQuery's CLI (`subql`), to start with Juno clon 1. Схема GraphQL в `schema.graphql` 2. Маніфест проекту в `project.yaml` -3. Картографування функціонує в каталозі ` src / mappings / ` +3. Картографування функціонує в каталозі `src / mappings /` Метою цього короткого посібника є адаптація стандартного стартового проекту, щоб почати індексацію всіх переказів із смарт-контракту bLuna. @@ -75,8 +75,8 @@ type Vote @entity { **Важливо: коли ви вносите будь-які зміни до файлу схеми, переконайтеся, що ви повторно створили каталог типів. Зробіть це зараз.** - ``` оболонка кодоген yarn ``` - ``` оболонка npm run-script codegen ``` +::: code-tabs @tab:active yarn `оболонка кодоген yarn` +@tab npm `оболонка npm run-script codegen` ::: Згенеровані моделі можна знайти в каталозі `/src/types/models`. Щоб отримати додаткові відомості про файл `schema.graphql`, перегляньте нашу документацію в розділі [Build/GraphQL Schema](../build/graphql.md) @@ -145,7 +145,7 @@ What this is doing is receiving a CosmosMessage which includes message data on t Щоб запустити ваш новий проект SubQuery, нам спочатку потрібно створити нашу роботу. Запустіть команду збірки з кореневого каталогу проекту. - ``` оболонка побудова yarn ``` ``` оболонка npm run-script build ``` +::: code-tabs @tab:active yarn `оболонка побудова yarn` @tab npm `оболонка npm run-script build` ::: **Важливо: щоразу, коли ви вносите зміни у свої функції відображення, вам потрібно буде перебудувати свій проект** @@ -159,13 +159,9 @@ What this is doing is receiving a CosmosMessage which includes message data on t У каталозі проекту виконайте таку команду: - ``` оболонка початок yarn ``` ``` оболонка npm run-script start:docker ``` - -Завантаження необхідних пакетів може зайняти деякий час ([`@subql/node`](https://www.npmjs.com/package/@subql/node), - -`@subql/query` і Postgres) вперше, але незабаром ви побачите запущений вузол SubQuery. Будьте терплячі тут.

    - +::: code-tabs @tab:active yarn `оболонка початок yarn` @tab npm `оболонка npm run-script start:docker` ::: +Завантаження необхідних пакетів може зайняти деякий час ([`@subql/node`](https://www.npmjs.com/package/@subql/node), `@subql/query` і Postgres) вперше, але незабаром ви побачите запущений вузол SubQuery. Будьте терплячі тут. ### Запитуйте свій проект @@ -175,14 +171,11 @@ What this is doing is receiving a CosmosMessage which includes message data on t Для нового початкового проекту SubQuery ви можете спробувати такий запит, щоб зрозуміти, як він працює, або [дізнатися більше про мову Query GraphQL](../run_publish/graphql.md). - - ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id @@ -194,19 +187,14 @@ query { } ``` - You can see the final code of this project here at [https://github.com/jamesbayly/juno-terra-developer-fund-votes](https://github.com/jamesbayly/juno-terra-developer-fund-votes) - - ### Опублікуйте проект SubQuery SubQuery надає безкоштовну керовану службу, коли ви можете розгорнути свій новий проект. Ви можете розгорнути його в [SubQuery Projects](https://project.subquery.network) і зробити запит за допомогою нашого [ Explorer](https://explorer.subquery.network). [Прочитайте посібник, щоб опублікувати свій новий проект у SubQuery Projects](../run_publish/publish.md) - - ## Настуні кроки Вітаємо, тепер у вас є локально запущений проект SubQuery, який приймає запити GraphQL API для передачі даних з bLuna. diff --git a/docs/uk/quickstart/quickstart-polkadot.md b/docs/uk/quickstart/quickstart-polkadot.md index d99eb073b59..fc2abfa313c 100644 --- a/docs/uk/quickstart/quickstart-polkadot.md +++ b/docs/uk/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql init Під час ініціалізації проекту SubQuery вам зададуть певні запитання: - Назва проєкту: Найменування для вашого проєкту SubQuery -- Сімейство мереж: Сімейство блокчейну рівня 1, для індексації якого буде розроблено цей проєкт SubQuery. Використовуйте клавіші зі стрілками, щоб вибрати з доступних параметрів. Для цього посібника ми будемо використовувати *"Substrate"* -- Network: конкретна мережа, для індексації якої буде розроблено цей проєкт SubQuery. Використовуйте клавіші зі стрілками, щоб вибрати з доступних параметрів. Для цього посібника ми будемо використовувати *"Polkadot"* -- Шаблонний проєкт: виберіть проєкт шаблону SubQuery, який стане відправною точкою для початку розробки. Ми пропонуємо вибрати проєкт *"subql-starter"*. -- Кінцева точка RPC: надайте URL-адресу HTTPS для запущеної кінцевої точки RPC, яка буде використовуватися за замовчуванням для цього проєкту. Ви можете швидко отримати доступ до загальнодоступних кінцевих точок для різних мереж Polkadot, створити власний приватний виділений вузол за допомогою [OnFinality](https://app.onfinality.io) або просто використовувати кінцеву точку Polkadot за замовчуванням. Цей вузол RPC повинен бути вузлом архіву (мати стан повного ланцюга). Для цього посібника ми будемо використовувати значення за замовчуванням *"https://polkadot.api.onfinality.io"* +- Сімейство мереж: Сімейство блокчейну рівня 1, для індексації якого буде розроблено цей проєкт SubQuery. Використовуйте клавіші зі стрілками, щоб вибрати з доступних параметрів. Для цього посібника ми будемо використовувати _"Substrate"_ +- Network: конкретна мережа, для індексації якої буде розроблено цей проєкт SubQuery. Використовуйте клавіші зі стрілками, щоб вибрати з доступних параметрів. Для цього посібника ми будемо використовувати _"Polkadot"_ +- Шаблонний проєкт: виберіть проєкт шаблону SubQuery, який стане відправною точкою для початку розробки. Ми пропонуємо вибрати проєкт _"subql-starter"_. +- Кінцева точка RPC: надайте URL-адресу HTTPS для запущеної кінцевої точки RPC, яка буде використовуватися за замовчуванням для цього проєкту. Ви можете швидко отримати доступ до загальнодоступних кінцевих точок для різних мереж Polkadot, створити власний приватний виділений вузол за допомогою [OnFinality](https://app.onfinality.io) або просто використовувати кінцеву точку Polkadot за замовчуванням. Цей вузол RPC повинен бути вузлом архіву (мати стан повного ланцюга). Для цього посібника ми будемо використовувати значення за замовчуванням _"https://polkadot.api.onfinality.io"_ - Репозиторій Git: надайте URL-адресу Git до репозиторію, в якому буде розміщено цей проєкт SubQuery (якщо він розміщений у SubQuery Explorer) або прийміть надане за замовчуванням. - Автори: Введіть тут власника цього проєкту SubQuery (наприклад, ваше ім’я!) або прийміть надане за замовчуванням. - Опис: надайте короткий абзац про ваш проєкт, який описує дані, які він містить, і що користувачі можуть робити з ними або прийняти надане за замовчуванням. @@ -57,8 +57,8 @@ subql init Нарешті, у каталозі проєкту виконайте таку команду, щоб встановити залежності нового проєкту. - ``` оболонка компакт-диск PROJECT_NAME установка yarn ``` - ``` оболонка компакт-диск PROJECT_NAME npm встановити ``` +::: code-tabs @tab:active yarn `оболонка компакт-диск PROJECT_NAME установка yarn` +@tab npm `оболонка компакт-диск PROJECT_NAME npm встановити` ::: ## Внесення змін до проекту @@ -66,7 +66,7 @@ subql init 1. The GraphQL Schema in `schema.graphql` 2. Маніфест проекту в `project.yaml` -3. Картографування функціонує в каталозі ` src / mappings / ` +3. Картографування функціонує в каталозі `src / mappings /` Метою цього короткого посібника є адаптація стандартного стартового проєкту, щоб почати індексацію всіх переказів із Polkadot. @@ -88,8 +88,8 @@ type Transfer @entity { **Важливо: коли ви вносите будь-які зміни до файлу схеми, переконайтеся, що ви повторно створили каталог типів.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: You'll find the generated models in the `/src/types/models` directory. Щоб отримати додаткові відомості про файл `schema.graphql`, перегляньте нашу документацію в розділі [Build/GraphQL Schema](../build/graphql.md) @@ -133,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { - // Get data from the event - // The balances.transfer event has the following payload \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Create the new transfer entity - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Get data from the event + // The balances.transfer event has the following payload \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Create the new transfer entity + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -160,7 +160,7 @@ export async function handleEvent(event: SubstrateEvent): Promise { Щоб запустити ваш новий проєкт SubQuery, нам спочатку потрібно побудувати нашу роботу. Запустіть команду збірки з кореневого каталогу проекту. - ``` оболонка побудова ``` ``` оболонка npm run-script build ``` +::: code-tabs @tab:active yarn `оболонка побудова` @tab npm `оболонка npm run-script build` ::: **Важливо: щоразу, коли ви вносите зміни у свої функції відображення, вам потрібно буде перебудувати свій проєкт** @@ -174,7 +174,7 @@ export async function handleEvent(event: SubstrateEvent): Promise { У каталозі проєкту, виконайте таку команду: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you should see a running SubQuery node in the terminal screen. @@ -189,10 +189,7 @@ It may take some time to download the required packages ([`@subql/node`](https:/ ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount diff --git a/docs/uk/quickstart/quickstart-terra.md b/docs/uk/quickstart/quickstart-terra.md index b7734817483..a7f7136e368 100644 --- a/docs/uk/quickstart/quickstart-terra.md +++ b/docs/uk/quickstart/quickstart-terra.md @@ -45,11 +45,11 @@ subql init Під час ініціалізації проекту SubQuery вам зададуть певні запитання: - Project Name: A name for your SubQuery project -- Сімейство мереж. Сімейство мереж блокчейн рівня 1, для індексації якого буде розроблено цей проект SubQuery, використовуйте клавіші зі стрілками на клавіатурі, щоб вибрати один із варіантів, для цього посібника ми будемо використовувати *"Terra"* -- Мережа: конкретна мережа, для індексації якої буде розроблено цей проект SubQuery. Використовуйте клавіші зі стрілками на клавіатурі, щоб вибрати один із параметрів, для цього посібника ми будемо використовувати *"Terra"* -- Шаблон: виберіть шаблон проекту SubQuery, який буде відправною точкою для початку розробки, ми пропонуємо вибрати *"Початковий проект"* +- Сімейство мереж. Сімейство мереж блокчейн рівня 1, для індексації якого буде розроблено цей проект SubQuery, використовуйте клавіші зі стрілками на клавіатурі, щоб вибрати один із варіантів, для цього посібника ми будемо використовувати _"Terra"_ +- Мережа: конкретна мережа, для індексації якої буде розроблено цей проект SubQuery. Використовуйте клавіші зі стрілками на клавіатурі, щоб вибрати один із параметрів, для цього посібника ми будемо використовувати _"Terra"_ +- Шаблон: виберіть шаблон проекту SubQuery, який буде відправною точкою для початку розробки, ми пропонуємо вибрати _"Початковий проект"_ - Репозиторій Git (необов’язково): надайте URL-адресу Git до репозиторію, в якому буде розміщено цей проект SubQuery (якщо він розміщено в SubQuery Explorer) -- Кінцева точка RPC (обов’язково): надайте URL-адресу HTTPS для запущеної кінцевої точки RPC, яка буде використовуватися за замовчуванням для цього проекту. Цей вузол RPC повинен бути вузлом архіву (мати стан повного ланцюга). Для цього посібника ми будемо використовувати значення за замовчуванням *"https://terra-columbus-5.beta.api.onfinality.io"* +- Кінцева точка RPC (обов’язково): надайте URL-адресу HTTPS для запущеної кінцевої точки RPC, яка буде використовуватися за замовчуванням для цього проекту. Цей вузол RPC повинен бути вузлом архіву (мати стан повного ланцюга). Для цього посібника ми будемо використовувати значення за замовчуванням _"https://terra-columbus-5.beta.api.onfinality.io"_ - Автори (обов’язково): Введіть тут власника цього проекту SubQuery (наприклад, ваше ім’я!) - Опис (необов’язково): ви можете надати короткий абзац про ваш проект, який описує, які дані він містить і що користувачі можуть з ними робити - Версія (обов’язково): введіть користувацький номер версії або використовуйте стандартний (`1.0.0`) @@ -59,8 +59,8 @@ subql init Нарешті, у каталозі проекту виконайте наступну команду, щоб встановити залежності нового проекту. - ``` оболонка компакт-диск PROJECT_NAME установка yarn ``` - ``` оболонка компакт-диск PROJECT_NAME npm встановити ``` +::: code-tabs @tab:active yarn `оболонка компакт-диск PROJECT_NAME установка yarn` +@tab npm `оболонка компакт-диск PROJECT_NAME npm встановити` ::: ## Внесення змін до проекту @@ -68,7 +68,7 @@ subql init 1. Схема GraphQL в `schema.graphql` 2. Маніфест проекту в `project.yaml` -3. Картографування функціонує в каталозі ` src / mappings / ` +3. Картографування функціонує в каталозі `src / mappings /` Метою цього короткого посібника є адаптація стандартного стартового проекту, щоб почати індексацію всіх переказів із смарт-контракту bLuna. @@ -91,8 +91,8 @@ type Transfer @entity { **Важливо: коли ви вносите будь-які зміни до файлу схеми, переконайтеся, що ви повторно створили каталог типів. Зробіть це зараз.** - ``` оболонка кодоген yarn ``` - ``` оболонка npm run-script codegen ``` +::: code-tabs @tab:active yarn `оболонка кодоген yarn` +@tab npm `оболонка npm run-script codegen` ::: Згенеровані моделі можна знайти в каталозі `/src/types/models`. Щоб отримати додаткові відомості про файл `schema.graphql`, перегляньте нашу документацію в розділі [Build/GraphQL Schema](../build/graphql.md) @@ -100,22 +100,22 @@ type Transfer @entity { Файл маніфесту проекту (`project.yaml`) можна розглядати як точку входу до вашого проекту, і він визначає більшість деталей про те, як SubQuery буде індексувати та перетворювати дані ланцюга. -Ми не будемо робити багато змін у файлі маніфесту, оскільки він уже налаштований правильно, але нам потрібно змінити наші обробники. Пам’ятайте, що ми плануємо індексувати всі події передачі Terra, тому нам потрібно оновити розділ ` datasources `, щоб прочитати наступне. +Ми не будемо робити багато змін у файлі маніфесту, оскільки він уже налаштований правильно, але нам потрібно змінити наші обробники. Пам’ятайте, що ми плануємо індексувати всі події передачі Terra, тому нам потрібно оновити розділ `datasources`, щоб прочитати наступне. ```yaml відображення: - файл: ./dist/index.js - обробники: - - обробник: handleEvent - вид: terra/EventHandler - # це спрацює для всіх подій, які відповідають наступній умові фільтра смарт-контракту - фільтр: - тип: передача - messageFilter: - тип: /terra.wasm.v1beta1.MsgExecuteContract - значення: - # Ми підписуємось на смарт-контракт bLuna (наприклад, передаємо лише події з цього контракту) - договір: terra1j66jatn3k50hjtg2xemnjm8s7y8dws9xqa5y8w + файл: ./dist/index.js + обробники: + - обробник: handleEvent + вид: terra/EventHandler + # це спрацює для всіх подій, які відповідають наступній умові фільтра смарт-контракту + фільтр: + тип: передача + messageFilter: + тип: /terra.wasm.v1beta1.MsgExecuteContract + значення: + # Ми підписуємось на смарт-контракт bLuna (наприклад, передаємо лише події з цього контракту) + договір: terra1j66jatn3k50hjtg2xemnjm8s7y8dws9xqa5y8w ``` Це означає, що ми запускатимемо функцію відображення `handleEvent` кожного разу, коли буде подія `transfer` зі смарт-контракту bLuna. @@ -174,7 +174,7 @@ export асинхронну функцію handleEvent( Щоб запустити ваш новий проект SubQuery, нам спочатку потрібно створити нашу роботу. Запустіть команду збірки з кореневого каталогу проекту. - ``` оболонка побудова yarn ``` ``` оболонка npm run-script build ``` +::: code-tabs @tab:active yarn `оболонка побудова yarn` @tab npm `оболонка npm run-script build` ::: **Важливо: щоразу, коли ви вносите зміни у свої функції відображення, вам потрібно буде перебудувати свій проект** @@ -188,13 +188,9 @@ export асинхронну функцію handleEvent( У каталозі проекту виконайте таку команду: - ``` оболонка початок yarn ``` ``` оболонка npm run-script start:docker ``` - -Завантаження необхідних пакетів може зайняти деякий час ([`@subql/node`](https://www.npmjs.com/package/@subql/node), - -`@subql/query` і Postgres) вперше, але незабаром ви побачите запущений вузол SubQuery. Будьте терплячі тут.

    - +::: code-tabs @tab:active yarn `оболонка початок yarn` @tab npm `оболонка npm run-script start:docker` ::: +Завантаження необхідних пакетів може зайняти деякий час ([`@subql/node`](https://www.npmjs.com/package/@subql/node), `@subql/query` і Postgres) вперше, але незабаром ви побачите запущений вузол SubQuery. Будьте терплячі тут. ### Запитуйте свій проект @@ -204,8 +200,6 @@ export асинхронну функцію handleEvent( Для нового початкового проекту SubQuery ви можете спробувати такий запит, щоб зрозуміти, як він працює, або [дізнатися більше про мову Query GraphQL](../run_publish/graphql.md). - - ```graphql { запит { @@ -226,17 +220,12 @@ export асинхронну функцію handleEvent( } ``` - - - ### Опублікуйте проект SubQuery SubQuery надає безкоштовну керовану службу, коли ви можете розгорнути свій новий проект. Ви можете розгорнути його в [SubQuery Projects](https://project.subquery.network) і зробити запит за допомогою нашого [ Explorer](https://explorer.subquery.network). [Прочитайте посібник, щоб опублікувати свій новий проект у SubQuery Projects](../run_publish/publish.md) - - ## Настуні кроки Вітаємо, тепер у вас є локально запущений проект SubQuery, який приймає запити GraphQL API для передачі даних з bLuna. diff --git a/docs/uk/quickstart/quickstart.md b/docs/uk/quickstart/quickstart.md index 403c8d3e570..e5f77db459c 100644 --- a/docs/uk/quickstart/quickstart.md +++ b/docs/uk/quickstart/quickstart.md @@ -89,10 +89,10 @@ HelloWorld is ready Нарешті, виконайте таку команду, щоб встановити залежності нового проєкту з каталогу нового проєкту. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: -Тепер ви ініціалізували свій перший проєкт SubQuery всього за кілька простих кроків. Давайте тепер налаштуємо стандартний шаблон проєкту для конкретного цікавить блокчейну. Це допоможе вам краще зрозуміти команди

    +Тепер ви ініціалізували свій перший проєкт SubQuery всього за кілька простих кроків. Давайте тепер налаштуємо стандартний шаблон проєкту для конкретного цікавить блокчейну. Це допоможе вам краще зрозуміти команди ## 3. Внесіть зміни до свого проєкту @@ -102,4 +102,4 @@ HelloWorld is ready 2. Маніфест проєкту в `project.yaml`. 3. Функції відбивання в `src/mappings/` каталогу. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/uk/run_publish/connect.md b/docs/uk/run_publish/connect.md index 8ed3e3419e0..24f18776d5b 100644 --- a/docs/uk/run_publish/connect.md +++ b/docs/uk/run_publish/connect.md @@ -2,10 +2,10 @@ Як тільки ваше розгортання буде успішно завершено і наші вузли проіндексують ваші дані з ланцюжка, ви зможете увімкнутися до свого проєкту через відбиваний кінцеву точку запиту. -![Проєкт розгортається і синхронізується](/assets/img/projects-deploy-sync.png) +![Проєкт розгортається і синхронізується](/assets/img/projects_deploy_sync.png) Крім того, ви можете натиснути на три точки поруч із заголовком проєкту та переглянути його на SubQuery Explorer. Там ви можете використовувати ігровий майданчик в браузері, щоб почати роботу. -![Проєкти в провіднику вкладених SubQuery](/assets/img/projects-explorer.png) +![Проєкти в провіднику вкладених SubQuery](/assets/img/projects_explorer.png) ::: інформаційна записка Дізнайтеся більше про [GraphQL Query language.](./graphql.md)::: diff --git a/docs/uk/run_publish/references.md b/docs/uk/run_publish/references.md index 67404e63ea5..c4267f7798b 100644 --- a/docs/uk/run_publish/references.md +++ b/docs/uk/run_publish/references.md @@ -21,11 +21,11 @@ COMMANDS Ця команда використовує webpack для створення пакету проєкту subquery. -| Опція | Описання | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | локальна тека проєкту subquery (якщо вона ще не знаходиться в теці) | -| -o, --output | вкажіть вихідну теку збірки, наприклад, build-folder | -| --mode=(production | prod | development | dev) | [ default: production ] | +| Опція | Описання | +| ------------------ | ------------------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | локальна тека проєкту subquery (якщо вона ще не знаходиться в теці) | +| -o, --output | вкажіть вихідну теку збірки, наприклад, build-folder | +| --mode=(production | prod | development | dev) | [ default: production ] | - За допомогою `subql build` ви можете вказати додаткові точки входу в поле exports, хоча він завжди буде будуватися `index.Ts` автоматично. @@ -106,7 +106,7 @@ Options: ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean diff --git a/docs/uk/run_publish/run.md b/docs/uk/run_publish/run.md index 2267da21eb0..875de8143a6 100644 --- a/docs/uk/run_publish/run.md +++ b/docs/uk/run_publish/run.md @@ -4,7 +4,7 @@ ## Використовувати Docker -Альтернативним рішенням є запуск Docker Container, визначеного файлом `docker-compose.yml`. Для нового проєкт, який був тільки що ініціалізований, вам не потрібно буде нічого змінювати. +Альтернативним рішенням є запуск **Docker Container**, визначеного файлом `docker-compose.yml`. Для нового проєкт, який був тільки що ініціалізований, вам не потрібно буде нічого змінювати. У каталозі проекту виконайте таку команду: @@ -18,7 +18,7 @@ docker-compose pull && docker-compose up Вимога: -- База даних [Postgres](https://www.postgresql.org/) (версія 12 або вище). Поки [SubQuery](run.md#start-a-local-subquery-node) індексує блокчейн, витягнуті дані зберігаються в зовнішньому екземплярі бази даних. +- База даних [Postgres](https://www.postgresql.org/) (версія 12 або вище). Поки [SubQuery](run.md#start-a-local-subquery-node) індексує блокчейн, витягнуті дані зберігаються в зовнішньому екземплярі бази даних. Вузол SubQuery - це реалізація, яка витягує дані блокчейна на основі Substrate/Polkadot відповідно до проекту SubQuery і зберігає їх в базі даних Postgres. @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Установка - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: Після встановлення ви можете запустити вузол за допомогою наступної команди: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Вкажіть шлях до локального проекту - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ subql-node -f your-project-path #### Вкажіть файл конфігурації - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ Result: #### Запуск в локальному режимі - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Перемикання на локальну модель створить таблиці Postgres у схемі за замовчуванням `public`. diff --git a/docs/uk/run_publish/sandbox.md b/docs/uk/run_publish/sandbox.md index 47e9bb20b76..ca341acd300 100644 --- a/docs/uk/run_publish/sandbox.md +++ b/docs/uk/run_publish/sandbox.md @@ -10,10 +10,8 @@ - Не застрахований від багатьох відомих методів нападу. - ## Обмеження -- Щоб обмежити доступ до певних вбудованих модулів, лише ` Assert `, ` buffer `, ` crypto `, ` util ` та ` path < / 0> білі.

    -
  • Ми підтримуємо сторонні модулі , написані в CommonJS та hybrid бібліотек, таких як @ polkadot / * `, які використовують ESM як за замовчуванням. - -- Будь-які модулі, що використовують ` HTTP ` та ` WebSocket `, заборонені. +- Щоб обмежити доступ до певних вбудованих модулів, лише `Assert`, `buffer`, `crypto`, `util` та ` path білі. +- Ми підтримуємо [third-party-libraries](../create/mapping/polkadot.md#third-party-libraries) сторонні модулі, написані в **CommonJS** та **hybrid** бібліотек, таких як `@ polkadot / *`, які використовують ESM як за замовчуванням. +- Будь-які модулі, що використовують `HTTP` та `WebSocket`, заборонені. diff --git a/docs/uk/run_publish/upgrade.md b/docs/uk/run_publish/upgrade.md index 8504548a31e..e431b153f64 100644 --- a/docs/uk/run_publish/upgrade.md +++ b/docs/uk/run_publish/upgrade.md @@ -77,10 +77,10 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n Після того, як ваше розгортання успішно завершиться і наші вузли індексують ваші дані з ланцюга, ви зможете підключитися до вашого проекту через відображену кінцеву точку GraphQL Query. -![Проєкт розгортається і синхронізується](/assets/img/projects-deploy-sync.png) +![Проєкт розгортається і синхронізується](/assets/img/projects_deploy_sync.png) Крім того, ви можете натиснути на три точки поруч із заголовком проєкту та переглянути його на SubQuery Explorer. There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Проєкти в провіднику вкладених SubQuery](/assets/img/projects-explorer.png) +![Проєкти в провіднику вкладених SubQuery](/assets/img/projects_explorer.png) ::: інформаційна записка Дізнайтеся більше про [GraphQL Query language.](./graphql.md)::: diff --git a/docs/vi/README.md b/docs/vi/README.md index c3963995365..a59612e4023 100644 --- a/docs/vi/README.md +++ b/docs/vi/README.md @@ -4,7 +4,7 @@

    Xây dựng dApps nhanh hơn với Học viện SubQuery

    -

    Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.


    +

    Explore and implement your own efficient custom open-source API between your decentralised data and tools to query data faster and save you time.

    SubQuery now supports Polkadot, Avalanche, Cosmos, and Algorand.

    @@ -12,7 +12,7 @@

    Get a Kick-Start With Our Quick Start Guide

    -

    Build your first SubQuery project in less than 10 mins with simple guided steps. +

    Build your first SubQuery project in less than 10 mins with simple guided steps.

    Start querying data for your dApps on your most loved blockchain network using our starter projects. Explore and modify important files, and understand how SubQuery works.

    @@ -134,8 +134,7 @@
    - - + diff --git a/docs/vi/build/install.md b/docs/vi/build/install.md index c4799ef4f2f..795f34ebdc8 100644 --- a/docs/vi/build/install.md +++ b/docs/vi/build/install.md @@ -8,28 +8,30 @@ Có nhiều thành phần cần thiết khi bạn muốn tạo một dự án s Cài đặt SubQuery CLI trên toàn cầu trên thiết bị đầu cuối (terminal) của bạn bằng cách sử dụng Yarn hoặc NPM: - ```bash npm install -g @subql/cli ``` - ```shell yarn global add @subql/cli ``` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` +@tab:active yarn `shell yarn global add @subql/cli ` ::: Sau đó, bạn có thể chạy help để xem các lệnh có sẵn và cách sử dụng do CLI cung cấp: ```shell subql help ``` + ## Cài đặt @subql/node Node SubQuery là một phương thức để trích xuất dữ liệu Blockchain trên nền tảng Substrate cho mỗi dự án sử dụng SubQuery và lưu nó vào cơ sở dữ liệu Postgres. Cài đặt nút SubQuery trên toàn cầu trên thiết bị đầu cuối của bạn bằng cách sử dụng Yarn hoặc NPM: - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: Sau khi cài đặt, bạn có thể bắt đầu một node với: ```shell subql-node ``` + > Lưu ý: Nếu bạn đang sử dụng Docker hoặc lưu trữ dự án của mình trên SubQuery Projects, bạn có thể bỏ qua bước này. Bởi vì SubQuery Node đã được cung cấp trong Docker Container và cơ sở hạ tầng lưu trữ. ## Cài đặt @subql/query @@ -38,7 +40,7 @@ Thư viện truy vấn SubQuery cung cấp dịch vụ cho phép bạn truy vấ Cài đặt truy vấn SubQuery trên toàn cầu trên thiết bị đầu cuối của bạn bằng cách sử dụng Yarn hoặc NPM: - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> Lưu ý: Nếu bạn đang sử dụng Docker hoặc lưu trữ dự án của mình trên SubQuery Projects, bạn cũng có thể bỏ qua bước này. Bởi vì SubQuery Node đã được cung cấp trong Docker Container và cơ sở hạ tầng lưu trữ. \ No newline at end of file +> Lưu ý: Nếu bạn đang sử dụng Docker hoặc lưu trữ dự án của mình trên SubQuery Projects, bạn cũng có thể bỏ qua bước này. Bởi vì SubQuery Node đã được cung cấp trong Docker Container và cơ sở hạ tầng lưu trữ. diff --git a/docs/vi/build/introduction.md b/docs/vi/build/introduction.md index f8b0a5e210d..a4e9569404d 100644 --- a/docs/vi/build/introduction.md +++ b/docs/vi/build/introduction.md @@ -51,8 +51,8 @@ Thao tác này sẽ tạo một thư mục mới (hoặc cập nhật thư mục Chạy lệnh xây dựng từ thư mục gốc của dự án. - `shell yarn build ` - `bash npm run-script build ` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: ### Tùy chọn xây dựng thay thế diff --git a/docs/vi/build/manifest.md b/docs/vi/build/manifest.md index 0a858ed6f9c..a676ec08b0c 100644 --- a/docs/vi/build/manifest.md +++ b/docs/vi/build/manifest.md @@ -4,8 +4,8 @@ Tệp Manifest `project.yaml` có thể được xem như một điểm đầu v Tệp kê khai có thể ở định dạng YAML hoặc JSON. Trong tài liệu này, chúng tôi sẽ sử dụng YAML trong tất cả các ví dụ. Dưới đây là ví dụ tiêu chuẩn về `project.yaml` cơ bản. - ``` yml specVersion: 0.2.0 name: example-project #tên của dự án version: 1.0.0 #phiên bản của dự án description: '' #miêu tả dự án của bạn repository: 'https://github.com/subquery/subql-starter' # địa chỉ kho lưu trữ Git cho dự án của bạn schema: file: ./schema.graphql # Vị trí file GraphQL schema network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Hàm băm gốc của mạng endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Phần bổ sung tùy chọn điểm cuối HTTP của full chain dictionary nhằm tăng tốc độ xử lý dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # Thao tác này sẽ thay đổi block chỉ mục khởi đầu, đặt mức giá trị cao hơn để bỏ qua các block khởi đầu với ít dữ liệu hơn. mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Phần filter (lọc) này là tùy chọn, có hay không cũng được module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` - ``` yml specVersion: "0.0.1" description: '' # Miêu tả dự án của bạn repository: 'https://github.com/subquery/subql-starter' # Địa chỉ kho lưu trữ Git cho dự án của bạn schema: ./schema.graphql #Vị trí file GraphQL schema network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Tùy chọn này giúp cung cấp điểm cuối HTTP của full chain dictionary nhằm tăng tốc độ xử lý dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # Thao tác này sẽ thay đổi block chỉ mục khởi đầu, đặt mức giá trị cao hơn để bỏ qua các block khởi đầu với ít dữ liệu hơn. mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter (lọc) là một bổ sung tùy chọn (có hay không cũng được), nhưng nên có để tăng tốc độ xử lý sự kiện module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +::: code-tabs @tab v0.2.0 ` yml specVersion: 0.2.0 name: example-project #tên của dự án version: 1.0.0 #phiên bản của dự án description: '' #miêu tả dự án của bạn repository: 'https://github.com/subquery/subql-starter' # địa chỉ kho lưu trữ Git cho dự án của bạn schema: file: ./schema.graphql # Vị trí file GraphQL schema network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' # Hàm băm gốc của mạng endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Phần bổ sung tùy chọn điểm cuối HTTP của full chain dictionary nhằm tăng tốc độ xử lý dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - kind: substrate/Runtime startBlock: 1 # Thao tác này sẽ thay đổi block chỉ mục khởi đầu, đặt mức giá trị cao hơn để bỏ qua các block khởi đầu với ít dữ liệu hơn. mapping: file: "./dist/index.js" handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Phần filter (lọc) này là tùy chọn, có hay không cũng được module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` +@tab v0.0.1 ` yml specVersion: "0.0.1" description: '' # Miêu tả dự án của bạn repository: 'https://github.com/subquery/subql-starter' # Địa chỉ kho lưu trữ Git cho dự án của bạn schema: ./schema.graphql #Vị trí file GraphQL schema network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' # Tùy chọn này giúp cung cấp điểm cuối HTTP của full chain dictionary nhằm tăng tốc độ xử lý dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' dataSources: - name: main kind: substrate/Runtime startBlock: 1 # Thao tác này sẽ thay đổi block chỉ mục khởi đầu, đặt mức giá trị cao hơn để bỏ qua các block khởi đầu với ít dữ liệu hơn. mapping: handlers: - handler: handleBlock kind: substrate/BlockHandler - handler: handleEvent kind: substrate/EventHandler filter: #Filter (lọc) là một bổ sung tùy chọn (có hay không cũng được), nhưng nên có để tăng tốc độ xử lý sự kiện module: balances method: Deposit - handler: handleCall kind: substrate/CallHandler ```` ::: ## Di chuyển từ v0.0.1 sang v0.2.0 @@ -29,15 +29,15 @@ Theo mặc định, CLI sẽ tạo các dự án SubQuery theo phiên bản v0.2 USAGE $ subql init [PROJECTNAME] -ARGUMENTS PROJECTNAME Give the starter project name +ARGUMENTS PROJECTNAME Give the starter project name | Các Tùy chọn | Mô tả | -| ----------------------- | ---------------------------------------------------------------------------- | +| ----------------------- | ---------------------------------------------------------------------------- | ------------------------------------------ | | -f, --force | | | -l, --location=location | thư mục cục bộ để chứa dự án tạo ra | | -install-dependencies | Cài đặt các phần phụ thuộc | | --npm | Buộc sử dụng NPM thay vì yarn, chỉ hoạt động với `install-dependencies` flag | -| --specVersion=0.0.1 | 0.2.0 [mặc định: 0.2.0] | Phiên bản đặc tả sẽ được sử dụng bởi dự án | +| --specVersion=0.0.1 | 0.2.0 [mặc định: 0.2.0] | Phiên bản đặc tả sẽ được sử dụng bởi dự án | ## Tổng quan @@ -72,19 +72,19 @@ ARGUMENTS PROJECTNAME Give the starter project name ### Thông số kỹ thuật Data Source Định nghĩa phần dữ liệu sẽ được lọc và trích xuất và vị trí của trình xử lý hàm ánh xạ để áp dụng chuyển đổi dữ liệu. -| Trường | v0.0.1 | v0.2.0 | Mô tả | +| Trường | v0.0.1 | v0.2.0 | Mô tả | | -------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **name** | String | String | Tên của nguồn dữ liệu | -| **kind** | [substrate/Runtime](./manifest/#data-sources-and-mapping) | substrate/Runtime, [substrate/CustomDataSource](./manifest/#custom-data-sources) | Chúng tôi hỗ trợ các kiểu dữ liệu mặc định của Substrate runtime, chẳng hạn như khối, sự kiện và phần bổ sung (gọi).
    Từ v0.2.0, chúng tôi hỗ trợ dữ liệu runtime tùy chỉnh, chẳng hạn như smart contract. | -| **startBlock** | Integer | Integer | Thao tác này sẽ thay đổi khối bắt đầu lập chỉ mục, đặt khối này cao hơn để bỏ qua khối ban đầu với ít dữ liệu hơn | -| **mapping** | Thông số kỹ thuật ánh xạ | Thông số kỹ thuật ánh xạ | | -| **filter** | [network-filters](./manifest/#network-filters) | String | Lọc nguồn dữ liệu để thực thi theo tên thông số điểm cuối mạng | +| **name** | String | String | Tên của nguồn dữ liệu | +| **kind** | [substrate/Runtime](./manifest/#data-sources-and-mapping) | substrate/Runtime, [substrate/CustomDataSource](./manifest/#custom-data-sources) | Chúng tôi hỗ trợ các kiểu dữ liệu mặc định của Substrate runtime, chẳng hạn như khối, sự kiện và phần bổ sung (gọi).
    Từ v0.2.0, chúng tôi hỗ trợ dữ liệu runtime tùy chỉnh, chẳng hạn như smart contract. | +| **startBlock** | Integer | Integer | Thao tác này sẽ thay đổi khối bắt đầu lập chỉ mục, đặt khối này cao hơn để bỏ qua khối ban đầu với ít dữ liệu hơn | +| **mapping** | Thông số kỹ thuật ánh xạ | Thông số kỹ thuật ánh xạ | | +| **filter** | [network-filters](./manifest/#network-filters) | String | Lọc nguồn dữ liệu để thực thi theo tên thông số điểm cuối mạng | ### Thông số kỹ thuật ánh xạ -| Trường | v0.0.1 | v0.2.0 | Mô tả | -| ---------------------- | -------------------------------------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| **file** | String | String | Đường dẫn đến mục nhập ánh xạ | +| Trường | v0.0.1 | v0.2.0 | Mô tả | +| ---------------------- | -------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **file** | String | String | Đường dẫn đến mục nhập ánh xạ | | **handlers & filters** | [Default handlers and filters](#schema-spec) | Default handlers and filters,
    [Custom handlers and filters](#custom-data-sources) | Liệt kê tất cả [hàm ánh xạ](./mapping/polkadot.md) và các hàm xử lý tương ứng của chúng, với các bộ lọc ánh xạ bổ sung.

    Đối với hàm xử lý ánh xạ runtime tùy chỉnh, vui lòng xem [Nguồn dữ liệu tùy chỉnh](#custom-data-sources) | ## Nguồn dữ liệu và ánh xạ @@ -105,8 +105,8 @@ Bảng sau giải thích các bộ lọc được hỗ trợ bởi các trình x **Dự án SubQuery của bạn sẽ hiệu quả hơn nhiều khi bạn sử dụng trình xử lý sự kiện và cuộc gọi với các bộ lọc ánh xạ thích hợp** -| Hàm xử lý | Bộ lọc được hỗ trợ | -| ------------------------------------------ | ---------------------------- | +| Hàm xử lý | Bộ lọc được hỗ trợ | +| --------------------------------------------------- | ---------------------------- | | [BlockHandler](./mapping/polkadot.md#block-handler) | `specVersion` | | [EventHandler](./mapping/polkadot.md#event-handler) | `module`,`method` | | [CallHandler](./mapping/polkadot.md#call-handler) | `module`,`method` ,`success` | @@ -154,8 +154,8 @@ Chúng tôi hỗ trợ các kiểu bổ sung được sử dụng bởi các mod Trong ví dụ v0.2.0 bên dưới, `network.chaintypes` đang trỏ đến một tệp có tất cả các loại tùy chỉnh được nhúng vào, Đây là tệp chainpec tiêu chuẩn khai báo các kiểu cụ thể được hỗ trợ bởi chuỗi khối này trong cả định dạng `.json`, `.yaml` hoặc `.js`. - `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` - `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` +::: code-tabs @tab v0.2.0 `yml network: genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' endpoint: 'ws://host.kittychain.io/public-ws' chaintypes: file: ./types.json # The relative filepath to where custom types are stored ...` +@tab v0.0.1 `yml ... network: endpoint: "ws://host.kittychain.io/public-ws" types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 filter: #Optional specName: kitty-chain mapping: handlers: - handler: handleKittyBred kind: substrate/CallHandler filter: module: kitties method: breed success: true` ::: Để sử dụng typescript cho các loại chuỗi của bạn, hãy bao gồm tệp đó trong thư mục `src` (ví dụ: `./src/types.ts`), chạy `yarn build` và sau đó trỏ đến tệp js đã tạo nằm trong thư mục `dist`. @@ -172,7 +172,7 @@ Những điều cần lưu ý khi sử dụng tệp loại chuỗi có phần m Đây là ví dụ về tệp loại chuỗi `.ts`: - `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` ::: ## Nguồn dữ liệu tùy chỉnh @@ -198,6 +198,6 @@ Người dùng có thể thêm `filter` trên `dataSources` để quyết địn Dưới đây là một ví dụ hiển thị các nguồn dữ liệu khác nhau cho cả mạng Polkadot và Kusama. - `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` +::: code-tabs @tab v0.0.1 `yaml --- network: endpoint: 'wss://polkadot.api.onfinality.io/public-ws' #Create a template to avoid redundancy definitions: mapping: &mymapping handlers: - handler: handleBlock kind: substrate/BlockHandler dataSources: - name: polkadotRuntime kind: substrate/Runtime filter: #Optional specName: polkadot startBlock: 1000 mapping: *mymapping #use template here - name: kusamaRuntime kind: substrate/Runtime filter: specName: kusama startBlock: 12000 mapping: *mymapping # can reuse or change ` - +::: diff --git a/docs/vi/build/mapping.md b/docs/vi/build/mapping.md index a01bea5b81c..a50a0359a23 100644 --- a/docs/vi/build/mapping.md +++ b/docs/vi/build/mapping.md @@ -67,9 +67,9 @@ Mục tiêu của chúng tôi là cung cấp tất cả các nguồn dữ liệu Đây là những giao diện chúng tôi hiện đang hỗ trợ: -- [api.query. <module>. <method>()](https://polkadot.js.org/docs/api/start/api.query) sẽ truy vấn khối hiện tại. -- [api.query. <module>. <method>.multi ()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) sẽ thực hiện nhiều truy vấn loại giống nhau tại khối hiện tại. -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) sẽ thực hiện nhiều truy vấn khác nhau tại khối hiện tại. +- [api.query. <module>. <method>()](https://polkadot.js.org/docs/api/start/api.query) sẽ truy vấn khối **hiện tại**. +- [api.query. <module>. <method>.multi ()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) sẽ thực hiện nhiều truy vấn loại **giống nhau** tại khối hiện tại. +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) sẽ thực hiện nhiều truy vấn **khác nhau** tại khối hiện tại. Đây là những giao diện mà hiện tại chúng tôi **KHÔNG** hỗ trợ: diff --git a/docs/vi/build/substrate-evm.md b/docs/vi/build/substrate-evm.md index c4e389eda9f..e8eb79d8c3b 100644 --- a/docs/vi/build/substrate-evm.md +++ b/docs/vi/build/substrate-evm.md @@ -14,7 +14,7 @@ Các mạng được hỗ trợ: ## Bắt đầu -1. Thêm custom data source dưới dạng dependency ` fiber add @ subql / contract-processors ` +1. Thêm custom data source dưới dạng dependency `fiber add @ subql / contract-processors` 2. Thêm một custom data source như được mô tả bên dưới 3. Thêm handlers cho custom data source vào code của bạn @@ -28,10 +28,10 @@ Các mạng được hỗ trợ: ### Tuỳ chọn Processor -| Trường | Kiểu dữ liệu | Bắt buộc | Mô tả | -| ------- | ---------------- | -------- | -------------------------------------------------------------------------------------------------------------------- | -| abi | String | Không | ABI được bộ xử lý sử dụng để phân tích cú pháp các đối số. Phải là key của `assets` | -| address | String or `null` | Không | Địa chỉ hợp đồng, nơi mà bắt đầu sự kiện hoặc cuộc gọi được thực hiện tới. ` null ` sẽ bắt các lệnh gọi tạo hợp đồng | +| Trường | Kiểu dữ liệu | Bắt buộc | Mô tả | +| ------- | ---------------- | -------- | ------------------------------------------------------------------------------------------------------------------ | +| abi | String | Không | ABI được bộ xử lý sử dụng để phân tích cú pháp các đối số. Phải là key của `assets` | +| address | String or `null` | Không | Địa chỉ hợp đồng, nơi mà bắt đầu sự kiện hoặc cuộc gọi được thực hiện tới. `null` sẽ bắt các lệnh gọi tạo hợp đồng | ## MoonbeamCall @@ -44,10 +44,10 @@ Hoạt động giống như [substrate/CallHandler](../create/mapping/#call-hand ### Call Filters -| Trường | Kiểu dữ liệu | Các ví dụ | Mô tả | -| -------- | ------------ | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| function | String | 0x095ea7b3, approve(address to,uint256 value) | Hoặc chuỗi [Function Signature](https://docs.ethers.io/v5/api/utils/abi/fragments/#FunctionFragment) hoặc hàm ` sighash ` dùng để lọc hàm được gọi trên hợp đồng | -| from | String | 0x6bd193ee6d2104f14f94e2ca6efefae561a4334b | Một địa chỉ Ethereum đã gửi giao dịch | +| Trường | Kiểu dữ liệu | Các ví dụ | Mô tả | +| -------- | ------------ | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| function | String | 0x095ea7b3, approve(address to,uint256 value) | Hoặc chuỗi [Function Signature](https://docs.ethers.io/v5/api/utils/abi/fragments/#FunctionFragment) hoặc hàm `sighash` dùng để lọc hàm được gọi trên hợp đồng | +| from | String | 0x6bd193ee6d2104f14f94e2ca6efefae561a4334b | Một địa chỉ Ethereum đã gửi giao dịch | ### Handlers @@ -74,7 +74,8 @@ Hoạt động giống như [substrate/EventHandler](../create/mapping/#event-ha | ------ | ------------ | --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | topics | String array | Transfer(address indexed from,address indexed to,uint256 value) | Bộ lọc chủ đề tuân theo bộ lọc nhật ký Ethereum JSON-PRC, bạn có thể tìm thêm tài liệu [tại đây](https://docs.ethers.io/v5/concepts/events/). | -Ghi chú về các topic: +**Ghi chú về các topic:** + Có một vài cải tiến từ các bộ lọc nhật ký cơ bản: - Các Topics không cần thêm 0 @@ -123,7 +124,7 @@ dataSources: # function: approve(address,uint256) function: approve(address to,uint256 value) from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' - + Text Xpath: /pre/code ``` diff --git a/docs/vi/faqs/faqs.md b/docs/vi/faqs/faqs.md index 1dc9bf2b726..efe79da0385 100644 --- a/docs/vi/faqs/faqs.md +++ b/docs/vi/faqs/faqs.md @@ -16,7 +16,7 @@ SubQuery also provides free, production grade hosting of projects for developers **Mạng SubQuery** -The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. Mạng SubQuery lập chỉ mục và dữ liệu dịch vụ cho cộng đồng toàn cầu theo cách được khuyến khích và có thể xác minh. Sau khi xuất bản dự án của bạn lên Mạng SubQuery, bất kỳ ai cũng có thể lập chỉ mục và lưu trữ nó - cung cấp dữ liệu cho người dùng trên toàn thế giới nhanh hơn và đáng tin cậy hơn. +The SubQuery Network allows developers to completely decentralise their infrastructure stack. It is the most open, performant, reliable, and scalable data service for dApps. Mạng SubQuery lập chỉ mục và dữ liệu dịch vụ cho cộng đồng toàn cầu theo cách được khuyến khích và có thể xác minh. Sau khi xuất bản dự án của bạn lên Mạng SubQuery, bất kỳ ai cũng có thể lập chỉ mục và lưu trữ nó - cung cấp dữ liệu cho người dùng trên toàn thế giới nhanh hơn và đáng tin cậy hơn. More information [here](/subquery_network/introduction.md). @@ -26,7 +26,7 @@ The best way to get started with SubQuery is to try out our [Hello World tutoria ## Làm cách nào để tôi có thể đóng góp hoặc đưa ra phản hồi cho SubQuery? -Chúng tôi rất mong nhận được ý kiến đóng góp và phản hồi từ cộng đồng. To contribute the code, fork the repository of your interest and make your changes. Sau đó hãy sử dụng chức năng Pull Request hay gọi tắt là PR. Don't forget to test as well. Also check out our contributions guidelines. +Chúng tôi rất mong nhận được ý kiến đóng góp và phản hồi từ cộng đồng. To contribute the code, fork the repository of your interest and make your changes. Sau đó hãy sử dụng chức năng Pull Request hay gọi tắt là PR. Don't forget to test as well. Also check out our [contributions guidelines](../miscellaneous/contributing.html). To give feedback, contact us at hello@subquery.network or jump onto our [discord channel](https://discord.com/invite/78zg8aBSMG). @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= Note that it is recommended to use `--force-clean` when changing the `startBlock` within the project manifest (`project.yaml`) in order to begin reindexing from the configured block. If `startBlock` is changed without a `--force-clean` of the project, then the indexer will continue indexing with the previously configured `startBlock`. - ## How can I optimise my project to speed it up? Performance is a crucial factor in each project. Fortunately, there are several things you could do to improve it. Here is the list of some suggestions: @@ -89,13 +88,13 @@ Performance is a crucial factor in each project. Fortunately, there are several - Set the start block to when the contract was initialised. - Always use a [dictionary](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (we can help create one for your new network). - Optimise your schema design, keep it as simple as possible. - - Try to reduce unnecessary fields and columns. - - Create indexes as needed. + - Try to reduce unnecessary fields and columns. + - Create indexes as needed. - Use parallel/batch processing as often as possible. - - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. - - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. - - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. + - Use `api.queryMulti()` to optimise Polkadot API calls inside mapping functions and query them in parallel. This is a faster way than a loop. + - Use `Promise.all()`. In case of multiple async functions, it is better to execute them and resolve in parallel. + - If you want to create a lot of entities within a single handler, you can use `store.bulkCreate(entityName: string, entities: Entity[])`. You can create them in parallel, no need to do this one by one. - Making API calls to query state can be slow. You could try to minimise calls where possible and to use `extrinsic/transaction/event` data. - Use `worker threads` to move block fetching and block processing into its own worker thread. It could speed up indexing by up to 4 times (depending on the particular project). You can easily enable it using the `-workers=` flag. Note that the number of available CPU cores strictly limits the usage of worker threads. For now, it is only available for Substrate and Cosmos and will soon be integrated for Avalanche. - Note that `JSON.stringify` doesn’t support native `BigInts`. Our logging library will do this internally if you attempt to log an object. We are looking at a workaround for this. -- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. \ No newline at end of file +- Use a convenient `modulo` filter to run a handler only once to a specific block. This filter allows handling any given number of blocks, which is extremely useful for grouping and calculating data at a set interval. For instance, if modulo is set to 50, the block handler will run on every 50 blocks. It provides even more control over indexing data to developers and can be implemented like so below in your project manifest. diff --git a/docs/vi/miscellaneous/contributing.md b/docs/vi/miscellaneous/contributing.md index 6f5d453bf34..3ce9f50226f 100644 --- a/docs/vi/miscellaneous/contributing.md +++ b/docs/vi/miscellaneous/contributing.md @@ -2,7 +2,7 @@ Chào mừng và chân thành cảm ơn bạn đã cân nhắc đóng góp cho dự án SubQuery! Cùng nhau, chúng ta có thể mở đường cho một tương lai phi tập trung hơn. -::: info Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: +::: tip Note This documentation is actively maintained by the SubQuery team. We welcome your contributions. You can do so by forking our GitHub project and making changes to all the documentation markdown files under the `docs` directory. ::: Sau đây là một tập hợp các nguyên tắc (không phải quy tắc) để đóng góp vào SubQuery. Following these guidelines will help us make the contribution process easy and effective for everyone involved. It also communicates that you agree to respect the time of the developers managing and developing this project. In return, we will reciprocate that respect by addressing your issue, considering changes, collaborating on improvements, and helping you finalise your pull requests. @@ -14,8 +14,8 @@ We take our open source community projects and responsibility seriously and hold Contributions to our repositories are made through Issues and Pull Requests (PRs). A few general guidelines that cover both: -* Tìm kiếm các Vấn đề và PR hiện có trước khi tự làm. -* Chúng tôi làm việc chăm chỉ để đảm bảo các vấn đề được xử lý kịp thời nhưng tùy thuộc vào mức độ ảnh hưởng, có thể mất một khoảng thời gian để điều tra nguyên nhân gốc rễ. Đề cập @ thân thiện trong chuỗi nhận xét cho người gửi hoặc người đóng góp có thể giúp thu hút sự chú ý nếu vấn đề của bạn đang bị chặn. +- Tìm kiếm các Vấn đề và PR hiện có trước khi tự làm. +- Chúng tôi làm việc chăm chỉ để đảm bảo các vấn đề được xử lý kịp thời nhưng tùy thuộc vào mức độ ảnh hưởng, có thể mất một khoảng thời gian để điều tra nguyên nhân gốc rễ. Đề cập @ thân thiện trong chuỗi nhận xét cho người gửi hoặc người đóng góp có thể giúp thu hút sự chú ý nếu vấn đề của bạn đang bị chặn. ## Cách đóng góp @@ -23,32 +23,32 @@ Contributions to our repositories are made through Issues and Pull Requests (PRs Bugs are tracked as GitHub issues. When logging an issue, explain the problem and include additional details to help maintainers reproduce the problem: -* Sử dụng tiêu đề rõ ràng và mang tính mô tả cho vấn đề để xác định vấn đề. -* Mô tả các bước chính xác để tái tạo vấn đề. -* Mô tả trạng thái bạn đã quan sát được sau khi làm theo các bước. -* Giải thích hành vi nào bạn muốn thấy và tại sao. -* Bao gồm ảnh chụp màn hình nếu có thể. +- Sử dụng tiêu đề rõ ràng và mang tính mô tả cho vấn đề để xác định vấn đề. +- Mô tả các bước chính xác để tái tạo vấn đề. +- Mô tả trạng thái bạn đã quan sát được sau khi làm theo các bước. +- Giải thích hành vi nào bạn muốn thấy và tại sao. +- Bao gồm ảnh chụp màn hình nếu có thể. ### Gửi Pull Requests In general, we follow the "fork-and-pull" Git workflow: -* Fork the repository to your own Github account. -* Clone the project to your machine. -* Create a branch locally with a succinct but descriptive name. -* Commit changes to the branch. -* Following any formatting and testing guidelines specific to this repo. -* Push changes to your fork. -* Open a PR in our repository. +- Fork the repository to your own Github account. +- Clone the project to your machine. +- Create a branch locally with a succinct but descriptive name. +- Commit changes to the branch. +- Following any formatting and testing guidelines specific to this repo. +- Push changes to your fork. +- Open a PR in our repository. ## Quy ước mã hóa ### Thông báo cam kết Git -* Use the present tense ("Add feature" not "Added feature"). -* Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). -* Limit the first line to 72 characters or less. +- Use the present tense ("Add feature" not "Added feature"). +- Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). +- Limit the first line to 72 characters or less. ### Hướng dẫn định kiểu JavaScript -* All JavaScript code is linted with Prettier and ESLint. +- All JavaScript code is linted with Prettier and ESLint. diff --git a/docs/vi/quickstart/helloworld-localhost.md b/docs/vi/quickstart/helloworld-localhost.md index 9bfaf0bafa0..b9af1d7ca33 100644 --- a/docs/vi/quickstart/helloworld-localhost.md +++ b/docs/vi/quickstart/helloworld-localhost.md @@ -88,8 +88,8 @@ cd subqlHelloWorld Bây giờ cài đặt yarn hoặc node để cài các phụ thuộc khác nhau. - ```shell yarn install ``` - ```bash npm install ``` +::: code-tabs @tab:active yarn `shell yarn install ` +@tab npm `bash npm install ` ::: Ví dụ` yarn install` @@ -109,8 +109,8 @@ success Saved lockfile. Bây giờ, hãy chạy `yarn codegen` để tạo Typescript từ sơ đồ GraphQL. - ```shell yarn codegen ``` - ```bash npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `bash npm run-script codegen ` ::: Ví dụ` yarn codegen` @@ -133,8 +133,8 @@ $ ./node_modules/.bin/subql codegen Bước tiếp theo là xây dựng mã với `yarn build`. - ```shell yarn build ``` - ```bash npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` +@tab npm `bash npm run-script build ` ::: Ví dụ `yarn build` diff --git a/docs/vi/quickstart/quickstart-avalanche.md b/docs/vi/quickstart/quickstart-avalanche.md index c84363246ad..9e1ff6cb1bd 100644 --- a/docs/vi/quickstart/quickstart-avalanche.md +++ b/docs/vi/quickstart/quickstart-avalanche.md @@ -59,15 +59,15 @@ Sau khi quá trình khởi tạo hoàn tất, bạn sẽ thấy một thư mục Cuối cùng, trong thư mục dự án, chạy lệnh sau để cài đặt các phụ thuộc của dự án mới. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Thực hiện các thay đổi trên dự án của bạn Trong gói khởi đầu mà bạn vừa khởi tạo, chúng tôi đã cung cấp cấu hình tiêu chuẩn cho dự án của bạn. Bạn sẽ làm việc chủ yếu trên các tệp sau: 1. Lược đồ GraphQL ở `schema.graphql` -2. Tệp Kê khai dự án ở ` project.yaml ` +2. Tệp Kê khai dự án ở `project.yaml` 3. Các chức năng ánh xạ trong thư mục `src/mappings/` Mục tiêu của hướng dẫn nhanh này là điều chỉnh dự án khởi động tiêu chuẩn để lập chỉ mục tất cả `Phê duyệt` nhật ký giao dịch của Pangolin. @@ -92,8 +92,8 @@ type PangolinApproval @entity { **Quan trọng: Khi bạn thực hiện bất kỳ thay đổi nào đối với tệp lược đồ, hãy đảm bảo rằng bạn tạo lại thư mục types của mình. Thực hiện ngay bây giờ.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Bạn sẽ tìm thấy các model đã tạo trong thư mục `/src/types/models`. Để biết thêm thông tin về tệp `schema.graphql`, hãy xem tài liệu của chúng tôi trong [Lược đồ Build/GraphQL ](../build/graphql.md) @@ -169,7 +169,7 @@ Hàm này đang nhận nhật ký của Avalanche bao gồm dữ liệu truyền Để chạy Dự án SubQuery mới của bạn trước tiên chúng tôi cần xây dựng công việc của mình. Chạy lệnh xây dựng từ thư mục gốc của dự án. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Quan trọng: Bất cứ khi nào bạn thực hiện các thay đổi đối với các hàm ánh xạ của mình, bạn sẽ cần phải xây dựng lại dự án của mình** @@ -183,7 +183,7 @@ Tất cấu hình điều khiển cách chạy nút SubQuery được xác đị Trong thư mục dự án chạy lệnh sau: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Có thể mất một chút thời gian để tải xuống các gói cần thiết ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), và Postgres) cho lần đầu tiên, nhưng bạn sẽ sớm thấy một node SubQuery đang chạy. Hãy kiên nhẫn ở bước này. diff --git a/docs/vi/quickstart/quickstart-cosmos.md b/docs/vi/quickstart/quickstart-cosmos.md index ea824db4f7c..1211cf8077d 100644 --- a/docs/vi/quickstart/quickstart-cosmos.md +++ b/docs/vi/quickstart/quickstart-cosmos.md @@ -44,15 +44,15 @@ Sau khi quá trình khởi tạo hoàn tất, bạn sẽ thấy một thư mục Cuối cùng, trong thư mục dự án, chạy lệnh sau để cài đặt các phụ thuộc của dự án mới. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Thực hiện các thay đổi trên dự án của bạn Trong gói khởi đầu mà bạn vừa khởi tạo, chúng tôi đã cung cấp cấu hình tiêu chuẩn cho dự án của bạn. Bạn sẽ làm việc chủ yếu trên các tệp sau: 1. Lược đồ GraphQL ở `schema.graphql` -2. Tệp Kê khai dự án ở ` project.yaml ` +2. Tệp Kê khai dự án ở `project.yaml` 3. Các chức năng ánh xạ trong thư mục `src/mappings/` Mục tiêu của hướng dẫn bắt đầu nhanh này là điều chỉnh dự án khởi đầu tiêu chuẩn để bắt đầu lập chỉ mục tất cả các giao dịch từ hợp đồng thông minh bLuna. @@ -75,8 +75,8 @@ type Vote @entity { **Quan trọng: Khi bạn thực hiện bất kỳ thay đổi nào đối với tệp lược đồ, hãy đảm bảo rằng bạn tạo lại thư mục types của mình. Thực hiện ngay bây giờ.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Bạn sẽ tìm thấy các model đã tạo trong `thư mục /src/types/models`. Để biết thêm thông tin về tệp `schema.graphql`, hãy xem tài liệu của chúng tôi trong [Lược đồ Build/GraphQL ](../build/graphql.md) @@ -145,7 +145,7 @@ Hàm này đang nhận CosmosMessage bao gồm dữ liệu tin nhắn trên tr Để chạy Dự án SubQuery mới của bạn trước tiên chúng tôi cần xây dựng công việc của mình. Chạy lệnh xây dựng từ thư mục gốc của dự án. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Quan trọng: Bất cứ khi nào bạn thực hiện các thay đổi đối với các hàm ánh xạ của mình, bạn sẽ cần phải xây dựng lại dự án của mình** @@ -159,7 +159,7 @@ Tất cả cấu hình kiểm soát cách chạy node SubQuery được định Trong thư mục dự án chạy lệnh sau: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Có thể mất một chút thời gian để tải xuống các gói cần thiết ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), và Postgres) cho lần đầu tiên, nhưng bạn sẽ sớm thấy một node SubQuery đang chạy. Hãy kiên nhẫn ở bước này. @@ -173,10 +173,9 @@ Bạn sẽ thấy một sân chơi GraphQL đang hiển thị trong explorer và ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id diff --git a/docs/vi/quickstart/quickstart-polkadot.md b/docs/vi/quickstart/quickstart-polkadot.md index 5a55d2b1dee..65d890f7ffa 100644 --- a/docs/vi/quickstart/quickstart-polkadot.md +++ b/docs/vi/quickstart/quickstart-polkadot.md @@ -43,10 +43,10 @@ subql init Bạn sẽ được hỏi một số câu hỏi khi dự án SubQuery được khởi tạo: - Project name: Tên dự án SubQuery của bạn -- Network family: Một mạng blockchain layer-1 mà dự án SubQuery này sẽ được phát triển để lập chỉ mục. Sử dụng các phím mũi tên để chọn từ các tùy chọn có sẵn. Đối với hướng dẫn này, chúng tôi sẽ sử dụng *"Substrate"* -- Network: Network cụ thể mà dự án SubQuery này sẽ được phát triển để lập chỉ mục. Sử dụng các phím mũi tên để chọn từ các tùy chọn có sẵn. Đối với hướng dẫn này, chúng tôi sẽ sử dụng *"Polkadot"* -- Template project: Chọn một dự án mẫu SubQuery sẽ cung cấp một điểm khởi đầu để bắt đầu phát triển. Chúng tôi khuyên bạn nên chọn dự án *"subql-starter"*. -- RPC endpoint: Cung cấp HTTPS URL cho RPC endpoint đang chạy, sẽ được sử dụng mặc định cho dự án này. Bạn có thể nhanh chóng truy cập các điểm cuối công khai cho các mạng Polkadot khác nhau, tạo node chuyên dụng riêng của mình bằng cách sử dụng [OnFinality](https://app.onfinality.io) hoặc chỉ sử dụng điểm cuối Polkadot mặc định. Nút RPC này phải là một nút lưu trữ (có trạng thái chuỗi đầy đủ). Đối với hướng dẫn này, chúng tôi sẽ sử dụng giá trị mặc định *"https://polkadot.api.onfinality.io"* +- Network family: Một mạng blockchain layer-1 mà dự án SubQuery này sẽ được phát triển để lập chỉ mục. Sử dụng các phím mũi tên để chọn từ các tùy chọn có sẵn. Đối với hướng dẫn này, chúng tôi sẽ sử dụng _"Substrate"_ +- Network: Network cụ thể mà dự án SubQuery này sẽ được phát triển để lập chỉ mục. Sử dụng các phím mũi tên để chọn từ các tùy chọn có sẵn. Đối với hướng dẫn này, chúng tôi sẽ sử dụng _"Polkadot"_ +- Template project: Chọn một dự án mẫu SubQuery sẽ cung cấp một điểm khởi đầu để bắt đầu phát triển. Chúng tôi khuyên bạn nên chọn dự án _"subql-starter"_. +- RPC endpoint: Cung cấp HTTPS URL cho RPC endpoint đang chạy, sẽ được sử dụng mặc định cho dự án này. Bạn có thể nhanh chóng truy cập các điểm cuối công khai cho các mạng Polkadot khác nhau, tạo node chuyên dụng riêng của mình bằng cách sử dụng [OnFinality](https://app.onfinality.io) hoặc chỉ sử dụng điểm cuối Polkadot mặc định. Nút RPC này phải là một nút lưu trữ (có trạng thái chuỗi đầy đủ). Đối với hướng dẫn này, chúng tôi sẽ sử dụng giá trị mặc định _"https://polkadot.api.onfinality.io"_ - Git repository: Cung cấp Git URL cho repo mà dự án SubQuery này sẽ được lưu trữ (khi được lưu trữ trong SubQuery Explorer) hoặc chấp nhận giá trị mặc định được cung cấp. - Authors: Nhập chủ sở hữu của dự án SubQuery này tại đây (ví dụ: tên của bạn!) Hoặc chấp nhận giá trị mặc định đã cung cấp. - Description: Cung cấp một đoạn giới thiệu ngắn về dự án của bạn, mô tả dự án chứa dữ liệu gì và người dùng có thể làm gì với dự án đó hoặc chấp nhận giá trị mặc định đã cung cấp. @@ -57,14 +57,14 @@ Sau khi quá trình khởi tạo hoàn tất, bạn sẽ thấy một thư mục Cuối cùng, trong thư mục dự án, chạy lệnh sau để cài đặt các phụ thuộc của dự án mới. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Thực hiện các thay đổi đối với dự án của bạn Trong gói khởi động vừa được khởi tạo, một cấu hình tiêu chuẩn đã được cung cấp. Đó là: -1. Lược đồ GraphQL trong ` schema.graphql ` +1. Lược đồ GraphQL trong `schema.graphql` 2. Tệp Kê khai dự án trong `project.yaml` 3. Các hàm ánh xạ trong thư mục `src/mappings/` @@ -88,8 +88,8 @@ type Transfer @entity { **Quan trọng: Khi bạn thực hiện bất kỳ thay đổi nào đối với tệp lược đồ, hãy đảm bảo rằng bạn tạo lại thư mục types của mình.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Bạn sẽ tìm thấy các mô hình đã tạo trong thư mục `/src/types/models` Để biết thêm thông tin về tệp `schema.graphql`, hãy xem tài liệu của chúng tôi trong [Lược đồ Build/GraphQL ](../build/graphql.md) @@ -133,22 +133,22 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleEvent(event: SubstrateEvent): Promise { - // Get data from the event - // The balances.transfer event has the following payload \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Create the new transfer entity - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Get data from the event + // The balances.transfer event has the following payload \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Create the new transfer entity + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` @@ -160,7 +160,7 @@ Hàm này đang nhận SubstrateEvent bao gồm dữ liệu truyền tải trên Để chạy Dự án SubQuery mới, trước tiên chúng ta cần xây dựng công việc của mình. Chạy lệnh xây dựng từ thư mục gốc của dự án. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Quan trọng: Bất cứ khi nào bạn thực hiện các thay đổi đối với các hàm ánh xạ của mình, bạn sẽ cần phải xây dựng lại dự án của mình** @@ -174,7 +174,7 @@ Tất cả cấu hình kiểm soát cách chạy node SubQuery được định Trong thư mục dự án, hãy chạy lệnh sau: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Có thể mất một chút thời gian để tải xuống các gói cần thiết ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), và Postgres) cho lần đầu tiên, nhưng bạn sẽ sớm thấy một nút SubQuery đang chạy trong màn hình đầu cuối. @@ -189,10 +189,7 @@ Bạn sẽ thấy một playground GraphQL trong trình duyệt và các lược ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount diff --git a/docs/vi/quickstart/quickstart-terra.md b/docs/vi/quickstart/quickstart-terra.md index 5382ffa3fa4..c9f14f9c05f 100644 --- a/docs/vi/quickstart/quickstart-terra.md +++ b/docs/vi/quickstart/quickstart-terra.md @@ -45,11 +45,11 @@ subql init Bạn sẽ được hỏi một số câu hỏi khi dự án SubQuery được khởi tạo: - Project Name: Tên dự án SubQuery của bạn -- Network Family: Mạng blockchain layer-1 mà dự án Subquery sẽ được phát triển để lập chỉ mục, dùng dấu mũi tên để di chuyển giữa các lựa chọn, trong bài hướng dẫn này, chúng ta sẽ sử dụng *"Terra"* -- Network: Mạng cụ thể mà dự án SubQuery này sẽ được phát triển để lập chỉ mục, dùng phím mũi tên để di chuyển giữa các lựa chọn, trong bài hướng dẫn này chúng ta sẽ dùng *"Terra"* -- Template: Chọn mẫu dự án SubQuery để bắt đầu phát triển, chúng tôi gợi ý bạn chọn *"Starter project"* +- Network Family: Mạng blockchain layer-1 mà dự án Subquery sẽ được phát triển để lập chỉ mục, dùng dấu mũi tên để di chuyển giữa các lựa chọn, trong bài hướng dẫn này, chúng ta sẽ sử dụng _"Terra"_ +- Network: Mạng cụ thể mà dự án SubQuery này sẽ được phát triển để lập chỉ mục, dùng phím mũi tên để di chuyển giữa các lựa chọn, trong bài hướng dẫn này chúng ta sẽ dùng _"Terra"_ +- Template: Chọn mẫu dự án SubQuery để bắt đầu phát triển, chúng tôi gợi ý bạn chọn _"Starter project"_ - Git repository (Tùy chọn): Cung cấp URL Git cho kho lưu trữ dự án SubQuery này (khi được lưu trữ trong SubQuery Explorer) -- RPC endpoint (Bắt buộc): Cung cấp URL HTTPS cho điểm cuối RPC đang chạy, sẽ được sử dụng mặc định cho dự án này. Nút RPC này phải là một nút lưu trữ (có trạng thái chuỗi đầy đủ). Đối với hướng dẫn này, chúng tôi sẽ sử dụng giá trị mặc định *"https://terra-columbus-5.beta.api.onfinality.io"* +- RPC endpoint (Bắt buộc): Cung cấp URL HTTPS cho điểm cuối RPC đang chạy, sẽ được sử dụng mặc định cho dự án này. Nút RPC này phải là một nút lưu trữ (có trạng thái chuỗi đầy đủ). Đối với hướng dẫn này, chúng tôi sẽ sử dụng giá trị mặc định _"https://terra-columbus-5.beta.api.onfinality.io"_ - Authors (Bắt buộc): Nhập chủ sở hữu của dự án SubQuery này tại đây (ví dụ: tên bạn!) - Description (Tùy chọn): Bạn có thể cung cấp một đoạn giới thiệu ngắn về dự án của mình, mô tả dự án chứa dữ liệu gì và người dùng có thể làm gì với dự án - Version (Bắt buộc): Nhập số phiên bản tùy chỉnh hoặc sử dụng giá trị mặc định (`1.0.0`) @@ -59,15 +59,15 @@ Sau khi quá trình khởi tạo hoàn tất, bạn sẽ thấy một thư mục Cuối cùng, trong thư mục dự án, chạy lệnh sau để cài đặt các phụ thuộc của dự án mới. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## Thực hiện các thay đổi trên dự án của bạn Trong gói khởi đầu mà bạn vừa khởi tạo, chúng tôi đã cung cấp cấu hình tiêu chuẩn cho dự án của bạn. Bạn sẽ làm việc chủ yếu trên các tệp sau: 1. Lược đồ GraphQL ở `schema.graphql` -2. Tệp Kê khai dự án ở ` project.yaml ` +2. Tệp Kê khai dự án ở `project.yaml` 3. Các chức năng ánh xạ trong thư mục `src/mappings/` Mục tiêu của hướng dẫn bắt đầu nhanh này là điều chỉnh dự án khởi đầu tiêu chuẩn để bắt đầu lập chỉ mục tất cả các giao dịch từ hợp đồng thông minh bLuna. @@ -91,8 +91,8 @@ type Transfer @entity { **Quan trọng: Khi bạn thực hiện bất kỳ thay đổi nào đối với tệp lược đồ, hãy đảm bảo rằng bạn tạo lại thư mục types của mình. Thực hiện ngay bây giờ.** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: Bạn sẽ tìm thấy các model đã tạo trong `thư mục /src/types/models`. Để biết thêm thông tin về tệp `schema.graphql`, hãy xem tài liệu của chúng tôi trong [Lược đồ Build/GraphQL ](../build/graphql.md) @@ -143,30 +143,30 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Print debugging data from the event - // logger.info(JSON.stringify(event)); - - // Create the new transfer entity with a unique ID - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Print debugging data from the event + // logger.info(JSON.stringify(event)); + + // Create the new transfer entity with a unique ID + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` @@ -178,7 +178,7 @@ Hàm này đang nhận SubstrateEvent bao gồm dữ liệu truyền tải trên Để chạy Dự án SubQuery mới của bạn trước tiên chúng tôi cần xây dựng công việc của mình. Chạy lệnh xây dựng từ thư mục gốc của dự án. - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **Quan trọng: Bất cứ khi nào bạn thực hiện các thay đổi đối với các hàm ánh xạ của mình, bạn sẽ cần phải xây dựng lại dự án của mình** @@ -192,7 +192,7 @@ Tất cả cấu hình kiểm soát cách chạy node SubQuery được định Trong thư mục dự án chạy lệnh sau: - ```shell yarn start:docker ``` ```shell npm run-script start:docker ``` +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: Có thể mất một chút thời gian để tải xuống các gói cần thiết ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), và Postgres) cho lần đầu tiên, nhưng bạn sẽ sớm thấy một node SubQuery đang chạy. Hãy kiên nhẫn ở bước này. @@ -207,10 +207,7 @@ Bạn sẽ thấy một sân chơi GraphQL đang hiển thị trong explorer và ```graphql { query { - transfers( - first: 10, - orderBy: ID_DESC - ) { + transfers(first: 10, orderBy: ID_DESC) { nodes { id txHash diff --git a/docs/vi/quickstart/quickstart.md b/docs/vi/quickstart/quickstart.md index fded447ca36..a098fb34ed6 100644 --- a/docs/vi/quickstart/quickstart.md +++ b/docs/vi/quickstart/quickstart.md @@ -89,8 +89,8 @@ Sau khi quá trình khởi tạo hoàn tất, bạn sẽ thấy một thư mục Cuối cùng, chạy lệnh sau để cài đặt các phụ thuộc từ bên trong thư mục của dự án mới. - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: Bây giờ bạn đã khởi tạo dự án SubQuery đầu tiên của mình chỉ với một vài bước đơn giản. Bây giờ chúng ta hãy tùy chỉnh dự án mẫu chuẩn cho một chuỗi khối cụ thể mà bạn quan tâm. @@ -104,4 +104,4 @@ Có 3 tệp quan trọng cần được sửa đổi. Đó là: 2. Tệp Kê khai dự án trong `project.yaml`. 3. Các hàm ánh xạ trong thư mục `src/mappings/`. -SubQuery hỗ trợ các mạng blockchain khác nhau và cung cấp hướng dẫn riêng cho từng mạng. Chọn blockchain ưa thích của bạn tối đa là 2. Chuỗi cụ thể và tiếp tục hướng dẫn bắt đầu nhanh. \ No newline at end of file +SubQuery hỗ trợ các mạng blockchain khác nhau và cung cấp hướng dẫn riêng cho từng mạng. Chọn blockchain ưa thích của bạn tối đa là 2. Chuỗi cụ thể và tiếp tục hướng dẫn bắt đầu nhanh. diff --git a/docs/vi/run_publish/connect.md b/docs/vi/run_publish/connect.md index 33822d38bf1..70763e7b11f 100644 --- a/docs/vi/run_publish/connect.md +++ b/docs/vi/run_publish/connect.md @@ -2,10 +2,10 @@ Once your deployment has succesfully completed and our nodes have indexed your data from the chain, you'll be able to connect to your project via the displayed Query endpoint. -![Các dự án đang được triển khai và đồng bộ](/assets/img/projects-deploy-sync.png) +![Các dự án đang được triển khai và đồng bộ](/assets/img/projects_deploy_sync.png) Ngoài ra, bạn có thể nhấp vào ba dấu chấm bên cạnh tiêu đề dự án của mình và xem nó trên SubQuery Explorer. There you can use the in browser playground to get started. -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/vi/run_publish/query.md b/docs/vi/run_publish/query.md index 663322b4171..a6f24c53b22 100644 --- a/docs/vi/run_publish/query.md +++ b/docs/vi/run_publish/query.md @@ -12,4 +12,4 @@ Bạn cũng sẽ lưu ý rằng SubQuery Explorer cung cấp một sân chơi đ On the top right of the playground, you'll find a _Docs_ button that will open a documentation draw. Tài liệu này được tạo tự động và giúp bạn tìm thấy những thực thể và phương pháp nào bạn có thể truy vấn. -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/vi/run_publish/references.md b/docs/vi/run_publish/references.md index 71de81cf4e2..b7f86c7a6bd 100644 --- a/docs/vi/run_publish/references.md +++ b/docs/vi/run_publish/references.md @@ -21,10 +21,10 @@ COMMANDS This command is uses webpack to generate a bundle of a subquery project. -| Options | Mô tả | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | -| -l, --location | local folder of subquery project (if not in folder already) | -| -o, --output | specify output folder of build e.g. build-folder | +| Options | Mô tả | +| ------------------ | ----------------------------------------------------------- | ----------- | ---- | ----------------------- | +| -l, --location | local folder of subquery project (if not in folder already) | +| -o, --output | specify output folder of build e.g. build-folder | | --mode=(production | prod | development | dev) | [ default: production ] | - With `subql build` you can specify additional entry points in exports field although it will always build `index.ts` automatically. @@ -106,7 +106,7 @@ This displays the current version. ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -346,7 +346,7 @@ This will move block fetching and processing into a worker. By default, this fea It is at an early experimental stage at the moment, but we plan to enable it by default. ::: -::: info Note +::: tip Note This feature is available for Substrate and Cosmos, and soon will be integrated for Avalanche. ::: diff --git a/docs/vi/run_publish/run.md b/docs/vi/run_publish/run.md index 55bf75c1029..c4a78773653 100644 --- a/docs/vi/run_publish/run.md +++ b/docs/vi/run_publish/run.md @@ -4,7 +4,7 @@ This guide works through how to run a local SubQuery node on your infrastructure ## Using Docker -An alternative solution is to run a Docker Container, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. +An alternative solution is to run a **Docker Container**, defined by the `docker-compose.yml` file. For a new project that has been just initialised you won't need to change anything here. Under the project directory run the following command: @@ -12,7 +12,7 @@ Under the project directory run the following command: docker-compose pull && docker-compose up ``` -::: info Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: +::: tip Note It may take some time to download the required packages ([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/query`](https://www.npmjs.com/package/@subql/query), and Postgres) for the first time but soon you'll see a running SubQuery node. ::: ## Running an Indexer (subql/node) @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### Installation - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: Once installed, you can start a node with the following command: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### Point to local project path - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ Depending on the configuration of your Postgres database (e.g. a different datab #### Specify a configuration file - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ When the indexer first indexes the chain, fetching single blocks will significan #### Run in local mode - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. Switching to local model will create Postgres tables in the default schema `public`. diff --git a/docs/vi/run_publish/subscription.md b/docs/vi/run_publish/subscription.md index eff07a3bbe0..9b79eb52877 100644 --- a/docs/vi/run_publish/subscription.md +++ b/docs/vi/run_publish/subscription.md @@ -6,7 +6,7 @@ SubQuery hiện đang hỗ trợ Các theo dõi Graphql. Giống như truy vấn Các theo dõi rất hữu ích khi bạn muốn ứng dụng khách của mình thay đổi dữ liệu hoặc hiển thị một số dữ liệu mới ngay khi dữ liệu thay đổi hoặc dữ liệu mới có sẵn. Subscriptions allow you to _subscribe_ to your SubQuery project for changes. -::: info Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: +::: tip Note Read more about [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). ::: ## Làm thế nào để theo dõi một thực thể diff --git a/docs/vi/run_publish/upgrade.md b/docs/vi/run_publish/upgrade.md index 7dae1005acb..77e2fdd8a2b 100644 --- a/docs/vi/run_publish/upgrade.md +++ b/docs/vi/run_publish/upgrade.md @@ -77,10 +77,10 @@ If you just want to upgrade to the latest indexer ([`@subql/node`](https://www.n Sau khi việc triển khai đã thành công và các nút của chúng ta đã lập chỉ mục dữ liệu của bạn trên chuỗi, bạn sẽ có thể kết nối với dự án của mình thông qua hiển thị của điêm cuối truy vấn GraphQL. -![Các dự án đang được triển khai và đồng bộ](/assets/img/projects-deploy-sync.png) +![Các dự án đang được triển khai và đồng bộ](/assets/img/projects_deploy_sync.png) Ngoài ra, bạn có thể nhấp vào ba dấu chấm bên cạnh tiêu đề dự án của mình và xem nó trên SubQuery Explorer. There you can use the in browser playground to get started - [read more about how to use our Explorer here](../run_publish/query.md). -![Projects in SubQuery Explorer](/assets/img/projects-explorer.png) +![Projects in SubQuery Explorer](/assets/img/projects_explorer.png) -::: info Note Learn more about the [GraphQL Query language.](./graphql.md) ::: +::: tip Note Learn more about the [GraphQL Query language.](./graphql.md) ::: diff --git a/docs/zh/README.md b/docs/zh/README.md index 7723dc2d1ce..3f43ab4dbe8 100644 --- a/docs/zh/README.md +++ b/docs/zh/README.md @@ -4,7 +4,7 @@

    使用SubQuery 学院构建更快的 dapps

    -

    在您分散的数据和工具之间探索和实现您自己高效的自定义开源API,以更快地查询数据并节省时间。


    +

    在您分散的数据和工具之间探索和实现您自己高效的自定义开源API,以更快地查询数据并节省时间。

    SubQuery 现在支持Polkadot、Avalanche和 Cosmos(从Juno开始)。

    @@ -12,7 +12,7 @@

    使用我们的 快速启动指南获得一个启动

    -

    在不到10分钟的时间内构建您的第一个子查询项目,并带有简单的引导步骤。 +

    在不到10分钟的时间内构建您的第一个子查询项目,并带有简单的引导步骤。

    开始在您最爱的区块链网络上查询您的 dApps 数据,使用我们的启动项目。 探索和修改重要文件,了解SubQuery是如何工作的。

    @@ -134,8 +134,7 @@
    - - + diff --git a/docs/zh/academy/tutorials_examples/terminology.md b/docs/zh/academy/tutorials_examples/terminology.md index 32beaabad23..f67987b4c06 100644 --- a/docs/zh/academy/tutorials_examples/terminology.md +++ b/docs/zh/academy/tutorials_examples/terminology.md @@ -1,6 +1,6 @@ # 术语 -- SubQuery 项目 (_一个奇迹发生的地方_): 一个关于SubQuery 节点([`@subql/cli`](https://www.npmjs.com/package/@subql/cli)) 应如何遍历和聚合项目网络以及应如何转换和存储数据以启用有用的 GraphQL 查询的定义 +- SubQuery 项目 (_一个奇迹发生的地方_): 一个关于 SubQuery 节点([`@subql/cli`](https://www.npmjs.com/package/@subql/cli)) 应如何遍历和聚合项目网络以及应如何转换和存储数据以启用有用的 GraphQL 查询的定义 - SubQuery 节点 (_工作完成了_): 一个包([`@subql/node`](https://www.npmjs.com/package/@subql/node)) 将接受一个 SubQuery 项目定义, 然后运行一个不断索引连接网络到数据库的节点 - SubQuery 查询服务(_我们从其中获取数据_): 包([`@subql/quy`](https://www.npmjs.com/package/@subql/query)) 与已部署的 SubQuery 节点的 GraphQL API 交互以查询和查看索引数据 -- GraphQL (_我们如何查询数据_):一个 API 的查询 langage ,它特别适合于基于灵活图形的数据 - 查看 graphql。
  • \ No newline at end of file +- GraphQL (_我们如何查询数据_):一个 API 的查询 langage ,它特别适合于基于灵活图形的数据 - 查看 graphql。 diff --git a/docs/zh/build/graphql.md b/docs/zh/build/graphql.md index 785e1a5ea5b..901d5795386 100644 --- a/docs/zh/build/graphql.md +++ b/docs/zh/build/graphql.md @@ -1,12 +1,13 @@ -# GraphQL模式 +# GraphQL 模式 -## 定义Entities +## 定义 Entities -`schema.graphql` 文件定义了各种GraphQL 模式。 遵循GraphQL查询语言的工作方式,模式文件基本上决定了您从 SubQuery 获取数据的格式。 为了更多地了解如何使用 GraphQL 模式语言,我们建议查看 [Schemas 和 Type](https://graphql.org/learn/schema/#type-language)。 +`schema.graphql` 文件定义了各种 GraphQL 模式。 遵循 GraphQL 查询语言的工作方式,模式文件基本上决定了您从 SubQuery 获取数据的格式。 为了更多地了解如何使用 GraphQL 模式语言,我们建议查看 [Schemas 和 Type](https://graphql.org/learn/schema/#type-language)。 **重要提示:当您对模式文件做任何更改时, 请确保使用命令`yarn codegen`来重新生成你的类型目录。** ### 实体 + 每个实体必须使用 `ID!` 类型定义必填字段 `id`。 它被用作主键,并且在所有相同类型的实体中是唯一的。 实体中非空字段由 `! `表示。 请参阅下面的示例: @@ -22,6 +23,7 @@ type Example @entity { ### 支持的标量和类型 我们目前支持以下标量类型: + - `ID` - `Int` - `String` @@ -31,13 +33,13 @@ type Example @entity { - `Boolean` - `` 对于嵌套关系实体,您可以使用定义实体的名称作为字段之一。 请在 [Entity Relationships](#entity-relationships) 中查看。 - `JSON` 也可以存储结构化数据,请查看 [JSON 类型](#json-type) -- `< EnumName> 类型是一种特殊类型的标量,仅限于特定的一组允许的值。 请查看 Graphql Enum +- `< EnumName> 类型是一种特殊类型的标量,仅限于特定的一组允许的值。 请查看 [Graphql Enum](https://graphql.org/learn/schema/#enumeration-types). ## 按非主键字段索引 -为了提高查询性能,只需在非主键字段实现 ``@index` 注解,便可索引实体字段。

    +为了提高查询性能,只需在非主键字段实现 ``@index` 注解,便可索引实体字段。 -

    然而,我们不允许用户在任何 JSON 对象上添加 @index`` 注解。 默认情况下,索引会自动添加到数据库的外键和JSON字段中,但这只是为了提高查询服务的性能。 +`JSON` `@index` 注解。 默认情况下,索引会自动添加到数据库的外键和 JSON 字段中,但这只是为了提高查询服务的性能。 参见下面的示例。 @@ -45,14 +47,15 @@ type Example @entity { type User @entity { id: ID! name: String! @index(unique:true) # unique可以设置为 true 或 false - title: Title! type User @entity + title: Title! type User @entity } type Title @entity { - id: ID! + id: ID! name: String! @index(unique:true) -} +} ``` + 假定我们知道这个用户的名字,但我们不知道确切的 id 值。 为了不提取所有用户然后通过名称来查找,我们可以在名称字段后面添加 `@index`。 这样查询速度更快,我们还可以传入 `unique:ture` 来确保唯一性。 **如果一个字段不是唯一的,最大的查询结果数据集大小为 100** @@ -66,12 +69,12 @@ INSERT INTO title (id, name) VALUES('id_1', 'Captain') ```typescript // 映射函数中的handler -import {User} from "../types/models/User" -import {Title} from "../types/models/Title" +import { User } from "../types/models/User"; +import { Title } from "../types/models/Title"; -const jack = await User.getByName('Jack Sparrow'); +const jack = await User.getByName("Jack Sparrow"); -const captainTitle = await Title.getByName('Captain'); +const captainTitle = await Title.getByName("Captain"); const pirateLords = await User.getByTitleId(captainTitle.id); // List of all Captains ``` @@ -97,7 +100,6 @@ type Passport @entity { id: ID! owner: Person! } - ``` 或者以另一个方式关联。 @@ -132,6 +134,7 @@ type Account @entity { ``` ### 多对多关系 + 示例: 每个人是多个组(PersonGroup) 的一部分,而组中有多个不同的人(PersonGroup)。 此外,还可以在中间实体的多个字段中创建同一实体的连接。 @@ -178,9 +181,9 @@ type Transfer @entity { 这将在实体上创建一个可以查询的虚拟字段。 -通过将Account实体的sentTransfer或receivedTransfer字段设置为从各自的from或to字段派生的值,我们从一个Account实体中访问Transfer中“from” 的Account。 +通过将 Account 实体的 sentTransfer 或 receivedTransfer 字段设置为从各自的 from 或 to 字段派生的值,我们从一个 Account 实体中访问 Transfer 中“from” 的 Account。 -通过将Account实体的sentTransfer或receivedTransfer字段设置为从各自的from或to字段派生的值,我们从一个Account实体中访问Transfer中“from” 的Account。 +通过将 Account 实体的 sentTransfer 或 receivedTransfer 字段设置为从各自的 from 或 to 字段派生的值,我们从一个 Account 实体中访问 Transfer 中“from” 的 Account。 ```graphql type Account @entity { @@ -200,19 +203,21 @@ type Transfer @entity { ## JSON 类型 -我们支持将数据保存为 JSON 类型,这样可以快速存储结构化数据。 我们将自动生成相应的JSON接口来查询这些数据,从而节省定义和管理实体的时间。 +我们支持将数据保存为 JSON 类型,这样可以快速存储结构化数据。 我们将自动生成相应的 JSON 接口来查询这些数据,从而节省定义和管理实体的时间。 我们推荐用户在以下场景中使用 JSON 类型: + - 在单个字段中存储结构化数据比创建多个单独的实体更易于管理。 - 保存任意用户首选项的 键/值 数据 (其中值可以是布尔值、文本或数字,您肯定不希望为不同数据类型设置单独的列) - 模式多样性且经常变化 ### 定义 JSON 指令 + 通过在实体中添加 `jsonField` 注解来定义属性为 JSON 类型。 这将自动为您项目中 `types/interfaces.ts` 下的所有 JSON 对象生成接口,您可以在映射函数中访问它们。 -与实体不同,jsonField 指令对象不需要 `id` 字段。 JSON对象也可以与其他JSON对象嵌套。 +与实体不同,jsonField 指令对象不需要 `id` 字段。 JSON 对象也可以与其他 JSON 对象嵌套。 -````graphql +```graphql type AddressDetail @jsonField { street: String! district: String! @@ -224,29 +229,23 @@ type ContactCard @jsonField { } type User @entity { - id: ID! + id: ID! contact: [ContactCard] # Store a list of JSON objects } -```` +``` ### 查询 JSON 字段 -使用JSON类型的缺点是过滤时对查询效率有轻微影响,因为每次执行文本搜索时,都会在整个实体上进行搜索。 +使用 JSON 类型的缺点是过滤时对查询效率有轻微影响,因为每次执行文本搜索时,都会在整个实体上进行搜索。 -然而,在我们的查询服务中,这种影响仍然可以接受。 这个例子展示了如何在GraphQL查询JSON字段中使用 `contains` 操作符来找到拥有包含 '0064 ' 的电话号码的前5个用户。 +然而,在我们的查询服务中,这种影响仍然可以接受。 这个例子展示了如何在 GraphQL 查询 JSON 字段中使用 `contains` 操作符来找到拥有包含 '0064 ' 的电话号码的前 5 个用户。 ```graphql #找到电话号码中包含 '0064'的前5个用户。 -query{ - user( - first: 5, - filter: { - contactCard: { - contains: [{ phone: "0064" }] - } -}){ - nodes{ +query { + user(first: 5, filter: { contactCard: { contains: [{ phone: "0064" }] } }) { + nodes { id contactCard } diff --git a/docs/zh/build/install.md b/docs/zh/build/install.md index 72795c11afb..e73b2807858 100644 --- a/docs/zh/build/install.md +++ b/docs/zh/build/install.md @@ -1,44 +1,46 @@ -# 关于SubQuery的安装 +# 关于 SubQuery 的安装 -创建SubQuery项目需要多个组件。 [@subql/cli](https://github.com/subquery/subql/tree/docs-new-section/packages/cli) 工具用于创建 SubQuery 项目。 [@subql/node](https://github.com/subquery/subql/tree/docs-new-section/packages/node) 组件是运行索引器所必需的。 [@subql/query](https://github.com/subquery/subql/tree/docs-new-section/packages/query) 库是生成查询所必需的。 +创建 SubQuery 项目需要多个组件。 [@subql/cli](https://github.com/subquery/subql/tree/docs-new-section/packages/cli) 工具用于创建 SubQuery 项目。 [@subql/node](https://github.com/subquery/subql/tree/docs-new-section/packages/node) 组件是运行索引器所必需的。 [@subql/query](https://github.com/subquery/subql/tree/docs-new-section/packages/query) 库是生成查询所必需的。 -## 安装@subql/cli节点 +## 安装@subql/cli 节点 [@subql/cli](https://github.com/subquery/subql/tree/docs-new-section/packages/cli) 工具有助于快速创建一个项目架构,您不必从头开始的手动创建项目。 -使用 Yarn 或 NPM在您的电脑上全局安装 SubQuery CLI : +使用 Yarn 或 NPM 在您的电脑上全局安装 SubQuery CLI : - ```bash npm install -g @subql/cli ``` - ```shell yarn global add @subql/cli ``` +::: code-tabs @tab npm `bash npm install -g @subql/cli ` +@tab:active yarn `shell yarn global add @subql/cli ` ::: You can then run help to see available commands and usage provide by CLI: ```shell subql help ``` -## 安装@subql/cli节点 + +## 安装@subql/cli 节点 SubQuery 节点能够从 SubQuery 项目提取基于底层的区块链数据并将其保存到 Postgres 数据库。 -使用 Yarn 或 NPM在您的终端上全局安装SubQuery节点: +使用 Yarn 或 NPM 在您的终端上全局安装 SubQuery 节点: - ```bash npm install -g @subql/node ``` - ```shell yarn global add @subql/node ``` +::: code-tabs @tab npm `bash npm install -g @subql/node ` +@tab:active yarn `shell yarn global add @subql/node ` ::: Once installed, you can can start a node with: ```shell subql-node ``` -> 注意:如果使用 Docker或托管您的项目,您可以跳过这一步。 这是因为SubQuery 节点已经提供在 Docker 容器和主机基础设施中。 + +> 注意:如果使用 Docker 或托管您的项目,您可以跳过这一步。 这是因为 SubQuery 节点已经提供在 Docker 容器和主机基础设施中。 ## 安装 @subql/query SubQuery 查询库提供了一个服务,允许您通过浏览器在“playground”环境中查询您的项目。 -使用 Yarn 或 NPM在您的终端上全局安装subql/query: +使用 Yarn 或 NPM 在您的终端上全局安装 subql/query: - ```bash npm install -g @subql/query ``` - ```shell yarn global add @subql/query ``` +::: code-tabs @tab npm `bash npm install -g @subql/query ` +@tab:active yarn `shell yarn global add @subql/query ` ::: -> 注意:如果使用 Docker或托管您的项目,您可以跳过这一步。 这是因为SubQuery 节点已经在 Docker 容器和主机基础设施中提供。 \ No newline at end of file +> 注意:如果使用 Docker 或托管您的项目,您可以跳过这一步。 这是因为 SubQuery 节点已经在 Docker 容器和主机基础设施中提供。 diff --git a/docs/zh/build/manifest.md b/docs/zh/build/manifest.md index be1a31962f3..73e08df5d0e 100644 --- a/docs/zh/build/manifest.md +++ b/docs/zh/build/manifest.md @@ -4,10 +4,10 @@ 该清单文件可以是 YAML 或 JSON 格式。 在本文档中,我们将在所有示例中使用 YAML 格式。 下面是`project.yaml`文件的标准示例。 - - - -``` yml +::: code-tabs +@tab v0.2.0 + +```yml specVersion: 0.2.0 name: example-project # Provide the project name version: 1.0.0 # Project version @@ -39,23 +39,21 @@ dataSources: method: Deposit - handler: handleCall kind: substrate/CallHandler -```` - - +``` - +@tab v0.0.1 -``` yml +```yml specVersion: "0.0.1" -description: '' # Description of your project -repository: 'https://github.com/subquery/subql-starter' # Git repository address of your project +description: "" # Description of your project +repository: "https://github.com/subquery/subql-starter" # Git repository address of your project schema: ./schema.graphql # The location of your GraphQL schema file network: - endpoint: 'wss://polkadot.api.onfinality.io/public-ws' + endpoint: "wss://polkadot.api.onfinality.io/public-ws" # Optionally provide the HTTP endpoint of a full chain dictionary to speed up processing - dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot' + dictionary: "https://api.subquery.network/sq/subquery/dictionary-polkadot" dataSources: - name: main @@ -72,10 +70,9 @@ dataSources: method: Deposit - handler: handleCall kind: substrate/CallHandler -```` +``` - - +::: ## 从 v0.0.1 迁移到 v0.2.0 @@ -152,9 +149,9 @@ DataSources 定义要过滤和提取的数据以及要应用的数据转换的 ### Mapping Spec -| Field | v0.0.1 | v0.2.0 | Description | -| ---------------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **file** | String | String | 映射条目路径 | +| Field | v0.0.1 | v0.2.0 | Description | +| ---------------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **file** | String | String | 映射条目路径 | | **handlers & filters** | [Default handlers and filters](./manifest/#mapping-hand-filters) | Default handlers and filters,
    [Custom handlers and filters](#custom-data-sources) | 列出所有 [映射函数](./mapping/polkadot.md) 及其相应的处理类型,并添加附加映射筛选器。

    对于自定义运行时映射处理程序,请查看 [自定义数据源](#custom-data-sources) | ## 数据来源和映射 @@ -175,8 +172,8 @@ dataSources: **当您只使用具有适当映射过滤器的事件和呼叫处理程序时,您的子查询项目将会更加有效。** -| 处理程序 | 支持的过滤器: | -| ------------------------------------------ | ---------------------------- | +| 处理程序 | 支持的过滤器: | +| --------------------------------------------------- | ---------------------------- | | [BlockHandler](./mapping/polkadot.md#block-handler) | `specVersion` | | [EventHandler](./mapping/polkadot.md#event-handler) | `module`,`method` | | [CallHandler](./mapping/polkadot.md#call-handler) | `module`,`method` ,`success` | @@ -227,38 +224,32 @@ filter: 在 v0.2.0 示例中, `network. hainintypes` 指向一个包含所有自定义类型的文件。 这是一个标准的链规格文件,用 `声明此区块链支持的特定类型。 son` 或 `.yaml` 格式。 - - +::: code-tabs +@tab v0.2.0 -``` yml +```yml network: - genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' - endpoint: 'ws://host.kittychain.io/public-ws' + genesisHash: "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3" + endpoint: "ws://host.kittychain.io/public-ws" chaintypes: file: ./types.json # The relative filepath to where custom types are stored -... ``` - - - +@tab v0.0.1 -``` yml -... +```yml +--- network: endpoint: "ws://host.kittychain.io/public-ws" - types: { - "KittyIndex": "u32", - "Kitty": "[u8; 16]" - } + types: { "KittyIndex": "u32", "Kitty": "[u8; 16]" } # typesChain: { chain: { Type5: 'example' } } # typesSpec: { spec: { Type6: 'example' } } dataSources: - name: runtime kind: substrate/Runtime startBlock: 1 - filter: #Optional - specName: kitty-chain + filter: #Optional + specName: kitty-chain mapping: handlers: - handler: handleKittyBred @@ -269,8 +260,7 @@ dataSources: success: true ``` - - +::: 自定义数据源提供了特定于网络的功能,使处理数据更容易。 @@ -287,7 +277,7 @@ network: 下面是一个 `.ts` 链类型文件的示例: - `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` +::: code-tabs @tab types.ts `ts import { typesBundleDeprecated } from "moonbeam-types-bundle" export default { typesBundle: typesBundleDeprecated }; ` ::: ## 自定义数据源 @@ -309,8 +299,8 @@ network: 下方示例是 Polkadot 和 Kusama 网络中不同的数据源。 - - +::: code-tabs +@tab v0.0.1 ```yaml --- @@ -339,6 +329,4 @@ dataSources: mapping: *mymapping # can reuse or change ``` - - - +::: diff --git a/docs/zh/build/mapping.md b/docs/zh/build/mapping.md index 5d74936d86c..eb1c898cb7b 100644 --- a/docs/zh/build/mapping.md +++ b/docs/zh/build/mapping.md @@ -4,7 +4,7 @@ - 映射在`src/Mappings`目录中定义,并作为函数导出 - 这些映射也可以在`src/index.ts 中导出; -- 映射文件在映射处理程序下的project.yaml`中引用。 +- 映射文件在映射处理程序下的 `project.yaml`中引用。 - 映射文件是映射处理器下的 `project.yaml` 的参考文件。 共有三类映射函数的: [Block handlers](#block-handler),[Event Handlers](#event-handler)和[Call Handlers](#call-handler)。 @@ -68,15 +68,16 @@ export async function handleCall(extrinsic: SubstrateExtrinsic): Promise { 这些是我们当前支持的接口: -- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) 将查询 当前 区块。 -- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) 将在当前块上进行多个 相同 类型的查询。 -- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) 将在当前块进行不同类型的多个查询。 +- [api.query.<module>.<method>()](https://polkadot.js.org/docs/api/start/api.query) 将查询 **当前** 区块。 +- [api.query.<module>.<method>.multi()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-same-type) 将在当前块上进行多个 **相同** 类型的查询。 +- [api.queryMulti()](https://polkadot.js.org/docs/api/start/api.query.multi/#multi-queries-distinct-types) 将在当前块进行**不同**类型的多个查询。 这些是我们 **当前不支持** 的接口: - ```api.tx.*~~ ``` + - ~~api.derive.\*~~ - ~~api.query.<module>.<method>.at~~ - ~~api.query.<module>.<method>.entriesAt~~ diff --git a/docs/zh/build/substrate-evm.md b/docs/zh/build/substrate-evm.md index c5149805745..7e18b5f13a8 100644 --- a/docs/zh/build/substrate-evm.md +++ b/docs/zh/build/substrate-evm.md @@ -1,16 +1,16 @@ # SubQuery 支持 Substrate EVM -我们为Moonbeam和Moonriver的EVM提供了一个自定义数据源处理器。 这为单一的 SubQuery 项目中提供了一种简单的方法来筛选和索引Moonbeam的网络上的 EVM 和 底层活动。 +我们为 Moonbeam 和 Moonriver 的 EVM 提供了一个自定义数据源处理器。 这为单一的 SubQuery 项目中提供了一种简单的方法来筛选和索引 Moonbeam 的网络上的 EVM 和 底层活动。 支持的网络: -| 网络名称 | Websocket 终端 | Dictionary 终端 | +| 网络名称 | Websocket 终端 | Dictionary 终端 | | -------------- | -------------------------------------------------- | -------------------------------------------------------------------- | | Moonbeam | `wss://moonbeam.api.onfinality.io/public-ws` | `https://api.subquery.network/sq/subquery/moonbeam-dictionary` | | Moonriver | `wss://moonriver.api.onfinality.io/public-ws` | `https://api.subquery.network/sq/subquery/moonriver-dictionary` | | Moonbase Alpha | `wss://moonbeam-alpha.api.onfinality.io/public-ws` | `https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary` | -**您也可以通过事件和调用处理程序来参考 [基本Moonrier EVM 示例项目](https://github.com/subquery/tutorials-moonriver-evm-starter)** 这个项目也存在于 [ SubQuery Explorer](https://explorer.subquery.network/subquery/subquery/moonriver-evm-starter-project) 中。 +**您也可以通过事件和调用处理程序来参考 [基本 Moonrier EVM 示例项目](https://github.com/subquery/tutorials-moonriver-evm-starter)** 这个项目也存在于 [ SubQuery Explorer](https://explorer.subquery.network/subquery/subquery/moonriver-evm-starter-project) 中。 ## 快速入门 @@ -20,38 +20,38 @@ ## 数据源说明 -| 属性 | 类型 | 必填 | 描述 | -| ----------------- | -------------------------------------------------------------- | --- | --------------------------------- | -| processor.file | `'./node_modules/@subql/contract-processors/dist/moonbeam.js'` | Yes | 数据处理器代码的文件引用 | -| processor.options | [ProcessorOptions](#processor-options) | No | 月光束处理器特有的选项 | -| assets | `{ [key: String]: { file: String }}` | No | An object of external asset files | +| 属性 | 类型 | 必填 | 描述 | +| ----------------- | -------------------------------------------------------------- | ---- | --------------------------------- | +| processor.file | `'./node_modules/@subql/contract-processors/dist/moonbeam.js'` | Yes | 数据处理器代码的文件引用 | +| processor.options | [ProcessorOptions](#processor-options) | No | 月光束处理器特有的选项 | +| assets | `{ [key: String]: { file: String }}` | No | An object of external asset files | ### 处理器选项: -| 属性 | 类型 | 必填 | 描述 | -| ------- | ---------------- | -- | ------------------------------------ | -| abi | String | No | 处理器使用的 ABI 解析参数。 MUST 是 `asset的一个密钥` | -| address | String or `null` | No | 事件发生或打电话的合同地址。 `null` 将捕获合同创建调用 | +| 属性 | 类型 | 必填 | 描述 | +| ------- | ---------------- | ---- | ------------------------------------------------------ | +| abi | String | No | 处理器使用的 ABI 解析参数。 MUST 是 `asset的一个密钥` | +| address | String or `null` | No | 事件发生或打电话的合同地址。 `null` 将捕获合同创建调用 | ## MoonbeamCall 使用 [Substrate/CallHandler](../create/mapping/#call-handler) 的同样方式,区别是不同的处理程序参数和较小的过滤更改。 -| 属性 | 类型: | 必填 | 描述 | -| ------ | ---------------------------- | --- | -------------- | -| kind | 'substrate/MoonbeamCall' | Yes | 指定这是一个通话类型处理程序 | -| filter | [Call Filter](#call-filters) | No | 筛选要执行的数据源 | +| 属性 | 类型: | 必填 | 描述 | +| ------ | ---------------------------- | ---- | ---------------------------- | +| kind | 'substrate/MoonbeamCall' | Yes | 指定这是一个通话类型处理程序 | +| filter | [Call Filter](#call-filters) | No | 筛选要执行的数据源 | ### 调用过滤器 -| 属性 | 类型: | 示例 | 描述 | -| -------- | ------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| 属性 | 类型: | 示例 | 描述 | +| -------- | ------ | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | | function | String | 0x095ea7b3, approve(address to,uint256 value) | [函数签名](https://docs.ethers.io/v5/api/utils/abi/fragments/#FunctionFragment) 字符串或函数 `视野` 过滤被调用的函数。 | -| from | String | 0x6bd193ee6d2104f14f94e2ca6efefae561a4334b | 发送交易的以太坊地址 | +| from | String | 0x6bd193ee6d2104f14f94e2ca6efefae561a4334b | 发送交易的以太坊地址 | ### 处理程序 -与正常处理程序不同的是,你不会获得一个 `SubstrateExtrinsic` 作为参数, 相反,您将得到一个 `MoonbeamCall` 基于Ethers [交易响应](https://docs.ethers.io/v5/api/providers/types/#providers-TransactionResponse) 类型。 +与正常处理程序不同的是,你不会获得一个 `SubstrateExtrinsic` 作为参数, 相反,您将得到一个 `MoonbeamCall` 基于 Ethers [交易响应](https://docs.ethers.io/v5/api/providers/types/#providers-TransactionResponse) 类型。 从 `TransactionResponse` 类型的更改: @@ -63,18 +63,18 @@ 使用 [Substrate/CallHandler](../create/mapping/#event-handler) 的同样方式,区别是不同的处理程序参数和较小的过滤更改。 -| 属性 | 类型 | 必填 | 描述 | -| ------ | ------------------------------ | --- | -------------- | -| kind | 'substrate/MoonbeamEvent' | Yes | 指定这是一个通话类型处理程序 | -| filter | [Event Filter](#event-filters) | No | 筛选要执行的数据源 | +| 属性 | 类型 | 必填 | 描述 | +| ------ | ------------------------------ | ---- | ---------------------------- | +| kind | 'substrate/MoonbeamEvent' | Yes | 指定这是一个通话类型处理程序 | +| filter | [Event Filter](#event-filters) | No | 筛选要执行的数据源 | ### Event 过滤器 -| 属性 | 类型 | 示例 | 描述 | -| ------ | ------------ | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | -| topics | String array | Transfer(address indexed from,address indexed to,uint256 value) | 主题筛选器遵循Etherum JSON-PRC 日志过滤器,在这里可以找到更多文档 [](https://docs.ethers.io/v5/concepts/events/)。 | +| 属性 | 类型 | 示例 | 描述 | +| ------ | ------------ | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| topics | String array | Transfer(address indexed from,address indexed to,uint256 value) | 主题筛选器遵循 Etherum JSON-PRC 日志过滤器,在这里可以找到更多文档 [](https://docs.ethers.io/v5/concepts/events/)。 | -关于主题的说明: +**关于主题的说明:** 基本日志过滤器有一些改进: - 主题不需要为 0 padded @@ -82,7 +82,7 @@ ### 处理程序 -与正常处理程序不同的是,你不会获得一个 `SubstrateExtrinsic` 作为参数, 相反,您将得到一个 `MoonbeamEvent` 基于Ethers [Log](https://docs.ethers.io/v5/api/providers/types/#providers-Log) 类型。 +与正常处理程序不同的是,你不会获得一个 `SubstrateExtrinsic` 作为参数, 相反,您将得到一个 `MoonbeamEvent` 基于 Ethers [Log](https://docs.ethers.io/v5/api/providers/types/#providers-Log) 类型。 来自 `Log` 类型的更改: @@ -97,17 +97,17 @@ dataSources: - kind: substrate/Moonbeam startBlock: 752073 processor: - file: './node_modules/@subql/contract-processors/dist/moonbeam.js' + file: "./node_modules/@subql/contract-processors/dist/moonbeam.js" options: # Must be a key of assets abi: erc20 # Contract address (or recipient if transfer) to filter, if `null` should be for contract creation - address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + address: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" assets: erc20: - file: './erc20.abi.json' + file: "./erc20.abi.json" mapping: - file: './dist/index.js' + file: "./dist/index.js" handlers: - handler: handleMoonriverEvent kind: substrate/MoonbeamEvent @@ -122,7 +122,7 @@ dataSources: # function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000' # function: approve(address,uint256) function: approve(address to,uint256 value) - from: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b' + from: "0x6bd193ee6d2104f14f94e2ca6efefae561a4334b" ``` ## 已知问题 diff --git a/docs/zh/faqs/faqs.md b/docs/zh/faqs/faqs.md index 9e9b865ba48..70e2161f705 100644 --- a/docs/zh/faqs/faqs.md +++ b/docs/zh/faqs/faqs.md @@ -1,6 +1,6 @@ # 常见问题解答 -## 什么是SubQuery? +## 什么是 SubQuery? SubQuery 是一个开放源码区块链数据索引器,为开发者提供快速、灵活、可靠和分散的 API,为多链应用提供动力。 @@ -12,25 +12,25 @@ SubQuery 是一个开放源码区块链数据索引器,为开发者提供快 **SubQuery 管理服务** -SubQuery还为开发者提供免费的生产级托管项目。 我们的管理服务取消了管理基础设施的责任感,以便开发者能够做他们最好的事情——建造。 在这里了解更多 [](/run_publish/publish.md) +SubQuery 还为开发者提供免费的生产级托管项目。 我们的管理服务取消了管理基础设施的责任感,以便开发者能够做他们最好的事情——建造。 在这里了解更多 [](/run_publish/publish.md) -**关于Subuery Network** +**关于 Subuery Network** -SubQuery 网络允许开发者完全分散他们的基础设施堆栈。 我们正在为 dApp 开发者构建最开放的、运行最可靠的、可扩展的数据服务。 SubQuery 网络以一种激励和可验证的方式为全球社区提供数据索引的服务。 将项目发布到 SubQuery 网络后,任何人都可以对其进行索引和托管,从而可以更快、更可靠地向世界各地的用户提供数据。 +SubQuery 网络允许开发者完全分散他们的基础设施堆栈。 我们正在为 dApp 开发者构建最开放的、运行最可靠的、可扩展的数据服务。 SubQuery 网络以一种激励和可验证的方式为全球社区提供数据索引的服务。 将项目发布到 SubQuery 网络后,任何人都可以对其进行索引和托管,从而可以更快、更可靠地向世界各地的用户提供数据。 更多信息 [在这里](/subquery_network/introduction.md)。 -## 从SubQuery开始的最佳方式是什么? +## 从 SubQuery 开始的最佳方式是什么? -开始使用 SubQuery 的最好方法是尝试我们的 [Hello World 教程](/assets/pdf/Hello_World_Lab.pdf)。 这是简单的5分钟步行练习。 下载启动模板,构建项目,使用 Docker 在您的localhost上运行一个节点,并运行一个简单的查询。 +开始使用 SubQuery 的最好方法是尝试我们的 [Hello World 教程](/assets/pdf/Hello_World_Lab.pdf)。 这是简单的 5 分钟步行练习。 下载启动模板,构建项目,使用 Docker 在您的 localhost 上运行一个节点,并运行一个简单的查询。 -## 我如何向SubQuer贡献或反馈? +## 我如何向 SubQuer 贡献或反馈? -我们热爱社区的贡献和反馈。 若要贡献代码,请分派感兴趣的仓库并做出更改。 然后提交 PR 或 Pull 请求。 哦,不要忘记测试! 同时查看我们的 贡献指南。 +我们热爱社区的贡献和反馈。 若要贡献代码,请分派感兴趣的仓库并做出更改。 然后提交 PR 或 Pull 请求。 哦,不要忘记测试! 同时查看我们的 [贡献指南](../miscellaneous/contributing.md。 要提供反馈,请通过 hello@subquery.network联系我们,或进入我们的 [Discord 频道](https://discord.com/invite/78zg8aBSMG). -## 在SubQuery项目中托管我的项目需要多少费用? +## 在 SubQuery 项目中托管我的项目需要多少费用? 此服务正在免费提供给社区! 您可以完全免费地托管您的头两个子查询项目!” @@ -44,27 +44,27 @@ SubQuery 目前有两个可用的位置。 一个中转插槽和一个生产插 使用中转插槽的主要好处是,它允许您准备新版本的 SubQuery 项目而不公开。 您可以等待中转插槽重新设置所有数据而不影响您的生产环境应用程序。 -中转插槽不会在 [Explorer](https://explorer.subquery.network/) 中向公众展示,而且有一个唯一的URL,只有您可以看到。 当然,这个单独的环境允许您在不影响生产的情况下测试您的新代码。 +中转插槽不会在 [Explorer](https://explorer.subquery.network/) 中向公众展示,而且有一个唯一的 URL,只有您可以看到。 当然,这个单独的环境允许您在不影响生产的情况下测试您的新代码。 -## Polkadot的附加组件是什么? +## Polkadot 的附加组件是什么? -如果你已经熟悉区块链基本概念,你可以将外部状态理解为区块链中的交易。 但更加正式的理解是,外部状态是一种来自链外并被包含在一个区块中的信息。 外部状态的类别包含3种, 分别为:inherents、signed transactions、unsigned transactions。 +如果你已经熟悉区块链基本概念,你可以将外部状态理解为区块链中的交易。 但更加正式的理解是,外部状态是一种来自链外并被包含在一个区块中的信息。 外部状态的类别包含 3 种, 分别为:inherents、signed transactions、unsigned transactions。 -Inherent外部状态是指未经签名且仅由区块作者插入区块的信息。 +Inherent 外部状态是指未经签名且仅由区块作者插入区块的信息。 -Signed transaction外部状态是指包含签发交易账户签名的交易。 该类型将支付一笔费用,以使得将该交易上链。 +Signed transaction 外部状态是指包含签发交易账户签名的交易。 该类型将支付一笔费用,以使得将该交易上链。 -Unsigned transactions外部状态是指不包含交易账户签名的交易。 使用未签名交易的外部事务时应该小心,因为没有人支付费用,因为它们没有签名。 因此,该类型下交易队列缺乏防止欺骗的经济逻辑。 +Unsigned transactions 外部状态是指不包含交易账户签名的交易。 使用未签名交易的外部事务时应该小心,因为没有人支付费用,因为它们没有签名。 因此,该类型下交易队列缺乏防止欺骗的经济逻辑。 想了解更多信息,请点击 [这里](https://substrate.dev/docs/en/knowledgebase/learn-substrate/extrinsics)。 -## Kusama网络端点是什么? +## Kusama 网络端点是什么? Kusama 网络端点的介绍 `wss://kusama.api.onfinality.io/publicws`。 ## Polkadot 主网的端点是什么? -Polkadot网络端点的介绍 `wss://polkadot.api.onfinality.io/publicws`。 +Polkadot 网络端点的介绍 `wss://polkadot.api.onfinality.io/publicws`。 ## 如何编辑项目计划? @@ -76,7 +76,6 @@ subql-node -f . --force-clean --subquery-name= 请注意,建议在项目清单中更改 `startBlock` 时使用 `--force-clear` 。`项目。 aml`) 以开始从已配置的方块进行重新索引。 如果 `startBlock` 在没有 `--force-clean` 的情况下被更改,那么索引器将继续使用先前配置的 `startBlock` 索引。 - ## 我如何优化我的项目以加快速度? 业绩是每个项目的一个关键因素。 幸运的是,你们可以做几件事来加以改进。 以下是一些建议的列表: @@ -89,13 +88,13 @@ subql-node -f . --force-clean --subquery-name= - 设置合同初始化时的起始模块。 - 总是使用 [字典](../tutorials_examples/dictionary.html#how-does-a-subquery-dictionary-work) (我们可以帮助为您的新网络创建一个字典)。 - 优化您的架构设计,使其尽可能简单。 - - 尝试减少不必要的字段和列。 - - 根据需要创建索引。 + - 尝试减少不必要的字段和列。 + - 根据需要创建索引。 - 尽可能频繁地使用并行/批量处理。 - - 使用 `api.queryMulti()` 来优化在映射函数内的 Polkadot API 调用并并行查询它们。 这是一个比循环更快的方式。 - - 使用 `Promise.all()`. 在多个异步函数的情况下,最好执行它们并并行解决。 - - 如果您想要在单个处理程序中创建很多实体,您可以使用 `store.bulkCreate(entityname: string, entity: Entity[])`。 您可以同时创建它们,无需单独创建。 + - 使用 `api.queryMulti()` 来优化在映射函数内的 Polkadot API 调用并并行查询它们。 这是一个比循环更快的方式。 + - 使用 `Promise.all()`. 在多个异步函数的情况下,最好执行它们并并行解决。 + - 如果您想要在单个处理程序中创建很多实体,您可以使用 `store.bulkCreate(entityname: string, entity: Entity[])`。 您可以同时创建它们,无需单独创建。 - 让 API 调用查询状态可能很慢。 您可以尽量减少通话,并使用 `扩展/交易/事件` 数据。 -- 使用 `工作线程` 将区块提取和区块处理移动到自己的工作线程。 它可以加快索引速度,最多可达4倍(视具体项目而定)。 您可以轻松地使用 `-workers=` 标志启用它。 请注意,可用的 CPU 核心数严格限制了工人线程的使用。 现在,它只供Substrate and Cosmos使用,很快将会被集成到Avalanche。 +- 使用 `工作线程` 将区块提取和区块处理移动到自己的工作线程。 它可以加快索引速度,最多可达 4 倍(视具体项目而定)。 您可以轻松地使用 `-workers=` 标志启用它。 请注意,可用的 CPU 核心数严格限制了工人线程的使用。 现在,它只供 Substrate and Cosmos 使用,很快将会被集成到 Avalanche。 - 注意 `JSONstringify` 不支持原生 `BigInts`。 如果你试图记录一个目标,我们的日志库将会在内部做这件事。 我们正在研究如何解决这一问题。 -- 使用方便的 `模块` 过滤器来运行一个处理程序到一个特定的区块。 此过滤器允许处理任何给定的块数,这对于按设定的时间间隔分组和计算数据极为有用。 例如,如果模块设置为 50,块处理程序将在每50个模块上运行。 它提供了更多的对开发者索引数据的控制,并且可以在下面的项目清单中实现这一点。 \ No newline at end of file +- 使用方便的 `模块` 过滤器来运行一个处理程序到一个特定的区块。 此过滤器允许处理任何给定的块数,这对于按设定的时间间隔分组和计算数据极为有用。 例如,如果模块设置为 50,块处理程序将在每 50 个模块上运行。 它提供了更多的对开发者索引数据的控制,并且可以在下面的项目清单中实现这一点。 diff --git a/docs/zh/quickstart/helloworld-localhost.md b/docs/zh/quickstart/helloworld-localhost.md index a09201570ed..de41ea541b3 100644 --- a/docs/zh/quickstart/helloworld-localhost.md +++ b/docs/zh/quickstart/helloworld-localhost.md @@ -88,7 +88,7 @@ cd subqlHelloWorld 现在执行 yarn 或 node install 以安装各种依赖包。 - # Yarn yarn install # NPM npm install +`# Yarn yarn install # NPM npm install` ```shell > yarn install @@ -107,7 +107,6 @@ success Saved lockfile. success Saved lockfile. ✨ Done in 31.84s. ``` -

    ```shell > yarn install @@ -129,9 +128,9 @@ success Saved lockfile. ## 3. 3. 生成代码 -现在运行 `yarn codegen` 生成来自 GraphQL schema 的Typescript。 +现在运行 `yarn codegen` 生成来自 GraphQL schema 的 Typescript。 - # Yarn yarn build # NPM npm run-script build +`# Yarn yarn build # NPM npm run-script build` ```shell > yarn build @@ -139,7 +138,6 @@ yarn run v1.22.10 $ tsc -b ✨ Done in 5.68s. ``` -

    ```shell > yarn codegen @@ -157,13 +155,13 @@ $ ./node_modules/.bin/subql codegen ✨ Done in 1.02s. ``` -**警告** 当更改schema 文件时,请记住重新运行 `yarn codegen` 以重新生成您的类型目录。 +**警告** 当更改 schema 文件时,请记住重新运行 `yarn codegen` 以重新生成您的类型目录。 ## 4. Build code 下一步是使用 `yarn building` 来构建代码。 - # Yarn yarn codegen # NPM npm run-script codegen +`# Yarn yarn codegen # NPM npm run-script codegen` ```shell > yarn codegen @@ -180,7 +178,6 @@ $ ./node_modules/.bin/subql codegen * Types index generated ! ✨ Done in 1.02s. ``` -

    ```shell > yarn build diff --git a/docs/zh/quickstart/quickstart-avalanche.md b/docs/zh/quickstart/quickstart-avalanche.md index 04582c855ee..dff1c51a294 100644 --- a/docs/zh/quickstart/quickstart-avalanche.md +++ b/docs/zh/quickstart/quickstart-avalanche.md @@ -2,11 +2,11 @@ 在这个快速入门指南中,我们将从一个简单的启动项目开始,然后通过索引一些实际数据来完成。 这是开发您自己的 SubQuery 项目的良好基础。 -**如果您正在寻找Terra指南,您可以阅读 [Terra特定的快速启动指南](./quickstart-polkadot)。** +**如果您正在寻找 Terra 指南,您可以阅读 [Terra 特定的快速启动指南](./quickstart-polkadot)。** 在本指南的最后,您将拥有一个在 SubQuery 节点上运行的可工作 的 SubQuery 项目,该节点具有一个可以从中查询数据的 GraphQL 端点。 -如果您还没有准备好进一步学习,我们建议您熟悉SubQuery中所使用的 [terminology](../#terminology)。 +如果您还没有准备好进一步学习,我们建议您熟悉 SubQuery 中所使用的 [terminology](../#terminology)。 **这个快速启动指南的目标是索引所有 Pangolin token _审批_ 事件,它只能需要 10-15 分钟** @@ -14,8 +14,8 @@ ### 本地开发环境 -- [Node](https://nodejs.org/en/): 一个现代(如LTS版本)的Node安装。 -- [Docker](https://docker.com/): 本教程将使用需要Docker的程序。 +- [Node](https://nodejs.org/en/): 一个现代(如 LTS 版本)的 Node 安装。 +- [Docker](https://docker.com/): 本教程将使用需要 Docker 的程序。 ### 安装 SubQuery CLI @@ -36,7 +36,7 @@ subql help ## 初始化 Starter SubQuery 项目 -在你想创建SubQuery项目的目录中,只需运行以下命令就可以开始了。 +在你想创建 SubQuery 项目的目录中,只需运行以下命令就可以开始了。 ```shell subql init @@ -45,11 +45,11 @@ subql init 在初始化 SubQuery project 时,您会被问到一些问题: - Project Name: A name for your SubQuery project -- 网络。这个SubQuery项目将开发的区块链网络索引,使用键盘上的方向键从选项中选择,对于本指南,我们将使用_"Polkadot"_。 -- 网络。这个SubQuery项目将开发的区块链网络索引,使用键盘上的方向键从选项中选择,对于本指南,我们将使用_"Polkadot"_。 -- 模板。选择一个子查询项目模板,为开始开发提供一个起点,我们建议选择_"启动项目"_。 -- Git仓库(可选)。提供一个Git URL,这个SubQuery项目将被托管在一个Repo中(当托管在SubQuery Explorer中)。 -- RPC端点(需要)。提供一个运行中的RPC端点的HTTPS URL,该端点将被默认用于该项目。 此 RPC 节点必须是归档节点 (具有完整链状态)。 在本指南中,我们将使用默认值_"avalanche.api.onfinality.io"_。 +- 网络。这个 SubQuery 项目将开发的区块链网络索引,使用键盘上的方向键从选项中选择,对于本指南,我们将使用*"Polkadot"*。 +- 网络。这个 SubQuery 项目将开发的区块链网络索引,使用键盘上的方向键从选项中选择,对于本指南,我们将使用*"Polkadot"*。 +- 模板。选择一个子查询项目模板,为开始开发提供一个起点,我们建议选择*"启动项目"*。 +- Git 仓库(可选)。提供一个 Git URL,这个 SubQuery 项目将被托管在一个 Repo 中(当托管在 SubQuery Explorer 中)。 +- RPC 端点(需要)。提供一个运行中的 RPC 端点的 HTTPS URL,该端点将被默认用于该项目。 此 RPC 节点必须是归档节点 (具有完整链状态)。 在本指南中,我们将使用默认值*"avalanche.api.onfinality.io"*。 - 作者(必填)。在此输入该子查询项目的所有者(例如,你的名字!)。 - 描述(可选)。你可以提供一个关于你的项目的简短段落,描述它包含什么数据以及用户可以用它做什么。 - 版本 (必填):输入一个自定义版本号或使用默认版本(`1.0.0`) @@ -59,8 +59,8 @@ subql init 最后,在项目目录下,运行以下命令来安装新项目的依赖关系。 - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## 正在对您的项目进行更改 @@ -72,9 +72,9 @@ subql init 这个快速启动指南的目标是调整标准启动器项目,以索引所有 Pangolin `批准` 事件。 -### 更新你的GraphQL Schema文件 +### 更新你的 GraphQL Schema 文件 -`schema.graphql` 文件定义了各种GraphQL 模式。 遵循GraphQL查询语言的工作方式,模式文件基本上决定了您从 SubQuery 获取数据的格式。 这是一个很好的开始,因为它允许你在前面定义你的最终目标。 +`schema.graphql` 文件定义了各种 GraphQL 模式。 遵循 GraphQL 查询语言的工作方式,模式文件基本上决定了您从 SubQuery 获取数据的格式。 这是一个很好的开始,因为它允许你在前面定义你的最终目标。 我们将更新 `schema.graphql` 文件来移除所有现有的实体并阅读如下: @@ -90,18 +90,18 @@ type PangolinApproval @entity { } ``` -**重要提示:当您对模式文件做任何更改时, 请确保使用命令yarn codegen来重新生成你的类型目录。 现在就做。** +**重要提示:当您对模式文件做任何更改时, 请确保使用命令 yarn codegen 来重新生成你的类型目录。 现在就做。** - cd PROJECT_NAME # Yarn yarn install # NPM npm install 您将主要处理以下文件: +`cd PROJECT_NAME # Yarn yarn install # NPM npm install` 您将主要处理以下文件: -- 在 `project.yaml`. 欲了解更多关于 -`schema.graphql` 文件的信息,请参阅 [Build/GraphQL Schema](../build/graphql.md)

    +- 在 `project.yaml`. 欲了解更多关于 + `schema.graphql` 文件的信息,请参阅 [Build/GraphQL Schema](../build/graphql.md) -### 更新Project Manifest 文件 +### 更新 Project Manifest 文件 -Projet Manifest(`project.yaml`)文件可以被看作是你项目的入口,它定义了SubQuery如何索引和转换链数据的大部分细节。 +Projet Manifest(`project.yaml`)文件可以被看作是你项目的入口,它定义了 SubQuery 如何索引和转换链数据的大部分细节。 -我们不会对清单文件做许多更改,因为它已经正确设置了,但我们需要更改处理程序。 请记住,我们正计划对所有Polkadot传输进行索引,因此,我们需要更新`datasources`部分,使之成为以下内容。 +我们不会对清单文件做许多更改,因为它已经正确设置了,但我们需要更改处理程序。 请记住,我们正计划对所有 Polkadot 传输进行索引,因此,我们需要更新`datasources`部分,使之成为以下内容。 ```yaml dataSources: @@ -128,15 +128,15 @@ dataSources: 这意味着我们将运行一个 `手审批交易` 映射函数。每次都会有一个 `批准` 来自 [Pangolin 合同的交易](https://snowtrace.io/txs?a=0x60781C2586D68229fde47564546784ab3fACA982&p=1) -关于Project Manifest(`project.yaml`)文件的更多信息,请查看我们在[Build/Manifest File](../build/manifest/polkadot.md)下的文档。 +关于 Project Manifest(`project.yaml`)文件的更多信息,请查看我们在[Build/Manifest File](../build/manifest/polkadot.md)下的文档。 -### 添加Mapping Function +### 添加 Mapping Function -Mapping functions定义了如何将链式数据转化为我们之前在`schema.graphql`文件中定义的优化的GraphQL实体。 +Mapping functions 定义了如何将链式数据转化为我们之前在`schema.graphql`文件中定义的优化的 GraphQL 实体。 导航到`src/mappings`目录下的默认映射函数。 你会看到三个导出的函数, `handleBlock`, `handleEvent`, 和 `handleCall`。 你可以同时删除`handleBlock`和`handleCall`函数,我们只处理`handleEvent`函数。 -`handleEvent`函数接收事件数据,只要事件符合我们之前在`project.yaml`中指定的过滤器。 我们将更新它以处理所有`balances.Transfer`事件,并将它们保存到我们先前创建的GraphQL实体中。 +`handleEvent`函数接收事件数据,只要事件符合我们之前在`project.yaml`中指定的过滤器。 我们将更新它以处理所有`balances.Transfer`事件,并将它们保存到我们先前创建的 GraphQL 实体中。 你可以将`handleEvent`函数更新为以下内容(注意额外的导入)。 @@ -161,29 +161,29 @@ export async function handleEvent(event: AvalancheEvent): Promise { } ``` -这正在做的是接收一个SubstrateEvent,其中包括有效载荷的传输数据。 我们提取此数据,然后实例化一个我们先前在 `schemagraphql` 文件中定义的新的 `PangolinApplying` 实体。 我们添加额外的信息,然后使用`.save()`函数来保存新的实体(SubQuery将自动将其保存到数据库)。 +这正在做的是接收一个 SubstrateEvent,其中包括有效载荷的传输数据。 我们提取此数据,然后实例化一个我们先前在 `schemagraphql` 文件中定义的新的 `PangolinApplying` 实体。 我们添加额外的信息,然后使用`.save()`函数来保存新的实体(SubQuery 将自动将其保存到数据库)。 关于映射函数的更多信息,请查看我们在[Build/Mappings](../build/mapping/polkadot.md)下的文档。 ### 生成项目 -为了运行您的新的SubQuery项目,我们首先需要建立我们的工作。 从项目的根目录运行构建命令。 +为了运行您的新的 SubQuery 项目,我们首先需要建立我们的工作。 从项目的根目录运行构建命令。 - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **重要的是:每当你对你的映射函数进行修改时,你就需要重建你的项目**。 ## 运行和查询你的项目 ```shell yarn start:docker ``` ```shell npm run-script start:docker ```
    +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: 下载所需软件包可能需要一些时间([`@subql/节点`](https://www.npmjs.com/package/@subql/node), [`@subql/quiry`](https://www.npmjs.com/package/@subql/query), and Postgress) 首次,但很快你会看到一个运行中的 SubQuery 节点。 请耐心等待。 @@ -191,13 +191,13 @@ export async function handleEvent(event: AvalancheEvent): Promise { 打开浏览器并前往 [http://localhost:3000](http://localhost:3000)。 -您应该会看到 GraphQL playground 显示在资源管理器中,其模式是准备查询。 在 Playground 的右上角,您会找到一个_Docs_按钮,该按钮将打开文档绘图。 该文档是自动生成的,可帮助您查找实体和方法。 +您应该会看到 GraphQL playground 显示在资源管理器中,其模式是准备查询。 在 Playground 的右上角,您会找到一个*Docs*按钮,该按钮将打开文档绘图。 该文档是自动生成的,可帮助您查找实体和方法。 对于一个新的 SubQuery 入门项目,您可以尝试以下查询以了解其工作原理,或者 [了解更多关于 GraphQL 查询语言](../run_publish/graphql.md)的信息。 ```graphql query { - pangolinApprovals(first: 5) { + pangolinApprovals(first: 5) { nodes { id blockNumber @@ -213,7 +213,7 @@ query { ### 发布您的 SubQuery 项目 -当您可以部署新项目时,SubQuery提供免费管理服务。 您可以将其部署到 [SubQuery 项目](https://project.subquery.network) 并使用我们的 [Explorer](https://explorer.subquery.network) 进行查询。 +当您可以部署新项目时,SubQuery 提供免费管理服务。 您可以将其部署到 [SubQuery 项目](https://project.subquery.network) 并使用我们的 [Explorer](https://explorer.subquery.network) 进行查询。 [阅读指南以发布您的新项目到 SubQuery 项目](../run_publish/publish.md), **注意您必须通过 IPFS** 进行部署。 @@ -221,8 +221,8 @@ query { 恭喜,您现在有一个本地运行的 SubQuery 项目,该项目接受 GraphQL API 对示例数据的请求。 -现在你已经深入了解了如何建立一个基本的SubQuery项目,问题是要从哪里开始? 如果你感到有信心,你可以跳到更多关于三个关键文件的学习。 这些文档的 [构建部分下的清单文件,GraphQL schema 和映射文件](../build/introduction.md)。 +现在你已经深入了解了如何建立一个基本的 SubQuery 项目,问题是要从哪里开始? 如果你感到有信心,你可以跳到更多关于三个关键文件的学习。 这些文档的 [构建部分下的清单文件,GraphQL schema 和映射文件](../build/introduction.md)。 不然的话,继续我们的 [学院部分](../academy/academy.md) ,因为那里有更多的深度讲习班、教程和示例。 我们将在这里查看更高级的修改,我们将通过运行随时可用和开源项目来深入细致地运行 SubQuery 项目。 -最后,如果你正在寻找更多的方法来运行和发布你的项目,我们的 [Run & Publish section](../run_publish/run.md)提供了关于运行你的SubQuery项目和其他高级GraphQL聚合和订阅功能的所有方法的详细信息。 +最后,如果你正在寻找更多的方法来运行和发布你的项目,我们的 [Run & Publish section](../run_publish/run.md)提供了关于运行你的 SubQuery 项目和其他高级 GraphQL 聚合和订阅功能的所有方法的详细信息。 diff --git a/docs/zh/quickstart/quickstart-cosmos.md b/docs/zh/quickstart/quickstart-cosmos.md index bc8e6f86c3a..625e8f34e5f 100644 --- a/docs/zh/quickstart/quickstart-cosmos.md +++ b/docs/zh/quickstart/quickstart-cosmos.md @@ -2,11 +2,11 @@ In this Quick start guide, we're going to start with a simple Cosmos starter project in the Juno Network and then finish by indexing some actual real data. 这是开发您自己的 SubQuery 项目的良好基础。 -**如果您正在寻找Terra指南,您可以阅读 [Terra特定的快速启动指南](./quickstart-polkadot)。** +**如果您正在寻找 Terra 指南,您可以阅读 [Terra 特定的快速启动指南](./quickstart-polkadot)。** 在本指南的最后,您将拥有一个在 SubQuery 节点上运行的可工作 的 SubQuery 项目,该节点具有一个可以从中查询数据的 GraphQL 端点。 -如果您还没有准备好进一步学习,我们建议您熟悉SubQuery中所使用的 [terminology](../#terminology)。 +如果您还没有准备好进一步学习,我们建议您熟悉 SubQuery 中所使用的 [terminology](../#terminology)。 **The goal of this quick start guide is to adapt the standard starter project to begin indexing all votes on the [Terra Developer Fund](https://daodao.zone/multisig/juno1lgnstas4ruflg0eta394y8epq67s4rzhg5anssz3rc5zwvjmmvcql6qps2) (which also contributed to SubQuery) from Cosmos, it should only take 10-15 minutes** @@ -16,8 +16,8 @@ You can see the final code of this project here at [https://github.com/jamesbayl ### 本地开发环境 -- [Node](https://nodejs.org/en/): 一个现代(如LTS版本)的Node安装。 -- [Docker](https://docker.com/): 本教程将使用需要Docker的程序。 +- [Node](https://nodejs.org/en/): 一个现代(如 LTS 版本)的 Node 安装。 +- [Docker](https://docker.com/): 本教程将使用需要 Docker 的程序。 ### 安装 SubQuery CLI @@ -44,8 +44,8 @@ Cosmos is not yet supported in SubQuery's CLI (`subql`), to start with Juno clon 最后,在项目目录下,运行以下命令来安装新项目的依赖关系。 - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## 正在对您的项目进行更改 @@ -55,11 +55,11 @@ Cosmos is not yet supported in SubQuery's CLI (`subql`), to start with Juno clon 2. `project.yaml` 中的项目清单 3. `src/mappings/` 目录中的映射函数 -本快速入门指南的目的是调整标准的启动项目,以开始对Polkadot的所有转移进行索引。 +本快速入门指南的目的是调整标准的启动项目,以开始对 Polkadot 的所有转移进行索引。 -### 更新你的GraphQL Schema文件 +### 更新你的 GraphQL Schema 文件 -`schema.graphql` 文件定义了各种GraphQL 模式。 遵循GraphQL查询语言的工作方式,模式文件基本上决定了您从 SubQuery 获取数据的格式。 这是一个很好的开始,因为它允许你在前面定义你的最终目标。 +`schema.graphql` 文件定义了各种 GraphQL 模式。 遵循 GraphQL 查询语言的工作方式,模式文件基本上决定了您从 SubQuery 获取数据的格式。 这是一个很好的开始,因为它允许你在前面定义你的最终目标。 We're going to update the `schema.graphql` file to read as follows so we can index all votes on the [Terra Developer Fund](https://daodao.zone/multisig/juno1lgnstas4ruflg0eta394y8epq67s4rzhg5anssz3rc5zwvjmmvcql6qps2). @@ -73,16 +73,16 @@ type Vote @entity { } ``` -**重要提示:当您对模式文件做任何更改时, 请确保使用命令yarn codegen来重新生成你的类型目录。 现在就做。** +**重要提示:当您对模式文件做任何更改时, 请确保使用命令 yarn codegen 来重新生成你的类型目录。 现在就做。** - cd PROJECT_NAME # Yarn yarn install # NPM npm install 您将主要处理以下文件: +`cd PROJECT_NAME # Yarn yarn install # NPM npm install` 您将主要处理以下文件: -- 在 `project.yaml`. 欲了解更多关于 -`schema.graphql` 文件的信息,请参阅 [Build/GraphQL Schema](../build/graphql.md)

    +- 在 `project.yaml`. 欲了解更多关于 + `schema.graphql` 文件的信息,请参阅 [Build/GraphQL Schema](../build/graphql.md) -### 更新Project Manifest 文件 +### 更新 Project Manifest 文件 -Projet Manifest(`project.yaml`)文件可以被看作是你项目的入口,它定义了SubQuery如何索引和转换链数据的大部分细节。 +Projet Manifest(`project.yaml`)文件可以被看作是你项目的入口,它定义了 SubQuery 如何索引和转换链数据的大部分细节。 我们不会对清单文件做许多更改,因为它已经正确设置了,但我们需要更改处理程序。 Remember we are planning to index all votes on the [Terra Developer Fund](https://daodao.zone/multisig/juno1lgnstas4ruflg0eta394y8epq67s4rzhg5anssz3rc5zwvjmmvcql6qps2). This means that we we will look at messages that use the `vote` contract call, we need to update the `datasources` section to read the following. @@ -105,11 +105,11 @@ dataSources: This means we'll run a `handleTerraDeveloperFund` mapping function each and every time there is a `vote` message from the [Terra Developer Fund](https://daodao.zone/multisig/juno1lgnstas4ruflg0eta394y8epq67s4rzhg5anssz3rc5zwvjmmvcql6qps2) smart contract. -关于Project Manifest(`project.yaml`)文件的更多信息,请查看我们在[Build/Manifest File](../build/manifest/polkadot.md)下的文档。 +关于 Project Manifest(`project.yaml`)文件的更多信息,请查看我们在[Build/Manifest File](../build/manifest/polkadot.md)下的文档。 -### 添加Mapping Function +### 添加 Mapping Function -Mapping functions定义了如何将链式数据转化为我们之前在`schema.graphql`文件中定义的优化的GraphQL实体。 +Mapping functions 定义了如何将链式数据转化为我们之前在`schema.graphql`文件中定义的优化的 GraphQL 实体。 导航到`src/mappings`目录下的默认映射函数。 You'll see four exported functions, `handleBlock`, `handleEvent`, `handleMessage`, and `handleTransaction`. Since we are dealing only with messages, you can delete everything other than the `handleMessage` function. @@ -137,29 +137,29 @@ export async function handleTerraDeveloperFund( } ``` -What this is doing is receiving a CosmosMessage which includes message data on the payload. We extract this data and then instantiate a new `Vote` entity that we defined earlier in the `schema.graphql` file. 我们添加额外的信息,然后使用`.save()`函数来保存新的实体(SubQuery将自动将其保存到数据库)。 +What this is doing is receiving a CosmosMessage which includes message data on the payload. We extract this data and then instantiate a new `Vote` entity that we defined earlier in the `schema.graphql` file. 我们添加额外的信息,然后使用`.save()`函数来保存新的实体(SubQuery 将自动将其保存到数据库)。 关于映射函数的更多信息,请查看我们在[Build/Mappings](../build/mapping/polkadot.md)下的文档。 ### 生成项目 -为了运行您的新的SubQuery项目,我们首先需要建立我们的工作。 从项目的根目录运行构建命令。 +为了运行您的新的 SubQuery 项目,我们首先需要建立我们的工作。 从项目的根目录运行构建命令。 - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **重要的是:每当你对你的映射函数进行修改时,你就需要重建你的项目**。 ## 运行和查询你的项目 ```shell yarn start:docker ``` ```shell npm run-script start:docker ```
    +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: 下载所需软件包可能需要一些时间([`@subql/节点`](https://www.npmjs.com/package/@subql/node), [`@subql/quiry`](https://www.npmjs.com/package/@subql/query), and Postgress) 首次,但很快你会看到一个运行中的 SubQuery 节点。 请耐心等待。 @@ -167,16 +167,15 @@ What this is doing is receiving a CosmosMessage which includes message data on t 打开浏览器并前往 [http://localhost:3000](http://localhost:3000)。 -您应该会看到 GraphQL playground 显示在资源管理器中,其模式是准备查询。 在 Playground 的右上角,您会找到一个_Docs_按钮,该按钮将打开文档绘图。 该文档是自动生成的,可帮助您查找实体和方法。 +您应该会看到 GraphQL playground 显示在资源管理器中,其模式是准备查询。 在 Playground 的右上角,您会找到一个*Docs*按钮,该按钮将打开文档绘图。 该文档是自动生成的,可帮助您查找实体和方法。 对于一个新的 SubQuery 入门项目,您可以尝试以下查询以了解其工作原理,或者 [了解更多关于 GraphQL 查询语言](../run_publish/graphql.md)的信息。 ```graphql query { - votes( + votes( first: 5 - orderBy: BLOCK_HEIGHT_DESC - # filter: {proposalID: {equalTo: "4"}} + orderBy: BLOCK_HEIGHT_DESC # filter: {proposalID: {equalTo: "4"}} ) { nodes { id @@ -192,16 +191,16 @@ You can see the final code of this project here at [https://github.com/jamesbayl ### 发布您的 SubQuery 项目 -当您可以部署新项目时,SubQuery提供免费管理服务。 您可以将其部署到 [SubQuery 项目](https://project.subquery.network) 并使用我们的 [Explorer](https://explorer.subquery.network) 进行查询。 +当您可以部署新项目时,SubQuery 提供免费管理服务。 您可以将其部署到 [SubQuery 项目](https://project.subquery.network) 并使用我们的 [Explorer](https://explorer.subquery.network) 进行查询。 -[阅读向SubQuery 项目发布您的新项目](../run_publish/publish.md) +[阅读向 SubQuery 项目发布您的新项目](../run_publish/publish.md) ## 后续步骤 恭喜,您现在有一个本地运行的 SubQuery 项目,该项目接受 GraphQL API 对示例数据的请求。 -现在你已经深入了解了如何建立一个基本的SubQuery项目,问题是要从哪里开始? 如果你感到有信心,你可以跳到更多关于三个关键文件的学习。 这些文档的 [构建部分下的清单文件,GraphQL schema 和映射文件](../build/introduction.md)。 +现在你已经深入了解了如何建立一个基本的 SubQuery 项目,问题是要从哪里开始? 如果你感到有信心,你可以跳到更多关于三个关键文件的学习。 这些文档的 [构建部分下的清单文件,GraphQL schema 和映射文件](../build/introduction.md)。 不然的话,继续我们的 [学院部分](../academy/academy.md) ,因为那里有更多的深度讲习班、教程和示例。 我们将在这里查看更高级的修改,我们将通过运行随时可用和开源项目来深入细致地运行 SubQuery 项目。 -最后,如果你正在寻找更多的方法来运行和发布你的项目,我们的 [Run & Publish section](../run_publish/run.md)提供了关于运行你的SubQuery项目和其他高级GraphQL聚合和订阅功能的所有方法的详细信息。 +最后,如果你正在寻找更多的方法来运行和发布你的项目,我们的 [Run & Publish section](../run_publish/run.md)提供了关于运行你的 SubQuery 项目和其他高级 GraphQL 聚合和订阅功能的所有方法的详细信息。 diff --git a/docs/zh/quickstart/quickstart-polkadot.md b/docs/zh/quickstart/quickstart-polkadot.md index fbb0c086318..ae53ff9b8ad 100644 --- a/docs/zh/quickstart/quickstart-polkadot.md +++ b/docs/zh/quickstart/quickstart-polkadot.md @@ -4,16 +4,16 @@ 在本指南的最后,您将拥有一个在 SubQuery 节点上运行的可工作 的 SubQuery 项目,该节点具有一个可以从中查询数据的 GraphQL 端点。 -如果您还没有准备好进一步学习,我们建议您熟悉SubQuery中所使用的 [terminology](../#terminology)。 +如果您还没有准备好进一步学习,我们建议您熟悉 SubQuery 中所使用的 [terminology](../#terminology)。 -**这个快速入门指南的目的是调整标准的启动项目,开始对Polkadot的所有转移进行索引,它应该只需要10-15分钟** +**这个快速入门指南的目的是调整标准的启动项目,开始对 Polkadot 的所有转移进行索引,它应该只需要 10-15 分钟** ## 准备 ### 本地开发环境 -- [Node](https://nodejs.org/en/): 一个现代(如LTS版本)的Node安装。 -- [Docker](https://docker.com/): 本教程将使用需要Docker的程序。 +- [Node](https://nodejs.org/en/): 一个现代(如 LTS 版本)的 Node 安装。 +- [Docker](https://docker.com/): 本教程将使用需要 Docker 的程序。 ### 安装 SubQuery CLI @@ -34,7 +34,7 @@ subql help ## 初始化 Starter SubQuery 项目 -在你想创建SubQuery项目的目录中,只需运行以下命令就可以开始了。 +在你想创建 SubQuery 项目的目录中,只需运行以下命令就可以开始了。 ```shell subql init @@ -43,12 +43,12 @@ subql init 在初始化 SubQuery project 时,您会被问到一些问题: - 项目名称:您的 SubQuery 项目的项目名称 -- 网络:将开发一个 SubQuery 项目以索引的 blockchain 网络. 使用箭头键从可用选项中选择。 对于本指南,我们将使用 *"Substrate"* -- 网络:将开发一个 SubQuery 项目以索引的 blockchain 网络. 使用箭头键从可用选项中选择。 对于本指南,我们将使用 *"Substrate"* -- 模板:选择一个子查询项目模板,它将为开始开发提供起始点. 我们建议选择 *"subql-starter"* 项目。 -- RPC端点(需要)。提供一个运行中的RPC端点的HTTPS URL,该端点将被默认用于该项目。 您可以快速访问不同的 Polkadot 网络的公共端点,甚至可以使用 [OnFinality](https://app.onfinality.io) 或仅使用默认的 Polkadot 端点创建您自己的专用节点。 此 RPC 节点必须是归档节点 (具有完整链状态)。 在本指南中,我们将使用默认值*"https://polkadot.api.onfinality.io"*。 +- 网络:将开发一个 SubQuery 项目以索引的 blockchain 网络. 使用箭头键从可用选项中选择。 对于本指南,我们将使用 _"Substrate"_ +- 网络:将开发一个 SubQuery 项目以索引的 blockchain 网络. 使用箭头键从可用选项中选择。 对于本指南,我们将使用 _"Substrate"_ +- 模板:选择一个子查询项目模板,它将为开始开发提供起始点. 我们建议选择 _"subql-starter"_ 项目。 +- RPC 端点(需要)。提供一个运行中的 RPC 端点的 HTTPS URL,该端点将被默认用于该项目。 您可以快速访问不同的 Polkadot 网络的公共端点,甚至可以使用 [OnFinality](https://app.onfinality.io) 或仅使用默认的 Polkadot 端点创建您自己的专用节点。 此 RPC 节点必须是归档节点 (具有完整链状态)。 在本指南中,我们将使用默认值*"https://polkadot.api.onfinality.io"*。 - Git 存储库(可选):提供指向此 SubQuery 项目的,并将在其中托管的存储库的 Git URL(当托管在 SubQuery Explorer 中时) -- 作者:在此输入此SubQuery项目的所有者(例如您的名字!)或接受所提供的默认值。 +- 作者:在此输入此 SubQuery 项目的所有者(例如您的名字!)或接受所提供的默认值。 - 描述:提供一个关于您项目的简短段落,描述项目包含哪些数据,用户可以做什么或接受提供的默认值。 - 版本 (必填):输入一个自定义版本号或使用默认版本(`1.0.0`) - 许可证(必填):提供此项目的软件许可或接受默认设置(`Apache-`) @@ -57,8 +57,8 @@ subql init 最后,在项目目录下,运行以下命令来安装新项目的依赖关系。 - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## 正在对您的项目进行更改 @@ -68,11 +68,11 @@ subql init 2. `project.yaml` 中的项目清单 3. `src/mappings/` 目录中的映射函数 -本快速入门指南的目的是调整标准的启动项目,以开始对Polkadot的所有转移进行索引。 +本快速入门指南的目的是调整标准的启动项目,以开始对 Polkadot 的所有转移进行索引。 -### 更新你的GraphQL Schema文件 +### 更新你的 GraphQL Schema 文件 -`schema.graphql` 文件定义了各种GraphQL 模式。 遵循GraphQL查询语言的工作方式,模式文件基本上决定了您从 SubQuery 获取数据的格式。 这是一个很好的开始,因为它允许你在前面定义你的最终目标。 +`schema.graphql` 文件定义了各种 GraphQL 模式。 遵循 GraphQL 查询语言的工作方式,模式文件基本上决定了您从 SubQuery 获取数据的格式。 这是一个很好的开始,因为它允许你在前面定义你的最终目标。 我们将更新 `schema.graphql` 文件如下所示:: @@ -86,18 +86,18 @@ type Transfer @entity { } ``` -**重要提示:当您对模式文件做任何更改时, 请确保使用命令yarn codegen来重新生成你的类型目录。** +**重要提示:当您对模式文件做任何更改时, 请确保使用命令 yarn codegen 来重新生成你的类型目录。** - ```shell yarn codegen ``` - ```shell npm run-script codegen ``` +::: code-tabs @tab:active yarn `shell yarn codegen ` +@tab npm `shell npm run-script codegen ` ::: 你会在 `/src/types/model` 目录中找到生成的模型。 欲了解更多关于 `schema.graphql` 文件的信息,请参阅 [Build/GraphQL Schema](../build/graphql.md) -### 更新Project Manifest 文件 +### 更新 Project Manifest 文件 -Projet Manifest(`project.yaml`)文件可以被看作是你项目的入口,它定义了SubQuery如何索引和转换链数据的大部分细节。 +Projet Manifest(`project.yaml`)文件可以被看作是你项目的入口,它定义了 SubQuery 如何索引和转换链数据的大部分细节。 -清单文件已经正确设置,但我们需要更改处理程序。 请记住,我们正计划对所有Polkadot传输进行索引,因此,我们需要更新`datasources`部分,使之成为以下内容。 +清单文件已经正确设置,但我们需要更改处理程序。 请记住,我们正计划对所有 Polkadot 传输进行索引,因此,我们需要更新`datasources`部分,使之成为以下内容。 ```yaml dataSources: @@ -115,15 +115,15 @@ dataSources: 这意味着我们将在每次出现`handleEvent`事件时运行一个`balances.Transfer`映射函数。 -关于Project Manifest(`project.yaml`)文件的更多信息,请查看我们在[Build/Manifest File](../build/manifest/polkadot.md)下的文档。 +关于 Project Manifest(`project.yaml`)文件的更多信息,请查看我们在[Build/Manifest File](../build/manifest/polkadot.md)下的文档。 -### 添加Mapping Function +### 添加 Mapping Function -Mapping functions定义了如何将链式数据转化为我们之前在`schema.graphql`文件中定义的优化的GraphQL实体。 +Mapping functions 定义了如何将链式数据转化为我们之前在`schema.graphql`文件中定义的优化的 GraphQL 实体。 导航到`src/mappings`目录下的默认映射函数。 你会看到三个导出的函数, `handleBlock`, `handleEvent`, 和 `handleCall`。 你可以同时删除`handleBlock`和`handleCall`函数,我们只处理`handleEvent`函数。 -`handleEvent`函数接收事件数据,只要事件符合我们之前在`project.yaml`中指定的过滤器。 我们将更新它以处理所有`balances.Transfer`事件,并将它们保存到我们先前创建的GraphQL实体中。 +`handleEvent`函数接收事件数据,只要事件符合我们之前在`project.yaml`中指定的过滤器。 我们将更新它以处理所有`balances.Transfer`事件,并将它们保存到我们先前创建的 GraphQL 实体中。 你可以将`handleEvent`函数更新为以下内容(注意额外的导入)。 @@ -133,48 +133,48 @@ import { Transfer } from "../types"; import { Balance } from "@polkadot/types/interfaces"; export async function handleTransfer(event: SubstrateEvent): Promise { - // Get data from the event - // The balances.transfer event has the following payload \[from, to, value\] - // logger.info(JSON.stringify(event)); - const from = event.event.data[0]; - const to = event.event.data[1]; - const amount = event.event.data[2]; - - // Create the new transfer entity - const transfer = new Transfer( - `${event.block.block.header.number.toNumber()}-${event.idx}`, - ); - transfer.blockNumber = event.block.block.header.number.toBigInt(); - transfer.from = from.toString(); - transfer.to = to.toString(); - transfer.amount = (amount as Balance).toBigInt(); - await transfer.save(); + // Get data from the event + // The balances.transfer event has the following payload \[from, to, value\] + // logger.info(JSON.stringify(event)); + const from = event.event.data[0]; + const to = event.event.data[1]; + const amount = event.event.data[2]; + + // Create the new transfer entity + const transfer = new Transfer( + `${event.block.block.header.number.toNumber()}-${event.idx}` + ); + transfer.blockNumber = event.block.block.header.number.toBigInt(); + transfer.from = from.toString(); + transfer.to = to.toString(); + transfer.amount = (amount as Balance).toBigInt(); + await transfer.save(); } ``` -这正在做的是接收一个SubstrateEvent,其中包括有效载荷的传输数据。 我们提取这些数据,然后实例化一个新的`Transfer`实体,我们之前在`schema.graphql`文件中定义了这个实体。 我们添加额外的信息,然后使用`.save()`函数来保存新的实体(SubQuery将自动将其保存到数据库)。 +这正在做的是接收一个 SubstrateEvent,其中包括有效载荷的传输数据。 我们提取这些数据,然后实例化一个新的`Transfer`实体,我们之前在`schema.graphql`文件中定义了这个实体。 我们添加额外的信息,然后使用`.save()`函数来保存新的实体(SubQuery 将自动将其保存到数据库)。 关于映射函数的更多信息,请查看我们在[Build/Mappings](../build/mapping/polkadot.md)下的文档。 ### 生成项目 -为了运行您的新的SubQuery项目,我们首先需要建立我们的工作。 从项目的根目录运行构建命令。 +为了运行您的新的 SubQuery 项目,我们首先需要建立我们的工作。 从项目的根目录运行构建命令。 - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **重要的是:每当你对你的映射函数进行修改时,你就需要重建你的项目**。 ## 运行和查询你的项目 ```shell yarn start:docker ``` ```shell npm run-script start:docker ```
    +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: 下载所需软件包可能需要一些时间([`@subql/节点`](https://www.npmjs.com/package/@subql/node), [`@subql/quiry`](https://www.npmjs.com/package/@subql/query), and Postgress) 首次,但很快你会看到一个运行中的 SubQuery 节点。 @@ -182,17 +182,14 @@ export async function handleTransfer(event: SubstrateEvent): Promise { 打开浏览器并前往 [http://localhost:3000](http://localhost:3000)。 -您应该会看到 GraphQL playground 显示在资源管理器中,其模式是准备查询。 在 Playground 的右上角,您会找到一个_Docs_按钮,该按钮将打开文档绘图。 该文档是自动生成的,可帮助您查找实体和方法。 +您应该会看到 GraphQL playground 显示在资源管理器中,其模式是准备查询。 在 Playground 的右上角,您会找到一个*Docs*按钮,该按钮将打开文档绘图。 该文档是自动生成的,可帮助您查找实体和方法。 对于一个新的 SubQuery 启动器项目 尝试以下查询以了解它如何工作或了解更多关于 [GraphQL 查询语言](../run_publish/graphql.md) 的信息。 ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount @@ -207,16 +204,16 @@ export async function handleTransfer(event: SubstrateEvent): Promise { ### 发布您的 SubQuery 项目 -当您可以部署新项目时,SubQuery提供免费管理服务。 您可以将其部署到 [SubQuery 项目](https://project.subquery.network) 并使用我们的 [Explorer](https://explorer.subquery.network) 进行查询。 +当您可以部署新项目时,SubQuery 提供免费管理服务。 您可以将其部署到 [SubQuery 项目](https://project.subquery.network) 并使用我们的 [Explorer](https://explorer.subquery.network) 进行查询。 -阅读 [的指南向SubQuery项目发布您的新项目](../run_publish/publish.md) +阅读 [的指南向 SubQuery 项目发布您的新项目](../run_publish/publish.md) ## 后续步骤 恭喜,您现在有一个本地运行的 SubQuery 项目,该项目接受 GraphQL API 对示例数据的请求。 -现在你已经深入了解了如何建立一个基本的SubQuery项目,问题是要从哪里开始? 如果你感到有信心,你可以跳到更多关于三个关键文件的学习。 这些文档的 [构建部分下的清单文件,GraphQL schema 和映射文件](../build/introduction.md)。 +现在你已经深入了解了如何建立一个基本的 SubQuery 项目,问题是要从哪里开始? 如果你感到有信心,你可以跳到更多关于三个关键文件的学习。 这些文档的 [构建部分下的清单文件,GraphQL schema 和映射文件](../build/introduction.md)。 不然的话,继续我们的 [学院部分](../academy/academy.md) ,因为那里有更多的深度讲习班、教程和示例。 我们将在这里查看更高级的修改,我们将通过运行随时可用和开源项目来深入细致地运行 SubQuery 项目。 -最后,如果你正在寻找更多的方法来运行和发布你的项目,我们的 [Run & Publish section](../run_publish/run.md)提供了关于运行你的SubQuery项目和其他高级GraphQL聚合和订阅功能的所有方法的详细信息。 +最后,如果你正在寻找更多的方法来运行和发布你的项目,我们的 [Run & Publish section](../run_publish/run.md)提供了关于运行你的 SubQuery 项目和其他高级 GraphQL 聚合和订阅功能的所有方法的详细信息。 diff --git a/docs/zh/quickstart/quickstart-terra.md b/docs/zh/quickstart/quickstart-terra.md index 60e277b9a45..fa1d3816c6c 100644 --- a/docs/zh/quickstart/quickstart-terra.md +++ b/docs/zh/quickstart/quickstart-terra.md @@ -1,21 +1,21 @@ -# Terra快速开始 +# Terra 快速开始 在这个快速入门指南中,我们将从一个简单的启动项目开始,然后通过索引一些实际数据来完成。 这是开发您自己的 SubQuery 项目的良好基础。 -**如果您正在寻找Terra指南,您可以阅读 [Terra特定的快速启动指南](./quickstart-polkadot)。** +**如果您正在寻找 Terra 指南,您可以阅读 [Terra 特定的快速启动指南](./quickstart-polkadot)。** 在本指南的最后,您将拥有一个在 SubQuery 节点上运行的可工作 的 SubQuery 项目,该节点具有一个可以从中查询数据的 GraphQL 端点。 -如果您还没有准备好进一步学习,我们建议您熟悉SubQuery中所使用的 [terminology](../#terminology)。 +如果您还没有准备好进一步学习,我们建议您熟悉 SubQuery 中所使用的 [terminology](../#terminology)。 -**这个快速入门指南的目的是调整标准的启动项目,开始对Polkadot的所有转移进行索引,它应该只需要10-15分钟** +**这个快速入门指南的目的是调整标准的启动项目,开始对 Polkadot 的所有转移进行索引,它应该只需要 10-15 分钟** ## 准备 ### 本地开发环境 -- [Node](https://nodejs.org/en/): 一个现代(如LTS版本)的Node安装。 -- [Docker](https://docker.com/): 本教程将使用需要Docker的程序。 +- [Node](https://nodejs.org/en/): 一个现代(如 LTS 版本)的 Node 安装。 +- [Docker](https://docker.com/): 本教程将使用需要 Docker 的程序。 ### 安装 SubQuery CLI @@ -36,7 +36,7 @@ subql help ## 初始化 Starter SubQuery 项目 -在你想创建SubQuery项目的目录中,只需运行以下命令就可以开始了。 +在你想创建 SubQuery 项目的目录中,只需运行以下命令就可以开始了。 ```shell subql init @@ -45,11 +45,11 @@ subql init 在初始化 SubQuery project 时,您会被问到一些问题: - Project Name: A name for your SubQuery project -- 网络。这个SubQuery项目将开发的区块链网络索引,使用键盘上的方向键从选项中选择,对于本指南,我们将使用*"Polkadot"*。 -- 网络。这个SubQuery项目将开发的区块链网络索引,使用键盘上的方向键从选项中选择,对于本指南,我们将使用*"Polkadot"*。 +- 网络。这个 SubQuery 项目将开发的区块链网络索引,使用键盘上的方向键从选项中选择,对于本指南,我们将使用*"Polkadot"*。 +- 网络。这个 SubQuery 项目将开发的区块链网络索引,使用键盘上的方向键从选项中选择,对于本指南,我们将使用*"Polkadot"*。 - 模板。选择一个子查询项目模板,为开始开发提供一个起点,我们建议选择*"启动项目"*。 -- Git仓库(可选)。提供一个Git URL,这个SubQuery项目将被托管在一个Repo中(当托管在SubQuery Explorer中)。 -- RPC端点(需要)。提供一个运行中的RPC端点的HTTPS URL,该端点将被默认用于该项目。 此 RPC 节点必须是归档节点 (具有完整链状态)。 在本指南中,我们将使用默认值*"https://polkadot.api.onfinality.io"*。 +- Git 仓库(可选)。提供一个 Git URL,这个 SubQuery 项目将被托管在一个 Repo 中(当托管在 SubQuery Explorer 中)。 +- RPC 端点(需要)。提供一个运行中的 RPC 端点的 HTTPS URL,该端点将被默认用于该项目。 此 RPC 节点必须是归档节点 (具有完整链状态)。 在本指南中,我们将使用默认值*"https://polkadot.api.onfinality.io"*。 - 作者(必填)。在此输入该子查询项目的所有者(例如,你的名字!)。 - 描述(可选)。你可以提供一个关于你的项目的简短段落,描述它包含什么数据以及用户可以用它做什么。 - 版本 (必填):输入一个自定义版本号或使用默认版本(`1.0.0`) @@ -59,8 +59,8 @@ subql init 最后,在项目目录下,运行以下命令来安装新项目的依赖关系。 - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: ## 正在对您的项目进行更改 @@ -70,11 +70,11 @@ subql init 2. `project.yaml` 中的项目清单 3. `src/mappings/` 目录中的映射函数 -本快速入门指南的目的是调整标准的启动项目,以开始对Polkadot的所有转移进行索引。 +本快速入门指南的目的是调整标准的启动项目,以开始对 Polkadot 的所有转移进行索引。 -### 更新你的GraphQL Schema文件 +### 更新你的 GraphQL Schema 文件 -`schema.graphql` 文件定义了各种GraphQL 模式。 遵循GraphQL查询语言的工作方式,模式文件基本上决定了您从 SubQuery 获取数据的格式。 这是一个很好的开始,因为它允许你在前面定义你的最终目标。 +`schema.graphql` 文件定义了各种 GraphQL 模式。 遵循 GraphQL 查询语言的工作方式,模式文件基本上决定了您从 SubQuery 获取数据的格式。 这是一个很好的开始,因为它允许你在前面定义你的最终目标。 我们将更新 `schema.graphql` 文件如下所示: @@ -92,18 +92,18 @@ type Transfer @entity { } ``` -**重要提示:当您对模式文件做任何更改时, 请确保使用命令yarn codegen来重新生成你的类型目录。 现在就做。** +**重要提示:当您对模式文件做任何更改时, 请确保使用命令 yarn codegen 来重新生成你的类型目录。 现在就做。** - cd PROJECT_NAME # Yarn yarn install # NPM npm install 您将主要处理以下文件: +`cd PROJECT_NAME # Yarn yarn install # NPM npm install` 您将主要处理以下文件: -- 在 `project.yaml`. 欲了解更多关于 -`schema.graphql` 文件的信息,请参阅 [Build/GraphQL Schema](../build/graphql.md)

    +- 在 `project.yaml`. 欲了解更多关于 + `schema.graphql` 文件的信息,请参阅 [Build/GraphQL Schema](../build/graphql.md) -### 更新Project Manifest 文件 +### 更新 Project Manifest 文件 -Projet Manifest(`project.yaml`)文件可以被看作是你项目的入口,它定义了SubQuery如何索引和转换链数据的大部分细节。 +Projet Manifest(`project.yaml`)文件可以被看作是你项目的入口,它定义了 SubQuery 如何索引和转换链数据的大部分细节。 -我们不会对清单文件做许多更改,因为它已经正确设置了,但我们需要更改处理程序。 请记住,我们正计划对所有Polkadot传输进行索引,因此,我们需要更新`datasources`部分,使之成为以下内容。 +我们不会对清单文件做许多更改,因为它已经正确设置了,但我们需要更改处理程序。 请记住,我们正计划对所有 Polkadot 传输进行索引,因此,我们需要更新`datasources`部分,使之成为以下内容。 ```yaml 数据源: @@ -126,15 +126,15 @@ Projet Manifest(`project.yaml`)文件可以被看作是你项目的入口, 这意味着我们将运行一个 `处理事件` 映射功能,每次从 bLuna 智能合约进行 `传输` 事件。 -关于Project Manifest(`project.yaml`)文件的更多信息,请查看我们在[Build/Manifest File](../build/manifest/polkadot.md)下的文档。 +关于 Project Manifest(`project.yaml`)文件的更多信息,请查看我们在[Build/Manifest File](../build/manifest/polkadot.md)下的文档。 -### 添加Mapping Function +### 添加 Mapping Function -Mapping functions定义了如何将链式数据转化为我们之前在`schema.graphql`文件中定义的优化的GraphQL实体。 +Mapping functions 定义了如何将链式数据转化为我们之前在`schema.graphql`文件中定义的优化的 GraphQL 实体。 导航到`src/mappings`目录下的默认映射函数。 你会看到三个导出的函数, `handleBlock`, `handleEvent`, 和 `handleCall`。 你可以同时删除`handleBlock`和`handleCall`函数,我们只处理`handleEvent`函数。 -`handleEvent`函数接收事件数据,只要事件符合我们之前在`project.yaml`中指定的过滤器。 我们将更新它以处理所有`balances.Transfer`事件,并将它们保存到我们先前创建的GraphQL实体中。 +`handleEvent`函数接收事件数据,只要事件符合我们之前在`project.yaml`中指定的过滤器。 我们将更新它以处理所有`balances.Transfer`事件,并将它们保存到我们先前创建的 GraphQL 实体中。 你可以将`handleEvent`函数更新为以下内容(注意额外的导入)。 @@ -146,56 +146,56 @@ import { MsgExecuteContract } from "@terra-money/terra.js"; export async function handleEvent( event: TerraEvent ): Promise { - // Print debugging data from the event - // logger.info(JSON.stringify(event)); - - // Create the new transfer entity with a unique ID - const transfer = new Transfer( - `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` - ); - transfer.blockHeight = BigInt(event.block.block.block.header.height); - transfer.txHash = event.tx.tx.txhash; - for (const attr of event.event.attributes) { - switch (attr.key) { - case "sender": - transfer.sender = attr.value; - break; - case "recipient": - transfer.recipient = attr.value; - break; - case "amount": - transfer.amount = attr.value; - break; - default: - } + // Print debugging data from the event + // logger.info(JSON.stringify(event)); + + // Create the new transfer entity with a unique ID + const transfer = new Transfer( + `${event.tx.tx.txhash}-${event.msg.idx}-${event.idx}` + ); + transfer.blockHeight = BigInt(event.block.block.block.header.height); + transfer.txHash = event.tx.tx.txhash; + for (const attr of event.event.attributes) { + switch (attr.key) { + case "sender": + transfer.sender = attr.value; + break; + case "recipient": + transfer.recipient = attr.value; + break; + case "amount": + transfer.amount = attr.value; + break; + default: } - await transfer.save(); + } + await transfer.save(); } ``` -这正在做的是接收一个SubstrateEvent,其中包括有效载荷的传输数据。 我们提取这些数据,然后实例化一个新的`Transfer`实体,我们之前在`schema.graphql`文件中定义了这个实体。 我们添加额外的信息,然后使用`.save()`函数来保存新的实体(SubQuery将自动将其保存到数据库)。 +这正在做的是接收一个 SubstrateEvent,其中包括有效载荷的传输数据。 我们提取这些数据,然后实例化一个新的`Transfer`实体,我们之前在`schema.graphql`文件中定义了这个实体。 我们添加额外的信息,然后使用`.save()`函数来保存新的实体(SubQuery 将自动将其保存到数据库)。 关于映射函数的更多信息,请查看我们在[Build/Mappings](../build/mapping/polkadot.md)下的文档。 ### 生成项目 -为了运行您的新的SubQuery项目,我们首先需要建立我们的工作。 从项目的根目录运行构建命令。 +为了运行您的新的 SubQuery 项目,我们首先需要建立我们的工作。 从项目的根目录运行构建命令。 - ```shell yarn build ``` ```shell npm run-script build ``` +::: code-tabs @tab:active yarn `shell yarn build ` @tab npm `shell npm run-script build ` ::: **重要的是:每当你对你的映射函数进行修改时,你就需要重建你的项目**。 ## 运行和查询你的项目 ```shell yarn start:docker ``` ```shell npm run-script start:docker ```
    +::: code-tabs @tab:active yarn `shell yarn start:docker ` @tab npm `shell npm run-script start:docker ` ::: 下载所需软件包可能需要一些时间([`@subql/节点`](https://www.npmjs.com/package/@subql/node), [`@subql/quiry`](https://www.npmjs.com/package/@subql/query), and Postgress) 首次,但很快你会看到一个运行中的 SubQuery 节点。 请耐心等待。 @@ -203,17 +203,14 @@ export async function handleEvent( 打开浏览器并前往 [http://localhost:3000](http://localhost:3000)。 -您应该会看到 GraphQL playground 显示在资源管理器中,其模式是准备查询。 在 Playground 的右上角,您会找到一个_Docs_按钮,该按钮将打开文档绘图。 该文档是自动生成的,可帮助您查找实体和方法。 +您应该会看到 GraphQL playground 显示在资源管理器中,其模式是准备查询。 在 Playground 的右上角,您会找到一个*Docs*按钮,该按钮将打开文档绘图。 该文档是自动生成的,可帮助您查找实体和方法。 对于一个新的 SubQuery 入门项目,您可以尝试以下查询以了解其工作原理,或者 [了解更多关于 GraphQL 查询语言](../run_publish/graphql.md)的信息。 ```graphql { query { - transfers( - first: 10, - orderBy: AMOUNT_DESC - ) { + transfers(first: 10, orderBy: AMOUNT_DESC) { nodes { id amount @@ -228,16 +225,16 @@ export async function handleEvent( ### 发布您的 SubQuery 项目 -当您可以部署新项目时,SubQuery提供免费管理服务。 您可以将其部署到 [SubQuery 项目](https://project.subquery.network) 并使用我们的 [Explorer](https://explorer.subquery.network) 进行查询。 +当您可以部署新项目时,SubQuery 提供免费管理服务。 您可以将其部署到 [SubQuery 项目](https://project.subquery.network) 并使用我们的 [Explorer](https://explorer.subquery.network) 进行查询。 -[阅读向SubQuery 项目发布您的新项目](../run_publish/publish.md) +[阅读向 SubQuery 项目发布您的新项目](../run_publish/publish.md) ## 后续步骤 恭喜,您现在有一个本地运行的 SubQuery 项目,该项目接受 GraphQL API 对示例数据的请求。 -现在你已经深入了解了如何建立一个基本的SubQuery项目,问题是要从哪里开始? 如果你感到有信心,你可以跳到更多关于三个关键文件的学习。 这些文档的 [构建部分下的清单文件,GraphQL schema 和映射文件](../build/introduction.md)。 +现在你已经深入了解了如何建立一个基本的 SubQuery 项目,问题是要从哪里开始? 如果你感到有信心,你可以跳到更多关于三个关键文件的学习。 这些文档的 [构建部分下的清单文件,GraphQL schema 和映射文件](../build/introduction.md)。 不然的话,继续我们的 [学院部分](../academy/academy.md) ,因为那里有更多的深度讲习班、教程和示例。 我们将在这里查看更高级的修改,我们将通过运行随时可用和开源项目来深入细致地运行 SubQuery 项目。 -最后,如果你正在寻找更多的方法来运行和发布你的项目,我们的 [Run & Publish section](../run_publish/run.md)提供了关于运行你的SubQuery项目和其他高级GraphQL聚合和订阅功能的所有方法的详细信息。 +最后,如果你正在寻找更多的方法来运行和发布你的项目,我们的 [Run & Publish section](../run_publish/run.md)提供了关于运行你的 SubQuery 项目和其他高级 GraphQL 聚合和订阅功能的所有方法的详细信息。 diff --git a/docs/zh/quickstart/quickstart.md b/docs/zh/quickstart/quickstart.md index 3561c10ea89..43c64db2682 100644 --- a/docs/zh/quickstart/quickstart.md +++ b/docs/zh/quickstart/quickstart.md @@ -1,21 +1,21 @@ # 1. 创建一个新项目 -此快速启动指南的目标是为您提供完整的开发设置和引导步骤来创建您的第一个SubQuery区块链项目。 它针对的是那些刚刚开始他们的 blockchain 旅程的有经验的开发者。 +此快速启动指南的目标是为您提供完整的开发设置和引导步骤来创建您的第一个 SubQuery 区块链项目。 它针对的是那些刚刚开始他们的 blockchain 旅程的有经验的开发者。 -这个快速启动指南将需要10-15分钟左右。 +这个快速启动指南将需要 10-15 分钟左右。 -完成这个快速启动指南后,您将有一个工作的 SubQuery 项目,运行在 SubQuery 节点上。 您将能够从您最喜欢的区块链网络(如Polkadot、Avalanche、Cosmos等)调整标准启动器项目和索引传输。 +完成这个快速启动指南后,您将有一个工作的 SubQuery 项目,运行在 SubQuery 节点上。 您将能够从您最喜欢的区块链网络(如 Polkadot、Avalanche、Cosmos 等)调整标准启动器项目和索引传输。 -让我们开始创建您的第一个SubQuery区块链项目的过程。 +让我们开始创建您的第一个 SubQuery 区块链项目的过程。 ## 前提条件 在开始使用 SubQuery 创建您的第一个区块链项目之前,请确保您已经安装了所需的支持软件应用程序。 分别是: -- [Node](https://nodejs.org/en/): 一个现代(如LTS版本)的Node安装。 -- [Docker](https://docker.com/): 本教程将使用Docker的程序。 +- [Node](https://nodejs.org/en/): 一个现代(如 LTS 版本)的 Node 安装。 +- [Docker](https://docker.com/): 本教程将使用 Docker 的程序。 -现在,您即将开始第一步,即安装SubQuery CLI。 +现在,您即将开始第一步,即安装 SubQuery CLI。 ## 1. 安装 SubQuery CLI @@ -36,7 +36,7 @@ subql help ## 2. 初始化 Starter SubQuery 项目 -在你想要创建subquery项目的目录中运行以下命令: +在你想要创建 subquery 项目的目录中运行以下命令: ```shell subql init @@ -44,24 +44,24 @@ subql init ::: 警告 -**适合Cosmos用户** +**适合 Cosmos 用户** -SubQuery的 CLI 尚不支持Cosmos(`subql`)。 因此,如果你正在使用Cosmos,你必须从Juno克隆开始或fork这个 [起点项目](https://github.com/subquery/cosmos-subql-starter)。 +SubQuery 的 CLI 尚不支持 Cosmos(`subql`)。 因此,如果你正在使用 Cosmos,你必须从 Juno 克隆开始或 fork 这个 [起点项目](https://github.com/subquery/cosmos-subql-starter)。 -要使用Cosmos初始化您的项目,请参考此 [链接](https://github.com/subquery/juno-subql-starter#readme) 中显示的这4个步骤。 一旦你完成这4个步骤,**跳转**到[对你的项目进行修改](../quickstart/quickstart.md#_3-make-changes-to-your-project)部分。 ::: +要使用 Cosmos 初始化您的项目,请参考此 [链接](https://github.com/subquery/juno-subql-starter#readme) 中显示的这 4 个步骤。 一旦你完成这 4 个步骤,**跳转**到[对你的项目进行修改](../quickstart/quickstart.md#_3-make-changes-to-your-project)部分。 ::: 当你继续前进时,你会遇到一些问题: - **Project name**: 您的 SubQuery 项目的项目名称。 -- **Network family**: 此SubQuery 项目将索引的图层1 区块链网络类。 使用箭头键从可用选项中选择。 例如,Polkadot、Avalanche、Cosmos或任何其他支持的网络。 -- **Network**: 此SubQuery 项目将索引的特定网络。 使用箭头键从可用选项中选择。 例如,Polkadot, Avalanche, 或任何其他支持的网络。 -- **Template project**:选择一个SubQuery 项目模板,它将为开始开发提供起始点. 我们建议选择 _"subql-starter"_ 项目。 -- **RPC endpoint**(必填):提供一个 wss URL给一个正在运行的 RPC 端点,该端点将默认用于此项目。 您可以快速访问不同的 Polkadot 网络的公共端点,甚至可以使用 [OnFinality](https://app.onfinality.io) 或仅使用默认的 Polkadot 端点创建您自己的专用节点。 此 RPC 节点必须是归档节点 (具有完整链状态)。 我们将使用本指南的默认值。 基于您选择的网络,默认值可以是: - - 对于Polkadot - _"https://polkadot.api.onfinality.io"_, - - 对于Avalanche - _"https://avalanche.apionfinality.io"_, +- **Network family**: 此 SubQuery 项目将索引的图层 1 区块链网络类。 使用箭头键从可用选项中选择。 例如,Polkadot、Avalanche、Cosmos 或任何其他支持的网络。 +- **Network**: 此 SubQuery 项目将索引的特定网络。 使用箭头键从可用选项中选择。 例如,Polkadot, Avalanche, 或任何其他支持的网络。 +- **Template project**:选择一个 SubQuery 项目模板,它将为开始开发提供起始点. 我们建议选择 _"subql-starter"_ 项目。 +- **RPC endpoint**(必填):提供一个 wss URL 给一个正在运行的 RPC 端点,该端点将默认用于此项目。 您可以快速访问不同的 Polkadot 网络的公共端点,甚至可以使用 [OnFinality](https://app.onfinality.io) 或仅使用默认的 Polkadot 端点创建您自己的专用节点。 此 RPC 节点必须是归档节点 (具有完整链状态)。 我们将使用本指南的默认值。 基于您选择的网络,默认值可以是: + - 对于 Polkadot - _"https://polkadot.api.onfinality.io"_, + - 对于 Avalanche - _"https://avalanche.apionfinality.io"_, - 对于 Terra - _“https://terra-columbus-5.beta.api.onfinality.io”_ 等于其他网络。
    - **Git repository(可选)**:提供指向此 SubQuery 项目的,并将在其中托管的存储库的 Git URL(当托管在 SubQuery Explorer 中时) -- **Authors**:在此输入此SubQuery项目的所有者(例如您的名字!)或接受所提供的默认值。 +- **Authors**:在此输入此 SubQuery 项目的所有者(例如您的名字!)或接受所提供的默认值。 - **Description**:提供一个关于您项目的简短段落,描述项目包含哪些数据,用户可以做什么或接受提供的默认值。 - **Version (必填)**:输入一个自定义版本号或使用默认版本(`1.0.0`). - License(必填):提供此项目的软件许可或接受默认设置(`Apache-`). @@ -89,8 +89,8 @@ HelloWorld is ready 最后,运行以下命令从新项目目录中安装新项目的依赖关系。 - ```shell cd PROJECT_NAME yarn install ``` - ```shell cd PROJECT_NAME npm install ``` +::: code-tabs @tab:active yarn `shell cd PROJECT_NAME yarn install ` +@tab npm `shell cd PROJECT_NAME npm install ` ::: You have now initialised your first SubQuery project with just a few simple steps. Let’s now customise the standard template project for a specific blockchain of interest. @@ -104,4 +104,4 @@ There are 3 important files that need to be modified. These are: 2. The Project Manifest in `project.yaml`. 3. The Mapping functions in `src/mappings/` directory. -SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. \ No newline at end of file +SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide. diff --git a/docs/zh/run_publish/aggregate.md b/docs/zh/run_publish/aggregate.md index a49570e4647..74127332c3a 100644 --- a/docs/zh/run_publish/aggregate.md +++ b/docs/zh/run_publish/aggregate.md @@ -8,7 +8,7 @@ SubQuery 支持高级的总函数,以便您在查询期间能够对一组值 Groupby 允许您在一个查询中快速获取一个从 SubQuery 集中的不同值。 -![Graphql Groupby](/assets/img/graphql_合计.png) +![Graphql Groupby](/assets/img/graphql_aggregation.png) ## 高级聚合函数 diff --git a/docs/zh/run_publish/connect.md b/docs/zh/run_publish/connect.md index 599f5f8f52f..64759650318 100644 --- a/docs/zh/run_publish/connect.md +++ b/docs/zh/run_publish/connect.md @@ -2,10 +2,10 @@ 一旦您的部署成功完成并且我们的节点已经从该链中为您的数据编制了索引, 您可以通过显示的查询端点连接到您的项目。 -![正在部署和同步的项目](/assets/img/projects-deploy-sync.png) +![正在部署和同步的项目](/assets/img/projects_deploy_sync.png) 您也可以点击项目标题旁边的三个小点图标,从而在 SubQuery 浏览器上查看项目, 在这里您可以使用我们的区块链浏览器开始—— [阅读更多关于如何在这里使用](../query/query.md) 的信息。 在这里您可以使用浏览器播放场景开始操作。 -![SubQuery Explorer 中的项目](/assets/img/projects-explorer.png) +![SubQuery Explorer 中的项目](/assets/img/projects_explorer.png) -:::: 信息注释 了解更多关于 [GraphQL 查询语言。](./graphql.md) ::: +::: 信息注释 了解更多关于 [GraphQL 查询语言。](./graphql.md) ::: diff --git a/docs/zh/run_publish/publish.md b/docs/zh/run_publish/publish.md index bf8d48bcf43..2b13c4b836b 100644 --- a/docs/zh/run_publish/publish.md +++ b/docs/zh/run_publish/publish.md @@ -32,12 +32,12 @@ If your project is still being deployed via GitHub, read the migration guide for ### 准备您的 SUBQL_ACCESS_TOKEN -- 步骤1:去 [SubQuery Projects](https://project.subquery.network/) 并登录。 +- 步骤 1:去 [SubQuery Projects](https://project.subquery.network/) 并登录。 - Step 2: Click on your profile at the top right of the navigation menu, then click on **_Refresh Token_**. -- 步骤3:复制生成的令牌。 -- 步骤4:使用此令牌: - - 选项1:在您的环境变量中添加SUBQL_ACCESS_TOKEN。 `EXPORT SUBQL_ACCESS_TOKEN=` (Windows) or `export SUBQL_ACCESS_TOKEN=` (Mac/Linux) - - 选项2:在即将到来的新版本中, `subql/cli` 将支持本地存储您的 SUBQL_ACCESS_TOKEN +- 步骤 3:复制生成的令牌。 +- 步骤 4:使用此令牌: + - 选项 1:在您的环境变量中添加 SUBQL_ACCESS_TOKEN。 `EXPORT SUBQL_ACCESS_TOKEN=` (Windows) or `export SUBQL_ACCESS_TOKEN=` (Mac/Linux) + - 选项 2:在即将到来的新版本中, `subql/cli` 将支持本地存储您的 SUBQL_ACCESS_TOKEN ### 如何发布一个项目 @@ -81,9 +81,9 @@ SubQuery Project uploaded to IPFS: QmZ3q7YZSmhwBiot4PQCK3c7Z6HkteswN2Py58gkkZ8kN Note: With `@subql/cli` version 1.3.0 or above, when using `subql publish`, a copy of the project's `IPFS CID` will be stored in a file in your project directory. The naming of the file will be consistent with your project.yaml. For example, if your manfiest file is named `project.yaml`, the IPFS file will be named `.project-cid`. -### IPFS部署 +### IPFS 部署 -IPFS的部署代表着分散网络上一个SubQuery项目的独立独特的存在。 因此,对项目代码的任何修改都会影响到项目的独特性。 如果您需要调整您的业务逻辑,例如更改映射功能,您必须重新发布项目, `CID`将会改变。 +IPFS 的部署代表着分散网络上一个 SubQuery 项目的独立独特的存在。 因此,对项目代码的任何修改都会影响到项目的独特性。 如果您需要调整您的业务逻辑,例如更改映射功能,您必须重新发布项目, `CID`将会改变。 For now, to view the project you have published, use a `REST` api tool such as [Postman](https://web.postman.co/), and use the `POST` method with the following example URL to retrieve it:`https://ipfs.subquery.network/ipfs/api/v0/cat?arg=`. @@ -91,7 +91,7 @@ You should see the example project deployment as below. 此部署看起来与您的清单文件非常相似。 您可以预知这些描述性的字段。 且因为网络和字典端点并不直接影响项目执行的结果而导致他们被删除出字段。 -这些文件在您的本地项目中已经被打包并发布到IPFS中。 +这些文件在您的本地项目中已经被打包并发布到 IPFS 中。 ```yaml dataSources: @@ -155,7 +155,7 @@ Create your project and you'll see it on your SubQuery Project's list. Next, we ![Project created](/assets/img/project_created.png) -#### 使用CLI +#### 使用 CLI You can also use `@subql/cli` to publish your project to our Managed Service. 这需要: @@ -196,7 +196,7 @@ With your new project, you'll see a "Deploy your first version" button. Click th If deployed successfully, you'll see the indexer start working and report back progress on indexing the current chain. This process may take time until it reaches 100%. -#### 使用CLI +#### 使用 CLI You can also use `@subql/cli` to create a new deployment of your project to our Managed Service. 这需要: @@ -223,9 +223,9 @@ $ subql deployment:deploy #### 使用 GitHub Actions -随着国家排雷行动中心的部署功能的引入, 我们在 GitHub 中添加了一个 **默认动作流程** 到 +随着国家排雷行动中心的部署功能的引入, 我们在 GitHub 中添加了一个 **默认动作流程** 到 -启动器项目,它将允许您自动发布并部署您的更改:

    +启动器项目,它将允许您自动发布并部署您的更改 - 第 1 步:将您的项目推送到 GitHub 后,在 GitHub 上创建 `DEPLOYMENT` 环境,并添加秘钥 [SUBQL_ACCESS_TOKEN](../run_publish/ipfs.md#prepare-your-subql-access-token) - Step 2: Create a project on [SubQuery Projects](https://project.subquery.network), this can be done using the the [UI](#using-the-ui) or [CLI](#using-the-cli). @@ -235,8 +235,6 @@ $ subql deployment:deploy A common approach is to extend the default GitHub Action to automatically deploy changes to our Managed Service when code is merged into main. 以下对 GitHub 行动流程的更改做到这一点: - - ```yml on: push: @@ -248,9 +246,6 @@ jobs: ... ``` - - - ## 下一步 - 连接到您的项目 一旦您的部署成功完成并且我们的节点已经从该链中为您的数据编制了索引, 您可以通过显示的 GraphQL 查询端点连接到您的项目。 @@ -261,8 +256,6 @@ jobs: ![SubQuery Explorer 中的项目](/assets/img/projects_explorer.png) - - ## Add GitHub Organization Account to SubQuery Projects It is common to publish your SubQuery project under the name of your GitHub Organization account rather than your personal GitHub account. At any point your can change your currently selected account on [SubQuery Projects](https://project.subquery.network) using the account switcher. diff --git a/docs/zh/run_publish/query.md b/docs/zh/run_publish/query.md index 797dc4a26d7..68dacc8c433 100644 --- a/docs/zh/run_publish/query.md +++ b/docs/zh/run_publish/query.md @@ -4,12 +4,12 @@ ![SubQuery 浏览器](https://static.subquery.network/media/explorer/explorer-header.png) -SubQuery 浏览器使启动变得更加容易。 我们正在在线托管这些SubQuery项目,允许任何人免费查询。 这些托管节点将由SubQuery团队通过生产应用的使用频率和性能级别进行监测和运行。 +SubQuery 浏览器使启动变得更加容易。 我们正在在线托管这些 SubQuery 项目,允许任何人免费查询。 这些托管节点将由 SubQuery 团队通过生产应用的使用频率和性能级别进行监测和运行。 ![SubQuery 项目](https://static.subquery.network/media/explorer/explorer-project.png) -您还会注意到 SubQuery Explorer 提供了一个playground,用于发现可用数据的示例查询 - 您可以直接在您的浏览器中测试查询,而无需执行代码。 此外,我们对文档做了一些小的改进,以更好地支持开发人员查询和分析整个Polkadot数据。 +您还会注意到 SubQuery Explorer 提供了一个 playground,用于发现可用数据的示例查询 - 您可以直接在您的浏览器中测试查询,而无需执行代码。 此外,我们对文档做了一些小的改进,以更好地支持开发人员查询和分析整个 Polkadot 数据。 On the top right of the playground, you'll find a _Docs_ button that will open a documentation draw. 该文档是自动生成的,可帮助您查找实体和方法。 -:::: 信息注释 了解更多关于 [GraphQL 查询语言。](./graphql.md) ::: +::: 信息注释 了解更多关于 [GraphQL 查询语言。](./graphql.md) ::: diff --git a/docs/zh/run_publish/references.md b/docs/zh/run_publish/references.md index 9444d0e7af7..bfdfdd11713 100644 --- a/docs/zh/run_publish/references.md +++ b/docs/zh/run_publish/references.md @@ -19,17 +19,17 @@ COMMANDS ### 构建... -此命令使用 webpack 生成subquery项目的捆绑包。 +此命令使用 webpack 生成 subquery 项目的捆绑包。 -| 选项 | 描述 | -| ------------------ | ----------------------------------------------- | -| -l, --location | subquery项目的本地文件夹(如果没有在文件夹中) | -| -o, --output | 指定构建的输出文件夹,例如:build-folder | -| --mode=(production | prod | development | dev) | [ 默认 ︰ production ] | +| 选项 | 描述 | +| ------------------ | --------------------------------------------- | ----------- | ---- | ---------------------- | +| -l, --location | subquery 项目的本地文件夹(如果没有在文件夹中) | +| -o, --output | 指定构建的输出文件夹,例如:build-folder | +| --mode=(production | prod | development | dev) | [ 默认 ︰ production ] | -- 用`subql build`命令,您可以在exports字段中指定额外的入口点,尽管它总是会自动构建 < 0 >index.ts < / 0 > +- 用`subql build`命令,您可以在 exports 字段中指定额外的入口点,尽管它总是会自动构建 `index.ts` -- 您需要有 @subql/cli v0.19.0 或更高版本才能使用exports字段。 +- 您需要有 @subql/cli v0.19.0 或更高版本才能使用 exports 字段。 - 任何`exports` 字段必须映射到字符串类型(例如, `"entry": "./src/file.ts"`),否则它将被从构建中忽略。 @@ -106,7 +106,7 @@ Options: ### reindex -:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-:v1.10.0` or above. ::: +:::warning In order to use this command, you require `@subql/node:v1.10.0`/`@subql/node-YOURNETWORK:v1.10.0` or above. ::: When using reindex command, historical must be enabled for the targeted project (`--disable-historical=false`). After starting the project, it would print out a log stating if historical is enabled or not. @@ -122,7 +122,7 @@ If the `targetHeight` is less than the declared starting height, it will execute subql-node -f /example/subql-project reindex --targetHeight=30 ``` -::: info Note +::: tip Note Once the command is executed and the state has been rolled back the the specified height, the application will exit. You can then start up the indexer to proceed again from this height. ::: @@ -134,7 +134,7 @@ This command forces the project schemas and tables to be regenerated. It is help `-f`, `--subquery` flag must be passed in, to set path of the targeted project. -::: info Note Similar to `reindex` command, the application would exit upon completion. ::: +::: tip Note Similar to `reindex` command, the application would exit upon completion. ::: ```shell subql-node -f /example/subql-project force-clean @@ -142,7 +142,7 @@ subql-node -f /example/subql-project force-clean ### -f, --subquery -使用此标志启动SubQuery项目。 +使用此标志启动 SubQuery 项目。 ```shell subql-node -f . // 或者 @@ -159,9 +159,9 @@ subql-node -f . --subquery-name=test2 ### -c, --config -所有这些不同的配置都可以放置到 .yml 或 .json 文件中,然后用config参数进行引用。 +所有这些不同的配置都可以放置到 .yml 或 .json 文件中,然后用 config 参数进行引用。 -示例subquery_config.yml文件: +示例 subquery_config.yml 文件: ```shell subquery: . // Mandatory. This is the local path of the project. The period here means the current local directory. @@ -177,7 +177,7 @@ batchSize: 55 // Optional config ### --local (已废弃) -这个标志主要用于调试,在默认的“postgres”模式中创建默认starter_entity 表。 +这个标志主要用于调试,在默认的“postgres”模式中创建默认 starter_entity 表。 ```shell subql-node -f . --local @@ -199,7 +199,7 @@ subql-node -f . --db-schema=test2 ### --unsafe -SubQuery 项目通常在javascript sandbox中运行,以保证安全,限制项目对您系统的访问范围。 沙盒将可用的 javascript 导入限制为以下模块: +SubQuery 项目通常在 javascript sandbox 中运行,以保证安全,限制项目对您系统的访问范围。 沙盒将可用的 javascript 导入限制为以下模块: ```javascript ["assert", "buffer", "crypto", "util", "path"]; @@ -271,7 +271,7 @@ An instance of ProjectManifestImpl has failed the validation: ### --output-fmt -有两种不同的终端输出格式。 JSON或者colored。 colored是默认的,包含着colored文本。 +有两种不同的终端输出格式。 JSON 或者 colored。 colored 是默认的,包含着 colored 文本。 ```shell > subql-node -f . --output-fmt=json @@ -288,7 +288,7 @@ An instance of ProjectManifestImpl has failed the validation: ### --log-level -有七个选项可供选择: “fatal”, “error”, “warn”, “info”, “debug”, “trace”, “silent”. 下面的示例显示silent。 终端中不会打印任何内容,所以,判断节点工作与否的唯一方法是查询数据库中的行数(从subquery_1.starter_entities选择计数(\*))或者查询区块的高度。 +有七个选项可供选择: “fatal”, “error”, “warn”, “info”, “debug”, “trace”, “silent”. 下面的示例显示 silent。 终端中不会打印任何内容,所以,判断节点工作与否的唯一方法是查询数据库中的行数(从 subquery_1.starter_entities 选择计数(\*))或者查询区块的高度。 ```shell > subql-node -f . --log-level=silent @@ -310,13 +310,13 @@ An instance of ProjectManifestImpl has failed the validation: ### --timestamp-field -默认情况下是正确的。 当设置成false时: +默认情况下是正确的。 当设置成 false 时: ```shell > subql-node -f . –timestamp-field=false ``` -这将删除在starter_entities表中的 created_at和updated_at列 +这将删除在 starter_entities 表中的 created_at 和 updated_at 列 ### -d, --network-dictionary @@ -332,7 +332,7 @@ subql-node -f . -d "https://api.subquery.network/sq/subquery/dictionary-polkadot ### -p, --port -Subquery索引服务绑定到的端口。 默认设置为 `3000`. +Subquery 索引服务绑定到的端口。 默认设置为 `3000`. ### --disable-history @@ -342,7 +342,7 @@ Subquery索引服务绑定到的端口。 默认设置为 `3000`. 这将把块提取和处理移动到一个工作者。 默认情况下,此功能是 **已禁用**。 您可以使用 `--workers=` 标志启用它。 请注意,可用的 CPU 核心数严格限制了工人线程的使用。 因此,当使用 `--workers=` 标志时,总是指定工人的数量。 如果没有提供标记,所有东西都将在同一线程中运行。 -:::tip 提示 它可以提高性能最多4次。 试试一下,让我们知道你的反馈! +:::tip 提示 它可以提高性能最多 4 次。 试试一下,让我们知道你的反馈! 目前它处于早期试验阶段,但我们计划默认启用它。 ::: @@ -404,7 +404,7 @@ Options: ### --playground -这个标识符启用了graphql playground,所以在默认情况下,应该始终包含有任何用途。 +这个标识符启用了 graphql playground,所以在默认情况下,应该始终包含有任何用途。 ### --output-fmt @@ -438,12 +438,10 @@ Options: 由于实体限制,它们默认被禁用。 -**请注意,`--unsafe` 命令将阻止您的项目在 SubQuery 网络中运行,如果您希望此命令与您的项目一起在 - -SubQuery 的托管服务中运行< /1>。

    - +\*\*请注意,`--unsafe` 命令将阻止您的项目在 SubQuery 网络中运行,如果您希望此命令与您的项目一起在 +SubQuery 的托管服务中运行。 ### --port -Subquery索引服务绑定到的端口。 默认设置为 `3000` +Subquery 索引服务绑定到的端口。 默认设置为 `3000` diff --git a/docs/zh/run_publish/run.md b/docs/zh/run_publish/run.md index c4c007b1811..4776e7561de 100644 --- a/docs/zh/run_publish/run.md +++ b/docs/zh/run_publish/run.md @@ -1,10 +1,10 @@ # 本地运行 SubQuery -本指南通过如何在您的基础设施上运行本地的 SubQuery 节点,其中包括索引器和查询服务。 不用担心在运行自己的SubQuery基础架构中所出现的问题。 SubQuery provides a [Managed Service](https://explorer.subquery.network) to the community for free. [按照我们所发布的指南](../run_publish/publish.md) 查看您如何将项目部署到 [SubQuery 项目](https://project.subquery.network)。 +本指南通过如何在您的基础设施上运行本地的 SubQuery 节点,其中包括索引器和查询服务。 不用担心在运行自己的 SubQuery 基础架构中所出现的问题。 SubQuery provides a [Managed Service](https://explorer.subquery.network) to the community for free. [按照我们所发布的指南](../run_publish/publish.md) 查看您如何将项目部署到 [SubQuery 项目](https://project.subquery.network)。 ## 使用 Docker -其中一种解决方案是运行Docker容器,它是由`Docker-component.yml`文件所定义的。 对于刚刚初始化的新项目,您无需在此处进行任何更改。 +其中一种解决方案是运行**Docker 容器**,它是由`Docker-component.yml`文件所定义的。 对于刚刚初始化的新项目,您无需在此处进行任何更改。 在项目目录下运行以下命令: @@ -14,7 +14,7 @@ docker-compose pull && docker-compose up 第一次下载所需软件包可能需要一些时间([`@subql/node`](https://www.npmjs.com/package/@subql/node), [`@subql/quiry`](https://www.npmjs.com/package/@subql/query), and Postgress) ,但很快你就会看到一个运行中的 SubQuery 节点。 ::: -## 运行Indexer (subql/node) +## 运行 Indexer (subql/node) 需求: @@ -32,90 +32,80 @@ CREATE EXTENSION IF NOT EXISTS btree_gist; ### 安装 - - +::: code-tabs +@tab Substrate/Polkadot ```shell # NPM npm install -g @subql/node ``` - - +@tab Terra ```shell # NPM npm install -g @subql/node-terra ``` - - +@tab Avalanche ```shell # NPM npm install -g @subql/node-avalanche ``` - - +@tab Cosmos ```shell # NPM npm install -g @subql/node-cosmos ``` - - +@tab Algorand ```shell # NPM npm install -g @subql/node-algorand ``` - - +::: ::: danger Please note that we **DO NOT** encourage the use of `yarn global` due to its poor dependency management which may lead to an errors down the line. ::: 安装完毕后,您可以使用以下命令来启动节点: - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node ``` - - +@tab Terra ```shell subql-node-terra ``` - - +@tab Avalanche ```shell subql-node-avalanche ``` - - +@tab Cosmos ```shell subql-node-cosmos ``` - - +@tab Algorand ```shell subql-node-algorand ``` - - +::: ### Key Commands @@ -123,43 +113,38 @@ The following commands will assist you to complete the configuration of a SubQue #### 指向本地项目路径 - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path ``` - - +::: #### Connect to database @@ -176,43 +161,38 @@ subql-node -f your-project-path #### 指定一个配置文件 - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -c your-project-config.yml ``` - - +@tab Terra ```shell subql-node-terra -c your-project-config.yml ``` - - +@tab Avalanche ```shell subql-node-avalanche -c your-project-config.yml ``` - - +@tab Cosmos ```shell subql-node-cosmos -c your-project-config.yml ``` - - +@tab Algorand ```shell subql-node-algorand -c your-project-config.yml ``` - - +::: This will point the query node to a manifest file which can be in YAML or JSON format. @@ -230,43 +210,38 @@ Result: #### 在本地模式下运行 - - +::: code-tabs +@tab Substrate/Polkadot ```shell subql-node -f your-project-path --local ``` - - +@tab Terra ```shell subql-node-terra -f your-project-path --local ``` - - +@tab Avalanche ```shell subql-node-avalanche -f your-project-path --local ``` - - +@tab Cosmos ```shell subql-node-cosmos -f your-project-path --local ``` - - +@tab Algorand ```shell subql-node-algorand -f your-project-path --local ``` - - +::: For debugging purposes, users can run the node in local mode. 切换到本地模型将在默认架构 `public` 中创建 Postgres 表。 @@ -340,9 +315,9 @@ For help, see: https://nodejs.org/en/docs/inspector Debugger attached. ``` -然后打开Chrome开发工具,进入Source>Filesystem,将项目添加到工作区并开始调试。 查看更多信息[如何调试SubQuery项目](../academy/tutorials_examples/debug-projects.md). +然后打开 Chrome 开发工具,进入 Source>Filesystem,将项目添加到工作区并开始调试。 查看更多信息[如何调试 SubQuery 项目](../academy/tutorials_examples/debug-projects.md). -## 运行Query服务(subql/query) +## 运行 Query 服务(subql/query) ### 安装 @@ -353,7 +328,7 @@ npm install -g @subql/query ::: 危险 请注意,我们**不**鼓励使用 `yarn global`,因为它糟糕的依赖管理可能会导致错误。 ::: -### 运行Query服务 +### 运行 Query 服务 ``` export DB_HOST=localhost @@ -362,4 +337,4 @@ subql-query --name --playground 确保项目名称与[初始化项目](../quickstart/quickstart.md#_2-initialise-the-subquery-starter-project)时的项目名称相同。 另外,请检查环境变量是否正确。 -成功运行subql查询服务后,打开浏览器并转到`http://localhost:3000`. 您应该看到在 Explorer 中显示的 GraphQL 播放地和准备查询的模式。 您应该看到在 Explorer 中显示的 GraphQL 播放器和准备查询的模式。 +成功运行 subql 查询服务后,打开浏览器并转到`http://localhost:3000`. 您应该看到在 Explorer 中显示的 GraphQL 播放地和准备查询的模式。 您应该看到在 Explorer 中显示的 GraphQL 播放器和准备查询的模式。 diff --git a/docs/zh/run_publish/upgrade.md b/docs/zh/run_publish/upgrade.md index b9e0b4b6986..084de825fc9 100644 --- a/docs/zh/run_publish/upgrade.md +++ b/docs/zh/run_publish/upgrade.md @@ -19,15 +19,15 @@ 暂存槽非常适合: -- 在独立的环境中最后验证您的 SubQuery 项目的更改。 中转插槽有一个不同的用于生产的URL,可以在dApps中使用它。 +- 在独立的环境中最后验证您的 SubQuery 项目的更改。 中转插槽有一个不同的用于生产的 URL,可以在 dApps 中使用它。 - 为更新的 SubQuery 项目预热和索引数据,以消除 dApp 中的停机时间。 -- 为您的SubQuery Project准备一个新版本,而不公开它。 中转插槽不会在Explorer中显示给公众,它有一个唯一的URL,仅对您可见。 +- 为您的 SubQuery Project 准备一个新版本,而不公开它。 中转插槽不会在 Explorer 中显示给公众,它有一个唯一的 URL,仅对您可见。 ![暂存槽位](/assets/img/staging_slot.png) Fill in the IPFS CID of the new version of your SubQuery project codebase that you want deployed (see the documetation to publish to IPFS [here](./publish.md). 这将导致更长的停机时间,取决于索引当前链所需的时间。 您可以一直在这里报告进度。 -### 使用CLI +### 使用 CLI You can also use `@subql/cli` to create a new deployment of your project to our Managed Service. 这需要: @@ -45,12 +45,12 @@ $ subql deployment:deploy ### 使用 GitHub Actions -随着国家排雷行动中心的部署功能的引入, 我们在 GitHub 中添加了一个 **默认动作流程** 到 +随着国家排雷行动中心的部署功能的引入, 我们在 GitHub 中添加了一个 **默认动作流程** 到 -启动器项目,它将允许您自动发布并部署您的更改:

    +启动器项目,它将允许您自动发布并部署您的更改 - 第 1 步:将您的项目推送到 GitHub 后,在 GitHub 上创建 `DEPLOYMENT` 环境,并添加秘钥 [SUBQL_ACCESS_TOKEN](../run_publish/ipfs.md#prepare-your-subql-access-token) -- 第2步: 如果你还没有准备好,请在 [SubQuery 项目](https://project.subquery.network) 上创建一个项目。 这可以使用 [UI](#using-the-ui) 或 [CLI](#using-the-cli) 来完成。 +- 第 2 步: 如果你还没有准备好,请在 [SubQuery 项目](https://project.subquery.network) 上创建一个项目。 这可以使用 [UI](#using-the-ui) 或 [CLI](#using-the-cli) 来完成。 - 第 3 步:一旦您的项目被创建,导航到您项目的 GitHub 动作页面,并选择工作流程 `CLI 部署`。 - 第 4 步:您将看到一个输入字段,您可以在这里输入在 SubQuery 项目上创建的项目的唯一代码。 你可以从 SubQuery 项目 [SubQuery 项目](https://project.subquery.network) 中获取代码。 代码基于您项目的名称, 其中空格被连线替换 `-`。 例如: `我的项目名称` 变成 `我的项目名称`。 @@ -60,8 +60,6 @@ $ subql deployment:deploy 一个常见的方法是扩展默认的 GitHub 动作,以便在代码合并到主页时自动对我们的管理服务进行更改。 以下对 GitHub 行动流程的更改做到这一点: - - ```yml on: push: @@ -73,23 +71,18 @@ jobs: ... ``` - - - ## 升级到最新索引和查询服务 -如果只想升级到最新的索引器([`@subql/node`](https://www.npmjs.com/package/@subql/node))或查询服务(`@subql/query`) 要利用我们常规的性能和稳定性改进,只需选择更新版本的软件包并保存即可。 当运行您的项目的服务重新启动时,这只会导致几分钟的停用。

    - - +如果只想升级到最新的索引器([`@subql/node`](https://www.npmjs.com/package/@subql/node))或查询服务(`@subql/query`) 要利用我们常规的性能和稳定性改进,只需选择更新版本的软件包并保存即可。 当运行您的项目的服务重新启动时,这只会导致几分钟的停用 ## 下一步 - 连接到您的项目 一旦您的部署成功完成并且我们的节点已经从该链中为您的数据编制了索引, 您可以通过显示的 GraphQL 查询端点连接到您的项目。 -![正在部署和同步的项目](/assets/img/projects-deploy-sync.png) +![正在部署和同步的项目](/assets/img/projects_deploy_sync.png) 您也可以点击项目标题旁边的三个小点图标,从而在 SubQuery 浏览器上查看项目, 在这里您可以使用我们的区块链浏览器开始—— [阅读更多关于如何在这里使用](../query/query.md) 的信息。 在这里您可以使用我们的区块链浏览器开始—— [阅读更多关于如何在这里使用](../run_publish/query.md) 的信息。 -![SubQuery Explorer 中的项目](/assets/img/projects-explorer.png) +![SubQuery Explorer 中的项目](/assets/img/projects_explorer.png) -:::: 信息注释 了解更多关于 [GraphQL 查询语言。](./graphql.md) ::: \ No newline at end of file +::: 信息注释 了解更多关于 [GraphQL 查询语言。](./graphql.md) ::: diff --git a/docs/zh/subquery_network/payment-methods.md b/docs/zh/subquery_network/payment-methods.md index bdf157e23da..a41c4e85f98 100644 --- a/docs/zh/subquery_network/payment-methods.md +++ b/docs/zh/subquery_network/payment-methods.md @@ -1,6 +1,6 @@ # 支付方式 -为了支付的灵活性,SubQuery 一共提供了3种支付选项可用于支付区块链数据。 分别是: +为了支付的灵活性,SubQuery 一共提供了 3 种支付选项可用于支付区块链数据。 分别是: - 按需付费 (PAYG). - 闭环服务协议. @@ -22,7 +22,7 @@ ## 开放式服务协议 -开放式市场协议类似于封闭式市场协议,但是它允许多个索引者加入并竞争向消费者提供数据。 开放式市场服务协议可以从1个消费者和1个索引者之间的合约开始,不过,更多的人也可以加入该合同,从而产生*n*个消费者和*n个索引者。

    +开放式市场协议类似于封闭式市场协议,但是它允许多个索引者加入并竞争向消费者提供数据。 开放式市场服务协议可以从 1 个消费者和 1 个索引者之间的合约开始,不过,更多的人也可以加入该合同,从而产生*n*个消费者和\*n 个索引者。 每个开放式市场服务协议都会为该合约创建一个新的奖励池,其中 SQT 代币由 Cobb-Douglas 生产函数分配给参与的索引者。 @@ -30,7 +30,7 @@ ## SubQuery 在付款方法上的创新 -日常生活中,我们通常为我们听的音乐、看的电视节目和我们使用的应用程序支付订阅的费用。 在开创 Web3 服务应用的先河中,我们转而采用pay-as-you-go的模式,在这种模式下,每笔交易记录在网络中都有确切的成本。 +日常生活中,我们通常为我们听的音乐、看的电视节目和我们使用的应用程序支付订阅的费用。 在开创 Web3 服务应用的先河中,我们转而采用 pay-as-you-go 的模式,在这种模式下,每笔交易记录在网络中都有确切的成本。 我们认为基于订阅或循环付费的支付方式将会继续存在。 服务提供商喜欢它们是因为它们代表了可预测的收入,而另一方面,消费者喜欢它们是因为它们是一种已知的、容易量化的成本。 另外还与心理因素有关,一旦你订阅了,大多数消费者会觉得有义务消费同样多的东西,这会增加对服务的需求,并允许规模经济发挥作用。 diff --git a/package.json b/package.json index 4750ac26a6f..370376d1483 100644 --- a/package.json +++ b/package.json @@ -2,16 +2,20 @@ "name": "subql-docs", "private": true, "devDependencies": { - "@vuepress/plugin-google-analytics": "1.8.2", - "@vuepress/plugin-pwa": "^1.9.7", - "vuepress": "^1.9.7", - "vuepress-plugin-right-anchor": "^0.5.5" + "@vuepress/plugin-docsearch": "^2.0.0-beta.53", + "@vuepress/plugin-google-analytics": "^2.0.0-beta.53", + "vuepress": "^2.0.0-beta.53", + "vuepress-plugin-md-enhance": "^2.0.0-beta.134", + "vuepress-plugin-pwa2": "^2.0.0-beta.134", + "vuepress-plugin-right-anchor": "^0.5.5", + "vuepress-plugin-seo2": "^2.0.0-beta.134", + "vuepress-plugin-sitemap2": "^2.0.0-beta.134" }, "scripts": { "docs:dev": "vuepress dev docs", - "docs:build": "node --max_old_space_size=4096 ./node_modules/vuepress/cli.js build docs" + "docs:build": "node --max_old_space_size=4096 ./node_modules/vuepress/bin/vuepress.js build docs" }, "dependencies": { - "vuepress-theme-hope": "^1.28.4" + "vuepress-theme-hope": "^2.0.0-beta.134" } } diff --git a/yarn.lock b/yarn.lock index 5c17b62fb8c..44caba3b097 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,128 +2,128 @@ # yarn lockfile v1 -"@algolia/autocomplete-core@1.5.2": - version "1.5.2" - resolved "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.5.2.tgz" - integrity sha512-DY0bhyczFSS1b/CqJlTE/nQRtnTAHl6IemIkBy0nEWnhDzRDdtdx4p5Uuk3vwAFxwEEgi1WqKwgSSMx6DpNL4A== - dependencies: - "@algolia/autocomplete-shared" "1.5.2" +"@algolia/autocomplete-core@1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.7.2.tgz#8abbed88082f611997538760dffcb43b33b1fd1d" + integrity sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw== + dependencies: + "@algolia/autocomplete-shared" "1.7.2" -"@algolia/autocomplete-preset-algolia@1.5.2": - version "1.5.2" - resolved "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.5.2.tgz" - integrity sha512-3MRYnYQFJyovANzSX2CToS6/5cfVjbLLqFsZTKcvF3abhQzxbqwwaMBlJtt620uBUOeMzhdfasKhCc40+RHiZw== - dependencies: - "@algolia/autocomplete-shared" "1.5.2" +"@algolia/autocomplete-preset-algolia@1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.2.tgz#9cd4f64b3d64399657ee2dc2b7e0a939e0713a26" + integrity sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw== + dependencies: + "@algolia/autocomplete-shared" "1.7.2" -"@algolia/autocomplete-shared@1.5.2": - version "1.5.2" - resolved "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.5.2.tgz" - integrity sha512-ylQAYv5H0YKMfHgVWX0j0NmL8XBcAeeeVQUmppnnMtzDbDnca6CzhKj3Q8eF9cHCgcdTDdb5K+3aKyGWA0obug== +"@algolia/autocomplete-shared@1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.2.tgz#daa23280e78d3b42ae9564d12470ae034db51a89" + integrity sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug== -"@algolia/cache-browser-local-storage@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.11.0.tgz" - integrity sha512-4sr9vHIG1fVA9dONagdzhsI/6M5mjs/qOe2xUP0yBmwsTsuwiZq3+Xu6D3dsxsuFetcJgC6ydQoCW8b7fDJHYQ== +"@algolia/cache-browser-local-storage@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.2.tgz#d5b1b90130ca87c6321de876e167df9ec6524936" + integrity sha512-FRweBkK/ywO+GKYfAWbrepewQsPTIEirhi1BdykX9mxvBPtGNKccYAxvGdDCumU1jL4r3cayio4psfzKMejBlA== dependencies: - "@algolia/cache-common" "4.11.0" + "@algolia/cache-common" "4.14.2" -"@algolia/cache-common@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.11.0.tgz" - integrity sha512-lODcJRuPXqf+6mp0h6bOxPMlbNoyn3VfjBVcQh70EDP0/xExZbkpecgHyyZK4kWg+evu+mmgvTK3GVHnet/xKw== +"@algolia/cache-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.14.2.tgz#b946b6103c922f0c06006fb6929163ed2c67d598" + integrity sha512-SbvAlG9VqNanCErr44q6lEKD2qoK4XtFNx9Qn8FK26ePCI8I9yU7pYB+eM/cZdS9SzQCRJBbHUumVr4bsQ4uxg== -"@algolia/cache-in-memory@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.11.0.tgz" - integrity sha512-aBz+stMSTBOBaBEQ43zJXz2DnwS7fL6dR0e2myehAgtfAWlWwLDHruc/98VOy1ZAcBk1blE2LCU02bT5HekGxQ== +"@algolia/cache-in-memory@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.14.2.tgz#88e4a21474f9ac05331c2fa3ceb929684a395a24" + integrity sha512-HrOukWoop9XB/VFojPv1R5SVXowgI56T9pmezd/djh2JnVN/vXswhXV51RKy4nCpqxyHt/aGFSq2qkDvj6KiuQ== dependencies: - "@algolia/cache-common" "4.11.0" + "@algolia/cache-common" "4.14.2" -"@algolia/client-account@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.11.0.tgz" - integrity sha512-jwmFBoUSzoMwMqgD3PmzFJV/d19p1RJXB6C1ADz4ju4mU7rkaQLtqyZroQpheLoU5s5Tilmn/T8/0U2XLoJCRQ== +"@algolia/client-account@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.14.2.tgz#b76ac1ba9ea71e8c3f77a1805b48350dc0728a16" + integrity sha512-WHtriQqGyibbb/Rx71YY43T0cXqyelEU0lB2QMBRXvD2X0iyeGl4qMxocgEIcbHyK7uqE7hKgjT8aBrHqhgc1w== dependencies: - "@algolia/client-common" "4.11.0" - "@algolia/client-search" "4.11.0" - "@algolia/transporter" "4.11.0" + "@algolia/client-common" "4.14.2" + "@algolia/client-search" "4.14.2" + "@algolia/transporter" "4.14.2" -"@algolia/client-analytics@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.11.0.tgz" - integrity sha512-v5U9585aeEdYml7JqggHAj3E5CQ+jPwGVztPVhakBk8H/cmLyPS2g8wvmIbaEZCHmWn4TqFj3EBHVYxAl36fSA== +"@algolia/client-analytics@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.14.2.tgz#ca04dcaf9a78ee5c92c5cb5e9c74cf031eb2f1fb" + integrity sha512-yBvBv2mw+HX5a+aeR0dkvUbFZsiC4FKSnfqk9rrfX+QrlNOKEhCG0tJzjiOggRW4EcNqRmaTULIYvIzQVL2KYQ== dependencies: - "@algolia/client-common" "4.11.0" - "@algolia/client-search" "4.11.0" - "@algolia/requester-common" "4.11.0" - "@algolia/transporter" "4.11.0" + "@algolia/client-common" "4.14.2" + "@algolia/client-search" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" -"@algolia/client-common@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.11.0.tgz" - integrity sha512-Qy+F+TZq12kc7tgfC+FM3RvYH/Ati7sUiUv/LkvlxFwNwNPwWGoZO81AzVSareXT/ksDDrabD4mHbdTbBPTRmQ== +"@algolia/client-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.14.2.tgz#e1324e167ffa8af60f3e8bcd122110fd0bfd1300" + integrity sha512-43o4fslNLcktgtDMVaT5XwlzsDPzlqvqesRi4MjQz2x4/Sxm7zYg5LRYFol1BIhG6EwxKvSUq8HcC/KxJu3J0Q== dependencies: - "@algolia/requester-common" "4.11.0" - "@algolia/transporter" "4.11.0" + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" -"@algolia/client-personalization@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.11.0.tgz" - integrity sha512-mI+X5IKiijHAzf9fy8VSl/GTT67dzFDnJ0QAM8D9cMPevnfX4U72HRln3Mjd0xEaYUOGve8TK/fMg7d3Z5yG6g== +"@algolia/client-personalization@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.14.2.tgz#656bbb6157a3dd1a4be7de65e457fda136c404ec" + integrity sha512-ACCoLi0cL8CBZ1W/2juehSltrw2iqsQBnfiu/Rbl9W2yE6o2ZUb97+sqN/jBqYNQBS+o0ekTMKNkQjHHAcEXNw== dependencies: - "@algolia/client-common" "4.11.0" - "@algolia/requester-common" "4.11.0" - "@algolia/transporter" "4.11.0" + "@algolia/client-common" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" -"@algolia/client-search@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.11.0.tgz" - integrity sha512-iovPLc5YgiXBdw2qMhU65sINgo9umWbHFzInxoNErWnYoTQWfXsW6P54/NlKx5uscoLVjSf+5RUWwFu5BX+lpw== +"@algolia/client-search@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.14.2.tgz#357bdb7e640163f0e33bad231dfcc21f67dc2e92" + integrity sha512-L5zScdOmcZ6NGiVbLKTvP02UbxZ0njd5Vq9nJAmPFtjffUSOGEp11BmD2oMJ5QvARgx2XbX4KzTTNS5ECYIMWw== dependencies: - "@algolia/client-common" "4.11.0" - "@algolia/requester-common" "4.11.0" - "@algolia/transporter" "4.11.0" + "@algolia/client-common" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" -"@algolia/logger-common@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.11.0.tgz" - integrity sha512-pRMJFeOY8hoWKIxWuGHIrqnEKN/kqKh7UilDffG/+PeEGxBuku+Wq5CfdTFG0C9ewUvn8mAJn5BhYA5k8y0Jqg== +"@algolia/logger-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.14.2.tgz#b74b3a92431f92665519d95942c246793ec390ee" + integrity sha512-/JGlYvdV++IcMHBnVFsqEisTiOeEr6cUJtpjz8zc0A9c31JrtLm318Njc72p14Pnkw3A/5lHHh+QxpJ6WFTmsA== -"@algolia/logger-console@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.11.0.tgz" - integrity sha512-wXztMk0a3VbNmYP8Kpc+F7ekuvaqZmozM2eTLok0XIshpAeZ/NJDHDffXK2Pw+NF0wmHqurptLYwKoikjBYvhQ== +"@algolia/logger-console@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.14.2.tgz#ec49cb47408f5811d4792598683923a800abce7b" + integrity sha512-8S2PlpdshbkwlLCSAB5f8c91xyc84VM9Ar9EdfE9UmX+NrKNYnWR1maXXVDQQoto07G1Ol/tYFnFVhUZq0xV/g== dependencies: - "@algolia/logger-common" "4.11.0" + "@algolia/logger-common" "4.14.2" -"@algolia/requester-browser-xhr@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.11.0.tgz" - integrity sha512-Fp3SfDihAAFR8bllg8P5ouWi3+qpEVN5e7hrtVIYldKBOuI/qFv80Zv/3/AMKNJQRYglS4zWyPuqrXm58nz6KA== +"@algolia/requester-browser-xhr@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.2.tgz#a2cd4d9d8d90d53109cc7f3682dc6ebf20f798f2" + integrity sha512-CEh//xYz/WfxHFh7pcMjQNWgpl4wFB85lUMRyVwaDPibNzQRVcV33YS+63fShFWc2+42YEipFGH2iPzlpszmDw== dependencies: - "@algolia/requester-common" "4.11.0" + "@algolia/requester-common" "4.14.2" -"@algolia/requester-common@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.11.0.tgz" - integrity sha512-+cZGe/9fuYgGuxjaBC+xTGBkK7OIYdfapxhfvEf03dviLMPmhmVYFJtJlzAjQ2YmGDJpHrGgAYj3i/fbs8yhiA== +"@algolia/requester-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.14.2.tgz#bc4e9e5ee16c953c0ecacbfb334a33c30c28b1a1" + integrity sha512-73YQsBOKa5fvVV3My7iZHu1sUqmjjfs9TteFWwPwDmnad7T0VTCopttcsM3OjLxZFtBnX61Xxl2T2gmG2O4ehg== -"@algolia/requester-node-http@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.11.0.tgz" - integrity sha512-qJIk9SHRFkKDi6dMT9hba8X1J1z92T5AZIgl+tsApjTGIRQXJLTIm+0q4yOefokfu4CoxYwRZ9QAq+ouGwfeOg== +"@algolia/requester-node-http@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.14.2.tgz#7c1223a1785decaab1def64c83dade6bea45e115" + integrity sha512-oDbb02kd1o5GTEld4pETlPZLY0e+gOSWjWMJHWTgDXbv9rm/o2cF7japO6Vj1ENnrqWvLBmW1OzV9g6FUFhFXg== dependencies: - "@algolia/requester-common" "4.11.0" + "@algolia/requester-common" "4.14.2" -"@algolia/transporter@4.11.0": - version "4.11.0" - resolved "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.11.0.tgz" - integrity sha512-k4dyxiaEfYpw4UqybK9q7lrFzehygo6KV3OCYJMMdX0IMWV0m4DXdU27c1zYRYtthaFYaBzGF4Kjcl8p8vxCKw== +"@algolia/transporter@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.14.2.tgz#77c069047fb1a4359ee6a51f51829508e44a1e3d" + integrity sha512-t89dfQb2T9MFQHidjHcfhh6iGMNwvuKUvojAj+JsrHAGbuSy7yE4BylhLX6R0Q1xYRoC4Vvv+O5qIw/LdnQfsQ== dependencies: - "@algolia/cache-common" "4.11.0" - "@algolia/logger-common" "4.11.0" - "@algolia/requester-common" "4.11.0" + "@algolia/cache-common" "4.14.2" + "@algolia/logger-common" "4.14.2" + "@algolia/requester-common" "4.14.2" "@apideck/better-ajv-errors@^0.3.1": version "0.3.3" @@ -146,7 +146,7 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.0.tgz" integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== -"@babel/core@*", "@babel/core@^7.11.0", "@babel/core@^7.11.1", "@babel/core@^7.8.4": +"@babel/core@*", "@babel/core@^7.11.1": version "7.16.0" resolved "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz" integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== @@ -191,7 +191,7 @@ "@babel/helper-explode-assignable-expression" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0", "@babel/helper-compilation-targets@^7.9.6": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0": version "7.16.3" resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz" integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== @@ -272,7 +272,7 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.8.3": +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0": version "7.16.0" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz" integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== @@ -388,6 +388,11 @@ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.3.tgz" integrity sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw== +"@babel/parser@^7.16.4": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" + integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.0": version "7.16.2" resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz" @@ -413,7 +418,7 @@ "@babel/helper-remap-async-to-generator" "^7.16.0" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.8.3": +"@babel/plugin-proposal-class-properties@^7.16.0": version "7.16.0" resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz" integrity sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A== @@ -430,15 +435,6 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-decorators@^7.8.3": - version "7.16.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.0.tgz" - integrity sha512-ttvhKuVnQwoNQrcTd1oe6o49ahaZ1kns1fsJKzTVOaS/FJDJoK4qzgVS68xzJhYUMgTnbXW6z/T6rlP3lL7tJw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-decorators" "^7.16.0" - "@babel/plugin-proposal-dynamic-import@^7.16.0": version "7.16.0" resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz" @@ -562,13 +558,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.16.0": - version "7.16.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.0.tgz" - integrity sha512-nxnnngZClvlY13nHJAIDow0S7Qzhq64fQ/NlqS+VER3kjW/4F0jLhXjeL8jcwSwz6Ca3rotT5NJD2T9I7lcv7g== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" @@ -590,13 +579,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": - version "7.16.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz" - integrity sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" @@ -850,18 +832,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-runtime@^7.11.0": - version "7.16.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.0.tgz" - integrity sha512-zlPf1/XFn5+vWdve3AAhf+Sxl+MVa5VlwTwWgnLx23u4GlatSRQJ3Eoo9vllf0a9il3woQsT4SK+5Z7c06h8ag== - dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.2.3" - babel-plugin-polyfill-corejs3 "^0.3.0" - babel-plugin-polyfill-regenerator "^0.2.3" - semver "^6.3.0" - "@babel/plugin-transform-shorthand-properties@^7.16.0": version "7.16.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz" @@ -1004,14 +974,14 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.0", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.4", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.11.2", "@babel/runtime@^7.8.4": version "7.16.3" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz" integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.0.0", "@babel/template@^7.16.0": +"@babel/template@^7.16.0": version "7.16.0" resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz" integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== @@ -1020,7 +990,7 @@ "@babel/parser" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3": +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3": version "7.16.3" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz" integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== @@ -1035,7 +1005,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.4.4": +"@babel/types@^7.16.0", "@babel/types@^7.4.4": version "7.16.0" resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz" integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== @@ -1043,270 +1013,152 @@ "@babel/helper-validator-identifier" "^7.15.7" to-fast-properties "^2.0.0" -"@braintree/sanitize-url@^3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz" - integrity sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg== +"@braintree/sanitize-url@^6.0.0": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz#6110f918d273fe2af8ea1c4398a88774bb9fc12f" + integrity sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg== -"@docsearch/css@3.0.0", "@docsearch/css@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@docsearch/css/-/css-3.0.0.tgz" - integrity sha512-1kkV7tkAsiuEd0shunYRByKJe3xQDG2q7wYg24SOw1nV9/2lwEd4WrUYRJC/ukGTl2/kHeFxsaUvtiOy0y6fFA== +"@docsearch/css@3.3.0", "@docsearch/css@^3.2.2": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.3.0.tgz#d698e48302d12240d7c2f7452ccb2d2239a8cd80" + integrity sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg== -"@docsearch/js@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@docsearch/js/-/js-3.0.0.tgz" - integrity sha512-j3tUJWlgW3slYqzGB8fm7y05kh2qqrIK1dZOXHeMUm/5gdKE85fiz/ltfCPMDFb/MXF+bLZChJXSMzqY0Ck30Q== +"@docsearch/js@^3.2.2": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.3.0.tgz#c8f614b722cc8a6375e83f9c27557e9398d6a4d4" + integrity sha512-oFXWRPNvPxAzBhnFJ9UCFIYZiQNc3Yrv6912nZHw/UIGxsyzKpNRZgHq8HDk1niYmOSoLKtVFcxkccpQmYGFyg== dependencies: - "@docsearch/react" "3.0.0" + "@docsearch/react" "3.3.0" preact "^10.0.0" -"@docsearch/react@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@docsearch/react/-/react-3.0.0.tgz" - integrity sha512-yhMacqS6TVQYoBh/o603zszIb5Bl8MIXuOc6Vy617I74pirisDzzcNh0NEaYQt50fVVR3khUbeEhUEWEWipESg== +"@docsearch/react@3.3.0", "@docsearch/react@^3.2.2": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.3.0.tgz#b8ac8e7f49b9bf2f96d34c24bc1cfd097ec0eead" + integrity sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A== dependencies: - "@algolia/autocomplete-core" "1.5.2" - "@algolia/autocomplete-preset-algolia" "1.5.2" - "@docsearch/css" "3.0.0" + "@algolia/autocomplete-core" "1.7.2" + "@algolia/autocomplete-preset-algolia" "1.7.2" + "@docsearch/css" "3.3.0" algoliasearch "^4.0.0" -"@hapi/address@2.x.x": - version "2.1.4" - resolved "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz" - integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== +"@esbuild/android-arm@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" + integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== -"@hapi/bourne@1.x.x": - version "1.3.2" - resolved "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== +"@esbuild/linux-loong64@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" + integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": - version "8.5.1" - resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz" - integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== +"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.4.0": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.4.2.tgz#65d659e89d1a7e2f4f2b547182aef0a224f4adb7" + integrity sha512-VMOxsWh/QDwrxPsgkSQnuZ+8mfNy1OTjzzUdLBvvZtpahwPTHTeVZ51RZRqO4xfKVrR+btIPA8D01IL3xeG66w== -"@hapi/joi@^15.0.0": - version "15.1.1" - resolved "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz" - integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== +"@mdit-vue/plugin-component@^0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@mdit-vue/plugin-component/-/plugin-component-0.11.1.tgz#0ffd542a6ef26655a6c48c8f255fe1ac4f3db6fc" + integrity sha512-fCqyYPwEXFa182/Vz6g8McDi3SCIwm3yHWkWddHx+QNn0gMGFqkhJVcz/wjCIA3oCoWUBWM80aZ09ZuoQiOmvQ== dependencies: - "@hapi/address" "2.x.x" - "@hapi/bourne" "1.x.x" - "@hapi/hoek" "8.x.x" - "@hapi/topo" "3.x.x" + "@types/markdown-it" "^12.2.3" + markdown-it "^13.0.1" -"@hapi/topo@3.x.x": - version "3.1.6" - resolved "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz" - integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== +"@mdit-vue/plugin-frontmatter@^0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@mdit-vue/plugin-frontmatter/-/plugin-frontmatter-0.11.1.tgz#4e4e013bf151fa54525f4e9c7c0a829912364ccb" + integrity sha512-AdZJInjD1pTJXlfhuoBS5ycuIQ3ewBfY0R/XHM3TRDEaDHQJHxouUCpCyijZmpdljTU45lFetIowaKtAi7GBog== dependencies: - "@hapi/hoek" "^8.3.0" - -"@leancloud/adapter-types@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@leancloud/adapter-types/-/adapter-types-3.0.0.tgz" - integrity sha512-/1l2PWJ6pXizHphBorMN7B0d2YjmxZJf1s+bitvLALt7wBid5qbGpHqGGKE/yRdNlCKwl9FbXG1x5wUFZfQwHQ== - -"@leancloud/adapter-types@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@leancloud/adapter-types/-/adapter-types-5.0.0.tgz" - integrity sha512-psnPaa4ONaA6X9y9xsjLmJXH+2spySH/YQUz59S0cZUTWVbZaUFwLQyHkv8OzZFixKqs+eV3xnWl7nUxCCCIeg== - -"@leancloud/adapter-utils@^1.2.2": - version "1.2.2" - resolved "https://registry.npmjs.org/@leancloud/adapter-utils/-/adapter-utils-1.2.2.tgz" - integrity sha512-B/bZM6WGN+sxMdZJeTWLAN/Gin00LX0E/M0MoygZhtrgCfCZSz47wgziOq5Fvl6yPifyvYBGaobydhyr7vxjxg== + "@mdit-vue/types" "0.11.0" + "@types/markdown-it" "^12.2.3" + gray-matter "^4.0.3" + markdown-it "^13.0.1" -"@leancloud/adapters-superagent@^1.4.2": - version "1.4.2" - resolved "https://registry.npmjs.org/@leancloud/adapters-superagent/-/adapters-superagent-1.4.2.tgz" - integrity sha512-UpawevTXaIIFEpvtW6rm6PKH28i3OCIjgdJUmcFWbI8lezHz6bBznKB9g0aCRX8/c2h6SJThzjgqNlPny8I32g== - dependencies: - "@leancloud/adapter-types" "^5.0.0" - "@leancloud/adapter-utils" "^1.2.2" - "@types/superagent" "^4.1.7" - superagent "^5.2.2" - -"@leancloud/platform-adapters-browser@^1.1.0": - version "1.5.2" - resolved "https://registry.npmjs.org/@leancloud/platform-adapters-browser/-/platform-adapters-browser-1.5.2.tgz" - integrity sha512-O7FRG4KvH20tiIP+dUbb7FE7kgkwEZifu7XmSRdPB5yO/+wR61BKykVQggQUdqJE6T9HZVSrqqbWWNqcMdJK6g== - dependencies: - "@leancloud/adapter-types" "^5.0.0" - "@leancloud/adapters-superagent" "^1.4.2" - -"@leancloud/platform-adapters-node@^1.1.0": - version "1.5.2" - resolved "https://registry.npmjs.org/@leancloud/platform-adapters-node/-/platform-adapters-node-1.5.2.tgz" - integrity sha512-FhvL6u0CXG33M5UCla2Rfja6Rrv8Sj1mrRWCZvI6m5sW4A7RyWFICW8akBL++uHUNP8WDc7szfrBz8TJHQWDcg== - dependencies: - "@leancloud/adapter-types" "^5.0.0" - "@leancloud/adapters-superagent" "^1.4.2" - "@types/ws" "^7.2.2" - localstorage-memory "^1.0.2" - ws "^5.2.2" - -"@leancloud/platform-adapters-weapp@^1.2.0": - version "1.6.1" - resolved "https://registry.npmjs.org/@leancloud/platform-adapters-weapp/-/platform-adapters-weapp-1.6.1.tgz" - integrity sha512-/Pxj0Zk9829OTQdt1KdfglqVBiOteber8gUzw5Kgjws1+hlPJ7x8x5VZcdPM3lnTh6UsP4f6CkOtS/QOeLu6JA== - dependencies: - "@leancloud/adapter-types" "^5.0.0" - "@leancloud/adapter-utils" "^1.2.2" - event-target-shim "^5.0.1" - miniprogram-api-typings "^2.10.2" - -"@mr-hope/vuepress-plugin-comment@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-plugin-comment/-/vuepress-plugin-comment-1.28.3.tgz" - integrity sha512-SR3tOAi8ut4j5cb5K03RtRMWz2ZPKCZ/tlyPIP6lLML01bmb6AM8OX3Du2yAFYmafgrlwPngh+3Tuz5b4Eba0g== - dependencies: - "@mr-hope/vuepress-plugin-git" "1.28.3" - "@mr-hope/vuepress-plugin-reading-time" "1.28.3" - "@mr-hope/vuepress-shared" "1.28.3" - "@mr-hope/vuepress-types" "1.28.3" - "@vssue/api-bitbucket-v2" "^1.4.7" - "@vssue/api-gitea-v1" "^1.4.7" - "@vssue/api-gitee-v5" "^1.4.7" - "@vssue/api-github-v3" "^1.4.7" - "@vssue/api-github-v4" "^1.4.7" - "@vssue/api-gitlab-v4" "^1.4.7" - "@vssue/vuepress-plugin-vssue" "^1.4.8" - "@waline/client" "^1.6.0" - valine "^1.4.16" - vssue "^1.4.8" - -"@mr-hope/vuepress-plugin-components@1.28.4": - version "1.28.4" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-plugin-components/-/vuepress-plugin-components-1.28.4.tgz" - integrity sha512-dOarwlvHSTGITmUMxWSsuLDPTx9fSzQDKW7SucB7X7MnAkODAOrBSGB+J3UFmZnb1db50IBXFmpWLK1c/krTjQ== - dependencies: - "@mr-hope/vuepress-shared" "1.28.3" - "@mr-hope/vuepress-types" "1.28.3" - "@types/lodash.debounce" "^4.0.6" - balloon-css "^1.2.0" - lodash.debounce "^4.0.8" - screenfull "^5.2.0" - vue-router "^3.5.3" +"@mdit-vue/plugin-headers@^0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@mdit-vue/plugin-headers/-/plugin-headers-0.11.1.tgz#246c56102f3ab197afa2a8c87fe669afb87df735" + integrity sha512-eBUonsEkXP2Uf2MIXSWZGCcLCIMSA1XfThJwhzSAosoa7fO5aw52LKCweddmn7zLQvgQh7p7382sFAhCc2KXog== + dependencies: + "@mdit-vue/shared" "0.11.0" + "@mdit-vue/types" "0.11.0" + "@types/markdown-it" "^12.2.3" + markdown-it "^13.0.1" -"@mr-hope/vuepress-plugin-copy-code@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-plugin-copy-code/-/vuepress-plugin-copy-code-1.28.3.tgz" - integrity sha512-af1t4ndSeI2TZcuClJOlvqIn2xYjKROM+am9OJyqlPw/Jw1iEr0FgiF9xQrERdIqZePnAbbygsPQaTJxKgH4Ig== +"@mdit-vue/plugin-sfc@^0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@mdit-vue/plugin-sfc/-/plugin-sfc-0.11.1.tgz#1e7102ea3f67f0761e482ac50c413f7e10e1ba41" + integrity sha512-3AjQXqExzT9FWGNOeTBqK1pbt1UA5anrZvjo7OO2PJ3lrfZd0rbjionFkmW/VW1912laHUraIP6n74mUNqPuWw== dependencies: - "@mr-hope/vuepress-shared" "1.28.3" - "@mr-hope/vuepress-types" "1.28.3" - balloon-css "^1.2.0" + "@mdit-vue/types" "0.11.0" + "@types/markdown-it" "^12.2.3" + markdown-it "^13.0.1" -"@mr-hope/vuepress-plugin-feed@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-plugin-feed/-/vuepress-plugin-feed-1.28.3.tgz" - integrity sha512-Ulqpj/uf6jnKC2tSR2eJ8xK937xdqZPpKo+BO0o4CmkhhtGRUzWIg+mj4QBl89dYLbTIf0rueN+/qwUrzECagQ== +"@mdit-vue/plugin-title@^0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@mdit-vue/plugin-title/-/plugin-title-0.11.1.tgz#98e116bc64d59b380a529f22d077dc105f6e862f" + integrity sha512-lvgR1pSgwX5D3tmLGyYBsfd3GbEoscqYsLTE8Vg+rCY8LfSrHdwrOD3Eg+SM2KyS5+gn+Zw4nS0S1yxOIVZBCQ== dependencies: - "@mr-hope/vuepress-types" "1.28.3" - chalk "^4.1.2" - xml-js "^1.6.11" + "@mdit-vue/shared" "0.11.0" + "@mdit-vue/types" "0.11.0" + "@types/markdown-it" "^12.2.3" + markdown-it "^13.0.1" -"@mr-hope/vuepress-plugin-git@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-plugin-git/-/vuepress-plugin-git-1.28.3.tgz" - integrity sha512-Lqv+VyFSFy4+BQ4QtPxUTIDu2K3Si979Zo3XDz3Xo5qjJGs+zkAFu5f++t8ERD17cefOIOT3Xrx/8HnoCy0vgQ== +"@mdit-vue/plugin-toc@^0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@mdit-vue/plugin-toc/-/plugin-toc-0.11.1.tgz#81394518fd48e54a94e6c41d804270c2b37761bf" + integrity sha512-1tkGb1092ZgLhoSmE5hkC6U0IRGG5bWhUY4p14npV4cwqntciXEoXRqPA1jGEDh5hnofZC0bHbeS3uKxsmAEew== dependencies: - "@mr-hope/vuepress-types" "1.28.3" - dayjs "^1.11.0" - execa "^5.1.1" + "@mdit-vue/shared" "0.11.0" + "@mdit-vue/types" "0.11.0" + "@types/markdown-it" "^12.2.3" + markdown-it "^13.0.1" -"@mr-hope/vuepress-plugin-pwa@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-plugin-pwa/-/vuepress-plugin-pwa-1.28.3.tgz" - integrity sha512-arVM5do0fx7ND2yYvtRwMI0SM/eiSCTUgmh000C2wzf8oSGsB7ErKQjNOzCRSRTjYgGmWYyqXxyfGnto80ASDA== +"@mdit-vue/shared@0.11.0", "@mdit-vue/shared@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@mdit-vue/shared/-/shared-0.11.0.tgz#c4b2554795fd1924302fe7f7fee2b5fb412aa578" + integrity sha512-eiGe42y7UYpjO6/8Lg6OpAtzZrRU9k8dhpX1e/kJMTcL+tn+XkqRMJJ8I2pdrOQMSkgvIva5FNAriykqFzkdGg== dependencies: - "@mr-hope/vuepress-shared" "1.28.3" - "@mr-hope/vuepress-types" "1.28.3" - "@types/fs-extra" "^9.0.13" - chalk "^4.1.2" - fs-extra "^10.0.1" - register-service-worker "^1.7.2" - workbox-build "^6.5.1" + "@mdit-vue/types" "0.11.0" + "@types/markdown-it" "^12.2.3" + markdown-it "^13.0.1" -"@mr-hope/vuepress-plugin-reading-time@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-plugin-reading-time/-/vuepress-plugin-reading-time-1.28.3.tgz" - integrity sha512-VORKK6ra2d+nbUjmfugRkjDYunaSm3So+3Px8PcDsNQ/LmDF8JNETfd39Q/zZQDXe1rm91UReJddfFZkElcKHw== +"@mdit-vue/types@0.11.0", "@mdit-vue/types@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@mdit-vue/types/-/types-0.11.0.tgz#ab9c6f4e69d9c9eaabf1a73e59dc699875b224ef" + integrity sha512-ygCGP7vFpqS02hpZwEe1uz8cfImWX06+zRs08J+tCZRKb6k+easIaIHFtY9ZSxt7j9L/gAPLDo/5RmOT6z0DPQ== + +"@mermaid-js/mermaid-mindmap@^9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@mermaid-js/mermaid-mindmap/-/mermaid-mindmap-9.2.2.tgz#106b06733748cf3a5b9e6a9bd6d11546020bed38" + integrity sha512-uzUY0PR/itxkQxpDRg95yDPJ++mRDUmGce4EVCKFebUCs0UNI/xi5mhvV6Oq8czM2ImY0W1gJu4MS2Xq3yiQug== + dependencies: + "@braintree/sanitize-url" "^6.0.0" + cytoscape "^3.23.0" + cytoscape-cose-bilkent "^4.1.0" + cytoscape-fcose "^2.1.0" + d3 "^7.0.0" + non-layered-tidy-tree-layout "^2.0.2" -"@mr-hope/vuepress-plugin-seo@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-plugin-seo/-/vuepress-plugin-seo-1.28.3.tgz" - integrity sha512-xlN6/mcMxjJi9+avs7TvPgw0ZTBABE7gASfdPW+jUwnV441lnvCwb7JnbjvUzWFs/FVAavsYqneKFcLExuBWvg== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: - "@mr-hope/vuepress-types" "1.28.3" - "@types/fs-extra" "^9.0.13" - chalk "^4.1.2" - fs-extra "^10.0.1" + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" -"@mr-hope/vuepress-plugin-sitemap@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-plugin-sitemap/-/vuepress-plugin-sitemap-1.28.3.tgz" - integrity sha512-ogQ49zx7iHyRfT/CLnCYaALwxKruYi6iIHQkFoIT5RdVdgf3JqQ56C5HS5Eh9rYeCZlZvt/9t8eTnMekbPzJkw== - dependencies: - "@mr-hope/vuepress-types" "1.28.3" - "@types/fs-extra" "^9.0.13" - chalk "^4.1.2" - fs-extra "^10.0.1" - sitemap "^7.1.1" +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@mr-hope/vuepress-plugin-smooth-scroll@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-1.28.3.tgz" - integrity sha512-pjxjlbFeh0Etnml3QS0ACjr2X3ndkVVkSXHtdmJhf8iYRCjrkSobc5yL5gB/zBA35jewMXkgpscQSb5L/uHVSQ== - dependencies: - "@mr-hope/vuepress-types" "1.28.3" - -"@mr-hope/vuepress-shared@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-shared/-/vuepress-shared-1.28.3.tgz" - integrity sha512-J1HODK3KpcXQGwGj5XKDk/FFDP/pFZq/EiUpr/QcGqLY7cXwWfSqBGIkbjMNhfCJLSrb/8Kfd1xsgKokAEecuw== - -"@mr-hope/vuepress-theme-types@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-theme-types/-/vuepress-theme-types-1.28.3.tgz" - integrity sha512-ebq9oMchuv6Po8IbwHdoWiUVwkEnuGnuxTHCdve2bCWIEOnLqGgw/uL78/DQxqLuIwOLqCtjr0Wm1IM97lVc6A== - dependencies: - "@mr-hope/vuepress-plugin-comment" "1.28.3" - "@mr-hope/vuepress-plugin-feed" "1.28.3" - "@mr-hope/vuepress-plugin-git" "1.28.3" - "@mr-hope/vuepress-plugin-pwa" "1.28.3" - "@mr-hope/vuepress-plugin-reading-time" "1.28.3" - "@mr-hope/vuepress-types" "1.28.3" - vuepress-plugin-md-enhance "1.28.3" - vuepress-plugin-photo-swipe "1.28.3" - -"@mr-hope/vuepress-types@1.28.3": - version "1.28.3" - resolved "https://registry.npmjs.org/@mr-hope/vuepress-types/-/vuepress-types-1.28.3.tgz" - integrity sha512-c/adRtW6G4B5dA8k2pbQF+8LenzPbjEmmQnIJ/7zfkhw81XboRN0v3EgBW5T2l4xggOJQCPwG+/4XNLXOGPENg== - dependencies: - "@types/express" "^4.17.13" - "@types/markdown-it" "^10.0.3" - "@types/markdown-it-anchor" "^7.0.0" - "@types/webpack-dev-server" "^3.11.6" - cac "^6.7.12" - vue "^2.6.14" - webpack-chain "^6.5.1" - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" "@rollup/plugin-babel@^5.2.0": version "5.3.0" @@ -1345,20 +1197,6 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@shigma/stringify-object@^3.3.0": - version "3.3.0" - resolved "https://registry.npmjs.org/@shigma/stringify-object/-/stringify-object-3.3.0.tgz" - integrity sha512-tO5pn6RJp8m1ldYtqY3GEQA6+Nqp1cIZVrVx7iFVPx0YfhMqfplwrvyrQPP1cCwuyRoAyDr/BxVZYt+USm8LXQ== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^2.0.0" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" resolved "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz" @@ -1369,70 +1207,23 @@ magic-string "^0.25.0" string.prototype.matchall "^4.0.6" -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@types/bcryptjs@^2.4.2": - version "2.4.2" - resolved "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.2.tgz" - integrity sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ== - -"@types/body-parser@*": - version "1.19.1" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz" - integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/connect-history-api-fallback@*": - version "1.3.5" - resolved "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz" - integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" +"@types/body-scroll-lock@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/body-scroll-lock/-/body-scroll-lock-3.1.0.tgz#435f6abf682bf58640e1c2ee5978320b891970e7" + integrity sha512-3owAC4iJub5WPqRhxd8INarF2bWeQq1yQHBgYhN0XLBJMpd5ED10RrJ3aKiAwlTyL5wK7RkBD4SZUQz2AAAMdA== -"@types/connect@*": - version "3.4.35" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== +"@types/debug@^4.1.7": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== dependencies: - "@types/node" "*" - -"@types/cookiejar@*": - version "2.1.2" - resolved "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz" - integrity sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog== + "@types/ms" "*" "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": - version "4.17.25" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.25.tgz" - integrity sha512-OUJIVfRMFijZukGGwTpKNFprqCCXk5WjNGvUgB/CxxBR40QWSjsNK86+yvGKlCOGc7sbwfHLaXhkG+NsytwBaQ== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@*", "@types/express@^4.17.13": - version "4.17.13" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - "@types/fs-extra@^9.0.13": version "9.0.13" resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz" @@ -1440,83 +1231,29 @@ dependencies: "@types/node" "*" -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - "@types/hash-sum@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@types/hash-sum/-/hash-sum-1.0.0.tgz" integrity sha512-FdLBT93h3kcZ586Aee66HPCVJ6qvxVjBlDWNmxSGSbCZe9hTsjRKdSsl4y1T+3zfujxo9auykQMnFsfyHWD7wg== -"@types/highlight.js@^9.7.0": - version "9.12.4" - resolved "https://registry.npmjs.org/@types/highlight.js/-/highlight.js-9.12.4.tgz" - integrity sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww== - -"@types/http-proxy@^1.17.5": - version "1.17.7" - resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.7.tgz" - integrity sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w== - dependencies: - "@types/node" "*" - -"@types/json-schema@^7.0.5": - version "7.0.9" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - -"@types/katex@^0.11.1": - version "0.11.1" - resolved "https://registry.npmjs.org/@types/katex/-/katex-0.11.1.tgz" - integrity sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg== +"@types/katex@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.14.0.tgz#b84c0afc3218069a5ad64fe2a95321881021b5fe" + integrity sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA== "@types/linkify-it@*": version "3.0.2" resolved "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz" integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA== -"@types/lodash.debounce@^4.0.6": - version "4.0.6" - resolved "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz" - integrity sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ== - dependencies: - "@types/lodash" "*" - -"@types/lodash.throttle@^4.1.6": - version "4.1.6" - resolved "https://registry.npmjs.org/@types/lodash.throttle/-/lodash.throttle-4.1.6.tgz" - integrity sha512-/UIH96i/sIRYGC60NoY72jGkCJtFN5KVPhEMMMTjol65effe1gPn0tycJqV5tlSwMTzX8FqzB5yAj0rfGHTPNg== - dependencies: - "@types/lodash" "*" - -"@types/lodash@*": - version "4.14.176" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.176.tgz" - integrity sha512-xZmuPTa3rlZoIbtDUyJKZQimJV3bxCmzMIO2c9Pz9afyDro6kr7R79GwcB6mRhuoPmV2p1Vb66WOJH7F886WKQ== - -"@types/markdown-it-anchor@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@types/markdown-it-anchor/-/markdown-it-anchor-7.0.0.tgz" - integrity sha512-kFehISVfgSePSp6JWGWrcgKIPoPpAsZAqTLUt0Wq9+MNiGdnWdXQy8UerwhmD2afmjux1TWf8XCmlpL2/6ax/A== - dependencies: - markdown-it-anchor "*" - -"@types/markdown-it@^10.0.0", "@types/markdown-it@^10.0.3": - version "10.0.3" - resolved "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-10.0.3.tgz" - integrity sha512-daHJk22isOUvNssVGF2zDnnSyxHhFYhtjeX4oQaKD6QzL3ZR1QSgiD1g+Q6/WSWYVogNXYDXODtbgW/WiFCtyw== +"@types/markdown-it-emoji@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz#f12a97df2758f38b4b38f277b468780459faff14" + integrity sha512-2ln8Wjbcj/0oRi/6VnuMeWEHHuK8uapFttvcLmDIe1GKCsFBLOLBX+D+xhDa9oWOQV0IpvxwrSfKKssAqqroog== dependencies: - "@types/highlight.js" "^9.7.0" - "@types/linkify-it" "*" - "@types/mdurl" "*" - highlight.js "^9.7.0" + "@types/markdown-it" "*" -"@types/markdown-it@^12.2.3": +"@types/markdown-it@*", "@types/markdown-it@^12.2.3": version "12.2.3" resolved "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz" integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== @@ -1529,60 +1266,16 @@ resolved "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz" integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== -"@types/mermaid@^8.2.8": - version "8.2.9" - resolved "https://registry.npmjs.org/@types/mermaid/-/mermaid-8.2.9.tgz" - integrity sha512-f1i8fNoVFVJXedk+R7GcEk4KoOWzWAU3CzFqlVw1qWKktfsataBERezCz1pOdKy8Ec02ZdPQXGM7NU2lPHABYQ== - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - -"@types/minimatch@*": - version "3.0.5" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== "@types/node@*", "@types/node@^17.0.5": version "17.0.23" resolved "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz" integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== -"@types/photoswipe@^4.1.2": - version "4.1.2" - resolved "https://registry.npmjs.org/@types/photoswipe/-/photoswipe-4.1.2.tgz" - integrity sha512-HA9TtCAQKToldgxRiyJ1DbsElg/cQV/SQ8COVjqIqghjy60Zxfh78E1WiFotthquqkS86nz13Za9wEbToe0svQ== - -"@types/prop-types@*": - version "15.7.4" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz" - integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== - -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== - -"@types/qs@*": - version "6.9.7" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/react@^17.0.40": - version "17.0.43" - resolved "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz" - integrity sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - "@types/resolve@1.17.1": version "1.17.1" resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz" @@ -1597,668 +1290,409 @@ dependencies: "@types/node" "*" -"@types/scheduler@*": - version "0.16.2" - resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== - -"@types/serve-static@*": - version "1.13.10" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - -"@types/superagent@^4.1.7": - version "4.1.13" - resolved "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.13.tgz" - integrity sha512-YIGelp3ZyMiH0/A09PMAORO0EBGlF5xIKfDpK74wdYvWUs2o96b5CItJcWPdH409b7SAXIIG6p8NdU/4U2Maww== - dependencies: - "@types/cookiejar" "*" - "@types/node" "*" - -"@types/tapable@^1": - version "1.0.8" - resolved "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz" - integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== - "@types/trusted-types@^2.0.2": version "2.0.2" resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz" integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== -"@types/uglify-js@*": - version "3.13.1" - resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz" - integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== - dependencies: - source-map "^0.6.1" - -"@types/webpack-dev-server@^3", "@types/webpack-dev-server@^3.11.6": - version "3.11.6" - resolved "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz" - integrity sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ== - dependencies: - "@types/connect-history-api-fallback" "*" - "@types/express" "*" - "@types/serve-static" "*" - "@types/webpack" "^4" - http-proxy-middleware "^1.0.0" +"@types/web-bluetooth@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz#1d12873a8e49567371f2a75fe3e7f7edca6662d8" + integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== -"@types/webpack-sources@*": +"@vitejs/plugin-vue@^3.1.2": version "3.2.0" - resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz" - integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.7.3" - -"@types/webpack@^4": - version "4.41.31" - resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.31.tgz" - integrity sha512-/i0J7sepXFIp1ZT7FjUGi1eXMCg8HCCzLJEQkKsOtbJFontsJLolBcDC+3qxn5pPwiCt1G0ZdRmYRzNBtvpuGQ== - dependencies: - "@types/node" "*" - "@types/tapable" "^1" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - anymatch "^3.0.0" - source-map "^0.6.0" - -"@types/ws@^7.2.2": - version "7.4.7" - resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@vssue/api-bitbucket-v2@^1.4.7": - version "1.4.7" - resolved "https://registry.npmjs.org/@vssue/api-bitbucket-v2/-/api-bitbucket-v2-1.4.7.tgz" - integrity sha512-qdCIUKr3WewqnSiKUWRw1LsBP3WusHUQob6WG388I/1CS0MYgxjkYiCEQENDVyLdodMrIcZkPuBAO4Khf/53Jg== - dependencies: - "@vssue/utils" "^1.4.7" - axios "^0.21.1" - -"@vssue/api-gitea-v1@^1.4.7": - version "1.4.7" - resolved "https://registry.npmjs.org/@vssue/api-gitea-v1/-/api-gitea-v1-1.4.7.tgz" - integrity sha512-/LoIt8v+yeQdH5SHyfMzQe2yONA95ltBRy6ppSIXdU2IOecZtnj0VmVAjCZ5S4EH8xPB1H3wslPtCzUDT2IXwg== - dependencies: - "@vssue/utils" "^1.4.7" - axios "^0.21.1" - -"@vssue/api-gitee-v5@^1.4.7": - version "1.4.7" - resolved "https://registry.npmjs.org/@vssue/api-gitee-v5/-/api-gitee-v5-1.4.7.tgz" - integrity sha512-R2O3sbrMOcIl13+PyNqWBY49u3rX4fZ545kMCvdmuIPzkd5zZp7U0bnOvtkCdk9SSGg2nFu5Tg16PpdtwWj91A== - dependencies: - "@vssue/utils" "^1.4.7" - axios "^0.21.1" - -"@vssue/api-github-v3@^1.1.2", "@vssue/api-github-v3@^1.4.7": - version "1.4.7" - resolved "https://registry.npmjs.org/@vssue/api-github-v3/-/api-github-v3-1.4.7.tgz" - integrity sha512-ukhOnzGQarmj606ZiYN9iCMyr3EJS3YEPdZXX+zBLVsuzjTL5ffLbbpXsEtPBh2XNt3Ig3XdzCvA9bVXhwy4mQ== - dependencies: - "@vssue/utils" "^1.4.7" - axios "^0.21.1" - -"@vssue/api-github-v4@^1.4.7": - version "1.4.7" - resolved "https://registry.npmjs.org/@vssue/api-github-v4/-/api-github-v4-1.4.7.tgz" - integrity sha512-Tk4ZYyX03RwoVy29RW1+ZdqESzX/gLsN9010Eaq0WT/2pNV+8quyT9TMypIZp6rZCGNYTSdxB8ET4IiF7SLKXQ== - dependencies: - "@vssue/utils" "^1.4.7" - axios "^0.21.1" - -"@vssue/api-gitlab-v4@^1.4.7": - version "1.4.7" - resolved "https://registry.npmjs.org/@vssue/api-gitlab-v4/-/api-gitlab-v4-1.4.7.tgz" - integrity sha512-tsdYpB8U5oHZU+m/jSaWbvRqzt6iZ8DeGMBmwxMOMo0tZpffThjtaaA3/1Q2j5bSvDonDeqvhFXcuP19/mIKgg== - dependencies: - "@vssue/utils" "^1.4.7" - axios "^0.21.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz#a1484089dd85d6528f435743f84cdd0d215bbb54" + integrity sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw== -"@vssue/utils@^1.4.7": - version "1.4.7" - resolved "https://registry.npmjs.org/@vssue/utils/-/utils-1.4.7.tgz" - integrity sha512-e94karP4szmSNT2L4bgIT+VGToBSY3bdlgmGcomcD2qCXTWDK4krSOYm8ES+BhHTcmCvzQYU/xenHR4tzrythA== +"@vue/compiler-core@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz#d9311207d96f6ebd5f4660be129fb99f01ddb41b" + integrity sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A== dependencies: - date-fns "^1.29.0" - qs "^6.6.0" - -"@vssue/vuepress-plugin-vssue@^1.2.0", "@vssue/vuepress-plugin-vssue@^1.4.8": - version "1.4.8" - resolved "https://registry.npmjs.org/@vssue/vuepress-plugin-vssue/-/vuepress-plugin-vssue-1.4.8.tgz" - integrity sha512-0QzegHl/Rx4/XgXswThIJi4Yk+b6AIaM450jX6p4RbOM6yOTzEKLTMduUo54Rvhq/NHNusu4Yy/w1iY8NTqBEg== - dependencies: - vssue "^1.4.8" - -"@vue/babel-helper-vue-jsx-merge-props@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz" - integrity sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA== - -"@vue/babel-helper-vue-transform-on@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz" - integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA== + "@babel/parser" "^7.16.4" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + source-map "^0.6.1" -"@vue/babel-plugin-jsx@^1.0.3": - version "1.1.1" - resolved "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz" - integrity sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - "@vue/babel-helper-vue-transform-on" "^1.0.2" - camelcase "^6.0.0" - html-tags "^3.1.0" - svg-tags "^1.0.0" - -"@vue/babel-plugin-transform-vue-jsx@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz" - integrity sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - html-tags "^2.0.0" - lodash.kebabcase "^4.1.1" - svg-tags "^1.0.0" - -"@vue/babel-preset-app@^4.1.2": - version "4.5.15" - resolved "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.5.15.tgz" - integrity sha512-J+YttzvwRfV1BPczf8r3qCevznYk+jh531agVF+5EYlHF4Sgh/cGXTz9qkkiux3LQgvhEGXgmCteg1n38WuuKg== - dependencies: - "@babel/core" "^7.11.0" - "@babel/helper-compilation-targets" "^7.9.6" - "@babel/helper-module-imports" "^7.8.3" - "@babel/plugin-proposal-class-properties" "^7.8.3" - "@babel/plugin-proposal-decorators" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - "@babel/plugin-transform-runtime" "^7.11.0" - "@babel/preset-env" "^7.11.0" - "@babel/runtime" "^7.11.0" - "@vue/babel-plugin-jsx" "^1.0.3" - "@vue/babel-preset-jsx" "^1.2.4" - babel-plugin-dynamic-import-node "^2.3.3" - core-js "^3.6.5" - core-js-compat "^3.6.5" - semver "^6.1.0" +"@vue/compiler-dom@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz#c43cc15e50da62ecc16a42f2622d25dc5fd97dce" + integrity sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw== + dependencies: + "@vue/compiler-core" "3.2.45" + "@vue/shared" "3.2.45" + +"@vue/compiler-sfc@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz#7f7989cc04ec9e7c55acd406827a2c4e96872c70" + integrity sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.45" + "@vue/compiler-dom" "3.2.45" + "@vue/compiler-ssr" "3.2.45" + "@vue/reactivity-transform" "3.2.45" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" -"@vue/babel-preset-jsx@^1.2.4": - version "1.2.4" - resolved "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz" - integrity sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w== - dependencies: - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - "@vue/babel-sugar-composition-api-inject-h" "^1.2.1" - "@vue/babel-sugar-composition-api-render-instance" "^1.2.4" - "@vue/babel-sugar-functional-vue" "^1.2.2" - "@vue/babel-sugar-inject-h" "^1.2.2" - "@vue/babel-sugar-v-model" "^1.2.3" - "@vue/babel-sugar-v-on" "^1.2.3" - -"@vue/babel-sugar-composition-api-inject-h@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz" - integrity sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ== +"@vue/compiler-ssr@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz#bd20604b6e64ea15344d5b6278c4141191c983b2" + integrity sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ== dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/compiler-dom" "3.2.45" + "@vue/shared" "3.2.45" -"@vue/babel-sugar-composition-api-render-instance@^1.2.4": - version "1.2.4" - resolved "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz" - integrity sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" +"@vue/devtools-api@^6.4.5": + version "6.4.5" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.4.5.tgz#d54e844c1adbb1e677c81c665ecef1a2b4bb8380" + integrity sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ== -"@vue/babel-sugar-functional-vue@^1.2.2": - version "1.2.2" - resolved "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz" - integrity sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w== +"@vue/reactivity-transform@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz#07ac83b8138550c83dfb50db43cde1e0e5e8124d" + integrity sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ== dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.45" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + magic-string "^0.25.7" -"@vue/babel-sugar-inject-h@^1.2.2": - version "1.2.2" - resolved "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz" - integrity sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw== +"@vue/reactivity@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.45.tgz#412a45b574de601be5a4a5d9a8cbd4dee4662ff0" + integrity sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A== dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/shared" "3.2.45" -"@vue/babel-sugar-v-model@^1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz" - integrity sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - camelcase "^5.0.0" - html-tags "^2.0.0" - svg-tags "^1.0.0" +"@vue/repl@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@vue/repl/-/repl-1.3.2.tgz#f14b3f593ec80870963646f338b7950702ea4c46" + integrity sha512-5joGOuTFmjaugG3E1h/oP1EXSMcVXRUwLIoo8xvYQnqDrCT6g1SfsH1pfei5PpC5DUxMX1584CekZu6REgGYkQ== + +"@vue/runtime-core@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz#7ad7ef9b2519d41062a30c6fa001ec43ac549c7f" + integrity sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A== + dependencies: + "@vue/reactivity" "3.2.45" + "@vue/shared" "3.2.45" + +"@vue/runtime-dom@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz#1a2ef6ee2ad876206fbbe2a884554bba2d0faf59" + integrity sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA== + dependencies: + "@vue/runtime-core" "3.2.45" + "@vue/shared" "3.2.45" + csstype "^2.6.8" + +"@vue/server-renderer@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz#ca9306a0c12b0530a1a250e44f4a0abac6b81f3f" + integrity sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g== + dependencies: + "@vue/compiler-ssr" "3.2.45" + "@vue/shared" "3.2.45" + +"@vue/shared@3.2.45", "@vue/shared@^3.2.41": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.45.tgz#a3fffa7489eafff38d984e23d0236e230c818bc2" + integrity sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg== + +"@vuepress/bundler-vite@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/bundler-vite/-/bundler-vite-2.0.0-beta.53.tgz#6c425cccbe6f4d281a87dee320ded6f1e9eee329" + integrity sha512-zkqkV+EnoTi7cTRi6xjb0SRg0GzRYwceJu80/6q7Bd+h+VktqhapcHAZ8QaIsq8OxCXbg3sms/A9kg3UxBnRqg== + dependencies: + "@vitejs/plugin-vue" "^3.1.2" + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + autoprefixer "^10.4.12" + connect-history-api-fallback "^2.0.0" + postcss "^8.4.18" + postcss-load-config "^4.0.1" + rollup "^2.79.1" + vite "~3.1.8" + vue "^3.2.41" + vue-router "^4.1.6" + +"@vuepress/cli@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/cli/-/cli-2.0.0-beta.53.tgz#5c8670abadb29797eb65071be93b0b6a76f444c0" + integrity sha512-MT2y6syOIP17hq/mWiZXTDEViDb3/k5eIVzlvpw4N8oiAr4hwwdCUzQ5vKVd7trn+83KvG5XYOLtjrj1hexlYg== + dependencies: + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + cac "^6.7.14" + chokidar "^3.5.3" + envinfo "^7.8.1" + esbuild "^0.15.12" + +"@vuepress/client@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/client/-/client-2.0.0-beta.53.tgz#c60fd217d01510ea62f57b8077940a51342f45f8" + integrity sha512-TDKxlrUvwfWu3QAY4SHeu9mVqBkEoKvuoy0WsKy7x9omEy8+HJG1O9y664bP9SotD52skcKL1iW38nQJR2+AkQ== + dependencies: + "@vue/devtools-api" "^6.4.5" + "@vuepress/shared" "2.0.0-beta.53" + vue "^3.2.41" + vue-router "^4.1.6" + +"@vuepress/core@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/core/-/core-2.0.0-beta.53.tgz#600da932f6ece8699580ecaf9937bc6bf6e7a71d" + integrity sha512-s642hM+PpiNphLm/KZvva45OYKX6hWRh2Y+C92TDGzCMxiONI8ZxGLqXRCw5bKw5NGh91s+P4sf3iaY+JxL1Ig== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/markdown" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + vue "^3.2.41" + +"@vuepress/markdown@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/markdown/-/markdown-2.0.0-beta.53.tgz#8f9cc4a91e7bfb34d2606ffcde1d13526dc69308" + integrity sha512-ohIujGc0tVSsFTBD5kyB0asxLsDtctzrOOgHvaS2fDWqm0MQisjxnQKNFdbWk9bfddAyty0aKN+m/4l0f5lCDw== + dependencies: + "@mdit-vue/plugin-component" "^0.11.1" + "@mdit-vue/plugin-frontmatter" "^0.11.1" + "@mdit-vue/plugin-headers" "^0.11.1" + "@mdit-vue/plugin-sfc" "^0.11.1" + "@mdit-vue/plugin-title" "^0.11.1" + "@mdit-vue/plugin-toc" "^0.11.1" + "@mdit-vue/shared" "^0.11.0" + "@mdit-vue/types" "^0.11.0" + "@types/markdown-it" "^12.2.3" + "@types/markdown-it-emoji" "^2.0.2" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + markdown-it "^13.0.1" + markdown-it-anchor "^8.6.5" + markdown-it-emoji "^2.0.2" + mdurl "^1.0.1" -"@vue/babel-sugar-v-on@^1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz" - integrity sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw== +"@vuepress/plugin-active-header-links@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-beta.53.tgz#08b4a196a659b06fe386d04e824ffaa31ddd0e58" + integrity sha512-rlDQ4CpF/awzHN6l6c5C4/bbiAZisZ2Z9cP2GJJBbxIb6QA6GOrIoHMt6L+9321Q+/jmntjoRJT4yHP/jg8OMA== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + ts-debounce "^4.0.0" + vue "^3.2.41" + vue-router "^4.1.6" + +"@vuepress/plugin-back-to-top@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-beta.53.tgz#ef19c8a8b48643b9eaf9a0c3acffcb60958024a6" + integrity sha512-M7+WIA1e57yHbpUKksVDQdcHceslqeGn0/MldjmZHZ/xosxjM/ZIsw7AiSdmCcISEZBr60IXxDoLqJMNhMNQLQ== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + ts-debounce "^4.0.0" + vue "^3.2.41" + +"@vuepress/plugin-container@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-container/-/plugin-container-2.0.0-beta.53.tgz#b112de6559af7fb82c42327bbe2be6969d810d70" + integrity sha512-kkEee5iGRHfGVFNBsF2b5vCfjC7dcmU2zqICJq8/UZbhWuyAavpmDovQYLCVh/yTfNE1FlRUOAFFI+jf3bvF9g== dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - camelcase "^5.0.0" - -"@vue/component-compiler-utils@^3.1.0": - version "3.3.0" - resolved "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz" - integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ== - dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss "^7.0.36" - postcss-selector-parser "^6.0.2" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.9.0" - optionalDependencies: - prettier "^1.18.2 || ^2.0.0" - -"@vuepress/core@1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/core/-/core-1.9.7.tgz" - integrity sha512-u5eb1mfNLV8uG2UuxlvpB/FkrABxeMHqymTsixOnsOg2REziv9puEIbqaZ5BjLPvbCDvSj6rn+DwjENmBU+frQ== - dependencies: - "@babel/core" "^7.8.4" - "@vue/babel-preset-app" "^4.1.2" - "@vuepress/markdown" "1.9.7" - "@vuepress/markdown-loader" "1.9.7" - "@vuepress/plugin-last-updated" "1.9.7" - "@vuepress/plugin-register-components" "1.9.7" - "@vuepress/shared-utils" "1.9.7" - "@vuepress/types" "1.9.7" - autoprefixer "^9.5.1" - babel-loader "^8.0.4" - bundle-require "2.1.8" - cache-loader "^3.0.0" - chokidar "^2.0.3" - connect-history-api-fallback "^1.5.0" - copy-webpack-plugin "^5.0.2" - core-js "^3.6.4" - cross-spawn "^6.0.5" - css-loader "^2.1.1" - esbuild "0.14.7" - file-loader "^3.0.1" - js-yaml "^3.13.1" - lru-cache "^5.1.1" - mini-css-extract-plugin "0.6.0" - optimize-css-assets-webpack-plugin "^5.0.1" - portfinder "^1.0.13" - postcss-loader "^3.0.0" - postcss-safe-parser "^4.0.1" - toml "^3.0.0" - url-loader "^1.0.1" - vue "^2.6.10" - vue-loader "^15.7.1" - vue-router "^3.4.5" - vue-server-renderer "^2.6.10" - vue-template-compiler "^2.6.10" - vuepress-html-webpack-plugin "^3.2.0" - vuepress-plugin-container "^2.0.2" - webpack "^4.8.1" - webpack-chain "^6.0.0" - webpack-dev-server "^3.5.1" - webpack-merge "^4.1.2" - webpackbar "3.2.0" - -"@vuepress/markdown-loader@1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/markdown-loader/-/markdown-loader-1.9.7.tgz" - integrity sha512-mxXF8FtX/QhOg/UYbe4Pr1j5tcf/aOEI502rycTJ3WF2XAtOmewjkGV4eAA6f6JmuM/fwzOBMZKDyy9/yo2I6Q== - dependencies: - "@vuepress/markdown" "1.9.7" - loader-utils "^1.1.0" - lru-cache "^5.1.1" - -"@vuepress/markdown@1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/markdown/-/markdown-1.9.7.tgz" - integrity sha512-DFOjYkwV6fT3xXTGdTDloeIrT1AbwJ9pwefmrp0rMgC6zOz3XUJn6qqUwcYFO5mNBWpbiFQ3JZirCtgOe+xxBA== - dependencies: - "@vuepress/shared-utils" "1.9.7" - markdown-it "^8.4.1" - markdown-it-anchor "^5.0.2" - markdown-it-chain "^1.3.0" - markdown-it-emoji "^1.4.0" - markdown-it-table-of-contents "^0.4.0" - prismjs "^1.13.0" - -"@vuepress/plugin-active-header-links@1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.9.7.tgz" - integrity sha512-G1M8zuV9Og3z8WBiKkWrofG44NEXsHttc1MYreDXfeWh/NLjr9q1GPCEXtiCjrjnHZHB3cSQTKnTqAHDq35PGA== - dependencies: - "@vuepress/types" "1.9.7" - lodash.debounce "^4.0.8" - -"@vuepress/plugin-blog@^1.9.4": - version "1.9.4" - resolved "https://registry.npmjs.org/@vuepress/plugin-blog/-/plugin-blog-1.9.4.tgz" - integrity sha512-7A4Y3mYrSOUKdzsTjeVOKt0XgZ0m1Iqq7BeZn7y9YeZfDcZ4Fx6UldsPfK2+THwtYwGzQ7Not3zO8djyk7z3ew== - dependencies: - "@vssue/api-github-v3" "^1.1.2" - "@vssue/vuepress-plugin-vssue" "^1.2.0" - dayjs "^1.10.3" - vuejs-paginate "^2.1.0" - vuepress-plugin-disqus "^0.2.0" - vuepress-plugin-feed "^0.1.8" - vuepress-plugin-mailchimp "^1.4.1" - vuepress-plugin-sitemap "^2.3.1" - -"@vuepress/plugin-google-analytics@1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/plugin-google-analytics/-/plugin-google-analytics-1.8.2.tgz" - integrity sha512-BMFayLzT2BvXmnhM9mDHw0UPU7J0pH1X9gQA4HmZxOf7f3+atK5eJGsc1Ia/+1FTG2ESvhFLUU/CC3h5arjEJw== - -"@vuepress/plugin-last-updated@1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/plugin-last-updated/-/plugin-last-updated-1.9.7.tgz" - integrity sha512-FiFBOl49dlFRjbLRnRAv77HDWfe+S/eCPtMQobq4/O3QWuL3Na5P4fCTTVzq1K7rWNO9EPsWNB2Jb26ndlQLKQ== - dependencies: - "@vuepress/types" "1.9.7" - cross-spawn "^6.0.5" - -"@vuepress/plugin-nprogress@1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-1.9.7.tgz" - integrity sha512-sI148igbdRfLgyzB8PdhbF51hNyCDYXsBn8bBWiHdzcHBx974sVNFKtfwdIZcSFsNrEcg6zo8YIrQ+CO5vlUhQ== - dependencies: - "@vuepress/types" "1.9.7" - nprogress "^0.2.0" - -"@vuepress/plugin-pwa@^1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/plugin-pwa/-/plugin-pwa-1.9.7.tgz" - integrity sha512-E8It9+Gbxuorja28Fg/3MtG5JBhdQ4XkuX65uqKl86n2uOjx50Zqndt7MWOzy9bMKzaV7gQw07UbUOMVSgKT0w== - dependencies: - "@vuepress/shared-utils" "1.9.7" - "@vuepress/types" "1.9.7" - register-service-worker "^1.7.0" - workbox-build "^4.3.1" - -"@vuepress/plugin-register-components@1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/plugin-register-components/-/plugin-register-components-1.9.7.tgz" - integrity sha512-l/w1nE7Dpl+LPMb8+AHSGGFYSP/t5j6H4/Wltwc2QcdzO7yqwC1YkwwhtTXvLvHOV8O7+rDg2nzvq355SFkfKA== - dependencies: - "@vuepress/shared-utils" "1.9.7" - "@vuepress/types" "1.9.7" - -"@vuepress/plugin-search@1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/plugin-search/-/plugin-search-1.9.7.tgz" - integrity sha512-MLpbUVGLxaaHEwflFxvy0pF9gypFVUT3Q9Zc6maWE+0HDWAvzMxo6GBaj6mQPwjOqNQMf4QcN3hDzAZktA+DQg== - dependencies: - "@vuepress/types" "1.9.7" - -"@vuepress/shared-utils@1.9.7", "@vuepress/shared-utils@^1.2.0": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/shared-utils/-/shared-utils-1.9.7.tgz" - integrity sha512-lIkO/eSEspXgVHjYHa9vuhN7DuaYvkfX1+TTJDiEYXIwgwqtvkTv55C+IOdgswlt0C/OXDlJaUe1rGgJJ1+FTw== - dependencies: - chalk "^2.3.2" - escape-html "^1.0.3" - fs-extra "^7.0.1" - globby "^9.2.0" - gray-matter "^4.0.1" - hash-sum "^1.0.2" - semver "^6.0.0" - toml "^3.0.0" - upath "^1.1.0" - -"@vuepress/theme-default@1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-1.9.7.tgz" - integrity sha512-NZzCLIl+bgJIibhkqVmk/NSku57XIuXugxAN3uiJrCw6Mu6sb3xOvbk0En3k+vS2BKHxAZ6Cx7dbCiyknDQnSA== - dependencies: - "@vuepress/plugin-active-header-links" "1.9.7" - "@vuepress/plugin-nprogress" "1.9.7" - "@vuepress/plugin-search" "1.9.7" - "@vuepress/types" "1.9.7" - docsearch.js "^2.5.2" - lodash "^4.17.15" - stylus "^0.54.8" - stylus-loader "^3.0.2" - vuepress-plugin-container "^2.0.2" - vuepress-plugin-smooth-scroll "^0.0.3" - -"@vuepress/types@1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@vuepress/types/-/types-1.9.7.tgz" - integrity sha512-moLQzkX3ED2o18dimLemUm7UVDKxhcrJmGt5C0Ng3xxrLPaQu7UqbROtEKB3YnMRt4P/CA91J+Ck+b9LmGabog== + "@types/markdown-it" "^12.2.3" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/markdown" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + markdown-it "^13.0.1" + markdown-it-container "^3.0.0" + +"@vuepress/plugin-docsearch@^2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-docsearch/-/plugin-docsearch-2.0.0-beta.53.tgz#0e2eed0f0e6943590321995bd462cf6e600ea2d2" + integrity sha512-U5s3gHo9989fGhMq/wUp85c0GOuajVOFMbf2bH5NzZIZ2j70vwJubfqc3Pb496DOKSu6gEPYZCRzNHkzgOPIAg== + dependencies: + "@docsearch/css" "^3.2.2" + "@docsearch/js" "^3.2.2" + "@docsearch/react" "^3.2.2" + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + ts-debounce "^4.0.0" + vue "^3.2.41" + vue-router "^4.1.6" + +"@vuepress/plugin-external-link-icon@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-external-link-icon/-/plugin-external-link-icon-2.0.0-beta.53.tgz#8ad4fe660192bc991ccf7051dd5fdc9476e6a0f9" + integrity sha512-S+IY1PK96Vbuf90IdZBe36kRpMCXrGr9TPaPm1aAQ9GA0Y5QQkTV876SXsb0n1B6Ae2AsSieulB2o4lyoL1LBQ== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/markdown" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + vue "^3.2.41" + +"@vuepress/plugin-git@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-git/-/plugin-git-2.0.0-beta.53.tgz#6fffbf178ec4ee41e0134198474b96af6d31d3bc" + integrity sha512-hefVEUhxTgvDcrsIutVBBfJvixR/L6iTQZ9eDAj2z71fOgnVNdN8PNZ9XRDm3nhZrye9X44AmJI82Wk9SlwgVw== + dependencies: + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + execa "^6.1.0" + +"@vuepress/plugin-google-analytics@^2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.53.tgz#f8c4b79b1a4ab55b919714265c6c68df042c1ec7" + integrity sha512-W0tLmO896zHMNPCAqQnZMdYsp8onqPKdSMTSNl4kFHe0jofZjhjmbP1Ie4O781JJDYwnTnY5aHC4M/0LJRbQuQ== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + +"@vuepress/plugin-medium-zoom@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-beta.53.tgz#03a7b49bdcac4bdc8e813019f74d849e348d3540" + integrity sha512-hvmO40is/JrHDcSFp73qwX90nXUAaBBZHokZ0I3D61u6acFtI4HU/vpJpu+3oiqjXHQaUNqZO5eDr4EpypGjUg== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + medium-zoom "^1.0.6" + vue "^3.2.41" + +"@vuepress/plugin-nprogress@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-beta.53.tgz#7e83e959180b74e6026f3c15e4e92479ba1f72c3" + integrity sha512-xO8Dqw1yCttY6N+jDpuwE3RG+jQVPE0EieRafTWRO+fGCFobGa/6Zldc4x3+alB2xyXwFAy2495NYgPudNIWeQ== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + vue "^3.2.41" + vue-router "^4.1.6" + +"@vuepress/plugin-palette@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-palette/-/plugin-palette-2.0.0-beta.53.tgz#ae9d40ce7e6f24a41d9758de277076cbcd376473" + integrity sha512-iYCb397nu/WacvXEaTmeex7lxkjHqRPXLAqBccrD4JWPshP2iu1ajM316jI8sUXSPTZZl4GOQ7+fqbr+UGHdEg== + dependencies: + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + chokidar "^3.5.3" + +"@vuepress/plugin-prismjs@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-prismjs/-/plugin-prismjs-2.0.0-beta.53.tgz#b6a0cec28306c6fa049ddc2624f606b27b49f493" + integrity sha512-8zAMHqSPJK8Nw9hP2V12BrAfT88Mmw37Lhi6cbc0S9Ub+wapzZkD9I1SuR1OEssqqMrHL2h1dWx25RqYstn7eA== + dependencies: + "@vuepress/core" "2.0.0-beta.53" + prismjs "^1.29.0" + +"@vuepress/plugin-theme-data@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-beta.53.tgz#b838a2afae815301c8b9d1ec3cfe865a72d4f302" + integrity sha512-fTOWrsO+ql2ZcN1UtF7Xc6+J/XfOAL+4+0Tq6fSky4Gv1HdC2Euey+r+RYgYkTdogdbL2VaUp3s+jhcow5WWAg== + dependencies: + "@vue/devtools-api" "^6.4.5" + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + vue "^3.2.41" + +"@vuepress/shared@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/shared/-/shared-2.0.0-beta.53.tgz#acf19da2dd23c09afd29cffb993644e29b91d229" + integrity sha512-B0qWorGxC3ruSHdZcJW24XtEDEU3L3uPr0xzTeKVfHjOM4b9hN83YzBtW4n/WPnmk1RXVE9266Ulh9ZL5okGOw== + dependencies: + "@mdit-vue/types" "^0.11.0" + "@vue/shared" "^3.2.41" + +"@vuepress/theme-default@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/theme-default/-/theme-default-2.0.0-beta.53.tgz#0891d380360a4f4cd07b54953582cafb4ad174d0" + integrity sha512-FNzEgD2D+ZZRpgF4PfUMCVfKkpzHjmapMlho6Q74d1iqf5cbDeiTyUSWXM2SWHwyZDbdbemjcnfiztb1c215ow== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/plugin-active-header-links" "2.0.0-beta.53" + "@vuepress/plugin-back-to-top" "2.0.0-beta.53" + "@vuepress/plugin-container" "2.0.0-beta.53" + "@vuepress/plugin-external-link-icon" "2.0.0-beta.53" + "@vuepress/plugin-git" "2.0.0-beta.53" + "@vuepress/plugin-medium-zoom" "2.0.0-beta.53" + "@vuepress/plugin-nprogress" "2.0.0-beta.53" + "@vuepress/plugin-palette" "2.0.0-beta.53" + "@vuepress/plugin-prismjs" "2.0.0-beta.53" + "@vuepress/plugin-theme-data" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + "@vueuse/core" "^9.3.1" + sass "^1.55.0" + vue "^3.2.41" + vue-router "^4.1.6" + +"@vuepress/utils@2.0.0-beta.53": + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/@vuepress/utils/-/utils-2.0.0-beta.53.tgz#ac61235436a4c45e03e7e856ea59a55de0f890cc" + integrity sha512-cYqAspUJoY1J84kbDbPbrIcfaoID5Wb+BUrcWV7x8EFPXTn/KBLgc4/KBxWkdxk8O9V96/bXBDSLlalqLJCmJw== + dependencies: + "@types/debug" "^4.1.7" + "@types/fs-extra" "^9.0.13" + "@types/hash-sum" "^1.0.0" + "@vuepress/shared" "2.0.0-beta.53" + chalk "^5.1.2" + debug "^4.3.4" + fs-extra "^10.1.0" + globby "^13.1.2" + hash-sum "^2.0.0" + ora "^6.1.2" + upath "^2.0.1" + +"@vueuse/core@^9.3.1", "@vueuse/core@^9.5.0", "@vueuse/core@^9.6.0": + version "9.6.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-9.6.0.tgz#de1d4730849cdbe28a9ebcf6cad167a700919603" + integrity sha512-qGUcjKQXHgN+jqXEgpeZGoxdCbIDCdVPz3QiF1uyecVGbMuM63o96I1GjYx5zskKgRI0FKSNsVWM7rwrRMTf6A== dependencies: - "@types/markdown-it" "^10.0.0" - "@types/webpack-dev-server" "^3" - webpack-chain "^6.0.0" - -"@waline/client@^1.6.0": - version "1.6.0" - resolved "https://registry.npmjs.org/@waline/client/-/client-1.6.0.tgz" - integrity sha512-nVjNh4l0GiO1D//aJj/6N6oCgFikhRqs4Juc9sbT2g9w+FxeEYosOc5PMlyDvp8JXGGla8uFuzhD8em5o7QZ3g== - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + "@types/web-bluetooth" "^0.0.16" + "@vueuse/metadata" "9.6.0" + "@vueuse/shared" "9.6.0" + vue-demi "*" -abbrev@1: - version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +"@vueuse/metadata@9.6.0": + version "9.6.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-9.6.0.tgz#b0a73277538cebef5d477983f74fdd2aa21ce5f9" + integrity sha512-sIC8R+kWkIdpi5X2z2Gk8TRYzmczDwHRhEFfCu2P+XW2JdPoXrziqsGpDDsN7ykBx4ilwieS7JUIweVGhvZ93w== -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== +"@vueuse/shared@9.6.0": + version "9.6.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-9.6.0.tgz#ce2e0e8124c6bdb1e270fc213e334ccc71dcb951" + integrity sha512-/eDchxYYhkHnFyrb00t90UfjCx94kRHxc7J1GtBCqCG4HyPMX+krV9XJgVtWIsAMaxKVU4fC8NSUviG1JkwhUQ== dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + vue-demi "*" -agentkeepalive@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz" - integrity "sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8= sha512-TnB6ziK363p7lR8QpeLC8aMr8EGYBKZTpgzQLfqTs3bR0Oo5VbKdwKf8h0dSzsYrB7lSCgfJnMZKqShvlq5Oyg==" - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== +"@waline/client@^2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@waline/client/-/client-2.14.1.tgz#a191e7689dd1707b02e8f783ed52e79644585e57" + integrity sha512-JnZidLAbuv9yf/+6LvLyv0t6dMHniIuFImgt4npctdCtG6cWuwIr8chhnJg4egiO5iVjlYbZeZYYvhwtjtPxwQ== dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" + "@vueuse/core" "^9.5.0" + autosize "^5.0.1" + marked "^4.2.2" + vue "^3.2.45" ajv@^8.6.0: version "8.8.0" @@ -2270,97 +1704,37 @@ ajv@^8.6.0: require-from-string "^2.0.2" uri-js "^4.2.2" -algoliasearch@^3.24.5: - version "3.35.1" - resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-3.35.1.tgz" - integrity sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ== - dependencies: - agentkeepalive "^2.2.0" - debug "^2.6.9" - envify "^4.0.0" - es6-promise "^4.1.0" - events "^1.1.0" - foreach "^2.0.5" - global "^4.3.2" - inherits "^2.0.1" - isarray "^2.0.1" - load-script "^1.0.0" - object-keys "^1.0.11" - querystring-es3 "^0.2.1" - reduce "^1.0.1" - semver "^5.1.0" - tunnel-agent "^0.6.0" - algoliasearch@^4.0.0: - version "4.11.0" - resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.11.0.tgz" - integrity sha512-IXRj8kAP2WrMmj+eoPqPc6P7Ncq1yZkFiyDrjTBObV1ADNL8Z/KdZ+dWC5MmYcBLAbcB/mMCpak5N/D1UIZvsA== - dependencies: - "@algolia/cache-browser-local-storage" "4.11.0" - "@algolia/cache-common" "4.11.0" - "@algolia/cache-in-memory" "4.11.0" - "@algolia/client-account" "4.11.0" - "@algolia/client-analytics" "4.11.0" - "@algolia/client-common" "4.11.0" - "@algolia/client-personalization" "4.11.0" - "@algolia/client-search" "4.11.0" - "@algolia/logger-common" "4.11.0" - "@algolia/logger-console" "4.11.0" - "@algolia/requester-browser-xhr" "4.11.0" - "@algolia/requester-common" "4.11.0" - "@algolia/requester-node-http" "4.11.0" - "@algolia/transporter" "4.11.0" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" - integrity "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==" - -ansi-align@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^4.1.0: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-html-community@0.0.8: - version "0.0.8" - resolved "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - integrity "sha1-w7M6te42DYbg5ijwRorn7yfWVN8= sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + version "4.14.2" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.14.2.tgz#63f142583bfc3a9bd3cd4a1b098bf6fe58e56f6c" + integrity sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg== + dependencies: + "@algolia/cache-browser-local-storage" "4.14.2" + "@algolia/cache-common" "4.14.2" + "@algolia/cache-in-memory" "4.14.2" + "@algolia/client-account" "4.14.2" + "@algolia/client-analytics" "4.14.2" + "@algolia/client-common" "4.14.2" + "@algolia/client-personalization" "4.14.2" + "@algolia/client-search" "4.14.2" + "@algolia/logger-common" "4.14.2" + "@algolia/logger-console" "4.14.2" + "@algolia/requester-browser-xhr" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/requester-node-http" "4.14.2" + "@algolia/transporter" "4.14.2" + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" - integrity "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -2374,15 +1748,7 @@ ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.0, anymatch@~3.1.2: +anymatch@~3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -2390,11 +1756,6 @@ anymatch@^3.0.0, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - arg@^5.0.0: version "5.0.1" resolved "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz" @@ -2407,186 +1768,37 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" - integrity "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==" - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" - integrity "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - integrity "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^1.0.1, array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz" - integrity "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" - integrity "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" - integrity "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==" - -ascli@~1: - version "1.0.1" - resolved "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz" - integrity "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw= sha512-JGQaNxpaCJz9Bd1JvVaFIHuWn9S+l3xhN17R0V/vmUDiGE0QngNMXhjlqpwqV+91plWz9Fg+Lt28Lj7p5vjs8A==" - dependencies: - colour "~0.7.1" - optjs "~3.2.2" - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - integrity "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" - integrity "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==" - -assignment@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/assignment/-/assignment-2.0.0.tgz" - integrity "sha1-/9F7Ib9dayLnd7mJaBqBVFaj3T4= sha512-naMULXjtgCs9SVUEtyvJNt68aF18em7/W+dhbR59kbz9cXWPEvUkCun2tqlgqRPSqZaKPpqLc5ZnwL8jVmJRvw==" - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== async@0.9.x: version "0.9.2" resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz" integrity "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw==" -async@^2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity "sha1-x57Zf380y48robyXkLzDZkdLS3k= sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - at-least-node@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autocomplete.js@0.36.0: - version "0.36.0" - resolved "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.36.0.tgz" - integrity sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q== +autoprefixer@^10.4.12: + version "10.4.13" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8" + integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg== dependencies: - immediate "^3.2.3" - -autoprefixer@^9.5.1: - version "9.8.8" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" + browserslist "^4.21.4" + caniuse-lite "^1.0.30001426" + fraction.js "^4.2.0" normalize-range "^0.1.2" - num2fraction "^1.2.2" - picocolors "^0.2.1" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" - integrity "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - -babel-extract-comments@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz" - integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== - dependencies: - babylon "^6.18.0" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" -babel-loader@^8.0.4: - version "8.2.3" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz" - integrity sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^1.4.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" +autosize@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/autosize/-/autosize-5.0.2.tgz#0a327c200dda4a1742817e94dcb8af5700685689" + integrity sha512-FPVt5ynkqUAA9gcMZnJHka1XfQgr1WNd/yRfIjmj5WGmjua+u5Hl9hn8M2nU5CNy2bEIcj1ZUwXq7IOHsfZG9w== babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" @@ -2619,42 +1831,6 @@ babel-plugin-polyfill-regenerator@^0.2.3: dependencies: "@babel/helper-define-polyfill-provider" "^0.2.4" -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz" - integrity sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w== - -babel-plugin-transform-object-rest-spread@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz" - integrity sha512-ocgA9VJvyxwt+qJB0ncxV8kb/CjfTcECUY4tQ5VT7nP6Aohzobm8CDFaQ5FHdvZQzLmf0sgDxB8iRXZXxwZcyA== - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" - integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -balajs@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/balajs/-/balajs-1.0.10.tgz" - integrity sha512-dcpjzNfZ9W+RzCz4YpESesw77Qx+U2dZiP+hwSlobcHRrnbEBHFWuxipXGZsMDJbD6SG1hC2S0OHHVkU+JY+iw== - -balalaika@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/balalaika/-/balalaika-1.0.1.tgz" - integrity "sha1-BmQUeiV+oq1K5mRRcR5SZoMNUdk= sha512-Dm34IdrZodZhRMCItzQNk2l4xjND/A9vbgd5YZgOXhEeNKEeosL7AvP9nJALQjvaBvLUc5ngwqT89FYGrG9gGQ==" - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" @@ -2665,134 +1841,39 @@ balloon-css@^1.2.0: resolved "https://registry.npmjs.org/balloon-css/-/balloon-css-1.2.0.tgz" integrity sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A== -base64-arraybuffer@^0.1.5: - version "0.1.5" - resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz" - integrity "sha1-c5JncZI7Whl0etZmqlzUv5xunOg= sha512-437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g==" - -base64-js@^1.0.2: +base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base@^0.11.1: - version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" - integrity "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" - integrity "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==" - dependencies: - tweetnacl "^0.14.3" - -bcryptjs@^2.4.3: - version "2.4.3" - resolved "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz" - integrity "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +bcrypt-ts@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bcrypt-ts/-/bcrypt-ts-3.0.0.tgz#c72bd2f76240e2dbaaccc271e07651220325cdb3" + integrity sha512-z4pqdPaAuuvBsHCwb77bisxT9qo5hRSbn78FXNhhTywHabqMzcIosDxjnKUrkPQbMyz2curUT+fJRith57rIvg== binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.1.1, bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz" - integrity "sha1-jokKGD2O6aI5OzhExpGkK897yfU= sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==" - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - integrity "sha1-aN/1++YMUes3cl6p4+0xDcwed24= sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" +bl@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" + integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" +body-scroll-lock@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz#c1392d9217ed2c3e237fee1e910f6cdd80b7aaec" + integrity sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg== + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.11" @@ -2802,96 +1883,14 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" - integrity "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.17.6: +browserslist@^4.17.5, browserslist@^4.17.6: version "4.18.0" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.18.0.tgz" integrity sha512-ER2M0g5iAR84fS/zjBDqEgU6iO5fS9JI2EkHr5zxDxYEFk3LjhU9Vpp/INb6RMQphxko7PDV1FH38H/qVP5yCA== @@ -2902,132 +1901,38 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4 node-releases "^2.0.1" picocolors "^1.0.0" +browserslist@^4.21.4: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + dependencies: + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" + node-releases "^2.0.6" + update-browserslist-db "^1.0.9" + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-json@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz" - integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" - integrity "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" + base64-js "^1.3.1" + ieee754 "^1.2.1" builtin-modules@^3.1.0: version "3.2.0" resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz" integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" - integrity "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==" - -bundle-require@2.1.8: - version "2.1.8" - resolved "https://registry.npmjs.org/bundle-require/-/bundle-require-2.1.8.tgz" - integrity sha512-oOEg3A0hy/YzvNWNowtKD0pmhZKseOFweCbgyMqTIih4gRY1nJWsvrOCT27L9NbIyL5jMjTFrAUpGxxpW68Puw== - -bytebuffer@~5: - version "5.0.1" - resolved "https://registry.npmjs.org/bytebuffer/-/bytebuffer-5.0.1.tgz" - integrity "sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0= sha512-IuzSdmADppkZ6DlpycMkm8l9zeEq16fWtLvunEwFiYciR/BHo4E8/xs5piFquG+Za8OWmMqHF8zuRviz2LHvRQ==" - dependencies: - long "~3" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" - integrity "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cac@^6.5.6, cac@^6.7.12: - version "6.7.12" - resolved "https://registry.npmjs.org/cac/-/cac-6.7.12.tgz" - integrity sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA== - -cacache@^12.0.2, cacache@^12.0.3: - version "12.0.4" - resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cache-loader@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/cache-loader/-/cache-loader-3.0.1.tgz" - integrity sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw== - dependencies: - buffer-json "^2.0.0" - find-cache-dir "^2.1.0" - loader-utils "^1.2.3" - mkdirp "^0.5.1" - neo-async "^2.6.1" - schema-utils "^1.0.0" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" @@ -3037,85 +1942,17 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz" - integrity "sha1-JtII6onje1y95gJQoV8DHBak1ms= sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" - integrity "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==" - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" - integrity "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==" - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" - integrity "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==" - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz" - integrity "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==" - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" - integrity "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==" - -camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0: - version "6.2.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz" - integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001280: +caniuse-lite@^1.0.30001280: version "1.0.30001280" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001280.tgz" integrity sha512-kFXwYvHe5rix25uwueBxC569o53J6TpnGu0BEEn+6Lhl2vsnAumRFWEBhDft1fwyo6m1r4i+RqA4+163FpeFcA== -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" - integrity "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" - integrity "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" +caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: + version "1.0.30001436" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz#22d7cbdbbbb60cdc4ca1030ccd6dea9f5de4848b" + integrity sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg== -chalk@^2.0.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1: +chalk@^2.0.0: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -3124,15 +1961,7 @@ chalk@^2.0.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.2, chalk@^4.1.2: +chalk@^4.0.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3140,34 +1969,44 @@ chalk@^4.0.2, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" - integrity "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==" +chalk@^5.0.0, chalk@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.1.2.tgz#d957f370038b75ac572471e83be4c5ca9f8e8c45" + integrity sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ== + +chart.js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.0.1.tgz#93d5d50ac222a5b3b6ac7488e82e1553ac031592" + integrity sha512-5/8/9eBivwBZK81mKvmIwTb2Pmw4D/5h1RK9fBWZLLZ8mCJ+kfYNmV9rMrGoa5Hgy2/wVDBMLSUDudul2/9ihA== -chokidar@^2.0.3, chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== +cheerio-select@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.6.0.tgz#489f36604112c722afa147dedd0d4609c09e1696" + integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" + css-select "^4.3.0" + css-what "^6.0.1" + domelementtype "^2.2.0" + domhandler "^4.3.1" + domutils "^2.8.0" + +cheerio@1.0.0-rc.10: + version "1.0.0-rc.10" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" + integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== + dependencies: + cheerio-select "^1.5.0" + dom-serializer "^1.3.2" + domhandler "^4.2.0" + htmlparser2 "^6.1.0" + parse5 "^6.0.1" + parse5-htmlparser2-tree-adapter "^6.0.1" + tslib "^2.2.0" -chokidar@^3.4.1: - version "3.5.2" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -3179,104 +2018,24 @@ chokidar@^3.4.1: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.1.1: - version "3.2.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@4.2.x: - version "4.2.4" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz" - integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== - dependencies: - source-map "~0.6.0" - -cli-boxes@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -cliui@^3.0.3: - version "3.2.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" - integrity "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" - integrity "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==" - dependencies: - mimic-response "^1.0.0" - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" + restore-cursor "^4.0.0" -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" - integrity "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==" +cli-spinners@^2.6.1: + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" - integrity "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -color-convert@^1.9.0, color-convert@^1.9.3: +color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -3290,7 +2049,7 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3, color-name@^1.0.0: +color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" @@ -3300,35 +2059,7 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz" - integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.2.1" - resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colour@~0.7.1: - version "0.7.1" - resolved "https://registry.npmjs.org/colour/-/colour-0.7.1.tgz" - integrity "sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g= sha512-Rel466v0EnmKPcsxHo91L4kgPs/6XF7Pu2LJNszq9lXYwi5CFWEeIiRaTX5ym7PPMdj4udDHkLSVC1//JVkZQg==" - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@2, commander@2.17.x: +commander@2: version "2.17.1" resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== @@ -3338,121 +2069,40 @@ commander@7: resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^2.20.0, commander@^2.20.3: +commander@9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.2.0.tgz#6e21014b2ed90d8b7c9647230d8b7a94a4a419a9" + integrity sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w== + +commander@^2.20.0: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + commander@^8.0.0: version "8.3.0" resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - common-tags@^1.8.0: version "1.8.1" resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.1.tgz" integrity sha512-uOZd85rJqrdEIE/JjhW5YAeatX8iqjjvVzIyfx7JL7G5r9Tep6YpYT9gEJWhWpVyDQEyzukWd6p2qULpJ8tmBw== -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" - integrity "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" - -component-emitter@^1.2.0, component-emitter@^1.2.1, component-emitter@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -connect-history-api-fallback@^1.5.0, connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -consola@^2.6.0: - version "2.15.3" - resolved "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz" - integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -consolidate@^0.15.1: - version "0.15.1" - resolved "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz" - integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== - dependencies: - bluebird "^3.1.1" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" - integrity "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==" - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== convert-source-map@^1.7.0: version "1.8.0" @@ -3461,135 +2111,27 @@ convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - integrity "sha1-4wOogrNCzD7oylE6eZmXNNqzriw= sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" +core-js-compat@^3.18.0, core-js-compat@^3.19.0: + version "3.19.1" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.1.tgz" + integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== + dependencies: + browserslist "^4.17.6" + semver "7.0.0" -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -cookiejar@^2.1.0, cookiejar@^2.1.2: - version "2.1.3" - resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz" - integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" - integrity "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" - -copy-webpack-plugin@^5.0.2: - version "5.1.2" - resolved "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz" - integrity sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ== - dependencies: - cacache "^12.0.3" - find-cache-dir "^2.1.0" - glob-parent "^3.1.0" - globby "^7.1.1" - is-glob "^4.0.1" - loader-utils "^1.2.3" - minimatch "^3.0.4" - normalize-path "^3.0.0" - p-limit "^2.2.1" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - webpack-log "^2.0.0" - -core-js-compat@^3.18.0, core-js-compat@^3.19.0, core-js-compat@^3.6.5: - version "3.19.1" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.1.tgz" - integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== - dependencies: - browserslist "^4.17.6" - semver "7.0.0" - -core-js@^2.4.0: - version "2.6.12" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-js@^3.6.4, core-js@^3.6.5: - version "3.19.1" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.19.1.tgz" - integrity sha512-Tnc7E9iKd/b/ff7GFbhwPVzJzPztGrChB8X8GLqoYGdEOG8IpLnK1xPyo3ZoO3HsK6TodJS58VGPOxA+hLHQMg== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - integrity "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - -core-util-is@~1.0.0: +cose-base@^1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a" + integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" + layout-base "^1.0.0" -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== +cose-base@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.1.0.tgz#89b2d4a59d7bd0cde3138a4689825f3e8a5abd6a" + integrity sha512-HTMm07dhxq1dIPGWwpiVrIk9n+DH7KYmqWA786mLe8jDS+1ZjGtJGIIsJVKoseZXS6/FxiUWCJ2B7XzqUCuhPw== dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" + layout-base "^2.0.0" cross-spawn@^7.0.3: version "7.0.3" @@ -3600,226 +2142,53 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" - integrity "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - crypto-random-string@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz" - integrity "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==" - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-loader@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz" - integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w== - dependencies: - camelcase "^5.2.0" - icss-utils "^4.1.0" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.14" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^2.0.6" - postcss-modules-scope "^2.1.0" - postcss-modules-values "^2.0.0" - postcss-value-parser "^3.3.0" - schema-utils "^1.0.0" - -css-parse@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz" - integrity "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q= sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA==" - dependencies: - css "^2.0.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-select@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz" - integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== +css-select@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -css-what@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz" - integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" -css@^2.0.0: - version "2.2.4" - resolved "https://registry.npmjs.org/css/-/css-2.2.4.tgz" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssfilter@0.0.10: - version "0.0.10" - resolved "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz" - integrity "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" - -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz" - integrity "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==" +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz" - integrity "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==" +csstype@^2.6.8: + version "2.6.21" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" + integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== +cytoscape-cose-bilkent@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" + integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + cose-base "^1.0.0" -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== +cytoscape-fcose@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.1.0.tgz#04c3093776ea6b71787009de641607db7d4edf55" + integrity sha512-Q3apPl66jf8/2sMsrCjNP247nbDkyIPjA9g5iPMMWNLZgP3/mn9aryF7EFY/oRPEpv7bKJ4jYmCoU5r5/qAc1Q== dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" + cose-base "^2.0.0" -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== +cytoscape@^3.23.0: + version "3.23.0" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.23.0.tgz#054ee05a6d0aa3b4f139382bbf2f4e5226df3c6d" + integrity sha512-gRZqJj/1kiAVPkrVFvz/GccxsXhF3Qwpptl32gKKypO4IlqnKBjTOu+HbXtEggSGzC5KCaHp3/F7GgENrtsFkA== dependencies: - css-tree "^1.1.2" - -csstype@^3.0.2: - version "3.0.9" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz" - integrity sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw== - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz" - integrity "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==" + heap "^0.2.6" + lodash "^4.17.21" d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: version "1.2.4" @@ -4331,41 +2700,10 @@ dagre@^0.8.5: graphlib "^2.1.8" lodash "^4.17.15" -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" - integrity "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==" - dependencies: - assert-plus "^1.0.0" - -date-fns@^1.29.0: - version "1.30.1" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz" - integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== - -dayjs@^1.10.3, dayjs@^1.11.0: - version "1.11.0" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz" - integrity sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug== - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" - integrity "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" - -debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" +dayjs@^1.11.6: + version "1.11.7" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" + integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== debug@^4.1.0, debug@^4.1.1: version "4.3.2" @@ -4374,112 +2712,32 @@ debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -decamelize@^1.1.1, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - integrity "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" - integrity "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==" - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" - integrity "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==" - dependencies: - mimic-response "^1.0.0" - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== +debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deepmerge@^1.5.2: - version "1.5.2" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz" - integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== + ms "2.1.2" deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + clone "^1.0.2" -define-properties@^1.1.2, define-properties@^1.1.3: +define-properties@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" - integrity "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" - integrity "sha1-dp66rz9KY6rTr56NMEybvnm/sOY= sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/del/-/del-4.1.1.tgz" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - delaunator@5: version "5.0.0" resolved "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz" @@ -4487,190 +2745,62 @@ delaunator@5: dependencies: robust-predicates "^3.0.0" -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity "sha1-3zrhmayt+31ECqrgsp4icrJOxhk= sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - integrity "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^2.0.0, dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" - integrity "sha1-s55/HabrCnW6nBcySzR1PEfgZU0= sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz" - integrity "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==" - dependencies: - buffer-indexof "^1.0.0" - -docsearch.js@^2.5.2, docsearch.js@^2.6.3: - version "2.6.3" - resolved "https://registry.npmjs.org/docsearch.js/-/docsearch.js-2.6.3.tgz" - integrity sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A== - dependencies: - algoliasearch "^3.24.5" - autocomplete.js "0.36.0" - hogan.js "^3.0.2" - request "^2.87.0" - stack-utils "^1.0.1" - to-factory "^1.0.0" - zepto "^1.2.0" - -dom-converter@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" + path-type "^4.0.0" -dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== +dom-serializer@^1.0.1, dom-serializer@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" domhandler "^4.2.0" entities "^2.0.0" -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1: - version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domhandler@^4.0.0, domhandler@^4.2.0: - version "4.2.2" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz" - integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== +domhandler@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" + integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== dependencies: - domelementtype "^2.2.0" - -dompurify@2.3.5: - version "2.3.5" - resolved "https://registry.npmjs.org/dompurify/-/dompurify-2.3.5.tgz" - integrity sha512-kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ== + domelementtype "^2.0.1" -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.2.0" -domutils@^2.5.2, domutils@^2.6.0: +dompurify@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.0.tgz#c9c88390f024c2823332615c9e20a453cf3825dd" + integrity sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA== + +domutils@^2.4.2, domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" domelementtype "^2.2.0" domhandler "^4.2.0" -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" - integrity "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==" - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" - integrity "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==" +echarts@^5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.4.0.tgz#a9a8e5367293a397408d3bf3e2638b869249ce04" + integrity sha512-uPsO9VRUIKAdFOoH3B0aNg7NRVdN7aM39/OjovjO9MwmWsAkfGyeXJhK+dbRi51iDrQWliXV60/XwLA7kg3z0w== dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - integrity "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + tslib "2.3.0" + zrender "5.4.0" ejs@^3.1.6: version "3.1.6" @@ -4684,103 +2814,27 @@ electron-to-chromium@^1.3.896: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.896.tgz" integrity sha512-NcGkBVXePiuUrPLV8IxP43n1EOtdg+dudVjrfVEUd/bOqpQUFZ2diL5PPYzbgEhZFEltdXV3AcyKwGnEQ5lhMA== -element-closest@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/element-closest/-/element-closest-3.0.2.tgz" - integrity sha512-JxKQiJKX0Zr5Q2/bCaTx8P+UbfyMET1OQd61qu5xQFeWr1km3fGaxelSJtnfT27XQ5Uoztn2yIyeamAc/VX13g== - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz" - integrity "sha1-TapNnbAPmBmIDHn6RXrlsJof04k= sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==" - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - integrity "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" +electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== entities@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@~1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -envify@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz" - integrity sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw== - dependencies: - esprima "^4.0.0" - through "~2.3.4" +entities@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== -envinfo@^7.2.0: +envinfo@^7.8.1: version "7.8.1" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.2, es-abstract@^1.19.1: +es-abstract@^1.19.1: version "1.19.1" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== @@ -4815,320 +2869,193 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es6-promise@4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.3.tgz" - integrity sha512-vLf5iali3jKqlJoo6SryDwe3nxCmiueNjbjLWDIpNbAcKnQXAsAdZk+pM17nSYp3AQMbTmAQVCQSeDLfA87SNA== - -es6-promise@^4.1.0: - version "4.2.8" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -esbuild-android-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.7.tgz#8c78cbb617f9f216abfb5a84cca453b51421a1b6" - integrity sha512-9/Q1NC4JErvsXzJKti0NHt+vzKjZOgPIjX/e6kkuCzgfT/GcO3FVBcGIv4HeJG7oMznE6KyKhvLrFgt7CdU2/w== - -esbuild-darwin-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.7.tgz#7424bdb64c104556d36b7429af79ab51415ab8f4" - integrity sha512-Z9X+3TT/Xj+JiZTVlwHj2P+8GoiSmUnGVz0YZTSt8WTbW3UKw5Pw2ucuJ8VzbD2FPy0jbIKJkko/6CMTQchShQ== - -esbuild-darwin-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.7.tgz" - integrity sha512-68e7COhmwIiLXBEyxUxZSSU0akgv8t3e50e2QOtKdBUE0F6KIRISzFntLe2rYlNqSsjGWsIO6CCc9tQxijjSkw== - -esbuild-freebsd-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.7.tgz#e7281e50522e724c4da502504dcd75be0db46c94" - integrity sha512-76zy5jAjPiXX/S3UvRgG85Bb0wy0zv/J2lel3KtHi4V7GUTBfhNUPt0E5bpSXJ6yMT7iThhnA5rOn+IJiUcslQ== - -esbuild-freebsd-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.7.tgz#31e513098efd181d76a3ba3ea285836d37f018a3" - integrity sha512-lSlYNLiqyzd7qCN5CEOmLxn7MhnGHPcu5KuUYOG1i+t5A6q7LgBmfYC9ZHJBoYyow3u4CNu79AWHbvVLpE/VQQ== - -esbuild-linux-32@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.7.tgz#82cf96accbf55d3007c3338dc3b3144efa9ae108" - integrity sha512-Vk28u409wVOXqTaT6ek0TnfQG4Ty1aWWfiysIaIRERkNLhzLhUf4i+qJBN8mMuGTYOkE40F0Wkbp6m+IidOp2A== - -esbuild-linux-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.7.tgz#67bdfe23a6ca918a0bb8e9558a3ee0fdf98c0bc0" - integrity sha512-+Lvz6x+8OkRk3K2RtZwO+0a92jy9si9cUea5Zoru4yJ/6EQm9ENX5seZE0X9DTwk1dxJbjmLsJsd3IoowyzgVg== - -esbuild-linux-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.7.tgz#f79c69ff0c176559c418de8e59aa3cf388fff992" - integrity sha512-kJd5beWSqteSAW086qzCEsH6uwpi7QRIpzYWHzEYwKKu9DiG1TwIBegQJmLpPsLp4v5RAFjea0JAmAtpGtRpqg== - -esbuild-linux-arm@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.7.tgz#3d665b35e1c27dbe1c9deb8bf956d7d1f191a21b" - integrity sha512-OzpXEBogbYdcBqE4uKynuSn5YSetCvK03Qv1HcOY1VN6HmReuatjJ21dCH+YPHSpMEF0afVCnNfffvsGEkxGJQ== - -esbuild-linux-mips64le@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.7.tgz#226114a0cc6649ba0ffd3428118a8f622872f16d" - integrity sha512-mFWpnDhZJmj/h7pxqn1GGDsKwRfqtV7fx6kTF5pr4PfXe8pIaTERpwcKkoCwZUkWAOmUEjMIUAvFM72A6hMZnA== - -esbuild-linux-ppc64le@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.7.tgz#5c67ae56517f2644d567b2ca5ecb97f9520cfc49" - integrity sha512-wM7f4M0bsQXfDL4JbbYD0wsr8cC8KaQ3RPWc/fV27KdErPW7YsqshZZSjDV0kbhzwpNNdhLItfbaRT8OE8OaKA== - -esbuild-netbsd-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.7.tgz#69dc0469ea089013956d8c6aa71c9e7fc25fc567" - integrity sha512-J/afS7woKyzGgAL5FlgvMyqgt5wQ597lgsT+xc2yJ9/7BIyezeXutXqfh05vszy2k3kSvhLesugsxIA71WsqBw== - -esbuild-openbsd-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.7.tgz#3a9d04ecf820708e2e5b7d26fa7332e3f19f6b6c" - integrity sha512-7CcxgdlCD+zAPyveKoznbgr3i0Wnh0L8BDGRCjE/5UGkm5P/NQko51tuIDaYof8zbmXjjl0OIt9lSo4W7I8mrw== - -esbuild-sunos-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.7.tgz#7c33a682f0fd9565cae7df165d0e8736b7b62623" - integrity sha512-GKCafP2j/KUljVC3nesw1wLFSZktb2FGCmoT1+730zIF5O6hNroo0bSEofm6ZK5mNPnLiSaiLyRB9YFgtkd5Xg== - -esbuild-windows-32@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.7.tgz#24ec706a5f25b4499048f56146bcff0ed3839dce" - integrity sha512-5I1GeL/gZoUUdTPA0ws54bpYdtyeA2t6MNISalsHpY269zK8Jia/AXB3ta/KcDHv2SvNwabpImeIPXC/k0YW6A== - -esbuild-windows-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.7.tgz#dd6d5b5bace93cd7a9174d31fbd727ba21885abf" - integrity sha512-CIGKCFpQOSlYsLMbxt8JjxxvVw9MlF1Rz2ABLVfFyHUF5OeqHD5fPhGrCVNaVrhO8Xrm+yFmtjcZudUGr5/WYQ== - -esbuild-windows-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.7.tgz#ecfd9ac289606f26760c4f737caaeeadfff3cfe3" - integrity sha512-eOs1eSivOqN7cFiRIukEruWhaCf75V0N8P0zP7dh44LIhLl8y6/z++vv9qQVbkBm5/D7M7LfCfCTmt1f1wHOCw== - -esbuild@0.14.7: - version "0.14.7" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.7.tgz" - integrity sha512-+u/msd6iu+HvfysUPkZ9VHm83LImmSNnecYPfFI01pQ7TTcsFR+V0BkybZX7mPtIaI7LCrse6YRj+v3eraJSgw== +esbuild-android-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" + integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== + +esbuild-android-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" + integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== + +esbuild-darwin-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" + integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== + +esbuild-darwin-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" + integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== + +esbuild-freebsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" + integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== + +esbuild-freebsd-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" + integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== + +esbuild-linux-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" + integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== + +esbuild-linux-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" + integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== + +esbuild-linux-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" + integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== + +esbuild-linux-arm@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" + integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== + +esbuild-linux-mips64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" + integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== + +esbuild-linux-ppc64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" + integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== + +esbuild-linux-riscv64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" + integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== + +esbuild-linux-s390x@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" + integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== + +esbuild-netbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" + integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== + +esbuild-openbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" + integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== + +esbuild-sunos-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" + integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== + +esbuild-windows-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" + integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== + +esbuild-windows-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" + integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== + +esbuild-windows-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" + integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== + +esbuild@^0.15.12, esbuild@^0.15.9: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" + integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== optionalDependencies: - esbuild-android-arm64 "0.14.7" - esbuild-darwin-64 "0.14.7" - esbuild-darwin-arm64 "0.14.7" - esbuild-freebsd-64 "0.14.7" - esbuild-freebsd-arm64 "0.14.7" - esbuild-linux-32 "0.14.7" - esbuild-linux-64 "0.14.7" - esbuild-linux-arm "0.14.7" - esbuild-linux-arm64 "0.14.7" - esbuild-linux-mips64le "0.14.7" - esbuild-linux-ppc64le "0.14.7" - esbuild-netbsd-64 "0.14.7" - esbuild-openbsd-64 "0.14.7" - esbuild-sunos-64 "0.14.7" - esbuild-windows-32 "0.14.7" - esbuild-windows-64 "0.14.7" - esbuild-windows-arm64 "0.14.7" + "@esbuild/android-arm" "0.15.18" + "@esbuild/linux-loong64" "0.15.18" + esbuild-android-64 "0.15.18" + esbuild-android-arm64 "0.15.18" + esbuild-darwin-64 "0.15.18" + esbuild-darwin-arm64 "0.15.18" + esbuild-freebsd-64 "0.15.18" + esbuild-freebsd-arm64 "0.15.18" + esbuild-linux-32 "0.15.18" + esbuild-linux-64 "0.15.18" + esbuild-linux-arm "0.15.18" + esbuild-linux-arm64 "0.15.18" + esbuild-linux-mips64le "0.15.18" + esbuild-linux-ppc64le "0.15.18" + esbuild-linux-riscv64 "0.15.18" + esbuild-linux-s390x "0.15.18" + esbuild-netbsd-64 "0.15.18" + esbuild-openbsd-64 "0.15.18" + esbuild-sunos-64 "0.15.18" + esbuild-windows-32 "0.15.18" + esbuild-windows-64 "0.15.18" + esbuild-windows-arm64 "0.15.18" escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-html@^1.0.3, escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" +escape-goat@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-3.0.0.tgz#e8b5fb658553fe8a3c4959c316c6ebb8c842b19c" + integrity sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw== -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" +esm@^3.2.25: + version "3.2.25" + resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" + integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== esprima@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esrecurse@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - estree-walker@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - integrity "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - eve-raphael@0.5.0: version "0.5.0" resolved "https://registry.npmjs.org/eve-raphael/-/eve-raphael-0.5.0.tgz" integrity "sha1-F8dUt5K+7z+maE15z1pHxjxM2jA= sha512-jrxnPsCGqng1UZuEp9DecX/AuSyAszATSjf4oEcRxvfxa1Oux4KkIPKBAAWWnpdwfARtr+Q0o9aPYWjsROD7ug==" -event-target-shim@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -eventemitter3@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz" - integrity "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo= sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==" - -eventemitter3@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz" - integrity "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==" - -events@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -eventsource@^1.0.7: - version "1.1.0" - resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz" - integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== +execa@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== dependencies: cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" - integrity "sha1-t3c14xXOMPa27/D4OwQVGiJEliI= sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -express@^4.17.1: - version "4.17.1" - resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" extend-shallow@^2.0.1: version "2.0.1" @@ -5137,104 +3064,43 @@ extend-shallow@^2.0.1: dependencies: is-extendable "^0.1.0" -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" - integrity "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0, extsprintf@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" - integrity "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" +fast-clone@^1.5.13: + version "1.5.13" + resolved "https://registry.yarnpkg.com/fast-clone/-/fast-clone-1.5.13.tgz#7fe17542ae1c872e71bf80d177d00c11f51c2ea7" + integrity sha512-0ez7coyFBQFjZtId+RJqJ+EQs61w9xARfqjqK0AD9vIUkSxWD4HvPt80+5evebZ1tTnv1GYKrPTipx7kOW5ipA== fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^2.2.6: - version "2.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== +fast-glob@^3.2.11: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-safe-stringify@^2.0.7: - version "2.1.1" - resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -feed@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/feed/-/feed-2.0.4.tgz" - integrity sha512-sWatfulDP6d18qVaWcu34qmq9ml6UeN6nHSBJpNZ2muBqxjPAdT375whPYAHP+gqLfyabtYU5qf2Dv4nqtlp0w== - dependencies: - luxon "^1.3.3" - xml "^1.0.1" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz" - integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== +fastq@^1.6.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" + integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== dependencies: - loader-utils "^1.0.2" - schema-utils "^1.0.0" + reusify "^1.0.4" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== +fflate@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.7.4.tgz#61587e5d958fdabb5a9368a302c25363f4f69f50" + integrity sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw== filelist@^1.0.1: version "1.0.2" @@ -5243,16 +3109,6 @@ filelist@^1.0.1: dependencies: minimatch "^3.0.4" -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" - integrity "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" @@ -5260,57 +3116,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz" - integrity "sha1-mzERErxsYSehbgFsbF1/GeCAXFs= sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - flowchart.js@^1.17.1: version "1.17.1" resolved "https://registry.npmjs.org/flowchart.js/-/flowchart.js-1.17.1.tgz" @@ -5318,109 +3123,20 @@ flowchart.js@^1.17.1: dependencies: raphael "2.3.0" -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@^1.0.0, follow-redirects@^1.14.0: - version "1.14.5" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz" - integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" - integrity "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" - integrity "sha1-C+4AUBiusmDQo6865ljdATbsG5k= sha512-ZBbtRiapkZYLsqoPyZOR+uPfto0GRMNQN1GwzZtZt7iZvPPbDDQV0JF5Hx4o/QFQ5c0vyuoZ98T8RSBbopzWtA==" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - integrity "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" - -form-data@^2.3.1, form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -formidable@^1.2.0, formidable@^1.2.2: - version "1.2.6" - resolved "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz" - integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" - integrity "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==" - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - integrity "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" - integrity "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" +fraction.js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== -fs-extra@^10.0.1: - version "10.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz" - integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag== +fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" @@ -5431,29 +3147,11 @@ fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz" - integrity "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==" - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity "sha1-FQStJSMVjKpA20onh8sBQRmU6k8= sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - fsevents@~2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" @@ -5469,11 +3167,6 @@ gensync@^1.0.0-beta.2: resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" @@ -5488,21 +3181,7 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: +get-stream@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -5515,44 +3194,21 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" - integrity "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" - integrity "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==" - dependencies: - assert-plus "^1.0.0" - -github-markdown-css@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-3.0.1.tgz" - integrity sha512-9G5CIPsHoyk5ObDsb/H4KTi23J8KE1oDd4KYU51qwqeM+lKWAiO7abpSgCkyWswgmSKBiuE7/4f8xUz7f2qAiQ== - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" - integrity "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==" +giscus@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/giscus/-/giscus-1.2.4.tgz#6454e28fca1d385480fd9ab296371678b920bed1" + integrity sha512-c//t+vrEDNJ3jcM2TLz6UG7gZHyRDdYtj2PV0TaKk8eKMfq4OB8K1BFclaQ0UbUh6UN6hp89BNJTTcnibkiILA== dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" + lit "^2.4.1" -glob-parent@~5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz" - integrity "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==" - -glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.1.6: version "7.2.0" resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -5564,81 +3220,23 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz" - integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== - dependencies: - ini "1.3.7" - -global@^4.3.2: - version "4.4.0" - resolved "https://registry.npmjs.org/global/-/global-4.4.0.tgz" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - globals@^11.1.0: version "11.12.0" resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz" - integrity "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==" - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz" - integrity "sha1-+yzP+UAfhgCUXfral0QMypcrhoA= sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==" +globby@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" -globby@^9.2.0: - version "9.2.0" - resolved "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: +graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.8" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== @@ -5650,7 +3248,7 @@ graphlib@^2.1.8: dependencies: lodash "^4.17.15" -gray-matter@^4.0.1: +gray-matter@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz" integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== @@ -5660,31 +3258,6 @@ gray-matter@^4.0.1: section-matter "^1.0.0" strip-bom-string "^1.0.0" -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" - integrity "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - integrity "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==" - dependencies: - ansi-regex "^2.0.0" - has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" @@ -5712,159 +3285,36 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" - integrity "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" - integrity "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" - integrity "sha1-bWHeldkd/Km5oCCJrThL/49it3E= sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" - integrity "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.0, has@^1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz" - integrity "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/he/-/he-0.5.0.tgz" - integrity "sha1-LAX/rvkLaOhg8/0rVO9YCYknfuI= sha512-DoufbNNOFzwRPy8uecq+j+VCPQ+JyDelHTmSgygrA5TsR8Cbw4Qcir5sGtWiusB4BdT89nmlaVDhSJOqC/33vw==" - -he@1.2.x, he@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -highlight.js@^9.7.0: - version "9.18.5" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz" - integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - integrity "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== -hogan.js@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz" - integrity "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0= sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==" - dependencies: - mkdirp "0.3.0" - nopt "1.0.10" +heap@^0.2.6: + version "0.2.7" + resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" + integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" - integrity "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==" +htmlparser2@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" + integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ== dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz" - integrity "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==" - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz" - integrity "sha1-wc56MWjIxmFAM6S194d/OyJfnDg= sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==" - -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== - -html-minifier@^3.2.3: - version "3.5.21" - resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-tags@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz" - integrity "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==" - -html-tags@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz" - integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== + domelementtype "^2.0.1" + domhandler "^3.3.0" + domutils "^2.4.2" + entities "^2.0.0" htmlparser2@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== dependencies: domelementtype "^2.0.1" @@ -5872,92 +3322,12 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" - integrity "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" - -http-errors@1.7.2, http-errors@~1.7.2: - version "1.7.2" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy-middleware@^1.0.0: - version "1.3.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz" - integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== - dependencies: - "@types/http-proxy" "^1.17.5" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.17.0, http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" - integrity "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==" - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" - integrity "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== -iconv-lite@0.4, iconv-lite@0.4.24: +iconv-lite@0.4: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -5971,97 +3341,25 @@ iconv-lite@0.6: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz" - integrity "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==" - -icss-utils@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -idb@^6.1.4: - version "6.1.5" - resolved "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz" - integrity sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw== +idb@^7.0.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" + integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== -ieee754@^1.1.4: +ieee754@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" - integrity "sha1-xg7taebY/bazEEofy8ocGS3FtQE= sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==" - -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -ignore@^4.0.3: - version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz" - integrity "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==" - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" - integrity "sha1-2BNVwVYS04bGH53dOSLUMEgipUY= sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==" - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz" - integrity "sha1-M1238qev/VOqpHHUuAId7ja387E= sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==" - dependencies: - resolve-from "^3.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" - integrity "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity "sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" - integrity "sha1-8w9xbI4r00bHtn0985FVZqfAVgc= sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==" +ignore@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c" + integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== +immutable@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" + integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== inflight@^1.0.4: version "1.0.6" @@ -6071,42 +3369,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - integrity "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==" - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - integrity "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - -ini@1.3.7, ini@~1.3.0: - version "1.3.7" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - -insane@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/insane/-/insane-2.6.2.tgz" - integrity "sha1-wqtouz4AarRRVg0bRGkXMpwKgSA= sha512-BqEL1CJsjJi+/C/zKZxv31zs3r6zkLH5Nz1WMFb7UBX2KHY2yXDpbFTSEmNHzomBbGDysIfkTX55A0mQZ2CQiw==" - dependencies: - assignment "2.0.0" - he "0.5.0" - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" @@ -6121,68 +3388,6 @@ internal-slot@^1.0.3: resolved "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz" integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" - integrity "sha1-EEqOSqym09jNFXqO+L+rLXo//bY= sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==" - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz" - integrity "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==" - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz" - integrity "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= sha512-rBtCAQAJm8A110nbwn6YdveUnuZH3WrC36IwkRXxDnq53JvXA2NVQvB7IHyKomxK1MJ4VDNw3UtFDdXQ+AvLYA==" - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz" - integrity "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==" - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" - integrity "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" @@ -6190,13 +3395,6 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" - integrity "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==" - dependencies: - binary-extensions "^1.0.0" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -6212,35 +3410,11 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^1.1.5, is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz" - integrity "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==" - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - is-core-module@^2.2.0: version "2.8.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz" @@ -6248,19 +3422,12 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" - integrity "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==" +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" + has "^1.0.3" is-date-object@^1.0.1: version "1.0.5" @@ -6269,84 +3436,27 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" - integrity "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==" - -is-extendable@^0.1.0, is-extendable@^0.1.1: +is-extendable@^0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" integrity "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" - integrity "sha1-754xOG8DGn8NZDr4L95QxFfvAMs= sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - integrity "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" - integrity "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==" - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-installed-globally@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== is-module@^1.0.0: version "1.0.0" @@ -6358,11 +3468,6 @@ is-negative-zero@^2.0.1: resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - is-number-object@^1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" @@ -6370,13 +3475,6 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" - integrity "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==" - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" @@ -6387,53 +3485,7 @@ is-obj@^1.0.1: resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" integrity "sha1-PkcprB9f3gJc19g6iW2rn09n2w8= sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-path-inside@^3.0.1: - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" - integrity "sha1-caUMhCnfync8kqOQpKA7OfzVHT4= sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4, is-regex@^1.1.4: +is-regex@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -6446,31 +3498,21 @@ is-regexp@^1.0.0: resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" integrity "sha1-/S2INUXEa6xaYz57mgnof6LLUGk= sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==" -is-regexp@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz" - integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA== - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - is-shared-array-buffer@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" - integrity "sha1-EtSj3U5o4Lec6428hBc66A2RykQ= sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==" - is-stream@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" @@ -6485,10 +3527,10 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - integrity "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" +is-unicode-supported@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== is-weakref@^1.0.1: version "1.0.1" @@ -6497,53 +3539,11 @@ is-weakref@^1.0.1: dependencies: call-bind "^1.0.0" -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" - integrity "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" - integrity "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - integrity "sha1-TkMekrEalzFjaqH5yNHMvP2reN8= sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - integrity "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - jake@^10.6.1: version "10.8.4" resolved "https://registry.npmjs.org/jake/-/jake-10.8.4.tgz" @@ -6554,21 +3554,6 @@ jake@^10.6.1: filelist "^1.0.1" minimatch "^3.0.4" -javascript-state-machine@^2.3.5: - version "2.4.0" - resolved "https://registry.npmjs.org/javascript-state-machine/-/javascript-state-machine-2.4.0.tgz" - integrity "sha1-2L4x7DjySsGhgy8LZy/DzV95yW4= sha512-N5ebPfbgUPBQgu+Q3km/EAxFdG7sS9b+upP3917F/xvH+QES55ba9TfayJJqUQ1OdEuHqwqdadiyqYfalucBvw==" - -javascript-stringify@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz" - integrity "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM= sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ==" - -javascript-stringify@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz" - integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg== - jest-worker@^26.2.1: version "26.6.2" resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz" @@ -6591,11 +3576,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - integrity "sha1-peZUwuWi3rXyAdls77yoDA7y9RM= sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" @@ -6606,58 +3586,16 @@ jsesc@~0.5.0: resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" integrity "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" - integrity "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - json-schema-traverse@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" - integrity "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= sha512-a3xHnILGMtk+hDOqNwHzF6e2fNbiMrXZvxKQiEv2MlgQP+pjIOzqAmKYD2mDpXYE/44M7g+n9p2bKkYWDUcXCQ==" - json-schema@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - integrity "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" - integrity "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==" - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - json5@^2.1.2, json5@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" @@ -6665,13 +3603,6 @@ json5@^2.1.2, json5@^2.2.0: dependencies: minimist "^1.2.5" -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - integrity "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==" - optionalDependencies: - graceful-fs "^4.1.6" - jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" @@ -6681,340 +3612,117 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonp@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/jsonp/-/jsonp-0.2.1.tgz" - integrity "sha1-pltPoPEL2nGaBUQep7lMVfPhW64= sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw==" - dependencies: - debug "^2.1.3" - jsonpointer@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz" integrity sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg== -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" - integrity "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= sha512-4Dj8Rf+fQ+/Pn7C5qeEX02op1WfOss3PKTE9Nsop3Dx+6UPxlm1dr/og7o2cRa5hNN07CACr4NFzRLtj/rjWog==" +juice@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/juice/-/juice-8.1.0.tgz#4ea23362522fe06418229943237ee3751a4fca70" + integrity sha512-FLzurJrx5Iv1e7CfBSZH68dC04EEvXvvVvPYB7Vx1WAuhCp1ZPIMtqxc+WTWxVkpTIC2Ach/GAv0rQbtGf6YMA== dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" + cheerio "1.0.0-rc.10" + commander "^6.1.0" + mensch "^0.3.4" + slick "^1.12.2" + web-resource-inliner "^6.0.1" -katex@^0.15.3: - version "0.15.3" - resolved "https://registry.npmjs.org/katex/-/katex-0.15.3.tgz" - integrity sha512-Al6V7RJsmjklT9QItyHWGaQCt+NYTle1bZwB1e9MR/tLoIT1MXaHy9UpfGSB7eaqDgjjqqRxQOaQGrALCrEyBQ== +katex@^0.16.3: + version "0.16.3" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.3.tgz#29640560b8fa0403e45f3aa20da5fdbb6d2b83a8" + integrity sha512-3EykQddareoRmbtNiNEDgl3IGjryyrp2eg/25fHDEnlHymIDi33bptkMv6K4EOC2LZCybLW/ZkEo6Le+EM9pmA== dependencies: commander "^8.0.0" -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -khroma@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/khroma/-/khroma-1.4.1.tgz" - integrity sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q== - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" - integrity "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" - integrity "sha1-IIE989cSkosgc3hpGkUGb65y3Vc= sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== +khroma@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.0.0.tgz#7577de98aed9f36c7a474c4d453d94c0d6c6588b" + integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g== kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" - integrity "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==" - dependencies: - invert-kv "^1.0.0" +layout-base@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2" + integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== -leancloud-realtime-plugin-live-query@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/leancloud-realtime-plugin-live-query/-/leancloud-realtime-plugin-live-query-1.2.0.tgz" - integrity sha512-eJooIH8/FyUoozr3Eeby2DpDnmX39m1bfxfxlYPuojkio+i/DLwPD+aTHnRDH6QXJcT6tNTt85RcxVR/Txg98Q== - -leancloud-realtime@^5.0.0-alpha.3: - version "5.0.0-rc.7" - resolved "https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-rc.7.tgz" - integrity sha512-T5D12cvONg/eLlMKO+J31CdolM0ydgCnRpcTwWaCq1KrboROOvwgovKQpfeSKm4MxKNIio5gEKf41xAbE3K5dA== - dependencies: - "@babel/runtime" "^7.10.2" - "@leancloud/adapter-types" "^3.0.0" - "@leancloud/platform-adapters-browser" "^1.1.0" - "@leancloud/platform-adapters-node" "^1.1.0" - "@leancloud/platform-adapters-weapp" "^1.2.0" - base64-arraybuffer "^0.1.5" - debug "^3.1.0" - eventemitter3 "^3.0.0" - javascript-state-machine "^2.3.5" - lodash "^4.17.10" - promise-timeout "^1.3.0" - protobufjs "^5.0.1" - uuid "^3.0.0" - -leancloud-storage@^3.0.4: - version "3.15.0" - resolved "https://registry.npmjs.org/leancloud-storage/-/leancloud-storage-3.15.0.tgz" - integrity sha512-UbR6pLA0tVYPcY7AND0pey45iFsB2PkIo8Wz0DZ9BabKyqndA1ey2LKzYpFDGNh3ODrmT3fValVn9yY4bgf9Uw== - dependencies: - debug "^3.1.0" - es6-promise "4.2.3" - eventemitter3 "^2.0.3" - leancloud-realtime "^5.0.0-alpha.3" - leancloud-realtime-plugin-live-query "^1.2.0" - localstorage-memory "^1.0.1" - md5 "^2.0.0" - superagent "^3.3.1" - underscore "^1.8.3" - uuid "^3.3.2" +layout-base@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" + integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== leven@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -linkify-it@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz" - integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== - dependencies: - uc.micro "^1.0.1" - -load-script@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz" - integrity "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ= sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== +lilconfig@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" + integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz" - integrity "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==" +linkify-it@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" + integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw== dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" + uc.micro "^1.0.1" -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== +lit-element@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.2.2.tgz#d148ab6bf4c53a33f707a5168e087725499e5f2b" + integrity sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ== dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -localstorage-memory@^1.0.1, localstorage-memory@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/localstorage-memory/-/localstorage-memory-1.0.3.tgz" - integrity sha512-t9P8WB6DcVttbw/W4PIE8HOqum8Qlvx5SjR6oInwR9Uia0EEmyUeBh7S+weKByW+l/f45Bj4L/dgZikGFDM6ng== + "@lit/reactive-element" "^1.3.0" + lit-html "^2.2.0" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== +lit-html@^2.2.0, lit-html@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.4.0.tgz#b510430f39a56ec959167ed1187241a4e3ab1574" + integrity sha512-G6qXu4JNUpY6aaF2VMfaszhO9hlWw0hOTRFDmuMheg/nDYGB+2RztUSOyrzALAbr8Nh0Y7qjhYkReh3rPnplVg== dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" + "@types/trusted-types" "^2.0.2" -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== +lit@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.4.1.tgz#21251ac14eb1ec8ca7cd15c9ac3564359809f7b5" + integrity sha512-qohSgLiyN1cFnJG26dIiY03S4F49857A0AHQfnS0zYtnUVnD2MFvx+UT52rtXsIuNFQrnUupX+zyGSATlk1f/A== dependencies: - p-locate "^4.1.0" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" - integrity "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==" - -lodash.chunk@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz" - integrity "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw= sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==" - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" - integrity "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + "@lit/reactive-element" "^1.4.0" + lit-element "^3.2.0" + lit-html "^2.4.0" lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" integrity "sha1-gteb/zCmfEAF/9XiUVMArZyk168= sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" -lodash.defaultsdeep@4.6.1: - version "4.6.1" - resolved "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz" - integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== - -lodash.isempty@4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz" - integrity "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4= sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg==" - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" - integrity "sha1-hImxyw0p/4gZXM7KRI/21swpXDY= sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" - integrity "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" - -lodash.padstart@^4.6.1: - version "4.6.1" - resolved "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz" - integrity "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==" - lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" integrity "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" -lodash.template@^4.4.0, lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" integrity "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" -lodash.trimend@^4.5.1: - version "4.5.1" - resolved "https://registry.npmjs.org/lodash.trimend/-/lodash.trimend-4.5.1.tgz" - integrity "sha1-EoBENyhrmMrYmWt5QU4RMAEUCC8= sha512-lsD+k73XztDsMBKPKvzHXRKFNMohTjoTKIIo4ADLn5dA65LZ1BqlAvSXhR2rPEC3BgAUQnzMnorqDtqn2z4IHA==" - -lodash.trimstart@^4.5.1: - version "4.5.1" - resolved "https://registry.npmjs.org/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz" - integrity "sha1-j/TexTLYJIavWVc8OURZFOlEp/E= sha512-b/+D6La8tU76L/61/aN0jULWHkT0EeJCmVstPBn/K9MtD2qBW83AsBNrr63dKuWYwVMO7ucv13QNO/Ek/2RKaQ==" - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" - integrity "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" - -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5: +lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== - -long@~3: - version "3.2.0" - resolved "https://registry.npmjs.org/long/-/long-3.2.0.tgz" - integrity "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s= sha512-ZYvPPOMqUwPoDsbJaR10iQJYnMuZhRTvHYl62ErLIEX7RgFlziSBUUvrt3OVfc47QlHHpzPZYP17g3Fv7oeJkg==" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" - integrity "sha1-miyr0bno4K6ZOkv31YdcOcQujqw= sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==" - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^4.1.2: - version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== +log-symbols@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" + integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== dependencies: - yallist "^4.0.0" - -luxon@^1.3.3: - version "1.28.0" - resolved "https://registry.npmjs.org/luxon/-/luxon-1.28.0.tgz" - integrity sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ== + chalk "^5.0.0" + is-unicode-supported "^1.1.0" magic-string@^0.25.0, magic-string@^0.25.7: version "0.25.7" @@ -7023,220 +3731,105 @@ magic-string@^0.25.0, magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.4" -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" - integrity "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" +markdown-it-anchor@^8.6.5: + version "8.6.5" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.6.5.tgz#30c4bc5bbff327f15ce3c429010ec7ba75e7b5f8" + integrity sha512-PI1qEHHkTNWT+X6Ip9w+paonfIQ+QZP9sCeMYi47oqhH+EsW8CrJ8J7CzV19QVOj6il8ATGbK2nTECj22ZHGvQ== -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" - integrity "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==" - dependencies: - object-visit "^1.0.0" - -markdown-it-anchor@*, markdown-it-anchor@^5.0.2: - version "5.3.0" - resolved "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz" - integrity sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA== - -markdown-it-chain@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz" - integrity sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ== - dependencies: - webpack-chain "^4.9.0" - -markdown-it-container@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-2.0.0.tgz" - integrity "sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU= sha512-IxPOaq2LzrGuFGyYq80zaorXReh2ZHGFOB1/Hen429EJL1XkPI3FJTpx9TsJeua+j2qTru4h3W1TiCRdeivMmA==" - -markdown-it-emoji@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz" - integrity "sha1-m+4OmpkKljupbfaYDE/dsF37Tcw= sha512-QCz3Hkd+r5gDYtS2xsFXmBYrgw6KuWcJZLCEkdfAuwzZbShCmCfta+hwAMq4NX/4xPzkSHduMKgMkkPUJxSXNg==" +markdown-it-container@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz#1d19b06040a020f9a827577bb7dbf67aa5de9a5b" + integrity sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw== -markdown-it-table-of-contents@^0.4.0: - version "0.4.4" - resolved "https://registry.npmjs.org/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz" - integrity sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw== +markdown-it-emoji@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz#cd42421c2fda1537d9cc12b9923f5c8aeb9029c8" + integrity sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ== -markdown-it@^8.4.1: - version "8.4.2" - resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz" - integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ== +markdown-it@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.1.tgz#c6ecc431cacf1a5da531423fc6a42807814af430" + integrity sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q== dependencies: - argparse "^1.0.7" - entities "~1.1.1" - linkify-it "^2.0.0" + argparse "^2.0.1" + entities "~3.0.1" + linkify-it "^4.0.1" mdurl "^1.0.1" uc.micro "^1.0.5" -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" +marked@^4.2.2: + version "4.2.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.3.tgz#bd76a5eb510ff1d8421bc6c3b2f0b93488c15bea" + integrity sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw== -md5@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== +mathjax-full@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/mathjax-full/-/mathjax-full-3.2.2.tgz#43f02e55219db393030985d2b6537ceae82f1fa7" + integrity sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w== dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + esm "^3.2.25" + mhchemparser "^4.1.0" + mj-context-menu "^0.6.1" + speech-rule-engine "^4.0.6" mdurl@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" integrity "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - integrity "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz" - integrity "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" +medium-zoom@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.0.8.tgz#2bd1fbcf2961fa7b0e318fe284462aa9b8608ed2" + integrity sha512-CjFVuFq/IfrdqesAXfg+hzlDKu6A2n80ZIq0Kl9kWjoHh9j1N9Uvk5X0/MmN0hOfm5F9YBswlClhcwnmtwz7gA== -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" +mensch@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/mensch/-/mensch-0.3.4.tgz#770f91b46cb16ea5b204ee735768c3f0c491fecd" + integrity sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g== merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.2.3: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -mermaid@^8.14.0: - version "8.14.0" - resolved "https://registry.npmjs.org/mermaid/-/mermaid-8.14.0.tgz" - integrity sha512-ITSHjwVaby1Li738sxhF48sLTxcNyUAoWfoqyztL1f7J6JOLpHOuQPNLBb6lxGPUA0u7xP9IRULgvod0dKu35A== +mermaid@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-9.2.2.tgz#73cca1f0b74e7e674c0de3519d7e7e8ea83bea4a" + integrity sha512-6s7eKMqFJGS+0MYjmx8f6ZigqKBJVoSx5ql2gw6a4Aa+WJ49QiEJg7gPwywaBg3DZMs79UP7trESp4+jmaQccw== dependencies: - "@braintree/sanitize-url" "^3.1.0" + "@braintree/sanitize-url" "^6.0.0" d3 "^7.0.0" dagre "^0.8.5" dagre-d3 "^0.6.4" - dompurify "2.3.5" + dompurify "2.4.0" + fast-clone "^1.5.13" graphlib "^2.1.8" - khroma "^1.4.1" + khroma "^2.0.0" + lodash "^4.17.21" moment-mini "^2.24.0" - stylis "^4.0.10" - -methods@^1.1.1, methods@^1.1.2, methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - integrity "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.0, micromatch@^4.0.2: - version "4.0.4" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" + non-layered-tidy-tree-layout "^2.0.2" + stylis "^4.1.2" + uuid "^9.0.0" -mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": - version "1.51.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== +mhchemparser@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/mhchemparser/-/mhchemparser-4.1.1.tgz#a2142fdab37a02ec8d1b48a445059287790becd5" + integrity sha512-R75CUN6O6e1t8bgailrF1qPq+HhVeFTM3XQ0uzI+mXTybmphy3b6h4NbLOYhemViQ3lUs+6CKRkC3Ws1TlYREA== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.34" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - mime-db "1.51.0" - -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + braces "^3.0.2" + picomatch "^2.3.1" -mime@^2.0.3, mime@^2.4.4, mime@^2.4.6: +mime@^2.4.6: version "2.6.0" resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== @@ -7246,37 +3839,10 @@ mimic-fn@^2.1.0: resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" - integrity "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==" - dependencies: - dom-walk "^0.1.0" - -mini-css-extract-plugin@0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz" - integrity sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw== - dependencies: - loader-utils "^1.1.0" - normalize-url "^2.0.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - integrity "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== minimatch@^3.0.4: version "3.0.4" @@ -7285,198 +3851,57 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -miniprogram-api-typings@^2.10.2: - version "2.12.0" - resolved "https://registry.npmjs.org/miniprogram-api-typings/-/miniprogram-api-typings-2.12.0.tgz" - integrity sha512-ibvbqeslVFur0IAvTxLMvsbtvVcMo6gwvOnj0YZHV7aeDLu091VQRrETT2QuiG9P6aZWRcxeNGJChRKVPCp9VQ== - -mississippi@^3.0.0: +mitt@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" + resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.0.tgz#69ef9bd5c80ff6f57473e8d89326d01c414be0bd" + integrity sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ== -mkdirp@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz" - integrity "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==" - -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mj-context-menu@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/mj-context-menu/-/mj-context-menu-0.6.1.tgz#a043c5282bf7e1cf3821de07b13525ca6f85aa69" + integrity sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA== moment-mini@^2.24.0: version "2.24.0" resolved "https://registry.npmjs.org/moment-mini/-/moment-mini-2.24.0.tgz" integrity sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ== -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz" - integrity "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==" - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2, ms@^2.1.1: +ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz" - integrity "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==" - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -nan@^2.12.1: - version "2.15.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" +node-fetch@^2.6.0: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" node-releases@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz" integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== -nopt@1.0.10: - version "1.0.10" - resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" - integrity "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==" - dependencies: - abbrev "1" +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" - integrity "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==" - dependencies: - remove-trailing-separator "^1.0.1" +non-layered-tidy-tree-layout@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz#57d35d13c356643fc296a55fb11ac15e74da7804" + integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -7488,112 +3913,30 @@ normalize-range@^0.1.2: resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" integrity "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" -normalize-url@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" - integrity "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==" - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nprogress@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz" - integrity "sha1-y480xTIT2JVyP8urkH6UIq28r7E= sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== dependencies: - boolbase "~1.0.0" + path-key "^4.0.0" -nth-check@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" - integrity "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" - integrity "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" - integrity "sha1-fn2Fi3gb18mRpBupde04EnVOmYw= sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.11.0" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz" integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== -object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.0, object-keys@^1.1.1: +object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" - integrity "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==" - dependencies: - isobject "^3.0.0" - object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" @@ -7604,926 +3947,153 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.3" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" - integrity "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==" - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.5" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - integrity "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==" - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity "sha1-WDsap3WWHUsROsF9nFC6753Xa9E= sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" dependencies: wrappy "1" -onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -optimize-css-assets-webpack-plugin@^5.0.1: - version "5.0.8" - resolved "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz" - integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q== - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" - -optjs@~3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz" - integrity "sha1-aabOicRCpEQDFBrS+bNwvVu29O4= sha512-f8lTJm4LKirX+45xsFhuRNjA4f46QVLQKfGoNH7e2AEWS+24eM4XNH4pQ8Tw2LISCIvbST/wNcLdtgvgcqVaxA==" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" - integrity "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" - integrity "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==" - dependencies: - lcid "^1.0.0" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" - integrity "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==" - -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz" - integrity "sha1-35T9jPZTHs915r75oIWPvHK+Ikc= sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==" - dependencies: - no-case "^2.2.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +ora@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/ora/-/ora-6.1.2.tgz#7b3c1356b42fd90fb1dad043d5dbe649388a0bf5" + integrity sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw== + dependencies: + bl "^5.0.0" + chalk "^5.0.0" + cli-cursor "^4.0.0" + cli-spinners "^2.6.1" + is-interactive "^2.0.0" + is-unicode-supported "^1.1.0" + log-symbols "^5.1.0" + strip-ansi "^7.0.1" + wcwidth "^1.0.1" + +parse5-htmlparser2-tree-adapter@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" - integrity "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==" - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + parse5 "^6.0.1" -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz" - integrity "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - integrity "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity "sha1-F0uSaHNVNP+8es5r9TpanhtcX18= sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" - integrity "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" - integrity "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==" - -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" - integrity "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - -photoswipe@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/photoswipe/-/photoswipe-4.1.3.tgz" - integrity sha512-89Z43IRUyw7ycTolo+AaiDn3W1EEIfox54hERmm9bI12IB9cvRfHSHez3XhAyU8XW2EAFrC+2sKMhh7SJwn0bA== +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== +photoswipe@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/photoswipe/-/photoswipe-5.3.4.tgz#5a07393e76abe317386c1e1e3a62be7745f97822" + integrity sha512-SN+RWHqxJvdwzXJsh8KrG+ajjPpdTX5HpKglEd0k9o6o5fW+QHPkW8//Bo11MB+NQwTa/hFw8BDv2EdxiDXjNw== picocolors@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2: version "2.3.0" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - integrity "sha1-7RQaasBDqEnqWISY59yosVMw6Qw= sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==" +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^4.0.1: +postcss-load-config@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - integrity "sha1-ITXW36ejWMBprJsXh3YogihFD/o= sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" + integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - integrity "sha1-clVrgM+g1IqXToDnckjoDtT3+HA= sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + lilconfig "^2.0.5" + yaml "^2.1.1" -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0: +postcss-value-parser@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -portfinder@^1.0.13, portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" - integrity "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==" - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== +postcss@^8.1.10, postcss@^8.4.16, postcss@^8.4.18: + version "8.4.19" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" + integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz" - integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - postcss-value-parser "^3.3.1" - -postcss-modules-scope@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz" - integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^7.0.6" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-safe-parser@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz" - integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== - dependencies: - postcss "^7.0.26" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.6" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz" - integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.39" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" preact@^10.0.0: - version "10.5.15" - resolved "https://registry.npmjs.org/preact/-/preact-10.5.15.tgz" - integrity sha512-5chK29n6QcJc3m1lVrKQSQ+V7K1Gb8HeQY6FViQ5AxCAEGu3DaHffWNDkC9+miZgsLvbvU9rxbV1qinGHMHzqA== - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" - integrity "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" + version "10.11.3" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.11.3.tgz#8a7e4ba19d3992c488b0785afcc0f8aa13c78d19" + integrity sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg== -"prettier@^1.18.2 || ^2.0.0": - version "2.4.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz" - integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== - -pretty-bytes@^5.1.0, pretty-bytes@^5.3.0: +pretty-bytes@^5.3.0: version "5.6.0" resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-error@^2.0.2: - version "2.1.2" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" - -pretty-time@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz" - integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== - -prismjs@^1.13.0: - version "1.25.0" - resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz" - integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" - integrity "sha1-czIwDoQBYb2j5podHZGn1LwW8YI= sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" - integrity "sha1-mEcocL8igTL8vdhoEputEsPAKeM= sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" - -promise-timeout@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/promise-timeout/-/promise-timeout-1.3.0.tgz" - integrity sha512-5yANTE0tmi5++POym6OgtFmwfDvOXABD9oj/jLQr5GPEyuNEb7jH4wbbANJceJid49jwhi1RddxnhnEAb/doqg== - -protobufjs@^5.0.1: - version "5.0.3" - resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-5.0.3.tgz" - integrity sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA== - dependencies: - ascli "~1" - bytebuffer "~5" - glob "^7.0.5" - yargs "^3.10.0" - -proxy-addr@~2.0.5: - version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" - integrity "sha1-0/wRS6BplaRexok/SEzrHXj19HY= sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" - integrity "sha1-8FKijacOYYkX7wqKw0wa5aaChrM= sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - integrity "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - integrity "sha1-wNWmOycYgArY4esPpSachN1BhF4= sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" +prismjs@^1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -pupa@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== - dependencies: - escape-goat "^2.0.0" - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" - integrity "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@^6.5.1, qs@~6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -qs@^6.6.0, qs@^6.9.4: - version "6.10.1" - resolved "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz" - integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== - dependencies: - side-channel "^1.0.4" - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -query-string@^6.9.0: - version "6.14.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -querystring-es3@^0.2.0, querystring-es3@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" - integrity "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - integrity "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==" - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - raphael@2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/raphael/-/raphael-2.3.0.tgz" @@ -8531,40 +4101,7 @@ raphael@2.3.0: dependencies: eve-raphael "0.5.0" -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.2.8: - version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6, readable-stream@^3.6.0: +readable-stream@^3.4.0: version "3.6.0" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -8573,15 +4110,6 @@ readable-stream@^3.0.6, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" @@ -8589,13 +4117,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -reduce@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/reduce/-/reduce-1.0.2.tgz" - integrity sha512-xX7Fxke/oHO5IfZSk77lvPa/7bjMh9BuCk4OOoX5XTXrM7s0Z+MkPfSDfz0q7r91BhhGSs8gii/VEN/7zhCPpQ== - dependencies: - object-keys "^1.1.0" - regenerate-unicode-properties@^9.0.0: version "9.0.0" resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz" @@ -8608,11 +4129,6 @@ regenerate@^1.4.2: resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" @@ -8625,15 +4141,7 @@ regenerator-transform@^0.14.2: dependencies: "@babel/runtime" "^7.8.4" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.1: +regexp.prototype.flags@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz" integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== @@ -8653,25 +4161,11 @@ regexpu-core@^4.7.1: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" -register-service-worker@^1.7.0, register-service-worker@^1.7.2: +register-service-worker@^1.7.2: version "1.7.2" resolved "https://registry.npmjs.org/register-service-worker/-/register-service-worker-1.7.2.tgz" integrity sha512-CiD3ZSanZqcMPRhtfct5K9f7i3OLCcBBWsJjLh1gW9RO/nS94sVzY59iS+fgYBOBqaBpf4EzfqUF3j9IG+xo8A== -registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - regjsgen@^0.5.2: version "0.5.2" resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz" @@ -8680,110 +4174,16 @@ regjsgen@^0.5.2: regjsparser@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz" - integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" - integrity "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==" - -remove-markdown@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/remove-markdown/-/remove-markdown-0.3.0.tgz" - integrity "sha1-XktmdJOpNXlyjz1S7MHbnKUF3Jg= sha512-5392eIuy1mhjM74739VunOlsOYKjsH82rQcTBlJ1bkICVC3dQ3ksQzTHh4jGHQFnM+1xzLzcFOMH+BofqXhroQ==" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" - integrity "sha1-wkvOKig62tW8P1jg1IJJuSN52O8= sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==" - -renderkid@^2.0.4: - version "2.0.7" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz" - integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^3.0.1" - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - integrity "sha1-jcrkcOHIirwtYA//Sndihtp15jc= sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" - -request@^2.87.0: - version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - integrity "sha1-jGStX9MNqxyXbiNE/+f3kqam30I= sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" - integrity "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz" - integrity "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==" + integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" - integrity "sha1-six699nWiBvItuZTM17rywoYh0g= sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==" + jsesc "~0.5.0" -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" - integrity "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -resolve@^1.14.2, resolve@^1.19.0, resolve@^1.2.0: +resolve@^1.14.2, resolve@^1.19.0: version "1.20.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -8791,52 +4191,32 @@ resolve@^1.14.2, resolve@^1.19.0, resolve@^1.2.0: is-core-module "^2.2.0" path-parse "^1.0.6" -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" - integrity "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==" +resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - lowercase-keys "^1.0.0" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" - integrity "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" - -reveal.js@^4.3.0: - version "4.3.1" - resolved "https://registry.npmjs.org/reveal.js/-/reveal.js-4.3.1.tgz" - integrity sha512-1kyEnWeUkaCdBdX//XXq9dtBK95ppvIlSwlHelrP8/wrX6LcsYp4HT9WTFoFEOUBfVqkm8C2aHQ367o+UKfcxw== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz" - integrity "sha1-wODWiC3w4jviVKR16O3UGRX+rrE= sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w==" - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz" - integrity "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" -rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== dependencies: - glob "^7.1.3" + onetime "^5.1.0" + signal-exit "^3.0.2" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +reveal.js@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/reveal.js/-/reveal.js-4.4.0.tgz#bff589987a842d99bc8f6eb9b2b59f6d9941bf87" + integrity sha512-jIV6C9V2NEUjGzU8L6dUFGpk1KJmq7/EzP2fOW67ggc2c0Cp/PdprWxZ9Qgp46F0T2ZWDCjQ1p3Ytzy5jA6a2w== robust-predicates@^3.0.0: version "3.0.1" @@ -8860,68 +4240,56 @@ rollup@^2.43.1: optionalDependencies: fsevents "~2.3.2" -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz" - integrity "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==" +rollup@^2.79.1: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + +rollup@~2.78.0: + version "2.78.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f" + integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg== + optionalDependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: - aproba "^1.1.1" + queue-microtask "^1.2.2" rw@1: version "1.3.3" resolved "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz" integrity "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" -safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" - integrity "sha1-QKNmnzsHfR6UPURinhV91IAjvy4= sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==" - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@^1.2.4, sax@~1.2.4: +sass@^1.55.0, sass@^1.56.1: + version "1.56.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.1.tgz#94d3910cd468fd075fa87f5bb17437a0b617d8a7" + integrity sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@^1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -screenfull@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz" - integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA== - section-matter@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" @@ -8930,73 +4298,16 @@ section-matter@^1.0.0: extend-shallow "^2.0.1" kind-of "^6.0.0" -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" - integrity "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" - -selfsigned@^1.10.8: - version "1.10.11" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz" - integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== - dependencies: - node-forge "^0.10.0" - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - semver@7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^5.1.0, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2: - version "7.3.5" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -send@0.17.1: - version "0.17.1" - resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz" - integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== - dependencies: - randombytes "^2.1.0" - serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz" @@ -9004,74 +4315,6 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" - integrity "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==" - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - integrity "sha1-BF+XgtARrppoA93TgrJDkrPYkPc= sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - integrity "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" - integrity "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==" - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -9079,11 +4322,6 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - integrity "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==" - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" @@ -9098,27 +4336,15 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.2: version "3.0.5" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz" integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" - integrity "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==" - dependencies: - is-arrayish "^0.3.1" - -sitemap@^3.0.0: - version "3.2.2" - resolved "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz" - integrity sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg== - dependencies: - lodash.chunk "^4.2.0" - lodash.padstart "^4.6.1" - whatwg-url "^7.0.0" - xmlbuilder "^13.0.0" +signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== sitemap@^7.1.1: version "7.1.1" @@ -9130,96 +4356,22 @@ sitemap@^7.1.1: arg "^5.0.0" sax "^1.2.4" -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" - integrity "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==" - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -smoothscroll-polyfill@^0.4.3: - version "0.4.4" - resolved "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz" - integrity sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@^1.5.0: - version "1.5.2" - resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz" - integrity sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ== - dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.5.3" - -sockjs@^0.3.21: - version "0.3.21" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz" - integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== - dependencies: - faye-websocket "^0.11.3" - uuid "^3.4.0" - websocket-driver "^0.7.4" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz" - integrity "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==" - dependencies: - is-plain-obj "^1.0.0" +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +slick@^1.12.2: + version "1.12.2" + resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7" + integrity sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A== -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-support@~0.5.12, source-map-support@~0.5.20: +source-map-support@~0.5.20: version "0.5.20" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== @@ -9227,31 +4379,16 @@ source-map-support@~0.5.12, source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@0.5.6: - version "0.5.6" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" - integrity "sha1-dc449SvwczxafwwRjYEzSiu19BI= sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==" - -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.0: version "0.5.7" resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" integrity "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3, source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - source-map@^0.8.0-beta.0: version "0.8.0-beta.0" resolved "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz" @@ -9259,179 +4396,30 @@ source-map@^0.8.0-beta.0: dependencies: whatwg-url "^7.0.0" +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + sourcemap-codec@^1.4.4: version "1.4.8" resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== +speech-rule-engine@^4.0.6: + version "4.0.7" + resolved "https://registry.yarnpkg.com/speech-rule-engine/-/speech-rule-engine-4.0.7.tgz#b655dacbad3dae04acc0f7665e26ef258397dd09" + integrity sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g== dependencies: - extend-shallow "^3.0.0" + commander "9.2.0" + wicked-good-xpath "1.3.0" + xmldom-sre "0.1.31" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" - integrity "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" - -std-env@^2.2.1: - version "2.3.1" - resolved "https://registry.npmjs.org/std-env/-/std-env-2.3.1.tgz" - integrity sha512-eOsoKTWnr6C8aWrqJJ2KAReXoa7Vn5Ywyw6uCXgA/xDhxPoaIsBa5aNJmISY04dLwXPBnDHW4diGM7Sn5K4R/g== - dependencies: - ci-info "^3.1.1" - -storejs@^1.0.25: - version "1.1.0" - resolved "https://registry.npmjs.org/storejs/-/storejs-1.1.0.tgz" - integrity sha512-RCQ7dhTmaRJ8IYW6zprhESmSij6Dy4lGvAaRFgHhhYvhIb8B+WHmvim+ELub07AuF7vHgB79pYgsTQBRLtEOew== - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" - integrity "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==" - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" - integrity "sha1-ucczDHBChi9rFC3CdLvMWGbONUY= sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" - integrity "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.0.0, string-width@^4.1.0: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string.prototype.matchall@^4.0.6: version "4.0.7" resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz" @@ -9462,7 +4450,7 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" -string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: +string_decoder@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== @@ -9478,139 +4466,37 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - integrity "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== dependencies: - ansi-regex "^5.0.1" + ansi-regex "^6.0.1" strip-bom-string@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz" integrity "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==" -strip-comments@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz" - integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== - dependencies: - babel-extract-comments "^1.0.0" - babel-plugin-transform-object-rest-spread "^6.26.0" - strip-comments@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz" integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" - integrity "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==" - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - integrity "sha1-PFMZQukIwml8DsNEhYwobHygpgo= sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" - -striptags@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/striptags/-/striptags-3.1.1.tgz" - integrity "sha1-yMPn/db7S7OjKjt1LltePjgJPr0= sha512-3HVl+cOkJOlNUDAYdoCAfGx/fzUzG53YvJAl3RYlTvAcBdPqSp1Uv4wrmHymm7oEypTijSQqcqplW8cz0/r/YA==" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -stylis@^4.0.10: - version "4.0.10" - resolved "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz" - integrity sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg== - -stylus-loader@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz" - integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA== - dependencies: - loader-utils "^1.0.2" - lodash.clonedeep "^4.5.0" - when "~3.6.x" +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== -stylus@^0.54.8: - version "0.54.8" - resolved "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz" - integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg== - dependencies: - css-parse "~2.0.0" - debug "~3.1.0" - glob "^7.1.6" - mkdirp "~1.0.4" - safer-buffer "^2.1.2" - sax "~1.2.4" - semver "^6.3.0" - source-map "^0.7.3" - -superagent@^3.3.1: - version "3.8.3" - resolved "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz" - integrity sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA== - dependencies: - component-emitter "^1.2.0" - cookiejar "^2.1.0" - debug "^3.1.0" - extend "^3.0.0" - form-data "^2.3.1" - formidable "^1.2.0" - methods "^1.1.1" - mime "^1.4.1" - qs "^6.5.1" - readable-stream "^2.3.5" - -superagent@^5.2.2: - version "5.3.1" - resolved "https://registry.npmjs.org/superagent/-/superagent-5.3.1.tgz" - integrity sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ== - dependencies: - component-emitter "^1.3.0" - cookiejar "^2.1.2" - debug "^4.1.1" - fast-safe-stringify "^2.0.7" - form-data "^3.0.0" - formidable "^1.2.2" - methods "^1.1.2" - mime "^2.4.6" - qs "^6.9.4" - readable-stream "^3.6.0" - semver "^7.3.2" +striptags@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052" + integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw== -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - integrity "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" +stylis@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.3.tgz#fd2fbe79f5fed17c55269e16ed8da14c84d069f7" + integrity sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA== supports-color@^5.3.0: version "5.5.0" @@ -9619,13 +4505,6 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" @@ -9633,34 +4512,10 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -svg-tags@^1.0.0: +supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz" - integrity "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==" - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== temp-dir@^2.0.0: version "2.0.0" @@ -9677,35 +4532,6 @@ tempy@^0.6.0: type-fest "^0.16.0" unique-string "^2.0.0" -term-size@^2.1.0: - version "2.2.1" - resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz" - integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.8.0" - resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - terser@^5.0.0: version "5.9.0" resolved "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz" @@ -9715,76 +4541,11 @@ terser@^5.0.0: source-map "~0.7.2" source-map-support "~0.5.20" -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@~2.3.4: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" - integrity "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" - integrity "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==" - -to-factory@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/to-factory/-/to-factory-1.0.0.tgz" - integrity "sha1-hzivi9lxIK0dQEeXKtpVY7+UebE= sha512-JVYrY42wMG7ddf+wBUQR/uHGbjUHZbLisJ8N62AMm0iTZ0p8YTcZLzdtomU0+H+wa99VbkyvQGB3zxB7NDzgIQ==" - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" - integrity "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==" - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" - integrity "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -9792,39 +4553,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz" - integrity "sha1-LmhELZ9k7HILjMieZEOsbKqVACk= sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg==" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - tr46@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" @@ -9832,82 +4560,41 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -ts-loader@^7.0.3: - version "7.0.5" - resolved "https://registry.npmjs.org/ts-loader/-/ts-loader-7.0.5.tgz" - integrity sha512-zXypEIT6k3oTc+OZNx/cqElrsbBtYqDknf48OZos0NQ3RTt045fBIU8RRSu+suObBzYB355aIPGOe/3kj9h7Ig== - dependencies: - chalk "^2.3.0" - enhanced-resolve "^4.0.0" - loader-utils "^1.0.2" - micromatch "^4.0.0" - semver "^6.0.0" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-debounce@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ts-debounce/-/ts-debounce-4.0.0.tgz#33440ef64fab53793c3d546a8ca6ae539ec15841" + integrity sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg== -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" - integrity "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==" +tslib@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - integrity "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==" - dependencies: - safe-buffer "^5.0.1" +tslib@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - integrity "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" +twikoo@^1.6.8: + version "1.6.8" + resolved "https://registry.yarnpkg.com/twikoo/-/twikoo-1.6.8.tgz#a7ad7dd52d9abf5478dd277c2ef1d5adc0e3a223" + integrity sha512-SkwO647kK2Ss+L2myp+7JmzmXAGsLt1e7zwTZdKuifDywgFfnaArPWkfp7ruvVBLb+13KQUsCneBUR5XzkV4Bg== type-fest@^0.16.0: version "0.16.0" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz" integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - integrity "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz" - integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== - dependencies: - commander "~2.19.0" - source-map "~0.6.1" - unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" @@ -9918,11 +4605,6 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" -underscore@^1.8.3: - version "1.13.1" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz" - integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" @@ -9946,40 +4628,6 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" - integrity "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==" - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" - integrity "sha1-/+3ks2slKQaW5uFl1KWe25mOawI= sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==" - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - unique-string@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" @@ -9987,62 +4635,28 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - universalify@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - integrity "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" - integrity "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" - integrity "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.0, upath@^1.1.1, upath@^1.2.0: +upath@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-notifier@^4.0.0: - version "4.1.3" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz" - integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" - integrity "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==" +upath@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" + integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== + +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" uri-js@^4.2.2: version "4.4.1" @@ -10051,337 +4665,202 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" - integrity "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==" - -url-loader@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz" - integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== - dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" - integrity "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==" - dependencies: - prepend-http "^2.0.0" - -url-parse@^1.4.3, url-parse@^1.5.3: - version "1.5.3" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz" - integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" - integrity "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: +util-deprecate@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" - integrity "sha1-evsa/lCAUkZInj23/g7TeTNqwPk= sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==" - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" - integrity "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - integrity "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" - -uuid@^3.0.0, uuid@^3.3.2, uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -valine@^1.4.16: - version "1.4.16" - resolved "https://registry.npmjs.org/valine/-/valine-1.4.16.tgz" - integrity sha512-gKmVzOAYrHNKt2Oswu6+UFiR+qJfTuVjPj6XrqtoPNZFcoJaITftGI6qw/n//YhWMd/75E4WTL6WeZ5CHhADdA== - dependencies: - balajs "^1.0.7" - balalaika "^1.0.1" - element-closest "^3.0.2" - insane "^2.6.2" - leancloud-storage "^3.0.4" - storejs "^1.0.25" - xss "^1.0.6" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - integrity "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" - integrity "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -vssue@^1.4.8: - version "1.4.8" - resolved "https://registry.npmjs.org/vssue/-/vssue-1.4.8.tgz" - integrity sha512-Stp0CxF65Uv658qgYUgYKEDiWM8wskUfKCOT9ISJwz/Qn58N050vYnFYClnUXG060ZQi1YQxkTCuJAw8ee3YlQ== - dependencies: - "@vssue/utils" "^1.4.7" - github-markdown-css "^3.0.1" - vue "^2.6.10" - vue-i18n "^8.11.2" - vue-property-decorator "^8.1.1" - -vue-class-component@^7.1.0: - version "7.2.6" - resolved "https://registry.npmjs.org/vue-class-component/-/vue-class-component-7.2.6.tgz" - integrity sha512-+eaQXVrAm/LldalI272PpDe3+i4mPis0ORiMYxF6Ae4hyuCh15W8Idet7wPUEs4N4YptgFHGys4UrgNQOMyO6w== - -vue-disqus@^3.0.5: - version "3.0.5" - resolved "https://registry.npmjs.org/vue-disqus/-/vue-disqus-3.0.5.tgz" - integrity sha512-T3Y68lXf5W2lYt6j4Y3kZ4opLPH0EAzqriy11MS4D4Q2+UN0tFuUXeYP1MxfvdyaCEboXSM6CUswxsULuNV70Q== - -vue-hot-reload-api@^2.3.0: - version "2.3.4" - resolved "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz" - integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== - -vue-i18n@^8.11.2: - version "8.26.7" - resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.26.7.tgz" - integrity sha512-7apa5PvRg1YCLoraE3lOgpCG8hJGupLCtywQWedWsgBbvF0TOgFvhitqK9xRH0PBGG1G8aiJz9oklyNDFfDxLg== - -vue-loader@^15.7.1: - version "15.9.8" - resolved "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.8.tgz" - integrity sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog== - dependencies: - "@vue/component-compiler-utils" "^3.1.0" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - vue-hot-reload-api "^2.3.0" - vue-style-loader "^4.1.0" - -vue-property-decorator@^8.1.1: - version "8.5.1" - resolved "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-8.5.1.tgz" - integrity sha512-O6OUN2OMsYTGPvgFtXeBU3jPnX5ffQ9V4I1WfxFQ6dqz6cOUbR3Usou7kgFpfiXDvV7dJQSFcJ5yUPgOtPPm1Q== - dependencies: - vue-class-component "^7.1.0" - -vue-router@^3.4.5, vue-router@^3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz" - integrity sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg== - -vue-server-renderer@^2.6.10: - version "2.6.14" - resolved "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz" - integrity sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA== - dependencies: - chalk "^1.1.3" - hash-sum "^1.0.2" - he "^1.1.0" - lodash.template "^4.5.0" - lodash.uniq "^4.5.0" - resolve "^1.2.0" - serialize-javascript "^3.1.0" - source-map "0.5.6" - -vue-style-loader@^4.1.0: - version "4.1.3" - resolved "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz" - integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== - dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-template-compiler@^2.6.10: - version "2.6.14" - resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz" - integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.9.0: - version "1.9.1" - resolved "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz" - integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== - -vue@^2.6.10, vue@^2.6.14: - version "2.6.14" - resolved "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz" - integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== - -vuejs-paginate@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/vuejs-paginate/-/vuejs-paginate-2.1.0.tgz" - integrity sha512-gnwyXlmCiDOu9MLWxN5UJ4PGijKGNOMpHG8ujsrynCzTJljn/rp7Jq0WiDGDAMi5/u0AHuYIHhced+tUW4jblA== - -vuepress-html-webpack-plugin@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz" - integrity sha512-BebAEl1BmWlro3+VyDhIOCY6Gef2MCBllEVAP3NUAtMguiyOwo/dClbwJ167WYmcxHJKLl7b0Chr9H7fpn1d0A== - dependencies: - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - tapable "^1.0.0" - toposort "^1.0.0" - util.promisify "1.0.0" - -vuepress-plugin-active-hash@1.28.3: - version "1.28.3" - resolved "https://registry.npmjs.org/vuepress-plugin-active-hash/-/vuepress-plugin-active-hash-1.28.3.tgz" - integrity sha512-ImvJHFVcuASKVuF5rJmD5VV5YPnGCiVPDZ102HXe598+Vs1aOryZH+egfxCE90hjmcqJ6ReQMUhBmMvhaypNSA== - dependencies: - "@mr-hope/vuepress-types" "1.28.3" - "@types/lodash.debounce" "^4.0.6" - lodash.debounce "^4.0.8" - -vuepress-plugin-add-this@1.28.3: - version "1.28.3" - resolved "https://registry.npmjs.org/vuepress-plugin-add-this/-/vuepress-plugin-add-this-1.28.3.tgz" - integrity sha512-dX/rjdinUQXwElBExyATAxy/UacGQkX3ssqwMIiG96V6P8GqeyyFHksjjjgg8UUxiP/kPjuPvUuAr5BaKdYIWA== - dependencies: - "@mr-hope/vuepress-types" "1.28.3" - -vuepress-plugin-container@^2.0.2, vuepress-plugin-container@^2.1.5: - version "2.1.5" - resolved "https://registry.npmjs.org/vuepress-plugin-container/-/vuepress-plugin-container-2.1.5.tgz" - integrity sha512-TQrDX/v+WHOihj3jpilVnjXu9RcTm6m8tzljNJwYhxnJUW0WWQ0hFLcDTqTBwgKIFdEiSxVOmYE+bJX/sq46MA== - dependencies: - "@vuepress/shared-utils" "^1.2.0" - markdown-it-container "^2.0.0" - -vuepress-plugin-copyright@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/vuepress-plugin-copyright/-/vuepress-plugin-copyright-1.0.2.tgz" - integrity sha512-SWiyqqU8StPGB6WxzVTbRMUyyE0g6lJoP9SDoOua5PHUeawd8XdDBAaCCGRrmd2JDMvCDZlNYHTHgsKJncuU2g== - dependencies: - "@shigma/stringify-object" "^3.3.0" +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== -vuepress-plugin-disqus@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/vuepress-plugin-disqus/-/vuepress-plugin-disqus-0.2.0.tgz" - integrity sha512-kx+AeVzjJ9lx9bufLt1/X35V1VXfnQ1srkDMIzFKD9NyQ3eycsWQRcGO1dFe1HMrY3+7fTu+1/JeUEUEpGZ5tw== - dependencies: - vue-disqus "^3.0.5" +valid-data-url@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/valid-data-url/-/valid-data-url-3.0.1.tgz#826c1744e71b5632e847dd15dbd45b9fb38aa34f" + integrity sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA== + +vite@~3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.8.tgz#fa29144167d19b773baffd65b3972ea4c12359c9" + integrity sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg== + dependencies: + esbuild "^0.15.9" + postcss "^8.4.16" + resolve "^1.22.1" + rollup "~2.78.0" + optionalDependencies: + fsevents "~2.3.2" -vuepress-plugin-feed@^0.1.8: - version "0.1.9" - resolved "https://registry.npmjs.org/vuepress-plugin-feed/-/vuepress-plugin-feed-0.1.9.tgz" - integrity sha512-iOJkR7zPmJAX0TEVdxNsUT07xNQB6lZFpU7DqsYzO01FhaPkMOOVM5Vx5a/iOOuOggAeoI9H9yuah+cRmCImlw== - dependencies: - feed "2.0.4" - lodash.defaultsdeep "4.6.1" - lodash.isempty "4.4.0" - lodash.trimend "^4.5.1" - lodash.trimstart "^4.5.1" - remove-markdown "0.3.0" - striptags "3.1.1" +vue-demi@*: + version "0.13.11" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" + integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== -vuepress-plugin-mailchimp@^1.4.1: - version "1.4.2" - resolved "https://registry.npmjs.org/vuepress-plugin-mailchimp/-/vuepress-plugin-mailchimp-1.4.2.tgz" - integrity sha512-4t5ZaKZXu5ZkwgE+WW//7CgXgz6DEhRefGrO5aql4PwapauNXlHKgQ2JMf9FRe5y5WHjNpDHYveEDNzISZmxJw== - dependencies: - jsonp "^0.2.1" - query-string "^6.9.0" +vue-router@^4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.1.6.tgz#b70303737e12b4814578d21d68d21618469375a1" + integrity sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ== + dependencies: + "@vue/devtools-api" "^6.4.5" + +vue@^3.2.41, vue@^3.2.45: + version "3.2.45" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.45.tgz#94a116784447eb7dbd892167784619fef379b3c8" + integrity sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA== + dependencies: + "@vue/compiler-dom" "3.2.45" + "@vue/compiler-sfc" "3.2.45" + "@vue/runtime-dom" "3.2.45" + "@vue/server-renderer" "3.2.45" + "@vue/shared" "3.2.45" + +vuepress-plugin-blog2@2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-blog2/-/vuepress-plugin-blog2-2.0.0-beta.134.tgz#73446694d2168dc01dcad289810365c850d7227f" + integrity sha512-dMw3Y6L1ydlqF6EjoVjOoAvNVz0rjHQjZApb9c7Q+/vuXJluc4yilEmXRlsHTp3uVm3tL1RBC9/dlZ4FVbD1Dw== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + chokidar "^3.5.3" + vue "^3.2.45" + vue-router "^4.1.6" + vuepress-shared "2.0.0-beta.134" + +vuepress-plugin-comment2@2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-comment2/-/vuepress-plugin-comment2-2.0.0-beta.134.tgz#c4ae0b4cba5659828a304bf1925e1af505948dff" + integrity sha512-WTPOIjErr+hEWFtTfVDHXFrvf0MNwIXwRpDeiOrIn8V1wfkEv4S1om2YEp1IAtYkLWEq91f0J2+OeU7d8OtX2w== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + "@waline/client" "^2.14.1" + giscus "^1.2.4" + twikoo "^1.6.8" + vue "^3.2.45" + vue-router "^4.1.6" + vuepress-plugin-sass-palette "2.0.0-beta.134" + vuepress-shared "2.0.0-beta.134" + +vuepress-plugin-components@2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-components/-/vuepress-plugin-components-2.0.0-beta.134.tgz#0b6738dad49fba8a2bac294c2915354404c845b7" + integrity sha512-weQASCa12H+vYiheDokWFUPKRp9snAyeZefmu6zTW/hknqD/kmhp4vec63j/TwqNUVaeaSPRlhVsCfg1qc9yyw== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + "@vueuse/core" "^9.6.0" + balloon-css "^1.2.0" + vue "^3.2.45" + vue-router "^4.1.6" + vuepress-plugin-reading-time2 "2.0.0-beta.134" + vuepress-plugin-sass-palette "2.0.0-beta.134" + vuepress-shared "2.0.0-beta.134" + +vuepress-plugin-copy-code2@2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-copy-code2/-/vuepress-plugin-copy-code2-2.0.0-beta.134.tgz#23aad4cb624bba208be0c3a78efab3ef9a1f6efa" + integrity sha512-iS7rksk+n3OjFc3JgEaTHzdCk/IOObzFry+BVfAsAXESG4xNaYO4idZwM+eYEX+aG+1F8IqQ9+lHd1mK48/FLg== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + balloon-css "^1.2.0" + vue "^3.2.45" + vue-router "^4.1.6" + vuepress-plugin-sass-palette "2.0.0-beta.134" + vuepress-shared "2.0.0-beta.134" + +vuepress-plugin-copyright2@2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-copyright2/-/vuepress-plugin-copyright2-2.0.0-beta.134.tgz#ccb665840ab0cbf69799d949cd926f06c40598f3" + integrity sha512-DG70EeT6tXk7qCghSNPjlPUOYpvsVqmOzrGm7+WUdoMZdjzL81F25C8HDYuJ/0x+jTR0V5W0ZWRkPvtsPRKiBw== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + "@vueuse/core" "^9.6.0" + vue "^3.2.45" + vuepress-shared "2.0.0-beta.134" + +vuepress-plugin-feed2@2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-feed2/-/vuepress-plugin-feed2-2.0.0-beta.134.tgz#3e903013c1d321e4184fba8400c732f96a1957b8" + integrity sha512-b/INrhhemF/MnG7gi5xSVXIJEysgnfZ3xSVR90GmvX6gR7TndMPMg1qb6KMaTHP/NCqnqpweYk1N3MdZgogu1A== + dependencies: + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + vuepress-shared "2.0.0-beta.134" + xml-js "^1.6.11" -vuepress-plugin-md-enhance@1.28.3: - version "1.28.3" - resolved "https://registry.npmjs.org/vuepress-plugin-md-enhance/-/vuepress-plugin-md-enhance-1.28.3.tgz" - integrity sha512-8YMZ8zCXBv7/eVUWuSRz7DjhbxRMW6IOjwhv627/InoIscbiDknHrz7XDlh1JFuyW0LS1VcobcvOY8l7z9j4bw== +vuepress-plugin-md-enhance@2.0.0-beta.134, vuepress-plugin-md-enhance@^2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-md-enhance/-/vuepress-plugin-md-enhance-2.0.0-beta.134.tgz#dbfd004e11ea8d87622f90b075b851d2e30957ac" + integrity sha512-yVgvOGnMJnKTiNG9pWVaSkpRwXV/VhSyW4FkMyOOA8Ya59Swj68oG1hdcgw+OuRRCC+GxhWY9k5iLVcnhmTiEA== dependencies: "@babel/core" "*" - "@mr-hope/vuepress-shared" "1.28.3" - "@mr-hope/vuepress-types" "1.28.3" - "@types/hash-sum" "^1.0.0" - "@types/katex" "^0.11.1" - "@types/lodash.debounce" "^4.0.6" + "@mermaid-js/mermaid-mindmap" "^9.2.2" + "@types/katex" "^0.14.0" "@types/markdown-it" "^12.2.3" - "@types/mermaid" "^8.2.8" + "@vue/repl" "^1.3.2" + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + "@vueuse/core" "^9.6.0" + balloon-css "^1.2.0" + chart.js "^4.0.1" + echarts "^5.4.0" flowchart.js "^1.17.1" - katex "^0.15.3" - lodash.debounce "^4.0.8" - mermaid "^8.14.0" - reveal.js "^4.3.0" - vuepress-plugin-container "^2.1.5" + juice "^8.1.0" + katex "^0.16.3" + markdown-it "^13.0.1" + mathjax-full "^3.2.2" + mermaid "^9.2.2" + reveal.js "^4.4.0" + vue "^3.2.45" + vue-router "^4.1.6" + vuepress-plugin-sass-palette "2.0.0-beta.134" + vuepress-shared "2.0.0-beta.134" + +vuepress-plugin-photo-swipe@2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-photo-swipe/-/vuepress-plugin-photo-swipe-2.0.0-beta.134.tgz#faa19d736affc6d28ad6152535a806985fbf3a03" + integrity sha512-p7HDxmriscIDju33Gcccck7/EO5VeUmLofhs5lbsQA3y4/vgEvjeNAKy5wCHIKOMlRCXc/cjBgsJfj0gned84Q== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + "@vueuse/core" "^9.6.0" + photoswipe "^5.3.4" + vue "^3.2.45" + vue-router "^4.1.6" + vuepress-plugin-sass-palette "2.0.0-beta.134" + vuepress-shared "2.0.0-beta.134" + +vuepress-plugin-pwa2@2.0.0-beta.134, vuepress-plugin-pwa2@^2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-pwa2/-/vuepress-plugin-pwa2-2.0.0-beta.134.tgz#e9564ff14795094db18aefc47987c56769498249" + integrity sha512-Vmfbl0PlRl5DjamiDjR0NbvPGW2A8JGCt/0lYDZI98+AMSS1tdfid3FY2p6IB3PPxx7lBNnnHB7U32qq9VPeEQ== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + "@vueuse/core" "^9.6.0" + mitt "^3.0.0" + register-service-worker "^1.7.2" + vue "^3.2.45" + vue-router "^4.1.6" + vuepress-plugin-sass-palette "2.0.0-beta.134" + vuepress-shared "2.0.0-beta.134" + workbox-build "^6.5.4" -vuepress-plugin-photo-swipe@1.28.3: - version "1.28.3" - resolved "https://registry.npmjs.org/vuepress-plugin-photo-swipe/-/vuepress-plugin-photo-swipe-1.28.3.tgz" - integrity sha512-9gLEQmFMge8MxQXciXukL7N16GGJtaFosQeDikb2bNPAK71E+spUvv4OxHLTc6u7dS5snJbC5VrK1oZqLxj9VA== +vuepress-plugin-reading-time2@2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-reading-time2/-/vuepress-plugin-reading-time2-2.0.0-beta.134.tgz#bcb9c5391e2251add8304a3764a37766865224b9" + integrity sha512-hq05Txg7WaDFXXdOcinGKjgVnur095Wy3ahqlqcVrQvV82d6nh0dV0Ila//11a8CA1eT3bJm5gl0H6D4CINudg== dependencies: - "@mr-hope/vuepress-shared" "1.28.3" - "@mr-hope/vuepress-types" "1.28.3" - "@types/photoswipe" "^4.1.2" - photoswipe "^4.1.3" + vuepress-shared "2.0.0-beta.134" vuepress-plugin-right-anchor@^0.5.5: version "0.5.5" @@ -10390,253 +4869,148 @@ vuepress-plugin-right-anchor@^0.5.5: dependencies: lodash.throttle "^4.1.1" -vuepress-plugin-sitemap@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/vuepress-plugin-sitemap/-/vuepress-plugin-sitemap-2.3.1.tgz" - integrity sha512-n+8lbukhrKrsI9H/EX0EBgkE1pn85LAQFvQ5dIvrZP4Kz6JxPOPPNTQmZMhahQV1tXbLZQCEN7A1WZH4x+arJQ== - dependencies: - sitemap "^3.0.0" - -vuepress-plugin-smooth-scroll@^0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz" - integrity sha512-qsQkDftLVFLe8BiviIHaLV0Ea38YLZKKonDGsNQy1IE0wllFpFIEldWD8frWZtDFdx6b/O3KDMgVQ0qp5NjJCg== - dependencies: - smoothscroll-polyfill "^0.4.3" - -vuepress-plugin-typescript@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/vuepress-plugin-typescript/-/vuepress-plugin-typescript-0.3.1.tgz" - integrity sha512-XafM0UMG0TbkAh4UgCYkPUC95SEJKI9GQHP6W685PL8H5cOTIElALRZ5zx1H7wO+i2Jy+1NyZ20vDfwqcCChgg== - dependencies: - cache-loader "^3.0.0" - ts-loader "^7.0.3" - -vuepress-theme-hope@^1.28.4: - version "1.28.4" - resolved "https://registry.npmjs.org/vuepress-theme-hope/-/vuepress-theme-hope-1.28.4.tgz" - integrity sha512-VlQwZd24mAp0KYJR2vpfpwQNgjHSDnGtHW6Oq4FfHTGGJ+SPx0mhgqlgYTR/EpbY1j7jcoEbVPpWXC/y7TtMbg== - dependencies: - "@docsearch/css" "^3.0.0" - "@docsearch/js" "^3.0.0" - "@mr-hope/vuepress-plugin-comment" "1.28.3" - "@mr-hope/vuepress-plugin-components" "1.28.4" - "@mr-hope/vuepress-plugin-copy-code" "1.28.3" - "@mr-hope/vuepress-plugin-feed" "1.28.3" - "@mr-hope/vuepress-plugin-git" "1.28.3" - "@mr-hope/vuepress-plugin-pwa" "1.28.3" - "@mr-hope/vuepress-plugin-seo" "1.28.3" - "@mr-hope/vuepress-plugin-sitemap" "1.28.3" - "@mr-hope/vuepress-plugin-smooth-scroll" "1.28.3" - "@mr-hope/vuepress-shared" "1.28.3" - "@mr-hope/vuepress-theme-types" "1.28.3" - "@types/bcryptjs" "^2.4.2" - "@types/lodash.debounce" "^4.0.6" - "@types/lodash.throttle" "^4.1.6" - "@types/react" "^17.0.40" - "@vuepress/plugin-blog" "^1.9.4" - bcryptjs "^2.4.3" - chalk "^4.1.2" - dayjs "^1.11.0" - docsearch.js "^2.6.3" - lodash.debounce "^4.0.8" - lodash.throttle "^4.1.1" - vuepress-plugin-active-hash "1.28.3" - vuepress-plugin-add-this "1.28.3" - vuepress-plugin-container "^2.1.5" - vuepress-plugin-copyright "^1.0.2" - vuepress-plugin-md-enhance "1.28.3" - vuepress-plugin-photo-swipe "1.28.3" - vuepress-plugin-typescript "^0.3.1" - -vuepress@^1.9.7: - version "1.9.7" - resolved "https://registry.npmjs.org/vuepress/-/vuepress-1.9.7.tgz" - integrity sha512-aSXpoJBGhgjaWUsT1Zs/ZO8JdDWWsxZRlVme/E7QYpn+ZB9iunSgPMozJQNFaHzcRq4kPx5A4k9UhzLRcvtdMg== - dependencies: - "@vuepress/core" "1.9.7" - "@vuepress/theme-default" "1.9.7" - "@vuepress/types" "1.9.7" - cac "^6.5.6" - envinfo "^7.2.0" - opencollective-postinstall "^2.0.2" - update-notifier "^4.0.0" - -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== +vuepress-plugin-sass-palette@2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-sass-palette/-/vuepress-plugin-sass-palette-2.0.0-beta.134.tgz#9306272b37e7abb151133f1b8817f4054e75da80" + integrity sha512-U7pg7+fLB7VMK+kmcYaFzD2x7d+x/FWnp6fLX/JcKx881pE0fgej3s0NuD7Nx0JI52ryhW0V+zgkWWs3aVwWng== + dependencies: + "@vuepress/utils" "2.0.0-beta.53" + chokidar "^3.5.3" + sass "^1.56.1" + vuepress-shared "2.0.0-beta.134" + +vuepress-plugin-seo2@2.0.0-beta.134, vuepress-plugin-seo2@^2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-seo2/-/vuepress-plugin-seo2-2.0.0-beta.134.tgz#19326b1737d7b3382b6830c9b4ca7bed79ad2bf0" + integrity sha512-K0gDKW+ZOfhNvmXGbPLrPI592v0FE56FH6E5pnqeeSPtoWdFnwGazxRqqLv2NENqurASeU0bixSQ1tcAelwHPQ== + dependencies: + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + gray-matter "^4.0.3" + vuepress-shared "2.0.0-beta.134" + +vuepress-plugin-sitemap2@2.0.0-beta.134, vuepress-plugin-sitemap2@^2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-plugin-sitemap2/-/vuepress-plugin-sitemap2-2.0.0-beta.134.tgz#2888f87075ae8353150df2ec091c3af47bf600c9" + integrity sha512-VnIpObJVmLIQggnQm1UDEKaSs7ynef3DYUrRmLZe4+nxh0N5EmjemGMmgNEc+tdOrC/uI3WYVIP4fkNK3Jli7w== + dependencies: + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + sitemap "^7.1.1" + vuepress-shared "2.0.0-beta.134" + +vuepress-shared@2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-shared/-/vuepress-shared-2.0.0-beta.134.tgz#86252cfda3836f3e16a110e06fe5f1d829aa2f4b" + integrity sha512-EHETbsSufS7Wkn1OttAo4+BwEX/7dEsDziY2NX/ntT0wVDKnuccoC6uZPRjLrts1smcQaBSjaSZZW2JmFohF4A== + dependencies: + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/plugin-git" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + dayjs "^1.11.6" + execa "^6.1.0" + fflate "^0.7.4" + ora "^6.1.2" + striptags "3.2.0" + vue "^3.2.45" + vue-router "^4.1.6" + +vuepress-theme-hope@^2.0.0-beta.134: + version "2.0.0-beta.134" + resolved "https://registry.yarnpkg.com/vuepress-theme-hope/-/vuepress-theme-hope-2.0.0-beta.134.tgz#98e6f44ec34973d1e2a0b59579998153e3c0131d" + integrity sha512-n8Kdv0R9BMsqesUBIataC1fh5PUY4ULTLSW7DtwIvk4FZ01sB6fUMHsxe09/Rko7an2KpET+3rYJfuDeRwVOxQ== + dependencies: + "@types/body-scroll-lock" "^3.1.0" + "@vuepress/cli" "2.0.0-beta.53" + "@vuepress/client" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/plugin-active-header-links" "2.0.0-beta.53" + "@vuepress/plugin-container" "2.0.0-beta.53" + "@vuepress/plugin-external-link-icon" "2.0.0-beta.53" + "@vuepress/plugin-git" "2.0.0-beta.53" + "@vuepress/plugin-nprogress" "2.0.0-beta.53" + "@vuepress/plugin-palette" "2.0.0-beta.53" + "@vuepress/plugin-prismjs" "2.0.0-beta.53" + "@vuepress/plugin-theme-data" "2.0.0-beta.53" + "@vuepress/shared" "2.0.0-beta.53" + "@vuepress/utils" "2.0.0-beta.53" + "@vueuse/core" "^9.6.0" + balloon-css "^1.2.0" + bcrypt-ts "^3.0.0" + body-scroll-lock "^3.1.5" + chokidar "^3.5.3" + gray-matter "^4.0.3" + vue "^3.2.45" + vue-router "^4.1.6" + vuepress-plugin-blog2 "2.0.0-beta.134" + vuepress-plugin-comment2 "2.0.0-beta.134" + vuepress-plugin-components "2.0.0-beta.134" + vuepress-plugin-copy-code2 "2.0.0-beta.134" + vuepress-plugin-copyright2 "2.0.0-beta.134" + vuepress-plugin-feed2 "2.0.0-beta.134" + vuepress-plugin-md-enhance "2.0.0-beta.134" + vuepress-plugin-photo-swipe "2.0.0-beta.134" + vuepress-plugin-pwa2 "2.0.0-beta.134" + vuepress-plugin-reading-time2 "2.0.0-beta.134" + vuepress-plugin-sass-palette "2.0.0-beta.134" + vuepress-plugin-seo2 "2.0.0-beta.134" + vuepress-plugin-sitemap2 "2.0.0-beta.134" + vuepress-shared "2.0.0-beta.134" + +vuepress-vite@2.0.0-beta.53: + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/vuepress-vite/-/vuepress-vite-2.0.0-beta.53.tgz#6724d5edd99df2d494a8145206192e4cc88e9b9a" + integrity sha512-kITVMM+LcV5mDQXQXAKgK0adAGMm7oyPls6HPTLM9gUvpSs2A19zfwf8zFoxIF9X+ANay4Tg87egtnJOcp8Wcg== + dependencies: + "@vuepress/bundler-vite" "2.0.0-beta.53" + "@vuepress/cli" "2.0.0-beta.53" + "@vuepress/core" "2.0.0-beta.53" + "@vuepress/theme-default" "2.0.0-beta.53" + +vuepress@^2.0.0-beta.53: + version "2.0.0-beta.53" + resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-2.0.0-beta.53.tgz#3530f36e6ef99827c8182c13db34aca4d4680231" + integrity sha512-swnH25oCHAE0ZIXBAp4gaalIsrxLLn+mguekOybwLcTNQUgbcqf8EXwVxOgN663JzPuHcxRAJg3nN/swKsFifQ== + dependencies: + vuepress-vite "2.0.0-beta.53" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: - chokidar "^2.1.8" + defaults "^1.0.3" -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== +web-resource-inliner@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz#df0822f0a12028805fe80719ed52ab6526886e02" + integrity sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A== dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" + ansi-colors "^4.1.1" + escape-goat "^3.0.0" + htmlparser2 "^5.0.0" + mime "^2.4.6" + node-fetch "^2.6.0" + valid-data-url "^3.0.0" -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -webpack-chain@^4.9.0: - version "4.12.1" - resolved "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.12.1.tgz" - integrity sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ== - dependencies: - deepmerge "^1.5.2" - javascript-stringify "^1.6.0" - -webpack-chain@^6.0.0, webpack-chain@^6.5.1: - version "6.5.1" - resolved "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz" - integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA== - dependencies: - deepmerge "^1.5.2" - javascript-stringify "^2.0.1" - -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.5.1: - version "3.11.3" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz" - integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== - dependencies: - ansi-html-community "0.0.8" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^4.1.2: - version "4.2.2" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== - dependencies: - lodash "^4.17.15" - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.8.1: - version "4.46.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -webpackbar@3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/webpackbar/-/webpackbar-3.2.0.tgz" - integrity sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw== - dependencies: - ansi-escapes "^4.1.0" - chalk "^2.4.1" - consola "^2.6.0" - figures "^3.0.0" - pretty-time "^1.1.0" - std-env "^2.2.1" - text-table "^0.2.0" - wrap-ansi "^5.1.0" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + tr46 "~0.0.3" + webidl-conversions "^3.0.0" whatwg-url@^7.0.0: version "7.1.0" @@ -10647,11 +5021,6 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" -when@~3.6.x: - version "3.6.4" - resolved "https://registry.npmjs.org/when/-/when-3.6.4.tgz" - integrity "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404= sha512-d1VUP9F96w664lKINMGeElWdhhb5sC+thXM+ydZGU3ZnaE09Wv6FaS+mpM9570kcDs/xMfcXJBTLsMdHEFYY9Q==" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" @@ -10663,18 +5032,6 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" - integrity "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" @@ -10682,80 +5039,30 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -window-size@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz" - integrity "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY= sha512-2thx4pB0cV3h+Bw7QmMXcEbdmOzv9t0HFplJH/Lz6yu60hXYy5RT8rUu+wlIreVxWsGN20mo+MHeCSfUpQBwPw==" - -workbox-background-sync@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.2.tgz" - integrity sha512-EjG37LSMDJ1TFlFg56wx6YXbH4/NkG09B9OHvyxx+cGl2gP5OuOzsCY3rOPJSpbcz6jpuA40VIC3HzSD4OvE1g== - dependencies: - idb "^6.1.4" - workbox-core "6.5.2" - -workbox-background-sync@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz" - integrity sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg== - dependencies: - workbox-core "^4.3.1" +wicked-good-xpath@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz#81b0e95e8650e49c94b22298fff8686b5553cf6c" + integrity sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw== -workbox-broadcast-update@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.2.tgz" - integrity sha512-DjJYraYnprTZE/AQNoeogaxI1dPuYmbw+ZJeeP8uXBSbg9SNv5wLYofQgywXeRepv4yr/vglMo9yaHUmBMc+4Q== +workbox-background-sync@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz#3141afba3cc8aa2ae14c24d0f6811374ba8ff6a9" + integrity sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g== dependencies: - workbox-core "6.5.2" + idb "^7.0.1" + workbox-core "6.5.4" -workbox-broadcast-update@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz" - integrity sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA== +workbox-broadcast-update@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz#8441cff5417cd41f384ba7633ca960a7ffe40f66" + integrity sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw== dependencies: - workbox-core "^4.3.1" + workbox-core "6.5.4" -workbox-build@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz" - integrity sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw== - dependencies: - "@babel/runtime" "^7.3.4" - "@hapi/joi" "^15.0.0" - common-tags "^1.8.0" - fs-extra "^4.0.2" - glob "^7.1.3" - lodash.template "^4.4.0" - pretty-bytes "^5.1.0" - stringify-object "^3.3.0" - strip-comments "^1.0.2" - workbox-background-sync "^4.3.1" - workbox-broadcast-update "^4.3.1" - workbox-cacheable-response "^4.3.1" - workbox-core "^4.3.1" - workbox-expiration "^4.3.1" - workbox-google-analytics "^4.3.1" - workbox-navigation-preload "^4.3.1" - workbox-precaching "^4.3.1" - workbox-range-requests "^4.3.1" - workbox-routing "^4.3.1" - workbox-strategies "^4.3.1" - workbox-streams "^4.3.1" - workbox-sw "^4.3.1" - workbox-window "^4.3.1" - -workbox-build@^6.5.1: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.2.tgz" - integrity sha512-TVi4Otf6fgwikBeMpXF9n0awHfZTMNu/nwlMIT9W+c13yvxkmDFMPb7vHYK6RUmbcxwPnz4I/R+uL76+JxG4JQ== +workbox-build@^6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.4.tgz#7d06d31eb28a878817e1c991c05c5b93409f0389" + integrity sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA== dependencies: "@apideck/better-ajv-errors" "^0.3.1" "@babel/core" "^7.11.1" @@ -10779,263 +5086,127 @@ workbox-build@^6.5.1: strip-comments "^2.0.1" tempy "^0.6.0" upath "^1.2.0" - workbox-background-sync "6.5.2" - workbox-broadcast-update "6.5.2" - workbox-cacheable-response "6.5.2" - workbox-core "6.5.2" - workbox-expiration "6.5.2" - workbox-google-analytics "6.5.2" - workbox-navigation-preload "6.5.2" - workbox-precaching "6.5.2" - workbox-range-requests "6.5.2" - workbox-recipes "6.5.2" - workbox-routing "6.5.2" - workbox-strategies "6.5.2" - workbox-streams "6.5.2" - workbox-sw "6.5.2" - workbox-window "6.5.2" - -workbox-cacheable-response@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.2.tgz" - integrity sha512-UnHGih6xqloV808T7ve1iNKZMbpML0jGLqkkmyXkJbZc5j16+HRSV61Qrh+tiq3E3yLvFMGJ3AUBODOPNLWpTg== - dependencies: - workbox-core "6.5.2" - -workbox-cacheable-response@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz" - integrity sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw== - dependencies: - workbox-core "^4.3.1" - -workbox-core@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.2.tgz" - integrity sha512-IlxLGQf+wJHCR+NM0UWqDh4xe/Gu6sg2i4tfZk6WIij34IVk9BdOQgi6WvqSHd879jbQIUgL2fBdJUJyAP5ypQ== - -workbox-core@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz" - integrity sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg== - -workbox-expiration@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.2.tgz" - integrity sha512-5Hfp0uxTZJrgTiy9W7AjIIec+9uTOtnxY/tRBm4DbqcWKaWbVTa+izrKzzOT4MXRJJIJUmvRhWw4oo8tpmMouw== - dependencies: - idb "^6.1.4" - workbox-core "6.5.2" - -workbox-expiration@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz" - integrity sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw== - dependencies: - workbox-core "^4.3.1" - -workbox-google-analytics@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.2.tgz" - integrity sha512-8SMar+N0xIreP5/2we3dwtN1FUmTMScoopL86aKdXBpio8vXc8Oqb5fCJG32ialjN8BAOzDqx/FnGeCtkIlyvw== - dependencies: - workbox-background-sync "6.5.2" - workbox-core "6.5.2" - workbox-routing "6.5.2" - workbox-strategies "6.5.2" - -workbox-google-analytics@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz" - integrity sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg== - dependencies: - workbox-background-sync "^4.3.1" - workbox-core "^4.3.1" - workbox-routing "^4.3.1" - workbox-strategies "^4.3.1" - -workbox-navigation-preload@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.2.tgz" - integrity sha512-iqDNWWMswjCsZuvGFDpcX1Z8InBVAlVBELJ28xShsWWntALzbtr0PXMnm2WHkXCc56JimmGldZi1N5yDPiTPOg== - dependencies: - workbox-core "6.5.2" - -workbox-navigation-preload@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz" - integrity sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw== - dependencies: - workbox-core "^4.3.1" - -workbox-precaching@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.2.tgz" - integrity sha512-OZAlQ8AAT20KugGKKuJMHdQ8X1IyNQaLv+mPTHj+8Dmv8peBq5uWNzs4g/1OSFmXsbXZ6a1CBC6YtQWVPhJQ9w== + workbox-background-sync "6.5.4" + workbox-broadcast-update "6.5.4" + workbox-cacheable-response "6.5.4" + workbox-core "6.5.4" + workbox-expiration "6.5.4" + workbox-google-analytics "6.5.4" + workbox-navigation-preload "6.5.4" + workbox-precaching "6.5.4" + workbox-range-requests "6.5.4" + workbox-recipes "6.5.4" + workbox-routing "6.5.4" + workbox-strategies "6.5.4" + workbox-streams "6.5.4" + workbox-sw "6.5.4" + workbox-window "6.5.4" + +workbox-cacheable-response@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz#a5c6ec0c6e2b6f037379198d4ef07d098f7cf137" + integrity sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug== dependencies: - workbox-core "6.5.2" - workbox-routing "6.5.2" - workbox-strategies "6.5.2" + workbox-core "6.5.4" -workbox-precaching@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz" - integrity sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ== - dependencies: - workbox-core "^4.3.1" +workbox-core@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.4.tgz#df48bf44cd58bb1d1726c49b883fb1dffa24c9ba" + integrity sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q== -workbox-range-requests@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.2.tgz" - integrity sha512-zi5VqF1mWqfCyJLTMXn1EuH/E6nisqWDK1VmOJ+TnjxGttaQrseOhMn+BMvULFHeF8AvrQ0ogfQ6bSv0rcfAlg== +workbox-expiration@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.4.tgz#501056f81e87e1d296c76570bb483ce5e29b4539" + integrity sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ== dependencies: - workbox-core "6.5.2" + idb "^7.0.1" + workbox-core "6.5.4" -workbox-range-requests@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz" - integrity sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA== +workbox-google-analytics@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz#c74327f80dfa4c1954cbba93cd7ea640fe7ece7d" + integrity sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg== dependencies: - workbox-core "^4.3.1" + workbox-background-sync "6.5.4" + workbox-core "6.5.4" + workbox-routing "6.5.4" + workbox-strategies "6.5.4" -workbox-recipes@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.2.tgz" - integrity sha512-2lcUKMYDiJKvuvRotOxLjH2z9K7jhj8GNUaHxHNkJYbTCUN3LsX1cWrsgeJFDZ/LgI565t3fntpbG9J415ZBXA== +workbox-navigation-preload@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz#ede56dd5f6fc9e860a7e45b2c1a8f87c1c793212" + integrity sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng== dependencies: - workbox-cacheable-response "6.5.2" - workbox-core "6.5.2" - workbox-expiration "6.5.2" - workbox-precaching "6.5.2" - workbox-routing "6.5.2" - workbox-strategies "6.5.2" + workbox-core "6.5.4" -workbox-routing@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.2.tgz" - integrity sha512-nR1w5PjF6IVwo0SX3oE88LhmGFmTnqqU7zpGJQQPZiKJfEKgDENQIM9mh3L1ksdFd9Y3CZVkusopHfxQvit/BA== +workbox-precaching@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.4.tgz#740e3561df92c6726ab5f7471e6aac89582cab72" + integrity sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg== dependencies: - workbox-core "6.5.2" + workbox-core "6.5.4" + workbox-routing "6.5.4" + workbox-strategies "6.5.4" -workbox-routing@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz" - integrity sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g== +workbox-range-requests@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz#86b3d482e090433dab38d36ae031b2bb0bd74399" + integrity sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg== dependencies: - workbox-core "^4.3.1" + workbox-core "6.5.4" -workbox-strategies@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.2.tgz" - integrity sha512-fgbwaUMxbG39BHjJIs2y2X21C0bmf1Oq3vMQxJ1hr6y5JMJIm8rvKCcf1EIdAr+PjKdSk4ddmgyBQ4oO8be4Uw== +workbox-recipes@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.4.tgz#cca809ee63b98b158b2702dcfb741b5cc3e24acb" + integrity sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA== dependencies: - workbox-core "6.5.2" + workbox-cacheable-response "6.5.4" + workbox-core "6.5.4" + workbox-expiration "6.5.4" + workbox-precaching "6.5.4" + workbox-routing "6.5.4" + workbox-strategies "6.5.4" -workbox-strategies@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz" - integrity sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw== +workbox-routing@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.4.tgz#6a7fbbd23f4ac801038d9a0298bc907ee26fe3da" + integrity sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg== dependencies: - workbox-core "^4.3.1" + workbox-core "6.5.4" -workbox-streams@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.2.tgz" - integrity sha512-ovD0P4UrgPtZ2Lfc/8E8teb1RqNOSZr+1ZPqLR6sGRZnKZviqKbQC3zVvvkhmOIwhWbpL7bQlWveLVONHjxd5w== +workbox-strategies@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.4.tgz#4edda035b3c010fc7f6152918370699334cd204d" + integrity sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw== dependencies: - workbox-core "6.5.2" - workbox-routing "6.5.2" + workbox-core "6.5.4" -workbox-streams@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz" - integrity sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA== +workbox-streams@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.4.tgz#1cb3c168a6101df7b5269d0353c19e36668d7d69" + integrity sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg== dependencies: - workbox-core "^4.3.1" + workbox-core "6.5.4" + workbox-routing "6.5.4" -workbox-sw@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.2.tgz" - integrity sha512-2KhlYqtkoqlnPdllj2ujXUKRuEFsRDIp6rdE4l1PsxiFHRAFaRTisRQpGvRem5yxgXEr+fcEKiuZUW2r70KZaw== - -workbox-sw@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz" - integrity sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w== +workbox-sw@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.4.tgz#d93e9c67924dd153a61367a4656ff4d2ae2ed736" + integrity sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA== -workbox-window@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.2.tgz" - integrity sha512-2kZH37r9Wx8swjEOL4B8uGM53lakMxsKkQ7mOKzGA/QAn/DQTEZGrdHWtypk2tbhKY5S0jvPS+sYDnb2Z3378A== +workbox-window@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.4.tgz#d991bc0a94dff3c2dbb6b84558cff155ca878e91" + integrity sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug== dependencies: "@types/trusted-types" "^2.0.2" - workbox-core "6.5.2" - -workbox-window@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz" - integrity sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg== - dependencies: - workbox-core "^4.3.1" - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz" - integrity "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" + workbox-core "6.5.4" wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^5.2.2: - version "5.2.3" - resolved "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz" - integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== - dependencies: - async-limiter "~1.0.0" - -ws@^6.2.1: - version "6.2.2" - resolved "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== - dependencies: - async-limiter "~1.0.0" - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - xml-js@^1.6.11: version "1.6.11" resolved "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz" @@ -11043,92 +5214,19 @@ xml-js@^1.6.11: dependencies: sax "^1.2.4" -xml@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz" - integrity "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==" +xmldom-sre@0.1.31: + version "0.1.31" + resolved "https://registry.yarnpkg.com/xmldom-sre/-/xmldom-sre-0.1.31.tgz#10860d5bab2c603144597d04bf2c4980e98067f4" + integrity sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw== -xmlbuilder@^13.0.0: - version "13.0.2" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz" - integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== +yaml@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.3.tgz#9b3a4c8aff9821b696275c79a8bee8399d945207" + integrity sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg== -xss@^1.0.6: - version "1.0.10" - resolved "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz" - integrity sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw== +zrender@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/zrender/-/zrender-5.4.0.tgz#d4f76e527b2e3bbd7add2bdaf27a16af85785576" + integrity sha512-rOS09Z2HSVGFs2dn/TuYk5BlCaZcVe8UDLLjj1ySYF828LATKKdxuakSZMvrDz54yiKPDYVfjdKqcX8Jky3BIA== dependencies: - commander "^2.20.3" - cssfilter "0.0.10" - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz" - integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" - integrity "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^3.10.0: - version "3.32.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz" - integrity "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU= sha512-ONJZiimStfZzhKamYvR/xvmgW3uEkAUFSP91y2caTEPhzF6uP2JfPiVZcq66b/YR0C3uitxSV7+T1x8p5bkmMg==" - dependencies: - camelcase "^2.0.1" - cliui "^3.0.3" - decamelize "^1.1.1" - os-locale "^1.4.0" - string-width "^1.0.1" - window-size "^0.1.4" - y18n "^3.2.0" - -zepto@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/zepto/-/zepto-1.2.0.tgz" - integrity "sha1-4Se9nmb9hGvl6rSME5SIL3wOT5g= sha512-C1x6lfvBICFTQIMgbt3JqMOno3VOtkWat/xEakLTOurskYIHPmzJrzd1e8BnmtdDVJlGuk5D+FxyCA8MPmkIyA==" + tslib "2.3.0"