@rovela-ai/sdk 0.1.17 → 0.1.19
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.
- package/dist/admin/api/auth.js +5 -11
- package/dist/admin/api/auth.js.map +1 -1
- package/dist/admin/api/categories.js +43 -50
- package/dist/admin/api/categories.js.map +1 -1
- package/dist/admin/api/check.js +6 -9
- package/dist/admin/api/check.js.map +1 -1
- package/dist/admin/api/customers.js +17 -21
- package/dist/admin/api/customers.js.map +1 -1
- package/dist/admin/api/index.js +10 -38
- package/dist/admin/api/index.js.map +1 -1
- package/dist/admin/api/orders.js +30 -35
- package/dist/admin/api/orders.js.map +1 -1
- package/dist/admin/api/products.js +56 -66
- package/dist/admin/api/products.js.map +1 -1
- package/dist/admin/api/refund.js +26 -29
- package/dist/admin/api/refund.js.map +1 -1
- package/dist/admin/api/settings.js +17 -21
- package/dist/admin/api/settings.js.map +1 -1
- package/dist/admin/api/setup.js +17 -20
- package/dist/admin/api/setup.js.map +1 -1
- package/dist/admin/api/stats.js +14 -17
- package/dist/admin/api/stats.js.map +1 -1
- package/dist/admin/components/AdminGuard.js +13 -17
- package/dist/admin/components/AdminGuard.js.map +1 -1
- package/dist/admin/components/AdminHeader.js +8 -11
- package/dist/admin/components/AdminHeader.js.map +1 -1
- package/dist/admin/components/AdminLayout.js +5 -8
- package/dist/admin/components/AdminLayout.js.map +1 -1
- package/dist/admin/components/AdminLoginForm.js +11 -14
- package/dist/admin/components/AdminLoginForm.js.map +1 -1
- package/dist/admin/components/AdminNav.js +11 -14
- package/dist/admin/components/AdminNav.js.map +1 -1
- package/dist/admin/components/AdminSetupForm.js +11 -14
- package/dist/admin/components/AdminSetupForm.js.map +1 -1
- package/dist/admin/components/InventoryEditor.js +16 -19
- package/dist/admin/components/InventoryEditor.js.map +1 -1
- package/dist/admin/components/LowStockAlert.js +6 -9
- package/dist/admin/components/LowStockAlert.js.map +1 -1
- package/dist/admin/components/OrderDetails.js +15 -18
- package/dist/admin/components/OrderDetails.js.map +1 -1
- package/dist/admin/components/OrderTable.js +13 -16
- package/dist/admin/components/OrderTable.js.map +1 -1
- package/dist/admin/components/ProductForm.js +17 -20
- package/dist/admin/components/ProductForm.js.map +1 -1
- package/dist/admin/components/ProductTable.js +15 -18
- package/dist/admin/components/ProductTable.js.map +1 -1
- package/dist/admin/components/RecentOrders.js +6 -9
- package/dist/admin/components/RecentOrders.js.map +1 -1
- package/dist/admin/components/RefundDialog.js +12 -15
- package/dist/admin/components/RefundDialog.js.map +1 -1
- package/dist/admin/components/StatsCards.js +7 -10
- package/dist/admin/components/StatsCards.js.map +1 -1
- package/dist/admin/components/StoreSettings.js +10 -13
- package/dist/admin/components/StoreSettings.js.map +1 -1
- package/dist/admin/components/index.js +16 -35
- package/dist/admin/components/index.js.map +1 -1
- package/dist/admin/config.js +12 -54
- package/dist/admin/config.js.map +1 -1
- package/dist/admin/hooks/index.js +4 -11
- package/dist/admin/hooks/index.js.map +1 -1
- package/dist/admin/hooks/useAdminAuth.js +9 -12
- package/dist/admin/hooks/useAdminAuth.js.map +1 -1
- package/dist/admin/hooks/useAdminOrders.js +11 -14
- package/dist/admin/hooks/useAdminOrders.js.map +1 -1
- package/dist/admin/hooks/useAdminProducts.js +13 -16
- package/dist/admin/hooks/useAdminProducts.js.map +1 -1
- package/dist/admin/hooks/useAdminStats.js +11 -14
- package/dist/admin/hooks/useAdminStats.js.map +1 -1
- package/dist/admin/index.js +13 -66
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/server/admin-service.js +39 -83
- package/dist/admin/server/admin-service.js.map +1 -1
- package/dist/admin/server/index.js +3 -13
- package/dist/admin/server/index.js.map +1 -1
- package/dist/admin/types.js +1 -2
- package/dist/admin/types.js.map +1 -1
- package/dist/auth/api/auth.js +6 -14
- package/dist/auth/api/auth.js.map +1 -1
- package/dist/auth/api/forgot-password.js +8 -11
- package/dist/auth/api/forgot-password.js.map +1 -1
- package/dist/auth/api/index.js +6 -18
- package/dist/auth/api/index.js.map +1 -1
- package/dist/auth/api/register.js +17 -20
- package/dist/auth/api/register.js.map +1 -1
- package/dist/auth/api/resend-verification.js +9 -12
- package/dist/auth/api/resend-verification.js.map +1 -1
- package/dist/auth/api/reset-password.js +18 -22
- package/dist/auth/api/reset-password.js.map +1 -1
- package/dist/auth/api/verify-email.js +14 -18
- package/dist/auth/api/verify-email.js.map +1 -1
- package/dist/auth/components/AuthGuard.js +13 -17
- package/dist/auth/components/AuthGuard.js.map +1 -1
- package/dist/auth/components/ForgotPasswordForm.js +11 -14
- package/dist/auth/components/ForgotPasswordForm.js.map +1 -1
- package/dist/auth/components/ResetPasswordForm.js +18 -21
- package/dist/auth/components/ResetPasswordForm.js.map +1 -1
- package/dist/auth/components/SignInForm.js +13 -16
- package/dist/auth/components/SignInForm.js.map +1 -1
- package/dist/auth/components/SignUpForm.js +15 -18
- package/dist/auth/components/SignUpForm.js.map +1 -1
- package/dist/auth/components/UserMenu.js +13 -16
- package/dist/auth/components/UserMenu.js.map +1 -1
- package/dist/auth/components/VerifyEmailNotice.js +10 -13
- package/dist/auth/components/VerifyEmailNotice.js.map +1 -1
- package/dist/auth/components/index.js +7 -18
- package/dist/auth/components/index.js.map +1 -1
- package/dist/auth/config.js +9 -49
- package/dist/auth/config.js.map +1 -1
- package/dist/auth/hooks/index.js +1 -5
- package/dist/auth/hooks/index.js.map +1 -1
- package/dist/auth/hooks/useAuth.js +14 -17
- package/dist/auth/hooks/useAuth.js.map +1 -1
- package/dist/auth/index.js +15 -37
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/server/customer-service.js +39 -83
- package/dist/auth/server/customer-service.js.map +1 -1
- package/dist/auth/server/email-sender.js +11 -17
- package/dist/auth/server/email-sender.js.map +1 -1
- package/dist/auth/server/index.js +5 -36
- package/dist/auth/server/index.js.map +1 -1
- package/dist/auth/server/password-reset-service.js +30 -70
- package/dist/auth/server/password-reset-service.js.map +1 -1
- package/dist/auth/server/password.js +9 -18
- package/dist/auth/server/password.js.map +1 -1
- package/dist/auth/server/verification-service.js +35 -76
- package/dist/auth/server/verification-service.js.map +1 -1
- package/dist/auth/types.js +1 -2
- package/dist/auth/types.js.map +1 -1
- package/dist/cart/CartProvider.js +13 -17
- package/dist/cart/CartProvider.js.map +1 -1
- package/dist/cart/components/AddToCartButton.js +16 -19
- package/dist/cart/components/AddToCartButton.js.map +1 -1
- package/dist/cart/components/CartDrawer.js +17 -23
- package/dist/cart/components/CartDrawer.js.map +1 -1
- package/dist/cart/components/CartIcon.js +9 -12
- package/dist/cart/components/CartIcon.js.map +1 -1
- package/dist/cart/components/CartItem.js +7 -13
- package/dist/cart/components/CartItem.js.map +1 -1
- package/dist/cart/components/CartSummary.js +12 -15
- package/dist/cart/components/CartSummary.js.map +1 -1
- package/dist/cart/components/QuantitySelector.js +9 -12
- package/dist/cart/components/QuantitySelector.js.map +1 -1
- package/dist/cart/components/index.js +6 -15
- package/dist/cart/components/index.js.map +1 -1
- package/dist/cart/index.js +3 -17
- package/dist/cart/index.js.map +1 -1
- package/dist/cart/store.js +8 -13
- package/dist/cart/store.js.map +1 -1
- package/dist/checkout/api/checkout.js +12 -15
- package/dist/checkout/api/checkout.js.map +1 -1
- package/dist/checkout/api/index.js +2 -7
- package/dist/checkout/api/index.js.map +1 -1
- package/dist/checkout/api/webhook.js +8 -11
- package/dist/checkout/api/webhook.js.map +1 -1
- package/dist/checkout/components/CheckoutButton.js +8 -11
- package/dist/checkout/components/CheckoutButton.js.map +1 -1
- package/dist/checkout/components/CheckoutSuccess.js +11 -14
- package/dist/checkout/components/CheckoutSuccess.js.map +1 -1
- package/dist/checkout/components/OrderSummary.js +8 -11
- package/dist/checkout/components/OrderSummary.js.map +1 -1
- package/dist/checkout/components/ShippingForm.js +14 -17
- package/dist/checkout/components/ShippingForm.js.map +1 -1
- package/dist/checkout/components/index.js +4 -11
- package/dist/checkout/components/index.js.map +1 -1
- package/dist/checkout/hooks/index.js +1 -6
- package/dist/checkout/hooks/index.js.map +1 -1
- package/dist/checkout/hooks/useCheckout.js +10 -19
- package/dist/checkout/hooks/useCheckout.js.map +1 -1
- package/dist/checkout/index.js +7 -28
- package/dist/checkout/index.js.map +1 -1
- package/dist/checkout/server/create-checkout-session.js +11 -16
- package/dist/checkout/server/create-checkout-session.js.map +1 -1
- package/dist/checkout/server/handle-webhook.js +21 -24
- package/dist/checkout/server/handle-webhook.js.map +1 -1
- package/dist/checkout/server/index.js +3 -13
- package/dist/checkout/server/index.js.map +1 -1
- package/dist/checkout/server/order-service.js +11 -16
- package/dist/checkout/server/order-service.js.map +1 -1
- package/dist/checkout/stripe/client.js +13 -29
- package/dist/checkout/stripe/client.js.map +1 -1
- package/dist/checkout/stripe/index.js +1 -15
- package/dist/checkout/stripe/index.js.map +1 -1
- package/dist/checkout/types.js +1 -2
- package/dist/checkout/types.js.map +1 -1
- package/dist/core/config.js +12 -57
- package/dist/core/config.js.map +1 -1
- package/dist/core/db/client.js +16 -62
- package/dist/core/db/client.js.map +1 -1
- package/dist/core/db/index.js +14 -93
- package/dist/core/db/index.js.map +1 -1
- package/dist/core/db/queries.js +207 -284
- package/dist/core/db/queries.js.map +1 -1
- package/dist/core/db/schema.js +179 -182
- package/dist/core/db/schema.js.map +1 -1
- package/dist/core/index.js +12 -42
- package/dist/core/index.js.map +1 -1
- package/dist/core/server/index.js +16 -68
- package/dist/core/server/index.js.map +1 -1
- package/dist/core/types.js +1 -2
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils.js +26 -51
- package/dist/core/utils.js.map +1 -1
- package/dist/emails/config.js +13 -21
- package/dist/emails/config.js.map +1 -1
- package/dist/emails/index.js +10 -72
- package/dist/emails/index.js.map +1 -1
- package/dist/emails/send/auth.js +26 -34
- package/dist/emails/send/auth.js.map +1 -1
- package/dist/emails/send/index.js +2 -21
- package/dist/emails/send/index.js.map +1 -1
- package/dist/emails/send/orders.js +38 -50
- package/dist/emails/send/orders.js.map +1 -1
- package/dist/emails/sender.js +7 -12
- package/dist/emails/sender.js.map +1 -1
- package/dist/emails/templates/base.js +37 -53
- package/dist/emails/templates/base.js.map +1 -1
- package/dist/emails/templates/email-verification.js +12 -16
- package/dist/emails/templates/email-verification.js.map +1 -1
- package/dist/emails/templates/index.js +9 -43
- package/dist/emails/templates/index.js.map +1 -1
- package/dist/emails/templates/order-cancelled.js +18 -22
- package/dist/emails/templates/order-cancelled.js.map +1 -1
- package/dist/emails/templates/order-confirmation.js +30 -34
- package/dist/emails/templates/order-confirmation.js.map +1 -1
- package/dist/emails/templates/order-delivered.js +20 -24
- package/dist/emails/templates/order-delivered.js.map +1 -1
- package/dist/emails/templates/order-shipped.js +19 -23
- package/dist/emails/templates/order-shipped.js.map +1 -1
- package/dist/emails/templates/password-reset.js +12 -16
- package/dist/emails/templates/password-reset.js.map +1 -1
- package/dist/emails/templates/refund-processed.js +17 -21
- package/dist/emails/templates/refund-processed.js.map +1 -1
- package/dist/emails/templates/welcome.js +11 -15
- package/dist/emails/templates/welcome.js.map +1 -1
- package/dist/emails/types.js +1 -2
- package/dist/emails/types.js.map +1 -1
- package/dist/emails/utils.js +9 -20
- package/dist/emails/utils.js.map +1 -1
- package/dist/index.js +24 -176
- package/dist/index.js.map +1 -1
- package/dist/products/api/categories.js +7 -10
- package/dist/products/api/categories.js.map +1 -1
- package/dist/products/api/index.js +3 -9
- package/dist/products/api/index.js.map +1 -1
- package/dist/products/api/product.js +10 -13
- package/dist/products/api/product.js.map +1 -1
- package/dist/products/api/products.js +8 -11
- package/dist/products/api/products.js.map +1 -1
- package/dist/products/components/CategoryNav.js +20 -26
- package/dist/products/components/CategoryNav.js.map +1 -1
- package/dist/products/components/ProductBreadcrumb.js +7 -13
- package/dist/products/components/ProductBreadcrumb.js.map +1 -1
- package/dist/products/components/ProductCard.js +6 -12
- package/dist/products/components/ProductCard.js.map +1 -1
- package/dist/products/components/ProductDetails.js +14 -17
- package/dist/products/components/ProductDetails.js.map +1 -1
- package/dist/products/components/ProductFilters.js +15 -18
- package/dist/products/components/ProductFilters.js.map +1 -1
- package/dist/products/components/ProductGallery.js +17 -23
- package/dist/products/components/ProductGallery.js.map +1 -1
- package/dist/products/components/ProductGrid.js +10 -13
- package/dist/products/components/ProductGrid.js.map +1 -1
- package/dist/products/components/ProductSearch.js +14 -17
- package/dist/products/components/ProductSearch.js.map +1 -1
- package/dist/products/components/ProductSort.js +8 -11
- package/dist/products/components/ProductSort.js.map +1 -1
- package/dist/products/components/VariantSelector.js +16 -19
- package/dist/products/components/VariantSelector.js.map +1 -1
- package/dist/products/components/index.js +10 -23
- package/dist/products/components/index.js.map +1 -1
- package/dist/products/hooks/index.js +4 -11
- package/dist/products/hooks/index.js.map +1 -1
- package/dist/products/hooks/useCategories.js +12 -15
- package/dist/products/hooks/useCategories.js.map +1 -1
- package/dist/products/hooks/useProduct.js +9 -12
- package/dist/products/hooks/useProduct.js.map +1 -1
- package/dist/products/hooks/useProductAttributes.js +10 -13
- package/dist/products/hooks/useProductAttributes.js.map +1 -1
- package/dist/products/hooks/useProducts.js +15 -18
- package/dist/products/hooks/useProducts.js.map +1 -1
- package/dist/products/index.js +6 -23
- package/dist/products/index.js.map +1 -1
- package/dist/theme/ThemeProvider.js +12 -14
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/colors.js +3 -8
- package/dist/theme/colors.js.map +1 -1
- package/dist/theme/defaults.js +27 -30
- package/dist/theme/defaults.js.map +1 -1
- package/dist/theme/fonts.js +12 -18
- package/dist/theme/fonts.js.map +1 -1
- package/dist/theme/generator.js +63 -69
- package/dist/theme/generator.js.map +1 -1
- package/dist/theme/hooks.js +11 -16
- package/dist/theme/hooks.js.map +1 -1
- package/dist/theme/index.js +6 -42
- package/dist/theme/index.js.map +1 -1
- package/package.json +35 -34
package/dist/auth/config.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @rovela/sdk/auth/config
|
|
4
3
|
*
|
|
@@ -10,47 +9,8 @@
|
|
|
10
9
|
* This unified approach ensures signIn() works correctly for both user types
|
|
11
10
|
* since NextAuth always routes to /api/auth/[...nextauth].
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
-
}
|
|
19
|
-
Object.defineProperty(o, k2, desc);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
-
}) : function(o, v) {
|
|
27
|
-
o["default"] = v;
|
|
28
|
-
});
|
|
29
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
-
var ownKeys = function(o) {
|
|
31
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
-
var ar = [];
|
|
33
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
-
return ar;
|
|
35
|
-
};
|
|
36
|
-
return ownKeys(o);
|
|
37
|
-
};
|
|
38
|
-
return function (mod) {
|
|
39
|
-
if (mod && mod.__esModule) return mod;
|
|
40
|
-
var result = {};
|
|
41
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
-
__setModuleDefault(result, mod);
|
|
43
|
-
return result;
|
|
44
|
-
};
|
|
45
|
-
})();
|
|
46
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
47
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
48
|
-
};
|
|
49
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
exports.createAuthOptions = createAuthOptions;
|
|
51
|
-
exports.getCustomerSession = getCustomerSession;
|
|
52
|
-
const credentials_1 = __importDefault(require("next-auth/providers/credentials"));
|
|
53
|
-
const customer_service_1 = require("./server/customer-service");
|
|
12
|
+
import CredentialsProvider from 'next-auth/providers/credentials';
|
|
13
|
+
import { authenticateCustomer, findCustomerForSession } from './server/customer-service';
|
|
54
14
|
// =============================================================================
|
|
55
15
|
// Constants
|
|
56
16
|
// =============================================================================
|
|
@@ -86,11 +46,11 @@ const ADMIN_SESSION_MAX_AGE = 8 * 60 * 60;
|
|
|
86
46
|
* export { handler as GET, handler as POST }
|
|
87
47
|
* ```
|
|
88
48
|
*/
|
|
89
|
-
function createAuthOptions(options = {}) {
|
|
49
|
+
export function createAuthOptions(options = {}) {
|
|
90
50
|
const { sessionMaxAge = DEFAULT_SESSION_MAX_AGE, rememberMeMaxAge = REMEMBER_ME_MAX_AGE, requireEmailVerification = true, signInPage = '/auth/signin', errorPage = '/auth/signin', } = options;
|
|
91
51
|
return {
|
|
92
52
|
providers: [
|
|
93
|
-
(
|
|
53
|
+
CredentialsProvider({
|
|
94
54
|
id: 'credentials',
|
|
95
55
|
name: 'Credentials',
|
|
96
56
|
credentials: {
|
|
@@ -102,7 +62,7 @@ function createAuthOptions(options = {}) {
|
|
|
102
62
|
if (!credentials?.email || !credentials?.password) {
|
|
103
63
|
return null;
|
|
104
64
|
}
|
|
105
|
-
const result = await
|
|
65
|
+
const result = await authenticateCustomer(credentials.email, credentials.password, requireEmailVerification);
|
|
106
66
|
if (!result.success) {
|
|
107
67
|
// Throw error with specific code for frontend handling
|
|
108
68
|
throw new Error(result.error, { cause: result.code });
|
|
@@ -124,7 +84,7 @@ function createAuthOptions(options = {}) {
|
|
|
124
84
|
// =========================================================================
|
|
125
85
|
// Admin Credentials Provider
|
|
126
86
|
// =========================================================================
|
|
127
|
-
(
|
|
87
|
+
CredentialsProvider({
|
|
128
88
|
id: 'admin-credentials',
|
|
129
89
|
name: 'Admin Credentials',
|
|
130
90
|
credentials: {
|
|
@@ -136,7 +96,7 @@ function createAuthOptions(options = {}) {
|
|
|
136
96
|
return null;
|
|
137
97
|
}
|
|
138
98
|
// Dynamic import to avoid circular dependency
|
|
139
|
-
const { authenticateAdmin } = await
|
|
99
|
+
const { authenticateAdmin } = await import('../admin/server/admin-service');
|
|
140
100
|
const result = await authenticateAdmin(credentials.email, credentials.password);
|
|
141
101
|
if (!result.success) {
|
|
142
102
|
throw new Error(result.error, { cause: result.code });
|
|
@@ -297,7 +257,7 @@ function createAuthOptions(options = {}) {
|
|
|
297
257
|
* }
|
|
298
258
|
* ```
|
|
299
259
|
*/
|
|
300
|
-
async function getCustomerSession(customerId) {
|
|
301
|
-
return
|
|
260
|
+
export async function getCustomerSession(customerId) {
|
|
261
|
+
return findCustomerForSession(customerId);
|
|
302
262
|
}
|
|
303
263
|
//# sourceMappingURL=config.js.map
|
package/dist/auth/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/auth/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/auth/config.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/hooks/index.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @rovela/sdk/auth/hooks
|
|
4
3
|
*
|
|
5
4
|
* Client-side authentication hooks.
|
|
6
5
|
*/
|
|
7
|
-
|
|
8
|
-
exports.useAuth = void 0;
|
|
9
|
-
var useAuth_1 = require("./useAuth");
|
|
10
|
-
Object.defineProperty(exports, "useAuth", { enumerable: true, get: function () { return useAuth_1.useAuth; } });
|
|
6
|
+
export { useAuth } from './useAuth';
|
|
11
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/hooks/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
'use client';
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.useAuth = useAuth;
|
|
5
2
|
/**
|
|
6
3
|
* @rovela/sdk/auth/hooks/useAuth
|
|
7
4
|
*
|
|
8
5
|
* Client-side authentication hook.
|
|
9
6
|
* Wraps NextAuth session with customer-specific functionality.
|
|
10
7
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
import { useCallback, useMemo } from 'react';
|
|
9
|
+
import { useSession, signIn as nextAuthSignIn, signOut as nextAuthSignOut } from 'next-auth/react';
|
|
13
10
|
// =============================================================================
|
|
14
11
|
// Hook Implementation
|
|
15
12
|
// =============================================================================
|
|
@@ -40,15 +37,15 @@ const react_2 = require("next-auth/react");
|
|
|
40
37
|
* }
|
|
41
38
|
* ```
|
|
42
39
|
*/
|
|
43
|
-
function useAuth() {
|
|
40
|
+
export function useAuth() {
|
|
44
41
|
// Defensive handling: useSession() returns undefined if no SessionProvider
|
|
45
|
-
const sessionResult =
|
|
42
|
+
const sessionResult = useSession();
|
|
46
43
|
const session = sessionResult?.data ?? null;
|
|
47
44
|
const status = sessionResult?.status ?? 'loading';
|
|
48
45
|
const update = sessionResult?.update;
|
|
49
46
|
// Memoized customer data
|
|
50
47
|
// Use double cast to avoid type conflicts with parent project's type declarations
|
|
51
|
-
const customer =
|
|
48
|
+
const customer = useMemo(() => {
|
|
52
49
|
if (!session?.user)
|
|
53
50
|
return null;
|
|
54
51
|
return session.user;
|
|
@@ -60,10 +57,10 @@ function useAuth() {
|
|
|
60
57
|
/**
|
|
61
58
|
* Sign in with email and password.
|
|
62
59
|
*/
|
|
63
|
-
const signIn =
|
|
60
|
+
const signIn = useCallback(async (options) => {
|
|
64
61
|
const { email, password, rememberMe = false, redirectTo } = options;
|
|
65
62
|
try {
|
|
66
|
-
const result = await (
|
|
63
|
+
const result = await nextAuthSignIn('credentials', {
|
|
67
64
|
email,
|
|
68
65
|
password,
|
|
69
66
|
rememberMe: rememberMe.toString(),
|
|
@@ -104,7 +101,7 @@ function useAuth() {
|
|
|
104
101
|
/**
|
|
105
102
|
* Sign up with email and password.
|
|
106
103
|
*/
|
|
107
|
-
const signUp =
|
|
104
|
+
const signUp = useCallback(async (data) => {
|
|
108
105
|
const { email, password, name } = data;
|
|
109
106
|
try {
|
|
110
107
|
const response = await fetch('/api/auth/register', {
|
|
@@ -136,13 +133,13 @@ function useAuth() {
|
|
|
136
133
|
/**
|
|
137
134
|
* Sign out the current customer.
|
|
138
135
|
*/
|
|
139
|
-
const signOut =
|
|
140
|
-
await (
|
|
136
|
+
const signOut = useCallback(async () => {
|
|
137
|
+
await nextAuthSignOut({ redirect: false });
|
|
141
138
|
}, []);
|
|
142
139
|
/**
|
|
143
140
|
* Resend verification email.
|
|
144
141
|
*/
|
|
145
|
-
const resendVerification =
|
|
142
|
+
const resendVerification = useCallback(async (email) => {
|
|
146
143
|
try {
|
|
147
144
|
const response = await fetch('/api/auth/resend-verification', {
|
|
148
145
|
method: 'POST',
|
|
@@ -169,7 +166,7 @@ function useAuth() {
|
|
|
169
166
|
/**
|
|
170
167
|
* Request password reset.
|
|
171
168
|
*/
|
|
172
|
-
const requestPasswordReset =
|
|
169
|
+
const requestPasswordReset = useCallback(async (email) => {
|
|
173
170
|
try {
|
|
174
171
|
const response = await fetch('/api/auth/forgot-password', {
|
|
175
172
|
method: 'POST',
|
|
@@ -188,7 +185,7 @@ function useAuth() {
|
|
|
188
185
|
/**
|
|
189
186
|
* Reset password with token.
|
|
190
187
|
*/
|
|
191
|
-
const resetPassword =
|
|
188
|
+
const resetPassword = useCallback(async (token, newPassword) => {
|
|
192
189
|
try {
|
|
193
190
|
const response = await fetch('/api/auth/reset-password', {
|
|
194
191
|
method: 'POST',
|
|
@@ -215,7 +212,7 @@ function useAuth() {
|
|
|
215
212
|
/**
|
|
216
213
|
* Validate reset token.
|
|
217
214
|
*/
|
|
218
|
-
const validateResetToken =
|
|
215
|
+
const validateResetToken = useCallback(async (token) => {
|
|
219
216
|
try {
|
|
220
217
|
const response = await fetch(`/api/auth/reset-password?token=${encodeURIComponent(token)}`);
|
|
221
218
|
const result = await response.json();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/auth/hooks/useAuth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/auth/hooks/useAuth.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @rovela/sdk/auth
|
|
4
3
|
*
|
|
@@ -36,53 +35,32 @@
|
|
|
36
35
|
* }
|
|
37
36
|
* ```
|
|
38
37
|
*/
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.withAuth = exports.AuthGuard = exports.UserMenu = exports.VerifyEmailNotice = exports.ResetPasswordForm = exports.ForgotPasswordForm = exports.SignUpForm = exports.SignInForm = exports.useAuth = exports.resetPasswordPOST = exports.resetPasswordGET = exports.forgotPasswordPOST = exports.resendVerificationPOST = exports.verifyEmailPOST = exports.verifyEmailGET = exports.registerPOST = exports.createAuthHandlers = exports.getCustomerSession = exports.createAuthOptions = void 0;
|
|
41
38
|
// =============================================================================
|
|
42
39
|
// Configuration
|
|
43
40
|
// =============================================================================
|
|
44
|
-
|
|
45
|
-
Object.defineProperty(exports, "createAuthOptions", { enumerable: true, get: function () { return config_1.createAuthOptions; } });
|
|
46
|
-
Object.defineProperty(exports, "getCustomerSession", { enumerable: true, get: function () { return config_1.getCustomerSession; } });
|
|
41
|
+
export { createAuthOptions, getCustomerSession } from './config';
|
|
47
42
|
// =============================================================================
|
|
48
43
|
// API Route Handlers
|
|
49
44
|
// =============================================================================
|
|
50
|
-
|
|
51
|
-
Object.defineProperty(exports, "createAuthHandlers", { enumerable: true, get: function () { return auth_1.createAuthHandlers; } });
|
|
45
|
+
export { createAuthHandlers } from './api/auth';
|
|
52
46
|
// Individual route handlers (for flexible routing)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
var resend_verification_1 = require("./api/resend-verification");
|
|
59
|
-
Object.defineProperty(exports, "resendVerificationPOST", { enumerable: true, get: function () { return resend_verification_1.POST; } });
|
|
60
|
-
var forgot_password_1 = require("./api/forgot-password");
|
|
61
|
-
Object.defineProperty(exports, "forgotPasswordPOST", { enumerable: true, get: function () { return forgot_password_1.POST; } });
|
|
62
|
-
var reset_password_1 = require("./api/reset-password");
|
|
63
|
-
Object.defineProperty(exports, "resetPasswordGET", { enumerable: true, get: function () { return reset_password_1.GET; } });
|
|
64
|
-
Object.defineProperty(exports, "resetPasswordPOST", { enumerable: true, get: function () { return reset_password_1.POST; } });
|
|
47
|
+
export { POST as registerPOST } from './api/register';
|
|
48
|
+
export { GET as verifyEmailGET, POST as verifyEmailPOST } from './api/verify-email';
|
|
49
|
+
export { POST as resendVerificationPOST } from './api/resend-verification';
|
|
50
|
+
export { POST as forgotPasswordPOST } from './api/forgot-password';
|
|
51
|
+
export { GET as resetPasswordGET, POST as resetPasswordPOST } from './api/reset-password';
|
|
65
52
|
// =============================================================================
|
|
66
53
|
// Client Hooks
|
|
67
54
|
// =============================================================================
|
|
68
|
-
|
|
69
|
-
Object.defineProperty(exports, "useAuth", { enumerable: true, get: function () { return useAuth_1.useAuth; } });
|
|
55
|
+
export { useAuth } from './hooks/useAuth';
|
|
70
56
|
// =============================================================================
|
|
71
57
|
// UI Components
|
|
72
58
|
// =============================================================================
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
Object.defineProperty(exports, "ResetPasswordForm", { enumerable: true, get: function () { return ResetPasswordForm_1.ResetPasswordForm; } });
|
|
81
|
-
var VerifyEmailNotice_1 = require("./components/VerifyEmailNotice");
|
|
82
|
-
Object.defineProperty(exports, "VerifyEmailNotice", { enumerable: true, get: function () { return VerifyEmailNotice_1.VerifyEmailNotice; } });
|
|
83
|
-
var UserMenu_1 = require("./components/UserMenu");
|
|
84
|
-
Object.defineProperty(exports, "UserMenu", { enumerable: true, get: function () { return UserMenu_1.UserMenu; } });
|
|
85
|
-
var AuthGuard_1 = require("./components/AuthGuard");
|
|
86
|
-
Object.defineProperty(exports, "AuthGuard", { enumerable: true, get: function () { return AuthGuard_1.AuthGuard; } });
|
|
87
|
-
Object.defineProperty(exports, "withAuth", { enumerable: true, get: function () { return AuthGuard_1.withAuth; } });
|
|
59
|
+
export { SignInForm } from './components/SignInForm';
|
|
60
|
+
export { SignUpForm } from './components/SignUpForm';
|
|
61
|
+
export { ForgotPasswordForm } from './components/ForgotPasswordForm';
|
|
62
|
+
export { ResetPasswordForm } from './components/ResetPasswordForm';
|
|
63
|
+
export { VerifyEmailNotice } from './components/VerifyEmailNotice';
|
|
64
|
+
export { UserMenu } from './components/UserMenu';
|
|
65
|
+
export { AuthGuard, withAuth } from './components/AuthGuard';
|
|
88
66
|
//# sourceMappingURL=index.js.map
|
package/dist/auth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAqDH,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAEhE,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,mDAAmD;AACnD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,GAAG,IAAI,cAAc,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACnF,OAAO,EAAE,IAAI,IAAI,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,GAAG,IAAI,gBAAgB,EAAE,IAAI,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAEzF,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEzC,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -1,57 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @rovela/sdk/auth/server/customer-service
|
|
4
3
|
*
|
|
5
4
|
* Customer CRUD operations with tenant isolation.
|
|
6
5
|
* All operations are scoped to the current tenant.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
-
}
|
|
14
|
-
Object.defineProperty(o, k2, desc);
|
|
15
|
-
}) : (function(o, m, k, k2) {
|
|
16
|
-
if (k2 === undefined) k2 = k;
|
|
17
|
-
o[k2] = m[k];
|
|
18
|
-
}));
|
|
19
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
-
}) : function(o, v) {
|
|
22
|
-
o["default"] = v;
|
|
23
|
-
});
|
|
24
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
-
var ownKeys = function(o) {
|
|
26
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
-
var ar = [];
|
|
28
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
-
return ar;
|
|
30
|
-
};
|
|
31
|
-
return ownKeys(o);
|
|
32
|
-
};
|
|
33
|
-
return function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
})();
|
|
41
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.createCustomer = createCustomer;
|
|
43
|
-
exports.authenticateCustomer = authenticateCustomer;
|
|
44
|
-
exports.findCustomerForSession = findCustomerForSession;
|
|
45
|
-
exports.findCustomerByEmail = findCustomerByEmail;
|
|
46
|
-
exports.findCustomerById = findCustomerById;
|
|
47
|
-
exports.updateCustomer = updateCustomer;
|
|
48
|
-
exports.updateCustomerPassword = updateCustomerPassword;
|
|
49
|
-
exports.markEmailVerified = markEmailVerified;
|
|
50
|
-
exports.emailExists = emailExists;
|
|
51
|
-
const drizzle_orm_1 = require("drizzle-orm");
|
|
52
|
-
const client_1 = require("../../core/db/client");
|
|
53
|
-
const schema = __importStar(require("../../core/db/schema"));
|
|
54
|
-
const password_1 = require("./password");
|
|
7
|
+
import { eq, and } from 'drizzle-orm';
|
|
8
|
+
import { getDb, getTenantId } from '../../core/db/client';
|
|
9
|
+
import * as schema from '../../core/db/schema';
|
|
10
|
+
import { hashPassword, verifyPassword } from './password';
|
|
55
11
|
// =============================================================================
|
|
56
12
|
// Customer CRUD
|
|
57
13
|
// =============================================================================
|
|
@@ -75,11 +31,11 @@ const password_1 = require("./password");
|
|
|
75
31
|
* )
|
|
76
32
|
* ```
|
|
77
33
|
*/
|
|
78
|
-
async function createCustomer(email, password, name) {
|
|
79
|
-
const db =
|
|
80
|
-
const tenantId =
|
|
34
|
+
export async function createCustomer(email, password, name) {
|
|
35
|
+
const db = getDb();
|
|
36
|
+
const tenantId = getTenantId();
|
|
81
37
|
// Hash password
|
|
82
|
-
const passwordHash = await
|
|
38
|
+
const passwordHash = await hashPassword(password);
|
|
83
39
|
try {
|
|
84
40
|
const [customer] = await db
|
|
85
41
|
.insert(schema.customers)
|
|
@@ -121,14 +77,14 @@ async function createCustomer(email, password, name) {
|
|
|
121
77
|
* }
|
|
122
78
|
* ```
|
|
123
79
|
*/
|
|
124
|
-
async function authenticateCustomer(email, password, requireVerification = true) {
|
|
125
|
-
const db =
|
|
126
|
-
const tenantId =
|
|
80
|
+
export async function authenticateCustomer(email, password, requireVerification = true) {
|
|
81
|
+
const db = getDb();
|
|
82
|
+
const tenantId = getTenantId();
|
|
127
83
|
// Find customer by email
|
|
128
84
|
const [customer] = await db
|
|
129
85
|
.select()
|
|
130
86
|
.from(schema.customers)
|
|
131
|
-
.where(
|
|
87
|
+
.where(and(eq(schema.customers.tenantId, tenantId), eq(schema.customers.email, email.toLowerCase().trim())))
|
|
132
88
|
.limit(1);
|
|
133
89
|
if (!customer) {
|
|
134
90
|
return {
|
|
@@ -138,7 +94,7 @@ async function authenticateCustomer(email, password, requireVerification = true)
|
|
|
138
94
|
};
|
|
139
95
|
}
|
|
140
96
|
// Verify password
|
|
141
|
-
const isValidPassword = await
|
|
97
|
+
const isValidPassword = await verifyPassword(password, customer.passwordHash);
|
|
142
98
|
if (!isValidPassword) {
|
|
143
99
|
return {
|
|
144
100
|
success: false,
|
|
@@ -170,9 +126,9 @@ async function authenticateCustomer(email, password, requireVerification = true)
|
|
|
170
126
|
* }
|
|
171
127
|
* ```
|
|
172
128
|
*/
|
|
173
|
-
async function findCustomerForSession(customerId) {
|
|
174
|
-
const db =
|
|
175
|
-
const tenantId =
|
|
129
|
+
export async function findCustomerForSession(customerId) {
|
|
130
|
+
const db = getDb();
|
|
131
|
+
const tenantId = getTenantId();
|
|
176
132
|
const [customer] = await db
|
|
177
133
|
.select({
|
|
178
134
|
id: schema.customers.id,
|
|
@@ -181,7 +137,7 @@ async function findCustomerForSession(customerId) {
|
|
|
181
137
|
emailVerified: schema.customers.emailVerified,
|
|
182
138
|
})
|
|
183
139
|
.from(schema.customers)
|
|
184
|
-
.where(
|
|
140
|
+
.where(and(eq(schema.customers.tenantId, tenantId), eq(schema.customers.id, customerId)))
|
|
185
141
|
.limit(1);
|
|
186
142
|
if (!customer) {
|
|
187
143
|
return null;
|
|
@@ -199,13 +155,13 @@ async function findCustomerForSession(customerId) {
|
|
|
199
155
|
* @param email - Customer email
|
|
200
156
|
* @returns Customer or null if not found
|
|
201
157
|
*/
|
|
202
|
-
async function findCustomerByEmail(email) {
|
|
203
|
-
const db =
|
|
204
|
-
const tenantId =
|
|
158
|
+
export async function findCustomerByEmail(email) {
|
|
159
|
+
const db = getDb();
|
|
160
|
+
const tenantId = getTenantId();
|
|
205
161
|
const [customer] = await db
|
|
206
162
|
.select()
|
|
207
163
|
.from(schema.customers)
|
|
208
|
-
.where(
|
|
164
|
+
.where(and(eq(schema.customers.tenantId, tenantId), eq(schema.customers.email, email.toLowerCase().trim())))
|
|
209
165
|
.limit(1);
|
|
210
166
|
return customer || null;
|
|
211
167
|
}
|
|
@@ -215,13 +171,13 @@ async function findCustomerByEmail(email) {
|
|
|
215
171
|
* @param customerId - Customer UUID
|
|
216
172
|
* @returns Customer or null if not found
|
|
217
173
|
*/
|
|
218
|
-
async function findCustomerById(customerId) {
|
|
219
|
-
const db =
|
|
220
|
-
const tenantId =
|
|
174
|
+
export async function findCustomerById(customerId) {
|
|
175
|
+
const db = getDb();
|
|
176
|
+
const tenantId = getTenantId();
|
|
221
177
|
const [customer] = await db
|
|
222
178
|
.select()
|
|
223
179
|
.from(schema.customers)
|
|
224
|
-
.where(
|
|
180
|
+
.where(and(eq(schema.customers.tenantId, tenantId), eq(schema.customers.id, customerId)))
|
|
225
181
|
.limit(1);
|
|
226
182
|
return customer || null;
|
|
227
183
|
}
|
|
@@ -237,9 +193,9 @@ async function findCustomerById(customerId) {
|
|
|
237
193
|
* const updated = await updateCustomer(customerId, { name: 'Jane Doe' })
|
|
238
194
|
* ```
|
|
239
195
|
*/
|
|
240
|
-
async function updateCustomer(customerId, data) {
|
|
241
|
-
const db =
|
|
242
|
-
const tenantId =
|
|
196
|
+
export async function updateCustomer(customerId, data) {
|
|
197
|
+
const db = getDb();
|
|
198
|
+
const tenantId = getTenantId();
|
|
243
199
|
const updateData = {};
|
|
244
200
|
if (data.name !== undefined) {
|
|
245
201
|
updateData.name = data.name?.trim() || null;
|
|
@@ -254,7 +210,7 @@ async function updateCustomer(customerId, data) {
|
|
|
254
210
|
const [customer] = await db
|
|
255
211
|
.update(schema.customers)
|
|
256
212
|
.set(updateData)
|
|
257
|
-
.where(
|
|
213
|
+
.where(and(eq(schema.customers.tenantId, tenantId), eq(schema.customers.id, customerId)))
|
|
258
214
|
.returning();
|
|
259
215
|
return customer || null;
|
|
260
216
|
}
|
|
@@ -269,14 +225,14 @@ async function updateCustomer(customerId, data) {
|
|
|
269
225
|
* await updateCustomerPassword(customerId, 'newSecurePassword123')
|
|
270
226
|
* ```
|
|
271
227
|
*/
|
|
272
|
-
async function updateCustomerPassword(customerId, newPassword) {
|
|
273
|
-
const db =
|
|
274
|
-
const tenantId =
|
|
275
|
-
const passwordHash = await
|
|
228
|
+
export async function updateCustomerPassword(customerId, newPassword) {
|
|
229
|
+
const db = getDb();
|
|
230
|
+
const tenantId = getTenantId();
|
|
231
|
+
const passwordHash = await hashPassword(newPassword);
|
|
276
232
|
await db
|
|
277
233
|
.update(schema.customers)
|
|
278
234
|
.set({ passwordHash })
|
|
279
|
-
.where(
|
|
235
|
+
.where(and(eq(schema.customers.tenantId, tenantId), eq(schema.customers.id, customerId)));
|
|
280
236
|
}
|
|
281
237
|
/**
|
|
282
238
|
* Mark customer email as verified.
|
|
@@ -288,13 +244,13 @@ async function updateCustomerPassword(customerId, newPassword) {
|
|
|
288
244
|
* await markEmailVerified(customerId)
|
|
289
245
|
* ```
|
|
290
246
|
*/
|
|
291
|
-
async function markEmailVerified(customerId) {
|
|
292
|
-
const db =
|
|
293
|
-
const tenantId =
|
|
247
|
+
export async function markEmailVerified(customerId) {
|
|
248
|
+
const db = getDb();
|
|
249
|
+
const tenantId = getTenantId();
|
|
294
250
|
await db
|
|
295
251
|
.update(schema.customers)
|
|
296
252
|
.set({ emailVerified: new Date() })
|
|
297
|
-
.where(
|
|
253
|
+
.where(and(eq(schema.customers.tenantId, tenantId), eq(schema.customers.id, customerId)));
|
|
298
254
|
}
|
|
299
255
|
/**
|
|
300
256
|
* Check if email is already registered.
|
|
@@ -302,7 +258,7 @@ async function markEmailVerified(customerId) {
|
|
|
302
258
|
* @param email - Email to check
|
|
303
259
|
* @returns True if email exists
|
|
304
260
|
*/
|
|
305
|
-
async function emailExists(email) {
|
|
261
|
+
export async function emailExists(email) {
|
|
306
262
|
const customer = await findCustomerByEmail(email);
|
|
307
263
|
return !!customer;
|
|
308
264
|
}
|