@rovela-ai/sdk 0.11.2 → 0.12.1

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 (158) hide show
  1. package/dist/admin/api/categories.d.ts.map +1 -1
  2. package/dist/admin/api/categories.js +4 -0
  3. package/dist/admin/api/categories.js.map +1 -1
  4. package/dist/admin/api/orders.d.ts.map +1 -1
  5. package/dist/admin/api/orders.js +6 -0
  6. package/dist/admin/api/orders.js.map +1 -1
  7. package/dist/admin/api/products.d.ts.map +1 -1
  8. package/dist/admin/api/products.js +4 -0
  9. package/dist/admin/api/products.js.map +1 -1
  10. package/dist/admin/components/CatalogTranslationsEditor.d.ts +15 -0
  11. package/dist/admin/components/CatalogTranslationsEditor.d.ts.map +1 -0
  12. package/dist/admin/components/CatalogTranslationsEditor.js +59 -0
  13. package/dist/admin/components/CatalogTranslationsEditor.js.map +1 -0
  14. package/dist/admin/components/CategoryForm.d.ts.map +1 -1
  15. package/dist/admin/components/CategoryForm.js +4 -1
  16. package/dist/admin/components/CategoryForm.js.map +1 -1
  17. package/dist/admin/components/ProductForm.d.ts.map +1 -1
  18. package/dist/admin/components/ProductForm.js +5 -1
  19. package/dist/admin/components/ProductForm.js.map +1 -1
  20. package/dist/admin/types.d.ts +10 -0
  21. package/dist/admin/types.d.ts.map +1 -1
  22. package/dist/auth/api/register.d.ts.map +1 -1
  23. package/dist/auth/api/register.js +4 -1
  24. package/dist/auth/api/register.js.map +1 -1
  25. package/dist/auth/components/AddressBook.d.ts.map +1 -1
  26. package/dist/auth/components/AddressBook.js +10 -8
  27. package/dist/auth/components/AddressBook.js.map +1 -1
  28. package/dist/auth/components/AddressForm.d.ts.map +1 -1
  29. package/dist/auth/components/AddressForm.js +8 -6
  30. package/dist/auth/components/AddressForm.js.map +1 -1
  31. package/dist/auth/components/ForgotPasswordForm.d.ts.map +1 -1
  32. package/dist/auth/components/ForgotPasswordForm.js +4 -2
  33. package/dist/auth/components/ForgotPasswordForm.js.map +1 -1
  34. package/dist/auth/components/ResetPasswordForm.d.ts.map +1 -1
  35. package/dist/auth/components/ResetPasswordForm.js +10 -8
  36. package/dist/auth/components/ResetPasswordForm.js.map +1 -1
  37. package/dist/auth/components/SignInForm.d.ts.map +1 -1
  38. package/dist/auth/components/SignInForm.js +5 -3
  39. package/dist/auth/components/SignInForm.js.map +1 -1
  40. package/dist/auth/components/SignUpForm.d.ts.map +1 -1
  41. package/dist/auth/components/SignUpForm.js +7 -5
  42. package/dist/auth/components/SignUpForm.js.map +1 -1
  43. package/dist/auth/components/UserMenu.d.ts.map +1 -1
  44. package/dist/auth/components/UserMenu.js +4 -2
  45. package/dist/auth/components/UserMenu.js.map +1 -1
  46. package/dist/auth/components/VerifyEmailNotice.d.ts.map +1 -1
  47. package/dist/auth/components/VerifyEmailNotice.js +6 -4
  48. package/dist/auth/components/VerifyEmailNotice.js.map +1 -1
  49. package/dist/auth/hooks/useAuth.d.ts.map +1 -1
  50. package/dist/auth/hooks/useAuth.js +11 -1
  51. package/dist/auth/hooks/useAuth.js.map +1 -1
  52. package/dist/auth/server/customer-service.d.ts +1 -1
  53. package/dist/auth/server/customer-service.d.ts.map +1 -1
  54. package/dist/auth/server/customer-service.js +2 -1
  55. package/dist/auth/server/customer-service.js.map +1 -1
  56. package/dist/auth/types.d.ts +2 -0
  57. package/dist/auth/types.d.ts.map +1 -1
  58. package/dist/cart/components/CartDrawer.js +1 -1
  59. package/dist/cart/components/CartDrawer.js.map +1 -1
  60. package/dist/cart/components/CartItem.js +1 -1
  61. package/dist/cart/components/CartItem.js.map +1 -1
  62. package/dist/checkout/api/manual.d.ts.map +1 -1
  63. package/dist/checkout/api/manual.js +6 -0
  64. package/dist/checkout/api/manual.js.map +1 -1
  65. package/dist/checkout/components/OrderTimeline.d.ts.map +1 -1
  66. package/dist/checkout/components/OrderTimeline.js +8 -6
  67. package/dist/checkout/components/OrderTimeline.js.map +1 -1
  68. package/dist/checkout/hooks/useCheckout.d.ts.map +1 -1
  69. package/dist/checkout/hooks/useCheckout.js +6 -2
  70. package/dist/checkout/hooks/useCheckout.js.map +1 -1
  71. package/dist/checkout/server/create-checkout-session.d.ts.map +1 -1
  72. package/dist/checkout/server/create-checkout-session.js +1 -0
  73. package/dist/checkout/server/create-checkout-session.js.map +1 -1
  74. package/dist/checkout/server/handle-webhook.js +1 -0
  75. package/dist/checkout/server/handle-webhook.js.map +1 -1
  76. package/dist/checkout/server/order-service.d.ts.map +1 -1
  77. package/dist/checkout/server/order-service.js +2 -0
  78. package/dist/checkout/server/order-service.js.map +1 -1
  79. package/dist/checkout/types.d.ts +4 -0
  80. package/dist/checkout/types.d.ts.map +1 -1
  81. package/dist/core/cookie-consent/CookieBanner.d.ts.map +1 -1
  82. package/dist/core/cookie-consent/CookieBanner.js +7 -4
  83. package/dist/core/cookie-consent/CookieBanner.js.map +1 -1
  84. package/dist/core/db/queries.d.ts +67 -27
  85. package/dist/core/db/queries.d.ts.map +1 -1
  86. package/dist/core/db/queries.js +53 -0
  87. package/dist/core/db/queries.js.map +1 -1
  88. package/dist/core/db/schema.d.ts +88 -0
  89. package/dist/core/db/schema.d.ts.map +1 -1
  90. package/dist/core/db/schema.js +16 -0
  91. package/dist/core/db/schema.js.map +1 -1
  92. package/dist/core/i18n/LocaleLink.d.ts +27 -0
  93. package/dist/core/i18n/LocaleLink.d.ts.map +1 -0
  94. package/dist/core/i18n/LocaleLink.js +52 -0
  95. package/dist/core/i18n/LocaleLink.js.map +1 -0
  96. package/dist/core/i18n/catalog.d.ts +45 -0
  97. package/dist/core/i18n/catalog.d.ts.map +1 -0
  98. package/dist/core/i18n/catalog.js +72 -0
  99. package/dist/core/i18n/catalog.js.map +1 -0
  100. package/dist/core/i18n/index.d.ts +5 -1
  101. package/dist/core/i18n/index.d.ts.map +1 -1
  102. package/dist/core/i18n/index.js +2 -0
  103. package/dist/core/i18n/index.js.map +1 -1
  104. package/dist/core/i18n/messages/en.d.ts.map +1 -1
  105. package/dist/core/i18n/messages/en.js +98 -0
  106. package/dist/core/i18n/messages/en.js.map +1 -1
  107. package/dist/core/i18n/messages/fr.d.ts.map +1 -1
  108. package/dist/core/i18n/messages/fr.js +98 -0
  109. package/dist/core/i18n/messages/fr.js.map +1 -1
  110. package/dist/core/i18n/resolve.d.ts +15 -3
  111. package/dist/core/i18n/resolve.d.ts.map +1 -1
  112. package/dist/core/i18n/resolve.js +7 -5
  113. package/dist/core/i18n/resolve.js.map +1 -1
  114. package/dist/core/server/index.d.ts +3 -0
  115. package/dist/core/server/index.d.ts.map +1 -1
  116. package/dist/core/server/index.js +3 -0
  117. package/dist/core/server/index.js.map +1 -1
  118. package/dist/core/server/locale-metadata.d.ts +32 -0
  119. package/dist/core/server/locale-metadata.d.ts.map +1 -0
  120. package/dist/core/server/locale-metadata.js +65 -0
  121. package/dist/core/server/locale-metadata.js.map +1 -0
  122. package/dist/core/server/request-locale.d.ts +24 -0
  123. package/dist/core/server/request-locale.d.ts.map +1 -0
  124. package/dist/core/server/request-locale.js +44 -0
  125. package/dist/core/server/request-locale.js.map +1 -0
  126. package/dist/emails/i18n.d.ts +27 -0
  127. package/dist/emails/i18n.d.ts.map +1 -0
  128. package/dist/emails/i18n.js +273 -0
  129. package/dist/emails/i18n.js.map +1 -0
  130. package/dist/emails/send/auth.d.ts +6 -0
  131. package/dist/emails/send/auth.d.ts.map +1 -1
  132. package/dist/emails/send/auth.js +3 -0
  133. package/dist/emails/send/auth.js.map +1 -1
  134. package/dist/emails/send/orders.d.ts +12 -0
  135. package/dist/emails/send/orders.d.ts.map +1 -1
  136. package/dist/emails/send/orders.js +6 -0
  137. package/dist/emails/send/orders.js.map +1 -1
  138. package/dist/emails/sender.d.ts.map +1 -1
  139. package/dist/emails/sender.js +3 -2
  140. package/dist/emails/sender.js.map +1 -1
  141. package/dist/emails/types.d.ts +2 -0
  142. package/dist/emails/types.d.ts.map +1 -1
  143. package/dist/products/api/product.d.ts +1 -1
  144. package/dist/products/api/product.d.ts.map +1 -1
  145. package/dist/products/api/product.js +5 -2
  146. package/dist/products/api/product.js.map +1 -1
  147. package/dist/products/api/products.d.ts.map +1 -1
  148. package/dist/products/api/products.js +7 -1
  149. package/dist/products/api/products.js.map +1 -1
  150. package/dist/products/components/ProductCard.js +1 -1
  151. package/dist/products/components/ProductCard.js.map +1 -1
  152. package/dist/products/hooks/useProduct.d.ts.map +1 -1
  153. package/dist/products/hooks/useProduct.js +4 -2
  154. package/dist/products/hooks/useProduct.js.map +1 -1
  155. package/dist/products/hooks/useProducts.d.ts.map +1 -1
  156. package/dist/products/hooks/useProducts.js +4 -1
  157. package/dist/products/hooks/useProducts.js.map +1 -1
  158. package/package.json +1 -1
@@ -9,6 +9,7 @@ import { useState, useCallback } from 'react';
9
9
  import { Mail } from 'lucide-react';
10
10
  import { useAuth } from '../hooks/useAuth';
11
11
  import { Label } from './Label';
12
+ import { useT } from '../../core/i18n';
12
13
  /**
13
14
  * Forgot password form for requesting password reset email.
14
15
  *
@@ -22,6 +23,7 @@ import { Label } from './Label';
22
23
  * ```
23
24
  */
24
25
  export function ForgotPasswordForm({ onSuccess, signInHref = '/auth/signin', className = '', }) {
26
+ const t = useT();
25
27
  const { requestPasswordReset } = useAuth();
26
28
  const [email, setEmail] = useState('');
27
29
  const [isLoading, setIsLoading] = useState(false);
@@ -36,8 +38,8 @@ export function ForgotPasswordForm({ onSuccess, signInHref = '/auth/signin', cla
36
38
  }, [email, requestPasswordReset, onSuccess]);
37
39
  // Show success state
38
40
  if (success) {
39
- return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsxs("div", { className: "rounded-md bg-green-50 p-6 text-center", children: [_jsx(Mail, { className: "mx-auto h-12 w-12 text-green-500" }), _jsx("h3", { className: "mt-4 text-lg font-medium text-green-800", children: "Check your email" }), _jsx("p", { className: "mt-2 text-sm text-green-600", children: "If an account exists with that email, we've sent you a link to reset your password." }), _jsx("a", { href: signInHref, className: "mt-4 inline-block text-sm font-medium text-green-700 hover:text-green-800", children: "Back to sign in" })] }) }));
41
+ return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsxs("div", { className: "rounded-md bg-green-50 p-6 text-center", children: [_jsx(Mail, { className: "mx-auto h-12 w-12 text-green-500" }), _jsx("h3", { className: "mt-4 text-lg font-medium text-green-800", children: t('auth.checkYourEmail') }), _jsx("p", { className: "mt-2 text-sm text-green-600", children: t('auth.forgotSuccessBody') }), _jsx("a", { href: signInHref, className: "mt-4 inline-block text-sm font-medium text-green-700 hover:text-green-800", children: "Back to sign in" })] }) }));
40
42
  }
41
- return (_jsxs("div", { className: `w-full max-w-md ${className}`, children: [_jsxs("div", { className: "mb-6 text-center", children: [_jsx("h2", { className: "text-xl font-semibold text-foreground", children: "Forgot your password?" }), _jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: "Enter your email address and we'll send you a link to reset your password." })] }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [_jsxs("div", { children: [_jsx(Label, { htmlFor: "forgot-email", required: true, children: "Email" }), _jsx("input", { id: "forgot-email", type: "email", value: email, onChange: (e) => setEmail(e.target.value), required: true, autoComplete: "email", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: "you@example.com" })] }), _jsx("button", { type: "submit", disabled: isLoading, className: "w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", children: isLoading ? 'Sending...' : 'Send reset link' }), _jsxs("p", { className: "text-center text-sm text-muted-foreground", children: ["Remember your password?", ' ', _jsx("a", { href: signInHref, className: "font-medium text-primary hover:text-primary/80", children: "Sign in" })] })] })] }));
43
+ return (_jsxs("div", { className: `w-full max-w-md ${className}`, children: [_jsxs("div", { className: "mb-6 text-center", children: [_jsx("h2", { className: "text-xl font-semibold text-foreground", children: "Forgot your password?" }), _jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: t('auth.forgotIntro') })] }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [_jsxs("div", { children: [_jsx(Label, { htmlFor: "forgot-email", required: true, children: t('form.email') }), _jsx("input", { id: "forgot-email", type: "email", value: email, onChange: (e) => setEmail(e.target.value), required: true, autoComplete: "email", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: t('form.emailPlaceholder') })] }), _jsx("button", { type: "submit", disabled: isLoading, className: "w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", children: isLoading ? t('auth.sending') : t('auth.sendResetLink') }), _jsxs("p", { className: "text-center text-sm text-muted-foreground", children: ["Remember your password?", ' ', _jsx("a", { href: signInHref, className: "font-medium text-primary hover:text-primary/80", children: "Sign in" })] })] })] }));
42
44
  }
43
45
  //# sourceMappingURL=ForgotPasswordForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ForgotPasswordForm.js","sourceRoot":"","sources":["../../../src/auth/components/ForgotPasswordForm.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAG/B;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,SAAS,EACT,UAAU,GAAG,cAAc,EAC3B,SAAS,GAAG,EAAE,GACU;IACxB,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAA;IAE1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,CAAkB,EAAE,EAAE;QAC5D,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,YAAY,CAAC,IAAI,CAAC,CAAA;QAElB,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAA;QAEjC,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,SAAS,EAAE,EAAE,CAAA;IACf,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAA;IAE5C,qBAAqB;IACrB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,cAAK,SAAS,EAAE,mBAAmB,SAAS,EAAE,YAC5C,eAAK,SAAS,EAAC,wCAAwC,aACrD,KAAC,IAAI,IAAC,SAAS,EAAC,kCAAkC,GAAG,EACrD,aAAI,SAAS,EAAC,yCAAyC,iCAElD,EACL,YAAG,SAAS,EAAC,6BAA6B,oGAEtC,EACJ,YACE,IAAI,EAAE,UAAU,EAChB,SAAS,EAAC,2EAA2E,gCAGnF,IACA,GACF,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAE,mBAAmB,SAAS,EAAE,aAC5C,eAAK,SAAS,EAAC,kBAAkB,aAC/B,aAAI,SAAS,EAAC,uCAAuC,sCAEhD,EACL,YAAG,SAAS,EAAC,oCAAoC,2FAE7C,IACA,EAEN,gBAAM,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAC,WAAW,aAEjD,0BACE,KAAC,KAAK,IAAC,OAAO,EAAC,cAAc,EAAC,QAAQ,4BAE9B,EACR,gBACE,EAAE,EAAC,cAAc,EACjB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,QAAQ,QACR,YAAY,EAAC,OAAO,EACpB,SAAS,EAAC,4LAA4L,EACtM,WAAW,EAAC,iBAAiB,GAC7B,IACE,EAGN,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAC,+NAA+N,YAExO,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,GACtC,EAGT,aAAG,SAAS,EAAC,2CAA2C,wCAC9B,GAAG,EAC3B,YAAG,IAAI,EAAE,UAAU,EAAE,SAAS,EAAC,gDAAgD,wBAE3E,IACF,IACC,IACH,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"ForgotPasswordForm.js","sourceRoot":"","sources":["../../../src/auth/components/ForgotPasswordForm.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ResetPasswordForm.d.ts","sourceRoot":"","sources":["../../../src/auth/components/ResetPasswordForm.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,SAAS,EACT,UAA2B,EAC3B,SAAc,GACf,EAAE,sBAAsB,2CA6LxB"}
1
+ {"version":3,"file":"ResetPasswordForm.d.ts","sourceRoot":"","sources":["../../../src/auth/components/ResetPasswordForm.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAGtD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,SAAS,EACT,UAA2B,EAC3B,SAAc,GACf,EAAE,sBAAsB,2CA8LxB"}
@@ -9,6 +9,7 @@ import { useState, useCallback, useEffect } from 'react';
9
9
  import { AlertTriangle, CheckCircle } from 'lucide-react';
10
10
  import { useAuth } from '../hooks/useAuth';
11
11
  import { Label } from './Label';
12
+ import { useT } from '../../core/i18n';
12
13
  /**
13
14
  * Reset password form for setting a new password with a token.
14
15
  *
@@ -25,6 +26,7 @@ import { Label } from './Label';
25
26
  * ```
26
27
  */
27
28
  export function ResetPasswordForm({ token, onSuccess, signInHref = '/auth/signin', className = '', }) {
29
+ const t = useT();
28
30
  const { validateResetToken, resetPassword } = useAuth();
29
31
  const [password, setPassword] = useState('');
30
32
  const [confirmPassword, setConfirmPassword] = useState('');
@@ -39,24 +41,24 @@ export function ResetPasswordForm({ token, onSuccess, signInHref = '/auth/signin
39
41
  const result = await validateResetToken(token);
40
42
  setIsValidating(false);
41
43
  if (!result.valid) {
42
- setTokenError(result.error || 'Invalid or expired reset link');
44
+ setTokenError(result.error || t('auth.invalidResetLink'));
43
45
  }
44
46
  }
45
47
  validateToken();
46
- }, [token, validateResetToken]);
48
+ }, [token, validateResetToken, t]);
47
49
  const handleSubmit = useCallback(async (e) => {
48
50
  e.preventDefault();
49
51
  setIsLoading(true);
50
52
  setError(null);
51
53
  // Validate passwords match
52
54
  if (password !== confirmPassword) {
53
- setError('Passwords do not match');
55
+ setError(t('auth.passwordsNoMatch'));
54
56
  setIsLoading(false);
55
57
  return;
56
58
  }
57
59
  // Validate password length
58
60
  if (password.length < 8) {
59
- setError('Password must be at least 8 characters');
61
+ setError(t('auth.password8'));
60
62
  setIsLoading(false);
61
63
  return;
62
64
  }
@@ -67,9 +69,9 @@ export function ResetPasswordForm({ token, onSuccess, signInHref = '/auth/signin
67
69
  onSuccess?.();
68
70
  }
69
71
  else {
70
- setError(result.error || 'Failed to reset password');
72
+ setError(result.error || t('auth.resetFailed'));
71
73
  }
72
- }, [password, confirmPassword, token, resetPassword, onSuccess]);
74
+ }, [password, confirmPassword, token, resetPassword, onSuccess, t]);
73
75
  // Loading state while validating token
74
76
  if (isValidating) {
75
77
  return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsxs("div", { className: "text-center", children: [_jsx("div", { className: "mx-auto h-8 w-8 animate-spin rounded-full border-2 border-primary border-t-transparent" }), _jsx("p", { className: "mt-4 text-sm text-muted-foreground", children: "Validating reset link..." })] }) }));
@@ -80,8 +82,8 @@ export function ResetPasswordForm({ token, onSuccess, signInHref = '/auth/signin
80
82
  }
81
83
  // Show success state
82
84
  if (success) {
83
- return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsxs("div", { className: "rounded-md bg-green-50 p-6 text-center", children: [_jsx(CheckCircle, { className: "mx-auto h-12 w-12 text-green-500" }), _jsx("h3", { className: "mt-4 text-lg font-medium text-green-800", children: "Password Reset Successfully" }), _jsx("p", { className: "mt-2 text-sm text-green-600", children: "Your password has been updated. You can now sign in with your new password." }), _jsx("a", { href: signInHref, className: "mt-4 inline-block rounded-md bg-green-600 px-4 py-2 text-sm font-medium text-white hover:bg-green-700", children: "Sign in" })] }) }));
85
+ return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsxs("div", { className: "rounded-md bg-green-50 p-6 text-center", children: [_jsx(CheckCircle, { className: "mx-auto h-12 w-12 text-green-500" }), _jsx("h3", { className: "mt-4 text-lg font-medium text-green-800", children: "Password Reset Successfully" }), _jsx("p", { className: "mt-2 text-sm text-green-600", children: "Your password has been updated. You can now sign in with your new password." }), _jsx("a", { href: signInHref, className: "mt-4 inline-block rounded-md bg-green-600 px-4 py-2 text-sm font-medium text-white hover:bg-green-700", children: t('auth.signIn') })] }) }));
84
86
  }
85
- return (_jsxs("div", { className: `w-full max-w-md ${className}`, children: [_jsxs("div", { className: "mb-6 text-center", children: [_jsx("h2", { className: "text-xl font-semibold text-foreground", children: "Reset your password" }), _jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: "Enter your new password below." })] }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [error && (_jsx("div", { className: "rounded-md bg-red-50 p-4 text-sm text-red-600", children: error })), _jsxs("div", { children: [_jsx(Label, { htmlFor: "reset-password", required: true, children: "New Password" }), _jsx("input", { id: "reset-password", type: "password", value: password, onChange: (e) => setPassword(e.target.value), required: true, autoComplete: "new-password", minLength: 8, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: "At least 8 characters" })] }), _jsxs("div", { children: [_jsx(Label, { htmlFor: "reset-confirm-password", required: true, children: "Confirm New Password" }), _jsx("input", { id: "reset-confirm-password", type: "password", value: confirmPassword, onChange: (e) => setConfirmPassword(e.target.value), required: true, autoComplete: "new-password", minLength: 8, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: "Confirm your password" })] }), _jsx("button", { type: "submit", disabled: isLoading, className: "w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", children: isLoading ? 'Resetting...' : 'Reset password' }), _jsx("p", { className: "text-center text-sm text-muted-foreground", children: _jsx("a", { href: signInHref, className: "font-medium text-primary hover:text-primary/80", children: "Back to sign in" }) })] })] }));
87
+ return (_jsxs("div", { className: `w-full max-w-md ${className}`, children: [_jsxs("div", { className: "mb-6 text-center", children: [_jsx("h2", { className: "text-xl font-semibold text-foreground", children: t('auth.resetTitle') }), _jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: "Enter your new password below." })] }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [error && (_jsx("div", { className: "rounded-md bg-red-50 p-4 text-sm text-red-600", children: error })), _jsxs("div", { children: [_jsx(Label, { htmlFor: "reset-password", required: true, children: t('auth.newPassword') }), _jsx("input", { id: "reset-password", type: "password", value: password, onChange: (e) => setPassword(e.target.value), required: true, autoComplete: "new-password", minLength: 8, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: t('auth.atLeast8') })] }), _jsxs("div", { children: [_jsx(Label, { htmlFor: "reset-confirm-password", required: true, children: t('auth.confirmNewPassword') }), _jsx("input", { id: "reset-confirm-password", type: "password", value: confirmPassword, onChange: (e) => setConfirmPassword(e.target.value), required: true, autoComplete: "new-password", minLength: 8, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: t('auth.confirmYourPassword') })] }), _jsx("button", { type: "submit", disabled: isLoading, className: "w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", children: isLoading ? t('auth.resetting') : t('auth.resetPassword') }), _jsx("p", { className: "text-center text-sm text-muted-foreground", children: _jsx("a", { href: signInHref, className: "font-medium text-primary hover:text-primary/80", children: "Back to sign in" }) })] })] }));
86
88
  }
87
89
  //# sourceMappingURL=ResetPasswordForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResetPasswordForm.js","sourceRoot":"","sources":["../../../src/auth/components/ResetPasswordForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResetPasswordForm.js","sourceRoot":"","sources":["../../../src/auth/components/ResetPasswordForm.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SignInForm.d.ts","sourceRoot":"","sources":["../../../src/auth/components/SignInForm.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,SAAS,EACT,cAAqB,EACrB,UAA2B,EAC3B,kBAA4C,EAC5C,SAAc,GACf,EAAE,eAAe,2CAuIjB"}
1
+ {"version":3,"file":"SignInForm.d.ts","sourceRoot":"","sources":["../../../src/auth/components/SignInForm.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG/C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,SAAS,EACT,cAAqB,EACrB,UAA2B,EAC3B,kBAA4C,EAC5C,SAAc,GACf,EAAE,eAAe,2CAwIjB"}
@@ -8,6 +8,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  import { useState, useCallback } from 'react';
9
9
  import { useAuth } from '../hooks/useAuth';
10
10
  import { Label } from './Label';
11
+ import { useT } from '../../core/i18n';
11
12
  /**
12
13
  * Sign in form for customer authentication.
13
14
  *
@@ -27,6 +28,7 @@ import { Label } from './Label';
27
28
  * ```
28
29
  */
29
30
  export function SignInForm({ redirectTo, onSuccess, showRememberMe = true, signUpHref = '/auth/signup', forgotPasswordHref = '/auth/forgot-password', className = '', }) {
31
+ const t = useT();
30
32
  const { signIn } = useAuth();
31
33
  const [email, setEmail] = useState('');
32
34
  const [password, setPassword] = useState('');
@@ -53,9 +55,9 @@ export function SignInForm({ redirectTo, onSuccess, showRememberMe = true, signU
53
55
  if (result.requiresVerification) {
54
56
  setRequiresVerification(true);
55
57
  }
56
- setError(result.error || 'Sign in failed');
58
+ setError(result.error || t('auth.signInFailed'));
57
59
  }
58
- }, [email, password, rememberMe, redirectTo, signIn, onSuccess]);
59
- return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [error && (_jsxs("div", { className: "rounded-md bg-red-50 p-4 text-sm text-red-600", children: [error, requiresVerification && (_jsx("p", { className: "mt-2", children: _jsx("a", { href: `/auth/resend-verification?email=${encodeURIComponent(email)}`, className: "font-medium text-red-700 underline hover:text-red-800", children: "Resend verification email" }) }))] })), _jsxs("div", { children: [_jsx(Label, { htmlFor: "signin-email", required: true, children: "Email" }), _jsx("input", { id: "signin-email", type: "email", value: email, onChange: (e) => setEmail(e.target.value), required: true, autoComplete: "email", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: "you@example.com" })] }), _jsxs("div", { children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx(Label, { htmlFor: "signin-password", required: true, children: "Password" }), _jsx("a", { href: forgotPasswordHref, className: "text-sm text-primary hover:text-primary/80", children: "Forgot password?" })] }), _jsx("input", { id: "signin-password", type: "password", value: password, onChange: (e) => setPassword(e.target.value), required: true, autoComplete: "current-password", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: "Enter your password" })] }), showRememberMe && (_jsxs("div", { className: "flex items-center", children: [_jsx("input", { id: "remember-me", type: "checkbox", checked: rememberMe, onChange: (e) => setRememberMe(e.target.checked), className: "h-4 w-4 rounded border-gray-300 text-primary focus:ring-primary" }), _jsx("label", { htmlFor: "remember-me", className: "ml-2 block text-sm text-muted-foreground", children: "Remember me for 30 days" })] })), _jsx("button", { type: "submit", disabled: isLoading, className: "w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", children: isLoading ? 'Signing in...' : 'Sign in' }), _jsxs("p", { className: "text-center text-sm text-muted-foreground", children: ["Don't have an account?", ' ', _jsx("a", { href: signUpHref, className: "font-medium text-primary hover:text-primary/80", children: "Sign up" })] })] }) }));
60
+ }, [email, password, rememberMe, redirectTo, signIn, onSuccess, t]);
61
+ return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [error && (_jsxs("div", { className: "rounded-md bg-red-50 p-4 text-sm text-red-600", children: [error, requiresVerification && (_jsx("p", { className: "mt-2", children: _jsx("a", { href: `/auth/resend-verification?email=${encodeURIComponent(email)}`, className: "font-medium text-red-700 underline hover:text-red-800", children: "Resend verification email" }) }))] })), _jsxs("div", { children: [_jsx(Label, { htmlFor: "signin-email", required: true, children: t('form.email') }), _jsx("input", { id: "signin-email", type: "email", value: email, onChange: (e) => setEmail(e.target.value), required: true, autoComplete: "email", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: t('form.emailPlaceholder') })] }), _jsxs("div", { children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx(Label, { htmlFor: "signin-password", required: true, children: t('auth.password') }), _jsx("a", { href: forgotPasswordHref, className: "text-sm text-primary hover:text-primary/80", children: t('auth.forgotPassword') })] }), _jsx("input", { id: "signin-password", type: "password", value: password, onChange: (e) => setPassword(e.target.value), required: true, autoComplete: "current-password", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: t('auth.enterPassword') })] }), showRememberMe && (_jsxs("div", { className: "flex items-center", children: [_jsx("input", { id: "remember-me", type: "checkbox", checked: rememberMe, onChange: (e) => setRememberMe(e.target.checked), className: "h-4 w-4 rounded border-gray-300 text-primary focus:ring-primary" }), _jsx("label", { htmlFor: "remember-me", className: "ml-2 block text-sm text-muted-foreground", children: t('auth.rememberMe') })] })), _jsx("button", { type: "submit", disabled: isLoading, className: "w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", children: isLoading ? t('auth.signingIn') : t('auth.signIn') }), _jsxs("p", { className: "text-center text-sm text-muted-foreground", children: ["Don't have an account?", ' ', _jsx("a", { href: signUpHref, className: "font-medium text-primary hover:text-primary/80", children: "Sign up" })] })] }) }));
60
62
  }
61
63
  //# sourceMappingURL=SignInForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignInForm.js","sourceRoot":"","sources":["../../../src/auth/components/SignInForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SignInForm.js","sourceRoot":"","sources":["../../../src/auth/components/SignInForm.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SignUpForm.d.ts","sourceRoot":"","sources":["../../../src/auth/components/SignUpForm.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,SAAS,EACT,UAA2B,EAC3B,SAAc,GACf,EAAE,eAAe,2CA8KjB"}
1
+ {"version":3,"file":"SignUpForm.d.ts","sourceRoot":"","sources":["../../../src/auth/components/SignUpForm.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,SAAS,EACT,UAA2B,EAC3B,SAAc,GACf,EAAE,eAAe,2CA+KjB"}
@@ -9,6 +9,7 @@ import { useState, useCallback } from 'react';
9
9
  import { CheckCircle } from 'lucide-react';
10
10
  import { useAuth } from '../hooks/useAuth';
11
11
  import { Label } from './Label';
12
+ import { useT } from '../../core/i18n';
12
13
  /**
13
14
  * Sign up form for customer registration.
14
15
  *
@@ -25,6 +26,7 @@ import { Label } from './Label';
25
26
  * ```
26
27
  */
27
28
  export function SignUpForm({ redirectTo, onSuccess, signInHref = '/auth/signin', className = '', }) {
29
+ const t = useT();
28
30
  const { signUp } = useAuth();
29
31
  const [name, setName] = useState('');
30
32
  const [email, setEmail] = useState('');
@@ -39,13 +41,13 @@ export function SignUpForm({ redirectTo, onSuccess, signInHref = '/auth/signin',
39
41
  setError(null);
40
42
  // Validate passwords match
41
43
  if (password !== confirmPassword) {
42
- setError('Passwords do not match');
44
+ setError(t('auth.passwordsNoMatch'));
43
45
  setIsLoading(false);
44
46
  return;
45
47
  }
46
48
  // Validate password length
47
49
  if (password.length < 8) {
48
- setError('Password must be at least 8 characters');
50
+ setError(t('auth.password8'));
49
51
  setIsLoading(false);
50
52
  return;
51
53
  }
@@ -66,13 +68,13 @@ export function SignUpForm({ redirectTo, onSuccess, signInHref = '/auth/signin',
66
68
  }
67
69
  }
68
70
  else {
69
- setError(result.error || 'Failed to create account');
71
+ setError(result.error || t('auth.createAccountFailed'));
70
72
  }
71
- }, [name, email, password, confirmPassword, signUp, onSuccess, redirectTo]);
73
+ }, [name, email, password, confirmPassword, signUp, onSuccess, redirectTo, t]);
72
74
  // Show success state
73
75
  if (success) {
74
76
  return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsxs("div", { className: "rounded-md bg-green-50 p-6 text-center", children: [_jsx(CheckCircle, { className: "mx-auto h-12 w-12 text-green-500" }), _jsx("h3", { className: "mt-4 text-lg font-medium text-green-800", children: "Account created!" }), _jsx("p", { className: "mt-2 text-sm text-green-600", children: "Please check your email to verify your account before signing in." }), _jsx("a", { href: signInHref, className: "mt-4 inline-block text-sm font-medium text-green-700 hover:text-green-800", children: "Go to sign in" })] }) }));
75
77
  }
76
- return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [error && (_jsx("div", { className: "rounded-md bg-red-50 p-4 text-sm text-red-600", children: error })), _jsxs("div", { children: [_jsxs(Label, { htmlFor: "signup-name", children: ["Name ", _jsx("span", { className: "text-muted-foreground", children: "(optional)" })] }), _jsx("input", { id: "signup-name", type: "text", value: name, onChange: (e) => setName(e.target.value), autoComplete: "name", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: "John Doe" })] }), _jsxs("div", { children: [_jsx(Label, { htmlFor: "signup-email", required: true, children: "Email" }), _jsx("input", { id: "signup-email", type: "email", value: email, onChange: (e) => setEmail(e.target.value), required: true, autoComplete: "email", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: "you@example.com" })] }), _jsxs("div", { children: [_jsx(Label, { htmlFor: "signup-password", required: true, children: "Password" }), _jsx("input", { id: "signup-password", type: "password", value: password, onChange: (e) => setPassword(e.target.value), required: true, autoComplete: "new-password", minLength: 8, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: "At least 8 characters" })] }), _jsxs("div", { children: [_jsx(Label, { htmlFor: "signup-confirm-password", required: true, children: "Confirm Password" }), _jsx("input", { id: "signup-confirm-password", type: "password", value: confirmPassword, onChange: (e) => setConfirmPassword(e.target.value), required: true, autoComplete: "new-password", minLength: 8, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: "Confirm your password" })] }), _jsx("button", { type: "submit", disabled: isLoading, className: "w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", children: isLoading ? 'Creating account...' : 'Create account' }), _jsxs("p", { className: "text-center text-sm text-muted-foreground", children: ["Already have an account?", ' ', _jsx("a", { href: signInHref, className: "font-medium text-primary hover:text-primary/80", children: "Sign in" })] })] }) }));
78
+ return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [error && (_jsx("div", { className: "rounded-md bg-red-50 p-4 text-sm text-red-600", children: error })), _jsxs("div", { children: [_jsxs(Label, { htmlFor: "signup-name", children: [t('auth.name'), " ", _jsx("span", { className: "text-muted-foreground", children: t('auth.optionalSuffix') })] }), _jsx("input", { id: "signup-name", type: "text", value: name, onChange: (e) => setName(e.target.value), autoComplete: "name", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: t('auth.namePlaceholder') })] }), _jsxs("div", { children: [_jsx(Label, { htmlFor: "signup-email", required: true, children: t('form.email') }), _jsx("input", { id: "signup-email", type: "email", value: email, onChange: (e) => setEmail(e.target.value), required: true, autoComplete: "email", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: t('form.emailPlaceholder') })] }), _jsxs("div", { children: [_jsx(Label, { htmlFor: "signup-password", required: true, children: t('auth.password') }), _jsx("input", { id: "signup-password", type: "password", value: password, onChange: (e) => setPassword(e.target.value), required: true, autoComplete: "new-password", minLength: 8, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: t('auth.atLeast8') })] }), _jsxs("div", { children: [_jsx(Label, { htmlFor: "signup-confirm-password", required: true, children: t('auth.confirmPassword') }), _jsx("input", { id: "signup-confirm-password", type: "password", value: confirmPassword, onChange: (e) => setConfirmPassword(e.target.value), required: true, autoComplete: "new-password", minLength: 8, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", placeholder: t('auth.confirmYourPassword') })] }), _jsx("button", { type: "submit", disabled: isLoading, className: "w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", children: isLoading ? t('auth.creatingAccount') : t('auth.createAccount') }), _jsxs("p", { className: "text-center text-sm text-muted-foreground", children: ["Already have an account?", ' ', _jsx("a", { href: signInHref, className: "font-medium text-primary hover:text-primary/80", children: "Sign in" })] })] }) }));
77
79
  }
78
80
  //# sourceMappingURL=SignUpForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignUpForm.js","sourceRoot":"","sources":["../../../src/auth/components/SignUpForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SignUpForm.js","sourceRoot":"","sources":["../../../src/auth/components/SignUpForm.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../../src/auth/components/UserMenu.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,EACvB,WAAwB,EACxB,UAA8B,EAC9B,YAAkC,EAClC,SAAc,GACf,EAAE,aAAa,2CAqJf"}
1
+ {"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../../src/auth/components/UserMenu.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG7C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,EACvB,WAAwB,EACxB,UAA8B,EAC9B,YAAkC,EAClC,SAAc,GACf,EAAE,aAAa,2CAsJf"}
@@ -8,6 +8,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  import { useState, useCallback, useRef, useEffect } from 'react';
9
9
  import { User, ChevronDown, ShoppingBag, Settings, LogOut } from 'lucide-react';
10
10
  import { useAuth } from '../hooks/useAuth';
11
+ import { useT } from '../../core/i18n';
11
12
  /**
12
13
  * User menu dropdown for authenticated customers.
13
14
  *
@@ -24,6 +25,7 @@ import { useAuth } from '../hooks/useAuth';
24
25
  * ```
25
26
  */
26
27
  export function UserMenu({ accountHref = '/account', ordersHref = '/account/orders', settingsHref = '/account/settings', className = '', }) {
28
+ const t = useT();
27
29
  const { customer, isAuthenticated, isLoading, signOut } = useAuth();
28
30
  const [isOpen, setIsOpen] = useState(false);
29
31
  const menuRef = useRef(null);
@@ -57,7 +59,7 @@ export function UserMenu({ accountHref = '/account', ordersHref = '/account/orde
57
59
  }
58
60
  // Not authenticated - show sign in link
59
61
  if (!isAuthenticated || !customer) {
60
- return (_jsx("div", { className: `relative ${className}`, children: _jsxs("a", { href: "/auth/signin", className: "flex items-center gap-2 text-sm font-medium text-foreground hover:text-primary", children: [_jsx(User, { className: "h-5 w-5" }), _jsx("span", { children: "Sign in" })] }) }));
62
+ return (_jsx("div", { className: `relative ${className}`, children: _jsxs("a", { href: "/auth/signin", className: "flex items-center gap-2 text-sm font-medium text-foreground hover:text-primary", children: [_jsx(User, { className: "h-5 w-5" }), _jsx("span", { children: t('auth.signIn') })] }) }));
61
63
  }
62
64
  // Get initials for avatar
63
65
  const initials = customer.name
@@ -68,6 +70,6 @@ export function UserMenu({ accountHref = '/account', ordersHref = '/account/orde
68
70
  .toUpperCase()
69
71
  .slice(0, 2)
70
72
  : customer.email[0].toUpperCase();
71
- return (_jsxs("div", { className: `relative ${className}`, ref: menuRef, children: [_jsxs("button", { type: "button", onClick: () => setIsOpen(!isOpen), className: "flex items-center gap-2 rounded-full focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2", "aria-expanded": isOpen, "aria-haspopup": "true", children: [_jsx("div", { className: "flex h-8 w-8 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground", children: initials }), _jsx(ChevronDown, { className: `h-4 w-4 text-muted-foreground transition-transform ${isOpen ? 'rotate-180' : ''}` })] }), isOpen && (_jsxs("div", { className: "absolute right-0 z-50 mt-2 w-56 origin-top-right rounded-md border border-border bg-background shadow-lg ring-1 ring-black ring-opacity-5", children: [_jsxs("div", { className: "border-b border-border px-4 py-3", children: [_jsx("p", { className: "text-sm font-medium text-foreground", children: customer.name || 'Customer' }), _jsx("p", { className: "truncate text-xs text-muted-foreground", children: customer.email }), !customer.emailVerified && (_jsx("p", { className: "mt-1 text-xs text-amber-600", children: "Email not verified" }))] }), _jsxs("div", { className: "py-1", children: [_jsxs("a", { href: accountHref, className: "flex items-center gap-2 px-4 py-2 text-sm text-foreground hover:bg-muted", onClick: () => setIsOpen(false), children: [_jsx(User, { className: "h-4 w-4 text-muted-foreground" }), "My Account"] }), _jsxs("a", { href: ordersHref, className: "flex items-center gap-2 px-4 py-2 text-sm text-foreground hover:bg-muted", onClick: () => setIsOpen(false), children: [_jsx(ShoppingBag, { className: "h-4 w-4 text-muted-foreground" }), "Orders"] }), _jsxs("a", { href: settingsHref, className: "flex items-center gap-2 px-4 py-2 text-sm text-foreground hover:bg-muted", onClick: () => setIsOpen(false), children: [_jsx(Settings, { className: "h-4 w-4 text-muted-foreground" }), "Settings"] })] }), _jsx("div", { className: "border-t border-border py-1", children: _jsxs("button", { type: "button", onClick: handleSignOut, className: "flex w-full items-center gap-2 px-4 py-2 text-sm text-foreground hover:bg-muted", children: [_jsx(LogOut, { className: "h-4 w-4 text-muted-foreground" }), "Sign out"] }) })] }))] }));
73
+ return (_jsxs("div", { className: `relative ${className}`, ref: menuRef, children: [_jsxs("button", { type: "button", onClick: () => setIsOpen(!isOpen), className: "flex items-center gap-2 rounded-full focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2", "aria-expanded": isOpen, "aria-haspopup": "true", children: [_jsx("div", { className: "flex h-8 w-8 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground", children: initials }), _jsx(ChevronDown, { className: `h-4 w-4 text-muted-foreground transition-transform ${isOpen ? 'rotate-180' : ''}` })] }), isOpen && (_jsxs("div", { className: "absolute right-0 z-50 mt-2 w-56 origin-top-right rounded-md border border-border bg-background shadow-lg ring-1 ring-black ring-opacity-5", children: [_jsxs("div", { className: "border-b border-border px-4 py-3", children: [_jsx("p", { className: "text-sm font-medium text-foreground", children: customer.name || t('auth.customer') }), _jsx("p", { className: "truncate text-xs text-muted-foreground", children: customer.email }), !customer.emailVerified && (_jsx("p", { className: "mt-1 text-xs text-amber-600", children: "Email not verified" }))] }), _jsxs("div", { className: "py-1", children: [_jsxs("a", { href: accountHref, className: "flex items-center gap-2 px-4 py-2 text-sm text-foreground hover:bg-muted", onClick: () => setIsOpen(false), children: [_jsx(User, { className: "h-4 w-4 text-muted-foreground" }), t('auth.myAccount')] }), _jsxs("a", { href: ordersHref, className: "flex items-center gap-2 px-4 py-2 text-sm text-foreground hover:bg-muted", onClick: () => setIsOpen(false), children: [_jsx(ShoppingBag, { className: "h-4 w-4 text-muted-foreground" }), t('auth.orders')] }), _jsxs("a", { href: settingsHref, className: "flex items-center gap-2 px-4 py-2 text-sm text-foreground hover:bg-muted", onClick: () => setIsOpen(false), children: [_jsx(Settings, { className: "h-4 w-4 text-muted-foreground" }), t('auth.settings')] })] }), _jsx("div", { className: "border-t border-border py-1", children: _jsxs("button", { type: "button", onClick: handleSignOut, className: "flex w-full items-center gap-2 px-4 py-2 text-sm text-foreground hover:bg-muted", children: [_jsx(LogOut, { className: "h-4 w-4 text-muted-foreground" }), t('auth.signOut')] }) })] }))] }));
72
74
  }
73
75
  //# sourceMappingURL=UserMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../../src/auth/components/UserMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../../src/auth/components/UserMenu.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VerifyEmailNotice.d.ts","sourceRoot":"","sources":["../../../src/auth/components/VerifyEmailNotice.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,SAAc,GACf,EAAE,sBAAsB,2CA+FxB"}
1
+ {"version":3,"file":"VerifyEmailNotice.d.ts","sourceRoot":"","sources":["../../../src/auth/components/VerifyEmailNotice.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAGtD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,SAAc,GACf,EAAE,sBAAsB,2CAgGxB"}
@@ -8,6 +8,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  import { useState, useCallback } from 'react';
9
9
  import { Mail, Check } from 'lucide-react';
10
10
  import { useAuth } from '../hooks/useAuth';
11
+ import { useT } from '../../core/i18n';
11
12
  /**
12
13
  * Notice component shown when email verification is required.
13
14
  *
@@ -26,6 +27,7 @@ import { useAuth } from '../hooks/useAuth';
26
27
  * ```
27
28
  */
28
29
  export function VerifyEmailNotice({ email, onResend, className = '', }) {
30
+ const t = useT();
29
31
  const { resendVerification } = useAuth();
30
32
  const [isResending, setIsResending] = useState(false);
31
33
  const [resent, setResent] = useState(false);
@@ -40,7 +42,7 @@ export function VerifyEmailNotice({ email, onResend, className = '', }) {
40
42
  else {
41
43
  const result = await resendVerification(email);
42
44
  if (!result.success) {
43
- setError(result.error || 'Failed to resend email');
45
+ setError(result.error || t('auth.resendFailed'));
44
46
  setIsResending(false);
45
47
  return;
46
48
  }
@@ -48,10 +50,10 @@ export function VerifyEmailNotice({ email, onResend, className = '', }) {
48
50
  setResent(true);
49
51
  }
50
52
  catch (err) {
51
- setError('Failed to resend verification email');
53
+ setError(t('auth.resendFailedVerification'));
52
54
  }
53
55
  setIsResending(false);
54
- }, [email, onResend, resendVerification]);
55
- return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsx("div", { className: "rounded-md bg-blue-50 p-6", children: _jsxs("div", { className: "flex", children: [_jsx("div", { className: "flex-shrink-0", children: _jsx(Mail, { className: "h-6 w-6 text-blue-500" }) }), _jsxs("div", { className: "ml-4", children: [_jsx("h3", { className: "text-lg font-medium text-blue-800", children: "Verify your email" }), _jsxs("div", { className: "mt-2 text-sm text-blue-700", children: [_jsxs("p", { children: ["We've sent a verification email to", ' ', _jsx("strong", { className: "font-medium", children: email })] }), _jsx("p", { className: "mt-2", children: "Please check your inbox and click the verification link to activate your account." })] }), error && (_jsx("p", { className: "mt-3 text-sm text-red-600", children: error })), _jsx("div", { className: "mt-4", children: resent ? (_jsxs("p", { className: "text-sm text-green-700", children: [_jsx(Check, { className: "mr-1.5 inline-block h-4 w-4" }), "Verification email sent! Check your inbox."] })) : (_jsxs("p", { className: "text-sm text-blue-600", children: ["Didn't receive the email?", ' ', _jsx("button", { type: "button", onClick: handleResend, disabled: isResending, className: "font-medium text-blue-700 underline hover:text-blue-800 disabled:cursor-not-allowed disabled:opacity-50", children: isResending ? 'Sending...' : 'Resend verification email' })] })) }), _jsxs("div", { className: "mt-4 rounded-md bg-blue-100 p-3", children: [_jsx("p", { className: "text-xs text-blue-700", children: _jsx("strong", { children: "Tips:" }) }), _jsxs("ul", { className: "mt-1 list-inside list-disc text-xs text-blue-600", children: [_jsx("li", { children: "Check your spam or junk folder" }), _jsx("li", { children: "The link expires in 24 hours" }), _jsx("li", { children: "Make sure you entered the correct email" })] })] })] })] }) }) }));
56
+ }, [email, onResend, resendVerification, t]);
57
+ return (_jsx("div", { className: `w-full max-w-md ${className}`, children: _jsx("div", { className: "rounded-md bg-blue-50 p-6", children: _jsxs("div", { className: "flex", children: [_jsx("div", { className: "flex-shrink-0", children: _jsx(Mail, { className: "h-6 w-6 text-blue-500" }) }), _jsxs("div", { className: "ml-4", children: [_jsx("h3", { className: "text-lg font-medium text-blue-800", children: t('auth.verifyYourEmail') }), _jsxs("div", { className: "mt-2 text-sm text-blue-700", children: [_jsxs("p", { children: [t('auth.verifySentTo'), ' ', _jsx("strong", { className: "font-medium", children: email })] }), _jsx("p", { className: "mt-2", children: t('auth.verifyCheckInbox') })] }), error && (_jsx("p", { className: "mt-3 text-sm text-red-600", children: error })), _jsx("div", { className: "mt-4", children: resent ? (_jsxs("p", { className: "text-sm text-green-700", children: [_jsx(Check, { className: "mr-1.5 inline-block h-4 w-4" }), "Verification email sent! Check your inbox."] })) : (_jsxs("p", { className: "text-sm text-blue-600", children: ["Didn't receive the email?", ' ', _jsx("button", { type: "button", onClick: handleResend, disabled: isResending, className: "font-medium text-blue-700 underline hover:text-blue-800 disabled:cursor-not-allowed disabled:opacity-50", children: isResending ? t('auth.sending') : t('auth.resendVerification') })] })) }), _jsxs("div", { className: "mt-4 rounded-md bg-blue-100 p-3", children: [_jsx("p", { className: "text-xs text-blue-700", children: _jsx("strong", { children: t('auth.tips') }) }), _jsxs("ul", { className: "mt-1 list-inside list-disc text-xs text-blue-600", children: [_jsx("li", { children: t('auth.tipSpam') }), _jsx("li", { children: t('auth.tipExpiry') }), _jsx("li", { children: t('auth.tipCorrectEmail') })] })] })] })] }) }) }));
56
58
  }
57
59
  //# sourceMappingURL=VerifyEmailNotice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VerifyEmailNotice.js","sourceRoot":"","sources":["../../../src/auth/components/VerifyEmailNotice.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VerifyEmailNotice.js","sourceRoot":"","sources":["../../../src/auth/components/VerifyEmailNotice.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/auth/hooks/useAuth.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,aAAa,EAUd,MAAM,UAAU,CAAA;AAMjB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,OAAO,IAAI,aAAa,CAyOvC"}
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/auth/hooks/useAuth.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,aAAa,EAUd,MAAM,UAAU,CAAA;AAejB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,OAAO,IAAI,aAAa,CAyOvC"}
@@ -7,6 +7,16 @@
7
7
  */
8
8
  import { useCallback, useMemo } from 'react';
9
9
  import { useSession, signIn as nextAuthSignIn, signOut as nextAuthSignOut } from 'next-auth/react';
10
+ import { LOCALE_COOKIE } from '../../core/i18n/types';
11
+ /** Visitor locale from the provider-maintained cookie (email language only). */
12
+ function readLocaleCookie() {
13
+ try {
14
+ return document.cookie.match(new RegExp(`${LOCALE_COOKIE}=(\\w+)`))?.[1];
15
+ }
16
+ catch {
17
+ return undefined;
18
+ }
19
+ }
10
20
  // =============================================================================
11
21
  // Hook Implementation
12
22
  // =============================================================================
@@ -107,7 +117,7 @@ export function useAuth() {
107
117
  const response = await fetch('/api/auth/register', {
108
118
  method: 'POST',
109
119
  headers: { 'Content-Type': 'application/json' },
110
- body: JSON.stringify({ email, password, name }),
120
+ body: JSON.stringify({ email, password, name, locale: readLocaleCookie() }),
111
121
  });
112
122
  const result = await response.json();
113
123
  if (!response.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/auth/hooks/useAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/auth/hooks/useAuth.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ export interface AuthenticateError {
41
41
  * )
42
42
  * ```
43
43
  */
44
- export declare function createCustomer(email: string, password: string, name?: string): Promise<CreateCustomerResult>;
44
+ export declare function createCustomer(email: string, password: string, name?: string, locale?: string | null): Promise<CreateCustomerResult>;
45
45
  /**
46
46
  * Authenticate a customer by email and password.
47
47
  * Checks email verification status.
@@ -1 +1 @@
1
- {"version":3,"file":"customer-service.d.ts","sourceRoot":"","sources":["../../../src/auth/server/customer-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAG9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAM/C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,IAAI,CAAA;IACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAA;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,qBAAqB,GAAG,oBAAoB,GAAG,gBAAgB,CAAA;CACtE;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,oBAAoB,CAAC,CAgE/B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,mBAAmB,UAAO,GACzB,OAAO,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,CAuCjD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyBjC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,CAYjC;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,CAYjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,CAiCjC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOzE;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjE"}
1
+ {"version":3,"file":"customer-service.d.ts","sourceRoot":"","sources":["../../../src/auth/server/customer-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAG9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAM/C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,IAAI,CAAA;IACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAA;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,qBAAqB,GAAG,oBAAoB,GAAG,gBAAgB,CAAA;CACtE;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAiE/B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,mBAAmB,UAAO,GACzB,OAAO,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,CAuCjD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyBjC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,CAYjC;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,CAYjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,CAiCjC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOzE;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjE"}
@@ -32,7 +32,7 @@ import { hashPassword, verifyPassword } from './password';
32
32
  * )
33
33
  * ```
34
34
  */
35
- export async function createCustomer(email, password, name) {
35
+ export async function createCustomer(email, password, name, locale) {
36
36
  const db = getDb();
37
37
  // Hash password
38
38
  const passwordHash = await hashPassword(password);
@@ -40,6 +40,7 @@ export async function createCustomer(email, password, name) {
40
40
  const [customer] = await db
41
41
  .insert(schema.customers)
42
42
  .values({
43
+ locale: locale ?? null,
43
44
  email: email.toLowerCase().trim(),
44
45
  name: name?.trim() || null,
45
46
  passwordHash,