diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json
index b4460e3d..4dd1b7e8 100644
--- a/packages/dashboard/package.json
+++ b/packages/dashboard/package.json
@@ -18,6 +18,7 @@
"@vitejs/plugin-vue-jsx": "^3.0.0",
"@vueuse/core": "^9.12.0",
"@vueuse/math": "^9.12.0",
+ "cross-fetch": "^3.1.5",
"pinia": "^2.0.28",
"vite-plugin-vue-layouts": "^0.7.0",
"vite-plugin-vuetify": "^1.0.2",
diff --git a/packages/dashboard/public/favicon.ico b/packages/dashboard/public/favicon.ico
index 55f987ce..ef242a96 100644
Binary files a/packages/dashboard/public/favicon.ico and b/packages/dashboard/public/favicon.ico differ
diff --git a/packages/dashboard/public/logo.svg b/packages/dashboard/public/logo.svg
index 2e3a50df..a620f52a 100644
--- a/packages/dashboard/public/logo.svg
+++ b/packages/dashboard/public/logo.svg
@@ -1,158 +1,82 @@
diff --git a/packages/dashboard/src/assets/logo.svg b/packages/dashboard/src/assets/logo.svg
new file mode 100644
index 00000000..a620f52a
--- /dev/null
+++ b/packages/dashboard/src/assets/logo.svg
@@ -0,0 +1,82 @@
+
+
+
diff --git a/packages/dashboard/src/layouts/components/DefaultLayoutWithVerticalNav.vue b/packages/dashboard/src/layouts/components/DefaultLayout.vue
similarity index 97%
rename from packages/dashboard/src/layouts/components/DefaultLayoutWithVerticalNav.vue
rename to packages/dashboard/src/layouts/components/DefaultLayout.vue
index 3178bc83..8b7e4557 100644
--- a/packages/dashboard/src/layouts/components/DefaultLayoutWithVerticalNav.vue
+++ b/packages/dashboard/src/layouts/components/DefaultLayout.vue
@@ -1,5 +1,5 @@
-
-
-
-
-
-
-
-
-
- {{ themeConfig.app.title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/dashboard/src/layouts/components/Footer.vue b/packages/dashboard/src/layouts/components/Footer.vue
index 8eaa3f1b..e47afd34 100644
--- a/packages/dashboard/src/layouts/components/Footer.vue
+++ b/packages/dashboard/src/layouts/components/Footer.vue
@@ -12,26 +12,22 @@
class="mx-1"
/>
By Pixinvent
+ >Ping.pub
License
More Themes
- Documentation
+ >Github
diff --git a/packages/dashboard/src/layouts/default.vue b/packages/dashboard/src/layouts/default.vue
index 94f1cea4..98d223d1 100644
--- a/packages/dashboard/src/layouts/default.vue
+++ b/packages/dashboard/src/layouts/default.vue
@@ -2,18 +2,7 @@
import { useSkins } from '@core/composable/useSkins'
import { useThemeConfig } from '@core/composable/useThemeConfig'
-// @layouts plugin
-import { AppContentLayoutNav } from '@layouts/enums'
-
-const DefaultLayoutWithHorizontalNav = defineAsyncComponent(() => import('./components/DefaultLayoutWithHorizontalNav.vue'))
-const DefaultLayoutWithVerticalNav = defineAsyncComponent(() => import('./components/DefaultLayoutWithVerticalNav.vue'))
-
-const { width: windowWidth } = useWindowSize()
-const { appContentLayoutNav, switchToVerticalNavOnLtOverlayNavBreakpoint } = useThemeConfig()
-
-// âšī¸ This will switch to vertical nav when define breakpoint is reached when in horizontal nav layout
-// Remove below composable usage if you are not using horizontal nav layout in your app
-switchToVerticalNavOnLtOverlayNavBreakpoint(windowWidth)
+const DefaultLayout = defineAsyncComponent(() => import('./components/DefaultLayout.vue'))
const { layoutAttrs, injectSkinClasses } = useSkins()
@@ -21,12 +10,7 @@ injectSkinClasses()
-
-
-
-
-
-
+
-
-
-meta:
- layout: blank
- action: read
- subject: Auth
- redirectIfLoggedIn: true
-
+
Hello module
+
\ No newline at end of file
diff --git a/packages/dashboard/src/pages/second-page.vue b/packages/dashboard/src/pages/second-page.vue
index 630d8ab7..c89c7827 100644
--- a/packages/dashboard/src/pages/second-page.vue
+++ b/packages/dashboard/src/pages/second-page.vue
@@ -11,3 +11,8 @@
+
+ meta:
+ layout: blank
+ bgColor: yellow
+
\ No newline at end of file
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components.ts b/packages/dashboard/src/plugins/vuetify/@layouts/components.ts
index 6a1a4647..161ae0ee 100644
--- a/packages/dashboard/src/plugins/vuetify/@layouts/components.ts
+++ b/packages/dashboard/src/plugins/vuetify/@layouts/components.ts
@@ -1,8 +1,3 @@
-export { default as HorizontalNav } from './components/HorizontalNav.vue'
-export { default as HorizontalNavGroup } from './components/HorizontalNavGroup.vue'
-export { default as HorizontalNavLayout } from './components/HorizontalNavLayout.vue'
-export { default as HorizontalNavLink } from './components/HorizontalNavLink.vue'
-export { default as HorizontalNavPopper } from './components/HorizontalNavPopper.vue'
export { default as TransitionExpand } from './components/TransitionExpand.vue'
export { default as VerticalNav } from './components/VerticalNav.vue'
export { default as VerticalNavGroup } from './components/VerticalNavGroup.vue'
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNav.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNav.vue
deleted file mode 100644
index 6ff26688..00000000
--- a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNav.vue
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavGroup.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavGroup.vue
deleted file mode 100644
index a8dc35b0..00000000
--- a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavGroup.vue
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLayout.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLayout.vue
deleted file mode 100644
index 17b07b71..00000000
--- a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLayout.vue
+++ /dev/null
@@ -1,173 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLink.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLink.vue
deleted file mode 100644
index 8e5d98e2..00000000
--- a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLink.vue
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
-
-
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavPopper.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavPopper.vue
deleted file mode 100644
index d94ec1f5..00000000
--- a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavPopper.vue
+++ /dev/null
@@ -1,168 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNav.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNav.vue
index ce516ca6..e0a3dff5 100644
--- a/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNav.vue
+++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNav.vue
@@ -4,9 +4,11 @@ import { PerfectScrollbar } from 'vue3-perfect-scrollbar'
import { VNodeRenderer } from './VNodeRenderer'
import { injectionKeyIsVerticalNavHovered, useLayouts } from '@layouts'
import { VerticalNavGroup, VerticalNavLink, VerticalNavSectionTitle } from '@layouts/components'
-import { config } from '@layouts/config'
+
import type { NavGroup, NavLink, NavSectionTitle, VerticalNavItems } from '@layouts/types'
+import { themeConfig as config } from '@themeConfig'
+
interface Props {
tag?: string | Component
navItems: VerticalNavItems
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavGroup.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavGroup.vue
index 9228d133..a69c7d8b 100644
--- a/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavGroup.vue
+++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavGroup.vue
@@ -1,15 +1,14 @@
-
+
import { useLayouts } from '@layouts'
-import { config } from '@layouts/config'
-import { can } from '@layouts/plugins/casl'
+import { themeConfig as config } from '@themeConfig'
import type { NavSectionTitle } from '@layouts/types'
defineProps<{
@@ -14,10 +13,7 @@ const shallRenderIcon = isVerticalNavMini(windowWidth)
-
+
{
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/config.ts b/packages/dashboard/src/plugins/vuetify/@layouts/config.ts
deleted file mode 100644
index 7a76abff..00000000
--- a/packages/dashboard/src/plugins/vuetify/@layouts/config.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { breakpointsVuetify } from '@vueuse/core'
-import { AppContentLayoutNav, ContentWidth, FooterType, NavbarType } from '@layouts/enums'
-import type { Config } from '@layouts/types'
-
-export const config: Config = {
- app: {
- title: 'Title',
- logo: h('img', { src: '/src/assets/logo.svg' }),
-
- // logo: () => h('img', { src: 'assets/colored-logo.png' }, null),
- contentWidth: ref(ContentWidth.Boxed),
- contentLayoutNav: ref(AppContentLayoutNav.Vertical),
- overlayNavFromBreakpoint: breakpointsVuetify.md,
- enableI18n: true,
- isRtl: ref(false),
- },
- navbar: {
- type: ref(NavbarType.Sticky),
- navbarBlur: ref(true),
- },
- footer: { type: ref(FooterType.Static) },
- verticalNav: {
- isVerticalNavCollapsed: ref(false),
- defaultNavItemIconProps: { icon: 'mdi-circle-outline' },
- },
- horizontalNav: {
- type: ref('sticky'),
- },
- icons: {
- chevronDown: { icon: 'mdi-chevron-down' },
- chevronRight: { icon: 'mdi-chevron-right' },
- close: { icon: 'mdi-close' },
- verticalNavPinned: { icon: 'mdi-record-circle-outline' },
- verticalNavUnPinned: { icon: 'mdi-radiobox-blank' },
- sectionTitlePlaceholder: { icon: 'mdi-minus' },
- },
-}
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/index.ts b/packages/dashboard/src/plugins/vuetify/@layouts/index.ts
index 215d1bf8..1bc35e2f 100644
--- a/packages/dashboard/src/plugins/vuetify/@layouts/index.ts
+++ b/packages/dashboard/src/plugins/vuetify/@layouts/index.ts
@@ -1,6 +1,6 @@
import type { InjectionKey, Plugin, Ref } from 'vue'
import { useDynamicVhCssProperty } from './composable/useDynamicVhCssProperty'
-import { config } from './config'
+import { themeConfig as config } from '@themeConfig'
import { ContentWidth } from './enums'
import type { UserConfig } from './types'
import { useLayouts } from '@layouts'
@@ -41,7 +41,7 @@ export const createLayouts = (userConfig: UserConfig): Plugin => {
config.verticalNav.defaultNavItemIconProps = userConfig.verticalNav.defaultNavItemIconProps
- config.horizontalNav.type.value = userConfig.horizontalNav.type
+ // config.horizontalNav.type.value = userConfig.horizontalNav.type
config.icons.chevronDown = userConfig.icons.chevronDown
config.icons.chevronRight = userConfig.icons.chevronRight
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/plugins/casl.ts b/packages/dashboard/src/plugins/vuetify/@layouts/plugins/casl.ts
deleted file mode 100644
index 2b1a2afe..00000000
--- a/packages/dashboard/src/plugins/vuetify/@layouts/plugins/casl.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import type { RouteLocationNormalized } from "vue-router";
-import ability from "@/plugins/vuetify/casl/ability";
-import type { NavGroup } from "@layouts/types";
-
-/**
- * Returns ability result if ACL is configured or else just return true
- * We should allow passing string | undefined to can because for admin ability we omit defining action & subject
- *
- * Useful if you don't know if ACL is configured or not
- * Used in @core files to handle absence of ACL without errors
- *
- * @param {String} action CASL Actions // https://casl.js.org/v4/en/guide/intro#basics
- * @param {String} subject CASL Subject // https://casl.js.org/v4/en/guide/intro#basics
- */
-export const can = (
- action: string | undefined,
- subject: string | undefined
-) => {
- const vm = getCurrentInstance();
-
- if (!vm) return false;
-
- const localCan = vm.proxy && "$can" in vm.proxy;
-
- // @ts-expect-error We will get TS error in below line because we aren't using $can in component instance
- return localCan ? vm.proxy?.$can(action, subject) : true;
-};
-
-/**
- * Check if user can view item based on it's ability
- * Based on item's action and subject & Hide group if all of it's children are hidden
- * @param {Object} item navigation object item
- */
-export const canViewNavMenuGroup = (item: NavGroup) => {
- const hasAnyVisibleChild = item.children.some((i) =>
- can(i.action, i.subject)
- );
-
- // If subject and action is defined in item => Return based on children visibility (Hide group if no child is visible)
- // Else check for ability using provided subject and action along with checking if has any visible child
- if (!(item.action && item.subject)) return hasAnyVisibleChild;
-
- return can(item.action, item.subject) && hasAnyVisibleChild;
-};
-
-export const canNavigate = (to: RouteLocationNormalized) => {
- // @ts-expect-error We should allow passing string | undefined to can because for admin ability we omit defining action & subject
- return to.matched.some((route) =>
- ability.can(route.meta.action, route.meta.subject)
- );
-};
diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/types.d.ts b/packages/dashboard/src/plugins/vuetify/@layouts/types.d.ts
index 909aa8fd..410303f1 100644
--- a/packages/dashboard/src/plugins/vuetify/@layouts/types.d.ts
+++ b/packages/dashboard/src/plugins/vuetify/@layouts/types.d.ts
@@ -24,10 +24,6 @@ export interface UserConfig {
isVerticalNavCollapsed: boolean
defaultNavItemIconProps: unknown
}
- horizontalNav: {
- type: 'sticky' | 'static' | 'hidden'
- transition?: string | Component
- }
icons: {
chevronDown: any
chevronRight: any
@@ -64,10 +60,10 @@ export interface Config {
isVerticalNavCollapsed: Ref
defaultNavItemIconProps: UserConfig['verticalNav']['defaultNavItemIconProps']
}
- horizontalNav: {
- type: Ref
- transition?: UserConfig['horizontalNav']['transition']
- }
+ // horizontalNav: {
+ // type: Ref
+ // transition?: UserConfig['horizontalNav']['transition']
+ // }
icons: {
chevronDown: UserConfig['icons']['chevronDown']
chevronRight: UserConfig['icons']['chevronRight']
diff --git a/packages/dashboard/src/plugins/vuetify/casl/AppAbility.ts b/packages/dashboard/src/plugins/vuetify/casl/AppAbility.ts
deleted file mode 100644
index e86fef2f..00000000
--- a/packages/dashboard/src/plugins/vuetify/casl/AppAbility.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import type { AbilityClass } from '@casl/ability'
-import { Ability } from '@casl/ability'
-
-export type Actions = 'create' | 'read' | 'update' | 'delete' | 'manage'
-
-export type Subjects = 'Auth' | 'Admin' | 'AclDemo' | 'all'
-
-export type AppAbility = Ability<[Actions, Subjects]>
-
-// eslint-disable-next-line @typescript-eslint/no-redeclare
-export const AppAbility = Ability as AbilityClass
-
-export interface UserAbility {
- action: Actions
- subject: Subjects
-}
diff --git a/packages/dashboard/src/plugins/vuetify/casl/ability.ts b/packages/dashboard/src/plugins/vuetify/casl/ability.ts
deleted file mode 100644
index 99fa4f51..00000000
--- a/packages/dashboard/src/plugins/vuetify/casl/ability.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Ability } from '@casl/ability'
-import type { UserAbility } from './AppAbility'
-
-export const initialAbility: UserAbility[] = [
- {
- action: 'read',
- subject: 'Auth',
- },
-]
-
-// Read ability from localStorage
-// đ Handles auto fetching previous abilities if already logged in user
-// âšī¸ You can update this if you store user abilities to more secure place
-// â Anyone can update localStorage so be careful and please update this
-const stringifiedUserAbilities = localStorage.getItem('userAbilities')
-const existingAbility = stringifiedUserAbilities ? JSON.parse(stringifiedUserAbilities) : null
-
-export default new Ability(existingAbility || initialAbility)
diff --git a/packages/dashboard/src/plugins/vuetify/casl/shims-ability.d.ts b/packages/dashboard/src/plugins/vuetify/casl/shims-ability.d.ts
deleted file mode 100644
index 78db9971..00000000
--- a/packages/dashboard/src/plugins/vuetify/casl/shims-ability.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import type { AppAbility } from './AppAbility'
-
-declare module 'vue' {
- interface ComponentCustomProperties {
- $ability: AppAbility
- $can(this: this, ...args: Parameters): boolean
- }
-}
diff --git a/packages/dashboard/src/plugins/vuetify/casl/useAppAbility.ts b/packages/dashboard/src/plugins/vuetify/casl/useAppAbility.ts
deleted file mode 100644
index 1adc52d7..00000000
--- a/packages/dashboard/src/plugins/vuetify/casl/useAppAbility.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { useAbility } from '@casl/vue'
-import type { AppAbility } from './AppAbility'
-
-export const useAppAbility = () => useAbility()
diff --git a/packages/dashboard/src/plugins/vuetify/navigation/horizontal/index.ts b/packages/dashboard/src/plugins/vuetify/navigation/horizontal/index.ts
deleted file mode 100644
index c4633afc..00000000
--- a/packages/dashboard/src/plugins/vuetify/navigation/horizontal/index.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import type { HorizontalNavItems } from '@layouts/types'
-
-export default [
- {
- title: 'Home',
- to: { name: 'index' },
- icon: { icon: 'mdi-home-outline' },
- },
- {
- title: 'Second page',
- to: { name: 'second-page' },
- icon: { icon: 'mdi-file-document-outline' },
- },
-] as HorizontalNavItems
diff --git a/packages/dashboard/src/views/AboutView.vue b/packages/dashboard/src/views/AboutView.vue
deleted file mode 100644
index 756ad2a1..00000000
--- a/packages/dashboard/src/views/AboutView.vue
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
This is an about page
-
-
-
-
diff --git a/packages/dashboard/src/views/DashboardLayout.vue b/packages/dashboard/src/views/DashboardLayout.vue
deleted file mode 100644
index 51abd7c8..00000000
--- a/packages/dashboard/src/views/DashboardLayout.vue
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- ...
- pp
-
-
-
-
- footer
-
-
diff --git a/packages/dashboard/src/views/HomeView.vue b/packages/dashboard/src/views/HomeView.vue
deleted file mode 100644
index d5c0217e..00000000
--- a/packages/dashboard/src/views/HomeView.vue
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
diff --git a/packages/dashboard/themeConfig.ts b/packages/dashboard/themeConfig.ts
index 38c995f1..77437766 100644
--- a/packages/dashboard/themeConfig.ts
+++ b/packages/dashboard/themeConfig.ts
@@ -3,7 +3,7 @@ import { breakpointsVuetify } from '@vueuse/core'
import { VIcon } from 'vuetify/components'
// â Logo SVG must be imported with ?raw suffix
-import logo from '@/plugins/vuetify/images/logo.svg?raw'
+// import logo from '@/assets/logo.svg?raw'
import { defineThemeConfig } from '@/plugins/vuetify/@core'
import { RouteTransitions, Skins } from '@/plugins/vuetify/@core/enums'
@@ -11,10 +11,11 @@ import { AppContentLayoutNav, ContentWidth, FooterType, NavbarType } from '@layo
export const { themeConfig, layoutConfig } = defineThemeConfig({
app: {
- title: 'Ping Dashboard',
+ title: 'Ping.pub',
// â if you have SVG logo and want it to adapt according to theme color, you have to apply color as `color: rgb(var(--v-global-theme-primary))`
- logo: h('div', { innerHTML: logo, style: 'line-height:0; color: rgb(var(--v-global-theme-primary))' }),
+ // logo: h('div', { innerHTML: logo, style: 'line-height:0; color: rgb(var(--v-global-theme-primary))' }),
+ logo: h('img', {src: '/logo.svg', width: 50, height: 50}),
contentWidth: ContentWidth.Boxed,
contentLayoutNav: AppContentLayoutNav.Vertical,
overlayNavFromBreakpoint: breakpointsVuetify.md + 16, // 16 for scrollbar. Docs: https://next.vuetifyjs.com/en/features/display-and-platform/
diff --git a/packages/dashboard/vite.config.ts b/packages/dashboard/vite.config.ts
index ee460ffc..95560b4b 100644
--- a/packages/dashboard/vite.config.ts
+++ b/packages/dashboard/vite.config.ts
@@ -21,7 +21,7 @@ export default defineConfig({
},
}),
Pages({
- dirs: ["./src/pages", "./src/modules"],
+ dirs: ["./src/modules", "./src/pages", ],
}),
Layouts({
layoutsDirs: "./src/layouts/",
diff --git a/yarn.lock b/yarn.lock
index a7be773d..3f224ef9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2719,6 +2719,13 @@ create-require@^1.1.1:
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+cross-fetch@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
+ integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
+ dependencies:
+ node-fetch "2.6.7"
+
cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
@@ -5119,6 +5126,13 @@ node-fetch-native@^1.0.1:
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.0.1.tgz#1dfe78f57545d07e07016b7df4c0cb9d2ff416c7"
integrity sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg==
+node-fetch@2.6.7:
+ 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-fetch@^2.6.1, node-fetch@^2.6.7:
version "2.6.9"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6"