@cellarnode/auth 0.13.3 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +120 -4
  2. package/dist/auth-api.d.ts.map +1 -1
  3. package/dist/auth-api.js +44 -5
  4. package/dist/auth-api.js.map +1 -1
  5. package/dist/auth-client.d.ts.map +1 -1
  6. package/dist/auth-client.js +61 -17
  7. package/dist/auth-client.js.map +1 -1
  8. package/dist/auth-store.d.ts +2 -2
  9. package/dist/auth-store.d.ts.map +1 -1
  10. package/dist/auth-store.js +564 -173
  11. package/dist/auth-store.js.map +1 -1
  12. package/dist/auth-transport.d.ts +5 -0
  13. package/dist/auth-transport.d.ts.map +1 -0
  14. package/dist/auth-transport.js +45 -0
  15. package/dist/auth-transport.js.map +1 -0
  16. package/dist/auth-user.d.ts +7 -0
  17. package/dist/auth-user.d.ts.map +1 -0
  18. package/dist/auth-user.js +73 -0
  19. package/dist/auth-user.js.map +1 -0
  20. package/dist/index.d.ts +2 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/react/dev-sign-in.d.ts +54 -0
  25. package/dist/react/dev-sign-in.d.ts.map +1 -0
  26. package/dist/react/dev-sign-in.js +63 -0
  27. package/dist/react/dev-sign-in.js.map +1 -0
  28. package/dist/react/index.d.ts.map +1 -1
  29. package/dist/react/index.js +11 -0
  30. package/dist/react/index.js.map +1 -1
  31. package/dist/react/login-form.d.ts.map +1 -1
  32. package/dist/react/login-form.js +105 -3
  33. package/dist/react/login-form.js.map +1 -1
  34. package/dist/session-continuity.d.ts +13 -0
  35. package/dist/session-continuity.d.ts.map +1 -0
  36. package/dist/session-continuity.js +107 -0
  37. package/dist/session-continuity.js.map +1 -0
  38. package/dist/types.d.ts +130 -2
  39. package/dist/types.d.ts.map +1 -1
  40. package/dist/types.js.map +1 -1
  41. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../src/auth-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../src/auth-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Build one same-origin auth URL while preserving a base URL path prefix. */
2
+ export declare function resolveAuthRequestUrl(baseUrl: string, path: string): string;
3
+ /** Send auth traffic without following redirects that could cross transport boundaries. */
4
+ export declare function fetchAuthRequest(baseUrl: string, path: string, init?: RequestInit): Promise<Response>;
5
+ //# sourceMappingURL=auth-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-transport.d.ts","sourceRoot":"","sources":["../src/auth-transport.ts"],"names":[],"mappings":"AA4BA,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAkB3E;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,QAAQ,CAAC,CAGnB"}
@@ -0,0 +1,45 @@
1
+ const LOOPBACK_HOSTS = new Set(["localhost", "127.0.0.1", "[::1]"]);
2
+ const ENCODED_PATH_BOUNDARY = /%(?:2f|5c|25)/i;
3
+ function parseAllowedUrl(value) {
4
+ let url;
5
+ try {
6
+ url = new URL(value);
7
+ }
8
+ catch {
9
+ throw new TypeError("Auth request URL is invalid");
10
+ }
11
+ if (url.username || url.password) {
12
+ throw new TypeError("Auth request URL must not contain userinfo");
13
+ }
14
+ if (ENCODED_PATH_BOUNDARY.test(url.pathname)) {
15
+ throw new TypeError("Auth request URL contains an encoded path boundary");
16
+ }
17
+ if (url.protocol !== "https:" &&
18
+ !(url.protocol === "http:" && LOOPBACK_HOSTS.has(url.hostname))) {
19
+ throw new TypeError("Auth requests require HTTPS except for loopback local development");
20
+ }
21
+ return url;
22
+ }
23
+ /** Build one same-origin auth URL while preserving a base URL path prefix. */
24
+ export function resolveAuthRequestUrl(baseUrl, path) {
25
+ const base = parseAllowedUrl(baseUrl);
26
+ const basePath = base.pathname.endsWith("/")
27
+ ? base.pathname
28
+ : `${base.pathname}/`;
29
+ base.pathname = basePath;
30
+ base.search = "";
31
+ base.hash = "";
32
+ const relativePath = path.replace(/^\/+/, "");
33
+ const request = parseAllowedUrl(new URL(relativePath, base).href);
34
+ if (request.origin !== base.origin ||
35
+ !request.pathname.startsWith(basePath)) {
36
+ throw new TypeError("Auth request URL must stay within configured base URL");
37
+ }
38
+ return request.href;
39
+ }
40
+ /** Send auth traffic without following redirects that could cross transport boundaries. */
41
+ export function fetchAuthRequest(baseUrl, path, init = {}) {
42
+ const url = resolveAuthRequestUrl(baseUrl, path);
43
+ return fetch(url, { ...init, redirect: "error" });
44
+ }
45
+ //# sourceMappingURL=auth-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-transport.js","sourceRoot":"","sources":["../src/auth-transport.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AACpE,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAE/C,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;IAC5E,CAAC;IACD,IACE,GAAG,CAAC,QAAQ,KAAK,QAAQ;QACzB,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAC/D,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,IAAY;IACjE,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1C,CAAC,CAAC,IAAI,CAAC,QAAQ;QACf,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC;IACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IAEf,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAClE,IACE,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC9B,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EACtC,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,IAAY,EACZ,OAAoB,EAAE;IAEtB,MAAM,GAAG,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { AuthUser, VerifyOtpUser } from "./types.js";
2
+ /** Validate and defensively copy the sparse `/auth/verify-otp` user. */
3
+ export declare function parseVerifyOtpUser(value: unknown): VerifyOtpUser | null;
4
+ /** Validate and defensively copy the complete `/auth/me` response. */
5
+ export declare function parseAuthUser(value: unknown): AuthUser | null;
6
+ export declare function copyAuthUser(user: AuthUser): AuthUser;
7
+ //# sourceMappingURL=auth-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-user.d.ts","sourceRoot":"","sources":["../src/auth-user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAER,aAAa,EACd,MAAM,YAAY,CAAC;AAkDpB,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAEvE;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAuB7D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAQrD"}
@@ -0,0 +1,73 @@
1
+ const SESSION_USER_TYPES = new Set([
2
+ "importer",
3
+ "producer",
4
+ "distributor",
5
+ "admin",
6
+ ]);
7
+ function hasOwn(value, key) {
8
+ return Object.prototype.hasOwnProperty.call(value, key);
9
+ }
10
+ function parseRequiredUserFields(value) {
11
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
12
+ return null;
13
+ }
14
+ const user = value;
15
+ if (typeof user.id !== "string" ||
16
+ user.id.length === 0 ||
17
+ typeof user.email !== "string" ||
18
+ typeof user.name !== "string" ||
19
+ !hasOwn(user, "orgId") ||
20
+ !(user.orgId === null || typeof user.orgId === "string") ||
21
+ !hasOwn(user, "userType") ||
22
+ !(user.userType === null ||
23
+ (typeof user.userType === "string" &&
24
+ SESSION_USER_TYPES.has(user.userType))) ||
25
+ !Array.isArray(user.roles) ||
26
+ !user.roles.every((role) => typeof role === "string") ||
27
+ (user.phone !== undefined && typeof user.phone !== "string")) {
28
+ return null;
29
+ }
30
+ return {
31
+ id: user.id,
32
+ email: user.email,
33
+ name: user.name,
34
+ ...(user.phone === undefined ? {} : { phone: user.phone }),
35
+ userType: user.userType,
36
+ orgId: user.orgId,
37
+ roles: [...user.roles],
38
+ };
39
+ }
40
+ /** Validate and defensively copy the sparse `/auth/verify-otp` user. */
41
+ export function parseVerifyOtpUser(value) {
42
+ return parseRequiredUserFields(value);
43
+ }
44
+ /** Validate and defensively copy the complete `/auth/me` response. */
45
+ export function parseAuthUser(value) {
46
+ const required = parseRequiredUserFields(value);
47
+ if (!required)
48
+ return null;
49
+ const user = value;
50
+ if (typeof user.createdAt !== "string" ||
51
+ (user.entitlements !== undefined &&
52
+ (!Array.isArray(user.entitlements) ||
53
+ !user.entitlements.every((entitlement) => typeof entitlement === "string")))) {
54
+ return null;
55
+ }
56
+ return {
57
+ ...required,
58
+ ...(user.entitlements === undefined
59
+ ? {}
60
+ : { entitlements: [...user.entitlements] }),
61
+ createdAt: user.createdAt,
62
+ };
63
+ }
64
+ export function copyAuthUser(user) {
65
+ return {
66
+ ...user,
67
+ roles: [...user.roles],
68
+ ...(user.entitlements === undefined
69
+ ? {}
70
+ : { entitlements: [...user.entitlements] }),
71
+ };
72
+ }
73
+ //# sourceMappingURL=auth-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-user.js","sourceRoot":"","sources":["../src/auth-user.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,5 +3,6 @@ export { createAuthClient } from "./auth-client.js";
3
3
  export { createAuthApi } from "./auth-api.js";
4
4
  export { validateUserType, hasEntitlement } from "./auth-guard.js";
5
5
  export { extractAccessToken } from "./extract-token.js";
6
- export { AuthError, type AuthUser, type AuthStore, type AuthStoreConfig, type AuthClient, type AuthClientConfig, type AuthApi, type RegisterInput, type RequestOtpResponse, type VerifyOtpResponse, type AuthErrorResponse, type UserType, type DashboardLink, type SessionClaims, type SessionUserType, type OrgChangeListener, type AccessTokenSetListener, type LogoutListener, } from "./types.js";
6
+ export { captureSessionContinuity, canReplaySession, resolveSessionForReplay, } from "./session-continuity.js";
7
+ export { AuthError, type AuthUser, type AuthStore, type ConcreteAuthStore, type AuthStoreConfig, type AuthClient, type AuthClientConfig, type AuthApi, type RegisterInput, type RequestOtpResponse, type VerifyOtpResponse, type VerifyOtpUser, type AuthErrorResponse, type DevLoginResult, type DevLoginSuccess, type DevLoginFailure, type DevLoginFailureReason, type UserType, type DashboardLink, type SessionClaims, type SessionUserType, type ResolveSessionOptions, type SessionResolution, type SessionState, type SessionStateListener, type SessionContinuity, type OrgChangeListener, type AccessTokenSetListener, type LogoutListener, } from "./types.js";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EACL,SAAS,EACT,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,SAAS,EACT,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -3,5 +3,6 @@ export { createAuthClient } from "./auth-client.js";
3
3
  export { createAuthApi } from "./auth-api.js";
4
4
  export { validateUserType, hasEntitlement } from "./auth-guard.js";
5
5
  export { extractAccessToken } from "./extract-token.js";
6
+ export { captureSessionContinuity, canReplaySession, resolveSessionForReplay, } from "./session-continuity.js";
6
7
  export { AuthError, } from "./types.js";
7
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EACL,SAAS,GAkBV,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,SAAS,GA6BV,MAAM,YAAY,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * INTERNAL (CEL-1364) — nothing in this module is re-exported from
3
+ * `@cellarnode/auth/react`. `LoginForm` is the only supported entry point; see
4
+ * the note in `src/react/index.ts`.
5
+ *
6
+ * localStorage key holding the last address used with the dev bypass. DEV-only
7
+ * convenience: it prefills the sign-in email so a fresh tab is one click from a
8
+ * session. Both call sites sit inside `LoginForm`'s `import.meta.env.DEV`
9
+ * branch, so production never reaches them — though the helpers themselves are
10
+ * called from live function bodies and therefore stay in the bundle as
11
+ * unreachable code (see `__tests__/dev-bypass-treeshake.test.ts`).
12
+ */
13
+ export declare const DEV_LOGIN_EMAIL_STORAGE_KEY = "cellarnode.dev.login-email";
14
+ /**
15
+ * Last address used with the dev bypass, or null.
16
+ *
17
+ * Tolerant by design — storage access throws in Safari private mode and in
18
+ * any non-browser host (SSR, tests), and a prefill is never worth a crash.
19
+ */
20
+ export declare function readDevLoginEmail(): string | null;
21
+ /** Remember `email` for the next dev sign-in. Silently no-ops on failure. */
22
+ export declare function rememberDevLoginEmail(email: string): void;
23
+ export interface DevSignInBypassProps {
24
+ /** Address the bypass will sign in as — the sign-in form's own email field. */
25
+ email: string;
26
+ /** True while the bypass request is in flight. */
27
+ isSubmitting: boolean;
28
+ /**
29
+ * True while the OTP form is busy. The guard is reciprocal — `LoginForm`
30
+ * also feeds its own dev-submitting state into the OTP submit button — which
31
+ * is what actually makes "the two affordances can't race" true rather than
32
+ * aspirational.
33
+ */
34
+ disabled?: boolean;
35
+ /** Developer-facing failure message from `authStore.devLogin()`. */
36
+ error?: string;
37
+ onDevSignIn: () => void;
38
+ }
39
+ /**
40
+ * DEV-only affordance rendered ALONGSIDE the OTP email form (CEL-1364).
41
+ *
42
+ * It is strictly additive: the OTP flow above it stays fully reachable and
43
+ * testable, and nothing here auto-submits or auto-redirects. A developer opts
44
+ * in with a click.
45
+ *
46
+ * The component is only ever referenced from inside an
47
+ * `import.meta.env.DEV && …` branch, so production bundles drop the branch and
48
+ * this component with it (the package sets `sideEffects: false`). The two
49
+ * storage helpers above are called from live function bodies behind runtime
50
+ * guards, so they survive as unreachable code — that difference is pinned in
51
+ * `__tests__/dev-bypass-treeshake.test.ts`.
52
+ */
53
+ export declare function DevSignInBypass({ email, isSubmitting, disabled, error, onDevSignIn, }: DevSignInBypassProps): import("react/jsx-runtime").JSX.Element;
54
+ //# sourceMappingURL=dev-sign-in.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-sign-in.d.ts","sourceRoot":"","sources":["../../src/react/dev-sign-in.tsx"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,+BAA+B,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAOjD;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMzD;AAED,MAAM,WAAW,oBAAoB;IACnC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,YAAY,EACZ,QAAgB,EAChB,KAAK,EACL,WAAW,GACZ,EAAE,oBAAoB,2CAsDtB"}
@@ -0,0 +1,63 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useId } from "react";
4
+ import { FlaskConical, Loader2, Zap } from "lucide-react";
5
+ import { clsx } from "clsx";
6
+ /**
7
+ * INTERNAL (CEL-1364) — nothing in this module is re-exported from
8
+ * `@cellarnode/auth/react`. `LoginForm` is the only supported entry point; see
9
+ * the note in `src/react/index.ts`.
10
+ *
11
+ * localStorage key holding the last address used with the dev bypass. DEV-only
12
+ * convenience: it prefills the sign-in email so a fresh tab is one click from a
13
+ * session. Both call sites sit inside `LoginForm`'s `import.meta.env.DEV`
14
+ * branch, so production never reaches them — though the helpers themselves are
15
+ * called from live function bodies and therefore stay in the bundle as
16
+ * unreachable code (see `__tests__/dev-bypass-treeshake.test.ts`).
17
+ */
18
+ export const DEV_LOGIN_EMAIL_STORAGE_KEY = "cellarnode.dev.login-email";
19
+ /**
20
+ * Last address used with the dev bypass, or null.
21
+ *
22
+ * Tolerant by design — storage access throws in Safari private mode and in
23
+ * any non-browser host (SSR, tests), and a prefill is never worth a crash.
24
+ */
25
+ export function readDevLoginEmail() {
26
+ try {
27
+ const value = globalThis.localStorage?.getItem(DEV_LOGIN_EMAIL_STORAGE_KEY);
28
+ return value && value.length > 0 ? value : null;
29
+ }
30
+ catch {
31
+ return null;
32
+ }
33
+ }
34
+ /** Remember `email` for the next dev sign-in. Silently no-ops on failure. */
35
+ export function rememberDevLoginEmail(email) {
36
+ try {
37
+ globalThis.localStorage?.setItem(DEV_LOGIN_EMAIL_STORAGE_KEY, email);
38
+ }
39
+ catch {
40
+ // Storage unavailable — the prefill is optional.
41
+ }
42
+ }
43
+ /**
44
+ * DEV-only affordance rendered ALONGSIDE the OTP email form (CEL-1364).
45
+ *
46
+ * It is strictly additive: the OTP flow above it stays fully reachable and
47
+ * testable, and nothing here auto-submits or auto-redirects. A developer opts
48
+ * in with a click.
49
+ *
50
+ * The component is only ever referenced from inside an
51
+ * `import.meta.env.DEV && …` branch, so production bundles drop the branch and
52
+ * this component with it (the package sets `sideEffects: false`). The two
53
+ * storage helpers above are called from live function bodies behind runtime
54
+ * guards, so they survive as unreachable code — that difference is pinned in
55
+ * `__tests__/dev-bypass-treeshake.test.ts`.
56
+ */
57
+ export function DevSignInBypass({ email, isSubmitting, disabled = false, error, onDevSignIn, }) {
58
+ const headingId = useId();
59
+ const hintId = useId();
60
+ const hasEmail = email.length > 0;
61
+ return (_jsxs("section", { "aria-labelledby": headingId, className: "mt-8 rounded-lg border border-dashed border-border bg-muted/40 p-4", children: [_jsxs("h2", { id: headingId, className: "flex items-center gap-2 text-xs/5 font-semibold uppercase tracking-wide text-muted-foreground", children: [_jsx(FlaskConical, { className: "size-3.5", "aria-hidden": "true" }), "Development only"] }), _jsxs("p", { id: hintId, className: "mt-1.5 text-sm/6 text-muted-foreground", children: ["Sign in as the address above without an emailed code. Requires the API to run with ", _jsx("code", { className: "font-mono", children: "ENABLE_TEST_ENDPOINTS=true" }), " ", "and a local account for that address."] }), _jsxs("button", { type: "button", onClick: onDevSignIn, disabled: disabled || isSubmitting || !hasEmail, "aria-describedby": hintId, className: clsx("mt-3 inline-flex h-10 w-full items-center justify-center gap-2 rounded-md border border-border bg-background px-4 text-sm font-medium text-foreground shadow-xs transition-colors", "hover:bg-muted focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50", "disabled:pointer-events-none disabled:opacity-50"), children: [isSubmitting ? (_jsx(Loader2, { className: "size-4 animate-spin", "aria-hidden": "true" })) : (_jsx(Zap, { className: "size-4", "aria-hidden": "true" })), "Dev sign-in (skip the code)"] }), error && (_jsx("p", { role: "alert", className: "mt-3 text-sm/6 text-destructive", children: error }))] }));
62
+ }
63
+ //# sourceMappingURL=dev-sign-in.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-sign-in.js","sourceRoot":"","sources":["../../src/react/dev-sign-in.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,4BAA4B,CAAC;AAExE;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAC5E,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,IAAI,CAAC;QACH,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;IACnD,CAAC;AACH,CAAC;AAmBD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,YAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,WAAW,GACU;IACrB,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAElC,OAAO,CACL,sCACmB,SAAS,EAC1B,SAAS,EAAC,oEAAoE,aAE9E,cACE,EAAE,EAAE,SAAS,EACb,SAAS,EAAC,+FAA+F,aAEzG,KAAC,YAAY,IAAC,SAAS,EAAC,UAAU,iBAAa,MAAM,GAAG,wBAErD,EAML,aAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAC,wCAAwC,oGAEnD,eAAM,SAAS,EAAC,WAAW,2CAAkC,EAAC,GAAG,6CAE3E,EAEJ,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,IAAI,YAAY,IAAI,CAAC,QAAQ,sBAC7B,MAAM,EACxB,SAAS,EAAE,IAAI,CACb,mLAAmL,EACnL,+FAA+F,EAC/F,kDAAkD,CACnD,aAEA,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,OAAO,IAAC,SAAS,EAAC,qBAAqB,iBAAa,MAAM,GAAG,CAC/D,CAAC,CAAC,CAAC,CACF,KAAC,GAAG,IAAC,SAAS,EAAC,QAAQ,iBAAa,MAAM,GAAG,CAC9C,mCAEM,EAER,KAAK,IAAI,CACR,YAAG,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,iCAAiC,YACxD,KAAK,GACJ,CACL,IACO,CACX,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAYjE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC"}
@@ -1,5 +1,16 @@
1
1
  "use client";
2
2
  export { LoginForm } from "./login-form.js";
3
+ /*
4
+ * `./dev-sign-in.js` is DELIBERATELY not re-exported (CEL-1364).
5
+ *
6
+ * `DevSignInBypass`, `DEV_LOGIN_EMAIL_STORAGE_KEY`, `readDevLoginEmail` and
7
+ * `rememberDevLoginEmail` are internals of `LoginForm`'s
8
+ * `import.meta.env.DEV` branch. Naming them here would hand a consumer a
9
+ * supported way to render the bypass UI, or to persist a sign-in address to
10
+ * `localStorage`, from a PRODUCTION build — the gate lives at the single call
11
+ * site inside `LoginForm`, and an exported symbol has no gate at all.
12
+ * Import the module path directly if you are testing this package.
13
+ */
3
14
  export { RegisterForm } from "./register-form.js";
4
15
  export { UnauthorizedPage, } from "./unauthorized.js";
5
16
  export { SquircleShift } from "./squircle-shift.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,GAGjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,iBAAiB,GAElB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AACjE;;;;;;;;;;GAUG;AACH,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,GAGjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,iBAAiB,GAElB,MAAM,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"login-form.d.ts","sourceRoot":"","sources":["../../src/react/login-form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAW7D,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAatD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,kJAAkJ;IAClJ,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,uIAAuI;IACvI,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,mNAAmN;IACnN,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,KAAK,IAAI,CAAC;CACZ;AAID;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAiBD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,UAAkB,EAClB,YAAiB,EACjB,KAAe,EACf,eAAe,EACf,UAAuE,EACvE,oBAA4B,EAC5B,MAAM,EACN,OAAO,GACR,EAAE,cAAc,2CAqXhB"}
1
+ {"version":3,"file":"login-form.d.ts","sourceRoot":"","sources":["../../src/react/login-form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAW7D,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkBtD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,kJAAkJ;IAClJ,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,uIAAuI;IACvI,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,mNAAmN;IACnN,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,KAAK,IAAI,CAAC;CACZ;AAID;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAiBD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,UAAkB,EAClB,YAAiB,EACjB,KAAe,EACf,eAAe,EACf,UAAuE,EACvE,oBAA4B,EAC5B,MAAM,EACN,OAAO,GACR,EAAE,cAAc,2CAifhB"}
@@ -6,6 +6,7 @@ import { AlertCircle, ArrowLeft, ArrowRight, CheckCircle2, Clock3, Loader2, } fr
6
6
  import { clsx } from "clsx";
7
7
  import { AuthError } from "../types.js";
8
8
  import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, } from "./input-otp-slots.js";
9
+ import { DevSignInBypass, readDevLoginEmail, rememberDevLoginEmail, } from "./dev-sign-in.js";
9
10
  const LazySquircleShift = React.lazy(() => import("./squircle-shift.js").then((m) => ({ default: m.SquircleShift })));
10
11
  /**
11
12
  * Uniform, anti-enumeration notice shown once the email step is submitted
@@ -41,6 +42,23 @@ export function LoginForm({ userType, brandName, authApi, authStore, onLoginSucc
41
42
  const [countdown, setCountdown] = useState("10:00");
42
43
  const [resendCountdown, setResendCountdown] = useState("01:00");
43
44
  const [isShaking, setIsShaking] = useState(false);
45
+ const [devError, setDevError] = useState("");
46
+ const [isDevSubmitting, setIsDevSubmitting] = useState(false);
47
+ // DEV-only email prefill (CEL-1364). Guarded INSIDE the effect so the hook
48
+ // itself stays unconditional; Vite folds `import.meta.env.DEV` to `false` in
49
+ // production, so this body never runs there. (The two tiny storage helpers
50
+ // stay in the bundle as unreachable code — only the `DevSignInBypass`
51
+ // component is statically dropped. See __tests__/dev-bypass-treeshake.)
52
+ useEffect(() => {
53
+ if (!import.meta.env.DEV)
54
+ return;
55
+ if (initialEmail)
56
+ return;
57
+ const remembered = readDevLoginEmail();
58
+ if (!remembered)
59
+ return;
60
+ setEmail((current) => (current.length > 0 ? current : remembered));
61
+ }, [initialEmail]);
44
62
  useEffect(() => {
45
63
  if (!expiresAt)
46
64
  return;
@@ -124,7 +142,7 @@ export function LoginForm({ userType, brandName, authApi, authStore, onLoginSucc
124
142
  const msg = `This portal is for ${userType} accounts only.`;
125
143
  setError(msg);
126
144
  if (onError)
127
- onError({ code: "USER_TYPE_MISMATCH", message: msg, authenticatedUserType: result.user.userType });
145
+ onError({ code: "USER_TYPE_MISMATCH", message: msg, authenticatedUserType: result.user.userType ?? undefined });
128
146
  authStore.clearAccessToken();
129
147
  return;
130
148
  }
@@ -141,6 +159,90 @@ export function LoginForm({ userType, brandName, authApi, authStore, onLoginSucc
141
159
  setIsSubmitting(false);
142
160
  }
143
161
  }
162
+ /**
163
+ * DEV-only bypass (CEL-1364): mint a session straight from `/test/login`.
164
+ *
165
+ * Never auto-runs — it fires only from the dev button's click. On success it
166
+ * applies the SAME portal guard the OTP path applies, so a producer address
167
+ * still can't land inside the importer portal (and vice versa), and it fails
168
+ * CLOSED: an unresolvable user type clears the token instead of standing.
169
+ *
170
+ * Token-adoption ordering matches `handleOtpSubmit` deliberately: both adopt
171
+ * the token first and clear it when the portal check rejects. If that order
172
+ * is ever tightened, tighten BOTH paths — fixing only this one hides the
173
+ * remaining hole in the OTP path.
174
+ *
175
+ * Every exit goes through `setDevError` (rendered as the bypass's `role=
176
+ * "alert"`), including the catch-all: a click handler is not an awaited
177
+ * caller, so anything that escapes here is an unhandled rejection nobody
178
+ * reads.
179
+ */
180
+ async function handleDevLogin() {
181
+ if (!authStore.devLogin)
182
+ return;
183
+ setError("");
184
+ setDevError("");
185
+ setIsDevSubmitting(true);
186
+ try {
187
+ const result = await authStore.devLogin(normalizedEmail);
188
+ if (!result.ok) {
189
+ setDevError(result.message);
190
+ onError?.({
191
+ code: `DEV_LOGIN_${result.reason.replace(/-/g, "_").toUpperCase()}`,
192
+ message: result.message,
193
+ });
194
+ return;
195
+ }
196
+ // Portal guard, mirroring handleOtpSubmit. `verifyOtp` returns the user
197
+ // inline; the dev path has to ask `/auth/me` separately, so an
198
+ // unresolvable answer is a FAILED check, never a pass. Letting it pass
199
+ // would hand a transient `/auth/me` failure the power to seat an importer
200
+ // session inside the producer portal.
201
+ let authenticatedUserType = null;
202
+ try {
203
+ const me = await authApi.getMe(result.accessToken);
204
+ authenticatedUserType = me?.userType ?? null;
205
+ }
206
+ catch {
207
+ authenticatedUserType = null;
208
+ }
209
+ if (!authenticatedUserType) {
210
+ const msg = "Couldn't verify your account type. Try again.";
211
+ authStore.clearAccessToken();
212
+ setDevError(msg);
213
+ onError?.({ code: "DEV_LOGIN_USER_TYPE_UNVERIFIED", message: msg });
214
+ return;
215
+ }
216
+ if (authenticatedUserType !== userType) {
217
+ const msg = `This portal is for ${userType} accounts only.`;
218
+ authStore.clearAccessToken();
219
+ setDevError(msg);
220
+ onError?.({
221
+ code: "USER_TYPE_MISMATCH",
222
+ message: msg,
223
+ authenticatedUserType,
224
+ });
225
+ return;
226
+ }
227
+ rememberDevLoginEmail(normalizedEmail);
228
+ onLoginSuccess();
229
+ }
230
+ catch (err) {
231
+ // `devLogin` is OPTIONAL on `AuthStore`, so a custom implementation is
232
+ // free to REJECT instead of resolving a `DevLoginFailure`; `getMe` is
233
+ // already wrapped, but `clearAccessToken` and `onLoginSuccess` can throw
234
+ // too. Without this catch the rejection escapes the click handler as an
235
+ // unhandled rejection — `finally` still re-enables the button, so the
236
+ // developer sees a form that silently did nothing.
237
+ const detail = err instanceof Error ? err.message : String(err);
238
+ const msg = `Dev sign-in failed unexpectedly: ${detail}`;
239
+ setDevError(msg);
240
+ onError?.({ code: "DEV_LOGIN_UNEXPECTED", message: msg });
241
+ }
242
+ finally {
243
+ setIsDevSubmitting(false);
244
+ }
245
+ }
144
246
  async function handleResend() {
145
247
  setError("");
146
248
  setIsSubmitting(true);
@@ -162,7 +264,7 @@ export function LoginForm({ userType, brandName, authApi, authStore, onLoginSucc
162
264
  ? "Enter your work email to receive a one-time access code."
163
265
  : otpSentNotice(normalizedEmail) }), _jsx("div", { className: "mt-8", children: step === "email" ? (_jsxs("form", { onSubmit: handleEmailSubmit, className: "grid gap-5", children: [_jsxs("div", { className: "grid gap-2", children: [_jsx("label", { htmlFor: "email", className: "text-sm font-medium leading-none", children: "Email address" }), _jsx("input", { id: "email", type: "email", placeholder: "you@company.com", value: email, onChange: (event) => setEmail(event.target.value), required: true, "aria-invalid": !!error || undefined, className: clsx("flex h-10 w-full rounded-md border bg-background px-3 py-2 text-sm shadow-xs placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 transition-colors", error
164
266
  ? "border-destructive focus-visible:ring-destructive/30 focus-visible:border-destructive"
165
- : "border-input focus-visible:ring-ring/50 focus-visible:border-ring") }), error && !onError && (_jsxs("div", { className: "flex items-start gap-2 text-sm text-destructive", children: [_jsx(AlertCircle, { className: "size-4 shrink-0 mt-0.5" }), _jsx("span", { children: error })] }))] }), _jsxs("button", { type: "submit", className: "inline-flex h-11 w-full items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground shadow-xs transition-colors hover:bg-primary/90 disabled:pointer-events-none disabled:opacity-50", disabled: isSubmitting || !normalizedEmail, children: [isSubmitting ? (_jsx(Loader2, { className: "mr-2 size-4 animate-spin" })) : (_jsx(ArrowRight, { className: "mr-2 size-4" })), "Continue"] })] })) : (_jsxs("form", { id: "otp-form", onSubmit: handleOtpSubmit, className: "grid gap-5", children: [_jsx("div", { className: "flex justify-center", children: _jsxs("div", { className: "inline-flex items-center gap-1.5 rounded-full border border-border bg-muted/50 px-3 py-1 text-xs font-medium text-muted-foreground", children: [_jsx(Clock3, { className: "size-3" }), "Expires in ", countdown] }) }), _jsxs("div", { className: "grid gap-2", children: [_jsxs(InputOTP, { id: "otp", value: code, onChange: (value) => {
267
+ : "border-input focus-visible:ring-ring/50 focus-visible:border-ring") }), error && !onError && (_jsxs("div", { className: "flex items-start gap-2 text-sm text-destructive", children: [_jsx(AlertCircle, { className: "size-4 shrink-0 mt-0.5" }), _jsx("span", { children: error })] }))] }), _jsxs("button", { type: "submit", className: "inline-flex h-11 w-full items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground shadow-xs transition-colors hover:bg-primary/90 disabled:pointer-events-none disabled:opacity-50", disabled: isSubmitting || isDevSubmitting || !normalizedEmail, children: [isSubmitting ? (_jsx(Loader2, { className: "mr-2 size-4 animate-spin" })) : (_jsx(ArrowRight, { className: "mr-2 size-4" })), "Continue"] })] })) : (_jsxs("form", { id: "otp-form", onSubmit: handleOtpSubmit, className: "grid gap-5", children: [_jsx("div", { className: "flex justify-center", children: _jsxs("div", { className: "inline-flex items-center gap-1.5 rounded-full border border-border bg-muted/50 px-3 py-1 text-xs font-medium text-muted-foreground", children: [_jsx(Clock3, { className: "size-3" }), "Expires in ", countdown] }) }), _jsxs("div", { className: "grid gap-2", children: [_jsxs(InputOTP, { id: "otp", value: code, onChange: (value) => {
166
268
  setCode(value);
167
269
  if (error)
168
270
  setError("");
@@ -173,6 +275,6 @@ export function LoginForm({ userType, brandName, authApi, authStore, onLoginSucc
173
275
  setStep("email");
174
276
  setCode("");
175
277
  setError("");
176
- }, children: _jsxs("span", { className: "inline-flex items-center gap-1", children: [_jsx(ArrowLeft, { className: "size-3.5" }), "Change email"] }) }), _jsx("button", { type: "button", className: "text-primary transition-colors hover:text-primary/80 disabled:text-muted-foreground/50", onClick: handleResend, disabled: isSubmitting || !canResend, children: canResend ? "Resend code" : `Resend in ${resendCountdown}` })] })] })) }), step === "email" && (_jsx("p", { className: "mt-8 text-center text-sm text-muted-foreground", children: showRegisterInFooter && onNavigateRegister ? (_jsxs(_Fragment, { children: ["Need an account?", " ", _jsx("button", { type: "button", onClick: onNavigateRegister, className: "text-primary transition-colors hover:text-primary/80", children: "Register here" })] })) : (footerText) }))] }) })] }), _jsx("div", { className: "hidden lg:block", children: _jsx(Suspense, { fallback: _jsx("div", { className: "size-full bg-muted" }), children: _jsx(LazySquircleShift, { className: "size-full", theme: theme }) }) })] }));
278
+ }, children: _jsxs("span", { className: "inline-flex items-center gap-1", children: [_jsx(ArrowLeft, { className: "size-3.5" }), "Change email"] }) }), _jsx("button", { type: "button", className: "text-primary transition-colors hover:text-primary/80 disabled:text-muted-foreground/50", onClick: handleResend, disabled: isSubmitting || !canResend, children: canResend ? "Resend code" : `Resend in ${resendCountdown}` })] })] })) }), import.meta.env.DEV && step === "email" && authStore.devLogin && (_jsx(DevSignInBypass, { email: normalizedEmail, isSubmitting: isDevSubmitting, disabled: isSubmitting, error: devError, onDevSignIn: handleDevLogin })), step === "email" && (_jsx("p", { className: "mt-8 text-center text-sm text-muted-foreground", children: showRegisterInFooter && onNavigateRegister ? (_jsxs(_Fragment, { children: ["Need an account?", " ", _jsx("button", { type: "button", onClick: onNavigateRegister, className: "text-primary transition-colors hover:text-primary/80", children: "Register here" })] })) : (footerText) }))] }) })] }), _jsx("div", { className: "hidden lg:block", children: _jsx(Suspense, { fallback: _jsx("div", { className: "size-full bg-muted" }), children: _jsx(LazySquircleShift, { className: "size-full", theme: theme }) }) })] }));
177
279
  }
178
280
  //# sourceMappingURL=login-form.js.map