diff --git a/.eslintrc.js b/.eslintrc.js
index bdf306698301433a5ac5a6cb0771997f083e5e8f..ba46a82a308290fb6bcaae957b77f0f22cb63498 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -6,7 +6,7 @@ module.exports = {
ignorePatterns: ["node_modules", "build", "coverage"],
plugins: ["eslint-comments", "functional"],
extends: [
- "plugin:vue/essential",
+ "plugin:vue/recommended",
"eslint:recommended",
"@vue/typescript/recommended",
"@vue/prettier",
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 367b7aa490f9f63c8f70c35672425b8352eb294e..c854e6af1d62a5b53cbd4fe0ed57c0655acae8a3 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -9,6 +9,7 @@
"cSpell.words": [
"Coscine",
"pinia",
+ "RWTH",
"vite"
]
}
diff --git a/src/App.vue b/src/App.vue
index 887be908a5acc56d7dcec4535fda0cbea84fcb98..6d591d9f8587e3f0194b984206d94ecf2cd86cb2 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -14,6 +14,7 @@
</div>
</main>
<ExpiryToast />
+ <NotificationToast />
</div>
</template>
@@ -34,10 +35,6 @@ export default defineComponent({
return { mainStore, projectStore, userStore };
},
- created() {
- this.initialize();
- },
-
computed: {
loggedIn(): boolean {
return this.mainStore.loggedIn;
@@ -49,6 +46,11 @@ export default defineComponent({
},
watch: {
+ // Listen for token changes and reload the page to fetch data again
+ "mainStore.coscine.authorization.bearer"() {
+ window.location.reload();
+ },
+
loggedIn() {
this.userStore.retrieveUser(this.loggedIn);
},
@@ -58,6 +60,10 @@ export default defineComponent({
},
},
+ created() {
+ this.initialize();
+ },
+
methods: {
async initialize() {
await this.userStore.retrieveUser(this.loggedIn);
diff --git a/src/components.d.ts b/src/components.d.ts
index e3dea2052cf883015212f42df3b8b4f3e75acfe4..f78d7de5e69936bcff351cc62dea825602d31ab5 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -4,19 +4,20 @@
declare module "vue" {
export interface GlobalComponents {
- BreadCrumbs: typeof import("./components/BreadCrumbs.vue")["default"];
- CoscineCard: typeof import("./components/CoscineCard.vue")["default"];
- CoscineFormGroup: typeof import("./components/CoscineFormGroup.vue")["default"];
- CoscineHeadline: typeof import("./components/CoscineHeadline.vue")["default"];
- CoscineModal: typeof import("./components/CoscineModal.vue")["default"];
- ExpiryToast: typeof import("./components/ExpiryToast.vue")["default"];
- LoadingIndicator: typeof import("./components/LoadingIndicator.vue")["default"];
- LoadingSpinner: typeof import("./components/LoadingSpinner.vue")["default"];
+ BreadCrumbs: typeof import("./components/elements/BreadCrumbs.vue")["default"];
+ CoscineCard: typeof import("./components/coscine/CoscineCard.vue")["default"];
+ CoscineFormGroup: typeof import("./components/coscine/CoscineFormGroup.vue")["default"];
+ CoscineHeadline: typeof import("./components/coscine/CoscineHeadline.vue")["default"];
+ CoscineModal: typeof import("./components/coscine/CoscineModal.vue")["default"];
+ ExpiryToast: typeof import("./components/toasts/ExpiryToast.vue")["default"];
+ LoadingIndicator: typeof import("./components/elements/LoadingIndicator.vue")["default"];
+ LoadingSpinner: typeof import("./components/coscine/LoadingSpinner.vue")["default"];
Maintenance: typeof import("./components/banner/Maintenance.vue")["default"];
- MultiSelect: typeof import("./components/MultiSelect.vue")["default"];
- Navbar: typeof import("./components/Navbar.vue")["default"];
+ MultiSelect: typeof import("./components/coscine/MultiSelect.vue")["default"];
+ Navbar: typeof import("./components/elements/Navbar.vue")["default"];
+ NotificationToast: typeof import("./components/toasts/NotificationToast.vue")["default"];
Pilot: typeof import("./components/banner/Pilot.vue")["default"];
- SidebarMenu: typeof import("./components/SidebarMenu.vue")["default"];
+ SidebarMenu: typeof import("./components/elements/SidebarMenu.vue")["default"];
}
}
diff --git a/src/components/ExpiryToast.vue b/src/components/ExpiryToast.vue
deleted file mode 100644
index bbd03bda38831b9951f2d126bc3d719f80c3bfa5..0000000000000000000000000000000000000000
--- a/src/components/ExpiryToast.vue
+++ /dev/null
@@ -1,102 +0,0 @@
-<template>
- <b-toast
- v-model="loginStore.expiredSession"
- toaster="b-toaster-bottom-right"
- variant="danger"
- solid
- no-auto-hide
- no-close-button
- :title="$t('toast.session.title')"
- >
- <p class="text-center">{{ $t("toast.session.message") }}</p>
- <div class="d-flex justify-content-center">
- <b-button
- class="mt-2"
- size="sm"
- variant="secondary"
- @click="redirectToLogin"
- >
- {{ $t("toast.session.link") }}
- </b-button>
- </div>
- </b-toast>
-</template>
-
-<script lang="ts">
-import { defineComponent } from "@vue/composition-api";
-
-import * as jose from "jose";
-import moment from "moment";
-
-import useMainStore from "@/store/index";
-import useLoginStore from "@/modules/login/store";
-
-export default defineComponent({
- setup() {
- const mainStore = useMainStore();
- const loginStore = useLoginStore();
-
- return { mainStore, loginStore };
- },
- computed: {
- token(): string {
- return this.mainStore.coscine.authorization.bearer;
- },
- },
- data() {
- return {
- tokenExpiredInterval: 0,
- };
- },
- created() {
- this.initialize();
- },
- watch: {
- token() {
- this.initialize();
- },
- },
- methods: {
- getCurrentTokenExpirationDuration(): number {
- const jwt = jose.decodeJwt(this.token);
- const now = moment.utc(moment.now());
- if (jwt.exp) {
- // Use UTC to avoid time conversion errors
- const tokenExpiresAt = moment(jwt.exp * 1000).utc();
- const untilTokenExpiration = moment.duration(tokenExpiresAt.diff(now));
-
- // Return as milliseconds for setInterval() method
- return untilTokenExpiration.asMilliseconds();
- }
- return 0;
- },
- initialize() {
- this.loginStore.expiredSession = false;
- if (this.tokenExpiredInterval) {
- clearInterval(this.tokenExpiredInterval);
- }
- if (this.token) {
- this.tokenExpiredInterval = this.setInterval(
- this.notifyTokenExpired,
- this.getCurrentTokenExpirationDuration()
- );
- }
- },
- notifyTokenExpired() {
- this.loginStore.expiredSession = true;
- // Cancel interval expiration check
- clearInterval(this.tokenExpiredInterval);
- },
- redirectToLogin() {
- this.loginStore.redirectToLogin(this.$route, true);
- },
- setInterval(fn: () => void, delay: number) {
- const maxDelay = Math.pow(2, 31) - 1;
- if (delay > maxDelay) {
- return setInterval(fn, maxDelay);
- }
- return setInterval(fn, delay);
- },
- },
-});
-</script>
diff --git a/src/components/banner/Maintenance.vue b/src/components/banner/Maintenance.vue
index da121db853479694ab7653bcb3b613b9e0aa41a7..cc718e30d0875e911e0ea280b7c1cbe0da377c73 100644
--- a/src/components/banner/Maintenance.vue
+++ b/src/components/banner/Maintenance.vue
@@ -2,12 +2,12 @@
<b-alert
v-if="visibility"
:show="show"
- @dismissed="saveVisibility"
dismissible
variant="warning"
+ @dismissed="saveVisibility"
>
<i18n :path="messagePath" tag="p">
- <template v-slot:link>
+ <template #link>
<a :href="maintenance.url" target="_blank">{{
$t("banner.maintenance.moreInformation")
}}</a>
diff --git a/src/components/banner/Pilot.vue b/src/components/banner/Pilot.vue
index e84a8d0d1fd9285a5a6c5171b42c19ce378168ae..6675ee20d45046d28975625586ae384637ad5bd5 100644
--- a/src/components/banner/Pilot.vue
+++ b/src/components/banner/Pilot.vue
@@ -2,9 +2,9 @@
<b-alert
v-if="pilotVisibility"
:show="pilotVisibility"
- @dismissed="saveVisibility"
dismissible
variant="warning"
+ @dismissed="saveVisibility"
>
<i18n path="banner.pilot.pilotBannerText" tag="p">
<template #link>
diff --git a/src/components/CoscineCard.vue b/src/components/coscine/CoscineCard.vue
similarity index 84%
rename from src/components/CoscineCard.vue
rename to src/components/coscine/CoscineCard.vue
index c4b92d35f52ae1c9da4bf94ddd1a3efe245544aa..ca2b8d383495d48c3d3bdd61848467ffce908c19 100644
--- a/src/components/CoscineCard.vue
+++ b/src/components/coscine/CoscineCard.vue
@@ -2,25 +2,26 @@
<b-card
no-body
class="coscine_card m-2 text-center"
+ :class="isLoading ? 'bg-light' : ''"
@click.prevent="openCard()"
>
<!-- Stretched Link (Card) -->
- <a :href="hrefFromRouter(to)" class="stretched-link" />
+ <a v-if="!isLoading" :href="hrefFromRouter(to)" class="stretched-link" />
<!-- Badge -->
<template #header>
- <b-badge pill :variant="badge_type" v-if="badge_visibility">
- {{ badge_text }}
+ <b-badge v-if="badgeVisibility" pill :variant="badgeType">
+ {{ badgeText }}
</b-badge>
</template>
<!-- Settings Button -->
<b-button
v-if="toSettings"
- @click.stop.prevent="settingsCard()"
size="sm"
variant="outline-primary"
class="settings_button"
+ @click.stop.prevent="settingsCard"
>
<b-icon icon="pencil-fill" />
<!-- Stretched Link (Settings) -->
@@ -29,8 +30,10 @@
<b-card-body class="pt-0 pb-2 px-2">
<div>
+ <!-- Loading Spinner -->
+ <b-spinner v-if="isLoading" variant="primary" class="card_icon" />
<!-- Icon -->
- <b-icon :icon="cardIcon" variant="primary" class="card_icon" />
+ <b-icon v-else :icon="cardIcon" variant="primary" class="card_icon" />
</div>
<!-- Title -->
<b-card-text>
@@ -47,35 +50,27 @@ import { RawLocation } from "vue-router";
export default defineComponent({
components: {},
- data() {
- return {
- createIcon: "plus-circle-fill",
- resourceIcon: "archive",
- projectIcon: "folder2-open",
- placeHolderIcon: "circle-fill",
- };
- },
-
props: {
title: {
type: String,
required: true,
},
- badge_text: {
+ badgeText: {
default: "",
type: String,
},
- badge_visibility: {
+ badgeVisibility: {
default: false,
type: Boolean,
},
- badge_type: {
+ badgeType: {
default: "warning",
type: String,
},
type: {
+ default: "",
type: String,
- required: true,
+ required: false,
},
toSettings: {
default: null,
@@ -85,6 +80,19 @@ export default defineComponent({
type: Object as PropType<RawLocation>,
required: true,
},
+ isLoading: {
+ default: false,
+ type: Boolean,
+ },
+ },
+
+ data() {
+ return {
+ createIcon: "plus-circle-fill",
+ resourceIcon: "archive",
+ projectIcon: "folder2-open",
+ placeHolderIcon: "circle-fill",
+ };
},
computed: {
diff --git a/src/components/CoscineFormGroup.vue b/src/components/coscine/CoscineFormGroup.vue
similarity index 94%
rename from src/components/CoscineFormGroup.vue
rename to src/components/coscine/CoscineFormGroup.vue
index 89cf9b6db2b0692a5d92747e4a93ccf99504cc08..e16800405629e430ad23ffc3c7ebd939d7c9a082 100644
--- a/src/components/CoscineFormGroup.vue
+++ b/src/components/coscine/CoscineFormGroup.vue
@@ -18,9 +18,9 @@
<!-- Label -->
<span id="label" class="text-break">{{ label }}</span>
- <div class="d-inline ml-1" v-if="info">
+ <div v-if="info" class="d-inline ml-1">
<!-- Information Circle Icon -->
- <b-icon icon="info-circle" :id="labelFor" />
+ <b-icon :id="labelFor" icon="info-circle" />
<!-- Popover -->
<b-popover
diff --git a/src/components/CoscineHeadline.vue b/src/components/coscine/CoscineHeadline.vue
similarity index 100%
rename from src/components/CoscineHeadline.vue
rename to src/components/coscine/CoscineHeadline.vue
diff --git a/src/components/CoscineModal.vue b/src/components/coscine/CoscineModal.vue
similarity index 91%
rename from src/components/CoscineModal.vue
rename to src/components/coscine/CoscineModal.vue
index 5e0b2099677154ec2a5d8d335e5b04da2ec12e4e..917b3d015311932bc8c676362a35862345de29b6 100644
--- a/src/components/CoscineModal.vue
+++ b/src/components/coscine/CoscineModal.vue
@@ -1,16 +1,18 @@
<template>
<b-modal
:visible="value"
- @change="$emit('input', value)"
:title="title"
- @hidden="hideModal"
:hide-footer="true"
+ @change="$emit('input', value)"
+ @hidden="hideModal"
>
<div>
{{ body }}
</div>
<slot />
- <slot name="buttons" />
+ <div class="mt-4">
+ <slot name="buttons" />
+ </div>
</b-modal>
</template>
diff --git a/src/components/LoadingSpinner.vue b/src/components/coscine/LoadingSpinner.vue
similarity index 96%
rename from src/components/LoadingSpinner.vue
rename to src/components/coscine/LoadingSpinner.vue
index 8e4c03d4b92a2b86b182735b868658c62af86645..d4613964e3b23729bb2016ca5c666681122e26d3 100644
--- a/src/components/LoadingSpinner.vue
+++ b/src/components/coscine/LoadingSpinner.vue
@@ -6,9 +6,8 @@
:show="isWaitingForResponse"
:variant="'white'"
:opacity="0.9"
- :z-index="2000"
+ :z-index="1000"
:blur="''"
- rounded="sm"
>
<template #overlay>
<div class="text-center">
diff --git a/src/components/MultiSelect.vue b/src/components/coscine/MultiSelect.vue
similarity index 98%
rename from src/components/MultiSelect.vue
rename to src/components/coscine/MultiSelect.vue
index 23811ebc32aeea232e043202974a26b1a76af40d..35e9f0fd50a9f701f3302ec7af0ae739d073ee3f 100644
--- a/src/components/MultiSelect.vue
+++ b/src/components/coscine/MultiSelect.vue
@@ -11,14 +11,14 @@
no-outer-focus
class="mb-2"
>
- <template v-slot="{ tags, disabled, addTag, removeTag }">
+ <template #default="{ tags, disabled, addTag, removeTag }">
<ul v-if="tags.length > 0" class="list-inline d-inline-block mb-2">
<li v-for="tag in tags" :key="tag" class="list-inline-item">
<b-form-tag
- @remove="removeTag(tag)"
:title="tag"
:disabled="disabled"
variant="info"
+ @remove="removeTag(tag)"
>{{ tag }}</b-form-tag
>
</li>
@@ -44,8 +44,8 @@
:disabled="disabled"
>
<b-form-input
- v-model="search"
id="tag-search-input"
+ v-model="search"
type="search"
size="sm"
autocomplete="off"
diff --git a/src/components/BreadCrumbs.vue b/src/components/elements/BreadCrumbs.vue
similarity index 100%
rename from src/components/BreadCrumbs.vue
rename to src/components/elements/BreadCrumbs.vue
diff --git a/src/components/LoadingIndicator.vue b/src/components/elements/LoadingIndicator.vue
similarity index 100%
rename from src/components/LoadingIndicator.vue
rename to src/components/elements/LoadingIndicator.vue
diff --git a/src/components/Navbar.vue b/src/components/elements/Navbar.vue
similarity index 93%
rename from src/components/Navbar.vue
rename to src/components/elements/Navbar.vue
index ffcd08c91ec4ed544633247d1958970475a013f0..dbc49fac3dba560b3f54f501b38696e15ac70f00 100644
--- a/src/components/Navbar.vue
+++ b/src/components/elements/Navbar.vue
@@ -1,17 +1,14 @@
<template>
<header id="header">
<b-navbar toggleable="md" type="dark" variant="dark">
- <!-- Sidebar Toggle -->
- <b-navbar-nav>
- <b-nav-item @click="toggleSidebar">
- <b-icon icon="justify" />
- </b-nav-item>
- </b-navbar-nav>
-
<!-- Coscine Logo -->
<b-navbar-brand id="coscineLogo">
<RouterLink :to="{ name: 'list-projects' }">
- <img alt="Coscine logo" src="@/assets/svg/coscine_white.svg" />
+ <img
+ alt="Coscine Logo"
+ src="@/assets/svg/coscine_white.svg"
+ class="mx-3"
+ />
</RouterLink>
</b-navbar-brand>
@@ -28,8 +25,8 @@
</template>
<b-form-input
id="search"
- type="search"
v-model="searchTerm"
+ type="search"
:placeholder="$t('nav.search')"
/>
</b-input-group>
@@ -45,8 +42,8 @@
<!-- Language Options -->
<b-dropdown-item
v-for="(locale, index) in locales"
- :disabled="$root.$i18n.locale === locale"
:key="index"
+ :disabled="$root.$i18n.locale === locale"
@click="changeLocale(locale)"
>{{ $t("nav.lang" + locale.toUpperCase()) }}</b-dropdown-item
>
@@ -71,11 +68,11 @@
>
</b-nav-item-dropdown>
- <b-nav-item-dropdown right v-if="loggedIn">
- <template #button-content v-if="user"
+ <b-nav-item-dropdown v-if="loggedIn" right>
+ <template v-if="user" #button-content
>{{ $t("nav.user", { displayName: user.displayName }) }}
</template>
- <template #button-content v-else
+ <template v-else #button-content
><b-skeleton
animation="fade"
height="1.5rem"
@@ -101,9 +98,9 @@
<router-link
v-else
+ v-slot="{ href, isExactActive }"
:to="{ name: 'login', query: { redirect: $route.fullPath } }"
custom
- v-slot="{ href, isExactActive }"
>
<b-nav-item right :disabled="isExactActive" :href="href">{{
$t("nav.userLogIn")
diff --git a/src/components/SidebarMenu.vue b/src/components/elements/SidebarMenu.vue
similarity index 98%
rename from src/components/SidebarMenu.vue
rename to src/components/elements/SidebarMenu.vue
index 38b90f02db84ef45c2ef8e681c716730e7eed6b9..5e6ae8046d2be696294f8cf373183e73e1575ed4 100644
--- a/src/components/SidebarMenu.vue
+++ b/src/components/elements/SidebarMenu.vue
@@ -2,18 +2,18 @@
<sidebar-menu
:menu="menu"
:collapsed="collapsed"
- @toggle-collapse="collapse"
:relative="true"
- :showOneChild="true"
- :disableHover="true"
+ :show-one-child="true"
+ :disable-hover="true"
theme="white-theme"
+ @toggle-collapse="collapse"
>
- <template v-slot:toggle-icon>
+ <template #toggle-icon>
<b-icon v-if="!collapsed" icon="arrow-bar-left" />
<b-icon v-else icon="arrow-bar-right" />
</template>
- <template v-slot:dropdown-icon>
+ <template #dropdown-icon>
<b-icon icon="caret-right" />
</template>
</sidebar-menu>
@@ -59,9 +59,6 @@ export default defineComponent({
return { mainStore, projectStore, resourceStore };
},
- created() {
- this.collapsed = !this.sidebarActive;
- },
data() {
return {
collapsed: false,
@@ -257,6 +254,9 @@ export default defineComponent({
this.collapsed = !this.sidebarActive;
},
},
+ created() {
+ this.collapsed = !this.sidebarActive;
+ },
methods: {
collapse(collapsed: boolean) {
this.collapsed = collapsed;
diff --git a/src/components/toasts/ExpiryToast.vue b/src/components/toasts/ExpiryToast.vue
new file mode 100644
index 0000000000000000000000000000000000000000..3f94927f1194507a5aee6af71416a400a0a7e9f3
--- /dev/null
+++ b/src/components/toasts/ExpiryToast.vue
@@ -0,0 +1,132 @@
+<template>
+ <div>
+ <!-- White Overlay Background -->
+ <b-overlay
+ no-wrap
+ :fixed="true"
+ :show="loginStore.expiredSession"
+ :variant="'white'"
+ :opacity="0.9"
+ :z-index="1000"
+ :blur="''"
+ >
+ <template #overlay>
+ <!-- Remove the default loading spinner -->
+ <div />
+ </template>
+ </b-overlay>
+
+ <!-- Expiry Toast -->
+ <b-toast
+ v-model="loginStore.expiredSession"
+ toaster="b-toaster-bottom-right"
+ variant="danger"
+ solid
+ no-auto-hide
+ no-close-button
+ :title="$t('toast.session.title')"
+ >
+ <!-- Toast Body Text -->
+ <p class="text-center">{{ $t("toast.session.message") }}</p>
+
+ <!-- Login Button -->
+ <div class="d-flex justify-content-center">
+ <b-button
+ class="mt-2"
+ size="sm"
+ variant="secondary"
+ @click="redirectToLogin"
+ >
+ {{ $t("toast.session.link") }}
+ </b-button>
+ </div>
+ </b-toast>
+ </div>
+</template>
+
+<script lang="ts">
+import { defineComponent } from "@vue/composition-api";
+
+import * as jose from "jose";
+import moment from "moment";
+
+import useMainStore from "@/store/index";
+import useLoginStore from "@/modules/login/store";
+
+export default defineComponent({
+ setup() {
+ const mainStore = useMainStore();
+ const loginStore = useLoginStore();
+
+ return { mainStore, loginStore };
+ },
+ data() {
+ return {
+ tokenExpiredInterval: 0,
+ };
+ },
+ computed: {
+ token(): string {
+ return this.mainStore.coscine.authorization.bearer;
+ },
+ },
+ watch: {
+ token() {
+ this.initialize();
+ },
+ },
+ created() {
+ this.initialize();
+ },
+ methods: {
+ getCurrentTokenExpirationDuration(): number {
+ try {
+ const jwt = jose.decodeJwt(this.token);
+ const now = moment.utc(moment.now());
+ if (jwt.exp) {
+ // Use UTC to avoid time conversion errors
+ const tokenExpiresAt = moment(jwt.exp * 1000).utc();
+ const untilTokenExpiration = moment.duration(
+ tokenExpiresAt.diff(now)
+ );
+
+ // Return as milliseconds for setInterval() method
+ return untilTokenExpiration.asMilliseconds();
+ } else {
+ return 0;
+ }
+ } catch (error) {
+ // Provided token is not a valid JWT Token
+ return 0;
+ }
+ },
+ initialize() {
+ this.loginStore.expiredSession = false;
+ if (this.tokenExpiredInterval) {
+ clearInterval(this.tokenExpiredInterval);
+ }
+ if (this.token) {
+ this.tokenExpiredInterval = this.setInterval(
+ this.notifyTokenExpired,
+ this.getCurrentTokenExpirationDuration()
+ );
+ }
+ },
+ notifyTokenExpired() {
+ this.loginStore.expiredSession = true;
+ // Cancel interval expiration check
+ clearInterval(this.tokenExpiredInterval);
+ },
+ redirectToLogin() {
+ this.loginStore.redirectToLogin(this.$route, true);
+ },
+ setInterval(fn: () => void, delay: number): number {
+ const maxDelay = Math.pow(2, 31) - 1;
+ if (delay > maxDelay) {
+ return window.setInterval(fn, maxDelay);
+ }
+ return window.setInterval(fn, delay);
+ },
+ },
+});
+</script>
diff --git a/src/components/toasts/NotificationToast.vue b/src/components/toasts/NotificationToast.vue
new file mode 100644
index 0000000000000000000000000000000000000000..6ad4fea1992154bafbfeadf0d7638ace68b9ee98
--- /dev/null
+++ b/src/components/toasts/NotificationToast.vue
@@ -0,0 +1,48 @@
+<template>
+ <div />
+</template>
+
+<script lang="ts">
+import { defineComponent } from "vue-demi";
+import useNotificationStore from "@/store/notification";
+import type { NotificationToast } from "@/store/types";
+
+export default defineComponent({
+ setup() {
+ const notificationStore = useNotificationStore();
+
+ return { notificationStore };
+ },
+
+ computed: {
+ currentToast(): NotificationToast | undefined {
+ return this.notificationStore.notificationQueue
+ ? (this.notificationStore.notificationQueue.at(0) as NotificationToast)
+ : undefined;
+ },
+ },
+
+ watch: {
+ currentToast() {
+ const toast = this.currentToast;
+ if (toast) {
+ // Display the notification toast
+ this.makeToast(toast);
+ // Toast has been shown, remove it from the queue
+ this.notificationStore.deleteNotification(toast);
+ }
+ },
+ },
+
+ methods: {
+ async makeToast(toast: NotificationToast) {
+ if (!toast.toaster) {
+ toast.toaster = "b-toaster-bottom-right";
+ }
+ this.$root.$bvToast.toast(toast.body, toast);
+ },
+ },
+});
+</script>
+
+<style></style>
diff --git a/src/i18n/de.ts b/src/i18n/de.ts
index 58a8510463457f2c95469d5a30961ec72a36a17a..ba28b6510b62fc040ae709198ec000c45aeec822 100644
--- a/src/i18n/de.ts
+++ b/src/i18n/de.ts
@@ -105,6 +105,16 @@ export default {
"Es ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut. Falls der Fehler weiterhin auftritt, wenden Sie sich bitte an @:(email.serviceDeskEmail).",
},
},
+ apiError: {
+ general: {
+ title: "Ein Fehler ist aufgetreten",
+ body: "Es ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut. Falls der Fehler weiterhin auftritt, wenden Sie sich bitte an @:(email.serviceDeskEmail).",
+ },
+ specific: {
+ title: "Ein Fehler ist aufgetreten",
+ body: "Es ist ein Fehler aufgetreten {error}. Bitte versuchen Sie es erneut. Falls der Fehler weiterhin auftritt, wenden Sie sich bitte an @:(email.serviceDeskEmail).",
+ },
+ },
},
breadcrumbs: {
@@ -232,9 +242,9 @@ export default {
},
email: {
- serviceDeskEmail: "servicedesk@rwth-aachen.de",
+ serviceDeskEmail: "servicedesk@itc.rwth-aachen.de",
serviceDeskMailTo:
- "mailto:servicedesk@rwth-aachen.de?subject=CoScInE%20Pilot%20Program",
+ "mailto:servicedesk@itc.rwth-aachen.de?subject=CoScInE%20Pilot%20Program",
serviceDeskName: "Servicedesk",
},
} as VueI18n.LocaleMessageObject;
diff --git a/src/i18n/en.ts b/src/i18n/en.ts
index 1cf6727f4efcb3dc6343be3cef430461b1442322..e0791174db14deeeda8a92b63963fb0f8e54bc52 100644
--- a/src/i18n/en.ts
+++ b/src/i18n/en.ts
@@ -89,7 +89,7 @@ export default {
failure: {
title: "Error on saving",
message:
- "An error occured. Please try again. If the error persists, please contact @:(email.serviceDeskEmail).",
+ "An error occurred. Please try again. If the error persists, please contact @:(email.serviceDeskEmail).",
},
},
onDelete: {
@@ -100,7 +100,17 @@ export default {
failure: {
title: "Error on deletion",
message:
- "An error occured. Please try again. If the error persists, please contact @:(email.serviceDeskEmail).",
+ "An error occurred. Please try again. If the error persists, please contact @:(email.serviceDeskEmail).",
+ },
+ },
+ apiError: {
+ general: {
+ title: "An error occurred",
+ body: "An error occurred. Please try again. If the error persists, please contact @:(email.serviceDeskEmail).",
+ },
+ specific: {
+ title: "An error occurred",
+ body: "An error occurred {error}. Please try again. If the error persists, please contact @:(email.serviceDeskEmail).",
},
},
},
@@ -229,9 +239,9 @@ export default {
},
email: {
- serviceDeskEmail: "servicedesk@rwth-aachen.de",
+ serviceDeskEmail: "servicedesk@itc.rwth-aachen.de",
serviceDeskMailTo:
- "mailto:servicedesk@rwth-aachen.de?subject=Coscine%20Pilot%20Program",
+ "mailto:servicedesk@itc.rwth-aachen.de?subject=Coscine%20Pilot%20Program",
serviceDeskName: "Servicedesk",
},
} as VueI18n.LocaleMessageObject;
diff --git a/src/modules/admin/AdminModule.vue b/src/modules/admin/AdminModule.vue
index bb98cfb53a04fb8a2cfcca9690344c63a0fd9cd1..b58932377881d2930f291f7748ee316f5cd7565b 100644
--- a/src/modules/admin/AdminModule.vue
+++ b/src/modules/admin/AdminModule.vue
@@ -20,16 +20,16 @@ export default defineComponent({
return { mainStore, adminStore };
},
- created() {
- this.initialize();
- },
-
computed: {
moduleIsReady(): boolean {
return true;
},
},
+ created() {
+ this.initialize();
+ },
+
methods: {
async initialize() {
// do initialization stuff (e.g. API calls, element loading, etc.)
diff --git a/src/modules/admin/pages/Admin.vue b/src/modules/admin/pages/Admin.vue
index 5f19ae17089fab68d6251813414797d2d9a0e4a3..37f4a8604764916be343e65fae3959832935a40d 100644
--- a/src/modules/admin/pages/Admin.vue
+++ b/src/modules/admin/pages/Admin.vue
@@ -16,7 +16,7 @@
<script lang="ts">
import { defineComponent } from "vue-demi";
-import CoscineHeadline from "@/components/CoscineHeadline.vue";
+import CoscineHeadline from "@/components/coscine/CoscineHeadline.vue";
// import the store for current module
import useAdminStore from "../store";
@@ -24,15 +24,14 @@ import useAdminStore from "../store";
import useMainStore from "@/store/index";
export default defineComponent({
+ components: {
+ CoscineHeadline,
+ },
setup() {
const mainStore = useMainStore();
const adminStore = useAdminStore();
return { mainStore, adminStore };
},
-
- components: {
- CoscineHeadline,
- },
});
</script>
diff --git a/src/modules/error/ErrorModule.vue b/src/modules/error/ErrorModule.vue
index b0c836e15071ec59543c3d4c2cf60472db4c21a8..5d27a41e457f2a41cdab7281c3cac9f5ffddf993 100644
--- a/src/modules/error/ErrorModule.vue
+++ b/src/modules/error/ErrorModule.vue
@@ -20,16 +20,16 @@ export default defineComponent({
return { mainStore, errorStore };
},
- created() {
- this.initialize();
- },
-
computed: {
moduleIsReady(): boolean {
return true;
},
},
+ created() {
+ this.initialize();
+ },
+
methods: {
async initialize() {
// do initialization stuff (e.g. API calls, element loading, etc.)
diff --git a/src/modules/error/pages/NotFound.vue b/src/modules/error/pages/NotFound.vue
index 37431cd9ed7ad6a6b9162e4a1c0e246766041d23..3a3d13dd786caca739a7d46fde98b2547ee4b2f6 100644
--- a/src/modules/error/pages/NotFound.vue
+++ b/src/modules/error/pages/NotFound.vue
@@ -16,7 +16,7 @@
<script lang="ts">
import { defineComponent } from "vue-demi";
-import CoscineHeadline from "@/components/CoscineHeadline.vue";
+import CoscineHeadline from "@/components/coscine/CoscineHeadline.vue";
// import the store for current module
import useErrorStore from "../store";
@@ -24,15 +24,14 @@ import useErrorStore from "../store";
import useMainStore from "@/store/index";
export default defineComponent({
+ components: {
+ CoscineHeadline,
+ },
setup() {
const mainStore = useMainStore();
const errorStore = useErrorStore();
return { mainStore, errorStore };
},
-
- components: {
- CoscineHeadline,
- },
});
</script>
diff --git a/src/modules/login/LoginModule.vue b/src/modules/login/LoginModule.vue
index 9e15fabc356cedc112ad3022da2e4a24c627c12e..9b60b323dc72ce1c4ac9bce5c21cbcd86d2207b9 100644
--- a/src/modules/login/LoginModule.vue
+++ b/src/modules/login/LoginModule.vue
@@ -20,16 +20,16 @@ export default defineComponent({
return { mainStore, loginStore };
},
- created() {
- this.initialize();
- },
-
computed: {
moduleIsReady(): boolean {
return true;
},
},
+ created() {
+ this.initialize();
+ },
+
methods: {
async initialize() {
// do initialization stuff (e.g. API calls, element loading, etc.)
diff --git a/src/modules/pid/PidModule.vue b/src/modules/pid/PidModule.vue
index 8010d3fde3cbcfc7dc0a82f381886d1de1bd2ef5..e38b34f7778ed330c7c6fe390f574cd01e669805 100644
--- a/src/modules/pid/PidModule.vue
+++ b/src/modules/pid/PidModule.vue
@@ -20,16 +20,16 @@ export default defineComponent({
return { mainStore, pidStore };
},
- created() {
- this.initialize();
- },
-
computed: {
moduleIsReady(): boolean {
return true;
},
},
+ created() {
+ this.initialize();
+ },
+
methods: {
async initialize() {
// do initialization stuff (e.g. API calls, element loading, etc.)
diff --git a/src/modules/pid/pages/Pid.vue b/src/modules/pid/pages/Pid.vue
index 3e863c39311a7a757c59fda22c88e3fbe5a1d716..a130096c844edb8cd607925a4c104d512ca3604a 100644
--- a/src/modules/pid/pages/Pid.vue
+++ b/src/modules/pid/pages/Pid.vue
@@ -15,7 +15,7 @@
<script lang="ts">
import { defineComponent } from "vue-demi";
-import CoscineHeadline from "@/components/CoscineHeadline.vue";
+import CoscineHeadline from "@/components/coscine/CoscineHeadline.vue";
// import the store for current module
import usePidStore from "../store";
@@ -23,15 +23,14 @@ import usePidStore from "../store";
import useMainStore from "@/store/index";
export default defineComponent({
+ components: {
+ CoscineHeadline,
+ },
setup() {
const mainStore = useMainStore();
const pidStore = usePidStore();
return { mainStore, pidStore };
},
-
- components: {
- CoscineHeadline,
- },
});
</script>
diff --git a/src/modules/project/ProjectModule.vue b/src/modules/project/ProjectModule.vue
index 3666440bc4ab0fe54f51c7c0957d01cff67a0fcc..fa56c2859ac0b828a45ec672bb173717fcbc551c 100644
--- a/src/modules/project/ProjectModule.vue
+++ b/src/modules/project/ProjectModule.vue
@@ -1,6 +1,6 @@
<template>
<div>
- <router-view :loading="!moduleIsReady" />
+ <router-view />
</div>
</template>
@@ -10,6 +10,7 @@ import { defineComponent } from "vue-demi";
// import the store for current module
import useProjectStore from "./store";
import useResourceStore from "@/modules/resource/store";
+import useNotificationStore from "@/store/notification";
// import the main store
import useMainStore from "@/store/index";
@@ -17,16 +18,17 @@ import type { ProjectObject } from "@coscine/api-client/dist/types/Coscine.Api.P
import type { Route } from "vue-router";
export default defineComponent({
+ async beforeRouteUpdate(to, from, next) {
+ await this.apiFetch(to);
+ next();
+ },
setup() {
const mainStore = useMainStore();
const projectStore = useProjectStore();
+ const notificationStore = useNotificationStore();
const resourceStore = useResourceStore();
- return { mainStore, projectStore, resourceStore };
- },
-
- created() {
- this.initialize();
+ return { mainStore, projectStore, notificationStore, resourceStore };
},
computed: {
@@ -34,20 +36,32 @@ export default defineComponent({
return this.projectStore.currentProject;
},
moduleIsReady(): boolean {
+ // Currently unused
return (
- this.projectStore !== null &&
this.projectStore.currentSlug !== null &&
this.projectStore.currentProject !== null &&
this.projectStore.currentResources !== null &&
this.projectStore.currentSubProjects !== null &&
this.projectStore.currentQuotas !== null &&
- this.resourceStore.resourceTypes !== null &&
this.projectStore.currentProjectRoles !== null &&
- this.projectStore.roles !== null
+ this.projectStore.roles !== null &&
+ this.projectStore.roles !== undefined &&
+ this.resourceStore.resourceTypes !== null
);
},
},
+ created() {
+ this.initialize();
+ },
+
+ beforeDestroy() {
+ // Set the slug to null in order to hide the project from the sidebar
+ if (this.projectStore.currentSlug) {
+ this.projectStore.currentSlug = null;
+ }
+ },
+
methods: {
async initialize() {
await this.apiFetch(this.$router.currentRoute);
@@ -88,10 +102,5 @@ export default defineComponent({
}
},
},
-
- async beforeRouteUpdate(to, from, next) {
- await this.apiFetch(to);
- next();
- },
});
</script>
diff --git a/src/modules/project/RootProjectModule.vue b/src/modules/project/RootProjectModule.vue
index 47570e87ca1bfc0f0433ae24abf27c00d7c6a426..2a517547bbc30863bdc6a984fe8522ba5b003acd 100644
--- a/src/modules/project/RootProjectModule.vue
+++ b/src/modules/project/RootProjectModule.vue
@@ -1,6 +1,9 @@
<template>
<div>
<router-view v-if="moduleIsReady" />
+ <b-row v-else align-h="center" class="my-4">
+ <b-spinner variant="secondary" />
+ </b-row>
</div>
</template>
@@ -13,6 +16,10 @@ import useProjectStore from "./store";
import useMainStore from "@/store/index";
export default defineComponent({
+ async beforeRouteUpdate(to, from, next) {
+ await this.apiFetch();
+ next();
+ },
setup() {
const mainStore = useMainStore();
const projectStore = useProjectStore();
@@ -20,20 +27,19 @@ export default defineComponent({
return { mainStore, projectStore };
},
- created() {
- this.initialize();
- },
-
computed: {
moduleIsReady(): boolean {
return (
- this.projectStore !== null &&
this.projectStore.topLevelProjects !== null &&
this.projectStore.roles !== null
);
},
},
+ created() {
+ this.initialize();
+ },
+
methods: {
async initialize() {
await this.apiFetch();
@@ -55,10 +61,5 @@ export default defineComponent({
}
},
},
-
- async beforeRouteUpdate(to, from, next) {
- await this.apiFetch();
- next();
- },
});
</script>
diff --git a/src/modules/project/i18n/de.ts b/src/modules/project/i18n/de.ts
index c455e76fbd750d337405d455fde78b45a0f233e7..56ee0ebf5c1e85573b8ad0900a3ccd5b668c00a7 100644
--- a/src/modules/project/i18n/de.ts
+++ b/src/modules/project/i18n/de.ts
@@ -116,16 +116,15 @@ export default {
quota: {
headline: "Quota Management",
resources: "Ressourcen",
- rangeText1: " GB von ",
- rangeText2: " GB reserviert",
- gb: " GB ",
+ rangeText: "{allocated} GB von {maximum} GB reserviert",
+ gb: "{number} GB",
projectLabel: "Projekt:",
- resourceTypeLabel: "Ressource Typ:",
+ resourceTypeLabel: "Ressourcentyp:",
- emptyProjectSelect: "-- Bitte wählen Sie ein Projekt --",
- emptyResourceTypeSelect: "-- Bitte wählen Sie einen Ressourcen Typ --",
- noResourceTypeChoosen: "Es wurde kein Ressourcen Typ ausgewählt.",
+ emptyProjectSelect: "Bitte wählen Sie ein Projekt aus.",
+ emptyResourceTypeSelect: "Bitte wählen Sie einen Ressourcentyp aus.",
+ noResourceTypeChoosen: "Es wurde kein Ressourcentyp ausgewählt.",
moreHelp: "Mehr anfordern",
moreHelpLink:
@@ -140,24 +139,24 @@ export default {
connectionErrorTitle: "Fehler bei der Abfrage der Quotas",
connectionErrorBody:
- "Bei der Abfrage der Quotas ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut. Wenn der Fehler weiter auftritt, wenden Sie sich bitte an servicedesk@rwth-aachen.de",
+ "Bei der Abfrage der Quotas ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut. Wenn der Fehler weiter auftritt, wenden Sie sich bitte an servicedesk@itc.rwth-aachen.de",
resourceTypeQuotaChangedSuccessTitle: "Quota erfolgreich verändert",
resourceTypeQuotaChangedSuccessBody:
"Die Quota im Projekt {ProjectName} wurde auf {AmountInGB} GB gesetzt.",
resourceTypeQuotaChangedFailureTitle: "Fehler beim Ändern der Quota",
resourceTypeQuotaChangedFailureBody:
- "Beim Ändern der Quota ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut. Wenn der Fehler weiter auftritt, wenden Sie sich bitte an servicedesk@rwth-aachen.de",
+ "Beim Ändern der Quota ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut. Wenn der Fehler weiter auftritt, wenden Sie sich bitte an servicedesk@itc.rwth-aachen.de",
resourceQuotaChangedSuccessTitle: "Quota erfolgreich verändert",
resourceQuotaChangedSuccessBody:
"Die Quota in Ressource {ResourceName} wurde auf {AmountInGB} GB gesetzt.",
resourceQuotaChangedFailureTitle: "Fehler beim Ändern der Quota",
resourceQuotaChangedFailureBody:
- "Beim Ändern der Quota ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut. Wenn der Fehler weiter auftritt, wenden Sie sich bitte an servicedesk@rwth-aachen.de",
+ "Beim Ändern der Quota ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut. Wenn der Fehler weiter auftritt, wenden Sie sich bitte an servicedesk@itc.rwth-aachen.de",
},
- // Settíngs.vue
+ // Settings.vue
settings: {
// page title is fetched from `sidebar.projectSettings`
@@ -170,6 +169,7 @@ export default {
},
},
},
+
form: {
project: {
labelSymbol: ":",
diff --git a/src/modules/project/i18n/en.ts b/src/modules/project/i18n/en.ts
index 308050af07536f9f8e620342263f9c058fa60bb4..007f58402d301a7d8a53392c1a344f60e3717f08 100644
--- a/src/modules/project/i18n/en.ts
+++ b/src/modules/project/i18n/en.ts
@@ -111,15 +111,14 @@ export default {
quota: {
headline: "Quota Management",
resources: "Resources",
- rangeText1: " GB of ",
- rangeText2: " GB reserved",
- gb: " GB ",
+ rangeText: "{allocated} GB of {maximum} GB reserved",
+ gb: "{number} GB",
projectLabel: "Project:",
resourceTypeLabel: "Resource Type:",
- emptyProjectSelect: "-- Please select a project --",
- emptyResourceTypeSelect: "-- Please select a resource type --",
+ emptyProjectSelect: "Please select a project.",
+ emptyResourceTypeSelect: "Please select a resource type.",
noResourceTypeChoosen: "No resource type selected.",
moreHelp: "Request more",
@@ -134,27 +133,27 @@ export default {
emptyTableText: "No resources exist for this resource type.",
- connectionErrorTitle: "Resource quota retrieval not successfull",
+ connectionErrorTitle: "Resource quota retrieval not successful",
connectionErrorBody:
- "An error occured while retrieving the resource type quota. Please try again. If the error persists, contact us at servicedesk@rwth-aachen.de",
+ "An error occurred while retrieving the resource type quota. Please try again. If the error persists, contact us at servicedesk@itc.rwth-aachen.de",
resourceTypeQuotaChangedSuccessTitle: "Quota extended successfully",
resourceTypeQuotaChangedSuccessBody:
"The quota for project {ProjectName} was successfully extended to {AmountInGB} GB.",
resourceTypeQuotaChangedFailureTitle:
- "Resource quota extension not successfull",
+ "Resource quota extension not successful",
resourceTypeQuotaChangedFailureBody:
- "An error occured while extending the resource type quota. Please try again. If the error persists, contact us at servicedesk@rwth-aachen.de",
+ "An error occurred while extending the resource type quota. Please try again. If the error persists, contact us at servicedesk@itc.rwth-aachen.de",
resourceQuotaChangedSuccessTitle: "Quota extended successfully",
resourceQuotaChangedSuccessBody:
"The quota for resource {ResourceName} was successfully extended to {AmountInGB} GB.",
- resourceQuotaChangedFailureTitle: "Quota extension not successfull",
+ resourceQuotaChangedFailureTitle: "Quota extension not successful",
resourceQuotaChangedFailureBody:
- "An error occured while extending the quota. Please try again. If the error persists, contact us at servicedesk@rwth-aachen.de",
+ "An error occurred while extending the quota. Please try again. If the error persists, contact us at servicedesk@itc.rwth-aachen.de",
},
- // Settíngs.vue
+ // Settings.vue
settings: {
// page title is fetched from `sidebar.projectSettings`
@@ -166,6 +165,7 @@ export default {
},
},
},
+
form: {
project: {
labelSymbol: ":",
diff --git a/src/modules/project/pages/CreateProject.vue b/src/modules/project/pages/CreateProject.vue
index a138e27cec9b37090c100af1eb695c8bbaf7b14f..9b7f302c2bf1b245f5f50527104f507d87ef3c6c 100644
--- a/src/modules/project/pages/CreateProject.vue
+++ b/src/modules/project/pages/CreateProject.vue
@@ -19,7 +19,7 @@
<FormNaming
v-model="projectForm"
- :isLoading="isLoading"
+ :is-loading="isLoading"
@validation="formValidations.naming = $event"
/>
@@ -27,8 +27,8 @@
<FormMetadata
v-model="projectForm"
- :isLoading="isLoading"
- :parentProject="project"
+ :is-loading="isLoading"
+ :parent-project="project"
@validation="formValidations.metadata = $event"
/>
@@ -38,7 +38,6 @@
type="submit"
variant="primary"
class="float-right"
- @click.prevent="clickSave"
:disabled="
formValidations.naming.$invalid ||
formValidations.metadata.$invalid ||
@@ -46,6 +45,7 @@
!formValidations.metadata.$anyDirty) ||
isWaitingForResponse
"
+ @click.prevent="clickSave"
>
{{ $t("buttons.submit") }}</b-button
>
@@ -54,8 +54,8 @@
<!-- Loading Spinner on Submit -->
<LoadingSpinner
- :isWaitingForResponse="isWaitingForResponse"
- :textAfter="$t('page.createProject.loadingSpinnerProjectCreation')"
+ :is-waiting-for-response="isWaitingForResponse"
+ :text-after="$t('page.createProject.loadingSpinnerProjectCreation')"
/>
</div>
<div class="col-sm-2" />
@@ -85,19 +85,20 @@ import useProjectStore from "../store";
import useMainStore from "@/store/index";
import useResourceStore from "@/modules/resource/store";
import { navigateToProject } from "@/router";
+import useNotificationStore from "@/store/notification";
export default defineComponent({
+ components: {
+ FormNaming,
+ FormMetadata,
+ },
setup() {
const mainStore = useMainStore();
const projectStore = useProjectStore();
const resourceStore = useResourceStore();
+ const notificationStore = useNotificationStore();
- return { mainStore, projectStore, resourceStore };
- },
-
- components: {
- FormNaming,
- FormMetadata,
+ return { mainStore, projectStore, resourceStore, notificationStore };
},
data() {
@@ -153,20 +154,6 @@ export default defineComponent({
},
methods: {
- makeToast(
- text = "Message",
- givenTitle = "Title",
- variant: string | undefined = undefined
- ) {
- this.$root.$bvToast.toast(text, {
- title: givenTitle,
- autoHideDelay: 5000,
- toaster: "b-toaster-bottom-right",
- variant: variant,
- noCloseButton: true,
- });
- },
-
async clickSave() {
// Validate form again
this.formValidations.naming.$touch();
@@ -197,11 +184,11 @@ export default defineComponent({
} else {
this.isWaitingForResponse = false;
// On Failure
- this.makeToast(
- this.$t("toast.onSave.failure.message").toString(),
- this.$t("toast.onSave.failure.title").toString(),
- "danger"
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onSave.failure.title").toString(),
+ body: this.$t("toast.onSave.failure.message").toString(),
+ variant: "danger",
+ });
}
},
},
diff --git a/src/modules/project/pages/Members.vue b/src/modules/project/pages/Members.vue
index 0791f1e36c677b10be76a3c3d627ee331cd9ecfb..c942998064a1dc2a96388ee21ddc7c756cfa52ea 100644
--- a/src/modules/project/pages/Members.vue
+++ b/src/modules/project/pages/Members.vue
@@ -5,7 +5,7 @@
<div class="UserManagement">
<!-- Search Row -->
<UserSearchRow
- :memberRole="memberRole"
+ :member-role="memberRole"
:project="project"
:roles="roles"
@addUser="addUser"
@@ -25,12 +25,12 @@
:filter="filter"
:busy="isBusy"
:roles="roles"
- :emptyText="$t('page.members.emptyTableText')"
- :emptyFilteredText="$t('page.members.emptyFilterText')"
- :deleteText="$t('buttons.delete')"
- :removeText="$t('buttons.remove')"
- :ownerCount="ownerCount"
- :ownerRole="ownerRole"
+ :empty-text="$t('page.members.emptyTableText')"
+ :empty-filtered-text="$t('page.members.emptyFilterText')"
+ :delete-text="$t('buttons.delete')"
+ :remove-text="$t('buttons.remove')"
+ :owner-count="ownerCount"
+ :owner-role="ownerRole"
@tableFilteredRows="onFilteredRows"
@setRole="setRole"
@selectedItem="prepareDeletion"
@@ -46,12 +46,12 @@
:filter="filter"
:busy="isBusy"
:roles="roles"
- :emptyText="$t('page.members.emptyTableText')"
- :emptyFilteredText="$t('page.members.emptyFilterText')"
- :deleteText="$t('buttons.delete')"
- :removeText="$t('buttons.remove')"
- :ownerCount="ownerCount"
- :ownerRole="ownerRole"
+ :empty-text="$t('page.members.emptyTableText')"
+ :empty-filtered-text="$t('page.members.emptyFilterText')"
+ :delete-text="$t('buttons.delete')"
+ :remove-text="$t('buttons.remove')"
+ :owner-count="ownerCount"
+ :owner-role="ownerRole"
sort-by="email"
@revokeInvitation="revokeInvitation"
@resendInvitation="resendInvitation"
@@ -63,11 +63,11 @@
<!-- Modal Revoke Invited Email -->
<DeleteModal
- descriptionKey="page.members.removeSelectedInvitation"
- titleKey="page.members.deleteInvitationTitle"
+ description-key="page.members.removeSelectedInvitation"
+ title-key="page.members.deleteInvitationTitle"
:visible="isDeleteInvitedUserModalVisible"
- :selectedUser="selectedInvitation.userMail"
- :selectedProject="projectName"
+ :selected-user="selectedInvitation.userMail"
+ :selected-project="projectName"
@ok="confirmRevokeInvitation"
@close="closeInvitedUserModal"
/>
@@ -75,33 +75,33 @@
<!--- Modal Delete Current Members --->
<DeleteModal
:visible="isDeleteUserModalVisible"
- :selectedUser="
+ :selected-user="
candidateForDeletion.user ? candidateForDeletion.user.displayName : ''
"
- :selectedProject="projectName"
+ :selected-project="projectName"
@ok="deleteUser"
@close="closeUserModal"
/>
<!-- Modal Invitation Pending -->
<InvitationPendingModal
- :candidateForInvitation="candidateForInvitation"
+ :candidate-for-invitation="candidateForInvitation"
/>
<!-- Modal User Import -->
<ImportUserModal
- :memberHeaders="memberHeaders"
- :memberRole="memberRole"
+ :member-headers="memberHeaders"
+ :member-role="memberRole"
:project="project"
- :projectRoles="projectRoles"
+ :project-roles="projectRoles"
:roles="roles"
@addUser="addUser"
/>
<!-- Modal User Invite -->
<InviteUserModal
- :candidateForInvitation="candidateForInvitation"
- :projectName="projectName"
+ :candidate-for-invitation="candidateForInvitation"
+ :project-name="projectName"
:roles="roles"
@storeNewInvitation="storeNewInvitation"
/>
@@ -133,16 +133,9 @@ import type {
SendInvitationObject,
} from "@coscine/api-client/dist/types/Coscine.Api.Project";
import type { ExtendedSendInvitationObject } from "../types";
+import useNotificationStore from "@/store/notification";
export default defineComponent({
- setup() {
- const mainStore = useMainStore();
- const projectStore = useProjectStore();
- const userStore = useUserStore();
-
- return { mainStore, projectStore, userStore };
- },
-
components: {
MembersTable,
UserSearchRow,
@@ -151,6 +144,35 @@ export default defineComponent({
InvitationPendingModal,
InviteUserModal,
},
+ setup() {
+ const mainStore = useMainStore();
+ const projectStore = useProjectStore();
+ const userStore = useUserStore();
+ const notificationStore = useNotificationStore();
+
+ return { mainStore, projectStore, userStore, notificationStore };
+ },
+
+ data() {
+ return {
+ // For controlling delete modals
+ isDeleteInvitedUserModalVisible: false,
+ isDeleteUserModalVisible: false,
+ // For external users
+ selectedInvitation: {} as InvitationReturnObject,
+ isRevokeInvitationModalVisible: false,
+ // Other
+ isBusy: false,
+ filteredRows: 0,
+ filter: "",
+ candidateForDeletion: {} as ProjectRoleObject,
+ candidateForInvitation: {} as ExtendedSendInvitationObject,
+ roleStrings: {
+ member: "Member",
+ owner: "Owner",
+ },
+ };
+ },
computed: {
invitations(): InvitationReturnObject[] | null {
@@ -251,27 +273,6 @@ export default defineComponent({
},
},
- data() {
- return {
- // For controlling delete modals
- isDeleteInvitedUserModalVisible: false,
- isDeleteUserModalVisible: false,
- // For external users
- selectedInvitation: {} as InvitationReturnObject,
- isRevokeInvitationModalVisible: false,
- // Other
- isBusy: false,
- filteredRows: 0,
- filter: "",
- candidateForDeletion: {} as ProjectRoleObject,
- candidateForInvitation: {} as ExtendedSendInvitationObject,
- roleStrings: {
- member: "Member",
- owner: "Owner",
- },
- };
- },
-
methods: {
// For external users
async storeNewInvitation(
@@ -282,16 +283,16 @@ export default defineComponent({
try {
await this.projectStore.storeInvitation(value);
await this.projectStore.retrieveInvitations(this.project);
- this.makeToast(
- toastText,
- this.$t("page.members.userManagement").toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t("page.members.userManagement").toString(),
+ body: toastText,
+ });
} catch {
- this.makeToast(
- errorText,
- this.$t("page.members.userManagement").toString(),
- "danger"
- );
+ this.notificationStore.postNotification({
+ title: this.$t("page.members.userManagement").toString(),
+ body: errorText,
+ variant: "danger",
+ });
}
},
@@ -301,20 +302,16 @@ export default defineComponent({
role: selectedInvitation.roleId,
email: selectedInvitation.userMail,
};
- const errorText = this.$parent
- .$t("page.members.invitedUserError", {
- email: selectedInvitation.userMail,
- })
- .toString();
- const text = this.$parent
- .$t("page.members.invitedUserText", {
- email: selectedInvitation.userMail,
- role: selectedInvitation.roleId
- ? this.getRoleNameFromId(selectedInvitation.roleId)
- : "",
- projectName: this.projectName,
- })
- .toString();
+ const errorText = this.$t("page.members.invitedUserError", {
+ email: selectedInvitation.userMail,
+ }).toString();
+ const text = this.$t("page.members.invitedUserText", {
+ email: selectedInvitation.userMail,
+ role: selectedInvitation.roleId
+ ? this.getRoleNameFromId(selectedInvitation.roleId)
+ : "",
+ projectName: this.projectName,
+ }).toString();
this.storeNewInvitation(invitation, text, errorText);
},
@@ -326,33 +323,28 @@ export default defineComponent({
async confirmRevokeInvitation() {
if (this.selectedInvitation.id) {
- const text = this.$parent
- .$t("page.members.removedUser", {
- email: this.selectedInvitation.userMail,
- project: this.projectName,
- })
- .toString();
+ const text = this.$t("page.members.removedUser", {
+ email: this.selectedInvitation.userMail,
+ project: this.projectName,
+ }).toString();
const worked = await this.projectStore.deleteInvitation(
this.selectedInvitation.id
);
if (worked) {
await this.projectStore.retrieveInvitations(this.project);
- this.makeToast(
- text,
- this.$t("page.members.userManagement").toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t("page.members.userManagement").toString(),
+ body: text,
+ });
} else {
- const errorMsg = this.$parent
- .$t("page.members.deleteExternalUserError", {
- email: this.selectedInvitation.userMail,
- })
- .toString();
-
- this.makeToast(
- errorMsg,
- this.$t("page.members.userManagement").toString(),
- "danger"
- );
+ const errorMsg = this.$t("page.members.deleteExternalUserError", {
+ email: this.selectedInvitation.userMail,
+ }).toString();
+ this.notificationStore.postNotification({
+ title: this.$t("page.members.userManagement").toString(),
+ body: errorMsg,
+ variant: "danger",
+ });
}
this.isDeleteInvitedUserModalVisible = false;
@@ -380,23 +372,24 @@ export default defineComponent({
: this.roleStrings.member;
}
- let text = this.$parent
- .$t("page.members.changedRole", {
- project: this.projectName,
- role:
- projectRole.role && projectRole.role.id
- ? this.getRoleNameFromId(projectRole.role.id)
- : "",
- user:
- projectRole.user && projectRole.user.displayName
- ? projectRole.user.displayName
- : "",
- })
- .toString();
+ let text = this.$t("page.members.changedRole", {
+ project: this.projectName,
+ role:
+ projectRole.role && projectRole.role.id
+ ? this.getRoleNameFromId(projectRole.role.id)
+ : "",
+ user:
+ projectRole.user && projectRole.user.displayName
+ ? projectRole.user.displayName
+ : "",
+ }).toString();
await this.projectStore.storeProjectRole(projectRole);
await this.getProjectRoles();
- this.makeToast(text, this.$t("page.members.userManagement").toString());
+ this.notificationStore.postNotification({
+ title: this.$t("page.members.userManagement").toString(),
+ body: text,
+ });
},
getRoleNameFromId(roleId: string): string | null | undefined {
@@ -416,23 +409,24 @@ export default defineComponent({
projectRole.projectId = this.project.id;
}
- let text = this.$parent
- .$t("page.members.addedUser", {
- project: this.projectName,
- role:
- projectRole.role && projectRole.role.id
- ? this.getRoleNameFromId(projectRole.role.id)
- : "",
- user:
- projectRole.user && projectRole.user.displayName
- ? projectRole.user.displayName
- : "",
- })
- .toString();
+ let text = this.$t("page.members.addedUser", {
+ project: this.projectName,
+ role:
+ projectRole.role && projectRole.role.id
+ ? this.getRoleNameFromId(projectRole.role.id)
+ : "",
+ user:
+ projectRole.user && projectRole.user.displayName
+ ? projectRole.user.displayName
+ : "",
+ }).toString();
await this.projectStore.storeProjectRole(projectRole);
await this.getProjectRoles();
- this.makeToast(text, this.$t("page.members.userManagement").toString());
+ this.notificationStore.postNotification({
+ title: this.$t("page.members.userManagement").toString(),
+ body: text,
+ });
if (callback) {
callback();
}
@@ -479,15 +473,16 @@ export default defineComponent({
},
async deleteUser() {
- const text = this.$parent
- .$t("page.members.removedUser", {
- email: this.candidateForDeletion.user?.displayName,
- project: this.projectName,
- })
- .toString();
+ const text = this.$t("page.members.removedUser", {
+ email: this.candidateForDeletion.user?.displayName,
+ project: this.projectName,
+ }).toString();
await this.projectStore.deleteProjectRole(this.candidateForDeletion);
await this.getProjectRoles();
- this.makeToast(text, this.$t("page.members.userManagement").toString());
+ this.notificationStore.postNotification({
+ title: this.$t("page.members.userManagement").toString(),
+ body: text,
+ });
this.isDeleteUserModalVisible = false;
},
@@ -503,16 +498,6 @@ export default defineComponent({
this.filteredRows = value;
},
- makeToast(text = "Message", givenTitle = "Title", toastVariant = "") {
- this.$root.$bvToast.toast(text, {
- title: givenTitle,
- autoHideDelay: 5000,
- variant: toastVariant,
- toaster: "b-toaster-bottom-right",
- noCloseButton: true,
- });
- },
-
setFilter(filter: string) {
this.filter = filter;
},
diff --git a/src/modules/project/pages/ProjectPage.vue b/src/modules/project/pages/ProjectPage.vue
index a122dd17a8f01f3ee2f2bad8fa08bf331f34c51a..c2d1d0fe8600e80be64e39ebaead256f42cf9799 100644
--- a/src/modules/project/pages/ProjectPage.vue
+++ b/src/modules/project/pages/ProjectPage.vue
@@ -13,15 +13,24 @@
:to="toCreateResource()"
@open-card="openCreateResource($event)"
/>
+ <!-- Loading Card Placeholder -->
+ <CoscineCard
+ v-if="!resources"
+ :to="{}"
+ :title="$t('default.loading')"
+ :is-loading="!resources"
+ />
+ <!-- Content Cards -->
<CoscineCard
v-for="(resource, index) in resources"
+ v-else
:key="index"
:title="resource.displayName"
type="resource"
- :badge_visibility="resource.archived"
- :badge_text="$t('default.archived')"
+ :badge-visibility="resource.archived"
+ :badge-text="$t('default.archived')"
:to="toResource(resource)"
- :toSettings="toResourceSettings(resource)"
+ :to-settings="toResourceSettings(resource)"
@open-card="openResource($event, resource)"
@open-card-settings="openResourceSettings($event, resource)"
/>
@@ -47,13 +56,21 @@
:to="toCreateSubProject()"
@open-card="openCreateProject($event)"
/>
+ <!-- Loading Card Placeholder -->
+ <CoscineCard
+ v-if="!subProjects"
+ :to="{}"
+ :title="$t('default.loading')"
+ :is-loading="!subProjects"
+ />
+ <!-- Content Cards -->
<CoscineCard
- v-for="(project, index) in subProjects"
+ v-for="(subProject, index) in subProjects"
:key="index"
- :title="project.displayName"
+ :title="subProject.displayName"
type="project"
- :to="toSubProject(project)"
- @open-card="openProject($event, project)"
+ :to="toSubProject(subProject)"
+ @open-card="openProject($event, subProject)"
/>
</b-card-group>
</div>
@@ -77,6 +94,9 @@ import useMainStore from "@/store/index";
import useResourceStore from "@/modules/resource/store";
export default defineComponent({
+ components: {
+ MembersList,
+ },
setup() {
const mainStore = useMainStore();
const projectStore = useProjectStore();
@@ -85,17 +105,6 @@ export default defineComponent({
return { mainStore, projectStore, resourceStore };
},
- props: {
- loading: {
- default: false,
- type: Boolean,
- },
- },
-
- components: {
- MembersList,
- },
-
computed: {
project(): ProjectObject | null {
return this.projectStore.currentProject;
diff --git a/src/modules/project/pages/Quota.vue b/src/modules/project/pages/Quota.vue
index 2b1374e840835510660165ae109faa8695cbe2cf..990276430c31a8ef4a35177a7bf8675e7f905f7b 100644
--- a/src/modules/project/pages/Quota.vue
+++ b/src/modules/project/pages/Quota.vue
@@ -49,10 +49,10 @@
<coscine-form-group
class="projectQuotaSlider"
:label="
- selectedQuota.allocated +
- $t('page.quota.rangeText1').toString() +
- selectedQuota.maximum +
- $t('page.quota.rangeText2').toString()
+ $t('page.quota.rangeText', {
+ allocated: selectedQuota.allocated,
+ maximum: selectedQuota.maximum,
+ })
"
:disabled="
selectedResourceTypeInformation &&
@@ -60,7 +60,7 @@
"
>
<div class="rangeVisual">
- {{ totalAllocatedSpace }}{{ $t("page.quota.gb") }}
+ {{ $t("page.quota.gb", { number: totalAllocatedSpace }) }}
<b-form-input
v-model="selectedQuota.allocated"
type="range"
@@ -69,7 +69,7 @@
:disabled="storingQuota"
@change="changeProjectQuota"
></b-form-input>
- {{ selectedQuota.maximum }}{{ $t("page.quota.gb") }}
+ {{ $t("page.quota.gb", { number: selectedQuota.maximum }) }}
</div>
</coscine-form-group>
@@ -125,7 +125,7 @@
<!-- Reserved Cell Contents -->
<template #cell(allocated)="data">
- {{ data.item.allocated }}{{ $t("page.quota.gb") }}
+ {{ $t("page.quota.gb", { number: data.item.allocated }) }}
</template>
<!-- Used Cell Contents -->
@@ -136,7 +136,7 @@
<!-- Adjust Quota Slider Contents -->
<template #cell(adjust)="data">
<div class="rangeVisual">
- {{ data.item.used }}{{ $t("page.quota.gb") }}
+ {{ $t("page.quota.gb", { number: data.item.used }) }}
<b-form-input
v-model="data.item.allocated"
type="range"
@@ -145,7 +145,7 @@
:disabled="storingQuota"
@change="changeResourceQuota(data.item)"
/>
- {{ data.item.maximum }}{{ $t("page.quota.gb") }}
+ {{ $t("page.quota.gb", { number: data.item.maximum }) }}
</div>
</template>
@@ -182,6 +182,7 @@ import type {
ProjectQuotaReturnObject as ResourceQuota,
UpdateResourceObject,
} from "@coscine/api-client/dist/types/Coscine.Api.Quota";
+import useNotificationStore from "@/store/notification";
interface ExtendedResourceQuota extends ResourceQuota {
maximum?: number;
@@ -192,8 +193,33 @@ export default defineComponent({
const mainStore = useMainStore();
const projectStore = useProjectStore();
const resourceStore = useResourceStore();
+ const notificationStore = useNotificationStore();
- return { mainStore, projectStore, resourceStore };
+ return { mainStore, projectStore, resourceStore, notificationStore };
+ },
+
+ data() {
+ return {
+ selectedQuota: {
+ maximum: 0,
+ allocated: 0,
+ used: 0,
+ } as ProjectQuotaReturnObject,
+ selectedResourceTypeId: null as null | string,
+
+ resourceQuotas: [] as ExtendedResourceQuota[],
+ totalAllocatedSpace: 0,
+
+ tableFields: [
+ { key: "name", sortable: true },
+ { key: "allocated", sortable: true },
+ "used",
+ "adjust",
+ ],
+ loadingData: false,
+
+ storingQuota: false,
+ };
},
computed: {
@@ -259,30 +285,6 @@ export default defineComponent({
},
},
- data() {
- return {
- selectedQuota: {
- maximum: 0,
- allocated: 0,
- used: 0,
- } as ProjectQuotaReturnObject,
- selectedResourceTypeId: null as null | string,
-
- resourceQuotas: [] as ExtendedResourceQuota[],
- totalAllocatedSpace: 0,
-
- tableFields: [
- { key: "name", sortable: true },
- { key: "allocated", sortable: true },
- "used",
- "adjust",
- ],
- loadingData: false,
-
- storingQuota: false,
- };
- },
-
watch: {
resourceTypeQuota() {
if (this.resourceTypeQuota) {
@@ -337,27 +339,25 @@ export default defineComponent({
);
await this.projectStore.retrieveQuotas(this.project);
this.calculateSpaceNeeds();
- this.makeToast(
- this.$parent
- .$t("page.quota.resourceTypeQuotaChangedSuccessTitle")
- .toString(),
- this.$parent
- .$t("page.quota.resourceTypeQuotaChangedSuccessBody", {
- ProjectName: this.project.displayName,
- AmountInGB: this.selectedQuota.allocated,
- })
- .toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t(
+ "page.quota.resourceTypeQuotaChangedSuccessTitle"
+ ).toString(),
+ body: this.$t("page.quota.resourceTypeQuotaChangedSuccessBody", {
+ ProjectName: this.project.displayName,
+ AmountInGB: this.selectedQuota.allocated,
+ }).toString(),
+ });
} catch {
- this.makeToast(
- this.$parent
- .$t("page.quota.resourceTypeQuotaChangedFailureTitle")
- .toString(),
- this.$parent
- .$t("page.quota.resourceTypeQuotaChangedFailureBody")
- .toString(),
- true
- );
+ this.notificationStore.postNotification({
+ title: this.$t(
+ "page.quota.resourceTypeQuotaChangedFailureTitle"
+ ).toString(),
+ body: this.$t(
+ "page.quota.resourceTypeQuotaChangedFailureBody"
+ ).toString(),
+ variant: "warning",
+ });
} finally {
this.storingQuota = false;
}
@@ -377,45 +377,27 @@ export default defineComponent({
);
await this.projectStore.retrieveQuotas(this.project);
this.calculateSpaceNeeds();
- this.makeToast(
- this.$parent
- .$t("page.quota.resourceQuotaChangedSuccessTitle")
- .toString(),
- this.$parent
- .$t("page.quota.resourceQuotaChangedSuccessBody", {
- ResourceName: resourceQuotaObject.name,
- AmountInGB: resourceQuotaObject.allocated,
- })
- .toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t(
+ "page.quota.resourceQuotaChangedSuccessTitle"
+ ).toString(),
+ body: this.$t("page.quota.resourceQuotaChangedSuccessBody", {
+ ResourceName: resourceQuotaObject.name,
+ AmountInGB: resourceQuotaObject.allocated,
+ }).toString(),
+ });
} catch {
- this.makeToast(
- this.$parent
- .$t("page.quota.resourceQuotaChangedFailureTitle")
- .toString(),
- this.$parent
- .$t("page.quota.resourceQuotaChangedFailureBody")
- .toString(),
- true
- );
- } finally {
- this.storingQuota = false;
- }
- },
- makeToast(givenTitle = "Title", text = "Message", error = false) {
- if (error) {
- this.$root.$bvToast.toast(text, {
- title: givenTitle,
- noAutoHide: true,
+ this.notificationStore.postNotification({
+ title: this.$t(
+ "page.quota.resourceQuotaChangedFailureTitle"
+ ).toString(),
+ body: this.$t(
+ "page.quota.resourceQuotaChangedFailureBody"
+ ).toString(),
variant: "warning",
- toaster: "b-toaster-bottom-right",
- });
- } else {
- this.$root.$bvToast.toast(text, {
- title: givenTitle,
- toaster: "b-toaster-bottom-right",
- noCloseButton: true,
});
+ } finally {
+ this.storingQuota = false;
}
},
selectFirstResourceType() {
diff --git a/src/modules/project/pages/Settings.vue b/src/modules/project/pages/Settings.vue
index a9fd4a1f15911bc5ab89b6237aa9ae37d33a3d5d..a6923f79f8987f63f595e18e663f88c8dea12788 100644
--- a/src/modules/project/pages/Settings.vue
+++ b/src/modules/project/pages/Settings.vue
@@ -8,7 +8,7 @@
<FormNaming
v-model="projectForm"
:disabled="!isOwner"
- :isLoading="isLoading"
+ :is-loading="isLoading"
@validation="formValidations.naming = $event"
/>
@@ -17,9 +17,9 @@
<FormMetadata
v-model="projectForm"
:disabled="!isOwner"
- :isLoading="isLoading"
- :currentProject="project"
- :parentProject="parentProject"
+ :is-loading="isLoading"
+ :current-project="project"
+ :parent-project="parentProject"
@validation="formValidations.metadata = $event"
/>
@@ -29,7 +29,6 @@
type="submit"
variant="primary"
class="float-right"
- @click.prevent="clickSave"
:disabled="
formValidations.naming.$invalid ||
formValidations.metadata.$invalid ||
@@ -37,6 +36,7 @@
!formValidations.metadata.$anyDirty) ||
isWaitingForResponse
"
+ @click.prevent="clickSave"
>
{{ $t("buttons.submit") }}</b-button
>
@@ -57,12 +57,12 @@
<DeleteProjectModal
v-if="project"
:open="isDeleteModalVisible"
- :displayName="project.displayName"
+ :display-name="project.displayName"
@close="isDeleteModalVisible = false"
@clickDelete="clickDelete"
/>
- <LoadingSpinner :isWaitingForResponse="isWaitingForResponse" />
+ <LoadingSpinner :is-waiting-for-response="isWaitingForResponse" />
</div>
<div class="col-sm-2" />
</b-row>
@@ -90,20 +90,21 @@ import type {
VisibilityObject,
} from "@coscine/api-client/dist/types/Coscine.Api.Project";
import { navigateToProject } from "@/router";
+import useNotificationStore from "@/store/notification";
export default defineComponent({
- setup() {
- const mainStore = useMainStore();
- const projectStore = useProjectStore();
-
- return { mainStore, projectStore };
- },
-
components: {
FormNaming,
FormMetadata,
DeleteProjectModal,
},
+ setup() {
+ const mainStore = useMainStore();
+ const projectStore = useProjectStore();
+ const notificationStore = useNotificationStore();
+
+ return { mainStore, projectStore, notificationStore };
+ },
data() {
return {
@@ -190,20 +191,6 @@ export default defineComponent({
}
},
- makeToast(
- text = "Message",
- givenTitle = "Title",
- variant: string | undefined = undefined
- ) {
- this.$root.$bvToast.toast(text, {
- title: givenTitle,
- autoHideDelay: 5000,
- toaster: "b-toaster-bottom-right",
- variant: variant,
- noCloseButton: true,
- });
- },
-
async clickDelete() {
this.isDeleteModalVisible = false;
if (this.project) {
@@ -216,18 +203,18 @@ export default defineComponent({
// Refresh the project information in the store
await this.projectStore.refreshProjectInformation(parentProject);
// Replace the current location with parent project or project list
- this.makeToast(
- this.$t("toast.onDelete.success.message").toString(),
- this.$t("toast.onDelete.success.title").toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onDelete.success.title").toString(),
+ body: this.$t("toast.onDelete.success.message").toString(),
+ });
navigateToProject(parentProject);
} else {
// On Failure
- this.makeToast(
- this.$t("toast.onDelete.failure.message").toString(),
- this.$t("toast.onDelete.failure.title").toString(),
- "danger"
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onDelete.failure.title").toString(),
+ body: this.$t("toast.onDelete.failure.message").toString(),
+ variant: "danger",
+ });
}
}
},
@@ -255,17 +242,17 @@ export default defineComponent({
this.formValidations.metadata.$reset();
// Refresh the project information in the store
await this.projectStore.refreshProjectInformation(this.project);
- this.makeToast(
- this.$t("toast.onSave.success.message").toString(),
- this.$t("toast.onSave.success.title").toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onSave.success.title").toString(),
+ body: this.$t("toast.onSave.success.message").toString(),
+ });
} else {
// On Failure
- this.makeToast(
- this.$t("toast.onSave.failure.message").toString(),
- this.$t("toast.onSave.failure.title").toString(),
- "danger"
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onSave.failure.title").toString(),
+ body: this.$t("toast.onSave.failure.message").toString(),
+ variant: "danger",
+ });
}
},
},
diff --git a/src/modules/project/pages/components/FormMetadata.vue b/src/modules/project/pages/components/FormMetadata.vue
index af92c2fc22390a1038fced1c16a33440d5a9e1e3..0539b2f3ced6c3e40832d3d4ef93bca1bf2e8805 100644
--- a/src/modules/project/pages/components/FormMetadata.vue
+++ b/src/modules/project/pages/components/FormMetadata.vue
@@ -7,22 +7,22 @@
<coscine-form-group
v-if="parentProject"
:mandatory="false"
- labelFor="CopyData"
+ label-for="CopyData"
:label="
$t('form.project.copyMetadataLabel', {
project: parentProject.projectName,
})
"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="button"
class="d-flex align-items-center"
>
<b-button
- variant="secondary"
id="project_copy_button"
+ variant="secondary"
size="sm"
- @click.prevent="copyMetadataFromParent"
:disabled="disabled"
+ @click.prevent="copyMetadataFromParent"
>
{{ $t("buttons.copyMetadata") }}</b-button
>
@@ -31,9 +31,9 @@
<!-- Principal Investigators -->
<coscine-form-group
:mandatory="true"
- labelFor="PrincipleInvestigators"
+ label-for="PrincipleInvestigators"
:label="$t('form.project.projectPrincipleInvestigatorsLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-input
@@ -65,9 +65,9 @@
<!-- Project Start -->
<coscine-form-group
:mandatory="true"
- labelFor="StartDate"
+ label-for="StartDate"
:label="$t('form.project.projectStartLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-datepicker
@@ -90,9 +90,9 @@
<!-- Project End -->
<coscine-form-group
:mandatory="true"
- labelFor="EndDate"
+ label-for="EndDate"
:label="$t('form.project.projectEndLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-datepicker
@@ -114,9 +114,9 @@
<!-- Discipline -->
<coscine-form-group
:mandatory="true"
- labelFor="Discipline"
+ label-for="Discipline"
:label="$t('form.project.projectDisciplineLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<multiselect
@@ -146,9 +146,9 @@
<!-- Participating Organizations -->
<coscine-form-group
:mandatory="true"
- labelFor="Organization"
+ label-for="Organization"
:label="$t('form.project.projectOrganizationLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<multiselect
@@ -185,9 +185,9 @@
<!-- Project Keywords -->
<coscine-form-group
- labelFor="Keywords"
+ label-for="Keywords"
:label="$t('form.project.projectKeywordsLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<multiselect
@@ -223,28 +223,28 @@
<!-- Visibility -->
<coscine-form-group
:mandatory="true"
- labelFor="Visibility"
+ label-for="Visibility"
:label="$t('form.project.projectMetadataVisibilityLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-radio-group
- name="radios-stacked"
v-model="selectedVisibility"
- @change="setVisibility(selectedVisibility)"
+ name="radios-stacked"
:options="visibilities"
text-field="displayName"
value-field="id"
stacked
:disabled="disabled"
+ @change="setVisibility(selectedVisibility)"
/>
</coscine-form-group>
<!-- Grant ID -->
<coscine-form-group
- labelFor="GrantId"
+ label-for="GrantId"
:label="$t('form.project.projectGrantIdLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-input
@@ -289,24 +289,20 @@ import useProjectStore from "../../store";
import useMainStore from "@/store/index";
export default defineComponent({
- setup() {
- const mainStore = useMainStore();
- const projectStore = useProjectStore();
-
- return { mainStore, projectStore };
- },
-
+ mixins: [validationMixin],
props: {
value: {
type: Object as PropType<ProjectObject>,
required: true,
},
currentProject: {
- type: Object as PropType<ProjectObject>,
+ default: null,
+ type: [Object, null] as PropType<ProjectObject | null>,
required: false,
},
parentProject: {
- type: Object as PropType<ProjectObject>,
+ default: null,
+ type: [Object, null] as PropType<ProjectObject | null>,
required: false,
},
disabled: {
@@ -318,8 +314,18 @@ export default defineComponent({
type: Boolean,
},
},
+ emits: {
+ validation: (input: Validation) => {
+ return input ? true : false;
+ },
+ },
- mixins: [validationMixin],
+ setup() {
+ const mainStore = useMainStore();
+ const projectStore = useProjectStore();
+
+ return { mainStore, projectStore };
+ },
validations: {
projectForm: {
@@ -351,10 +357,6 @@ export default defineComponent({
},
},
- created() {
- this.onProjectLoaded();
- },
-
data() {
return {
projectForm: this.value,
@@ -385,12 +387,6 @@ export default defineComponent({
},
},
- emits: {
- validation: (input: Validation) => {
- return input ? true : false;
- },
- },
-
watch: {
currentProject() {
this.onProjectLoaded();
@@ -432,6 +428,10 @@ export default defineComponent({
},
},
+ created() {
+ this.onProjectLoaded();
+ },
+
methods: {
onProjectLoaded() {
if (this.currentProject) {
diff --git a/src/modules/project/pages/components/FormNaming.vue b/src/modules/project/pages/components/FormNaming.vue
index e2be4519bdb0f1fe21f6473ffdb35f21b264de7a..22a3e93b2acd1e14e79670c497ea92f5d19ffad9 100644
--- a/src/modules/project/pages/components/FormNaming.vue
+++ b/src/modules/project/pages/components/FormNaming.vue
@@ -3,15 +3,14 @@
<!-- Project Name -->
<CoscineFormGroup
:mandatory="true"
- labelFor="ProjectName"
+ label-for="ProjectName"
:label="$t('form.project.projectNameLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-input
id="ProjectName"
v-model="$v.projectForm.projectName.$model"
- @input="translateProjectNameToDisplayName"
:state="
$v.projectForm.projectName.$dirty
? !$v.projectForm.projectName.$error
@@ -21,6 +20,7 @@
:maxlength="maxLengthFromValidation($v.projectForm.projectName)"
required
:disabled="disabled"
+ @input="translateProjectNameToDisplayName"
/>
<div class="invalid-tooltip">
{{
@@ -34,15 +34,14 @@
<!-- Display Name -->
<CoscineFormGroup
:mandatory="true"
- labelFor="DisplayName"
+ label-for="DisplayName"
:label="$t('form.project.displayNameLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-input
id="DisplayName"
v-model="$v.projectForm.displayName.$model"
- @input="isLockedDisplayName = true"
:state="
$v.projectForm.displayName.$dirty
? !$v.projectForm.displayName.$error
@@ -52,6 +51,7 @@
:maxlength="maxLengthFromValidation($v.projectForm.displayName)"
required
:disabled="disabled"
+ @input="isLockedDisplayName = true"
/>
<div class="invalid-tooltip">
{{
@@ -65,9 +65,9 @@
<!-- Project Description -->
<CoscineFormGroup
:mandatory="true"
- labelFor="Description"
+ label-for="Description"
:label="$t('form.project.projectDescriptionLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-textarea
@@ -103,6 +103,27 @@ import type { ProjectObject } from "@coscine/api-client/dist/types/Coscine.Api.P
export default defineComponent({
mixins: [validationMixin],
+ props: {
+ value: {
+ type: Object as PropType<ProjectObject>,
+ required: true,
+ },
+ disabled: {
+ default: false,
+ type: Boolean,
+ },
+ isLoading: {
+ default: false,
+ type: Boolean,
+ },
+ },
+
+ emits: {
+ validation: (input: Validation) => {
+ return input ? true : false;
+ },
+ },
+
validations: {
projectForm: {
projectName: {
@@ -127,27 +148,6 @@ export default defineComponent({
};
},
- props: {
- value: {
- type: Object as PropType<ProjectObject>,
- required: true,
- },
- disabled: {
- default: false,
- type: Boolean,
- },
- isLoading: {
- default: false,
- type: Boolean,
- },
- },
-
- emits: {
- validation: (input: Validation) => {
- return input ? true : false;
- },
- },
-
watch: {
projectForm: {
handler() {
diff --git a/src/modules/project/pages/components/MembersList.vue b/src/modules/project/pages/components/MembersList.vue
index 540f88afbc6ec61b94c7fa7dd4530dbb8aeeeb65..1ed91e6763b83bd029ab6fda2bd1f8b8e99c30f8 100644
--- a/src/modules/project/pages/components/MembersList.vue
+++ b/src/modules/project/pages/components/MembersList.vue
@@ -2,6 +2,9 @@
<div>
<CoscineHeadline :headline="$tc('page.project.member', 2)" />
<!-- Members -->
+ <b-row v-if="!projectRoles" align-h="center" class="my-4">
+ <b-spinner variant="secondary" />
+ </b-row>
<div class="list">
<div class="user-complete-name-list container-fluid">
<span v-for="(projectRole, index) in projectRoles" :key="index">
@@ -11,10 +14,16 @@
<!-- Member Details -->
<b-col class="user-details">
+ <!-- Member Display Name -->
{{ projectRole.user.displayName }}
<br />
+ <!-- Member Email -->
<a
- v-b-tooltip.hover.bottom="projectRole.user.emailAddress"
+ v-b-tooltip.hover.bottom="{
+ title: projectRole.user.emailAddress,
+ boundary: 'viewport',
+ }"
+ class="text-secondary"
:href="'mailto:' + projectRole.user.emailAddress"
>
{{ projectRole.user.emailAddress }}
@@ -22,24 +31,28 @@
</b-col>
<!-- Leave Button -->
- <b-button
- id="leave"
- class="float-right"
- variant="primary"
- name="leave"
- size="sm"
- v-if="projectRole.user.id === currentUser.id"
- v-on:click="leaveModal = true"
- :disabled="ownerCount < 2 && isOwner"
- tabindex="0"
- v-b-tooltip.hover.bottom
- :title="
- ownerCount < 2 && isOwner
- ? $t('page.project.members.tooltipDisabled')
- : $t('page.project.members.tooltip')
- "
- >{{ $t("buttons.leave") }}</b-button
+ <span
+ v-b-tooltip.hover.left="{
+ title:
+ ownerCount < 2 && isOwner
+ ? $t('page.project.members.tooltipDisabled')
+ : $t('page.project.members.tooltip'),
+ boundary: 'viewport',
+ }"
>
+ <b-button
+ v-if="projectRole.user.id === currentUser.id"
+ class="float-right"
+ variant="primary"
+ name="leave"
+ size="sm"
+ :disabled="ownerCount < 2 && isOwner"
+ tabindex="0"
+ @click="leaveModal = true"
+ >
+ {{ $t("buttons.leave") }}
+ </b-button>
+ </span>
</b-row>
</span>
</div>
@@ -73,11 +86,11 @@
<!-- Leave Modal Buttons -->
<b-button
+ ref="modalLeaveProjectCancel"
class="float-right"
variant="primary"
- @click="leaveModal = false"
- ref="modalLeaveProjectCancel"
autofocus
+ @click="leaveModal = false"
>{{ $t("buttons.cancel") }}</b-button
>
<b-button class="float-Left" variant="danger" @click="leaveProject">{{
diff --git a/src/modules/project/pages/components/MembersTable.vue b/src/modules/project/pages/components/MembersTable.vue
index 29d748c6a610bd95f52b483f754afed10efaa3e3..76a96a7d1ca2bdb38aed4630b562e0e2c2a657ac 100644
--- a/src/modules/project/pages/components/MembersTable.vue
+++ b/src/modules/project/pages/components/MembersTable.vue
@@ -31,16 +31,16 @@
<!-- Project Members - Role Column -->
<template #cell(role)="row">
- <div class="noOverflow" v-if="row.item.role">
+ <div v-if="row.item.role" class="noOverflow">
<b-form-select
v-model="row.item.role.id"
:options="roles"
- @change="role(row.item)"
:disabled="
ownerCount === 1 && ownerRole && row.item.role.id === ownerRole.id
"
text-field="displayName"
value-field="id"
+ @change="role(row.item)"
/>
</div>
</template>
@@ -54,10 +54,10 @@
<!-- Project Members - Actions Column -->
<template #cell(memberActions)="row">
- <div class="noOverflow" v-if="row.item.role">
+ <div v-if="row.item.role" class="noOverflow">
<!-- Remove Member -->
<b-button
- :btnText="removeText"
+ :btn-text="removeText"
variant="danger"
size="sm"
:disabled="
@@ -88,7 +88,7 @@
class="leftActionBtn"
size="sm"
variant="danger"
- :btnText="deleteText"
+ :btn-text="deleteText"
@click="revokeInvitation(selectedInvitation.item)"
>{{ deleteText }}</b-button
>
@@ -97,8 +97,8 @@
<b-button
class="rightActionBtn"
size="sm"
- @click="resendInvitation(selectedInvitation.item)"
:disabled="!checkExpiration(selectedInvitation.item.expiration)"
+ @click="resendInvitation(selectedInvitation.item)"
>{{ $t("buttons.resend") }}
</b-button>
</div>
@@ -118,18 +118,13 @@ import type {
export default defineComponent({
name: "MembersTable",
- data() {
- return {
- sortDesc: false,
- filteredRows: 0,
- };
- },
props: {
headers: {
required: true,
type: Array,
},
id: {
+ default: "membersTable",
type: String,
},
items: {
@@ -137,17 +132,19 @@ export default defineComponent({
type: Array,
},
filter: {
- type: String,
default: "",
+ type: String,
},
busy: {
type: Boolean,
default: false,
},
emptyText: {
+ default: "Empty",
type: String,
},
emptyFilteredText: {
+ default: "Empty",
type: String,
},
ownerCount: {
@@ -159,12 +156,15 @@ export default defineComponent({
default: null,
},
deleteText: {
+ default: "Delete",
type: String,
},
removeText: {
+ default: "Remove",
type: String,
},
roles: {
+ default: null,
type: [Array, null] as PropType<RoleObject[] | null>,
},
sortBy: {
@@ -172,6 +172,12 @@ export default defineComponent({
type: String,
},
},
+ data() {
+ return {
+ sortDesc: false,
+ filteredRows: 0,
+ };
+ },
methods: {
onFiltered(filteredItems: ProjectRoleObject[]) {
this.filteredRows = filteredItems.length;
diff --git a/src/modules/project/pages/components/UserSearchRow.vue b/src/modules/project/pages/components/UserSearchRow.vue
index 180d78e32b52416b2ee15acb97a4e3e5d783604b..cef3bbf3183518e8eb51aea2ad0ec36076c2a0bb 100644
--- a/src/modules/project/pages/components/UserSearchRow.vue
+++ b/src/modules/project/pages/components/UserSearchRow.vue
@@ -4,7 +4,7 @@
<div class="adaptAlign">
<b-row>
<!-- Invitation Search Field -->
- <b-col sm="5" @keydown.enter.prevent.self="" id="firstCol">
+ <b-col id="firstCol" sm="5" @keydown.enter.prevent.self="">
<v-select
v-model="selectedAddingUser"
:placeholder="$t('page.members.searchUserPlaceholder')"
@@ -13,11 +13,11 @@
'no-results': queriedUsers.length === 0,
}"
:options="queriedUsers"
- :filterBy="filterMock"
- @input="setNewUser"
- @search="triggerFetchOptions"
+ :filter-by="filterMock"
:selectable="(option) => !option.hasProjectRole"
label="displayName"
+ @input="setNewUser"
+ @search="triggerFetchOptions"
>
<template v-if="searchString === ''" slot="no-options">
{{ $t("page.members.pleaseTypeSomething") }}
@@ -57,7 +57,7 @@
</b-col>
<!-- Role Drop-Down -->
- <b-col sm="2" id="secondCol">
+ <b-col id="secondCol" sm="2">
<b-form-select
:options="roles"
:value="
@@ -67,29 +67,29 @@
? memberRole.id
: null
"
- @input="setNewRole"
text-field="displayName"
value-field="id"
+ @input="setNewRole"
>
</b-form-select>
</b-col>
<!-- Buttons -->
- <b-col sm="5" id="thirdCol">
+ <b-col id="thirdCol" sm="5">
<!-- Add User -->
<b-button
v-if="validInvitation && !validSelection"
name="inviteUserToProject"
- @click="prepareInvitation(newUserRole)"
:disabled="!validInvitation"
+ @click="prepareInvitation(newUserRole)"
>{{ $t("buttons.invite") }}</b-button
>
<!-- Import -->
<b-button
v-else
name="addUserToProject"
- @click="addUser(newUserRole)"
:disabled="!validSelection"
+ @click="addUser(newUserRole)"
>{{ $t("buttons.addUser") }}</b-button
>
<b-button
@@ -104,17 +104,17 @@
<!-- Members Search Field -->
<b-col
+ id="fourthCol"
sm="3"
align-self="end"
@keydown.enter.prevent.self=""
- id="fourthCol"
>
<b-input-group>
<b-form-input
- type="search"
id="filterInput"
- @input="setFilter"
+ type="search"
:placeholder="$t('page.members.typeToSearch')"
+ @input="setFilter"
></b-form-input>
</b-input-group>
</b-col>
@@ -128,7 +128,7 @@ import { defineComponent, PropType } from "vue-demi";
import vSelect from "vue-select";
import "vue-select/dist/vue-select.css";
-Vue.component("v-select", vSelect);
+Vue.component("VSelect", vSelect);
import useUserStore from "@/modules/user/store";
@@ -140,6 +140,22 @@ import type {
import type { UserObject } from "@coscine/api-client/dist/types/Coscine.Api.User";
export default defineComponent({
+ props: {
+ memberRole: {
+ default: null,
+ type: [Object, null, undefined] as PropType<
+ RoleObject | null | undefined
+ >,
+ },
+ project: {
+ default: null,
+ type: [Object, null] as PropType<ProjectObject | null>,
+ },
+ roles: {
+ default: null,
+ type: [Array, null] as PropType<RoleObject[] | null>,
+ },
+ },
setup() {
const userStore = useUserStore();
@@ -154,19 +170,6 @@ export default defineComponent({
selectedAddingUser: null as UserObject | null,
};
},
- props: {
- memberRole: {
- type: [Object, null, undefined] as PropType<
- RoleObject | null | undefined
- >,
- },
- project: {
- type: [Object, null] as PropType<ProjectObject | null>,
- },
- roles: {
- type: [Array, null] as PropType<RoleObject[] | null>,
- },
- },
computed: {
validEmail(): boolean {
const emailRegex =
@@ -263,7 +266,7 @@ export default defineComponent({
async fetchUserOptions(search: string, loading: (value: boolean) => void) {
if (search && this.project && this.project.id) {
loading(true);
- this.queriedUsers = await this.userStore.queryUser(
+ this.queriedUsers = await this.userStore.getUser(
search,
this.project.id
);
diff --git a/src/modules/project/pages/components/modals/DeleteProjectModal.vue b/src/modules/project/pages/components/modals/DeleteProjectModal.vue
index e5963bb0fd315806629a84ae678812f2d4de2f92..b972dc0ce1985a0b7829059e9fc19ae9889d7998 100644
--- a/src/modules/project/pages/components/modals/DeleteProjectModal.vue
+++ b/src/modules/project/pages/components/modals/DeleteProjectModal.vue
@@ -3,9 +3,9 @@
<b-modal
id="deleteProjectModal"
v-model="isOpen"
+ :hide-footer="true"
@close="close"
@hidden="hidden"
- :hide-footer="true"
>
<!-- Title -->
<template #modal-title>
@@ -36,18 +36,16 @@
</div>
</b-form-group>
- <template>
- <!-- Modal Cancel Button -->
- <b-button @click="close">{{ $t("buttons.cancel") }}</b-button>
- <!-- Modal Delete Button -->
- <b-button
- @click="clickDelete"
- variant="danger"
- class="float-right"
- :disabled="!nameValid"
- >{{ $t("buttons.delete") }}</b-button
- >
- </template>
+ <!-- Modal Cancel Button -->
+ <b-button @click="close">{{ $t("buttons.cancel") }}</b-button>
+ <!-- Modal Delete Button -->
+ <b-button
+ variant="danger"
+ class="float-right"
+ :disabled="!nameValid"
+ @click="clickDelete"
+ >{{ $t("buttons.delete") }}</b-button
+ >
</b-modal>
</template>
@@ -75,6 +73,11 @@ export default defineComponent({
},
},
+ emits: {
+ clickDelete: null,
+ close: null,
+ },
+
data() {
return {
isOpen: false,
@@ -111,11 +114,6 @@ export default defineComponent({
}
},
},
-
- emits: {
- clickDelete: null,
- close: null,
- },
});
</script>
diff --git a/src/modules/project/pages/components/modals/ImportUserModal.vue b/src/modules/project/pages/components/modals/ImportUserModal.vue
index 148ab409092bf2b7d8d64dacbf3890ba39c74326..b29c55fd6a01a1eb1014886fc1523cfb43aa6358 100644
--- a/src/modules/project/pages/components/modals/ImportUserModal.vue
+++ b/src/modules/project/pages/components/modals/ImportUserModal.vue
@@ -2,9 +2,9 @@
<b-modal
id="importUserModal"
:title="$t('page.members.importUserTitle')"
- @hidden="resetModal"
size="lg"
hide-footer
+ @hidden="resetModal"
>
<!-- Select Project Drop-Down -->
<b-row>
@@ -16,11 +16,11 @@
}}</b-form-select-option>
</template>
<b-form-select-option
- v-for="project in additionalProjects"
- :value="project.id"
- :key="project.id"
+ v-for="additionalProject in additionalProjects"
+ :key="additionalProject.id"
+ :value="additionalProject.id"
>
- {{ project.projectName }}
+ {{ additionalProject.projectName }}
</b-form-select-option>
</b-form-select>
</b-col>
@@ -37,9 +37,9 @@
:headers="memberHeaders"
:items="additionalMembers"
:roles="roles"
- :emptyText="$t('page.members.emptyImportTableText')"
- :emptyFilteredText="$t('page.members.emptyImportTableFilterText')"
- :removeText="$t('page.members.removeUser')"
+ :empty-text="$t('page.members.emptyImportTableText')"
+ :empty-filtered-text="$t('page.members.emptyImportTableFilterText')"
+ :remove-text="$t('page.members.removeUser')"
@selectedItem="removeSelectedRow"
/>
</div>
@@ -54,8 +54,8 @@
<!-- Import -->
<b-button
name="importUsers"
- @click="importUser"
:disabled="additionalMembers.length === 0"
+ @click="importUser"
>{{ $t("buttons.import") }}</b-button
>
</div>
@@ -81,41 +81,45 @@ import type {
} from "@coscine/api-client/dist/types/Coscine.Api.Project";
export default defineComponent({
- setup() {
- const projectStore = useProjectStore();
-
- return { projectStore };
- },
components: {
MembersTable,
},
- data() {
- return {
- additionalMembers: [] as ProjectRoleObject[],
- isBusy: false,
- selectedProject: null as string | null,
- };
- },
props: {
memberHeaders: {
required: true,
type: Array,
},
memberRole: {
+ default: null,
type: [Object, null, undefined] as PropType<
RoleObject | null | undefined
>,
},
project: {
+ default: null,
type: [Object, null] as PropType<ProjectObject | null>,
},
projectRoles: {
+ default: null,
type: [Array, null] as PropType<ProjectRole[] | null>,
},
roles: {
+ default: null,
type: [Array, null] as PropType<RoleObject[] | null>,
},
},
+ setup() {
+ const projectStore = useProjectStore();
+
+ return { projectStore };
+ },
+ data() {
+ return {
+ additionalMembers: [] as ProjectRoleObject[],
+ isBusy: false,
+ selectedProject: null as string | null,
+ };
+ },
computed: {
additionalProjects(): ProjectObject[] | null {
if (this.projects && this.project) {
diff --git a/src/modules/project/pages/components/modals/InviteUserModal.vue b/src/modules/project/pages/components/modals/InviteUserModal.vue
index 0854a6a00d04e0cecbd3bc7742dd19eb8e2516fc..6368dac6f28037be25ff6c76f701a60a465526a7 100644
--- a/src/modules/project/pages/components/modals/InviteUserModal.vue
+++ b/src/modules/project/pages/components/modals/InviteUserModal.vue
@@ -67,9 +67,11 @@ export default defineComponent({
type: Object as PropType<ExtendedSendInvitationObject>,
},
projectName: {
+ default: "",
type: String,
},
roles: {
+ default: null,
type: [Array, null] as PropType<RoleObject[] | null>,
},
},
@@ -86,20 +88,16 @@ export default defineComponent({
}
},
inviteUser() {
- const text = this.$parent
- .$t("page.members.invitedUserText", {
- email: this.candidateForInvitation.email,
- role: this.candidateForInvitation.role
- ? this.getRoleNameFromId(this.candidateForInvitation.role)
- : "",
- projectName: this.projectName,
- })
- .toString();
- const errorText = this.$parent
- .$t("page.members.invitedUserError", {
- email: this.candidateForInvitation.email,
- })
- .toString();
+ const text = this.$t("page.members.invitedUserText", {
+ email: this.candidateForInvitation.email,
+ role: this.candidateForInvitation.role
+ ? this.getRoleNameFromId(this.candidateForInvitation.role)
+ : "",
+ projectName: this.projectName,
+ }).toString();
+ const errorText = this.$t("page.members.invitedUserError", {
+ email: this.candidateForInvitation.email,
+ }).toString();
this.$emit(
"storeNewInvitation",
this.candidateForInvitation,
diff --git a/src/modules/project/store.ts b/src/modules/project/store.ts
index 78d963ef0556f2c60ecd4f6a0a054ea75712b353..919bcbeec940faa16fc35517f277ae178d13dfd2 100644
--- a/src/modules/project/store.ts
+++ b/src/modules/project/store.ts
@@ -1,6 +1,5 @@
import { defineStore } from "pinia";
import { ProjectState, VisitedProjectObject } from "./types";
-import { StatusCodes } from "http-status-codes";
import { reactive } from "vue-demi";
import { removeQueryParameterFromUrl } from "@/router";
import { defaultOrganizations } from "./data/defaultOrganizations";
@@ -35,7 +34,9 @@ import type {
import type { Route } from "vue-router";
import { updatedDiff } from "deep-object-diff";
+import useNotificationStore from "@/store/notification";
import useUserStore from "../user/store";
+import type { AxiosError } from "axios";
/*
Store variable name is "this.<id>Store"
@@ -199,84 +200,98 @@ export const useProjectStore = defineStore({
*/
actions: {
async retrieveAllProjects() {
- const apiResponse = await ProjectApi.projectIndex();
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await ProjectApi.projectIndex();
this.allProjects = apiResponse.data;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveTopLevelProjects() {
- const apiResponse = await ProjectApi.projectGetTopLevelProjects();
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await ProjectApi.projectGetTopLevelProjects();
this.topLevelProjects = apiResponse.data;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveProjectBySlug(slug: string) {
- const apiResponse = await ProjectApi.projectGetBySlug(slug);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await ProjectApi.projectGetBySlug(slug);
const project: ProjectObject = apiResponse.data;
this.addProjectAsVisited(project);
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveInvitations(project: ProjectObject | null) {
- if (project && project.id && project.slug) {
- const apiResponse = await ProjectApi.projectListInvitations(project.id);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (project && project.id && project.slug) {
+ const apiResponse = await ProjectApi.projectListInvitations(
+ project.id
+ );
this.visitedProjects[project.slug].invitations = apiResponse.data;
} else {
- // Handle other Status Codes
+ console.error("Selected project is null or its ID is undefined.");
}
- } else {
- console.error("Selected project is null or its ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveSubProjects(project: ProjectObject | null) {
- if (project && project.id && project.slug) {
- const apiResponse = await SubProjectApi.subProjectGet(project.id);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (project && project.id && project.slug) {
+ const apiResponse = await SubProjectApi.subProjectGet(project.id);
this.visitedProjects[project.slug].subProjects = apiResponse.data;
} else {
- // Handle other Status Codes
+ console.error("Selected project is null or its ID is undefined.");
}
- } else {
- console.error("Selected project is null or its ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveResources(project: ProjectObject | null) {
- if (project && project.id && project.slug) {
- const apiResponse = await ProjectApi.projectGetResources(project.id);
- if (apiResponse.status === StatusCodes.OK) {
- this.visitedProjects[project.slug].resources = reactive(
- apiResponse.data
- );
+ const notificationStore = useNotificationStore();
+ try {
+ if (project && project.id && project.slug) {
+ const apiResponse = await ProjectApi.projectGetResources(project.id);
+ this.visitedProjects[project.slug].resources = apiResponse.data;
} else {
- // Handle other Status Codes
+ console.error("Selected project is null or its ID is undefined.");
}
- } else {
- console.error("Selected project is null or its ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveQuotas(project: ProjectObject | null) {
- if (project && project.id && project.slug) {
- const apiResponse = await ProjectApi.projectQuotas(project.id);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (project && project.id && project.slug) {
+ const apiResponse = await ProjectApi.projectQuotas(project.id);
this.visitedProjects[project.slug].quotas = apiResponse.data;
} else {
- // Handle other Status Codes
+ console.error("Selected project is null or its ID is undefined.");
}
- } else {
- console.error("Selected project is null or its ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
@@ -285,8 +300,22 @@ export const useProjectStore = defineStore({
resourceType: ResourceTypeInformation,
quota: UpdateProjectQuotaObject
) {
- if (project.id && resourceType.id) {
- await ProjectApi.projectUpdateQuota(project.id, resourceType.id, quota);
+ const notificationStore = useNotificationStore();
+ try {
+ if (project.id && resourceType.id) {
+ await ProjectApi.projectUpdateQuota(
+ project.id,
+ resourceType.id,
+ quota
+ );
+ } else {
+ console.error(
+ "Selected project's or the selected resource type's ID is undefined."
+ );
+ }
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
@@ -294,38 +323,44 @@ export const useProjectStore = defineStore({
project: ProjectObject,
resourceType: ResourceTypeInformation
): Promise<ResourceQuota[] | undefined> {
- if (project.id && resourceType.id) {
- const apiResponse = await QuotaApi.quotaGetResourceQuotas(
- project.id,
- resourceType.id
- );
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (project.id && resourceType.id) {
+ const apiResponse = await QuotaApi.quotaGetResourceQuotas(
+ project.id,
+ resourceType.id
+ );
return apiResponse.data;
} else {
- // Handle other Status Codes
+ console.error(
+ "Selected project's or resource types' ID is undefined."
+ );
}
- } else {
- console.error("Selected project's or resource types' ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
-
- // ToDo: Consider removing if unused in coscine/issues#2003
async getResourceTypeQuota(
project: ProjectObject,
resourceType: ResourceTypeInformation
): Promise<ProjectQuotaReturnObject | undefined> {
- if (project.id && resourceType.id) {
- const apiResponse = await ProjectApi.projectQuota(
- project.id,
- resourceType.id
- );
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (project.id && resourceType.id) {
+ const apiResponse = await ProjectApi.projectQuota(
+ project.id,
+ resourceType.id
+ );
return apiResponse.data;
} else {
- // Handle other Status Codes
+ console.error(
+ "Selected project's or resource types' ID is undefined."
+ );
}
- } else {
- console.error("Selected project's or resource types' ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
@@ -333,97 +368,125 @@ export const useProjectStore = defineStore({
resourceQuotaObject: ResourceQuota,
quota: UpdateResourceObject
) {
- if (resourceQuotaObject.id) {
- await QuotaApi.quotaUpdateResourceQuota(resourceQuotaObject.id, quota);
+ const notificationStore = useNotificationStore();
+ try {
+ if (resourceQuotaObject.id) {
+ await QuotaApi.quotaUpdateResourceQuota(
+ resourceQuotaObject.id,
+ quota
+ );
+ } else {
+ console.error("Selected resource quota is undefined.");
+ }
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveOrganizationByURL(
url: string
): Promise<OrganizationObject[] | null> {
- const apiResponse = await OrganizationApi.organizationGetOrganization(
- url
- );
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await OrganizationApi.organizationGetOrganization(
+ url
+ );
return apiResponse.data.data;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return null;
}
},
async retrieveOrganizations(filter = "") {
- const apiResponse = await OrganizationApi.organizationGetROR(filter);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await OrganizationApi.organizationGetROR(filter);
this.organizations = apiResponse.data.data;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async isMemberOfOrganization(rorUrl: string): Promise<boolean> {
- const apiResponse = await OrganizationApi.organizationIsMember(rorUrl);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await OrganizationApi.organizationIsMember(rorUrl);
return apiResponse.data.isMember as boolean;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return false;
}
},
async retrieveVisibilities() {
- const apiResponse = await VisibilityApi.visibilityIndex();
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await VisibilityApi.visibilityIndex();
this.visibilities = apiResponse.data;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveLicenses() {
- const apiResponse = await LicenseApi.licenseIndex();
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await LicenseApi.licenseIndex();
this.licenses = apiResponse.data;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveDisciplines() {
- const apiResponse = await DisciplineApi.disciplineIndex();
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await DisciplineApi.disciplineIndex();
this.disciplines = apiResponse.data;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveRoles() {
- const apiResponse = await RoleApi.roleIndex();
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await RoleApi.roleIndex();
this.roles = apiResponse.data;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async resolveInvitation() {
- // .../?invitationToken=<token>
- const invitationToken = this.router.currentRoute.query.invitationToken;
- if (invitationToken) {
- // ToDo: Modals and project refreshing handling!
- const apiResponse = await ProjectApi.projectResolveInvitation(
- invitationToken.toString()
- );
- if (apiResponse.status === StatusCodes.OK) {
- // remove invitationToken from the URL
+ const notificationStore = useNotificationStore();
+ try {
+ // .../?invitationToken=<token>
+ const invitationToken = this.router.currentRoute.query.invitationToken;
+ if (invitationToken) {
+ await ProjectApi.projectResolveInvitation(invitationToken.toString());
+ this.refreshProjectInformation();
removeQueryParameterFromUrl(
this.router.currentRoute,
"invitationToken"
);
- } else {
- // Handle other Status Codes
}
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ removeQueryParameterFromUrl(
+ this.router.currentRoute,
+ "invitationToken"
+ );
}
},
@@ -447,47 +510,54 @@ export const useProjectStore = defineStore({
},
async createProject(project: ProjectObject): Promise<ProjectObject | null> {
- const apiResponse = await ProjectApi.projectStore(project);
- if (apiResponse.status === StatusCodes.OK) {
- const createdProject: ProjectObject = apiResponse.data;
- return createdProject;
- } else {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await ProjectApi.projectStore(project);
+ return apiResponse.data as ProjectObject;
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return null;
}
},
async updateProject(project: ProjectObject): Promise<boolean> {
- if (project.id) {
- const apiResponse = await ProjectApi.projectUpdate(project.id, project);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (project.id) {
+ await ProjectApi.projectUpdate(project.id, project);
return true;
} else {
- // Handle other Status Codes
+ console.error("Selected project's ID is undefined.");
return false;
}
- } else {
- console.error("Selected project's ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return false;
}
},
async deleteProject(project: ProjectObject): Promise<boolean> {
- if (project.id) {
- const apiResponse = await ProjectApi.projectDelete(project.id);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (project.id) {
+ await ProjectApi.projectDelete(project.id);
return true;
} else {
- // Handle other Status Codes
+ console.error("Selected project's ID is undefined.");
return false;
}
- } else {
- console.error("Selected project's ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return false;
}
},
- async refreshProjectInformation(parentProject: ProjectObject | null) {
+ async refreshProjectInformation(
+ parentProject: ProjectObject | null = null
+ ) {
await Promise.all([
this.retrieveAllProjects(),
this.retrieveTopLevelProjects(),
@@ -524,86 +594,122 @@ export const useProjectStore = defineStore({
}
},
- async getProjectRoles(projectId: string) {
- const apiResponse = await ProjectRoleApi.projectRoleIndex(projectId);
- return apiResponse.data;
+ async getProjectRoles(projectId: string): Promise<ProjectRoleObject[]> {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await ProjectRoleApi.projectRoleIndex(projectId);
+ return apiResponse.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ }
+ return [];
},
async retrieveProjectRoles(project: ProjectObject | null) {
- if (project && project.slug && project.id) {
- const apiResponse = await ProjectRoleApi.projectRoleIndex(project.id);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (project && project.slug && project.id) {
+ const apiResponse = await ProjectRoleApi.projectRoleIndex(project.id);
this.visitedProjects[project.slug].roles = apiResponse.data;
} else {
- // Handle other Status Codes
+ console.error("Selected project is null or its ID is undefined.");
}
- } else {
- console.error("Selected project is null or its ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async deleteProjectRole(projectRole: ProjectRoleObject): Promise<boolean> {
- if (
- projectRole.projectId &&
- projectRole.user &&
- projectRole.user.id &&
- projectRole.role &&
- projectRole.role.id
- ) {
- try {
+ const notificationStore = useNotificationStore();
+ try {
+ if (
+ projectRole.projectId &&
+ projectRole.user &&
+ projectRole.user.id &&
+ projectRole.role &&
+ projectRole.role.id
+ ) {
await ProjectRoleApi.projectRoleDelete(
projectRole.projectId,
projectRole.user.id,
projectRole.role.id
);
return true;
- } catch {
+ } else {
+ console.error("There was a problem with the project role.");
return false;
}
- } else {
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return false;
}
},
async storeProjectRole(projectRole: ProjectRoleObject) {
- await ProjectRoleApi.projectRoleSet({
- data: projectRole,
- });
+ const notificationStore = useNotificationStore();
+ try {
+ await ProjectRoleApi.projectRoleSet({
+ data: projectRole,
+ });
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ }
},
async createApplicationProfileAnalytics(project: ProjectObject | null) {
- if (project && project.id) {
- await ProjectApi.projectCreateApplicationProfile(project.id);
- } else {
- console.error("Selected project is null or its ID is undefined.");
+ const notificationStore = useNotificationStore();
+ try {
+ if (project && project.id) {
+ await ProjectApi.projectCreateApplicationProfile(project.id);
+ } else {
+ console.error("Selected project is null or its ID is undefined.");
+ }
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async deleteInvitation(invitationId: string) {
+ const notificationStore = useNotificationStore();
try {
await ProjectApi.projectDeleteInvitation(invitationId);
return true;
- } catch {
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return false;
}
},
async storeInvitation(invitation: SendInvitationObject) {
- await ProjectApi.projectSendInvitation(invitation);
+ const notificationStore = useNotificationStore();
+ try {
+ await ProjectApi.projectSendInvitation(invitation);
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ }
},
async leaveProject(project: ProjectObject | null) {
- if (project && project.slug && project.id) {
- const apiResponse = await ProjectRoleApi.projectRoleDelete2(project.id);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (project && project.slug && project.id) {
+ await ProjectRoleApi.projectRoleDelete2(project.id);
this.visitedProjects[project.slug].roles = null;
this.refreshProjectInformation(this.currentProject);
this.router.push({ name: "list-projects" });
} else {
- // Handle other Status Codes
+ console.error("Selected project is null or its ID is undefined.");
}
- } else {
- console.error("Selected project is null or its ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
},
diff --git a/src/modules/project/types.d.ts b/src/modules/project/types.ts
similarity index 100%
rename from src/modules/project/types.d.ts
rename to src/modules/project/types.ts
diff --git a/src/modules/resource/ResourceModule.vue b/src/modules/resource/ResourceModule.vue
index d1d2f808b5d5719e2dd4ba9bf8f695ce51352529..3706aaf754df1e8e45c9c3b16d26888f53270eb6 100644
--- a/src/modules/resource/ResourceModule.vue
+++ b/src/modules/resource/ResourceModule.vue
@@ -18,8 +18,13 @@ import type { VisitedResourceObject } from "./types";
import type { ResourceTypeInformation } from "@coscine/api-client/dist/types/Coscine.Api.Resources";
import VueI18n from "vue-i18n";
import { cloneDeep } from "lodash";
+import type { Route } from "vue-router";
export default defineComponent({
+ beforeRouteUpdate(to, from, next) {
+ this.apiFetch(to);
+ next();
+ },
setup() {
const mainStore = useMainStore();
const resourceStore = useResourceStore();
@@ -28,10 +33,6 @@ export default defineComponent({
return { mainStore, resourceStore, projectStore };
},
- created() {
- this.initialize();
- },
-
computed: {
resource(): VisitedResourceObject | null {
return this.resourceStore.currentResource;
@@ -56,13 +57,18 @@ export default defineComponent({
},
},
+ created() {
+ this.initialize();
+ },
+
methods: {
async initialize() {
+ await this.apiFetch(this.$router.currentRoute);
+ },
+
+ async apiFetch(route: Route) {
// Resource may be unset (e.g. when entering from a direct link)
- await this.resourceStore.handleUnsetResource(
- this.resource,
- this.$router.currentRoute
- );
+ await this.resourceStore.handleUnsetResource(this.resource, route);
if (this.resource) {
if (!this.resourceStore.currentFullApplicationProfile) {
this.resourceStore.retrieveApplicationProfile(this.resource);
diff --git a/src/modules/resource/components/create-resource/Configuration.vue b/src/modules/resource/components/create-resource/Configuration.vue
index 621822ffbc3ba4f888a35d5f884a4bb127c6a6c3..81e44b85d53c89df1cf7bea0eed11ceda96f6fb6 100644
--- a/src/modules/resource/components/create-resource/Configuration.vue
+++ b/src/modules/resource/components/create-resource/Configuration.vue
@@ -4,16 +4,15 @@
<div v-if="resourceTypes && resourceTypes.length > 0">
<coscine-form-group
:mandatory="true"
- labelFor="ResourceTypes"
+ label-for="ResourceTypes"
:label="$t('page.createResource.configuration.labels.resourceType')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
>
<multiselect
v-if="resourceTypes.length > 1"
id="ResourceTypes"
v-model="selectedResourceType"
:options="resourceTypes"
- @input="setSelectedResourceTypeInformation"
:multiple="false"
:hide-selected="false"
label="iDisplayName"
@@ -24,6 +23,7 @@
select-label=""
selected-label=""
deselect-label=""
+ @input="setSelectedResourceTypeInformation"
>
<span slot="noResult">{{
$t("page.createResource.multiselect.noResults")
@@ -57,9 +57,9 @@
<!-- Button Next (wrapper needed for Popover) -->
<div id="divButtonNext" class="float-right">
<b-button
- @click.prevent="next"
variant="outline-primary"
:disabled="!valid"
+ @click.prevent="next"
>{{ $t("buttons.next") }}
</b-button>
</div>
@@ -105,6 +105,24 @@ import type {
import type { LabeledResourceObject, ResourceTypeOption } from "../../types";
export default defineComponent({
+ components: {
+ ConfigurationSizeSlider,
+ },
+ props: {
+ value: {
+ type: Object as PropType<ResourceObject>,
+ required: true,
+ },
+ isLoading: {
+ default: false,
+ type: Boolean,
+ },
+ },
+ emits: {
+ valid: (_: boolean) => null,
+ next: null,
+ input: (_: ResourceObject) => null,
+ },
setup() {
const mainStore = useMainStore();
const projectStore = useProjectStore();
@@ -113,10 +131,6 @@ export default defineComponent({
return { mainStore, projectStore, resourceStore };
},
- components: {
- ConfigurationSizeSlider,
- },
-
data() {
return {
resource: this.value,
@@ -124,17 +138,6 @@ export default defineComponent({
};
},
- props: {
- value: {
- type: Object as PropType<ResourceObject>,
- required: true,
- },
- isLoading: {
- default: false,
- type: Boolean,
- },
- },
-
computed: {
isOwner(): boolean | undefined {
return this.projectStore.currentUserRoleIsOwner;
@@ -269,12 +272,6 @@ export default defineComponent({
}
},
},
-
- emits: {
- valid: (_: boolean) => null,
- next: null,
- input: (_: ResourceObject) => null,
- },
});
</script>
diff --git a/src/modules/resource/components/create-resource/ConfigurationSizeSlider.vue b/src/modules/resource/components/create-resource/ConfigurationSizeSlider.vue
index 8ef0793a2db2e0d530d28002ff63171b0d577f65..1b77506fb82437c04fb03596f80f01f5188b6b70 100644
--- a/src/modules/resource/components/create-resource/ConfigurationSizeSlider.vue
+++ b/src/modules/resource/components/create-resource/ConfigurationSizeSlider.vue
@@ -8,11 +8,11 @@
<b-form-input
id="slider"
:disabled="!sliderValue || max < min"
- @change="update"
type="range"
:min="min"
:max="max"
:value="sliderValue"
+ @change="update"
/>
<div>
{{ sliderText }}
@@ -35,6 +35,15 @@ import type { ResourceObject } from "@coscine/api-client/dist/types/Coscine.Api.
import { ResourceTypeOption } from "../../types";
export default defineComponent({
+ props: {
+ value: {
+ type: Object as PropType<ResourceObject>,
+ required: true,
+ },
+ },
+ emits: {
+ input: (_: ResourceObject) => null,
+ },
setup() {
const projectStore = useProjectStore();
@@ -50,13 +59,6 @@ export default defineComponent({
};
},
- props: {
- value: {
- type: Object as PropType<ResourceObject>,
- required: true,
- },
- },
-
computed: {
project(): ProjectObject | null {
return this.projectStore.currentProject;
@@ -152,10 +154,6 @@ export default defineComponent({
this.$set(this.resource.resourceTypeOption, "Size", size);
},
},
-
- emits: {
- input: (_: ResourceObject) => null,
- },
});
</script>
diff --git a/src/modules/resource/components/create-resource/General.vue b/src/modules/resource/components/create-resource/General.vue
index 6f7c98c1227a4192ed1e1b28d5f905b2483c311a..76ac82f649338d79787b962f943a8f2399819964 100644
--- a/src/modules/resource/components/create-resource/General.vue
+++ b/src/modules/resource/components/create-resource/General.vue
@@ -5,14 +5,13 @@
<!-- Resource Name -->
<coscine-form-group
:mandatory="true"
- labelFor="ResourceName"
+ label-for="ResourceName"
:label="$t('form.resource.resourceNameLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
>
<b-form-input
id="ResourceName"
v-model="$v.resourceForm.resourceName.$model"
- @input="translateResourceNameToDisplayName"
:state="
$v.resourceForm.resourceName.$dirty
? !$v.resourceForm.resourceName.$error
@@ -22,6 +21,7 @@
:maxlength="maxLengthFromValidation($v.resourceForm.resourceName)"
required
:readonly="readonly"
+ @input="translateResourceNameToDisplayName"
/>
<div class="invalid-tooltip">
{{
@@ -35,14 +35,13 @@
<!-- Display Name -->
<coscine-form-group
:mandatory="true"
- labelFor="DisplayName"
+ label-for="DisplayName"
:label="$t('form.resource.displayNameLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
>
<b-form-input
id="DisplayName"
v-model="$v.resourceForm.displayName.$model"
- @input="isLockedDisplayName = true"
:state="
$v.resourceForm.displayName.$dirty
? !$v.resourceForm.displayName.$error
@@ -52,6 +51,7 @@
:maxlength="maxLengthFromValidation($v.resourceForm.displayName)"
required
:readonly="readonly"
+ @input="isLockedDisplayName = true"
/>
<div class="invalid-tooltip">
{{
@@ -65,9 +65,9 @@
<!-- Description -->
<coscine-form-group
:mandatory="true"
- labelFor="Description"
+ label-for="Description"
:label="$t('form.resource.resourceDescriptionLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
>
<b-form-textarea
id="Description"
@@ -94,9 +94,9 @@
<!-- Discipline -->
<coscine-form-group
:mandatory="true"
- labelFor="Discipline"
+ label-for="Discipline"
:label="$t('form.resource.resourceDisciplineLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
>
<multiselect
id="Discipline"
@@ -124,9 +124,9 @@
<!-- Keywords -->
<coscine-form-group
- labelFor="Keywords"
+ label-for="Keywords"
:label="$t('form.resource.resourceKeywordsLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
>
<multiselect
id="Keywords"
@@ -137,9 +137,9 @@
:taggable="true"
:max="limitKeywords(selectedKeyword)"
:tag-placeholder="$t('form.resource.tagPlaceholder')"
+ :disabled="readonly"
@tag="addTag"
@remove="$v.resourceForm.keywords.$touch()"
- :disabled="readonly"
>
<template #maxElements>
{{
@@ -161,27 +161,27 @@
<!-- Visibility -->
<coscine-form-group
:mandatory="true"
- labelFor="Visibility"
+ label-for="Visibility"
:label="$t('form.resource.resourceMetadataVisibilityLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
>
<b-form-radio-group
- name="radios-stacked"
v-model="selectedVisibility"
- @change="setVisibility(selectedVisibility)"
+ name="radios-stacked"
:options="visibilities"
text-field="displayName"
value-field="id"
stacked
:disabled="readonly"
+ @change="setVisibility(selectedVisibility)"
/>
</coscine-form-group>
<!-- License -->
<coscine-form-group
- labelFor="ResourceLicense"
+ label-for="ResourceLicense"
:label="$t('form.resource.resourceLicenseLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
:info="true"
>
<template #popover>
@@ -195,7 +195,6 @@
<b-form-select
id="ResourceLicense"
v-model="selectedLicense"
- @change="setLicense(selectedLicense)"
:options="licenses"
text-field="displayName"
value-field="id"
@@ -206,6 +205,7 @@
"
:placeholder="$t('form.resource.resourceLicense')"
:disabled="readonly"
+ @change="setLicense(selectedLicense)"
>
<template #first>
<option :value="null" disabled>
@@ -217,9 +217,9 @@
<!-- Internal Rules for Reuse -->
<coscine-form-group
- labelFor="InternalRulesForReuse"
+ label-for="InternalRulesForReuse"
:label="$t('form.resource.resourceReuseLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
:info="true"
>
<template #popover>
@@ -274,6 +274,26 @@ import type {
import type { ProjectObject } from "@coscine/api-client/dist/types/Coscine.Api.Project";
export default defineComponent({
+ mixins: [validationMixin],
+ props: {
+ value: {
+ type: Object as PropType<ResourceObject>,
+ required: true,
+ },
+ isLoading: {
+ default: false,
+ type: Boolean,
+ },
+ readonly: {
+ default: false,
+ type: Boolean,
+ },
+ },
+ emits: {
+ valid: (_: boolean) => null,
+ validation: (_: Validation) => null,
+ input: (_: ResourceObject) => null,
+ },
setup() {
const mainStore = useMainStore();
const projectStore = useProjectStore();
@@ -282,8 +302,6 @@ export default defineComponent({
return { mainStore, projectStore, resourceStore };
},
- mixins: [validationMixin],
-
validations: {
resourceForm: {
resourceName: {
@@ -314,21 +332,6 @@ export default defineComponent({
},
},
- props: {
- value: {
- type: Object as PropType<ResourceObject>,
- required: true,
- },
- isLoading: {
- default: false,
- type: Boolean,
- },
- readonly: {
- default: false,
- type: Boolean,
- },
- },
-
data() {
return {
resourceForm: this.value,
@@ -514,12 +517,6 @@ export default defineComponent({
}
},
},
-
- emits: {
- valid: (_: boolean) => null,
- validation: (_: Validation) => null,
- input: (_: ResourceObject) => null,
- },
});
</script>
diff --git a/src/modules/resource/components/create-resource/Metadata.vue b/src/modules/resource/components/create-resource/Metadata.vue
index 02887dd7a69638e8527df7038599e563c50e1a53..10cce526ec77b80570e1f3098903319e47bea2cb 100644
--- a/src/modules/resource/components/create-resource/Metadata.vue
+++ b/src/modules/resource/components/create-resource/Metadata.vue
@@ -3,7 +3,7 @@
<div>
<!-- Application Profile Dropdown -->
<coscine-form-group
- labelFor="ApplicationProfiles"
+ label-for="ApplicationProfiles"
:mandatory="true"
:label="$t('page.createResource.metadata.applicationProfileLabel')"
>
@@ -12,10 +12,10 @@
id="ApplicationProfiles"
v-model="selectedApplicationProfile"
:options="applicationProfileList"
- @change="notifyFormGenerator"
:placeholder="
$t('page.createResource.metadata.selectApplicationProfile')
"
+ @change="notifyFormGenerator"
>
<template #first>
<b-form-select-option :value="null" disabled>
@@ -71,13 +71,13 @@
<FormGenerator
v-else
:key="resource.applicationProfile"
- :fixedValueMode="fixedValueMode"
- :fixedValues="resource.fixedValues"
- :applicationProfileId="resource.applicationProfile"
- :SHACLDefinition="applicationProfileString"
- :classReceiver="receiveClass"
- :userReceiver="async () => user"
- mimeType="application/ld+json"
+ :fixed-value-mode="fixedValueMode"
+ :fixed-values="resource.fixedValues"
+ :application-profile-id="resource.applicationProfile"
+ :s-h-a-c-l-definition="applicationProfileString"
+ :class-receiver="receiveClass"
+ :user-receiver="async () => user"
+ mime-type="application/ld+json"
/>
</div>
</template>
@@ -95,17 +95,9 @@ import type { BilingualLabels } from "@coscine/api-client/dist/types/Coscine.Api
import type { UserObject } from "@coscine/api-client/dist/types/Coscine.Api.User";
export default defineComponent({
- setup() {
- const resourceStore = useResourceStore();
- const userStore = useUserStore();
-
- return { resourceStore, userStore };
- },
-
components: {
CreateAPModal,
},
-
props: {
value: {
type: Object as PropType<ResourceObject>,
@@ -124,6 +116,16 @@ export default defineComponent({
required: true,
},
},
+ emits: {
+ valid: (_: boolean) => null,
+ input: (_: ResourceObject) => null,
+ },
+ setup() {
+ const resourceStore = useResourceStore();
+ const userStore = useUserStore();
+
+ return { resourceStore, userStore };
+ },
data() {
return {
@@ -191,11 +193,6 @@ export default defineComponent({
);
},
},
-
- emits: {
- valid: (_: boolean) => null,
- input: (_: ResourceObject) => null,
- },
});
</script>
diff --git a/src/modules/resource/components/create-resource/Overview.vue b/src/modules/resource/components/create-resource/Overview.vue
index 4911072f22f59bce641024b95af6e5ad4b1f6acf..6eb9af95d287e4d2f10487dc9ea54623c2efb7c9 100644
--- a/src/modules/resource/components/create-resource/Overview.vue
+++ b/src/modules/resource/components/create-resource/Overview.vue
@@ -1,7 +1,7 @@
<template>
<div class="overview">
<!-- Resource Configuration -->
- <b-card @click.prevent="toTab(tabs[0])" class="my-2">
+ <b-card class="my-2" @click.prevent="toTab(tabs[0])">
<CoscineHeadline :headline="$t('form.steps.first')" h="h5" />
<coscine-form-group
@@ -27,7 +27,7 @@
</b-card>
<!-- General Information -->
- <b-card @click.prevent="toTab(tabs[1])" class="my-2">
+ <b-card class="my-2" @click.prevent="toTab(tabs[1])">
<CoscineHeadline :headline="$t('form.steps.second')" h="h5" />
<!-- General -->
@@ -35,7 +35,7 @@
</b-card>
<!-- Metadata -->
- <b-card @click.prevent="toTab(tabs[2])" class="my-2 p-0">
+ <b-card class="my-2 p-0" @click.prevent="toTab(tabs[2])">
<CoscineHeadline :headline="$t('form.steps.third')" h="h5" />
<!-- Form Generator -->
@@ -45,31 +45,31 @@
<FormGenerator
v-else
:key="resource.applicationProfile"
- :projectId="project.id"
- :fixedValueMode="fixedValueMode"
- :fixedValues="resource.fixedValues"
- :applicationProfileId="resource.applicationProfile"
- :disabledMode="true"
- :SHACLDefinition="applicationProfileString"
- :classReceiver="receiveClass"
- :userReceiver="async () => user"
- mimeType="application/ld+json"
+ :project-id="project.id"
+ :fixed-value-mode="fixedValueMode"
+ :fixed-values="resource.fixedValues"
+ :application-profile-id="resource.applicationProfile"
+ :disabled-mode="true"
+ :s-h-a-c-l-definition="applicationProfileString"
+ :class-receiver="receiveClass"
+ :user-receiver="async () => user"
+ mime-type="application/ld+json"
/>
</b-card>
<!-- Buttons -->
<b-form-group>
<!-- Button Back -->
- <b-button @click.prevent="back" variant="outline-primary"
+ <b-button variant="outline-primary" @click.prevent="back"
>{{ $t("buttons.back") }}
</b-button>
<!-- Button Confirm -->
<b-button
- @click.prevent="clickSave"
:disabled="isUploadInProgress || isLoadingFormGenerator"
class="float-right"
variant="outline-primary"
+ @click.prevent="clickSave"
>{{ $t("buttons.confirm") }}
</b-button>
</b-form-group>
@@ -90,25 +90,10 @@ import type { ResourceCreationTab, ResourceTypeOption } from "../../types";
import type { ProjectObject } from "@coscine/api-client/dist/types/Coscine.Api.Project";
import type { BilingualLabels } from "@coscine/api-client/dist/types/Coscine.Api.Metadata";
import type { UserObject } from "@coscine/api-client/dist/types/Coscine.Api.User";
+import useNotificationStore from "@/store/notification";
export default defineComponent({
components: { General },
- setup() {
- const projectStore = useProjectStore();
- const resourceStore = useResourceStore();
- const userStore = useUserStore();
-
- return { projectStore, resourceStore, userStore };
- },
-
- data() {
- return {
- resource: this.value,
- fixedValueMode: true,
- isUploadInProgress: false,
- };
- },
-
props: {
value: {
type: Object as PropType<ResourceObject>,
@@ -127,6 +112,28 @@ export default defineComponent({
required: true,
},
},
+ emits: {
+ back: null,
+ toTab: (_: ResourceCreationTab) => null,
+ waitingForResponse: (_: boolean) => null,
+ input: (_: ResourceObject) => null,
+ },
+ setup() {
+ const projectStore = useProjectStore();
+ const resourceStore = useResourceStore();
+ const userStore = useUserStore();
+ const notificationStore = useNotificationStore();
+
+ return { projectStore, resourceStore, userStore, notificationStore };
+ },
+
+ data() {
+ return {
+ resource: this.value,
+ fixedValueMode: true,
+ isUploadInProgress: false,
+ };
+ },
computed: {
project(): ProjectObject | null {
@@ -186,37 +193,16 @@ export default defineComponent({
} else {
this.$emit("waitingForResponse", false);
// On Failure
- this.makeToast(
- this.$t("toast.onSave.failure.message").toString(),
- this.$t("toast.onSave.failure.title").toString(),
- "danger"
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onSave.failure.title").toString(),
+ body: this.$t("toast.onSave.failure.message").toString(),
+ variant: "danger",
+ });
}
this.isUploadInProgress = false;
}
},
-
- makeToast(
- text = "Message",
- givenTitle = "Title",
- variant: string | undefined = undefined
- ) {
- this.$root.$bvToast.toast(text, {
- title: givenTitle,
- autoHideDelay: 5000,
- toaster: "b-toaster-bottom-right",
- variant: variant,
- noCloseButton: true,
- });
- },
- },
-
- emits: {
- back: null,
- toTab: (_: ResourceCreationTab) => null,
- waitingForResponse: (_: boolean) => null,
- input: (_: ResourceObject) => null,
},
});
</script>
diff --git a/src/modules/resource/components/resource-page/FilesView.vue b/src/modules/resource/components/resource-page/FilesView.vue
index 3f96e72dbcff8b47a5a81b2a08177235f7f49780..3743e07f4be3cf652978139c96cbffe4a4a51a63 100644
--- a/src/modules/resource/components/resource-page/FilesView.vue
+++ b/src/modules/resource/components/resource-page/FilesView.vue
@@ -1,13 +1,14 @@
<template>
<div class="DataSource">
<FilesViewHeader
- @clickFileSelect="clickFileSelect"
- :isUploading="isUploading"
v-model="filter"
+ :is-uploading="isUploading"
+ @clickFileSelect="clickFileSelect"
/>
<b-row>
<b-table
id="resourceViewTable"
+ ref="adaptTable"
:fields="headers"
:items="folderContents"
:busy="isBusy"
@@ -23,11 +24,10 @@
responsive
head-variant="dark"
class="adaptTable"
- ref="adaptTable"
- @row-selected="onRowSelected"
show-empty
:empty-text="$t('page.resource.emptyTableText')"
:empty-filtered-text="$t('page.resource.emptyFilterText')"
+ @row-selected="onRowSelected"
>
<div slot="table-busy" class="text-center text-danger my-2">
<b-spinner class="align-middle"></b-spinner>
@@ -35,17 +35,17 @@
$t("page.resource.loading")
}}</strong>
</div>
- <template v-slot:head(name)="row">
+ <template #head(name)="row">
<b-form-checkbox
v-model="selectAll"
@change="allSelect(row)"
></b-form-checkbox>
<span>{{ $t("page.resource.fileName") }}</span>
</template>
- <template v-slot:head(lastModified)="row">
+ <template #head(lastModified)="row">
<span>{{ row.label }}</span>
</template>
- <template v-slot:head()="row">
+ <template #head()="row">
<template v-if="visibleColumns.includes(row.field.key)">
<span>{{ row.label }}</span>
</template>
@@ -56,15 +56,15 @@
</span>
</template>
</template>
- <template v-slot:head(addColumn)>
- <b-dropdown size="sm" right :no-caret="true" id="addColumnDropDown">
- <template v-slot:button-content>
+ <template #head(addColumn)>
+ <b-dropdown id="addColumnDropDown" size="sm" right :no-caret="true">
+ <template #button-content>
<b-icon icon="arrow-down" />
</template>
<b-form-checkbox
v-for="column in columns"
- v-model="column.active"
:key="column.value"
+ v-model="column.active"
:value="column.value"
stacked
>
@@ -72,11 +72,11 @@
</b-form-checkbox>
</b-dropdown>
</template>
- <template v-slot:cell(name)="row">
+ <template #cell(name)="row">
<span class="checkFile">
<b-form-checkbox
- class="tableCheck"
v-model="row.rowSelected"
+ class="tableCheck"
@change="select(row)"
/>
<b-icon
@@ -102,7 +102,7 @@
:no-caret="true"
:disabled="editableDataUrl && resource.archived"
>
- <template v-slot:button-content> ... </template>
+ <template #button-content> ... </template>
<b-dropdown-item
v-if="!editableDataUrl"
@click="
@@ -113,16 +113,16 @@
}}</b-dropdown-item
>
<b-dropdown-item
- @click="deleteFile(row.item)"
:disabled="resource.archived"
+ @click="deleteFile(row.item)"
>{{ $t("buttons.delete") }}</b-dropdown-item
>
</b-dropdown>
</template>
- <template v-slot:cell(size)="row">
+ <template #cell(size)="row">
{{ renderSize(row.item) }}
</template>
- <template v-slot:cell(lastModified)="row">
+ <template #cell(lastModified)="row">
{{ renderDate(row.item) }}
</template>
</b-table>
@@ -169,6 +169,28 @@ interface CustomTableField extends BvTableField {
}
export default defineComponent({
+ components: {
+ FilesViewHeader,
+ },
+ props: {
+ folderContents: {
+ default() {
+ return [];
+ },
+ type: Array as PropType<FolderContent[]>,
+ },
+ currentFolder: {
+ default: "/",
+ type: String,
+ },
+ fileListEdit: {
+ default() {
+ return [];
+ },
+ type: Array as PropType<FolderContent[]>,
+ },
+ isUploading: Boolean,
+ },
setup() {
const mainStore = useMainStore();
const resourceStore = useResourceStore();
@@ -176,6 +198,36 @@ export default defineComponent({
return { mainStore, resourceStore, projectStore };
},
+ data() {
+ return {
+ defaultHeaders: [
+ {
+ label: this.$t("page.resource.fileName").toString(),
+ key: "name",
+ sortable: true,
+ active: true,
+ },
+ {
+ label: this.$t("page.resource.lastModified").toString(),
+ key: "lastModified",
+ sortable: true,
+ active: true,
+ },
+ {
+ label: this.$t("page.resource.size").toString(),
+ key: "size",
+ sortable: true,
+ active: true,
+ },
+ ] as Array<CustomTableField>,
+ columns: [] as CustomTableField[],
+ isBusy: true,
+ selectAll: false,
+ filter: "",
+ folderPath: [] as string[],
+ selectableFiles: [] as FolderContent[],
+ };
+ },
computed: {
applicationProfile(): ApplicationProfile | null {
@@ -245,58 +297,6 @@ export default defineComponent({
return visibleColumns;
},
},
- data() {
- return {
- defaultHeaders: [
- {
- label: this.$t("page.resource.fileName").toString(),
- key: "name",
- sortable: true,
- active: true,
- },
- {
- label: this.$parent.$t("page.resource.lastModified").toString(),
- key: "lastModified",
- sortable: true,
- active: true,
- },
- {
- label: this.$t("page.resource.size").toString(),
- key: "size",
- sortable: true,
- active: true,
- },
- ] as Array<CustomTableField>,
- columns: [] as CustomTableField[],
- isBusy: true,
- selectAll: false,
- filter: "",
- folderPath: [] as string[],
- selectableFiles: [] as FolderContent[],
- };
- },
- components: {
- FilesViewHeader,
- },
- props: {
- folderContents: {
- default() {
- return [];
- },
- type: Array as PropType<FolderContent[]>,
- },
- currentFolder: {
- default: "/",
- type: String,
- },
- fileListEdit: {
- default() {
- return [];
- },
- type: Array as PropType<FolderContent[]>,
- },
- isUploading: Boolean,
- },
watch: {
applicationProfile() {
this.getColumns();
@@ -395,7 +395,7 @@ export default defineComponent({
getData() {
// Doesn't end with '/' => Probably a file
let currentFolder = this.currentFolder;
- if (!currentFolder.endsWith("/")) {
+ if (!currentFolder.endsWith("/") && currentFolder !== "") {
// TODO: Change to open modal
this.openFile({
id: uuidv4(),
@@ -479,12 +479,15 @@ export default defineComponent({
// (Other workaround would be to keep the editing files open)
this.$emit("fileListEdit", []);
+ const absolutePath =
+ folder.absolutePath !== "" ? folder.absolutePath : "/";
+
// Show location change
- window.location.hash = folder.absolutePath;
+ window.location.hash = absolutePath;
const response = await this.resourceStore.getMetadata(
this.resource,
- folder.absolutePath
+ absolutePath
);
const tmpFolder: FolderContent[] = [];
@@ -492,9 +495,9 @@ export default defineComponent({
this.$emit("currentFolder", this.folderPath.pop());
} else if (this.currentFolder !== "") {
this.folderPath.push(this.currentFolder);
- this.$emit("currentFolder", folder.absolutePath);
+ this.$emit("currentFolder", absolutePath);
} else {
- this.$emit("currentFolder", folder.absolutePath);
+ this.$emit("currentFolder", absolutePath);
}
if (this.folderPath.length > 0) {
diff --git a/src/modules/resource/components/resource-page/FilesViewHeader.vue b/src/modules/resource/components/resource-page/FilesViewHeader.vue
index 61a580dc994932133d67a0cec166a20b82d42e4f..40141d254e19652e54cded2f8c92d7fa06aad649 100644
--- a/src/modules/resource/components/resource-page/FilesViewHeader.vue
+++ b/src/modules/resource/components/resource-page/FilesViewHeader.vue
@@ -3,13 +3,13 @@
<div class="col-sm-7 file-view-header">
<span>
<p
- class="h4"
v-if="
resource &&
resource.type &&
resource.type.displayName &&
resource.displayName
"
+ class="h4"
>
{{
$t("resourceTypes." + resource.type.displayName + ".displayName")
@@ -29,7 +29,7 @@
triggers="hover focus"
placement="bottom"
>
- <template v-slot:title
+ <template #title
><b>{{ resource.displayName }}</b></template
>
<div v-if="resource.displayName">
@@ -53,10 +53,7 @@
><b>{{ $t("page.resource.disciplines") }}: </b>
</span>
<ul>
- <li
- v-for="discipline in resource.disciplines"
- v-bind:key="discipline.id"
- >
+ <li v-for="discipline in resource.disciplines" :key="discipline.id">
<div v-if="$i18n.locale === 'de'">
{{ discipline.displayNameDe }}
</div>
@@ -71,7 +68,7 @@
><b>{{ $t("page.resource.keywords") }}: </b> </span
><br />
<ul>
- <li v-for="keyword in resource.keywords" v-bind:key="keyword">
+ <li v-for="keyword in resource.keywords" :key="keyword">
{{ keyword }}
</li>
</ul>
@@ -96,18 +93,18 @@
</div>
</b-popover>
<b-button
- @click="edit"
+ v-if="canEditResource"
:title="$t('page.resource.edit')"
class="btn btn-sm"
- v-if="canEditResource"
+ @click="edit"
>
<b-icon icon="pencil-fill" :title="$t('page.resource.edit')" />
</b-button>
<b-button
- @click="upload"
:title="$t('page.resource.upload')"
class="btn btn-sm"
:disabled="isUploading || readOnly || (resource && resource.archived)"
+ @click="upload"
>
<b-icon icon="plus" :title="$t('page.resource.upload')" />
</b-button>
@@ -142,8 +139,8 @@
<div class="col-sm-2 searchColumn">
<b-input-group>
<b-form-input
- type="search"
id="filterInput"
+ type="search"
:placeholder="$t('page.resource.typeToSearch')"
:value="value"
@input="$emit('input', $event)"
@@ -175,6 +172,14 @@ import type { ResourceTypeInformation } from "@coscine/api-client/dist/types/Cos
import type { VisitedResourceObject } from "../../types";
export default defineComponent({
+ name: "Header",
+ props: {
+ isUploading: Boolean,
+ value: {
+ default: "",
+ type: String,
+ },
+ },
setup() {
const mainStore = useMainStore();
const resourceStore = useResourceStore();
@@ -235,12 +240,6 @@ export default defineComponent({
return undefined;
},
},
-
- name: "Header",
- props: {
- isUploading: Boolean,
- value: String,
- },
methods: {
edit() {
if (
diff --git a/src/modules/resource/components/resource-page/MetadataManager.vue b/src/modules/resource/components/resource-page/MetadataManager.vue
index c9a221543194bf9769f91f6db06043638aec460a..f456b4a222206cf0708e7fc2c2e379095c292974 100644
--- a/src/modules/resource/components/resource-page/MetadataManager.vue
+++ b/src/modules/resource/components/resource-page/MetadataManager.vue
@@ -2,23 +2,23 @@
<b-container id="detail-view">
<MetadataManagerHeader
v-if="resource"
- :editableDataUrl="editableDataUrl"
- :isUploading="isUploading"
- :readOnly="readOnly"
+ :editable-data-url="editableDataUrl"
+ :is-uploading="isUploading"
+ :read-only="readOnly"
:resource="resource"
- :showDetail="showDetail"
- :shownFiles="shownFiles"
+ :show-detail="showDetail"
+ :shown-files="shownFiles"
@download="download"
@selectFiles="selectFiles"
@showModalDeleteFolderContents="showModalDeleteFolderContents"
/>
<MetadataManagerTable
- :currentFileId="currentFileId"
- :currentFolderContent="currentFolderContent"
- :editableDataUrl="editableDataUrl"
- :editableKey="editableKey"
- :showDetail="showDetail"
- :shownFiles="shownFiles"
+ :current-file-id="currentFileId"
+ :current-folder-content="currentFolderContent"
+ :editable-data-url="editableDataUrl"
+ :editable-key="editableKey"
+ :show-detail="showDetail"
+ :shown-files="shownFiles"
@changeMetadata="changeMetadata"
@loadAllFilesTab="loadAllFilesTab"
@removeElement="removeElement"
@@ -32,8 +32,8 @@
currentFileId >= 0 &&
currentFileId < fileListEdit.length
"
- :currentFileId="currentFileId"
- :fileListEdit="fileListEdit"
+ :current-file-id="currentFileId"
+ :file-list-edit="fileListEdit"
/>
<MetadataManagerSpecialProperties
v-if="
@@ -42,10 +42,10 @@
resource &&
currentFolderContent
"
- :currentFolderContent="currentFolderContent"
- :editableDataUrl="editableDataUrl"
- :editableKey="editableKey"
- :readOnly="readOnly"
+ :current-folder-content="currentFolderContent"
+ :editable-data-url="editableDataUrl"
+ :editable-key="editableKey"
+ :read-only="readOnly"
:resource="resource"
/>
<span
@@ -53,44 +53,44 @@
class="generatedFormSpan"
>
<FormGenerator
- class="generatedForm"
:key="formGeneratorKey"
- :applicationProfileId="resource.applicationProfile"
- :fixedValues="resource.fixedValues"
- :formData="currentMetadata"
- :SHACLDefinition="applicationProfileString"
- :disabledMode="resource.archived"
- :classReceiver="receiveClass"
- :userReceiver="async () => user"
- mimeType="application/ld+json"
+ class="generatedForm"
+ :application-profile-id="resource.applicationProfile"
+ :fixed-values="resource.fixedValues"
+ :form-data="currentMetadata"
+ :s-h-a-c-l-definition="applicationProfileString"
+ :disabled-mode="resource.archived"
+ :class-receiver="receiveClass"
+ :user-receiver="async () => user"
+ mime-type="application/ld+json"
@isValid="isValid"
/>
</span>
</b-col>
</b-row>
<MetadataManagerFooter
- :isUploading="isUploading"
- :numberOfCurrentlyProcessedFiles="numberOfCurrentlyProcessedFiles"
- :progressStatus="progressStatus"
- :saveButtonDisabled="saveButtonDisabled"
- :showDetail="showDetail"
- :totalNumberOfCurrentlyProcessedFiles="
+ :is-uploading="isUploading"
+ :number-of-currently-processed-files="numberOfCurrentlyProcessedFiles"
+ :progress-status="progressStatus"
+ :save-button-disabled="saveButtonDisabled"
+ :show-detail="showDetail"
+ :total-number-of-currently-processed-files="
totalNumberOfCurrentlyProcessedFiles
"
@update="update"
@uploadPreparation="uploadPreparation"
/>
- <ValidationPopover :valid="valid" :validationResults="validationResults" />
+ <ValidationPopover :valid="valid" :validation-results="validationResults" />
<SaveDuplicateFilesModal
:visible="saveDuplicateFilesModalVisible"
- :uploadFileListReplaceFiles="uploadFileListReplaceFiles"
+ :upload-file-list-replace-files="uploadFileListReplaceFiles"
@close="hideModalSaveDuplicateFiles"
@skip="skipModalSaveDuplicateFiles"
@ok="overwriteModalSaveDuplicateFiles"
/>
<DeleteFolderContentsModal
:visible="deleteFolderContentsModalVisible"
- :shownFiles="shownFiles"
+ :shown-files="shownFiles"
@close="hideModalDeleteFolderContents"
@ok="deleteModalDeleteFolderContents"
/>
@@ -98,7 +98,7 @@
</template>
<script lang="ts">
-import { defineComponent, PropType, VNode } from "vue-demi";
+import { defineComponent, PropType } from "vue-demi";
// import the store for current module
import useResourceStore from "../../store";
@@ -141,16 +141,9 @@ import type ValidationReport from "rdf-validate-shacl/src/validation-report";
import { v4 as uuidv4 } from "uuid";
import type { ValidationResult } from "rdf-validate-shacl/src/validation-report";
import type { ApplicationProfile, Metadata } from "../../types";
+import useNotificationStore from "@/store/notification";
export default defineComponent({
- setup() {
- const mainStore = useMainStore();
- const resourceStore = useResourceStore();
- const projectStore = useProjectStore();
- const userStore = useUserStore();
-
- return { mainStore, resourceStore, projectStore, userStore };
- },
components: {
MetadataManagerHeader,
MetadataManagerTable,
@@ -162,6 +155,64 @@ export default defineComponent({
SaveDuplicateFilesModal,
ValidationPopover,
},
+ props: {
+ showDetail: Boolean,
+ isUploading: Boolean,
+ fileListEdit: {
+ default() {
+ return [];
+ },
+ type: Array as PropType<FolderContent[]>,
+ },
+ fileListUpload: {
+ default() {
+ return [];
+ },
+ type: Array as PropType<FileInformation[]>,
+ },
+ folderContents: {
+ default() {
+ return [];
+ },
+ type: Array as PropType<FolderContent[]>,
+ },
+ currentFolder: {
+ default: "/",
+ type: String,
+ },
+ },
+ setup() {
+ const mainStore = useMainStore();
+ const resourceStore = useResourceStore();
+ const projectStore = useProjectStore();
+ const userStore = useUserStore();
+ const notificationStore = useNotificationStore();
+
+ return {
+ mainStore,
+ resourceStore,
+ projectStore,
+ userStore,
+ notificationStore,
+ };
+ },
+ data() {
+ return {
+ numberOfCurrentlyProcessedFiles: 0,
+ totalNumberOfCurrentlyProcessedFiles: 0,
+ uploadDuplicates: true,
+ currentFileId: -1,
+ uploadFileListNewFiles: [] as FileInformation[],
+ uploadFileListReplaceFiles: [] as FileInformation[],
+ fileListError: [] as FolderContent[],
+ progressStatus: 0,
+ valid: false,
+ validationResults: [] as ValidationResult[],
+
+ deleteFolderContentsModalVisible: false,
+ saveDuplicateFilesModalVisible: false,
+ };
+ },
computed: {
applicationProfile(): ApplicationProfile | null {
return this.resourceStore.currentFullApplicationProfile;
@@ -265,52 +316,6 @@ export default defineComponent({
return shownFiles;
},
},
- data() {
- return {
- numberOfCurrentlyProcessedFiles: 0,
- totalNumberOfCurrentlyProcessedFiles: 0,
- uploadDuplicates: true,
- currentFileId: -1,
- uploadFileListNewFiles: [] as FileInformation[],
- uploadFileListReplaceFiles: [] as FileInformation[],
- fileListError: [] as FolderContent[],
- progressStatus: 0,
- valid: false,
- validationResults: [] as ValidationResult[],
-
- deleteFolderContentsModalVisible: false,
- saveDuplicateFilesModalVisible: false,
- };
- },
- props: {
- showDetail: Boolean,
- isUploading: Boolean,
- fileListEdit: {
- default() {
- return [];
- },
- type: Array as PropType<FolderContent[]>,
- },
- fileListUpload: {
- default() {
- return [];
- },
- type: Array as PropType<FileInformation[]>,
- },
- folderContents: {
- default() {
- return [];
- },
- type: Array as PropType<FolderContent[]>,
- },
- currentFolder: {
- default: "/",
- type: String,
- },
- },
- created() {
- this.getOptions();
- },
watch: {
fileListUpload() {
this.getOptions();
@@ -319,6 +324,9 @@ export default defineComponent({
this.getOptions();
},
},
+ created() {
+ this.getOptions();
+ },
methods: {
async receiveClass(className: string): Promise<BilingualLabels> {
return await this.resourceStore.getClass(className);
@@ -396,7 +404,7 @@ export default defineComponent({
const h = this.$createElement;
const content = [];
content.push(
- "" + this.$t("page.resource.toastSavingFailedBodyTop")
+ this.$t("page.resource.toastSavingFailedBodyTop").toString()
);
content.push(h("br"));
@@ -406,23 +414,25 @@ export default defineComponent({
}
content.push(
- "" + this.$t("page.resource.toastSavingFailedBodyBottom")
+ this.$t("page.resource.toastSavingFailedBodyBottom").toString()
);
const vNodesMsg = h("span", {}, content);
- this.makeToast(
- "" + this.$t("page.resource.toastSavingFailedTitle"),
- vNodesMsg,
- true
- );
+ this.notificationStore.postNotification({
+ title: this.$t("page.resource.toastSavingFailedTitle").toString(),
+ body: vNodesMsg,
+ variant: "warning",
+ });
}
if (numberOfSuccessfulUploadedFiles > 0) {
- this.makeToast(
- "" + this.$t("page.resource.toastSavingSuccessfulTitle"),
- "" +
- this.$t("page.resource.toastSavingSuccessfulBody") +
- numberOfSuccessfulUploadedFiles
- );
+ this.notificationStore.postNotification({
+ title: this.$t(
+ "page.resource.toastSavingSuccessfulTitle"
+ ).toString(),
+ body: this.$t("page.resource.toastSavingSuccessfulBody", {
+ number: numberOfSuccessfulUploadedFiles,
+ }).toString(),
+ });
}
}
}
@@ -666,26 +676,6 @@ export default defineComponent({
cleanup() {
this.$emit("emptyFileLists");
},
- makeToast(
- givenTitle = "Title",
- text: string | VNode | VNode[] = "Message",
- error = false
- ) {
- if (error) {
- this.$bvToast.toast(text, {
- title: givenTitle,
- noAutoHide: true,
- variant: "warning",
- toaster: "b-toaster-bottom-right",
- });
- } else {
- this.$bvToast.toast(text, {
- title: givenTitle,
- toaster: "b-toaster-bottom-right",
- noCloseButton: true,
- });
- }
- },
showModalDeleteFolderContents() {
this.deleteFolderContentsModalVisible = true;
},
diff --git a/src/modules/resource/components/resource-page/metadata/MetadataManagerFooter.vue b/src/modules/resource/components/resource-page/metadata/MetadataManagerFooter.vue
index e3c3e7f5e2a11841e13c23e3212ae3d1ff36d1f9..67de1e7edf4b7a75783f374bdb20f6fa43aacfda 100644
--- a/src/modules/resource/components/resource-page/metadata/MetadataManagerFooter.vue
+++ b/src/modules/resource/components/resource-page/metadata/MetadataManagerFooter.vue
@@ -1,6 +1,6 @@
<template>
<b-row id="metadataManagerButtonRowBottom">
- <span class="processStatement" v-if="isUploading"
+ <span v-if="isUploading" class="processStatement"
>{{
totalNumberOfCurrentlyProcessedFiles - numberOfCurrentlyProcessedFiles
}}/{{ totalNumberOfCurrentlyProcessedFiles }}</span
@@ -24,6 +24,7 @@
id="metadataManagerButtonRowBottomSave"
class="metadataManagerButtonRowBottomSave"
variant="primary"
+ :disabled="saveButtonDisabled"
@click="
isUploading
? undefined
@@ -31,8 +32,7 @@
? $emit('uploadPreparation')
: $emit('update')
"
- :disabled="saveButtonDisabled"
- ><b-spinner label="Spinning" v-show="isUploading"></b-spinner
+ ><b-spinner v-show="isUploading" label="Spinning"></b-spinner
>{{
isUploading
? $t("page.resource.metadataManagerBtnSaving")
diff --git a/src/modules/resource/components/resource-page/metadata/MetadataManagerHeader.vue b/src/modules/resource/components/resource-page/metadata/MetadataManagerHeader.vue
index 7d13b717768a380e040ce9a8638ebe13092c3a46..8f4ce1c2bd804868f544f826adbcbff9ddc5cce9 100644
--- a/src/modules/resource/components/resource-page/metadata/MetadataManagerHeader.vue
+++ b/src/modules/resource/components/resource-page/metadata/MetadataManagerHeader.vue
@@ -4,19 +4,19 @@
<b-button
id="buttonSelectFiles"
variant="secondary"
- @click="$emit('selectFiles')"
:placeholder="$t('page.resource.metadataManagerBtnSelectFiles')"
:disabled="isUploading || readOnly || (resource && resource.archived)"
autofocus
+ @click="$emit('selectFiles')"
>{{ $t("page.resource.metadataManagerBtnSelectFiles") }}
</b-button>
</b-col>
<b-col>
<b-input-group id="metadataManagerDropDownMenu" class="float-right">
<b-dropdown
+ id="addColumnDropDown"
size="sm"
right
- id="addColumnDropDown"
:disabled="
!showDetail ||
readOnly ||
@@ -32,8 +32,8 @@
</b-dropdown>
<b-button
v-if="!editableDataUrl"
- @click="$emit('download')"
:disabled="!showDetail || shownFiles.length === 0"
+ @click="$emit('download')"
>{{ $t("page.resource.metadataManagerBtnDownload") }}</b-button
>
</b-input-group>
diff --git a/src/modules/resource/components/resource-page/metadata/MetadataManagerSpecialProperties.vue b/src/modules/resource/components/resource-page/metadata/MetadataManagerSpecialProperties.vue
index 680b65b57ee87720f93b8be8591099558527b14a..11c11da9a9bafbe83d861b44f75c5273a3c02c6f 100644
--- a/src/modules/resource/components/resource-page/metadata/MetadataManagerSpecialProperties.vue
+++ b/src/modules/resource/components/resource-page/metadata/MetadataManagerSpecialProperties.vue
@@ -3,18 +3,18 @@
<span v-if="editableDataUrl">
<coscine-form-group
:mandatory="true"
- labelFor="dataUrl"
+ label-for="dataUrl"
:label="$t('page.resource.dataUrl')"
>
<b-input-group>
<b-form-input
id="dataUrl"
- @input="updateDataUrl(currentFolderContent, $event)"
:value="currentFolderContent.dataUrl"
:placeholder="$t('page.resource.dataUrl')"
:disabled="resource.archived || readOnly"
+ @input="updateDataUrl(currentFolderContent, $event)"
/>
- <b-button id="URLBtn" @click="openURL" :disabled="!isValidUrl"
+ <b-button id="URLBtn" :disabled="!isValidUrl" @click="openURL"
><b-icon-link-45deg />
</b-button>
</b-input-group>
@@ -23,14 +23,14 @@
<span v-if="editableKey">
<coscine-form-group
:mandatory="true"
- labelFor="metadataKey"
+ label-for="metadataKey"
:label="$t('page.resource.metadataKey')"
>
<b-form-input
- @change="updateAbsolutePath(currentFolderContent, $event)"
:value="currentFolderContent.name"
:placeholder="$t('page.resource.metadataKey')"
:disabled="resource.archived || readOnly"
+ @change="updateAbsolutePath(currentFolderContent, $event)"
/>
</coscine-form-group>
</span>
@@ -47,6 +47,28 @@ import type {
import type { ResourceObject } from "@coscine/api-client/dist/types/Coscine.Api.Resources";
export default defineComponent({
+ props: {
+ currentFolderContent: {
+ required: true,
+ type: [Object] as PropType<FolderContent>,
+ },
+ editableDataUrl: {
+ required: true,
+ type: Boolean,
+ },
+ editableKey: {
+ required: true,
+ type: Boolean,
+ },
+ readOnly: {
+ required: true,
+ type: Boolean,
+ },
+ resource: {
+ required: true,
+ type: [Object] as PropType<ResourceObject>,
+ },
+ },
computed: {
isValidUrl(): boolean {
if (
@@ -74,28 +96,6 @@ export default defineComponent({
return validUrl.test(url.toString());
},
},
- props: {
- currentFolderContent: {
- required: true,
- type: [Object] as PropType<FolderContent>,
- },
- editableDataUrl: {
- required: true,
- type: Boolean,
- },
- editableKey: {
- required: true,
- type: Boolean,
- },
- readOnly: {
- required: true,
- type: Boolean,
- },
- resource: {
- required: true,
- type: [Object] as PropType<ResourceObject>,
- },
- },
methods: {
openURL() {
if (
diff --git a/src/modules/resource/components/resource-page/metadata/MetadataManagerTable.vue b/src/modules/resource/components/resource-page/metadata/MetadataManagerTable.vue
index abc8293c7b6fc0e1e1c2018b43b0d23d310116b9..557689da3d75b262a4e68ad5268482e6725d3eb1 100644
--- a/src/modules/resource/components/resource-page/metadata/MetadataManagerTable.vue
+++ b/src/modules/resource/components/resource-page/metadata/MetadataManagerTable.vue
@@ -1,41 +1,41 @@
<template>
<div>
<b-row
- id="metadataManagerShownFilesTable"
v-show="showDetail || !editableDataUrl || !editableKey"
+ id="metadataManagerShownFilesTable"
>
<b-col>
<b-input-group v-for="(item, index) in shownFiles" :key="index">
<b-button
- @click="$emit('changeMetadata', index)"
variant="outline-secondary"
:pressed="currentFileId === index"
+ @click="$emit('changeMetadata', index)"
>{{ index + 1 }}</b-button
>
<b-button
- @click="$emit('changeMetadata', index)"
class="metadataManagerFileListFileName"
:pressed="false"
variant="outline-secondary"
+ @click="$emit('changeMetadata', index)"
>{{ item.name
}}<b-spinner v-show="item.uploading" label="Spinning"></b-spinner
></b-button>
<b-button
class="deleteFolderContentFromList"
- @click="$emit('removeElement', index)"
variant="outline-secondary"
:disabled="item.uploading"
+ @click="$emit('removeElement', index)"
>X</b-button
>
</b-input-group>
</b-col>
</b-row>
- <b-row id="metadataManagerQuickAccess" v-show="shownFiles.length > 1">
+ <b-row v-show="shownFiles.length > 1" id="metadataManagerQuickAccess">
<b-col>
<b-button
- @click="$emit('loadAllFilesTab')"
:pressed="currentFileId === -1"
variant="outline-secondary"
+ @click="$emit('loadAllFilesTab')"
>{{ $t("page.resource.allFiles") }}</b-button
>
<span v-if="shownFiles.length > 1 && shownFiles.length <= 10">
@@ -43,9 +43,9 @@
v-for="(item, index) in shownFiles"
:key="index"
:pressed="currentFileId === index"
- @click="$emit('changeMetadata', index)"
variant="outline-secondary"
class="metadataTabButton"
+ @click="$emit('changeMetadata', index)"
>{{ index + 1 }}</b-button
>
</span>
@@ -54,12 +54,12 @@
<b-row id="metadataManagerFileName" class="text-center">
<b-col>
<span
- class="showSpaces"
v-if="
currentFileId >= 0 &&
currentFileId < shownFiles.length &&
currentFolderContent
"
+ class="showSpaces"
>
{{ currentFolderContent.name }}
</span>
@@ -83,6 +83,7 @@ export default defineComponent({
type: Number,
},
currentFolderContent: {
+ default: undefined,
type: [Object, undefined] as PropType<FolderContent | undefined>,
},
editableDataUrl: {
diff --git a/src/modules/resource/components/resource-page/modals/DeleteFolderContentsModal.vue b/src/modules/resource/components/resource-page/modals/DeleteFolderContentsModal.vue
index 066826c37f0d4bafa49e33086eb05e195c97273d..b2276a0dda715d128f882725a1078d7f262c74eb 100644
--- a/src/modules/resource/components/resource-page/modals/DeleteFolderContentsModal.vue
+++ b/src/modules/resource/components/resource-page/modals/DeleteFolderContentsModal.vue
@@ -24,8 +24,8 @@
<br />
<b-button
class="float-left"
- @click="$emit('close', $event.target.value)"
autofocus
+ @click="$emit('close', $event.target.value)"
>{{ $t("buttons.cancel") }}</b-button
>
<b-button
diff --git a/src/modules/resource/components/resource-page/modals/SaveDuplicateFilesModal.vue b/src/modules/resource/components/resource-page/modals/SaveDuplicateFilesModal.vue
index c8e42d4612089fe16aa4b10ca97e7ead38b95185..ddeb6207bf34eb404fdef4ab1231a28f2c64c4e8 100644
--- a/src/modules/resource/components/resource-page/modals/SaveDuplicateFilesModal.vue
+++ b/src/modules/resource/components/resource-page/modals/SaveDuplicateFilesModal.vue
@@ -25,8 +25,8 @@
<div>
<b-button
class="float-left"
- @click="$emit('close', $event.target.value)"
autofocus
+ @click="$emit('close', $event.target.value)"
>{{ $t("page.resource.modalSaveDuplicateFilesBtnCancel") }}</b-button
>
<b-button
diff --git a/src/modules/resource/components/resource-page/popovers/ValidationPopover.vue b/src/modules/resource/components/resource-page/popovers/ValidationPopover.vue
index 5a3c5e4308a20bd144f1edff823be47e29808eac..cc7b813d021eefc77dbc01845f3cdf629610ccad 100644
--- a/src/modules/resource/components/resource-page/popovers/ValidationPopover.vue
+++ b/src/modules/resource/components/resource-page/popovers/ValidationPopover.vue
@@ -7,7 +7,7 @@
triggers="hover focus"
placement="top"
>
- <template v-slot:title
+ <template #title
><b>{{ $t("page.resource.validationErrors") }}</b></template
>
<div>
diff --git a/src/modules/resource/components/settings/Actions.vue b/src/modules/resource/components/settings/Actions.vue
index ff0aeed9fd8044668ab4e5415f8441d2a8880772..b725b2b36a66f117ac638d49cd4671f6259a627e 100644
--- a/src/modules/resource/components/settings/Actions.vue
+++ b/src/modules/resource/components/settings/Actions.vue
@@ -2,26 +2,26 @@
<div>
<!-- Archive -->
<coscine-form-group
- labelFor="Archive"
+ label-for="Archive"
:label="$t('page.settings.actions.resourceArchiveLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
class="d-flex align-items-center"
>
<b-form-checkbox
id="Archive"
v-model="resourceForm.archived"
:disabled="!(isOwner || isResourceCreator) || !resourceForm"
- @click.native.prevent="isArchiveModalVisible = true"
switch
size="lg"
+ @click.native.prevent="isArchiveModalVisible = true"
/>
</coscine-form-group>
<!-- Delete Resource -->
<coscine-form-group
- labelFor="DeleteResource"
+ label-for="DeleteResource"
:label="$t('page.settings.actions.resourceDeleteLabel')"
- :isLoading="isLoading"
+ :is-loading="isLoading"
class="d-flex align-items-center"
>
<!-- Delete Button -->
@@ -47,7 +47,7 @@
<!-- Delete Resource Modal -->
<DeleteResourceModal
:open="isDeleteModalVisible"
- :displayName="resourceForm.displayName"
+ :display-name="resourceForm.displayName"
@close="isDeleteModalVisible = false"
@clickDelete="clickDelete"
/>
@@ -64,18 +64,10 @@ import type { ResourceObject } from "@coscine/api-client/dist/types/Coscine.Api.
import type { UserObject } from "@coscine/api-client/dist/types/Coscine.Api.User";
export default defineComponent({
- setup() {
- const projectStore = useProjectStore();
- const userStore = useUserStore();
-
- return { projectStore, userStore };
- },
-
components: {
ArchiveResourceModal,
DeleteResourceModal,
},
-
props: {
value: {
type: Object as PropType<ResourceObject>,
@@ -86,6 +78,17 @@ export default defineComponent({
type: Boolean,
},
},
+ emits: {
+ toggleArchive: null,
+ clickDelete: null,
+ input: (_: ResourceObject) => null,
+ },
+ setup() {
+ const projectStore = useProjectStore();
+ const userStore = useUserStore();
+
+ return { projectStore, userStore };
+ },
data() {
return {
@@ -131,12 +134,6 @@ export default defineComponent({
this.isDeleteModalVisible = false;
},
},
-
- emits: {
- toggleArchive: null,
- clickDelete: null,
- input: (_: ResourceObject) => null,
- },
});
</script>
diff --git a/src/modules/resource/components/settings/Configuration.vue b/src/modules/resource/components/settings/Configuration.vue
index 35a7866020c55ae83dbc2980139178210ffe3077..147ea2cd6301e8e9597df23e9631bcd20bade285 100644
--- a/src/modules/resource/components/settings/Configuration.vue
+++ b/src/modules/resource/components/settings/Configuration.vue
@@ -12,7 +12,7 @@
<!-- Field Definition -->
<coscine-form-group
v-if="resourceOption !== 'Id'"
- :labelFor="resourceOption"
+ :label-for="resourceOption"
:label="
$t(
'page.settings.configuration.resource' + resourceOption + 'Label'
@@ -74,14 +74,13 @@ import type { ResourceObject } from "@coscine/api-client/dist/types/Coscine.Api.
import type { ResourceTypeOption } from "../../types";
export default defineComponent({
+ components: {},
setup() {
const resourceStore = useResourceStore();
return { resourceStore };
},
- components: {},
-
data() {
return {
readonly: true,
diff --git a/src/modules/resource/components/settings/Metadata.vue b/src/modules/resource/components/settings/Metadata.vue
index 87a7d3e0ab2b403f963c1b9eff9d50cd40d9d6ab..a279fe238917192c5ed49d136b8e84601102457a 100644
--- a/src/modules/resource/components/settings/Metadata.vue
+++ b/src/modules/resource/components/settings/Metadata.vue
@@ -7,14 +7,14 @@
<FormGenerator
v-else
:key="resourceForm.applicationProfile"
- :disabledMode="!isOwner || resource.archived"
- :fixedValueMode="true"
- :fixedValues="resourceForm.fixedValues"
- :applicationProfileId="resourceForm.applicationProfile"
- :SHACLDefinition="applicationProfileString"
- :classReceiver="receiveClass"
- :userReceiver="async () => user"
- mimeType="application/ld+json"
+ :disabled-mode="!isOwner || resource.archived"
+ :fixed-value-mode="true"
+ :fixed-values="resourceForm.fixedValues"
+ :application-profile-id="resourceForm.applicationProfile"
+ :s-h-a-c-l-definition="applicationProfileString"
+ :class-receiver="receiveClass"
+ :user-receiver="async () => user"
+ mime-type="application/ld+json"
/>
</div>
</template>
@@ -31,14 +31,6 @@ import type { BilingualLabels } from "@coscine/api-client/dist/types/Coscine.Api
import type { UserObject } from "@coscine/api-client/dist/types/Coscine.Api.User";
export default defineComponent({
- setup() {
- const resourceStore = useResourceStore();
- const projectStore = useProjectStore();
- const userStore = useUserStore();
-
- return { resourceStore, projectStore, userStore };
- },
-
props: {
value: {
type: Object as PropType<ResourceObject>,
@@ -54,6 +46,18 @@ export default defineComponent({
},
},
+ emits: {
+ input: (_: ResourceObject) => null,
+ },
+
+ setup() {
+ const resourceStore = useResourceStore();
+ const projectStore = useProjectStore();
+ const userStore = useUserStore();
+
+ return { resourceStore, projectStore, userStore };
+ },
+
data() {
return {
resourceForm: this.value,
@@ -86,10 +90,6 @@ export default defineComponent({
return await this.resourceStore.getClass(className);
},
},
-
- emits: {
- input: (_: ResourceObject) => null,
- },
});
</script>
diff --git a/src/modules/resource/components/settings/Overview.vue b/src/modules/resource/components/settings/Overview.vue
index d01f1079a4cf884edae201a373ef46466969e2af..65d6b658c8247954a57c40732f61c8fe16de09dc 100644
--- a/src/modules/resource/components/settings/Overview.vue
+++ b/src/modules/resource/components/settings/Overview.vue
@@ -5,9 +5,9 @@
<!-- Project -->
<b-col>
<coscine-form-group
- labelFor="ProjectName"
+ label-for="ProjectName"
:label="$t('form.project.projectNameLabel')"
- :isLoading="!project"
+ :is-loading="!project"
type="input"
>
<b-form-input
@@ -23,9 +23,9 @@
<!-- Resource Dropdown -->
<b-col>
<coscine-form-group
- labelFor="Resource"
+ label-for="Resource"
:label="$t('page.settings.overview.resourceLabel')"
- :isLoading="!resource"
+ :is-loading="!resource"
>
<b-form-select
v-if="resource"
@@ -51,9 +51,9 @@
<!-- Display Name -->
<b-col>
<coscine-form-group
- labelFor="DisplayName"
+ label-for="DisplayName"
:label="$t('form.resource.resourceNameLabel')"
- :isLoading="!resource"
+ :is-loading="!resource"
>
<b-form-input
v-if="resource"
@@ -68,9 +68,9 @@
<!-- Persistent ID -->
<b-col>
<coscine-form-group
- labelFor="PersistentId"
+ label-for="PersistentId"
:label="$t('page.settings.overview.persistentIdLabel')"
- :isLoading="!resource"
+ :is-loading="!resource"
>
<b-button-group class="w-100">
<!-- Text Field -->
@@ -110,9 +110,9 @@
<!-- Resource Type -->
<b-col>
<coscine-form-group
- labelFor="ResourceType"
+ label-for="ResourceType"
:label="$t('page.settings.overview.resourceTypeLabel')"
- :isLoading="!resource"
+ :is-loading="!resource"
type="input"
>
<b-form-input
@@ -131,9 +131,11 @@
<b-col>
<coscine-form-group
v-if="resource && resource.resourceTypeOption.Size"
- labelFor="Quota"
+ label-for="Quota"
:label="$t('page.settings.overview.quotaLabel')"
- :isLoading="!(resource && quotaCurrent >= 0 && quotaCurrent !== null)"
+ :is-loading="
+ !(resource && quotaCurrent >= 0 && quotaCurrent !== null)
+ "
>
<b-button-group class="progressContainer h-100 w-100">
<!-- Progress Bar -->
@@ -175,7 +177,7 @@
</template>
<script lang="ts">
-import { defineComponent, PropType } from "vue-demi";
+import { defineComponent } from "vue-demi";
// import the store for current module
import useResourceStore from "../../store";
import useProjectStore from "@/modules/project/store";
@@ -185,6 +187,7 @@ import type { ProjectObject } from "@coscine/api-client/dist/types/Coscine.Api.P
import type { RawLocation } from "vue-router";
export default defineComponent({
+ components: {},
setup() {
const resourceStore = useResourceStore();
const projectStore = useProjectStore();
@@ -192,15 +195,6 @@ export default defineComponent({
return { resourceStore, projectStore };
},
- components: {},
-
- props: {
- value: {
- type: Object as PropType<ResourceObject>,
- required: false,
- },
- },
-
data() {
return {
readonly: true,
@@ -209,11 +203,6 @@ export default defineComponent({
};
},
- created() {
- // Fill the resource form
- this.onResourceLoaded();
- },
-
computed: {
project(): ProjectObject | null {
return this.projectStore.currentProject;
@@ -245,6 +234,11 @@ export default defineComponent({
},
},
+ created() {
+ // Fill the resource form
+ this.onResourceLoaded();
+ },
+
methods: {
onResourceLoaded() {
if (this.resource) {
diff --git a/src/modules/resource/components/settings/modals/ArchiveResourceModal.vue b/src/modules/resource/components/settings/modals/ArchiveResourceModal.vue
index fcbe449b46fe7f03f1fd7f5fb4f12e2a73a3955f..3c50d7714f4b33df5154064f20fb64bf7f4a5cf5 100644
--- a/src/modules/resource/components/settings/modals/ArchiveResourceModal.vue
+++ b/src/modules/resource/components/settings/modals/ArchiveResourceModal.vue
@@ -1,6 +1,6 @@
<template>
<!-- Archive Resource Modal -->
- <b-modal v-model="isOpen" @close="close" @hidden="hidden" :hide-footer="true">
+ <b-modal v-model="isOpen" :hide-footer="true" @close="close" @hidden="hidden">
<!-- Title -->
<template #modal-title>
<span class="h6">
@@ -17,14 +17,12 @@
<template #br><br /></template>
</i18n>
- <template>
- <!-- Modal Cancel Button -->
- <b-button @click="close">{{ $t("buttons.cancel") }}</b-button>
- <!-- Modal Delete Button -->
- <b-button @click="toggleArchive" variant="primary" class="float-right">
- {{ $t(`buttons.${action}`) }}
- </b-button>
- </template>
+ <!-- Modal Cancel Button -->
+ <b-button @click="close">{{ $t("buttons.cancel") }}</b-button>
+ <!-- Modal Delete Button -->
+ <b-button variant="primary" class="float-right" @click="toggleArchive">
+ {{ $t(`buttons.${action}`) }}
+ </b-button>
</b-modal>
</template>
@@ -44,6 +42,11 @@ export default defineComponent({
},
},
+ emits: {
+ toggleArchive: null,
+ close: null,
+ },
+
data() {
return {
isOpen: false,
@@ -76,11 +79,6 @@ export default defineComponent({
this.$emit("toggleArchive");
},
},
-
- emits: {
- toggleArchive: null,
- close: null,
- },
});
</script>
diff --git a/src/modules/resource/components/settings/modals/DeleteResourceModal.vue b/src/modules/resource/components/settings/modals/DeleteResourceModal.vue
index 4da11940a68ad0d677419f97e661f2c292bcf902..27f82f8411121b7faad1e747e61ecab11972350d 100644
--- a/src/modules/resource/components/settings/modals/DeleteResourceModal.vue
+++ b/src/modules/resource/components/settings/modals/DeleteResourceModal.vue
@@ -1,6 +1,6 @@
<template>
<!-- Delete Resource Modal -->
- <b-modal v-model="isOpen" @close="close" @hidden="hidden" :hide-footer="true">
+ <b-modal v-model="isOpen" :hide-footer="true" @close="close" @hidden="hidden">
<!-- Title -->
<template #modal-title>
<span class="h6"> {{ $t(titleKey) }} </span>
@@ -29,18 +29,16 @@
</div>
</b-form-group>
- <template>
- <!-- Modal Cancel Button -->
- <b-button @click="close">{{ $t("buttons.cancel") }}</b-button>
- <!-- Modal Delete Button -->
- <b-button
- @click="clickDelete"
- variant="danger"
- class="float-right"
- :disabled="!nameValid"
- >{{ $t("buttons.delete") }}</b-button
- >
- </template>
+ <!-- Modal Cancel Button -->
+ <b-button @click="close">{{ $t("buttons.cancel") }}</b-button>
+ <!-- Modal Delete Button -->
+ <b-button
+ variant="danger"
+ class="float-right"
+ :disabled="!nameValid"
+ @click="clickDelete"
+ >{{ $t("buttons.delete") }}</b-button
+ >
</b-modal>
</template>
@@ -68,6 +66,11 @@ export default defineComponent({
},
},
+ emits: {
+ clickDelete: null,
+ close: null,
+ },
+
data() {
return {
isOpen: false,
@@ -104,11 +107,6 @@ export default defineComponent({
}
},
},
-
- emits: {
- clickDelete: null,
- close: null,
- },
});
</script>
diff --git a/src/modules/resource/i18n/de.ts b/src/modules/resource/i18n/de.ts
index 83cbe6ddd81ba0b82c2960994df8407d982edab4..41b6b02b58a0a25664c85b7f3f072c3e8340b954 100644
--- a/src/modules/resource/i18n/de.ts
+++ b/src/modules/resource/i18n/de.ts
@@ -152,7 +152,8 @@ export default {
modalLeavingPageBtnLeave: "SEITE VERLASSEN",
toastSavingSuccessfulTitle: "Speichern erfolgreich",
- toastSavingSuccessfulBody: "Zahl der erfolgreich gespeicherten Dateien: ",
+ toastSavingSuccessfulBody:
+ "Zahl der erfolgreich gespeicherten Dateien: {number}",
toastSavingFailedTitle: "Speichern fehlgeschlagen",
toastSavingFailedBodyTop:
@@ -319,7 +320,7 @@ export default {
toastSavingSuccessfulTitle: "Speichern erfolgreich",
toastSavingSuccessfulBody:
- "Zahl der erfolgreich gespeicherten Einträge: ",
+ "Zahl der erfolgreich gespeicherten Einträge: {number}",
toastSavingFailedTitle: "Speichern fehlgeschlagen",
toastSavingFailedBodyTop:
diff --git a/src/modules/resource/i18n/en.ts b/src/modules/resource/i18n/en.ts
index 39c2f3ae188dff91c0087bd79d417076d708705c..5993f65775556c82f9fd1139a65d35c9076799c6 100644
--- a/src/modules/resource/i18n/en.ts
+++ b/src/modules/resource/i18n/en.ts
@@ -149,11 +149,11 @@ export default {
modalLeavingPageBtnLeave: "LEAVE CURRENT PAGE",
toastSavingSuccessfulTitle: "Saving file(s) successful",
- toastSavingSuccessfulBody: "Number of files saved: ",
+ toastSavingSuccessfulBody: "Number of files saved: {number}",
toastSavingFailedTitle: "Saving file(s) failed",
toastSavingFailedBodyTop:
- "An error occured while saving the following files:",
+ "An error occurred while saving the following files:",
toastSavingFailedBodyBottom: "Please try again.",
dataUrl: "Data URL",
@@ -311,11 +311,11 @@ export default {
modalLeavingPageBodyTop: "These entries are currently saving:",
toastSavingSuccessfulTitle: "Saving entries(s) successful",
- toastSavingSuccessfulBody: "Number of entries saved: ",
+ toastSavingSuccessfulBody: "Number of entries saved: {number}",
toastSavingFailedTitle: "Saving entry(s) failed",
toastSavingFailedBodyTop:
- "An error occured while saving the following entries:",
+ "An error occurred while saving the following entries:",
},
},
},
diff --git a/src/modules/resource/pages/CreateResource.vue b/src/modules/resource/pages/CreateResource.vue
index b2e8f0aa14b480ff8661fb8240f28b8832a0ea1d..0e21d5639c3c01b7628103afa6ab22e6090ba789 100644
--- a/src/modules/resource/pages/CreateResource.vue
+++ b/src/modules/resource/pages/CreateResource.vue
@@ -3,13 +3,13 @@
<CoscineHeadline :headline="$t('page.createResource.title')" />
<!-- Navigation Tabs -->
- <b-tabs justified v-model="currentTab" class="mb-4">
+ <b-tabs v-model="currentTab" justified class="mb-4">
<b-tab
v-for="(tab, index) in tabs"
:key="index"
:disabled="!tab.active"
- @click.prevent="toTab(tab)"
:title="tab.title"
+ @click.prevent="toTab(tab)"
/>
</b-tabs>
@@ -20,31 +20,31 @@
<Configuration
v-if="currentTab === 0"
v-model="resource"
- :isLoading="isLoading"
+ :is-loading="isLoading"
@valid="setNextTab"
@next="next"
/>
<General
v-else-if="currentTab === 1"
v-model="resource"
- :isLoading="isLoading"
+ :is-loading="isLoading"
:readonly="false"
@valid="setNextTab"
/>
<Metadata
v-else-if="currentTab === 2"
v-model="resource"
- :applicationProfileList="groupedAPList"
- :applicationProfileString="applicationProfileString"
- :isLoadingFormGenerator="isLoadingFormGenerator"
+ :application-profile-list="groupedAPList"
+ :application-profile-string="applicationProfileString"
+ :is-loading-form-generator="isLoadingFormGenerator"
@valid="setNextTab"
/>
<Overview
v-else-if="currentTab === 3"
v-model="resource"
:tabs="tabs"
- :applicationProfileString="applicationProfileString"
- :isLoadingFormGenerator="isLoadingFormGenerator"
+ :application-profile-string="applicationProfileString"
+ :is-loading-form-generator="isLoadingFormGenerator"
@back="back"
@toTab="toTab"
@waitingForResponse="isWaitingForResponse = $event"
@@ -52,16 +52,16 @@
<b-form-group v-if="currentTab > 0 && currentTab < tabs.length - 1">
<!-- Button Back -->
- <b-button @click.prevent="back" variant="outline-primary"
+ <b-button variant="outline-primary" @click.prevent="back"
>{{ $t("buttons.back") }}
</b-button>
<!-- Button Next -->
<b-button
- @click.prevent="next"
class="float-right"
variant="outline-primary"
:disabled="!tabs[currentTab + 1].active"
+ @click.prevent="next"
>{{ $t("buttons.next") }}
</b-button>
</b-form-group>
@@ -70,7 +70,7 @@
</b-row>
<!-- Loading Spinner on Submit -->
- <LoadingSpinner :isWaitingForResponse="isWaitingForResponse" />
+ <LoadingSpinner :is-waiting-for-response="isWaitingForResponse" />
</div>
</template>
diff --git a/src/modules/resource/pages/ResourcePage.vue b/src/modules/resource/pages/ResourcePage.vue
index 2817eaf19ed6e31ce1d9f75650ba9c8bb150b0eb..8808567aabf2e48292ab9f18ee097b6ff4c600b3 100644
--- a/src/modules/resource/pages/ResourcePage.vue
+++ b/src/modules/resource/pages/ResourcePage.vue
@@ -7,7 +7,7 @@
@dragover.prevent=""
@drop.prevent="uploadDrop"
>
- <div class="droppable" v-if="showDroppable && fileAddable">
+ <div v-if="showDroppable && fileAddable" class="droppable">
<p class="droppableText">{{ $t("page.resource.canDropFile") }}</p>
</div>
<coscine-headline
@@ -17,19 +17,19 @@
<b-form-file
ref="fileTrigger"
multiple
- @input="fileListUploadSelected"
class="mt-3"
plain
+ @input="fileListUploadSelected"
></b-form-file>
<span id="filesViewSpan">
<div id="filesViewCard" :class="isFullscreen == false ? 'card' : ''">
<div :class="isFullscreen == false ? 'card-body' : ''">
<FilesView
ref="filesView"
- :folderContents="folderContents"
- :currentFolder="currentFolder"
- :isUploading="isUploading"
- :fileListEdit="fileListEdit"
+ :folder-contents="folderContents"
+ :current-folder="currentFolder"
+ :is-uploading="isUploading"
+ :file-list-edit="fileListEdit"
@showDetail="setShowDetail"
@currentFolder="setCurrentFolder"
@folderContents="setFolder"
@@ -46,20 +46,20 @@
>
<b-button
v-show="isFullscreen"
- squared
id="metadataManagerToggleFullscreen"
+ squared
@click="toggleMenu()"
><span>{{ $t("page.resource.metadataManager") }}</span></b-button
>
<div class="card">
<div class="card-body">
<MetadataManager
- :showDetail="showDetail"
- :fileListEdit="fileListEdit"
- :fileListUpload="fileListUpload"
- :folderContents="folderContents"
- :currentFolder="currentFolder"
- :isUploading="isUploading"
+ :show-detail="showDetail"
+ :file-list-edit="fileListEdit"
+ :file-list-upload="fileListUpload"
+ :folder-contents="folderContents"
+ :current-folder="currentFolder"
+ :is-uploading="isUploading"
@emptyFileLists="emptyFileLists"
@folderContents="setFolder"
@removeElement="removeElement"
@@ -93,7 +93,7 @@
</div>
</div>
</div>
- <LoadingSpinner :isWaitingForResponse="isWaitingForResponse" />
+ <LoadingSpinner :is-waiting-for-response="isWaitingForResponse" />
</div>
</template>
@@ -126,6 +126,10 @@ import type {
import type { BFormFile, BTable } from "bootstrap-vue";
export default defineComponent({
+ components: {
+ FilesView,
+ MetadataManager,
+ },
setup() {
const mainStore = useMainStore();
const resourceStore = useResourceStore();
@@ -134,6 +138,25 @@ export default defineComponent({
return { mainStore, resourceStore, projectStore };
},
+ data() {
+ return {
+ isWaitingForResponse: false,
+ fileListEdit: [] as FolderContent[],
+ showDetail: false,
+ fileListUpload: [] as FileInformation[],
+ folderContents: [] as FolderContent[],
+ currentFolder:
+ window.location.hash.indexOf("#") !== -1
+ ? window.location.hash.substring(1)
+ : "/",
+ dragCounter: 0,
+
+ isFullscreen: false,
+ isMetadataManagerHidden: false,
+ isUploading: false,
+ };
+ },
+
computed: {
project(): null | ProjectObject {
return this.projectStore.currentProject;
@@ -160,25 +183,6 @@ export default defineComponent({
return this.dragCounter > 0;
},
},
-
- data() {
- return {
- isWaitingForResponse: false,
- fileListEdit: [] as FolderContent[],
- showDetail: false,
- fileListUpload: [] as FileInformation[],
- folderContents: [] as FolderContent[],
- currentFolder:
- window.location.hash.indexOf("#") !== -1
- ? window.location.hash.substring(1)
- : "/",
- dragCounter: 0,
-
- isFullscreen: false,
- isMetadataManagerHidden: false,
- isUploading: false,
- };
- },
watch: {
resourceTypeInformation() {
this.emptyFileLists();
@@ -343,10 +347,6 @@ export default defineComponent({
}
},
},
- components: {
- FilesView,
- MetadataManager,
- },
});
</script>
diff --git a/src/modules/resource/pages/Settings.vue b/src/modules/resource/pages/Settings.vue
index de0b6837c685ea748f9cc23bd3644a9bb349cb32..529d9b35e3c7291b0f10973057d522db7ca13cf0 100644
--- a/src/modules/resource/pages/Settings.vue
+++ b/src/modules/resource/pages/Settings.vue
@@ -6,13 +6,13 @@
<Overview />
<!-- Navigation Tabs -->
- <b-tabs justified v-model="currentTab" class="my-4" v-if="resource">
+ <b-tabs v-if="resource" v-model="currentTab" justified class="my-4">
<b-tab
v-for="(tab, index) in tabs"
:key="index"
:disabled="!tab.active"
- @click.prevent="toTab(tab)"
:title="tab.title"
+ @click.prevent="toTab(tab)"
/>
</b-tabs>
<b-row v-else align-h="center" class="my-4">
@@ -26,7 +26,7 @@
<General
v-show="tabs[currentTab].step === 'general'"
v-model="resourceForm"
- :isLoading="isLoading"
+ :is-loading="isLoading"
:readonly="false"
@validation="validation = $event"
/>
@@ -35,8 +35,8 @@
<Metadata
v-show="tabs[currentTab].step === 'metadata'"
v-model="resourceForm"
- :applicationProfileString="applicationProfileString"
- :isLoadingFormGenerator="isLoading"
+ :application-profile-string="applicationProfileString"
+ :is-loading-form-generator="isLoading"
@clickSave="clickSave"
/>
@@ -53,17 +53,17 @@
<b-form-group>
<b-button
v-if="confirmButtonVisibility"
- @click.prevent="clickSave"
:disabled="!validResourceForm"
class="float-right"
variant="primary"
+ @click.prevent="clickSave"
>
{{ $t("buttons.confirm") }}
</b-button>
</b-form-group>
<!-- Loading Spinner on Submit -->
- <LoadingSpinner :isWaitingForResponse="isWaitingForResponse" />
+ <LoadingSpinner :is-waiting-for-response="isWaitingForResponse" />
</div>
</template>
@@ -86,15 +86,9 @@ import type {
import type { ResourceCreationTab, ResourceTypeOption } from "../types";
import type { ProjectObject } from "@coscine/api-client/dist/types/Coscine.Api.Project";
import type { Validation } from "vuelidate";
+import useNotificationStore from "@/store/notification";
export default defineComponent({
- setup() {
- const resourceStore = useResourceStore();
- const projectStore = useProjectStore();
-
- return { resourceStore, projectStore };
- },
-
components: {
Overview,
Configuration,
@@ -102,6 +96,13 @@ export default defineComponent({
Metadata,
Actions,
},
+ setup() {
+ const resourceStore = useResourceStore();
+ const projectStore = useProjectStore();
+ const notificationStore = useNotificationStore();
+
+ return { resourceStore, projectStore, notificationStore };
+ },
data() {
return {
@@ -239,20 +240,6 @@ export default defineComponent({
}
},
- makeToast(
- text = "Message",
- givenTitle = "Title",
- variant: string | undefined = undefined
- ) {
- this.$root.$bvToast.toast(text, {
- title: givenTitle,
- autoHideDelay: 5000,
- toaster: "b-toaster-bottom-right",
- variant: variant,
- noCloseButton: true,
- });
- },
-
async clickSave() {
this.isWaitingForResponse = true;
const success = await this.resourceStore.updateResource(
@@ -265,17 +252,17 @@ export default defineComponent({
if (this.resource && this.resource.id) {
await this.resourceStore.retrieveResource(this.resource.id);
}
- this.makeToast(
- this.$t("toast.onSave.success.message").toString(),
- this.$t("toast.onSave.success.title").toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onSave.success.title").toString(),
+ body: this.$t("toast.onSave.success.message").toString(),
+ });
} else {
// On Failure
- this.makeToast(
- this.$t("toast.onSave.failure.message").toString(),
- this.$t("toast.onSave.failure.title").toString(),
- "danger"
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onSave.failure.title").toString(),
+ body: this.$t("toast.onSave.failure.message").toString(),
+ variant: "danger",
+ });
}
this.isWaitingForResponse = false;
},
@@ -295,17 +282,21 @@ export default defineComponent({
await this.resourceStore.retrieveResource(this.resource.id);
}
const action = !this.resource.archived ? "unarchive" : "archive";
- this.makeToast(
- this.$t(`page.settings.actions.${action}.toast.body`).toString(),
- this.$t(`page.settings.actions.${action}.toast.title`).toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t(
+ `page.settings.actions.${action}.toast.title`
+ ).toString(),
+ body: this.$t(
+ `page.settings.actions.${action}.toast.body`
+ ).toString(),
+ });
} else {
// On Failure
- this.makeToast(
- this.$t("toast.onSave.failure.message").toString(),
- this.$t("toast.onSave.failure.title").toString(),
- "danger"
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onSave.failure.title").toString(),
+ body: this.$t("toast.onSave.failure.message").toString(),
+ variant: "danger",
+ });
}
this.isWaitingForResponse = false;
}
@@ -321,18 +312,18 @@ export default defineComponent({
const parentProject = this.project;
// Refresh the project information in the store
await this.projectStore.refreshProjectInformation(parentProject);
- this.makeToast(
- this.$t("toast.onDelete.success.message").toString(),
- this.$t("toast.onDelete.success.title").toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onDelete.success.title").toString(),
+ body: this.$t("toast.onDelete.success.message").toString(),
+ });
navigateToProject(parentProject);
} else {
// On Failure
- this.makeToast(
- this.$t("toast.onDelete.failure.message").toString(),
- this.$t("toast.onDelete.failure.title").toString(),
- "danger"
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onDelete.failure.title").toString(),
+ body: this.$t("toast.onDelete.failure.message").toString(),
+ variant: "danger",
+ });
}
this.isWaitingForResponse = false;
},
diff --git a/src/modules/resource/store.ts b/src/modules/resource/store.ts
index 4725aaeaac3d348e10e4c8b366e98ff95c3a8c6a..8f9ed9e686158c52e77ed658dfeaceb18da9b3bc 100644
--- a/src/modules/resource/store.ts
+++ b/src/modules/resource/store.ts
@@ -4,7 +4,6 @@ import type {
ResourceState,
VisitedResourceObject,
} from "./types";
-import { StatusCodes } from "http-status-codes";
import { reactive } from "vue-demi";
import {
@@ -20,6 +19,8 @@ import { useLocalStorage } from "@vueuse/core";
import type { BilingualLabels } from "@coscine/api-client/dist/types/Coscine.Api.Metadata";
import type { ProjectObject } from "@coscine/api-client/dist/types/Coscine.Api.Project";
import { updatedDiff } from "deep-object-diff";
+import useNotificationStore from "@/store/notification";
+import type { AxiosError } from "axios";
/*
Store variable name is "this.<id>Store"
id: "resource" --> this.resourceStore
@@ -85,69 +86,84 @@ export const useResourceStore = defineStore({
*/
actions: {
async retrieveResource(id: string) {
- const apiResponse = await ResourceApi.resourceGet(id);
- if (apiResponse.status === StatusCodes.OK) {
- const resource: ResourceObject = apiResponse.data;
- this.addResourceAsVisited(resource);
- } else {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await ResourceApi.resourceGet(id);
+ this.addResourceAsVisited(apiResponse.data as ResourceObject);
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveApplicationProfile(resource: VisitedResourceObject) {
- if (resource.applicationProfile) {
- const apiResponse = await MetadataApi.metadataGetProfile(
- resource.applicationProfile
- );
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (resource.applicationProfile) {
+ const apiResponse = await MetadataApi.metadataGetProfile(
+ resource.applicationProfile
+ );
resource.fullApplicationProfile = apiResponse.data;
} else {
- // Handle other Status Codes
+ console.error("Resource's application profile may be undefined.");
}
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async getApplicationProfile(
applicationProfile: string
): Promise<ApplicationProfile> {
- const apiResponse = await MetadataApi.metadataGetProfile(
- applicationProfile
- );
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await MetadataApi.metadataGetProfile(
+ applicationProfile
+ );
return apiResponse.data;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return [];
}
},
async getApplicationProfilesList(): Promise<string[] | undefined> {
- const apiResponse = await MetadataApi.metadataGetProfiles();
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await MetadataApi.metadataGetProfiles();
return apiResponse.data;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveUsedQuota(resource: VisitedResourceObject) {
- if (resource.id) {
- const apiResponse = await BlobApi.blobGetQuota(resource.id);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (resource.id) {
+ const apiResponse = await BlobApi.blobGetQuota(resource.id);
resource.usedQuota = Number(apiResponse.data.data.usedSizeByte);
} else {
- // Handle other Status Codes
+ console.error("Selected resource's ID is undefined.");
}
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
async retrieveResourceTypes() {
- const apiResponse =
- await ResourceTypeApi.resourceTypeGetEnabledResourceTypes();
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse =
+ await ResourceTypeApi.resourceTypeGetEnabledResourceTypes();
this.resourceTypes = apiResponse.data;
- } else {
+ } catch (error) {
// Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
@@ -155,38 +171,38 @@ export const useResourceStore = defineStore({
project: ProjectObject,
resource: ResourceObject
): Promise<ResourceObject | null> {
- if (project.id) {
- const apiResponse = await ResourceApi.resourceStoreToProject(
- project.id,
- resource
- );
- if (apiResponse.status === StatusCodes.OK) {
- const createdResource: ResourceObject = apiResponse.data;
- return createdResource;
+ const notificationStore = useNotificationStore();
+ try {
+ if (project.id) {
+ const apiResponse = await ResourceApi.resourceStoreToProject(
+ project.id,
+ resource
+ );
+ return apiResponse.data as ResourceObject;
} else {
- // Handle other Status Codes
+ console.error("Selected project's ID is undefined.");
return null;
}
- } else {
- console.error("Selected project's ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return null;
}
},
async updateResource(resource: ResourceObject): Promise<boolean> {
- if (resource.id) {
- const apiResponse = await ResourceApi.resourceUpdate(
- resource.id,
- resource
- );
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (resource.id) {
+ await ResourceApi.resourceUpdate(resource.id, resource);
return true;
} else {
- // Handle other Status Codes
+ console.error("Selected resource's ID is undefined.");
return false;
}
- } else {
- console.error("Selected resource's ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return false;
}
},
@@ -195,34 +211,35 @@ export const useResourceStore = defineStore({
resource: ResourceObject,
status: boolean
): Promise<boolean> {
- if (resource.id) {
- const apiResponse = await ResourceApi.resourceSetResourceReadonly(
- resource.id,
- status
- );
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (resource.id) {
+ await ResourceApi.resourceSetResourceReadonly(resource.id, status);
return true;
} else {
- // Handle other Status Codes
+ console.error("Selected resource's ID is undefined.");
return false;
}
- } else {
- console.error("Selected resource's ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return false;
}
},
async deleteResource(resource: ResourceObject): Promise<boolean> {
- if (resource.id) {
- const apiResponse = await ResourceApi.resourceDelete(resource.id);
- if (apiResponse.status === StatusCodes.OK) {
+ const notificationStore = useNotificationStore();
+ try {
+ if (resource.id) {
+ await ResourceApi.resourceDelete(resource.id);
return true;
} else {
- // Handle other Status Codes
+ console.error("Selected resource's ID is undefined.");
return false;
}
- } else {
- console.error("Selected resource's ID is undefined.");
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
return false;
}
},
@@ -275,32 +292,40 @@ export const useResourceStore = defineStore({
resource: ResourceObject | null,
absoluteFilePath: string
) {
- if (resource && resource.id) {
- try {
+ const notificationStore = useNotificationStore();
+ try {
+ if (resource && resource.id) {
await BlobApi.blobDeleteFileWithParameter(
resource.id,
absoluteFilePath
);
return true;
- } catch {
+ } else {
+ console.error("Selected resource or its ID is undefined.");
return false;
}
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ return false;
}
- return false;
},
async getClass(className: string): Promise<BilingualLabels> {
- if (!this.classes[className]) {
- try {
+ const notificationStore = useNotificationStore();
+ try {
+ if (!this.classes[className]) {
const response = await MetadataApi.metadataGetClassInstances(
className
);
this.classes[className] = response.data;
- } catch {
- return {};
}
+ return this.classes[className];
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ return {};
}
- return this.classes[className];
},
async getFile(
@@ -308,8 +333,9 @@ export const useResourceStore = defineStore({
absoluteFilePath: string,
asBlob = false
) {
- if (resource && resource.id) {
- try {
+ const notificationStore = useNotificationStore();
+ try {
+ if (resource && resource.id) {
const response = await BlobApi.blobGetFileWithParameter(
resource.id,
absoluteFilePath,
@@ -320,29 +346,38 @@ export const useResourceStore = defineStore({
: undefined
);
return response.data;
- } catch {
+ } else {
+ console.error("Selected resource or its ID is undefined.");
return null;
}
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ return null;
}
- return null;
},
async getMetadata(
resource: ResourceObject | null,
absoluteFilePath: string
) {
- if (resource && resource.id) {
- try {
+ const notificationStore = useNotificationStore();
+ try {
+ if (resource && resource.id) {
const response = await TreeApi.treeGetMetadataWithParameter(
resource.id,
absoluteFilePath
);
return response.data;
- } catch {
+ } else {
+ console.error("Selected resource or its ID is undefined.");
return null;
}
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ return null;
}
- return null;
},
async storeFile(
@@ -351,8 +386,9 @@ export const useResourceStore = defineStore({
files: Blob[],
options?: unknown
) {
- if (resource && resource.id) {
- try {
+ const notificationStore = useNotificationStore();
+ try {
+ if (resource && resource.id) {
await BlobApi.blobUploadFileWithParameter(
resource.id,
absoluteFilePath,
@@ -360,11 +396,15 @@ export const useResourceStore = defineStore({
options
);
return true;
- } catch {
+ } else {
+ console.error("Selected resource or its ID is undefined.");
return false;
}
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ return false;
}
- return false;
},
async storeMetadata(
@@ -372,19 +412,24 @@ export const useResourceStore = defineStore({
absoluteFilePath: string,
body: unknown
) {
- if (resource && resource.id) {
- try {
+ const notificationStore = useNotificationStore();
+ try {
+ if (resource && resource.id) {
await TreeApi.treeStoreMetadataForFileWithParameter(
resource.id,
absoluteFilePath,
{ data: body }
);
return true;
- } catch {
+ } else {
+ console.error("Selected resource or its ID is undefined.");
return false;
}
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ return false;
}
- return false;
},
},
});
diff --git a/src/modules/search/SearchModule.vue b/src/modules/search/SearchModule.vue
index 1f4cb8d196f3a365d1c5439d6a2d32b84f6ebd84..f72415930c27a674fad16ee283fd9adb2261c0f9 100644
--- a/src/modules/search/SearchModule.vue
+++ b/src/modules/search/SearchModule.vue
@@ -1,6 +1,9 @@
<template>
<div>
<router-view v-if="moduleIsReady" />
+ <b-row v-else align-h="center" class="my-4">
+ <b-spinner variant="secondary" />
+ </b-row>
</div>
</template>
@@ -20,16 +23,16 @@ export default defineComponent({
return { mainStore, searchStore };
},
- created() {
- this.initialize();
- },
-
computed: {
moduleIsReady(): boolean {
return true;
},
},
+ created() {
+ this.initialize();
+ },
+
methods: {
async initialize() {
// do initialization stuff (e.g. API calls, element loading, etc.)
diff --git a/src/modules/search/pages/Search.vue b/src/modules/search/pages/Search.vue
index c6c0de5cd8499d7a8af720ab11e0a6428b184af8..444fa78ce18188b59478c17066f952f1f59638e2 100644
--- a/src/modules/search/pages/Search.vue
+++ b/src/modules/search/pages/Search.vue
@@ -16,7 +16,7 @@
:placeholder="$t('page.search.search')"
></b-form-input>
</b-col>
- <b-col sm="2" id="selectProjCol" align-self="center" class="pl-0">
+ <b-col id="selectProjCol" sm="2" align-self="center" class="pl-0">
<b-form-select v-model="selectProjValue">
<template #first>
<b-form-select-option :value="null" disabled
@@ -25,7 +25,7 @@
</template>
</b-form-select>
</b-col>
- <b-col sm="2" id="selectResCol" align-self="center" class="pl-0">
+ <b-col id="selectResCol" sm="2" align-self="center" class="pl-0">
<b-form-select v-model="selectResValue">
<template #first>
<b-form-select-option :value="null" disabled
@@ -64,16 +64,16 @@
no-outer-focus
class="border-0 bg-transparent"
>
- <template v-slot="{ tags, removeTag }">
+ <template #default="{ tags, removeTag }">
<div>
<b-form-tag
v-for="tag in tags"
- @remove="removeTag(tag)"
:key="tag"
:title="tag"
variant="primary"
pill
class="mr-1"
+ @remove="removeTag(tag)"
>{{ tag }}
</b-form-tag>
</div>
@@ -188,6 +188,10 @@ import type {
import type { SearchResult } from "@coscine/api-client/dist/types/Coscine.Api.Search";
export default defineComponent({
+ components: {
+ Result,
+ Sidebar,
+ },
setup() {
const mainStore = useMainStore();
const searchStore = useSearchStore();
@@ -212,11 +216,6 @@ export default defineComponent({
};
},
- components: {
- Result,
- Sidebar,
- },
-
computed: {
paginationTotalRows(): number {
if (this.searchResults !== null) {
diff --git a/src/modules/search/pages/components/Result.vue b/src/modules/search/pages/components/Result.vue
index e161120c4077e5aa066f2ab9720b3a9d8fbdee20..c3a42483b29ba9fe9850503e21c56d64fb8bd449 100644
--- a/src/modules/search/pages/components/Result.vue
+++ b/src/modules/search/pages/components/Result.vue
@@ -40,6 +40,12 @@ import type {
} from "../../types";
export default defineComponent({
+ props: {
+ result: {
+ required: true,
+ type: Object as PropType<EnhancedOldSearchResult | EnhancedSearchResult>,
+ },
+ },
setup() {
const mainStore = useMainStore();
const searchStore = useSearchStore();
@@ -49,12 +55,6 @@ export default defineComponent({
data() {
return {};
},
- props: {
- result: {
- required: true,
- type: Object as PropType<EnhancedOldSearchResult | EnhancedSearchResult>,
- },
- },
computed: {
archived(): boolean {
// We don't get this information currently without specifically querying it
diff --git a/src/modules/search/routes.ts b/src/modules/search/routes.ts
index a34aa3d1cbb4ce43d267845252c6b3a4d7182e08..1ca3d091f51089e447a439a41368c9459ab46a6a 100644
--- a/src/modules/search/routes.ts
+++ b/src/modules/search/routes.ts
@@ -10,7 +10,6 @@ export const SearchRoutes: RouteConfig[] = [
path: "/search",
component: SearchModule,
meta: {
- breadCrumb: "search",
i18n: SearchI18nMessages,
},
children: [
@@ -18,6 +17,9 @@ export const SearchRoutes: RouteConfig[] = [
path: "/",
name: "search",
component: Search,
+ meta: {
+ breadCrumb: "search",
+ },
},
],
},
diff --git a/src/modules/user/UserModule.vue b/src/modules/user/UserModule.vue
index d8ae5577583f500ea49272bc22496c17934f8764..bb0697aec4e730be386ebf20e29ac3087189d036 100644
--- a/src/modules/user/UserModule.vue
+++ b/src/modules/user/UserModule.vue
@@ -1,6 +1,9 @@
<template>
<div>
<router-view v-if="moduleIsReady" />
+ <b-row v-else align-h="center" class="my-4">
+ <b-spinner variant="secondary" />
+ </b-row>
</div>
</template>
@@ -11,17 +14,15 @@ import { defineComponent } from "vue-demi";
import useUserStore from "./store";
// import the main store
import useMainStore from "@/store/index";
+import useProjectStore from "../project/store";
export default defineComponent({
setup() {
const mainStore = useMainStore();
+ const projectStore = useProjectStore();
const userStore = useUserStore();
- return { mainStore, userStore };
- },
-
- created() {
- this.initialize();
+ return { mainStore, projectStore, userStore };
},
computed: {
@@ -36,6 +37,10 @@ export default defineComponent({
},
},
+ created() {
+ this.initialize();
+ },
+
methods: {
async initialize() {
await Promise.all([
diff --git a/src/modules/user/i18n/de.ts b/src/modules/user/i18n/de.ts
index 55ed3ed95eca881a48c9def8bf875dd3b1349717..5034c8a12a65ac37bf2e7606dbbaa1fefd5dfc56 100644
--- a/src/modules/user/i18n/de.ts
+++ b/src/modules/user/i18n/de.ts
@@ -98,7 +98,7 @@ export default {
},
userPreferences: {
- header: "Benutzer Voreinstellungen",
+ header: "Nutzerpräferenzen",
language: "Sprache",
labels: {
diff --git a/src/modules/user/pages/UserProfile.vue b/src/modules/user/pages/UserProfile.vue
index 399a70cd1c8bd368c6b4f487f3a8f728771fe089..53d07a4e2e329d4ec8094dc39e973c991545863c 100644
--- a/src/modules/user/pages/UserProfile.vue
+++ b/src/modules/user/pages/UserProfile.vue
@@ -9,11 +9,11 @@
/>
<!-- Title -->
<coscine-form-group
- labelFor="title"
+ label-for="title"
:label="
$t('page.userprofile.form.personalInformation.labels.titleLabel')
"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<multiselect
@@ -28,7 +28,7 @@
'page.userprofile.form.personalInformation.multiselect.placeholderTitle'
)
"
- :selectLabel="
+ :select-label="
$t(
'page.userprofile.form.personalInformation.multiselect.selectEnter'
)
@@ -49,13 +49,13 @@
<!-- Given Name -->
<coscine-form-group
:mandatory="true"
- labelFor="givenname"
+ label-for="givenname"
:label="
$t(
'page.userprofile.form.personalInformation.labels.givenNameLabel'
)
"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-input
@@ -70,11 +70,11 @@
<!-- Surname -->
<coscine-form-group
:mandatory="true"
- labelFor="surname"
+ label-for="surname"
:label="
$t('page.userprofile.form.personalInformation.labels.surnameLabel')
"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-input
@@ -89,11 +89,11 @@
<!-- Email -->
<coscine-form-group
:mandatory="true"
- labelFor="Email"
+ label-for="Email"
:label="
$t('page.userprofile.form.personalInformation.labels.emailLabel')
"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-input
@@ -109,13 +109,13 @@
<!-- Organization -->
<coscine-form-group
:mandatory="true"
- labelFor="organization"
+ label-for="organization"
:label="
$t(
'page.userprofile.form.personalInformation.labels.organizationLabel'
)
"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<multiselect
@@ -166,13 +166,13 @@
<!-- Institute -->
<coscine-form-group
:mandatory="true"
- labelFor="institute"
+ label-for="institute"
:label="
$t(
'page.userprofile.form.personalInformation.labels.instituteLabel'
)
"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<b-form-input
@@ -203,13 +203,13 @@
<!-- Discipline -->
<coscine-form-group
:mandatory="true"
- labelFor="Discipline"
+ label-for="Discipline"
:label="
$t(
'page.userprofile.form.personalInformation.labels.disciplineLabel'
)
"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="input"
>
<multiselect
@@ -248,27 +248,23 @@
/>
<coscine-form-group
:mandatory="true"
- labelFor="language"
+ label-for="language"
:label="
$t('page.userprofile.form.userPreferences.labels.languageLabel')
"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="button"
>
<b-form-radio-group
- class="bv-no-focus-ring"
id="language"
- @change="
- ($event) => (this.$v.form.language.$model = { id: $event })
- "
- :checked="
- this.form.language !== undefined ? this.form.language.id : false
- "
+ class="bv-no-focus-ring"
+ :checked="form.language !== undefined ? form.language.id : false"
:options="languages"
name="radios-stacked"
text-field="displayName"
value-field="id"
stacked
+ @change="($event) => ($v.form.language.$model = { id: $event })"
></b-form-radio-group>
</coscine-form-group>
@@ -282,15 +278,15 @@
:label="
$t('page.userprofile.form.connectedAccounts.labels.orcidLabel')
"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="button"
>
<b-button
variant="secondary"
class="float-left"
name="orcidConnect"
- @click.prevent="clickConnect('orcid')"
:disabled="orcidConnected"
+ @click.prevent="clickConnect('orcid')"
>{{
orcidConnected ? $t("buttons.connected") : $t("buttons.connect")
}}</b-button
@@ -301,15 +297,15 @@
:label="
$t('page.userprofile.form.connectedAccounts.labels.shibbolethLabel')
"
- :isLoading="isLoading"
+ :is-loading="isLoading"
type="button"
>
<b-button
variant="secondary"
class="float-left"
name="shibbolethConnect"
- @click.prevent="clickConnect('shibboleth')"
:disabled="shibbolethConnected"
+ @click.prevent="clickConnect('shibboleth')"
>{{
shibbolethConnected
? $t("buttons.connected")
@@ -321,17 +317,17 @@
<!-- Save Button -->
<coscine-form-group>
<b-button
+ ref="saveBtn"
type="submit"
variant="primary"
class="float-right"
name="save"
- ref="saveBtn"
- @click.prevent="clickSave"
:disabled="$v.form.$invalid || savingProfile || !$v.form.$anyDirty"
+ @click.prevent="clickSave"
>
<b-iconstack
- animation="spin"
v-if="savingProfile"
+ animation="spin"
aria-hidden="true"
>
<b-icon
@@ -374,9 +370,9 @@ import { defineComponent } from "vue-demi";
import { validationMixin } from "vuelidate";
import { required, email } from "vuelidate/lib/validators";
import { clone } from "lodash";
-import CoscineFormGroup from "@/components/CoscineFormGroup.vue";
+import CoscineFormGroup from "@/components/coscine/CoscineFormGroup.vue";
import AccessToken from "./components/AccessToken.vue";
-import CoscineHeadline from "@/components/CoscineHeadline.vue";
+import CoscineHeadline from "@/components/coscine/CoscineHeadline.vue";
import "@/plugins/deprecated/vue-multiselect";
@@ -392,20 +388,22 @@ import type {
UserObject,
} from "@coscine/api-client/dist/types/Coscine.Api.User";
import type { OrganizationObject } from "@coscine/api-client/dist/types/Coscine.Api.Project";
+import useNotificationStore from "@/store/notification";
export default defineComponent({
- setup() {
- const mainStore = useMainStore();
- const userStore = useUserStore();
-
- return { mainStore, userStore };
- },
components: {
AccessToken,
CoscineFormGroup,
CoscineHeadline,
},
mixins: [validationMixin],
+ setup() {
+ const mainStore = useMainStore();
+ const userStore = useUserStore();
+ const notificationStore = useNotificationStore();
+
+ return { mainStore, userStore, notificationStore };
+ },
validations: {
form: {
title: {},
@@ -448,15 +446,13 @@ export default defineComponent({
},
emailHint(): string {
if (!this.form.emailAddress) {
- return this.$parent
- .$t("page.userprofile.form.personalInformation.emailChange.noAddress")
- .toString();
+ return this.$t(
+ "page.userprofile.form.personalInformation.emailChange.noAddress"
+ ).toString();
} else if (this.contactChange !== null && this.contactChange.length > 0) {
- return this.$parent
- .$t(
- "page.userprofile.form.personalInformation.emailChange.pendingConfirmation"
- )
- .toString();
+ return this.$t(
+ "page.userprofile.form.personalInformation.emailChange.pendingConfirmation"
+ ).toString();
}
return "";
},
@@ -560,44 +556,33 @@ export default defineComponent({
this.userStore.retrieveContactChange(),
this.userStore.retrieveUser(),
]);
- this.makeToast(
- this.$parent
- .$t(
- "page.userprofile.form.personalInformation.emailChange.changedMessage"
- )
- .toString(),
- this.$parent
- .$t(
- "page.userprofile.form.personalInformation.emailChange.changedTitle"
- )
- .toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t(
+ "page.userprofile.form.personalInformation.emailChange.changedTitle"
+ ).toString(),
+ body: this.$t(
+ "page.userprofile.form.personalInformation.emailChange.changedMessage"
+ ).toString(),
+ });
}
try {
await this.userStore.updateUser(this.form);
this.$v.form.$reset();
- this.makeToast(
- this.$t("toast.onSave.success.message").toString(),
- this.$t("toast.onSave.success.title").toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onSave.success.title").toString(),
+ body: this.$t("toast.onSave.success.message").toString(),
+ });
} catch {
- this.makeToast(
- this.$t("toast.onSave.failure.message").toString(),
- this.$t("toast.onSave.failure.title").toString()
- );
+ this.notificationStore.postNotification({
+ title: this.$t("toast.onSave.failure.title").toString(),
+ body: this.$t("toast.onSave.failure.message").toString(),
+ variant: "danger",
+ });
} finally {
this.savingProfile = false;
}
}
},
- makeToast(text = "Message", givenTitle = "title") {
- this.$root.$bvToast.toast(text, {
- title: givenTitle,
- autoHideDelay: 5000,
- toaster: "b-toaster-bottom-right",
- noCloseButton: true,
- });
- },
triggerFetchOptions(search: string) {
clearTimeout(this.queryTimer);
if (search.length < 3) {
diff --git a/src/modules/user/pages/components/AccessToken.vue b/src/modules/user/pages/components/AccessToken.vue
index d05e76b06d70e0297dc90cda3d456bace04ce301..4d4f77d5cdbbce2c4ba7ead21426fca82ef4c590 100644
--- a/src/modules/user/pages/components/AccessToken.vue
+++ b/src/modules/user/pages/components/AccessToken.vue
@@ -13,14 +13,16 @@
v-model="$v.token.AccessToken.$model"
:readonly="true"
/>
- <b-button id="copyButton" @click="copyToken" style="margin: inherit"
- ><b-icon-clipboard
- /></b-button>
- <b-tooltip ref="tooltip" target="copyButton" triggers="focus">{{
- $t(
- "page.userprofile.form.accessToken.modal.createToken.copyToClipboard"
- )
- }}</b-tooltip>
+ <b-button id="copyButton" style="margin: inherit" @click="copyToken">
+ <b-icon-clipboard />
+ </b-button>
+ <b-tooltip ref="tooltip" target="copyButton" triggers="focus">
+ {{
+ $t(
+ "page.userprofile.form.accessToken.modal.createToken.copyToClipboard"
+ )
+ }}
+ </b-tooltip>
</b-button-group>
</div>
<template #buttons>
@@ -40,16 +42,15 @@
>
<br />
<div class="revoke-modal-content">{{ selectedTokenName }}</div>
- <br />
<template #buttons>
- <b-button name="close" @click="isRevokeModalVisible = false">{{
- $t("buttons.cancel")
- }}</b-button>
+ <b-button name="close" @click="isRevokeModalVisible = false">
+ {{ $t("buttons.cancel") }}
+ </b-button>
<b-button
name="deleteToken"
- @click="confirmRevoke"
variant="danger"
style="float: right"
+ @click="confirmRevoke"
>{{ $t("buttons.revoke") }}</b-button
>
</template>
@@ -66,6 +67,7 @@
{{ $t("page.userprofile.form.accessToken.bodyText") }}
</b-form-text>
</b-form-group>
+
<!-- Token Name -->
<b-form-group
class="mandatory"
@@ -104,8 +106,8 @@
class="float-right"
name="create-token"
style="margin-right: 0px"
- @click.prevent="createToken"
:disabled="$v.token.$invalid"
+ @click.prevent="createToken"
>{{ $t("buttons.tokenCreate") }}</b-button
>
</b-form-group>
@@ -153,9 +155,9 @@
</template>
<template #cell(actions)="selectedToken">
<b-button
- v-on:click="revokeToken(selectedToken.item)"
size="sm"
variant="danger"
+ @click="revokeToken(selectedToken.item)"
>{{ $t("buttons.revoke") }}</b-button
>
</template>
@@ -172,8 +174,6 @@ import { validationMixin } from "vuelidate";
import { required } from "vuelidate/lib/validators";
import { BIconClipboard } from "bootstrap-vue";
-import CoscineModal from "@/components/CoscineModal.vue";
-
// import the main store
import useMainStore from "@/store/index";
// import the store for current module
@@ -193,18 +193,16 @@ interface TokenValidityBoundDates {
}
export default defineComponent({
+ components: {
+ BIconClipboard,
+ },
+ mixins: [validationMixin],
setup() {
const mainStore = useMainStore();
const userStore = useUserStore();
return { mainStore, userStore };
},
- mixins: [validationMixin],
- name: "accesstoken",
- components: {
- CoscineModal,
- BIconClipboard,
- },
validations: {
token: {
TokenExpirationDate: {},
@@ -255,8 +253,6 @@ export default defineComponent({
TokenName: "",
AccessToken: "" as string,
},
- languages: [] as Record<string, unknown>[],
- Language: [] as Record<string, unknown>[],
};
},
diff --git a/src/modules/user/store.ts b/src/modules/user/store.ts
index 8762e4e3071a4673e226bdeedfb77d7f58ee6acd..f43b2885e465a82f588f687f64eaedd89c79cac2 100644
--- a/src/modules/user/store.ts
+++ b/src/modules/user/store.ts
@@ -14,6 +14,8 @@ import type { UserState } from "./types";
// import the main store
import useMainStore from "@/store/index";
+import useNotificationStore from "@/store/notification";
+import type { AxiosError } from "axios";
/*
Store variable name is "this.<id>Store"
@@ -63,108 +65,172 @@ export const useUserStore = defineStore({
@click = "this.userStore.<action_name>();
*/
actions: {
- async queryUser(searchString: string, projectId: string) {
- return (await UserApi.userQuery(searchString, projectId)).data;
+ async getUser(searchString: string, projectId: string) {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await UserApi.userQuery(searchString, projectId);
+ return apiResponse.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ }
},
+
async retrieveContactChange() {
+ const notificationStore = useNotificationStore();
try {
- this.userProfile.contactChange = (
- await ContactChangeApi.contactChangeConfirmationStatus()
- ).data;
- } catch {
- console.error("Could not fetch contact changes");
- // TODO: Handle error
+ const apiResponse =
+ await ContactChangeApi.contactChangeConfirmationStatus();
+ this.userProfile.contactChange = apiResponse.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
+
async retrieveDisciplines() {
+ const notificationStore = useNotificationStore();
try {
- this.userProfile.disciplines = (
- await DisciplineApi.disciplineIndex()
- ).data;
- } catch {
- console.error("Could not fetch disciplines");
- // TODO: Handle error
+ const apiResponse = await DisciplineApi.disciplineIndex();
+ this.userProfile.disciplines = apiResponse.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
+
async retrieveLanguages() {
+ const notificationStore = useNotificationStore();
try {
- this.userProfile.languages = (await LanguageApi.languageIndex()).data;
- } catch {
- console.error("Could not fetch languages");
- // TODO: Handle error
+ const apiResponse = await LanguageApi.languageIndex();
+ this.userProfile.languages = apiResponse.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
+
async retrieveMemberOrganizations() {
+ const notificationStore = useNotificationStore();
try {
- this.userProfile.memberOrganizations = (
- await OrganizationApi.organizationIsMember2()
- ).data.data;
- } catch {
- console.error("Could not fetch member organizations");
- // TODO: Handle error
+ const apiResponse = await OrganizationApi.organizationIsMember2();
+ this.userProfile.memberOrganizations = apiResponse.data.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
+
async retrieveOrganizations(filter = "") {
+ const notificationStore = useNotificationStore();
try {
- this.userProfile.organizations = (
- await OrganizationApi.organizationGetROR(filter)
- ).data.data;
- } catch {
- console.error("Could not fetch organizations");
- // TODO: Handle error
+ const apiResponse = await OrganizationApi.organizationGetROR(filter);
+ this.userProfile.organizations = apiResponse.data.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
+
async retrieveTitles() {
+ const notificationStore = useNotificationStore();
try {
- this.userProfile.titles = (await TitleApi.titleIndex()).data;
- } catch {
- console.error("Could not fetch titles");
- // TODO: Handle error
+ const apiResponse = await TitleApi.titleIndex();
+ this.userProfile.titles = apiResponse.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
+
async retrieveTokens() {
+ const notificationStore = useNotificationStore();
try {
- this.userProfile.tokens = (await TokenApi.tokenGetUserTokens()).data;
- } catch {
- console.error("Could not fetch user tokens");
- // TODO: Handle error
+ const apiResponse = await TokenApi.tokenGetUserTokens();
+ this.userProfile.tokens = apiResponse.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
+
async retrieveTokenValidityBounds() {
+ const notificationStore = useNotificationStore();
try {
- this.tokenValidityBounds = (
- await TokenApi.tokenGetTokenValidityBounds()
- ).data;
- } catch {
- console.error("Could not fetch token validity bounds");
- // TODO: Handle error
+ const apiResponse = await TokenApi.tokenGetTokenValidityBounds();
+ this.tokenValidityBounds = apiResponse.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
+
async retrieveUser(loggedIn = true) {
- if (loggedIn) {
- try {
- this.user = (await UserApi.userGetUser()).data;
- } catch {
- console.error("Could not fetch user");
- // TODO: Handle error
+ const notificationStore = useNotificationStore();
+ try {
+ if (loggedIn) {
+ const apiResponse = await UserApi.userGetUser();
+ this.user = apiResponse.data;
}
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
}
},
+
async revokeToken(tokenId: string) {
- await TokenApi.tokenRevokeToken(tokenId);
+ const notificationStore = useNotificationStore();
+ try {
+ await TokenApi.tokenRevokeToken(tokenId);
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ }
},
- async setMergeToken(provider: string) {
- return (await UserApi.userSetAndReturnMergeToken(provider)).data;
+
+ async setMergeToken(provider: string): Promise<string> {
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await UserApi.userSetAndReturnMergeToken(provider);
+ return apiResponse.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ return "";
+ }
},
+
async submitToken(token: AddApiTokenParameter) {
- return (await TokenApi.tokenAddToken(token)).data;
+ const notificationStore = useNotificationStore();
+ try {
+ const apiResponse = await TokenApi.tokenAddToken(token);
+ return apiResponse.data;
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ }
},
+
async updateEmail(emailAddress: string) {
- await ContactChangeApi.contactChangeChangeContactEmail(emailAddress);
+ const notificationStore = useNotificationStore();
+ try {
+ await ContactChangeApi.contactChangeChangeContactEmail(emailAddress);
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ }
},
+
async updateUser(user: UserObject) {
- await UserApi.userUpdateUser(user);
+ const notificationStore = useNotificationStore();
+ try {
+ await UserApi.userUpdateUser(user);
+ } catch (error) {
+ // Handle other Status Codes
+ notificationStore.postApiErrorNotification(error as AxiosError);
+ }
},
+
setUserLanguagePreference() {
if (this.user && this.user.language && this.user.language?.abbreviation) {
const mainStore = useMainStore();
diff --git a/src/modules/user/types.d.ts b/src/modules/user/types.ts
similarity index 100%
rename from src/modules/user/types.d.ts
rename to src/modules/user/types.ts
diff --git a/src/plugins/deprecated/vue-multiselect.ts b/src/plugins/deprecated/vue-multiselect.ts
index f70df74337b447505e064d6fa6e9e5cf3a1ce939..ecc9f129bd1a993088c972cd61bc9f85a888dc15 100644
--- a/src/plugins/deprecated/vue-multiselect.ts
+++ b/src/plugins/deprecated/vue-multiselect.ts
@@ -3,4 +3,4 @@ import Vue from "vue";
import Multiselect from "vue-multiselect";
import "vue-multiselect/dist/vue-multiselect.min.css";
-Vue.component("multiselect", Multiselect);
+Vue.component("Multiselect", Multiselect);
diff --git a/src/router/index.ts b/src/router/index.ts
index c94909883cddb38dbc65ce3bcfaecd73d6b358ba..e6863e4a760b5e435e745cc69328669278f9faa2 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -96,12 +96,12 @@ export const removeQueryParameterFromUrl = function (
const newQuery = route.query;
if (newQuery[param] !== null && newQuery[param] !== undefined) {
delete newQuery[param];
+ const routeNew = {
+ ...route,
+ query: newQuery,
+ } as RawLocation;
+ router.replace(routeNew);
}
- const routeNew = {
- ...route,
- query: newQuery,
- } as RawLocation;
- router.replace(routeNew);
};
export const navigateToProject = function (project: ProjectObject | null) {
diff --git a/src/store/index.ts b/src/store/index.ts
index f9ff652165f12941e6b70d08b64b6c784d735971..5a01e5b7ad0ff1b36f2c3398875676e749c96ccf 100644
--- a/src/store/index.ts
+++ b/src/store/index.ts
@@ -6,7 +6,6 @@ import { v4 as uuidv4 } from "uuid";
import { removeQueryParameterFromUrl } from "@/router";
import { NoticeApi } from "@coscine/api-client";
-import { StatusCodes } from "http-status-codes";
import useLoginStore from "@/modules/login/store";
@@ -113,10 +112,7 @@ export const useMainStore = defineStore({
async getMaintenance() {
const apiResponse = await NoticeApi.noticeGetMaintenance();
- if (
- apiResponse.status === StatusCodes.OK &&
- apiResponse.data.startsDate
- ) {
+ if (apiResponse.data.startsDate) {
const now = new Date(Date.now());
const startDate = new Date(apiResponse.data.startsDate);
const endDate = apiResponse.data.endsDate;
@@ -125,8 +121,6 @@ export const useMainStore = defineStore({
apiResponse.data.startsDate + apiResponse.data.endsDate;
this.coscine.banner.maintenance = apiResponse.data;
}
- } else {
- // Handle other Status Codes
}
},
},
diff --git a/src/store/notification.ts b/src/store/notification.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2dfd607f2850ccf832d516e00c53c6a4c92ed8eb
--- /dev/null
+++ b/src/store/notification.ts
@@ -0,0 +1,96 @@
+import { defineStore } from "pinia";
+import { NotificationState, NotificationToast } from "./types";
+import i18n from "@/plugins/vue-i18n";
+import { getReasonPhrase } from "http-status-codes";
+import type { AxiosError } from "axios";
+
+/*
+ Store variable name is "this.<id>Store"
+ id: "notification" --> this.notificationStore
+ Important! The id must be unique for every store.
+*/
+export const useNotificationStore = defineStore({
+ id: "notification",
+ /*
+ --------------------------------------------------------------------------------------
+ STATES
+ --------------------------------------------------------------------------------------
+ */
+ state: (): NotificationState => ({
+ notificationQueue: [] as NotificationToast[],
+ }),
+
+ /*
+ --------------------------------------------------------------------------------------
+ GETTERS
+ --------------------------------------------------------------------------------------
+ Synchronous code only.
+
+ In a component use as e.g.:
+ :label = "this.notificationStore.<getter_name>;
+ */
+ getters: {},
+ /*
+ --------------------------------------------------------------------------------------
+ ACTIONS
+ --------------------------------------------------------------------------------------
+ Asynchronous & Synchronous code comes here (e.g. API calls and VueX mutations).
+ To change a state use an action.
+
+ In a component use as e.g.:
+ @click = "this.notificationStore.<action_name>();
+ */
+ actions: {
+ postApiErrorNotification(error: AxiosError) {
+ let notification: NotificationToast;
+ if (error.response) {
+ // The request was made and the server responded with a status code that falls out of the range of 2xx
+ const notificationBody = i18n
+ .t("toast.apiError.specific.body", {
+ error: `(${error.response.status}: ${getReasonPhrase(
+ error.response.status
+ )})`,
+ })
+ .toString();
+ notification = {
+ title: i18n.t("toast.apiError.specific.title").toString(),
+ body: notificationBody,
+ variant: error.response.status >= 500 ? "danger" : "warning",
+ noAutoHide: true,
+ appendToast: false,
+ };
+ } else {
+ // Something happened in setting up the request that triggered an Error
+ notification = {
+ title: i18n.t("toast.apiError.general.title").toString(),
+ body: i18n.t("toast.apiError.general.body").toString(),
+ variant: "danger",
+ };
+ }
+ this.postNotification(notification);
+ },
+
+ postGeneralApiWarningNotification(body: string) {
+ // Something happened in setting up the request that triggered an Error
+ const notification = {
+ title: i18n.t("toast.apiError.general.title").toString(),
+ body: i18n
+ .t("toast.apiError.specific.body", { error: body })
+ .toString(),
+ variant: "warning",
+ } as NotificationToast;
+ this.postNotification(notification);
+ },
+
+ postNotification(toast: NotificationToast) {
+ this.notificationQueue.push(toast); // Weird typescript error because of dissolved object
+ },
+
+ deleteNotification(toast: NotificationToast) {
+ const index = this.notificationQueue.indexOf(toast); // Weird typescript error because of dissolved object
+ this.notificationQueue.splice(index);
+ },
+ },
+});
+
+export default useNotificationStore;
diff --git a/src/store/types.d.ts b/src/store/types.ts
similarity index 60%
rename from src/store/types.d.ts
rename to src/store/types.ts
index 67edb2d70657d329d27911e38e4c080920eeddfb..03d17b9aa0089aa7865b4bd1926277249ade6e22 100644
--- a/src/store/types.d.ts
+++ b/src/store/types.ts
@@ -1,5 +1,12 @@
import type { RemovableRef } from "@vueuse/core";
import type { MaintenanceReturnObject } from "@coscine/api-client/dist/types/Coscine.Api.Notices";
+import type { VNode } from "vue-demi";
+import type { BvToastOptions } from "bootstrap-vue";
+
+export interface NotificationToast extends BvToastOptions {
+ body: string | VNode | VNode[];
+ variant?: "danger" | "warning" | "success" | "info" | "primary" | "secondary";
+}
export interface MainState {
/*
@@ -27,3 +34,12 @@ export interface MainState {
};
sidebarActive: RemovableRef<boolean>;
}
+
+export interface NotificationState {
+ /*
+ --------------------------------------------------------------------------------------
+ STATE TYPE DEFINITION
+ --------------------------------------------------------------------------------------
+ */
+ notificationQueue: NotificationToast[];
+}
diff --git a/yarn.lock-workspace b/yarn.lock-workspace
index 9db12784957cc91a3d0fe25da263ba5b66380d96..6fbaf58a66a3a03b334f0073de96216e73df84ec 100644
--- a/yarn.lock-workspace
+++ b/yarn.lock-workspace
@@ -2,7 +2,7 @@
# Manual changes might be lost - proceed with caution!
__metadata:
- version: 5
+ version: 6
cacheKey: 8
"@achrinza/node-ipc@npm:9.2.2":
@@ -17,11 +17,12 @@ __metadata:
linkType: hard
"@ampproject/remapping@npm:^2.1.0":
- version: 2.1.2
- resolution: "@ampproject/remapping@npm:2.1.2"
+ version: 2.2.0
+ resolution: "@ampproject/remapping@npm:2.2.0"
dependencies:
- "@jridgewell/trace-mapping": ^0.3.0
- checksum: e023f92cdd9723f3042cde3b4d922adfeef0e198aa73486b0b6c034ad36af5f96e5c0cc72b335b30b2eb9852d907efc92af6bfcd3f4b4d286177ee32a189cf92
+ "@jridgewell/gen-mapping": ^0.1.0
+ "@jridgewell/trace-mapping": ^0.3.9
+ checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292
languageName: node
linkType: hard
@@ -34,10 +35,10 @@ __metadata:
languageName: node
linkType: hard
-"@antfu/utils@npm:^0.5.0":
- version: 0.5.0
- resolution: "@antfu/utils@npm:0.5.0"
- checksum: a5b39b556fe9e53fbc985235ea429badbacc3cd2932cce64dfe8b843b19778f0dec34db3c0d101d2364670eeacbb2bf1858149803b2eb7315cfe55737a58c9e6
+"@antfu/utils@npm:^0.5.1":
+ version: 0.5.1
+ resolution: "@antfu/utils@npm:0.5.1"
+ checksum: 54a64a1a7d451d07be2ead39dee534281f0cca35db2e72b995f4d81baedfe4c8889f428e46ebefe32c7f4444fc2d5389a5a52223fe8cef01cc98415c8ffc9491
languageName: node
linkType: hard
@@ -50,55 +51,44 @@ __metadata:
languageName: node
linkType: hard
-"@babel/compat-data@npm:^7.17.7":
- version: 7.17.7
- resolution: "@babel/compat-data@npm:7.17.7"
- checksum: bf13476676884ce9afc199747ff82f3bcd6d42a9cfb01ce91bdb762b83ea11ec619b6ec532d1a80469ab14f191f33b5d4b9f8796fa8be3bc728d42b0c5e737e3
+"@babel/compat-data@npm:^7.17.10":
+ version: 7.17.10
+ resolution: "@babel/compat-data@npm:7.17.10"
+ checksum: e85051087cd4690de5061909a2dd2d7f8b6434a3c2e30be6c119758db2027ae1845bcd75a81127423dd568b706ac6994a1a3d7d701069a23bf5cfe900728290b
languageName: node
linkType: hard
"@babel/core@npm:^7.16.10":
- version: 7.17.8
- resolution: "@babel/core@npm:7.17.8"
+ version: 7.17.10
+ resolution: "@babel/core@npm:7.17.10"
dependencies:
"@ampproject/remapping": ^2.1.0
"@babel/code-frame": ^7.16.7
- "@babel/generator": ^7.17.7
- "@babel/helper-compilation-targets": ^7.17.7
+ "@babel/generator": ^7.17.10
+ "@babel/helper-compilation-targets": ^7.17.10
"@babel/helper-module-transforms": ^7.17.7
- "@babel/helpers": ^7.17.8
- "@babel/parser": ^7.17.8
+ "@babel/helpers": ^7.17.9
+ "@babel/parser": ^7.17.10
"@babel/template": ^7.16.7
- "@babel/traverse": ^7.17.3
- "@babel/types": ^7.17.0
+ "@babel/traverse": ^7.17.10
+ "@babel/types": ^7.17.10
convert-source-map: ^1.7.0
debug: ^4.1.0
gensync: ^1.0.0-beta.2
- json5: ^2.1.2
+ json5: ^2.2.1
semver: ^6.3.0
- checksum: 0e686b1be444d25494424065238931f2b3df908bf072b72bab973acfd6d27a481fc280c9cd8a3c6fe2c46beee50e0d2307468d8b15b64dc4036f025e75f6609d
- languageName: node
- linkType: hard
-
-"@babel/generator@npm:^7.17.3":
- version: 7.17.3
- resolution: "@babel/generator@npm:7.17.3"
- dependencies:
- "@babel/types": ^7.17.0
- jsesc: ^2.5.1
- source-map: ^0.5.0
- checksum: ddf70e3489976018dfc2da8b9f43ec8c582cac2da681ed4a6227c53b26a9626223e4dca90098b3d3afe43bc67f20160856240e826c56b48e577f34a5a7e22b9f
+ checksum: 2545fb24b4090c1e9ead0daad4713ae6fe779df0843e6e286509146f4dd09958bd067d80995f2cc09fdb01fd0dc936f42cdd6f70b3d058de48e124cd9a3cc93e
languageName: node
linkType: hard
-"@babel/generator@npm:^7.17.7":
- version: 7.17.7
- resolution: "@babel/generator@npm:7.17.7"
+"@babel/generator@npm:^7.17.10":
+ version: 7.17.10
+ resolution: "@babel/generator@npm:7.17.10"
dependencies:
- "@babel/types": ^7.17.0
+ "@babel/types": ^7.17.10
+ "@jridgewell/gen-mapping": ^0.1.0
jsesc: ^2.5.1
- source-map: ^0.5.0
- checksum: e7344b9b4559115f2754ecc2ae9508412ea6a8f617544cd3d3f17cabc727bd30630765f96c8a4ebc8901ded1492a3a6c23d695a4f1e8f3042f860b30c891985c
+ checksum: 9ec596a6ffec7bec239133a4ba79d4f834e6c894019accb1c70a7a5affbec9d0912d3baef200edd9d48e553d4ef72abcbffbc73cfb7d75f327c24186e887f79c
languageName: node
linkType: hard
@@ -111,34 +101,34 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-compilation-targets@npm:^7.17.7":
- version: 7.17.7
- resolution: "@babel/helper-compilation-targets@npm:7.17.7"
+"@babel/helper-compilation-targets@npm:^7.17.10":
+ version: 7.17.10
+ resolution: "@babel/helper-compilation-targets@npm:7.17.10"
dependencies:
- "@babel/compat-data": ^7.17.7
+ "@babel/compat-data": ^7.17.10
"@babel/helper-validator-option": ^7.16.7
- browserslist: ^4.17.5
+ browserslist: ^4.20.2
semver: ^6.3.0
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 24bf851539d5ec8e73779304b5d1ad5b0be09a74459ecc7d9baee9a0fa38ad016e9eaf4b5704504ae8da32f91ce0e31857bbbd9686854caeffd38f58226d3760
+ checksum: 5f547c7ebd372e90fa72c2aaea867e7193166e9f469dec5acde4f0e18a78b80bdca8e02a0f641f3e998be984fb5b802c729a9034faaee8b1a9ef6670cb76f120
languageName: node
linkType: hard
-"@babel/helper-create-class-features-plugin@npm:^7.16.7, @babel/helper-create-class-features-plugin@npm:^7.17.6":
- version: 7.17.6
- resolution: "@babel/helper-create-class-features-plugin@npm:7.17.6"
+"@babel/helper-create-class-features-plugin@npm:^7.16.7, @babel/helper-create-class-features-plugin@npm:^7.17.9":
+ version: 7.17.9
+ resolution: "@babel/helper-create-class-features-plugin@npm:7.17.9"
dependencies:
"@babel/helper-annotate-as-pure": ^7.16.7
"@babel/helper-environment-visitor": ^7.16.7
- "@babel/helper-function-name": ^7.16.7
- "@babel/helper-member-expression-to-functions": ^7.16.7
+ "@babel/helper-function-name": ^7.17.9
+ "@babel/helper-member-expression-to-functions": ^7.17.7
"@babel/helper-optimise-call-expression": ^7.16.7
"@babel/helper-replace-supers": ^7.16.7
"@babel/helper-split-export-declaration": ^7.16.7
peerDependencies:
"@babel/core": ^7.0.0
- checksum: d85a5b3f9a18a661372d77462e6ea2a6a03f1083f8b3055ed165284214af9ea6ad677f6bcc4b5ce215da27f95fa93064580d4b6723b578c480ecf17dd31a4307
+ checksum: db7be8852096084883dbbd096f925976695e5b34919a888fded9fd359d75d9994960e459f4eeb51ff6700109f83be6c1359e57809deb3fe36fc589b2a208b6d7
languageName: node
linkType: hard
@@ -151,23 +141,13 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-function-name@npm:^7.16.7":
- version: 7.16.7
- resolution: "@babel/helper-function-name@npm:7.16.7"
+"@babel/helper-function-name@npm:^7.17.9":
+ version: 7.17.9
+ resolution: "@babel/helper-function-name@npm:7.17.9"
dependencies:
- "@babel/helper-get-function-arity": ^7.16.7
"@babel/template": ^7.16.7
- "@babel/types": ^7.16.7
- checksum: fc77cbe7b10cfa2a262d7a37dca575c037f20419dfe0c5d9317f589599ca24beb5f5c1057748011159149eaec47fe32338c6c6412376fcded68200df470161e1
- languageName: node
- linkType: hard
-
-"@babel/helper-get-function-arity@npm:^7.16.7":
- version: 7.16.7
- resolution: "@babel/helper-get-function-arity@npm:7.16.7"
- dependencies:
- "@babel/types": ^7.16.7
- checksum: 25d969fb207ff2ad5f57a90d118f6c42d56a0171022e200aaa919ba7dc95ae7f92ec71cdea6c63ef3629a0dc962ab4c78e09ca2b437185ab44539193f796e0c3
+ "@babel/types": ^7.17.0
+ checksum: a59b2e5af56d8f43b9b0019939a43774754beb7cb01a211809ca8031c71890999d07739e955343135ec566c4d8ff725435f1f60fb0af3bb546837c1f9f84f496
languageName: node
linkType: hard
@@ -180,7 +160,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-member-expression-to-functions@npm:^7.16.7":
+"@babel/helper-member-expression-to-functions@npm:^7.16.7, @babel/helper-member-expression-to-functions@npm:^7.17.7":
version: 7.17.7
resolution: "@babel/helper-member-expression-to-functions@npm:7.17.7"
dependencies:
@@ -261,13 +241,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-validator-identifier@npm:^7.14.9":
- version: 7.14.9
- resolution: "@babel/helper-validator-identifier@npm:7.14.9"
- checksum: 58552531a7674363e74672434c312ddaf1545b8a43308e1a7f38db58bf79c796c095a6dab6a6105eb0d783b97441f6cbb525bb887f29a35f232fcdbd8cb240dc
- languageName: node
- linkType: hard
-
"@babel/helper-validator-identifier@npm:^7.16.7":
version: 7.16.7
resolution: "@babel/helper-validator-identifier@npm:7.16.7"
@@ -282,52 +255,34 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helpers@npm:^7.17.8":
- version: 7.17.8
- resolution: "@babel/helpers@npm:7.17.8"
+"@babel/helpers@npm:^7.17.9":
+ version: 7.17.9
+ resolution: "@babel/helpers@npm:7.17.9"
dependencies:
"@babel/template": ^7.16.7
- "@babel/traverse": ^7.17.3
+ "@babel/traverse": ^7.17.9
"@babel/types": ^7.17.0
- checksum: 463dad58119fefebf2d0201bfa53ec9607aa00356908895640fc07589747fb3c2e0dfee4019f3e8c9781e57c9aa5dff4c72ec8d1b031c4ed8349f90b6aefe99d
+ checksum: 3c6db861e4c82fff2de3efb4ad12e32658c50c29920597cd0979390659b202e5849acd9542e0e2453167a52ccc30156ee4455d64d0e330f020d991d7551566f8
languageName: node
linkType: hard
"@babel/highlight@npm:^7.16.7":
- version: 7.16.7
- resolution: "@babel/highlight@npm:7.16.7"
+ version: 7.17.9
+ resolution: "@babel/highlight@npm:7.17.9"
dependencies:
"@babel/helper-validator-identifier": ^7.16.7
chalk: ^2.0.0
js-tokens: ^4.0.0
- checksum: f7e04e7e03b83c2cca984f4d3e180c9b018784f45d03367e94daf983861229ddc47264045f3b58dfeb0007f9c67bc2a76c4de1693bad90e5394876ef55ece5bb
- languageName: node
- linkType: hard
-
-"@babel/parser@npm:^7.16.10, @babel/parser@npm:^7.17.8":
- version: 7.17.8
- resolution: "@babel/parser@npm:7.17.8"
- bin:
- parser: ./bin/babel-parser.js
- checksum: 1771808491982cc47baa888a997aef6b58308e3844c8c00f730f8fd97defe57d32cdbf46075cd49aaee310fa31f3d2c80a0d41b41a4ee0ff336ee09e2ff6c222
- languageName: node
- linkType: hard
-
-"@babel/parser@npm:^7.16.7":
- version: 7.16.7
- resolution: "@babel/parser@npm:7.16.7"
- bin:
- parser: ./bin/babel-parser.js
- checksum: e664ff1edda164ab3f3c97fc1dd1a8930b0fba9981cbf873d3f25a22d16d50e2efcfaf81daeefa978bff2c4f268d34832f6817c8bc4e03594c3f43beba92fb68
+ checksum: 7bdf10228f2e4d18f48f114411ed584380d356e7c168d7582c14abd8df9909b2fc09e0a7cd334f47c3eb0bc17e639e0c8d9688c6afd5d09a2bdbf0ac193b11fd
languageName: node
linkType: hard
-"@babel/parser@npm:^7.17.3":
- version: 7.17.3
- resolution: "@babel/parser@npm:7.17.3"
+"@babel/parser@npm:^7.16.10, @babel/parser@npm:^7.16.7, @babel/parser@npm:^7.17.10":
+ version: 7.17.10
+ resolution: "@babel/parser@npm:7.17.10"
bin:
parser: ./bin/babel-parser.js
- checksum: 311869baef97c7630ac3b3c4600da18229b95aa2785b2daab2044384745fe0653070916ade28749fb003f7369a081111ada53e37284ba48d6b5858cbb9e411d1
+ checksum: a9493d9fb8625e0904a178703866c8ee4d3a6003f0954b08df9f772b54dae109c69376812b74732e0c3e1a7f1d5b30915577a1db12e5e16b0abee083539df574
languageName: node
linkType: hard
@@ -344,17 +299,18 @@ __metadata:
linkType: hard
"@babel/plugin-proposal-decorators@npm:^7.16.7":
- version: 7.17.8
- resolution: "@babel/plugin-proposal-decorators@npm:7.17.8"
+ version: 7.17.9
+ resolution: "@babel/plugin-proposal-decorators@npm:7.17.9"
dependencies:
- "@babel/helper-create-class-features-plugin": ^7.17.6
+ "@babel/helper-create-class-features-plugin": ^7.17.9
"@babel/helper-plugin-utils": ^7.16.7
"@babel/helper-replace-supers": ^7.16.7
+ "@babel/helper-split-export-declaration": ^7.16.7
"@babel/plugin-syntax-decorators": ^7.17.0
charcodes: ^0.2.0
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 8687de0ef0d671bc0c7e2ae0a7970055f8f6a0c8a50dcf81fe54bad85ffb59447ad7d75169f891244ef4a5a7bc2d146d753b7077635597fd998a44db632481ae
+ checksum: a3d177b88843bf73d798e4b21c1b8146bd33fd19ab56e5ab379d6670db84e172570e73bcf5a4e5a83193cfea49fed3db0015454e78f30f46d25d256c6e65a7b3
languageName: node
linkType: hard
@@ -381,13 +337,13 @@ __metadata:
linkType: hard
"@babel/plugin-syntax-typescript@npm:^7.16.7":
- version: 7.16.7
- resolution: "@babel/plugin-syntax-typescript@npm:7.16.7"
+ version: 7.17.10
+ resolution: "@babel/plugin-syntax-typescript@npm:7.17.10"
dependencies:
"@babel/helper-plugin-utils": ^7.16.7
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 661e636060609ede9a402e22603b01784c21fabb0a637e65f561c8159351fe0130bbc11fdefe31902107885e3332fc34d95eb652ac61d3f61f2d61f5da20609e
+ checksum: 43e908acf4a1e267f7bd86dc2fcb015b1fbcc364da43b125289d6a91bd32eeed41e5d9870051f7a3e4e2da9eeff7655f7988b6f27beac06bcb60c054aa5bac6d
languageName: node
linkType: hard
@@ -415,51 +371,38 @@ __metadata:
languageName: node
linkType: hard
-"@babel/traverse@npm:^7.16.7, @babel/traverse@npm:^7.17.3":
- version: 7.17.3
- resolution: "@babel/traverse@npm:7.17.3"
+"@babel/traverse@npm:^7.16.7, @babel/traverse@npm:^7.17.10, @babel/traverse@npm:^7.17.3, @babel/traverse@npm:^7.17.9":
+ version: 7.17.10
+ resolution: "@babel/traverse@npm:7.17.10"
dependencies:
"@babel/code-frame": ^7.16.7
- "@babel/generator": ^7.17.3
+ "@babel/generator": ^7.17.10
"@babel/helper-environment-visitor": ^7.16.7
- "@babel/helper-function-name": ^7.16.7
+ "@babel/helper-function-name": ^7.17.9
"@babel/helper-hoist-variables": ^7.16.7
"@babel/helper-split-export-declaration": ^7.16.7
- "@babel/parser": ^7.17.3
- "@babel/types": ^7.17.0
+ "@babel/parser": ^7.17.10
+ "@babel/types": ^7.17.10
debug: ^4.1.0
globals: ^11.1.0
- checksum: 780d7ecf711758174989794891af08d378f81febdb8932056c0d9979524bf0298e28f8e7708a872d7781151506c28f56c85c63ea3f1f654662c2fcb8a3eb9fdc
- languageName: node
- linkType: hard
-
-"@babel/types@npm:^7.16.7":
- version: 7.16.7
- resolution: "@babel/types@npm:7.16.7"
- dependencies:
- "@babel/helper-validator-identifier": ^7.16.7
- to-fast-properties: ^2.0.0
- checksum: df9210723259df9faea8c7e5674a59e57ead82664aab9f54daae887db5a50a956f30f57ed77a2d6cbb89b908d520cf8d883267c4e9098e31bc74649f2f714654
+ checksum: 44ec0a59aa274b59464d52b1796eb6e54c67ae0f946de0d608068e28b1ab7065bdf53c0169d9102854cb00aa01944c83e722f08aeab96d9cc6bf56f8aede70fd
languageName: node
linkType: hard
-"@babel/types@npm:^7.17.0":
- version: 7.17.0
- resolution: "@babel/types@npm:7.17.0"
+"@babel/types@npm:^7.16.7, @babel/types@npm:^7.17.0, @babel/types@npm:^7.17.10, @babel/types@npm:^7.8.3":
+ version: 7.17.10
+ resolution: "@babel/types@npm:7.17.10"
dependencies:
"@babel/helper-validator-identifier": ^7.16.7
to-fast-properties: ^2.0.0
- checksum: 12e5a287986fe557188e87b2c5202223f1dc83d9239a196ab936fdb9f8c1eb0be717ff19f934b5fad4e29a75586d5798f74bed209bccea1c20376b9952056f0e
+ checksum: 40cfc3f43a3ab7374df8ee6844793f804c65e7bea0fd1b090886b425106ba26e16e8fa698ae4b2caf2746083fe3e62f03f12997a5982e0d131700f17cbdcfca1
languageName: node
linkType: hard
-"@babel/types@npm:^7.8.3":
- version: 7.15.4
- resolution: "@babel/types@npm:7.15.4"
- dependencies:
- "@babel/helper-validator-identifier": ^7.14.9
- to-fast-properties: ^2.0.0
- checksum: dac7d733edf2102e97f197929693fae6025161f3edda5a0f621f69e9d0741b8596c6f2152492bef869b55d0205e214867e8730f389283e85432b8f093e295c4b
+"@colors/colors@npm:1.5.0":
+ version: 1.5.0
+ resolution: "@colors/colors@npm:1.5.0"
+ checksum: d64d5260bed1d5012ae3fc617d38d1afc0329fec05342f4e6b838f46998855ba56e0a73833f4a80fa8378c84810da254f76a8a19c39d038260dc06dc4e007425
languageName: node
linkType: hard
@@ -707,16 +650,7 @@ __metadata:
languageName: node
linkType: hard
-"@coscine/api-client@npm:^1.5.0":
- version: 1.5.1
- resolution: "@coscine/api-client@npm:1.5.1"
- dependencies:
- axios: ^0.21.1
- checksum: e17dc39bc8c5fcc3eb0ef9647556cb9e17cba59567f9e63f8ce821202363b45fcde122c651c37515b317c83930dda399afacd020ce5e8a83603e84b5b2a3fe81
- languageName: node
- linkType: hard
-
-"@coscine/api-client@npm:^1.5.2":
+"@coscine/api-client@npm:^1.5.0, @coscine/api-client@npm:^1.5.2":
version: 1.5.2
resolution: "@coscine/api-client@npm:1.5.2"
dependencies:
@@ -746,9 +680,9 @@ __metadata:
languageName: node
linkType: hard
-"@eslint/eslintrc@npm:^1.2.1":
- version: 1.2.1
- resolution: "@eslint/eslintrc@npm:1.2.1"
+"@eslint/eslintrc@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "@eslint/eslintrc@npm:1.2.2"
dependencies:
ajv: ^6.12.4
debug: ^4.3.2
@@ -759,14 +693,7 @@ __metadata:
js-yaml: ^4.1.0
minimatch: ^3.0.4
strip-json-comments: ^3.1.1
- checksum: 1f797b9f94d71b965992cf6c44e3bcb574643014fd1e3d4862d25056bd5568f59c488461a7e9a1c1758ca7f0def5d3cb69c3d8b38581bcf4a53af74371243797
- languageName: node
- linkType: hard
-
-"@gar/promisify@npm:^1.0.1":
- version: 1.1.2
- resolution: "@gar/promisify@npm:1.1.2"
- checksum: d05081e0887a49c178b75ee3067bd6ee086f73c154d121b854fb2e044e8a89cb1cbb6de3a0dd93a519b80f0531fda68b099dd7256205f7fbb3490324342f2217
+ checksum: d891036bbffb0efec1462aa4a603ed6e349d546b1632dde7d474ddd15c2a8b6895671b25293f1d3ba10ff629c24a3649ad049373fe695a0e44b612537088563c
languageName: node
linkType: hard
@@ -844,27 +771,44 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/gen-mapping@npm:^0.1.0":
+ version: 0.1.1
+ resolution: "@jridgewell/gen-mapping@npm:0.1.1"
+ dependencies:
+ "@jridgewell/set-array": ^1.0.0
+ "@jridgewell/sourcemap-codec": ^1.4.10
+ checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc
+ languageName: node
+ linkType: hard
+
"@jridgewell/resolve-uri@npm:^3.0.3":
- version: 3.0.4
- resolution: "@jridgewell/resolve-uri@npm:3.0.4"
- checksum: 799bcba2730280a42f11b4d41a5d34d68ce72cb1bd23186bd3356607c93b62765b2b050e5dfb67f04ce4e817f882bfc10a4d1c43fe2d8eeb38371c98d71217b4
+ version: 3.0.6
+ resolution: "@jridgewell/resolve-uri@npm:3.0.6"
+ checksum: e57cc08d2aaea6bd55e77e7a124beb2fcca87be28c0db6c2d69b7cb2cb4e14109bbef1d57ae6250bf5f4a4ad950f094ed99c8925adaf82336b66dab0ad6906e6
+ languageName: node
+ linkType: hard
+
+"@jridgewell/set-array@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "@jridgewell/set-array@npm:1.1.0"
+ checksum: 86ddd72ce7d2f7756dfb69804b35d0e760a85dcef30ed72e8610bf2c5e843f8878d977a0c77c4fdfa6a0e3d5b18e5bde4a1f1dd73fd2db06b200c998e9b5a6c5
languageName: node
linkType: hard
"@jridgewell/sourcemap-codec@npm:^1.4.10":
- version: 1.4.10
- resolution: "@jridgewell/sourcemap-codec@npm:1.4.10"
- checksum: 247229218edbe165dcf0a5ae0c4b81bff1b5438818bb09221f756681fe158597fdf25c2a803f9260453b299c98c7e01ddebeb1555cda3157d987cd22c08605ef
+ version: 1.4.12
+ resolution: "@jridgewell/sourcemap-codec@npm:1.4.12"
+ checksum: a179bd442e74e5e3880d5a603bb63292ba3d55b3adf64ab9f1ea8c466bb32808e8fff032362dccb1157268574db99999bf4c3e6919d69a41f1951f1a534f2f77
languageName: node
linkType: hard
-"@jridgewell/trace-mapping@npm:^0.3.0":
- version: 0.3.4
- resolution: "@jridgewell/trace-mapping@npm:0.3.4"
+"@jridgewell/trace-mapping@npm:^0.3.9":
+ version: 0.3.9
+ resolution: "@jridgewell/trace-mapping@npm:0.3.9"
dependencies:
"@jridgewell/resolve-uri": ^3.0.3
"@jridgewell/sourcemap-codec": ^1.4.10
- checksum: ab8bce84bbbc8c34f3ba8325ed926f8f2d3098983c10442a80c55764c4eb6e47d5b92d8ff20a0dd868c3e76a3535651fd8a0138182c290dbfc8396195685c37b
+ checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef
languageName: node
linkType: hard
@@ -921,74 +865,32 @@ __metadata:
languageName: node
linkType: hard
-"@npmcli/arborist@npm:*, @npmcli/arborist@npm:^4.0.0":
- version: 4.2.0
- resolution: "@npmcli/arborist@npm:4.2.0"
- dependencies:
- "@isaacs/string-locale-compare": ^1.1.0
- "@npmcli/installed-package-contents": ^1.0.7
- "@npmcli/map-workspaces": ^2.0.0
- "@npmcli/metavuln-calculator": ^2.0.0
- "@npmcli/move-file": ^1.1.0
- "@npmcli/name-from-folder": ^1.0.1
- "@npmcli/node-gyp": ^1.0.3
- "@npmcli/package-json": ^1.0.1
- "@npmcli/run-script": ^2.0.0
- bin-links: ^2.3.0
- cacache: ^15.0.3
- common-ancestor-path: ^1.0.1
- json-parse-even-better-errors: ^2.3.1
- json-stringify-nice: ^1.1.4
- mkdirp: ^1.0.4
- mkdirp-infer-owner: ^2.0.0
- npm-install-checks: ^4.0.0
- npm-package-arg: ^8.1.5
- npm-pick-manifest: ^6.1.0
- npm-registry-fetch: ^11.0.0
- pacote: ^12.0.2
- parse-conflict-json: ^2.0.1
- proc-log: ^1.0.0
- promise-all-reject-late: ^1.0.0
- promise-call-limit: ^1.0.1
- read-package-json-fast: ^2.0.2
- readdir-scoped-modules: ^1.1.0
- rimraf: ^3.0.2
- semver: ^7.3.5
- ssri: ^8.0.1
- treeverse: ^1.0.4
- walk-up-path: ^1.0.0
- bin:
- arborist: bin/index.js
- checksum: 31188be8ca264e49440ad1efe5d99330d986d571d8715907a3b04ed8ddc22f8fa36bffce055dd759514d9ee36c24413be7b96f944cb1e1c7b094f7c07bf4c195
- languageName: node
- linkType: hard
-
-"@npmcli/arborist@npm:^5.0.0, @npmcli/arborist@npm:^5.0.3":
- version: 5.0.3
- resolution: "@npmcli/arborist@npm:5.0.3"
+"@npmcli/arborist@npm:*, @npmcli/arborist@npm:^5.0.0, @npmcli/arborist@npm:^5.0.4":
+ version: 5.1.1
+ resolution: "@npmcli/arborist@npm:5.1.1"
dependencies:
"@isaacs/string-locale-compare": ^1.1.0
"@npmcli/installed-package-contents": ^1.0.7
- "@npmcli/map-workspaces": ^2.0.0
+ "@npmcli/map-workspaces": ^2.0.3
"@npmcli/metavuln-calculator": ^3.0.1
- "@npmcli/move-file": ^1.1.0
+ "@npmcli/move-file": ^2.0.0
"@npmcli/name-from-folder": ^1.0.1
- "@npmcli/node-gyp": ^1.0.3
- "@npmcli/package-json": ^1.0.1
+ "@npmcli/node-gyp": ^2.0.0
+ "@npmcli/package-json": ^2.0.0
"@npmcli/run-script": ^3.0.0
bin-links: ^3.0.0
- cacache: ^16.0.0
+ cacache: ^16.0.6
common-ancestor-path: ^1.0.1
json-parse-even-better-errors: ^2.3.1
json-stringify-nice: ^1.1.4
mkdirp: ^1.0.4
mkdirp-infer-owner: ^2.0.0
nopt: ^5.0.0
- npm-install-checks: ^4.0.0
+ npm-install-checks: ^5.0.0
npm-package-arg: ^9.0.0
npm-pick-manifest: ^7.0.0
npm-registry-fetch: ^13.0.0
- npmlog: ^6.0.1
+ npmlog: ^6.0.2
pacote: ^13.0.5
parse-conflict-json: ^2.0.1
proc-log: ^2.0.0
@@ -997,75 +899,45 @@ __metadata:
read-package-json-fast: ^2.0.2
readdir-scoped-modules: ^1.1.0
rimraf: ^3.0.2
- semver: ^7.3.5
- ssri: ^8.0.1
- treeverse: ^1.0.4
+ semver: ^7.3.7
+ ssri: ^9.0.0
+ treeverse: ^2.0.0
walk-up-path: ^1.0.0
bin:
arborist: bin/index.js
- checksum: 97569978e568668cb1658d286a02450e8002817554246aa672fa65a7234ef4088bffa8a92a06a1eac72792c684b3961bb741553fde08f36fdb510efdf365d70b
- languageName: node
- linkType: hard
-
-"@npmcli/ci-detect@npm:*, @npmcli/ci-detect@npm:^1.3.0":
- version: 1.4.0
- resolution: "@npmcli/ci-detect@npm:1.4.0"
- checksum: c262fc86dd543efb8a721dec39ab333f99861abff5850136c2dcbee58610ccb1f5e66c3c669903b1bcf0668084c1fe6c443a90490fba771223fb6db137e9bfc5
+ checksum: e6a989d3743d47444405aad943abcbb87d075184afd394cd968cc1abfe59ab0fad737f2c2417ceebf40b98d640309e8eb94c1e0fb72a6db88a52c4ff5c123ca7
languageName: node
linkType: hard
-"@npmcli/ci-detect@npm:^2.0.0":
+"@npmcli/ci-detect@npm:*, @npmcli/ci-detect@npm:^2.0.0":
version: 2.0.0
resolution: "@npmcli/ci-detect@npm:2.0.0"
checksum: 26e964eca908706c1a612915cbc5614860ac7dbfacbb07870396c82b1377794f123a7aaa821c4a68575b67ff7e3ad170e296d3aa6a5e03dbab9b3f1e61491812
languageName: node
linkType: hard
-"@npmcli/config@npm:*":
- version: 2.4.0
- resolution: "@npmcli/config@npm:2.4.0"
- dependencies:
- ini: ^2.0.0
- mkdirp-infer-owner: ^2.0.0
- nopt: ^5.0.0
- semver: ^7.3.4
- walk-up-path: ^1.0.0
- checksum: 46373eaeedff91b6d6450954d64f440bd325f49c49caa6c3378f2aaa44b3b27305693db82d1a59d861712b70286a114db519147e368e66905f72504c7ffaf897
- languageName: node
- linkType: hard
-
-"@npmcli/config@npm:^4.0.1":
- version: 4.0.1
- resolution: "@npmcli/config@npm:4.0.1"
+"@npmcli/config@npm:*, @npmcli/config@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "@npmcli/config@npm:4.1.0"
dependencies:
- "@npmcli/map-workspaces": ^2.0.1
- ini: ^2.0.0
+ "@npmcli/map-workspaces": ^2.0.2
+ ini: ^3.0.0
mkdirp-infer-owner: ^2.0.0
nopt: ^5.0.0
proc-log: ^2.0.0
read-package-json-fast: ^2.0.3
semver: ^7.3.5
walk-up-path: ^1.0.0
- checksum: a7fd2011b2c1725acef36ebfa1e1c6ef253a70adcea889a2b8a76810cfdbda5c6bb5fb153c0860cd0c65afedd097470e066e8732e4d6a2abe9f4361611df633f
+ checksum: ec0f8947e7695d246dafde2fb5bb0cb20c3cab55bbee4326468f51a3a811bfb3677517bf5f66185a10cca258938d15be0c7f30ae69f45ca6e62c938d5e309843
languageName: node
linkType: hard
-"@npmcli/disparity-colors@npm:^1.0.1":
- version: 1.0.1
- resolution: "@npmcli/disparity-colors@npm:1.0.1"
+"@npmcli/disparity-colors@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@npmcli/disparity-colors@npm:2.0.0"
dependencies:
ansi-styles: ^4.3.0
- checksum: 20aa252b2d66694050e867da92d8479192a864288c5f47443392ea34d990f6785cc4c0c5f6e89b8c297b1c2765614fc8ffe928050909f1353394d414b9b1115f
- languageName: node
- linkType: hard
-
-"@npmcli/fs@npm:^1.0.0":
- version: 1.0.0
- resolution: "@npmcli/fs@npm:1.0.0"
- dependencies:
- "@gar/promisify": ^1.0.1
- semver: ^7.3.5
- checksum: f2b4990107dd2a5b18794c89aaff6f62f3a67883d49a20602fdfc353cbc7f8c5fd50edeffdc769e454900e01b8b8e43d0b9eb524d00963d69f3c829be1a2e8ac
+ checksum: 2e85d371bb2a705c119b0eb350beab0a67ff84f13097719f20bacae7fe6d3187b9aec33b7f27553d0774a209937c5f587f049e1a5274b3288a8456357fd2a795
languageName: node
linkType: hard
@@ -1079,28 +951,12 @@ __metadata:
languageName: node
linkType: hard
-"@npmcli/git@npm:^2.0.7, @npmcli/git@npm:^2.1.0":
- version: 2.1.0
- resolution: "@npmcli/git@npm:2.1.0"
- dependencies:
- "@npmcli/promise-spawn": ^1.3.2
- lru-cache: ^6.0.0
- mkdirp: ^1.0.4
- npm-pick-manifest: ^6.1.1
- promise-inflight: ^1.0.1
- promise-retry: ^2.0.1
- semver: ^7.3.5
- which: ^2.0.2
- checksum: 1f89752df7b836f378b8828423c6ae344fe59399915b9460acded19686e2d0626246251a3cd4cc411ed21c1be6fe7f0c2195c17f392e88748581262ee806dc33
- languageName: node
- linkType: hard
-
"@npmcli/git@npm:^3.0.0":
- version: 3.0.0
- resolution: "@npmcli/git@npm:3.0.0"
+ version: 3.0.1
+ resolution: "@npmcli/git@npm:3.0.1"
dependencies:
- "@npmcli/promise-spawn": ^1.3.2
- lru-cache: ^7.3.1
+ "@npmcli/promise-spawn": ^3.0.0
+ lru-cache: ^7.4.4
mkdirp: ^1.0.4
npm-pick-manifest: ^7.0.0
proc-log: ^2.0.0
@@ -1108,11 +964,11 @@ __metadata:
promise-retry: ^2.0.1
semver: ^7.3.5
which: ^2.0.2
- checksum: 3978020d439fd2cd9a7b00ebdbbefbbe8a81b99399ac9ecdd1984d1a236f1a75fb1292f30f6a94a8f576e34419b7e240954424e68d9d8d9cde49fb8a77a16a1d
+ checksum: 0e289d11e2d6034652993f2d05f68396d8377603a1c1f983b2d0893e7591a22bcf3896a43c7dfbcc43f03c308a110f0b9ec37e0191e48b0bd1d236e0f57a3ec6
languageName: node
linkType: hard
-"@npmcli/installed-package-contents@npm:^1.0.6, @npmcli/installed-package-contents@npm:^1.0.7":
+"@npmcli/installed-package-contents@npm:^1.0.7":
version: 1.0.7
resolution: "@npmcli/installed-package-contents@npm:1.0.7"
dependencies:
@@ -1124,61 +980,37 @@ __metadata:
languageName: node
linkType: hard
-"@npmcli/map-workspaces@npm:*, @npmcli/map-workspaces@npm:^2.0.0":
- version: 2.0.0
- resolution: "@npmcli/map-workspaces@npm:2.0.0"
- dependencies:
- "@npmcli/name-from-folder": ^1.0.1
- glob: ^7.1.6
- minimatch: ^3.0.4
- read-package-json-fast: ^2.0.1
- checksum: 33707f80cc556aca2d748e228bbe62b6d7ae4a6e95b18b94ca64dd72e9c071ace29e7dd140bce4c2f96a238e40030212ee0ac00dda6026c7b2e23b2f173d75c8
- languageName: node
- linkType: hard
-
-"@npmcli/map-workspaces@npm:^2.0.1, @npmcli/map-workspaces@npm:^2.0.2":
- version: 2.0.2
- resolution: "@npmcli/map-workspaces@npm:2.0.2"
+"@npmcli/map-workspaces@npm:*, @npmcli/map-workspaces@npm:^2.0.2, @npmcli/map-workspaces@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "@npmcli/map-workspaces@npm:2.0.3"
dependencies:
"@npmcli/name-from-folder": ^1.0.1
- glob: ^7.2.0
+ glob: ^8.0.1
minimatch: ^5.0.1
read-package-json-fast: ^2.0.3
- checksum: 0de1c757c0067eda1d0ab7ee71749d9066b7c8159ec631ed38cd0fe444e984255fb24c412e3a592724feb823fd40d5caffe28165139fcca93b504c33b50c2bc0
- languageName: node
- linkType: hard
-
-"@npmcli/metavuln-calculator@npm:^2.0.0":
- version: 2.0.0
- resolution: "@npmcli/metavuln-calculator@npm:2.0.0"
- dependencies:
- cacache: ^15.0.5
- json-parse-even-better-errors: ^2.3.1
- pacote: ^12.0.0
- semver: ^7.3.2
- checksum: bf88115e7c52a5fcf9d3f06d47eeb18acb6077327ee035661b6e4c26102b5e963aa3461679a50fb54427ff4526284a8fdebc743689dd7d71d8ee3814e8f341ee
+ checksum: c9878a22168d3f2d8df9e339ed0799628db3ea8502bd623b5bbe7b0dfcac065b3310e4093df94667a4a28ef2c54c02ce6956467a8aaa2e150305f2fe1cd64f9d
languageName: node
linkType: hard
"@npmcli/metavuln-calculator@npm:^3.0.1":
- version: 3.0.1
- resolution: "@npmcli/metavuln-calculator@npm:3.0.1"
+ version: 3.1.0
+ resolution: "@npmcli/metavuln-calculator@npm:3.1.0"
dependencies:
cacache: ^16.0.0
json-parse-even-better-errors: ^2.3.1
pacote: ^13.0.3
semver: ^7.3.5
- checksum: 9f139806ed20d3c46d010ec512c339380d88d3774130dbc0067b5b3fd2b39649bb05c87c55d325e26c8f21e58b16d2b20c9ff1fbaa54d22422ab76e64ce594c5
+ checksum: 39fb474e239d3f221178f0c2f6089cd4a2fce8183343b7f52f8f9fe0b3cb0a98b386b15c9afe63a0b0dc2ae5302497d00eb2de2f4b3431953dbf05e69d613c9a
languageName: node
linkType: hard
-"@npmcli/move-file@npm:^1.0.1, @npmcli/move-file@npm:^1.1.0, @npmcli/move-file@npm:^1.1.2":
- version: 1.1.2
- resolution: "@npmcli/move-file@npm:1.1.2"
+"@npmcli/move-file@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@npmcli/move-file@npm:2.0.0"
dependencies:
mkdirp: ^1.0.4
rimraf: ^3.0.2
- checksum: c96381d4a37448ea280951e46233f7e541058cf57a57d4094dd4bdcaae43fa5872b5f2eb6bfb004591a68e29c5877abe3cdc210cb3588cbf20ab2877f31a7de7
+ checksum: 1388777b507b0c592d53f41b9d182e1a8de7763bc625fc07999b8edbc22325f074e5b3ec90af79c89d6987fdb2325bc66d59f483258543c14a43661621f841b0
languageName: node
linkType: hard
@@ -1189,52 +1021,40 @@ __metadata:
languageName: node
linkType: hard
-"@npmcli/node-gyp@npm:^1.0.2, @npmcli/node-gyp@npm:^1.0.3":
- version: 1.0.3
- resolution: "@npmcli/node-gyp@npm:1.0.3"
- checksum: 496d5eef2e90e34bb07e96adbcbbce3dba5370ae87e8c46ff5b28570848f35470c8e008b8f69e50863632783e0a9190e6f55b2e4b049c537142821153942d26a
+"@npmcli/node-gyp@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@npmcli/node-gyp@npm:2.0.0"
+ checksum: b6bbf0015000f9b64d31aefdc30f244b0348c57adb64017667e0304e96c38644d83da46a4581252652f5d606268df49118f9c9993b41d8020f62b7b15dd2c8d8
languageName: node
linkType: hard
-"@npmcli/package-json@npm:*, @npmcli/package-json@npm:^1.0.1":
- version: 1.0.1
- resolution: "@npmcli/package-json@npm:1.0.1"
+"@npmcli/package-json@npm:*, @npmcli/package-json@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@npmcli/package-json@npm:2.0.0"
dependencies:
json-parse-even-better-errors: ^2.3.1
- checksum: 08b66c8ddb1d6b678975a83006d2fe5070b3013bcb68ea9d54c0142538a614596ddfd1143183fbb8f82c5cecf477d98f3c4e473ef34df3bbf3814e97e37e18d3
+ checksum: 7a598e42d2778654ec87438ebfafbcbafbe5a5f5e89ed2ca1db6ca3f94ef14655e304aa41f77632a2a3f5c66b6bd5960bd9370e0ceb4902ea09346720364f9e4
languageName: node
linkType: hard
-"@npmcli/promise-spawn@npm:^1.2.0, @npmcli/promise-spawn@npm:^1.3.2":
- version: 1.3.2
- resolution: "@npmcli/promise-spawn@npm:1.3.2"
+"@npmcli/promise-spawn@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "@npmcli/promise-spawn@npm:3.0.0"
dependencies:
infer-owner: ^1.0.4
- checksum: 543b7c1e26230499b4100b10d45efa35b1077e8f25595050f34930ca3310abe9524f7387279fe4330139e0f28a0207595245503439276fd4b686cca2b6503080
- languageName: node
- linkType: hard
-
-"@npmcli/run-script@npm:*, @npmcli/run-script@npm:^2.0.0":
- version: 2.0.0
- resolution: "@npmcli/run-script@npm:2.0.0"
- dependencies:
- "@npmcli/node-gyp": ^1.0.2
- "@npmcli/promise-spawn": ^1.3.2
- node-gyp: ^8.2.0
- read-package-json-fast: ^2.0.1
- checksum: c016ea9411e434d84e9bb9c30814c2868eee3ff32625f3e1af4671c3abfe0768739ffb2dba5520da926ae44315fc5f507b744f0626a80bc9461f2f19760e5fa0
+ checksum: 3454465a2731cea5875ba51f80873e2205e5bd878c31517286b0ede4ea931c7bf3de895382287e906d03710fff6f9e44186bd0eee068ce578901c5d3b58e7692
languageName: node
linkType: hard
-"@npmcli/run-script@npm:^3.0.0, @npmcli/run-script@npm:^3.0.1":
- version: 3.0.1
- resolution: "@npmcli/run-script@npm:3.0.1"
+"@npmcli/run-script@npm:*, @npmcli/run-script@npm:^3.0.0, @npmcli/run-script@npm:^3.0.1":
+ version: 3.0.2
+ resolution: "@npmcli/run-script@npm:3.0.2"
dependencies:
- "@npmcli/node-gyp": ^1.0.3
- "@npmcli/promise-spawn": ^1.3.2
+ "@npmcli/node-gyp": ^2.0.0
+ "@npmcli/promise-spawn": ^3.0.0
node-gyp: ^9.0.0
read-package-json-fast: ^2.0.3
- checksum: 81fd97182ef84d976f3e808f6aac0cec0ec4096fcfad59f606f4068aa1b4f79d510354804459467c1f98c453a5739937f88e1141a30450d4379bf175f23d46a1
+ checksum: b874637640b6a025611eb46de45f0df6b599bb97925370b81430a3fc0f900e1b0d31510b6d75a4b3821d41a6915912be1102afe7fef5028f15a35a447e9d2005
languageName: node
linkType: hard
@@ -1261,17 +1081,17 @@ __metadata:
linkType: hard
"@octokit/core@npm:^3.5.1":
- version: 3.5.1
- resolution: "@octokit/core@npm:3.5.1"
+ version: 3.6.0
+ resolution: "@octokit/core@npm:3.6.0"
dependencies:
"@octokit/auth-token": ^2.4.4
"@octokit/graphql": ^4.5.8
- "@octokit/request": ^5.6.0
+ "@octokit/request": ^5.6.3
"@octokit/request-error": ^2.0.5
"@octokit/types": ^6.0.3
before-after-hook: ^2.2.0
universal-user-agent: ^6.0.0
- checksum: 67179739fc9712b201f2400f132287a2c56a18506e00900bc9d2a3f742b74f1ba69ad998e42f28f3964c0bd1d5478232c1ec7b485c97702b821fbe22b76afa90
+ checksum: f81160129037bd8555d47db60cd5381637b7e3602ad70735a7bdf8f3d250c7b7114a666bb12ef7a8746a326a5d72ed30a1b8f8a5a170007f7285c8e217bef1f0
languageName: node
linkType: hard
@@ -1347,17 +1167,17 @@ __metadata:
languageName: node
linkType: hard
-"@octokit/request@npm:^5.6.0":
- version: 5.6.2
- resolution: "@octokit/request@npm:5.6.2"
+"@octokit/request@npm:^5.6.0, @octokit/request@npm:^5.6.3":
+ version: 5.6.3
+ resolution: "@octokit/request@npm:5.6.3"
dependencies:
"@octokit/endpoint": ^6.0.1
"@octokit/request-error": ^2.1.0
"@octokit/types": ^6.16.1
is-plain-object: ^5.0.0
- node-fetch: ^2.6.1
+ node-fetch: ^2.6.7
universal-user-agent: ^6.0.0
- checksum: 51ef3ad244b3d89ffd6d997fa0ed3e13a7a93b4c868ce5c53b0fcc93a654965135528e62d0720ebfeb7dfd586448a4a45d08fd75ba2e170cfa19d37834e49f1f
+ checksum: c0b4542eb4baaf880d673c758d3e0b5c4a625a4ae30abf40df5548b35f1ff540edaac74625192b1aff42a79ac661e774da4ab7d5505f1cb4ef81239b1e8510c5
languageName: node
linkType: hard
@@ -1446,12 +1266,12 @@ __metadata:
linkType: hard
"@rollup/pluginutils@npm:^4.1.1":
- version: 4.2.0
- resolution: "@rollup/pluginutils@npm:4.2.0"
+ version: 4.2.1
+ resolution: "@rollup/pluginutils@npm:4.2.1"
dependencies:
estree-walker: ^2.0.1
picomatch: ^2.2.2
- checksum: 2e86d9bfb95919727bcba0bbbdbedc98e25a1e51fe3047f18ec6d85e0743d1c73e1c0de3f9fdbd2ff6b90c32f30d4b2706c9e794f3c2e7a80156980081558e2e
+ checksum: 6bc41f22b1a0f1efec3043899e4d3b6b1497b3dea4d94292d8f83b4cf07a1073ecbaedd562a22d11913ff7659f459677b01b09e9598a98936e746780ecc93a12
languageName: node
linkType: hard
@@ -1505,8 +1325,8 @@ __metadata:
linkType: hard
"@semantic-release/github@npm:^8.0.0":
- version: 8.0.2
- resolution: "@semantic-release/github@npm:8.0.2"
+ version: 8.0.4
+ resolution: "@semantic-release/github@npm:8.0.4"
dependencies:
"@octokit/rest": ^18.0.0
"@semantic-release/error": ^2.2.0
@@ -1526,7 +1346,7 @@ __metadata:
url-join: ^4.0.0
peerDependencies:
semantic-release: ">=18.0.0-beta.1"
- checksum: 260ecf3fc0aaf2dad87ba85aadf779083015b8c413f8526c28cf10a9cc0c0faa72ddc742ea1170c848985f33d5f3adfe67c2a171e658c13d3819253e701a9231
+ checksum: e344b26f12891fe7ba157473d1c9c4ceebe2165cc0ba64fef36e20bc857694afe5e9c4bf196301b7b6fea2686c6a995949dc30d35d52120a8b6fef6016d76714
languageName: node
linkType: hard
@@ -1634,13 +1454,6 @@ __metadata:
languageName: node
linkType: hard
-"@tootallnate/once@npm:1":
- version: 1.1.2
- resolution: "@tootallnate/once@npm:1.1.2"
- checksum: e1fb1bbbc12089a0cb9433dc290f97bddd062deadb6178ce9bcb93bb7c1aecde5e60184bc7065aec42fe1663622a213493c48bbd4972d931aae48315f18e1be9
- languageName: node
- linkType: hard
-
"@tootallnate/once@npm:2":
version: 2.0.0
resolution: "@tootallnate/once@npm:2.0.0"
@@ -1661,11 +1474,11 @@ __metadata:
linkType: hard
"@types/clownface@npm:*":
- version: 1.2.6
- resolution: "@types/clownface@npm:1.2.6"
+ version: 1.5.0
+ resolution: "@types/clownface@npm:1.5.0"
dependencies:
rdf-js: ^4.0.2
- checksum: 6bd310f8395fe1d3e16afbe4faa2be67e00ee3823764aa8f8a8b61b8c5805fd5afe5c8ba1a2665c431f94fc68143e4dd5434e712eaa1238e9fd07eafe049d2da
+ checksum: 2270532edf6d27adce48bda7edf8e019cf585e4dddc47d7f207a619c01aa481885f26ed217d35f73aa8c23bc93f53edfebda7db3f1b556564041579e48b0d39c
languageName: node
linkType: hard
@@ -1702,10 +1515,17 @@ __metadata:
languageName: node
linkType: hard
+"@types/json-buffer@npm:~3.0.0":
+ version: 3.0.0
+ resolution: "@types/json-buffer@npm:3.0.0"
+ checksum: 6b0a371dd603f0eec9d00874574bae195382570e832560dadf2193ee0d1062b8e0694bbae9798bc758632361c227b1e3b19e3bd914043b498640470a2da38b77
+ languageName: node
+ linkType: hard
+
"@types/json-schema@npm:^7.0.9":
- version: 7.0.10
- resolution: "@types/json-schema@npm:7.0.10"
- checksum: 369f12207298e3c8931100ab86c9c60d9217ab930a8ae0b851495f4f30695d3f0eb431eedc8e8d9c69357869899ea0fe6f9d65ddde5ea70415d67ef340dfdd1f
+ version: 7.0.11
+ resolution: "@types/json-schema@npm:7.0.11"
+ checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d
languageName: node
linkType: hard
@@ -1717,18 +1537,18 @@ __metadata:
linkType: hard
"@types/keyv@npm:*":
- version: 3.1.3
- resolution: "@types/keyv@npm:3.1.3"
+ version: 3.1.4
+ resolution: "@types/keyv@npm:3.1.4"
dependencies:
"@types/node": "*"
- checksum: b5f8aa592cc21c16d99e69aec0976f12b893b055e4456d90148a610a6b6088e297b2ba5f38f8c8280cef006cfd8f9ec99e069905020882619dc5fc8aa46f5f27
+ checksum: e009a2bfb50e90ca9b7c6e8f648f8464067271fd99116f881073fa6fa76dc8d0133181dd65e6614d5fb1220d671d67b0124aef7d97dc02d7e342ab143a47779d
languageName: node
linkType: hard
"@types/lodash@npm:^4.14.178":
- version: 4.14.180
- resolution: "@types/lodash@npm:4.14.180"
- checksum: fc42ae3473695cac6e91553f832fef8eb51a31c1c0381cafa81b00dc3efe18e279786bdda77caf0b90a8340ba2ba7aa46ae6541d69870565f775d04c89128bc1
+ version: 4.14.182
+ resolution: "@types/lodash@npm:4.14.182"
+ checksum: 7dd137aa9dbabd632408bd37009d984655164fa1ecc3f2b6eb94afe35bf0a5852cbab6183148d883e9c73a958b7fec9a9bcf7c8e45d41195add6a18c34958209
languageName: node
linkType: hard
@@ -1757,9 +1577,9 @@ __metadata:
linkType: hard
"@types/node@npm:*":
- version: 17.0.7
- resolution: "@types/node@npm:17.0.7"
- checksum: 3cb3024f8c12152f609fabadd66d55e1b02f2a1fd61ae859755d493f01f0e15e66f71784e2f1dac57133415083a426effd12210eb4ed4f2a35d190836eb789ae
+ version: 17.0.31
+ resolution: "@types/node@npm:17.0.31"
+ checksum: 704618350f8420d5c47db0f7778398e821b7724369946f5c441a7e6b9343295553936400eb8309f0b07d5e39c240988ab3456b983712ca86265dabc9aee4ad3d
languageName: node
linkType: hard
@@ -1819,10 +1639,10 @@ __metadata:
languageName: node
linkType: hard
-"@types/retry@npm:^0.12.0":
- version: 0.12.1
- resolution: "@types/retry@npm:0.12.1"
- checksum: 5f46b2556053655f78262bb33040dc58417c900457cc63ff37d6c35349814471453ef511af0cec76a540c601296cd2b22f64bab1ab649c0dacc0223765ba876c
+"@types/retry@npm:0.12.0":
+ version: 0.12.0
+ resolution: "@types/retry@npm:0.12.0"
+ checksum: 61a072c7639f6e8126588bf1eb1ce8835f2cb9c2aba795c4491cf6310e013267b0c8488039857c261c387e9728c1b43205099223f160bb6a76b4374f741b5603
languageName: node
linkType: hard
@@ -1868,12 +1688,12 @@ __metadata:
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^5.15.0":
- version: 5.16.0
- resolution: "@typescript-eslint/eslint-plugin@npm:5.16.0"
+ version: 5.22.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:5.22.0"
dependencies:
- "@typescript-eslint/scope-manager": 5.16.0
- "@typescript-eslint/type-utils": 5.16.0
- "@typescript-eslint/utils": 5.16.0
+ "@typescript-eslint/scope-manager": 5.22.0
+ "@typescript-eslint/type-utils": 5.22.0
+ "@typescript-eslint/utils": 5.22.0
debug: ^4.3.2
functional-red-black-tree: ^1.0.1
ignore: ^5.1.8
@@ -1886,53 +1706,42 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 4007cc1599503424037300e7401fb969ca441b122ef8a8f2fc8d70f84d656fdf7ab7b0d00e506a3aaf702871616c3756da17eb1508ff315dfb25170f2d28a904
- languageName: node
- linkType: hard
-
-"@typescript-eslint/experimental-utils@npm:^5.0.0":
- version: 5.16.0
- resolution: "@typescript-eslint/experimental-utils@npm:5.16.0"
- dependencies:
- "@typescript-eslint/utils": 5.16.0
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- checksum: 2e51aac3ebcfb781b0899f1068b686fd425270218ae63d719af053595cf047b6d97c575a62ad51da8836779690a37c3b62ecd5e7f00ab1e693d65c7fbfab03aa
+ checksum: 3b083f7003f091c3ef7b3970dca9cfd507ab8c52a9b8a52259c630010adf765e9766f0e6fd9c901fc0e807319a4e8c003e12287b1f12a4b9eb4d7222e8d6db83
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^5.15.0":
- version: 5.16.0
- resolution: "@typescript-eslint/parser@npm:5.16.0"
+ version: 5.22.0
+ resolution: "@typescript-eslint/parser@npm:5.22.0"
dependencies:
- "@typescript-eslint/scope-manager": 5.16.0
- "@typescript-eslint/types": 5.16.0
- "@typescript-eslint/typescript-estree": 5.16.0
+ "@typescript-eslint/scope-manager": 5.22.0
+ "@typescript-eslint/types": 5.22.0
+ "@typescript-eslint/typescript-estree": 5.22.0
debug: ^4.3.2
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
- checksum: 40006578e9ac451c80dc4b4b7e29af97b53fb9e9ea660d6ca17fb98b5c9858c648f9b17523c9de9b9b9e4155af17b65435e6163f02c4a2dfacf48274f45cba21
+ checksum: 28a7d4b73154fc97336be9a4efd5ffdc659f748232c82479909e86ed87ed8a78d23280b3aaf532ca4e735caaffac43d9576e6af2dfd11865e30a9d70c8a3f275
languageName: node
linkType: hard
-"@typescript-eslint/scope-manager@npm:5.16.0":
- version: 5.16.0
- resolution: "@typescript-eslint/scope-manager@npm:5.16.0"
+"@typescript-eslint/scope-manager@npm:5.22.0":
+ version: 5.22.0
+ resolution: "@typescript-eslint/scope-manager@npm:5.22.0"
dependencies:
- "@typescript-eslint/types": 5.16.0
- "@typescript-eslint/visitor-keys": 5.16.0
- checksum: 008a6607d3e6ebcc59a9b28cddcc25703f39a88e27a96c69a6d988acc50a1ea7dbf50963c165ffa5b85a101209a0da3a7ec6832633a162ca4ecc78c0e54acd9f
+ "@typescript-eslint/types": 5.22.0
+ "@typescript-eslint/visitor-keys": 5.22.0
+ checksum: ebf2ad44f4e5a4dfd55225419804f81f68056086c20f1549adbcca4236634eac3aae461e30d6cab6539ce6f42346ed6e1fbbb2710d2cc058a3283ef91a0fe174
languageName: node
linkType: hard
-"@typescript-eslint/type-utils@npm:5.16.0":
- version: 5.16.0
- resolution: "@typescript-eslint/type-utils@npm:5.16.0"
+"@typescript-eslint/type-utils@npm:5.22.0":
+ version: 5.22.0
+ resolution: "@typescript-eslint/type-utils@npm:5.22.0"
dependencies:
- "@typescript-eslint/utils": 5.16.0
+ "@typescript-eslint/utils": 5.22.0
debug: ^4.3.2
tsutils: ^3.21.0
peerDependencies:
@@ -1940,23 +1749,23 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 86d9f1dff6a096c8465453b8c7d0cc667b87a769f19073bfa9bbd36f8baa772c0384ec396b1132052383846bbbcf0d051345ed7d373260c1b506ed27100b383d
+ checksum: 7128085bfbeca3a9646a795a34730cdfeca110bc00240569f6a7b3dc0854680afa56e015715675a78198b414de869339bd6036cc33cb14903919780a60321a95
languageName: node
linkType: hard
-"@typescript-eslint/types@npm:5.16.0":
- version: 5.16.0
- resolution: "@typescript-eslint/types@npm:5.16.0"
- checksum: 0450125741c3eef9581da0b75b4a987a633d77009cfb03507c3db29885b790ee80e3c0efc4f9a0dd3376ba758b49c7829722676153472616a57bb04bce5cc4fa
+"@typescript-eslint/types@npm:5.22.0":
+ version: 5.22.0
+ resolution: "@typescript-eslint/types@npm:5.22.0"
+ checksum: 74f822c5a3b96bba05229eea4ed370c4bd48b17f475c37f08d6ba708adf65c3aa026bb544f1d0308c96e043b30015e396fd53b1e8e4e9fbb6dc9c92d2ccc0a15
languageName: node
linkType: hard
-"@typescript-eslint/typescript-estree@npm:5.16.0":
- version: 5.16.0
- resolution: "@typescript-eslint/typescript-estree@npm:5.16.0"
+"@typescript-eslint/typescript-estree@npm:5.22.0":
+ version: 5.22.0
+ resolution: "@typescript-eslint/typescript-estree@npm:5.22.0"
dependencies:
- "@typescript-eslint/types": 5.16.0
- "@typescript-eslint/visitor-keys": 5.16.0
+ "@typescript-eslint/types": 5.22.0
+ "@typescript-eslint/visitor-keys": 5.22.0
debug: ^4.3.2
globby: ^11.0.4
is-glob: ^4.0.3
@@ -1965,33 +1774,33 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 930ead4655712c3bd40885fb6b2074cd3c10fb03da864dd7a7dd2e43abfd330bb07e505f0aec8b4846178bff8befbb017f9f3370c67e9c717e4cb8d3df6e16ef
+ checksum: 2797a79d7d32a9a547b7f1de77a353d8e8c8519791f865f5e061bfc4918d12cdaddec51afa015f5aac5d068ef525c92bd65afc83b84dc9e52e697303acf0873a
languageName: node
linkType: hard
-"@typescript-eslint/utils@npm:5.16.0":
- version: 5.16.0
- resolution: "@typescript-eslint/utils@npm:5.16.0"
+"@typescript-eslint/utils@npm:5.22.0, @typescript-eslint/utils@npm:^5.10.2":
+ version: 5.22.0
+ resolution: "@typescript-eslint/utils@npm:5.22.0"
dependencies:
"@types/json-schema": ^7.0.9
- "@typescript-eslint/scope-manager": 5.16.0
- "@typescript-eslint/types": 5.16.0
- "@typescript-eslint/typescript-estree": 5.16.0
+ "@typescript-eslint/scope-manager": 5.22.0
+ "@typescript-eslint/types": 5.22.0
+ "@typescript-eslint/typescript-estree": 5.22.0
eslint-scope: ^5.1.1
eslint-utils: ^3.0.0
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- checksum: 46749091a204d7cf80d81b04704e23a86903a142a7e35cc5068a821c147c3bf098a7eff99af2b0e2ea7310013ca90300db9bab33ae5e3b5f773ed1d2961a5ed4
+ checksum: 5019485e76d754a7a60c042545fd884dc666fddf9d4223ff706bbf0c275f19ea25a6b210fb5cf7ed368b019fe538fd854a925e9c6f12007d51b1731a29d95cc1
languageName: node
linkType: hard
-"@typescript-eslint/visitor-keys@npm:5.16.0":
- version: 5.16.0
- resolution: "@typescript-eslint/visitor-keys@npm:5.16.0"
+"@typescript-eslint/visitor-keys@npm:5.22.0":
+ version: 5.22.0
+ resolution: "@typescript-eslint/visitor-keys@npm:5.22.0"
dependencies:
- "@typescript-eslint/types": 5.16.0
+ "@typescript-eslint/types": 5.22.0
eslint-visitor-keys: ^3.0.0
- checksum: b587bf3b0da95bb58ff877b75fefcee6472222de1e3ec76aa4b94cae66078b62a372c7d0343374a16aab15cdcbae3f9e019624028b35827f68ef6559389f7fd0
+ checksum: d30dfa98dcce75da49a6a204a0132d42e63228c35681cb9b3643e47a0a24a633e259832d48d101265bd85b8eb5a9f2b4858f9447646c1d3df6a2ac54258dfe8f
languageName: node
linkType: hard
@@ -2167,18 +1976,18 @@ __metadata:
linkType: hard
"@vue/composition-api@npm:^1.4.5":
- version: 1.4.9
- resolution: "@vue/composition-api@npm:1.4.9"
+ version: 1.6.0
+ resolution: "@vue/composition-api@npm:1.6.0"
peerDependencies:
vue: ">= 2.5 < 3"
- checksum: 08853aee4326804f9b8e53d7abc53bbcfc44e1b9df260644656ae39803b4c3427d5deeb87821413a1e82737704447743cf573315f3f4f038c2b29c7cf6cd5910
+ checksum: ffbd1ba769e58f8ab69ef94fbe9fb956924c5cb3d5fac5ecb2991595348f9d0e15456d0a971bdaf547ed9f6cd5690082ff2705d2439cf7569165a648837fe308
languageName: node
linkType: hard
-"@vue/devtools-api@npm:^6.1.0":
- version: 6.1.3
- resolution: "@vue/devtools-api@npm:6.1.3"
- checksum: 1ed9171ef889eb94ab69715ecb5c03c3d5df4639c02aac9ae35f880e186de2fdc7dfe1d1efd945878131871815fc88aeeaf64dac58ec31e09a96ec5f5e484bf9
+"@vue/devtools-api@npm:^6.1.4":
+ version: 6.1.4
+ resolution: "@vue/devtools-api@npm:6.1.4"
+ checksum: 027bb138b03ec7147dd15e5d0ef28d5b72c822530396cc8a86bc6fdb049dc6850314b9e897e497064e3ed47fad229a18141f56b8b8ca3d41092a576dc5b6538d
languageName: node
linkType: hard
@@ -2425,29 +2234,29 @@ __metadata:
languageName: node
linkType: hard
-"@windicss/config@npm:1.8.3":
- version: 1.8.3
- resolution: "@windicss/config@npm:1.8.3"
+"@windicss/config@npm:1.8.4":
+ version: 1.8.4
+ resolution: "@windicss/config@npm:1.8.4"
dependencies:
- debug: ^4.3.3
+ debug: ^4.3.4
jiti: ^1.13.0
windicss: ^3.5.1
- checksum: e60cbb3eff1a5a5a02b302af2bed3f1fbadf82ab25821db05b950befee85e55df8bb24cdc54bf70a0e402781c958af4b009bc9ed4938a9e00c545b69e2658463
+ checksum: 2913d34ce205c6d337b0bc3d2f138260811b16df5dbb0a54a067a29b87d1067a8be0d2575a18a077445629d0589a8c9a22b3df7dac81f880154dd859436f9a72
languageName: node
linkType: hard
-"@windicss/plugin-utils@npm:1.8.3":
- version: 1.8.3
- resolution: "@windicss/plugin-utils@npm:1.8.3"
+"@windicss/plugin-utils@npm:1.8.4":
+ version: 1.8.4
+ resolution: "@windicss/plugin-utils@npm:1.8.4"
dependencies:
- "@antfu/utils": ^0.5.0
- "@windicss/config": 1.8.3
- debug: ^4.3.3
+ "@antfu/utils": ^0.5.1
+ "@windicss/config": 1.8.4
+ debug: ^4.3.4
fast-glob: ^3.2.11
- magic-string: ^0.25.7
- micromatch: ^4.0.4
+ magic-string: ^0.26.1
+ micromatch: ^4.0.5
windicss: ^3.5.1
- checksum: 9af4cd77b0efd38d671cb64a26ba18c4995d884e5ed31d2fab49170d565cfb5d0efd59525ef1d98dc756872da5b4eff424ccd99b04cf2735280723545789a246
+ checksum: 1fdd8b50b73d4e0dd5efd733acc53d94158c5ecce671386e0703bc9415a495e6a7e16682c18dd05f99c4677af97e041c79b3268ccc912ccbb6ecec895c2dcfd3
languageName: node
linkType: hard
@@ -2511,12 +2320,12 @@ __metadata:
languageName: node
linkType: hard
-"acorn@npm:^8.7.0":
- version: 8.7.0
- resolution: "acorn@npm:8.7.0"
+"acorn@npm:^8.5.0, acorn@npm:^8.7.0":
+ version: 8.7.1
+ resolution: "acorn@npm:8.7.1"
bin:
acorn: bin/acorn
- checksum: e0f79409d68923fbf1aa6d4166f3eedc47955320d25c89a20cc822e6ba7c48c5963d5bc657bc242d68f7a4ac9faf96eef033e8f73656da6c640d4219935fdfd0
+ checksum: aca0aabf98826717920ac2583fdcad0a6fbe4e583fdb6e843af2594e907455aeafe30b1e14f1757cd83ce1776773cf8296ffc3a4acf13f0bd3dfebcf1db6ae80
languageName: node
linkType: hard
@@ -2529,17 +2338,6 @@ __metadata:
languageName: node
linkType: hard
-"agentkeepalive@npm:^4.1.3":
- version: 4.1.4
- resolution: "agentkeepalive@npm:4.1.4"
- dependencies:
- debug: ^4.1.0
- depd: ^1.1.2
- humanize-ms: ^1.2.1
- checksum: d49c24d4b333e9507119385895a583872f4f53d62764a89be165926e824056a126955bae4a6d3c6f7cd26f4089621a40f7b27675f7868214d82118f744b9e82d
- languageName: node
- linkType: hard
-
"agentkeepalive@npm:^4.2.1":
version: 4.2.1
resolution: "agentkeepalive@npm:4.2.1"
@@ -2609,24 +2407,10 @@ __metadata:
languageName: node
linkType: hard
-"ansi-regex@npm:^2.0.0":
- version: 2.1.1
- resolution: "ansi-regex@npm:2.1.1"
- checksum: 190abd03e4ff86794f338a31795d262c1dfe8c91f7e01d04f13f646f1dcb16c5800818f886047876f1272f065570ab86b24b99089f8b68a0e11ff19aed4ca8f1
- languageName: node
- linkType: hard
-
-"ansi-regex@npm:^3.0.0":
- version: 3.0.0
- resolution: "ansi-regex@npm:3.0.0"
- checksum: 2ad11c416f81c39f5c65eafc88cf1d71aa91d76a2f766e75e457c2a3c43e8a003aadbf2966b61c497aa6a6940a36412486c975b3270cdfc3f413b69826189ec3
- languageName: node
- linkType: hard
-
"ansi-regex@npm:^4.1.0":
- version: 4.1.0
- resolution: "ansi-regex@npm:4.1.0"
- checksum: 97aa4659538d53e5e441f5ef2949a3cffcb838e57aeaad42c4194e9d7ddb37246a6526c4ca85d3940a9d1e19b11cc2e114530b54c9d700c8baf163c31779baf8
+ version: 4.1.1
+ resolution: "ansi-regex@npm:4.1.1"
+ checksum: b1a6ee44cb6ecdabaa770b2ed500542714d4395d71c7e5c25baa631f680fb2ad322eb9ba697548d498a6fd366949fc8b5bfcf48d49a32803611f648005b01888
languageName: node
linkType: hard
@@ -2676,7 +2460,7 @@ __metadata:
languageName: node
linkType: hard
-"ansistyles@npm:*, ansistyles@npm:~0.1.3":
+"ansistyles@npm:*":
version: 0.1.3
resolution: "ansistyles@npm:0.1.3"
checksum: 0072507f97e46cc3cb71439f1c0935ceec5c8bca812ebb5034b9f8f6a9ee7d65cdc150c375b8d56643fc8305a08542f6df3a1cd6c80e32eba0b27c4e72da4efd
@@ -2710,7 +2494,7 @@ __metadata:
languageName: node
linkType: hard
-"aproba@npm:^1.0.3, aproba@npm:^1.1.1":
+"aproba@npm:^1.1.1":
version: 1.2.0
resolution: "aproba@npm:1.2.0"
checksum: 0fca141966559d195072ed047658b6e6c4fe92428c385dd38e288eacfc55807e7b4989322f030faff32c0f46bb0bc10f1e0ac32ec22d25315a1e5bbc0ebb76dc
@@ -2724,16 +2508,6 @@ __metadata:
languageName: node
linkType: hard
-"are-we-there-yet@npm:^2.0.0":
- version: 2.0.0
- resolution: "are-we-there-yet@npm:2.0.0"
- dependencies:
- delegates: ^1.0.0
- readable-stream: ^3.6.0
- checksum: 6c80b4fd04ecee6ba6e737e0b72a4b41bdc64b7d279edfc998678567ff583c8df27e27523bc789f2c99be603ffa9eaa612803da1d886962d2086e7ff6fa90c7c
- languageName: node
- linkType: hard
-
"are-we-there-yet@npm:^3.0.0":
version: 3.0.0
resolution: "are-we-there-yet@npm:3.0.0"
@@ -2744,16 +2518,6 @@ __metadata:
languageName: node
linkType: hard
-"are-we-there-yet@npm:~1.1.2":
- version: 1.1.7
- resolution: "are-we-there-yet@npm:1.1.7"
- dependencies:
- delegates: ^1.0.0
- readable-stream: ^2.0.6
- checksum: 70d251719c969b2745bfe5ddf3ebaefa846a636e90a6d5212573676af5d6670e15457761d4725731e19cbebdce42c4ab0cbedf23ab047f2a08274985aa10a3c7
- languageName: node
- linkType: hard
-
"argparse@npm:^2.0.1":
version: 2.0.1
resolution: "argparse@npm:2.0.1"
@@ -2797,15 +2561,15 @@ __metadata:
linkType: hard
"array-includes@npm:^3.1.4":
- version: 3.1.4
- resolution: "array-includes@npm:3.1.4"
+ version: 3.1.5
+ resolution: "array-includes@npm:3.1.5"
dependencies:
call-bind: ^1.0.2
- define-properties: ^1.1.3
- es-abstract: ^1.19.1
+ define-properties: ^1.1.4
+ es-abstract: ^1.19.5
get-intrinsic: ^1.1.1
is-string: ^1.0.7
- checksum: 69967c38c52698f84b50a7aed5554aadc89c6ac6399b6d92ad061a5952f8423b4bba054c51d40963f791dfa294d7247cdd7988b6b1f2c5861477031c6386e1c0
+ checksum: f6f24d834179604656b7bec3e047251d5cc87e9e87fab7c175c61af48e80e75acd296017abcde21fb52292ab6a2a449ab2ee37213ee48c8709f004d75983f9c5
languageName: node
linkType: hard
@@ -2847,13 +2611,14 @@ __metadata:
linkType: hard
"array.prototype.flat@npm:^1.2.5":
- version: 1.2.5
- resolution: "array.prototype.flat@npm:1.2.5"
+ version: 1.3.0
+ resolution: "array.prototype.flat@npm:1.3.0"
dependencies:
call-bind: ^1.0.2
define-properties: ^1.1.3
- es-abstract: ^1.19.0
- checksum: 9cc6414b111abfc7717e39546e4887b1e5ec74df8f1618d83425deaa95752bf05d475d1d241253b4d88d4a01f8e1bc84845ad5b7cc2047f8db2f614512acd40e
+ es-abstract: ^1.19.2
+ es-shim-unscopables: ^1.0.0
+ checksum: 2a652b3e8dc0bebb6117e42a5ab5738af0203a14c27341d7bb2431467bdb4b348e2c5dc555dfcda8af0a5e4075c400b85311ded73861c87290a71a17c3e0a257
languageName: node
linkType: hard
@@ -3044,31 +2809,17 @@ __metadata:
languageName: node
linkType: hard
-"bin-links@npm:^2.3.0":
- version: 2.3.0
- resolution: "bin-links@npm:2.3.0"
- dependencies:
- cmd-shim: ^4.0.1
- mkdirp-infer-owner: ^2.0.0
- npm-normalize-package-bin: ^1.0.0
- read-cmd-shim: ^2.0.0
- rimraf: ^3.0.0
- write-file-atomic: ^3.0.3
- checksum: ec02b9b3fa50a8179baa656801de980023f25a71c1a39491fc5672277f0d76d2ae6330ecedf8f9c279ea3751664c46e5ed9a9e1be67c3c5792fa94b31000626f
- languageName: node
- linkType: hard
-
"bin-links@npm:^3.0.0":
- version: 3.0.0
- resolution: "bin-links@npm:3.0.0"
+ version: 3.0.1
+ resolution: "bin-links@npm:3.0.1"
dependencies:
- cmd-shim: ^4.0.1
+ cmd-shim: ^5.0.0
mkdirp-infer-owner: ^2.0.0
npm-normalize-package-bin: ^1.0.0
- read-cmd-shim: ^2.0.0
+ read-cmd-shim: ^3.0.0
rimraf: ^3.0.0
write-file-atomic: ^4.0.0
- checksum: 61cec54a913bf1897c29db1ac277c022cc97a7189a55b2ed7343e75955800e4ec149e76b134f9c685947e37196282d652bf1f9fa893919283827b61ca289b170
+ checksum: c608f0746c5851f259f7578ae5157d24fb019b00792d246bade6255136e5fbd41df43219a50d53f844c562afb6e41092a5f2b0be1bd890e08ff023d330327380
languageName: node
linkType: hard
@@ -3116,6 +2867,13 @@ __metadata:
languageName: node
linkType: hard
+"boolbase@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "boolbase@npm:1.0.0"
+ checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0
+ languageName: node
+ linkType: hard
+
"bootstrap-icons@npm:^1.8.1":
version: 1.8.1
resolution: "bootstrap-icons@npm:1.8.1"
@@ -3123,20 +2881,7 @@ __metadata:
languageName: node
linkType: hard
-"bootstrap-vue@npm:^2.20.1":
- version: 2.21.2
- resolution: "bootstrap-vue@npm:2.21.2"
- dependencies:
- "@nuxt/opencollective": ^0.3.2
- bootstrap: ">=4.5.3 <5.0.0"
- popper.js: ^1.16.1
- portal-vue: ^2.1.7
- vue-functional-data-merge: ^3.1.0
- checksum: cf49df1a38917d9fcfca7f015f2660880c11cae8b36da612cb485c995af3823ec9da9620b65f9f5a8dfaa1c88d8bf03dfeb4a7501a6c2c52abc92c6c3af97319
- languageName: node
- linkType: hard
-
-"bootstrap-vue@npm:^2.22.0":
+"bootstrap-vue@npm:^2.20.1, bootstrap-vue@npm:^2.22.0":
version: 2.22.0
resolution: "bootstrap-vue@npm:2.22.0"
dependencies:
@@ -3149,7 +2894,7 @@ __metadata:
languageName: node
linkType: hard
-"bootstrap@npm:>=4.5.3 <5.0.0, bootstrap@npm:^4.6.1":
+"bootstrap@npm:^4.6.1":
version: 4.6.1
resolution: "bootstrap@npm:4.6.1"
peerDependencies:
@@ -3203,7 +2948,7 @@ __metadata:
languageName: node
linkType: hard
-"braces@npm:^3.0.1, braces@npm:~3.0.2":
+"braces@npm:^3.0.2, braces@npm:~3.0.2":
version: 3.0.2
resolution: "braces@npm:3.0.2"
dependencies:
@@ -3292,18 +3037,18 @@ __metadata:
languageName: node
linkType: hard
-"browserslist@npm:^4.17.5":
- version: 4.18.1
- resolution: "browserslist@npm:4.18.1"
+"browserslist@npm:^4.20.2":
+ version: 4.20.3
+ resolution: "browserslist@npm:4.20.3"
dependencies:
- caniuse-lite: ^1.0.30001280
- electron-to-chromium: ^1.3.896
+ caniuse-lite: ^1.0.30001332
+ electron-to-chromium: ^1.4.118
escalade: ^3.1.1
- node-releases: ^2.0.1
+ node-releases: ^2.0.3
picocolors: ^1.0.0
bin:
browserslist: cli.js
- checksum: ae58322deef15960fc2e601d71bc081b571cfab6705999a3d24db5325b9cfadf5f676615f4460207a93e600549c33d60d37b4502007fe9e737b3cc19e20575d5
+ checksum: 1e4b719ac2ca0fe235218a606e8b8ef16b8809e0973b924158c39fbc435a0b0fe43437ea52dd6ef5ad2efcb83fcb07431244e472270177814217f7c563651f7d
languageName: node
linkType: hard
@@ -3339,36 +3084,38 @@ __metadata:
languageName: node
linkType: hard
-"builtins@npm:^1.0.3":
- version: 1.0.3
- resolution: "builtins@npm:1.0.3"
- checksum: 47ce94f7eee0e644969da1f1a28e5f29bd2e48b25b2bbb61164c345881086e29464ccb1fb88dbc155ea26e8b1f5fc8a923b26c8c1ed0935b67b644d410674513
+"builtins@npm:^5.0.0":
+ version: 5.0.1
+ resolution: "builtins@npm:5.0.1"
+ dependencies:
+ semver: ^7.0.0
+ checksum: 66d204657fe36522822a95b288943ad11b58f5eaede235b11d8c4edaa28ce4800087d44a2681524c340494aadb120a0068011acabe99d30e8f11a7d826d83515
languageName: node
linkType: hard
-"cacache@npm:*, cacache@npm:^15.0.3, cacache@npm:^15.0.5, cacache@npm:^15.2.0":
- version: 15.3.0
- resolution: "cacache@npm:15.3.0"
+"cacache@npm:*, cacache@npm:^16.0.0, cacache@npm:^16.0.2, cacache@npm:^16.0.6":
+ version: 16.0.7
+ resolution: "cacache@npm:16.0.7"
dependencies:
- "@npmcli/fs": ^1.0.0
- "@npmcli/move-file": ^1.0.1
+ "@npmcli/fs": ^2.1.0
+ "@npmcli/move-file": ^2.0.0
chownr: ^2.0.0
- fs-minipass: ^2.0.0
- glob: ^7.1.4
+ fs-minipass: ^2.1.0
+ glob: ^8.0.1
infer-owner: ^1.0.4
- lru-cache: ^6.0.0
- minipass: ^3.1.1
+ lru-cache: ^7.7.1
+ minipass: ^3.1.6
minipass-collect: ^1.0.2
minipass-flush: ^1.0.5
- minipass-pipeline: ^1.2.2
- mkdirp: ^1.0.3
+ minipass-pipeline: ^1.2.4
+ mkdirp: ^1.0.4
p-map: ^4.0.0
promise-inflight: ^1.0.1
rimraf: ^3.0.2
- ssri: ^8.0.1
- tar: ^6.0.2
+ ssri: ^9.0.0
+ tar: ^6.1.11
unique-filename: ^1.1.1
- checksum: a07327c27a4152c04eb0a831c63c00390d90f94d51bb80624a66f4e14a6b6360bbf02a84421267bd4d00ca73ac9773287d8d7169e8d2eafe378d2ce140579db8
+ checksum: 2155b099b7e0f0369fb1155ca4673532ca7efe2ebdbec63acca8743580b8446b5d4fd7184626b1cb059001af77b981cdc67035c7855544d365d4f048eafca2ca
languageName: node
linkType: hard
@@ -3395,32 +3142,6 @@ __metadata:
languageName: node
linkType: hard
-"cacache@npm:^16.0.0, cacache@npm:^16.0.2":
- version: 16.0.3
- resolution: "cacache@npm:16.0.3"
- dependencies:
- "@npmcli/fs": ^2.1.0
- "@npmcli/move-file": ^1.1.2
- chownr: ^2.0.0
- fs-minipass: ^2.1.0
- glob: ^7.2.0
- infer-owner: ^1.0.4
- lru-cache: ^7.7.1
- minipass: ^3.1.6
- minipass-collect: ^1.0.2
- minipass-flush: ^1.0.5
- minipass-pipeline: ^1.2.4
- mkdirp: ^1.0.4
- p-map: ^4.0.0
- promise-inflight: ^1.0.1
- rimraf: ^3.0.2
- ssri: ^8.0.1
- tar: ^6.1.11
- unique-filename: ^1.1.1
- checksum: 9bb9a0bd1b8bee3284c6fa9dcb4b28a62b528dd181f7cd482319611b5d6df295a3594dcefc24d1a4f16162bac50d6facc183ed21935f3d09af6d16f620ea54d3
- languageName: node
- linkType: hard
-
"cache-base@npm:^1.0.1":
version: 1.0.1
resolution: "cache-base@npm:1.0.1"
@@ -3502,10 +3223,10 @@ __metadata:
languageName: node
linkType: hard
-"caniuse-lite@npm:^1.0.30001280":
- version: 1.0.30001282
- resolution: "caniuse-lite@npm:1.0.30001282"
- checksum: 62797fd756e88bfa01f0f983bea9de7814293b209456e8f0b20596b03d2880246f63dc90f947a1fa63f92806ebefbb86fc7811dbecb7839927886d07996938be
+"caniuse-lite@npm:^1.0.30001332":
+ version: 1.0.30001335
+ resolution: "caniuse-lite@npm:1.0.30001335"
+ checksum: fe08b49ec6cb76cc69958ff001cf89d0a8ef9f35e0c8028b65981585046384f76e007d64dea372a34ca56d91caa83cc614c00779fe2b4d378aa0e68696374f67
languageName: node
linkType: hard
@@ -3535,10 +3256,10 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:*":
- version: 5.0.0
- resolution: "chalk@npm:5.0.0"
- checksum: 6eba7c518b9aa5fe882ae6d14a1ffa58c418d72a3faa7f72af56641f1bbef51b645fca1d6e05d42357b7d3c846cd504c0b7b64d12309cdd07867e3b4411e0d01
+"chalk@npm:*, chalk@npm:^5.0.0":
+ version: 5.0.1
+ resolution: "chalk@npm:5.0.1"
+ checksum: 7b45300372b908f0471fbf7389ce2f5de8d85bb949026fd51a1b95b10d0ed32c7ed5aab36dd5e9d2bf3191867909b4404cef75c5f4d2d1daeeacd301dd280b76
languageName: node
linkType: hard
@@ -3563,13 +3284,6 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:^5.0.0":
- version: 5.0.1
- resolution: "chalk@npm:5.0.1"
- checksum: 7b45300372b908f0471fbf7389ce2f5de8d85bb949026fd51a1b95b10d0ed32c7ed5aab36dd5e9d2bf3191867909b4404cef75c5f4d2d1daeeacd301dd280b76
- languageName: node
- linkType: hard
-
"charcodes@npm:^0.2.0":
version: 0.2.0
resolution: "charcodes@npm:0.2.0"
@@ -3727,16 +3441,16 @@ __metadata:
languageName: node
linkType: hard
-"cli-table3@npm:*, cli-table3@npm:^0.6.1":
- version: 0.6.1
- resolution: "cli-table3@npm:0.6.1"
+"cli-table3@npm:*, cli-table3@npm:^0.6.1, cli-table3@npm:^0.6.2":
+ version: 0.6.2
+ resolution: "cli-table3@npm:0.6.2"
dependencies:
- colors: 1.4.0
+ "@colors/colors": 1.5.0
string-width: ^4.2.0
dependenciesMeta:
- colors:
+ "@colors/colors":
optional: true
- checksum: 956e175f8eb019c26465b9f1e51121c08d8978e2aab04be7f8520ea8a4e67906fcbd8516dfb77e386ae3730ef0281aa21a65613dffbfa3d62969263252bd25a9
+ checksum: 2f82391698b8a2a2a5e45d2adcfea5d93e557207f90455a8d4c1aac688e9b18a204d9eb4ba1d322fa123b17d64ea3dc5e11de8b005529f3c3e7dbeb27cb4d9be
languageName: node
linkType: hard
@@ -3795,28 +3509,21 @@ __metadata:
linkType: hard
"clownface@npm:^1.0.0, clownface@npm:^1.4.0":
- version: 1.4.0
- resolution: "clownface@npm:1.4.0"
+ version: 1.5.1
+ resolution: "clownface@npm:1.5.1"
dependencies:
"@rdfjs/data-model": ^1.1.0
"@rdfjs/namespace": ^1.0.0
- checksum: 97d01895f82e6fbc911f61b1f3cb8a56b7e693c07d6caa3adb291e91e63f219e4d52ecbb304459443dc3b54d9ea09be5a87f22606257d6c8c049e137c94d02b0
+ checksum: 2515b54e2874390b5d212fca824f2e9e57cdc87fe271a980d3fa5aaf9f511ca184e71806bd4ed0902858accdafab933c7e28d8afca36a68e2a49a1562d68c81b
languageName: node
linkType: hard
-"cmd-shim@npm:^4.0.1":
- version: 4.1.0
- resolution: "cmd-shim@npm:4.1.0"
+"cmd-shim@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "cmd-shim@npm:5.0.0"
dependencies:
mkdirp-infer-owner: ^2.0.0
- checksum: d25bb57a8accab681bcfc632e085573b9395cdc60aed8d0ce479f988f9ced16720c89732aef81020140e43fd223b6573c22402e5a1c0cbd0149443104df88d68
- languageName: node
- linkType: hard
-
-"code-point-at@npm:^1.0.0":
- version: 1.1.0
- resolution: "code-point-at@npm:1.1.0"
- checksum: 17d5666611f9b16d64fdf48176d9b7fb1c7d1c1607a189f7e600040a11a6616982876af148230336adb7d8fe728a559f743a4e29db3747e3b1a32fa7f4529681
+ checksum: 83d2a46cdf4adbb38d3d3184364b2df0e4c001ac770f5ca94373825d7a48838b4cb8a59534ef48f02b0d556caa047728589ca65c640c17c0b417b3afb34acfbb
languageName: node
linkType: hard
@@ -3862,7 +3569,7 @@ __metadata:
languageName: node
linkType: hard
-"color-support@npm:^1.1.2":
+"color-support@npm:^1.1.3":
version: 1.1.3
resolution: "color-support@npm:1.1.3"
bin:
@@ -3878,24 +3585,7 @@ __metadata:
languageName: node
linkType: hard
-"colors@npm:1.4.0":
- version: 1.4.0
- resolution: "colors@npm:1.4.0"
- checksum: 98aa2c2418ad87dedf25d781be69dc5fc5908e279d9d30c34d8b702e586a0474605b3a189511482b9d5ed0d20c867515d22749537f7bc546256c6014f3ebdcec
- languageName: node
- linkType: hard
-
-"columnify@npm:*":
- version: 1.5.4
- resolution: "columnify@npm:1.5.4"
- dependencies:
- strip-ansi: ^3.0.0
- wcwidth: ^1.0.0
- checksum: f0693937412ec41d387f8ae89ff8cd5811a07ad636f753f0276ba8394fd76c0f610621ebeb379d6adcb30d98696919546dbbf93a28bd4e546efc7e30d905edc2
- languageName: node
- linkType: hard
-
-"columnify@npm:^1.6.0":
+"columnify@npm:*, columnify@npm:^1.6.0":
version: 1.6.0
resolution: "columnify@npm:1.6.0"
dependencies:
@@ -3972,6 +3662,16 @@ __metadata:
languageName: node
linkType: hard
+"compress-brotli@npm:^1.3.6":
+ version: 1.3.6
+ resolution: "compress-brotli@npm:1.3.6"
+ dependencies:
+ "@types/json-buffer": ~3.0.0
+ json-buffer: ~3.0.1
+ checksum: 9db8e082a3286bd6a0da2b6b2929c62a827c5a1bee8f0d1c777cccfcef14c9e751d93ae46329f1529bfbfab9b6f241465e3a1c895be235c6e923f5017d952d00
+ languageName: node
+ linkType: hard
+
"concat-map@npm:0.0.1":
version: 0.0.1
resolution: "concat-map@npm:0.0.1"
@@ -4005,7 +3705,7 @@ __metadata:
languageName: node
linkType: hard
-"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0, console-control-strings@npm:~1.1.0":
+"console-control-strings@npm:^1.1.0":
version: 1.1.0
resolution: "console-control-strings@npm:1.1.0"
checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed
@@ -4132,9 +3832,9 @@ __metadata:
linkType: hard
"core-js@npm:^3.21.1":
- version: 3.21.1
- resolution: "core-js@npm:3.21.1"
- checksum: d68eddd831340ad5b24ac29c72fda022a43b17f194c4278b6b875a843283d316502cb4abd07f28631d6ebc4387f66aa06e2b1b3c8fd7e08096a751b5c63f6889
+ version: 3.22.4
+ resolution: "core-js@npm:3.22.4"
+ checksum: 1d031597a61d11266343c7f9a788ad620bb8e1a15207c8ff41ee77183789f1d6592d7cbaf4931d74773be08739871c6ae1a59090a7e03f0bc5131d4443cc04d2
languageName: node
linkType: hard
@@ -4311,15 +4011,15 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1":
- version: 4.3.2
- resolution: "debug@npm:4.3.2"
+"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
+ version: 4.3.4
+ resolution: "debug@npm:4.3.4"
dependencies:
ms: 2.1.2
peerDependenciesMeta:
supports-color:
optional: true
- checksum: 820ea160e267e23c953c9ed87e7ad93494d8cda2f7349af5e7e3bb236d23707ee3022f477d5a7d2ee86ef2bf7d60aa9ab22d1f58080d7deb9dccd073585e1e43
+ checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708
languageName: node
linkType: hard
@@ -4341,30 +4041,6 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:^4.0.0, debug@npm:^4.3.1":
- version: 4.3.3
- resolution: "debug@npm:4.3.3"
- dependencies:
- ms: 2.1.2
- peerDependenciesMeta:
- supports-color:
- optional: true
- checksum: 14472d56fe4a94dbcfaa6dbed2dd3849f1d72ba78104a1a328047bb564643ca49df0224c3a17fa63533fd11dd3d4c8636cd861191232a2c6735af00cc2d4de16
- languageName: node
- linkType: hard
-
-"debug@npm:^4.3.2, debug@npm:^4.3.3":
- version: 4.3.4
- resolution: "debug@npm:4.3.4"
- dependencies:
- ms: 2.1.2
- peerDependenciesMeta:
- supports-color:
- optional: true
- checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708
- languageName: node
- linkType: hard
-
"debuglog@npm:^1.0.1":
version: 1.0.1
resolution: "debuglog@npm:1.0.1"
@@ -4426,12 +4102,12 @@ __metadata:
languageName: node
linkType: hard
-"deepmerge-ts@npm:^2.0.1":
- version: 2.0.1
- resolution: "deepmerge-ts@npm:2.0.1"
+"deepmerge-ts@npm:^4.0.3":
+ version: 4.0.3
+ resolution: "deepmerge-ts@npm:4.0.3"
dependencies:
is-plain-object: ^5.0.0
- checksum: 9dca78c3c2aedcedb2e863c951c4c34b095317c33c408422b4741c6f12fb51eb645dc55633f5992ade70bdd9421cc6804a6c638ae14e85de8945cfcd121a28f3
+ checksum: 4973705394bcbf13f896942491366b16b9776a1484c60f827e56fd2fa2327dc1f9634d00a5ac321a17c8099427890dcfb406fa216ba406644107281ed79a1e86
languageName: node
linkType: hard
@@ -4451,12 +4127,13 @@ __metadata:
languageName: node
linkType: hard
-"define-properties@npm:^1.1.3":
- version: 1.1.3
- resolution: "define-properties@npm:1.1.3"
+"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "define-properties@npm:1.1.4"
dependencies:
- object-keys: ^1.0.12
- checksum: da80dba55d0cd76a5a7ab71ef6ea0ebcb7b941f803793e4e0257b384cb772038faa0c31659d244e82c4342edef841c1a1212580006a05a5068ee48223d787317
+ has-property-descriptors: ^1.0.0
+ object-keys: ^1.1.1
+ checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b
languageName: node
linkType: hard
@@ -4543,12 +4220,12 @@ __metadata:
linkType: hard
"dezalgo@npm:^1.0.0":
- version: 1.0.3
- resolution: "dezalgo@npm:1.0.3"
+ version: 1.0.4
+ resolution: "dezalgo@npm:1.0.4"
dependencies:
asap: ^2.0.0
wrappy: 1
- checksum: 8b26238db91423b2702a7a6d9629d0019c37c415e7b6e75d4b3e8d27e9464e21cac3618dd145f4d4ee96c70cc6ff034227b5b8a0e9c09015a8bdbe6dace3cfb9
+ checksum: 895389c6aead740d2ab5da4d3466d20fa30f738010a4d3f4dcccc9fc645ca31c9d10b7e1804ae489b1eb02c7986f9f1f34ba132d409b043082a86d9a4e745624
languageName: node
linkType: hard
@@ -4607,13 +4284,13 @@ __metadata:
linkType: hard
"dom-serializer@npm:^1.0.1":
- version: 1.3.2
- resolution: "dom-serializer@npm:1.3.2"
+ version: 1.4.1
+ resolution: "dom-serializer@npm:1.4.1"
dependencies:
domelementtype: ^2.0.1
domhandler: ^4.2.0
entities: ^2.0.0
- checksum: bff48714944d67b160db71ba244fb0f3fe72e77ef2ec8414e2eeb56f2d926e404a13456b8b83a5392e217ba47dec2ec0c368801b31481813e94d185276c3e964
+ checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22
languageName: node
linkType: hard
@@ -4625,9 +4302,9 @@ __metadata:
linkType: hard
"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0":
- version: 2.2.0
- resolution: "domelementtype@npm:2.2.0"
- checksum: 24cb386198640cd58aa36f8c987f2ea61859929106d06ffcc8f547e70cb2ed82a6dc56dcb8252b21fba1f1ea07df6e4356d60bfe57f77114ca1aed6828362629
+ version: 2.3.0
+ resolution: "domelementtype@npm:2.3.0"
+ checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6
languageName: node
linkType: hard
@@ -4705,10 +4382,10 @@ __metadata:
languageName: node
linkType: hard
-"electron-to-chromium@npm:^1.3.896":
- version: 1.3.904
- resolution: "electron-to-chromium@npm:1.3.904"
- checksum: 51cd8de455721c921ab5522e868071f7ea53eeff20938b7186283b50f3c5aad98ff10c9d6b991d98d0bef09db8206bfab63d0458adba33b25104ead9bcd395de
+"electron-to-chromium@npm:^1.4.118":
+ version: 1.4.132
+ resolution: "electron-to-chromium@npm:1.4.132"
+ checksum: 133be125d1fa9693ce1d2f83d3f03a79ee19059fb95c203af87c4f833e661b7185ddb918fc53e272a7c8ff4169907cf1879790d1681011c6035c5c4f66b2848a
languageName: node
linkType: hard
@@ -4748,7 +4425,7 @@ __metadata:
languageName: node
linkType: hard
-"encoding@npm:^0.1.12, encoding@npm:^0.1.13":
+"encoding@npm:^0.1.13":
version: 0.1.13
resolution: "encoding@npm:0.1.13"
dependencies:
@@ -4829,9 +4506,9 @@ __metadata:
languageName: node
linkType: hard
-"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1":
- version: 1.19.1
- resolution: "es-abstract@npm:1.19.1"
+"es-abstract@npm:^1.19.1, es-abstract@npm:^1.19.2, es-abstract@npm:^1.19.5":
+ version: 1.19.5
+ resolution: "es-abstract@npm:1.19.5"
dependencies:
call-bind: ^1.0.2
es-to-primitive: ^1.2.1
@@ -4839,21 +4516,30 @@ __metadata:
get-intrinsic: ^1.1.1
get-symbol-description: ^1.0.0
has: ^1.0.3
- has-symbols: ^1.0.2
+ has-symbols: ^1.0.3
internal-slot: ^1.0.3
is-callable: ^1.2.4
- is-negative-zero: ^2.0.1
+ is-negative-zero: ^2.0.2
is-regex: ^1.1.4
- is-shared-array-buffer: ^1.0.1
+ is-shared-array-buffer: ^1.0.2
is-string: ^1.0.7
- is-weakref: ^1.0.1
- object-inspect: ^1.11.0
+ is-weakref: ^1.0.2
+ object-inspect: ^1.12.0
object-keys: ^1.1.1
object.assign: ^4.1.2
string.prototype.trimend: ^1.0.4
string.prototype.trimstart: ^1.0.4
unbox-primitive: ^1.0.1
- checksum: b6be8410672c5364db3fb01eb786e30c7b4bb32b4af63d381c08840f4382c4a168e7855cd338bf59d4f1a1a1138f4d748d1fd40ec65aaa071876f9e9fbfed949
+ checksum: 55199b0f179a12b3b0ec9c9f2e3a27a7561686e4f88d46f9ef32c836448a336e367c14d8f792612fc83a64113896e478259e4dffbbcffb3efdd06650f6360324
+ languageName: node
+ linkType: hard
+
+"es-shim-unscopables@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-shim-unscopables@npm:1.0.0"
+ dependencies:
+ has: ^1.0.3
+ checksum: 83e95cadbb6ee44d3644dfad60dcad7929edbc42c85e66c3e99aefd68a3a5c5665f2686885cddb47dfeabfd77bd5ea5a7060f2092a955a729bbd8834f0d86fa1
languageName: node
linkType: hard
@@ -4868,170 +4554,170 @@ __metadata:
languageName: node
linkType: hard
-"esbuild-android-64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-android-64@npm:0.14.27"
+"esbuild-android-64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-android-64@npm:0.14.38"
conditions: os=android & cpu=x64
languageName: node
linkType: hard
-"esbuild-android-arm64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-android-arm64@npm:0.14.27"
+"esbuild-android-arm64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-android-arm64@npm:0.14.38"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
-"esbuild-darwin-64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-darwin-64@npm:0.14.27"
+"esbuild-darwin-64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-darwin-64@npm:0.14.38"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"esbuild-darwin-arm64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-darwin-arm64@npm:0.14.27"
+"esbuild-darwin-arm64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-darwin-arm64@npm:0.14.38"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"esbuild-freebsd-64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-freebsd-64@npm:0.14.27"
+"esbuild-freebsd-64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-freebsd-64@npm:0.14.38"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
-"esbuild-freebsd-arm64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-freebsd-arm64@npm:0.14.27"
+"esbuild-freebsd-arm64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-freebsd-arm64@npm:0.14.38"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
-"esbuild-linux-32@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-linux-32@npm:0.14.27"
+"esbuild-linux-32@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-linux-32@npm:0.14.38"
conditions: os=linux & cpu=ia32
languageName: node
linkType: hard
-"esbuild-linux-64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-linux-64@npm:0.14.27"
+"esbuild-linux-64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-linux-64@npm:0.14.38"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
-"esbuild-linux-arm64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-linux-arm64@npm:0.14.27"
+"esbuild-linux-arm64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-linux-arm64@npm:0.14.38"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
-"esbuild-linux-arm@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-linux-arm@npm:0.14.27"
+"esbuild-linux-arm@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-linux-arm@npm:0.14.38"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"esbuild-linux-mips64le@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-linux-mips64le@npm:0.14.27"
+"esbuild-linux-mips64le@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-linux-mips64le@npm:0.14.38"
conditions: os=linux & cpu=mips64el
languageName: node
linkType: hard
-"esbuild-linux-ppc64le@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-linux-ppc64le@npm:0.14.27"
+"esbuild-linux-ppc64le@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-linux-ppc64le@npm:0.14.38"
conditions: os=linux & cpu=ppc64
languageName: node
linkType: hard
-"esbuild-linux-riscv64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-linux-riscv64@npm:0.14.27"
+"esbuild-linux-riscv64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-linux-riscv64@npm:0.14.38"
conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
-"esbuild-linux-s390x@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-linux-s390x@npm:0.14.27"
+"esbuild-linux-s390x@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-linux-s390x@npm:0.14.38"
conditions: os=linux & cpu=s390x
languageName: node
linkType: hard
-"esbuild-netbsd-64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-netbsd-64@npm:0.14.27"
+"esbuild-netbsd-64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-netbsd-64@npm:0.14.38"
conditions: os=netbsd & cpu=x64
languageName: node
linkType: hard
-"esbuild-openbsd-64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-openbsd-64@npm:0.14.27"
+"esbuild-openbsd-64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-openbsd-64@npm:0.14.38"
conditions: os=openbsd & cpu=x64
languageName: node
linkType: hard
-"esbuild-sunos-64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-sunos-64@npm:0.14.27"
+"esbuild-sunos-64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-sunos-64@npm:0.14.38"
conditions: os=sunos & cpu=x64
languageName: node
linkType: hard
-"esbuild-windows-32@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-windows-32@npm:0.14.27"
+"esbuild-windows-32@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-windows-32@npm:0.14.38"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"esbuild-windows-64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-windows-64@npm:0.14.27"
+"esbuild-windows-64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-windows-64@npm:0.14.38"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
-"esbuild-windows-arm64@npm:0.14.27":
- version: 0.14.27
- resolution: "esbuild-windows-arm64@npm:0.14.27"
+"esbuild-windows-arm64@npm:0.14.38":
+ version: 0.14.38
+ resolution: "esbuild-windows-arm64@npm:0.14.38"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"esbuild@npm:^0.14.14":
- version: 0.14.27
- resolution: "esbuild@npm:0.14.27"
- dependencies:
- esbuild-android-64: 0.14.27
- esbuild-android-arm64: 0.14.27
- esbuild-darwin-64: 0.14.27
- esbuild-darwin-arm64: 0.14.27
- esbuild-freebsd-64: 0.14.27
- esbuild-freebsd-arm64: 0.14.27
- esbuild-linux-32: 0.14.27
- esbuild-linux-64: 0.14.27
- esbuild-linux-arm: 0.14.27
- esbuild-linux-arm64: 0.14.27
- esbuild-linux-mips64le: 0.14.27
- esbuild-linux-ppc64le: 0.14.27
- esbuild-linux-riscv64: 0.14.27
- esbuild-linux-s390x: 0.14.27
- esbuild-netbsd-64: 0.14.27
- esbuild-openbsd-64: 0.14.27
- esbuild-sunos-64: 0.14.27
- esbuild-windows-32: 0.14.27
- esbuild-windows-64: 0.14.27
- esbuild-windows-arm64: 0.14.27
+"esbuild@npm:^0.14.27":
+ version: 0.14.38
+ resolution: "esbuild@npm:0.14.38"
+ dependencies:
+ esbuild-android-64: 0.14.38
+ esbuild-android-arm64: 0.14.38
+ esbuild-darwin-64: 0.14.38
+ esbuild-darwin-arm64: 0.14.38
+ esbuild-freebsd-64: 0.14.38
+ esbuild-freebsd-arm64: 0.14.38
+ esbuild-linux-32: 0.14.38
+ esbuild-linux-64: 0.14.38
+ esbuild-linux-arm: 0.14.38
+ esbuild-linux-arm64: 0.14.38
+ esbuild-linux-mips64le: 0.14.38
+ esbuild-linux-ppc64le: 0.14.38
+ esbuild-linux-riscv64: 0.14.38
+ esbuild-linux-s390x: 0.14.38
+ esbuild-netbsd-64: 0.14.38
+ esbuild-openbsd-64: 0.14.38
+ esbuild-sunos-64: 0.14.38
+ esbuild-windows-32: 0.14.38
+ esbuild-windows-64: 0.14.38
+ esbuild-windows-arm64: 0.14.38
dependenciesMeta:
esbuild-android-64:
optional: true
@@ -5075,7 +4761,7 @@ __metadata:
optional: true
bin:
esbuild: bin/esbuild
- checksum: 19386ba13536ca69845989c981a44e006cf4aa79cf8186fe2af6fdb8f43f7b7ca708c443360fe18b455b4da71b473ad135bc3bc20b892485b2a27455d2287555
+ checksum: d7523a36bd28016c010829c527386dbc0c6b9f514920abf5ac8003f346665161aa61026fd6822c5091fc1c1af52fe26c9281a81740fc06f2994cdbb7c2880297
languageName: node
linkType: hard
@@ -5146,7 +4832,7 @@ __metadata:
languageName: node
linkType: hard
-"eslint-module-utils@npm:^2.7.2":
+"eslint-module-utils@npm:^2.7.3":
version: 2.7.3
resolution: "eslint-module-utils@npm:2.7.3"
dependencies:
@@ -5169,11 +4855,11 @@ __metadata:
linkType: hard
"eslint-plugin-functional@npm:^4.2.0":
- version: 4.2.0
- resolution: "eslint-plugin-functional@npm:4.2.0"
+ version: 4.2.1
+ resolution: "eslint-plugin-functional@npm:4.2.1"
dependencies:
- "@typescript-eslint/experimental-utils": ^5.0.0
- deepmerge-ts: ^2.0.1
+ "@typescript-eslint/utils": ^5.10.2
+ deepmerge-ts: ^4.0.3
escape-string-regexp: ^4.0.0
peerDependencies:
eslint: ^8.0.0
@@ -5184,30 +4870,30 @@ __metadata:
optional: true
typescript:
optional: true
- checksum: 6bc4e90377b3b2ffb28b3322cedc0e765a99d4566cf9d1ca52d20ca1fe139d8ab55f3e2e472dabc2b3d27b19bbdce40cdbd333aabb209a0ffb6ca66127324f65
+ checksum: 8369efc98c69b602d73b19ff3d8cab029483de84c2c3a7299dd542a434e2c07b22abb503c38e988320bec5291f87b9e24bbbd138cd9d37ecbbcb4886671ef300
languageName: node
linkType: hard
"eslint-plugin-import@npm:^2.25.4":
- version: 2.25.4
- resolution: "eslint-plugin-import@npm:2.25.4"
+ version: 2.26.0
+ resolution: "eslint-plugin-import@npm:2.26.0"
dependencies:
array-includes: ^3.1.4
array.prototype.flat: ^1.2.5
debug: ^2.6.9
doctrine: ^2.1.0
eslint-import-resolver-node: ^0.3.6
- eslint-module-utils: ^2.7.2
+ eslint-module-utils: ^2.7.3
has: ^1.0.3
- is-core-module: ^2.8.0
+ is-core-module: ^2.8.1
is-glob: ^4.0.3
- minimatch: ^3.0.4
+ minimatch: ^3.1.2
object.values: ^1.1.5
- resolve: ^1.20.0
- tsconfig-paths: ^3.12.0
+ resolve: ^1.22.0
+ tsconfig-paths: ^3.14.1
peerDependencies:
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
- checksum: 0af24f5c7c6ca692f42e3947127f0ae7dfe44f1e02740f7cbe988b510a9c52bab0065d7df04e2d953dcc88a4595a00cbdcf14018acf8cd75cfd47b72efcbb734
+ checksum: 0bf77ad80339554481eafa2b1967449e1f816b94c7a6f9614ce33fb4083c4e6c050f10d241dd50b4975d47922880a34de1e42ea9d8e6fd663ebb768baa67e655
languageName: node
linkType: hard
@@ -5227,16 +4913,18 @@ __metadata:
linkType: hard
"eslint-plugin-vue@npm:^8.5.0":
- version: 8.5.0
- resolution: "eslint-plugin-vue@npm:8.5.0"
+ version: 8.7.1
+ resolution: "eslint-plugin-vue@npm:8.7.1"
dependencies:
eslint-utils: ^3.0.0
natural-compare: ^1.4.0
+ nth-check: ^2.0.1
+ postcss-selector-parser: ^6.0.9
semver: ^7.3.5
vue-eslint-parser: ^8.0.1
peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
- checksum: 2edc956debe3bf22d0daab04b5d59609185799c76dc24ce0c899035ecf64de07a526accc96e8622bccd368b6848f185980e9d6e395d4d14068e89a77e0010119
+ checksum: c3aefb226dea126db32cab4c570f17f4b4047d609f4f5748e8dc410e929fbbfacdc07af1421c0f7773398513e9363de4480694714bc85fa2188ca50d1d19cfbc
languageName: node
linkType: hard
@@ -5303,10 +4991,10 @@ __metadata:
linkType: hard
"eslint@npm:^8.11.0":
- version: 8.11.0
- resolution: "eslint@npm:8.11.0"
+ version: 8.14.0
+ resolution: "eslint@npm:8.14.0"
dependencies:
- "@eslint/eslintrc": ^1.2.1
+ "@eslint/eslintrc": ^1.2.2
"@humanwhocodes/config-array": ^0.9.2
ajv: ^6.10.0
chalk: ^4.0.0
@@ -5343,7 +5031,7 @@ __metadata:
v8-compile-cache: ^2.0.3
bin:
eslint: bin/eslint.js
- checksum: a06a2ea37002d6c0a4f462fe31b4411185dc3da7857fafb896eb392ba95a1289cc3538056474b2f44f08012f265bede01a39d46df4ac39ebc6d7be90e2c8f9fa
+ checksum: 87d2e3e5eb93216d4ab36006e7b8c0bfad02f40b0a0f193f1d42754512cd3a9d8244152f1c69df5db2e135b3c4f1c10d0ed2f0881fe8a8c01af55465968174c1
languageName: node
linkType: hard
@@ -5405,9 +5093,9 @@ __metadata:
linkType: hard
"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0":
- version: 5.2.0
- resolution: "estraverse@npm:5.2.0"
- checksum: ec11b70d946bf5d7f76f91db38ef6f08109ac1b36cda293a26e678e58df4719f57f67b9ec87042afdd1f0267cee91865be3aa48d2161765a93defab5431be7b8
+ version: 5.3.0
+ resolution: "estraverse@npm:5.3.0"
+ checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b
languageName: node
linkType: hard
@@ -5649,11 +5337,11 @@ __metadata:
linkType: hard
"fastq@npm:^1.6.0":
- version: 1.12.0
- resolution: "fastq@npm:1.12.0"
+ version: 1.13.0
+ resolution: "fastq@npm:1.13.0"
dependencies:
reusify: ^1.0.4
- checksum: 486db511686b5ab28b1d87170f05c3fa6c8d769cde6861ed34cf3756cdf356950ba9c7dde0bc976ad4308b85aa9ef6214c685887f9f724be72c054a7becb642a
+ checksum: 32cf15c29afe622af187d12fc9cd93e160a0cb7c31a3bb6ace86b7dea3b28e7b72acde89c882663f307b2184e14782c6c664fa315973c03626c7d4bff070bb0b
languageName: node
linkType: hard
@@ -5829,23 +5517,13 @@ __metadata:
languageName: node
linkType: hard
-"follow-redirects@npm:^1.14.0":
- version: 1.14.7
- resolution: "follow-redirects@npm:1.14.7"
- peerDependenciesMeta:
- debug:
- optional: true
- checksum: f6d03e5e30877431065bca0d1b2e3db93949eb799d368a5c07ea8a4b71205f0349a3f8f0191bf13a07c93885522834dca1dc8e527dc99a772c6911fba24edc5f
- languageName: node
- linkType: hard
-
-"follow-redirects@npm:^1.14.8, follow-redirects@npm:^1.5.1":
- version: 1.14.9
- resolution: "follow-redirects@npm:1.14.9"
+"follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.8, follow-redirects@npm:^1.5.1":
+ version: 1.15.0
+ resolution: "follow-redirects@npm:1.15.0"
peerDependenciesMeta:
debug:
optional: true
- checksum: f5982e0eb481818642492d3ca35a86989c98af1128b8e1a62911a3410621bc15d2b079e8170b35b19d3bdee770b73ed431a257ed86195af773771145baa57845
+ checksum: eaec81c3e0ae57aae2422e38ad3539d0e7279b3a63f9681eeea319bb683dea67502c4e097136b8ce9721542b4e236e092b6b49e34e326cdd7733c274f0a3f378
languageName: node
linkType: hard
@@ -5912,13 +5590,13 @@ __metadata:
linkType: hard
"fs-extra@npm:^10.0.0":
- version: 10.0.0
- resolution: "fs-extra@npm:10.0.0"
+ version: 10.1.0
+ resolution: "fs-extra@npm:10.1.0"
dependencies:
graceful-fs: ^4.2.0
jsonfile: ^6.0.1
universalify: ^2.0.0
- checksum: 5285a3d8f34b917cf2b66af8c231a40c1623626e9d701a20051d3337be16c6d7cac94441c8b3732d47a92a2a027886ca93c69b6a4ae6aee3c89650d2a8880c0a
+ checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50
languageName: node
linkType: hard
@@ -5973,6 +5651,16 @@ __metadata:
languageName: node
linkType: hard
+"fsevents@npm:~2.3.2":
+ version: 2.3.2
+ resolution: "fsevents@npm:2.3.2"
+ dependencies:
+ node-gyp: latest
+ checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
"fsevents@patch:fsevents@^1.2.7#~builtin<compat/fsevents>":
version: 1.2.13
resolution: "fsevents@patch:fsevents@npm%3A1.2.13#~builtin<compat/fsevents>::version=1.2.13&hash=18f3a7"
@@ -5992,16 +5680,6 @@ __metadata:
languageName: node
linkType: hard
-fsevents@~2.3.2:
- version: 2.3.2
- resolution: "fsevents@npm:2.3.2"
- dependencies:
- node-gyp: latest
- checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f
- conditions: os=darwin
- languageName: node
- linkType: hard
-
"function-bind@npm:^1.1.1":
version: 1.1.1
resolution: "function-bind@npm:1.1.1"
@@ -6016,36 +5694,19 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"gauge@npm:^4.0.0":
- version: 4.0.0
- resolution: "gauge@npm:4.0.0"
+"gauge@npm:^4.0.3":
+ version: 4.0.4
+ resolution: "gauge@npm:4.0.4"
dependencies:
- ansi-regex: ^5.0.1
aproba: ^1.0.3 || ^2.0.0
- color-support: ^1.1.2
- console-control-strings: ^1.0.0
+ color-support: ^1.1.3
+ console-control-strings: ^1.1.0
has-unicode: ^2.0.1
- signal-exit: ^3.0.0
+ signal-exit: ^3.0.7
string-width: ^4.2.3
strip-ansi: ^6.0.1
- wide-align: ^1.1.2
- checksum: 637b34c84f518defa89319dbef68211a24e9302182ad2a619e3be1be5b7dcf2a962c8359e889294af667440f4722e7e6e61671859e00bd8ec280a136ded89b25
- languageName: node
- linkType: hard
-
-"gauge@npm:~2.7.3":
- version: 2.7.4
- resolution: "gauge@npm:2.7.4"
- dependencies:
- aproba: ^1.0.3
- console-control-strings: ^1.0.0
- has-unicode: ^2.0.0
- object-assign: ^4.1.0
- signal-exit: ^3.0.0
- string-width: ^1.0.1
- strip-ansi: ^3.0.1
- wide-align: ^1.1.0
- checksum: a89b53cee65579b46832e050b5f3a79a832cc422c190de79c6b8e2e15296ab92faddde6ddf2d376875cbba2b043efa99b9e1ed8124e7365f61b04e3cee9d40ee
+ wide-align: ^1.1.5
+ checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d
languageName: node
linkType: hard
@@ -6188,23 +5849,23 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"glob@npm:*, glob@npm:^7.1.1, glob@npm:^7.1.6, glob@npm:^7.2.0":
- version: 7.2.0
- resolution: "glob@npm:7.2.0"
+"glob@npm:*, glob@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "glob@npm:8.0.1"
dependencies:
fs.realpath: ^1.0.0
inflight: ^1.0.4
inherits: 2
- minimatch: ^3.0.4
+ minimatch: ^5.0.1
once: ^1.3.0
path-is-absolute: ^1.0.0
- checksum: 78a8ea942331f08ed2e055cb5b9e40fe6f46f579d7fd3d694f3412fe5db23223d29b7fee1575440202e9a7ff9a72ab106a39fee39934c7bedafe5e5f8ae20134
+ checksum: 7ac782f3ef1c08005884447479e68ceb0ad56997eb2003e1e9aefae71bad3cb48eb7c49190d3d6736f2ffcd8af4985d53a46831b3d5e0052cc5756822a38b61a
languageName: node
linkType: hard
"glob@npm:^7.1.3, glob@npm:^7.1.4":
- version: 7.1.7
- resolution: "glob@npm:7.1.7"
+ version: 7.2.0
+ resolution: "glob@npm:7.2.0"
dependencies:
fs.realpath: ^1.0.0
inflight: ^1.0.4
@@ -6212,7 +5873,7 @@ fsevents@~2.3.2:
minimatch: ^3.0.4
once: ^1.3.0
path-is-absolute: ^1.0.0
- checksum: b61f48973bbdcf5159997b0874a2165db572b368b931135832599875919c237fc05c12984e38fe828e69aa8a921eb0e8a4997266211c517c9cfaae8a93988bb8
+ checksum: 78a8ea942331f08ed2e055cb5b9e40fe6f46f579d7fd3d694f3412fe5db23223d29b7fee1575440202e9a7ff9a72ab106a39fee39934c7bedafe5e5f8ae20134
languageName: node
linkType: hard
@@ -6224,11 +5885,11 @@ fsevents@~2.3.2:
linkType: hard
"globals@npm:^13.6.0, globals@npm:^13.9.0":
- version: 13.12.1
- resolution: "globals@npm:13.12.1"
+ version: 13.13.0
+ resolution: "globals@npm:13.13.0"
dependencies:
type-fest: ^0.20.2
- checksum: cf7877629c8f2a293b0a7d09d1dcce7f2d426ec2528600c481c5b3f3d070b0a120eb2499439ac0404990fb8a5742c0165b1bf1f52603364001ddc89bea3dda24
+ checksum: c55ea8fd3afecb72567bac41605577e19e68476993dfb0ca4c49b86075af5f0ae3f0f5502525f69010f7c5ea5db6a1c540a80a4f80ebdfb2f686d87b0f05d7e9
languageName: node
linkType: hard
@@ -6281,17 +5942,10 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"graceful-fs@npm:*, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.9":
- version: 4.2.9
- resolution: "graceful-fs@npm:4.2.9"
- checksum: 68ea4e07ff2c041ada184f9278b830375f8e0b75154e3f080af6b70f66172fabb4108d19b3863a96b53fc068a310b9b6493d86d1291acc5f3861eb4b79d26ad6
- languageName: node
- linkType: hard
-
-"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6":
- version: 4.2.8
- resolution: "graceful-fs@npm:4.2.8"
- checksum: 5d224c8969ad0581d551dfabdb06882706b31af2561bd5e2034b4097e67cc27d05232849b8643866585fd0a41c7af152950f8776f4dd5579e9853733f31461c6
+"graceful-fs@npm:*, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6":
+ version: 4.2.10
+ resolution: "graceful-fs@npm:4.2.10"
+ checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da
languageName: node
linkType: hard
@@ -6337,10 +5991,10 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"has-bigints@npm:^1.0.1":
- version: 1.0.1
- resolution: "has-bigints@npm:1.0.1"
- checksum: 44ab55868174470065d2e0f8f6def1c990d12b82162a8803c679699fa8a39f966e336f2a33c185092fe8aea7e8bf2e85f1c26add5f29d98f2318bd270096b183
+"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-bigints@npm:1.0.2"
+ checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b
languageName: node
linkType: hard
@@ -6365,10 +6019,19 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2":
- version: 1.0.2
- resolution: "has-symbols@npm:1.0.2"
- checksum: 2309c426071731be792b5be43b3da6fb4ed7cbe8a9a6bcfca1862587709f01b33d575ce8f5c264c1eaad09fca2f9a8208c0a2be156232629daa2dd0c0740976b
+"has-property-descriptors@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "has-property-descriptors@npm:1.0.0"
+ dependencies:
+ get-intrinsic: ^1.1.1
+ checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb
+ languageName: node
+ linkType: hard
+
+"has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "has-symbols@npm:1.0.3"
+ checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410
languageName: node
linkType: hard
@@ -6381,7 +6044,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"has-unicode@npm:^2.0.0, has-unicode@npm:^2.0.1":
+"has-unicode@npm:^2.0.1":
version: 2.0.1
resolution: "has-unicode@npm:2.0.1"
checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400
@@ -6498,12 +6161,12 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"hosted-git-info@npm:*, hosted-git-info@npm:^4.0.0, hosted-git-info@npm:^4.0.1":
- version: 4.1.0
- resolution: "hosted-git-info@npm:4.1.0"
+"hosted-git-info@npm:*, hosted-git-info@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "hosted-git-info@npm:5.0.0"
dependencies:
- lru-cache: ^6.0.0
- checksum: c3f87b3c2f7eb8c2748c8f49c0c2517c9a95f35d26f4bf54b2a8cba05d2e668f3753548b6ea366b18ec8dadb4e12066e19fa382a01496b0ffa0497eb23cbe461
+ lru-cache: ^7.5.1
+ checksum: 515e69463d123635f70d70656c5ec648951ffc1987f92a87cb4a038e1794bfed833cf87569b358b137ebbc75d992c073ed0408d420c9e5b717c2b4f0a291490c
languageName: node
linkType: hard
@@ -6514,12 +6177,12 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"hosted-git-info@npm:^5.0.0":
- version: 5.0.0
- resolution: "hosted-git-info@npm:5.0.0"
+"hosted-git-info@npm:^4.0.0, hosted-git-info@npm:^4.0.1":
+ version: 4.1.0
+ resolution: "hosted-git-info@npm:4.1.0"
dependencies:
- lru-cache: ^7.5.1
- checksum: 515e69463d123635f70d70656c5ec648951ffc1987f92a87cb4a038e1794bfed833cf87569b358b137ebbc75d992c073ed0408d420c9e5b717c2b4f0a291490c
+ lru-cache: ^6.0.0
+ checksum: c3f87b3c2f7eb8c2748c8f49c0c2517c9a95f35d26f4bf54b2a8cba05d2e668f3753548b6ea366b18ec8dadb4e12066e19fa382a01496b0ffa0497eb23cbe461
languageName: node
linkType: hard
@@ -6556,17 +6219,6 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"http-proxy-agent@npm:^4.0.1":
- version: 4.0.1
- resolution: "http-proxy-agent@npm:4.0.1"
- dependencies:
- "@tootallnate/once": 1
- agent-base: 6
- debug: 4
- checksum: c6a5da5a1929416b6bbdf77b1aca13888013fe7eb9d59fc292e25d18e041bb154a8dfada58e223fc7b76b9b2d155a87e92e608235201f77d34aa258707963a82
- languageName: node
- linkType: hard
-
"http-proxy-agent@npm:^5.0.0":
version: 5.0.0
resolution: "http-proxy-agent@npm:5.0.0"
@@ -6614,12 +6266,12 @@ fsevents@~2.3.2:
linkType: hard
"https-proxy-agent@npm:^5.0.0":
- version: 5.0.0
- resolution: "https-proxy-agent@npm:5.0.0"
+ version: 5.0.1
+ resolution: "https-proxy-agent@npm:5.0.1"
dependencies:
agent-base: 6
debug: 4
- checksum: 165bfb090bd26d47693597661298006841ab733d0c7383a8cb2f17373387a94c903a3ac687090aa739de05e379ab6f868bae84ab4eac288ad85c328cd1ec9e53
+ checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765
languageName: node
linkType: hard
@@ -6671,12 +6323,12 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"ignore-walk@npm:^4.0.1":
- version: 4.0.1
- resolution: "ignore-walk@npm:4.0.1"
+"ignore-walk@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "ignore-walk@npm:5.0.1"
dependencies:
- minimatch: ^3.0.4
- checksum: 903cd5cb68d57b2e70fddb83d885aea55f137a44636254a29b08037797376d8d3e09d1c58935778f3a271bf6a2b41ecc54fc22260ac07190e09e1ec7253b49f3
+ minimatch: ^5.0.1
+ checksum: 1a4ef35174653a1aa6faab3d9f8781269166536aee36a04946f6e2b319b2475c1903a75ed42f04219274128242f49d0a10e20c4354ee60d9548e97031451150b
languageName: node
linkType: hard
@@ -6687,20 +6339,13 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"ignore@npm:^5.0.5, ignore@npm:^5.2.0":
+"ignore@npm:^5.0.5, ignore@npm:^5.1.8, ignore@npm:^5.2.0":
version: 5.2.0
resolution: "ignore@npm:5.2.0"
checksum: 6b1f926792d614f64c6c83da3a1f9c83f6196c2839aa41e1e32dd7b8d174cef2e329d75caabb62cb61ce9dc432f75e67d07d122a037312db7caa73166a1bdb77
languageName: node
linkType: hard
-"ignore@npm:^5.1.8":
- version: 5.1.9
- resolution: "ignore@npm:5.1.9"
- checksum: 6f6b2235f4e63648116c5814f76b2d3d63fae9c21b8a466862e865732f59e787c9938a9042f9457091db6f0d811508ea3c8c6a60f35bafc4ceea08bbe8f96fd5
- languageName: node
- linkType: hard
-
"immutable@npm:^3.8.2":
version: 3.8.2
resolution: "immutable@npm:3.8.2"
@@ -6784,10 +6429,10 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"ini@npm:*, ini@npm:^2.0.0":
- version: 2.0.0
- resolution: "ini@npm:2.0.0"
- checksum: e7aadc5fb2e4aefc666d74ee2160c073995a4061556b1b5b4241ecb19ad609243b9cceafe91bae49c219519394bbd31512516cb22a3b1ca6e66d869e0447e84e
+"ini@npm:*, ini@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "ini@npm:3.0.0"
+ checksum: e92b6b0835ac369e58c677e7faa8db6019ac667d7404887978fb86b181d658e50f1742ecbba7d81eb5ff917b3ae4d63a48e1ef3a9f8a0527bd7605fe1a9995d4
languageName: node
linkType: hard
@@ -6798,33 +6443,18 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"init-package-json@npm:*":
- version: 2.0.5
- resolution: "init-package-json@npm:2.0.5"
- dependencies:
- npm-package-arg: ^8.1.5
- promzard: ^0.3.0
- read: ~1.0.1
- read-package-json: ^4.1.1
- semver: ^7.3.5
- validate-npm-package-license: ^3.0.4
- validate-npm-package-name: ^3.0.0
- checksum: cbd3e2e79156d6e8722699f571e509e0733dde31ac4cb58c0aadb63f7cef1a131037c6d549bd6af5757032a51252b1bdb86a70f68ed6c10f866f203e5fb4f9ba
- languageName: node
- linkType: hard
-
-"init-package-json@npm:^3.0.1":
- version: 3.0.1
- resolution: "init-package-json@npm:3.0.1"
+"init-package-json@npm:*, init-package-json@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "init-package-json@npm:3.0.2"
dependencies:
- npm-package-arg: ^9.0.0
+ npm-package-arg: ^9.0.1
promzard: ^0.3.0
read: ^1.0.7
read-package-json: ^5.0.0
semver: ^7.3.5
validate-npm-package-license: ^3.0.4
- validate-npm-package-name: ^3.0.0
- checksum: b554ddb4833d511294ece4b5eb980d106316951207cb899df1e6583f38e67a182557b0bfe79ecc22033bc387eda1cd5b4771ef56534d9c21cdedbd998069145c
+ validate-npm-package-name: ^4.0.0
+ checksum: e027f60e4a1564809eee790d5a842341c784888fd7c7ace5f9a34ea76224c0adb6f3ab3bf205cf1c9c877a6e1a76c68b00847a984139f60813125d7b42a23a13
languageName: node
linkType: hard
@@ -6981,20 +6611,11 @@ fsevents@~2.3.2:
linkType: hard
"is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1":
- version: 2.8.1
- resolution: "is-core-module@npm:2.8.1"
- dependencies:
- has: ^1.0.3
- checksum: 418b7bc10768a73c41c7ef497e293719604007f88934a6ffc5f7c78702791b8528102fb4c9e56d006d69361549b3d9519440214a74aefc7e0b79e5e4411d377f
- languageName: node
- linkType: hard
-
-"is-core-module@npm:^2.8.0":
- version: 2.8.0
- resolution: "is-core-module@npm:2.8.0"
+ version: 2.9.0
+ resolution: "is-core-module@npm:2.9.0"
dependencies:
has: ^1.0.3
- checksum: f8b52714891e1a6c6577fcb8d5e057bab064a7a30954aab6beb5092e311473eb8da57afd334de4981dc32409ffca998412efc3a2edceb9e397cef6098d21dd91
+ checksum: b27034318b4b462f1c8f1dfb1b32baecd651d891a4e2d1922135daeff4141dfced2b82b07aef83ef54275c4a3526aa38da859223664d0868ca24182badb784ce
languageName: node
linkType: hard
@@ -7070,22 +6691,6 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"is-fullwidth-code-point@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-fullwidth-code-point@npm:1.0.0"
- dependencies:
- number-is-nan: ^1.0.0
- checksum: 4d46a7465a66a8aebcc5340d3b63a56602133874af576a9ca42c6f0f4bd787a743605771c5f246db77da96605fefeffb65fc1dbe862dcc7328f4b4d03edf5a57
- languageName: node
- linkType: hard
-
-"is-fullwidth-code-point@npm:^2.0.0":
- version: 2.0.0
- resolution: "is-fullwidth-code-point@npm:2.0.0"
- checksum: eef9c6e15f68085fec19ff6a978a6f1b8f48018fd1265035552078ee945573594933b09bbd6f562553e2a241561439f1ef5339276eba68d272001343084cfab8
- languageName: node
- linkType: hard
-
"is-fullwidth-code-point@npm:^3.0.0":
version: 3.0.0
resolution: "is-fullwidth-code-point@npm:3.0.0"
@@ -7109,16 +6714,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1":
- version: 4.0.1
- resolution: "is-glob@npm:4.0.1"
- dependencies:
- is-extglob: ^2.1.1
- checksum: 84627cad11b4e745f5db5a163f32c47b711585a5ff6e14f8f8d026db87f4cdd3e2c95f6fa1f94ad22e469f36d819ae2814f03f9c668b164422ac3354a94672d3
- languageName: node
- linkType: hard
-
-"is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
+"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
version: 4.0.3
resolution: "is-glob@npm:4.0.3"
dependencies:
@@ -7134,7 +6730,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"is-negative-zero@npm:^2.0.1":
+"is-negative-zero@npm:^2.0.2":
version: 2.0.2
resolution: "is-negative-zero@npm:2.0.2"
checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a
@@ -7142,11 +6738,11 @@ fsevents@~2.3.2:
linkType: hard
"is-number-object@npm:^1.0.4":
- version: 1.0.6
- resolution: "is-number-object@npm:1.0.6"
+ version: 1.0.7
+ resolution: "is-number-object@npm:1.0.7"
dependencies:
has-tostringtag: ^1.0.0
- checksum: c697704e8fc2027fc41cb81d29805de4e8b6dc9c3efee93741dbf126a8ecc8443fef85adbc581415ae7e55d325e51d0a942324ae35c829131748cce39cba55f3
+ checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7
languageName: node
linkType: hard
@@ -7220,10 +6816,12 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"is-shared-array-buffer@npm:^1.0.1":
- version: 1.0.1
- resolution: "is-shared-array-buffer@npm:1.0.1"
- checksum: 2ffb92533e64e2876e6cfe6906871d28400b6f1a53130fe652ec8007bc0e5044d05e7af8e31bdc992fbba520bd92938cfbeedd0f286be92f250c7c76191c4d90
+"is-shared-array-buffer@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-shared-array-buffer@npm:1.0.2"
+ dependencies:
+ call-bind: ^1.0.2
+ checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a
languageName: node
linkType: hard
@@ -7277,14 +6875,14 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0":
+"is-typedarray@npm:~1.0.0":
version: 1.0.0
resolution: "is-typedarray@npm:1.0.0"
checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7
languageName: node
linkType: hard
-"is-weakref@npm:^1.0.1":
+"is-weakref@npm:^1.0.2":
version: 1.0.2
resolution: "is-weakref@npm:1.0.2"
dependencies:
@@ -7381,9 +6979,9 @@ fsevents@~2.3.2:
linkType: hard
"jose@npm:^4.6.0":
- version: 4.6.0
- resolution: "jose@npm:4.6.0"
- checksum: 7f48cb030c9e8586e825ad5cc71e792f7b71b420afd3c45913e0719fd4abe6a756179c732604d42fbbb53c64b63f78818669599eeef11c988c0c34dd1178fe43
+ version: 4.8.1
+ resolution: "jose@npm:4.8.1"
+ checksum: c3e239ccbb07863c28250aedea3e734e4a3b26abc1cbf6acf333381db5ef31e5d1eeced791299076f13b24f41b4b463a7a1e4eaa0079ae0febf9bfd60acb555a
languageName: node
linkType: hard
@@ -7435,7 +7033,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"json-buffer@npm:3.0.1":
+"json-buffer@npm:3.0.1, json-buffer@npm:~3.0.1":
version: 3.0.1
resolution: "json-buffer@npm:3.0.1"
checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581
@@ -7502,14 +7100,12 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"json5@npm:^2.1.2":
- version: 2.2.0
- resolution: "json5@npm:2.2.0"
- dependencies:
- minimist: ^1.2.5
+"json5@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "json5@npm:2.2.1"
bin:
json5: lib/cli.js
- checksum: e88fc5274bb58fc99547baa777886b069d2dd96d9cfc4490b305fd16d711dabd5979e35a4f90873cefbeb552e216b041a304fe56702bedba76e19bc7845f208d
+ checksum: 74b8a23b102a6f2bf2d224797ae553a75488b5adbaee9c9b6e5ab8b510a2fc6e38f876d4c77dea672d4014a44b2399e15f2051ac2b37b87f74c0c7602003543b
languageName: node
linkType: hard
@@ -7583,26 +7179,27 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"just-diff-apply@npm:^4.0.1":
- version: 4.0.1
- resolution: "just-diff-apply@npm:4.0.1"
- checksum: fdb58c0c8da766943fb316158d823fe485058d6b31ec6c51f99076df76363fa1ca35d79fb23f53184bf5b7443ae470fe5f087b4a504e913a8f96474963907e2e
+"just-diff-apply@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "just-diff-apply@npm:5.2.0"
+ checksum: 5e63562665f7b3b279d286f5cd3d73af0e0ffadbdc02cb2c43a50370ad1a614b557842938d157de904be69a4bc6b2187cee3257add1440fdf1e4814de691b0af
languageName: node
linkType: hard
"just-diff@npm:^5.0.1":
- version: 5.0.1
- resolution: "just-diff@npm:5.0.1"
- checksum: efbdb652987ca109839dba385904ea152cc73ef4c165eebb4be0af261734cf91387e529fcd52aea5ba9567b4ef76c584ee6254ccf0030dc5d0ccdab3b890a085
+ version: 5.0.2
+ resolution: "just-diff@npm:5.0.2"
+ checksum: 1c7408432f53ff67ea4ce41adb5579c08a39f990956ddbf2e94f4161f3802a41179d7412538573972433ce9f50e371afdca019964e51cf500577bf1aa732b842
languageName: node
linkType: hard
"keyv@npm:^4.0.0":
- version: 4.0.5
- resolution: "keyv@npm:4.0.5"
+ version: 4.2.2
+ resolution: "keyv@npm:4.2.2"
dependencies:
+ compress-brotli: ^1.3.6
json-buffer: 3.0.1
- checksum: 968ec062e66a660bd1c403b2932f602948ea76b17f8419bb04166491c1f186da1c3b39db4ccd1fdb6a19a4dcb374334455dd3ac31e13a70000c81e2daa866117
+ checksum: 1d03674145339cb6d7509fd7791a2ea93c0a9b7ec10e475d621f4443b8bf877c21dc391ae1002dd1bade4f44e2093f850f1da81d08c03812b4592cd5ff028db7
languageName: node
linkType: hard
@@ -7665,84 +7262,37 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"libnpmaccess@npm:*":
- version: 5.0.0
- resolution: "libnpmaccess@npm:5.0.0"
- dependencies:
- aproba: ^2.0.0
- minipass: ^3.1.1
- npm-package-arg: ^8.1.2
- npm-registry-fetch: ^11.0.0
- checksum: d6eb8bc053ff5252c38808afd9bcd08241db7a19b0817f4c0671bf29b21c82e482a2ff7851e5e7c35c72db714bbb8a1c5051594473422bfb67843b1b94695d79
- languageName: node
- linkType: hard
-
-"libnpmaccess@npm:^6.0.2":
- version: 6.0.2
- resolution: "libnpmaccess@npm:6.0.2"
+"libnpmaccess@npm:*, libnpmaccess@npm:^6.0.2":
+ version: 6.0.3
+ resolution: "libnpmaccess@npm:6.0.3"
dependencies:
aproba: ^2.0.0
minipass: ^3.1.1
npm-package-arg: ^9.0.1
npm-registry-fetch: ^13.0.0
- checksum: ffc910cda1ca39c509a3e89455d3cc70f3059cea8d7624b46acfa7f42f3ae20c446246dd5176b50c536e73fcf81f29b49b6dc2182b323a875745435dc65c10e4
- languageName: node
- linkType: hard
-
-"libnpmdiff@npm:*":
- version: 3.0.0
- resolution: "libnpmdiff@npm:3.0.0"
- dependencies:
- "@npmcli/disparity-colors": ^1.0.1
- "@npmcli/installed-package-contents": ^1.0.7
- binary-extensions: ^2.2.0
- diff: ^5.0.0
- minimatch: ^3.0.4
- npm-package-arg: ^8.1.4
- pacote: ^12.0.0
- tar: ^6.1.0
- checksum: 43123aee687e9c8a0db0ba40cd7fe10fbd351cf1952b71c377f833d019cf6dcc777a08af52a2654cfba49c6f2d079ce40ffb72342128d229b580faf290334177
+ checksum: 4a437390d52bd5e6145164210cfab4cdbc824c4f4a62e11cf186cad9c159a7c8f0c1b6e37346db1cc675bcdf1508e92ed64d47ac1a9bcf838a670bb4741a50c9
languageName: node
linkType: hard
-"libnpmdiff@npm:^4.0.2":
- version: 4.0.2
- resolution: "libnpmdiff@npm:4.0.2"
+"libnpmdiff@npm:*, libnpmdiff@npm:^4.0.2":
+ version: 4.0.3
+ resolution: "libnpmdiff@npm:4.0.3"
dependencies:
- "@npmcli/disparity-colors": ^1.0.1
+ "@npmcli/disparity-colors": ^2.0.0
"@npmcli/installed-package-contents": ^1.0.7
binary-extensions: ^2.2.0
diff: ^5.0.0
- minimatch: ^3.0.4
+ minimatch: ^5.0.1
npm-package-arg: ^9.0.1
pacote: ^13.0.5
tar: ^6.1.0
- checksum: 85843bff4ace753494096c85fc4e8e52ad9d1370cb6e274f2eb814d70a36fce33c99493dd2a2a8f60f2b65aef244fe040d10a85d7d9d7f9853c90921e95a647a
+ checksum: 415a8d40f2d746b1d66f155f818b5581c510d975201250f6d1e4d94888905a660b513a87ca01a59994b5afa78a1def4ebbfce35542b992927cdbfc286fe5b6ae
languageName: node
linkType: hard
-"libnpmexec@npm:*":
- version: 3.0.2
- resolution: "libnpmexec@npm:3.0.2"
- dependencies:
- "@npmcli/arborist": ^4.0.0
- "@npmcli/ci-detect": ^1.3.0
- "@npmcli/run-script": ^2.0.0
- chalk: ^4.1.0
- mkdirp-infer-owner: ^2.0.0
- npm-package-arg: ^8.1.2
- pacote: ^12.0.0
- proc-log: ^1.0.0
- read: ^1.0.7
- read-package-json-fast: ^2.0.2
- walk-up-path: ^1.0.0
- checksum: 997257242ec5f39fd791f4ad8f2099c3cf992b0afec0f464803c91a4756df70a6618115a4299b005b053ff36b1d03f0d4a5e5b1fd6d1cb4af09c6b73c8773952
- languageName: node
- linkType: hard
-
-"libnpmexec@npm:^4.0.2":
- version: 4.0.2
- resolution: "libnpmexec@npm:4.0.2"
+"libnpmexec@npm:*, libnpmexec@npm:^4.0.2":
+ version: 4.0.5
+ resolution: "libnpmexec@npm:4.0.5"
dependencies:
"@npmcli/arborist": ^5.0.0
"@npmcli/ci-detect": ^2.0.0
@@ -7750,184 +7300,98 @@ fsevents@~2.3.2:
chalk: ^4.1.0
mkdirp-infer-owner: ^2.0.0
npm-package-arg: ^9.0.1
- npmlog: ^6.0.1
+ npmlog: ^6.0.2
pacote: ^13.0.5
proc-log: ^2.0.0
read: ^1.0.7
read-package-json-fast: ^2.0.2
walk-up-path: ^1.0.0
- checksum: dfa657c94a2f29d79e1805ff3d6a1821f8433132a7a9815c082e6baca4532c97dbcb1c128231f0a9ef2c87b5e3963c2be64bcd898b70cff8a2eea7aca7f585f2
- languageName: node
- linkType: hard
-
-"libnpmfund@npm:*":
- version: 2.0.2
- resolution: "libnpmfund@npm:2.0.2"
- dependencies:
- "@npmcli/arborist": ^4.0.0
- checksum: 833461f2b1c888489fbe888d015bfbd91f5086c2111f9e7e4f52ad33d9b98cba8e994baa837f4ae2c1f5ddc2226b7760ba665676958e0ca4973549b49d6f2fec
+ checksum: 46c248211a7a3534e1e9a3eaac5fab9d8ecc59828508f04eec8862a02d281d72e47bd8102b18e06526b1bed3905759640b410cda9a56321a0a8e04a69824766f
languageName: node
linkType: hard
-"libnpmfund@npm:^3.0.1":
- version: 3.0.1
- resolution: "libnpmfund@npm:3.0.1"
+"libnpmfund@npm:*, libnpmfund@npm:^3.0.1":
+ version: 3.0.2
+ resolution: "libnpmfund@npm:3.0.2"
dependencies:
"@npmcli/arborist": ^5.0.0
- checksum: e29b1eba7899edfc7a751336dc4b3041cabea0a2905825c3e15921326fd2eeb1a2e774b01e4555e88bd292b70b6b8ffcea0ecb1a2a60acdcdf7594a419c88a29
+ checksum: 9c25bed2c5207007a509f0dff97d6d9712c0648b58bb96617b652e6803d14252203751a83298c257446e8e7b58556c9b519b5b0d5ac9a6d29453576aeb9ee20e
languageName: node
linkType: hard
-"libnpmhook@npm:*":
- version: 7.0.0
- resolution: "libnpmhook@npm:7.0.0"
- dependencies:
- aproba: ^2.0.0
- npm-registry-fetch: ^11.0.0
- checksum: 9831fc2dc3d2fac4c7e1400623d691bed169f5e2fa3376077aff4af05d08b400604dcd9584bb07d2a965bdcb1aacb3772e19e4de7e035088d980edd87eca64dc
- languageName: node
- linkType: hard
-
-"libnpmhook@npm:^8.0.2":
- version: 8.0.2
- resolution: "libnpmhook@npm:8.0.2"
+"libnpmhook@npm:*, libnpmhook@npm:^8.0.2":
+ version: 8.0.3
+ resolution: "libnpmhook@npm:8.0.3"
dependencies:
aproba: ^2.0.0
npm-registry-fetch: ^13.0.0
- checksum: 18299d0f6f4b2077bc976aa8f7b2766c0b76ea9d780f9e5a6c79c9b76cd707f9899ddce3e010a73709a832a15391c01a9382c2a8d2acd93ac28ab1dc8ab69634
- languageName: node
- linkType: hard
-
-"libnpmorg@npm:*":
- version: 3.0.0
- resolution: "libnpmorg@npm:3.0.0"
- dependencies:
- aproba: ^2.0.0
- npm-registry-fetch: ^11.0.0
- checksum: a180a73b8548530833779c9ea8f83aca3e7f8dfe722fb8e47e8b35f4cc1c35d8aed5ce2005d3be6dac89cd8cf43de022a8580e13bc220b14646ca047dc112b22
+ checksum: 99d031d102d62a78672a94965208c2716a0b1d9ca413f7f45dc55b571f6b77f8ac293810fd8dd3445a6196c92a2219095f85ce430bb82c5ce200e7e0e1a83064
languageName: node
linkType: hard
-"libnpmorg@npm:^4.0.2":
- version: 4.0.2
- resolution: "libnpmorg@npm:4.0.2"
+"libnpmorg@npm:*, libnpmorg@npm:^4.0.2":
+ version: 4.0.3
+ resolution: "libnpmorg@npm:4.0.3"
dependencies:
aproba: ^2.0.0
npm-registry-fetch: ^13.0.0
- checksum: afc122c9c10341b9e934dd3e587157aabaab462debaf6b56928c9a6adf1250b22804499a54a81fed2d978d499bab918528fe24a782f2547b2fba146c8e4141db
- languageName: node
- linkType: hard
-
-"libnpmpack@npm:*":
- version: 3.0.1
- resolution: "libnpmpack@npm:3.0.1"
- dependencies:
- "@npmcli/run-script": ^2.0.0
- npm-package-arg: ^8.1.0
- pacote: ^12.0.0
- checksum: c6d206a128be9c95509cbe9098924ca26ac4fad48dc9672f01f834d37422244a71092611deb4195a03baae48291c66809fecb60950c21b2f821d10035c71a909
+ checksum: 6b54c8f8216b0d98dda2fdedd8a38fbe36f5f98da94c3613efc00789bfce334b2996037f0a0839af37d5d2dc52378ca8fdae5dee932202d8d2235d05b4563861
languageName: node
linkType: hard
-"libnpmpack@npm:^4.0.2":
- version: 4.0.2
- resolution: "libnpmpack@npm:4.0.2"
+"libnpmpack@npm:*, libnpmpack@npm:^4.0.2":
+ version: 4.0.3
+ resolution: "libnpmpack@npm:4.0.3"
dependencies:
"@npmcli/run-script": ^3.0.0
npm-package-arg: ^9.0.1
pacote: ^13.0.5
- checksum: 401286a540189535bc7b6c37334260c54460d34651c51efa8329122135a69979733e250f8e8e8543c1533536f013d66d3234f6ab7e8c067b46b1398b29e8b263
- languageName: node
- linkType: hard
-
-"libnpmpublish@npm:*":
- version: 5.0.0
- resolution: "libnpmpublish@npm:5.0.0"
- dependencies:
- normalize-package-data: ^3.0.2
- npm-package-arg: ^8.1.2
- npm-registry-fetch: ^11.0.0
- semver: ^7.1.3
- ssri: ^8.0.1
- checksum: 172eaefab2d2ebc4e0516d24f12d04914dbad2dbaeadeabd7e168c8b80f0638b787c4d1921d0ce5fe83dc6966a6f36e72c10f054cef57eb0d67fe13827426db6
+ checksum: 41fdc65e2cf78a85f32bf4ef18de7941827a668c9865d59d02dbb4508d5c0e27bc0c1c59f450f9c7e1297c42ea902713f4b4697837fcf5ed002f04056a224bff
languageName: node
linkType: hard
-"libnpmpublish@npm:^6.0.2":
- version: 6.0.2
- resolution: "libnpmpublish@npm:6.0.2"
+"libnpmpublish@npm:*, libnpmpublish@npm:^6.0.2":
+ version: 6.0.4
+ resolution: "libnpmpublish@npm:6.0.4"
dependencies:
normalize-package-data: ^4.0.0
npm-package-arg: ^9.0.1
npm-registry-fetch: ^13.0.0
- semver: ^7.1.3
- ssri: ^8.0.1
- checksum: 6b8c8dee06f3ba184d6afbc2e8f4a345e89f23b3417e78372b562a245588d058aa600ea52ac3eaaeb6f390169cc27caa53c4cc8aca69727b40f07c441144632f
- languageName: node
- linkType: hard
-
-"libnpmsearch@npm:*":
- version: 4.0.0
- resolution: "libnpmsearch@npm:4.0.0"
- dependencies:
- npm-registry-fetch: ^11.0.0
- checksum: bcb9e07090e69a90e76a59c1e6c60d7de949c41a83af5a4a452e79eb051de2dd174d226d7d2f675caf505344e6a514785ef015d939703ea6f620ded7ad86f3c1
+ semver: ^7.3.7
+ ssri: ^9.0.0
+ checksum: d653e0d9be0b01011c020f8252f480ca68105b56fde575a6c4fda650f6b5ff33a51fda43897ba817d2955579cc096910561e60e26628c59f5ac2d031157551d1
languageName: node
linkType: hard
-"libnpmsearch@npm:^5.0.2":
- version: 5.0.2
- resolution: "libnpmsearch@npm:5.0.2"
+"libnpmsearch@npm:*, libnpmsearch@npm:^5.0.2":
+ version: 5.0.3
+ resolution: "libnpmsearch@npm:5.0.3"
dependencies:
npm-registry-fetch: ^13.0.0
- checksum: 984012a5c1504fdefbc9609ea86825efd91dbe525a5bd6ff2a54a06b3282358add01662b9e3771bee2a7f76a9fd1aef14bee7de3604b81677f6f32b8ea473228
+ checksum: c346d1656bfa46c52e25d71d44d2127961c1dd87d1cc99eabffcd4d6593fbd59071047bb0d28323f914387e3ccf9a8ed8e249f8ca563a2e70d3c5be954707442
languageName: node
linkType: hard
-"libnpmteam@npm:*":
- version: 3.0.0
- resolution: "libnpmteam@npm:3.0.0"
- dependencies:
- aproba: ^2.0.0
- npm-registry-fetch: ^11.0.0
- checksum: e425e2dddaabed7f052ae7226311ab63d109ad03cd767b3cfd1abc2aec468b507fdef27df4eb42444cd34fb591c911cbbf745de3ae0fe1533bc131af327eed18
- languageName: node
- linkType: hard
-
-"libnpmteam@npm:^4.0.2":
- version: 4.0.2
- resolution: "libnpmteam@npm:4.0.2"
+"libnpmteam@npm:*, libnpmteam@npm:^4.0.2":
+ version: 4.0.3
+ resolution: "libnpmteam@npm:4.0.3"
dependencies:
aproba: ^2.0.0
npm-registry-fetch: ^13.0.0
- checksum: 13698ffce7b5e2a74cd2b71246bea9d8f0daa4b463eaa7d8c774462ac51f62e95df8698fd91d0f762566a9c652a67cbfe79bf9428408048e8494edbbda490d3c
+ checksum: 0c2a1fd55ade169d0d623cacfbd01fc420fb37cd157947eeda8a2be5affbff71069912c04a896c4a69569e23c16b0aa101a6cbaf4b07264514519cb7061569fb
languageName: node
linkType: hard
-"libnpmversion@npm:*":
- version: 2.0.2
- resolution: "libnpmversion@npm:2.0.2"
- dependencies:
- "@npmcli/git": ^2.0.7
- "@npmcli/run-script": ^2.0.0
- json-parse-even-better-errors: ^2.3.1
- semver: ^7.3.5
- stringify-package: ^1.0.1
- checksum: 515cfe798692abcc2ebcccc3d6e622f5358a22d77b8170f9a7dddfbacfbb1ec8e890544e04605eb2de2815439c5fd35b18775040e2d64dabb085431ed64efc49
- languageName: node
- linkType: hard
-
-"libnpmversion@npm:^3.0.1":
- version: 3.0.1
- resolution: "libnpmversion@npm:3.0.1"
+"libnpmversion@npm:*, libnpmversion@npm:^3.0.1":
+ version: 3.0.4
+ resolution: "libnpmversion@npm:3.0.4"
dependencies:
"@npmcli/git": ^3.0.0
"@npmcli/run-script": ^3.0.0
json-parse-even-better-errors: ^2.3.1
proc-log: ^2.0.0
- semver: ^7.3.5
- stringify-package: ^1.0.1
- checksum: ab3e09f7037e40552e88611234fdd6f2b3829f3729344578474f9444a4bd9aa39ecb29472302aa45813e50ae25435ab18357294d93c1f116bcd09778e4c1f984
+ semver: ^7.3.7
+ checksum: ac0820826ffb1efec4e34813b9f567975b9a580b788ddcfd13e45b42468612001b61bc411b789b0fc611d4d9e61d0a4083b38660342a4fd4a85e3cc7f37054ac
languageName: node
linkType: hard
@@ -7946,8 +7410,8 @@ fsevents@~2.3.2:
linkType: hard
"lint-staged@npm:^12.3.5":
- version: 12.3.7
- resolution: "lint-staged@npm:12.3.7"
+ version: 12.4.1
+ resolution: "lint-staged@npm:12.4.1"
dependencies:
cli-truncate: ^3.1.0
colorette: ^2.0.16
@@ -7965,7 +7429,7 @@ fsevents@~2.3.2:
yaml: ^1.10.2
bin:
lint-staged: bin/lint-staged.js
- checksum: b595097556880eb2ab7ce2cf105047f6f22525ccfd608fbdc63ab243259aa36a26949576fadff673748fb885e7cb37ad3f4471d964ad54c1205d57a58999ba24
+ checksum: b57183b537064cda6caef6679918bf271903145f7c28d09567e918b8b13094048b579f8df808ea590dbd7ea2ec332327c5e372cf3d77e85b7b0254f6541ce4c3
languageName: node
linkType: hard
@@ -8194,10 +7658,10 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"lru-cache@npm:^7.3.1, lru-cache@npm:^7.5.1, lru-cache@npm:^7.7.1":
- version: 7.7.1
- resolution: "lru-cache@npm:7.7.1"
- checksum: f362c5a2cfa8ad6fe557ec43dc1b7a9695cce84a5652a43ff813609f782f5da576631e7dfad41878bf19a7a69438f38375178635ee80de269aa314280ca2f59e
+"lru-cache@npm:^7.4.4, lru-cache@npm:^7.5.1, lru-cache@npm:^7.7.1":
+ version: 7.9.0
+ resolution: "lru-cache@npm:7.9.0"
+ checksum: c91a293a103d11ea4f07de4122ba4f73d8203d0de51852fb612b1764296aebf623a3e11dddef1b3aefdc8d71af97d52b222dad5459dcb967713bbab9a19fed7d
languageName: node
linkType: hard
@@ -8210,6 +7674,15 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
+"magic-string@npm:^0.26.1":
+ version: 0.26.1
+ resolution: "magic-string@npm:0.26.1"
+ dependencies:
+ sourcemap-codec: ^1.4.8
+ checksum: 23f21f5734346ddfbabd7b9834e3ecda3521e3e1db81166c1513b45b729489bbed1eafa8cd052c7db7fdc7c68ebc5c03bc00dd5a23697edda15dbecaf8c98397
+ languageName: node
+ linkType: hard
+
"make-dir@npm:^2.0.0":
version: 2.1.0
resolution: "make-dir@npm:2.1.0"
@@ -8220,33 +7693,9 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"make-fetch-happen@npm:*, make-fetch-happen@npm:^9.0.1, make-fetch-happen@npm:^9.1.0":
- version: 9.1.0
- resolution: "make-fetch-happen@npm:9.1.0"
- dependencies:
- agentkeepalive: ^4.1.3
- cacache: ^15.2.0
- http-cache-semantics: ^4.1.0
- http-proxy-agent: ^4.0.1
- https-proxy-agent: ^5.0.0
- is-lambda: ^1.0.1
- lru-cache: ^6.0.0
- minipass: ^3.1.3
- minipass-collect: ^1.0.2
- minipass-fetch: ^1.3.2
- minipass-flush: ^1.0.5
- minipass-pipeline: ^1.2.4
- negotiator: ^0.6.2
- promise-retry: ^2.0.1
- socks-proxy-agent: ^6.0.0
- ssri: ^8.0.0
- checksum: 0eb371c85fdd0b1584fcfdf3dc3c62395761b3c14658be02620c310305a9a7ecf1617a5e6fb30c1d081c5c8aaf177fa133ee225024313afabb7aa6a10f1e3d04
- languageName: node
- linkType: hard
-
-"make-fetch-happen@npm:^10.0.3, make-fetch-happen@npm:^10.0.6":
- version: 10.1.0
- resolution: "make-fetch-happen@npm:10.1.0"
+"make-fetch-happen@npm:*, make-fetch-happen@npm:^10.0.3, make-fetch-happen@npm:^10.0.6, make-fetch-happen@npm:^10.1.2":
+ version: 10.1.2
+ resolution: "make-fetch-happen@npm:10.1.2"
dependencies:
agentkeepalive: ^4.2.1
cacache: ^16.0.2
@@ -8263,31 +7712,8 @@ fsevents@~2.3.2:
negotiator: ^0.6.3
promise-retry: ^2.0.1
socks-proxy-agent: ^6.1.1
- ssri: ^8.0.1
- checksum: fae1c2f255f6467bf6731344c2c04dd0e1f1899d8ae4698d98e2c86131ba899a418746ebc564493b85d1651d43c93b49f7825a2773edda4285a1c4c5e5ba9168
- languageName: node
- linkType: hard
-
-"make-fetch-happen@npm:^8.0.14":
- version: 8.0.14
- resolution: "make-fetch-happen@npm:8.0.14"
- dependencies:
- agentkeepalive: ^4.1.3
- cacache: ^15.0.5
- http-cache-semantics: ^4.1.0
- http-proxy-agent: ^4.0.1
- https-proxy-agent: ^5.0.0
- is-lambda: ^1.0.1
- lru-cache: ^6.0.0
- minipass: ^3.1.3
- minipass-collect: ^1.0.2
- minipass-fetch: ^1.3.2
- minipass-flush: ^1.0.5
- minipass-pipeline: ^1.2.4
- promise-retry: ^2.0.1
- socks-proxy-agent: ^5.0.0
- ssri: ^8.0.0
- checksum: 326fefde1aec1f1314e548be74baaaa322208718d1b51c9688a326f73dea70f57767b4f5423230e39408cfe7c6dcf7adcf86ca4798c919c3ea78f54532910434
+ ssri: ^9.0.0
+ checksum: 42825d119a7e4f5b1a8e7048a86d328cd36bb1ff875d155ce7079d9a0afdd310c198fb310096af358cfa9ecdf643cecf960380686792457dccb36e17efe89eb0
languageName: node
linkType: hard
@@ -8338,11 +7764,11 @@ fsevents@~2.3.2:
linkType: hard
"marked@npm:^4.0.10":
- version: 4.0.12
- resolution: "marked@npm:4.0.12"
+ version: 4.0.15
+ resolution: "marked@npm:4.0.15"
bin:
marked: bin/marked.js
- checksum: 7575117f85a8986652f3ac8b8a7b95056c4c5fce01a1fc76dc4c7960412cb4c9bd9da8133487159b6b3ff84f52b543dfe9a36f826a5f358892b5ec4b6824f192
+ checksum: 8992c37669b872846a226f90dc5a8fa1e5d56bba6e32fa36270fd3d327dd9e11fedc5b47b68de611dcdce1573d30fbadf61bf23f86c1a679e5385424d7b9d9f3
languageName: node
linkType: hard
@@ -8452,13 +7878,13 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
- version: 4.0.4
- resolution: "micromatch@npm:4.0.4"
+"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5":
+ version: 4.0.5
+ resolution: "micromatch@npm:4.0.5"
dependencies:
- braces: ^3.0.1
- picomatch: ^2.2.3
- checksum: ef3d1c88e79e0a68b0e94a03137676f3324ac18a908c245a9e5936f838079fcc108ac7170a5fadc265a9c2596963462e402841406bda1a4bb7b68805601d631c
+ braces: ^3.0.2
+ picomatch: ^2.3.1
+ checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc
languageName: node
linkType: hard
@@ -8474,19 +7900,19 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"mime-db@npm:1.51.0":
- version: 1.51.0
- resolution: "mime-db@npm:1.51.0"
- checksum: 613b1ac9d6e725cc24444600b124a7f1ce6c60b1baa654f39a3e260d0995a6dffc5693190217e271af7e2a5612dae19f2a73f3e316707d797a7391165f7ef423
+"mime-db@npm:1.52.0":
+ version: 1.52.0
+ resolution: "mime-db@npm:1.52.0"
+ checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f
languageName: node
linkType: hard
"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19":
- version: 2.1.34
- resolution: "mime-types@npm:2.1.34"
+ version: 2.1.35
+ resolution: "mime-types@npm:2.1.35"
dependencies:
- mime-db: 1.51.0
- checksum: 67013de9e9d6799bde6d669d18785b7e18bcd212e710d3e04a4727f92f67a8ad4e74aee24be28b685adb794944814bde649119b58ee3282ffdbee58f9278d9f3
+ mime-db: 1.52.0
+ checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836
languageName: node
linkType: hard
@@ -8548,12 +7974,12 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"minimatch@npm:^3.0.4":
- version: 3.0.4
- resolution: "minimatch@npm:3.0.4"
+"minimatch@npm:^3.0.4, minimatch@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "minimatch@npm:3.1.2"
dependencies:
brace-expansion: ^1.1.7
- checksum: 66ac295f8a7b59788000ea3749938b0970344c841750abd96694f80269b926ebcafad3deeb3f1da2522978b119e6ae3a5869b63b13a7859a456b3408bd18a078
+ checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a
languageName: node
linkType: hard
@@ -8577,14 +8003,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"minimist@npm:^1.2.0, minimist@npm:^1.2.5":
- version: 1.2.5
- resolution: "minimist@npm:1.2.5"
- checksum: 86706ce5b36c16bfc35c5fe3dbb01d5acdc9a22f2b6cc810b6680656a1d2c0e44a0159c9a3ba51fb072bb5c203e49e10b51dcd0eec39c481f4c42086719bae52
- languageName: node
- linkType: hard
-
-"minimist@npm:^1.2.6":
+"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6":
version: 1.2.6
resolution: "minimist@npm:1.2.6"
checksum: d15428cd1e11eb14e1233bcfb88ae07ed7a147de251441d61158619dfb32c4d7e9061d09cab4825fdee18ecd6fce323228c8c47b5ba7cd20af378ca4048fb3fb
@@ -8600,21 +8019,6 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"minipass-fetch@npm:^1.3.0, minipass-fetch@npm:^1.3.2":
- version: 1.4.1
- resolution: "minipass-fetch@npm:1.4.1"
- dependencies:
- encoding: ^0.1.12
- minipass: ^3.1.0
- minipass-sized: ^1.0.3
- minizlib: ^2.0.0
- dependenciesMeta:
- encoding:
- optional: true
- checksum: ec93697bdb62129c4e6c0104138e681e30efef8c15d9429dd172f776f83898471bc76521b539ff913248cc2aa6d2b37b652c993504a51cc53282563640f29216
- languageName: node
- linkType: hard
-
"minipass-fetch@npm:^2.0.3":
version: 2.1.0
resolution: "minipass-fetch@npm:2.1.0"
@@ -8649,7 +8053,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"minipass-pipeline@npm:*, minipass-pipeline@npm:^1.2.2, minipass-pipeline@npm:^1.2.4":
+"minipass-pipeline@npm:*, minipass-pipeline@npm:^1.2.4":
version: 1.2.4
resolution: "minipass-pipeline@npm:1.2.4"
dependencies:
@@ -8667,7 +8071,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"minipass@npm:*, minipass@npm:^3.1.6":
+"minipass@npm:*, minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6":
version: 3.1.6
resolution: "minipass@npm:3.1.6"
dependencies:
@@ -8676,16 +8080,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"minipass@npm:^3.0.0, minipass@npm:^3.1.0, minipass@npm:^3.1.1, minipass@npm:^3.1.3":
- version: 3.1.3
- resolution: "minipass@npm:3.1.3"
- dependencies:
- yallist: ^4.0.0
- checksum: 74b623c1f996caafa66772301b66a1b634b20270f0d1a731ef86195d5a1a5f9984a773a1e88a6cecfd264d6c471c4c0fc8574cd96488f01c8f74c0b600021e55
- languageName: node
- linkType: hard
-
-"minizlib@npm:^2.0.0, minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
+"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
version: 2.1.2
resolution: "minizlib@npm:2.1.2"
dependencies:
@@ -8744,13 +8139,13 @@ fsevents@~2.3.2:
linkType: hard
"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.3":
- version: 0.5.5
- resolution: "mkdirp@npm:0.5.5"
+ version: 0.5.6
+ resolution: "mkdirp@npm:0.5.6"
dependencies:
- minimist: ^1.2.5
+ minimist: ^1.2.6
bin:
mkdirp: bin/cmd.js
- checksum: 3bce20ea525f9477befe458ab85284b0b66c8dc3812f94155af07c827175948cdd8114852ac6c6d82009b13c1048c37f6d98743eb019651ee25c39acc8aabe7d
+ checksum: 0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2
languageName: node
linkType: hard
@@ -8762,9 +8157,9 @@ fsevents@~2.3.2:
linkType: hard
"moment@npm:^2.29.1":
- version: 2.29.1
- resolution: "moment@npm:2.29.1"
- checksum: 1e14d5f422a2687996be11dd2d50c8de3bd577c4a4ca79ba5d02c397242a933e5b941655de6c8cb90ac18f01cc4127e55b4a12ae3c527a6c0a274e455979345e
+ version: 2.29.3
+ resolution: "moment@npm:2.29.3"
+ checksum: 2e780e36d9a1823c08a1b6313cbb08bd01ecbb2a9062095820a34f42c878991ccba53abaa6abb103fd5c01e763724f295162a8c50b7e95b4f1c992ef0772d3f0
languageName: node
linkType: hard
@@ -8811,12 +8206,12 @@ fsevents@~2.3.2:
linkType: hard
"n3@npm:^1.6.3":
- version: 1.15.0
- resolution: "n3@npm:1.15.0"
+ version: 1.16.1
+ resolution: "n3@npm:1.16.1"
dependencies:
queue-microtask: ^1.1.2
readable-stream: ^3.6.0
- checksum: 0e2bb4081c20e9c12dda4d696013925e31f4dbfc9fb38dbfd5b2ab9c7a9650da95c2aa617e67d22e6a8d2d1298179450b8e01c7f7ab67e0243c1c97ee0fb6389
+ checksum: 97519b77a57e5f019bc2bd52ab8e9304d0f35d9d2cf847870e1dcf9bd2453566c6373ec697377df6b05defad996b95f3a00df30914a707839dd1d1365387cbb8
languageName: node
linkType: hard
@@ -8829,12 +8224,12 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"nanoid@npm:^3.3.1":
- version: 3.3.1
- resolution: "nanoid@npm:3.3.1"
+"nanoid@npm:^3.3.3":
+ version: 3.3.4
+ resolution: "nanoid@npm:3.3.4"
bin:
nanoid: bin/nanoid.cjs
- checksum: 4ef0969e1bbe866fc223eb32276cbccb0961900bfe79104fa5abe34361979dead8d0e061410a5c03bc3d47455685adf32c09d6f27790f4a6898fb51f7df7ec86
+ checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c
languageName: node
linkType: hard
@@ -8864,13 +8259,6 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"negotiator@npm:^0.6.2":
- version: 0.6.2
- resolution: "negotiator@npm:0.6.2"
- checksum: dfddaff6c06792f1c4c3809e29a427b8daef8cd437c83b08dd51d7ee11bbd1c29d9512d66b801144d6c98e910ffd8723f2432e0cbf8b18d41d2a09599c975ab3
- languageName: node
- linkType: hard
-
"negotiator@npm:^0.6.3":
version: 0.6.3
resolution: "negotiator@npm:0.6.3"
@@ -8908,48 +8296,21 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"node-fetch@npm:2.6.7":
- version: 2.6.7
- resolution: "node-fetch@npm:2.6.7"
- dependencies:
- whatwg-url: ^5.0.0
- peerDependencies:
- encoding: ^0.1.0
- peerDependenciesMeta:
- encoding:
- optional: true
- checksum: 8d816ffd1ee22cab8301c7756ef04f3437f18dace86a1dae22cf81db8ef29c0bf6655f3215cb0cdb22b420b6fe141e64b26905e7f33f9377a7fa59135ea3e10b
- languageName: node
- linkType: hard
-
-"node-fetch@npm:^2.6.1":
- version: 2.6.2
- resolution: "node-fetch@npm:2.6.2"
- checksum: de367eae1dfbc0e12283c1cf92256ea7fba7eac8655e2e51ebb217727162396fc6cf24689ef9fc6accf075e3991e2ffaa061f7cfaa958215329649b2297ff06d
- languageName: node
- linkType: hard
-
-"node-gyp@npm:*, node-gyp@npm:^8.2.0":
- version: 8.4.1
- resolution: "node-gyp@npm:8.4.1"
- dependencies:
- env-paths: ^2.2.0
- glob: ^7.1.4
- graceful-fs: ^4.2.6
- make-fetch-happen: ^9.1.0
- nopt: ^5.0.0
- npmlog: ^6.0.0
- rimraf: ^3.0.2
- semver: ^7.3.5
- tar: ^6.1.2
- which: ^2.0.2
- bin:
- node-gyp: bin/node-gyp.js
- checksum: 341710b5da39d3660e6a886b37e210d33f8282047405c2e62c277bcc744c7552c5b8b972ebc3a7d5c2813794e60cc48c3ebd142c46d6e0321db4db6c92dd0355
+"node-fetch@npm:2.6.7, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7":
+ version: 2.6.7
+ resolution: "node-fetch@npm:2.6.7"
+ dependencies:
+ whatwg-url: ^5.0.0
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ checksum: 8d816ffd1ee22cab8301c7756ef04f3437f18dace86a1dae22cf81db8ef29c0bf6655f3215cb0cdb22b420b6fe141e64b26905e7f33f9377a7fa59135ea3e10b
languageName: node
linkType: hard
-"node-gyp@npm:^9.0.0":
+"node-gyp@npm:*, node-gyp@npm:^9.0.0, node-gyp@npm:latest":
version: 9.0.0
resolution: "node-gyp@npm:9.0.0"
dependencies:
@@ -8969,26 +8330,6 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"node-gyp@npm:latest":
- version: 8.2.0
- resolution: "node-gyp@npm:8.2.0"
- dependencies:
- env-paths: ^2.2.0
- glob: ^7.1.4
- graceful-fs: ^4.2.6
- make-fetch-happen: ^8.0.14
- nopt: ^5.0.0
- npmlog: ^4.1.2
- rimraf: ^3.0.2
- semver: ^7.3.5
- tar: ^6.1.2
- which: ^2.0.2
- bin:
- node-gyp: bin/node-gyp.js
- checksum: 5e0e755eab8ca88647d20fc8aba4095560c3dd549686e86761b57b8489d93a1af68b0dccf881e5314bfce4d7ca290f8248e192915ccd3e18bf46571d72da6a9d
- languageName: node
- linkType: hard
-
"node-libs-browser@npm:^2.2.1":
version: 2.2.1
resolution: "node-libs-browser@npm:2.2.1"
@@ -9020,10 +8361,10 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"node-releases@npm:^2.0.1":
- version: 2.0.1
- resolution: "node-releases@npm:2.0.1"
- checksum: b20dd8d4bced11f75060f0387e05e76b9dc4a0451f7bb3516eade6f50499ea7768ba95d8a60d520c193402df1e58cb3fe301510cc1c1ad68949c3d57b5149866
+"node-releases@npm:^2.0.3":
+ version: 2.0.4
+ resolution: "node-releases@npm:2.0.4"
+ checksum: b32d6c2032c7b169ae3938b416fc50f123f5bd577d54a79b2ae201febf27b22846b01c803dd35ac8689afe840f8ba4e5f7154723db629b80f359836b6707b92f
languageName: node
linkType: hard
@@ -9050,7 +8391,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"normalize-package-data@npm:^3.0.0, normalize-package-data@npm:^3.0.2":
+"normalize-package-data@npm:^3.0.0":
version: 3.0.3
resolution: "normalize-package-data@npm:3.0.3"
dependencies:
@@ -9104,12 +8445,12 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"npm-audit-report@npm:*, npm-audit-report@npm:^2.1.5":
- version: 2.1.5
- resolution: "npm-audit-report@npm:2.1.5"
+"npm-audit-report@npm:*, npm-audit-report@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "npm-audit-report@npm:3.0.0"
dependencies:
chalk: ^4.0.0
- checksum: 9199c4331a29b478b7adbafe1bf463943f65cfd840f62ffe9e6263f0ae64d77725ea102126b3892ef3379a6770a6fe11e1f68ab4cb196c0045db2e1aeafc593d
+ checksum: 3927972c14e1d9fd21a6ab2d3c2d651e20346ff9a784ea2fcdc2b1e3b3e23994fc0e8961c3c9f4aea857e3a995a556a77f4f0250dbaf6238c481c609ed912a92
languageName: node
linkType: hard
@@ -9122,12 +8463,12 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"npm-install-checks@npm:*, npm-install-checks@npm:^4.0.0":
- version: 4.0.0
- resolution: "npm-install-checks@npm:4.0.0"
+"npm-install-checks@npm:*, npm-install-checks@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "npm-install-checks@npm:5.0.0"
dependencies:
semver: ^7.1.1
- checksum: 8308ff48e61e0863d7f148f62543e1f6c832525a7d8002ea742d5e478efa8b29bf65a87f9fb82786e15232e4b3d0362b126c45afdceed4c051c0d3c227dd0ace
+ checksum: 0e7d1aae52b1fe9d3a0fd4a008850c7047931722dd49ee908afd13fd0297ac5ddb10964d9c59afcdaaa2ca04b51d75af2788f668c729ae71fec0e4cdac590ffc
languageName: node
linkType: hard
@@ -9138,130 +8479,56 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"npm-package-arg@npm:*, npm-package-arg@npm:^8.0.0, npm-package-arg@npm:^8.0.1, npm-package-arg@npm:^8.1.0, npm-package-arg@npm:^8.1.2, npm-package-arg@npm:^8.1.4, npm-package-arg@npm:^8.1.5":
- version: 8.1.5
- resolution: "npm-package-arg@npm:8.1.5"
- dependencies:
- hosted-git-info: ^4.0.1
- semver: ^7.3.4
- validate-npm-package-name: ^3.0.0
- checksum: ae76afbcebb4ea8d0b849b8b18ed1b0491030fb04a0af5d75f1b8390cc50bec186ced9fbe60f47d939eab630c7c0db0919d879ac56a87d3782267dfe8eec60d3
- languageName: node
- linkType: hard
-
-"npm-package-arg@npm:^9.0.0, npm-package-arg@npm:^9.0.1":
- version: 9.0.1
- resolution: "npm-package-arg@npm:9.0.1"
+"npm-package-arg@npm:*, npm-package-arg@npm:^9.0.0, npm-package-arg@npm:^9.0.1, npm-package-arg@npm:^9.0.2":
+ version: 9.0.2
+ resolution: "npm-package-arg@npm:9.0.2"
dependencies:
hosted-git-info: ^5.0.0
semver: ^7.3.5
- validate-npm-package-name: ^3.0.0
- checksum: 93c660a448dca688af27eec1b0a3c11e4ab58b817e3b157e90c2e9b22a93c74a4fab64b104d5c57119a2c44914252d43deab0ba5b10ef4c7f8055277e938dbbb
- languageName: node
- linkType: hard
-
-"npm-packlist@npm:^3.0.0":
- version: 3.0.0
- resolution: "npm-packlist@npm:3.0.0"
- dependencies:
- glob: ^7.1.6
- ignore-walk: ^4.0.1
- npm-bundled: ^1.1.1
- npm-normalize-package-bin: ^1.0.1
- bin:
- npm-packlist: bin/index.js
- checksum: 8550ecdec5feb2708aa8289e71c3e9ed72dd792642dd3d2c871955504c0e460bc1c2106483a164eb405b3cdfcfddf311315d4a647fca1a511f710654c015a91e
+ validate-npm-package-name: ^4.0.0
+ checksum: 07828f330f611214a0aa1e87f402b30b3dc90388671470ad8dc1551f28b0cb886f1f75fa7c37e894a9598640a555c05643642994ecacb9a6c68f655e571968f7
languageName: node
linkType: hard
-"npm-packlist@npm:^4.0.0":
- version: 4.0.0
- resolution: "npm-packlist@npm:4.0.0"
+"npm-packlist@npm:^5.0.0":
+ version: 5.0.2
+ resolution: "npm-packlist@npm:5.0.2"
dependencies:
- glob: ^7.2.0
- ignore-walk: ^4.0.1
+ glob: ^8.0.1
+ ignore-walk: ^5.0.1
npm-bundled: ^1.1.2
npm-normalize-package-bin: ^1.0.1
bin:
npm-packlist: bin/index.js
- checksum: 246e92415e7b9b963983d1aa372425b0c4ee77fde89ab5d9310033b3dd7768baf2b983c352c825a14743ae442b7ae457763417ef9d215b274992406a507c58ff
- languageName: node
- linkType: hard
-
-"npm-pick-manifest@npm:*, npm-pick-manifest@npm:^6.0.0, npm-pick-manifest@npm:^6.1.0, npm-pick-manifest@npm:^6.1.1":
- version: 6.1.1
- resolution: "npm-pick-manifest@npm:6.1.1"
- dependencies:
- npm-install-checks: ^4.0.0
- npm-normalize-package-bin: ^1.0.1
- npm-package-arg: ^8.1.2
- semver: ^7.3.4
- checksum: 7a7b9475ae95cf903d37471229efbd12a829a9a7a1020ba36e75768aaa35da4c3a087fde3f06070baf81ec6b2ea2b660f022a1172644e6e7188199d7c1d2954b
+ checksum: ff2c295dea161c800c5c2d4254d6b864126333786edec7e56387a9184e966864e8e46a77aa8121db13f210232b6439c7425098ead377fe2fc287ac316c888f4d
languageName: node
linkType: hard
-"npm-pick-manifest@npm:^7.0.0":
- version: 7.0.0
- resolution: "npm-pick-manifest@npm:7.0.0"
+"npm-pick-manifest@npm:*, npm-pick-manifest@npm:^7.0.0, npm-pick-manifest@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "npm-pick-manifest@npm:7.0.1"
dependencies:
- npm-install-checks: ^4.0.0
+ npm-install-checks: ^5.0.0
npm-normalize-package-bin: ^1.0.1
npm-package-arg: ^9.0.0
semver: ^7.3.5
- checksum: 3ef8231429dd0785ca069b9a54066f49b879a9a487abcd04d4c67cbf858772ce441fd15aa530fb8dd53786c19f01c77d876b02e244a3f38e718353e96ac825db
- languageName: node
- linkType: hard
-
-"npm-profile@npm:*":
- version: 5.0.4
- resolution: "npm-profile@npm:5.0.4"
- dependencies:
- npm-registry-fetch: ^11.0.0
- checksum: 38872ef916a40bf339e1be5a9dd286cc078214979b36787727b25ecf2ca60217e860e636a6ab85add82b4bc1667fef600fd7e28f3191add4c52054720d215909
+ checksum: 9a4a8e64d2214783b2b74a361845000f5d91bb40c7858e2a30af2ac7876d9296efc37f8cacf60335e96a45effee2035b033d9bdefb4889757cc60d85959accbb
languageName: node
linkType: hard
-"npm-profile@npm:^6.0.2":
- version: 6.0.2
- resolution: "npm-profile@npm:6.0.2"
+"npm-profile@npm:*, npm-profile@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "npm-profile@npm:6.0.3"
dependencies:
- npm-registry-fetch: ^13.0.0
+ npm-registry-fetch: ^13.0.1
proc-log: ^2.0.0
- checksum: 15ed13a350c81a9b469cd7d7874c693edf7d427e65b76da8d4c40260275747d4f6d80c11b65a91159ff61ddecea517571da5ac8be197464f2fedab3a22177805
- languageName: node
- linkType: hard
-
-"npm-registry-fetch@npm:*":
- version: 12.0.0
- resolution: "npm-registry-fetch@npm:12.0.0"
- dependencies:
- make-fetch-happen: ^9.0.1
- minipass: ^3.1.3
- minipass-fetch: ^1.3.0
- minipass-json-stream: ^1.0.1
- minizlib: ^2.0.0
- npm-package-arg: ^8.0.0
- checksum: 71da707148567659d8e0fe43d9fb735efad6a4b0ca19747dee1d5b6995d3c0c96f430700c5d040f8249e2b6aa6dc6c91ec0ffe0d0d8770412c0ab372ed2f68df
- languageName: node
- linkType: hard
-
-"npm-registry-fetch@npm:^11.0.0":
- version: 11.0.0
- resolution: "npm-registry-fetch@npm:11.0.0"
- dependencies:
- make-fetch-happen: ^9.0.1
- minipass: ^3.1.3
- minipass-fetch: ^1.3.0
- minipass-json-stream: ^1.0.1
- minizlib: ^2.0.0
- npm-package-arg: ^8.0.0
- checksum: dda149cd86f8ee73db1b0a0302fbf59983ef03ad180051caa9aad1de9f1e099aaa77adcda3ca2c3bd9d98958e9e6593bd56ee21d3f660746b0a65fafbf5ae161
+ checksum: d2023c5a15bb70b87fec0144ddfa454af642d34debd49ad561041d7bb8a4a225f162352013096352f4d2f35b59c6b009c0a6f66ba838db8bac02e376fa754e47
languageName: node
linkType: hard
-"npm-registry-fetch@npm:^13.0.0, npm-registry-fetch@npm:^13.0.1":
- version: 13.1.0
- resolution: "npm-registry-fetch@npm:13.1.0"
+"npm-registry-fetch@npm:*, npm-registry-fetch@npm:^13.0.0, npm-registry-fetch@npm:^13.0.1, npm-registry-fetch@npm:^13.1.1":
+ version: 13.1.1
+ resolution: "npm-registry-fetch@npm:13.1.1"
dependencies:
make-fetch-happen: ^10.0.6
minipass: ^3.1.6
@@ -9270,7 +8537,7 @@ fsevents@~2.3.2:
minizlib: ^2.1.2
npm-package-arg: ^9.0.1
proc-log: ^2.0.0
- checksum: 599f498f58f500c3ca57ce3566ca3298d1ad8e58ef913577f884578790a27100ce7a2bc9c9f127bc06efd41de89ca0cc71004e96884f9fccbaa62cf37e7d0085
+ checksum: e085faf5cdc1cfe9b8f825065a0823531b2a28799d84614b3971e344dde087f9089c0f0220360771a81f110c5444978c6f7309084ff7d7d396252b068148bb44
languageName: node
linkType: hard
@@ -9381,32 +8648,31 @@ fsevents@~2.3.2:
linkType: hard
"npm@npm:^8.3.0":
- version: 8.5.5
- resolution: "npm@npm:8.5.5"
+ version: 8.8.0
+ resolution: "npm@npm:8.8.0"
dependencies:
"@isaacs/string-locale-compare": ^1.1.0
- "@npmcli/arborist": ^5.0.3
+ "@npmcli/arborist": ^5.0.4
"@npmcli/ci-detect": ^2.0.0
- "@npmcli/config": ^4.0.1
- "@npmcli/map-workspaces": ^2.0.2
- "@npmcli/package-json": ^1.0.1
+ "@npmcli/config": ^4.1.0
+ "@npmcli/fs": ^2.1.0
+ "@npmcli/map-workspaces": ^2.0.3
+ "@npmcli/package-json": ^2.0.0
"@npmcli/run-script": ^3.0.1
abbrev: ~1.1.1
- ansicolors: ~0.3.2
- ansistyles: ~0.1.3
archy: ~1.0.0
- cacache: ^16.0.2
+ cacache: ^16.0.6
chalk: ^4.1.2
chownr: ^2.0.0
cli-columns: ^4.0.0
- cli-table3: ^0.6.1
+ cli-table3: ^0.6.2
columnify: ^1.6.0
fastest-levenshtein: ^1.0.12
- glob: ^7.2.0
- graceful-fs: ^4.2.9
+ glob: ^8.0.1
+ graceful-fs: ^4.2.10
hosted-git-info: ^5.0.0
- ini: ^2.0.0
- init-package-json: ^3.0.1
+ ini: ^3.0.0
+ init-package-json: ^3.0.2
is-cidr: ^4.0.2
json-parse-even-better-errors: ^2.3.1
libnpmaccess: ^6.0.2
@@ -9420,7 +8686,7 @@ fsevents@~2.3.2:
libnpmsearch: ^5.0.2
libnpmteam: ^4.0.2
libnpmversion: ^3.0.1
- make-fetch-happen: ^10.0.6
+ make-fetch-happen: ^10.1.2
minipass: ^3.1.6
minipass-pipeline: ^1.2.4
mkdirp: ^1.0.4
@@ -9428,80 +8694,58 @@ fsevents@~2.3.2:
ms: ^2.1.2
node-gyp: ^9.0.0
nopt: ^5.0.0
- npm-audit-report: ^2.1.5
- npm-install-checks: ^4.0.0
- npm-package-arg: ^9.0.1
- npm-pick-manifest: ^7.0.0
- npm-profile: ^6.0.2
- npm-registry-fetch: ^13.0.1
+ npm-audit-report: ^3.0.0
+ npm-install-checks: ^5.0.0
+ npm-package-arg: ^9.0.2
+ npm-pick-manifest: ^7.0.1
+ npm-profile: ^6.0.3
+ npm-registry-fetch: ^13.1.1
npm-user-validate: ^1.0.1
- npmlog: ^6.0.1
+ npmlog: ^6.0.2
opener: ^1.5.2
- pacote: ^13.0.5
- parse-conflict-json: ^2.0.1
- proc-log: ^2.0.0
+ pacote: ^13.1.1
+ parse-conflict-json: ^2.0.2
+ proc-log: ^2.0.1
qrcode-terminal: ^0.12.0
read: ~1.0.7
- read-package-json: ^5.0.0
+ read-package-json: ^5.0.1
read-package-json-fast: ^2.0.3
readdir-scoped-modules: ^1.1.0
rimraf: ^3.0.2
- semver: ^7.3.5
- ssri: ^8.0.1
+ semver: ^7.3.7
+ ssri: ^9.0.0
tar: ^6.1.11
text-table: ~0.2.0
tiny-relative-date: ^1.3.0
- treeverse: ^1.0.4
- validate-npm-package-name: ~3.0.0
+ treeverse: ^2.0.0
+ validate-npm-package-name: ^4.0.0
which: ^2.0.2
write-file-atomic: ^4.0.1
bin:
npm: bin/npm-cli.js
npx: bin/npx-cli.js
- checksum: f48fbac8c76a0afa709aaeb3ffeb2d6886b88577f6f7f54e91bc0d6169f6ec90f402bbd6ab7e643347970d95d43860f35b0dc0343664222def47cc6042ccf74a
- languageName: node
- linkType: hard
-
-"npmlog@npm:*, npmlog@npm:^6.0.0":
- version: 6.0.0
- resolution: "npmlog@npm:6.0.0"
- dependencies:
- are-we-there-yet: ^2.0.0
- console-control-strings: ^1.1.0
- gauge: ^4.0.0
- set-blocking: ^2.0.0
- checksum: 33d8a7fe3d63bf83b16655b6588ae7ba10b5f37b067a661e7cab6508660d7c3204ae716ee2c5ce4eb9626fd1489cf2fa7645d789bc3b704f8c3ccb04a532a50b
- languageName: node
- linkType: hard
-
-"npmlog@npm:^4.1.2":
- version: 4.1.2
- resolution: "npmlog@npm:4.1.2"
- dependencies:
- are-we-there-yet: ~1.1.2
- console-control-strings: ~1.1.0
- gauge: ~2.7.3
- set-blocking: ~2.0.0
- checksum: edbda9f95ec20957a892de1839afc6fb735054c3accf6fbefe767bac9a639fd5cea2baeac6bd2bcd50a85cb54924d57d9886c81c7fbc2332c2ddd19227504192
+ checksum: ece9941f5e3fe1cdeeb80030bd17512ee3f6ea3fd4c9efd7cc682e0170356cd39350de814cb0a6ba4dd3ed993b1e51c3edbcf16a440b3719994e510c3eba654b
languageName: node
linkType: hard
-"npmlog@npm:^6.0.1":
- version: 6.0.1
- resolution: "npmlog@npm:6.0.1"
+"npmlog@npm:*, npmlog@npm:^6.0.0, npmlog@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "npmlog@npm:6.0.2"
dependencies:
are-we-there-yet: ^3.0.0
console-control-strings: ^1.1.0
- gauge: ^4.0.0
+ gauge: ^4.0.3
set-blocking: ^2.0.0
- checksum: f1a4078a73ebc89896a832bbf869f491c32ecb12e0434b9a7499878ce8f29f22e72befe3c53cd8cdc9dbf4b4057297e783ab0b6746a8b067734de6205af4d538
+ checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a
languageName: node
linkType: hard
-"number-is-nan@npm:^1.0.0":
- version: 1.0.1
- resolution: "number-is-nan@npm:1.0.1"
- checksum: 13656bc9aa771b96cef209ffca31c31a03b507ca6862ba7c3f638a283560620d723d52e626d57892c7fff475f4c36ac07f0600f14544692ff595abff214b9ffb
+"nth-check@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "nth-check@npm:2.0.1"
+ dependencies:
+ boolbase: ^1.0.0
+ checksum: 5386d035c48438ff304fe687704d93886397349d1bed136de97aeae464caba10e8ffac55a04b215b86b3bc8897f33e0a5aa1045a9d8b2f251ae61b2a3ad3e450
languageName: node
linkType: hard
@@ -9512,7 +8756,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
+"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1":
version: 4.1.1
resolution: "object-assign@npm:4.1.1"
checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
@@ -9537,14 +8781,14 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"object-inspect@npm:^1.11.0, object-inspect@npm:^1.12.0, object-inspect@npm:^1.9.0":
+"object-inspect@npm:^1.12.0, object-inspect@npm:^1.9.0":
version: 1.12.0
resolution: "object-inspect@npm:1.12.0"
checksum: 2b36d4001a9c921c6b342e2965734519c9c58c355822243c3207fbf0aac271f8d44d30d2d570d450b2cc6f0f00b72bcdba515c37827d2560e5f22b1899a31cf4
languageName: node
linkType: hard
-"object-keys@npm:^1.0.12, object-keys@npm:^1.1.1":
+"object-keys@npm:^1.1.1":
version: 1.1.1
resolution: "object-keys@npm:1.1.1"
checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a
@@ -9785,12 +9029,12 @@ fsevents@~2.3.2:
linkType: hard
"p-retry@npm:^4.0.0":
- version: 4.6.1
- resolution: "p-retry@npm:4.6.1"
+ version: 4.6.2
+ resolution: "p-retry@npm:4.6.2"
dependencies:
- "@types/retry": ^0.12.0
+ "@types/retry": 0.12.0
retry: ^0.13.1
- checksum: e6d540413bb3d0b96e0db44f74a7af1dce41f5005e6e84d617960110b148348c86a3987be07797749e3ddd55817dd3a8ffd6eae3428758bc2994d987e48c3a70
+ checksum: 45c270bfddaffb4a895cea16cb760dcc72bdecb6cb45fef1971fa6ea2e91ddeafddefe01e444ac73e33b1b3d5d29fb0dd18a7effb294262437221ddc03ce0f2e
languageName: node
linkType: hard
@@ -9808,42 +9052,13 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"pacote@npm:*, pacote@npm:^12.0.0, pacote@npm:^12.0.2":
- version: 12.0.2
- resolution: "pacote@npm:12.0.2"
- dependencies:
- "@npmcli/git": ^2.1.0
- "@npmcli/installed-package-contents": ^1.0.6
- "@npmcli/promise-spawn": ^1.2.0
- "@npmcli/run-script": ^2.0.0
- cacache: ^15.0.5
- chownr: ^2.0.0
- fs-minipass: ^2.1.0
- infer-owner: ^1.0.4
- minipass: ^3.1.3
- mkdirp: ^1.0.3
- npm-package-arg: ^8.0.1
- npm-packlist: ^3.0.0
- npm-pick-manifest: ^6.0.0
- npm-registry-fetch: ^11.0.0
- promise-retry: ^2.0.1
- read-package-json-fast: ^2.0.1
- rimraf: ^3.0.2
- ssri: ^8.0.1
- tar: ^6.1.0
- bin:
- pacote: lib/bin.js
- checksum: db2a338525d1074df2af55bccd4661949cb32343578d5ed052d516e3cb83b8c5b477437beba6bcbc59c9731eff73198a95f4ebfdfa533c726367519a70afe11e
- languageName: node
- linkType: hard
-
-"pacote@npm:^13.0.3, pacote@npm:^13.0.5":
- version: 13.0.5
- resolution: "pacote@npm:13.0.5"
+"pacote@npm:*, pacote@npm:^13.0.3, pacote@npm:^13.0.5, pacote@npm:^13.1.1":
+ version: 13.2.0
+ resolution: "pacote@npm:13.2.0"
dependencies:
"@npmcli/git": ^3.0.0
"@npmcli/installed-package-contents": ^1.0.7
- "@npmcli/promise-spawn": ^1.2.0
+ "@npmcli/promise-spawn": ^3.0.0
"@npmcli/run-script": ^3.0.1
cacache: ^16.0.0
chownr: ^2.0.0
@@ -9852,7 +9067,7 @@ fsevents@~2.3.2:
minipass: ^3.1.6
mkdirp: ^1.0.4
npm-package-arg: ^9.0.0
- npm-packlist: ^4.0.0
+ npm-packlist: ^5.0.0
npm-pick-manifest: ^7.0.0
npm-registry-fetch: ^13.0.1
proc-log: ^2.0.0
@@ -9860,11 +9075,11 @@ fsevents@~2.3.2:
read-package-json: ^5.0.0
read-package-json-fast: ^2.0.3
rimraf: ^3.0.2
- ssri: ^8.0.1
+ ssri: ^9.0.0
tar: ^6.1.11
bin:
pacote: lib/bin.js
- checksum: 9d187945debf6f32a9b4c1928f878fc95f601f33492e7beee2cdd87b85e735318fd67e255f111c50d3e69a81e759ec189316d546a48913706453c0b9a7b835ae
+ checksum: 5bd7c48a8ffddc52f1cace12a86eaf8755c42c9065945038986a16c626341e0f51cf22763b9546d957d3179726dc55703cd1f596ed81c59ff66fedaf6d4d071d
languageName: node
linkType: hard
@@ -9908,14 +9123,14 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"parse-conflict-json@npm:*, parse-conflict-json@npm:^2.0.1":
- version: 2.0.1
- resolution: "parse-conflict-json@npm:2.0.1"
+"parse-conflict-json@npm:*, parse-conflict-json@npm:^2.0.1, parse-conflict-json@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "parse-conflict-json@npm:2.0.2"
dependencies:
json-parse-even-better-errors: ^2.3.1
just-diff: ^5.0.1
- just-diff-apply: ^4.0.1
- checksum: 398728731f3b7330d2885075f1dad0abd6fb943fca6aaa5f0edf46ccf06fe72b3ae09327f19447e98052fdfbf8bcfeee3aa14d7eb843846ec158b871a7fc1bba
+ just-diff-apply: ^5.2.0
+ checksum: 076f65c958696586daefb153f59d575dfb59648be43116a21b74d5ff69ec63dd56f585a27cc2da56d8e64ca5abf0373d6619b8330c035131f8d1e990c8406378
languageName: node
linkType: hard
@@ -10093,20 +9308,13 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2":
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.3.1":
version: 2.3.1
resolution: "picomatch@npm:2.3.1"
checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf
languageName: node
linkType: hard
-"picomatch@npm:^2.2.3":
- version: 2.3.0
- resolution: "picomatch@npm:2.3.0"
- checksum: 16818720ea7c5872b6af110760dee856c8e4cd79aed1c7a006d076b1cc09eff3ae41ca5019966694c33fbd2e1cc6ea617ab10e4adac6df06556168f13be3fca2
- languageName: node
- linkType: hard
-
"pidtree@npm:^0.5.0":
version: 0.5.0
resolution: "pidtree@npm:0.5.0"
@@ -10131,10 +9339,10 @@ fsevents@~2.3.2:
linkType: hard
"pinia@npm:^2.0.12":
- version: 2.0.12
- resolution: "pinia@npm:2.0.12"
+ version: 2.0.13
+ resolution: "pinia@npm:2.0.13"
dependencies:
- "@vue/devtools-api": ^6.1.0
+ "@vue/devtools-api": ^6.1.4
vue-demi: "*"
peerDependencies:
"@vue/composition-api": ^1.4.0
@@ -10145,7 +9353,7 @@ fsevents@~2.3.2:
optional: true
typescript:
optional: true
- checksum: 593233a40a242814c39aea7f94f66d91a0fe56873026b6a22700389e026c10beb155ad9b3e71a9b62f3ca782cd9ac62e48ad07506e569385cde27da119b3b610
+ checksum: e9f2be12996c4778409ff6757b6472948b493924aaba07dd5f35a3222166c4093a746a894f076a702436f3449363f2f535ce4f5347f332167518247105b2af3e
languageName: node
linkType: hard
@@ -10216,13 +9424,13 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"postcss-selector-parser@npm:^6.0.2":
- version: 6.0.6
- resolution: "postcss-selector-parser@npm:6.0.6"
+"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.9":
+ version: 6.0.10
+ resolution: "postcss-selector-parser@npm:6.0.10"
dependencies:
cssesc: ^3.0.0
util-deprecate: ^1.0.2
- checksum: 3602758798048bffbd6a97d6f009b32a993d6fd2cc70775bb59593e803d7fa8738822ecffb2fafc745edf7fad297dad53c30d2cfe78446a7d3f4a4a258cb15b2
+ checksum: 46afaa60e3d1998bd7adf6caa374baf857cc58d3ff944e29459c9a9e4680a7fe41597bd5b755fc81d7c388357e9bf67c0251d047c640a09f148e13606b8a8608
languageName: node
linkType: hard
@@ -10236,14 +9444,14 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"postcss@npm:^8.4.6":
- version: 8.4.12
- resolution: "postcss@npm:8.4.12"
+"postcss@npm:^8.4.13":
+ version: 8.4.13
+ resolution: "postcss@npm:8.4.13"
dependencies:
- nanoid: ^3.3.1
+ nanoid: ^3.3.3
picocolors: ^1.0.0
source-map-js: ^1.0.2
- checksum: 248e3d0f9bbb8efaafcfda7f91627a29bdc9a19f456896886330beb28c5abea0e14c7901b35191928602e2eccbed496b1e94097d27a0b2a980854cd00c7a835f
+ checksum: 514fb3552805a5d039a2d6b4df3e73f657001716ca93c0d57e6067b0473abdea70276d80afc96005c9aaff82ed5d98062bd97724d3f47ca400fba0b5e9e436ed
languageName: node
linkType: hard
@@ -10263,35 +9471,19 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"prettier@npm:^1.18.2 || ^2.0.0":
- version: 2.5.0
- resolution: "prettier@npm:2.5.0"
- bin:
- prettier: bin-prettier.js
- checksum: aad1b35b73e7c14596d389d90977a83dad0db689ba5802a0ef319c357b7867f55b885db197972aa6a56c30f53088c9f8e0d7f7930ae074c275a4e9cbe091d21d
- languageName: node
- linkType: hard
-
-"prettier@npm:^2.4.1, prettier@npm:^2.5.1":
- version: 2.6.0
- resolution: "prettier@npm:2.6.0"
+"prettier@npm:^1.18.2 || ^2.0.0, prettier@npm:^2.4.1, prettier@npm:^2.5.1":
+ version: 2.6.2
+ resolution: "prettier@npm:2.6.2"
bin:
prettier: bin-prettier.js
- checksum: 3e527ad62279676778a8404d18174d7ca2365ada4caba6eebbcdd9907d1187afd3bc6ade5b4e5f5d4549bb9fb71e45ca8930d71500017635524f8fc05bc52e93
+ checksum: 48d08dde8e9fb1f5bccdd205baa7f192e9fc8bc98f86e1b97d919de804e28c806b0e6cc685e4a88211aa7987fa9668f30baae19580d87ced3ed0f2ec6572106f
languageName: node
linkType: hard
-"proc-log@npm:^1.0.0":
- version: 1.0.0
- resolution: "proc-log@npm:1.0.0"
- checksum: 249605d5b28bfa0499d70da24ab056ad1e082a301f0a46d0ace6e8049cf16aaa0e71d9ea5cab29b620ffb327c18af97f0e012d1db090673447e7c1d33239dd96
- languageName: node
- linkType: hard
-
-"proc-log@npm:^2.0.0":
- version: 2.0.0
- resolution: "proc-log@npm:2.0.0"
- checksum: 74ab7f7d47fee1fa81e068e9a7f4cdca7e20b6b14fe51fad1f595bf9d4ce5451c858922a25f447835021ec89192788b56700cd7740ede50966099c41ebe0c70c
+"proc-log@npm:^2.0.0, proc-log@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "proc-log@npm:2.0.1"
+ checksum: f6f23564ff759097db37443e6e2765af84979a703d2c52c1b9df506ee9f87caa101ba49d8fdc115c1a313ec78e37e8134704e9069e6a870f3499d98bb24c436f
languageName: node
linkType: hard
@@ -10667,13 +9859,13 @@ fsevents@~2.3.2:
linkType: hard
"rdf-terms@npm:^1.7.0":
- version: 1.7.1
- resolution: "rdf-terms@npm:1.7.1"
+ version: 1.8.2
+ resolution: "rdf-terms@npm:1.8.2"
dependencies:
"@rdfjs/types": "*"
rdf-data-factory: ^1.1.0
rdf-string: ^1.6.0
- checksum: adad2adfda2c68afc5d33f90b10d5cda5666581824bca3c6879544665c1acf1afa022d20ba039657757475080895025f8464250046af195737cef241e3662f29
+ checksum: a5c678b9b6ebbe2ec0cc05d871b483140c075c459b0f8a3c36a9ce6e85b5150d43e9966c592542f7f453c92a68c53a34978a80ac8284ed689ec5c6915d2a0fc9
languageName: node
linkType: hard
@@ -10740,14 +9932,14 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"read-cmd-shim@npm:^2.0.0":
- version: 2.0.0
- resolution: "read-cmd-shim@npm:2.0.0"
- checksum: 024f0a092d3630ad344af63eb0539bce90978883dd06a93e7bfbb26913168ab034473eae4a85685ea76a982eb31b0e8e16dee9c1138dabb3a925e7c4757952bc
+"read-cmd-shim@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "read-cmd-shim@npm:3.0.0"
+ checksum: b518c6026f3320e30b692044f6ff5c4dc80f9c71261296da8994101b569b26b12b8e5df397bba2d4691dd3a3a2f770a1eca7be18a69ec202fac6dcfadc5016fd
languageName: node
linkType: hard
-"read-package-json-fast@npm:*, read-package-json-fast@npm:^2.0.1, read-package-json-fast@npm:^2.0.2, read-package-json-fast@npm:^2.0.3":
+"read-package-json-fast@npm:*, read-package-json-fast@npm:^2.0.2, read-package-json-fast@npm:^2.0.3":
version: 2.0.3
resolution: "read-package-json-fast@npm:2.0.3"
dependencies:
@@ -10757,27 +9949,15 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"read-package-json@npm:*, read-package-json@npm:^4.1.1":
- version: 4.1.1
- resolution: "read-package-json@npm:4.1.1"
- dependencies:
- glob: ^7.1.1
- json-parse-even-better-errors: ^2.3.0
- normalize-package-data: ^3.0.0
- npm-normalize-package-bin: ^1.0.0
- checksum: d95f6e9747bcce9bdbfae8442a86c41cde3a73691a8a8cdc46e0711e7768718e1f0955a38cbde01a6e571f490bbdc9d6a83713a89eca85646a816e659a78f6f4
- languageName: node
- linkType: hard
-
-"read-package-json@npm:^5.0.0":
- version: 5.0.0
- resolution: "read-package-json@npm:5.0.0"
+"read-package-json@npm:*, read-package-json@npm:^5.0.0, read-package-json@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "read-package-json@npm:5.0.1"
dependencies:
- glob: ^7.2.0
+ glob: ^8.0.1
json-parse-even-better-errors: ^2.3.1
normalize-package-data: ^4.0.0
npm-normalize-package-bin: ^1.0.1
- checksum: 9104dda32cb647e2f1a5244dd1f78f60c8eaa35bc4b3b1ed56373bc30fa8b7a80676a082c61c1a86cfac7c9643ac8c6bd535790a91f1a2c02bf535903902641b
+ checksum: e8c2ad72df1f17e71268feabdb9bb0153ed2c7d38a05b759c5c49cf368a754bdd3c0e8a279fbc8d707802ff91d2cf144a995e6ebd5534de2848d52ab2c14034d
languageName: node
linkType: hard
@@ -10804,7 +9984,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"read@npm:*, read@npm:1, read@npm:^1.0.7, read@npm:~1.0.1, read@npm:~1.0.7":
+"read@npm:*, read@npm:1, read@npm:^1.0.7, read@npm:~1.0.7":
version: 1.0.7
resolution: "read@npm:1.0.7"
dependencies:
@@ -10820,7 +10000,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.6, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6":
+"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6":
version: 2.3.7
resolution: "readable-stream@npm:2.3.7"
dependencies:
@@ -11014,20 +10194,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"resolve@npm:^1.10.0":
- version: 1.21.0
- resolution: "resolve@npm:1.21.0"
- dependencies:
- is-core-module: ^2.8.0
- path-parse: ^1.0.7
- supports-preserve-symlinks-flag: ^1.0.0
- bin:
- resolve: bin/resolve
- checksum: d7d9092a5c04a048bea16c7e5a2eb605ac3e8363a0cc5644de1fde17d5028e8d5f4343aab1d99bd327b98e91a66ea83e242718150c64dfedcb96e5e7aad6c4f5
- languageName: node
- linkType: hard
-
-"resolve@npm:^1.20.0, resolve@npm:^1.22.0":
+"resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0":
version: 1.22.0
resolution: "resolve@npm:1.22.0"
dependencies:
@@ -11040,20 +10207,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"resolve@patch:resolve@^1.10.0#~builtin<compat/resolve>":
- version: 1.21.0
- resolution: "resolve@patch:resolve@npm%3A1.21.0#~builtin<compat/resolve>::version=1.21.0&hash=07638b"
- dependencies:
- is-core-module: ^2.8.0
- path-parse: ^1.0.7
- supports-preserve-symlinks-flag: ^1.0.0
- bin:
- resolve: bin/resolve
- checksum: a0a4d1f7409e73190f31f901f8a619960bb3bd4ae38ba3a54c7ea7e1c87758d28a73256bb8d6a35996a903d1bf14f53883f0dcac6c571c063cb8162d813ad26e
- languageName: node
- linkType: hard
-
-"resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.0#~builtin<compat/resolve>":
+"resolve@patch:resolve@^1.10.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.0#~builtin<compat/resolve>":
version: 1.22.0
resolution: "resolve@patch:resolve@npm%3A1.22.0#~builtin<compat/resolve>::version=1.22.0&hash=07638b"
dependencies:
@@ -11192,8 +10346,8 @@ fsevents@~2.3.2:
linkType: hard
"rollup@npm:^2.58.0, rollup@npm:^2.59.0":
- version: 2.70.1
- resolution: "rollup@npm:2.70.1"
+ version: 2.71.1
+ resolution: "rollup@npm:2.71.1"
dependencies:
fsevents: ~2.3.2
dependenciesMeta:
@@ -11201,7 +10355,7 @@ fsevents@~2.3.2:
optional: true
bin:
rollup: dist/bin/rollup
- checksum: 06c62933e6e81a1c8c684d7d576e507081aabdb63cc0c91bca86b7348b66df03b77827068e4990b8b6c738bd3ef66dcc8c7ed7e0ea40b736068e7618f693133e
+ checksum: fe2b2fda7bf53c86e970f3b026b784c00e2237089b802755b3e43725db88f5d1869c1f81f8c5257e9b68b0fd1840dcbd3897d2f19768cce97a37c70e1a563dce
languageName: node
linkType: hard
@@ -11279,15 +10433,15 @@ fsevents@~2.3.2:
linkType: hard
"sass@npm:^1.49.9":
- version: 1.49.9
- resolution: "sass@npm:1.49.9"
+ version: 1.51.0
+ resolution: "sass@npm:1.51.0"
dependencies:
chokidar: ">=3.0.0 <4.0.0"
immutable: ^4.0.0
source-map-js: ">=0.6.2 <2.0.0"
bin:
sass: sass.js
- checksum: e5653e3499274c5127dcb5c9e7c5f6930378fc61764d999a5d8965782e027181ed09714f94836dec74ef55e3a858107fe6c571954c0cab0ad0be5ab8e586829c
+ checksum: d674fd87be863961d5e5233a148e381a72b06ca1749ffd95a08be2c3f4aa8fc77e3e21840347a84d7d4542cbf97cd6f9bfae19ecb1f5eefa6c207a3d8f923dbc
languageName: node
linkType: hard
@@ -11363,14 +10517,14 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"semver@npm:*, semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5":
- version: 7.3.5
- resolution: "semver@npm:7.3.5"
+"semver@npm:*, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7":
+ version: 7.3.7
+ resolution: "semver@npm:7.3.7"
dependencies:
lru-cache: ^6.0.0
bin:
semver: bin/semver.js
- checksum: 5eafe6102bea2a7439897c1856362e31cc348ccf96efd455c8b5bc2c61e6f7e7b8250dc26b8828c1d76a56f818a7ee907a36ae9fb37a599d3d24609207001d60
+ checksum: 2fa3e877568cd6ce769c75c211beaed1f9fce80b28338cadd9d0b6c40f2e2862bafd62c19a6cff42f3d54292b7c623277bcab8816a2b5521cf15210d43e75232
languageName: node
linkType: hard
@@ -11401,7 +10555,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"set-blocking@npm:^2.0.0, set-blocking@npm:~2.0.0":
+"set-blocking@npm:^2.0.0":
version: 2.0.0
resolution: "set-blocking@npm:2.0.0"
checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02
@@ -11489,21 +10643,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.3":
- version: 3.0.3
- resolution: "signal-exit@npm:3.0.3"
- checksum: f0169d3f1263d06df32ca072b0bf33b34c6f8f0341a7a1621558a2444dfbe8f5fec76b35537fcc6f0bc4944bdb5336fe0bdcf41a5422c4e45a1dba3f45475e6c
- languageName: node
- linkType: hard
-
-"signal-exit@npm:^3.0.2":
- version: 3.0.6
- resolution: "signal-exit@npm:3.0.6"
- checksum: b819ac81ba757af559dad0804233ae31bf6f054591cd8a671e9cbcf09f21c72ec3076fe87d1e04861f5b33b47d63f0694b568de99c99cd733ee2060515beb6d5
- languageName: node
- linkType: hard
-
-"signal-exit@npm:^3.0.7":
+"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7":
version: 3.0.7
resolution: "signal-exit@npm:3.0.7"
checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318
@@ -11567,7 +10707,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"smart-buffer@npm:^4.1.0":
+"smart-buffer@npm:^4.2.0":
version: 4.2.0
resolution: "smart-buffer@npm:4.2.0"
checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b
@@ -11610,35 +10750,24 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"socks-proxy-agent@npm:^5.0.0":
- version: 5.0.1
- resolution: "socks-proxy-agent@npm:5.0.1"
- dependencies:
- agent-base: ^6.0.2
- debug: 4
- socks: ^2.3.3
- checksum: 1b60c4977b2fef783f0fc4dc619cd2758aafdb43f3cf679f1e3627cb6c6e752811cee5513ebb4157ad26786033d2f85029440f197d321e8293b38cc5aab01e06
- languageName: node
- linkType: hard
-
-"socks-proxy-agent@npm:^6.0.0, socks-proxy-agent@npm:^6.1.1":
- version: 6.1.1
- resolution: "socks-proxy-agent@npm:6.1.1"
+"socks-proxy-agent@npm:^6.1.1":
+ version: 6.2.0
+ resolution: "socks-proxy-agent@npm:6.2.0"
dependencies:
agent-base: ^6.0.2
- debug: ^4.3.1
- socks: ^2.6.1
- checksum: 9a8a4f791bba0060315cf7291ca6f9db37d6fc280fd0860d73d8887d3efe4c22e823aa25a8d5375f6079279f8dc91b50c075345179bf832bfe3c7c26d3582e3c
+ debug: ^4.3.3
+ socks: ^2.6.2
+ checksum: 6723fd64fb50334e2b340fd0a80fd8488ffc5bc43d85b7cf1d25612044f814dd7d6ea417fd47602159941236f7f4bd15669fa5d7e1f852598a31288e1a43967b
languageName: node
linkType: hard
-"socks@npm:^2.3.3, socks@npm:^2.6.1":
- version: 2.6.1
- resolution: "socks@npm:2.6.1"
+"socks@npm:^2.6.2":
+ version: 2.6.2
+ resolution: "socks@npm:2.6.2"
dependencies:
ip: ^1.1.5
- smart-buffer: ^4.1.0
- checksum: 2ca9d616e424f645838ebaabb04f85d94ea999e0f8393dc07f86c435af22ed88cb83958feeabd1bb7bc537c635ed47454255635502c6808a6df61af1f41af750
+ smart-buffer: ^4.2.0
+ checksum: dd9194293059d737759d5c69273850ad4149f448426249325c4bea0e340d1cf3d266c3b022694b0dcf5d31f759de23657244c481fc1e8322add80b7985c36b5e
languageName: node
linkType: hard
@@ -11686,7 +10815,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"source-map@npm:^0.5.0, source-map@npm:^0.5.6":
+"source-map@npm:^0.5.6":
version: 0.5.7
resolution: "source-map@npm:0.5.7"
checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d
@@ -11848,12 +10977,12 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"ssri@npm:*, ssri@npm:^8.0.0, ssri@npm:^8.0.1":
- version: 8.0.1
- resolution: "ssri@npm:8.0.1"
+"ssri@npm:*, ssri@npm:^9.0.0":
+ version: 9.0.0
+ resolution: "ssri@npm:9.0.0"
dependencies:
minipass: ^3.1.1
- checksum: bc447f5af814fa9713aa201ec2522208ae0f4d8f3bda7a1f445a797c7b929a02720436ff7c478fb5edc4045adb02b1b88d2341b436a80798734e2494f1067b36
+ checksum: bf33174232d07cc64e77ab1c51b55d28352273380c503d35642a19627e88a2c5f160039bb0a28608a353485075dda084dbf0390c7070f9f284559eb71d01b84b
languageName: node
linkType: hard
@@ -11966,27 +11095,6 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"string-width@npm:^1.0.1":
- version: 1.0.2
- resolution: "string-width@npm:1.0.2"
- dependencies:
- code-point-at: ^1.0.0
- is-fullwidth-code-point: ^1.0.0
- strip-ansi: ^3.0.0
- checksum: 5c79439e95bc3bd7233a332c5f5926ab2ee90b23816ed4faa380ce3b2576d7800b0a5bb15ae88ed28737acc7ea06a518c2eef39142dd727adad0e45c776cd37e
- languageName: node
- linkType: hard
-
-"string-width@npm:^1.0.2 || 2":
- version: 2.1.1
- resolution: "string-width@npm:2.1.1"
- dependencies:
- is-fullwidth-code-point: ^2.0.0
- strip-ansi: ^4.0.0
- checksum: d6173abe088c615c8dffaf3861dc5d5906ed3dc2d6fd67ff2bd2e2b5dce7fd683c5240699cf0b1b8aa679a3b3bd6b28b5053c824cb89b813d7f6541d8f89064a
- languageName: node
- linkType: hard
-
"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3":
version: 4.2.3
resolution: "string-width@npm:4.2.3"
@@ -12010,22 +11118,24 @@ fsevents@~2.3.2:
linkType: hard
"string.prototype.trimend@npm:^1.0.4":
- version: 1.0.4
- resolution: "string.prototype.trimend@npm:1.0.4"
+ version: 1.0.5
+ resolution: "string.prototype.trimend@npm:1.0.5"
dependencies:
call-bind: ^1.0.2
- define-properties: ^1.1.3
- checksum: 17e5aa45c3983f582693161f972c1c1fa4bbbdf22e70e582b00c91b6575f01680dc34e83005b98e31abe4d5d29e0b21fcc24690239c106c7b2315aade6a898ac
+ define-properties: ^1.1.4
+ es-abstract: ^1.19.5
+ checksum: d44f543833112f57224e79182debadc9f4f3bf9d48a0414d6f0cbd2a86f2b3e8c0ca1f95c3f8e5b32ae83e91554d79d932fc746b411895f03f93d89ed3dfb6bc
languageName: node
linkType: hard
"string.prototype.trimstart@npm:^1.0.4":
- version: 1.0.4
- resolution: "string.prototype.trimstart@npm:1.0.4"
+ version: 1.0.5
+ resolution: "string.prototype.trimstart@npm:1.0.5"
dependencies:
call-bind: ^1.0.2
- define-properties: ^1.1.3
- checksum: 3fb06818d3cccac5fa3f5f9873d984794ca0e9f6616fae6fcc745885d9efed4e17fe15f832515d9af5e16c279857fdbffdfc489ca4ed577811b017721b30302f
+ define-properties: ^1.1.4
+ es-abstract: ^1.19.5
+ checksum: a4857c5399ad709d159a77371eeaa8f9cc284469a0b5e1bfe405de16f1fd4166a8ea6f4180e55032f348d1b679b1599fd4301fbc7a8b72bdb3e795e43f7b1048
languageName: node
linkType: hard
@@ -12047,31 +11157,6 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"stringify-package@npm:^1.0.1":
- version: 1.0.1
- resolution: "stringify-package@npm:1.0.1"
- checksum: 462036085a0cf7ae073d9b88a2bbf7efb3792e3df3e1fd436851f64196eb0234c8f8ffac436357e355687d6030b7af42e98af9515929e41a6a5c8653aa62a5aa
- languageName: node
- linkType: hard
-
-"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1":
- version: 3.0.1
- resolution: "strip-ansi@npm:3.0.1"
- dependencies:
- ansi-regex: ^2.0.0
- checksum: 9b974de611ce5075c70629c00fa98c46144043db92ae17748fb780f706f7a789e9989fd10597b7c2053ae8d1513fd707816a91f1879b2f71e6ac0b6a863db465
- languageName: node
- linkType: hard
-
-"strip-ansi@npm:^4.0.0":
- version: 4.0.0
- resolution: "strip-ansi@npm:4.0.0"
- dependencies:
- ansi-regex: ^3.0.0
- checksum: d9186e6c0cf78f25274f6750ee5e4a5725fb91b70fdd79aa5fe648eab092a0ec5b9621b22d69d4534a56319f75d8944efbd84e3afa8d4ad1b9a9491f12c84eca
- languageName: node
- linkType: hard
-
"strip-ansi@npm:^5.2.0":
version: 5.2.0
resolution: "strip-ansi@npm:5.2.0"
@@ -12169,9 +11254,9 @@ fsevents@~2.3.2:
linkType: hard
"supports-color@npm:^9.2.1":
- version: 9.2.1
- resolution: "supports-color@npm:9.2.1"
- checksum: 8a2bfeb64c1512d21a1a998c1f64acdaa85cf1f6a101627286548f19785524b329d7b28d567a28fc2d708fc7aba32f4c82a9b224f76b30a337a39d3e53418ff7
+ version: 9.2.2
+ resolution: "supports-color@npm:9.2.2"
+ checksum: 976d84877402fc38c1d43b1fde20b0a8dc0283273f21cfebe4ff7507d27543cdfbeec7db108a96b82d694465f06d64e8577562b05d0520b41710088e0a33cc50
languageName: node
linkType: hard
@@ -12206,7 +11291,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"tar@npm:*, tar@npm:^6.0.2, tar@npm:^6.1.0, tar@npm:^6.1.11, tar@npm:^6.1.2":
+"tar@npm:*, tar@npm:^6.1.0, tar@npm:^6.1.11, tar@npm:^6.1.2":
version: 6.1.11
resolution: "tar@npm:6.1.11"
dependencies:
@@ -12415,10 +11500,10 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"treeverse@npm:*, treeverse@npm:^1.0.4":
- version: 1.0.4
- resolution: "treeverse@npm:1.0.4"
- checksum: 712640acd811060ff552a3c761f700d18d22a4da544d31b4e290817ac4bbbfcfe33b58f85e7a5787e6ff7351d3a9100670721a289ca14eb87b36ad8a0c20ebd8
+"treeverse@npm:*, treeverse@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "treeverse@npm:2.0.0"
+ checksum: 3c6b2b890975a4d42c86b9a0f1eb932b4450db3fa874be5c301c4f5e306fd76330c6a490cf334b0937b3a44b049787ba5d98c88bc7b140f34fdb3ab1f83e5269
languageName: node
linkType: hard
@@ -12429,7 +11514,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"tsconfig-paths@npm:^3.12.0":
+"tsconfig-paths@npm:^3.14.1":
version: 3.14.1
resolution: "tsconfig-paths@npm:3.14.1"
dependencies:
@@ -12449,9 +11534,9 @@ fsevents@~2.3.2:
linkType: hard
"tslib@npm:^2.1.0":
- version: 2.3.1
- resolution: "tslib@npm:2.3.1"
- checksum: de17a98d4614481f7fcb5cd53ffc1aaf8654313be0291e1bfaee4b4bb31a20494b7d218ff2e15017883e8ea9626599b3b0e0229c18383ba9dce89da2adf15cb9
+ version: 2.4.0
+ resolution: "tslib@npm:2.4.0"
+ checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113
languageName: node
linkType: hard
@@ -12547,15 +11632,6 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"typedarray-to-buffer@npm:^3.1.5":
- version: 3.1.5
- resolution: "typedarray-to-buffer@npm:3.1.5"
- dependencies:
- is-typedarray: ^1.0.0
- checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60
- languageName: node
- linkType: hard
-
"typedarray@npm:^0.0.6":
version: 0.0.6
resolution: "typedarray@npm:0.0.6"
@@ -12564,31 +11640,31 @@ fsevents@~2.3.2:
linkType: hard
"typescript@npm:^4.5.4":
- version: 4.6.2
- resolution: "typescript@npm:4.6.2"
+ version: 4.6.4
+ resolution: "typescript@npm:4.6.4"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: 8a44ed7e6f6c4cb1ebe8cf236ecda2fb119d84dcf0fbd77e707b2dfea1bbcfc4e366493a143513ce7f57203c75da9d4e20af6fe46de89749366351046be7577c
+ checksum: e7bfcc39cd4571a63a54e5ea21f16b8445268b9900bf55aee0e02ad981be576acc140eba24f1af5e3c1457767c96cea6d12861768fb386cf3ffb34013718631a
languageName: node
linkType: hard
"typescript@patch:typescript@^4.5.4#~builtin<compat/typescript>":
- version: 4.6.2
- resolution: "typescript@patch:typescript@npm%3A4.6.2#~builtin<compat/typescript>::version=4.6.2&hash=ddd1e8"
+ version: 4.6.4
+ resolution: "typescript@patch:typescript@npm%3A4.6.4#~builtin<compat/typescript>::version=4.6.4&hash=bda367"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: efb83260a22ee49d4c8bdc59b3cefe54fdf51d6f563f5c3a35aa3d5e46fb12f3f1d33a36d6f9f64171e567ead1847e99cb612d0a9a74e7d44e16cad9d0bbc937
+ checksum: 1cb434fbc637d347be90e3a0c6cd05e33c38f941713c8786d3031faf1842c2c148ba91d2fac01e7276b0ae3249b8633f1660e32686cc7a8c6a8fd5361dc52c66
languageName: node
linkType: hard
"uglify-js@npm:^3.1.4":
- version: 3.14.5
- resolution: "uglify-js@npm:3.14.5"
+ version: 3.15.4
+ resolution: "uglify-js@npm:3.15.4"
bin:
uglifyjs: bin/uglifyjs
- checksum: 0330eb11a36f4181b6d9a00336355989bfad9dd2203049fc63a59454b0d12337612272ad011bc571b9a382bf74d829ca20409ebfe089e38edb26cfc06bfa2cc9
+ checksum: 5f673c5dd7f3b3dd15d1d26aebfe29bccbb1b896c4b5423ec70a2e8b9506c70b6fb6a53dec83df5ad65a717ec9a850adf08e0aedf9b1711eac5eb080216615fa
languageName: node
linkType: hard
@@ -12663,14 +11739,14 @@ fsevents@~2.3.2:
linkType: soft
"unbox-primitive@npm:^1.0.1":
- version: 1.0.1
- resolution: "unbox-primitive@npm:1.0.1"
+ version: 1.0.2
+ resolution: "unbox-primitive@npm:1.0.2"
dependencies:
- function-bind: ^1.1.1
- has-bigints: ^1.0.1
- has-symbols: ^1.0.2
+ call-bind: ^1.0.2
+ has-bigints: ^1.0.2
+ has-symbols: ^1.0.3
which-boxed-primitive: ^1.0.2
- checksum: 89d950e18fb45672bc6b3c961f1e72c07beb9640c7ceed847b571ba6f7d2af570ae1a2584cfee268b9d9ea1e3293f7e33e0bc29eaeb9f8e8a0bab057ff9e6bba
+ checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9
languageName: node
linkType: hard
@@ -12891,12 +11967,12 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"validate-npm-package-name@npm:*, validate-npm-package-name@npm:^3.0.0, validate-npm-package-name@npm:~3.0.0":
- version: 3.0.0
- resolution: "validate-npm-package-name@npm:3.0.0"
+"validate-npm-package-name@npm:*, validate-npm-package-name@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "validate-npm-package-name@npm:4.0.0"
dependencies:
- builtins: ^1.0.3
- checksum: ce4c68207abfb22c05eedb09ff97adbcedc80304a235a0844f5344f1fd5086aa80e4dbec5684d6094e26e35065277b765c1caef68bcea66b9056761eddb22967
+ builtins: ^5.0.0
+ checksum: a32fd537bad17fcb59cfd58ae95a414d443866020d448ec3b22e8d40550cb585026582a57efbe1f132b882eea4da8ac38ee35f7be0dd72988a3cb55d305a20c1
languageName: node
linkType: hard
@@ -12912,8 +11988,8 @@ fsevents@~2.3.2:
linkType: hard
"vite-aliases@npm:^0.9.1":
- version: 0.9.1
- resolution: "vite-aliases@npm:0.9.1"
+ version: 0.9.2
+ resolution: "vite-aliases@npm:0.9.2"
dependencies:
chokidar: ^3.5.2
comment-json: ^4.1.1
@@ -12921,7 +11997,7 @@ fsevents@~2.3.2:
jsonc-parser: ^3.0.0
lowdb: ^3.0.0
vite: ^2.7.10
- checksum: 5b7335d66cffeada1309479081c9c60539b9aa4f845e7d29ad1c9d7b66a44cb3a8d78bfe3ba744dd3abd5b856a3a2c373ee3aad578c4f43828fe8ad1e52c1f97
+ checksum: a0a373ef5c2ed050ef47ad1e912cad0471b7ee34758427958a69c0b49f527cab8489f756c1e39597ad4de270669f4ec8e912cf1005d5410391133e9b20a52ed2
languageName: node
linkType: hard
@@ -12957,26 +12033,26 @@ fsevents@~2.3.2:
linkType: hard
"vite-plugin-windicss@npm:^1.8.3":
- version: 1.8.3
- resolution: "vite-plugin-windicss@npm:1.8.3"
+ version: 1.8.4
+ resolution: "vite-plugin-windicss@npm:1.8.4"
dependencies:
- "@windicss/plugin-utils": 1.8.3
- debug: ^4.3.3
+ "@windicss/plugin-utils": 1.8.4
+ debug: ^4.3.4
kolorist: ^1.5.1
windicss: ^3.5.1
peerDependencies:
vite: ^2.0.1
- checksum: 73a565527956069b67a3a3213e5f9270673ff02bf79412da0d62fec526d854183d19a50fb23619478cf7b8cab3f42c87eed9e18e8156d91ec60a2c07d93a6523
+ checksum: 657b63b123c5e2696e409e140b1b56a7f02131908ec247dd7e1cf7439aabe707f2f2d1dff857001f8b9206c9771939fb79e5886175d243097d031887f3bd9fa8
languageName: node
linkType: hard
"vite@npm:^2.7.10, vite@npm:^2.8.6":
- version: 2.8.6
- resolution: "vite@npm:2.8.6"
+ version: 2.9.7
+ resolution: "vite@npm:2.9.7"
dependencies:
- esbuild: ^0.14.14
+ esbuild: ^0.14.27
fsevents: ~2.3.2
- postcss: ^8.4.6
+ postcss: ^8.4.13
resolve: ^1.22.0
rollup: ^2.59.0
peerDependencies:
@@ -12995,7 +12071,7 @@ fsevents@~2.3.2:
optional: true
bin:
vite: bin/vite.js
- checksum: 4b02d133892c98362c10214b7ad518d74b59745889197a2ba0b63260ed083fcef75a447e8fb58dbd2af8747386274b36017983d93031254df6ead38701950dcc
+ checksum: d3d2a86855709e037d244c3066e785d7b700e41bf59ceb776818ea06ee2ed579055c10596ca883dd56de46b3654ec82da53369062013a012a1a60819dbb7c0ee
languageName: node
linkType: hard
@@ -13007,8 +12083,8 @@ fsevents@~2.3.2:
linkType: hard
"vue-demi@npm:*, vue-demi@npm:^0.12.1":
- version: 0.12.4
- resolution: "vue-demi@npm:0.12.4"
+ version: 0.12.5
+ resolution: "vue-demi@npm:0.12.5"
peerDependencies:
"@vue/composition-api": ^1.0.0-rc.1
vue: ^3.0.0-0 || ^2.6.0
@@ -13018,7 +12094,7 @@ fsevents@~2.3.2:
bin:
vue-demi-fix: bin/vue-demi-fix.js
vue-demi-switch: bin/vue-demi-switch.js
- checksum: cd715e008837c67aa7018e96f5556ffd4f26cbeed031116251c3983b777ff163550670af28b2b39bc650c5f7c4738976524e013cfc36aa17e26bc07fad70efc5
+ checksum: 40a0470caea8312e0d4df2541f141c36c768dfc7f2f7d41f0f28ba29df11d3119e2f09b94c815f13b7c7f3f45dbc247b0e9e0c02a1800e2823e241c1d771e39b
languageName: node
linkType: hard
@@ -13064,9 +12140,9 @@ fsevents@~2.3.2:
linkType: hard
"vue-i18n@npm:^8.22.2, vue-i18n@npm:^8.27.0":
- version: 8.27.0
- resolution: "vue-i18n@npm:8.27.0"
- checksum: 6d5af73e3ef219fa2948f508b2fcbee5d669459293f2fab2a08bebaad80f93b6190b0fcae7b5f7b1aa7eab61c896e6b2d4a7e52483282d64f9f5e1d9d0d3af10
+ version: 8.27.1
+ resolution: "vue-i18n@npm:8.27.1"
+ checksum: ee712fcdd503d73d63c9de82bb7315962205b3cd4339c414e9183c5a7b760ce465d2e0bf285aaa3617e8edd37b5004904881b7c406492bde41762865228ce920
languageName: node
linkType: hard
@@ -13315,16 +12391,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"wide-align@npm:^1.1.0":
- version: 1.1.3
- resolution: "wide-align@npm:1.1.3"
- dependencies:
- string-width: ^1.0.2 || 2
- checksum: d09c8012652a9e6cab3e82338d1874a4d7db2ad1bd19ab43eb744acf0b9b5632ec406bdbbbb970a8f4771a7d5ef49824d038ba70aa884e7723f5b090ab87134d
- languageName: node
- linkType: hard
-
-"wide-align@npm:^1.1.2":
+"wide-align@npm:^1.1.5":
version: 1.1.5
resolution: "wide-align@npm:1.1.5"
dependencies:
@@ -13394,19 +12461,7 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"write-file-atomic@npm:*, write-file-atomic@npm:^3.0.3":
- version: 3.0.3
- resolution: "write-file-atomic@npm:3.0.3"
- dependencies:
- imurmurhash: ^0.1.4
- is-typedarray: ^1.0.0
- signal-exit: ^3.0.2
- typedarray-to-buffer: ^3.1.5
- checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280
- languageName: node
- linkType: hard
-
-"write-file-atomic@npm:^4.0.0, write-file-atomic@npm:^4.0.1":
+"write-file-atomic@npm:*, write-file-atomic@npm:^4.0.0, write-file-atomic@npm:^4.0.1":
version: 4.0.1
resolution: "write-file-atomic@npm:4.0.1"
dependencies: