@enadhq/enad-react-sdk 0.0.6 → 1.0.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 (167) hide show
  1. package/package.json +70 -18
  2. package/dist/client/cart/components/cart-drawer.d.mts +0 -19
  3. package/dist/client/cart/components/cart-drawer.mjs +0 -180
  4. package/dist/client/cart/components/cart-drawer.mjs.map +0 -1
  5. package/dist/client/cart/components/cart-trigger.d.mts +0 -5
  6. package/dist/client/cart/components/cart-trigger.mjs +0 -18
  7. package/dist/client/cart/components/cart-trigger.mjs.map +0 -1
  8. package/dist/client/cart/constants/session.d.mts +0 -3
  9. package/dist/client/cart/constants/session.mjs +0 -5
  10. package/dist/client/cart/constants/session.mjs.map +0 -1
  11. package/dist/client/cart/contexts/cart.d.mts +0 -27
  12. package/dist/client/cart/contexts/cart.mjs +0 -22
  13. package/dist/client/cart/contexts/cart.mjs.map +0 -1
  14. package/dist/client/cart/hooks/useCart.d.mts +0 -29
  15. package/dist/client/cart/hooks/useCart.mjs +0 -26
  16. package/dist/client/cart/hooks/useCart.mjs.map +0 -1
  17. package/dist/client/cart/hooks/useCartActions.d.mts +0 -26
  18. package/dist/client/cart/hooks/useCartActions.mjs +0 -58
  19. package/dist/client/cart/hooks/useCartActions.mjs.map +0 -1
  20. package/dist/client/cart/queries/addToCartQueryFn.d.mts +0 -10
  21. package/dist/client/cart/queries/addToCartQueryFn.mjs +0 -27
  22. package/dist/client/cart/queries/addToCartQueryFn.mjs.map +0 -1
  23. package/dist/client/cart/queries/getCartQueryFn.d.mts +0 -7
  24. package/dist/client/cart/queries/getCartQueryFn.mjs +0 -34
  25. package/dist/client/cart/queries/getCartQueryFn.mjs.map +0 -1
  26. package/dist/client/cart/queries/removeCartItemQueryFn.d.mts +0 -9
  27. package/dist/client/cart/queries/removeCartItemQueryFn.mjs +0 -24
  28. package/dist/client/cart/queries/removeCartItemQueryFn.mjs.map +0 -1
  29. package/dist/client/cart/queries/updateCartItemQueryFn.d.mts +0 -10
  30. package/dist/client/cart/queries/updateCartItemQueryFn.mjs +0 -27
  31. package/dist/client/cart/queries/updateCartItemQueryFn.mjs.map +0 -1
  32. package/dist/client/cart/types/cart.d.mts +0 -36
  33. package/dist/client/cart/types/cart.mjs +0 -1
  34. package/dist/client/cart/types/cart.mjs.map +0 -1
  35. package/dist/client/cart/utils/session.d.mts +0 -6
  36. package/dist/client/cart/utils/session.mjs +0 -21
  37. package/dist/client/cart/utils/session.mjs.map +0 -1
  38. package/dist/client/cms/storyblok/preview/registerStoryblokBridge.d.mts +0 -6
  39. package/dist/client/cms/storyblok/preview/registerStoryblokBridge.mjs +0 -24
  40. package/dist/client/cms/storyblok/preview/registerStoryblokBridge.mjs.map +0 -1
  41. package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.d.mts +0 -22
  42. package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.mjs +0 -79
  43. package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.mjs.map +0 -1
  44. package/dist/client/global/auth/withAuth.d.mts +0 -6
  45. package/dist/client/global/auth/withAuth.mjs +0 -25
  46. package/dist/client/global/auth/withAuth.mjs.map +0 -1
  47. package/dist/client/global/config/index.d.mts +0 -17
  48. package/dist/client/global/config/index.mjs +0 -34
  49. package/dist/client/global/config/index.mjs.map +0 -1
  50. package/dist/client/global/constants/tags.d.mts +0 -16
  51. package/dist/client/global/constants/tags.mjs +0 -18
  52. package/dist/client/global/constants/tags.mjs.map +0 -1
  53. package/dist/client/global/providers/enad-provider.d.mts +0 -23
  54. package/dist/client/global/providers/enad-provider.mjs +0 -11
  55. package/dist/client/global/providers/enad-provider.mjs.map +0 -1
  56. package/dist/client/search/actions/searchAction.d.mts +0 -5
  57. package/dist/client/search/actions/searchAction.mjs +0 -18
  58. package/dist/client/search/actions/searchAction.mjs.map +0 -1
  59. package/dist/client/search/components/search-bar.d.mts +0 -2
  60. package/dist/client/search/components/search-bar.mjs +0 -1
  61. package/dist/client/search/components/search-bar.mjs.map +0 -1
  62. package/dist/client/search/hooks/useSearch.d.mts +0 -18
  63. package/dist/client/search/hooks/useSearch.mjs +0 -37
  64. package/dist/client/search/hooks/useSearch.mjs.map +0 -1
  65. package/dist/client/user/actions/createResetPasswordLinkAction.d.mts +0 -14
  66. package/dist/client/user/actions/createResetPasswordLinkAction.mjs +0 -30
  67. package/dist/client/user/actions/createResetPasswordLinkAction.mjs.map +0 -1
  68. package/dist/client/user/actions/getUserAction.d.mts +0 -5
  69. package/dist/client/user/actions/getUserAction.mjs +0 -19
  70. package/dist/client/user/actions/getUserAction.mjs.map +0 -1
  71. package/dist/client/user/actions/logInUserAction.d.mts +0 -15
  72. package/dist/client/user/actions/logInUserAction.mjs +0 -34
  73. package/dist/client/user/actions/logInUserAction.mjs.map +0 -1
  74. package/dist/client/user/actions/logoutUserAction.d.mts +0 -3
  75. package/dist/client/user/actions/logoutUserAction.mjs +0 -10
  76. package/dist/client/user/actions/logoutUserAction.mjs.map +0 -1
  77. package/dist/client/user/actions/registerOrganisationAction.d.mts +0 -12
  78. package/dist/client/user/actions/registerOrganisationAction.mjs +0 -18
  79. package/dist/client/user/actions/registerOrganisationAction.mjs.map +0 -1
  80. package/dist/client/user/actions/registerUserAction.d.mts +0 -18
  81. package/dist/client/user/actions/registerUserAction.mjs +0 -42
  82. package/dist/client/user/actions/registerUserAction.mjs.map +0 -1
  83. package/dist/client/user/actions/registerUserWithoutRedirectAction.d.mts +0 -44
  84. package/dist/client/user/actions/registerUserWithoutRedirectAction.mjs +0 -58
  85. package/dist/client/user/actions/registerUserWithoutRedirectAction.mjs.map +0 -1
  86. package/dist/client/user/actions/updatePasswordAction.d.mts +0 -21
  87. package/dist/client/user/actions/updatePasswordAction.mjs +0 -37
  88. package/dist/client/user/actions/updatePasswordAction.mjs.map +0 -1
  89. package/dist/client/user/api/userRoute.d.mts +0 -9
  90. package/dist/client/user/api/userRoute.mjs +0 -65
  91. package/dist/client/user/api/userRoute.mjs.map +0 -1
  92. package/dist/client/user/clients/enad.d.mts +0 -6
  93. package/dist/client/user/clients/enad.mjs +0 -19
  94. package/dist/client/user/clients/enad.mjs.map +0 -1
  95. package/dist/client/user/components/login-form.d.mts +0 -20
  96. package/dist/client/user/components/login-form.mjs +0 -113
  97. package/dist/client/user/components/login-form.mjs.map +0 -1
  98. package/dist/client/user/components/reset-password-form.d.mts +0 -15
  99. package/dist/client/user/components/reset-password-form.mjs +0 -86
  100. package/dist/client/user/components/reset-password-form.mjs.map +0 -1
  101. package/dist/client/user/components/sign-out.d.mts +0 -5
  102. package/dist/client/user/components/sign-out.mjs +0 -23
  103. package/dist/client/user/components/sign-out.mjs.map +0 -1
  104. package/dist/client/user/components/signup-form.d.mts +0 -15
  105. package/dist/client/user/components/signup-form.mjs +0 -155
  106. package/dist/client/user/components/signup-form.mjs.map +0 -1
  107. package/dist/client/user/components/signup-organisation-form.d.mts +0 -20
  108. package/dist/client/user/components/signup-organisation-form.mjs +0 -813
  109. package/dist/client/user/components/signup-organisation-form.mjs.map +0 -1
  110. package/dist/client/user/components/update-password-form.d.mts +0 -11
  111. package/dist/client/user/components/update-password-form.mjs +0 -69
  112. package/dist/client/user/components/update-password-form.mjs.map +0 -1
  113. package/dist/client/user/hooks/index.d.mts +0 -3
  114. package/dist/client/user/hooks/index.mjs +0 -2
  115. package/dist/client/user/hooks/index.mjs.map +0 -1
  116. package/dist/client/user/hooks/useUser.d.mts +0 -16
  117. package/dist/client/user/hooks/useUser.mjs +0 -32
  118. package/dist/client/user/hooks/useUser.mjs.map +0 -1
  119. package/dist/client/user/types/user.d.mts +0 -202
  120. package/dist/client/user/types/user.mjs +0 -1
  121. package/dist/client/user/types/user.mjs.map +0 -1
  122. package/dist/client/user/utils/userCookieService.d.mts +0 -20
  123. package/dist/client/user/utils/userCookieService.mjs +0 -51
  124. package/dist/client/user/utils/userCookieService.mjs.map +0 -1
  125. package/dist/client/wishlist/actions/addItemsToWishlistAction.d.mts +0 -7
  126. package/dist/client/wishlist/actions/addItemsToWishlistAction.mjs +0 -20
  127. package/dist/client/wishlist/actions/addItemsToWishlistAction.mjs.map +0 -1
  128. package/dist/client/wishlist/actions/createOrGetShareTokenAction.d.mts +0 -6
  129. package/dist/client/wishlist/actions/createOrGetShareTokenAction.mjs +0 -20
  130. package/dist/client/wishlist/actions/createOrGetShareTokenAction.mjs.map +0 -1
  131. package/dist/client/wishlist/actions/createWishlistAction.d.mts +0 -6
  132. package/dist/client/wishlist/actions/createWishlistAction.mjs +0 -16
  133. package/dist/client/wishlist/actions/createWishlistAction.mjs.map +0 -1
  134. package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.d.mts +0 -7
  135. package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.mjs +0 -20
  136. package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.mjs.map +0 -1
  137. package/dist/client/wishlist/actions/deleteWishlistAction.d.mts +0 -5
  138. package/dist/client/wishlist/actions/deleteWishlistAction.mjs +0 -16
  139. package/dist/client/wishlist/actions/deleteWishlistAction.mjs.map +0 -1
  140. package/dist/client/wishlist/actions/getSharedWishlistAction.d.mts +0 -6
  141. package/dist/client/wishlist/actions/getSharedWishlistAction.mjs +0 -20
  142. package/dist/client/wishlist/actions/getSharedWishlistAction.mjs.map +0 -1
  143. package/dist/client/wishlist/actions/getSpecificWishlistAction.d.mts +0 -6
  144. package/dist/client/wishlist/actions/getSpecificWishlistAction.mjs +0 -20
  145. package/dist/client/wishlist/actions/getSpecificWishlistAction.mjs.map +0 -1
  146. package/dist/client/wishlist/actions/getUserWishlists.d.mts +0 -7
  147. package/dist/client/wishlist/actions/getUserWishlists.mjs +0 -25
  148. package/dist/client/wishlist/actions/getUserWishlists.mjs.map +0 -1
  149. package/dist/client/wishlist/actions/revokeShareTokenAction.d.mts +0 -5
  150. package/dist/client/wishlist/actions/revokeShareTokenAction.mjs +0 -20
  151. package/dist/client/wishlist/actions/revokeShareTokenAction.mjs.map +0 -1
  152. package/dist/client/wishlist/actions/updateWishlistAction.d.mts +0 -6
  153. package/dist/client/wishlist/actions/updateWishlistAction.mjs +0 -20
  154. package/dist/client/wishlist/actions/updateWishlistAction.mjs.map +0 -1
  155. package/dist/client/wishlist/hooks/index.d.mts +0 -3
  156. package/dist/client/wishlist/hooks/index.mjs +0 -2
  157. package/dist/client/wishlist/hooks/index.mjs.map +0 -1
  158. package/dist/client/wishlist/hooks/useWishlist.d.mts +0 -98
  159. package/dist/client/wishlist/hooks/useWishlist.mjs +0 -66
  160. package/dist/client/wishlist/hooks/useWishlist.mjs.map +0 -1
  161. package/dist/client/wishlist/hooks/useWishlistActions.d.mts +0 -48
  162. package/dist/client/wishlist/hooks/useWishlistActions.mjs +0 -101
  163. package/dist/client/wishlist/hooks/useWishlistActions.mjs.map +0 -1
  164. package/dist/client/wishlist/wishlist-drawer.d.mts +0 -19
  165. package/dist/client/wishlist/wishlist-drawer.mjs +0 -180
  166. package/dist/client/wishlist/wishlist-drawer.mjs.map +0 -1
  167. package/dist/styles.css +0 -959
@@ -1,18 +0,0 @@
1
- import * as _enadhq_enad_ts_sdk from '@enadhq/enad-ts-sdk';
2
- import * as React from 'react';
3
-
4
- /**
5
- * Search
6
- */
7
- declare const useSearch: () => {
8
- query: string;
9
- setQuery: React.Dispatch<React.SetStateAction<string>>;
10
- filters: Record<string, any>;
11
- setFilters: React.Dispatch<React.SetStateAction<Record<string, any>>>;
12
- result: _enadhq_enad_ts_sdk.SearchResponse<_enadhq_enad_ts_sdk.EnadSearchProduct> | undefined;
13
- loading: boolean;
14
- error: Error | null;
15
- performSearch: () => void;
16
- };
17
-
18
- export { useSearch };
@@ -1,37 +0,0 @@
1
- "use client";
2
- import { useState } from "react";
3
- import { useQuery } from "@tanstack/react-query";
4
- import { searchAction } from "../actions/searchAction";
5
- const useSearch = () => {
6
- const [query, setQuery] = useState("");
7
- const [filters, setFilters] = useState({});
8
- const [activeQuery, setActiveQuery] = useState("");
9
- const { data, isLoading, isError, error, refetch } = useQuery({
10
- queryKey: ["products-search", activeQuery, filters],
11
- queryFn: async () => {
12
- return searchAction(activeQuery, filters);
13
- },
14
- enabled: !!activeQuery,
15
- // run only when performSearch is called
16
- staleTime: 1e3 * 30
17
- });
18
- const performSearch = () => {
19
- if (query.trim() === "") return;
20
- setActiveQuery(query);
21
- refetch();
22
- };
23
- return {
24
- query,
25
- setQuery,
26
- filters,
27
- setFilters,
28
- result: Array.isArray(data) ? void 0 : data,
29
- loading: isLoading,
30
- error: isError ? error : null,
31
- performSearch
32
- };
33
- };
34
- export {
35
- useSearch
36
- };
37
- //# sourceMappingURL=useSearch.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/client/search/hooks/useSearch.ts"],"sourcesContent":["\"use client\"\n\nimport { useState } from \"react\"\nimport { useQuery } from \"@tanstack/react-query\"\nimport { searchAction } from \"../actions/searchAction\"\n\n/**\n * Search\n */\nexport const useSearch = () => {\n const [query, setQuery] = useState(\"\")\n const [filters, setFilters] = useState<Record<string, any>>({})\n const [activeQuery, setActiveQuery] = useState<string>(\"\") // query actually used for search\n\n const { data, isLoading, isError, error, refetch } = useQuery({\n queryKey: [\"products-search\", activeQuery, filters],\n queryFn: async () => {\n return searchAction(activeQuery, filters)\n },\n enabled: !!activeQuery, // run only when performSearch is called\n staleTime: 1000 * 30,\n })\n\n /**\n * Manually trigger a search using the current `query` and `filters`.\n */\n const performSearch = () => {\n // Only trigger if query has content\n if (query.trim() === \"\") return\n setActiveQuery(query)\n refetch()\n }\n\n return {\n query,\n setQuery,\n filters,\n setFilters,\n result: Array.isArray(data) ? undefined : data,\n loading: isLoading,\n error: isError ? error : null,\n performSearch,\n }\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAKtB,MAAM,YAAY,MAAM;AAC7B,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,EAAE;AACrC,QAAM,CAAC,SAAS,UAAU,IAAI,SAA8B,CAAC,CAAC;AAC9D,QAAM,CAAC,aAAa,cAAc,IAAI,SAAiB,EAAE;AAEzD,QAAM,EAAE,MAAM,WAAW,SAAS,OAAO,QAAQ,IAAI,SAAS;AAAA,IAC5D,UAAU,CAAC,mBAAmB,aAAa,OAAO;AAAA,IAClD,SAAS,YAAY;AACnB,aAAO,aAAa,aAAa,OAAO;AAAA,IAC1C;AAAA,IACA,SAAS,CAAC,CAAC;AAAA;AAAA,IACX,WAAW,MAAO;AAAA,EACpB,CAAC;AAKD,QAAM,gBAAgB,MAAM;AAE1B,QAAI,MAAM,KAAK,MAAM,GAAI;AACzB,mBAAe,KAAK;AACpB,YAAQ;AAAA,EACV;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,MAAM,QAAQ,IAAI,IAAI,SAAY;AAAA,IAC1C,SAAS;AAAA,IACT,OAAO,UAAU,QAAQ;AAAA,IACzB;AAAA,EACF;AACF;","names":[]}
@@ -1,14 +0,0 @@
1
- interface Options {
2
- redirectPath?: string;
3
- }
4
- declare const createPasswordResetLinkAction: (formData: FormData, options: Options) => Promise<{
5
- errors: {
6
- email?: string[] | undefined;
7
- };
8
- } | {
9
- errors: {
10
- general: string[];
11
- };
12
- }>;
13
-
14
- export { createPasswordResetLinkAction };
@@ -1,30 +0,0 @@
1
- "use server";
2
- import { customerClient } from "../clients/enad";
3
- import { redirect } from "next/navigation";
4
- import * as z from "zod";
5
- const credentialsSchema = z.object({
6
- email: z.string().email({ message: "Invalid email address" })
7
- });
8
- const createPasswordResetLinkAction = async (formData, options) => {
9
- const email = formData.get("email")?.toString() ?? "";
10
- const result = credentialsSchema.safeParse({ email });
11
- if (!result.success) {
12
- console.error("Validation errors:", result.error.flatten().fieldErrors);
13
- return {
14
- errors: result.error.flatten().fieldErrors
15
- // per-field errors
16
- };
17
- }
18
- const [_, error] = await customerClient.user.createPasswordResetLink(email);
19
- if (error) {
20
- console.error("create password reset link error:", error);
21
- return {
22
- errors: { general: ["Failed to reset password. Please try again later."] }
23
- };
24
- }
25
- redirect(options.redirectPath ?? "/");
26
- };
27
- export {
28
- createPasswordResetLinkAction
29
- };
30
- //# sourceMappingURL=createResetPasswordLinkAction.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/client/user/actions/createResetPasswordLinkAction.ts"],"sourcesContent":["\"use server\"\n\nimport { customerClient } from \"../clients/enad\"\nimport { redirect } from \"next/navigation\"\n\nimport * as z from \"zod\"\n\n// Define validation schema\nconst credentialsSchema = z.object({\n email: z.string().email({ message: \"Invalid email address\" }),\n})\n\ninterface Options {\n redirectPath?: string\n}\n\nexport const createPasswordResetLinkAction = async (formData: FormData, options: Options) => {\n // Extract fields\n const email = formData.get(\"email\")?.toString() ?? \"\"\n\n // Validate\n const result = credentialsSchema.safeParse({ email })\n\n if (!result.success) {\n console.error(\"Validation errors:\", result.error.flatten().fieldErrors)\n return {\n errors: result.error.flatten().fieldErrors, // per-field errors\n }\n }\n\n // Call API\n const [_, error] = await customerClient.user.createPasswordResetLink(email)\n\n if (error) {\n console.error(\"create password reset link error:\", error)\n return {\n errors: { general: [\"Failed to reset password. Please try again later.\"] },\n }\n }\n\n // Successful login → redirect to home\n redirect(options.redirectPath ?? \"/\")\n}\n"],"mappings":";AAEA,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AAEzB,YAAY,OAAO;AAGnB,MAAM,oBAAoB,EAAE,OAAO;AAAA,EACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,wBAAwB,CAAC;AAC9D,CAAC;AAMM,MAAM,gCAAgC,OAAO,UAAoB,YAAqB;AAE3F,QAAM,QAAQ,SAAS,IAAI,OAAO,GAAG,SAAS,KAAK;AAGnD,QAAM,SAAS,kBAAkB,UAAU,EAAE,MAAM,CAAC;AAEpD,MAAI,CAAC,OAAO,SAAS;AACnB,YAAQ,MAAM,sBAAsB,OAAO,MAAM,QAAQ,EAAE,WAAW;AACtE,WAAO;AAAA,MACL,QAAQ,OAAO,MAAM,QAAQ,EAAE;AAAA;AAAA,IACjC;AAAA,EACF;AAGA,QAAM,CAAC,GAAG,KAAK,IAAI,MAAM,eAAe,KAAK,wBAAwB,KAAK;AAE1E,MAAI,OAAO;AACT,YAAQ,MAAM,qCAAqC,KAAK;AACxD,WAAO;AAAA,MACL,QAAQ,EAAE,SAAS,CAAC,mDAAmD,EAAE;AAAA,IAC3E;AAAA,EACF;AAGA,WAAS,QAAQ,gBAAgB,GAAG;AACtC;","names":[]}
@@ -1,5 +0,0 @@
1
- import { EnadUser } from '../types/user.mjs';
2
-
3
- declare const getUserAction: () => Promise<EnadUser>;
4
-
5
- export { getUserAction };
@@ -1,19 +0,0 @@
1
- "use server";
2
- import { cookies } from "next/headers";
3
- import { customerClient } from "../clients/enad";
4
- import { withAuth } from "../../global/auth/withAuth";
5
- async function getUser() {
6
- const cookieStore = await cookies();
7
- const token = cookieStore.get("access_token");
8
- const [user, error] = await customerClient.user.getUserFromToken(token?.value || "");
9
- if (error) {
10
- console.error("Get user error:", error);
11
- throw new Error("Failed to fetch user");
12
- }
13
- return user;
14
- }
15
- const getUserAction = () => withAuth(getUser);
16
- export {
17
- getUserAction
18
- };
19
- //# sourceMappingURL=getUserAction.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/client/user/actions/getUserAction.ts"],"sourcesContent":["\"use server\"\n\nimport { cookies } from \"next/headers\"\nimport { EnadUser } from \"../../../client/user/types/user\"\nimport { customerClient } from \"../clients/enad\"\n\nimport { withAuth } from \"../../global/auth/withAuth\"\n\n/**\n * Helper to fetch user using an access token\n */\nasync function getUser(): Promise<EnadUser> {\n const cookieStore = await cookies()\n const token = cookieStore.get(\"access_token\")\n\n const [user, error] = await customerClient.user.getUserFromToken(token?.value || \"\")\n\n if (error) {\n console.error(\"Get user error:\", error)\n throw new Error(\"Failed to fetch user\")\n }\n return user\n}\n\n// Wrap getUserAction with auth\nexport const getUserAction = () => withAuth(getUser)\n"],"mappings":";AAEA,SAAS,eAAe;AAExB,SAAS,sBAAsB;AAE/B,SAAS,gBAAgB;AAKzB,eAAe,UAA6B;AAC1C,QAAM,cAAc,MAAM,QAAQ;AAClC,QAAM,QAAQ,YAAY,IAAI,cAAc;AAE5C,QAAM,CAAC,MAAM,KAAK,IAAI,MAAM,eAAe,KAAK,iBAAiB,OAAO,SAAS,EAAE;AAEnF,MAAI,OAAO;AACT,YAAQ,MAAM,mBAAmB,KAAK;AACtC,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AACA,SAAO;AACT;AAGO,MAAM,gBAAgB,MAAM,SAAS,OAAO;","names":[]}
@@ -1,15 +0,0 @@
1
- interface Options {
2
- redirectPath?: string;
3
- }
4
- declare const logInUserAction: (formData: FormData, options: Options) => Promise<{
5
- errors: {
6
- email?: string[] | undefined;
7
- password?: string[] | undefined;
8
- };
9
- } | {
10
- errors: {
11
- general: string[];
12
- };
13
- }>;
14
-
15
- export { logInUserAction };
@@ -1,34 +0,0 @@
1
- "use server";
2
- import { customerClient } from "../clients/enad";
3
- import { redirect } from "next/navigation";
4
- import { userCookieService } from "../utils/userCookieService";
5
- import * as z from "zod";
6
- const credentialsSchema = z.object({
7
- email: z.string().email({ message: "Invalid email address" }),
8
- password: z.string().min(10, { message: "Password must be at least 10 characters" })
9
- });
10
- const logInUserAction = async (formData, options) => {
11
- const email = formData.get("email")?.toString() ?? "";
12
- const password = formData.get("password")?.toString() ?? "";
13
- const result = credentialsSchema.safeParse({ email, password });
14
- if (!result.success) {
15
- console.error("Validation errors:", result.error.flatten().fieldErrors);
16
- return {
17
- errors: result.error.flatten().fieldErrors
18
- // per-field errors
19
- };
20
- }
21
- const [res, error] = await customerClient.user.loginUser(email, password);
22
- if (error) {
23
- console.error("Sign in error:", error);
24
- return {
25
- errors: { general: ["Failed to sign in. Please try again later."] }
26
- };
27
- }
28
- await userCookieService.setTokens(res.access_token, res.refresh_token);
29
- redirect(options.redirectPath ?? "/");
30
- };
31
- export {
32
- logInUserAction
33
- };
34
- //# sourceMappingURL=logInUserAction.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/client/user/actions/logInUserAction.ts"],"sourcesContent":["\"use server\"\n\nimport { customerClient } from \"../clients/enad\"\nimport { redirect } from \"next/navigation\"\nimport { userCookieService } from \"../utils/userCookieService\"\nimport * as z from \"zod\"\n\n// Define validation schema\nconst credentialsSchema = z.object({\n email: z.string().email({ message: \"Invalid email address\" }),\n password: z.string().min(10, { message: \"Password must be at least 10 characters\" }),\n})\n\ninterface Options {\n redirectPath?: string\n}\n\nexport const logInUserAction = async (formData: FormData, options: Options) => {\n // Extract fields\n const email = formData.get(\"email\")?.toString() ?? \"\"\n const password = formData.get(\"password\")?.toString() ?? \"\"\n\n // Validate\n const result = credentialsSchema.safeParse({ email, password })\n\n if (!result.success) {\n console.error(\"Validation errors:\", result.error.flatten().fieldErrors)\n return {\n errors: result.error.flatten().fieldErrors, // per-field errors\n }\n }\n\n // Call API\n const [res, error] = await customerClient.user.loginUser(email, password)\n\n if (error) {\n console.error(\"Sign in error:\", error)\n return {\n errors: { general: [\"Failed to sign in. Please try again later.\"] },\n }\n }\n\n // Set cookies\n await userCookieService.setTokens(res.access_token, res.refresh_token)\n\n // Successful login → redirect to home\n redirect(options.redirectPath ?? \"/\")\n}\n"],"mappings":";AAEA,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAClC,YAAY,OAAO;AAGnB,MAAM,oBAAoB,EAAE,OAAO;AAAA,EACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,wBAAwB,CAAC;AAAA,EAC5D,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,SAAS,0CAA0C,CAAC;AACrF,CAAC;AAMM,MAAM,kBAAkB,OAAO,UAAoB,YAAqB;AAE7E,QAAM,QAAQ,SAAS,IAAI,OAAO,GAAG,SAAS,KAAK;AACnD,QAAM,WAAW,SAAS,IAAI,UAAU,GAAG,SAAS,KAAK;AAGzD,QAAM,SAAS,kBAAkB,UAAU,EAAE,OAAO,SAAS,CAAC;AAE9D,MAAI,CAAC,OAAO,SAAS;AACnB,YAAQ,MAAM,sBAAsB,OAAO,MAAM,QAAQ,EAAE,WAAW;AACtE,WAAO;AAAA,MACL,QAAQ,OAAO,MAAM,QAAQ,EAAE;AAAA;AAAA,IACjC;AAAA,EACF;AAGA,QAAM,CAAC,KAAK,KAAK,IAAI,MAAM,eAAe,KAAK,UAAU,OAAO,QAAQ;AAExE,MAAI,OAAO;AACT,YAAQ,MAAM,kBAAkB,KAAK;AACrC,WAAO;AAAA,MACL,QAAQ,EAAE,SAAS,CAAC,4CAA4C,EAAE;AAAA,IACpE;AAAA,EACF;AAGA,QAAM,kBAAkB,UAAU,IAAI,cAAc,IAAI,aAAa;AAGrE,WAAS,QAAQ,gBAAgB,GAAG;AACtC;","names":[]}
@@ -1,3 +0,0 @@
1
- declare const logOutUserAction: () => Promise<boolean>;
2
-
3
- export { logOutUserAction };
@@ -1,10 +0,0 @@
1
- "use server";
2
- import { userCookieService } from "../utils/userCookieService";
3
- const logOutUserAction = async () => {
4
- await userCookieService.clear();
5
- return true;
6
- };
7
- export {
8
- logOutUserAction
9
- };
10
- //# sourceMappingURL=logoutUserAction.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/client/user/actions/logoutUserAction.ts"],"sourcesContent":["\"use server\"\n\nimport { userCookieService } from \"../utils/userCookieService\"\n\nexport const logOutUserAction = async () => {\n await userCookieService.clear()\n\n return true\n}\n"],"mappings":";AAEA,SAAS,yBAAyB;AAE3B,MAAM,mBAAmB,YAAY;AAC1C,QAAM,kBAAkB,MAAM;AAE9B,SAAO;AACT;","names":[]}
@@ -1,12 +0,0 @@
1
- import * as _enadhq_enad_ts_sdk from '@enadhq/enad-ts-sdk';
2
- import { RegisterOrganisationRequest } from '@enadhq/enad-ts-sdk';
3
-
4
- declare const registerOrganisationAction: (organisationDetails: RegisterOrganisationRequest) => Promise<{
5
- error: string;
6
- data?: undefined;
7
- } | {
8
- data: _enadhq_enad_ts_sdk.EnadOrganisationResponse;
9
- error?: undefined;
10
- }>;
11
-
12
- export { registerOrganisationAction };
@@ -1,18 +0,0 @@
1
- "use server";
2
- import { customerClient } from "../clients/enad";
3
- const registerOrganisationAction = async (organisationDetails) => {
4
- const [data, error] = await customerClient.organisation.registerOrganisation(
5
- organisationDetails
6
- );
7
- if (error) {
8
- console.error("Organisation registration error:", error);
9
- return {
10
- error: error.message || "Failed to register organisation. Please try again."
11
- };
12
- }
13
- return { data };
14
- };
15
- export {
16
- registerOrganisationAction
17
- };
18
- //# sourceMappingURL=registerOrganisationAction.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/client/user/actions/registerOrganisationAction.ts"],"sourcesContent":["\"use server\"\n\nimport { customerClient } from \"../clients/enad\"\nimport { RegisterOrganisationRequest } from \"@enadhq/enad-ts-sdk\"\n\nexport const registerOrganisationAction = async (\n organisationDetails: RegisterOrganisationRequest\n) => {\n const [data, error] = await customerClient.organisation.registerOrganisation(\n organisationDetails\n )\n\n if (error) {\n console.error(\"Organisation registration error:\", error)\n return {\n error: error.message || \"Failed to register organisation. Please try again.\",\n }\n }\n\n return { data }\n}\n"],"mappings":";AAEA,SAAS,sBAAsB;AAGxB,MAAM,6BAA6B,OACxC,wBACG;AACH,QAAM,CAAC,MAAM,KAAK,IAAI,MAAM,eAAe,aAAa;AAAA,IACtD;AAAA,EACF;AAEA,MAAI,OAAO;AACT,YAAQ,MAAM,oCAAoC,KAAK;AACvD,WAAO;AAAA,MACL,OAAO,MAAM,WAAW;AAAA,IAC1B;AAAA,EACF;AAEA,SAAO,EAAE,KAAK;AAChB;","names":[]}
@@ -1,18 +0,0 @@
1
- interface Options {
2
- redirectPath?: string;
3
- }
4
- declare const registerUserAction: (formData: FormData, options: Options) => Promise<{
5
- errors: {
6
- firstName?: string[] | undefined;
7
- lastName?: string[] | undefined;
8
- email?: string[] | undefined;
9
- password?: string[] | undefined;
10
- acceptTerms?: string[] | undefined;
11
- };
12
- } | {
13
- errors: {
14
- general: string[];
15
- };
16
- }>;
17
-
18
- export { registerUserAction };
@@ -1,42 +0,0 @@
1
- "use server";
2
- import { customerClient } from "../clients/enad";
3
- import { redirect } from "next/navigation";
4
- import * as z from "zod";
5
- const signupSchema = z.object({
6
- firstName: z.string().min(1, { message: "First name is required" }),
7
- lastName: z.string().min(1, { message: "Last name is required" }),
8
- email: z.string().email({ message: "Invalid email address" }),
9
- password: z.string().min(10, { message: "Password must be at least 10 characters" }),
10
- acceptTerms: z.string().refine((val) => val === "on", { message: "You must accept the terms" })
11
- });
12
- const registerUserAction = async (formData, options) => {
13
- const firstName = formData.get("firstName")?.toString() ?? "";
14
- const lastName = formData.get("lastName")?.toString() ?? "";
15
- const email = formData.get("email")?.toString() ?? "";
16
- const password = formData.get("password")?.toString() ?? "";
17
- const acceptTerms = formData.get("acceptTerms")?.toString() ?? "";
18
- const result = signupSchema.safeParse({ firstName, lastName, email, password, acceptTerms });
19
- if (!result.success) {
20
- console.error("Validation errors:", result.error.flatten().fieldErrors);
21
- return {
22
- errors: result.error.flatten().fieldErrors
23
- };
24
- }
25
- const [_, error] = await customerClient.user.registerUser({
26
- first_name: firstName,
27
- last_name: lastName,
28
- email,
29
- password
30
- });
31
- if (error) {
32
- console.error("Registration error:", error);
33
- return {
34
- errors: { general: ["Failed to register. Please try again."] }
35
- };
36
- }
37
- redirect(options.redirectPath ?? `/`);
38
- };
39
- export {
40
- registerUserAction
41
- };
42
- //# sourceMappingURL=registerUserAction.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/client/user/actions/registerUserAction.ts"],"sourcesContent":["\"use server\"\n\nimport { customerClient } from \"../clients/enad\"\nimport { redirect } from \"next/navigation\"\nimport { userCookieService } from \"../utils/userCookieService\"\nimport * as z from \"zod\"\n\n// Validation schema for signup\nconst signupSchema = z.object({\n firstName: z.string().min(1, { message: \"First name is required\" }),\n lastName: z.string().min(1, { message: \"Last name is required\" }),\n email: z.string().email({ message: \"Invalid email address\" }),\n password: z.string().min(10, { message: \"Password must be at least 10 characters\" }),\n acceptTerms: z.string().refine((val) => val === \"on\", { message: \"You must accept the terms\" }),\n})\n\ninterface Options {\n redirectPath?: string\n}\n\nexport const registerUserAction = async (formData: FormData, options: Options) => {\n // Extract form data\n const firstName = formData.get(\"firstName\")?.toString() ?? \"\"\n const lastName = formData.get(\"lastName\")?.toString() ?? \"\"\n const email = formData.get(\"email\")?.toString() ?? \"\"\n const password = formData.get(\"password\")?.toString() ?? \"\"\n const acceptTerms = formData.get(\"acceptTerms\")?.toString() ?? \"\"\n\n // Validate\n const result = signupSchema.safeParse({ firstName, lastName, email, password, acceptTerms })\n\n if (!result.success) {\n console.error(\"Validation errors:\", result.error.flatten().fieldErrors)\n return {\n errors: result.error.flatten().fieldErrors,\n }\n }\n\n // Call registration API\n const [_, error] = await customerClient.user.registerUser({\n first_name: firstName,\n last_name: lastName,\n email,\n password,\n })\n\n if (error) {\n console.error(\"Registration error:\", error)\n return {\n errors: { general: [\"Failed to register. Please try again.\"] },\n }\n }\n\n // Redirect to home page\n redirect(options.redirectPath ?? `/`)\n}\n"],"mappings":";AAEA,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AAEzB,YAAY,OAAO;AAGnB,MAAM,eAAe,EAAE,OAAO;AAAA,EAC5B,WAAW,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,yBAAyB,CAAC;AAAA,EAClE,UAAU,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,wBAAwB,CAAC;AAAA,EAChE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,wBAAwB,CAAC;AAAA,EAC5D,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,SAAS,0CAA0C,CAAC;AAAA,EACnF,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,QAAQ,MAAM,EAAE,SAAS,4BAA4B,CAAC;AAChG,CAAC;AAMM,MAAM,qBAAqB,OAAO,UAAoB,YAAqB;AAEhF,QAAM,YAAY,SAAS,IAAI,WAAW,GAAG,SAAS,KAAK;AAC3D,QAAM,WAAW,SAAS,IAAI,UAAU,GAAG,SAAS,KAAK;AACzD,QAAM,QAAQ,SAAS,IAAI,OAAO,GAAG,SAAS,KAAK;AACnD,QAAM,WAAW,SAAS,IAAI,UAAU,GAAG,SAAS,KAAK;AACzD,QAAM,cAAc,SAAS,IAAI,aAAa,GAAG,SAAS,KAAK;AAG/D,QAAM,SAAS,aAAa,UAAU,EAAE,WAAW,UAAU,OAAO,UAAU,YAAY,CAAC;AAE3F,MAAI,CAAC,OAAO,SAAS;AACnB,YAAQ,MAAM,sBAAsB,OAAO,MAAM,QAAQ,EAAE,WAAW;AACtE,WAAO;AAAA,MACL,QAAQ,OAAO,MAAM,QAAQ,EAAE;AAAA,IACjC;AAAA,EACF;AAGA,QAAM,CAAC,GAAG,KAAK,IAAI,MAAM,eAAe,KAAK,aAAa;AAAA,IACxD,YAAY;AAAA,IACZ,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI,OAAO;AACT,YAAQ,MAAM,uBAAuB,KAAK;AAC1C,WAAO;AAAA,MACL,QAAQ,EAAE,SAAS,CAAC,uCAAuC,EAAE;AAAA,IAC/D;AAAA,EACF;AAGA,WAAS,QAAQ,gBAAgB,GAAG;AACtC;","names":[]}
@@ -1,44 +0,0 @@
1
- import * as _enadhq_enad_ts_sdk from '@enadhq/enad-ts-sdk';
2
-
3
- declare const registerUserWithoutRedirectAction: (userData: {
4
- firstName: string;
5
- lastName: string;
6
- email: string;
7
- password: string;
8
- phone_number?: string;
9
- language?: string;
10
- country_code?: string;
11
- market?: string;
12
- store_group?: string;
13
- allow_email_notifications?: boolean;
14
- allow_phone_notifications?: boolean;
15
- allow_postal_notifications?: boolean;
16
- status?: "active" | "pending" | "inactive" | undefined;
17
- }) => Promise<{
18
- errors: {
19
- firstName?: string[] | undefined;
20
- lastName?: string[] | undefined;
21
- email?: string[] | undefined;
22
- password?: string[] | undefined;
23
- phone_number?: string[] | undefined;
24
- language?: string[] | undefined;
25
- country_code?: string[] | undefined;
26
- market?: string[] | undefined;
27
- store_group?: string[] | undefined;
28
- allow_email_notifications?: string[] | undefined;
29
- allow_phone_notifications?: string[] | undefined;
30
- allow_postal_notifications?: string[] | undefined;
31
- status?: string[] | undefined;
32
- };
33
- data: null;
34
- } | {
35
- errors: {
36
- general: string[];
37
- };
38
- data: null;
39
- } | {
40
- data: _enadhq_enad_ts_sdk.EnadUser;
41
- errors: null;
42
- }>;
43
-
44
- export { registerUserWithoutRedirectAction };
@@ -1,58 +0,0 @@
1
- "use server";
2
- import { customerClient } from "../clients/enad";
3
- import * as z from "zod";
4
- const signupSchema = z.object({
5
- firstName: z.string().min(1, { message: "First name is required" }),
6
- lastName: z.string().min(1, { message: "Last name is required" }),
7
- email: z.string().email({ message: "Invalid email address" }),
8
- password: z.string().min(10, { message: "Password must be at least 10 characters" }),
9
- phone_number: z.string().optional(),
10
- language: z.string().optional(),
11
- country_code: z.string().optional(),
12
- market: z.string().optional(),
13
- store_group: z.string().optional(),
14
- allow_email_notifications: z.boolean().optional(),
15
- allow_phone_notifications: z.boolean().optional(),
16
- allow_postal_notifications: z.boolean().optional(),
17
- status: z.enum(["active", "pending", "inactive"]).optional()
18
- });
19
- const registerUserWithoutRedirectAction = async (userData) => {
20
- const result = signupSchema.safeParse(userData);
21
- if (!result.success) {
22
- console.error("Validation errors:", result.error.flatten().fieldErrors);
23
- return {
24
- errors: result.error.flatten().fieldErrors,
25
- data: null
26
- };
27
- }
28
- const [data, error] = await customerClient.user.registerUser({
29
- first_name: userData.firstName,
30
- last_name: userData.lastName,
31
- email: userData.email.toLowerCase(),
32
- password: userData.password,
33
- phone_number: userData.phone_number,
34
- language: userData.language,
35
- country_code: userData.country_code,
36
- market: userData.market,
37
- store_group: userData.store_group,
38
- allow_email_notifications: userData.allow_email_notifications,
39
- allow_phone_notifications: userData.allow_phone_notifications,
40
- allow_postal_notifications: userData.allow_postal_notifications,
41
- status: userData.status
42
- });
43
- if (error) {
44
- console.error("Registration error:", error);
45
- return {
46
- errors: { general: [error.message || "Failed to register. Please try again."] },
47
- data: null
48
- };
49
- }
50
- return {
51
- data,
52
- errors: null
53
- };
54
- };
55
- export {
56
- registerUserWithoutRedirectAction
57
- };
58
- //# sourceMappingURL=registerUserWithoutRedirectAction.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/client/user/actions/registerUserWithoutRedirectAction.ts"],"sourcesContent":["\"use server\"\n\nimport { customerClient } from \"../clients/enad\"\nimport * as z from \"zod\"\n\n// Validation schema for signup\nconst signupSchema = z.object({\n firstName: z.string().min(1, { message: \"First name is required\" }),\n lastName: z.string().min(1, { message: \"Last name is required\" }),\n email: z.string().email({ message: \"Invalid email address\" }),\n password: z.string().min(10, { message: \"Password must be at least 10 characters\" }),\n phone_number: z.string().optional(),\n language: z.string().optional(),\n country_code: z.string().optional(),\n market: z.string().optional(),\n store_group: z.string().optional(),\n allow_email_notifications: z.boolean().optional(),\n allow_phone_notifications: z.boolean().optional(),\n allow_postal_notifications: z.boolean().optional(),\n status: z.enum([\"active\", \"pending\", \"inactive\"]).optional(),\n})\n\nexport const registerUserWithoutRedirectAction = async (userData: {\n firstName: string\n lastName: string\n email: string\n password: string\n phone_number?: string\n language?: string\n country_code?: string\n market?: string\n store_group?: string\n allow_email_notifications?: boolean\n allow_phone_notifications?: boolean\n allow_postal_notifications?: boolean\n status?: \"active\" | \"pending\" | \"inactive\" | undefined\n}) => {\n // Validate\n const result = signupSchema.safeParse(userData)\n\n if (!result.success) {\n console.error(\"Validation errors:\", result.error.flatten().fieldErrors)\n return {\n errors: result.error.flatten().fieldErrors,\n data: null,\n }\n }\n\n // Call registration API\n const [data, error] = await customerClient.user.registerUser({\n first_name: userData.firstName,\n last_name: userData.lastName,\n email: userData.email.toLowerCase(),\n password: userData.password,\n phone_number: userData.phone_number,\n language: userData.language,\n country_code: userData.country_code,\n market: userData.market,\n store_group: userData.store_group,\n allow_email_notifications: userData.allow_email_notifications,\n allow_phone_notifications: userData.allow_phone_notifications,\n allow_postal_notifications: userData.allow_postal_notifications,\n status: userData.status,\n })\n\n if (error) {\n console.error(\"Registration error:\", error)\n return {\n errors: { general: [error.message || \"Failed to register. Please try again.\"] },\n data: null,\n }\n }\n\n return {\n data,\n errors: null,\n }\n}\n"],"mappings":";AAEA,SAAS,sBAAsB;AAC/B,YAAY,OAAO;AAGnB,MAAM,eAAe,EAAE,OAAO;AAAA,EAC5B,WAAW,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,yBAAyB,CAAC;AAAA,EAClE,UAAU,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,wBAAwB,CAAC;AAAA,EAChE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,wBAAwB,CAAC;AAAA,EAC5D,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,SAAS,0CAA0C,CAAC;AAAA,EACnF,cAAc,EAAE,OAAO,EAAE,SAAS;AAAA,EAClC,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,cAAc,EAAE,OAAO,EAAE,SAAS;AAAA,EAClC,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,2BAA2B,EAAE,QAAQ,EAAE,SAAS;AAAA,EAChD,2BAA2B,EAAE,QAAQ,EAAE,SAAS;AAAA,EAChD,4BAA4B,EAAE,QAAQ,EAAE,SAAS;AAAA,EACjD,QAAQ,EAAE,KAAK,CAAC,UAAU,WAAW,UAAU,CAAC,EAAE,SAAS;AAC7D,CAAC;AAEM,MAAM,oCAAoC,OAAO,aAclD;AAEJ,QAAM,SAAS,aAAa,UAAU,QAAQ;AAE9C,MAAI,CAAC,OAAO,SAAS;AACnB,YAAQ,MAAM,sBAAsB,OAAO,MAAM,QAAQ,EAAE,WAAW;AACtE,WAAO;AAAA,MACL,QAAQ,OAAO,MAAM,QAAQ,EAAE;AAAA,MAC/B,MAAM;AAAA,IACR;AAAA,EACF;AAGA,QAAM,CAAC,MAAM,KAAK,IAAI,MAAM,eAAe,KAAK,aAAa;AAAA,IAC3D,YAAY,SAAS;AAAA,IACrB,WAAW,SAAS;AAAA,IACpB,OAAO,SAAS,MAAM,YAAY;AAAA,IAClC,UAAU,SAAS;AAAA,IACnB,cAAc,SAAS;AAAA,IACvB,UAAU,SAAS;AAAA,IACnB,cAAc,SAAS;AAAA,IACvB,QAAQ,SAAS;AAAA,IACjB,aAAa,SAAS;AAAA,IACtB,2BAA2B,SAAS;AAAA,IACpC,2BAA2B,SAAS;AAAA,IACpC,4BAA4B,SAAS;AAAA,IACrC,QAAQ,SAAS;AAAA,EACnB,CAAC;AAED,MAAI,OAAO;AACT,YAAQ,MAAM,uBAAuB,KAAK;AAC1C,WAAO;AAAA,MACL,QAAQ,EAAE,SAAS,CAAC,MAAM,WAAW,uCAAuC,EAAE;AAAA,MAC9E,MAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,EACV;AACF;","names":[]}
@@ -1,21 +0,0 @@
1
- interface Options {
2
- redirectPath?: string;
3
- }
4
- declare const updatePasswordAction: (formData: FormData, options?: Options) => Promise<{
5
- errors: {
6
- password?: string[] | undefined;
7
- token?: string[] | undefined;
8
- };
9
- } | {
10
- errors: {
11
- confirmPassword: string[];
12
- general?: undefined;
13
- };
14
- } | {
15
- errors: {
16
- general: string[];
17
- confirmPassword?: undefined;
18
- };
19
- }>;
20
-
21
- export { updatePasswordAction };
@@ -1,37 +0,0 @@
1
- "use server";
2
- import { customerClient } from "../clients/enad";
3
- import { redirect } from "next/navigation";
4
- import * as z from "zod";
5
- const passwordSchema = z.object({
6
- password: z.string().min(10, { message: "Password must be at least 10 characters" }),
7
- token: z.string().min(1, { message: "Reset token is required" })
8
- });
9
- const updatePasswordAction = async (formData, options = {}) => {
10
- const password = formData.get("password")?.toString() ?? "";
11
- const confirmPassword = formData.get("confirmPassword")?.toString() ?? "";
12
- const token = formData.get("token")?.toString() ?? "";
13
- const result = passwordSchema.safeParse({ password, confirmPassword, token });
14
- if (!result.success) {
15
- console.error("Validation errors:", result.error.flatten().fieldErrors);
16
- return {
17
- errors: result.error.flatten().fieldErrors
18
- };
19
- }
20
- if (password !== confirmPassword) {
21
- return {
22
- errors: { confirmPassword: ["Passwords do not match"] }
23
- };
24
- }
25
- const [res, error] = await customerClient.user.changePassword(password, token);
26
- if (error) {
27
- console.error("Change password error:", error);
28
- return {
29
- errors: { general: ["Failed to update password. Please try again later."] }
30
- };
31
- }
32
- redirect(options.redirectPath ?? "/login");
33
- };
34
- export {
35
- updatePasswordAction
36
- };
37
- //# sourceMappingURL=updatePasswordAction.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/client/user/actions/updatePasswordAction.ts"],"sourcesContent":["\"use server\"\n\nimport { customerClient } from \"../clients/enad\"\nimport { redirect } from \"next/navigation\"\nimport * as z from \"zod\"\n\n// Validation schema for password\nconst passwordSchema = z.object({\n password: z.string().min(10, { message: \"Password must be at least 10 characters\" }),\n token: z.string().min(1, { message: \"Reset token is required\" }),\n})\n\ninterface Options {\n redirectPath?: string\n}\n\nexport const updatePasswordAction = async (formData: FormData, options: Options = {}) => {\n const password = formData.get(\"password\")?.toString() ?? \"\"\n const confirmPassword = formData.get(\"confirmPassword\")?.toString() ?? \"\"\n const token = formData.get(\"token\")?.toString() ?? \"\"\n\n // Validate\n const result = passwordSchema.safeParse({ password, confirmPassword, token })\n\n if (!result.success) {\n console.error(\"Validation errors:\", result.error.flatten().fieldErrors)\n return {\n errors: result.error.flatten().fieldErrors,\n }\n }\n\n if (password !== confirmPassword) {\n return {\n errors: { confirmPassword: [\"Passwords do not match\"] },\n }\n }\n\n // Call the SDK to change password\n const [res, error] = await customerClient.user.changePassword(password, token)\n\n if (error) {\n console.error(\"Change password error:\", error)\n return {\n errors: { general: [\"Failed to update password. Please try again later.\"] },\n }\n }\n\n // Success → redirect\n redirect(options.redirectPath ?? \"/login\")\n}\n"],"mappings":";AAEA,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,YAAY,OAAO;AAGnB,MAAM,iBAAiB,EAAE,OAAO;AAAA,EAC9B,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,SAAS,0CAA0C,CAAC;AAAA,EACnF,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,0BAA0B,CAAC;AACjE,CAAC;AAMM,MAAM,uBAAuB,OAAO,UAAoB,UAAmB,CAAC,MAAM;AACvF,QAAM,WAAW,SAAS,IAAI,UAAU,GAAG,SAAS,KAAK;AACzD,QAAM,kBAAkB,SAAS,IAAI,iBAAiB,GAAG,SAAS,KAAK;AACvE,QAAM,QAAQ,SAAS,IAAI,OAAO,GAAG,SAAS,KAAK;AAGnD,QAAM,SAAS,eAAe,UAAU,EAAE,UAAU,iBAAiB,MAAM,CAAC;AAE5E,MAAI,CAAC,OAAO,SAAS;AACnB,YAAQ,MAAM,sBAAsB,OAAO,MAAM,QAAQ,EAAE,WAAW;AACtE,WAAO;AAAA,MACL,QAAQ,OAAO,MAAM,QAAQ,EAAE;AAAA,IACjC;AAAA,EACF;AAEA,MAAI,aAAa,iBAAiB;AAChC,WAAO;AAAA,MACL,QAAQ,EAAE,iBAAiB,CAAC,wBAAwB,EAAE;AAAA,IACxD;AAAA,EACF;AAGA,QAAM,CAAC,KAAK,KAAK,IAAI,MAAM,eAAe,KAAK,eAAe,UAAU,KAAK;AAE7E,MAAI,OAAO;AACT,YAAQ,MAAM,0BAA0B,KAAK;AAC7C,WAAO;AAAA,MACL,QAAQ,EAAE,SAAS,CAAC,oDAAoD,EAAE;AAAA,IAC5E;AAAA,EACF;AAGA,WAAS,QAAQ,gBAAgB,QAAQ;AAC3C;","names":[]}
@@ -1,9 +0,0 @@
1
- import { NextResponse } from 'next/server';
2
-
3
- declare function userRouteGETHandler(req: Request): Promise<NextResponse<{
4
- error: string;
5
- }> | NextResponse<{
6
- user: any;
7
- }>>;
8
-
9
- export { userRouteGETHandler };
@@ -1,65 +0,0 @@
1
- import { NextResponse } from "next/server";
2
- const APP_ID = "8bd950c5-551b-4603-bfe6-f33cdcae1a69";
3
- async function refreshAccessToken(refreshToken) {
4
- const response = await fetch(`https://customers.enad.io/api/v1/${APP_ID}/auth/refresh`, {
5
- method: "POST",
6
- headers: {
7
- "Content-Type": "application/json",
8
- "api-key": "MaCtW4PYVqDl8n4fpplMBqJ3-0De4DP1cPLT76oJuHE8lyR61oHne_iK-yX5"
9
- },
10
- body: JSON.stringify({ refresh_token: refreshToken })
11
- });
12
- if (!response.ok) throw new Error("Failed to refresh token");
13
- return response.json();
14
- }
15
- async function getUser(accessToken) {
16
- const response = await fetch(`https://customers.enad.io/api/v1/${APP_ID}/user`, {
17
- headers: { Authorization: `Bearer ${accessToken}` }
18
- });
19
- if (!response.ok) throw new Error("Failed to fetch user");
20
- return response.json();
21
- }
22
- async function userRouteGETHandler(req) {
23
- try {
24
- const cookies = req.headers.get("cookie") || "";
25
- let accessToken = cookies.split("; ").find((c) => c.startsWith("access_token="))?.split("=")[1];
26
- const refreshToken = cookies.split("; ").find((c) => c.startsWith("refresh_token="))?.split("=")[1];
27
- console.log("Access Token:", accessToken);
28
- console.log("Refresh Token:", refreshToken);
29
- if (!accessToken && !refreshToken) {
30
- return NextResponse.json({ error: "Not authenticated" }, { status: 401 });
31
- }
32
- try {
33
- const user = await getUser(accessToken);
34
- return NextResponse.json({ user });
35
- } catch (err) {
36
- if (!refreshToken) throw err;
37
- const refreshData = await refreshAccessToken(refreshToken);
38
- accessToken = refreshData.access_token;
39
- const res = NextResponse.json({ user: await getUser(accessToken) });
40
- res.cookies.set("access_token", refreshData.access_token, {
41
- httpOnly: true,
42
- secure: process.env.NODE_ENV === "production",
43
- path: "/",
44
- maxAge: refreshData.expires_in
45
- });
46
- if (refreshData.refresh_token) {
47
- res.cookies.set("refresh_token", refreshData.refresh_token, {
48
- httpOnly: true,
49
- secure: process.env.NODE_ENV === "production",
50
- path: "/",
51
- maxAge: 7 * 24 * 60 * 60
52
- // 7 days
53
- });
54
- }
55
- return res;
56
- }
57
- } catch (error) {
58
- console.error(error);
59
- return NextResponse.json({ error: "Unable to fetch user" }, { status: 500 });
60
- }
61
- }
62
- export {
63
- userRouteGETHandler
64
- };
65
- //# sourceMappingURL=userRoute.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/client/user/api/userRoute.ts"],"sourcesContent":["import { NextResponse } from \"next/server\"\n\nconst APP_ID = \"8bd950c5-551b-4603-bfe6-f33cdcae1a69\"\n\nasync function refreshAccessToken(refreshToken: string) {\n const response = await fetch(`https://customers.enad.io/api/v1/${APP_ID}/auth/refresh`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"api-key\": \"MaCtW4PYVqDl8n4fpplMBqJ3-0De4DP1cPLT76oJuHE8lyR61oHne_iK-yX5\",\n },\n body: JSON.stringify({ refresh_token: refreshToken }),\n })\n\n if (!response.ok) throw new Error(\"Failed to refresh token\")\n\n return response.json() // { access_token, refresh_token? }\n}\n\nasync function getUser(accessToken: string) {\n const response = await fetch(`https://customers.enad.io/api/v1/${APP_ID}/user`, {\n headers: { Authorization: `Bearer ${accessToken}` },\n })\n\n if (!response.ok) throw new Error(\"Failed to fetch user\")\n\n return response.json()\n}\n\nexport async function userRouteGETHandler(req: Request) {\n try {\n // Read access token from cookie\n const cookies = req.headers.get(\"cookie\") || \"\"\n let accessToken = cookies\n .split(\"; \")\n .find((c) => c.startsWith(\"access_token=\"))\n ?.split(\"=\")[1]\n const refreshToken = cookies\n .split(\"; \")\n .find((c) => c.startsWith(\"refresh_token=\"))\n ?.split(\"=\")[1]\n\n console.log(\"Access Token:\", accessToken)\n console.log(\"Refresh Token:\", refreshToken)\n\n if (!accessToken && !refreshToken) {\n return NextResponse.json({ error: \"Not authenticated\" }, { status: 401 })\n }\n\n try {\n // Try fetching user with current access token\n const user = await getUser(accessToken!)\n return NextResponse.json({ user })\n } catch (err) {\n // If token expired, refresh it\n if (!refreshToken) throw err\n\n const refreshData = await refreshAccessToken(refreshToken)\n accessToken = refreshData.access_token\n\n // Update cookies with new access token and refresh token if returned\n const res = NextResponse.json({ user: await getUser(accessToken!) })\n\n res.cookies.set(\"access_token\", refreshData.access_token, {\n httpOnly: true,\n secure: process.env.NODE_ENV === \"production\",\n path: \"/\",\n maxAge: refreshData.expires_in,\n })\n\n if (refreshData.refresh_token) {\n res.cookies.set(\"refresh_token\", refreshData.refresh_token, {\n httpOnly: true,\n secure: process.env.NODE_ENV === \"production\",\n path: \"/\",\n maxAge: 7 * 24 * 60 * 60, // 7 days\n })\n }\n\n return res\n }\n } catch (error) {\n console.error(error)\n return NextResponse.json({ error: \"Unable to fetch user\" }, { status: 500 })\n }\n}\n"],"mappings":"AAAA,SAAS,oBAAoB;AAE7B,MAAM,SAAS;AAEf,eAAe,mBAAmB,cAAsB;AACtD,QAAM,WAAW,MAAM,MAAM,oCAAoC,MAAM,iBAAiB;AAAA,IACtF,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,WAAW;AAAA,IACb;AAAA,IACA,MAAM,KAAK,UAAU,EAAE,eAAe,aAAa,CAAC;AAAA,EACtD,CAAC;AAED,MAAI,CAAC,SAAS,GAAI,OAAM,IAAI,MAAM,yBAAyB;AAE3D,SAAO,SAAS,KAAK;AACvB;AAEA,eAAe,QAAQ,aAAqB;AAC1C,QAAM,WAAW,MAAM,MAAM,oCAAoC,MAAM,SAAS;AAAA,IAC9E,SAAS,EAAE,eAAe,UAAU,WAAW,GAAG;AAAA,EACpD,CAAC;AAED,MAAI,CAAC,SAAS,GAAI,OAAM,IAAI,MAAM,sBAAsB;AAExD,SAAO,SAAS,KAAK;AACvB;AAEA,eAAsB,oBAAoB,KAAc;AACtD,MAAI;AAEF,UAAM,UAAU,IAAI,QAAQ,IAAI,QAAQ,KAAK;AAC7C,QAAI,cAAc,QACf,MAAM,IAAI,EACV,KAAK,CAAC,MAAM,EAAE,WAAW,eAAe,CAAC,GACxC,MAAM,GAAG,EAAE,CAAC;AAChB,UAAM,eAAe,QAClB,MAAM,IAAI,EACV,KAAK,CAAC,MAAM,EAAE,WAAW,gBAAgB,CAAC,GACzC,MAAM,GAAG,EAAE,CAAC;AAEhB,YAAQ,IAAI,iBAAiB,WAAW;AACxC,YAAQ,IAAI,kBAAkB,YAAY;AAE1C,QAAI,CAAC,eAAe,CAAC,cAAc;AACjC,aAAO,aAAa,KAAK,EAAE,OAAO,oBAAoB,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC1E;AAEA,QAAI;AAEF,YAAM,OAAO,MAAM,QAAQ,WAAY;AACvC,aAAO,aAAa,KAAK,EAAE,KAAK,CAAC;AAAA,IACnC,SAAS,KAAK;AAEZ,UAAI,CAAC,aAAc,OAAM;AAEzB,YAAM,cAAc,MAAM,mBAAmB,YAAY;AACzD,oBAAc,YAAY;AAG1B,YAAM,MAAM,aAAa,KAAK,EAAE,MAAM,MAAM,QAAQ,WAAY,EAAE,CAAC;AAEnE,UAAI,QAAQ,IAAI,gBAAgB,YAAY,cAAc;AAAA,QACxD,UAAU;AAAA,QACV,QAAQ,QAAQ,IAAI,aAAa;AAAA,QACjC,MAAM;AAAA,QACN,QAAQ,YAAY;AAAA,MACtB,CAAC;AAED,UAAI,YAAY,eAAe;AAC7B,YAAI,QAAQ,IAAI,iBAAiB,YAAY,eAAe;AAAA,UAC1D,UAAU;AAAA,UACV,QAAQ,QAAQ,IAAI,aAAa;AAAA,UACjC,MAAM;AAAA,UACN,QAAQ,IAAI,KAAK,KAAK;AAAA;AAAA,QACxB,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,KAAK;AACnB,WAAO,aAAa,KAAK,EAAE,OAAO,uBAAuB,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC7E;AACF;","names":[]}
@@ -1,6 +0,0 @@
1
- import { CustomerClient, ShopperClient } from '@enadhq/enad-ts-sdk';
2
-
3
- declare const customerClient: CustomerClient;
4
- declare const shopperClient: ShopperClient;
5
-
6
- export { customerClient, shopperClient };
@@ -1,19 +0,0 @@
1
- import { CustomerClient, ShopperClient } from "@enadhq/enad-ts-sdk";
2
- import { enadConfig } from "../../../client/global/config";
3
- const customerClient = new CustomerClient({
4
- apiKey: enadConfig.server.userApiKey,
5
- appId: enadConfig.client.appId,
6
- groupId: enadConfig.client.groupId
7
- });
8
- const shopperClient = new ShopperClient({
9
- apiKey: enadConfig.client.apiKey,
10
- appId: enadConfig.client.appId,
11
- groupId: enadConfig.client.groupId,
12
- defaultLocale: enadConfig.client.defaultLocale,
13
- defaultMarket: enadConfig.client.defaultMarket
14
- });
15
- export {
16
- customerClient,
17
- shopperClient
18
- };
19
- //# sourceMappingURL=enad.mjs.map