From 6029da43954abe7db868c336fcdd4c74b9641ad6 Mon Sep 17 00:00:00 2001 From: daiagi Date: Sat, 22 Jul 2023 11:34:05 +0700 Subject: [PATCH 01/18] make Auth size prop optional (remove console warning) --- components/shared/Auth.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/shared/Auth.vue b/components/shared/Auth.vue index 7e58a3590a..9ee289ace3 100644 --- a/components/shared/Auth.vue +++ b/components/shared/Auth.vue @@ -25,7 +25,7 @@ const account = computed({ withDefaults( defineProps<{ - size: number + size?: number }>(), { size: 24, From 825b84f7703d1d6574018091e63d54281b9ba42d Mon Sep 17 00:00:00 2001 From: daiagi Date: Sat, 22 Jul 2023 11:34:52 +0700 Subject: [PATCH 02/18] refactor transfer page --- components/transfer/Transfer.vue | 432 ++++++++++++++++++++++++++++ composables/useChain.ts | 4 + pages/_prefix/transfer.vue | 472 +------------------------------ 3 files changed, 441 insertions(+), 467 deletions(-) create mode 100644 components/transfer/Transfer.vue diff --git a/components/transfer/Transfer.vue b/components/transfer/Transfer.vue new file mode 100644 index 0000000000..137ac943ed --- /dev/null +++ b/components/transfer/Transfer.vue @@ -0,0 +1,432 @@ + + + diff --git a/composables/useChain.ts b/composables/useChain.ts index 92696d243e..a520497973 100644 --- a/composables/useChain.ts +++ b/composables/useChain.ts @@ -30,6 +30,9 @@ export default function () { : symbol }) + const blockExplorer = computed(() => { + return chainProperties.value.blockExplorer ?? 'https://kusama.subscan.io/' + }) return { decimals, unit, @@ -37,5 +40,6 @@ export default function () { chainProperties, availableChains, chainSymbol, + blockExplorer, } } diff --git a/pages/_prefix/transfer.vue b/pages/_prefix/transfer.vue index a3baeecb04..81899233da 100644 --- a/pages/_prefix/transfer.vue +++ b/pages/_prefix/transfer.vue @@ -1,477 +1,15 @@ From 5ea8887e1cdfb231aa81283b59c733fd816ceaa8 Mon Sep 17 00:00:00 2001 From: daiagi Date: Sun, 23 Jul 2023 09:51:44 +0700 Subject: [PATCH 03/18] =?UTF-8?q?=F0=9F=94=A5=20remove=20tabs=20from=20mas?= =?UTF-8?q?smint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/massmint/Massmint.vue | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/components/massmint/Massmint.vue b/components/massmint/Massmint.vue index 7cf20eab35..bc87401b86 100644 --- a/components/massmint/Massmint.vue +++ b/components/massmint/Massmint.vue @@ -8,16 +8,6 @@ {{ $t('massmint.backToOnbaording') }} -
- -

() @@ -199,8 +188,6 @@ const startMint = () => { ) } -const tabs = ['Collection', 'NFT', 'Mass Mint'] - const onCollectionSelected = (collection) => { selectedCollection.value = collection } From 18077576d830a1c7118ded3fb450c4ba85544943 Mon Sep 17 00:00:00 2001 From: Luke Fishman Date: Mon, 24 Jul 2023 15:49:16 +0700 Subject: [PATCH 04/18] Nuxt-propert-decorator/more-pages (#6457) * home page * snke/assets * snek/claim * snek/imcomingOffers * snek/offers * snek/stats * stmn/waifu --- pages/index.vue | 10 +--------- pages/snek/assets.vue | 8 +++----- pages/snek/claim.vue | 7 +++---- pages/snek/incomingOffers.vue | 8 +++----- pages/snek/offers.vue | 8 +++----- pages/snek/stats.vue | 8 +++----- pages/stmn/waifu.vue | 7 +++---- 7 files changed, 19 insertions(+), 37 deletions(-) diff --git a/pages/index.vue b/pages/index.vue index 18b4133076..1f983c17f3 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -3,18 +3,10 @@ diff --git a/pages/snek/assets.vue b/pages/snek/assets.vue index d4449c751d..29faba4c54 100644 --- a/pages/snek/assets.vue +++ b/pages/snek/assets.vue @@ -3,12 +3,10 @@ diff --git a/pages/snek/claim.vue b/pages/snek/claim.vue index 3e32a6ab37..37decbc720 100644 --- a/pages/snek/claim.vue +++ b/pages/snek/claim.vue @@ -3,10 +3,10 @@ diff --git a/pages/snek/incomingOffers.vue b/pages/snek/incomingOffers.vue index 2102ecbb06..6405abfe12 100644 --- a/pages/snek/incomingOffers.vue +++ b/pages/snek/incomingOffers.vue @@ -3,12 +3,10 @@ diff --git a/pages/snek/offers.vue b/pages/snek/offers.vue index 5c7d32c685..d373e8ebc3 100644 --- a/pages/snek/offers.vue +++ b/pages/snek/offers.vue @@ -3,13 +3,11 @@ diff --git a/pages/snek/stats.vue b/pages/snek/stats.vue index 8498742836..5f6d7a1fe6 100644 --- a/pages/snek/stats.vue +++ b/pages/snek/stats.vue @@ -3,12 +3,10 @@ diff --git a/pages/stmn/waifu.vue b/pages/stmn/waifu.vue index 14df201c8b..a67116629e 100644 --- a/pages/stmn/waifu.vue +++ b/pages/stmn/waifu.vue @@ -3,10 +3,10 @@ From a10bdeab0503f94d7c4d80a93a26bd7410b616cc Mon Sep 17 00:00:00 2001 From: Jarsen <31397967+Jarsen136@users.noreply.github.com> Date: Mon, 24 Jul 2023 16:57:29 +0800 Subject: [PATCH 05/18] migrate/remove inlineMixin and rmrkVersionMixin (#6458) * refactor: migrate inlineMixin * refactor: migrate rmrkVersionMixin * fix: rmrk version --- components/rmrk/Create/CreateToken.vue | 6 ++-- components/rmrk/Create/SimpleMint.vue | 12 ++++++-- components/shared/LinkResolver.vue | 39 ++++++++++++++------------ utils/mixins/inlineMixin.ts | 14 --------- utils/mixins/rmrkVersionMixin.ts | 14 --------- 5 files changed, 35 insertions(+), 50 deletions(-) delete mode 100644 utils/mixins/inlineMixin.ts delete mode 100644 utils/mixins/rmrkVersionMixin.ts diff --git a/components/rmrk/Create/CreateToken.vue b/components/rmrk/Create/CreateToken.vue index d071980fcc..4add2395a1 100644 --- a/components/rmrk/Create/CreateToken.vue +++ b/components/rmrk/Create/CreateToken.vue @@ -86,7 +86,6 @@ import AuthMixin from '@/utils/mixins/authMixin' import ChainMixin from '@/utils/mixins/chainMixin' import MetaTransactionMixin from '@/utils/mixins/metaMixin' import PrefixMixin from '@/utils/mixins/prefixMixin' -import RmrkVersionMixin from '@/utils/mixins/rmrkVersionMixin' import UseApiMixin from '@/utils/mixins/useApiMixin' import { notificationTypes, @@ -130,7 +129,6 @@ const components = { @Component({ components }) export default class CreateToken extends mixins( - RmrkVersionMixin, MetaTransactionMixin, ChainMixin, PrefixMixin, @@ -170,6 +168,10 @@ export default class CreateToken extends mixins( this.price = value } + get version() { + return useRmrkVersion().version.value + } + get hasPrice() { return Number(this.price) } diff --git a/components/rmrk/Create/SimpleMint.vue b/components/rmrk/Create/SimpleMint.vue index 551ce5f29a..742597c8c3 100644 --- a/components/rmrk/Create/SimpleMint.vue +++ b/components/rmrk/Create/SimpleMint.vue @@ -189,7 +189,6 @@ import { uploadDirectWhenMultiple } from '@/utils/directUpload' import { emptyObject } from '@/utils/empty' import ChainMixin from '@/utils/mixins/chainMixin' import PrefixMixin from '@/utils/mixins/prefixMixin' -import RmrkVersionMixin from '@/utils/mixins/rmrkVersionMixin' import SubscribeMixin from '@/utils/mixins/subscribeMixin' import TransactionMixin from '@/utils/mixins/txMixin' import UseApiMixin from '@/utils/mixins/useApiMixin' @@ -262,7 +261,6 @@ const components = { }) export default class SimpleMint extends mixins( SubscribeMixin, - RmrkVersionMixin, TransactionMixin, ChainMixin, PrefixMixin, @@ -315,6 +313,10 @@ export default class SimpleMint extends mixins( return useIdentityStore() } + get version() { + return useRmrkVersion().version.value + } + get balanceNotEnoughMessage() { return this.balanceNotEnough ? this.$t('tooltip.notEnoughBalance') : '' } @@ -434,6 +436,9 @@ export default class SimpleMint extends mixins( protected async estimateTx() { const { accountId, version } = this + if (!version) { + return + } const api = await this.useApi() const toRemark = mapAsSystemRemark(api) @@ -516,6 +521,9 @@ export default class SimpleMint extends mixins( this.isLoading = true this.status = 'loader.ipfs' const { accountId, version } = this + if (!version) { + return + } this.rmrkMint.max = Number(this.rmrkMint.max) const api = await this.useApi() const toRemark = mapAsSystemRemark(api) diff --git a/components/shared/LinkResolver.vue b/components/shared/LinkResolver.vue index 0905934915..1c6e1baa20 100644 --- a/components/shared/LinkResolver.vue +++ b/components/shared/LinkResolver.vue @@ -1,5 +1,5 @@ - diff --git a/utils/mixins/inlineMixin.ts b/utils/mixins/inlineMixin.ts deleted file mode 100644 index 850ebb739e..0000000000 --- a/utils/mixins/inlineMixin.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Component, Vue, Prop } from 'nuxt-property-decorator' -/* - * refer to https://stackoverflow.com/questions/51873087/unable-to-use-mixins-in-vue-with-typescript - * usage import Component, { mixins } from 'vue-class-component'; - * class ExtendedClass extends mixins(SubscribeMixin) { - */ -@Component -export default class InlineMixin extends Vue { - @Prop(Boolean) inline!: boolean - - get is() { - return this.inline ? 'span' : 'div' - } -} diff --git a/utils/mixins/rmrkVersionMixin.ts b/utils/mixins/rmrkVersionMixin.ts deleted file mode 100644 index 96dcf11b1b..0000000000 --- a/utils/mixins/rmrkVersionMixin.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Component, mixins } from 'nuxt-property-decorator' -import PrefixMixin from '@/utils/mixins/prefixMixin' - -/* - * refer to https://stackoverflow.com/questions/51873087/unable-to-use-mixins-in-vue-with-typescript - * usage import Component, { mixins } from 'vue-class-component'; - * class ExtendedClass extends mixins(SubscribeMixin) { - */ -@Component -export default class RmrkVersionMixin extends mixins(PrefixMixin) { - get version() { - return this.urlPrefix === 'rmrk' ? '1.0.0' : '2.0.0' - } -} From ac3aee22b09c633274616517fe332ff4c9daa48d Mon Sep 17 00:00:00 2001 From: Jarsen <31397967+Jarsen136@users.noreply.github.com> Date: Mon, 24 Jul 2023 16:59:50 +0800 Subject: [PATCH 06/18] fix: collectionId in path of url (#6454) * fix: collectionId in path of url * fix: remove unused code * fix: remove navigation warning --------- Co-authored-by: Viki Val --- .../items/ItemsGrid/utils/useSearchParams.ts | 8 ------- components/search/SearchBar.vue | 24 ++++--------------- .../search/utils/useCollectionSearch.ts | 13 ++++++---- composables/useListInfiniteScroll.ts | 10 ++++---- stores/search.ts | 19 +++++++++++++++ 5 files changed, 38 insertions(+), 36 deletions(-) create mode 100644 stores/search.ts diff --git a/components/items/ItemsGrid/utils/useSearchParams.ts b/components/items/ItemsGrid/utils/useSearchParams.ts index abfc511e67..c5af6c65ae 100644 --- a/components/items/ItemsGrid/utils/useSearchParams.ts +++ b/components/items/ItemsGrid/utils/useSearchParams.ts @@ -80,14 +80,6 @@ function useSearchByCollections() { }, }, ] - } else if (route.query.collectionId) { - return [ - { - collection: { - id_eq: route.query.collectionId, - }, - }, - ] } return [] }), diff --git a/components/search/SearchBar.vue b/components/search/SearchBar.vue index 9f1d8f2259..ece726538e 100644 --- a/components/search/SearchBar.vue +++ b/components/search/SearchBar.vue @@ -69,8 +69,8 @@ import { import { SearchQuery } from './types' import PrefixMixin from '~/utils/mixins/prefixMixin' import KeyboardEventsMixin from '~/utils/mixins/keyboardEventsMixin' -import { useWindowSize } from '@vueuse/core' import { NeoAutocomplete } from '@kodadot1/brick' +import { useCollectionSearch } from '@/components/search/utils/useCollectionSearch' @Component({ components: { @@ -93,20 +93,11 @@ export default class SearchBar extends mixins( this.initKeyboardEventHandler({ k: this.bindSearchEvents, }) - } - - get isMobile() { - return useWindowSize().width.value < 1024 - } - - get isCollectionPage() { - return this.$route.name === 'prefix-collection-id' + this.onSearchInCollectionModeChanged() } get isSearchInCollectionMode() { - return ( - this.enableSearchInCollection && this.isCollectionPage && !this.isMobile - ) + return useCollectionSearch().isCollectionSearchMode.value } get placeholderContent() { @@ -164,14 +155,9 @@ export default class SearchBar extends mixins( this.searchRef.isActive = false } - @Watch('isSearchInCollectionMode', { immediate: true }) + @Watch('enableSearchInCollection', { immediate: true }) private onSearchInCollectionModeChanged() { - const { replaceUrl } = useReplaceUrl() - replaceUrl({ - collectionId: this.isSearchInCollectionMode - ? this.$route.params.id - : undefined, - }) + useCollectionSearch().setCollectionSearchMode(this.enableSearchInCollection) } } diff --git a/components/search/utils/useCollectionSearch.ts b/components/search/utils/useCollectionSearch.ts index e6ca44d0fd..f33ef65815 100644 --- a/components/search/utils/useCollectionSearch.ts +++ b/components/search/utils/useCollectionSearch.ts @@ -1,16 +1,21 @@ -import { readParam } from '@/composables/useReplaceUrl' +import { useSearchStore } from '@/stores/search' export const useCollectionSearch = () => { - const query = useRoute().query const route = useRoute() - const collectionId = readParam(query?.collectionId) + const isMobile = computed(() => useWindowSize().width.value < 1024) + const searchStore = useSearchStore() const isCollectionSearchMode = computed(() => { - return route.name === 'prefix-collection-id' && collectionId + return ( + route.name === 'prefix-collection-id' && + searchStore.isCollectionSearchMode && + !isMobile.value + ) }) return { isCollectionSearchMode, + setCollectionSearchMode: searchStore.setCollectionSearchMode, } } diff --git a/composables/useListInfiniteScroll.ts b/composables/useListInfiniteScroll.ts index 3069ea1bd7..7144d9c219 100644 --- a/composables/useListInfiniteScroll.ts +++ b/composables/useListInfiniteScroll.ts @@ -96,7 +96,8 @@ export default function ({ useResizeObserver(document.body, onResize) const replaceUrlPage = (targetPage: string) => { - if (targetPage === route.query.page) { + const isFirstPage = targetPage === '1' + if (targetPage === route.query.page || (isFirstPage && !route.query.page)) { return } // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -104,10 +105,9 @@ export default function ({ router .replace({ path: String(route.path), - query: - targetPage === '1' - ? { ...restQuery } - : { ...restQuery, page: targetPage }, + query: isFirstPage + ? { ...restQuery } + : { ...restQuery, page: targetPage }, }) .catch($consola.warn) } diff --git a/stores/search.ts b/stores/search.ts new file mode 100644 index 0000000000..bf33653822 --- /dev/null +++ b/stores/search.ts @@ -0,0 +1,19 @@ +import { defineStore } from 'pinia' + +interface State { + isCollectionSearch: boolean +} + +export const useSearchStore = defineStore('search', { + state: (): State => ({ + isCollectionSearch: true, + }), + getters: { + isCollectionSearchMode: (state) => state.isCollectionSearch, + }, + actions: { + setCollectionSearchMode(payload) { + this.isCollectionSearch = payload + }, + }, +}) From b46e2e6e4ef68d155cc6c136c07eae42b9a851eb Mon Sep 17 00:00:00 2001 From: Preschian Febryantara Date: Mon, 24 Jul 2023 16:14:40 +0700 Subject: [PATCH 07/18] feat: KodaDot blog --- components/blog/BlogPost.vue | 81 +++++++++++ content/blog/what-is-erc6551.md | 24 ++++ nuxt.config.js | 13 +- package.json | 2 +- pages/blog/_slug.vue | 3 + pages/blog/index.vue | 112 +++++++++++++++ pages/first-time.vue | 9 -- pnpm-lock.yaml | 248 +++++++++++--------------------- 8 files changed, 314 insertions(+), 178 deletions(-) create mode 100644 components/blog/BlogPost.vue create mode 100644 content/blog/what-is-erc6551.md create mode 100644 pages/blog/_slug.vue create mode 100644 pages/blog/index.vue delete mode 100644 pages/first-time.vue diff --git a/components/blog/BlogPost.vue b/components/blog/BlogPost.vue new file mode 100644 index 0000000000..a864bbf8bd --- /dev/null +++ b/components/blog/BlogPost.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/content/blog/what-is-erc6551.md b/content/blog/what-is-erc6551.md new file mode 100644 index 0000000000..a9bb014c53 --- /dev/null +++ b/content/blog/what-is-erc6551.md @@ -0,0 +1,24 @@ +--- +date: 2023-03-18 +tags: Tokens +image: https://eips.ethereum.org/assets/eip-6551/diagram.png +title: What is ERC6551 - Token Bound Accounts (TBA) ? +subtitle: Understand ERC6551 which redefines how ERC-721 tokens interact with the Ethereum blockchain by giving every non-fungible token its very own smart contract account. +--- + +## What is ERC6551? + +EIP6551 is a proposal made to extend the functionality of every ERC-721 token by attaching them to specific smart contract accounts, effectively providing on-chain identity to these tokens. Each non-fungible token gets a unique, global identifier which gives it a distinct identity. + +## How does ERC6551 operate? + +EIP6551 operates by creating uniquely, deterministically addressed smart contract accounts for each ERC-721 token via a permissionless registry. It maintains complete compatibility with existing ERC-721 token contracts, therefore not requiring any changes to previously deployed ERC-721 contracts. Control over each token-bound account is given to the owner of the ERC-721 token, enabling the owner to initiate on-chain actions on behalf of their token. + +## Unique features of ERC6551 + +The unique feature of ERC6551 lies in its ability to turn each ERC-721 token into a standalone entity capable of owning assets and interacting with applications on the Ethereum blockchain. This expands the functionality of non-fungible tokens, allowing them to accumulate assets and record transaction history. + +## Conclusion + +ERC6551 is a breakthrough in enhancing the capabilities of non-fungible tokens. Through ERC6551, ERC-721 tokens not only represent a unique digital asset but can also interact independently with the blockchain and other on-chain applications. This opens a plethora of possibilities in the world of non-fungible tokens on the KodaDot platform. +​ diff --git a/nuxt.config.js b/nuxt.config.js index 6df596f226..5f728e8b96 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -2,6 +2,8 @@ import path from 'path' import * as fs from 'fs' import { defineNuxtConfig } from '@nuxt/bridge' import SentryWebpackPlugin from '@sentry/webpack-plugin' +import Mode from 'frontmatter-markdown-loader/mode' + import { manifestIcons } from './utils/config/pwa' import { URLS, apolloClientConfig } from './utils/constants' @@ -405,10 +407,17 @@ export default defineNuxtConfig({ ) } - // add markdown loader + // add frontmatter-markdown-loader config.module.rules.push({ test: /\.md$/, - use: 'raw-loader', + include: path.resolve(__dirname, 'content'), + loader: 'frontmatter-markdown-loader', + options: { + mode: [Mode.VUE_COMPONENT, Mode.META], + vue: { + root: 'markdown-body', + }, + }, }) config.module.rules.push({ diff --git a/package.json b/package.json index ea92be5f7b..c1c1fc32d8 100644 --- a/package.json +++ b/package.json @@ -162,13 +162,13 @@ "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-unicorn": "^42.0.0", "eslint-plugin-vue": "^8.7.1", + "frontmatter-markdown-loader": "^3.7.0", "glob": "^8.1.0", "graphql-tag": "^2.12.6", "husky": "^7.0.4", "jsdom": "^19.0.0", "lint-staged": "^12.5.0", "prettier": "^2.8.8", - "raw-loader": "^4.0.2", "sass": "^1.64.0", "sass-loader": "^10.4.1", "typescript": "^4.9.5", diff --git a/pages/blog/_slug.vue b/pages/blog/_slug.vue new file mode 100644 index 0000000000..61ada8c59c --- /dev/null +++ b/pages/blog/_slug.vue @@ -0,0 +1,3 @@ + diff --git a/pages/blog/index.vue b/pages/blog/index.vue new file mode 100644 index 0000000000..a9a6a3d59c --- /dev/null +++ b/pages/blog/index.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/pages/first-time.vue b/pages/first-time.vue deleted file mode 100644 index a5fd56aec6..0000000000 --- a/pages/first-time.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6559ebf183..b1e917a4f5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.1' +lockfileVersion: '6.0' settings: autoInstallPeers: false @@ -317,6 +317,9 @@ importers: eslint-plugin-vue: specifier: ^8.7.1 version: 8.7.1(eslint@8.45.0) + frontmatter-markdown-loader: + specifier: ^3.7.0 + version: 3.7.0 glob: specifier: ^8.1.0 version: 8.1.0 @@ -335,9 +338,6 @@ importers: prettier: specifier: ^2.8.8 version: 2.8.8 - raw-loader: - specifier: ^4.0.2 - version: 4.0.2 sass: specifier: ^1.64.0 version: 1.64.0 @@ -422,7 +422,7 @@ importers: version: 0.16.2(sass@1.64.0)(vite@3.2.7) vite: specifier: ^3.2.7 - version: 3.2.7(sass@1.64.0)(terser@5.17.7) + version: 3.2.7(@types/node@20.2.5)(sass@1.64.0) vue: specifier: 2.7.14 version: 2.7.14 @@ -686,11 +686,6 @@ packages: dependencies: '@babel/highlight': 7.22.5 - /@babel/compat-data@7.22.3: - resolution: {integrity: sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==} - engines: {node: '>=6.9.0'} - dev: false - /@babel/compat-data@7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} @@ -726,16 +721,6 @@ packages: jsesc: 2.5.2 dev: false - /@babel/generator@7.22.5: - resolution: {integrity: sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - jsesc: 2.5.2 - dev: true - /@babel/generator@7.22.9: resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} engines: {node: '>=6.9.0'} @@ -764,20 +749,6 @@ packages: dependencies: '@babel/types': 7.22.5 - /@babel/helper-compilation-targets@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.9 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: false - /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} engines: {node: '>=6.9.0'} @@ -970,11 +941,11 @@ packages: resolution: {integrity: sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.22.1 - '@babel/helper-member-expression-to-functions': 7.22.3 - '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 '@babel/template': 7.22.5 - '@babel/traverse': 7.22.5 + '@babel/traverse': 7.22.8 '@babel/types': 7.22.5 transitivePeerDependencies: - supports-color @@ -1018,13 +989,6 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/helper-split-export-declaration@7.22.5: - resolution: {integrity: sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - dev: true - /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} @@ -2235,24 +2199,6 @@ packages: - supports-color dev: false - /@babel/traverse@7.22.5: - resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.5 - '@babel/parser': 7.22.5 - '@babel/types': 7.22.5 - debug: 4.3.4(supports-color@9.3.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/traverse@7.22.8: resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} engines: {node: '>=6.9.0'} @@ -3775,7 +3721,7 @@ packages: chokidar: 3.5.3 pathe: 0.2.0 picocolors: 1.0.0 - vite: 3.2.7(sass@1.64.0)(terser@5.17.7) + vite: 3.2.7(@types/node@20.2.5)(sass@1.64.0) dev: true /@histoire/vendors@0.16.0: @@ -4089,9 +4035,9 @@ packages: /@nuxt/babel-preset-app-edge@2.16.0-27720022.54e852f(vue@2.7.14): resolution: {integrity: sha512-pjLqKdZaz2DORKuIpclWgZ3himMmWT0Awh6gcq8PwYy4NeR1VvNQWXpJKRL7QWw/OZT89oSU3WFv8KF8GrvRAA==} dependencies: - '@babel/compat-data': 7.22.3 + '@babel/compat-data': 7.22.9 '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.9) + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) '@babel/helper-module-imports': 7.22.5 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.9) '@babel/plugin-proposal-decorators': 7.22.3(@babel/core@7.22.9) @@ -4103,7 +4049,7 @@ packages: '@babel/runtime': 7.22.3 '@vue/babel-preset-jsx': 1.4.0(@babel/core@7.22.9)(vue@2.7.14) core-js: 3.30.2 - core-js-compat: 3.30.2 + core-js-compat: 3.31.1 regenerator-runtime: 0.13.11 transitivePeerDependencies: - supports-color @@ -4141,7 +4087,7 @@ packages: hash-sum: 2.0.0 knitwork: 1.0.0 magic-string: 0.27.0 - mlly: 1.3.0 + mlly: 1.4.0 nitropack: 1.0.0 node-fetch: 3.3.1 nuxi: 3.0.0 @@ -4317,7 +4263,7 @@ packages: minimist: 1.2.8 opener: 1.5.2 pretty-bytes: 5.6.0 - semver: 7.5.1 + semver: 7.5.4 serve-static: 1.15.0 std-env: 3.3.3 upath: 2.0.1 @@ -4338,7 +4284,7 @@ packages: glob: 7.2.3 globby: 11.1.0 scule: 0.2.1 - semver: 7.5.1 + semver: 7.5.4 upath: 2.0.1 vue-template-compiler: 2.7.14 dev: false @@ -4442,11 +4388,11 @@ packages: ignore: 5.2.4 jiti: 1.18.2 knitwork: 1.0.0 - mlly: 1.3.0 + mlly: 1.4.0 pathe: 1.1.1 pkg-types: 1.0.3 scule: 1.0.0 - semver: 7.5.1 + semver: 7.5.4 unctx: 2.3.1 unimport: 3.0.7 untyped: 1.3.2 @@ -4574,7 +4520,7 @@ packages: nanoid: 3.3.6 node-fetch: 2.6.11 parse-git-config: 3.0.0 - rc9: 2.1.0 + rc9: 2.1.1 std-env: 3.3.3 transitivePeerDependencies: - encoding @@ -4628,7 +4574,7 @@ packages: jiti: 1.18.2 lodash: 4.17.21 proper-lockfile: 4.1.2 - semver: 7.5.1 + semver: 7.5.4 serialize-javascript: 6.0.1 signal-exit: 3.0.7 ua-parser-js: 1.0.35 @@ -4693,7 +4639,7 @@ packages: '@nuxt/utils-edge': 2.16.0-27720022.54e852f babel-loader: 8.3.0(@babel/core@7.22.9)(webpack@4.46.0) cache-loader: 4.1.0(webpack@4.46.0) - caniuse-lite: 1.0.30001495 + caniuse-lite: 1.0.30001517 consola: 2.15.3 css-loader: 4.3.0(webpack@4.46.0) cssnano: 4.1.11 @@ -4715,7 +4661,7 @@ packages: postcss-loader: 3.0.0 postcss-preset-env: 6.7.1 postcss-url: 8.0.0 - semver: 7.5.1 + semver: 7.5.4 std-env: 3.3.3 style-resources-loader: 1.5.0(webpack@4.46.0) terser-webpack-plugin: 4.2.3(webpack@4.46.0) @@ -4730,7 +4676,7 @@ packages: webpack: 4.46.0 webpack-bundle-analyzer: 4.9.0 webpack-dev-middleware: 5.3.3(webpack@4.46.0) - webpack-hot-middleware: 2.25.3 + webpack-hot-middleware: 2.25.4 webpack-node-externals: 3.0.0 webpackbar: 5.0.2(webpack@4.46.0) transitivePeerDependencies: @@ -5480,7 +5426,7 @@ packages: '@polkadot/api-augment': 10.8.1 '@polkadot/api-base': 10.8.1 '@polkadot/api-derive': 10.8.1 - '@polkadot/keyring': 12.3.2(@polkadot/util@12.3.2) + '@polkadot/keyring': 12.3.2(@polkadot/util-crypto@12.3.2)(@polkadot/util@12.3.2) '@polkadot/rpc-augment': 10.8.1 '@polkadot/rpc-core': 10.8.1 '@polkadot/rpc-provider': 10.8.1 @@ -5507,7 +5453,7 @@ packages: '@polkadot/api-augment': 10.9.1 '@polkadot/api-base': 10.9.1 '@polkadot/api-derive': 10.9.1 - '@polkadot/keyring': 12.3.2(@polkadot/util@12.3.2) + '@polkadot/keyring': 12.3.2(@polkadot/util-crypto@12.3.2)(@polkadot/util@12.3.2) '@polkadot/rpc-augment': 10.9.1 '@polkadot/rpc-core': 10.9.1 '@polkadot/rpc-provider': 10.9.1 @@ -5687,11 +5633,12 @@ packages: tslib: 2.5.3 dev: false - /@polkadot/keyring@12.3.2(@polkadot/util@12.3.2): + /@polkadot/keyring@12.3.2(@polkadot/util-crypto@12.3.2)(@polkadot/util@12.3.2): resolution: {integrity: sha512-NTdtDeI0DP9l/45hXynNABeP5VB8piw5YR+CbUxK2e36xpJWVXwbcOepzslg5ghE9rs8UKJb30Z/HqTU4sBY0Q==} engines: {node: '>=16'} peerDependencies: '@polkadot/util': 12.3.2 + '@polkadot/util-crypto': 12.3.2 dependencies: '@polkadot/util': 12.3.2 '@polkadot/util-crypto': 12.3.2(@polkadot/util@12.3.2) @@ -6008,7 +5955,7 @@ packages: resolution: {integrity: sha512-4QzT2QzD+320+eT6b79sGAA85Tt3Bb8fQvse4r5Mom2iiBd2SO81vOhxSAOaIe4GUsw25VzFJmsbe7+OObItdg==} engines: {node: '>=16'} dependencies: - '@polkadot/keyring': 12.3.2(@polkadot/util@12.3.2) + '@polkadot/keyring': 12.3.2(@polkadot/util-crypto@12.3.2)(@polkadot/util@12.3.2) '@polkadot/types': 10.9.1 '@polkadot/types-support': 10.9.1 '@polkadot/util': 12.3.2 @@ -6351,7 +6298,7 @@ packages: resolution: {integrity: sha512-m6UvsvQOZ7sRGbonb6QLs4mZ6TmYKdAXAcHakiJl2xArqsgOghJsKhgaTqcigPkSq4947MXtIkEzdrwFEnkYkQ==} engines: {node: '>=16'} dependencies: - '@polkadot/keyring': 12.3.2(@polkadot/util@12.3.2) + '@polkadot/keyring': 12.3.2(@polkadot/util-crypto@12.3.2)(@polkadot/util@12.3.2) '@polkadot/types-augment': 10.8.1 '@polkadot/types-codec': 10.8.1 '@polkadot/types-create': 10.8.1 @@ -6365,7 +6312,7 @@ packages: resolution: {integrity: sha512-AG33i2ZGGfq7u+5rkAdGrXAQHHl844/Yv+junH5ZzX69xiCoWO1bH/yzDUNBdpki2GlACWvF9nLYh3F2tVF93w==} engines: {node: '>=16'} dependencies: - '@polkadot/keyring': 12.3.2(@polkadot/util@12.3.2) + '@polkadot/keyring': 12.3.2(@polkadot/util-crypto@12.3.2)(@polkadot/util@12.3.2) '@polkadot/types-augment': 10.9.1 '@polkadot/types-codec': 10.9.1 '@polkadot/types-create': 10.9.1 @@ -8011,6 +7958,7 @@ packages: /@substrate/smoldot-light@0.7.9: resolution: {integrity: sha512-HP8iP7sFYlpSgjjbo0lqHyU+gu9lL2hbDNce6dWk5/10mFFF9jKIFGfui4zCecUY808o/Go9pan/31kMJoLbug==} + requiresBuild: true dependencies: pako: 2.1.0 ws: 8.13.0 @@ -8843,7 +8791,7 @@ packages: vite: ^3.0.0 || ^4.0.0 vue: ^2.7.0-0 dependencies: - vite: 3.2.7(sass@1.64.0)(terser@5.17.7) + vite: 3.2.7(@types/node@20.2.5)(sass@1.64.0) vue: 2.7.14 dev: true @@ -9350,14 +9298,6 @@ packages: acorn: 8.10.0 dev: true - /acorn-jsx@5.3.2(acorn@8.8.2): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.8.2 - dev: true - /acorn-walk@7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} engines: {node: '>=0.4.0'} @@ -9579,6 +9519,7 @@ packages: /anymatch@2.0.0: resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + requiresBuild: true dependencies: micromatch: 3.1.10 normalize-path: 2.1.1 @@ -10482,6 +10423,7 @@ packages: /async-each@1.0.6: resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} + requiresBuild: true dev: false optional: true @@ -10721,6 +10663,7 @@ packages: /binary-extensions@1.13.1: resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} engines: {node: '>=0.10.0'} + requiresBuild: true dev: false optional: true @@ -11284,10 +11227,6 @@ packages: lodash.uniq: 4.5.0 dev: false - /caniuse-lite@1.0.30001495: - resolution: {integrity: sha512-F6x5IEuigtUfU5ZMQK2jsy5JqUUlEFRVZq8bO2a+ysq5K7jD6PPc9YXZj78xDNS3uNchesp1Jw47YXEqr+Viyg==} - dev: false - /caniuse-lite@1.0.30001517: resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} @@ -11443,6 +11382,7 @@ packages: /chokidar@2.1.8: resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies + requiresBuild: true dependencies: anymatch: 2.0.0 async-each: 1.0.6 @@ -12289,12 +12229,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /core-js-compat@3.30.2: - resolution: {integrity: sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==} - dependencies: - browserslist: 4.21.9 - dev: false - /core-js-compat@3.31.1: resolution: {integrity: sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==} dependencies: @@ -13178,7 +13112,7 @@ packages: resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} dependencies: domelementtype: 2.3.0 - entities: 2.2.0 + entities: 2.1.0 dev: false /dom-serializer@1.4.1: @@ -13186,7 +13120,7 @@ packages: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 - entities: 2.2.0 + entities: 2.1.0 dev: false /domain-browser@1.2.0: @@ -13394,10 +13328,6 @@ packages: /entities@2.1.0: resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==} - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: false - /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -14196,8 +14126,8 @@ packages: resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.1 dev: true @@ -14902,6 +14832,20 @@ packages: resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} dev: false + /front-matter@4.0.2: + resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} + dependencies: + js-yaml: 3.14.1 + dev: true + + /frontmatter-markdown-loader@3.7.0: + resolution: {integrity: sha512-AApxrNtVTlvvfHcj/7u+bLRozMVOedPMEESPzlVJiRPwidKvPDkbGOmaj7wps/M63fYzlwo6iXQtrjNrtuYh9A==} + dependencies: + front-matter: 4.0.2 + loader-utils: 2.0.4 + markdown-it: 12.3.2 + dev: true + /fs-capacitor@2.0.4: resolution: {integrity: sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==} engines: {node: '>=8.5'} @@ -15173,6 +15117,7 @@ packages: /glob-parent@3.1.0: resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} + requiresBuild: true dependencies: is-glob: 3.1.0 path-dirname: 1.0.2 @@ -15725,7 +15670,7 @@ packages: sade: 1.8.1 shiki-es: 0.2.0 sirv: 2.0.3 - vite: 3.2.7(sass@1.64.0)(terser@5.17.7) + vite: 3.2.7(@types/node@20.2.5)(sass@1.64.0) vite-node: 0.28.4(sass@1.64.0) transitivePeerDependencies: - '@types/node' @@ -15776,8 +15721,8 @@ packages: whatwg-encoding: 2.0.0 dev: true - /html-entities@2.3.5: - resolution: {integrity: sha512-72TJlcMkYsEJASa/3HnX7VT59htM7iSHbH59NSZbtc+22Ap0Txnlx91sfeB+/A7wNZg7UxtZdhAW4y+/jimrdg==} + /html-entities@2.4.0: + resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} dev: false /html-escaper@2.0.2: @@ -15840,7 +15785,7 @@ packages: domelementtype: 2.3.0 domhandler: 4.3.1 domutils: 2.8.0 - entities: 2.2.0 + entities: 2.1.0 dev: false /http-cache-semantics@4.1.1: @@ -16222,6 +16167,7 @@ packages: /is-binary-path@1.0.1: resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} engines: {node: '>=0.10.0'} + requiresBuild: true dependencies: binary-extensions: 1.13.1 dev: false @@ -16370,6 +16316,7 @@ packages: /is-glob@3.1.0: resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} engines: {node: '>=0.10.0'} + requiresBuild: true dependencies: is-extglob: 2.1.1 dev: false @@ -17583,8 +17530,8 @@ packages: engines: {node: '>= 0.6'} dev: false - /memfs@3.5.2: - resolution: {integrity: sha512-4kbWXbVZ+LU4XFDS2CuA7frnwz2HxCMB/0yOXc86q7aCQrfWKkL11t6al1e2CsVC7uhnBNTQ1TfUsAxVauO9IQ==} + /memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} dependencies: fs-monkey: 1.0.4 @@ -17695,13 +17642,6 @@ packages: resolution: {integrity: sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==} engines: {node: '>=4.0.0'} hasBin: true - dev: true - - /mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} - hasBin: true - dev: false /mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} @@ -18232,7 +18172,7 @@ packages: string_decoder: 1.3.0 timers-browserify: 2.0.12 tty-browserify: 0.0.0 - url: 0.11.0 + url: 0.11.1 util: 0.11.1 vm-browserify: 1.1.2 dev: false @@ -18923,6 +18863,7 @@ packages: /path-dirname@1.0.2: resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + requiresBuild: true dev: false optional: true @@ -19083,7 +19024,7 @@ packages: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 - mlly: 1.3.0 + mlly: 1.4.0 pathe: 1.1.1 /pluralize@8.0.0: @@ -20141,7 +20082,7 @@ packages: resolution: {integrity: sha512-E2cbOQ5aii2zNHh8F6fk1cxls7QVFZjLPSrqvmiza8OuXLzIpErij8BDS5Y3STPfJgpIMNCPEr8JlKQWEoozUw==} engines: {node: '>=6.0.0'} dependencies: - mime: 2.6.0 + mime: 2.5.2 minimatch: 3.1.2 mkdirp: 0.5.6 postcss: 7.0.39 @@ -20404,10 +20345,6 @@ packages: pump: 2.0.1 dev: false - /punycode@1.3.2: - resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} - dev: false - /punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: false @@ -20476,12 +20413,6 @@ packages: engines: {node: '>=0.4.x'} dev: false - /querystring@0.2.0: - resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} - engines: {node: '>=0.4.x'} - deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. - dev: false - /querystring@0.2.1: resolution: {integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==} engines: {node: '>=0.4.x'} @@ -20540,16 +20471,6 @@ packages: unpipe: 1.0.0 dev: false - /raw-loader@4.0.2: - resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.1.2 - dev: true - /rc9@1.2.4: resolution: {integrity: sha512-YD1oJO9LUzMdmr2sAsVlwQVtEoDCmvuyDwmSWrg2GKFprl3BckP5cmw9rHPunei0lV6Xl4E5t2esT+0trY1xfQ==} dependencies: @@ -20558,14 +20479,6 @@ packages: flat: 5.0.2 dev: false - /rc9@2.1.0: - resolution: {integrity: sha512-ROO9bv8PPqngWKoiUZU3JDQ4sugpdRs9DfwHnzDSxK25XtQn6BEHL6EOd/OtKuDT2qodrtNR+0WkPT6l0jxH5Q==} - dependencies: - defu: 6.1.2 - destr: 1.2.2 - flat: 5.0.2 - dev: false - /rc9@2.1.1: resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} dependencies: @@ -20647,6 +20560,7 @@ packages: /readdirp@2.2.1: resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} engines: {node: '>=0.10'} + requiresBuild: true dependencies: graceful-fs: 4.2.11 micromatch: 3.1.10 @@ -21177,8 +21091,8 @@ packages: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - /schema-utils@4.0.1: - resolution: {integrity: sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==} + /schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} engines: {node: '>= 12.13.0'} dependencies: '@types/json-schema': 7.0.12 @@ -21532,6 +21446,7 @@ packages: /smoldot@1.0.4: resolution: {integrity: sha512-N3TazI1C4GGrseFH/piWyZCCCRJTRx2QhDfrUKRT4SzILlW5m8ayZ3QTKICcz1C/536T9cbHHJyP7afxI6Mi1A==} + requiresBuild: true dependencies: pako: 2.1.0 ws: 8.13.0 @@ -22959,6 +22874,7 @@ packages: /upath@1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} + requiresBuild: true dev: false optional: true @@ -23025,11 +22941,11 @@ packages: requires-port: 1.0.0 dev: true - /url@0.11.0: - resolution: {integrity: sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==} + /url@0.11.1: + resolution: {integrity: sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==} dependencies: - punycode: 1.3.2 - querystring: 0.2.0 + punycode: 1.4.1 + qs: 6.11.2 dev: false /use@3.1.1: @@ -23180,7 +23096,7 @@ packages: picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 3.2.7(sass@1.64.0)(terser@5.17.7) + vite: 3.2.7(@types/node@20.2.5)(sass@1.64.0) transitivePeerDependencies: - '@types/node' - less @@ -23988,18 +23904,18 @@ packages: webpack: ^4.0.0 || ^5.0.0 dependencies: colorette: 2.0.20 - memfs: 3.5.2 + memfs: 3.5.3 mime-types: 2.1.35 range-parser: 1.2.1 - schema-utils: 4.0.1 + schema-utils: 4.2.0 webpack: 4.46.0 dev: false - /webpack-hot-middleware@2.25.3: - resolution: {integrity: sha512-IK/0WAHs7MTu1tzLTjio73LjS3Ov+VvBKQmE8WPlJutgG5zT6Urgq/BbAdRrHTRpyzK0dvAvFh1Qg98akxgZpA==} + /webpack-hot-middleware@2.25.4: + resolution: {integrity: sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w==} dependencies: ansi-html-community: 0.0.8 - html-entities: 2.3.5 + html-entities: 2.4.0 strip-ansi: 6.0.1 dev: false From 242693ccb28114d1c5cd5b52754e6f2a0fc94726 Mon Sep 17 00:00:00 2001 From: Preschian Febryantara Date: Mon, 24 Jul 2023 16:22:52 +0700 Subject: [PATCH 08/18] chore: deepsource --- pages/blog/index.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pages/blog/index.vue b/pages/blog/index.vue index a9a6a3d59c..77dbee9713 100644 --- a/pages/blog/index.vue +++ b/pages/blog/index.vue @@ -38,10 +38,11 @@ import { NeoButton } from '@kodadot1/brick' export default { + name: 'BlogList', components: { NeoButton, }, - async asyncData() { + asyncData() { const resolve = require.context('~/content/blog/', true, /\.md$/) const imports = resolve.keys().map((key) => resolve(key)) From 8a517f925b40925fde0532c73ca6e25b1a488c75 Mon Sep 17 00:00:00 2001 From: Preschian Febryantara Date: Mon, 24 Jul 2023 16:41:28 +0700 Subject: [PATCH 09/18] style: adjust mobile size --- components/blog/BlogPost.vue | 13 +++++++++++++ pages/blog/index.vue | 25 +++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/components/blog/BlogPost.vue b/components/blog/BlogPost.vue index a864bbf8bd..f025a7dcd6 100644 --- a/components/blog/BlogPost.vue +++ b/components/blog/BlogPost.vue @@ -55,6 +55,8 @@ useNuxt2Meta({ diff --git a/pages/blog/index.vue b/pages/blog/index.vue index 77dbee9713..a536a8e29d 100644 --- a/pages/blog/index.vue +++ b/pages/blog/index.vue @@ -62,6 +62,8 @@ export default { From 561903f01d7bcd6cfe8df16e2ea1b51e7d330fa1 Mon Sep 17 00:00:00 2001 From: Preschian Febryantara Date: Tue, 25 Jul 2023 18:15:18 +0700 Subject: [PATCH 10/18] style: adjust dark mode --- components/blog/BlogPost.vue | 29 ++++++++++++++++++++++++++--- pages/blog/index.vue | 23 ++++++++++++++++++----- styles/abstracts/_theme.scss | 2 ++ 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/components/blog/BlogPost.vue b/components/blog/BlogPost.vue index f025a7dcd6..e77b2b9242 100644 --- a/components/blog/BlogPost.vue +++ b/components/blog/BlogPost.vue @@ -8,7 +8,7 @@

{{ attributes.title }}

-

{{ attributes.subtitle }}

+

{{ attributes.subtitle }}

View Article @@ -100,9 +99,6 @@ export default { &-list { border-radius: 2.5rem; - border: 1px solid #000; - background: #fff; - box-shadow: 4px 4px 0px 0px #000; display: flex; img { @@ -116,19 +112,36 @@ export default { padding: 1.5rem; &-title { - font-size: 1.25rem; + font-size: 31px; font-weight: 700; margin-bottom: 1rem; } } + @include ktheme() { + background-color: theme('k-white'); + border: 1px solid theme('border-color'); + box-shadow: 4px 4px 0px 0px theme('border-color'); + + img { + border-right: 1px solid theme('border-color'); + } + } + @include touch { flex-direction: column; img { + border-right: none !important; width: 100%; } + &-card { + &-title { + font-size: 1.5rem; + } + } + .o-btn { margin-top: 1rem; } diff --git a/styles/abstracts/_theme.scss b/styles/abstracts/_theme.scss index 1610c48712..eab3481821 100644 --- a/styles/abstracts/_theme.scss +++ b/styles/abstracts/_theme.scss @@ -12,6 +12,7 @@ $themes: ( 'k-accentlight': #ffe5f3, 'k-accentHover': #ffe5f3, 'k-accentlight2': #ffe5f3, + 'k-accentlight2-dark': #363234, 'k-green': #04af00, 'k-red': #ff5757, 'k-orange': #cf9a10, @@ -50,6 +51,7 @@ $themes: ( 'k-accentlight': #ffe5f3, 'k-accentHover': #363234, 'k-accentlight2': #363234, + 'k-accentlight2-dark': #ccc, 'k-green': #04af00, 'k-red': #ff5757, 'k-orange': #cf9a10, From 1f3588d46eb09b1d5c37e6cb01d0ac8547538856 Mon Sep 17 00:00:00 2001 From: Preschian Febryantara Date: Wed, 26 Jul 2023 15:48:20 +0700 Subject: [PATCH 11/18] fix: switch network --- components/navbar/NavbarExploreOptions.vue | 1 + components/rmrk/Gallery/Pagination.vue | 6 ++- components/shared/BlockExplorerLink.vue | 2 +- components/shared/CommonTokenMoney.vue | 31 ++++++++------- components/shared/view/BasicImage.vue | 2 +- composables/usePrefix.ts | 4 +- .../src/components/NeoNftCard/NeoNftCard.vue | 2 +- tests/cypress/e2e/prefix.cy.ts | 39 +++++++++++++++++++ 8 files changed, 66 insertions(+), 21 deletions(-) create mode 100644 tests/cypress/e2e/prefix.cy.ts diff --git a/components/navbar/NavbarExploreOptions.vue b/components/navbar/NavbarExploreOptions.vue index 3fc616eeef..efdf3e32a0 100644 --- a/components/navbar/NavbarExploreOptions.vue +++ b/components/navbar/NavbarExploreOptions.vue @@ -4,6 +4,7 @@ {{ $t('items') }} diff --git a/components/rmrk/Gallery/Pagination.vue b/components/rmrk/Gallery/Pagination.vue index 4149bc14d3..a7b62b3b1a 100644 --- a/components/rmrk/Gallery/Pagination.vue +++ b/components/rmrk/Gallery/Pagination.vue @@ -36,14 +36,16 @@ const props = withDefaults( value: number total: number perPage?: number - simple: boolean + simple?: boolean replace: boolean preserveScroll?: boolean - hasMagicBtn: boolean + hasMagicBtn?: boolean enableListenKeyboardEvent?: boolean }>(), { perPage: 20, + hasMagicBtn: false, + simple: false, } ) const emit = defineEmits(['input']) diff --git a/components/shared/BlockExplorerLink.vue b/components/shared/BlockExplorerLink.vue index a159cc4d80..e990c0dd65 100644 --- a/components/shared/BlockExplorerLink.vue +++ b/components/shared/BlockExplorerLink.vue @@ -15,7 +15,7 @@ const { urlPrefix } = usePrefix() const props = withDefaults( defineProps<{ - provider: string + provider?: string blockId: string text: string }>(), diff --git a/components/shared/CommonTokenMoney.vue b/components/shared/CommonTokenMoney.vue index 295f2ebc1a..678220835a 100644 --- a/components/shared/CommonTokenMoney.vue +++ b/components/shared/CommonTokenMoney.vue @@ -15,20 +15,23 @@ import Money from '@/components/shared/format/Money.vue' import TokenMoney from '@/components/bsx/format/TokenMoney.vue' import { getKusamaAssetId } from '@/utils/api/bsx/query' -withDefaults( - defineProps<{ - value: number | string | undefined - customTokenId?: string | undefined - dataCy: string - round: number - }>(), - { - value: '0', - customTokenId: '', - dataCy: '', - round: 4, - } -) +defineProps({ + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error + value: { + type: [Number, String, BigInt], + default: '0', + }, + dataCy: { + type: String, + required: false, + default: '', + }, + round: { + type: Number, + default: 4, + }, +}) const { urlPrefix } = usePrefix() const tokenId = computed(() => getKusamaAssetId(urlPrefix.value)) diff --git a/components/shared/view/BasicImage.vue b/components/shared/view/BasicImage.vue index e198872462..28acf65a08 100644 --- a/components/shared/view/BasicImage.vue +++ b/components/shared/view/BasicImage.vue @@ -23,7 +23,7 @@ const { $consola } = useNuxtApp() const { placeholder } = useTheme() const props = withDefaults( defineProps<{ - src: string + src?: string alt?: string customClass?: string rounded?: boolean diff --git a/composables/usePrefix.ts b/composables/usePrefix.ts index 5f15ad5a71..1bf3f27d1d 100644 --- a/composables/usePrefix.ts +++ b/composables/usePrefix.ts @@ -15,8 +15,8 @@ export default function () { const prefix = computed( () => (route.params.prefix || - initialPrefixFromPath || - storage.value.selected) as Prefix + storage.value.selected || + initialPrefixFromPath) as Prefix ) const urlPrefix = computed(() => { storage.value = { selected: prefix.value } diff --git a/libs/ui/src/components/NeoNftCard/NeoNftCard.vue b/libs/ui/src/components/NeoNftCard/NeoNftCard.vue index 43192f9e17..cbac615b17 100644 --- a/libs/ui/src/components/NeoNftCard/NeoNftCard.vue +++ b/libs/ui/src/components/NeoNftCard/NeoNftCard.vue @@ -24,7 +24,7 @@ {{ nft.name || '--' }} diff --git a/tests/cypress/e2e/prefix.cy.ts b/tests/cypress/e2e/prefix.cy.ts new file mode 100644 index 0000000000..280402452f --- /dev/null +++ b/tests/cypress/e2e/prefix.cy.ts @@ -0,0 +1,39 @@ +describe('switch network', () => { + it('should switch network', () => { + cy.visit('/') + cy.getCy('explore').realHover().find('[data-cy="explore-items"]').click() + cy.getCy('tabs').eq(2).click() + cy.getCy('0').click() + cy.getCy('chain-select').click() + cy.getCy('chain-dropdown-bsx').click() + cy.getCy('explore').realHover().find('[data-cy="explore-items"]').click() + cy.getCy('chain').should('contain.text', 'bsx') + + cy.getCy('0').click() + cy.getCy('chain-select').click() + cy.getCy('chain-dropdown-rmrk').click() + cy.getCy('explore').realHover().find('[data-cy="explore-items"]').click() + cy.getCy('chain').should('contain.text', 'rmrk') + + cy.getCy('0').click() + cy.getCy('chain-select').click() + cy.getCy('chain-dropdown-stt').click() + cy.getCy('explore').realHover().find('[data-cy="explore-items"]').click() + cy.getCy('chain').should('contain.text', 'stt') + + cy.getCy('0').click() + cy.getCy('chain-select').click() + cy.getCy('chain-dropdown-stmn').click() + cy.getCy('explore').realHover().find('[data-cy="explore-items"]').click() + cy.getCy('chain').should('contain.text', 'stmn') + + cy.getCy('0').click() + cy.getCy('chain-select').click() + cy.getCy('chain-dropdown-ksm').click() + cy.getCy('explore').realHover().find('[data-cy="explore-items"]').click() + cy.getCy('chain').should('contain.text', 'rmrk2') + + cy.getCy('0').click() + cy.getCy('chain').should('contain.text', 'rmrk2') + }) +}) From 1e7af9a931d2b96fb85261dc0b29aee38bb2e4e8 Mon Sep 17 00:00:00 2001 From: daiagi Date: Wed, 26 Jul 2023 16:37:04 +0700 Subject: [PATCH 12/18] align massmint buttons --- components/massmint/Massmint.vue | 166 +++++++++++++++++-------------- 1 file changed, 94 insertions(+), 72 deletions(-) diff --git a/components/massmint/Massmint.vue b/components/massmint/Massmint.vue index bc87401b86..74a630b74a 100644 --- a/components/massmint/Massmint.vue +++ b/components/massmint/Massmint.vue @@ -1,79 +1,78 @@ @@ -246,8 +245,31 @@ const onDescriptionLoaded = (entries: Record) => { }