diff --git a/controller/package.json b/controller/package.json index 37f355b..7d8b45b 100644 --- a/controller/package.json +++ b/controller/package.json @@ -10,7 +10,11 @@ "types": "dist/index.d.ts", "keywords": [], "author": "Open Summer of Code", - "contributors": ["BT-Creator", "Vicba", "Zelzahn"], + "contributors": [ + "BT-Creator", + "Vicba", + "Zelzahn" + ], "license": "ISC", "files": [ "/dist" @@ -21,6 +25,7 @@ "packageManager": "pnpm@9.5.0+sha512.140036830124618d624a2187b50d04289d5a087f326c9edfc0ccd733d76c4f52c3a313d4fc148794a2a9d81553016004e6742e8cf850670268a7387fc220c903", "dependencies": { "@inrupt/solid-client": "^2.0.1", - "@inrupt/solid-client-authn-browser": "^2.2.4" + "@inrupt/solid-client-authn-browser": "^2.2.4", + "@inrupt/vocab-common-rdf": "^1.0.5" } } diff --git a/controller/pnpm-lock.yaml b/controller/pnpm-lock.yaml index 3045fad..f674c7e 100644 --- a/controller/pnpm-lock.yaml +++ b/controller/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@inrupt/solid-client-authn-browser': specifier: ^2.2.4 version: 2.2.4 + '@inrupt/vocab-common-rdf': + specifier: ^1.0.5 + version: 1.0.5 packages: @@ -38,6 +41,9 @@ packages: resolution: {integrity: sha512-z6cHHwxYOgpF2Tpro5JZRRsQ95PNEjHW5sfG3HYzFApWrFfQNWtYcHWXazOZLgkbIGEFTw2wZ55oPrD0TIZMpQ==} engines: {node: ^18.0.0 || ^20.0.0} + '@inrupt/vocab-common-rdf@1.0.5': + resolution: {integrity: sha512-onrehQte8m0XW83WwM6T4o5WgmYGzdYUCef6FDjMKfQCF64FnARFNn5fYhKodimBaAOFKhuJ3vw1NBZV/EYqJw==} + '@rdfjs/data-model@1.3.4': resolution: {integrity: sha512-iKzNcKvJotgbFDdti7GTQDCYmL7GsGldkYStiP0K8EYtN7deJu5t7U11rKTz+nR7RtesUggT+lriZ7BakFv8QQ==} hasBin: true @@ -232,6 +238,8 @@ snapshots: transitivePeerDependencies: - encoding + '@inrupt/vocab-common-rdf@1.0.5': {} + '@rdfjs/data-model@1.3.4': dependencies: '@rdfjs/types': 1.1.0 diff --git a/controller/src/index.ts b/controller/src/index.ts index 2107abb..781825d 100644 --- a/controller/src/index.ts +++ b/controller/src/index.ts @@ -1,2 +1,21 @@ +import { FOAF } from "@inrupt/vocab-common-rdf"; + export * from "./pod"; export * from "./index-file"; + +export const Schema = { + name: FOAF.name, + mbox: FOAF.mbox, + description: "http://schema.org/description", + img: FOAF.img, + phone: FOAF.phone, + + text: "https://schema.org/text", + video: "https://schema.org/video", + image: "https://schema.org/image", + + additionalType: "https://schema.org/additionalType", + location: "https://schema.org/location", + provider: "https://schema.org/provider", + scheduledTime: "https://schema.org/scheduledTime", +}; diff --git a/controller/src/pod.ts b/controller/src/pod.ts index 28f0fca..99f1de2 100644 --- a/controller/src/pod.ts +++ b/controller/src/pod.ts @@ -4,13 +4,21 @@ import { getPropertyAll, getSolidDataset, getThingAll, + getThing, + getStringNoLocale, + getUrl, + getContainedResourceUrlAll, + getDatetime, + getStringWithLocale, } from "@inrupt/solid-client"; import { getAgentAccessAll, getPublicAccess, } from "@inrupt/solid-client/universal"; import { Session } from "@inrupt/solid-client-authn-browser"; -import { Permission, url } from "./types"; +// import { FOAF } from "@inrupt/vocab-common-rdf"; +import { Permission, url, Post, Appointment } from "./types"; +import { Schema } from "./index"; /** * List the pods that are from the currently authenticated user. @@ -108,3 +116,103 @@ function accessModesToPermissions( })) ); } + +/** + * @param session An active Solid client connection + * @param url URL to the user's pod + * @returns the information about the user + */ +export async function getProfileInfo( + session: Session, + url: url +): Promise<{ + name: string; + mbox: string; + description: string; + img: string; + phone: string; +}> { + const dataset = await getSolidDataset(`${url}/profile/card#me`, { + fetch: session.fetch, + }); + const profileThing = getThing(dataset, `${url}/profile/card#me`); + + if (!profileThing) { + throw new Error("Profile information not found"); + } + + const name = getStringNoLocale(profileThing, Schema.name) ?? ""; + const mbox = getUrl(profileThing, Schema.mbox) ?? ""; + const description = + getStringWithLocale(profileThing, Schema.description, "en-us") ?? ""; + const img = getUrl(profileThing, Schema.img) ?? ""; + const phone = getUrl(profileThing, Schema.phone) ?? ""; + + return { name, mbox, description, img, phone }; +} + +/** + * @param session An active Solid client connection + * @param url URL to the user's pod + * @param mapFunction Function to map Thing to required type + * @returns The resources mapped to the required type + */ +async function fetchResources( + session: Session, + url: string, + mapFunction: (thing: any) => T +): Promise { + const dataset = await getSolidDataset(url, { fetch: session.fetch }); + const resources = getContainedResourceUrlAll(dataset); + + const result: T[] = []; + + await Promise.all( + resources.map(async (resource) => { + const resourceDataset = await getSolidDataset(resource, { + fetch: session.fetch, + }); + const things = getThingAll(resourceDataset); + result.push(...things.map(mapFunction)); + }) + ); + + return result; +} + +/** + * @param session An active Solid client connection + * @param url URL to the user's pod + * @returns Get the user's posts + */ +export async function getPosts(session: Session, url: string): Promise { + const mapPost = (thing: any): Post => ({ + text: getStringNoLocale(thing, Schema.text) || "", + video: getUrl(thing, Schema.video) || "", + image: getUrl(thing, Schema.image) || "", + }); + return fetchResources(session, `${url}/profile/posts/`, mapPost); +} + +/** + * @param session An active Solid client connection + * @param url URL to the user's pod + * @returns Get the user's appointments + */ +export async function getAppointments( + session: Session, + url: string +): Promise { + const mapAppointment = (thing: any): Appointment => { + const scheduledTime = getDatetime(thing, Schema.scheduledTime); + return { + type: getStringNoLocale(thing, Schema.additionalType) || "", + location: getStringNoLocale(thing, Schema.location) || "", + provider: getStringNoLocale(thing, Schema.provider) || "", + date: scheduledTime ? new Date(scheduledTime).toLocaleDateString() : "", + time: scheduledTime ? new Date(scheduledTime).toLocaleTimeString() : "", + }; + }; + + return fetchResources(session, `${url}/appointments/`, mapAppointment); +} diff --git a/controller/src/types.ts b/controller/src/types.ts index 6d1d018..7e053e4 100644 --- a/controller/src/types.ts +++ b/controller/src/types.ts @@ -38,3 +38,17 @@ export enum Type { } export type url = string; + +export interface Post { + text: string; + video?: string; + image?: string; +} + +export interface Appointment { + type?: string; + location?: string; + provider?: string; + date?: string; + time?: string; +} diff --git a/loama/pnpm-lock.yaml b/loama/pnpm-lock.yaml index 011b902..1691105 100644 --- a/loama/pnpm-lock.yaml +++ b/loama/pnpm-lock.yaml @@ -13,38 +13,38 @@ importers: version: 2.2.4 '@phosphor-icons/vue': specifier: ^2.2.1 - version: 2.2.1(vue@3.4.31(typescript@5.4.5)) + version: 2.2.1(vue@3.4.29) loama-controller: specifier: link:../controller version: link:../controller vite-svg-loader: specifier: ^5.1.0 - version: 5.1.0(vue@3.4.31(typescript@5.4.5)) + version: 5.1.0(vue@3.4.29) vue: specifier: ^3.4.29 - version: 3.4.31(typescript@5.4.5) + version: 3.4.29(typescript@5.4.2) vue-router: specifier: ^4.3.3 - version: 4.4.0(vue@3.4.31(typescript@5.4.5)) + version: 4.3.3(vue@3.4.29) devDependencies: '@rushstack/eslint-patch': specifier: ^1.8.0 - version: 1.10.3 + version: 1.8.0 '@tsconfig/node20': specifier: ^20.1.4 version: 20.1.4 '@types/node': specifier: ^20.14.5 - version: 20.14.10 + version: 20.14.5 '@vitejs/plugin-vue': specifier: ^5.0.5 - version: 5.0.5(vite@5.3.3(@types/node@20.14.10))(vue@3.4.31(typescript@5.4.5)) + version: 5.0.5(vite@5.3.1)(vue@3.4.29) '@vue/eslint-config-prettier': specifier: ^9.0.0 - version: 9.0.0(eslint@8.57.0)(prettier@3.3.2) + version: 9.0.0(eslint@8.57.0)(prettier@3.2.5) '@vue/eslint-config-typescript': specifier: ^13.0.0 - version: 13.0.0(eslint-plugin-vue@9.27.0(eslint@8.57.0))(eslint@8.57.0)(typescript@5.4.5) + version: 13.0.0(eslint-plugin-vue@9.23.0)(eslint@8.57.0)(typescript@5.4.2) '@vue/tsconfig': specifier: ^0.5.1 version: 0.5.1 @@ -56,25 +56,25 @@ importers: version: 1.0.4 eslint-plugin-vue: specifier: ^9.23.0 - version: 9.27.0(eslint@8.57.0) + version: 9.23.0(eslint@8.57.0) npm-run-all2: specifier: ^6.2.0 - version: 6.2.2 + version: 6.2.0 prettier: specifier: ^3.2.5 - version: 3.3.2 + version: 3.2.5 typescript: specifier: ~5.4.0 - version: 5.4.5 + version: 5.4.2 vite: specifier: ^5.3.1 - version: 5.3.3(@types/node@20.14.10) + version: 5.3.1(@types/node@20.14.5) vite-plugin-vue-devtools: specifier: ^7.3.1 - version: 7.3.5(rollup@4.18.1)(vite@5.3.3(@types/node@20.14.10))(vue@3.4.31(typescript@5.4.5)) + version: 7.3.1(vite@5.3.1)(vue@3.4.29) vue-tsc: specifier: ^2.0.21 - version: 2.0.26(typescript@5.4.5) + version: 2.0.21(typescript@5.4.2) packages: @@ -443,8 +443,8 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@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==} @@ -563,8 +563,8 @@ packages: cpu: [x64] os: [win32] - '@rushstack/eslint-patch@1.10.3': - resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} + '@rushstack/eslint-patch@1.8.0': + resolution: {integrity: sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==} '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} @@ -576,8 +576,8 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/node@20.14.10': - resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} + '@types/node@20.14.5': + resolution: {integrity: sha512-aoRR+fJkZT2l0aGOJhuA8frnCSoNX6W7U2mpNq63+BxBIj5BQFt8rHy627kijCmm63ijdSdwvGgpUsU6MBsZZA==} '@typescript-eslint/eslint-plugin@7.16.0': resolution: {integrity: sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==} @@ -647,14 +647,14 @@ packages: vite: ^5.0.0 vue: ^3.2.25 - '@volar/language-core@2.4.0-alpha.15': - resolution: {integrity: sha512-mt8z4Fm2WxfQYoQHPcKVjLQV6PgPqyKLbkCVY2cr5RSaamqCHjhKEpsFX66aL4D/7oYguuaUw9Bx03Vt0TpIIA==} + '@volar/language-core@2.3.4': + resolution: {integrity: sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==} - '@volar/source-map@2.4.0-alpha.15': - resolution: {integrity: sha512-8Htngw5TmBY4L3ClDqBGyfLhsB8EmoEXUH1xydyEtEoK0O6NX5ur4Jw8jgvscTlwzizyl/wsN1vn0cQXVbbXYg==} + '@volar/source-map@2.3.4': + resolution: {integrity: sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==} - '@volar/typescript@2.4.0-alpha.15': - resolution: {integrity: sha512-U3StRBbDuxV6Woa4hvGS4kz3XcOzrWUKgFdEFN+ba1x3eaYg7+ytau8ul05xgA+UNGLXXsKur7fTUhDFyISk0w==} + '@volar/typescript@2.3.4': + resolution: {integrity: sha512-acCvt7dZECyKcvO5geNybmrqOsu9u8n5XP1rfiYsOLYGPxvHRav9BVmEdRyZ3vvY6mNyQ1wLL5Hday4IShe17w==} '@vue/babel-helper-vue-transform-on@1.2.2': resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} @@ -672,15 +672,27 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@vue/compiler-core@3.4.29': + resolution: {integrity: sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==} + '@vue/compiler-core@3.4.31': resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} + '@vue/compiler-dom@3.4.29': + resolution: {integrity: sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==} + '@vue/compiler-dom@3.4.31': resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==} + '@vue/compiler-sfc@3.4.29': + resolution: {integrity: sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==} + '@vue/compiler-sfc@3.4.31': resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==} + '@vue/compiler-ssr@3.4.29': + resolution: {integrity: sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==} + '@vue/compiler-ssr@3.4.31': resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==} @@ -715,27 +727,30 @@ packages: typescript: optional: true - '@vue/language-core@2.0.26': - resolution: {integrity: sha512-/lt6SfQ3O1yDAhPsnLv9iSUgXd1dMHqUm/t3RctfqjuwQf1LnftZ414X3UBn6aXT4MiwXWtbNJ4Z0NZWwDWgJQ==} + '@vue/language-core@2.0.21': + resolution: {integrity: sha512-vjs6KwnCK++kIXT+eI63BGpJHfHNVJcUCr3RnvJsccT3vbJnZV5IhHR2puEkoOkIbDdp0Gqi1wEnv3hEd3WsxQ==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@vue/reactivity@3.4.31': - resolution: {integrity: sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==} + '@vue/reactivity@3.4.29': + resolution: {integrity: sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==} - '@vue/runtime-core@3.4.31': - resolution: {integrity: sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==} + '@vue/runtime-core@3.4.29': + resolution: {integrity: sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==} - '@vue/runtime-dom@3.4.31': - resolution: {integrity: sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==} + '@vue/runtime-dom@3.4.29': + resolution: {integrity: sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==} - '@vue/server-renderer@3.4.31': - resolution: {integrity: sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==} + '@vue/server-renderer@3.4.29': + resolution: {integrity: sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==} peerDependencies: - vue: 3.4.31 + vue: 3.4.29 + + '@vue/shared@3.4.29': + resolution: {integrity: sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==} '@vue/shared@3.4.31': resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==} @@ -806,8 +821,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + browserslist@4.23.2: + resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -823,8 +838,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001640: - resolution: {integrity: sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==} + caniuse-lite@1.0.30001641: + resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -949,8 +964,8 @@ packages: domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - electron-to-chromium@1.4.820: - resolution: {integrity: sha512-kK/4O/YunacfboFEk/BDf7VO1HoPmDudLTJAU9NmXIOSjsV7qVIX3OrI4REZo0VmdqhcpUcncQc6N8Q3aEXlHg==} + electron-to-chromium@1.4.823: + resolution: {integrity: sha512-4h+oPeAiGQOHFyUJOqpoEcPj/xxlicxBzOErVeYVMMmAiXUXsGpsFd0QXBMaUUbnD8hhSfLf9uw+MlsoIA7j5w==} entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} @@ -1000,11 +1015,11 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-vue@9.27.0: - resolution: {integrity: sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==} + eslint-plugin-vue@9.23.0: + resolution: {integrity: sha512-Bqd/b7hGYGrlV+wP/g77tjyFmp81lh5TMw0be9093X02SyelxRRfCI6/IsGq/J7Um0YwB9s0Ry0wlFyjPdmtUw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} @@ -1325,9 +1340,6 @@ packages: ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -1343,9 +1355,9 @@ packages: resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - npm-run-all2@6.2.2: - resolution: {integrity: sha512-Q+alQAGIW7ZhKcxLt8GcSi3h3ryheD6xnmXahkMRVM5LYmajcUrSITm8h+OPC9RYWMV2GR0Q1ntTUCfxaNoOJw==} - engines: {node: ^14.18.0 || ^16.13.0 || >=18.0.0, npm: '>= 8'} + npm-run-all2@6.2.0: + resolution: {integrity: sha512-wA7yVIkthe6qJBfiJ2g6aweaaRlw72itsFGF6HuwCHKwtwAx/4BY1vVpk6bw6lS8RLMsexoasOkd0aYOmsFG7Q==} + engines: {node: ^14.18.0 || >=16.0.0, npm: '>= 8'} hasBin: true npm-run-path@5.3.0: @@ -1439,8 +1451,8 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true @@ -1600,8 +1612,8 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} hasBin: true @@ -1643,8 +1655,8 @@ packages: '@nuxt/kit': optional: true - vite-plugin-vue-devtools@7.3.5: - resolution: {integrity: sha512-6omLXTfYu0bmSmncPSbj4mdMPB3t5dAZkUyriJikahGEnvv5gynHlydDsJShHT6l/5dCkvmSesSji/2a6FfutQ==} + vite-plugin-vue-devtools@7.3.1: + resolution: {integrity: sha512-KuksceHlb5QZtb5gRB4wuRiquZRX74//i0X5jzvy5QzY11qwK44goyVrhPupZbsNfqwmZWNi3CQAe0RhLBUylg==} engines: {node: '>=v14.21.3'} peerDependencies: vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 @@ -1659,8 +1671,8 @@ packages: peerDependencies: vue: '>=3.2.13' - vite@5.3.3: - resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==} + vite@5.3.1: + resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -1696,22 +1708,22 @@ packages: peerDependencies: eslint: '>=6.0.0' - vue-router@4.4.0: - resolution: {integrity: sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==} + vue-router@4.3.3: + resolution: {integrity: sha512-8Q+u+WP4N2SXY38FDcF2H1dUEbYVHVPtPCPZj/GTZx8RCbiB8AtJP9+YIxn4Vs0svMTNQcLIzka4GH7Utkx9xQ==} peerDependencies: vue: ^3.2.0 vue-template-compiler@2.7.16: resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} - vue-tsc@2.0.26: - resolution: {integrity: sha512-tOhuwy2bIXbMhz82ef37qeiaQHMXKQkD6mOF6CCPl3/uYtST3l6fdNyfMxipudrQTxTfXVPlgJdMENBFfC1CfQ==} + vue-tsc@2.0.21: + resolution: {integrity: sha512-E6x1p1HaHES6Doy8pqtm7kQern79zRtIewkf9fiv7Y43Zo4AFDS5hKi+iHi2RwEhqRmuiwliB1LCEFEGwvxQnw==} hasBin: true peerDependencies: - typescript: '>=5.0.0' + typescript: '*' - vue@3.4.31: - resolution: {integrity: sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==} + vue@3.4.29: + resolution: {integrity: sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -1792,7 +1804,7 @@ snapshots: dependencies: '@babel/compat-data': 7.24.7 '@babel/helper-validator-option': 7.24.7 - browserslist: 4.23.1 + browserslist: 4.23.2 lru-cache: 5.1.1 semver: 6.3.1 @@ -2115,19 +2127,19 @@ snapshots: '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -2141,21 +2153,19 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@phosphor-icons/vue@2.2.1(vue@3.4.31(typescript@5.4.5))': + '@phosphor-icons/vue@2.2.1(vue@3.4.29)': dependencies: - vue: 3.4.31(typescript@5.4.5) + vue: 3.4.29(typescript@5.4.2) '@pkgr/core@0.1.1': {} '@polka/url@1.0.0-next.25': {} - '@rollup/pluginutils@5.1.0(rollup@4.18.1)': + '@rollup/pluginutils@5.1.0': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - optionalDependencies: - rollup: 4.18.1 '@rollup/rollup-android-arm-eabi@4.18.1': optional: true @@ -2205,7 +2215,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.18.1': optional: true - '@rushstack/eslint-patch@1.10.3': {} + '@rushstack/eslint-patch@1.8.0': {} '@trysound/sax@0.2.0': {} @@ -2213,38 +2223,36 @@ snapshots: '@types/estree@1.0.5': {} - '@types/node@20.14.10': + '@types/node@20.14.5': dependencies: undici-types: 5.26.5 - '@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0)(eslint@8.57.0)(typescript@5.4.2)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/type-utils': 7.16.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.16.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/type-utils': 7.16.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/utils': 7.16.0(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/visitor-keys': 7.16.0 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 + ts-api-utils: 1.3.0(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.4.2)': dependencies: '@typescript-eslint/scope-manager': 7.16.0 '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.2) '@typescript-eslint/visitor-keys': 7.16.0 debug: 4.3.5 eslint: 8.57.0 - optionalDependencies: - typescript: 5.4.5 + typescript: 5.4.2 transitivePeerDependencies: - supports-color @@ -2253,21 +2261,20 @@ snapshots: '@typescript-eslint/types': 7.16.0 '@typescript-eslint/visitor-keys': 7.16.0 - '@typescript-eslint/type-utils@7.16.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@7.16.0(eslint@8.57.0)(typescript@5.4.2)': dependencies: - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.16.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.2) + '@typescript-eslint/utils': 7.16.0(eslint@8.57.0)(typescript@5.4.2) debug: 4.3.5 eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 + ts-api-utils: 1.3.0(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color '@typescript-eslint/types@7.16.0': {} - '@typescript-eslint/typescript-estree@7.16.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@7.16.0(typescript@5.4.2)': dependencies: '@typescript-eslint/types': 7.16.0 '@typescript-eslint/visitor-keys': 7.16.0 @@ -2276,18 +2283,17 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 + ts-api-utils: 1.3.0(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.16.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/utils@7.16.0(eslint@8.57.0)(typescript@5.4.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@typescript-eslint/scope-manager': 7.16.0 '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.2) eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -2300,20 +2306,20 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.0.5(vite@5.3.3(@types/node@20.14.10))(vue@3.4.31(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.5(vite@5.3.1)(vue@3.4.29)': dependencies: - vite: 5.3.3(@types/node@20.14.10) - vue: 3.4.31(typescript@5.4.5) + vite: 5.3.1(@types/node@20.14.5) + vue: 3.4.29(typescript@5.4.2) - '@volar/language-core@2.4.0-alpha.15': + '@volar/language-core@2.3.4': dependencies: - '@volar/source-map': 2.4.0-alpha.15 + '@volar/source-map': 2.3.4 - '@volar/source-map@2.4.0-alpha.15': {} + '@volar/source-map@2.3.4': {} - '@volar/typescript@2.4.0-alpha.15': + '@volar/typescript@2.3.4': dependencies: - '@volar/language-core': 2.4.0-alpha.15 + '@volar/language-core': 2.3.4 path-browserify: 1.0.1 vscode-uri: 3.0.8 @@ -2321,6 +2327,7 @@ snapshots: '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.7)': dependencies: + '@babel/core': 7.24.7 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) @@ -2332,8 +2339,6 @@ snapshots: camelcase: 6.3.0 html-tags: 3.3.1 svg-tags: 1.0.0 - optionalDependencies: - '@babel/core': 7.24.7 transitivePeerDependencies: - supports-color @@ -2346,6 +2351,14 @@ snapshots: '@babel/parser': 7.24.7 '@vue/compiler-sfc': 3.4.31 + '@vue/compiler-core@3.4.29': + dependencies: + '@babel/parser': 7.24.7 + '@vue/shared': 3.4.29 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + '@vue/compiler-core@3.4.31': dependencies: '@babel/parser': 7.24.7 @@ -2354,11 +2367,28 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.0 + '@vue/compiler-dom@3.4.29': + dependencies: + '@vue/compiler-core': 3.4.29 + '@vue/shared': 3.4.29 + '@vue/compiler-dom@3.4.31': dependencies: '@vue/compiler-core': 3.4.31 '@vue/shared': 3.4.31 + '@vue/compiler-sfc@3.4.29': + dependencies: + '@babel/parser': 7.24.7 + '@vue/compiler-core': 3.4.29 + '@vue/compiler-dom': 3.4.29 + '@vue/compiler-ssr': 3.4.29 + '@vue/shared': 3.4.29 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.39 + source-map-js: 1.2.0 + '@vue/compiler-sfc@3.4.31': dependencies: '@babel/parser': 7.24.7 @@ -2371,6 +2401,11 @@ snapshots: postcss: 8.4.39 source-map-js: 1.2.0 + '@vue/compiler-ssr@3.4.29': + dependencies: + '@vue/compiler-dom': 3.4.29 + '@vue/shared': 3.4.29 + '@vue/compiler-ssr@3.4.31': dependencies: '@vue/compiler-dom': 3.4.31 @@ -2378,15 +2413,15 @@ snapshots: '@vue/devtools-api@6.6.3': {} - '@vue/devtools-core@7.3.5(vite@5.3.3(@types/node@20.14.10))(vue@3.4.31(typescript@5.4.5))': + '@vue/devtools-core@7.3.5(vite@5.3.1)(vue@3.4.29)': dependencies: '@vue/devtools-kit': 7.3.5 '@vue/devtools-shared': 7.3.5 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 - vite-hot-client: 0.2.3(vite@5.3.3(@types/node@20.14.10)) - vue: 3.4.31(typescript@5.4.5) + vite-hot-client: 0.2.3(vite@5.3.1) + vue: 3.4.29(typescript@5.4.2) transitivePeerDependencies: - vite @@ -2404,61 +2439,60 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/eslint-config-prettier@9.0.0(eslint@8.57.0)(prettier@3.3.2)': + '@vue/eslint-config-prettier@9.0.0(eslint@8.57.0)(prettier@3.2.5)': dependencies: eslint: 8.57.0 eslint-config-prettier: 9.1.0(eslint@8.57.0) - eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.2) - prettier: 3.3.2 + eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) + prettier: 3.2.5 transitivePeerDependencies: - '@types/eslint' - '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.27.0(eslint@8.57.0))(eslint@8.57.0)(typescript@5.4.5)': + '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.23.0)(eslint@8.57.0)(typescript@5.4.2)': dependencies: - '@typescript-eslint/eslint-plugin': 7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 7.16.0(@typescript-eslint/parser@7.16.0)(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.4.2) eslint: 8.57.0 - eslint-plugin-vue: 9.27.0(eslint@8.57.0) + eslint-plugin-vue: 9.23.0(eslint@8.57.0) + typescript: 5.4.2 vue-eslint-parser: 9.4.3(eslint@8.57.0) - optionalDependencies: - typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@vue/language-core@2.0.26(typescript@5.4.5)': + '@vue/language-core@2.0.21(typescript@5.4.2)': dependencies: - '@volar/language-core': 2.4.0-alpha.15 + '@volar/language-core': 2.3.4 '@vue/compiler-dom': 3.4.31 '@vue/shared': 3.4.31 computeds: 0.0.1 minimatch: 9.0.5 - muggle-string: 0.4.1 path-browserify: 1.0.1 + typescript: 5.4.2 vue-template-compiler: 2.7.16 - optionalDependencies: - typescript: 5.4.5 - '@vue/reactivity@3.4.31': + '@vue/reactivity@3.4.29': dependencies: - '@vue/shared': 3.4.31 + '@vue/shared': 3.4.29 - '@vue/runtime-core@3.4.31': + '@vue/runtime-core@3.4.29': dependencies: - '@vue/reactivity': 3.4.31 - '@vue/shared': 3.4.31 + '@vue/reactivity': 3.4.29 + '@vue/shared': 3.4.29 - '@vue/runtime-dom@3.4.31': + '@vue/runtime-dom@3.4.29': dependencies: - '@vue/reactivity': 3.4.31 - '@vue/runtime-core': 3.4.31 - '@vue/shared': 3.4.31 + '@vue/reactivity': 3.4.29 + '@vue/runtime-core': 3.4.29 + '@vue/shared': 3.4.29 csstype: 3.1.3 - '@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.4.5))': + '@vue/server-renderer@3.4.29(vue@3.4.29)': dependencies: - '@vue/compiler-ssr': 3.4.31 - '@vue/shared': 3.4.31 - vue: 3.4.31(typescript@5.4.5) + '@vue/compiler-ssr': 3.4.29 + '@vue/shared': 3.4.29 + vue: 3.4.29(typescript@5.4.2) + + '@vue/shared@3.4.29': {} '@vue/shared@3.4.31': {} @@ -2516,12 +2550,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.1: + browserslist@4.23.2: dependencies: - caniuse-lite: 1.0.30001640 - electron-to-chromium: 1.4.820 + caniuse-lite: 1.0.30001641 + electron-to-chromium: 1.4.823 node-releases: 2.0.14 - update-browserslist-db: 1.1.0(browserslist@4.23.1) + update-browserslist-db: 1.1.0(browserslist@4.23.2) bundle-name@4.1.0: dependencies: @@ -2531,7 +2565,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001640: {} + caniuse-lite@1.0.30001641: {} chalk@2.4.2: dependencies: @@ -2649,7 +2683,7 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 - electron-to-chromium@1.4.820: {} + electron-to-chromium@1.4.823: {} entities@4.5.0: {} @@ -2695,20 +2729,18 @@ snapshots: dependencies: lodash: 4.17.21 - eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.2): + eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): dependencies: eslint: 8.57.0 - prettier: 3.3.2 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 - optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@8.57.0) - eslint-plugin-vue@9.27.0(eslint@8.57.0): + eslint-plugin-vue@9.23.0(eslint@8.57.0): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) eslint: 8.57.0 - globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.0 @@ -2999,7 +3031,7 @@ snapshots: magic-string@0.30.10: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 mdn-data@2.0.28: {} @@ -3032,8 +3064,6 @@ snapshots: ms@2.1.2: {} - muggle-string@0.4.1: {} - nanoid@3.3.7: {} natural-compare@1.4.0: {} @@ -3042,7 +3072,7 @@ snapshots: npm-normalize-package-bin@3.0.1: {} - npm-run-all2@6.2.2: + npm-run-all2@6.2.0: dependencies: ansi-styles: 6.2.1 cross-spawn: 7.0.3 @@ -3135,7 +3165,7 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier@3.3.2: {} + prettier@3.2.5: {} punycode@2.3.1: {} @@ -3267,9 +3297,9 @@ snapshots: totalist@3.0.1: {} - ts-api-utils@1.3.0(typescript@5.4.5): + ts-api-utils@1.3.0(typescript@5.4.2): dependencies: - typescript: 5.4.5 + typescript: 5.4.2 tslib@2.6.3: {} @@ -3279,15 +3309,15 @@ snapshots: type-fest@0.20.2: {} - typescript@5.4.5: {} + typescript@5.4.2: {} undici-types@5.26.5: {} universalify@2.0.1: {} - update-browserslist-db@1.1.0(browserslist@4.23.1): + update-browserslist-db@1.1.0(browserslist@4.23.2): dependencies: - browserslist: 4.23.1 + browserslist: 4.23.2 escalade: 3.1.2 picocolors: 1.0.1 @@ -3299,14 +3329,14 @@ snapshots: uuid@10.0.0: {} - vite-hot-client@0.2.3(vite@5.3.3(@types/node@20.14.10)): + vite-hot-client@0.2.3(vite@5.3.1): dependencies: - vite: 5.3.3(@types/node@20.14.10) + vite: 5.3.1(@types/node@20.14.5) - vite-plugin-inspect@0.8.4(rollup@4.18.1)(vite@5.3.3(@types/node@20.14.10)): + vite-plugin-inspect@0.8.4(vite@5.3.1): dependencies: '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.0(rollup@4.18.1) + '@rollup/pluginutils': 5.1.0 debug: 4.3.5 error-stack-parser-es: 0.1.4 fs-extra: 11.2.0 @@ -3314,28 +3344,28 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.0.1 sirv: 2.0.4 - vite: 5.3.3(@types/node@20.14.10) + vite: 5.3.1(@types/node@20.14.5) transitivePeerDependencies: - rollup - supports-color - vite-plugin-vue-devtools@7.3.5(rollup@4.18.1)(vite@5.3.3(@types/node@20.14.10))(vue@3.4.31(typescript@5.4.5)): + vite-plugin-vue-devtools@7.3.1(vite@5.3.1)(vue@3.4.29): dependencies: - '@vue/devtools-core': 7.3.5(vite@5.3.3(@types/node@20.14.10))(vue@3.4.31(typescript@5.4.5)) + '@vue/devtools-core': 7.3.5(vite@5.3.1)(vue@3.4.29) '@vue/devtools-kit': 7.3.5 '@vue/devtools-shared': 7.3.5 execa: 8.0.1 sirv: 2.0.4 - vite: 5.3.3(@types/node@20.14.10) - vite-plugin-inspect: 0.8.4(rollup@4.18.1)(vite@5.3.3(@types/node@20.14.10)) - vite-plugin-vue-inspector: 5.1.2(vite@5.3.3(@types/node@20.14.10)) + vite: 5.3.1(@types/node@20.14.5) + vite-plugin-inspect: 0.8.4(vite@5.3.1) + vite-plugin-vue-inspector: 5.1.2(vite@5.3.1) transitivePeerDependencies: - '@nuxt/kit' - rollup - supports-color - vue - vite-plugin-vue-inspector@5.1.2(vite@5.3.3(@types/node@20.14.10)): + vite-plugin-vue-inspector@5.1.2(vite@5.3.1): dependencies: '@babel/core': 7.24.7 '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.24.7) @@ -3346,22 +3376,22 @@ snapshots: '@vue/compiler-dom': 3.4.31 kolorist: 1.8.0 magic-string: 0.30.10 - vite: 5.3.3(@types/node@20.14.10) + vite: 5.3.1(@types/node@20.14.5) transitivePeerDependencies: - supports-color - vite-svg-loader@5.1.0(vue@3.4.31(typescript@5.4.5)): + vite-svg-loader@5.1.0(vue@3.4.29): dependencies: svgo: 3.3.2 - vue: 3.4.31(typescript@5.4.5) + vue: 3.4.29(typescript@5.4.2) - vite@5.3.3(@types/node@20.14.10): + vite@5.3.1(@types/node@20.14.5): dependencies: + '@types/node': 20.14.5 esbuild: 0.21.5 postcss: 8.4.39 rollup: 4.18.1 optionalDependencies: - '@types/node': 20.14.10 fsevents: 2.3.3 vscode-uri@3.0.8: {} @@ -3379,32 +3409,31 @@ snapshots: transitivePeerDependencies: - supports-color - vue-router@4.4.0(vue@3.4.31(typescript@5.4.5)): + vue-router@4.3.3(vue@3.4.29): dependencies: '@vue/devtools-api': 6.6.3 - vue: 3.4.31(typescript@5.4.5) + vue: 3.4.29(typescript@5.4.2) vue-template-compiler@2.7.16: dependencies: de-indent: 1.0.2 he: 1.2.0 - vue-tsc@2.0.26(typescript@5.4.5): + vue-tsc@2.0.21(typescript@5.4.2): dependencies: - '@volar/typescript': 2.4.0-alpha.15 - '@vue/language-core': 2.0.26(typescript@5.4.5) + '@volar/typescript': 2.3.4 + '@vue/language-core': 2.0.21(typescript@5.4.2) semver: 7.6.2 - typescript: 5.4.5 + typescript: 5.4.2 - vue@3.4.31(typescript@5.4.5): + vue@3.4.29(typescript@5.4.2): dependencies: - '@vue/compiler-dom': 3.4.31 - '@vue/compiler-sfc': 3.4.31 - '@vue/runtime-dom': 3.4.31 - '@vue/server-renderer': 3.4.31(vue@3.4.31(typescript@5.4.5)) - '@vue/shared': 3.4.31 - optionalDependencies: - typescript: 5.4.5 + '@vue/compiler-dom': 3.4.29 + '@vue/compiler-sfc': 3.4.29 + '@vue/runtime-dom': 3.4.29 + '@vue/server-renderer': 3.4.29(vue@3.4.29) + '@vue/shared': 3.4.29 + typescript: 5.4.2 which@2.0.2: dependencies: diff --git a/loama/src/views/LandingView.vue b/loama/src/views/LandingView.vue index 2272279..d68f10c 100644 --- a/loama/src/views/LandingView.vue +++ b/loama/src/views/LandingView.vue @@ -8,7 +8,7 @@