@rovela-ai/sdk 0.3.19 → 0.3.21
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/components/StoreSettings.js +3 -3
- package/dist/admin/components/StoreSettings.js.map +1 -1
- package/dist/admin/config.d.ts +30 -38
- package/dist/admin/config.d.ts.map +1 -1
- package/dist/admin/config.js +106 -67
- package/dist/admin/config.js.map +1 -1
- package/dist/admin/hooks/index.d.ts +2 -0
- package/dist/admin/hooks/index.d.ts.map +1 -1
- package/dist/admin/hooks/index.js +1 -0
- package/dist/admin/hooks/index.js.map +1 -1
- package/dist/admin/hooks/useAdminAuth.d.ts +3 -14
- package/dist/admin/hooks/useAdminAuth.d.ts.map +1 -1
- package/dist/admin/hooks/useAdminAuth.js +110 -55
- package/dist/admin/hooks/useAdminAuth.js.map +1 -1
- package/dist/admin/hooks/useAdminSession.d.ts +23 -0
- package/dist/admin/hooks/useAdminSession.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminSession.js +117 -0
- package/dist/admin/hooks/useAdminSession.js.map +1 -0
- package/dist/admin/index.d.ts +2 -1
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/server/admin-service.d.ts.map +1 -1
- package/dist/admin/server/admin-service.js +15 -0
- package/dist/admin/server/admin-service.js.map +1 -1
- package/dist/admin/server/admin-session.d.ts +11 -12
- package/dist/admin/server/admin-session.d.ts.map +1 -1
- package/dist/admin/server/admin-session.js +20 -20
- package/dist/admin/server/admin-session.js.map +1 -1
- package/dist/admin/types.d.ts +3 -0
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/auth/api/request-refund.d.ts.map +1 -1
- package/dist/auth/api/request-refund.js +7 -8
- package/dist/auth/api/request-refund.js.map +1 -1
- package/dist/auth/api/request-return.d.ts.map +1 -1
- package/dist/auth/api/request-return.js +7 -8
- package/dist/auth/api/request-return.js.map +1 -1
- package/dist/auth/config.d.ts +22 -10
- package/dist/auth/config.d.ts.map +1 -1
- package/dist/auth/config.js +51 -98
- package/dist/auth/config.js.map +1 -1
- package/dist/auth/hooks/useAuth.d.ts.map +1 -1
- package/dist/auth/hooks/useAuth.js +11 -1
- package/dist/auth/hooks/useAuth.js.map +1 -1
- package/dist/auth/index.d.ts +2 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +2 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/server/customer-session.d.ts +81 -0
- package/dist/auth/server/customer-session.d.ts.map +1 -0
- package/dist/auth/server/customer-session.js +115 -0
- package/dist/auth/server/customer-session.js.map +1 -0
- package/dist/auth/server/index.d.ts +2 -0
- package/dist/auth/server/index.d.ts.map +1 -1
- package/dist/auth/server/index.js +2 -0
- package/dist/auth/server/index.js.map +1 -1
- package/dist/core/cookie-consent/CookieBanner.d.ts.map +1 -1
- package/dist/core/cookie-consent/CookieBanner.js +4 -3
- package/dist/core/cookie-consent/CookieBanner.js.map +1 -1
- package/dist/media/api/delete.d.ts +1 -2
- package/dist/media/api/delete.d.ts.map +1 -1
- package/dist/media/api/delete.js +7 -17
- package/dist/media/api/delete.js.map +1 -1
- package/dist/media/api/presign.d.ts +1 -2
- package/dist/media/api/presign.d.ts.map +1 -1
- package/dist/media/api/presign.js +7 -17
- package/dist/media/api/presign.js.map +1 -1
- package/package.json +1 -1
|
@@ -44,10 +44,20 @@ export function useAuth() {
|
|
|
44
44
|
const status = sessionResult?.status ?? 'loading';
|
|
45
45
|
const update = sessionResult?.update;
|
|
46
46
|
// Memoized customer data
|
|
47
|
-
//
|
|
47
|
+
//
|
|
48
|
+
// Role filter: an admin JWT never reaches this hook post-0.3.20 because
|
|
49
|
+
// admin auth lives in a separate cookie. This filter is a belt-and-braces
|
|
50
|
+
// guard for legacy tokens or any future cross-contamination: if the
|
|
51
|
+
// session carries a `role` field, treat it as NOT a customer session —
|
|
52
|
+
// so components like the account page, checkout email prefill, and the
|
|
53
|
+
// storefront header never render admin identity as if it were a customer.
|
|
54
|
+
//
|
|
55
|
+
// Use double cast to avoid type conflicts with parent project's type declarations.
|
|
48
56
|
const customer = useMemo(() => {
|
|
49
57
|
if (!session?.user)
|
|
50
58
|
return null;
|
|
59
|
+
if (session.user.role)
|
|
60
|
+
return null;
|
|
51
61
|
return session.user;
|
|
52
62
|
}, [session?.user]);
|
|
53
63
|
// Derived state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/auth/hooks/useAuth.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,cAAc,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAclG,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,OAAO;IACrB,2EAA2E;IAC3E,MAAM,aAAa,GAAG,UAAU,EAAE,CAAA;IAClC,MAAM,OAAO,GAAG,aAAa,EAAE,IAAI,IAAI,IAAI,CAAA;IAC3C,MAAM,MAAM,GAAG,aAAa,EAAE,MAAM,IAAI,SAAS,CAAA;IACjD,MAAM,MAAM,GAAG,aAAa,EAAE,MAAM,CAAA;IAEpC,yBAAyB;IACzB,
|
|
1
|
+
{"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/auth/hooks/useAuth.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
38
|
export type { CustomerSession, AuthSession, AuthState, SignInOptions, SignInResult, SignUpData, SignUpResult, PasswordResetRequestResult, PasswordResetResult, TokenValidationResult, VerifyEmailResult, ResendVerificationResult, SignInFormProps, SignUpFormProps, ForgotPasswordFormProps, ResetPasswordFormProps, VerifyEmailNoticeProps, UserMenuProps, AuthGuardProps, AuthApiError, RegisterRequest, RegisterResponse, VerifyEmailResponse, ForgotPasswordRequest, ResetPasswordRequest, AuthConfigOptions, UseAuthReturn, } from './types';
|
|
39
|
-
export { createAuthOptions,
|
|
39
|
+
export { createCustomerAuthOptions, createAuthOptions, // @deprecated alias for createCustomerAuthOptions — kept for SDK-API compatibility
|
|
40
|
+
getCustomerSession, } from './config';
|
|
40
41
|
export { createAuthHandlers } from './api/auth';
|
|
41
42
|
export { POST as registerPOST } from './api/register';
|
|
42
43
|
export { GET as verifyEmailGET, POST as verifyEmailPOST } from './api/verify-email';
|
package/dist/auth/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAMH,YAAY,EAEV,eAAe,EACf,WAAW,EACX,SAAS,EAGT,aAAa,EACb,YAAY,EAGZ,UAAU,EACV,YAAY,EAGZ,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EAGrB,iBAAiB,EACjB,wBAAwB,EAGxB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,cAAc,EAGd,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EAGpB,iBAAiB,EAGjB,aAAa,GACd,MAAM,SAAS,CAAA;AAMhB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAMH,YAAY,EAEV,eAAe,EACf,WAAW,EACX,SAAS,EAGT,aAAa,EACb,YAAY,EAGZ,UAAU,EACV,YAAY,EAGZ,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EAGrB,iBAAiB,EACjB,wBAAwB,EAGxB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,cAAc,EAGd,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EAGpB,iBAAiB,EAGjB,aAAa,GACd,MAAM,SAAS,CAAA;AAMhB,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EAAE,mFAAmF;AACtG,kBAAkB,GACnB,MAAM,UAAU,CAAA;AAMjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAG/C,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;AAMzF,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAMzC,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"}
|
package/dist/auth/index.js
CHANGED
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
// =============================================================================
|
|
39
39
|
// Configuration
|
|
40
40
|
// =============================================================================
|
|
41
|
-
export { createAuthOptions,
|
|
41
|
+
export { createCustomerAuthOptions, createAuthOptions, // @deprecated alias for createCustomerAuthOptions — kept for SDK-API compatibility
|
|
42
|
+
getCustomerSession, } from './config';
|
|
42
43
|
// =============================================================================
|
|
43
44
|
// API Route Handlers
|
|
44
45
|
// =============================================================================
|
package/dist/auth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAqDH,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAqDH,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EAAE,mFAAmF;AACtG,kBAAkB,GACnB,MAAM,UAAU,CAAA;AAEjB,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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela-ai/sdk/auth/server/customer-session
|
|
3
|
+
*
|
|
4
|
+
* Centralized session check for customer-side API routes and Server
|
|
5
|
+
* Components. Mirror of `requireAdmin()` on the admin side.
|
|
6
|
+
*
|
|
7
|
+
* # Why this exists
|
|
8
|
+
*
|
|
9
|
+
* Before this helper, customer API routes each had their own inline
|
|
10
|
+
* "check session.user.id, optionally check session.user.role" scaffolding.
|
|
11
|
+
* Some of them (e.g. `/api/account/orders`) simply checked `session.user.id`
|
|
12
|
+
* and trusted whatever was there — including an admin session that happened
|
|
13
|
+
* to be in the single shared cookie. Result: admin JWTs silently succeeded
|
|
14
|
+
* on customer endpoints, returning "no orders" for the admin UUID rather
|
|
15
|
+
* than rejecting the request.
|
|
16
|
+
*
|
|
17
|
+
* Post-0.3.20 the admin cookie lives at a different name entirely
|
|
18
|
+
* (`__Secure-rovela.admin.session-token`), so an admin JWT CANNOT reach
|
|
19
|
+
* this helper because `getServerSession(createCustomerAuthOptions())` only
|
|
20
|
+
* reads the customer cookie (`__Secure-rovela.customer.session-token`).
|
|
21
|
+
* The `role` check below is belt-and-braces for legacy tokens still in
|
|
22
|
+
* flight during the fleet-wide cookie-name rollout.
|
|
23
|
+
*
|
|
24
|
+
* # Return contract
|
|
25
|
+
*
|
|
26
|
+
* Discriminated union, same as `requireAdmin`:
|
|
27
|
+
* - `{ ok: true, customer }` — caller proceeds
|
|
28
|
+
* - `{ ok: false, response }` — caller returns `response` directly
|
|
29
|
+
*
|
|
30
|
+
* Never throws — any internal error converts to a safe response.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* export async function GET() {
|
|
35
|
+
* const guard = await requireCustomer()
|
|
36
|
+
* if (!guard.ok) return guard.response
|
|
37
|
+
* const { customer } = guard
|
|
38
|
+
* const orders = await findOrders({ customerId: customer.id })
|
|
39
|
+
* return Response.json({ orders })
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
import { NextResponse } from 'next/server';
|
|
44
|
+
/**
|
|
45
|
+
* Shape of the verified customer returned on success. Deliberately a subset
|
|
46
|
+
* of the full customer row so callers don't accidentally leak sensitive
|
|
47
|
+
* fields (passwordHash, emailVerifiedAt timestamp, etc).
|
|
48
|
+
*/
|
|
49
|
+
export interface VerifiedCustomer {
|
|
50
|
+
id: string;
|
|
51
|
+
email: string;
|
|
52
|
+
name: string | null;
|
|
53
|
+
emailVerified: boolean;
|
|
54
|
+
}
|
|
55
|
+
export type RequireCustomerResult = {
|
|
56
|
+
ok: true;
|
|
57
|
+
customer: VerifiedCustomer;
|
|
58
|
+
} | {
|
|
59
|
+
ok: false;
|
|
60
|
+
response: NextResponse<{
|
|
61
|
+
error: string;
|
|
62
|
+
code: string;
|
|
63
|
+
}>;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Authenticate the current request as a customer.
|
|
67
|
+
*
|
|
68
|
+
* Resolves with either `{ ok: true, customer }` (caller may proceed) or
|
|
69
|
+
* `{ ok: false, response }` (caller returns the response to the client).
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* export async function GET() {
|
|
74
|
+
* const guard = await requireCustomer()
|
|
75
|
+
* if (!guard.ok) return guard.response
|
|
76
|
+
* // ...proceed with guard.customer
|
|
77
|
+
* }
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare function requireCustomer(): Promise<RequireCustomerResult>;
|
|
81
|
+
//# sourceMappingURL=customer-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customer-session.d.ts","sourceRoot":"","sources":["../../../src/auth/server/customer-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAS1C;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAA;AAwB1E;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC,CA6CtE"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela-ai/sdk/auth/server/customer-session
|
|
3
|
+
*
|
|
4
|
+
* Centralized session check for customer-side API routes and Server
|
|
5
|
+
* Components. Mirror of `requireAdmin()` on the admin side.
|
|
6
|
+
*
|
|
7
|
+
* # Why this exists
|
|
8
|
+
*
|
|
9
|
+
* Before this helper, customer API routes each had their own inline
|
|
10
|
+
* "check session.user.id, optionally check session.user.role" scaffolding.
|
|
11
|
+
* Some of them (e.g. `/api/account/orders`) simply checked `session.user.id`
|
|
12
|
+
* and trusted whatever was there — including an admin session that happened
|
|
13
|
+
* to be in the single shared cookie. Result: admin JWTs silently succeeded
|
|
14
|
+
* on customer endpoints, returning "no orders" for the admin UUID rather
|
|
15
|
+
* than rejecting the request.
|
|
16
|
+
*
|
|
17
|
+
* Post-0.3.20 the admin cookie lives at a different name entirely
|
|
18
|
+
* (`__Secure-rovela.admin.session-token`), so an admin JWT CANNOT reach
|
|
19
|
+
* this helper because `getServerSession(createCustomerAuthOptions())` only
|
|
20
|
+
* reads the customer cookie (`__Secure-rovela.customer.session-token`).
|
|
21
|
+
* The `role` check below is belt-and-braces for legacy tokens still in
|
|
22
|
+
* flight during the fleet-wide cookie-name rollout.
|
|
23
|
+
*
|
|
24
|
+
* # Return contract
|
|
25
|
+
*
|
|
26
|
+
* Discriminated union, same as `requireAdmin`:
|
|
27
|
+
* - `{ ok: true, customer }` — caller proceeds
|
|
28
|
+
* - `{ ok: false, response }` — caller returns `response` directly
|
|
29
|
+
*
|
|
30
|
+
* Never throws — any internal error converts to a safe response.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* export async function GET() {
|
|
35
|
+
* const guard = await requireCustomer()
|
|
36
|
+
* if (!guard.ok) return guard.response
|
|
37
|
+
* const { customer } = guard
|
|
38
|
+
* const orders = await findOrders({ customerId: customer.id })
|
|
39
|
+
* return Response.json({ orders })
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
import { NextResponse } from 'next/server';
|
|
44
|
+
import { getServerSession } from 'next-auth';
|
|
45
|
+
import { createCustomerAuthOptions } from '../config';
|
|
46
|
+
import { findCustomerById } from './customer-service';
|
|
47
|
+
// =============================================================================
|
|
48
|
+
// Response helpers
|
|
49
|
+
// =============================================================================
|
|
50
|
+
function unauthorized() {
|
|
51
|
+
return NextResponse.json({ error: 'Unauthorized', code: 'UNAUTHORIZED' }, { status: 401 });
|
|
52
|
+
}
|
|
53
|
+
function forbidden() {
|
|
54
|
+
return NextResponse.json({ error: 'Forbidden', code: 'FORBIDDEN' }, { status: 403 });
|
|
55
|
+
}
|
|
56
|
+
// =============================================================================
|
|
57
|
+
// Main helper
|
|
58
|
+
// =============================================================================
|
|
59
|
+
/**
|
|
60
|
+
* Authenticate the current request as a customer.
|
|
61
|
+
*
|
|
62
|
+
* Resolves with either `{ ok: true, customer }` (caller may proceed) or
|
|
63
|
+
* `{ ok: false, response }` (caller returns the response to the client).
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* export async function GET() {
|
|
68
|
+
* const guard = await requireCustomer()
|
|
69
|
+
* if (!guard.ok) return guard.response
|
|
70
|
+
* // ...proceed with guard.customer
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export async function requireCustomer() {
|
|
75
|
+
let rawSession;
|
|
76
|
+
try {
|
|
77
|
+
rawSession = await getServerSession(createCustomerAuthOptions());
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
console.error('[requireCustomer] Failed to read session:', err);
|
|
81
|
+
return { ok: false, response: unauthorized() };
|
|
82
|
+
}
|
|
83
|
+
const sessionUser = rawSession?.user;
|
|
84
|
+
if (!sessionUser?.id) {
|
|
85
|
+
return { ok: false, response: unauthorized() };
|
|
86
|
+
}
|
|
87
|
+
// Defense in depth: an admin cookie cannot reach this endpoint by
|
|
88
|
+
// design (separate cookie jar), but if a legacy token with a `role`
|
|
89
|
+
// field somehow decodes in this context, treat it as forbidden rather
|
|
90
|
+
// than render customer UI with admin identity.
|
|
91
|
+
if (sessionUser.role) {
|
|
92
|
+
return { ok: false, response: forbidden() };
|
|
93
|
+
}
|
|
94
|
+
// Re-validate the customer exists in the DB. Catches orphan JWTs where
|
|
95
|
+
// the customer row was deleted after the token was minted.
|
|
96
|
+
let customer;
|
|
97
|
+
try {
|
|
98
|
+
const row = await findCustomerById(sessionUser.id);
|
|
99
|
+
if (!row) {
|
|
100
|
+
return { ok: false, response: unauthorized() };
|
|
101
|
+
}
|
|
102
|
+
customer = {
|
|
103
|
+
id: row.id,
|
|
104
|
+
email: row.email,
|
|
105
|
+
name: row.name ?? null,
|
|
106
|
+
emailVerified: !!row.emailVerified,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
console.error('[requireCustomer] Failed to load customer row:', err);
|
|
111
|
+
return { ok: false, response: unauthorized() };
|
|
112
|
+
}
|
|
113
|
+
return { ok: true, customer };
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=customer-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customer-session.js","sourceRoot":"","sources":["../../../src/auth/server/customer-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAsBrD,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,SAAS,YAAY;IACnB,OAAO,YAAY,CAAC,IAAI,CACtB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,EAC/C,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,YAAY,CAAC,IAAI,CACtB,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EACzC,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,UAAmB,CAAA;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,gBAAgB,CAAC,yBAAyB,EAAE,CAAC,CAAA;IAClE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAA;QAC/D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAA;IAChD,CAAC;IAED,MAAM,WAAW,GAAI,UAEZ,EAAE,IAAI,CAAA;IAEf,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAA;IAChD,CAAC;IAED,kEAAkE;IAClE,oEAAoE;IACpE,sEAAsE;IACtE,+CAA+C;IAC/C,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAA;IAC7C,CAAC;IAED,uEAAuE;IACvE,2DAA2D;IAC3D,IAAI,QAA0B,CAAA;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAClD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAA;QAChD,CAAC;QACD,QAAQ,GAAG;YACT,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;YACtB,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa;SACnC,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAA;QACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAA;IAChD,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;AAC/B,CAAC"}
|
|
@@ -8,6 +8,8 @@ export { hashPassword, verifyPassword, validatePassword, MIN_PASSWORD_LENGTH, }
|
|
|
8
8
|
export { sendVerificationEmail, sendPasswordResetEmail, sendWelcomeEmail, getStoreName, } from './email-sender';
|
|
9
9
|
export { createCustomer, authenticateCustomer, findCustomerForSession, findCustomerByEmail, findCustomerById, updateCustomer, updateCustomerPassword, markEmailVerified, emailExists, } from './customer-service';
|
|
10
10
|
export type { CreateCustomerResult, AuthenticateResult, AuthenticateError, } from './customer-service';
|
|
11
|
+
export { requireCustomer } from './customer-session';
|
|
12
|
+
export type { VerifiedCustomer, RequireCustomerResult } from './customer-session';
|
|
11
13
|
export { createVerificationToken, verifyEmail, deleteVerificationTokens, resendVerificationEmail, isEmailVerified, cleanupExpiredTokens, } from './verification-service';
|
|
12
14
|
export { requestPasswordReset, validateResetToken, resetPassword, deletePasswordResetTokens, cleanupExpiredResetTokens, } from './password-reset-service';
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,GACZ,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,GACZ,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAGjF,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAA"}
|
|
@@ -10,6 +10,8 @@ export { hashPassword, verifyPassword, validatePassword, MIN_PASSWORD_LENGTH, }
|
|
|
10
10
|
export { sendVerificationEmail, sendPasswordResetEmail, sendWelcomeEmail, getStoreName, } from './email-sender';
|
|
11
11
|
// Customer service
|
|
12
12
|
export { createCustomer, authenticateCustomer, findCustomerForSession, findCustomerByEmail, findCustomerById, updateCustomer, updateCustomerPassword, markEmailVerified, emailExists, } from './customer-service';
|
|
13
|
+
// Customer session guard (mirror of requireAdmin on the admin side)
|
|
14
|
+
export { requireCustomer } from './customer-session';
|
|
13
15
|
// Verification service
|
|
14
16
|
export { createVerificationToken, verifyEmail, deleteVerificationTokens, resendVerificationEmail, isEmailVerified, cleanupExpiredTokens, } from './verification-service';
|
|
15
17
|
// Password reset service
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AAEnB,kBAAkB;AAClB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAA;AAEvB,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,GACZ,MAAM,oBAAoB,CAAA;AAO3B,uBAAuB;AACvB,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAE/B,yBAAyB;AACzB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AAEnB,kBAAkB;AAClB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAA;AAEvB,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,GACZ,MAAM,oBAAoB,CAAA;AAO3B,oEAAoE;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGpD,uBAAuB;AACvB,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAE/B,yBAAyB;AACzB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CookieBanner.d.ts","sourceRoot":"","sources":["../../../src/core/cookie-consent/CookieBanner.tsx"],"names":[],"mappings":"AAkCA,wBAAgB,YAAY,
|
|
1
|
+
{"version":3,"file":"CookieBanner.d.ts","sourceRoot":"","sources":["../../../src/core/cookie-consent/CookieBanner.tsx"],"names":[],"mappings":"AAkCA,wBAAgB,YAAY,mDAgG3B"}
|
|
@@ -74,10 +74,11 @@ export function CookieBanner() {
|
|
|
74
74
|
position: 'fixed',
|
|
75
75
|
bottom: '1rem',
|
|
76
76
|
left: '1rem',
|
|
77
|
-
right: '1rem',
|
|
78
77
|
zIndex: 2147483000,
|
|
79
|
-
maxWidth
|
|
80
|
-
margin: '0 auto'
|
|
78
|
+
// Anchor to bottom-left. `maxWidth` sizes the card; removing the
|
|
79
|
+
// matching `right` + `margin: '0 auto'` is what stops the browser
|
|
80
|
+
// from centering it via equal left/right insets.
|
|
81
|
+
maxWidth: `min(${showPreferences ? '28rem' : '26rem'}, calc(100vw - 2rem))`,
|
|
81
82
|
background: 'hsl(var(--card, 0 0% 100%))',
|
|
82
83
|
border: '1px solid hsl(var(--border, 220 13% 91%))',
|
|
83
84
|
borderRadius: '0.75rem',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CookieBanner.js","sourceRoot":"","sources":["../../../src/core/cookie-consent/CookieBanner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,UAAU,YAAY;IAC1B,MAAM,EACJ,OAAO,EACP,UAAU,EACV,cAAc,EACd,eAAe,EACf,MAAM,EACN,gBAAgB,GACjB,GAAG,iBAAiB,EAAE,CAAA;IAEvB,8DAA8D;IAC9D,oDAAoD;IACpD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzD,kEAAkE;IAClE,gEAAgE;IAChE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,eAAe,IAAI,UAAU,EAAE,CAAC;YAClC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACtC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACxC,CAAC;IACH,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAEvE,gBAAgB;IAChB,IAAI,cAAc;QAAE,OAAO,IAAI,CAAA;IAE/B,MAAM,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe,CAAA;IACjE,MAAM,eAAe,GAAG,UAAU,IAAI,eAAe,CAAA;IAErD,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAA;IAEhD,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5C,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,gBAAgB,EAAE,CAAA;IACpB,CAAC,CAAA;IACD,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;QAC9C,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,gBAAgB,EAAE,CAAA;IACpB,CAAC,CAAA;IACD,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAA;QACpE,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,gBAAgB,EAAE,CAAA;IACpB,CAAC,CAAA;IACD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,qDAAqD;QACrD,eAAe,EAAE,CAAA;IACnB,CAAC,CAAA;IAED,OAAO,CACL,eACE,IAAI,EAAC,QAAQ,gBACF,OAAO,gBACP,gBAAgB,eACjB,QAAQ,EAClB,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM;YACZ,
|
|
1
|
+
{"version":3,"file":"CookieBanner.js","sourceRoot":"","sources":["../../../src/core/cookie-consent/CookieBanner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,UAAU,YAAY;IAC1B,MAAM,EACJ,OAAO,EACP,UAAU,EACV,cAAc,EACd,eAAe,EACf,MAAM,EACN,gBAAgB,GACjB,GAAG,iBAAiB,EAAE,CAAA;IAEvB,8DAA8D;IAC9D,oDAAoD;IACpD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzD,kEAAkE;IAClE,gEAAgE;IAChE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,eAAe,IAAI,UAAU,EAAE,CAAC;YAClC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACtC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACxC,CAAC;IACH,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAEvE,gBAAgB;IAChB,IAAI,cAAc;QAAE,OAAO,IAAI,CAAA;IAE/B,MAAM,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe,CAAA;IACjE,MAAM,eAAe,GAAG,UAAU,IAAI,eAAe,CAAA;IAErD,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAA;IAEhD,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5C,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,gBAAgB,EAAE,CAAA;IACpB,CAAC,CAAA;IACD,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;QAC9C,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,gBAAgB,EAAE,CAAA;IACpB,CAAC,CAAA;IACD,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAA;QACpE,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,gBAAgB,EAAE,CAAA;IACpB,CAAC,CAAA;IACD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,qDAAqD;QACrD,eAAe,EAAE,CAAA;IACnB,CAAC,CAAA;IAED,OAAO,CACL,eACE,IAAI,EAAC,QAAQ,gBACF,OAAO,gBACP,gBAAgB,eACjB,QAAQ,EAClB,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,UAAU;YAClB,iEAAiE;YACjE,kEAAkE;YAClE,iDAAiD;YACjD,QAAQ,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,uBAAuB;YAC3E,UAAU,EAAE,6BAA6B;YACzC,MAAM,EAAE,2CAA2C;YACnD,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,qEAAqE;YAChF,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,wCAAwC;SAChD,aAEA,UAAU,IAAI,KAAC,MAAM,IACpB,WAAW,EAAE,eAAe,EAC5B,WAAW,EAAE,eAAe,EAC5B,WAAW,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EACtC,OAAO,EAAE,WAAW,GACpB,EACD,eAAe,IAAI,KAAC,MAAM,IACzB,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,gBAAgB,EAC3B,iBAAiB,EAAE,mBAAmB,EACtC,iBAAiB,EAAE,mBAAmB,EACtC,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,eAAe,EAC5B,WAAW,EAAE,eAAe,EAC5B,OAAO,EAAE,WAAW,GACpB,IACE,CACP,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,SAAS,MAAM,CAAC,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,OAAO,GAMR;IACC,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,aAClC,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,gBACL,wCAAwC,EACnD,KAAK,EAAE,gBAAgB,uBAGhB,EACT,aAAI,KAAK,EAAE,UAAU,mCAAyB,EAC9C,aAAG,KAAK,EAAE,SAAS,oLAGqB,GAAG,EACzC,YACE,IAAI,EAAC,kBAAkB,EACvB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,2BAGvB,IACF,EACJ,eACE,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM;oBACf,QAAQ,EAAE,MAAM;oBAChB,GAAG,EAAE,QAAQ;oBACb,SAAS,EAAE,MAAM;iBAClB,aAED,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,2BAE5D,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,oBAAoB,2BAE9D,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,0BAE7D,IACL,IACF,CACP,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,iCAAiC;AACjC,gFAAgF;AAEhF,SAAS,MAAM,CAAC,EACd,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,WAAW,EACX,OAAO,GAUR;IACC,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,aAClC,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,gBACL,sBAAsB,EACjC,KAAK,EAAE,gBAAgB,uBAGhB,EACT,aAAI,KAAK,EAAE,UAAU,mCAAyB,EAC9C,YAAG,KAAK,EAAE,SAAS,8DAAmD,EACtE,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,aAC5F,KAAC,WAAW,IACV,KAAK,EAAC,WAAW,EACjB,WAAW,EAAC,4DAA4D,EACxE,OAAO,QACP,MAAM,SACN,EACF,KAAC,WAAW,IACV,KAAK,EAAC,WAAW,EACjB,WAAW,EAAC,gEAAgE,EAC5E,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,iBAAiB,GAC3B,EACF,KAAC,WAAW,IACV,KAAK,EAAC,WAAW,EACjB,WAAW,EAAC,iEAAiE,EAC7E,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,iBAAiB,GAC3B,IACE,EACN,eACE,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM;oBACf,QAAQ,EAAE,MAAM;oBAChB,GAAG,EAAE,QAAQ;oBACb,SAAS,EAAE,MAAM;oBACjB,cAAc,EAAE,eAAe;iBAChC,aAED,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAC9D,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,2BAE7D,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,2BAE7D,IACL,EACN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,iCAEvD,IACL,IACF,CACP,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,KAAK,EACL,WAAW,EACX,OAAO,EACP,QAAQ,EACR,MAAM,GAOP;IACC,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,YAAY;YACxB,cAAc,EAAE,eAAe;YAC/B,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,2CAA2C;YACnD,YAAY,EAAE,QAAQ;SACvB,aAED,eAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,aAClC,cAAK,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAG,KAAK,GAAO,EACpE,YACE,KAAK,EAAE;4BACL,MAAM,EAAE,cAAc;4BACtB,QAAQ,EAAE,WAAW;4BACrB,UAAU,EAAE,IAAI;4BAChB,KAAK,EAAE,2CAA2C;yBACnD,YAEA,WAAW,GACV,IACA,EACN,gBACE,KAAK,EAAE;oBACL,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,QAAQ;oBACb,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;oBAC1C,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC1B,YAED,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBACjC,SAAS,KAAK,CAAC,WAAW,EAAE,UAAU,EAClD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,iCAAiC,EAAE,GACxF,GACI,IACJ,CACP,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,qEAAqE;AACrE,gFAAgF;AAEhF,MAAM,UAAU,GAAwB;IACtC,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;CAChB,CAAA;AAED,MAAM,SAAS,GAAwB;IACrC,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,2CAA2C;CACnD,CAAA;AAED,MAAM,SAAS,GAAwB;IACrC,KAAK,EAAE,iCAAiC;IACxC,cAAc,EAAE,WAAW;IAC3B,mBAAmB,EAAE,KAAK;CAC3B,CAAA;AAED,MAAM,kBAAkB,GAAwB;IAC9C,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,0CAA0C;IACjD,UAAU,EAAE,iCAAiC;IAC7C,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,SAAS;CAClB,CAAA;AAED,MAAM,oBAAoB,GAAwB;IAChD,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,wCAAwC;IAC/C,UAAU,EAAE,gCAAgC;IAC5C,MAAM,EAAE,2CAA2C;IACnD,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,SAAS;CAClB,CAAA;AAED,MAAM,mBAAmB,GAAwB;IAC/C,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,wCAAwC;IAC/C,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,2CAA2C;IACnD,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,SAAS;CAClB,CAAA;AAED,MAAM,gBAAgB,GAAwB;IAC5C,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,2CAA2C;IAClD,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,SAAS;IACvB,MAAM,EAAE,SAAS;CAClB,CAAA"}
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
12
|
import { NextRequest, NextResponse } from 'next/server';
|
|
13
|
-
import type { DeleteApiResponse, MediaApiError } from '../types';
|
|
14
13
|
/**
|
|
15
14
|
* DELETE /api/media
|
|
16
15
|
*
|
|
@@ -40,5 +39,5 @@ import type { DeleteApiResponse, MediaApiError } from '../types';
|
|
|
40
39
|
* error?: string
|
|
41
40
|
* }
|
|
42
41
|
*/
|
|
43
|
-
export declare function DELETE(request: NextRequest): Promise<NextResponse
|
|
42
|
+
export declare function DELETE(request: NextRequest): Promise<NextResponse>;
|
|
44
43
|
//# sourceMappingURL=delete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/media/api/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/media/api/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AA2CvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAuExE"}
|
package/dist/media/api/delete.js
CHANGED
|
@@ -10,22 +10,10 @@
|
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
12
|
import { NextResponse } from 'next/server';
|
|
13
|
-
import {
|
|
14
|
-
import { createAuthOptions } from '../../auth/config';
|
|
13
|
+
import { requireAdmin } from '../../admin/server/admin-session';
|
|
15
14
|
import { deleteFile, deleteFiles } from '../server/delete';
|
|
16
15
|
import { isMediaConfigured } from '../config';
|
|
17
16
|
// =============================================================================
|
|
18
|
-
// Auth Helper
|
|
19
|
-
// =============================================================================
|
|
20
|
-
async function requireAdmin() {
|
|
21
|
-
const session = await getServerSession(createAuthOptions());
|
|
22
|
-
const user = session?.user;
|
|
23
|
-
if (!user?.role || !['owner', 'admin'].includes(user.role)) {
|
|
24
|
-
return NextResponse.json({ success: false, error: 'Unauthorized', code: 'UNAUTHORIZED' }, { status: 401 });
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
// =============================================================================
|
|
29
17
|
// Validation
|
|
30
18
|
// =============================================================================
|
|
31
19
|
function validateRequest(body) {
|
|
@@ -80,10 +68,12 @@ function validateRequest(body) {
|
|
|
80
68
|
* }
|
|
81
69
|
*/
|
|
82
70
|
export async function DELETE(request) {
|
|
83
|
-
//
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
71
|
+
// Any active admin (owner / administrator / manager / user) can delete
|
|
72
|
+
// media. Reads the admin cookie via the canonical helper, which handles
|
|
73
|
+
// session-version + DB status + the post-0.3.20 two-cookie split.
|
|
74
|
+
const guard = await requireAdmin();
|
|
75
|
+
if (!guard.ok)
|
|
76
|
+
return guard.response;
|
|
87
77
|
// Check if media is configured
|
|
88
78
|
if (!isMediaConfigured()) {
|
|
89
79
|
return NextResponse.json({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/media/api/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAe,YAAY,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/media/api/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
12
|
import { NextRequest, NextResponse } from 'next/server';
|
|
13
|
-
import type { PresignApiResponse, MediaApiError } from '../types';
|
|
14
13
|
/**
|
|
15
14
|
* POST /api/media/presign
|
|
16
15
|
*
|
|
@@ -35,5 +34,5 @@ import type { PresignApiResponse, MediaApiError } from '../types';
|
|
|
35
34
|
* }
|
|
36
35
|
* }
|
|
37
36
|
*/
|
|
38
|
-
export declare function POST(request: NextRequest): Promise<NextResponse
|
|
37
|
+
export declare function POST(request: NextRequest): Promise<NextResponse>;
|
|
39
38
|
//# sourceMappingURL=presign.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presign.d.ts","sourceRoot":"","sources":["../../../src/media/api/presign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"presign.d.ts","sourceRoot":"","sources":["../../../src/media/api/presign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AA2EvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAkDtE"}
|
|
@@ -10,22 +10,10 @@
|
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
12
|
import { NextResponse } from 'next/server';
|
|
13
|
-
import {
|
|
14
|
-
import { createAuthOptions } from '../../auth/config';
|
|
13
|
+
import { requireAdmin } from '../../admin/server/admin-session';
|
|
15
14
|
import { generatePresignedUrl } from '../server/presign';
|
|
16
15
|
import { isMediaConfigured, getUploadConfig } from '../config';
|
|
17
16
|
// =============================================================================
|
|
18
|
-
// Auth Helper
|
|
19
|
-
// =============================================================================
|
|
20
|
-
async function requireAdmin() {
|
|
21
|
-
const session = await getServerSession(createAuthOptions());
|
|
22
|
-
const user = session?.user;
|
|
23
|
-
if (!user?.role || !['owner', 'admin'].includes(user.role)) {
|
|
24
|
-
return NextResponse.json({ success: false, error: 'Unauthorized', code: 'UNAUTHORIZED' }, { status: 401 });
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
// =============================================================================
|
|
29
17
|
// Validation
|
|
30
18
|
// =============================================================================
|
|
31
19
|
const VALID_FOLDERS = ['products', 'categories', 'variants', 'general'];
|
|
@@ -99,10 +87,12 @@ function validateRequest(body) {
|
|
|
99
87
|
* }
|
|
100
88
|
*/
|
|
101
89
|
export async function POST(request) {
|
|
102
|
-
//
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
90
|
+
// Any active admin (owner / administrator / manager / user) can upload
|
|
91
|
+
// media. Reads the admin cookie via the canonical helper, which handles
|
|
92
|
+
// session-version + DB status + the post-0.3.20 two-cookie split.
|
|
93
|
+
const guard = await requireAdmin();
|
|
94
|
+
if (!guard.ok)
|
|
95
|
+
return guard.response;
|
|
106
96
|
// Check if media is configured
|
|
107
97
|
if (!isMediaConfigured()) {
|
|
108
98
|
return NextResponse.json({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presign.js","sourceRoot":"","sources":["../../../src/media/api/presign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAe,YAAY,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"presign.js","sourceRoot":"","sources":["../../../src/media/api/presign.ts"],"names":[],"mappings":"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"}
|