@authsome/ui-core 0.1.3 → 0.1.4

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/index.mjs CHANGED
@@ -552,6 +552,106 @@ var TokenManager = class {
552
552
  }
553
553
  };
554
554
 
555
+ // src/utils/cookies.ts
556
+ function parseCookie(setCookieHeader) {
557
+ if (!setCookieHeader) return null;
558
+ const parts = setCookieHeader.split(";").map((p) => p.trim());
559
+ if (parts.length === 0) return null;
560
+ const [nameValue] = parts;
561
+ const [name, value] = nameValue.split("=");
562
+ if (!name || value === void 0) return null;
563
+ const cookieData = { name, value };
564
+ const options = {};
565
+ for (let i = 1; i < parts.length; i++) {
566
+ const part = parts[i];
567
+ const lowerPart = part.toLowerCase();
568
+ if (lowerPart === "httponly") {
569
+ options.httpOnly = true;
570
+ } else if (lowerPart === "secure") {
571
+ options.secure = true;
572
+ } else if (lowerPart.startsWith("path=")) {
573
+ options.path = part.substring(5);
574
+ } else if (lowerPart.startsWith("domain=")) {
575
+ options.domain = part.substring(7);
576
+ } else if (lowerPart.startsWith("max-age=")) {
577
+ const maxAge = parseInt(part.substring(8), 10);
578
+ if (!isNaN(maxAge)) {
579
+ options.maxAge = maxAge;
580
+ }
581
+ } else if (lowerPart.startsWith("expires=")) {
582
+ const expiresStr = part.substring(8);
583
+ const expiresDate = new Date(expiresStr);
584
+ if (!isNaN(expiresDate.getTime())) {
585
+ options.expires = expiresDate;
586
+ }
587
+ } else if (lowerPart.startsWith("samesite=")) {
588
+ const sameSiteValue = lowerPart.substring(9);
589
+ if (sameSiteValue === "strict" || sameSiteValue === "lax" || sameSiteValue === "none") {
590
+ options.sameSite = sameSiteValue;
591
+ }
592
+ }
593
+ }
594
+ if (Object.keys(options).length > 0) {
595
+ cookieData.options = options;
596
+ }
597
+ return cookieData;
598
+ }
599
+ function extractCookiesFromHeaders(setCookieHeaders) {
600
+ const headers = Array.isArray(setCookieHeaders) ? setCookieHeaders : [setCookieHeaders];
601
+ const cookies = [];
602
+ for (const header of headers) {
603
+ const cookie = parseCookie(header);
604
+ if (cookie) {
605
+ cookies.push(cookie);
606
+ }
607
+ }
608
+ return cookies;
609
+ }
610
+ function serializeCookie(cookie) {
611
+ const parts = [`${cookie.name}=${cookie.value}`];
612
+ if (cookie.options) {
613
+ const opts = cookie.options;
614
+ if (opts.path) {
615
+ parts.push(`Path=${opts.path}`);
616
+ }
617
+ if (opts.domain) {
618
+ parts.push(`Domain=${opts.domain}`);
619
+ }
620
+ if (opts.expires) {
621
+ parts.push(`Expires=${opts.expires.toUTCString()}`);
622
+ }
623
+ if (opts.maxAge !== void 0) {
624
+ parts.push(`Max-Age=${opts.maxAge}`);
625
+ }
626
+ if (opts.httpOnly) {
627
+ parts.push("HttpOnly");
628
+ }
629
+ if (opts.secure) {
630
+ parts.push("Secure");
631
+ }
632
+ if (opts.sameSite) {
633
+ const sameSite = opts.sameSite.charAt(0).toUpperCase() + opts.sameSite.slice(1);
634
+ parts.push(`SameSite=${sameSite}`);
635
+ }
636
+ }
637
+ return parts.join("; ");
638
+ }
639
+ function parseCookieOptions(cookieHeader) {
640
+ const cookies = {};
641
+ if (!cookieHeader) return cookies;
642
+ const pairs = cookieHeader.split(";").map((p) => p.trim());
643
+ for (const pair of pairs) {
644
+ const [name, value] = pair.split("=");
645
+ if (name && value !== void 0) {
646
+ cookies[name.trim()] = value.trim();
647
+ }
648
+ }
649
+ return cookies;
650
+ }
651
+ function serializeCookies(cookies) {
652
+ return Object.entries(cookies).map(([key, value]) => `${key}=${value}`).join("; ");
653
+ }
654
+
555
655
  // src/adapters/base-provider.ts
556
656
  var BaseAuthProvider = class {
557
657
  constructor() {
@@ -1584,6 +1684,6 @@ var predefinedFlows = {
1584
1684
  ["password_reset_flow" /* PASSWORD_RESET_FLOW */]: passwordResetFlow
1585
1685
  };
1586
1686
 
1587
- export { AuthClient, AuthError, AuthErrorType, AuthState, BaseAuthProvider, FlowAction, FlowConfigType, FlowEngine, FlowStep, LocalStorageAdapter, MemoryStorageAdapter, OAuthProvider, Observable, SessionStorageAdapter, TokenManager, TwoFactorMethod, completeSignUpFlow, createAuthError, createLocale, defaultLocale, getFlowConfig, interpolate, isAuthError, isMFARequiredError, isNetworkError, isUnauthenticatedError, magicLinkFlow, oauthSignInFlow, passwordResetFlow, phoneAuthFlow, predefinedFlows, signInWithMFAFlow, simpleSignInFlow, toAuthError, validate2FACode, validateEmail, validatePassword, validatePhone, validateRequired, validateUsername };
1687
+ export { AuthClient, AuthError, AuthErrorType, AuthState, BaseAuthProvider, FlowAction, FlowConfigType, FlowEngine, FlowStep, LocalStorageAdapter, MemoryStorageAdapter, OAuthProvider, Observable, SessionStorageAdapter, TokenManager, TwoFactorMethod, completeSignUpFlow, createAuthError, createLocale, defaultLocale, extractCookiesFromHeaders, getFlowConfig, interpolate, isAuthError, isMFARequiredError, isNetworkError, isUnauthenticatedError, magicLinkFlow, oauthSignInFlow, parseCookie, parseCookieOptions, passwordResetFlow, phoneAuthFlow, predefinedFlows, serializeCookie, serializeCookies, signInWithMFAFlow, simpleSignInFlow, toAuthError, validate2FACode, validateEmail, validatePassword, validatePhone, validateRequired, validateUsername };
1588
1688
  //# sourceMappingURL=index.mjs.map
1589
1689
  //# sourceMappingURL=index.mjs.map