@wssto2/vue-core 0.14.0 → 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.
Files changed (94) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +2 -2
  3. package/bin/architecture/engine.mjs +11 -1
  4. package/bin/architecture/rules.mjs +95 -0
  5. package/bin/commands/check-architecture.mjs +8 -1
  6. package/bin/config.mjs +2 -0
  7. package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-DEzXovsY.js → AccessGate.vue_vue_type_script_setup_true_lang-BH3f0hda.js} +1 -1
  8. package/dist/{Activity-C0HUEDUz.js → Activity-MOAIv6s4.js} +3 -3
  9. package/dist/{Changes-CSaHgVuz.js → Changes-Bu7D0dhY.js} +2 -2
  10. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-dIrdS_Gn.js → CollectionPage.vue_vue_type_script_setup_true_lang-D5HsYIck.js} +2 -2
  11. package/dist/{DeadLetters-CHX4Ypgy.js → DeadLetters-DsujMnLG.js} +4 -4
  12. package/dist/FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js +428 -0
  13. package/dist/{FormView.vue_vue_type_script_setup_true_lang-DvbPEiNQ.js → FormView.vue_vue_type_script_setup_true_lang-Cfvh7rF6.js} +1 -1
  14. package/dist/{General-v_24-zZw.js → General-Dswj1oXt.js} +6 -6
  15. package/dist/{IncidentRecord-BwSBNE37.js → IncidentRecord-DcmqpziF.js} +7 -7
  16. package/dist/{IncidentsList-BqzRU5cZ.js → IncidentsList-BRNqHZdU.js} +3 -3
  17. package/dist/{NewRolePage-Dt0O0VSI.js → NewRolePage-dFLznJGH.js} +2 -2
  18. 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
  19. package/dist/{ProfilePage-DApTxq8C.js → ProfilePage-BnHR3xGB.js} +8 -8
  20. 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
  21. package/dist/{RolePage-noy-wmNc.js → RolePage-BtM2rFLm.js} +5 -5
  22. package/dist/{RolesPage-NRRainCw.js → RolesPage-MO1gAfdT.js} +3 -3
  23. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-D_08MS1-.js → SectionNavigator.vue_vue_type_script_setup_true_lang-TMdsmYAg.js} +1 -1
  24. package/dist/ServiceAccountDialog.vue_vue_type_script_setup_true_lang-Bo3phlqB.js +127 -0
  25. package/dist/{ServiceAccountRecord-D_HduQoK.js → ServiceAccountRecord-C1M-dcju.js} +6 -6
  26. package/dist/{ServiceAccountsList-CdSsqTGt.js → ServiceAccountsList-zfyS2WJB.js} +4 -4
  27. package/dist/{Sessions-CTjzMfNg.js → Sessions-BYBUSqHI.js} +3 -3
  28. package/dist/{SettingsPage-CpqASf_D.js → SettingsPage-C9Kp2ddX.js} +5 -5
  29. package/dist/{SignIn-D6tWsKf0.js → SignIn-HBYLSZ1M.js} +4 -4
  30. package/dist/{SignInPage-BCNGI871.js → SignInPage-CEoz3fWE.js} +3 -3
  31. package/dist/{SignIns-BxGGA99u.js → SignIns-BAz7V4vy.js} +2 -2
  32. package/dist/{UserRecord-B0kG0-Tm.js → UserRecord-DkyhGma-.js} +8 -8
  33. package/dist/{UsersList-KMgImERy.js → UsersList-CsW-jU0m.js} +3 -3
  34. package/dist/access/RestrictedPanel.vue.d.ts +20 -0
  35. package/dist/access/index.d.ts +1 -0
  36. package/dist/access/index.js +91 -31
  37. package/dist/app/application.d.ts +2 -2
  38. package/dist/app/current.d.ts +6 -0
  39. package/dist/app/index.d.ts +1 -1
  40. package/dist/app/index.js +17 -16
  41. package/dist/{application-CrXtiGdw.js → application-2gHiwAVy.js} +5 -5
  42. package/dist/client/client.d.ts +6 -0
  43. package/dist/client/index.js +1 -1
  44. package/dist/client-Do8v1I5l.js +193 -0
  45. package/dist/collection/index.js +4 -4
  46. package/dist/config/index.d.ts +21 -1
  47. package/dist/content/StatSummary.vue.d.ts +40 -0
  48. package/dist/content/index.d.ts +1 -0
  49. package/dist/content/index.js +245 -176
  50. package/dist/{contributions-obnyn03x.js → contributions-9CPT-Z5v.js} +1 -1
  51. package/dist/{current-B0lHKTWr.js → current-CslcEPXp.js} +8 -4
  52. package/dist/eslint/index.js +2 -2
  53. package/dist/form/index.js +8 -8
  54. package/dist/form/useForm.d.ts +1 -1
  55. package/dist/{guards-DGcSfTEh.js → guards-6fJxfUtk.js} +1 -1
  56. package/dist/{http-DOEfFCDA.js → http-D6qOS6xs.js} +1 -1
  57. package/dist/i18n/index.d.ts +5 -1
  58. package/dist/i18n/index.js +14 -13
  59. package/dist/i18n/serverMessages.d.ts +15 -1
  60. package/dist/identity/index.js +2 -2
  61. package/dist/incidents/index.js +1 -1
  62. package/dist/{index-D-2NNye6.js → index--AF_DNhE.js} +20 -20
  63. package/dist/{index-DNeIZpXo.js → index-DYva-K_4.js} +4 -4
  64. package/dist/{index-Crz-j_Hu.js → index-Dlu-PA4W.js} +105 -105
  65. package/dist/index.d.ts +1 -1
  66. package/dist/index.js +1 -1
  67. package/dist/{navigation-CctcxT51.js → navigation-DMJ6akat.js} +1 -1
  68. package/dist/{neighbors-Csfan8Ho.js → neighbors-DrEahe7B.js} +1 -1
  69. package/dist/notifications/index.js +1 -1
  70. package/dist/onboarding/index.js +1 -1
  71. package/dist/page/index.js +1 -1
  72. package/dist/phone/index.d.ts +1 -1
  73. package/dist/phone/index.js +153 -141
  74. package/dist/phone/phone.d.ts +6 -0
  75. package/dist/platform/index.js +3 -3
  76. package/dist/{platform-DtISOEt7.js → platform-ORzRR3Tw.js} +1 -1
  77. package/dist/resource/index.js +1 -1
  78. package/dist/router/index.js +3 -3
  79. package/dist/{sections-fkW_IJLc.js → sections-DI_JhgQG.js} +1 -1
  80. package/dist/serverMessages-Ce8-MK4e.js +30 -0
  81. package/dist/shell/index.js +4 -4
  82. package/dist/{state-CXMexi0l.js → state-QDaxntgR.js} +1 -1
  83. package/dist/styles.css +1 -1
  84. package/dist/testing/index.js +2 -2
  85. package/dist/{useCommand-Ch_nx1AQ.js → useCommand-BvcU3AlW.js} +1 -1
  86. package/dist/{useGroupSheet-CPjHydQV.js → useGroupSheet-BGIntPKD.js} +1 -1
  87. package/dist/{usePreferences-B8LIZp_f.js → usePreferences-BfMXVbSO.js} +1 -1
  88. package/dist/{useRecordDialog-DdkauXnU.js → useRecordDialog-q_BNXdb7.js} +1 -1
  89. package/dist/{useResourceForm-Dl6YFYyz.js → useResourceForm-C1S628UI.js} +1 -1
  90. package/package.json +1 -1
  91. package/dist/FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js +0 -427
  92. package/dist/ServiceAccountDialog.vue_vue_type_script_setup_true_lang-DDcaju7L.js +0 -127
  93. package/dist/client-Dg303Pmc.js +0 -193
  94. package/dist/serverMessages-DnTqVS3h.js +0 -25
@@ -3,15 +3,15 @@ import { useI18n as A } from "vue-i18n";
3
3
  import { useRouter as F } from "vue-router";
4
4
  import { _ as S } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
5
5
  import { _ as E } from "./Tabs.vue_vue_type_script_setup_true_lang-tpkGp98F.js";
6
- import { a as U } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
6
+ import { a as U } from "./FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js";
7
7
  import { g as j } from "./options-B48UiYsG.js";
8
8
  import { _ as D } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
9
9
  import { _ as I } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-Bsv5j5Z8.js";
10
- import { u as K } from "./platform-DtISOEt7.js";
10
+ import { u as K } from "./platform-ORzRR3Tw.js";
11
11
  import { _ as T } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
12
12
  import { _ as q } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
13
13
  import { u as z } from "./useLoad-M7V-AVwR.js";
14
- import { u as G } from "./PersonAccess.vue_vue_type_script_setup_true_lang-CWCt9_dM.js";
14
+ import { u as G } from "./PersonAccess.vue_vue_type_script_setup_true_lang-D3yp43o5.js";
15
15
  import { u as H, a as J } from "./refusals-DfPzVNNY.js";
16
16
  import { accessPages as x } from "./access/index.js";
17
17
  const M = {
@@ -5,7 +5,7 @@ import { _ as q } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.
5
5
  import { _ as G } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
6
6
  import { a as re } from "./mediaQuery-CygcXmFW.js";
7
7
  import { u as ie } from "./access-DmAceEo5.js";
8
- import { u as ce, a as ue } from "./sections-fkW_IJLc.js";
8
+ import { u as ce, a as ue } from "./sections-DI_JhgQG.js";
9
9
  import { p as de } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-Bsv5j5Z8.js";
10
10
  import { p as me } from "./sectionIndex-BS0ic5W7.js";
11
11
  import { _ as K, a as pe } from "./SectionList.vue_vue_type_script_setup_true_lang-DR0_NsqC.js";
@@ -0,0 +1,127 @@
1
+ import { defineComponent as E, computed as V, ref as I, openBlock as q, createBlock as A, unref as e, withCtx as b, createElementVNode as K, createVNode as p, mergeProps as f, createCommentVNode as B } from "vue";
2
+ import { useI18n as D } from "vue-i18n";
3
+ import { f as G, u as T } from "./refusals-DfPzVNNY.js";
4
+ import { a as k } from "./FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js";
5
+ import { u as x, _ as N } from "./SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js";
6
+ import { _ as U } from "./TextareaField.vue_vue_type_script_setup_true_lang-D2j4s96s.js";
7
+ import { _ as Z } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
8
+ import { _ as j } from "./useCommand-BvcU3AlW.js";
9
+ import { u as F } from "./useRecordDialog-q_BNXdb7.js";
10
+ import { t as H } from "./toast-CqSDTWRX.js";
11
+ import { u as S } from "./platform-ORzRR3Tw.js";
12
+ import { l as J, m as Q } from "./index--AF_DNhE.js";
13
+ import { r as W } from "./http-D6qOS6xs.js";
14
+ import { i as X } from "./preferences-hYhrw8Uy.js";
15
+ import { s as l } from "./routes-Beyr5NQo.js";
16
+ import { u as Y } from "./serverMessages-Ce8-MK4e.js";
17
+ const O = 500;
18
+ function ee(i) {
19
+ return {
20
+ list: async (s) => (await i.request(l.index, void 0, s)).data.service_accounts,
21
+ show: async (s, t) => (await i.request(l.show, { id: s }, t)).data,
22
+ create: async (s, t) => (await i.request(l.create, s, { idempotencyKey: t })).data,
23
+ update: async (s, t, c) => (await i.request(l.update, { ...t, id: s }, { idempotencyKey: c })).data,
24
+ deactivate: async (s) => (await i.request(l.deactivate, { id: s })).data,
25
+ keys: async (s, t) => (await i.request(l.keys, { id: s }, t)).data.keys,
26
+ /** The secret is in the answer, and only there. */
27
+ createKey: async (s, t, c) => (await i.request(l.createkey, { ...t, id: s }, { idempotencyKey: c })).data,
28
+ revokeKey: async (s, t) => void await i.request(l.revokekey, { id: s, keyID: t }),
29
+ /** The people who can answer for an account: the active ones of the users list (its largest page). */
30
+ people: async (s) => W(await i.request(X.usersList, { view: "active", order_col: "name", order_dir: "asc", page: 1, per_page: O }, s), { page: 1, pageSize: O }).rows.map((t) => ({ id: t.id, name: t.name }))
31
+ };
32
+ }
33
+ const ae = () => ee(S().http);
34
+ function se() {
35
+ const i = Y(), s = G();
36
+ return { ...i, failureMessage: (t, c) => s(t, c) ?? i.failureMessage(t, c) };
37
+ }
38
+ const te = {
39
+ class: "flex min-w-0 flex-col gap-group-gap",
40
+ "data-test": "service-account-form"
41
+ }, y = 0, he = /* @__PURE__ */ E({
42
+ __name: "ServiceAccountDialog",
43
+ emits: ["saved"],
44
+ setup(i, { expose: s, emit: t }) {
45
+ const c = t, { t: r } = D(), { access: C } = S(), L = T(), _ = ae(), { tenants: u } = J(), M = se(), v = V(() => {
46
+ const a = C.held(Q);
47
+ return a !== null && a.scope.id === void 0;
48
+ }), P = (a) => a.trim() === "", d = F({
49
+ ...M,
50
+ defaults: () => ({ name: "", description: "", tenant_id: u !== null && v.value ? y : null, owner_id: null }),
51
+ validator: {
52
+ safeParse(a) {
53
+ const n = a, o = [], w = r("core.account.validation.required"), h = r("core.serviceaccounts.errors.too_long");
54
+ return P(n.name) ? o.push({ path: ["name"], message: w }) : n.name.trim().length > 100 && o.push({ path: ["name"], message: h }), n.description.length > 500 && o.push({ path: ["description"], message: h }), n.owner_id === null && o.push({ path: ["owner_id"], message: w }), u !== null && n.tenant_id === null && o.push({ path: ["tenant_id"], message: w }), o.length > 0 || n.owner_id === null ? { success: !1, error: { issues: o } } : { success: !0, data: { name: n.name.trim(), description: n.description, tenant_id: u === null ? null : n.tenant_id || null, owner_id: n.owner_id } };
55
+ }
56
+ },
57
+ toValues: (a) => ({ name: a.name, description: a.description, tenant_id: a.tenant?.id ?? (v.value ? y : null), owner_id: a.owner.id }),
58
+ create: (a, { idempotencyKey: n }) => _.create(a, n),
59
+ update: (a, n, { idempotencyKey: o }) => _.update(a.id, n, o),
60
+ done: (a) => {
61
+ H.success(r("core.serviceaccounts.toasts.saved")), c("saved", a);
62
+ }
63
+ }), m = d.form, g = I(!1), R = x({
64
+ for: () => g.value && u !== null ? !0 : null,
65
+ load: async (a, { signal: n }) => [
66
+ ...v.value ? [{ value: y, label: L.levelLabel("organization") }] : [],
67
+ ...(await (u?.options(n) ?? [])).map((o) => ({ value: o.id, label: o.name }))
68
+ ]
69
+ }), $ = x({
70
+ for: () => g.value ? !0 : null,
71
+ load: async (a, { signal: n }) => (await _.people({ signal: n })).map((o) => ({ value: o.id, label: o.name }))
72
+ });
73
+ function z(a) {
74
+ g.value = !0, a ? d.edit(a) : d.create();
75
+ }
76
+ return s({ show: z, form: m }), (a, n) => (q(), A(e(j), {
77
+ command: e(d).command,
78
+ size: "md",
79
+ title: e(d).editing.value ? e(r)("core.serviceaccounts.edit_title") : e(r)("core.serviceaccounts.create_title"),
80
+ subtitle: e(r)("core.serviceaccounts.no_password"),
81
+ "confirm-label": e(r)("core.serviceaccounts.save")
82
+ }, {
83
+ default: b(() => [
84
+ K("div", te, [
85
+ p(e(k), null, {
86
+ default: b(() => [
87
+ p(e(Z), f(e(m).bind("name"), {
88
+ label: e(r)("core.serviceaccounts.fields.name"),
89
+ "max-length": 100,
90
+ required: ""
91
+ }), null, 16, ["label"]),
92
+ p(e(U), f(e(m).bind("description"), {
93
+ label: e(r)("core.serviceaccounts.fields.description"),
94
+ rows: 2,
95
+ "max-length": 500
96
+ }), null, 16, ["label"])
97
+ ]),
98
+ _: 1
99
+ }),
100
+ p(e(k), {
101
+ footer: e(r)("core.serviceaccounts.fields.owner_hint")
102
+ }, {
103
+ default: b(() => [
104
+ e(u) ? (q(), A(e(N), f({ key: 0 }, e(m).bind("tenant_id"), {
105
+ label: e(r)(e(u).labelKey),
106
+ options: e(R),
107
+ required: ""
108
+ }), null, 16, ["label", "options"])) : B("", !0),
109
+ p(e(N), f(e(m).bind("owner_id"), {
110
+ label: e(r)("core.serviceaccounts.fields.owner"),
111
+ options: e($),
112
+ required: ""
113
+ }), null, 16, ["label", "options"])
114
+ ]),
115
+ _: 1
116
+ }, 8, ["footer"])
117
+ ])
118
+ ]),
119
+ _: 1
120
+ }, 8, ["command", "title", "subtitle", "confirm-label"]));
121
+ }
122
+ });
123
+ export {
124
+ he as _,
125
+ se as a,
126
+ ae as u
127
+ };
@@ -2,28 +2,28 @@ import { defineComponent as P, useTemplateRef as F, ref as N, openBlock as r, cr
2
2
  import { useI18n as q } from "vue-i18n";
3
3
  import { useRoute as re } from "vue-router";
4
4
  import { u as le } from "./refusals-DfPzVNNY.js";
5
- import { a as ie } from "./PersonAccess.vue_vue_type_script_setup_true_lang-CWCt9_dM.js";
5
+ import { a as ie } from "./PersonAccess.vue_vue_type_script_setup_true_lang-D3yp43o5.js";
6
6
  import { _ as ee } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
7
7
  import { _ as ue } from "./Tabs.vue_vue_type_script_setup_true_lang-tpkGp98F.js";
8
- import { a as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
8
+ import { a as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js";
9
9
  import { g as p } from "./options-B48UiYsG.js";
10
10
  import { u as Q } from "./format-Cp1h0vsC.js";
11
11
  import { _ as te } from "./AlertDialog.vue_vue_type_script_setup_true_lang-CrFhR9rJ.js";
12
12
  import { t as j } from "./toast-CqSDTWRX.js";
13
13
  import { _ as de } from "./RecordHeader.vue_vue_type_script_setup_true_lang-SDgLjwEI.js";
14
- import { u as ae } from "./platform-DtISOEt7.js";
14
+ import { u as ae } from "./platform-ORzRR3Tw.js";
15
15
  import { u as me, a as ve } from "./routeResource-DlTsGTg_.js";
16
16
  import { a as fe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-DRC3h71-.js";
17
17
  import { _ as O } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
18
- import { m as ce, R as _e, l as pe, n as ye } from "./index-D-2NNye6.js";
19
- import { u as W, a as X, _ as ke } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-DDcaju7L.js";
18
+ import { m as ce, R as _e, l as pe, n as ye } from "./index--AF_DNhE.js";
19
+ import { u as W, a as X, _ as ke } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-Bo3phlqB.js";
20
20
  import { _ as J } from "./Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
21
21
  import { _ as be } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
22
22
  import { _ as ge } from "./Modal.vue_vue_type_script_setup_true_lang-DDS0iEnn.js";
23
23
  import { _ as xe } from "./Banner.vue_vue_type_script_setup_true_lang-sv0phngk.js";
24
24
  import { _ as we } from "./DateField.vue_vue_type_script_setup_true_lang-CKKG4JEg.js";
25
25
  import { _ as $e } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
26
- import { u as he, _ as Ce } from "./useCommand-Ch_nx1AQ.js";
26
+ import { u as he, _ as Ce } from "./useCommand-BvcU3AlW.js";
27
27
  async function Se(u) {
28
28
  try {
29
29
  return await navigator.clipboard.writeText(u), !0;
@@ -4,17 +4,17 @@ import { useRouter as G } from "vue-router";
4
4
  import { u as I } from "./refusals-DfPzVNNY.js";
5
5
  import { _ as K } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
6
6
  import { _ as M } from "./Tabs.vue_vue_type_script_setup_true_lang-tpkGp98F.js";
7
- import { a as P } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
7
+ import { a as P } from "./FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js";
8
8
  import { g as H } from "./options-B48UiYsG.js";
9
9
  import { _ as J } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
10
10
  import { u as Q } from "./format-Cp1h0vsC.js";
11
11
  import { _ as W } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-Bsv5j5Z8.js";
12
- import { u as X } from "./platform-DtISOEt7.js";
12
+ import { u as X } from "./platform-ORzRR3Tw.js";
13
13
  import { _ as Y } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
14
14
  import { _ as Z } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
15
  import { u as ee } from "./useLoad-M7V-AVwR.js";
16
- import { l as te, m as $, n as A } from "./index-D-2NNye6.js";
17
- import { u as ae, _ as oe } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-DDcaju7L.js";
16
+ import { l as te, m as $, n as A } from "./index--AF_DNhE.js";
17
+ import { u as ae, _ as oe } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-Bo3phlqB.js";
18
18
  const se = {
19
19
  class: "flex min-w-0 flex-col gap-group-gap",
20
20
  "data-test": "service-segment"
@@ -5,12 +5,12 @@ import { u as A } from "./describeError-B-NMa--w.js";
5
5
  import { i as g } from "./preferences-hYhrw8Uy.js";
6
6
  import { _ as k } from "./AlertDialog.vue_vue_type_script_setup_true_lang-CrFhR9rJ.js";
7
7
  import { t as y } from "./toast-CqSDTWRX.js";
8
- import { u as D } from "./platform-DtISOEt7.js";
8
+ import { u as D } from "./platform-ORzRR3Tw.js";
9
9
  import { b as L } from "./routeResource-DlTsGTg_.js";
10
10
  import { _ as O } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
11
11
  import { _ as T } from "./ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js";
12
- import { P as V, e as I, g as j, h as z } from "./index-D-2NNye6.js";
13
- import { i as F } from "./usePreferences-B8LIZp_f.js";
12
+ import { P as V, e as I, g as j, h as z } from "./index--AF_DNhE.js";
13
+ import { i as F } from "./usePreferences-BfMXVbSO.js";
14
14
  const G = {
15
15
  class: "flex min-w-0 flex-col gap-group-gap",
16
16
  "data-person-sessions": ""
@@ -3,25 +3,25 @@ import { useI18n as V } from "vue-i18n";
3
3
  import { useRouter as ae } from "vue-router";
4
4
  import { _ as oe } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-Bsv5j5Z8.js";
5
5
  import { t as C } from "./toast-CqSDTWRX.js";
6
- import { u as U } from "./serverMessages-DnTqVS3h.js";
6
+ import { u as U } from "./serverMessages-Ce8-MK4e.js";
7
7
  import { _ as W } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
8
- import { n as T, u as le, a as re } from "./index-DNeIZpXo.js";
8
+ import { n as T, u as le, a as re } from "./index-DYva-K_4.js";
9
9
  import { _ as H, a as j } from "./ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js";
10
10
  import { _ as I } from "./Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
11
11
  import { _ as ce } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
12
12
  import { u as ue } from "./format-Cp1h0vsC.js";
13
- import { a as R, u as de } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
13
+ import { a as R, u as de } from "./FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js";
14
14
  import { g as x } from "./options-B48UiYsG.js";
15
15
  import { _ as fe } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
16
16
  import { _ as me } from "./AlertDialog.vue_vue_type_script_setup_true_lang-CrFhR9rJ.js";
17
17
  import { _ as pe } from "./Menu.vue_vue_type_script_setup_true_lang-wKc9gdCn.js";
18
18
  import { _ as _e } from "./MenuButton.vue_vue_type_script_setup_true_lang-C-XRr5f2.js";
19
19
  import { _ as E } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
20
- import { u as X } from "./platform-DtISOEt7.js";
20
+ import { u as X } from "./platform-ORzRR3Tw.js";
21
21
  import { u as Y } from "./useLoad-M7V-AVwR.js";
22
22
  import { _ as ee } from "./SwitchField.vue_vue_type_script_setup_true_lang-Ds4q0bbl.js";
23
23
  import { _ as ve } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
24
- import { _ as ge } from "./FormView.vue_vue_type_script_setup_true_lang-DvbPEiNQ.js";
24
+ import { _ as ge } from "./FormView.vue_vue_type_script_setup_true_lang-Cfvh7rF6.js";
25
25
  import { _ as A } from "./TimeField.vue_vue_type_script_setup_true_lang-BDlTAMsh.js";
26
26
  import { a as K, n as be } from "./useTypedEntry-tttjrClq.js";
27
27
  const he = {
@@ -3,16 +3,16 @@ import { useI18n as A } from "vue-i18n";
3
3
  import { _ as B } from "./Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
4
4
  import { _ as V } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
5
5
  import { u as D } from "./format-Cp1h0vsC.js";
6
- import { a as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
6
+ import { a as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js";
7
7
  import { g as b } from "./options-B48UiYsG.js";
8
8
  import { u as U } from "./describeError-B-NMa--w.js";
9
9
  import { i as q } from "./preferences-hYhrw8Uy.js";
10
10
  import { t as h } from "./toast-CqSDTWRX.js";
11
- import { u as z, h as F } from "./platform-DtISOEt7.js";
11
+ import { u as z, h as F } from "./platform-ORzRR3Tw.js";
12
12
  import { b as L } from "./routeResource-DlTsGTg_.js";
13
13
  import { _ as O } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
14
- import { i as T } from "./usePreferences-B8LIZp_f.js";
15
- import { f as j, P as G, e as H, _ as J } from "./index-D-2NNye6.js";
14
+ import { i as T } from "./usePreferences-BfMXVbSO.js";
15
+ import { f as j, P as G, e as H, _ as J } from "./index--AF_DNhE.js";
16
16
  import { _ as K, a as M } from "./ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js";
17
17
  const Q = {
18
18
  key: 0,
@@ -3,10 +3,10 @@ import { useI18n as x } from "vue-i18n";
3
3
  import { useRoute as y, useRouter as h } from "vue-router";
4
4
  import { _ as I } from "./Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
5
5
  import { _ as N } from "./Panel.vue_vue_type_script_setup_true_lang-D_Wg42hu.js";
6
- import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-DvbPEiNQ.js";
6
+ import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-Cfvh7rF6.js";
7
7
  import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
8
- import { r as $ } from "./guards-DGcSfTEh.js";
9
- import { u as C, a as E } from "./index-D-2NNye6.js";
8
+ import { r as $ } from "./guards-6fJxfUtk.js";
9
+ import { u as C, a as E } from "./index--AF_DNhE.js";
10
10
  const V = { class: "flex flex-1 flex-col items-center justify-center gap-8" }, k = { class: "text-xl font-semibold text-content-strong" }, H = /* @__PURE__ */ d({
11
11
  __name: "SignInPage",
12
12
  setup(q) {
@@ -1,11 +1,11 @@
1
1
  import { defineComponent as g, ref as m, watch as p, openBlock as c, createElementBlock as v, createVNode as l, unref as e, withCtx as w, createBlock as x, createCommentVNode as y, createElementVNode as V, toDisplayString as $ } from "vue";
2
2
  import { useI18n as N } from "vue-i18n";
3
3
  import { i as S } from "./preferences-hYhrw8Uy.js";
4
- import { u as b } from "./platform-DtISOEt7.js";
4
+ import { u as b } from "./platform-ORzRR3Tw.js";
5
5
  import { b as k } from "./routeResource-DlTsGTg_.js";
6
6
  import { _ as I } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
7
7
  import { u as R } from "./useLoad-M7V-AVwR.js";
8
- import { P as C, i as E, j as B } from "./index-D-2NNye6.js";
8
+ import { P as C, i as E, j as B } from "./index--AF_DNhE.js";
9
9
  import { _ as P } from "./ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js";
10
10
  import { _ as h } from "./ViewTabs.vue_vue_type_script_setup_true_lang-BjdDXE3T.js";
11
11
  const U = {
@@ -1,24 +1,24 @@
1
1
  import { defineComponent as E, openBlock as N, createBlock as L, unref as e, withCtx as p, createVNode as n, mergeProps as q, provide as C, computed as _, useTemplateRef as D, createElementVNode as h, toDisplayString as S, createTextVNode as K } from "vue";
2
2
  import { useI18n as U } from "vue-i18n";
3
- import { u as z } from "./neighbors-Csfan8Ho.js";
3
+ import { u as z } from "./neighbors-DrEahe7B.js";
4
4
  import { _ as G } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
5
5
  import { u as I } from "./describeError-B-NMa--w.js";
6
6
  import { i as k } from "./preferences-hYhrw8Uy.js";
7
7
  import { _ as O } from "./AlertDialog.vue_vue_type_script_setup_true_lang-CrFhR9rJ.js";
8
8
  import { t as $ } from "./toast-CqSDTWRX.js";
9
- import { _ as j } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-D_08MS1-.js";
10
- import { u as V } from "./platform-DtISOEt7.js";
9
+ import { _ as j } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-TMdsmYAg.js";
10
+ import { u as V } from "./platform-ORzRR3Tw.js";
11
11
  import { a as F } from "./routeResource-DlTsGTg_.js";
12
12
  import { a as H } from "./ResourcePage.vue_vue_type_script_setup_true_lang-DRC3h71-.js";
13
13
  import { A as J } from "./access-DmAceEo5.js";
14
14
  import { _ as Q } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
15
  import { u as W } from "./useLoad-M7V-AVwR.js";
16
- import { i as X } from "./usePreferences-B8LIZp_f.js";
17
- import { P as Y, p as Z, c as ee, d as se, b as ae, M as te, o as oe, s as re } from "./index-D-2NNye6.js";
18
- import { a as ne } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
16
+ import { i as X } from "./usePreferences-BfMXVbSO.js";
17
+ import { P as Y, p as Z, c as ee, d as se, b as ae, M as te, o as oe, s as re } from "./index--AF_DNhE.js";
18
+ import { a as ne } from "./FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js";
19
19
  import { _ as A } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
20
- import { u as ie, _ as ce } from "./useCommand-Ch_nx1AQ.js";
21
- import { u as le } from "./serverMessages-DnTqVS3h.js";
20
+ import { u as ie, _ as ce } from "./useCommand-BvcU3AlW.js";
21
+ import { u as le } from "./serverMessages-Ce8-MK4e.js";
22
22
  const ue = /* @__PURE__ */ E({
23
23
  __name: "SetPasswordDialog",
24
24
  props: {
@@ -1,12 +1,12 @@
1
1
  import { defineComponent as C, useTemplateRef as N, computed as a, openBlock as i, createBlock as m, unref as s, withCtx as r, createVNode as d, createTextVNode as R, toDisplayString as l, createCommentVNode as S, createElementBlock as _, normalizeClass as p } from "vue";
2
2
  import { useI18n as E } from "vue-i18n";
3
3
  import { useRouter as $ } from "vue-router";
4
- import { u as B, _ as T } from "./CollectionPage.vue_vue_type_script_setup_true_lang-dIrdS_Gn.js";
4
+ import { u as B, _ as T } from "./CollectionPage.vue_vue_type_script_setup_true_lang-D5HsYIck.js";
5
5
  import { _ as V } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
6
6
  import { u as L } from "./format-Cp1h0vsC.js";
7
- import { u as z } from "./platform-DtISOEt7.js";
7
+ import { u as z } from "./platform-ORzRR3Tw.js";
8
8
  import { _ as A } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
9
- import { b as D, U as I, c as f, d as M, M as q, s as F } from "./index-D-2NNye6.js";
9
+ import { b as D, U as I, c as f, d as M, M as q, s as F } from "./index--AF_DNhE.js";
10
10
  const G = ["datetime"], Z = /* @__PURE__ */ C({
11
11
  __name: "UsersList",
12
12
  setup(K) {
@@ -0,0 +1,20 @@
1
+ import { type RouteLocationRaw } from "vue-router";
2
+ /**
3
+ * What a page the person may not open shows in its place: a lock, the sentence of `core.no_access`, whom to write to (the `contact`
4
+ * address, when the application has one) and a way back. Use it for `createApplication({ noAccess })`, which renders a component
5
+ * without props: `noAccess: () => h(RestrictedPanel, { contact: "access@example.com" })`.
6
+ *
7
+ * Back goes one step in the application's own history; a page opened directly (a bookmark, a shared link) has none, and going
8
+ * back there would leave the application, so it goes to `home` instead.
9
+ */
10
+ type __VLS_Props = {
11
+ /** An e-mail address to write to for access, shown as a link. */
12
+ contact?: string;
13
+ /** Where back goes when the application's history has no previous page. Default `/`. */
14
+ home?: RouteLocationRaw;
15
+ };
16
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
17
+ home: RouteLocationRaw;
18
+ contact: string;
19
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ export default _default;
@@ -13,3 +13,4 @@ export { roleProblems, useDescribeRefusal, useRefusalMessage } from "./refusals"
13
13
  export type { RoleProblem } from "./refusals";
14
14
  export { default as PersonAccess } from "./PersonAccess.vue";
15
15
  export { default as BindingRow } from "./BindingRow.vue";
16
+ export { default as RestrictedPanel } from "./RestrictedPanel.vue";
@@ -1,49 +1,109 @@
1
- import { _ as f, a as R, b } from "../PersonAccess.vue_vue_type_script_setup_true_lang-CWCt9_dM.js";
2
- import { d as o, p as c } from "../feature-DdUAfyi4.js";
3
- import { a as s, b as t } from "../refusals-DfPzVNNY.js";
4
- import { d as g, p as x, r as h, c as v, u as y, e as C, f as K } from "../refusals-DfPzVNNY.js";
5
- import { d as r } from "../defineRoutes-BGAdiIrt.js";
6
- const a = r({
7
- roles: { name: "access.roles", path: "/iam/roles", component: () => import("../RolesPage-NRRainCw.js"), meta: { access: s.viewRoles, titleKey: "core.access.title" } },
8
- newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("../NewRolePage-Dt0O0VSI.js"), meta: { access: s.manageRoles, titleKey: "core.access.new_title" } },
1
+ import { _ as Q, a as U, b as W } from "../PersonAccess.vue_vue_type_script_setup_true_lang-D3yp43o5.js";
2
+ import { d as _, p as x } from "../feature-DdUAfyi4.js";
3
+ import { a as n, b } from "../refusals-DfPzVNNY.js";
4
+ import { d as Y, p as Z, r as ee, c as se, u as te, e as oe, f as ce } from "../refusals-DfPzVNNY.js";
5
+ import { d as h } from "../defineRoutes-BGAdiIrt.js";
6
+ import { defineComponent as w, openBlock as m, createBlock as R, unref as s, withCtx as u, createElementVNode as a, createVNode as d, toDisplayString as o, normalizeClass as g, createElementBlock as k, createTextVNode as r, createCommentVNode as y } from "vue";
7
+ import { useI18n as C } from "vue-i18n";
8
+ import { useRouter as v } from "vue-router";
9
+ import { _ as P } from "../Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
10
+ import { _ as B } from "../Panel.vue_vue_type_script_setup_true_lang-D_Wg42hu.js";
11
+ import { _ as K } from "../Icon.vue_vue_type_script_lang-BhhsFYwp.js";
12
+ const p = h({
13
+ roles: { name: "access.roles", path: "/iam/roles", component: () => import("../RolesPage-MO1gAfdT.js"), meta: { access: n.viewRoles, titleKey: "core.access.title" } },
14
+ newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("../NewRolePage-dFLznJGH.js"), meta: { access: n.manageRoles, titleKey: "core.access.new_title" } },
9
15
  role: {
10
16
  name: "access.role",
11
17
  path: "/iam/roles/:ref",
12
- component: () => import("../RolePage-noy-wmNc.js"),
18
+ component: () => import("../RolePage-BtM2rFLm.js"),
13
19
  // A role's ref (its key, or the id of a custom one) swaps in place when a link leads to another role.
14
- meta: { access: s.viewRoles, titleKey: "core.access.title", remountOnParam: "ref" }
20
+ meta: { access: n.viewRoles, titleKey: "core.access.title", remountOnParam: "ref" }
15
21
  }
16
- }), m = {
17
- access: s.viewAccess,
22
+ }), M = {
23
+ access: n.viewAccess,
18
24
  section: { labelKey: "core.access.person_roles", icon: "shieldStarFill" }
19
25
  };
20
- function u(e) {
21
- return o({
26
+ function O(e) {
27
+ return _({
22
28
  id: "access",
23
- routes: a.records,
24
- context: c(t, {
29
+ routes: p.records,
30
+ context: x(b, {
25
31
  catalogue: e.catalogue,
26
32
  subjectRoute: e.subjectRoute ?? (() => null),
27
33
  constraints: e.roleConstraints ?? [],
28
34
  problems: e.problems ?? {},
29
35
  scopes: e.scopes ?? null
30
36
  }),
31
- navigation: e.destination ? [{ destination: e.destination, to: a.roles, within: ["access.role", "access.roles.new"] }] : []
37
+ navigation: e.destination ? [{ destination: e.destination, to: p.roles, within: ["access.role", "access.roles.new"] }] : []
32
38
  });
33
39
  }
40
+ const z = {
41
+ "data-test": "restricted-panel",
42
+ class: "flex flex-1 flex-col items-center justify-center px-4 py-16 text-center"
43
+ }, L = { class: "mb-2 text-lg font-semibold text-content-strong" }, N = {
44
+ key: 0,
45
+ class: "mb-6 text-subheadline text-content-muted"
46
+ }, S = ["href"], G = /* @__PURE__ */ w({
47
+ __name: "RestrictedPanel",
48
+ props: {
49
+ contact: { default: void 0 },
50
+ home: { default: "/" }
51
+ },
52
+ setup(e) {
53
+ const t = e, i = v(), { t: c } = C();
54
+ function f() {
55
+ window.history.state?.back ? i.back() : i.push(t.home);
56
+ }
57
+ return (V, l) => (m(), R(s(B), null, {
58
+ default: u(() => [
59
+ a("div", z, [
60
+ d(s(K), {
61
+ name: "lockLine",
62
+ size: 32,
63
+ class: "mb-6 size-12 text-status-danger-content"
64
+ }),
65
+ a("h2", L, o(s(c)("core.no_access.title")), 1),
66
+ a("p", {
67
+ class: g(["max-w-prose text-subheadline text-content-muted", t.contact ? "mb-1" : "mb-6"])
68
+ }, o(s(c)("core.no_access.body")), 3),
69
+ t.contact ? (m(), k("p", N, [
70
+ r(o(s(c)("core.no_access.contact")) + " ", 1),
71
+ a("a", {
72
+ href: `mailto:${t.contact}`,
73
+ class: "text-content-link hover:underline"
74
+ }, o(t.contact), 9, S),
75
+ l[0] || (l[0] = r(". ", -1))
76
+ ])) : y("", !0),
77
+ d(s(P), {
78
+ size: "sm",
79
+ icon: "arrowLeftSLine",
80
+ onClick: f
81
+ }, {
82
+ default: u(() => [
83
+ r(o(s(c)("core.no_access.back")), 1)
84
+ ]),
85
+ _: 1
86
+ })
87
+ ])
88
+ ]),
89
+ _: 1
90
+ }));
91
+ }
92
+ });
34
93
  export {
35
- f as BindingRow,
36
- R as PersonAccess,
37
- u as accessFeature,
38
- a as accessPages,
39
- s as accessPermissions,
40
- b as accessRoutes,
41
- g as dependantsClosure,
42
- x as permissionTree,
43
- m as personRolesSection,
44
- h as requiredClosure,
45
- v as roleProblems,
46
- y as useAccessLabels,
47
- C as useDescribeRefusal,
48
- K as useRefusalMessage
94
+ Q as BindingRow,
95
+ U as PersonAccess,
96
+ G as RestrictedPanel,
97
+ O as accessFeature,
98
+ p as accessPages,
99
+ n as accessPermissions,
100
+ W as accessRoutes,
101
+ Y as dependantsClosure,
102
+ Z as permissionTree,
103
+ M as personRolesSection,
104
+ ee as requiredClosure,
105
+ se as roleProblems,
106
+ te as useAccessLabels,
107
+ oe as useDescribeRefusal,
108
+ ce as useRefusalMessage
49
109
  };
@@ -106,8 +106,8 @@ export interface ApplicationOptions {
106
106
  describeError?: AppErrorDescriber;
107
107
  /**
108
108
  * The application's one sentence for a field message the server sent (often a code or a translation key), for every form
109
- * (`useForm`, `useResourceForm`, `useCommand`) that has no `describeFieldError` of its own; a form's own wins. Without either,
110
- * messages show as sent.
109
+ * (`useForm`, `useResourceForm`, `useCommand`) that has no `describeFieldError` of its own; a form's own wins. Without either, go-core's validator keys (`validation_errors.*`) are worded by the library and
110
+ * other messages show as sent.
111
111
  */
112
112
  describeFieldError?: AppFieldErrorDescriber;
113
113
  /** Called with every error the application catches (component errors, unhandled rejections, failed effects and loads). Default: `console.error`. */
@@ -1,3 +1,4 @@
1
+ import type { HttpClient } from "../client";
1
2
  import type { Application } from "./application";
2
3
  /** Called by `createApplication`; the returned function unbinds, and only if this application is still the current one. */
3
4
  export declare function bindApplication(application: Application): () => void;
@@ -9,3 +10,8 @@ export declare function bindApplication(application: Application): () => void;
9
10
  * Throws before one exists. In a unit test make one first: `createTestApplication()` from `@wssto2/vue-core/testing`, and `dispose()` it after.
10
11
  */
11
12
  export declare function currentApplication(): Application;
13
+ /**
14
+ * The platform's HTTP client of the current application, for an `api.ts` (`const http = currentHttp` is a module's one line of setup).
15
+ * Call it when a request is made, not at module load: it throws before `createApplication` ran.
16
+ */
17
+ export declare function currentHttp(): HttpClient;
@@ -1,6 +1,6 @@
1
1
  export { createApplication } from "./application";
2
2
  export type { Application, ApplicationI18n, ApplicationErrorReport, ApplicationI18nOptions, ApplicationLocaleOptions, ApplicationOptions, ApplicationRouterOptions, ShellDefinition, } from "./application";
3
- export { currentApplication } from "./current";
3
+ export { currentApplication, currentHttp } from "./current";
4
4
  export { ShellOutlet } from "./contributions";
5
5
  export { applicationKey, useApplication } from "./environment";
6
6
  export type { ApplicationEnvironment, ApplicationState } from "./environment";
package/dist/app/index.js CHANGED
@@ -1,18 +1,19 @@
1
- import { A as o, c as r } from "../application-CrXtiGdw.js";
2
- import { c as t } from "../current-B0lHKTWr.js";
3
- import { S as i } from "../contributions-obnyn03x.js";
4
- import { a as c, u as l } from "../environment-Dva-SG8D.js";
5
- import { d as f, p as x } from "../feature-DdUAfyi4.js";
6
- import { k as A, u as d } from "../keepAlive-ClGnsIzT.js";
1
+ import { A as r, c as o } from "../application-2gHiwAVy.js";
2
+ import { c as p, a as s } from "../current-CslcEPXp.js";
3
+ import { S as n } from "../contributions-9CPT-Z5v.js";
4
+ import { a as l, u } from "../environment-Dva-SG8D.js";
5
+ import { d as x, p as m } from "../feature-DdUAfyi4.js";
6
+ import { k as d, u as S } from "../keepAlive-ClGnsIzT.js";
7
7
  export {
8
- o as ApplicationError,
9
- i as ShellOutlet,
10
- c as applicationKey,
11
- r as createApplication,
12
- t as currentApplication,
13
- f as defineFeature,
14
- A as keepSessionAlive,
15
- x as provideContext,
16
- l as useApplication,
17
- d as useLanguages
8
+ r as ApplicationError,
9
+ n as ShellOutlet,
10
+ l as applicationKey,
11
+ o as createApplication,
12
+ p as currentApplication,
13
+ s as currentHttp,
14
+ x as defineFeature,
15
+ d as keepSessionAlive,
16
+ m as provideContext,
17
+ u as useApplication,
18
+ S as useLanguages
18
19
  };