@antelopejs/dms 0.4.3 → 0.4.5

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 (85) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/config.d.ts +1 -0
  3. package/dist/config.js.map +1 -1
  4. package/dist/implementations/dms/page.d.ts +1 -0
  5. package/dist/implementations/dms/page.js +8 -1
  6. package/dist/implementations/dms/page.js.map +1 -1
  7. package/dist/implementations/dms/stale-session.d.ts +2 -0
  8. package/dist/implementations/dms/stale-session.js +16 -0
  9. package/dist/implementations/dms/stale-session.js.map +1 -0
  10. package/dist/implementations/dms-auth/index.d.ts +1 -0
  11. package/dist/implementations/dms-auth/index.js +19 -0
  12. package/dist/implementations/dms-auth/index.js.map +1 -1
  13. package/dist/routes/auth/client-ip.d.ts +7 -0
  14. package/dist/routes/auth/client-ip.js +42 -0
  15. package/dist/routes/auth/client-ip.js.map +1 -0
  16. package/dist/routes/auth/index.d.ts +1 -0
  17. package/dist/routes/auth/index.js +1 -0
  18. package/dist/routes/auth/index.js.map +1 -1
  19. package/dist/routes/auth.d.ts +3 -0
  20. package/dist/routes/auth.js +15 -4
  21. package/dist/routes/auth.js.map +1 -1
  22. package/dist/test/integration/auth/client-ip.test.d.ts +1 -0
  23. package/dist/test/integration/auth/client-ip.test.js +14 -0
  24. package/dist/test/integration/auth/client-ip.test.js.map +1 -0
  25. package/dist/test/integration/page-session.test.d.ts +1 -0
  26. package/dist/test/integration/page-session.test.js +52 -0
  27. package/dist/test/integration/page-session.test.js.map +1 -0
  28. package/dist/test/unit/client-ip.test.d.ts +1 -0
  29. package/dist/test/unit/client-ip.test.js +77 -0
  30. package/dist/test/unit/client-ip.test.js.map +1 -0
  31. package/dist/test/unit/interfaces/dms-base/form-catalog.test.d.ts +1 -0
  32. package/dist/test/unit/interfaces/dms-base/form-catalog.test.js +62 -0
  33. package/dist/test/unit/interfaces/dms-base/form-catalog.test.js.map +1 -0
  34. package/dist/test/unit/interfaces/dms-base/period-selector-catalog.test.d.ts +1 -0
  35. package/dist/test/unit/interfaces/dms-base/period-selector-catalog.test.js +36 -0
  36. package/dist/test/unit/interfaces/dms-base/period-selector-catalog.test.js.map +1 -0
  37. package/dist/test/unit/interfaces/dms-base/resource-form.test.d.ts +1 -0
  38. package/dist/test/unit/interfaces/dms-base/resource-form.test.js +117 -0
  39. package/dist/test/unit/interfaces/dms-base/resource-form.test.js.map +1 -0
  40. package/dist/test/unit/interfaces/dms-base/table-and-card-catalog.test.d.ts +1 -0
  41. package/dist/test/unit/interfaces/dms-base/table-and-card-catalog.test.js +62 -0
  42. package/dist/test/unit/interfaces/dms-base/table-and-card-catalog.test.js.map +1 -0
  43. package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.d.ts +1 -0
  44. package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.js +96 -0
  45. package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.js.map +1 -0
  46. package/frontend-vue/layers/dms-auth/app/middleware/auth.ts +5 -2
  47. package/frontend-vue/layers/dms-core/app/composables/useApiError.ts +27 -2
  48. package/frontend-vue/layers/dms-core/app/utils/menu.ts +26 -10
  49. package/frontend-vue/layers/dms-core/app/utils/routePath.ts +23 -0
  50. package/frontend-vue/layers/dms-core/i18n/locales/core-en-GB.json +3 -0
  51. package/frontend-vue/layers/dms-core/i18n/locales/core-fr-FR.json +3 -0
  52. package/frontend-vue/layers/dms-core/shared/types/runtime-config.d.ts +4 -1
  53. package/frontend-vue/layers/dms-layout/app/app.config.ts +9 -1
  54. package/frontend-vue/layers/dms-layout/app/components/navigation/CollapsedMenuItem.vue +0 -5
  55. package/frontend-vue/layers/dms-layout/app/components/profile/ProfileLanguage.vue +3 -23
  56. package/frontend-vue/layers/dms-layout/app/composables/profile/useUserLanguage.ts +33 -0
  57. package/frontend-vue/layers/dms-layout/app/plugins/command-palette-session.client.ts +2 -1
  58. package/frontend-vue/layers/dms-ui/app/build/composables/data-types/registerDefaults.ts +31 -3
  59. package/frontend-vue/layers/dms-ui/app/build/composables/data-types/relationBadges.ts +36 -0
  60. package/frontend-vue/layers/dms-ui/app/build/types/tree.ts +5 -10
  61. package/frontend-vue/layers/dms-ui/app/components/Placeholder.vue +17 -5
  62. package/frontend-vue/layers/dms-ui/app/components/chart/ChartCard.vue +14 -9
  63. package/frontend-vue/layers/dms-ui/app/components/form/Form.vue +8 -5
  64. package/frontend-vue/layers/dms-ui/app/components/grid/Grid.vue +15 -5
  65. package/frontend-vue/layers/dms-ui/app/components/grid/GridRow.vue +7 -4
  66. package/frontend-vue/layers/dms-ui/app/components/grid/constants.ts +8 -1
  67. package/frontend-vue/layers/dms-ui/app/components/kpi/KpiCard.vue +14 -9
  68. package/frontend-vue/layers/dms-ui/app/composables/chart/formatValue.ts +15 -0
  69. package/frontend-vue/layers/dms-ui/app/composables/chart/types.ts +4 -2
  70. package/frontend-vue/layers/dms-ui/app/composables/form/types/props.ts +2 -0
  71. package/frontend-vue/layers/dms-ui/app/composables/form/useForm.ts +53 -4
  72. package/frontend-vue/layers/dms-ui/app/composables/tree/useTree.ts +5 -7
  73. package/frontend-vue/layers/dms-ui/i18n/locales/ui-en-GB.json +1 -0
  74. package/frontend-vue/layers/dms-ui/i18n/locales/ui-fr-FR.json +1 -0
  75. package/frontend-vue/tests/api-error-title.test.ts +24 -0
  76. package/frontend-vue/tests/auth-middleware-error.test.ts +58 -0
  77. package/frontend-vue/tests/button-disabled-theme.test.ts +21 -0
  78. package/frontend-vue/tests/chart-absent-value.test.ts +78 -0
  79. package/frontend-vue/tests/form-actions.test.ts +27 -0
  80. package/frontend-vue/tests/form-submit-target.test.ts +28 -0
  81. package/frontend-vue/tests/menu-navigation.test.ts +39 -10
  82. package/frontend-vue/tests/relation-badges.test.ts +32 -0
  83. package/frontend-vue/tests/tree-without-source.test.ts +79 -0
  84. package/frontend-vue/tests/user-language.test.ts +58 -0
  85. package/package.json +1 -1
@@ -0,0 +1,58 @@
1
+ import { afterEach, describe, expect, it, vi } from "vitest";
2
+ import { useUserLanguage } from "../layers/dms-layout/app/composables/profile/useUserLanguage";
3
+
4
+ interface LanguageHarness {
5
+ setLocale: ReturnType<typeof vi.fn>;
6
+ authFetch: ReturnType<typeof vi.fn>;
7
+ refreshUser: ReturnType<typeof vi.fn>;
8
+ }
9
+
10
+ function stubComposables(authFetch = vi.fn(async () => ({}))): LanguageHarness {
11
+ const harness: LanguageHarness = {
12
+ setLocale: vi.fn(async () => {}),
13
+ authFetch,
14
+ refreshUser: vi.fn(async () => {}),
15
+ };
16
+ vi.stubGlobal("useDmsApp", () => ({
17
+ $i18n: { setLocale: harness.setLocale },
18
+ }));
19
+ vi.stubGlobal("useAuthFetch", () => ({ $authFetch: harness.authFetch }));
20
+ vi.stubGlobal("useUserSession", () => ({
21
+ user: { value: { name: "Ada", email: "ada@example.com", language: "en" } },
22
+ fetch: harness.refreshUser,
23
+ }));
24
+ return harness;
25
+ }
26
+
27
+ afterEach(() => {
28
+ vi.unstubAllGlobals();
29
+ });
30
+
31
+ describe("useUserLanguage", () => {
32
+ it("applies the language and stores it on the user's profile", async () => {
33
+ const harness = stubComposables();
34
+
35
+ await useUserLanguage().changeLanguage("fr");
36
+
37
+ expect(harness.setLocale).toHaveBeenCalledWith("fr");
38
+ expect(harness.authFetch).toHaveBeenCalledWith("/settings/user/profile", {
39
+ method: "POST",
40
+ body: { name: "Ada", email: "ada@example.com", language: "fr" },
41
+ });
42
+ expect(harness.refreshUser).toHaveBeenCalled();
43
+ });
44
+
45
+ it("keeps the applied language when the profile update fails", async () => {
46
+ const harness = stubComposables(
47
+ vi.fn(async () => {
48
+ throw new Error("offline");
49
+ }),
50
+ );
51
+
52
+ await expect(useUserLanguage().changeLanguage("fr")).resolves.toBe(
53
+ undefined,
54
+ );
55
+ expect(harness.setLocale).toHaveBeenCalledWith("fr");
56
+ expect(harness.refreshUser).not.toHaveBeenCalled();
57
+ });
58
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antelopejs/dms",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/AntelopeJS/dms.git"