diff --git a/packages/nc-gui/assets/nc-icons/discord.svg b/packages/nc-gui/assets/nc-icons/discord.svg index 4e47c6e830..c0f7a4b842 100644 --- a/packages/nc-gui/assets/nc-icons/discord.svg +++ b/packages/nc-gui/assets/nc-icons/discord.svg @@ -1,5 +1,10 @@ - - - \ No newline at end of file + + + + + + + + + + diff --git a/packages/nc-gui/assets/nc-icons/megaphone.svg b/packages/nc-gui/assets/nc-icons/megaphone.svg new file mode 100644 index 0000000000..8f08defb54 --- /dev/null +++ b/packages/nc-gui/assets/nc-icons/megaphone.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/nc-gui/assets/nc-icons/nocodb.svg b/packages/nc-gui/assets/nc-icons/nocodb.svg new file mode 100644 index 0000000000..8e33b7798d --- /dev/null +++ b/packages/nc-gui/assets/nc-icons/nocodb.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/packages/nc-gui/assets/nc-icons/reddit.svg b/packages/nc-gui/assets/nc-icons/reddit.svg index daaf9cdbe0..84bc50057c 100644 --- a/packages/nc-gui/assets/nc-icons/reddit.svg +++ b/packages/nc-gui/assets/nc-icons/reddit.svg @@ -1,7 +1,11 @@ - - - - \ No newline at end of file + + + + + + + + + + + diff --git a/packages/nc-gui/assets/nc-icons/refresh-cw.svg b/packages/nc-gui/assets/nc-icons/refresh-cw.svg new file mode 100644 index 0000000000..37670a59e5 --- /dev/null +++ b/packages/nc-gui/assets/nc-icons/refresh-cw.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/nc-gui/assets/nc-icons/star.svg b/packages/nc-gui/assets/nc-icons/star.svg index 56aee8f633..9656c5c8c8 100644 --- a/packages/nc-gui/assets/nc-icons/star.svg +++ b/packages/nc-gui/assets/nc-icons/star.svg @@ -1,5 +1,5 @@ - + diff --git a/packages/nc-gui/assets/nc-icons/twitter-x-line.svg b/packages/nc-gui/assets/nc-icons/twitter-x-line.svg new file mode 100644 index 0000000000..7b36f49725 --- /dev/null +++ b/packages/nc-gui/assets/nc-icons/twitter-x-line.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/nc-gui/assets/nc-icons/youtube2.svg b/packages/nc-gui/assets/nc-icons/youtube2.svg new file mode 100644 index 0000000000..dd92589aba --- /dev/null +++ b/packages/nc-gui/assets/nc-icons/youtube2.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/nc-gui/components/dashboard/Sidebar.vue b/packages/nc-gui/components/dashboard/Sidebar.vue index 80102bf614..ade1ab43d3 100644 --- a/packages/nc-gui/components/dashboard/Sidebar.vue +++ b/packages/nc-gui/components/dashboard/Sidebar.vue @@ -5,7 +5,7 @@ const { isWorkspaceLoading } = storeToRefs(workspaceStore) const { isSharedBase } = storeToRefs(useBase()) -const { isMobileMode } = useGlobal() +const { isMobileMode, appInfo } = useGlobal() const treeViewDom = ref() @@ -60,6 +60,7 @@ onUnmounted(() => { + diff --git a/packages/nc-gui/components/dashboard/Sidebar/Feed.vue b/packages/nc-gui/components/dashboard/Sidebar/Feed.vue new file mode 100644 index 0000000000..dc55ae51fc --- /dev/null +++ b/packages/nc-gui/components/dashboard/Sidebar/Feed.vue @@ -0,0 +1,110 @@ + + + + + + + + What’s New! + + + + + + + diff --git a/packages/nc-gui/components/feed/Changelog/Item.vue b/packages/nc-gui/components/feed/Changelog/Item.vue new file mode 100644 index 0000000000..cdb013bf21 --- /dev/null +++ b/packages/nc-gui/components/feed/Changelog/Item.vue @@ -0,0 +1,194 @@ + + + + + + + + + + + {{ Title }} + + + + + {{ tag.text }} + + + + + {{ dayjs(CreatedAt).format('MMM DD, YYYY') }} + + + + + + + + Show more + + + + + + + diff --git a/packages/nc-gui/components/feed/Changelog/index.vue b/packages/nc-gui/components/feed/Changelog/index.vue new file mode 100644 index 0000000000..8ee3811e67 --- /dev/null +++ b/packages/nc-gui/components/feed/Changelog/index.vue @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + diff --git a/packages/nc-gui/components/feed/Error.vue b/packages/nc-gui/components/feed/Error.vue new file mode 100644 index 0000000000..63228d6aa5 --- /dev/null +++ b/packages/nc-gui/components/feed/Error.vue @@ -0,0 +1,44 @@ + + + + + + + Unable to load feed + + + + + Refresh + + + + + + + diff --git a/packages/nc-gui/components/feed/Header.vue b/packages/nc-gui/components/feed/Header.vue new file mode 100644 index 0000000000..f73c7de2f9 --- /dev/null +++ b/packages/nc-gui/components/feed/Header.vue @@ -0,0 +1,13 @@ + + + + + + + + What’s New! + + + + + diff --git a/packages/nc-gui/components/feed/Recents/Card.vue b/packages/nc-gui/components/feed/Recents/Card.vue new file mode 100644 index 0000000000..2a1ceb7301 --- /dev/null +++ b/packages/nc-gui/components/feed/Recents/Card.vue @@ -0,0 +1,138 @@ + + + + + + + + + {{ source }} + + + + {{ timeAgo(CreatedAt) }} + + + + + + + + + + Show more + + + + + + + + + + {{ Title }} + + + + {{ Description.substring(0, 200).concat('...') }} + + + + + + + diff --git a/packages/nc-gui/components/feed/Recents/index.vue b/packages/nc-gui/components/feed/Recents/index.vue new file mode 100644 index 0000000000..a7f7614115 --- /dev/null +++ b/packages/nc-gui/components/feed/Recents/index.vue @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + diff --git a/packages/nc-gui/components/feed/Roadmap.vue b/packages/nc-gui/components/feed/Roadmap.vue new file mode 100644 index 0000000000..a6b86115af --- /dev/null +++ b/packages/nc-gui/components/feed/Roadmap.vue @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + diff --git a/packages/nc-gui/components/feed/Social.vue b/packages/nc-gui/components/feed/Social.vue new file mode 100644 index 0000000000..f58d769c84 --- /dev/null +++ b/packages/nc-gui/components/feed/Social.vue @@ -0,0 +1,82 @@ + + + + + Stay tuned + + + + {{ social.name }} + + + + + + diff --git a/packages/nc-gui/components/feed/Twitter.vue b/packages/nc-gui/components/feed/Twitter.vue new file mode 100644 index 0000000000..a451302395 --- /dev/null +++ b/packages/nc-gui/components/feed/Twitter.vue @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + diff --git a/packages/nc-gui/components/feed/View.vue b/packages/nc-gui/components/feed/View.vue new file mode 100644 index 0000000000..b02fb6c132 --- /dev/null +++ b/packages/nc-gui/components/feed/View.vue @@ -0,0 +1,111 @@ + + + + + + + + + + + + {{ tab.title }} + + + + + + + + + + + + + diff --git a/packages/nc-gui/components/feed/Youtube/Player.vue b/packages/nc-gui/components/feed/Youtube/Player.vue new file mode 100644 index 0000000000..219065fe59 --- /dev/null +++ b/packages/nc-gui/components/feed/Youtube/Player.vue @@ -0,0 +1,44 @@ + + + + + + + + + {{ Title }} + + + {{ Description.length > 200 ? `${Description.slice(0, 280)}...` : Description }} + + + + + + diff --git a/packages/nc-gui/components/feed/Youtube/index.vue b/packages/nc-gui/components/feed/Youtube/index.vue new file mode 100644 index 0000000000..d56093ca1c --- /dev/null +++ b/packages/nc-gui/components/feed/Youtube/index.vue @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + diff --git a/packages/nc-gui/components/nc/Badge.vue b/packages/nc-gui/components/nc/Badge.vue index efb5498c09..5864a6a66e 100644 --- a/packages/nc-gui/components/nc/Badge.vue +++ b/packages/nc-gui/components/nc/Badge.vue @@ -25,6 +25,7 @@ const props = withDefaults( 'border-red-500 bg-red-100': props.color === 'red', 'border-maroon-500 bg-maroon-50': props.color === 'maroon', 'border-gray-500 bg-gray-50': props.color === 'grey', + 'bg-brand-50 text-brand-500': props.color === 'brand', 'border-gray-300': !props.color, 'border-1': props.border, 'h-6': props.size === 'sm', diff --git a/packages/nc-gui/components/nc/Popover.vue b/packages/nc-gui/components/nc/Popover.vue new file mode 100644 index 0000000000..ff27c20db7 --- /dev/null +++ b/packages/nc-gui/components/nc/Popover.vue @@ -0,0 +1,210 @@ + + + + + + + Open Popover + + + + + + + + Default popover content + Close + + + + + + + + diff --git a/packages/nc-gui/components/smartsheet/Toolbar.vue b/packages/nc-gui/components/smartsheet/Toolbar.vue index 304dcdda1c..ef69fced77 100644 --- a/packages/nc-gui/components/smartsheet/Toolbar.vue +++ b/packages/nc-gui/components/smartsheet/Toolbar.vue @@ -12,6 +12,10 @@ const containerRef = ref() const { width } = useElementSize(containerRef) +const router = useRouter() + +const disableToolbar = computed(() => router.currentRoute.value.query?.disableToolbar === 'true') + const isTab = computed(() => { if (!isCalendar.value) return false return width.value > 1200 @@ -29,7 +33,7 @@ provide(IsToolbarIconMode, isToolbarIconMode) + diff --git a/packages/nc-gui/composables/useGlobal/types.ts b/packages/nc-gui/composables/useGlobal/types.ts index ccc1141dff..3d34b48bb1 100644 --- a/packages/nc-gui/composables/useGlobal/types.ts +++ b/packages/nc-gui/composables/useGlobal/types.ts @@ -39,6 +39,7 @@ export interface AppInfo { samlAuthEnabled: boolean samlProviderName: string | null giftUrl: string + feedEnabled: boolean } export interface StoredState { diff --git a/packages/nc-gui/composables/useProductFeed.ts b/packages/nc-gui/composables/useProductFeed.ts new file mode 100644 index 0000000000..a1f21bdc2d --- /dev/null +++ b/packages/nc-gui/composables/useProductFeed.ts @@ -0,0 +1,80 @@ +import type { ProductFeedItem } from '../lib/types' + +export const useProductFeed = createSharedComposable(() => { + const activeTab = ref('recents') + + const { $api } = useNuxtApp() + + const youtubeFeed = ref([]) + + const githubFeed = ref([]) + + const socialFeed = ref([]) + + const isErrorOccurred = reactive({ + youtube: false, + github: false, + social: false, + }) + + const loadFeed = async ({ loadMore, type }: { loadMore: boolean; type: 'youtube' | 'github' | 'all' }) => { + try { + let page = 1 + + if (loadMore) { + switch (type) { + case 'youtube': + page = Math.ceil(youtubeFeed.value.length / 10) + 1 + break + case 'github': + page = Math.ceil(githubFeed.value.length / 10) + 1 + break + case 'all': + page = Math.ceil(socialFeed.value.length / 10) + 1 + break + } + } + + const response = await $api.utils.feed({ page, per_page: 10, type }) + + if (type === 'all' && page === 1 && response.length) { + localStorage.setItem('last_published_at', response[0]['Published Time'] as string) + } + + switch (type) { + case 'youtube': + youtubeFeed.value = [...youtubeFeed.value, ...response] as ProductFeedItem[] + break + case 'github': + githubFeed.value = [...githubFeed.value, ...response] as ProductFeedItem[] + break + case 'all': + socialFeed.value = [...socialFeed.value, ...response] as ProductFeedItem[] + break + } + } catch (error) { + switch (type) { + case 'youtube': + isErrorOccurred.youtube = true + break + case 'github': + isErrorOccurred.github = true + break + case 'all': + isErrorOccurred.social = true + break + } + console.error(error) + return [] + } + } + + return { + isErrorOccurred, + activeTab, + youtubeFeed, + githubFeed, + socialFeed, + loadFeed, + } +}) diff --git a/packages/nc-gui/lang/en.json b/packages/nc-gui/lang/en.json index 9e117d58f9..496aa9c8c6 100644 --- a/packages/nc-gui/lang/en.json +++ b/packages/nc-gui/lang/en.json @@ -93,6 +93,7 @@ "none": "None" }, "general": { + "scripts": "Scripts", "configure": "Configure", "switch": "Switch", "on": "On", diff --git a/packages/nc-gui/layouts/shared-view.vue b/packages/nc-gui/layouts/shared-view.vue index 94b7812cb3..c3c6ba7479 100644 --- a/packages/nc-gui/layouts/shared-view.vue +++ b/packages/nc-gui/layouts/shared-view.vue @@ -7,6 +7,10 @@ const { sharedView, allowCSVDownload } = useSharedView() const router = useRouter() +const route = router.currentRoute + +const disableTopbar = computed(() => route.value.query?.disableTopbar === 'true') + onMounted(() => { // check if we are inside an iframe // if we are, communicate to the parent page whenever we navigate to a new url, @@ -50,6 +54,7 @@ export default { diff --git a/packages/nc-gui/lib/types.ts b/packages/nc-gui/lib/types.ts index 72b4882e0a..8e18b79a34 100644 --- a/packages/nc-gui/lib/types.ts +++ b/packages/nc-gui/lib/types.ts @@ -277,6 +277,17 @@ interface NcTableColumnProps { [key: string]: any } +interface ProductFeedItem { + Id: string + Title: string + Description: string + ['Feed Source']: 'Youtube' | 'Github' | 'All' + Url: string + Tags?: string + ['Published Time']: string + Images?: Record[] | null +} + type SordDirectionType = 'asc' | 'desc' | undefined export type { @@ -312,4 +323,5 @@ export type { AuditLogsQuery, NcTableColumnProps, SordDirectionType, + ProductFeedItem, } diff --git a/packages/nc-gui/package.json b/packages/nc-gui/package.json index 731976f937..b886b877dd 100644 --- a/packages/nc-gui/package.json +++ b/packages/nc-gui/package.json @@ -109,7 +109,14 @@ "vue3-grid-layout-next": "^1.0.7", "vue3-text-clamp": "^0.1.2", "vuedraggable": "^4.1.0", - "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz" + "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", + "rehype-sanitize": "^6.0.0", + "rehype-stringify": "^10.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.0", + "unified": "^11.0.5", + "youtube-vue3": "^0.1.15", + "@vueuse/motion": "^2.2.5" }, "devDependencies": { "@antfu/eslint-config": "^0.26.3", diff --git a/packages/nc-gui/pages/index/[typeOrId]/feed.vue b/packages/nc-gui/pages/index/[typeOrId]/feed.vue new file mode 100644 index 0000000000..96749ed619 --- /dev/null +++ b/packages/nc-gui/pages/index/[typeOrId]/feed.vue @@ -0,0 +1,7 @@ + + + + + + + diff --git a/packages/nc-gui/plugins/animation.ts b/packages/nc-gui/plugins/animation.ts new file mode 100644 index 0000000000..bd045cee44 --- /dev/null +++ b/packages/nc-gui/plugins/animation.ts @@ -0,0 +1,5 @@ +import { MotionPlugin } from '@vueuse/motion' + +export default defineNuxtPlugin((nuxtApp) => { + nuxtApp.vueApp.use(MotionPlugin) +}) diff --git a/packages/nc-gui/store/workspace.ts b/packages/nc-gui/store/workspace.ts index 6989e06d34..df20d71b8a 100644 --- a/packages/nc-gui/store/workspace.ts +++ b/packages/nc-gui/store/workspace.ts @@ -45,6 +45,8 @@ export const useWorkspace = defineStore('workspaceStore', () => { const isIntegrationsPageOpened = computed(() => route.value.name === 'index-typeOrId-integrations') + const isFeedPageOpened = computed(() => route.value.name === 'index-typeOrId-feed') + const isWorkspaceLoading = ref(true) const isCollaboratorsLoading = ref(true) const isInvitingCollaborators = ref(false) @@ -238,6 +240,16 @@ export const useWorkspace = defineStore('workspaceStore', () => { } } + const navigateToFeed = async (_?: string, cmdOrCtrl?: boolean) => { + if (cmdOrCtrl) { + await navigateTo('/nc/feed', { + open: navigateToBlankTargetOpenOption, + }) + } else { + await navigateTo('/nc/feed') + } + } + const auditLogsQuery = ref>(defaultAuditLogsQuery) const audits = ref>(null) @@ -326,9 +338,11 @@ export const useWorkspace = defineStore('workspaceStore', () => { auditLogsQuery, audits, auditPaginationData, + navigateToFeed, loadAudits, isIntegrationsPageOpened, navigateToIntegrations, + isFeedPageOpened, } }) diff --git a/packages/nc-gui/utils/iconUtils.ts b/packages/nc-gui/utils/iconUtils.ts index 50e6dc328f..9d12ce599f 100644 --- a/packages/nc-gui/utils/iconUtils.ts +++ b/packages/nc-gui/utils/iconUtils.ts @@ -138,7 +138,7 @@ import NcCheckCircle from '~icons/nc-icons/check-circle' import NcCheckFill from '~icons/nc-icons/checkFill' import NcExternalLink from '~icons/nc-icons/external-link' import NcCamera from '~icons/nc-icons/camera' - +import NcRefreshCW from '~icons/nc-icons/refresh-cw' // import NcProjectGray from '~icons/nc-icons/project-gray' import NcPhoneCall from '~icons/nc-icons/phone-call' import NcItalic from '~icons/nc-icons/italic' @@ -152,6 +152,7 @@ import NcControlPanel from '~icons/nc-icons/control-panel' import NcHome from '~icons/nc-icons/home' import NcHome1 from '~icons/nc-icons/home1' import NcWorkspace from '~icons/nc-icons/workspace' +import NcMegaPhone from '~icons/nc-icons/megaphone' import NcCellBarcode from '~icons/nc-icons/cell-barcode' import NcCellCheckbox from '~icons/nc-icons/cell-checkbox' @@ -218,6 +219,7 @@ import NcGitCommit from '~icons/nc-icons/git-commit' import NcCircle from '~icons/nc-icons/circle' import NcServer1 from '~icons/nc-icons/server1' import NcThumbsUpOutline from '~icons/nc-icons/thumbs-up-outline' +import NcNocoDB from '~icons/nc-icons/nocodb' // Sync data import NcAppleSolid from '~icons/nc-icons/apple_solid' @@ -531,6 +533,10 @@ import NcMousePointerIcon from '~icons/nc-icons-v2/mouse-pointer.svg' import NcAlignLeftIcon from '~icons/nc-icons-v2/align-left.svg' import NcHeartIcon from '~icons/nc-icons-v2/heart.svg' import NcTrendingUpIcon from '~icons/nc-icons-v2/trending-up.svg' +import NcYoutube2Icon from '~icons/nc-icons/youtube2.svg' +import NcRedditIcon from '~icons/nc-icons/reddit.svg' +import NcTwitterIcon from '~icons/nc-icons/twitter-x-line.svg' +import NcDiscordIcon from '~icons/nc-icons/discord.svg' import NcSlash1 from '~icons/nc-icons/slash1' @@ -760,6 +766,8 @@ export const iconMap = { cellAttachment: NcCellAttachment, cellButton: NcCellButton, camera: NcCamera, + megaPhone: NcMegaPhone, + nocodb: NcNocoDB, office: NcOffice, sort: Sort, @@ -1077,6 +1085,10 @@ export const iconMap = { claude: NcClaude, ollama: NcOllama, groq: NcGroq, + refreshCw: NcRefreshCW, + iconReddit: NcRedditIcon, + iconTwitter: NcTwitterIcon, + iconDiscord: NcDiscordIcon, // Nc-IconsV2 Buttons ncColumns: NcColumnsIcon, @@ -1338,6 +1350,7 @@ export const iconMap = { ncPlaceholderIcon: NcPlaceholderIcon, ncSpanner: NcSpanner, ncScript: NcScript, + youtube: NcYoutube2Icon, } export const getMdiIcon = (type: string): any => { diff --git a/packages/nc-gui/utils/urlUtils.ts b/packages/nc-gui/utils/urlUtils.ts index fb01a1d062..eb45b881ce 100644 --- a/packages/nc-gui/utils/urlUtils.ts +++ b/packages/nc-gui/utils/urlUtils.ts @@ -63,3 +63,27 @@ export const isLinkExpired = async (url: string) => { return true } + +export const extractYoutubeVideoId = (url: string) => { + if (typeof url !== 'string') { + return '' + } + + // Regular expressions to match different YouTube URL formats + const patterns = [ + /(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?v=([^&]+)/, + /(?:https?:\/\/)?(?:www\.)?youtube\.com\/embed\/([^?]+)/, + /(?:https?:\/\/)?youtu\.be\/([^?]+)/, + /(?:https?:\/\/)?(?:www\.)?youtube\.com\/v\/([^?]+)/, + /(?:https?:\/\/)?(?:www\.)?youtube\.com\/shorts\/([^?]+)/, + ] + + for (const pattern of patterns) { + const match = url.match(pattern) + if (match && match[1]) { + return match[1] + } + } + + return '' +} diff --git a/packages/nocodb-sdk/src/lib/Api.ts b/packages/nocodb-sdk/src/lib/Api.ts index 2195d32b94..18a7abf1da 100644 --- a/packages/nocodb-sdk/src/lib/Api.ts +++ b/packages/nocodb-sdk/src/lib/Api.ts @@ -10858,6 +10858,57 @@ export class Api< ...params, }), + /** + * No description + * + * @tags Utils + * @name Feed + * @summary Get Feed + * @request GET:/api/v2/feed + * @response `200` `({ + Id?: string, + Description?: string, + Tags?: string, + Images?: (object)[], + Url?: string, + "Published Time"?: string, + +})[]` OK + * @response `400` `{ + \** @example BadRequest [Error]: *\ + msg: string, + +}` + */ + feed: ( + query?: { + type?: 'all' | 'github' | 'youtube'; + per_page?: number; + page?: number; + }, + params: RequestParams = {} + ) => + this.request< + { + Id?: string; + Description?: string; + Tags?: string; + Images?: object[]; + Url?: string; + 'Published Time'?: string; + }[], + { + /** @example BadRequest [Error]: */ + msg: string; + } + >({ + path: `/api/v2/feed`, + method: 'GET', + query: query, + format: 'json', + ...params, + }), + /** * @description Get Aggregated Meta Info such as tableCount, dbViewCount, viewCount and etc. * diff --git a/packages/nocodb/package.json b/packages/nocodb/package.json index eba255db2e..19bb5e6e99 100644 --- a/packages/nocodb/package.json +++ b/packages/nocodb/package.json @@ -32,16 +32,16 @@ "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json", - "watch:run": "cross-env NC_DISABLE_TELE=true EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/docker --log-error --project tsconfig.json\"", - "watch:run:mysql": "cross-env NC_DISABLE_TELE=true EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/dockerRunMysql --log-error --project tsconfig.json\"", - "watch:run:pg": "cross-env NC_DISABLE_TELE=true EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/dockerRunPG --log-error --project tsconfig.json\"", - "watch:run:playwright:mysql": "rm -f ./test_noco.db; cross-env DB_TYPE=mysql NC_DB=\"mysql2://localhost:3306?u=root&p=password&d=pw_ncdb\" PLAYWRIGHT_TEST=true NC_DISABLE_TELE=true EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/testDocker --log-error --project tsconfig.json\"", - "watch:run:playwright:pg": "rm -f ./test_noco.db; cross-env DB_TYPE=pg NC_DB=\"pg://localhost:5432?u=postgres&p=password&d=pw_ncdb\" PLAYWRIGHT_TEST=true NC_DISABLE_TELE=true EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/testDocker --log-error --project tsconfig.json\"", - "watch:run:playwright": "rm -f ./test_*.db; cross-env DB_TYPE=sqlite DATABASE_URL=sqlite:./test_noco.db PLAYWRIGHT_TEST=true NC_DISABLE_TELE=true EE=true NC_SNAPSHOT_WINDOW_SEC=3 nodemon -e ts,js -w ./src -x \"ts-node src/run/testDocker --log-error --project tsconfig.json\"", - "watch:run:playwright:quick": "rm -f ./test_noco.db; cp ../../tests/playwright/fixtures/noco_0_91_7.db ./test_noco.db; cross-env DATABASE_URL=sqlite:./test_noco.db NC_DISABLE_TELE=true EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/docker --log-error --project tsconfig.json\"", - "watch:run:playwright:pg:cyquick": "rm -f ./test_noco.db; cp ../../tests/playwright/fixtures/noco_0_91_7.db ./test_noco.db; cross-env NC_DISABLE_TELE=true EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/dockerRunPG_CyQuick.ts --log-error --project tsconfig.json\"", - "test:unit": "cross-env EE=false TS_NODE_PROJECT=./tests/unit/tsconfig.json mocha -r ts-node/register tests/unit/index.test.ts --recursive --timeout 300000 --exit --delay", - "test:unit:pg": "cp tests/unit/.pg.env tests/unit/.env; cross-env EE=false TS_NODE_PROJECT=./tests/unit/tsconfig.json mocha -r ts-node/register tests/unit/index.test.ts --recursive --timeout 300000 --exit --delay", + "watch:run": "cross-env NC_DISABLE_TELE=true NODE_ENV=development EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/docker --log-error --project tsconfig.json\"", + "watch:run:mysql": "cross-env NC_DISABLE_TELE=true NODE_ENV=development EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/dockerRunMysql --log-error --project tsconfig.json\"", + "watch:run:pg": "cross-env NC_DISABLE_TELE=true NODE_ENV=development EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/dockerRunPG --log-error --project tsconfig.json\"", + "watch:run:playwright:mysql": "rm -f ./test_noco.db; cross-env DB_TYPE=mysql NC_DB=\"mysql2://localhost:3306?u=root&p=password&d=pw_ncdb\" PLAYWRIGHT_TEST=true NODE_ENV=test NC_DISABLE_TELE=true EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/testDocker --log-error --project tsconfig.json\"", + "watch:run:playwright:pg": "rm -f ./test_noco.db; cross-env DB_TYPE=pg NC_DB=\"pg://localhost:5432?u=postgres&p=password&d=pw_ncdb\" PLAYWRIGHT_TEST=true NODE_ENV=test NC_DISABLE_TELE=true EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/testDocker --log-error --project tsconfig.json\"", + "watch:run:playwright": "rm -f ./test_*.db; cross-env DB_TYPE=sqlite DATABASE_URL=sqlite:./test_noco.db PLAYWRIGHT_TEST=true NODE_ENV=test NC_DISABLE_TELE=true EE=true NC_SNAPSHOT_WINDOW_SEC=3 nodemon -e ts,js -w ./src -x \"ts-node src/run/testDocker --log-error --project tsconfig.json\"", + "watch:run:playwright:quick": "rm -f ./test_noco.db; cp ../../tests/playwright/fixtures/noco_0_91_7.db ./test_noco.db; cross-env NODE_ENV=test DATABASE_URL=sqlite:./test_noco.db NC_DISABLE_TELE=true EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/docker --log-error --project tsconfig.json\"", + "watch:run:playwright:pg:cyquick": "rm -f ./test_noco.db; cp ../../tests/playwright/fixtures/noco_0_91_7.db ./test_noco.db; cross-env NODE_ENV=test NC_DISABLE_TELE=true EE=true nodemon -e ts,js -w ./src -x \"ts-node src/run/dockerRunPG_CyQuick.ts --log-error --project tsconfig.json\"", + "test:unit": "cross-env EE=false NODE_ENV=test TS_NODE_PROJECT=./tests/unit/tsconfig.json mocha -r ts-node/register tests/unit/index.test.ts --recursive --timeout 300000 --exit --delay", + "test:unit:pg": "cp tests/unit/.pg.env tests/unit/.env; cross-env NODE_ENV=test EE=false TS_NODE_PROJECT=./tests/unit/tsconfig.json mocha -r ts-node/register tests/unit/index.test.ts --recursive --timeout 300000 --exit --delay", "docker:build": "EE=\"true-xc-test\" webpack --config docker/webpack.config.js" }, "dependencies": { diff --git a/packages/nocodb/src/controllers/utils.controller.ts b/packages/nocodb/src/controllers/utils.controller.ts index 05fb63ec71..c68b00f3f7 100644 --- a/packages/nocodb/src/controllers/utils.controller.ts +++ b/packages/nocodb/src/controllers/utils.controller.ts @@ -7,6 +7,7 @@ import { HttpCode, Post, Req, + Request, UseGuards, } from '@nestjs/common'; import { ProjectRoles, validateAndExtractSSLProp } from 'nocodb-sdk'; @@ -166,4 +167,10 @@ export class UtilsController { // todo: refactor return (await this.utilsService.aggregatedMetaInfo()) as any; } + + @UseGuards(PublicApiLimiterGuard) + @Get('/api/v2/feed') + async feed(@Request() req: NcRequest) { + return await this.utilsService.feed(req); + } } diff --git a/packages/nocodb/src/schema/swagger.json b/packages/nocodb/src/schema/swagger.json index 3feb763c8d..5d236a25af 100644 --- a/packages/nocodb/src/schema/swagger.json +++ b/packages/nocodb/src/schema/swagger.json @@ -16015,6 +16015,87 @@ ] } }, + "/api/v2/feed": { + "get": { + "summary": "Get Feed", + "operationId": "utils-feed", + "parameters": [ + { + "schema": { + "type": "string", + "enum": [ + "all", + "github", + "youtube" + ] + }, + "name": "type", + "in": "query", + "required": false + }, + { + "schema": { + "type": "number" + }, + "name": "per_page", + "in": "query", + "required": false + }, + { + "schema": { + "type": "number" + }, + "name": "page", + "in": "query", + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Id": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Tags": { + "type": "string" + }, + "Images": { + "type": "array", + "items": { + "type": "object" + } + }, + "Url": { + "type": "string" + }, + "Published Time": { + "type": "string" + } + } + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + } + }, + "tags": [ + "Utils" + ] + } + }, "/api/v1/aggregated-meta-info": { "parameters": [ { diff --git a/packages/nocodb/src/services/utils.service.ts b/packages/nocodb/src/services/utils.service.ts index 76785ac8c3..bb11381ec3 100644 --- a/packages/nocodb/src/services/utils.service.ts +++ b/packages/nocodb/src/services/utils.service.ts @@ -1,11 +1,13 @@ import process from 'process'; -import { Injectable } from '@nestjs/common'; +import { Injectable, Logger } from '@nestjs/common'; import axios from 'axios'; import { compareVersions, validate } from 'compare-versions'; import { ViewTypes } from 'nocodb-sdk'; import { ConfigService } from '@nestjs/config'; import { useAgent } from 'request-filtering-agent'; -import type { AppConfig } from '~/interface/config'; +import dayjs from 'dayjs'; +import type { AppConfig, NcRequest } from '~/interface/config'; +import { T } from '~/utils'; import { NC_APP_SETTINGS, NC_ATTACHMENT_FIELD_SIZE } from '~/constants'; import SqlMgrv2 from '~/db/sql-mgr/v2/SqlMgrv2'; import { NcError } from '~/helpers/catchError'; @@ -13,7 +15,7 @@ import { Base, Store, User } from '~/models'; import Noco from '~/Noco'; import NcConnectionMgrv2 from '~/utils/common/NcConnectionMgrv2'; import getInstance from '~/utils/getInstance'; -import { MetaTable, RootScopes } from '~/utils/globals'; +import { CacheScope, MetaTable, RootScopes } from '~/utils/globals'; import { jdbcToXcConfig } from '~/utils/nc-config/helpers'; import { packageVersion } from '~/utils/packageVersion'; import { @@ -21,6 +23,8 @@ import { defaultLimitConfig, } from '~/helpers/extractLimitAndOffset'; import { DriverClient } from '~/utils/nc-config'; +import NocoCache from '~/cache/NocoCache'; +import { getCircularReplacer } from '~/utils'; const versionCache = { releaseVersion: null, @@ -71,8 +75,12 @@ interface AllMeta { @Injectable() export class UtilsService { + protected logger = new Logger(UtilsService.name); + constructor(protected readonly configService: ConfigService) {} + lastSyncTime = dayjs(); + async versionInfo() { if ( !versionCache.lastFetched || @@ -385,7 +393,6 @@ export class UtilsService { if (result.status === 'fulfilled') { return result.value; } - console.log(result.reason); return null; }); }; @@ -460,6 +467,7 @@ export class UtilsService { disableEmailAuth: this.configService.get('auth.disableEmailAuth', { infer: true, }), + feedEnabled: process.env.NC_DISABLE_PRODUCT_FEED !== 'true', mainSubDomain: this.configService.get('mainSubDomain', { infer: true }), dashboardPath: this.configService.get('dashboardPath', { infer: true }), inviteOnlySignup: settings.invite_only_signup, @@ -471,4 +479,69 @@ export class UtilsService { return result; } + + async feed(req: NcRequest) { + const { + type = 'all', + page = '1', + per_page = '10', + } = req.query as { + type: 'github' | 'youtube' | 'all' | 'twitter' | 'cloud'; + page: string; + per_page: string; + }; + + const perPage = Math.min(Math.max(parseInt(per_page, 10) || 10, 1), 100); + const pageNum = Math.max(parseInt(page, 10) || 1, 1); + + const cacheKey = `${CacheScope.PRODUCT_FEED}:${type}:${pageNum}:${perPage}`; + + const cachedData = await NocoCache.get(cacheKey, 'json'); + + if (cachedData) { + try { + return JSON.parse(cachedData); + } catch (e) { + this.logger.error(e?.message, e); + await NocoCache.del(cacheKey); + } + } + + let payload = null; + if (dayjs().isAfter(this.lastSyncTime.add(3, 'hours'))) { + payload = await T.payload(); + this.lastSyncTime = dayjs(); + } + + let response; + + try { + response = await axios.post( + 'https://product-feed.nocodb.com/api/v1/social/feed', + payload, + { + params: { + per_page: perPage, + page: pageNum, + type, + }, + }, + ); + } catch (e) { + this.logger.error(e?.message, e); + return []; + } + + // The feed includes the attachments, which has the presigned URL + // So the cache should match the presigned URL cache + await NocoCache.setExpiring( + cacheKey, + JSON.stringify(response.data, getCircularReplacer), + Number.isNaN(parseInt(process.env.NC_ATTACHMENT_EXPIRE_SECONDS)) + ? 2 * 60 * 60 + : parseInt(process.env.NC_ATTACHMENT_EXPIRE_SECONDS), + ); + + return response.data; + } } diff --git a/packages/nocodb/src/utils/globals.ts b/packages/nocodb/src/utils/globals.ts index c0d0f1e1bb..d6e2b2e960 100644 --- a/packages/nocodb/src/utils/globals.ts +++ b/packages/nocodb/src/utils/globals.ts @@ -187,6 +187,7 @@ export enum CacheScope { INTEGRATION = 'integration', COL_BUTTON = 'colButton', CMD_PALETTE = 'cmdPalette', + PRODUCT_FEED = 'productFeed', } export enum CacheGetType { diff --git a/packages/nocodb/src/utils/tele.ts b/packages/nocodb/src/utils/tele.ts index c2fb1969e5..5e6136ce01 100644 --- a/packages/nocodb/src/utils/tele.ts +++ b/packages/nocodb/src/utils/tele.ts @@ -5,6 +5,7 @@ import axios from 'axios'; import isDocker from 'is-docker'; import { packageVersion } from '~/utils/packageVersion'; import TeleBatchProcessor from '~/utils/TeleBatchProcessor'; +import { isEE } from '~/utils'; const isDisabled = !!process.env.NC_DISABLE_TELE; const cache = !!process.env.NC_REDIS_URL; @@ -248,6 +249,41 @@ class Tele { static get id() { return this.machineId || machineIdSync(); } + + static async payload() { + if ( + process.env.NODE_ENV === 'test' || + process.env.NODE_ENV === 'development' || + isEE + ) + return null; + + const payload: Record = { + package_id: packageVersion, + node_version: process.version, + xc_version: process.env.NC_SERVER_UUID, + env: process.env.NODE_ENV || 'production', + oneClick: !!process.env.NC_ONE_CLICK, + }; + try { + payload.os_type = os.type(); + payload.os_platform = os.platform(); + payload.os_release = os.release(); + payload.docker = isDocker(); + payload.machine_id = `${this.id},,`; + payload.payload = { + ...((await Tele.getInstanceMeta()) || {}), + count: global.NC_COUNT, + upTime: Math.round(process.uptime() / 3600), + cache, + litestream, + executable, + }; + } catch { + // ignore + } + return payload; + } } async function waitForMachineId(teleData) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6f290360aa..e014694887 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,22 +39,22 @@ importers: dependencies: '@ckpack/vue-color': specifier: ^1.5.0 - version: 1.5.0(vue@3.4.38) + version: 1.5.0(vue@3.5.10) '@iconify/vue': specifier: ^4.1.2 - version: 4.1.2(vue@3.4.38) + version: 4.1.2(vue@3.5.10) '@nuxt/image': specifier: ^1.3.0 version: 1.3.0 '@pinia/nuxt': specifier: ^0.5.1 - version: 0.5.1(vue@3.4.38) + version: 0.5.1(vue@3.5.10) '@sentry/tracing': specifier: ^7.72.0 version: 7.114.0 '@sentry/vue': specifier: ^7.72.0 - version: 7.118.0(vue@3.4.38) + version: 7.118.0(vue@3.5.10) '@tiptap/extension-link': specifier: ^2.4.0 version: 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0) @@ -78,28 +78,31 @@ importers: version: 2.4.0(@tiptap/pm@2.4.0) '@tiptap/vue-3': specifier: 2.4.0 - version: 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(vue@3.4.38) + version: 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(vue@3.5.10) '@vue-flow/additional-components': specifier: ^1.3.3 - version: 1.3.3(@vue-flow/core@1.31.0)(vue@3.4.38) + version: 1.3.3(@vue-flow/core@1.31.0)(vue@3.5.10) '@vue-flow/core': specifier: ^1.30.1 - version: 1.31.0(vue@3.4.38) + version: 1.31.0(vue@3.5.10) '@vuelidate/core': specifier: ^2.0.3 - version: 2.0.3(vue@3.4.38) + version: 2.0.3(vue@3.5.10) '@vuelidate/validators': specifier: ^2.0.4 - version: 2.0.4(vue@3.4.38) + version: 2.0.4(vue@3.5.10) '@vueuse/core': specifier: ^10.7.2 - version: 10.7.2(vue@3.4.38) + version: 10.7.2(vue@3.5.10) '@vueuse/integrations': specifier: ^10.7.2 - version: 10.7.2(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(vue@3.4.38) + version: 10.7.2(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(vue@3.5.10) + '@vueuse/motion': + specifier: ^2.2.5 + version: 2.2.5(vue@3.5.10) ant-design-vue: specifier: ^3.2.20 - version: 3.2.20(vue@3.4.38) + version: 3.2.20(vue@3.5.10) chart.js: specifier: ^4.4.2 version: 4.4.2 @@ -120,10 +123,10 @@ importers: version: 1.1.9 embla-carousel-vue: specifier: ^8.1.7 - version: 8.1.7(vue@3.4.38) + version: 8.1.7(vue@3.5.10) emoji-mart-vue-fast: specifier: ^15.0.2 - version: 15.0.2(vue@3.4.38) + version: 15.0.2(vue@3.5.10) file-saver: specifier: ^2.0.5 version: 2.0.5 @@ -180,16 +183,28 @@ importers: version: 2.3.0 pdfobject-vue: specifier: ^0.0.4 - version: 0.0.4(pdfobject@2.3.0)(vue@3.4.38) + version: 0.0.4(pdfobject@2.3.0)(vue@3.5.10) pinia: specifier: ^2.1.7 - version: 2.1.7(vue@3.4.38) + version: 2.1.7(vue@3.5.10) plyr: specifier: ^3.7.8 version: 3.7.8 qrcode: specifier: ^1.5.3 version: 1.5.3 + rehype-sanitize: + specifier: ^6.0.0 + version: 6.0.0 + rehype-stringify: + specifier: ^10.0.0 + version: 10.0.1 + remark-parse: + specifier: ^11.0.0 + version: 11.0.0 + remark-rehype: + specifier: ^11.1.0 + version: 11.1.1 rfdc: specifier: ^1.3.1 version: 1.3.1 @@ -211,6 +226,9 @@ importers: turndown: specifier: ^7.1.3 version: 7.1.3 + unified: + specifier: ^11.0.5 + version: 11.0.5 unique-names-generator: specifier: ^4.7.1 version: 4.7.1 @@ -222,28 +240,28 @@ importers: version: 13.11.0 vue-advanced-cropper: specifier: ^2.8.8 - version: 2.8.8(vue@3.4.38) + version: 2.8.8(vue@3.5.10) vue-barcode-reader: specifier: ^1.0.3 version: 1.0.3 vue-chartjs: specifier: ^5.3.1 - version: 5.3.1(chart.js@4.4.2)(vue@3.4.38) + version: 5.3.1(chart.js@4.4.2)(vue@3.5.10) vue-dompurify-html: specifier: ^3.1.2 - version: 3.1.2(vue@3.4.38) + version: 3.1.2(vue@3.5.10) vue-github-button: specifier: ^3.1.0 version: 3.1.0 vue-i18n: specifier: ^9.9.1 - version: 9.9.1(vue@3.4.38) + version: 9.9.1(vue@3.5.10) vue-qrcode-reader: specifier: 3.1.9 version: 3.1.9 vue3-calendar-heatmap: specifier: ^2.0.5 - version: 2.0.5(tippy.js@6.3.7)(vue@3.4.38) + version: 2.0.5(tippy.js@6.3.7)(vue@3.5.10) vue3-contextmenu: specifier: ^0.2.12 version: 0.2.12 @@ -252,13 +270,16 @@ importers: version: 1.0.7 vue3-text-clamp: specifier: ^0.1.2 - version: 0.1.2(resize-detector@0.3.0)(vue@3.4.38) + version: 0.1.2(resize-detector@0.3.0)(vue@3.5.10) vuedraggable: specifier: ^4.1.0 - version: 4.1.0(vue@3.4.38) + version: 4.1.0(vue@3.5.10) xlsx: specifier: https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz version: '@cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz' + youtube-vue3: + specifier: ^0.1.15 + version: 0.1.15 devDependencies: '@antfu/eslint-config': specifier: ^0.26.3 @@ -394,7 +415,7 @@ importers: version: 2.4.6 '@vueuse/nuxt': specifier: ^10.7.2 - version: 10.7.2(nuxt@3.11.2)(vue@3.4.38) + version: 10.7.2(nuxt@3.11.2)(vue@3.5.10) '@windicss/plugin-animations': specifier: ^1.0.9 version: 1.0.9 @@ -436,7 +457,7 @@ importers: version: 0.18.5(@vue/compiler-sfc@3.4.27) unplugin-vue-components: specifier: ^0.26.0 - version: 0.26.0(vue@3.4.38) + version: 0.26.0(vue@3.5.10) vite-plugin-monaco-editor: specifier: ^1.1.0 version: 1.1.0(monaco-editor@0.50.0) @@ -1149,14 +1170,14 @@ packages: resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==} dev: false - /@ant-design/icons-vue@6.1.0(vue@3.4.38): + /@ant-design/icons-vue@6.1.0(vue@3.5.10): resolution: {integrity: sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==} peerDependencies: vue: latest dependencies: '@ant-design/colors': 6.0.0 '@ant-design/icons-svg': 4.3.1 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /@antfu/eslint-config-basic@0.26.3(@typescript-eslint/parser@5.62.0)(eslint@8.56.0): @@ -2993,10 +3014,18 @@ packages: resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} + /@babel/helper-string-parser@7.24.8: + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-option@7.23.5: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} @@ -3036,6 +3065,13 @@ packages: dependencies: '@babel/types': 7.24.0 + /@babel/parser@7.25.6: + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.25.6 + /@babel/plugin-proposal-decorators@7.23.2(@babel/core@7.24.3): resolution: {integrity: sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg==} engines: {node: '>=6.9.0'} @@ -3286,11 +3322,19 @@ packages: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + /@babel/types@7.25.6: + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@ckpack/vue-color@1.5.0(vue@3.4.38): + /@ckpack/vue-color@1.5.0(vue@3.5.10): resolution: {integrity: sha512-dj1zXVyay2m4LdlLJCQSdIS2FYwUl77BZqyKmUXiehyqjCP0bGYnPcL38lrShzYUc2FdkYQX8ANZZjRahd4PQw==} engines: {node: '>=12'} peerDependencies: @@ -3298,7 +3342,7 @@ packages: dependencies: '@ctrl/tinycolor': 3.6.1 material-colors: 1.2.6 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /@clickhouse/client-common@0.2.9: @@ -4481,13 +4525,13 @@ packages: - supports-color dev: true - /@iconify/vue@4.1.2(vue@3.4.38): + /@iconify/vue@4.1.2(vue@3.5.10): resolution: {integrity: sha512-CQnYqLiQD5LOAaXhBrmj1mdL2/NCJvwcC4jtW2Z8ukhThiFkLDkutarTOV2trfc9EXqUqRs0KqXOL9pZ/IyysA==} peerDependencies: vue: latest dependencies: '@iconify/types': 2.0.0 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /@img/sharp-darwin-arm64@0.33.2: @@ -4979,7 +5023,7 @@ packages: magic-string: 0.30.10 mlly: 1.6.1 source-map-js: 1.2.0 - vue-i18n: 9.9.1(vue@3.4.38) + vue-i18n: 9.9.1(vue@3.5.10) yaml-eslint-parser: 1.2.2 dev: true @@ -5028,7 +5072,7 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 unplugin: 1.5.1 - vue-i18n: 9.9.1(vue@3.4.38) + vue-i18n: 9.9.1(vue@3.5.10) transitivePeerDependencies: - rollup - supports-color @@ -5326,6 +5370,9 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/sourcemap-codec@1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: @@ -6155,7 +6202,7 @@ packages: semver: 7.6.2 dev: true - /@nuxt/devtools@1.3.1(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(nuxt@3.11.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vite@4.5.3)(vue@3.4.38): + /@nuxt/devtools@1.3.1(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(nuxt@3.11.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vite@4.5.3)(vue@3.5.10): resolution: {integrity: sha512-SuiuqtlN6OMPn7hYqbydcJmRF/L86yxi8ApcjNVnMURYBPaAAN9egkEFpQ6AjzjX+UnaG1hU8FE0w6pWKSRp3A==} hasBin: true peerDependencies: @@ -6166,9 +6213,9 @@ packages: '@nuxt/devtools-kit': 1.3.1(nuxt@3.11.2)(vite@4.5.3) '@nuxt/devtools-wizard': 1.3.1 '@nuxt/kit': 3.11.2 - '@vue/devtools-applet': 7.2.0(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vite@4.5.3)(vue@3.4.38) - '@vue/devtools-core': 7.2.0(vite@4.5.3)(vue@3.4.38) - '@vue/devtools-kit': 7.2.0(vue@3.4.38) + '@vue/devtools-applet': 7.2.0(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vite@4.5.3)(vue@3.5.10) + '@vue/devtools-core': 7.2.0(vite@4.5.3)(vue@3.5.10) + '@vue/devtools-kit': 7.2.0(vue@3.5.10) birpc: 0.2.17 consola: 3.2.3 cronstrue: 2.50.0 @@ -6340,6 +6387,39 @@ packages: - supports-color dev: true + /@nuxt/kit@3.13.2: + resolution: {integrity: sha512-KvRw21zU//wdz25IeE1E5m/aFSzhJloBRAQtv+evcFeZvuroIxpIQuUqhbzuwznaUwpiWbmwlcsp5uOWmi4vwA==} + engines: {node: ^14.18.0 || >=16.10.0} + requiresBuild: true + dependencies: + '@nuxt/schema': 3.13.2 + c12: 1.11.2 + consola: 3.2.3 + defu: 6.1.4 + destr: 2.0.3 + globby: 14.0.2 + hash-sum: 2.0.0 + ignore: 5.3.2 + jiti: 1.21.6 + klona: 2.0.6 + knitwork: 1.1.0 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + scule: 1.3.0 + semver: 7.6.3 + ufo: 1.5.3 + unctx: 2.3.1 + unimport: 3.13.1 + untyped: 1.4.2 + transitivePeerDependencies: + - magicast + - rollup + - supports-color + - webpack-sources + dev: false + optional: true + /@nuxt/kit@3.4.0: resolution: {integrity: sha512-CBS1wyyGnXpmzIDINnL96WPLvTjf2IQXrgz/hSKTUWra9h/iO/crLjqcuJWpIIMS420qiRoTnHDFALAXY8ktsw==} engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} @@ -6453,6 +6533,30 @@ packages: - supports-color dev: true + /@nuxt/schema@3.13.2: + resolution: {integrity: sha512-CCZgpm+MkqtOMDEgF9SWgGPBXlQ01hV/6+2reDEpJuqFPGzV8HYKPBcIFvn7/z5ahtgutHLzjP71Na+hYcqSpw==} + engines: {node: ^14.18.0 || >=16.10.0} + requiresBuild: true + dependencies: + compatx: 0.1.8 + consola: 3.2.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.2.0 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.3 + uncrypto: 0.1.3 + unimport: 3.13.1 + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + - webpack-sources + dev: false + optional: true + /@nuxt/schema@3.4.0: resolution: {integrity: sha512-i04UuprxtMaBK1qCaAupJEIkUUJDt6vyMpBTJ0aajAxehL6O6xV3xqHB5iqDBmtOWlsRL8vGM+M/E/5E+lKuPg==} engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} @@ -6527,7 +6631,7 @@ packages: resolution: {integrity: sha512-3BG5doAREcD50dbKyXgmjD4b1GzY8CUy3T41jMhHZXNDdaNwOd31IBq+D6dV00OSrDVhzrTVj0IxsUsnMyHvIQ==} dev: true - /@nuxt/vite-builder@3.11.2(eslint@8.56.0)(sass@1.71.1)(vue@3.4.38): + /@nuxt/vite-builder@3.11.2(eslint@8.56.0)(sass@1.71.1)(vue@3.5.10): resolution: {integrity: sha512-eXTZsAAN4dPz4eA2UD5YU2kD/DqgfyQp1UYsIdCe6+PAVe1ifkUboBjbc0piR5+3qI/S/eqk3nzxRGbiYF7Ccg==} engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: @@ -6535,8 +6639,8 @@ packages: dependencies: '@nuxt/kit': 3.11.2 '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) - '@vitejs/plugin-vue': 5.0.4(vite@5.2.11)(vue@3.4.38) - '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.11)(vue@3.4.38) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.11)(vue@3.5.10) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.11)(vue@3.5.10) autoprefixer: 10.4.19(postcss@8.4.40) clear: 0.1.0 consola: 3.2.3 @@ -6566,7 +6670,7 @@ packages: vite: 5.2.11(sass@1.71.1) vite-node: 1.6.0(sass@1.71.1) vite-plugin-checker: 0.6.4(eslint@8.56.0)(vite@5.2.11) - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) vue-bundle-renderer: 2.0.0 transitivePeerDependencies: - '@types/node' @@ -7420,11 +7524,11 @@ packages: '@parcel/watcher-win32-x64': 2.4.1 dev: true - /@pinia/nuxt@0.5.1(vue@3.4.38): + /@pinia/nuxt@0.5.1(vue@3.5.10): resolution: {integrity: sha512-6wT6TqY81n+7/x3Yhf0yfaJVKkZU42AGqOR0T3+UvChcaOJhSma7OWPN64v+ptYlznat+fS1VTwNAcbi2lzHnw==} dependencies: '@nuxt/kit': 3.9.3 - pinia: 2.1.7(vue@3.4.38) + pinia: 2.1.7(vue@3.5.10) transitivePeerDependencies: - '@vue/composition-api' - rollup @@ -7724,6 +7828,22 @@ packages: rollup: 4.17.2 dev: true + /@rollup/pluginutils@5.1.2: + resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==} + engines: {node: '>=14.0.0'} + requiresBuild: true + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: false + optional: true + /@rollup/rollup-android-arm-eabi@4.12.0: resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} cpu: [arm] @@ -8161,7 +8281,7 @@ packages: '@sentry/types': 7.118.0 dev: false - /@sentry/vue@7.118.0(vue@3.4.38): + /@sentry/vue@7.118.0(vue@3.5.10): resolution: {integrity: sha512-k77NHzelR3oyDx6LFr0nvg+IKwGTjawaE36Xz2OuWivhJtqJyWKRqjDUhecsLTjZOx6zdoEsdwnRjjMF//xGMA==} engines: {node: '>=8'} peerDependencies: @@ -8171,7 +8291,7 @@ packages: '@sentry/core': 7.118.0 '@sentry/types': 7.118.0 '@sentry/utils': 7.118.0 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /@shikijs/core@1.5.2: @@ -9669,7 +9789,7 @@ packages: - '@tiptap/pm' dev: false - /@tiptap/vue-3@2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(vue@3.4.38): + /@tiptap/vue-3@2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(vue@3.5.10): resolution: {integrity: sha512-NCw1Y4ScIrMCKC9YlepUHSAB8jq/PQ2f+AbZKh5bY2t/kMSJYLCJVHq9NFzG4TQtktgMGWCcEQVcDJ7YNpsfxw==} peerDependencies: '@tiptap/core': ^2.0.0 @@ -9680,7 +9800,7 @@ packages: '@tiptap/extension-bubble-menu': 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0) '@tiptap/extension-floating-menu': 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0) '@tiptap/pm': 2.4.0 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /@tootallnate/once@1.1.2: @@ -9826,6 +9946,12 @@ packages: resolution: {integrity: sha512-XKJdy+OClLk3hketHi9Qg6gTfe1F3y+UFnHxKA2rn9Dw+oXa4Gb378Ztz9HlMgZKSxpPmn4BNVh9wgkpvrK1uw==} dev: true + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: false + /@types/dompurify@3.0.5: resolution: {integrity: sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==} dependencies: @@ -9912,6 +10038,12 @@ packages: '@types/node': 20.11.30 dev: true + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + dependencies: + '@types/unist': 2.0.7 + dev: false + /@types/html-entities-decoder@1.0.3: resolution: {integrity: sha512-6yGIJdXY5jdeNdL0gx6EPHxoIuevLQijaNgGl5L7bl47bfzzP5HZ9K72zkwpUtLj92V10xcDLVtg7dG3t5SQjA==} dev: true @@ -10005,6 +10137,12 @@ packages: '@types/unist': 2.0.7 dev: true + /@types/mdast@4.0.4: + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + dependencies: + '@types/unist': 2.0.7 + dev: false + /@types/mime@1.3.2: resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} dev: true @@ -10023,12 +10161,15 @@ packages: /@types/minimist@1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true /@types/mocha@10.0.6: resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} dev: true + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: false + /@types/multer@1.4.11: resolution: {integrity: sha512-svK240gr6LVWvv3YGyhLlA+6LRRWA4mnGIU7RcNmgjBYFl6665wcXrRfxGp5tEPVHUNm5FMcmq7too9bxCwX/w==} dependencies: @@ -10058,7 +10199,6 @@ packages: /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: true /@types/oauth@0.9.1: resolution: {integrity: sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A==} @@ -10179,7 +10319,7 @@ packages: /@types/splitpanes@2.2.6: resolution: {integrity: sha512-3dV5sO1Ht74iER4jJU03mreL3f+Q2h47ZqXS6Sfbqc6hkCvsDrX1GA0NbYWRdNvZemPyTDzUoApWKeoGbALwkQ==} dependencies: - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) transitivePeerDependencies: - typescript dev: true @@ -10223,7 +10363,10 @@ packages: /@types/unist@2.0.7: resolution: {integrity: sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==} - dev: true + + /@types/unist@3.0.3: + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + dev: false /@types/validator@13.11.10: resolution: {integrity: sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==} @@ -10232,7 +10375,7 @@ packages: /@types/vue-barcode-reader@0.0.3: resolution: {integrity: sha512-klrzMKXdc1eHFnMQXl5QwTGuKki09hh+hxV0AlNjg72VpMRifEbW+roGbDK0LHCK+LTcz13Ebx2/bMKgQr0Ovw==} dependencies: - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) transitivePeerDependencies: - typescript dev: true @@ -10679,7 +10822,6 @@ packages: /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true /@unhead/dom@1.9.10: resolution: {integrity: sha512-F4sBrmd8kG8MEqcVTGL0Y6tXbJMdWK724pznUzefpZTs1GaVypFikLluaLt4EnICcVhOBSe4TkGrc8N21IJJzQ==} @@ -10708,7 +10850,7 @@ packages: '@unhead/shared': 1.9.10 dev: true - /@unhead/vue@1.9.10(vue@3.4.38): + /@unhead/vue@1.9.10(vue@3.5.10): resolution: {integrity: sha512-Zi65eTU5IIaqqXAVOVJ4fnwJRR751FZIFlzYOjIekf1eNkISy+A4xyz3NIEQWSlXCrOiDNgDhT0YgKUcx5FfHQ==} peerDependencies: vue: latest @@ -10717,7 +10859,7 @@ packages: '@unhead/shared': 1.9.10 hookable: 5.5.3 unhead: 1.9.10 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: true /@unocss/astro@0.58.9(vite@4.5.3): @@ -11000,7 +11142,7 @@ packages: - supports-color dev: true - /@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.11)(vue@3.4.38): + /@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.11)(vue@3.5.10): resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -11011,12 +11153,12 @@ packages: '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.3) vite: 5.2.11(sass@1.71.1) - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-vue@5.0.4(vite@5.2.11)(vue@3.4.38): + /@vitejs/plugin-vue@5.0.4(vite@5.2.11)(vue@3.5.10): resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: @@ -11024,7 +11166,7 @@ packages: vue: latest dependencies: vite: 5.2.11(sass@1.71.1) - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: true /@vitest/expect@1.2.2: @@ -11089,33 +11231,33 @@ packages: pretty-format: 29.7.0 dev: true - /@vue-flow/additional-components@1.3.3(@vue-flow/core@1.31.0)(vue@3.4.38): + /@vue-flow/additional-components@1.3.3(@vue-flow/core@1.31.0)(vue@3.5.10): resolution: {integrity: sha512-AZhz0diM7VIN7MGKODiuqiu+xiujFQSs2UdiThgNI5vGSwwizd0g9dGzB+LK0Dt4FCRJ1g64xzxqbrAFFfzuFw==} peerDependencies: '@vue-flow/core': ^1.0.0 vue: latest dependencies: - '@vue-flow/core': 1.31.0(vue@3.4.38) + '@vue-flow/core': 1.31.0(vue@3.5.10) d3-selection: 3.0.0 d3-zoom: 3.0.0 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false - /@vue-flow/core@1.31.0(vue@3.4.38): + /@vue-flow/core@1.31.0(vue@3.5.10): resolution: {integrity: sha512-LKKe856250UglAo2sU3OYYAU8i2I31tze1qZGOwG5d73QA2w6aYwiV3Ut3nmohAQIYhBrvkYcygyJ0iQ+HH1VA==} peerDependencies: vue: latest dependencies: - '@vueuse/core': 10.7.2(vue@3.4.38) + '@vueuse/core': 10.7.2(vue@3.5.10) d3-drag: 3.0.0 d3-selection: 3.0.0 d3-zoom: 3.0.0 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) transitivePeerDependencies: - '@vue/composition-api' dev: false - /@vue-macros/common@1.8.0(vue@3.4.38): + /@vue-macros/common@1.8.0(vue@3.5.10): resolution: {integrity: sha512-auDJJzE0z3uRe3867e0DsqcseKImktNf5ojCZgUKqiVxb2yTlwlgOVAYCgoep9oITqxkXQymSvFeKhedi8PhaA==} engines: {node: '>=16.14.0'} peerDependencies: @@ -11130,7 +11272,7 @@ packages: ast-kit: 0.11.2 local-pkg: 0.4.3 magic-string-ast: 0.3.0 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) transitivePeerDependencies: - rollup dev: true @@ -11175,6 +11317,16 @@ packages: entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 + dev: true + + /@vue/compiler-core@3.5.10: + resolution: {integrity: sha512-iXWlk+Cg/ag7gLvY0SfVucU8Kh2CjysYZjhhP70w9qI4MvSox4frrP+vDGvtQuzIcgD8+sxM6lZvCtdxGunTAA==} + dependencies: + '@babel/parser': 7.25.6 + '@vue/shared': 3.5.10 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 /@vue/compiler-dom@3.4.27: resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} @@ -11187,6 +11339,13 @@ packages: dependencies: '@vue/compiler-core': 3.4.38 '@vue/shared': 3.4.38 + dev: true + + /@vue/compiler-dom@3.5.10: + resolution: {integrity: sha512-DyxHC6qPcktwYGKOIy3XqnHRrrXyWR2u91AjP+nLkADko380srsC2DC3s7Y1Rk6YfOlxOlvEQKa9XXmLI+W4ZA==} + dependencies: + '@vue/compiler-core': 3.5.10 + '@vue/shared': 3.5.10 /@vue/compiler-sfc@3.4.27: resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} @@ -11214,6 +11373,20 @@ packages: magic-string: 0.30.10 postcss: 8.4.40 source-map-js: 1.2.0 + dev: true + + /@vue/compiler-sfc@3.5.10: + resolution: {integrity: sha512-to8E1BgpakV7224ZCm8gz1ZRSyjNCAWEplwFMWKlzCdP9DkMKhRRwt0WkCjY7jkzi/Vz3xgbpeig5Pnbly4Tow==} + dependencies: + '@babel/parser': 7.25.6 + '@vue/compiler-core': 3.5.10 + '@vue/compiler-dom': 3.5.10 + '@vue/compiler-ssr': 3.5.10 + '@vue/shared': 3.5.10 + estree-walker: 2.0.2 + magic-string: 0.30.11 + postcss: 8.4.47 + source-map-js: 1.2.0 /@vue/compiler-ssr@3.4.27: resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==} @@ -11226,6 +11399,13 @@ packages: dependencies: '@vue/compiler-dom': 3.4.38 '@vue/shared': 3.4.38 + dev: true + + /@vue/compiler-ssr@3.5.10: + resolution: {integrity: sha512-hxP4Y3KImqdtyUKXDRSxKSRkSm1H9fCvhojEYrnaoWhE4w/y8vwWhnosJoPPe2AXm5sU7CSbYYAgkt2ZPhDz+A==} + dependencies: + '@vue/compiler-dom': 3.5.10 + '@vue/shared': 3.5.10 /@vue/devtools-api@6.5.0: resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} @@ -11234,21 +11414,21 @@ packages: resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} dev: true - /@vue/devtools-applet@7.2.0(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vite@4.5.3)(vue@3.4.38): + /@vue/devtools-applet@7.2.0(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vite@4.5.3)(vue@3.5.10): resolution: {integrity: sha512-ohl3uHejqu8v6BoCfsadpo6/QU1o585Im8AbH4bZiQTKdIot7OlBdk7pz9bK3muV6N1xKuiDNwYul0QYClOeSg==} peerDependencies: vue: latest dependencies: - '@vue/devtools-core': 7.2.0(vite@4.5.3)(vue@3.4.38) - '@vue/devtools-kit': 7.2.0(vue@3.4.38) + '@vue/devtools-core': 7.2.0(vite@4.5.3)(vue@3.5.10) + '@vue/devtools-kit': 7.2.0(vue@3.5.10) '@vue/devtools-shared': 7.2.0 - '@vue/devtools-ui': 7.2.0(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vue@3.4.38) + '@vue/devtools-ui': 7.2.0(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vue@3.5.10) lodash-es: 4.17.21 perfect-debounce: 1.0.0 shiki: 1.5.2 splitpanes: 3.1.5 - vue: 3.4.38(typescript@5.4.5) - vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.38) + vue: 3.5.10(typescript@5.4.5) + vue-virtual-scroller: 2.0.0-beta.8(vue@3.5.10) transitivePeerDependencies: - '@unocss/reset' - '@vue/composition-api' @@ -11268,10 +11448,10 @@ packages: - vite dev: true - /@vue/devtools-core@7.2.0(vite@4.5.3)(vue@3.4.38): + /@vue/devtools-core@7.2.0(vite@4.5.3)(vue@3.5.10): resolution: {integrity: sha512-cHSeu70rTtubt2DYia+VDGNTC1m84Xyuk5eNTjmOpMLECaJnWnzCv6kR84EZp7rG+MVZalJG+4ecX2GaTbU3cQ==} dependencies: - '@vue/devtools-kit': 7.2.0(vue@3.4.38) + '@vue/devtools-kit': 7.2.0(vue@3.5.10) '@vue/devtools-shared': 7.2.0 mitt: 3.0.1 nanoid: 3.3.7 @@ -11282,7 +11462,7 @@ packages: - vue dev: true - /@vue/devtools-kit@7.2.0(vue@3.4.38): + /@vue/devtools-kit@7.2.0(vue@3.5.10): resolution: {integrity: sha512-Kx+U0QiQg/g714euYKfnCdhTcOycSlH1oyTE57D0sAmisdsRCNLfXcnnIwcFY2jdCpuz9DNbuE0VWQuYF5zAZQ==} peerDependencies: vue: latest @@ -11292,7 +11472,7 @@ packages: mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: true /@vue/devtools-shared@7.2.0: @@ -11301,7 +11481,7 @@ packages: rfdc: 1.3.1 dev: true - /@vue/devtools-ui@7.2.0(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vue@3.4.38): + /@vue/devtools-ui@7.2.0(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vue@3.5.10): resolution: {integrity: sha512-5raf2DLgicnT6vr9oO8kgN49ZqdDYtyph4hBH3sg9bvY2UtHgJs6m8uPqai5vKSrrEy/V30Rq/tahQlOiEbi+Q==} peerDependencies: '@unocss/reset': '>=0.50.0-0' @@ -11311,14 +11491,14 @@ packages: dependencies: '@unocss/reset': 0.58.9 '@vue/devtools-shared': 7.2.0 - '@vueuse/components': 10.9.0(vue@3.4.38) - '@vueuse/core': 10.9.0(vue@3.4.38) - '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(vue@3.4.38) + '@vueuse/components': 10.9.0(vue@3.5.10) + '@vueuse/core': 10.9.0(vue@3.5.10) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(vue@3.5.10) colord: 2.9.3 - floating-vue: 5.2.2(vue@3.4.38) + floating-vue: 5.2.2(vue@3.5.10) focus-trap: 7.5.4 unocss: 0.58.9(@unocss/webpack@0.58.9)(postcss@8.4.40)(vite@4.5.3) - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) transitivePeerDependencies: - '@vue/composition-api' - async-validator @@ -11334,43 +11514,43 @@ packages: - universal-cookie dev: true - /@vue/reactivity@3.4.38: - resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==} + /@vue/reactivity@3.5.10: + resolution: {integrity: sha512-kW08v06F6xPSHhid9DJ9YjOGmwNDOsJJQk0ax21wKaUYzzuJGEuoKNU2Ujux8FLMrP7CFJJKsHhXN9l2WOVi2g==} dependencies: - '@vue/shared': 3.4.38 + '@vue/shared': 3.5.10 - /@vue/runtime-core@3.4.38: - resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==} + /@vue/runtime-core@3.5.10: + resolution: {integrity: sha512-9Q86I5Qq3swSkFfzrZ+iqEy7Vla325M7S7xc1NwKnRm/qoi1Dauz0rT6mTMmscqx4qz0EDJ1wjB+A36k7rl8mA==} dependencies: - '@vue/reactivity': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/reactivity': 3.5.10 + '@vue/shared': 3.5.10 - /@vue/runtime-dom@3.4.38: - resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==} + /@vue/runtime-dom@3.5.10: + resolution: {integrity: sha512-t3x7ht5qF8ZRi1H4fZqFzyY2j+GTMTDxRheT+i8M9Ph0oepUxoadmbwlFwMoW7RYCpNQLpP2Yx3feKs+fyBdpA==} dependencies: - '@vue/reactivity': 3.4.38 - '@vue/runtime-core': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/reactivity': 3.5.10 + '@vue/runtime-core': 3.5.10 + '@vue/shared': 3.5.10 csstype: 3.1.3 - /@vue/server-renderer@3.4.27(vue@3.4.38): + /@vue/server-renderer@3.4.27(vue@3.5.10): resolution: {integrity: sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==} peerDependencies: vue: latest dependencies: '@vue/compiler-ssr': 3.4.27 '@vue/shared': 3.4.27 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false - /@vue/server-renderer@3.4.38(vue@3.4.38): - resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==} + /@vue/server-renderer@3.5.10(vue@3.5.10): + resolution: {integrity: sha512-IVE97tt2kGKwHNq9yVO0xdh1IvYfZCShvDSy46JIh5OQxP1/EXSpoDqetVmyIzL7CYOWnnmMkVqd7YK2QSWkdw==} peerDependencies: vue: latest dependencies: - '@vue/compiler-ssr': 3.4.38 - '@vue/shared': 3.4.38 - vue: 3.4.38(typescript@5.4.5) + '@vue/compiler-ssr': 3.5.10 + '@vue/shared': 3.5.10 + vue: 3.5.10(typescript@5.4.5) /@vue/shared@3.4.21: resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} @@ -11381,6 +11561,10 @@ packages: /@vue/shared@3.4.38: resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} + dev: true + + /@vue/shared@3.5.10: + resolution: {integrity: sha512-VkkBhU97Ki+XJ0xvl4C9YJsIZ2uIlQ7HqPpZOS3m9VCvmROPaChZU6DexdMJqvz9tbgG+4EtFVrSuailUq5KGQ==} /@vue/test-utils@2.4.6: resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==} @@ -11389,7 +11573,7 @@ packages: vue-component-type-helpers: 2.0.6 dev: true - /@vuelidate/core@2.0.3(vue@3.4.38): + /@vuelidate/core@2.0.3(vue@3.5.10): resolution: {integrity: sha512-AN6l7KF7+mEfyWG0doT96z+47ljwPpZfi9/JrNMkOGLFv27XVZvKzRLXlmDPQjPl/wOB1GNnHuc54jlCLRNqGA==} peerDependencies: '@vue/composition-api': ^1.0.0-rc.1 @@ -11398,11 +11582,11 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.4.38(typescript@5.4.5) - vue-demi: 0.13.11(vue@3.4.38) + vue: 3.5.10(typescript@5.4.5) + vue-demi: 0.13.11(vue@3.5.10) dev: false - /@vuelidate/validators@2.0.4(vue@3.4.38): + /@vuelidate/validators@2.0.4(vue@3.5.10): resolution: {integrity: sha512-odTxtUZ2JpwwiQ10t0QWYJkkYrfd0SyFYhdHH44QQ1jDatlZgTh/KRzrWVmn/ib9Gq7H4hFD4e8ahoo5YlUlDw==} peerDependencies: '@vue/composition-api': ^1.0.0-rc.1 @@ -11411,45 +11595,57 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.4.38(typescript@5.4.5) - vue-demi: 0.13.11(vue@3.4.38) + vue: 3.5.10(typescript@5.4.5) + vue-demi: 0.13.11(vue@3.5.10) dev: false - /@vueuse/components@10.9.0(vue@3.4.38): + /@vueuse/components@10.9.0(vue@3.5.10): resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==} dependencies: - '@vueuse/core': 10.9.0(vue@3.4.38) - '@vueuse/shared': 10.9.0(vue@3.4.38) - vue-demi: 0.14.10(vue@3.4.38) + '@vueuse/core': 10.9.0(vue@3.5.10) + '@vueuse/shared': 10.9.0(vue@3.5.10) + vue-demi: 0.14.10(vue@3.5.10) transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/core@10.7.2(vue@3.4.38): + /@vueuse/core@10.11.1(vue@3.5.10): + resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==} + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.11.1 + '@vueuse/shared': 10.11.1(vue@3.5.10) + vue-demi: 0.14.10(vue@3.5.10) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/core@10.7.2(vue@3.5.10): resolution: {integrity: sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==} dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.7.2 - '@vueuse/shared': 10.7.2(vue@3.4.38) - vue-demi: 0.14.7(vue@3.4.38) + '@vueuse/shared': 10.7.2(vue@3.5.10) + vue-demi: 0.14.7(vue@3.5.10) transitivePeerDependencies: - '@vue/composition-api' - vue - /@vueuse/core@10.9.0(vue@3.4.38): + /@vueuse/core@10.9.0(vue@3.5.10): resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.9.0 - '@vueuse/shared': 10.9.0(vue@3.4.38) - vue-demi: 0.14.10(vue@3.4.38) + '@vueuse/shared': 10.9.0(vue@3.5.10) + vue-demi: 0.14.10(vue@3.5.10) transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/integrations@10.7.2(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(vue@3.4.38): + /@vueuse/integrations@10.7.2(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(vue@3.5.10): resolution: {integrity: sha512-+u3RLPFedjASs5EKPc69Ge49WNgqeMfSxFn+qrQTzblPXZg6+EFzhjarS5edj2qAf6xQ93f95TUxRwKStXj/sQ==} peerDependencies: async-validator: '*' @@ -11490,19 +11686,19 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 10.7.2(vue@3.4.38) - '@vueuse/shared': 10.7.2(vue@3.4.38) + '@vueuse/core': 10.7.2(vue@3.5.10) + '@vueuse/shared': 10.7.2(vue@3.5.10) fuse.js: 6.6.2 jwt-decode: 3.1.2 qrcode: 1.5.3 sortablejs: 1.15.2 - vue-demi: 0.14.7(vue@3.4.38) + vue-demi: 0.14.7(vue@3.5.10) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(vue@3.4.38): + /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sortablejs@1.15.2)(vue@3.5.10): resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==} peerDependencies: async-validator: '*' @@ -11543,19 +11739,23 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 10.9.0(vue@3.4.38) - '@vueuse/shared': 10.9.0(vue@3.4.38) + '@vueuse/core': 10.9.0(vue@3.5.10) + '@vueuse/shared': 10.9.0(vue@3.5.10) focus-trap: 7.5.4 fuse.js: 6.6.2 jwt-decode: 3.1.2 qrcode: 1.5.3 sortablejs: 1.15.2 - vue-demi: 0.14.10(vue@3.4.38) + vue-demi: 0.14.10(vue@3.5.10) transitivePeerDependencies: - '@vue/composition-api' - vue dev: true + /@vueuse/metadata@10.11.1: + resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==} + dev: false + /@vueuse/metadata@10.7.2: resolution: {integrity: sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==} @@ -11563,17 +11763,39 @@ packages: resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} dev: true - /@vueuse/nuxt@10.7.2(nuxt@3.11.2)(vue@3.4.38): + /@vueuse/motion@2.2.5(vue@3.5.10): + resolution: {integrity: sha512-pcqMdpPbm/Pd/rbQQ/sHyykdOahj0rueZ8WpLhhk8i1tbEcga80EhNJLn99G9J9DSuOvkJNYuv1n2OntGUc1rQ==} + peerDependencies: + vue: latest + dependencies: + '@vueuse/core': 10.11.1(vue@3.5.10) + '@vueuse/shared': 10.11.1(vue@3.5.10) + csstype: 3.1.3 + framesync: 6.1.2 + popmotion: 11.0.5 + style-value-types: 5.1.2 + vue: 3.5.10(typescript@5.4.5) + optionalDependencies: + '@nuxt/kit': 3.13.2 + transitivePeerDependencies: + - '@vue/composition-api' + - magicast + - rollup + - supports-color + - webpack-sources + dev: false + + /@vueuse/nuxt@10.7.2(nuxt@3.11.2)(vue@3.5.10): resolution: {integrity: sha512-yv2hY4AiRoSqg9ELNpN6gOkDWxGuLiKE/bEbuTAAuUBhS5OeEDf5aB/kY0e/V6ZXj5XiU4LX3nE8YV8c+UKfmQ==} peerDependencies: nuxt: ^3.0.0 dependencies: '@nuxt/kit': 3.9.3 - '@vueuse/core': 10.7.2(vue@3.4.38) + '@vueuse/core': 10.7.2(vue@3.5.10) '@vueuse/metadata': 10.7.2 local-pkg: 0.5.0 nuxt: 3.11.2(@opentelemetry/api@1.4.1)(@unocss/reset@0.58.9)(eslint@8.56.0)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(qrcode@1.5.3)(sass@1.71.1)(sortablejs@1.15.2)(unocss@0.58.9)(vite@4.5.3) - vue-demi: 0.14.7(vue@3.4.38) + vue-demi: 0.14.7(vue@3.5.10) transitivePeerDependencies: - '@vue/composition-api' - rollup @@ -11581,18 +11803,27 @@ packages: - vue dev: true - /@vueuse/shared@10.7.2(vue@3.4.38): + /@vueuse/shared@10.11.1(vue@3.5.10): + resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==} + dependencies: + vue-demi: 0.14.10(vue@3.5.10) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/shared@10.7.2(vue@3.5.10): resolution: {integrity: sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==} dependencies: - vue-demi: 0.14.10(vue@3.4.38) + vue-demi: 0.14.10(vue@3.5.10) transitivePeerDependencies: - '@vue/composition-api' - vue - /@vueuse/shared@10.9.0(vue@3.4.38): + /@vueuse/shared@10.9.0(vue@3.5.10): resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} dependencies: - vue-demi: 0.14.10(vue@3.4.38) + vue-demi: 0.14.10(vue@3.5.10) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -11989,6 +12220,14 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + requiresBuild: true + dev: false + optional: true + /add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} dev: true @@ -12029,6 +12268,14 @@ packages: clean-stack: 2.2.0 indent-string: 4.0.0 + /aggregate-error@4.0.1: + resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} + engines: {node: '>=12'} + dependencies: + clean-stack: 4.2.0 + indent-string: 5.0.0 + dev: false + /airtable@0.12.2: resolution: {integrity: sha512-HS3VytUBTKj8A0vPl7DDr5p/w3IOGv6RXL0fv7eczOWAtj9Xe8ri4TAiZRXoOyo+Z/COADCj+oARFenbxhmkIg==} engines: {node: '>=8.0.0'} @@ -12147,14 +12394,14 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - /ant-design-vue@3.2.20(vue@3.4.38): + /ant-design-vue@3.2.20(vue@3.5.10): resolution: {integrity: sha512-YWpMfGaGoRastIXEYfCoJiaRiDHk4chqtYhlKQM5GqPt6NfvrM1Vg2e60yHtjxlZjed91wCMm0rAmyUr7Hwzdg==} engines: {node: '>=12.22.0'} peerDependencies: vue: latest dependencies: '@ant-design/colors': 6.0.0 - '@ant-design/icons-vue': 6.1.0(vue@3.4.38) + '@ant-design/icons-vue': 6.1.0(vue@3.5.10) '@babel/runtime': 7.22.11 '@ctrl/tinycolor': 3.6.1 '@simonwep/pickr': 1.8.2 @@ -12168,8 +12415,8 @@ packages: resize-observer-polyfill: 1.5.1 scroll-into-view-if-needed: 2.2.31 shallow-equal: 1.2.1 - vue: 3.4.38(typescript@5.4.5) - vue-types: 3.0.2(vue@3.4.38) + vue: 3.5.10(typescript@5.4.5) + vue-types: 3.0.2(vue@3.5.10) warning: 4.0.3 dev: false @@ -12406,12 +12653,16 @@ packages: /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} - dev: true /arrify@2.0.1: resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} engines: {node: '>=8'} + /arrify@3.0.0: + resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} + engines: {node: '>=12'} + dev: false + /asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} dev: true @@ -12662,6 +12913,10 @@ packages: dev: false optional: true + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -13006,6 +13261,30 @@ packages: pkg-types: 1.0.3 rc9: 2.1.1 + /c12@1.11.2: + resolution: {integrity: sha512-oBs8a4uvSDO9dm8b7OCFW7+dgtVrwmwnrVXYzLm43ta7ep2jCn/0MhoUFygIWtxhyy6+/MG7/agvpY0U1Iemew==} + requiresBuild: true + peerDependencies: + magicast: ^0.3.4 + peerDependenciesMeta: + magicast: + optional: true + dependencies: + chokidar: 3.6.0 + confbox: 0.1.7 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 1.21.6 + mlly: 1.7.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.2.0 + rc9: 2.1.2 + dev: false + optional: true + /c12@1.6.1: resolution: {integrity: sha512-fAZOi3INDvIbmjuwAVVggusyRTxwNdTAnwLay8IsXwhFzDwPPGzFxzrx6L55CPFGPulUSZI0eyFUvRDXveoE3g==} dependencies: @@ -13123,6 +13402,16 @@ packages: quick-lru: 4.0.1 dev: true + /camelcase-keys@7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + dependencies: + camelcase: 6.3.0 + map-obj: 4.3.0 + quick-lru: 5.1.1 + type-fest: 1.4.0 + dev: false + /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -13153,6 +13442,10 @@ packages: /caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + /cfb@1.2.2: resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} engines: {node: '>=0.8'} @@ -13217,14 +13510,26 @@ packages: engines: {node: '>=10'} dev: true + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false + /character-entities-legacy@1.1.4: resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} dev: true + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false + /character-entities@1.2.4: resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} dev: true + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false + /character-reference-invalid@1.1.4: resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} dev: true @@ -13356,6 +13661,13 @@ packages: engines: {node: '>=6'} requiresBuild: true + /clean-stack@4.2.0: + resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + dev: false + /clear@0.1.0: resolution: {integrity: sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==} @@ -13591,6 +13903,10 @@ packages: dependencies: delayed-stream: 1.0.0 + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false + /commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} @@ -13652,6 +13968,12 @@ packages: resolution: {integrity: sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==} dev: false + /compatx@0.1.8: + resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} + requiresBuild: true + dev: false + optional: true + /component-emitter@1.3.0: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} dev: true @@ -13929,6 +14251,39 @@ packages: path-type: 4.0.0 dev: true + /cp-file@9.1.0: + resolution: {integrity: sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==} + engines: {node: '>=10'} + dependencies: + graceful-fs: 4.2.11 + make-dir: 3.1.0 + nested-error-stacks: 2.1.1 + p-event: 4.2.0 + dev: false + + /cpy-cli@4.2.0: + resolution: {integrity: sha512-b04b+cbdr29CdpREPKw/itrfjO43Ty0Aj7wRM6M6LoE4GJxZJCk9Xp+Eu1IqztkKh3LxIBt1tDplENsa6KYprg==} + engines: {node: '>=12.20'} + hasBin: true + dependencies: + cpy: 9.0.1 + meow: 10.1.5 + dev: false + + /cpy@9.0.1: + resolution: {integrity: sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg==} + engines: {node: ^12.20.0 || ^14.17.0 || >=16.0.0} + dependencies: + arrify: 3.0.0 + cp-file: 9.1.0 + globby: 13.2.2 + junk: 4.0.1 + micromatch: 4.0.5 + nested-error-stacks: 2.1.1 + p-filter: 3.0.0 + p-map: 5.5.0 + dev: false + /crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} @@ -14572,7 +14927,6 @@ packages: dependencies: decamelize: 1.2.0 map-obj: 1.0.1 - dev: true /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} @@ -14583,6 +14937,11 @@ packages: engines: {node: '>=10'} dev: true + /decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + dev: false + /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: false @@ -14593,6 +14952,12 @@ packages: cheerio: 1.0.0-rc.12 dev: true + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: false + /decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} @@ -14728,6 +15093,11 @@ packages: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} dev: true + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + /destr@2.0.2: resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==} dev: true @@ -14768,6 +15138,12 @@ packages: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} dev: true + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + dev: false + /dezalgo@1.0.4: resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} dependencies: @@ -14982,14 +15358,14 @@ packages: embla-carousel: 8.1.7 dev: false - /embla-carousel-vue@8.1.7(vue@3.4.38): + /embla-carousel-vue@8.1.7(vue@3.5.10): resolution: {integrity: sha512-cYTIGghkKOeMPI154mz1L60yCW6QMnsgKssEaHHfQ7aYo8KHKlvaY47ZWr5zVpBfSoKfSbB1mgPGvZxrj6Mvpg==} peerDependencies: vue: latest dependencies: embla-carousel: 8.1.7 embla-carousel-reactive-utils: 8.1.7(embla-carousel@8.1.7) - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /embla-carousel@8.1.7: @@ -15000,14 +15376,14 @@ packages: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} - /emoji-mart-vue-fast@15.0.2(vue@3.4.38): + /emoji-mart-vue-fast@15.0.2(vue@3.5.10): resolution: {integrity: sha512-q7VaE6yRrlQd+jpHPToh1XnIatgACkQjBj0vQ7uNaWrbVsKlhZaOsqZVoegT5IZt5XkYoR2x4MHMNep/BJP9rw==} peerDependencies: vue: latest dependencies: '@babel/runtime': 7.22.11 core-js: 3.32.1 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /emoji-regex@8.0.0: @@ -15149,7 +15525,6 @@ packages: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 - dev: true /error-stack-parser-es@0.1.1: resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} @@ -16892,7 +17267,6 @@ packages: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - dev: true /flat-cache@3.1.0: resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} @@ -16915,7 +17289,7 @@ packages: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true - /floating-vue@5.2.2(vue@3.4.38): + /floating-vue@5.2.2(vue@3.5.10): resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==} peerDependencies: '@nuxt/kit': ^3.2.0 @@ -16925,8 +17299,8 @@ packages: optional: true dependencies: '@floating-ui/dom': 1.1.1 - vue: 3.4.38(typescript@5.4.5) - vue-resize: 2.0.0-alpha.1(vue@3.4.38) + vue: 3.5.10(typescript@5.4.5) + vue-resize: 2.0.0-alpha.1(vue@3.5.10) dev: true /focus-trap@7.5.4: @@ -17050,6 +17424,12 @@ packages: /fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + /framesync@6.1.2: + resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==} + dependencies: + tslib: 2.4.0 + dev: false + /fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -17391,6 +17771,22 @@ packages: pathe: 1.1.2 tar: 6.2.0 + /giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + hasBin: true + requiresBuild: true + dependencies: + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.4 + nypm: 0.3.8 + ohash: 1.1.3 + pathe: 1.1.2 + tar: 6.2.0 + dev: false + optional: true + /git-config-path@2.0.0: resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} engines: {node: '>=4'} @@ -17629,6 +18025,20 @@ packages: slash: 5.1.0 unicorn-magic: 0.1.0 + /globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + requiresBuild: true + dependencies: + '@sindresorhus/merge-streams': 2.2.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + dev: false + optional: true + /google-auth-library@9.0.0: resolution: {integrity: sha512-IQGjgQoVUAfOk6khqTVMLvWx26R+yPw9uLyb1MNyMQpdKiKt0Fd9sp4NWoINjyGHR8S3iw12hMTYK7O8J07c6Q==} engines: {node: '>=14'} @@ -17822,7 +18232,6 @@ packages: /hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} - dev: true /has-ansi@2.0.0: resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} @@ -17898,8 +18307,38 @@ packages: dependencies: function-bind: 1.1.2 - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + /hast-util-sanitize@5.0.1: + resolution: {integrity: sha512-IGrgWLuip4O2nq5CugXy4GI2V8kx4sFVy5Hd4vF7AR2gxS0N9s7nEAVUyeMtZKZvzrxVsHt73XdTsno1tClIkQ==} + dependencies: + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.2.0 + unist-util-position: 5.0.0 + dev: false + + /hast-util-to-html@9.0.3: + resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + dev: false + + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + dependencies: + '@types/hast': 3.0.4 + dev: false + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true dev: true @@ -17908,6 +18347,10 @@ packages: engines: {node: '>=8'} dev: true + /hey-listen@1.0.8: + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} + dev: false + /hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} @@ -17927,7 +18370,6 @@ packages: engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 - dev: true /hosted-git-info@6.1.1: resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} @@ -17973,6 +18415,10 @@ packages: '@xmldom/xmldom': 0.8.10 dev: false + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: false + /htmlparser2@8.0.2: resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} dependencies: @@ -18186,6 +18632,13 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + /ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + requiresBuild: true + dev: false + optional: true + /image-meta@0.2.0: resolution: {integrity: sha512-ZBGjl0ZMEMeOC3Ns0wUF/5UdUmr3qQhBSCniT0LxOgGGIRHiNFOkMtIHB7EOznRU47V2AxPgiVP+s+0/UCU0Hg==} @@ -18240,6 +18693,11 @@ packages: engines: {node: '>=8'} requiresBuild: true + /indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + dev: false + /infer-owner@1.0.4: resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} requiresBuild: true @@ -18504,7 +18962,6 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -18739,13 +19196,17 @@ packages: /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} - dev: true /is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} dev: true + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false + /is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} @@ -19544,6 +20005,13 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true + /jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + requiresBuild: true + dev: false + optional: true + /jmespath@0.16.0: resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} engines: {node: '>= 0.6.0'} @@ -19577,7 +20045,6 @@ packages: /js-tokens@9.0.0: resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - dev: true /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -19668,7 +20135,6 @@ packages: /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true /json-parse-even-better-errors@3.0.0: resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} @@ -19788,6 +20254,11 @@ packages: object.values: 1.1.7 dev: true + /junk@4.0.1: + resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} + engines: {node: '>=12.20'} + dev: false + /jwa@1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: @@ -19835,7 +20306,6 @@ packages: /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - dev: true /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} @@ -19845,7 +20315,6 @@ packages: /klona@2.0.6: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} - dev: true /knex@2.4.2(mysql2@3.2.0)(pg@8.10.0)(sqlite3@5.1.6): resolution: {integrity: sha512-tMI1M7a+xwHhPxjbl/H9K1kHX+VncEYcvCx5K00M16bWvpYPKAZd6QrCu68PtHAdIZNQPWZn0GVhqVBEthGWCg==} @@ -19951,7 +20420,6 @@ packages: /knitwork@1.1.0: resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} - dev: true /kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} @@ -20139,7 +20607,6 @@ packages: /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true /lines-and-columns@2.0.3: resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} @@ -20300,6 +20767,10 @@ packages: type-fest: 0.6.0 dev: true + /load-script@1.0.0: + resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} + dev: false + /loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -20364,7 +20835,6 @@ packages: engines: {node: '>=10'} dependencies: p-locate: 5.0.0 - dev: true /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} @@ -20527,6 +20997,11 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + /magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + /magic-string@0.30.5: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} @@ -20658,12 +21133,10 @@ packages: /map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} - dev: true /map-obj@4.3.0: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} - dev: true /map-stream@0.1.0: resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} @@ -20710,10 +21183,49 @@ packages: - supports-color dev: true + /mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + dev: false + /mdast-util-to-string@2.0.0: resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} dev: true + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + dependencies: + '@types/mdast': 4.0.4 + dev: false + /mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} requiresBuild: true @@ -20750,6 +21262,24 @@ packages: engines: {node: '>= 0.10.0'} dev: true + /meow@10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 7.0.2 + decamelize: 5.0.1 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 8.0.0 + redent: 4.0.0 + trim-newlines: 4.1.1 + type-fest: 1.4.0 + yargs-parser: 20.2.9 + dev: false + /meow@8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} @@ -20781,6 +21311,157 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} + /micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: false + + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + dev: false + + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: false + + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: false + /micromark@2.11.4: resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} dependencies: @@ -20790,6 +21471,30 @@ packages: - supports-color dev: true + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4(supports-color@5.5.0) + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: false + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -20847,7 +21552,6 @@ packages: /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - dev: true /minimatch@3.0.5: resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} @@ -20907,7 +21611,6 @@ packages: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 - dev: true /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -21116,6 +21819,17 @@ packages: pkg-types: 1.1.1 ufo: 1.5.3 + /mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + requiresBuild: true + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.2.0 + ufo: 1.5.3 + dev: false + optional: true + /mocha@10.3.0: resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} engines: {node: '>= 14.0.0'} @@ -21340,6 +22054,10 @@ packages: dependencies: lru-cache: 7.18.3 + /nanoid@2.1.11: + resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==} + dev: false + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -21407,6 +22125,10 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + /nested-error-stacks@2.1.1: + resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} + dev: false + /nestjs-throttler-storage-redis@0.4.4(@nestjs/common@10.3.8)(@nestjs/core@10.3.8)(@nestjs/throttler@5.1.2)(ioredis@5.4.1)(reflect-metadata@0.2.1): resolution: {integrity: sha512-QLYfsat/qutHQaTn3QAoa79WEHG4Uyk8rWRqNhVCVxzQ+qdzaNBUlBwxb8MYhfCmgoCA+eX3Paws8FZI/bYe7A==} peerDependencies: @@ -21741,7 +22463,6 @@ packages: is-core-module: 2.13.1 semver: 7.6.2 validate-npm-package-license: 3.0.4 - dev: true /normalize-package-data@5.0.0: resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} @@ -22003,15 +22724,15 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.1(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(nuxt@3.11.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vite@4.5.3)(vue@3.4.38) + '@nuxt/devtools': 1.3.1(@unocss/reset@0.58.9)(floating-vue@5.2.2)(fuse.js@6.6.2)(jwt-decode@3.1.2)(nuxt@3.11.2)(qrcode@1.5.3)(sortablejs@1.15.2)(unocss@0.58.9)(vite@4.5.3)(vue@3.5.10) '@nuxt/kit': 3.11.2 '@nuxt/schema': 3.11.2 '@nuxt/telemetry': 2.5.3 '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(eslint@8.56.0)(sass@1.71.1)(vue@3.4.38) + '@nuxt/vite-builder': 3.11.2(eslint@8.56.0)(sass@1.71.1)(vue@3.5.10) '@unhead/dom': 1.9.10 '@unhead/ssr': 1.9.10 - '@unhead/vue': 1.9.10(vue@3.4.38) + '@unhead/vue': 1.9.10(vue@3.5.10) '@vue/shared': 3.4.21 acorn: 8.11.3 c12: 1.10.0 @@ -22051,13 +22772,13 @@ packages: unenv: 1.9.0 unimport: 3.7.1 unplugin: 1.10.1 - unplugin-vue-router: 0.7.0(vue-router@4.3.0)(vue@3.4.38) + unplugin-vue-router: 0.7.0(vue-router@4.3.0)(vue@3.5.10) unstorage: 1.10.2(ioredis@5.4.1) untyped: 1.4.2 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) vue-bundle-renderer: 2.0.0 vue-devtools-stub: 0.1.0 - vue-router: 4.3.0(vue@3.4.38) + vue-router: 4.3.0(vue@3.5.10) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -22198,7 +22919,6 @@ packages: execa: 8.0.1 pathe: 1.1.2 ufo: 1.5.3 - dev: true /oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} @@ -22435,6 +23155,20 @@ packages: resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==} dev: true + /p-event@4.2.0: + resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} + engines: {node: '>=8'} + dependencies: + p-timeout: 3.2.0 + dev: false + + /p-filter@3.0.0: + resolution: {integrity: sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-map: 5.5.0 + dev: false + /p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -22483,7 +23217,6 @@ packages: engines: {node: '>=10'} dependencies: p-limit: 3.1.0 - dev: true /p-map-series@2.1.0: resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} @@ -22497,6 +23230,13 @@ packages: dependencies: aggregate-error: 3.1.0 + /p-map@5.5.0: + resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} + engines: {node: '>=12'} + dependencies: + aggregate-error: 4.0.1 + dev: false + /p-pipe@3.1.0: resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} engines: {node: '>=8'} @@ -22659,7 +23399,6 @@ packages: error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: true /parse-path@7.0.0: resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} @@ -22835,14 +23574,14 @@ packages: resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} dev: false - /pdfobject-vue@0.0.4(pdfobject@2.3.0)(vue@3.4.38): + /pdfobject-vue@0.0.4(pdfobject@2.3.0)(vue@3.5.10): resolution: {integrity: sha512-sk3IqtwyC1j7Gu0rkskOgWnJgDNtCkdwkxvnLGI3xK0pMhgleNw2IWpH41FSNVuE0h5zdjjakpXsv+YH0cbXfA==} peerDependencies: pdfobject: ^2.2.12 vue: latest dependencies: pdfobject: 2.3.0 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /pdfobject@2.3.0: @@ -22956,6 +23695,9 @@ packages: /picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + /picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -22997,7 +23739,7 @@ packages: engines: {node: '>=10'} dev: true - /pinia@2.1.7(vue@3.4.38): + /pinia@2.1.7(vue@3.5.10): resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==} peerDependencies: '@vue/composition-api': ^1.4.0 @@ -23010,8 +23752,8 @@ packages: optional: true dependencies: '@vue/devtools-api': 6.5.0 - vue: 3.4.38(typescript@5.4.5) - vue-demi: 0.14.6(vue@3.4.38) + vue: 3.5.10(typescript@5.4.5) + vue-demi: 0.14.6(vue@3.5.10) dev: false /pinkie-promise@1.0.0: @@ -23052,6 +23794,16 @@ packages: mlly: 1.7.0 pathe: 1.1.2 + /pkg-types@1.2.0: + resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} + requiresBuild: true + dependencies: + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 + dev: false + optional: true + /playwright-core@1.43.1: resolution: {integrity: sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==} engines: {node: '>=16'} @@ -23093,6 +23845,15 @@ packages: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} + /popmotion@11.0.5: + resolution: {integrity: sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA==} + dependencies: + framesync: 6.1.2 + hey-listen: 1.0.8 + style-value-types: 5.1.2 + tslib: 2.4.0 + dev: false + /possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -23721,6 +24482,14 @@ packages: picocolors: 1.0.1 source-map-js: 1.2.0 + /postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + /postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -23878,6 +24647,10 @@ packages: react-is: 16.13.1 dev: true + /property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + dev: false + /prosemirror-changeset@2.2.1: resolution: {integrity: sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==} dependencies: @@ -24151,6 +24924,11 @@ packages: engines: {node: '>=8'} dev: true + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: false + /radix3@1.1.0: resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==} @@ -24203,7 +24981,6 @@ packages: dependencies: defu: 6.1.4 destr: 2.0.3 - dev: true /rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} @@ -24270,6 +25047,15 @@ packages: type-fest: 0.8.1 dev: true + /read-pkg-up@8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} + dependencies: + find-up: 5.0.0 + read-pkg: 6.0.0 + type-fest: 1.4.0 + dev: false + /read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} @@ -24289,6 +25075,16 @@ packages: type-fest: 0.6.0 dev: true + /read-pkg@6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 3.0.3 + parse-json: 5.2.0 + type-fest: 1.4.0 + dev: false + /read@2.1.0: resolution: {integrity: sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -24364,6 +25160,14 @@ packages: strip-indent: 3.0.0 dev: true + /redent@4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + dependencies: + indent-string: 5.0.0 + strip-indent: 4.0.0 + dev: false + /redis-errors@1.2.0: resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} engines: {node: '>=4'} @@ -24429,6 +25233,42 @@ packages: engines: {node: '>=8'} dev: true + /rehype-sanitize@6.0.0: + resolution: {integrity: sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg==} + dependencies: + '@types/hast': 3.0.4 + hast-util-sanitize: 5.0.1 + dev: false + + /rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} + dependencies: + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 + unified: 11.0.5 + dev: false + + /remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-rehype@11.1.1: + resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + dev: false + /remove-trailing-slash@0.1.1: resolution: {integrity: sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==} dev: false @@ -24950,6 +25790,14 @@ packages: engines: {node: '>=10'} hasBin: true + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + dev: false + optional: true + /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -25144,6 +25992,13 @@ packages: '@shikijs/core': 1.5.2 dev: true + /shortid@2.2.16: + resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + nanoid: 2.1.11 + dev: false + /showdown@2.1.0: resolution: {integrity: sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==} hasBin: true @@ -25262,6 +26117,10 @@ packages: totalist: 3.0.1 dev: true + /sister@3.0.2: + resolution: {integrity: sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==} + dev: false + /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: true @@ -25430,6 +26289,10 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + /source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + /source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: @@ -25463,27 +26326,27 @@ packages: deprecated: Please use @jridgewell/sourcemap-codec instead dev: true + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false + /spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.13 - dev: true /spdx-exceptions@2.3.0: resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.13 - dev: true /spdx-license-ids@3.0.13: resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} - dev: true /speakingurl@14.0.1: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} @@ -25808,6 +26671,13 @@ packages: dependencies: safe-buffer: 5.2.1 + /stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + dev: false + /stringify-object@3.3.0: resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} engines: {node: '>=4'} @@ -25862,6 +26732,13 @@ packages: min-indent: 1.0.1 dev: true + /strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + dependencies: + min-indent: 1.0.1 + dev: false + /strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -25882,7 +26759,6 @@ packages: resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} dependencies: js-tokens: 9.0.0 - dev: true /strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} @@ -25902,6 +26778,13 @@ packages: resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} dev: false + /style-value-types@5.1.2: + resolution: {integrity: sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==} + dependencies: + hey-listen: 1.0.8 + tslib: 2.4.0 + dev: false + /stylehacks@6.1.1(postcss@8.4.40): resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} engines: {node: ^14 || ^16 || >=18.0} @@ -26445,11 +27328,24 @@ packages: hasBin: true dev: true + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false + /trim-newlines@3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} dev: true + /trim-newlines@4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + dev: false + + /trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + dev: false + /ts-api-utils@1.0.2(typescript@5.3.2): resolution: {integrity: sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==} engines: {node: '>=16.13.0'} @@ -26625,6 +27521,10 @@ packages: /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + /tslib@2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + dev: false + /tslib@2.6.0: resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} dev: false @@ -26753,6 +27653,11 @@ packages: engines: {node: '>=8'} dev: true + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: false + /type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} @@ -26986,6 +27891,41 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} + /unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + dev: false + + /unimport@3.13.1: + resolution: {integrity: sha512-nNrVzcs93yrZQOW77qnyOVHtb68LegvhYFwxFMfuuWScmwQmyVCG/NBuN8tYsaGzgQUVYv34E/af+Cc9u4og4A==} + requiresBuild: true + dependencies: + '@rollup/pluginutils': 5.1.2 + acorn: 8.12.1 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.11 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + scule: 1.3.0 + strip-literal: 2.1.0 + unplugin: 1.14.1 + transitivePeerDependencies: + - rollup + - webpack-sources + dev: false + optional: true + /unimport@3.7.1: resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} dependencies: @@ -27065,12 +28005,45 @@ packages: crypto-random-string: 2.0.0 dev: true + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + dependencies: + '@types/unist': 3.0.3 + dev: false + + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.3 + dev: false + /unist-util-stringify-position@2.0.3: resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} dependencies: '@types/unist': 2.0.7 dev: true + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.3 + dev: false + + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + dev: false + + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + /universal-user-agent@6.0.0: resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} dev: true @@ -27165,7 +28138,7 @@ packages: - supports-color dev: true - /unplugin-vue-components@0.26.0(vue@3.4.38): + /unplugin-vue-components@0.26.0(vue@3.5.10): resolution: {integrity: sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==} engines: {node: '>=14'} peerDependencies: @@ -27188,13 +28161,13 @@ packages: minimatch: 9.0.3 resolve: 1.22.4 unplugin: 1.7.1 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) transitivePeerDependencies: - rollup - supports-color dev: true - /unplugin-vue-router@0.7.0(vue-router@4.3.0)(vue@3.4.38): + /unplugin-vue-router@0.7.0(vue-router@4.3.0)(vue@3.5.10): resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} peerDependencies: vue-router: ^4.1.0 @@ -27204,7 +28177,7 @@ packages: dependencies: '@babel/types': 7.24.0 '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - '@vue-macros/common': 1.8.0(vue@3.4.38) + '@vue-macros/common': 1.8.0(vue@3.5.10) ast-walker-scope: 0.5.0 chokidar: 3.6.0 fast-glob: 3.3.2 @@ -27214,7 +28187,7 @@ packages: pathe: 1.1.2 scule: 1.3.0 unplugin: 1.10.1 - vue-router: 4.3.0(vue@3.4.38) + vue-router: 4.3.0(vue@3.5.10) yaml: 2.3.4 transitivePeerDependencies: - rollup @@ -27240,6 +28213,21 @@ packages: webpack-virtual-modules: 0.6.1 dev: true + /unplugin@1.14.1: + resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} + engines: {node: '>=14.0.0'} + requiresBuild: true + peerDependencies: + webpack-sources: ^3 + peerDependenciesMeta: + webpack-sources: + optional: true + dependencies: + acorn: 8.12.1 + webpack-virtual-modules: 0.6.2 + dev: false + optional: true + /unplugin@1.5.1: resolution: {integrity: sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew==} dependencies: @@ -27547,7 +28535,6 @@ packages: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - dev: true /validate-npm-package-name@3.0.0: resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} @@ -27587,6 +28574,20 @@ packages: extsprintf: 1.3.0 dev: false + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + dev: false + + /vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + dev: false + /vite-hot-client@0.2.3(vite@4.5.3): resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} peerDependencies: @@ -27993,7 +28994,7 @@ packages: resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} dev: true - /vue-advanced-cropper@2.8.8(vue@3.4.38): + /vue-advanced-cropper@2.8.8(vue@3.5.10): resolution: {integrity: sha512-yDM7Jb/gnxcs//JdbOogBUoHr1bhCQSto7/ohgETKAe4wvRpmqIkKSppMm1huVQr+GP1YoVlX/fkjKxvYzwwDQ==} engines: {node: '>=8', npm: '>=5'} peerDependencies: @@ -28002,7 +29003,7 @@ packages: classnames: 2.5.1 debounce: 1.2.1 easy-bem: 1.1.1 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /vue-barcode-reader@1.0.3: @@ -28017,21 +29018,21 @@ packages: ufo: 1.5.3 dev: true - /vue-chartjs@5.3.1(chart.js@4.4.2)(vue@3.4.38): + /vue-chartjs@5.3.1(chart.js@4.4.2)(vue@3.5.10): resolution: {integrity: sha512-rZjqcHBxKiHrBl0CIvcOlVEBwRhpWAVf6rDU3vUfa7HuSRmGtCslc0Oc8m16oAVuk0erzc1FCtH1VCriHsrz+A==} peerDependencies: chart.js: ^4.1.1 vue: latest dependencies: chart.js: 4.4.2 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /vue-component-type-helpers@2.0.6: resolution: {integrity: sha512-qdGXCtoBrwqk1BT6r2+1Wcvl583ZVkuSZ3or7Y1O2w5AvWtlvvxwjGhmz5DdPJS9xqRdDlgTJ/38ehWnEi0tFA==} dev: true - /vue-demi@0.13.11(vue@3.4.38): + /vue-demi@0.13.11(vue@3.5.10): resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} hasBin: true @@ -28043,10 +29044,10 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false - /vue-demi@0.14.10(vue@3.4.38): + /vue-demi@0.14.10(vue@3.5.10): resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} engines: {node: '>=12'} hasBin: true @@ -28058,9 +29059,9 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) - /vue-demi@0.14.6(vue@3.4.38): + /vue-demi@0.14.6(vue@3.5.10): resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} engines: {node: '>=12'} hasBin: true @@ -28072,10 +29073,10 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false - /vue-demi@0.14.7(vue@3.4.38): + /vue-demi@0.14.7(vue@3.5.10): resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} engines: {node: '>=12'} hasBin: true @@ -28087,20 +29088,20 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) /vue-devtools-stub@0.1.0: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} dev: true - /vue-dompurify-html@3.1.2(vue@3.4.38): + /vue-dompurify-html@3.1.2(vue@3.5.10): resolution: {integrity: sha512-2xCnSuog5+OPUtmeAwPZY/6oV9YKuLhjgcl5EUw3jKbmhnyPo8YyCczCeRNGBorVcz1fCGm6PEOIUSXNS8I0ZA==} peerDependencies: vue: latest dependencies: dompurify: 2.4.7 - vue: 3.4.38(typescript@5.4.5) - vue-demi: 0.13.11(vue@3.4.38) + vue: 3.5.10(typescript@5.4.5) + vue-demi: 0.13.11(vue@3.5.10) transitivePeerDependencies: - '@vue/composition-api' dev: false @@ -28126,11 +29127,11 @@ packages: /vue-extensible-mail@0.0.3(typescript@5.4.5): resolution: {integrity: sha512-X9oEe/ent1mfmAX65lld/WDVCGRBxULvXbHC21j+mOU2EVmL73xLBEh6TRENc+BPyInzm4jjLa9JnhuEzbwNmQ==} dependencies: - '@vue/server-renderer': 3.4.27(vue@3.4.38) + '@vue/server-renderer': 3.4.27(vue@3.5.10) import-string: 0.1.2(typescript@5.4.5) scule: 1.3.0 unbuild: 2.0.0(typescript@5.4.5) - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) transitivePeerDependencies: - sass - supports-color @@ -28144,7 +29145,7 @@ packages: github-buttons: 2.27.0 dev: false - /vue-i18n@9.9.1(vue@3.4.38): + /vue-i18n@9.9.1(vue@3.5.10): resolution: {integrity: sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw==} engines: {node: '>= 16'} peerDependencies: @@ -28153,14 +29154,14 @@ packages: '@intlify/core-base': 9.9.1 '@intlify/shared': 9.9.1 '@vue/devtools-api': 6.5.0 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) - /vue-observe-visibility@2.0.0-alpha.1(vue@3.4.38): + /vue-observe-visibility@2.0.0-alpha.1(vue@3.5.10): resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} peerDependencies: vue: latest dependencies: - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: true /vue-qrcode-reader@3.1.9: @@ -28169,51 +29170,51 @@ packages: barcode-detector: 1.0.4 callforth: 0.3.1 core-js: 3.32.1 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) webrtc-adapter: 7.7.0 transitivePeerDependencies: - typescript dev: false - /vue-resize@2.0.0-alpha.1(vue@3.4.38): + /vue-resize@2.0.0-alpha.1(vue@3.5.10): resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} peerDependencies: vue: latest dependencies: - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: true - /vue-router@4.3.0(vue@3.4.38): + /vue-router@4.3.0(vue@3.5.10): resolution: {integrity: sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==} peerDependencies: vue: latest dependencies: '@vue/devtools-api': 6.6.1 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: true - /vue-types@3.0.2(vue@3.4.38): + /vue-types@3.0.2(vue@3.5.10): resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==} engines: {node: '>=10.15.0'} peerDependencies: vue: latest dependencies: is-plain-object: 3.0.1 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false - /vue-virtual-scroller@2.0.0-beta.8(vue@3.4.38): + /vue-virtual-scroller@2.0.0-beta.8(vue@3.5.10): resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==} peerDependencies: vue: latest dependencies: mitt: 2.1.0 - vue: 3.4.38(typescript@5.4.5) - vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.38) - vue-resize: 2.0.0-alpha.1(vue@3.4.38) + vue: 3.5.10(typescript@5.4.5) + vue-observe-visibility: 2.0.0-alpha.1(vue@3.5.10) + vue-resize: 2.0.0-alpha.1(vue@3.5.10) dev: true - /vue3-calendar-heatmap@2.0.5(tippy.js@6.3.7)(vue@3.4.38): + /vue3-calendar-heatmap@2.0.5(tippy.js@6.3.7)(vue@3.5.10): resolution: {integrity: sha512-qvveNQlTS5Aw7AvRLs0zOyu3uP5iGJlXJAnkrkG2ElDdyQ8H1TJhQ8rL702CROjAg16ezIveUY10nCO7lqZ25w==} engines: {node: '>=16'} peerDependencies: @@ -28221,7 +29222,7 @@ packages: vue: latest dependencies: tippy.js: 6.3.7 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /vue3-contextmenu@0.2.12: @@ -28229,7 +29230,7 @@ packages: dependencies: core-js: 3.32.1 mitt: 2.1.0 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) transitivePeerDependencies: - typescript dev: false @@ -28250,38 +29251,38 @@ packages: mitt: 3.0.1 dev: false - /vue3-text-clamp@0.1.2(resize-detector@0.3.0)(vue@3.4.38): + /vue3-text-clamp@0.1.2(resize-detector@0.3.0)(vue@3.5.10): resolution: {integrity: sha512-896tGhkwaDObKL4gUv9KhR6GQQYzIzut77P2jmfUoTaJ5lJP6kLMfCUEKwGQWbDgXXkqDcoE/QV/UtP4Jn7r3Q==} peerDependencies: resize-detector: ^0.3.0 vue: latest dependencies: resize-detector: 0.3.0 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false - /vue@3.4.38(typescript@5.4.5): - resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==} + /vue@3.5.10(typescript@5.4.5): + resolution: {integrity: sha512-Vy2kmJwHPlouC/tSnIgXVg03SG+9wSqT1xu1Vehc+ChsXsRd7jLkKgMltVEFOzUdBr3uFwBCG+41LJtfAcBRng==} peerDependencies: typescript: latest peerDependenciesMeta: typescript: optional: true dependencies: - '@vue/compiler-dom': 3.4.38 - '@vue/compiler-sfc': 3.4.38 - '@vue/runtime-dom': 3.4.38 - '@vue/server-renderer': 3.4.38(vue@3.4.38) - '@vue/shared': 3.4.38 + '@vue/compiler-dom': 3.5.10 + '@vue/compiler-sfc': 3.5.10 + '@vue/runtime-dom': 3.5.10 + '@vue/server-renderer': 3.5.10(vue@3.5.10) + '@vue/shared': 3.5.10 typescript: 5.4.5 - /vuedraggable@4.1.0(vue@3.4.38): + /vuedraggable@4.1.0(vue@3.5.10): resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} peerDependencies: vue: latest dependencies: sortablejs: 1.14.0 - vue: 3.4.38(typescript@5.4.5) + vue: 3.5.10(typescript@5.4.5) dev: false /w3c-keyname@2.2.8: @@ -28409,6 +29410,12 @@ packages: /webpack-virtual-modules@0.6.1: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + /webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + requiresBuild: true + dev: false + optional: true + /webpack@5.90.1(webpack-cli@5.1.4): resolution: {integrity: sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==} engines: {node: '>=10.13.0'} @@ -29024,6 +30031,11 @@ packages: engines: {node: '>=10'} dev: true + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: false + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -29095,6 +30107,29 @@ packages: engines: {node: '>=12.20'} dev: true + /youtube-player@5.6.0: + resolution: {integrity: sha512-x95fBbxV7eZ1ZsFtMLMcSGX0Jb/GPPj69RsooyEDVa9bzvvNZ4d5VjnBVBYoY85008VefkLvtaV+b+l38R/LMQ==} + dependencies: + debug: 4.3.4(supports-color@5.5.0) + load-script: 1.0.0 + sister: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /youtube-vue3@0.1.15: + resolution: {integrity: sha512-UrD6ZjlXQrRyXhbp5EZxID+u+V2BgdiAfVH8eXfHwbdPZ1RUMvA+qbc2JdsBKBHnuXak+47YzaIUEwVurN3+aw==} + dependencies: + core-js: 3.32.1 + cpy-cli: 4.2.0 + shortid: 2.2.16 + vue: 3.5.10(typescript@5.4.5) + youtube-player: 5.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + /zeed-dom@0.10.11: resolution: {integrity: sha512-7ukbu6aQKx34OQ7PfUIxOuAhk2MvyZY/t4/IJsVzy76zuMzfhE74+Dbyp8SHiUJPTPkF0FflP1KVrGJ7gk9IHw==} engines: {node: '>=14.13.1'} @@ -29115,6 +30150,10 @@ packages: readable-stream: 4.4.2 dev: true + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false + '@cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz': resolution: {tarball: https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz} name: xlsx
Default popover content