@propelauth/nextjs 0.0.111 → 0.0.112-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/index.d.ts +40 -2
- package/dist/client/index.js +122 -15
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +122 -15
- package/dist/client/index.mjs.map +1 -1
- package/dist/server/app-router/index.d.ts +34 -2
- package/dist/server/app-router/index.js +201 -35
- package/dist/server/app-router/index.js.map +1 -1
- package/dist/server/app-router/index.mjs +201 -35
- package/dist/server/app-router/index.mjs.map +1 -1
- package/dist/server/index.d.ts +32 -1
- package/dist/server/index.js +36 -15
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +36 -15
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/pages/index.d.ts +32 -1
- package/dist/server/pages/index.js +51 -23
- package/dist/server/pages/index.js.map +1 -1
- package/dist/server/pages/index.mjs +51 -23
- package/dist/server/pages/index.mjs.map +1 -1
- package/package.json +1 -1
| @@ -42,8 +42,9 @@ import { NextResponse } from "next/server.js"; | |
| 42 42 |  | 
| 43 43 | 
             
            // src/user.ts
         | 
| 44 44 | 
             
            var UserFromToken = class {
         | 
| 45 | 
            -
              constructor(userId, email, orgIdToOrgMemberInfo, firstName, lastName, username, legacyUserId, impersonatorUserId, properties) {
         | 
| 45 | 
            +
              constructor(userId, email, orgIdToOrgMemberInfo, firstName, lastName, username, legacyUserId, impersonatorUserId, properties, activeOrgId) {
         | 
| 46 46 | 
             
                this.userId = userId;
         | 
| 47 | 
            +
                this.activeOrgId = activeOrgId;
         | 
| 47 48 | 
             
                this.orgIdToOrgMemberInfo = orgIdToOrgMemberInfo;
         | 
| 48 49 | 
             
                this.email = email;
         | 
| 49 50 | 
             
                this.firstName = firstName;
         | 
| @@ -53,6 +54,15 @@ var UserFromToken = class { | |
| 53 54 | 
             
                this.impersonatorUserId = impersonatorUserId;
         | 
| 54 55 | 
             
                this.properties = properties;
         | 
| 55 56 | 
             
              }
         | 
| 57 | 
            +
              getActiveOrg() {
         | 
| 58 | 
            +
                if (!this.activeOrgId || !this.orgIdToOrgMemberInfo) {
         | 
| 59 | 
            +
                  return void 0;
         | 
| 60 | 
            +
                }
         | 
| 61 | 
            +
                return this.orgIdToOrgMemberInfo[this.activeOrgId];
         | 
| 62 | 
            +
              }
         | 
| 63 | 
            +
              getActiveOrgId() {
         | 
| 64 | 
            +
                return this.activeOrgId;
         | 
| 65 | 
            +
              }
         | 
| 56 66 | 
             
              getOrg(orgId) {
         | 
| 57 67 | 
             
                if (!this.orgIdToOrgMemberInfo) {
         | 
| 58 68 | 
             
                  return void 0;
         | 
| @@ -85,9 +95,7 @@ var UserFromToken = class { | |
| 85 95 | 
             
                const obj = JSON.parse(json);
         | 
| 86 96 | 
             
                const orgIdToOrgMemberInfo = {};
         | 
| 87 97 | 
             
                for (const orgId in obj.orgIdToOrgMemberInfo) {
         | 
| 88 | 
            -
                  orgIdToOrgMemberInfo[orgId] = OrgMemberInfo.fromJSON(
         | 
| 89 | 
            -
                    JSON.stringify(obj.orgIdToOrgMemberInfo[orgId])
         | 
| 90 | 
            -
                  );
         | 
| 98 | 
            +
                  orgIdToOrgMemberInfo[orgId] = OrgMemberInfo.fromJSON(JSON.stringify(obj.orgIdToOrgMemberInfo[orgId]));
         | 
| 91 99 | 
             
                }
         | 
| 92 100 | 
             
                return new UserFromToken(
         | 
| 93 101 | 
             
                  obj.userId,
         | 
| @@ -101,6 +109,29 @@ var UserFromToken = class { | |
| 101 109 | 
             
                  obj.properties
         | 
| 102 110 | 
             
                );
         | 
| 103 111 | 
             
              }
         | 
| 112 | 
            +
              static fromJwtPayload(payload) {
         | 
| 113 | 
            +
                let activeOrgId;
         | 
| 114 | 
            +
                let orgIdToOrgMemberInfo;
         | 
| 115 | 
            +
                if (payload.org_member_info) {
         | 
| 116 | 
            +
                  activeOrgId = payload.org_member_info.org_id;
         | 
| 117 | 
            +
                  orgIdToOrgMemberInfo = toOrgIdToOrgMemberInfo({ [activeOrgId]: payload.org_member_info });
         | 
| 118 | 
            +
                } else {
         | 
| 119 | 
            +
                  activeOrgId = void 0;
         | 
| 120 | 
            +
                  orgIdToOrgMemberInfo = toOrgIdToOrgMemberInfo(payload.org_id_to_org_member_info);
         | 
| 121 | 
            +
                }
         | 
| 122 | 
            +
                return new UserFromToken(
         | 
| 123 | 
            +
                  payload.user_id,
         | 
| 124 | 
            +
                  payload.email,
         | 
| 125 | 
            +
                  orgIdToOrgMemberInfo,
         | 
| 126 | 
            +
                  payload.first_name,
         | 
| 127 | 
            +
                  payload.last_name,
         | 
| 128 | 
            +
                  payload.username,
         | 
| 129 | 
            +
                  payload.legacy_user_id,
         | 
| 130 | 
            +
                  payload.impersonatorUserId,
         | 
| 131 | 
            +
                  payload.properties,
         | 
| 132 | 
            +
                  activeOrgId
         | 
| 133 | 
            +
                );
         | 
| 134 | 
            +
              }
         | 
| 104 135 | 
             
            };
         | 
| 105 136 | 
             
            var OrgMemberInfo = class {
         | 
| 106 137 | 
             
              constructor(orgId, orgName, orgMetadata, urlSafeOrgName, userAssignedRole, userInheritedRolesPlusCurrentRole, userPermissions) {
         | 
| @@ -149,17 +180,7 @@ var OrgMemberInfo = class { | |
| 149 180 | 
             
              }
         | 
| 150 181 | 
             
            };
         | 
| 151 182 | 
             
            function toUser(snake_case) {
         | 
| 152 | 
            -
              return  | 
| 153 | 
            -
                snake_case.user_id,
         | 
| 154 | 
            -
                snake_case.email,
         | 
| 155 | 
            -
                toOrgIdToOrgMemberInfo(snake_case.org_id_to_org_member_info),
         | 
| 156 | 
            -
                snake_case.first_name,
         | 
| 157 | 
            -
                snake_case.last_name,
         | 
| 158 | 
            -
                snake_case.username,
         | 
| 159 | 
            -
                snake_case.legacy_user_id,
         | 
| 160 | 
            -
                snake_case.impersonatorUserId,
         | 
| 161 | 
            -
                snake_case.properties
         | 
| 162 | 
            -
              );
         | 
| 183 | 
            +
              return UserFromToken.fromJwtPayload(snake_case);
         | 
| 163 184 | 
             
            }
         | 
| 164 185 | 
             
            function toOrgIdToOrgMemberInfo(snake_case) {
         | 
| 165 186 | 
             
              if (snake_case === void 0) {
         | 
| @@ -231,12 +252,17 @@ function getVerifierKey() { | |
| 231 252 | 
             
              }
         | 
| 232 253 | 
             
              return verifierKey.replace(/\\n/g, "\n");
         | 
| 233 254 | 
             
            }
         | 
| 234 | 
            -
            function refreshTokenWithAccessAndRefreshToken(refreshToken) {
         | 
| 255 | 
            +
            function refreshTokenWithAccessAndRefreshToken(refreshToken, activeOrgId) {
         | 
| 235 256 | 
             
              return __async(this, null, function* () {
         | 
| 236 257 | 
             
                const body = {
         | 
| 237 258 | 
             
                  refresh_token: refreshToken
         | 
| 238 259 | 
             
                };
         | 
| 239 | 
            -
                const  | 
| 260 | 
            +
                const queryParams = new URLSearchParams();
         | 
| 261 | 
            +
                if (activeOrgId) {
         | 
| 262 | 
            +
                  queryParams.set("with_active_org_support", "true");
         | 
| 263 | 
            +
                  queryParams.set("active_org_id", activeOrgId);
         | 
| 264 | 
            +
                }
         | 
| 265 | 
            +
                const url = `${getAuthUrlOrigin()}/api/backend/v1/refresh_token?${queryParams.toString()}`;
         | 
| 240 266 | 
             
                const response = yield fetch(url, {
         | 
| 241 267 | 
             
                  method: "POST",
         | 
| 242 268 | 
             
                  body: JSON.stringify(body),
         | 
| @@ -248,10 +274,7 @@ function refreshTokenWithAccessAndRefreshToken(refreshToken) { | |
| 248 274 | 
             
                if (response.ok) {
         | 
| 249 275 | 
             
                  const data = yield response.json();
         | 
| 250 276 | 
             
                  const newRefreshToken = data.refresh_token;
         | 
| 251 | 
            -
                  const {
         | 
| 252 | 
            -
                    access_token: accessToken,
         | 
| 253 | 
            -
                    expires_at_seconds: expiresAtSeconds
         | 
| 254 | 
            -
                  } = data.access_token;
         | 
| 277 | 
            +
                  const { access_token: accessToken, expires_at_seconds: expiresAtSeconds } = data.access_token;
         | 
| 255 278 | 
             
                  return {
         | 
| 256 279 | 
             
                    refreshToken: newRefreshToken,
         | 
| 257 280 | 
             
                    accessToken,
         | 
| @@ -312,6 +335,9 @@ function validateAccessToken(accessToken) { | |
| 312 335 | 
             
              });
         | 
| 313 336 | 
             
            }
         | 
| 314 337 |  | 
| 338 | 
            +
            // src/shared.ts
         | 
| 339 | 
            +
            var ACTIVE_ORG_ID_COOKIE_NAME = "__pa_org_id";
         | 
| 340 | 
            +
             | 
| 315 341 | 
             
            // src/server/app-router.ts
         | 
| 316 342 | 
             
            function getUserOrRedirect() {
         | 
| 317 343 | 
             
              return __async(this, null, function* () {
         | 
| @@ -326,8 +352,7 @@ function getUserOrRedirect() { | |
| 326 352 | 
             
            }
         | 
| 327 353 | 
             
            function getUser() {
         | 
| 328 354 | 
             
              return __async(this, null, function* () {
         | 
| 329 | 
            -
                 | 
| 330 | 
            -
                const accessToken = headers().get(CUSTOM_HEADER_FOR_ACCESS_TOKEN) || ((_a = cookies().get(ACCESS_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value);
         | 
| 355 | 
            +
                const accessToken = getAccessToken();
         | 
| 331 356 | 
             
                if (accessToken) {
         | 
| 332 357 | 
             
                  const user = yield validateAccessTokenOrUndefined(accessToken);
         | 
| 333 358 | 
             
                  if (user) {
         | 
| @@ -338,14 +363,12 @@ function getUser() { | |
| 338 363 | 
             
              });
         | 
| 339 364 | 
             
            }
         | 
| 340 365 | 
             
            function getAccessToken() {
         | 
| 341 | 
            -
               | 
| 342 | 
            -
             | 
| 343 | 
            -
                return headers().get(CUSTOM_HEADER_FOR_ACCESS_TOKEN) || ((_a = cookies().get(ACCESS_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value);
         | 
| 344 | 
            -
              });
         | 
| 366 | 
            +
              var _a;
         | 
| 367 | 
            +
              return headers().get(CUSTOM_HEADER_FOR_ACCESS_TOKEN) || ((_a = cookies().get(ACCESS_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value);
         | 
| 345 368 | 
             
            }
         | 
| 346 369 | 
             
            function authMiddleware(req) {
         | 
| 347 370 | 
             
              return __async(this, null, function* () {
         | 
| 348 | 
            -
                var _a, _b;
         | 
| 371 | 
            +
                var _a, _b, _c;
         | 
| 349 372 | 
             
                if (req.headers.has(CUSTOM_HEADER_FOR_ACCESS_TOKEN)) {
         | 
| 350 373 | 
             
                  throw new Error(`${CUSTOM_HEADER_FOR_ACCESS_TOKEN} is set which is for internal use only`);
         | 
| 351 374 | 
             
                } else if (req.nextUrl.pathname === CALLBACK_PATH || req.nextUrl.pathname === LOGOUT_PATH || req.nextUrl.pathname === USERINFO_PATH) {
         | 
| @@ -353,6 +376,7 @@ function authMiddleware(req) { | |
| 353 376 | 
             
                }
         | 
| 354 377 | 
             
                const accessToken = (_a = req.cookies.get(ACCESS_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value;
         | 
| 355 378 | 
             
                const refreshToken = (_b = req.cookies.get(REFRESH_TOKEN_COOKIE_NAME)) == null ? void 0 : _b.value;
         | 
| 379 | 
            +
                const activeOrgId = (_c = req.cookies.get(ACTIVE_ORG_ID_COOKIE_NAME)) == null ? void 0 : _c.value;
         | 
| 356 380 | 
             
                if (accessToken) {
         | 
| 357 381 | 
             
                  const user = yield validateAccessTokenOrUndefined(accessToken);
         | 
| 358 382 | 
             
                  if (user) {
         | 
| @@ -360,7 +384,7 @@ function authMiddleware(req) { | |
| 360 384 | 
             
                  }
         | 
| 361 385 | 
             
                }
         | 
| 362 386 | 
             
                if (refreshToken) {
         | 
| 363 | 
            -
                  const response = yield refreshTokenWithAccessAndRefreshToken(refreshToken);
         | 
| 387 | 
            +
                  const response = yield refreshTokenWithAccessAndRefreshToken(refreshToken, activeOrgId);
         | 
| 364 388 | 
             
                  if (response.error === "unexpected") {
         | 
| 365 389 | 
             
                    throw new Error("Unexpected error while refreshing access token");
         | 
| 366 390 | 
             
                  } else if (response.error === "unauthorized") {
         | 
| @@ -421,7 +445,7 @@ function getRouteHandlers(args) { | |
| 421 445 | 
             
              }
         | 
| 422 446 | 
             
              function callbackGetHandler(req) {
         | 
| 423 447 | 
             
                return __async(this, null, function* () {
         | 
| 424 | 
            -
                  var _a, _b;
         | 
| 448 | 
            +
                  var _a, _b, _c;
         | 
| 425 449 | 
             
                  const oauthState = (_a = req.cookies.get(STATE_COOKIE_NAME)) == null ? void 0 : _a.value;
         | 
| 426 450 | 
             
                  if (!oauthState || oauthState.length !== 64) {
         | 
| 427 451 | 
             
                    return new Response(null, { status: 302, headers: { Location: LOGIN_PATH } });
         | 
| @@ -457,6 +481,49 @@ function getRouteHandlers(args) { | |
| 457 481 | 
             
                      console.error("postLoginRedirectPathFn returned undefined");
         | 
| 458 482 | 
             
                      return new Response("Unexpected error", { status: 500 });
         | 
| 459 483 | 
             
                    }
         | 
| 484 | 
            +
                    const currentActiveOrgId = (_c = req.cookies.get(ACTIVE_ORG_ID_COOKIE_NAME)) == null ? void 0 : _c.value;
         | 
| 485 | 
            +
                    const user = yield validateAccessToken(accessToken);
         | 
| 486 | 
            +
                    const isUserInCurrentActiveOrg = !!currentActiveOrgId && !!user.getOrg(currentActiveOrgId);
         | 
| 487 | 
            +
                    let activeOrgId = void 0;
         | 
| 488 | 
            +
                    if (isUserInCurrentActiveOrg) {
         | 
| 489 | 
            +
                      activeOrgId = currentActiveOrgId;
         | 
| 490 | 
            +
                    } else if (args == null ? void 0 : args.getDefaultActiveOrgId) {
         | 
| 491 | 
            +
                      activeOrgId = args.getDefaultActiveOrgId(req, user);
         | 
| 492 | 
            +
                    }
         | 
| 493 | 
            +
                    if (activeOrgId) {
         | 
| 494 | 
            +
                      const response2 = yield refreshTokenWithAccessAndRefreshToken(data.refresh_token, activeOrgId);
         | 
| 495 | 
            +
                      if (response2.error === "unexpected") {
         | 
| 496 | 
            +
                        throw new Error("Unexpected error while setting active org");
         | 
| 497 | 
            +
                      } else if (response2.error === "unauthorized") {
         | 
| 498 | 
            +
                        console.error(
         | 
| 499 | 
            +
                          "Unauthorized error while setting active org. Your user may not have access to this org"
         | 
| 500 | 
            +
                        );
         | 
| 501 | 
            +
                        return new Response("Unauthorized", { status: 401 });
         | 
| 502 | 
            +
                      } else {
         | 
| 503 | 
            +
                        const headers3 = new Headers();
         | 
| 504 | 
            +
                        headers3.append("Location", returnToPath);
         | 
| 505 | 
            +
                        headers3.append(
         | 
| 506 | 
            +
                          "Set-Cookie",
         | 
| 507 | 
            +
                          `${ACCESS_TOKEN_COOKIE_NAME}=${response2.accessToken}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 508 | 
            +
                        );
         | 
| 509 | 
            +
                        headers3.append(
         | 
| 510 | 
            +
                          "Set-Cookie",
         | 
| 511 | 
            +
                          `${REFRESH_TOKEN_COOKIE_NAME}=${response2.refreshToken}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 512 | 
            +
                        );
         | 
| 513 | 
            +
                        headers3.append(
         | 
| 514 | 
            +
                          "Set-Cookie",
         | 
| 515 | 
            +
                          `${ACTIVE_ORG_ID_COOKIE_NAME}=${activeOrgId}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 516 | 
            +
                        );
         | 
| 517 | 
            +
                        headers3.append(
         | 
| 518 | 
            +
                          "Set-Cookie",
         | 
| 519 | 
            +
                          `${RETURN_TO_PATH_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 520 | 
            +
                        );
         | 
| 521 | 
            +
                        return new Response(null, {
         | 
| 522 | 
            +
                          status: 302,
         | 
| 523 | 
            +
                          headers: headers3
         | 
| 524 | 
            +
                        });
         | 
| 525 | 
            +
                      }
         | 
| 526 | 
            +
                    }
         | 
| 460 527 | 
             
                    const headers2 = new Headers();
         | 
| 461 528 | 
             
                    headers2.append("Location", returnToPath);
         | 
| 462 529 | 
             
                    headers2.append(
         | 
| @@ -467,6 +534,10 @@ function getRouteHandlers(args) { | |
| 467 534 | 
             
                      "Set-Cookie",
         | 
| 468 535 | 
             
                      `${REFRESH_TOKEN_COOKIE_NAME}=${data.refresh_token}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 469 536 | 
             
                    );
         | 
| 537 | 
            +
                    headers2.append(
         | 
| 538 | 
            +
                      "Set-Cookie",
         | 
| 539 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 540 | 
            +
                    );
         | 
| 470 541 | 
             
                    headers2.append(
         | 
| 471 542 | 
             
                      "Set-Cookie",
         | 
| 472 543 | 
             
                      `${RETURN_TO_PATH_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| @@ -487,10 +558,11 @@ function getRouteHandlers(args) { | |
| 487 558 | 
             
              }
         | 
| 488 559 | 
             
              function userinfoGetHandler(req) {
         | 
| 489 560 | 
             
                return __async(this, null, function* () {
         | 
| 490 | 
            -
                  var _a;
         | 
| 561 | 
            +
                  var _a, _b;
         | 
| 491 562 | 
             
                  const oldRefreshToken = (_a = req.cookies.get(REFRESH_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value;
         | 
| 563 | 
            +
                  const activeOrgId = (_b = req.cookies.get(ACTIVE_ORG_ID_COOKIE_NAME)) == null ? void 0 : _b.value;
         | 
| 492 564 | 
             
                  if (oldRefreshToken) {
         | 
| 493 | 
            -
                    const refreshResponse = yield refreshTokenWithAccessAndRefreshToken(oldRefreshToken);
         | 
| 565 | 
            +
                    const refreshResponse = yield refreshTokenWithAccessAndRefreshToken(oldRefreshToken, activeOrgId);
         | 
| 494 566 | 
             
                    if (refreshResponse.error === "unexpected") {
         | 
| 495 567 | 
             
                      throw new Error("Unexpected error while refreshing access token");
         | 
| 496 568 | 
             
                    } else if (refreshResponse.error === "unauthorized") {
         | 
| @@ -503,6 +575,10 @@ function getRouteHandlers(args) { | |
| 503 575 | 
             
                        "Set-Cookie",
         | 
| 504 576 | 
             
                        `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 505 577 | 
             
                      );
         | 
| 578 | 
            +
                      headers3.append(
         | 
| 579 | 
            +
                        "Set-Cookie",
         | 
| 580 | 
            +
                        `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 581 | 
            +
                      );
         | 
| 506 582 | 
             
                      return new Response("Unauthorized", { status: 401, headers: headers3 });
         | 
| 507 583 | 
             
                    }
         | 
| 508 584 | 
             
                    const refreshToken = refreshResponse.refreshToken;
         | 
| @@ -521,7 +597,8 @@ function getRouteHandlers(args) { | |
| 521 597 | 
             
                      const jsonResponse = {
         | 
| 522 598 | 
             
                        userinfo: data,
         | 
| 523 599 | 
             
                        accessToken,
         | 
| 524 | 
            -
                        impersonatorUserId: userFromToken.impersonatorUserId
         | 
| 600 | 
            +
                        impersonatorUserId: userFromToken.impersonatorUserId,
         | 
| 601 | 
            +
                        activeOrgId
         | 
| 525 602 | 
             
                      };
         | 
| 526 603 | 
             
                      const headers3 = new Headers();
         | 
| 527 604 | 
             
                      headers3.append(
         | 
| @@ -547,6 +624,10 @@ function getRouteHandlers(args) { | |
| 547 624 | 
             
                        "Set-Cookie",
         | 
| 548 625 | 
             
                        `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 549 626 | 
             
                      );
         | 
| 627 | 
            +
                      headers3.append(
         | 
| 628 | 
            +
                        "Set-Cookie",
         | 
| 629 | 
            +
                        `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 630 | 
            +
                      );
         | 
| 550 631 | 
             
                      return new Response(null, {
         | 
| 551 632 | 
             
                        status: 401,
         | 
| 552 633 | 
             
                        headers: headers3
         | 
| @@ -558,12 +639,13 @@ function getRouteHandlers(args) { | |
| 558 639 | 
             
                  const headers2 = new Headers();
         | 
| 559 640 | 
             
                  headers2.append("Set-Cookie", `${ACCESS_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 560 641 | 
             
                  headers2.append("Set-Cookie", `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 642 | 
            +
                  headers2.append("Set-Cookie", `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 561 643 | 
             
                  return new Response(null, { status: 401 });
         | 
| 562 644 | 
             
                });
         | 
| 563 645 | 
             
              }
         | 
| 564 646 | 
             
              function logoutGetHandler(req) {
         | 
| 565 647 | 
             
                return __async(this, null, function* () {
         | 
| 566 | 
            -
                  var _a;
         | 
| 648 | 
            +
                  var _a, _b;
         | 
| 567 649 | 
             
                  const path = (args == null ? void 0 : args.postLoginRedirectPathFn) ? args.postLoginRedirectPathFn(req) : "/";
         | 
| 568 650 | 
             
                  if (!path) {
         | 
| 569 651 | 
             
                    console.error("postLoginPathFn returned undefined");
         | 
| @@ -581,12 +663,17 @@ function getRouteHandlers(args) { | |
| 581 663 | 
             
                      "Set-Cookie",
         | 
| 582 664 | 
             
                      `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 583 665 | 
             
                    );
         | 
| 666 | 
            +
                    headers2.append(
         | 
| 667 | 
            +
                      "Set-Cookie",
         | 
| 668 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 669 | 
            +
                    );
         | 
| 584 670 | 
             
                    return new Response(null, {
         | 
| 585 671 | 
             
                      status: 302,
         | 
| 586 672 | 
             
                      headers: headers2
         | 
| 587 673 | 
             
                    });
         | 
| 588 674 | 
             
                  }
         | 
| 589 | 
            -
                  const  | 
| 675 | 
            +
                  const activeOrgId = (_b = req.cookies.get(ACTIVE_ORG_ID_COOKIE_NAME)) == null ? void 0 : _b.value;
         | 
| 676 | 
            +
                  const refreshResponse = yield refreshTokenWithAccessAndRefreshToken(refreshToken, activeOrgId);
         | 
| 590 677 | 
             
                  if (refreshResponse.error === "unexpected") {
         | 
| 591 678 | 
             
                    console.error("Unexpected error while refreshing access token");
         | 
| 592 679 | 
             
                    return new Response("Unexpected error", { status: 500 });
         | 
| @@ -601,6 +688,10 @@ function getRouteHandlers(args) { | |
| 601 688 | 
             
                      "Set-Cookie",
         | 
| 602 689 | 
             
                      `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 603 690 | 
             
                    );
         | 
| 691 | 
            +
                    headers2.append(
         | 
| 692 | 
            +
                      "Set-Cookie",
         | 
| 693 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 694 | 
            +
                    );
         | 
| 604 695 | 
             
                    return new Response(null, {
         | 
| 605 696 | 
             
                      status: 302,
         | 
| 606 697 | 
             
                      headers: headers2
         | 
| @@ -629,6 +720,10 @@ function getRouteHandlers(args) { | |
| 629 720 | 
             
                      "Set-Cookie",
         | 
| 630 721 | 
             
                      `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 631 722 | 
             
                    );
         | 
| 723 | 
            +
                    headers3.append(
         | 
| 724 | 
            +
                      "Set-Cookie",
         | 
| 725 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 726 | 
            +
                    );
         | 
| 632 727 | 
             
                    return new Response(null, { status: 200, headers: headers3 });
         | 
| 633 728 | 
             
                  }
         | 
| 634 729 | 
             
                  const authUrlOrigin = getAuthUrlOrigin();
         | 
| @@ -653,9 +748,78 @@ function getRouteHandlers(args) { | |
| 653 748 | 
             
                  const headers2 = new Headers();
         | 
| 654 749 | 
             
                  headers2.append("Set-Cookie", `${ACCESS_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 655 750 | 
             
                  headers2.append("Set-Cookie", `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 751 | 
            +
                  headers2.append("Set-Cookie", `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 656 752 | 
             
                  return new Response(null, { status: 200, headers: headers2 });
         | 
| 657 753 | 
             
                });
         | 
| 658 754 | 
             
              }
         | 
| 755 | 
            +
              function setActiveOrgHandler(req) {
         | 
| 756 | 
            +
                return __async(this, null, function* () {
         | 
| 757 | 
            +
                  var _a;
         | 
| 758 | 
            +
                  const oldRefreshToken = (_a = req.cookies.get(REFRESH_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value;
         | 
| 759 | 
            +
                  const activeOrgId = req.nextUrl.searchParams.get("active_org_id");
         | 
| 760 | 
            +
                  if (!oldRefreshToken) {
         | 
| 761 | 
            +
                    const headers2 = new Headers();
         | 
| 762 | 
            +
                    headers2.append(
         | 
| 763 | 
            +
                      "Set-Cookie",
         | 
| 764 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 765 | 
            +
                    );
         | 
| 766 | 
            +
                    return new Response(null, { status: 401, headers: headers2 });
         | 
| 767 | 
            +
                  }
         | 
| 768 | 
            +
                  if (!activeOrgId) {
         | 
| 769 | 
            +
                    return new Response(null, { status: 400 });
         | 
| 770 | 
            +
                  }
         | 
| 771 | 
            +
                  const refreshResponse = yield refreshTokenWithAccessAndRefreshToken(oldRefreshToken, activeOrgId);
         | 
| 772 | 
            +
                  if (refreshResponse.error === "unexpected") {
         | 
| 773 | 
            +
                    throw new Error("Unexpected error while setting active org id");
         | 
| 774 | 
            +
                  } else if (refreshResponse.error === "unauthorized") {
         | 
| 775 | 
            +
                    return new Response("Unauthorized", { status: 401 });
         | 
| 776 | 
            +
                  }
         | 
| 777 | 
            +
                  const refreshToken = refreshResponse.refreshToken;
         | 
| 778 | 
            +
                  const accessToken = refreshResponse.accessToken;
         | 
| 779 | 
            +
                  const authUrlOrigin = getAuthUrlOrigin();
         | 
| 780 | 
            +
                  const path = `${authUrlOrigin}/propelauth/oauth/userinfo`;
         | 
| 781 | 
            +
                  const response = yield fetch(path, {
         | 
| 782 | 
            +
                    headers: {
         | 
| 783 | 
            +
                      "Content-Type": "application/json",
         | 
| 784 | 
            +
                      Authorization: "Bearer " + accessToken
         | 
| 785 | 
            +
                    }
         | 
| 786 | 
            +
                  });
         | 
| 787 | 
            +
                  if (response.ok) {
         | 
| 788 | 
            +
                    const userFromToken = yield validateAccessToken(accessToken);
         | 
| 789 | 
            +
                    const data = yield response.json();
         | 
| 790 | 
            +
                    const jsonResponse = {
         | 
| 791 | 
            +
                      userinfo: data,
         | 
| 792 | 
            +
                      accessToken,
         | 
| 793 | 
            +
                      impersonatorUserId: userFromToken.impersonatorUserId,
         | 
| 794 | 
            +
                      activeOrgId
         | 
| 795 | 
            +
                    };
         | 
| 796 | 
            +
                    const headers2 = new Headers();
         | 
| 797 | 
            +
                    headers2.append(
         | 
| 798 | 
            +
                      "Set-Cookie",
         | 
| 799 | 
            +
                      `${ACCESS_TOKEN_COOKIE_NAME}=${accessToken}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 800 | 
            +
                    );
         | 
| 801 | 
            +
                    headers2.append(
         | 
| 802 | 
            +
                      "Set-Cookie",
         | 
| 803 | 
            +
                      `${REFRESH_TOKEN_COOKIE_NAME}=${refreshToken}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 804 | 
            +
                    );
         | 
| 805 | 
            +
                    headers2.append(
         | 
| 806 | 
            +
                      "Set-Cookie",
         | 
| 807 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=${activeOrgId}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 808 | 
            +
                    );
         | 
| 809 | 
            +
                    headers2.append("Content-Type", "application/json");
         | 
| 810 | 
            +
                    return new Response(JSON.stringify(jsonResponse), {
         | 
| 811 | 
            +
                      status: 200,
         | 
| 812 | 
            +
                      headers: headers2
         | 
| 813 | 
            +
                    });
         | 
| 814 | 
            +
                  } else if (response.status === 401) {
         | 
| 815 | 
            +
                    return new Response(null, {
         | 
| 816 | 
            +
                      status: 401
         | 
| 817 | 
            +
                    });
         | 
| 818 | 
            +
                  } else {
         | 
| 819 | 
            +
                    return new Response(null, { status: 500 });
         | 
| 820 | 
            +
                  }
         | 
| 821 | 
            +
                });
         | 
| 822 | 
            +
              }
         | 
| 659 823 | 
             
              function getRouteHandler(req, { params }) {
         | 
| 660 824 | 
             
                if (params.slug === "login") {
         | 
| 661 825 | 
             
                  return loginGetHandler(req);
         | 
| @@ -674,6 +838,8 @@ function getRouteHandlers(args) { | |
| 674 838 | 
             
              function postRouteHandler(req, { params }) {
         | 
| 675 839 | 
             
                if (params.slug === "logout") {
         | 
| 676 840 | 
             
                  return logoutPostHandler(req);
         | 
| 841 | 
            +
                } else if (params.slug === "set-active-org") {
         | 
| 842 | 
            +
                  return setActiveOrgHandler(req);
         | 
| 677 843 | 
             
                } else {
         | 
| 678 844 | 
             
                  return new Response("", { status: 404 });
         | 
| 679 845 | 
             
                }
         |