@mapomodule/core 1.0.0 → 2.0.0-beta.2

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 (83) hide show
  1. package/README.md +46 -0
  2. package/dist/index.d.mts +13 -0
  3. package/dist/index.d.ts +5 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.mjs +3 -0
  6. package/dist/module.d.mts +10 -0
  7. package/dist/module.d.ts +10 -0
  8. package/dist/module.d.ts.map +1 -0
  9. package/dist/module.json +9 -0
  10. package/dist/module.mjs +73 -0
  11. package/dist/runtime/__tests__/plugins/00.fetch.spec.d.ts +2 -0
  12. package/dist/runtime/__tests__/plugins/00.fetch.spec.d.ts.map +1 -0
  13. package/dist/runtime/api/crud.d.ts +23 -0
  14. package/dist/runtime/api/crud.d.ts.map +1 -0
  15. package/dist/runtime/api/crud.js +74 -0
  16. package/dist/runtime/api/multipart.d.ts +15 -0
  17. package/dist/runtime/api/multipart.d.ts.map +1 -0
  18. package/dist/runtime/api/multipart.js +31 -0
  19. package/dist/runtime/auth/useCanAccessRoute.d.ts +12 -0
  20. package/dist/runtime/auth/useCanAccessRoute.d.ts.map +1 -0
  21. package/dist/runtime/auth/useCanAccessRoute.js +28 -0
  22. package/dist/runtime/auth/useMapoAuth.d.ts +28 -0
  23. package/dist/runtime/auth/useMapoAuth.d.ts.map +1 -0
  24. package/dist/runtime/auth/useMapoAuth.js +38 -0
  25. package/dist/runtime/composables/useMapo.d.ts +48 -0
  26. package/dist/runtime/composables/useMapo.d.ts.map +1 -0
  27. package/dist/runtime/composables/useMapo.js +15 -0
  28. package/dist/runtime/middleware/auth.d.ts +10 -0
  29. package/dist/runtime/middleware/auth.d.ts.map +1 -0
  30. package/dist/runtime/middleware/auth.js +15 -0
  31. package/dist/runtime/middleware/permissions.d.ts +20 -0
  32. package/dist/runtime/middleware/permissions.d.ts.map +1 -0
  33. package/dist/runtime/middleware/permissions.js +27 -0
  34. package/dist/runtime/middleware/roles.d.ts +12 -0
  35. package/dist/runtime/middleware/roles.d.ts.map +1 -0
  36. package/dist/runtime/middleware/roles.js +13 -0
  37. package/dist/runtime/page-meta.nuxt.d.ts +23 -0
  38. package/dist/runtime/plugins/00.fetch.d.ts +21 -0
  39. package/dist/runtime/plugins/00.fetch.d.ts.map +1 -0
  40. package/dist/runtime/plugins/00.fetch.js +57 -0
  41. package/dist/runtime/plugins/01.init.server.d.ts +14 -0
  42. package/dist/runtime/plugins/01.init.server.d.ts.map +1 -0
  43. package/dist/runtime/plugins/01.init.server.js +37 -0
  44. package/dist/runtime/types.d.ts +62 -0
  45. package/dist/runtime/types.d.ts.map +1 -0
  46. package/dist/runtime/types.js +10 -0
  47. package/dist/runtime/types.nuxt.d.ts +18 -0
  48. package/dist/runtime/utils/useMapoFetch.d.ts +30 -0
  49. package/dist/runtime/utils/useMapoFetch.d.ts.map +1 -0
  50. package/dist/runtime/utils/useMapoFetch.js +8 -0
  51. package/dist/types.d.mts +13 -0
  52. package/dist/types.d.ts +13 -0
  53. package/dist/types.d.ts.map +1 -0
  54. package/package.json +58 -15
  55. package/src/index.ts +4 -0
  56. package/src/module.ts +102 -0
  57. package/src/runtime/__tests__/plugins/00.fetch.spec.ts +144 -0
  58. package/src/runtime/api/crud.ts +130 -0
  59. package/src/runtime/api/multipart.ts +78 -0
  60. package/src/runtime/auth/useCanAccessRoute.ts +48 -0
  61. package/src/runtime/auth/useMapoAuth.ts +91 -0
  62. package/src/runtime/composables/useMapo.ts +61 -0
  63. package/src/runtime/middleware/auth.ts +24 -0
  64. package/src/runtime/middleware/permissions.ts +52 -0
  65. package/src/runtime/middleware/roles.ts +23 -0
  66. package/src/runtime/page-meta.nuxt.d.ts +23 -0
  67. package/src/runtime/plugins/00.fetch.ts +85 -0
  68. package/src/runtime/plugins/01.init.server.ts +62 -0
  69. package/src/runtime/types.nuxt.d.ts +18 -0
  70. package/src/runtime/types.ts +88 -0
  71. package/src/runtime/utils/useMapoFetch.ts +41 -0
  72. package/src/types.ts +13 -0
  73. package/CHANGELOG.md +0 -248
  74. package/api/crud.js +0 -141
  75. package/api/multipart.js +0 -41
  76. package/index.js +0 -134
  77. package/interceptor/auth.js +0 -26
  78. package/interceptor/index.js +0 -5
  79. package/middleware/auth.js +0 -10
  80. package/middleware/permissions.js +0 -36
  81. package/middleware/roles.js +0 -10
  82. package/module.js +0 -44
  83. package/templates/options.js +0 -1
@@ -0,0 +1,85 @@
1
+ import { ref, computed } from "vue";
2
+ import {
3
+ defineNuxtPlugin,
4
+ navigateTo,
5
+ useRoute,
6
+ useRuntimeConfig,
7
+ } from "nuxt/app";
8
+ import { useAuthStore } from "@mapomodule/store/runtime/stores/auth";
9
+ import { useSnackStore } from "@mapomodule/store/runtime/stores/snack";
10
+ import type { MapoCoreRuntimeConfig } from "../types";
11
+
12
+ /**
13
+ * Registers the global Mapo fetch client and loading state.
14
+ *
15
+ * The plugin provides:
16
+ * - `$mapoFetch`: a shared `$fetch` instance with centralized request/response hooks.
17
+ * - `$mapoFetchLoading`: a computed boolean based on a global pending-request counter.
18
+ *
19
+ * Error handling behavior:
20
+ * - `401` (except logout calls): reset auth state and, on client, redirect to login
21
+ * with the current route encoded in a `redirect` query parameter.
22
+ * - `403`: show a global "Permission denied" error snackbar.
23
+ */
24
+ export default defineNuxtPlugin({
25
+ name: "mapo-core:fetch",
26
+ enforce: "pre",
27
+ setup() {
28
+ const rc = useRuntimeConfig().public.mapoCore as MapoCoreRuntimeConfig;
29
+ const logoutUrl = rc.logoutUrl;
30
+ const loginUrl = rc.loginUrl;
31
+
32
+ // Track whether a 401 redirect is already in flight to prevent duplicate redirects.
33
+ let redirectInFlight = false;
34
+
35
+ const handle = (status: number, requestUrl: string) => {
36
+ if (
37
+ status === 401 &&
38
+ !requestUrl.includes(logoutUrl) &&
39
+ !redirectInFlight
40
+ ) {
41
+ redirectInFlight = true;
42
+ const auth = useAuthStore();
43
+ auth.reset();
44
+ if (import.meta.client) {
45
+ const route = useRoute();
46
+ navigateTo(
47
+ `${loginUrl}?redirect=${encodeURIComponent(route.fullPath)}`,
48
+ );
49
+ }
50
+ }
51
+ if (status === 403) {
52
+ useSnackStore().show("Permission denied", "error");
53
+ }
54
+ };
55
+
56
+ // Global loading counter — incremented on every request, decremented once on every
57
+ // response (success or error) or request error. Exposed as $mapoFetchLoading so any
58
+ // component can show a spinner without wrapping every fetch call manually.
59
+ const pending = ref(0);
60
+ const mapoFetchLoading = computed(() => pending.value > 0);
61
+
62
+ const mapoFetch = $fetch.create({
63
+ onRequest() {
64
+ pending.value++;
65
+ },
66
+ onResponse({ response, request }) {
67
+ pending.value--;
68
+ handle(response.status, String(request));
69
+ },
70
+ onResponseError({ response, request, error }) {
71
+ pending.value--;
72
+ handle(response?.status ?? 0, String(request));
73
+ return Promise.reject(error);
74
+ },
75
+ onRequestError() {
76
+ // Decrement counter on network errors (no response received).
77
+ pending.value--;
78
+ },
79
+ });
80
+
81
+ return {
82
+ provide: { mapoFetch, mapoFetchLoading },
83
+ };
84
+ },
85
+ });
@@ -0,0 +1,62 @@
1
+ import {
2
+ defineNuxtPlugin,
3
+ useRuntimeConfig,
4
+ useCookie,
5
+ useRequestHeaders,
6
+ useRequestURL,
7
+ } from "nuxt/app";
8
+ import { setActivePinia } from "pinia";
9
+ import type { Pinia } from "pinia";
10
+ import { useAuthStore } from "@mapomodule/store/runtime/stores/auth";
11
+ import { useSidebarStore } from "@mapomodule/store/runtime/stores/sidebar";
12
+ import type { MapoUser } from "@mapomodule/store/runtime/types";
13
+ import { CoreCookieEnum } from "../types";
14
+ import type { MapoCoreRuntimeConfig } from "../types";
15
+
16
+ /**
17
+ * Performs server-side bootstrap of Mapo runtime stores.
18
+ *
19
+ * On each SSR request, this plugin:
20
+ * - Activates the request Pinia instance and initializes auth/sidebar stores.
21
+ * - Restores sidebar UI state from cookies.
22
+ * - If the HttpOnly session cookie is present, calls the configured `userInfoApi`
23
+ * (forwarding request cookies) to restore the authenticated user in the auth store.
24
+ *
25
+ * On session restore failure, it resets auth state and clears the session cookie.
26
+ */
27
+ export default defineNuxtPlugin({
28
+ name: "mapo-core:init",
29
+ async setup(nuxtApp) {
30
+ const runtimeConfig = useRuntimeConfig().public.mapoCore as
31
+ | MapoCoreRuntimeConfig
32
+ | undefined;
33
+ const userInfoApi = runtimeConfig?.userInfoApi ?? "/api/profiles/me/";
34
+
35
+ const pinia = nuxtApp.$pinia as Pinia;
36
+ setActivePinia(pinia);
37
+ const authStore = useAuthStore(pinia);
38
+ const sidebarStore = useSidebarStore(pinia);
39
+
40
+ sidebarStore.hydrateFromCookies();
41
+
42
+ // The session cookie is HttpOnly — readable on SSR but not on the client.
43
+ // If present, hydrate the auth store by fetching the user with the
44
+ // incoming Cookie header forwarded to the proxy middleware.
45
+ const sessionCookie = useCookie(CoreCookieEnum.Session);
46
+ if (!sessionCookie.value) return;
47
+
48
+ try {
49
+ const headers = useRequestHeaders(["cookie"]);
50
+ const url = useRequestURL();
51
+ const absolute = `${url.protocol}//${url.host}${userInfoApi}`;
52
+ const user = await (
53
+ nuxtApp.$mapoFetch as (url: string, opts: object) => Promise<unknown>
54
+ )(absolute, { method: "GET", headers });
55
+ authStore.setUser(user as MapoUser);
56
+ } catch (e) {
57
+ console.error(`[mapo] Cannot restore session from cookie:\n${e}`);
58
+ authStore.reset();
59
+ sessionCookie.value = null;
60
+ }
61
+ },
62
+ });
@@ -0,0 +1,18 @@
1
+ import type { $Fetch } from "ofetch";
2
+
3
+ declare module "nuxt/app" {
4
+ interface NuxtApp {
5
+ $mapoFetch: $Fetch;
6
+ }
7
+ }
8
+
9
+ declare module "vue-router" {
10
+ interface RouteMeta {
11
+ permissions?: { model: string } | string[];
12
+ roles?: string[];
13
+ /** Route middleware names applied to this route. Read by useCanAccessRoute for sidebar visibility. */
14
+ middleware?: string | string[];
15
+ }
16
+ }
17
+
18
+ export {};
@@ -0,0 +1,88 @@
1
+ export enum MultipartPolicyEnum {
2
+ Auto = "auto",
3
+ Force = "force",
4
+ Disable = "disable",
5
+ }
6
+
7
+ export type MultipartPolicy = `${MultipartPolicyEnum}`;
8
+
9
+ export enum CoreCookieEnum {
10
+ Session = "__mapo_session",
11
+ }
12
+
13
+ export interface ListParams {
14
+ page?: number;
15
+ limit?: number;
16
+ search?: string;
17
+ ordering?: string;
18
+ [key: string]: unknown;
19
+ }
20
+
21
+ export interface PaginatedResponse<T> {
22
+ results: T[];
23
+ count: number;
24
+ next?: string | null;
25
+ previous?: string | null;
26
+ }
27
+
28
+ export type ApiResponse<T> = T;
29
+
30
+ export interface CrudConfig {
31
+ baseURL?: string;
32
+ headers?: Record<string, string>;
33
+ [key: string]: unknown;
34
+ }
35
+
36
+ export interface CrudOptions {
37
+ multipart?: MultipartPolicy;
38
+ }
39
+
40
+ export interface CrudRepository<T> {
41
+ list(params?: ListParams, config?: CrudConfig): Promise<PaginatedResponse<T>>;
42
+ detail(id: string | number, config?: CrudConfig): Promise<T>;
43
+ create(data: Partial<T>, config?: CrudConfig, opts?: CrudOptions): Promise<T>;
44
+ update(
45
+ id: string | number,
46
+ data: Partial<T>,
47
+ config?: CrudConfig,
48
+ opts?: CrudOptions,
49
+ ): Promise<T>;
50
+ partialUpdate(
51
+ id: string | number,
52
+ diff: Partial<T>,
53
+ config?: CrudConfig,
54
+ opts?: CrudOptions,
55
+ ): Promise<T>;
56
+ delete(id: string | number, config?: CrudConfig): Promise<void>;
57
+ updateOrCreate(
58
+ data: Partial<T> & { id?: string | number },
59
+ config?: CrudConfig,
60
+ opts?: CrudOptions,
61
+ ): Promise<T>;
62
+ updateOrder(
63
+ startId: string | number,
64
+ endId: string | number,
65
+ config?: CrudConfig,
66
+ ): Promise<void>;
67
+ }
68
+
69
+ export interface Credentials {
70
+ username: string;
71
+ password: string;
72
+ }
73
+
74
+ export interface AuthToken {
75
+ token: string;
76
+ [key: string]: unknown;
77
+ }
78
+
79
+ /**
80
+ * Shape of `runtimeConfig.public.mapoCore` as written by the module setup.
81
+ * All entries are guaranteed by the module `defaults`.
82
+ */
83
+ export interface MapoCoreRuntimeConfig {
84
+ authLoginUrl: string;
85
+ userInfoApi: string;
86
+ logoutUrl: string;
87
+ loginUrl: string;
88
+ }
@@ -0,0 +1,41 @@
1
+ import { useNuxtApp } from "nuxt/app";
2
+ import type { $Fetch } from "ofetch";
3
+ import type { ComputedRef } from "vue";
4
+
5
+ export interface UseMapoFetchReturn {
6
+ /** The auth-aware `$mapoFetch` instance (same one provided by the plugin). */
7
+ fetch: $Fetch;
8
+ /**
9
+ * `true` while at least one `$mapoFetch` request is in flight — globally,
10
+ * across the entire app. Incremented by the plugin-level `onRequest` hook
11
+ * and decremented by `onResponse` / `onResponseError`, so it stays accurate
12
+ * even for raw `useNuxtApp().$mapoFetch` calls outside this composable.
13
+ */
14
+ loading: ComputedRef<boolean>;
15
+ }
16
+
17
+ /**
18
+ * Returns the global `$mapoFetch` instance together with a centralized
19
+ * `loading` indicator that tracks **all** in-flight `$mapoFetch` requests,
20
+ * not just the ones made through this composable.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * const { fetch, loading } = useMapoFetch()
25
+ * await fetch('/api/articles/', { method: 'POST', body: payload })
26
+ * ```
27
+ *
28
+ * ```vue
29
+ * <UButton :loading="loading" @click="submit">Save</UButton>
30
+ * ```
31
+ */
32
+ export function useMapoFetch(): UseMapoFetchReturn {
33
+ const nuxt = useNuxtApp() as unknown as {
34
+ $mapoFetch: $Fetch;
35
+ $mapoFetchLoading: ComputedRef<boolean>;
36
+ };
37
+ return {
38
+ fetch: nuxt.$mapoFetch,
39
+ loading: nuxt.$mapoFetchLoading,
40
+ };
41
+ }
package/src/types.ts ADDED
@@ -0,0 +1,13 @@
1
+ export interface MapoOptions {
2
+ authLoginUrl?: string;
3
+ userInfoApi?: string;
4
+ logoutUrl?: string;
5
+ loginUrl?: string;
6
+ }
7
+
8
+ export const MAPO_DEFAULTS = {
9
+ authLoginUrl: "/api/auth/login",
10
+ userInfoApi: "/api/profiles/me/",
11
+ logoutUrl: "/api/auth/logout",
12
+ loginUrl: "/login",
13
+ } satisfies Required<MapoOptions>;
package/CHANGELOG.md DELETED
@@ -1,248 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- # [1.0.0](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.60...v1.0.0) (2026-07-02)
7
-
8
- **Note:** Version bump only for package @mapomodule/core
9
-
10
-
11
-
12
-
13
-
14
- # [1.0.0-alpha.49](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.48...v1.0.0-alpha.49) (2023-07-27)
15
-
16
- **Note:** Version bump only for package @mapomodule/core
17
-
18
-
19
-
20
-
21
-
22
- # [1.0.0-alpha.45](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.44...v1.0.0-alpha.45) (2023-06-10)
23
-
24
- **Note:** Version bump only for package @mapomodule/core
25
-
26
-
27
-
28
-
29
-
30
- # [1.0.0-alpha.44](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.43...v1.0.0-alpha.44) (2023-06-10)
31
-
32
- **Note:** Version bump only for package @mapomodule/core
33
-
34
-
35
-
36
-
37
-
38
- # [1.0.0-alpha.43](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.42...v1.0.0-alpha.43) (2023-02-02)
39
-
40
- **Note:** Version bump only for package @mapomodule/core
41
-
42
-
43
-
44
-
45
-
46
- # [1.0.0-alpha.41](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.40...v1.0.0-alpha.41) (2022-12-20)
47
-
48
-
49
- ### Features
50
-
51
- * handle all_permissions prop in user ([14d4252](https://github.com/lotrekagency/mapo/commit/14d425215434e29f82093fc96e53b172bf247b8f))
52
-
53
-
54
-
55
-
56
-
57
- # [1.0.0-alpha.40](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.39...v1.0.0-alpha.40) (2022-12-20)
58
-
59
- **Note:** Version bump only for package @mapomodule/core
60
-
61
-
62
-
63
-
64
-
65
- # [1.0.0-alpha.39](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.38...v1.0.0-alpha.39) (2022-12-03)
66
-
67
-
68
- ### Features
69
-
70
- * give the option to rewrite form fields components defaults in nuxt.config.js ([c4e76b1](https://github.com/lotrekagency/mapo/commit/c4e76b153b145cc670ef988e9501e1a8fbc0005e))
71
-
72
-
73
-
74
-
75
-
76
- # [1.0.0-alpha.34](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.33...v1.0.0-alpha.34) (2022-11-11)
77
-
78
-
79
- ### Features
80
-
81
- * default upload in multipart autodiscover ([b153307](https://github.com/lotrekagency/mapo/commit/b15330725a64a0931d2de49929a01e3a7319b382))
82
-
83
-
84
-
85
-
86
-
87
- # [1.0.0-alpha.31](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.30...v1.0.0-alpha.31) (2022-09-14)
88
-
89
-
90
- ### Bug Fixes
91
-
92
- * **interceptor:** remove token injection for axios requests ([59b2f5c](https://github.com/lotrekagency/mapo/commit/59b2f5cb3dfd0becd78df02f30bc32967643e276))
93
- * **middleware:** fix auth middleware to correclty redirect based on router base ([1d49cd7](https://github.com/lotrekagency/mapo/commit/1d49cd72e141888ef7aae91ac0ddb13f8d0fce7a))
94
-
95
-
96
-
97
-
98
-
99
- # [1.0.0-alpha.30](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.29...v1.0.0-alpha.30) (2022-09-13)
100
-
101
- **Note:** Version bump only for package @mapomodule/core
102
-
103
-
104
-
105
-
106
-
107
- # [1.0.0-alpha.27](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.26...v1.0.0-alpha.27) (2022-08-25)
108
-
109
-
110
- ### Bug Fixes
111
-
112
- * remove unused options plugin ([45004bb](https://github.com/lotrekagency/mapo/commit/45004bb158267c7e2f7795c1d12cf568f9d7ded2))
113
-
114
-
115
-
116
-
117
-
118
- # [1.0.0-alpha.23](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.22...v1.0.0-alpha.23) (2022-05-04)
119
-
120
- **Note:** Version bump only for package @mapomodule/core
121
-
122
-
123
-
124
-
125
-
126
- # [1.0.0-alpha.22](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.21...v1.0.0-alpha.22) (2022-05-01)
127
-
128
- **Note:** Version bump only for package @mapomodule/core
129
-
130
-
131
-
132
-
133
-
134
- # [1.0.0-alpha.19](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.18...v1.0.0-alpha.19) (2022-04-06)
135
-
136
-
137
- ### Bug Fixes
138
-
139
- * fix logout loop ([3177cca](https://github.com/lotrekagency/mapo/commit/3177ccaf4be6151feec379c4241f8784b79d4361))
140
-
141
-
142
-
143
-
144
-
145
- # [1.0.0-alpha.18](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.17...v1.0.0-alpha.18) (2022-04-04)
146
-
147
-
148
- ### Bug Fixes
149
-
150
- * fix core interceptor syntax ([c546a48](https://github.com/lotrekagency/mapo/commit/c546a48f22bf689d4b679aaab82b2b9ed62f26cc))
151
-
152
-
153
-
154
-
155
-
156
- # [1.0.0-alpha.17](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.16...v1.0.0-alpha.17) (2022-04-03)
157
-
158
-
159
- ### Bug Fixes
160
-
161
- * various fixes to auth loops ([58cdb58](https://github.com/lotrekagency/mapo/commit/58cdb586e88df8e595876ba4dd4d4cc11865f7e3))
162
-
163
-
164
-
165
-
166
-
167
- # [1.0.0-alpha.16](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.15...v1.0.0-alpha.16) (2022-04-03)
168
-
169
-
170
- ### Features
171
-
172
- * Added mapo integrations module! 🎉 ([76d2c80](https://github.com/lotrekagency/mapo/commit/76d2c805245b4cf49a33696339da52e4c17f4053))
173
- * added mapo options to mapo helper ([38dcbf2](https://github.com/lotrekagency/mapo/commit/38dcbf28d286eb02c2a6785a883a14edaa0837b1))
174
-
175
-
176
- ### BREAKING CHANGES
177
-
178
- * This change removes all the camomilla cms references moving the compatibility layer in a detached package [mapo-integrations-camomilla](https://github.com/lotrekagency/mapo-integrations-camomilla). The guidelines to make mapo work with camomilla will be provided in the package readme.
179
-
180
-
181
-
182
-
183
-
184
- # [1.0.0-alpha.15](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.14...v1.0.0-alpha.15) (2022-03-11)
185
-
186
-
187
- ### Features
188
-
189
- * **ordering:** added sortablejs to drag and reorder list ([eb8bf21](https://github.com/lotrekagency/mapo/commit/eb8bf21c3178c3ad62db5aa7c06c0562e944dea6))
190
-
191
-
192
-
193
-
194
-
195
- # [1.0.0-alpha.13](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.12...v1.0.0-alpha.13) (2022-03-01)
196
-
197
-
198
- ### Features
199
-
200
- * added snack message in the requst interceptor ([acf9cd1](https://github.com/lotrekagency/mapo/commit/acf9cd1efbabc13eb99af7f4bfe0dcf096112ec0))
201
-
202
-
203
-
204
-
205
-
206
- # [1.0.0-alpha.10](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.9...v1.0.0-alpha.10) (2022-02-11)
207
-
208
-
209
- ### Bug Fixes
210
-
211
- * fix crud requests without multipart policy ([5875833](https://github.com/lotrekagency/mapo/commit/5875833209872a2609b653a089fff80c447b14e9))
212
-
213
-
214
- ### Features
215
-
216
- * **core:** Completely rewritten multipart capabilities, now the crud helper autodiscovers whet to use a multipart request. ([0a6546c](https://github.com/lotrekagency/mapo/commit/0a6546c9adeaf1fcf57a88105101e476b8b786dc))
217
-
218
-
219
-
220
-
221
-
222
- # [1.0.0-alpha.9](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.8...v1.0.0-alpha.9) (2022-02-08)
223
-
224
- **Note:** Version bump only for package @mapomodule/core
225
-
226
-
227
-
228
-
229
-
230
- # [1.0.0-alpha.8](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.7...v1.0.0-alpha.8) (2022-01-23)
231
-
232
-
233
- ### Bug Fixes
234
-
235
- * **auth:** logout user only on 401 ([818f3d5](https://github.com/lotrekagency/mapo/commit/818f3d5ff315635438ac9bc9566a1b2fd2c5cf03))
236
- * **permission:** fix bad store initialization on ssr ([f075824](https://github.com/lotrekagency/mapo/commit/f075824561d6a71ce07ecbba70e994102abd623b))
237
- * **permissions:** add route permissions with routename instead on path ([16ff6ee](https://github.com/lotrekagency/mapo/commit/16ff6eee5e3a8ddbf9e7aea1ba05e8a88fb43932))
238
-
239
-
240
-
241
-
242
-
243
- # [1.0.0-alpha.6](https://github.com/lotrekagency/mapo/compare/v1.0.0-alpha.5...v1.0.0-alpha.6) (2021-12-26)
244
-
245
-
246
- ### Features
247
-
248
- * **core:** reject promise for crud methods if no endpoint was passed during configuration ([bb8d447](https://github.com/lotrekagency/mapo/commit/bb8d4474efe41af5d7f38dbcd47731133d6ba154))