set add QR code page
Deploy app frontend / app frontend (push) Failing after 52s
Deploy service couchdb / service couchdb (push) Successful in 28s
Deploy db-migrations / db-migrations (push) Successful in 57s
Deploy service message-delivery-method-web-push / service message-delivery-method-web-push (push) Successful in 1m3s
Deploy app frontend / app frontend (push) Failing after 52s
Deploy service couchdb / service couchdb (push) Successful in 28s
Deploy db-migrations / db-migrations (push) Successful in 57s
Deploy service message-delivery-method-web-push / service message-delivery-method-web-push (push) Successful in 1m3s
This commit is contained in:
@@ -8,8 +8,6 @@ on:
|
||||
- 'services/couchdb/**'
|
||||
- '.gitea/workflows/deploy-service-couchdb.yaml'
|
||||
- 'docker-compose.yml'
|
||||
- 'package.json'
|
||||
- 'pnpm-lock.yaml'
|
||||
|
||||
jobs:
|
||||
service couchdb:
|
||||
|
||||
Vendored
+2
@@ -62,6 +62,8 @@ declare global {
|
||||
const useId: typeof import('vue')['useId']
|
||||
const useLink: typeof import('vue-router')['useLink']
|
||||
const useModel: typeof import('vue')['useModel']
|
||||
const useMutation: typeof import('@tanstack/vue-query')['useMutation']
|
||||
const useQuery: typeof import('@tanstack/vue-query')['useQuery']
|
||||
const useRoute: typeof import('vue-router')['useRoute']
|
||||
const useRouter: typeof import('vue-router')['useRouter']
|
||||
const useSeoMeta: typeof import('unhead')['useSeoMeta']
|
||||
|
||||
Vendored
+4
@@ -12,6 +12,7 @@ declare module 'vue' {
|
||||
ChatComponent: typeof import('./src/components/ChatComponent.vue')['default']
|
||||
ChatSubscribeWebPush: typeof import('./src/components/ChatSubscribeWebPush.vue')['default']
|
||||
Checkbox: typeof import('primevue/checkbox')['default']
|
||||
CopyLinkButton: typeof import('@/components/link/LinkCopyButton.vue')['default']
|
||||
CreateActionsSection: typeof import('./src/components/create/CreateActionsSection.vue')['default']
|
||||
CreateMessageDeliveryMethodSection: typeof import('./src/components/create/CreateMessageDeliveryMethodSection.vue')['default']
|
||||
CreateMessageDeliveryOption: typeof import('./src/components/create/CreateMessageDeliveryOption.vue')['default']
|
||||
@@ -26,6 +27,9 @@ declare module 'vue' {
|
||||
DownloadImageButton: typeof import('./src/components/manage/DownloadImageButton.vue')['default']
|
||||
ExamplesSection: typeof import('./src/components/TheWelcome/ExamplesSection.vue')['default']
|
||||
InputText: typeof import('primevue/inputtext')['default']
|
||||
LinkCopyButton: typeof import('./src/components/link/LinkCopyButton.vue')['default']
|
||||
LinkShareButton: typeof import('./src/components/link/LinkShareButton.vue')['default']
|
||||
LinkShareTelegramButton: typeof import('./src/components/link/LinkShareTelegramButton.vue')['default']
|
||||
ManagePlacementInstructions: typeof import('./src/components/manage/ManagePlacementInstructions.vue')['default']
|
||||
ProgressSpinner: typeof import('primevue/progressspinner')['default']
|
||||
QRCodeCard: typeof import('./src/components/manage/QRCodeCard.vue')['default']
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
"tailwindcss-primeui": "^0.3.4",
|
||||
"unhead": "^1.11.13",
|
||||
"vue": "^3.5.12",
|
||||
"vue-query": "^1.26.0",
|
||||
"vue-router": "^4.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -52,7 +52,7 @@ export const createQrCodeDocument = async (
|
||||
return qrCodeDoc
|
||||
}
|
||||
|
||||
export const getQrCodeDocument = async (uri: string) => {
|
||||
export const getQrCodeDocument = async (uri: string): Promise<QRCodeDocument> => {
|
||||
try {
|
||||
return await qrCodeDbLocal.get<QRCodeDocument>(`qr_code:${uri}`)
|
||||
} catch (error) {
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
<template>
|
||||
<Button
|
||||
:icon="isCopied ? 'pi pi-check' : 'pi pi-copy'"
|
||||
:label="isCopied ? 'Ссылка скопирована!' : 'Копировать ссылку'"
|
||||
class="text-nowrap"
|
||||
severity="secondary"
|
||||
size="small"
|
||||
@click="copyLink()"
|
||||
:outlined="!isCopied"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const props = defineProps<{ url: string }>()
|
||||
const {
|
||||
mutate: copyLink,
|
||||
isSuccess: isCopied,
|
||||
reset,
|
||||
} = useMutation({
|
||||
mutationFn: async () => {
|
||||
await navigator.clipboard.writeText(props.url)
|
||||
setTimeout(reset, 2500)
|
||||
},
|
||||
gcTime: 100,
|
||||
})
|
||||
</script>
|
||||
@@ -0,0 +1,26 @@
|
||||
<template>
|
||||
<Button
|
||||
:href="telegramShareUrl"
|
||||
target="_blank"
|
||||
size="small"
|
||||
severity="secondary"
|
||||
as="a"
|
||||
class="text-nowrap"
|
||||
outlined
|
||||
rel="noopener noreferrer"
|
||||
icon="pi pi-telegram"
|
||||
title="Поделиться ссылкой в Telegram"
|
||||
label="отправить ссылку в Telegram"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue'
|
||||
|
||||
const props = defineProps<{ shareUrl: string; shareText: string }>()
|
||||
|
||||
const telegramShareUrl = computed(
|
||||
() =>
|
||||
`https://t.me/share/url?url=${encodeURIComponent(props.shareUrl)}&text=${encodeURIComponent(props.shareText)}`, // &photo=${shareImage}`
|
||||
)
|
||||
</script>
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<RouterLink :to="`/manage/qr/${qrCode.uri}/ready`" class="p-4 rounded-lg bg-white shadow-md">
|
||||
<RouterLink :to="`/manage/qr/${qrCode.uri}`" class="p-4 rounded-lg bg-white shadow-md">
|
||||
<div class="flex items-center justify-between mb-2">
|
||||
<div class="flex items-center">
|
||||
<QRCodePlacementIcon :placement="qrCode.placement" />
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
export const ROUTE_NAMES = {
|
||||
HOME: 'home',
|
||||
CREATE: 'create',
|
||||
MANAGE_QR_CODE: 'manage-qr-code',
|
||||
MANAGE_QR_CODE_READY: 'manage-qr-code-ready',
|
||||
MANAGE_QR_CODE_CHAT: 'manage-qr-code-chat',
|
||||
MANAGE_DASHBOARD: 'manage-dashboard',
|
||||
|
||||
@@ -25,6 +25,12 @@ const routes = [
|
||||
component: () => import('@/views/ManageDashboardView.vue'),
|
||||
props: true,
|
||||
},
|
||||
{
|
||||
path: '/manage/qr/:qr_code_uri',
|
||||
name: ROUTE_NAMES.MANAGE_QR_CODE,
|
||||
component: () => import('@/views/ManageQRCodeView.vue'),
|
||||
props: true,
|
||||
},
|
||||
{
|
||||
path: '/manage/qr/:qr_code_uri/ready',
|
||||
name: ROUTE_NAMES.MANAGE_QR_CODE_READY,
|
||||
|
||||
@@ -73,19 +73,14 @@
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
<Button
|
||||
:href="telegramShareUrl"
|
||||
target="_blank"
|
||||
size="small"
|
||||
severity="secondary"
|
||||
as="a"
|
||||
class="p-button-outlined"
|
||||
rel="noopener noreferrer"
|
||||
title="Поделиться ссылкой в Telegram"
|
||||
icon="pi pi-telegram"
|
||||
label="отправить ссылку в Telegram"
|
||||
<div class="flex gap-2 justify-center mt-2">
|
||||
<LinkCopyButton :url="qrCodeDoc.url" />
|
||||
<LinkShareTelegramButton
|
||||
:shareUrl="qrCodeDoc.url"
|
||||
shareText="Используйте эту ссылку НаСвязи!"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Инструкции по размещению -->
|
||||
<ManagePlacementInstructions
|
||||
@@ -149,13 +144,6 @@ const sanitizedFileName = computed(() => {
|
||||
return sanitized ? `${sanitized} QR-Code - НаСвязи` : 'QR-Code - НаСвязи'
|
||||
})
|
||||
|
||||
const shareText = 'Используйте эту ссылку НаСвязи!'
|
||||
const telegramShareUrl = computed(
|
||||
() =>
|
||||
qrCodeDoc.value?.url &&
|
||||
`https://t.me/share/url?url=${encodeURIComponent(qrCodeDoc.value.url)}&text=${encodeURIComponent(shareText)}`, // &photo=${shareImage}`
|
||||
)
|
||||
|
||||
// Генерация URL для WhatsApp
|
||||
// const whatsappShareUrl = computed(
|
||||
// () => `https://api.whatsapp.com/send?text=${shareText}%0A${siteUrl}`,
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
<template>
|
||||
<div class="p-6">
|
||||
<h1 class="text-2xl font-bold mb-4 text-center lg:text-left">Управление QR-кодом</h1>
|
||||
<QueryRender :query="qrCodeQuery" #default="{ data: qrCodeDoc }">
|
||||
<div class="bg-white p-6 rounded-lg shadow-md mb-6">
|
||||
<div class="flex items-center justify-between mb-4">
|
||||
<div class="flex items-center">
|
||||
<QRCodePlacementIcon :placement="qrCodeDoc.placement" />
|
||||
<h2 class="text-xl font-semibold">{{ qrCodeDoc.name }}</h2>
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
<Button
|
||||
icon="pi pi-cog"
|
||||
label="Настроить"
|
||||
:to="`/manage/qr/${qrCodeDoc.uri}/settings`"
|
||||
as="router-link"
|
||||
severity="secondary"
|
||||
size="small"
|
||||
outlined
|
||||
/>
|
||||
<Button
|
||||
icon="pi pi-qrcode"
|
||||
label="QR-код и инструкции"
|
||||
:to="`/manage/qr/${qrCodeDoc.uri}/ready`"
|
||||
as="router-link"
|
||||
severity="secondary"
|
||||
size="small"
|
||||
outlined
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-4 flex gap-2 items-baseline">
|
||||
<strong>Ссылка: </strong>
|
||||
<a :href="qrCodeDoc.url" class="text-blue-500" target="_blank">{{ qrCodeDoc.url }}</a>
|
||||
<LinkCopyButton :url="qrCodeDoc.url" />
|
||||
<LinkShareTelegramButton
|
||||
:shareUrl="qrCodeDoc.url"
|
||||
shareText="Используйте эту ссылку НаСвязи!"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<p><strong>Создано:</strong> {{ formatDate(qrCodeDoc.created_at) }}</p>
|
||||
<!-- <p><strong>Количество сканирований:</strong> {{ qrCodeDoc.scanCount }}</p>-->
|
||||
<!-- <p><strong>Последнее сканирование:</strong> {{ formatDate(qrCodeDoc.lastScan) }}</p>-->
|
||||
</div>
|
||||
</div>
|
||||
</QueryRender>
|
||||
|
||||
<!-- <div class="bg-white p-6 rounded-lg shadow-md mb-6">-->
|
||||
<!-- <h2 class="text-xl font-bold mb-4">Чаты</h2>-->
|
||||
<!-- <div v-if="chats.length > 0" class="grid grid-cols-1 gap-4">-->
|
||||
<!-- <div v-for="chat in chats" :key="chat._id" class="p-4 rounded-lg bg-white shadow-md">-->
|
||||
<!-- <div class="flex items-center justify-between">-->
|
||||
<!-- <div>-->
|
||||
<!-- <p class="text-lg font-semibold">Чат #{{ chat._id }}</p>-->
|
||||
<!-- <p class="text-gray-500">-->
|
||||
<!-- Последнее сообщение: {{ formatDate(chat.lastMessageDate) }}-->
|
||||
<!-- </p>-->
|
||||
<!-- </div>-->
|
||||
<!-- <Button-->
|
||||
<!-- label="Открыть"-->
|
||||
<!-- :to="`/manage/qr/${qrCodeDoc.uri}/chat/${chat._id}`"-->
|
||||
<!-- as="router-link"-->
|
||||
<!-- class="p-button-outlined p-button-sm"-->
|
||||
<!-- />-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div v-else class="text-center text-gray-500">-->
|
||||
<!-- <p>Нет активных чатов для этого QR-кода.</p>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue'
|
||||
import type { QRCodeDocument } from '@hereconnect/types'
|
||||
import { getQrCodeDocument } from '@/api/qrCode'
|
||||
import CopyLinkButton from '@/components/CopyLinkButton.vue'
|
||||
|
||||
const props = defineProps<{ qr_code_uri: QRCodeDocument['uri'] }>()
|
||||
|
||||
const qrCodeUri = computed(() => props.qr_code_uri)
|
||||
|
||||
const qrCodeQuery = useQuery({
|
||||
queryKey: ['qrCode', qrCodeUri],
|
||||
queryFn: () => getQrCodeDocument(qrCodeUri.value),
|
||||
})
|
||||
|
||||
// const { data: chatsData } = useQuery({
|
||||
// queryKey: ['chats', qrCodeUri],
|
||||
// queryFn: () => messagesDbRemote.find({ selector: { qr_code_uri: qrCodeUri } }),
|
||||
// })
|
||||
|
||||
// const chats = computed(() => chatsData.value?.docs || [])
|
||||
|
||||
const formatDate = (date: string) => {
|
||||
if (!date) return '—'
|
||||
const options: Intl.DateTimeFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' }
|
||||
return new Date(date).toLocaleDateString(['ru-RU'], options)
|
||||
}
|
||||
</script>
|
||||
@@ -113,7 +113,19 @@ export default defineConfig(({ mode }) => {
|
||||
Info(),
|
||||
|
||||
AutoImport({
|
||||
imports: ['vue', 'vue-router', unheadComposablesImports[0]],
|
||||
imports: [
|
||||
'vue',
|
||||
'vue-router',
|
||||
unheadComposablesImports[0],
|
||||
{
|
||||
from: '@tanstack/vue-query',
|
||||
imports: ['useQuery', 'useMutation'],
|
||||
},
|
||||
// {
|
||||
// from: '@hereconnect/types',
|
||||
// type: true,
|
||||
// },
|
||||
],
|
||||
}),
|
||||
|
||||
Components({
|
||||
|
||||
Generated
+11
-137
@@ -70,9 +70,6 @@ importers:
|
||||
vue:
|
||||
specifier: ^3.5.12
|
||||
version: 3.5.13(typescript@5.6.3)
|
||||
vue-query:
|
||||
specifier: ^1.26.0
|
||||
version: 1.26.0(react@18.3.1)(vue@3.5.13)
|
||||
vue-router:
|
||||
specifier: ^4.4.5
|
||||
version: 4.5.0(vue@3.5.13)
|
||||
@@ -685,13 +682,6 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/runtime@7.26.0:
|
||||
resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
regenerator-runtime: 0.14.1
|
||||
dev: false
|
||||
|
||||
/@babel/template@7.25.9:
|
||||
resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -2637,11 +2627,6 @@ packages:
|
||||
/balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
|
||||
/big-integer@1.6.52:
|
||||
resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==}
|
||||
engines: {node: '>=0.6'}
|
||||
dev: false
|
||||
|
||||
/binary-extensions@2.3.0:
|
||||
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -2662,6 +2647,7 @@ packages:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: true
|
||||
|
||||
/brace-expansion@2.0.1:
|
||||
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
|
||||
@@ -2674,19 +2660,6 @@ packages:
|
||||
dependencies:
|
||||
fill-range: 7.1.1
|
||||
|
||||
/broadcast-channel@3.7.0:
|
||||
resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.0
|
||||
detect-node: 2.1.0
|
||||
js-sha3: 0.8.0
|
||||
microseconds: 0.2.0
|
||||
nano-time: 1.0.0
|
||||
oblivious-set: 1.0.0
|
||||
rimraf: 3.0.2
|
||||
unload: 2.2.0
|
||||
dev: false
|
||||
|
||||
/browserslist@4.24.2:
|
||||
resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==}
|
||||
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
||||
@@ -2887,6 +2860,7 @@ packages:
|
||||
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
||||
dev: true
|
||||
|
||||
/confbox@0.1.8:
|
||||
resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
|
||||
@@ -3087,10 +3061,6 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/detect-node@2.1.0:
|
||||
resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
|
||||
dev: false
|
||||
|
||||
/didyoumean@1.2.2:
|
||||
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
|
||||
|
||||
@@ -3769,6 +3739,7 @@ packages:
|
||||
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
|
||||
dev: true
|
||||
|
||||
/fsevents@2.3.2:
|
||||
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
|
||||
@@ -3866,6 +3837,7 @@ packages:
|
||||
minimatch: 3.1.2
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: true
|
||||
|
||||
/globals@11.12.0:
|
||||
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
|
||||
@@ -4015,6 +3987,7 @@ packages:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: true
|
||||
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
@@ -4643,12 +4616,9 @@ packages:
|
||||
engines: {node: '>=14'}
|
||||
dev: true
|
||||
|
||||
/js-sha3@0.8.0:
|
||||
resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==}
|
||||
dev: false
|
||||
|
||||
/js-tokens@4.0.0:
|
||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||
dev: true
|
||||
|
||||
/js-tokens@9.0.1:
|
||||
resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
|
||||
@@ -4851,13 +4821,6 @@ packages:
|
||||
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
|
||||
dev: true
|
||||
|
||||
/loose-envify@1.4.0:
|
||||
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
js-tokens: 4.0.0
|
||||
dev: false
|
||||
|
||||
/loupe@2.3.7:
|
||||
resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
|
||||
dependencies:
|
||||
@@ -4911,13 +4874,6 @@ packages:
|
||||
uc.micro: 2.1.0
|
||||
dev: false
|
||||
|
||||
/match-sorter@6.3.4:
|
||||
resolution: {integrity: sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.0
|
||||
remove-accents: 0.5.0
|
||||
dev: false
|
||||
|
||||
/md5@2.3.0:
|
||||
resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==}
|
||||
dependencies:
|
||||
@@ -4958,10 +4914,6 @@ packages:
|
||||
braces: 3.0.3
|
||||
picomatch: 2.3.1
|
||||
|
||||
/microseconds@0.2.0:
|
||||
resolution: {integrity: sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==}
|
||||
dev: false
|
||||
|
||||
/migrate@2.1.0:
|
||||
resolution: {integrity: sha512-xSwTScy7ozxQtzDtO/LpmZzWTmItXBC3k3wOQGf8TjHpudQUS/m7uyboBHHsv2nFmioyyC7gtbcI7IPj89aJLA==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
@@ -5002,6 +4954,7 @@ packages:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: true
|
||||
|
||||
/minimatch@5.1.6:
|
||||
resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
|
||||
@@ -5069,12 +5022,6 @@ packages:
|
||||
object-assign: 4.1.1
|
||||
thenify-all: 1.6.0
|
||||
|
||||
/nano-time@1.0.0:
|
||||
resolution: {integrity: sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==}
|
||||
dependencies:
|
||||
big-integer: 1.6.52
|
||||
dev: false
|
||||
|
||||
/nanoid@3.3.8:
|
||||
resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
|
||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||
@@ -5179,14 +5126,11 @@ packages:
|
||||
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
/oblivious-set@1.0.0:
|
||||
resolution: {integrity: sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==}
|
||||
dev: false
|
||||
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: true
|
||||
|
||||
/onetime@5.1.2:
|
||||
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
|
||||
@@ -5312,6 +5256,7 @@ packages:
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/path-key@3.1.1:
|
||||
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
|
||||
@@ -5734,31 +5679,6 @@ packages:
|
||||
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
|
||||
dev: true
|
||||
|
||||
/react-query@3.39.3(react@18.3.1):
|
||||
resolution: {integrity: sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==}
|
||||
peerDependencies:
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
react-dom: '*'
|
||||
react-native: '*'
|
||||
peerDependenciesMeta:
|
||||
react-dom:
|
||||
optional: true
|
||||
react-native:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.0
|
||||
broadcast-channel: 3.7.0
|
||||
match-sorter: 6.3.4
|
||||
react: 18.3.1
|
||||
dev: false
|
||||
|
||||
/react@18.3.1:
|
||||
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
loose-envify: 1.4.0
|
||||
dev: false
|
||||
|
||||
/read-cache@1.0.0:
|
||||
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
|
||||
dependencies:
|
||||
@@ -5778,10 +5698,6 @@ packages:
|
||||
dependencies:
|
||||
picomatch: 2.3.1
|
||||
|
||||
/regenerator-runtime@0.14.1:
|
||||
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
|
||||
dev: false
|
||||
|
||||
/remove-accents@0.5.0:
|
||||
resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==}
|
||||
dev: false
|
||||
@@ -5844,6 +5760,7 @@ packages:
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 7.2.3
|
||||
dev: true
|
||||
|
||||
/rollup-plugin-manifest-json@1.7.0:
|
||||
resolution: {integrity: sha512-CaghGuHVszAurNKkvtYhgzT/9yxo3oyBJdjF+0qTGsANetwLdIoI2UP1dEEkkh2Xfg9vr1xcfad1EjhB2aEwOQ==}
|
||||
@@ -6526,13 +6443,6 @@ packages:
|
||||
engines: {node: '>= 10.0.0'}
|
||||
dev: true
|
||||
|
||||
/unload@2.2.0:
|
||||
resolution: {integrity: sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.0
|
||||
detect-node: 2.1.0
|
||||
dev: false
|
||||
|
||||
/unplugin-auto-import@0.18.6:
|
||||
resolution: {integrity: sha512-LMFzX5DtkTj/3wZuyG5bgKBoJ7WSgzqSGJ8ppDRdlvPh45mx6t6w3OcbExQi53n3xF5MYkNGPNR/HYOL95KL2A==}
|
||||
engines: {node: '>=14'}
|
||||
@@ -6966,20 +6876,6 @@ packages:
|
||||
resolution: {integrity: sha512-lfgdSLQKrUmADiSV6PbBvYgQ33KF3Ztv6gP85MfGaGaSGMTXORVaHT1EHfsqCgzRNBstPKYDmvAV9Do5CmJ07A==}
|
||||
dev: true
|
||||
|
||||
/vue-demi@0.10.1(vue@3.5.13):
|
||||
resolution: {integrity: sha512-L6Oi+BvmMv6YXvqv5rJNCFHEKSVu7llpWWJczqmAQYOdmPPw5PNYoz1KKS//Fxhi+4QP64dsPjtmvnYGo1jemA==}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
peerDependencies:
|
||||
'@vue/composition-api': ^1.0.0-rc.1
|
||||
vue: ^2.6.0 || >=3.0.0
|
||||
peerDependenciesMeta:
|
||||
'@vue/composition-api':
|
||||
optional: true
|
||||
dependencies:
|
||||
vue: 3.5.13(typescript@5.6.3)
|
||||
dev: false
|
||||
|
||||
/vue-demi@0.14.10(vue@3.5.13):
|
||||
resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -7013,29 +6909,6 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/vue-query@1.26.0(react@18.3.1)(vue@3.5.13):
|
||||
resolution: {integrity: sha512-78JbnLX/3tDll5kDr6PUasRWn05BeWm7yJNeUezA9INrn3AgTCLbsEctnlw6/wM6HiRqFj9F+mf+ruZusyiVOg==}
|
||||
peerDependencies:
|
||||
'@nuxtjs/composition-api': ^0.28.0
|
||||
'@vue/composition-api': ^1.1.2
|
||||
vue: ^2.0.0 || >=3.0.0
|
||||
peerDependenciesMeta:
|
||||
'@nuxtjs/composition-api':
|
||||
optional: true
|
||||
'@vue/composition-api':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@vue/devtools-api': 6.6.4
|
||||
match-sorter: 6.3.4
|
||||
react-query: 3.39.3(react@18.3.1)
|
||||
vue: 3.5.13(typescript@5.6.3)
|
||||
vue-demi: 0.10.1(vue@3.5.13)
|
||||
transitivePeerDependencies:
|
||||
- react
|
||||
- react-dom
|
||||
- react-native
|
||||
dev: false
|
||||
|
||||
/vue-router@4.5.0(vue@3.5.13):
|
||||
resolution: {integrity: sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==}
|
||||
peerDependencies:
|
||||
@@ -7190,6 +7063,7 @@ packages:
|
||||
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
||||
dev: true
|
||||
|
||||
/write-file-atomic@4.0.2:
|
||||
resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
|
||||
|
||||
Reference in New Issue
Block a user