@wssto2/vue-core 0.13.0 → 0.13.1
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.
- package/CHANGELOG.md +8 -0
- package/dist/{IncidentRecord-CXzgLKqI.js → IncidentRecord-zTemLz2R.js} +1 -1
- package/dist/{IncidentsList-D1MySyXb.js → IncidentsList-yu0xSMrH.js} +1 -1
- package/dist/incidents/clientErrorReporter.d.ts +2 -2
- package/dist/incidents/index.js +1 -1
- package/dist/{index-CRxU_Wh2.js → index-Be9Q1PB_.js} +88 -86
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/modules/incident/routes.d.ts +2 -0
- package/dist/modules/incident/schemas.d.ts +2 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.13.1 — 2026-10-19
|
|
4
|
+
|
|
5
|
+
go-core `v1.18.1`: a client error says where it came from.
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
- **incidents:** `clientErrorReporter` sends every report's `source` (`vue`, `unhandledrejection`, `window`, `handled`) and a handled error's `detail` (at most 255 characters) as fields of `ClientErrorInput`; the message is the error's own again, without the `[handled: detail]` prefix of 0.13.0. go-core keeps both in the occurrence's context and groups the same error as one incident whether it was handled or not.
|
|
9
|
+
- **modules:** regenerated from go-core v1.18.1 (`ClientErrorInput.source`, `detail`, optional).
|
|
10
|
+
|
|
3
11
|
## 0.13.0 — 2026-10-18
|
|
4
12
|
|
|
5
13
|
Platform features an application kept to itself: per-person preferences (dark mode, dismissed tips) on go-core identity, an
|
|
@@ -23,7 +23,7 @@ import { a as be } from "./routeResource-DlTsGTg_.js";
|
|
|
23
23
|
import { a as ve } from "./ResourcePage.vue_vue_type_script_setup_true_lang-Coz91xht.js";
|
|
24
24
|
import { _ as N } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
|
|
25
25
|
import { _ as q } from "./EmptyState.vue_vue_type_script_setup_true_lang-DbZiO2RF.js";
|
|
26
|
-
import { u as xe, i as he, a as ye, M as ge, U as ke, m as we, f as $e, g as z, r as Se, S as Te, e as D, c as L, d as Ee, b as Ie } from "./index-
|
|
26
|
+
import { u as xe, i as he, a as ye, M as ge, U as ke, m as we, f as $e, g as z, r as Se, S as Te, e as D, c as L, d as Ee, b as Ie } from "./index-Be9Q1PB_.js";
|
|
27
27
|
import { _ as Ne } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
|
|
28
28
|
const De = { class: "flex min-w-0 items-center gap-2" }, Le = { class: "flex min-w-0 flex-col items-start" }, Ce = { class: "max-w-full truncate text-xs font-semibold text-content-strong" }, Ae = {
|
|
29
29
|
key: 0,
|
|
@@ -9,7 +9,7 @@ import { _ as g } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.
|
|
|
9
9
|
import { u as K } from "./format-DoKs29bZ.js";
|
|
10
10
|
import { u as G } from "./platform-DtISOEt7.js";
|
|
11
11
|
import { _ as k } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
|
|
12
|
-
import { i as v, a as H, C as J, _ as M, S as T, b as Q, c as S, d as W, e as E } from "./index-
|
|
12
|
+
import { i as v, a as H, C as J, _ as M, S as T, b as Q, c as S, d as W, e as E } from "./index-Be9Q1PB_.js";
|
|
13
13
|
const X = {
|
|
14
14
|
key: 1,
|
|
15
15
|
class: "flex min-w-0 items-center gap-3"
|
|
@@ -28,8 +28,8 @@ export declare const MAX_REPORTS_PER_SESSION = 20;
|
|
|
28
28
|
*
|
|
29
29
|
* createApplication({ platform, features, onError: clientErrorReporter({ platform, appVersion: __APP_VERSION__ }) })
|
|
30
30
|
*
|
|
31
|
-
* Reported: component errors, unhandled rejections, window errors and errors the code handled itself (`report` of the application,
|
|
32
|
-
* `
|
|
31
|
+
* Reported: component errors, unhandled rejections, window errors and errors the code handled itself (`report` of the application,
|
|
32
|
+
* sent with `source: "handled"` and its `detail`) that carry a real `Error` whose stack has a frame of the
|
|
33
33
|
* application's own origin. Not reported: failed requests (`ApiError`, of any kind: the server captures its own 5xx),
|
|
34
34
|
* `Script error.`, errors of extensions and other origins, failures of effects, loads and the router, and anything while nobody
|
|
35
35
|
* is signed in. Each error (message plus top frame) goes once per page session, at most 20 distinct ones. A report sends the message,
|
package/dist/incidents/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { r as p } from "./route-goWMxDUN.js";
|
|
2
|
-
import { d as V, p as
|
|
3
|
-
import { defineComponent as
|
|
2
|
+
import { d as V, p as L } from "./feature-DdUAfyi4.js";
|
|
3
|
+
import { defineComponent as A, computed as O, onMounted as U, watch as X, openBlock as S, createBlock as y, unref as e, withCtx as I, createElementVNode as B, createVNode as c, mergeProps as l, createCommentVNode as R, ref as F } from "vue";
|
|
4
4
|
import { d as j } from "./context-Ch1r4fdN.js";
|
|
5
|
-
import { useI18n as
|
|
5
|
+
import { useI18n as P } from "vue-i18n";
|
|
6
6
|
import { a as N } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
|
|
7
7
|
import { _ as G } from "./SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js";
|
|
8
|
-
import { _ as
|
|
9
|
-
import { _ as
|
|
8
|
+
import { _ as b } from "./TextareaField.vue_vue_type_script_setup_true_lang-D2j4s96s.js";
|
|
9
|
+
import { _ as x } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
|
|
10
10
|
import { u as K, _ as z } from "./useCommand-Ch_nx1AQ.js";
|
|
11
11
|
import { t as H } from "./toast-CqSDTWRX.js";
|
|
12
|
-
import { u as
|
|
12
|
+
import { u as k } from "./platform-DtISOEt7.js";
|
|
13
13
|
import { d as Q, r as W, a as Y } from "./http-DOEfFCDA.js";
|
|
14
14
|
import { _ as J } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
|
|
15
15
|
import { d as Z } from "./defineRoutes-BGAdiIrt.js";
|
|
@@ -24,8 +24,8 @@ const v = {
|
|
|
24
24
|
comment: p("POST", "/v1/incidents/:incidentID/comments", { permission: "incident:create" }),
|
|
25
25
|
update: p("PATCH", "/v1/incidents/:incidentID", { permission: "incident:update" }),
|
|
26
26
|
clientError: p("POST", "/v1/incidents/client-errors")
|
|
27
|
-
}, [ie,
|
|
28
|
-
function
|
|
27
|
+
}, [ie, C] = j("vue-core.incidents"), M = "incident:view", se = "incident:create", je = "incident:update", re = "incident:manage";
|
|
28
|
+
function Ge(t) {
|
|
29
29
|
return Q({
|
|
30
30
|
id: "incidents",
|
|
31
31
|
stateVersion: 1,
|
|
@@ -35,7 +35,7 @@ function je(t) {
|
|
|
35
35
|
defaults: { sort: "last_seen_at", direction: "desc" }
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
-
const
|
|
38
|
+
const T = (t) => ({ headers: { "Idempotency-Key": t } });
|
|
39
39
|
function oe(t) {
|
|
40
40
|
return {
|
|
41
41
|
show: async (n, s) => {
|
|
@@ -43,13 +43,13 @@ function oe(t) {
|
|
|
43
43
|
return { incident: r, reports: o?.reports ?? [], comments: o?.comments ?? [] };
|
|
44
44
|
},
|
|
45
45
|
/** The whole management form; the answer is the stored incident (without its people: the page reads again for them). */
|
|
46
|
-
update: async (n, s, r) => (await t.request(v.update, { ...s, incidentID: n },
|
|
46
|
+
update: async (n, s, r) => (await t.request(v.update, { ...s, incidentID: n }, T(r))).data,
|
|
47
47
|
/** A report: the incident it opened or joined. */
|
|
48
|
-
report: async (n, s) => (await t.request(v.report, n,
|
|
49
|
-
comment: async (n, s, r) => (await t.request(v.comment, { ...s, incidentID: n },
|
|
48
|
+
report: async (n, s) => (await t.request(v.report, n, T(s))).data.data,
|
|
49
|
+
comment: async (n, s, r) => (await t.request(v.comment, { ...s, incidentID: n }, T(r))).data
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
const ae = () => oe(
|
|
52
|
+
const ae = () => oe(k().http);
|
|
53
53
|
function ce(t, n) {
|
|
54
54
|
return {
|
|
55
55
|
safeParse(s) {
|
|
@@ -76,8 +76,8 @@ function de(t) {
|
|
|
76
76
|
extra_json: ""
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
|
-
const
|
|
80
|
-
function
|
|
79
|
+
const Ke = () => ({ body: "", visibility: "public" });
|
|
80
|
+
function ze() {
|
|
81
81
|
return {
|
|
82
82
|
status: "",
|
|
83
83
|
severity: "",
|
|
@@ -90,7 +90,7 @@ function Ke() {
|
|
|
90
90
|
external_ticket_url: ""
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
|
-
function
|
|
93
|
+
function He({ incident: t }) {
|
|
94
94
|
return {
|
|
95
95
|
status: t.status,
|
|
96
96
|
severity: t.severity,
|
|
@@ -103,7 +103,7 @@ function ze({ incident: t }) {
|
|
|
103
103
|
external_ticket_url: t.external_ticket_url ?? ""
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
|
-
const
|
|
106
|
+
const Qe = {
|
|
107
107
|
new: "core.incidents.statuses.new",
|
|
108
108
|
triaged: "core.incidents.statuses.triaged",
|
|
109
109
|
in_progress: "core.incidents.statuses.in_progress",
|
|
@@ -115,19 +115,19 @@ const He = {
|
|
|
115
115
|
medium: "core.incidents.severities.medium",
|
|
116
116
|
high: "core.incidents.severities.high",
|
|
117
117
|
critical: "core.incidents.severities.critical"
|
|
118
|
-
},
|
|
118
|
+
}, We = {
|
|
119
119
|
user_report: "core.incidents.sources.user_report",
|
|
120
120
|
runtime_error: "core.incidents.sources.runtime_error",
|
|
121
121
|
client_error: "core.incidents.sources.client_error",
|
|
122
122
|
mixed: "core.incidents.sources.mixed"
|
|
123
|
-
},
|
|
123
|
+
}, Ye = {
|
|
124
124
|
new: "info",
|
|
125
125
|
triaged: "warning",
|
|
126
126
|
in_progress: "warning",
|
|
127
127
|
resolved: "positive",
|
|
128
128
|
ignored: "neutral",
|
|
129
129
|
duplicate: "neutral"
|
|
130
|
-
},
|
|
130
|
+
}, Je = {
|
|
131
131
|
low: "neutral",
|
|
132
132
|
medium: "info",
|
|
133
133
|
high: "warning",
|
|
@@ -135,42 +135,42 @@ const He = {
|
|
|
135
135
|
}, ue = {
|
|
136
136
|
class: "flex flex-col gap-group-gap",
|
|
137
137
|
"data-test": "incident-report"
|
|
138
|
-
}, me = /* @__PURE__ */
|
|
138
|
+
}, me = /* @__PURE__ */ A({
|
|
139
139
|
__name: "ReportDialog",
|
|
140
140
|
props: {
|
|
141
141
|
autoOpen: { type: Boolean }
|
|
142
142
|
},
|
|
143
143
|
emits: ["created", "close"],
|
|
144
144
|
setup(t, { expose: n, emit: s }) {
|
|
145
|
-
const r = t, o = s, { t: i } =
|
|
145
|
+
const r = t, o = s, { t: i } = P(), { access: d } = k(), u = ae(), { appVersion: h } = C(), E = O(() => d.can(re)), w = O(() => Object.entries(le).map(([m, g]) => ({ value: m, label: i(g) }))), _ = K({
|
|
146
146
|
defaults: () => de(h),
|
|
147
147
|
validator: ce(["title", "description"], i("core.account.validation.required")),
|
|
148
|
-
run: (m, { idempotencyKey:
|
|
148
|
+
run: (m, { idempotencyKey: g }) => u.report(m, g),
|
|
149
149
|
done: (m) => {
|
|
150
150
|
H.success(i("core.incidents.toasts.report_success")), o("created", m);
|
|
151
151
|
}
|
|
152
|
-
}), a = _.form,
|
|
153
|
-
return
|
|
154
|
-
r.autoOpen &&
|
|
155
|
-
}),
|
|
156
|
-
|
|
157
|
-
}), n({ show:
|
|
152
|
+
}), a = _.form, D = () => _.present(), $ = () => _.dismiss();
|
|
153
|
+
return U(() => {
|
|
154
|
+
r.autoOpen && D();
|
|
155
|
+
}), X(() => _.open.value, (m, g) => {
|
|
156
|
+
g && !m && o("close");
|
|
157
|
+
}), n({ show: D, hide: $ }), (m, g) => (S(), y(e(z), {
|
|
158
158
|
command: e(_),
|
|
159
159
|
size: "md",
|
|
160
160
|
title: e(i)("core.incidents.report_modal.title"),
|
|
161
161
|
subtitle: e(i)("core.incidents.report_modal.description"),
|
|
162
162
|
"confirm-label": e(i)("core.incidents.report_modal.submit")
|
|
163
163
|
}, {
|
|
164
|
-
default:
|
|
165
|
-
|
|
164
|
+
default: I(() => [
|
|
165
|
+
B("div", ue, [
|
|
166
166
|
c(e(N), null, {
|
|
167
|
-
default:
|
|
168
|
-
c(e(
|
|
167
|
+
default: I(() => [
|
|
168
|
+
c(e(x), l(e(a).bind("title"), {
|
|
169
169
|
label: e(i)("core.incidents.fields.title"),
|
|
170
170
|
required: "",
|
|
171
171
|
"max-length": 255
|
|
172
172
|
}), null, 16, ["label"]),
|
|
173
|
-
c(e(
|
|
173
|
+
c(e(b), l(e(a).bind("description"), {
|
|
174
174
|
label: e(i)("core.incidents.fields.description"),
|
|
175
175
|
required: "",
|
|
176
176
|
rows: 4,
|
|
@@ -183,99 +183,99 @@ const He = {
|
|
|
183
183
|
]),
|
|
184
184
|
_: 1
|
|
185
185
|
}),
|
|
186
|
-
|
|
186
|
+
E.value ? (S(), y(e(N), {
|
|
187
187
|
key: 0,
|
|
188
188
|
header: e(i)("core.incidents.report_modal.advanced_fields")
|
|
189
189
|
}, {
|
|
190
|
-
default:
|
|
191
|
-
c(e(
|
|
190
|
+
default: I(() => [
|
|
191
|
+
c(e(x), l(e(a).bind("affected_module"), {
|
|
192
192
|
label: e(i)("core.incidents.fields.affected_module"),
|
|
193
193
|
"max-length": 100
|
|
194
194
|
}), null, 16, ["label"]),
|
|
195
|
-
c(e(
|
|
195
|
+
c(e(x), l(e(a).bind("page_url"), {
|
|
196
196
|
label: e(i)("core.incidents.fields.page_url"),
|
|
197
197
|
"max-length": 1e3
|
|
198
198
|
}), null, 16, ["label"]),
|
|
199
|
-
c(e(
|
|
199
|
+
c(e(b), l(e(a).bind("steps_to_reproduce"), {
|
|
200
200
|
label: e(i)("core.incidents.fields.steps_to_reproduce"),
|
|
201
201
|
rows: 3,
|
|
202
202
|
"max-length": 2e4
|
|
203
203
|
}), null, 16, ["label"]),
|
|
204
|
-
c(e(
|
|
204
|
+
c(e(b), l(e(a).bind("expected_result"), {
|
|
205
205
|
label: e(i)("core.incidents.fields.expected_result"),
|
|
206
206
|
rows: 2,
|
|
207
207
|
"max-length": 2e4
|
|
208
208
|
}), null, 16, ["label"]),
|
|
209
|
-
c(e(
|
|
209
|
+
c(e(b), l(e(a).bind("actual_result"), {
|
|
210
210
|
label: e(i)("core.incidents.fields.actual_result"),
|
|
211
211
|
rows: 2,
|
|
212
212
|
"max-length": 2e4
|
|
213
213
|
}), null, 16, ["label"]),
|
|
214
|
-
c(e(
|
|
214
|
+
c(e(x), l(e(a).bind("browser_info"), {
|
|
215
215
|
label: e(i)("core.incidents.fields.browser_info"),
|
|
216
216
|
"max-length": 500
|
|
217
217
|
}), null, 16, ["label"]),
|
|
218
|
-
c(e(
|
|
218
|
+
c(e(x), l(e(a).bind("app_version"), {
|
|
219
219
|
label: e(i)("core.incidents.fields.app_version"),
|
|
220
220
|
"max-length": 100
|
|
221
221
|
}), null, 16, ["label"]),
|
|
222
|
-
c(e(
|
|
222
|
+
c(e(b), l(e(a).bind("frontend_error_message"), {
|
|
223
223
|
label: e(i)("core.incidents.fields.frontend_error_message"),
|
|
224
224
|
rows: 2,
|
|
225
225
|
"max-length": 2e3
|
|
226
226
|
}), null, 16, ["label"]),
|
|
227
|
-
c(e(
|
|
227
|
+
c(e(b), l(e(a).bind("frontend_stacktrace"), {
|
|
228
228
|
label: e(i)("core.incidents.fields.frontend_stacktrace"),
|
|
229
229
|
rows: 4,
|
|
230
230
|
"max-length": 2e4
|
|
231
231
|
}), null, 16, ["label"])
|
|
232
232
|
]),
|
|
233
233
|
_: 1
|
|
234
|
-
}, 8, ["header"])) :
|
|
234
|
+
}, 8, ["header"])) : R("", !0)
|
|
235
235
|
])
|
|
236
236
|
]),
|
|
237
237
|
_: 1
|
|
238
238
|
}, 8, ["command", "title", "subtitle", "confirm-label"]));
|
|
239
239
|
}
|
|
240
|
-
}), _e = /* @__PURE__ */
|
|
240
|
+
}), _e = /* @__PURE__ */ A({
|
|
241
241
|
__name: "ReportHost",
|
|
242
242
|
setup(t) {
|
|
243
|
-
const { reporting: n } =
|
|
243
|
+
const { reporting: n } = C(), s = () => {
|
|
244
244
|
n.value = !1;
|
|
245
245
|
};
|
|
246
|
-
return (r, o) => e(n) ? (
|
|
246
|
+
return (r, o) => e(n) ? (S(), y(me, {
|
|
247
247
|
key: 0,
|
|
248
248
|
"auto-open": "",
|
|
249
249
|
onClose: s
|
|
250
|
-
})) :
|
|
250
|
+
})) : R("", !0);
|
|
251
251
|
}
|
|
252
|
-
}), pe = /* @__PURE__ */
|
|
252
|
+
}), pe = /* @__PURE__ */ A({
|
|
253
253
|
__name: "ReportMenuItem",
|
|
254
254
|
setup(t) {
|
|
255
|
-
const { t: n } =
|
|
256
|
-
return (o, i) => e(s).can(e(se)) ? (
|
|
255
|
+
const { t: n } = P(), { access: s } = k(), r = C();
|
|
256
|
+
return (o, i) => e(s).can(e(se)) ? (S(), y(J, {
|
|
257
257
|
key: 0,
|
|
258
258
|
label: e(n)("core.incidents.report_modal.menu"),
|
|
259
259
|
icon: "alertTriangle",
|
|
260
260
|
"data-incident-report-menu-item": "",
|
|
261
261
|
onClick: i[0] || (i[0] = (d) => e(r).reporting.value = !0)
|
|
262
|
-
}, null, 8, ["label"])) :
|
|
262
|
+
}, null, 8, ["label"])) : R("", !0);
|
|
263
263
|
}
|
|
264
264
|
}), q = Z({
|
|
265
|
-
index: { name: "incidents.index", path: "/incidents", component: () => import("./IncidentsList-
|
|
265
|
+
index: { name: "incidents.index", path: "/incidents", component: () => import("./IncidentsList-yu0xSMrH.js"), meta: { access: M, titleKey: "core.incidents.title" } },
|
|
266
266
|
details: {
|
|
267
267
|
name: "incidents.details",
|
|
268
268
|
path: "/incidents/:incidentID",
|
|
269
|
-
component: () => import("./IncidentRecord-
|
|
269
|
+
component: () => import("./IncidentRecord-zTemLz2R.js"),
|
|
270
270
|
// Previous / next record swaps the id in place.
|
|
271
|
-
meta: { access:
|
|
271
|
+
meta: { access: M, titleKey: "core.incidents.title", remountOnParam: "incidentID" }
|
|
272
272
|
}
|
|
273
273
|
});
|
|
274
|
-
function
|
|
274
|
+
function Ze(t = {}) {
|
|
275
275
|
return V({
|
|
276
276
|
id: "incidents",
|
|
277
277
|
routes: q.records,
|
|
278
|
-
context:
|
|
278
|
+
context: L(ie, { reporting: F(!1), appVersion: t.appVersion ?? "" }),
|
|
279
279
|
navigation: t.destination ? [{ destination: t.destination, to: q.index, within: ["incidents.details"] }] : [],
|
|
280
280
|
contributions: [
|
|
281
281
|
{ id: "incidents.report-menu", slot: "accountMenu", component: pe, scope: "authenticated", order: 40, optional: !0 },
|
|
@@ -283,28 +283,30 @@ function Je(t = {}) {
|
|
|
283
283
|
]
|
|
284
284
|
});
|
|
285
285
|
}
|
|
286
|
-
const fe = 2e3, ge = 2e4, be = 255, ve = 500, he = 100,
|
|
286
|
+
const fe = 2e3, ge = 2e4, be = 255, ve = 500, he = 100, Ee = 100, xe = 255, we = 20, Se = /* @__PURE__ */ new Set(["vue", "unhandledrejection", "window", "handled"]), f = (t, n) => t.slice(0, n), ye = (t) => /^script error\.?$/i.test(t.trim()), Ie = (t) => t.split(`
|
|
287
287
|
`).find((n) => /^\s*at\s|@\S/.test(n))?.trim() ?? "";
|
|
288
|
-
function
|
|
288
|
+
function et(t) {
|
|
289
289
|
const { platform: n, appVersion: s = "", onError: r = ee } = t, o = /* @__PURE__ */ new Set();
|
|
290
290
|
function i(d) {
|
|
291
291
|
const { error: u } = d;
|
|
292
|
-
if (!
|
|
293
|
-
const h = t.origin ?? globalThis.location?.origin,
|
|
294
|
-
if (!h || h === "null" || !
|
|
292
|
+
if (!Se.has(d.source) || !(u instanceof Error) || ne(u) || u.message.trim() === "" || ye(u.message)) return;
|
|
293
|
+
const h = t.origin ?? globalThis.location?.origin, E = u.stack ?? "";
|
|
294
|
+
if (!h || h === "null" || !E.includes(`${h}/`) || n.session.state.value.status !== "authenticated") return;
|
|
295
295
|
const w = `${u.message}
|
|
296
|
-
${
|
|
297
|
-
if (o.has(w) || o.size >=
|
|
296
|
+
${Ie(E)}`;
|
|
297
|
+
if (o.has(w) || o.size >= we) return;
|
|
298
298
|
o.add(w);
|
|
299
|
-
const _ =
|
|
300
|
-
message:
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
299
|
+
const _ = {
|
|
300
|
+
message: f(u.message, fe),
|
|
301
|
+
source: d.source,
|
|
302
|
+
...d.detail && { detail: f(d.detail, xe) },
|
|
303
|
+
stack: f(E, ge),
|
|
304
|
+
route: f((d.route ?? "").split(/[?#]/)[0] ?? "", be),
|
|
305
|
+
browser: f(globalThis.navigator?.userAgent ?? "", ve),
|
|
306
|
+
app_version: f(s, he),
|
|
307
|
+
request_ids: n.http.recentRequestIds().slice(-te).map((a) => f(a, Ee))
|
|
306
308
|
};
|
|
307
|
-
n.http.request(v.clientError,
|
|
309
|
+
n.http.request(v.clientError, _).catch(() => {
|
|
308
310
|
});
|
|
309
311
|
}
|
|
310
312
|
return (d) => {
|
|
@@ -318,22 +320,22 @@ ${ye(x)}`;
|
|
|
318
320
|
export {
|
|
319
321
|
se as C,
|
|
320
322
|
re as M,
|
|
321
|
-
|
|
322
|
-
|
|
323
|
+
We as S,
|
|
324
|
+
je as U,
|
|
323
325
|
me as _,
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
326
|
+
Ge as a,
|
|
327
|
+
Ye as b,
|
|
328
|
+
Qe as c,
|
|
329
|
+
Je as d,
|
|
328
330
|
le as e,
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
331
|
+
ze as f,
|
|
332
|
+
Ke as g,
|
|
333
|
+
we as h,
|
|
332
334
|
q as i,
|
|
333
|
-
|
|
335
|
+
et as j,
|
|
334
336
|
v as k,
|
|
335
|
-
|
|
336
|
-
|
|
337
|
+
Ze as l,
|
|
338
|
+
He as m,
|
|
337
339
|
ce as r,
|
|
338
340
|
ae as u
|
|
339
341
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** The version of @wssto2/vue-core (kept equal to package.json by index.test.ts). */
|
|
2
|
-
export declare const version = "0.13.
|
|
2
|
+
export declare const version = "0.13.1";
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,8 @@ export declare const ClientErrorInputSchema: z.ZodObject<{
|
|
|
10
10
|
browser: z.ZodString;
|
|
11
11
|
app_version: z.ZodString;
|
|
12
12
|
request_ids: z.ZodArray<z.ZodString>;
|
|
13
|
+
source: z.ZodOptional<z.ZodString>;
|
|
14
|
+
detail: z.ZodOptional<z.ZodString>;
|
|
13
15
|
}, z.core.$strip>;
|
|
14
16
|
export type ClientErrorInput = z.infer<typeof ClientErrorInputSchema>;
|
|
15
17
|
export declare const CommentRequestSchema: z.ZodObject<{
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wssto2/vue-core",
|
|
3
|
-
"version": "0.13.
|
|
4
|
-
"goCore": "v1.18.
|
|
3
|
+
"version": "0.13.1",
|
|
4
|
+
"goCore": "v1.18.1",
|
|
5
5
|
"description": "Shared Vue 3 library for go-core applications: app shell, list / record / form pages and their controls.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"vue",
|