@wssto2/vue-core 0.13.1 → 0.15.0
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 +35 -0
- package/README.md +2 -2
- package/bin/architecture/engine.mjs +11 -1
- package/bin/architecture/rules.mjs +95 -0
- package/bin/commands/check-architecture.mjs +8 -1
- package/bin/config.mjs +2 -0
- package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-DEzXovsY.js → AccessGate.vue_vue_type_script_setup_true_lang-BH3f0hda.js} +1 -1
- package/dist/{Activity-ChfxdvXf.js → Activity-MOAIv6s4.js} +5 -5
- package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-lPj9hPqV.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-Bsv5j5Z8.js} +1 -1
- package/dist/{Changes-BCa43_mO.js → Changes-Bu7D0dhY.js} +2 -2
- package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-C1GCvyZx.js → CollectionPage.vue_vue_type_script_setup_true_lang-D5HsYIck.js} +6 -6
- package/dist/{DataTable.vue_vue_type_script_setup_true_lang-B9r9M5Gt.js → DataTable.vue_vue_type_script_setup_true_lang-J3PhyJAS.js} +1 -1
- package/dist/{DateField.vue_vue_type_script_setup_true_lang-B5UUY1OO.js → DateField.vue_vue_type_script_setup_true_lang-CKKG4JEg.js} +2 -2
- package/dist/{DeadLetters-wFTqhISU.js → DeadLetters-DsujMnLG.js} +5 -5
- package/dist/FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js +428 -0
- package/dist/{FormView.vue_vue_type_script_setup_true_lang-DvbPEiNQ.js → FormView.vue_vue_type_script_setup_true_lang-Cfvh7rF6.js} +1 -1
- package/dist/{General-jW7u4MjH.js → General-Dswj1oXt.js} +7 -7
- package/dist/IncidentRecord-DcmqpziF.js +522 -0
- package/dist/{IncidentsList-yu0xSMrH.js → IncidentsList-BRNqHZdU.js} +6 -6
- package/dist/{NewRolePage-CQ5UVaHs.js → NewRolePage-dFLznJGH.js} +3 -3
- package/dist/{NumberField.vue_vue_type_script_setup_true_lang-YVgf5CP6.js → NumberField.vue_vue_type_script_setup_true_lang-U-_kcnGr.js} +1 -1
- package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-CWCt9_dM.js → PersonAccess.vue_vue_type_script_setup_true_lang-D3yp43o5.js} +4 -4
- package/dist/{ProfilePage-Ca3x3UAH.js → ProfilePage-BnHR3xGB.js} +10 -10
- package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-Do_ATJwT.js → RecordHeader.vue_vue_type_script_setup_true_lang-SDgLjwEI.js} +1 -1
- package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-Coz91xht.js → ResourcePage.vue_vue_type_script_setup_true_lang-DRC3h71-.js} +1 -1
- package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-d_aaeXTT.js → RoleEditor.vue_vue_type_script_setup_true_lang-DNF9wzE9.js} +4 -4
- package/dist/{RolePage-BUj1w1m1.js → RolePage-BtM2rFLm.js} +7 -7
- package/dist/{RolesPage-NKzBUsrM.js → RolesPage-MO1gAfdT.js} +4 -4
- package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-DfKEhTFv.js → SectionNavigator.vue_vue_type_script_setup_true_lang-TMdsmYAg.js} +2 -2
- package/dist/ServiceAccountDialog.vue_vue_type_script_setup_true_lang-Bo3phlqB.js +127 -0
- package/dist/{ServiceAccountRecord-ClbyeLhL.js → ServiceAccountRecord-C1M-dcju.js} +10 -10
- package/dist/{ServiceAccountsList-B2VDnYxD.js → ServiceAccountsList-zfyS2WJB.js} +6 -6
- package/dist/{Sessions-BjkciyHH.js → Sessions-BYBUSqHI.js} +3 -3
- package/dist/{SettingsPage-Csb14qsx.js → SettingsPage-C9Kp2ddX.js} +9 -9
- package/dist/{SignIn-DPFMv4C7.js → SignIn-HBYLSZ1M.js} +5 -5
- package/dist/{SignInPage-DukoFqkt.js → SignInPage-CEoz3fWE.js} +3 -3
- package/dist/{SignIns-DvdpNkiS.js → SignIns-BAz7V4vy.js} +2 -2
- package/dist/{TimeField.vue_vue_type_script_setup_true_lang-DpDXHH7u.js → TimeField.vue_vue_type_script_setup_true_lang-BDlTAMsh.js} +2 -2
- package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-DlEUKWra.js → Timestamp.vue_vue_type_script_setup_true_lang-jCXYFLtq.js} +1 -1
- package/dist/{UserRecord-B9SeSWQh.js → UserRecord-DkyhGma-.js} +9 -9
- package/dist/{UsersList-CREG8q3l.js → UsersList-CsW-jU0m.js} +4 -4
- package/dist/access/RestrictedPanel.vue.d.ts +20 -0
- package/dist/access/index.d.ts +1 -0
- package/dist/access/index.js +91 -31
- package/dist/app/application.d.ts +2 -2
- package/dist/app/current.d.ts +6 -0
- package/dist/app/index.d.ts +1 -1
- package/dist/app/index.js +17 -16
- package/dist/{application-DomS6sbx.js → application-2gHiwAVy.js} +6 -6
- package/dist/client/client.d.ts +6 -0
- package/dist/client/index.js +1 -1
- package/dist/client-Do8v1I5l.js +193 -0
- package/dist/collection/index.js +6 -6
- package/dist/config/index.d.ts +21 -1
- package/dist/content/StatSummary.vue.d.ts +40 -0
- package/dist/content/index.d.ts +1 -0
- package/dist/content/index.js +245 -176
- package/dist/{contributions-obnyn03x.js → contributions-9CPT-Z5v.js} +1 -1
- package/dist/{current-B0lHKTWr.js → current-CslcEPXp.js} +8 -4
- package/dist/eslint/index.js +2 -2
- package/dist/form/index.js +16 -16
- package/dist/form/useForm.d.ts +1 -1
- package/dist/format/format.d.ts +5 -2
- package/dist/format/index.js +1 -1
- package/dist/format-Cp1h0vsC.js +125 -0
- package/dist/{guards-DGcSfTEh.js → guards-6fJxfUtk.js} +1 -1
- package/dist/{http-DOEfFCDA.js → http-D6qOS6xs.js} +1 -1
- package/dist/i18n/index.d.ts +5 -1
- package/dist/i18n/index.js +21 -20
- package/dist/i18n/serverMessages.d.ts +15 -1
- package/dist/identity/index.js +2 -2
- package/dist/incidents/Occurrences.vue.d.ts +9 -0
- package/dist/incidents/api.d.ts +11 -2
- package/dist/incidents/index.js +1 -1
- package/dist/{index-DZikGJ8L.js → index--AF_DNhE.js} +22 -22
- package/dist/{index-D_yyd4C2.js → index-DYva-K_4.js} +5 -5
- package/dist/{index-Be9Q1PB_.js → index-Dlu-PA4W.js} +104 -98
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/modules/incident/entities.d.ts +19 -0
- package/dist/modules/incident/routes.d.ts +4 -1
- package/dist/{navigation-CctcxT51.js → navigation-DMJ6akat.js} +1 -1
- package/dist/{neighbors-Csfan8Ho.js → neighbors-DrEahe7B.js} +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/onboarding/index.js +1 -1
- package/dist/page/index.js +3 -3
- package/dist/phone/index.d.ts +1 -1
- package/dist/phone/index.js +154 -142
- package/dist/phone/phone.d.ts +6 -0
- package/dist/platform/index.js +3 -3
- package/dist/{platform-DtISOEt7.js → platform-ORzRR3Tw.js} +1 -1
- package/dist/resource/index.js +2 -2
- package/dist/router/index.js +3 -3
- package/dist/{rowLayout-y1IB_h2r.js → rowLayout-Ohh5ng1u.js} +2 -2
- package/dist/{sections-fkW_IJLc.js → sections-DI_JhgQG.js} +1 -1
- package/dist/serverMessages-Ce8-MK4e.js +30 -0
- package/dist/shell/index.js +4 -4
- package/dist/{state-CXMexi0l.js → state-QDaxntgR.js} +1 -1
- package/dist/styles.css +1 -1
- package/dist/testing/index.js +3 -3
- package/dist/{useCommand-Ch_nx1AQ.js → useCommand-BvcU3AlW.js} +1 -1
- package/dist/{useGroupSheet-CPjHydQV.js → useGroupSheet-BGIntPKD.js} +1 -1
- package/dist/{usePreferences-B8LIZp_f.js → usePreferences-BfMXVbSO.js} +1 -1
- package/dist/{useRecordDialog-DdkauXnU.js → useRecordDialog-q_BNXdb7.js} +1 -1
- package/dist/{useResourceForm-Dl6YFYyz.js → useResourceForm-C1S628UI.js} +1 -1
- package/dist/{useTypedEntry-DKs8I1yP.js → useTypedEntry-tttjrClq.js} +1 -1
- package/package.json +2 -2
- package/dist/FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js +0 -427
- package/dist/IncidentRecord-zTemLz2R.js +0 -404
- package/dist/ServiceAccountDialog.vue_vue_type_script_setup_true_lang-4nbhEpv_.js +0 -127
- package/dist/client-Dg303Pmc.js +0 -193
- package/dist/format-DoKs29bZ.js +0 -118
- package/dist/serverMessages-Ddghrewh.js +0 -25
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import type { FormFailureKind } from "../form";
|
|
2
|
+
export interface ServerMessagesOptions {
|
|
3
|
+
/**
|
|
4
|
+
* The namespaces of the keys the server's validator writes (`validation_errors.required`): a field message that starts with one
|
|
5
|
+
* (and a dot) is a key, said with the app's text for it, else the library's `core.<key>`. Default `["validation_errors"]` (go-core's);
|
|
6
|
+
* `[]` leaves every such message as sent. A rule whose text needs a parameter the server does not send (`min`, `max`, `min_value`,
|
|
7
|
+
* `max_value`, `between`, `in`, `not_in`) reads as the namespace's `out_of_range`.
|
|
8
|
+
*/
|
|
9
|
+
readonly prefixes?: readonly string[];
|
|
10
|
+
}
|
|
11
|
+
/** `describeFieldError` over a translator: the validator's keys by `prefixes`, then the app's `errors.<reason>` and the library's `core.errors.<reason>`; other text as sent. */
|
|
12
|
+
export declare function fieldMessageWith({ t, te }: {
|
|
13
|
+
t(key: string): string;
|
|
14
|
+
te(key: string): boolean;
|
|
15
|
+
}, { prefixes }?: ServerMessagesOptions): (message: string) => string;
|
|
2
16
|
/**
|
|
3
17
|
* What a form needs to speak any go-core refusal, in the app's language (an app's `errors.<reason>` first, then
|
|
4
18
|
* `core.errors.<reason>`): the reason of a field (`identity.email.taken`) becomes a sentence (`describeFieldError`); a refusal of
|
|
@@ -9,7 +23,7 @@ import type { FormFailureKind } from "../form";
|
|
|
9
23
|
* const messages = useServerMessages();
|
|
10
24
|
* useForm({ ...messages, failureMessage: (kind, error) => myRefusal(error) ?? messages.failureMessage(kind, error), defaults, validator });
|
|
11
25
|
*/
|
|
12
|
-
export declare function useServerMessages(): {
|
|
26
|
+
export declare function useServerMessages(options?: ServerMessagesOptions): {
|
|
13
27
|
sentence: (error: unknown, fallback?: string) => string;
|
|
14
28
|
describeFieldError: (message: string) => string;
|
|
15
29
|
failureMessage: (kind: FormFailureKind, error: unknown) => string | undefined;
|
package/dist/identity/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { i as a } from "../preferences-hYhrw8Uy.js";
|
|
2
|
-
import { k as o, r as n, t as i, P as r, j as u, h as c, _ as d, q as S, i as g, U as A, v as f, w as l, x as p, y as m, z as I, A as R, o as x, B as y, C as P, n as U, s as v, e as D, g as E, b, f as w, D as F, E as B, c as C } from "../index
|
|
2
|
+
import { k as o, r as n, t as i, P as r, j as u, h as c, _ as d, q as S, i as g, U as A, v as f, w as l, x as p, y as m, z as I, A as R, o as x, B as y, C as P, n as U, s as v, e as D, g as E, b, f as w, D as F, E as B, c as C } from "../index--AF_DNhE.js";
|
|
3
3
|
import { a as T, _ } from "../ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js";
|
|
4
|
-
import { i as k, l as N, r as O, s as j, a as q, u as z } from "../usePreferences-
|
|
4
|
+
import { i as k, l as N, r as O, s as j, a as q, u as z } from "../usePreferences-BfMXVbSO.js";
|
|
5
5
|
import { s as K } from "../routes-Beyr5NQo.js";
|
|
6
6
|
export {
|
|
7
7
|
T as ActionRow,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An incident's occurrences (staff only: the caller shows it for `incident:manage`), newest first, a page at a time. Each opens to its stack
|
|
3
|
+
* and the context and request the server kept (read-only JSON).
|
|
4
|
+
*/
|
|
5
|
+
type __VLS_Props = {
|
|
6
|
+
incidentId: number;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
export default _default;
|
package/dist/incidents/api.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { HttpClient } from "../client";
|
|
2
|
-
import type { CommentResponse, Incident, ReportResponse } from "../modules/incident/entities";
|
|
1
|
+
import type { HttpClient, PageMeta } from "../client";
|
|
2
|
+
import type { CommentResponse, Incident, OccurrenceResponse, ReportResponse } from "../modules/incident/entities";
|
|
3
3
|
import type { CommentRequest, ReportInput, UpdateRequest } from "../modules/incident/schemas";
|
|
4
4
|
export type IncidentSort = "title" | "last_seen_at";
|
|
5
5
|
export type IncidentFilter = "created_at" | "status" | "severity" | "source";
|
|
@@ -11,11 +11,20 @@ export interface IncidentDetail {
|
|
|
11
11
|
readonly reports: readonly ReportResponse[];
|
|
12
12
|
readonly comments: readonly CommentResponse[];
|
|
13
13
|
}
|
|
14
|
+
/** The occurrences a page of the incident page shows. */
|
|
15
|
+
export declare const OCCURRENCES_PER_PAGE = 10;
|
|
14
16
|
/** go-core's incident routes as calls; `data` of each answer already read. A change takes the `Idempotency-Key` of its attempt. */
|
|
15
17
|
export declare function createIncidentsApi(http: HttpClient): {
|
|
16
18
|
show: (id: number, options?: {
|
|
17
19
|
readonly signal?: AbortSignal;
|
|
18
20
|
}) => Promise<IncidentDetail>;
|
|
21
|
+
/** One page of an incident's occurrences, newest first (`incident:manage`). */
|
|
22
|
+
occurrences: (id: number, page: number, options?: {
|
|
23
|
+
readonly signal?: AbortSignal;
|
|
24
|
+
}) => Promise<{
|
|
25
|
+
readonly rows: readonly OccurrenceResponse[];
|
|
26
|
+
readonly meta: PageMeta | null;
|
|
27
|
+
}>;
|
|
19
28
|
/** The whole management form; the answer is the stored incident (without its people: the page reads again for them). */
|
|
20
29
|
update: (id: number, input: UpdateRequest, idempotencyKey: string) => Promise<Incident>;
|
|
21
30
|
/** A report: the incident it opened or joined. */
|
package/dist/incidents/index.js
CHANGED
|
@@ -8,34 +8,34 @@ import { a as Y } from "./error-CD7x0Jrz.js";
|
|
|
8
8
|
import { u as pe } from "./environment-Dva-SG8D.js";
|
|
9
9
|
import { u as B } from "./describeError-B-NMa--w.js";
|
|
10
10
|
import { t as z } from "./toast-CqSDTWRX.js";
|
|
11
|
-
import { u as I, h as W, f as te } from "./platform-
|
|
12
|
-
import { i as H, r as qe, l as Fe, s as Ne, a as Be } from "./usePreferences-
|
|
11
|
+
import { u as I, h as W, f as te } from "./platform-ORzRR3Tw.js";
|
|
12
|
+
import { i as H, r as qe, l as Fe, s as Ne, a as Be } from "./usePreferences-BfMXVbSO.js";
|
|
13
13
|
import { useI18n as C } from "vue-i18n";
|
|
14
14
|
import { _ as fe } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
|
|
15
15
|
import { useRouter as ge, useRoute as Ve, RouterLink as Me } from "vue-router";
|
|
16
16
|
import { _ as _e } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
|
|
17
17
|
import { _ as T } from "./Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
|
|
18
18
|
import { u as De } from "./leaveGuard-Cc8yeLxM.js";
|
|
19
|
-
import { _ as We } from "./FormView.vue_vue_type_script_setup_true_lang-
|
|
19
|
+
import { _ as We } from "./FormView.vue_vue_type_script_setup_true_lang-Cfvh7rF6.js";
|
|
20
20
|
import { _ as L } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
|
|
21
21
|
import { u as Ge } from "./mediaQuery-CygcXmFW.js";
|
|
22
22
|
import { u as Xe } from "./useDialog-DfNmqM-0.js";
|
|
23
23
|
import { c as Ye } from "./closeOverlays-CjVsIrpL.js";
|
|
24
|
-
import { u as He, a as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-
|
|
25
|
-
import { u as J } from "./format-
|
|
24
|
+
import { u as He, a as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js";
|
|
25
|
+
import { u as J } from "./format-Cp1h0vsC.js";
|
|
26
26
|
import { b as Je } from "./routeResource-DlTsGTg_.js";
|
|
27
27
|
import { _ as F } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
|
|
28
28
|
import { g as U } from "./options-B48UiYsG.js";
|
|
29
|
-
import { u as he, _ as be } from "./useCommand-
|
|
30
|
-
import { u as ye } from "./serverMessages-
|
|
29
|
+
import { u as he, _ as be } from "./useCommand-BvcU3AlW.js";
|
|
30
|
+
import { u as ye } from "./serverMessages-Ce8-MK4e.js";
|
|
31
31
|
import { _ as Qe } from "./SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js";
|
|
32
|
-
import { d as Ze, r as et } from "./http-
|
|
32
|
+
import { d as Ze, r as et } from "./http-D6qOS6xs.js";
|
|
33
33
|
import { z as r } from "zod";
|
|
34
34
|
import "./ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js";
|
|
35
35
|
import { _ as G } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
|
|
36
|
-
import { _ as tt } from "./DataTable.vue_vue_type_script_setup_true_lang-
|
|
36
|
+
import { _ as tt } from "./DataTable.vue_vue_type_script_setup_true_lang-J3PhyJAS.js";
|
|
37
37
|
import { _ as nt } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
|
|
38
|
-
import { _ as st } from "./AccessGate.vue_vue_type_script_setup_true_lang-
|
|
38
|
+
import { _ as st } from "./AccessGate.vue_vue_type_script_setup_true_lang-BH3f0hda.js";
|
|
39
39
|
import "./routes-Beyr5NQo.js";
|
|
40
40
|
const [ot, ve] = N("vue-core.identity"), rt = { hidden: "" }, at = /* @__PURE__ */ $({
|
|
41
41
|
__name: "LocaleSync",
|
|
@@ -246,7 +246,7 @@ const ft = ["aria-labelledby"], gt = ["id"], _t = { class: "mt-1 text-subheadlin
|
|
|
246
246
|
]));
|
|
247
247
|
}
|
|
248
248
|
}), wt = X({
|
|
249
|
-
login: { name: "login", path: "/login", component: () => import("./SignInPage-
|
|
249
|
+
login: { name: "login", path: "/login", component: () => import("./SignInPage-CEoz3fWE.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
|
|
250
250
|
});
|
|
251
251
|
function Xn(e = {}) {
|
|
252
252
|
return ne({
|
|
@@ -381,7 +381,7 @@ function Hn(e) {
|
|
|
381
381
|
};
|
|
382
382
|
}
|
|
383
383
|
const ke = X({
|
|
384
|
-
index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-
|
|
384
|
+
index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-BnHR3xGB.js"), meta: { titleKey: "core.profile.title" } }
|
|
385
385
|
}), At = /* @__PURE__ */ $({
|
|
386
386
|
__name: "ProfileMenuItem",
|
|
387
387
|
setup(e) {
|
|
@@ -412,19 +412,19 @@ function jt(e, n) {
|
|
|
412
412
|
return [...e.flatMap((s) => [s, ...o(s)]), ...n.filter((s) => s.after === void 0).map((s) => ce(s))];
|
|
413
413
|
}
|
|
414
414
|
const le = "iam.user:view", ts = "iam.user:manage", Kt = "iam.user.activity:view", Se = X({
|
|
415
|
-
index: { name: "users.index", path: "/users", component: () => import("./UsersList-
|
|
415
|
+
index: { name: "users.index", path: "/users", component: () => import("./UsersList-CsW-jU0m.js"), meta: { access: le, titleKey: "core.users.title" } },
|
|
416
416
|
record: {
|
|
417
417
|
name: "users.record",
|
|
418
418
|
path: "/users/:id",
|
|
419
|
-
component: () => import("./UserRecord-
|
|
419
|
+
component: () => import("./UserRecord-DkyhGma-.js"),
|
|
420
420
|
meta: { access: le, titleKey: "core.users.title", remountOnParam: "id" },
|
|
421
421
|
children: [
|
|
422
|
-
{ name: "users.record.general", path: "general", component: () => import("./General-
|
|
423
|
-
{ name: "users.record.signin", path: "signin", component: () => import("./SignIn-
|
|
424
|
-
{ name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-
|
|
425
|
-
{ name: "users.record.signins", path: "signins", component: () => import("./SignIns-
|
|
426
|
-
{ name: "users.record.changes", path: "changes", component: () => import("./Changes-
|
|
427
|
-
{ name: "users.record.activity", path: "activity", component: () => import("./Activity-
|
|
422
|
+
{ name: "users.record.general", path: "general", component: () => import("./General-Dswj1oXt.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
|
|
423
|
+
{ name: "users.record.signin", path: "signin", component: () => import("./SignIn-HBYLSZ1M.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
|
|
424
|
+
{ name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-BYBUSqHI.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
|
|
425
|
+
{ name: "users.record.signins", path: "signins", component: () => import("./SignIns-BAz7V4vy.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
|
|
426
|
+
{ name: "users.record.changes", path: "changes", component: () => import("./Changes-Bu7D0dhY.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
|
|
427
|
+
{ name: "users.record.activity", path: "activity", component: () => import("./Activity-MOAIv6s4.js"), meta: { access: Kt, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
|
|
428
428
|
]
|
|
429
429
|
}
|
|
430
430
|
});
|
|
@@ -1153,11 +1153,11 @@ const Jt = ["title"], Qt = { class: "font-mono" }, cs = /* @__PURE__ */ $({
|
|
|
1153
1153
|
}, 8, ["permission"])) : k("", !0);
|
|
1154
1154
|
}
|
|
1155
1155
|
}), [cn, ms] = N("vue-core.serviceaccounts"), ue = "iam.serviceaccount:view", ps = "iam.serviceaccount:manage", fs = "iam.serviceaccount:revoke", de = X({
|
|
1156
|
-
index: { name: "serviceaccounts.index", path: "/iam/service-accounts", component: () => import("./ServiceAccountsList-
|
|
1156
|
+
index: { name: "serviceaccounts.index", path: "/iam/service-accounts", component: () => import("./ServiceAccountsList-zfyS2WJB.js"), meta: { access: ue, titleKey: "core.serviceaccounts.title_plural" } },
|
|
1157
1157
|
record: {
|
|
1158
1158
|
name: "serviceaccounts.record",
|
|
1159
1159
|
path: "/iam/service-accounts/:id",
|
|
1160
|
-
component: () => import("./ServiceAccountRecord-
|
|
1160
|
+
component: () => import("./ServiceAccountRecord-C1M-dcju.js"),
|
|
1161
1161
|
meta: { access: ue, titleKey: "core.serviceaccounts.title_plural", remountOnParam: "id" }
|
|
1162
1162
|
}
|
|
1163
1163
|
});
|
|
@@ -2,18 +2,18 @@ import { r as v } from "./route-goWMxDUN.js";
|
|
|
2
2
|
import { d as ve, p as me } from "./feature-DdUAfyi4.js";
|
|
3
3
|
import { ref as C, readonly as $, defineComponent as q, openBlock as _, createBlock as U, unref as s, shallowRef as z, withCtx as A, createTextVNode as X, toDisplayString as L, mergeProps as Z, computed as N, createElementBlock as S, createElementVNode as P, createCommentVNode as R, createVNode as T, Fragment as G, renderList as be, normalizeClass as H, useTemplateRef as he, createSlots as ye } from "vue";
|
|
4
4
|
import { d as ge } from "./context-Ch1r4fdN.js";
|
|
5
|
-
import { u as ee } from "./platform-
|
|
5
|
+
import { u as ee } from "./platform-ORzRR3Tw.js";
|
|
6
6
|
import { d as te } from "./defineRoutes-BGAdiIrt.js";
|
|
7
7
|
import { useI18n as I } from "vue-i18n";
|
|
8
8
|
import { _ as _e } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
|
|
9
|
-
import { f as xe } from "./client-
|
|
9
|
+
import { f as xe } from "./client-Do8v1I5l.js";
|
|
10
10
|
import { u as we } from "./mediaQuery-CygcXmFW.js";
|
|
11
11
|
import { _ as ke } from "./Sheet.vue_vue_type_script_setup_true_lang-B91aRD_y.js";
|
|
12
12
|
import { _ as Se } from "./Popover.vue_vue_type_script_setup_true_lang-C20Hf3Hl.js";
|
|
13
13
|
import { _ as J } from "./HeaderAction.vue_vue_type_script_setup_true_lang-Da59TLBh.js";
|
|
14
14
|
import { useRouter as Te } from "vue-router";
|
|
15
15
|
import { _ as K } from "./Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
|
|
16
|
-
import { u as Ee } from "./format-
|
|
16
|
+
import { u as Ee } from "./format-Cp1h0vsC.js";
|
|
17
17
|
import { _ as Pe } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
|
|
18
18
|
import { _ as Ce } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
|
|
19
19
|
const E = {
|
|
@@ -135,9 +135,9 @@ function Me(n = ee().http, t = W()) {
|
|
|
135
135
|
return { state: $(e), hash: $(i), busy: $(a), inspect: c, enable: u, disable: g };
|
|
136
136
|
}
|
|
137
137
|
const Ne = "events.deadletter:view", $t = "events.deadletter:retry", Y = te({
|
|
138
|
-
index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-
|
|
138
|
+
index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-DsujMnLG.js"), meta: { access: Ne, titleKey: "core.notifications.dead_letters.title" } }
|
|
139
139
|
}), j = te({
|
|
140
|
-
index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-
|
|
140
|
+
index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-C9Kp2ddX.js"), meta: { titleKey: "core.notifications.settings.title" } }
|
|
141
141
|
}), Oe = /* @__PURE__ */ q({
|
|
142
142
|
__name: "SettingsMenuItem",
|
|
143
143
|
setup(n) {
|
|
@@ -1,55 +1,61 @@
|
|
|
1
|
-
import { r as
|
|
2
|
-
import { d as
|
|
3
|
-
import { defineComponent as
|
|
4
|
-
import { d as
|
|
5
|
-
import { useI18n as
|
|
6
|
-
import { a as
|
|
7
|
-
import { _ as
|
|
1
|
+
import { r as _ } from "./route-goWMxDUN.js";
|
|
2
|
+
import { d as $, p as V } from "./feature-DdUAfyi4.js";
|
|
3
|
+
import { defineComponent as y, computed as k, onMounted as U, watch as L, openBlock as S, createBlock as I, unref as e, withCtx as T, createElementVNode as X, createVNode as c, mergeProps as l, createCommentVNode as A, ref as B } from "vue";
|
|
4
|
+
import { d as G } from "./context-Ch1r4fdN.js";
|
|
5
|
+
import { useI18n as q } from "vue-i18n";
|
|
6
|
+
import { a as O } from "./FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js";
|
|
7
|
+
import { _ as F } from "./SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js";
|
|
8
8
|
import { _ as b } from "./TextareaField.vue_vue_type_script_setup_true_lang-D2j4s96s.js";
|
|
9
|
-
import { _ as
|
|
10
|
-
import { u as
|
|
11
|
-
import { t as
|
|
12
|
-
import { u as
|
|
13
|
-
import { d as
|
|
14
|
-
import { _ as
|
|
15
|
-
import { d as
|
|
16
|
-
import { d as
|
|
17
|
-
import { R as
|
|
18
|
-
import { a as
|
|
19
|
-
const
|
|
20
|
-
index:
|
|
21
|
-
show:
|
|
22
|
-
comments:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
9
|
+
import { _ as w } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
|
|
10
|
+
import { u as j, _ as K } from "./useCommand-BvcU3AlW.js";
|
|
11
|
+
import { t as z } from "./toast-CqSDTWRX.js";
|
|
12
|
+
import { u as R } from "./platform-ORzRR3Tw.js";
|
|
13
|
+
import { d as H, r as Q, a as W } from "./http-D6qOS6xs.js";
|
|
14
|
+
import { _ as Y } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
|
|
15
|
+
import { d as J } from "./defineRoutes-BGAdiIrt.js";
|
|
16
|
+
import { d as Z } from "./application-2gHiwAVy.js";
|
|
17
|
+
import { R as ee } from "./client-Do8v1I5l.js";
|
|
18
|
+
import { a as te } from "./error-CD7x0Jrz.js";
|
|
19
|
+
const g = {
|
|
20
|
+
index: _("GET", "/v1/incidents", { permission: "incident:view" }),
|
|
21
|
+
show: _("GET", "/v1/incidents/:incidentID", { permission: "incident:view" }),
|
|
22
|
+
comments: _("GET", "/v1/incidents/:incidentID/comments", { permission: "incident:view" }),
|
|
23
|
+
occurrences: _("GET", "/v1/incidents/:incidentID/occurrences", { permission: "incident:manage" }),
|
|
24
|
+
report: _("POST", "/v1/incidents/reports", { permission: "incident:create" }),
|
|
25
|
+
comment: _("POST", "/v1/incidents/:incidentID/comments", { permission: "incident:create" }),
|
|
26
|
+
update: _("PATCH", "/v1/incidents/:incidentID", { permission: "incident:update" }),
|
|
27
|
+
clientError: _("POST", "/v1/incidents/client-errors")
|
|
28
|
+
}, [ne, C] = G("vue-core.incidents"), N = "incident:view", ie = "incident:create", Fe = "incident:update", se = "incident:manage";
|
|
29
|
+
function je(t) {
|
|
30
|
+
return H({
|
|
30
31
|
id: "incidents",
|
|
31
32
|
stateVersion: 1,
|
|
32
|
-
load: async (n, { signal: s }) =>
|
|
33
|
+
load: async (n, { signal: s }) => Q(await t.request(g.index, W(n), { signal: s }), n),
|
|
33
34
|
key: (n) => n.id,
|
|
34
35
|
query: { sorts: ["title", "last_seen_at"], filters: ["created_at", "status", "severity", "source"] },
|
|
35
36
|
defaults: { sort: "last_seen_at", direction: "desc" }
|
|
36
37
|
});
|
|
37
38
|
}
|
|
38
|
-
const
|
|
39
|
+
const re = 10;
|
|
39
40
|
function oe(t) {
|
|
40
41
|
return {
|
|
41
42
|
show: async (n, s) => {
|
|
42
|
-
const { data: r, meta: o } = await t.request(
|
|
43
|
+
const { data: r, meta: o } = await t.request(g.show, { incidentID: n }, s);
|
|
43
44
|
return { incident: r, reports: o?.reports ?? [], comments: o?.comments ?? [] };
|
|
44
45
|
},
|
|
46
|
+
/** One page of an incident's occurrences, newest first (`incident:manage`). */
|
|
47
|
+
occurrences: async (n, s, r) => {
|
|
48
|
+
const { data: o, meta: i } = await t.request(g.occurrences, { incidentID: n, page: s, per_page: re }, r);
|
|
49
|
+
return { rows: o, meta: i };
|
|
50
|
+
},
|
|
45
51
|
/** 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(
|
|
52
|
+
update: async (n, s, r) => (await t.request(g.update, { ...s, incidentID: n }, { idempotencyKey: r })).data,
|
|
47
53
|
/** A report: the incident it opened or joined. */
|
|
48
|
-
report: async (n, s) => (await t.request(
|
|
49
|
-
comment: async (n, s, r) => (await t.request(
|
|
54
|
+
report: async (n, s) => (await t.request(g.report, n, { idempotencyKey: s })).data.data,
|
|
55
|
+
comment: async (n, s, r) => (await t.request(g.comment, { ...s, incidentID: n }, { idempotencyKey: r })).data
|
|
50
56
|
};
|
|
51
57
|
}
|
|
52
|
-
const ae = () => oe(
|
|
58
|
+
const ae = () => oe(R().http);
|
|
53
59
|
function ce(t, n) {
|
|
54
60
|
return {
|
|
55
61
|
safeParse(s) {
|
|
@@ -135,37 +141,37 @@ const Qe = {
|
|
|
135
141
|
}, ue = {
|
|
136
142
|
class: "flex flex-col gap-group-gap",
|
|
137
143
|
"data-test": "incident-report"
|
|
138
|
-
}, me = /* @__PURE__ */
|
|
144
|
+
}, me = /* @__PURE__ */ y({
|
|
139
145
|
__name: "ReportDialog",
|
|
140
146
|
props: {
|
|
141
147
|
autoOpen: { type: Boolean }
|
|
142
148
|
},
|
|
143
149
|
emits: ["created", "close"],
|
|
144
150
|
setup(t, { expose: n, emit: s }) {
|
|
145
|
-
const r = t, o = s, { t: i } =
|
|
146
|
-
defaults: () => de(
|
|
151
|
+
const r = t, o = s, { t: i } = q(), { access: d } = R(), u = ae(), { appVersion: E } = C(), h = k(() => d.can(se)), x = k(() => Object.entries(le).map(([m, v]) => ({ value: m, label: i(v) }))), p = j({
|
|
152
|
+
defaults: () => de(E),
|
|
147
153
|
validator: ce(["title", "description"], i("core.account.validation.required")),
|
|
148
|
-
run: (m, { idempotencyKey:
|
|
154
|
+
run: (m, { idempotencyKey: v }) => u.report(m, v),
|
|
149
155
|
done: (m) => {
|
|
150
|
-
|
|
156
|
+
z.success(i("core.incidents.toasts.report_success")), o("created", m);
|
|
151
157
|
}
|
|
152
|
-
}), a =
|
|
158
|
+
}), a = p.form, D = () => p.present(), M = () => p.dismiss();
|
|
153
159
|
return U(() => {
|
|
154
160
|
r.autoOpen && D();
|
|
155
|
-
}),
|
|
156
|
-
|
|
157
|
-
}), n({ show: D, hide:
|
|
158
|
-
command: e(
|
|
161
|
+
}), L(() => p.open.value, (m, v) => {
|
|
162
|
+
v && !m && o("close");
|
|
163
|
+
}), n({ show: D, hide: M }), (m, v) => (S(), I(e(K), {
|
|
164
|
+
command: e(p),
|
|
159
165
|
size: "md",
|
|
160
166
|
title: e(i)("core.incidents.report_modal.title"),
|
|
161
167
|
subtitle: e(i)("core.incidents.report_modal.description"),
|
|
162
168
|
"confirm-label": e(i)("core.incidents.report_modal.submit")
|
|
163
169
|
}, {
|
|
164
|
-
default:
|
|
165
|
-
|
|
166
|
-
c(e(
|
|
167
|
-
default:
|
|
168
|
-
c(e(
|
|
170
|
+
default: T(() => [
|
|
171
|
+
X("div", ue, [
|
|
172
|
+
c(e(O), null, {
|
|
173
|
+
default: T(() => [
|
|
174
|
+
c(e(w), l(e(a).bind("title"), {
|
|
169
175
|
label: e(i)("core.incidents.fields.title"),
|
|
170
176
|
required: "",
|
|
171
177
|
"max-length": 255
|
|
@@ -176,23 +182,23 @@ const Qe = {
|
|
|
176
182
|
rows: 4,
|
|
177
183
|
"max-length": 2e4
|
|
178
184
|
}), null, 16, ["label"]),
|
|
179
|
-
c(e(
|
|
185
|
+
c(e(F), l(e(a).bind("severity"), {
|
|
180
186
|
label: e(i)("core.incidents.fields.severity"),
|
|
181
|
-
options:
|
|
187
|
+
options: x.value
|
|
182
188
|
}), null, 16, ["label", "options"])
|
|
183
189
|
]),
|
|
184
190
|
_: 1
|
|
185
191
|
}),
|
|
186
|
-
|
|
192
|
+
h.value ? (S(), I(e(O), {
|
|
187
193
|
key: 0,
|
|
188
194
|
header: e(i)("core.incidents.report_modal.advanced_fields")
|
|
189
195
|
}, {
|
|
190
|
-
default:
|
|
191
|
-
c(e(
|
|
196
|
+
default: T(() => [
|
|
197
|
+
c(e(w), l(e(a).bind("affected_module"), {
|
|
192
198
|
label: e(i)("core.incidents.fields.affected_module"),
|
|
193
199
|
"max-length": 100
|
|
194
200
|
}), null, 16, ["label"]),
|
|
195
|
-
c(e(
|
|
201
|
+
c(e(w), l(e(a).bind("page_url"), {
|
|
196
202
|
label: e(i)("core.incidents.fields.page_url"),
|
|
197
203
|
"max-length": 1e3
|
|
198
204
|
}), null, 16, ["label"]),
|
|
@@ -211,11 +217,11 @@ const Qe = {
|
|
|
211
217
|
rows: 2,
|
|
212
218
|
"max-length": 2e4
|
|
213
219
|
}), null, 16, ["label"]),
|
|
214
|
-
c(e(
|
|
220
|
+
c(e(w), l(e(a).bind("browser_info"), {
|
|
215
221
|
label: e(i)("core.incidents.fields.browser_info"),
|
|
216
222
|
"max-length": 500
|
|
217
223
|
}), null, 16, ["label"]),
|
|
218
|
-
c(e(
|
|
224
|
+
c(e(w), l(e(a).bind("app_version"), {
|
|
219
225
|
label: e(i)("core.incidents.fields.app_version"),
|
|
220
226
|
"max-length": 100
|
|
221
227
|
}), null, 16, ["label"]),
|
|
@@ -231,82 +237,82 @@ const Qe = {
|
|
|
231
237
|
}), null, 16, ["label"])
|
|
232
238
|
]),
|
|
233
239
|
_: 1
|
|
234
|
-
}, 8, ["header"])) :
|
|
240
|
+
}, 8, ["header"])) : A("", !0)
|
|
235
241
|
])
|
|
236
242
|
]),
|
|
237
243
|
_: 1
|
|
238
244
|
}, 8, ["command", "title", "subtitle", "confirm-label"]));
|
|
239
245
|
}
|
|
240
|
-
}), _e = /* @__PURE__ */
|
|
246
|
+
}), _e = /* @__PURE__ */ y({
|
|
241
247
|
__name: "ReportHost",
|
|
242
248
|
setup(t) {
|
|
243
249
|
const { reporting: n } = C(), s = () => {
|
|
244
250
|
n.value = !1;
|
|
245
251
|
};
|
|
246
|
-
return (r, o) => e(n) ? (S(),
|
|
252
|
+
return (r, o) => e(n) ? (S(), I(me, {
|
|
247
253
|
key: 0,
|
|
248
254
|
"auto-open": "",
|
|
249
255
|
onClose: s
|
|
250
|
-
})) :
|
|
256
|
+
})) : A("", !0);
|
|
251
257
|
}
|
|
252
|
-
}), pe = /* @__PURE__ */
|
|
258
|
+
}), pe = /* @__PURE__ */ y({
|
|
253
259
|
__name: "ReportMenuItem",
|
|
254
260
|
setup(t) {
|
|
255
|
-
const { t: n } =
|
|
256
|
-
return (o, i) => e(s).can(e(
|
|
261
|
+
const { t: n } = q(), { access: s } = R(), r = C();
|
|
262
|
+
return (o, i) => e(s).can(e(ie)) ? (S(), I(Y, {
|
|
257
263
|
key: 0,
|
|
258
264
|
label: e(n)("core.incidents.report_modal.menu"),
|
|
259
265
|
icon: "alertTriangle",
|
|
260
266
|
"data-incident-report-menu-item": "",
|
|
261
267
|
onClick: i[0] || (i[0] = (d) => e(r).reporting.value = !0)
|
|
262
|
-
}, null, 8, ["label"])) :
|
|
268
|
+
}, null, 8, ["label"])) : A("", !0);
|
|
263
269
|
}
|
|
264
|
-
}),
|
|
265
|
-
index: { name: "incidents.index", path: "/incidents", component: () => import("./IncidentsList-
|
|
270
|
+
}), P = J({
|
|
271
|
+
index: { name: "incidents.index", path: "/incidents", component: () => import("./IncidentsList-BRNqHZdU.js"), meta: { access: N, titleKey: "core.incidents.title" } },
|
|
266
272
|
details: {
|
|
267
273
|
name: "incidents.details",
|
|
268
274
|
path: "/incidents/:incidentID",
|
|
269
|
-
component: () => import("./IncidentRecord-
|
|
275
|
+
component: () => import("./IncidentRecord-DcmqpziF.js"),
|
|
270
276
|
// Previous / next record swaps the id in place.
|
|
271
|
-
meta: { access:
|
|
277
|
+
meta: { access: N, titleKey: "core.incidents.title", remountOnParam: "incidentID" }
|
|
272
278
|
}
|
|
273
279
|
});
|
|
274
280
|
function Ze(t = {}) {
|
|
275
|
-
return
|
|
281
|
+
return $({
|
|
276
282
|
id: "incidents",
|
|
277
|
-
routes:
|
|
278
|
-
context:
|
|
279
|
-
navigation: t.destination ? [{ destination: t.destination, to:
|
|
283
|
+
routes: P.records,
|
|
284
|
+
context: V(ne, { reporting: B(!1), appVersion: t.appVersion ?? "" }),
|
|
285
|
+
navigation: t.destination ? [{ destination: t.destination, to: P.index, within: ["incidents.details"] }] : [],
|
|
280
286
|
contributions: [
|
|
281
287
|
{ id: "incidents.report-menu", slot: "accountMenu", component: pe, scope: "authenticated", order: 40, optional: !0 },
|
|
282
288
|
{ id: "incidents.report-host", slot: "host", component: _e, scope: "authenticated", optional: !0 }
|
|
283
289
|
]
|
|
284
290
|
});
|
|
285
291
|
}
|
|
286
|
-
const fe = 2e3, ge = 2e4,
|
|
292
|
+
const fe = 2e3, ge = 2e4, ve = 255, be = 500, Ee = 100, he = 100, we = 255, xe = 20, Se = /* @__PURE__ */ new Set(["vue", "unhandledrejection", "window", "handled"]), f = (t, n) => t.slice(0, n), Ie = (t) => /^script error\.?$/i.test(t.trim()), Te = (t) => t.split(`
|
|
287
293
|
`).find((n) => /^\s*at\s|@\S/.test(n))?.trim() ?? "";
|
|
288
294
|
function et(t) {
|
|
289
|
-
const { platform: n, appVersion: s = "", onError: r =
|
|
295
|
+
const { platform: n, appVersion: s = "", onError: r = Z } = t, o = /* @__PURE__ */ new Set();
|
|
290
296
|
function i(d) {
|
|
291
297
|
const { error: u } = d;
|
|
292
|
-
if (!Se.has(d.source) || !(u instanceof Error) ||
|
|
293
|
-
const
|
|
294
|
-
if (!
|
|
295
|
-
const
|
|
296
|
-
${
|
|
297
|
-
if (o.has(
|
|
298
|
-
o.add(
|
|
299
|
-
const
|
|
298
|
+
if (!Se.has(d.source) || !(u instanceof Error) || te(u) || u.message.trim() === "" || Ie(u.message)) return;
|
|
299
|
+
const E = t.origin ?? globalThis.location?.origin, h = u.stack ?? "";
|
|
300
|
+
if (!E || E === "null" || !h.includes(`${E}/`) || n.session.state.value.status !== "authenticated") return;
|
|
301
|
+
const x = `${u.message}
|
|
302
|
+
${Te(h)}`;
|
|
303
|
+
if (o.has(x) || o.size >= xe) return;
|
|
304
|
+
o.add(x);
|
|
305
|
+
const p = {
|
|
300
306
|
message: f(u.message, fe),
|
|
301
307
|
source: d.source,
|
|
302
|
-
...d.detail && { detail: f(d.detail,
|
|
303
|
-
stack: f(
|
|
304
|
-
route: f((d.route ?? "").split(/[?#]/)[0] ?? "",
|
|
305
|
-
browser: f(globalThis.navigator?.userAgent ?? "",
|
|
306
|
-
app_version: f(s,
|
|
307
|
-
request_ids: n.http.recentRequestIds().slice(-
|
|
308
|
+
...d.detail && { detail: f(d.detail, we) },
|
|
309
|
+
stack: f(h, ge),
|
|
310
|
+
route: f((d.route ?? "").split(/[?#]/)[0] ?? "", ve),
|
|
311
|
+
browser: f(globalThis.navigator?.userAgent ?? "", be),
|
|
312
|
+
app_version: f(s, Ee),
|
|
313
|
+
request_ids: n.http.recentRequestIds().slice(-ee).map((a) => f(a, he))
|
|
308
314
|
};
|
|
309
|
-
n.http.request(
|
|
315
|
+
n.http.request(g.clientError, p).catch(() => {
|
|
310
316
|
});
|
|
311
317
|
}
|
|
312
318
|
return (d) => {
|
|
@@ -318,22 +324,22 @@ ${Ie(E)}`;
|
|
|
318
324
|
};
|
|
319
325
|
}
|
|
320
326
|
export {
|
|
321
|
-
|
|
322
|
-
|
|
327
|
+
ie as C,
|
|
328
|
+
se as M,
|
|
323
329
|
We as S,
|
|
324
|
-
|
|
330
|
+
Fe as U,
|
|
325
331
|
me as _,
|
|
326
|
-
|
|
332
|
+
je as a,
|
|
327
333
|
Ye as b,
|
|
328
334
|
Qe as c,
|
|
329
335
|
Je as d,
|
|
330
336
|
le as e,
|
|
331
337
|
ze as f,
|
|
332
338
|
Ke as g,
|
|
333
|
-
|
|
334
|
-
|
|
339
|
+
xe as h,
|
|
340
|
+
P as i,
|
|
335
341
|
et as j,
|
|
336
|
-
|
|
342
|
+
g as k,
|
|
337
343
|
Ze as l,
|
|
338
344
|
He as m,
|
|
339
345
|
ce as r,
|
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.
|
|
2
|
+
export declare const version = "0.15.0";
|
package/dist/index.js
CHANGED
|
@@ -53,6 +53,25 @@ export type Meta = {
|
|
|
53
53
|
reports: ReportResponse[];
|
|
54
54
|
watching: boolean;
|
|
55
55
|
};
|
|
56
|
+
export type OccurrenceResponse = {
|
|
57
|
+
id: number;
|
|
58
|
+
incident_id: number;
|
|
59
|
+
occurred_at: string;
|
|
60
|
+
environment?: string;
|
|
61
|
+
module?: string;
|
|
62
|
+
route?: string;
|
|
63
|
+
method?: string;
|
|
64
|
+
user_id?: number | null;
|
|
65
|
+
user?: PersonResponse | null;
|
|
66
|
+
ip_address?: string;
|
|
67
|
+
request_id?: string;
|
|
68
|
+
error_class?: string;
|
|
69
|
+
error_code?: string;
|
|
70
|
+
message: string;
|
|
71
|
+
stacktrace?: string;
|
|
72
|
+
context?: unknown;
|
|
73
|
+
request?: unknown;
|
|
74
|
+
};
|
|
56
75
|
export type PersonResponse = {
|
|
57
76
|
id: number;
|
|
58
77
|
name: string;
|