@innertia-solutions/innertia-nuxt 0.1.57 → 0.1.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -34,6 +34,9 @@ const STATUS = { open: 'Abierto', resolved: 'Resuelto', ignored: 'Ignorado' }
|
|
|
34
34
|
<div class="flex flex-wrap items-center gap-2">
|
|
35
35
|
<span v-if="data.is_critical" class="rounded-full bg-red-100 text-red-700 dark:bg-red-500/20 dark:text-red-300 px-2 py-0.5 text-xs font-semibold">Crítico</span>
|
|
36
36
|
<span class="rounded-full bg-slate-100 text-slate-600 dark:bg-slate-700 dark:text-slate-300 px-2 py-0.5 text-xs">{{ STATUS[data.case.status] ?? data.case.status }}</span>
|
|
37
|
+
<span v-if="data.case.origin" class="rounded-full bg-slate-100 text-slate-600 dark:bg-slate-700 dark:text-slate-300 px-2 py-0.5 text-xs">{{ ({http:'HTTP',queue:'Worker',schedule:'Cron',console:'Consola'})[data.case.origin] ?? data.case.origin }}</span>
|
|
38
|
+
<span v-if="data.case.category" class="rounded-full bg-indigo-100 text-indigo-700 dark:bg-indigo-500/20 dark:text-indigo-300 px-2 py-0.5 text-xs">{{ ({database:'BD',http:'HTTP',auth:'Auth',validation:'Validación',runtime:'Runtime'})[data.case.category] ?? data.case.category }}</span>
|
|
39
|
+
<span v-for="(v, k) in (data.case.tags ?? {})" :key="k" class="rounded-full bg-primary/10 text-primary px-2 py-0.5 text-xs">{{ k }}: {{ v }}</span>
|
|
37
40
|
<span class="text-xs text-muted-foreground">{{ data.case.times_seen }} ocurrencias</span>
|
|
38
41
|
</div>
|
|
39
42
|
<h2 class="mt-2 text-lg font-semibold text-foreground">{{ data.case.title }}</h2>
|
|
@@ -66,10 +69,23 @@ const STATUS = { open: 'Abierto', resolved: 'Resuelto', ignored: 'Ignorado' }
|
|
|
66
69
|
<h3 class="mb-2 text-sm font-semibold text-foreground">Contexto del request</h3>
|
|
67
70
|
<dl class="grid grid-cols-2 gap-x-4 gap-y-1 text-xs">
|
|
68
71
|
<div><dt class="text-muted-foreground inline">Ruta:</dt> <dd class="inline text-foreground">{{ snap.request.method }} {{ snap.request.route ?? snap.request.url }}</dd></div>
|
|
69
|
-
<div><dt class="text-muted-foreground inline">
|
|
72
|
+
<div><dt class="text-muted-foreground inline">Status:</dt> <dd class="inline text-foreground">{{ data.trace?.status ?? '—' }}</dd></div>
|
|
70
73
|
<div><dt class="text-muted-foreground inline">Usuario:</dt> <dd class="inline text-foreground">{{ snap.request.user_id ?? '—' }}</dd></div>
|
|
71
74
|
<div><dt class="text-muted-foreground inline">IP:</dt> <dd class="inline text-foreground">{{ snap.request.ip ?? '—' }}</dd></div>
|
|
75
|
+
<div class="col-span-2"><dt class="text-muted-foreground inline">User-Agent:</dt> <dd class="inline text-foreground break-all">{{ snap.request.user_agent ?? '—' }}</dd></div>
|
|
72
76
|
</dl>
|
|
77
|
+
<details v-if="snap.request.query && Object.keys(snap.request.query).length" class="mt-2 text-xs">
|
|
78
|
+
<summary class="cursor-pointer text-muted-foreground">Query params</summary>
|
|
79
|
+
<pre class="mt-1 overflow-x-auto rounded bg-slate-50 dark:bg-slate-900/40 p-2 text-[11px]">{{ JSON.stringify(snap.request.query, null, 2) }}</pre>
|
|
80
|
+
</details>
|
|
81
|
+
<details v-if="snap.request.body && Object.keys(snap.request.body).length" class="mt-2 text-xs">
|
|
82
|
+
<summary class="cursor-pointer text-muted-foreground">Body</summary>
|
|
83
|
+
<pre class="mt-1 overflow-x-auto rounded bg-slate-50 dark:bg-slate-900/40 p-2 text-[11px]">{{ JSON.stringify(snap.request.body, null, 2) }}</pre>
|
|
84
|
+
</details>
|
|
85
|
+
<details v-if="snap.request.headers && Object.keys(snap.request.headers).length" class="mt-2 text-xs">
|
|
86
|
+
<summary class="cursor-pointer text-muted-foreground">Headers</summary>
|
|
87
|
+
<pre class="mt-1 overflow-x-auto rounded bg-slate-50 dark:bg-slate-900/40 p-2 text-[11px]">{{ JSON.stringify(snap.request.headers, null, 2) }}</pre>
|
|
88
|
+
</details>
|
|
73
89
|
</section>
|
|
74
90
|
|
|
75
91
|
<section v-if="snap.stack?.length">
|
|
@@ -14,6 +14,17 @@ const columns = [
|
|
|
14
14
|
{ key: 'title', label: 'Error' },
|
|
15
15
|
{ key: 'exception_class', label: 'Clase' },
|
|
16
16
|
{ key: 'times_seen', label: 'Veces', sortable: true },
|
|
17
|
+
{ key: 'origin', label: 'Origen', filterable: true, filterType: 'select',
|
|
18
|
+
filterOptions: [
|
|
19
|
+
{ value: 'http', label: 'HTTP' }, { value: 'queue', label: 'Worker' },
|
|
20
|
+
{ value: 'schedule', label: 'Cron' }, { value: 'console', label: 'Consola' },
|
|
21
|
+
] },
|
|
22
|
+
{ key: 'category', label: 'Tipo', filterable: true, filterType: 'select',
|
|
23
|
+
filterOptions: [
|
|
24
|
+
{ value: 'database', label: 'Base de datos' }, { value: 'http', label: 'HTTP' },
|
|
25
|
+
{ value: 'auth', label: 'Auth' }, { value: 'validation', label: 'Validación' },
|
|
26
|
+
{ value: 'runtime', label: 'Runtime' },
|
|
27
|
+
] },
|
|
17
28
|
{ key: 'status', label: 'Estado', filterable: true, filterType: 'select',
|
|
18
29
|
filterOptions: [
|
|
19
30
|
{ value: 'open', label: 'Abierto' },
|
|
@@ -57,6 +68,15 @@ watch(() => props.touchedAt, () => { reloadKey.value++ })
|
|
|
57
68
|
<span class="text-foreground">{{ row.title }}</span>
|
|
58
69
|
</div>
|
|
59
70
|
</template>
|
|
71
|
+
<template #origin="{ value }">
|
|
72
|
+
<span class="inline-flex items-center rounded-full bg-slate-100 dark:bg-slate-700 px-2 py-0.5 text-xs text-slate-600 dark:text-slate-300">{{ ({http:'HTTP',queue:'Worker',schedule:'Cron',console:'Consola'})[value] ?? value ?? '—' }}</span>
|
|
73
|
+
</template>
|
|
74
|
+
<template #category="{ value }">
|
|
75
|
+
<span class="inline-flex items-center rounded-full px-2 py-0.5 text-xs"
|
|
76
|
+
:class="value === 'database' ? 'bg-indigo-100 text-indigo-700 dark:bg-indigo-500/20 dark:text-indigo-300' : value === 'auth' ? 'bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-300' : 'bg-slate-100 text-slate-600 dark:bg-slate-700 dark:text-slate-300'">
|
|
77
|
+
{{ ({database:'BD',http:'HTTP',auth:'Auth',validation:'Validación',runtime:'Runtime'})[value] ?? value ?? '—' }}
|
|
78
|
+
</span>
|
|
79
|
+
</template>
|
|
60
80
|
<template #status="{ value }">{{ statusLabels[value] ?? value }}</template>
|
|
61
81
|
<template #actions="{ row }">
|
|
62
82
|
<div class="flex gap-2">
|