@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
| @@ -83,8 +83,9 @@ var import_server = require("next/server.js"); | |
| 83 83 |  | 
| 84 84 | 
             
            // src/user.ts
         | 
| 85 85 | 
             
            var UserFromToken = class {
         | 
| 86 | 
            -
              constructor(userId, email, orgIdToOrgMemberInfo, firstName, lastName, username, legacyUserId, impersonatorUserId, properties) {
         | 
| 86 | 
            +
              constructor(userId, email, orgIdToOrgMemberInfo, firstName, lastName, username, legacyUserId, impersonatorUserId, properties, activeOrgId) {
         | 
| 87 87 | 
             
                this.userId = userId;
         | 
| 88 | 
            +
                this.activeOrgId = activeOrgId;
         | 
| 88 89 | 
             
                this.orgIdToOrgMemberInfo = orgIdToOrgMemberInfo;
         | 
| 89 90 | 
             
                this.email = email;
         | 
| 90 91 | 
             
                this.firstName = firstName;
         | 
| @@ -94,6 +95,15 @@ var UserFromToken = class { | |
| 94 95 | 
             
                this.impersonatorUserId = impersonatorUserId;
         | 
| 95 96 | 
             
                this.properties = properties;
         | 
| 96 97 | 
             
              }
         | 
| 98 | 
            +
              getActiveOrg() {
         | 
| 99 | 
            +
                if (!this.activeOrgId || !this.orgIdToOrgMemberInfo) {
         | 
| 100 | 
            +
                  return void 0;
         | 
| 101 | 
            +
                }
         | 
| 102 | 
            +
                return this.orgIdToOrgMemberInfo[this.activeOrgId];
         | 
| 103 | 
            +
              }
         | 
| 104 | 
            +
              getActiveOrgId() {
         | 
| 105 | 
            +
                return this.activeOrgId;
         | 
| 106 | 
            +
              }
         | 
| 97 107 | 
             
              getOrg(orgId) {
         | 
| 98 108 | 
             
                if (!this.orgIdToOrgMemberInfo) {
         | 
| 99 109 | 
             
                  return void 0;
         | 
| @@ -126,9 +136,7 @@ var UserFromToken = class { | |
| 126 136 | 
             
                const obj = JSON.parse(json);
         | 
| 127 137 | 
             
                const orgIdToOrgMemberInfo = {};
         | 
| 128 138 | 
             
                for (const orgId in obj.orgIdToOrgMemberInfo) {
         | 
| 129 | 
            -
                  orgIdToOrgMemberInfo[orgId] = OrgMemberInfo.fromJSON(
         | 
| 130 | 
            -
                    JSON.stringify(obj.orgIdToOrgMemberInfo[orgId])
         | 
| 131 | 
            -
                  );
         | 
| 139 | 
            +
                  orgIdToOrgMemberInfo[orgId] = OrgMemberInfo.fromJSON(JSON.stringify(obj.orgIdToOrgMemberInfo[orgId]));
         | 
| 132 140 | 
             
                }
         | 
| 133 141 | 
             
                return new UserFromToken(
         | 
| 134 142 | 
             
                  obj.userId,
         | 
| @@ -142,6 +150,29 @@ var UserFromToken = class { | |
| 142 150 | 
             
                  obj.properties
         | 
| 143 151 | 
             
                );
         | 
| 144 152 | 
             
              }
         | 
| 153 | 
            +
              static fromJwtPayload(payload) {
         | 
| 154 | 
            +
                let activeOrgId;
         | 
| 155 | 
            +
                let orgIdToOrgMemberInfo;
         | 
| 156 | 
            +
                if (payload.org_member_info) {
         | 
| 157 | 
            +
                  activeOrgId = payload.org_member_info.org_id;
         | 
| 158 | 
            +
                  orgIdToOrgMemberInfo = toOrgIdToOrgMemberInfo({ [activeOrgId]: payload.org_member_info });
         | 
| 159 | 
            +
                } else {
         | 
| 160 | 
            +
                  activeOrgId = void 0;
         | 
| 161 | 
            +
                  orgIdToOrgMemberInfo = toOrgIdToOrgMemberInfo(payload.org_id_to_org_member_info);
         | 
| 162 | 
            +
                }
         | 
| 163 | 
            +
                return new UserFromToken(
         | 
| 164 | 
            +
                  payload.user_id,
         | 
| 165 | 
            +
                  payload.email,
         | 
| 166 | 
            +
                  orgIdToOrgMemberInfo,
         | 
| 167 | 
            +
                  payload.first_name,
         | 
| 168 | 
            +
                  payload.last_name,
         | 
| 169 | 
            +
                  payload.username,
         | 
| 170 | 
            +
                  payload.legacy_user_id,
         | 
| 171 | 
            +
                  payload.impersonatorUserId,
         | 
| 172 | 
            +
                  payload.properties,
         | 
| 173 | 
            +
                  activeOrgId
         | 
| 174 | 
            +
                );
         | 
| 175 | 
            +
              }
         | 
| 145 176 | 
             
            };
         | 
| 146 177 | 
             
            var OrgMemberInfo = class {
         | 
| 147 178 | 
             
              constructor(orgId, orgName, orgMetadata, urlSafeOrgName, userAssignedRole, userInheritedRolesPlusCurrentRole, userPermissions) {
         | 
| @@ -190,17 +221,7 @@ var OrgMemberInfo = class { | |
| 190 221 | 
             
              }
         | 
| 191 222 | 
             
            };
         | 
| 192 223 | 
             
            function toUser(snake_case) {
         | 
| 193 | 
            -
              return  | 
| 194 | 
            -
                snake_case.user_id,
         | 
| 195 | 
            -
                snake_case.email,
         | 
| 196 | 
            -
                toOrgIdToOrgMemberInfo(snake_case.org_id_to_org_member_info),
         | 
| 197 | 
            -
                snake_case.first_name,
         | 
| 198 | 
            -
                snake_case.last_name,
         | 
| 199 | 
            -
                snake_case.username,
         | 
| 200 | 
            -
                snake_case.legacy_user_id,
         | 
| 201 | 
            -
                snake_case.impersonatorUserId,
         | 
| 202 | 
            -
                snake_case.properties
         | 
| 203 | 
            -
              );
         | 
| 224 | 
            +
              return UserFromToken.fromJwtPayload(snake_case);
         | 
| 204 225 | 
             
            }
         | 
| 205 226 | 
             
            function toOrgIdToOrgMemberInfo(snake_case) {
         | 
| 206 227 | 
             
              if (snake_case === void 0) {
         | 
| @@ -272,12 +293,17 @@ function getVerifierKey() { | |
| 272 293 | 
             
              }
         | 
| 273 294 | 
             
              return verifierKey.replace(/\\n/g, "\n");
         | 
| 274 295 | 
             
            }
         | 
| 275 | 
            -
            function refreshTokenWithAccessAndRefreshToken(refreshToken) {
         | 
| 296 | 
            +
            function refreshTokenWithAccessAndRefreshToken(refreshToken, activeOrgId) {
         | 
| 276 297 | 
             
              return __async(this, null, function* () {
         | 
| 277 298 | 
             
                const body = {
         | 
| 278 299 | 
             
                  refresh_token: refreshToken
         | 
| 279 300 | 
             
                };
         | 
| 280 | 
            -
                const  | 
| 301 | 
            +
                const queryParams = new URLSearchParams();
         | 
| 302 | 
            +
                if (activeOrgId) {
         | 
| 303 | 
            +
                  queryParams.set("with_active_org_support", "true");
         | 
| 304 | 
            +
                  queryParams.set("active_org_id", activeOrgId);
         | 
| 305 | 
            +
                }
         | 
| 306 | 
            +
                const url = `${getAuthUrlOrigin()}/api/backend/v1/refresh_token?${queryParams.toString()}`;
         | 
| 281 307 | 
             
                const response = yield fetch(url, {
         | 
| 282 308 | 
             
                  method: "POST",
         | 
| 283 309 | 
             
                  body: JSON.stringify(body),
         | 
| @@ -289,10 +315,7 @@ function refreshTokenWithAccessAndRefreshToken(refreshToken) { | |
| 289 315 | 
             
                if (response.ok) {
         | 
| 290 316 | 
             
                  const data = yield response.json();
         | 
| 291 317 | 
             
                  const newRefreshToken = data.refresh_token;
         | 
| 292 | 
            -
                  const {
         | 
| 293 | 
            -
                    access_token: accessToken,
         | 
| 294 | 
            -
                    expires_at_seconds: expiresAtSeconds
         | 
| 295 | 
            -
                  } = data.access_token;
         | 
| 318 | 
            +
                  const { access_token: accessToken, expires_at_seconds: expiresAtSeconds } = data.access_token;
         | 
| 296 319 | 
             
                  return {
         | 
| 297 320 | 
             
                    refreshToken: newRefreshToken,
         | 
| 298 321 | 
             
                    accessToken,
         | 
| @@ -353,6 +376,9 @@ function validateAccessToken(accessToken) { | |
| 353 376 | 
             
              });
         | 
| 354 377 | 
             
            }
         | 
| 355 378 |  | 
| 379 | 
            +
            // src/shared.ts
         | 
| 380 | 
            +
            var ACTIVE_ORG_ID_COOKIE_NAME = "__pa_org_id";
         | 
| 381 | 
            +
             | 
| 356 382 | 
             
            // src/server/app-router.ts
         | 
| 357 383 | 
             
            function getUserOrRedirect() {
         | 
| 358 384 | 
             
              return __async(this, null, function* () {
         | 
| @@ -367,8 +393,7 @@ function getUserOrRedirect() { | |
| 367 393 | 
             
            }
         | 
| 368 394 | 
             
            function getUser() {
         | 
| 369 395 | 
             
              return __async(this, null, function* () {
         | 
| 370 | 
            -
                 | 
| 371 | 
            -
                const accessToken = (0, import_headers.headers)().get(CUSTOM_HEADER_FOR_ACCESS_TOKEN) || ((_a = (0, import_headers.cookies)().get(ACCESS_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value);
         | 
| 396 | 
            +
                const accessToken = getAccessToken();
         | 
| 372 397 | 
             
                if (accessToken) {
         | 
| 373 398 | 
             
                  const user = yield validateAccessTokenOrUndefined(accessToken);
         | 
| 374 399 | 
             
                  if (user) {
         | 
| @@ -379,14 +404,12 @@ function getUser() { | |
| 379 404 | 
             
              });
         | 
| 380 405 | 
             
            }
         | 
| 381 406 | 
             
            function getAccessToken() {
         | 
| 382 | 
            -
               | 
| 383 | 
            -
             | 
| 384 | 
            -
                return (0, import_headers.headers)().get(CUSTOM_HEADER_FOR_ACCESS_TOKEN) || ((_a = (0, import_headers.cookies)().get(ACCESS_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value);
         | 
| 385 | 
            -
              });
         | 
| 407 | 
            +
              var _a;
         | 
| 408 | 
            +
              return (0, import_headers.headers)().get(CUSTOM_HEADER_FOR_ACCESS_TOKEN) || ((_a = (0, import_headers.cookies)().get(ACCESS_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value);
         | 
| 386 409 | 
             
            }
         | 
| 387 410 | 
             
            function authMiddleware(req) {
         | 
| 388 411 | 
             
              return __async(this, null, function* () {
         | 
| 389 | 
            -
                var _a, _b;
         | 
| 412 | 
            +
                var _a, _b, _c;
         | 
| 390 413 | 
             
                if (req.headers.has(CUSTOM_HEADER_FOR_ACCESS_TOKEN)) {
         | 
| 391 414 | 
             
                  throw new Error(`${CUSTOM_HEADER_FOR_ACCESS_TOKEN} is set which is for internal use only`);
         | 
| 392 415 | 
             
                } else if (req.nextUrl.pathname === CALLBACK_PATH || req.nextUrl.pathname === LOGOUT_PATH || req.nextUrl.pathname === USERINFO_PATH) {
         | 
| @@ -394,6 +417,7 @@ function authMiddleware(req) { | |
| 394 417 | 
             
                }
         | 
| 395 418 | 
             
                const accessToken = (_a = req.cookies.get(ACCESS_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value;
         | 
| 396 419 | 
             
                const refreshToken = (_b = req.cookies.get(REFRESH_TOKEN_COOKIE_NAME)) == null ? void 0 : _b.value;
         | 
| 420 | 
            +
                const activeOrgId = (_c = req.cookies.get(ACTIVE_ORG_ID_COOKIE_NAME)) == null ? void 0 : _c.value;
         | 
| 397 421 | 
             
                if (accessToken) {
         | 
| 398 422 | 
             
                  const user = yield validateAccessTokenOrUndefined(accessToken);
         | 
| 399 423 | 
             
                  if (user) {
         | 
| @@ -401,7 +425,7 @@ function authMiddleware(req) { | |
| 401 425 | 
             
                  }
         | 
| 402 426 | 
             
                }
         | 
| 403 427 | 
             
                if (refreshToken) {
         | 
| 404 | 
            -
                  const response = yield refreshTokenWithAccessAndRefreshToken(refreshToken);
         | 
| 428 | 
            +
                  const response = yield refreshTokenWithAccessAndRefreshToken(refreshToken, activeOrgId);
         | 
| 405 429 | 
             
                  if (response.error === "unexpected") {
         | 
| 406 430 | 
             
                    throw new Error("Unexpected error while refreshing access token");
         | 
| 407 431 | 
             
                  } else if (response.error === "unauthorized") {
         | 
| @@ -462,7 +486,7 @@ function getRouteHandlers(args) { | |
| 462 486 | 
             
              }
         | 
| 463 487 | 
             
              function callbackGetHandler(req) {
         | 
| 464 488 | 
             
                return __async(this, null, function* () {
         | 
| 465 | 
            -
                  var _a, _b;
         | 
| 489 | 
            +
                  var _a, _b, _c;
         | 
| 466 490 | 
             
                  const oauthState = (_a = req.cookies.get(STATE_COOKIE_NAME)) == null ? void 0 : _a.value;
         | 
| 467 491 | 
             
                  if (!oauthState || oauthState.length !== 64) {
         | 
| 468 492 | 
             
                    return new Response(null, { status: 302, headers: { Location: LOGIN_PATH } });
         | 
| @@ -498,6 +522,49 @@ function getRouteHandlers(args) { | |
| 498 522 | 
             
                      console.error("postLoginRedirectPathFn returned undefined");
         | 
| 499 523 | 
             
                      return new Response("Unexpected error", { status: 500 });
         | 
| 500 524 | 
             
                    }
         | 
| 525 | 
            +
                    const currentActiveOrgId = (_c = req.cookies.get(ACTIVE_ORG_ID_COOKIE_NAME)) == null ? void 0 : _c.value;
         | 
| 526 | 
            +
                    const user = yield validateAccessToken(accessToken);
         | 
| 527 | 
            +
                    const isUserInCurrentActiveOrg = !!currentActiveOrgId && !!user.getOrg(currentActiveOrgId);
         | 
| 528 | 
            +
                    let activeOrgId = void 0;
         | 
| 529 | 
            +
                    if (isUserInCurrentActiveOrg) {
         | 
| 530 | 
            +
                      activeOrgId = currentActiveOrgId;
         | 
| 531 | 
            +
                    } else if (args == null ? void 0 : args.getDefaultActiveOrgId) {
         | 
| 532 | 
            +
                      activeOrgId = args.getDefaultActiveOrgId(req, user);
         | 
| 533 | 
            +
                    }
         | 
| 534 | 
            +
                    if (activeOrgId) {
         | 
| 535 | 
            +
                      const response2 = yield refreshTokenWithAccessAndRefreshToken(data.refresh_token, activeOrgId);
         | 
| 536 | 
            +
                      if (response2.error === "unexpected") {
         | 
| 537 | 
            +
                        throw new Error("Unexpected error while setting active org");
         | 
| 538 | 
            +
                      } else if (response2.error === "unauthorized") {
         | 
| 539 | 
            +
                        console.error(
         | 
| 540 | 
            +
                          "Unauthorized error while setting active org. Your user may not have access to this org"
         | 
| 541 | 
            +
                        );
         | 
| 542 | 
            +
                        return new Response("Unauthorized", { status: 401 });
         | 
| 543 | 
            +
                      } else {
         | 
| 544 | 
            +
                        const headers3 = new Headers();
         | 
| 545 | 
            +
                        headers3.append("Location", returnToPath);
         | 
| 546 | 
            +
                        headers3.append(
         | 
| 547 | 
            +
                          "Set-Cookie",
         | 
| 548 | 
            +
                          `${ACCESS_TOKEN_COOKIE_NAME}=${response2.accessToken}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 549 | 
            +
                        );
         | 
| 550 | 
            +
                        headers3.append(
         | 
| 551 | 
            +
                          "Set-Cookie",
         | 
| 552 | 
            +
                          `${REFRESH_TOKEN_COOKIE_NAME}=${response2.refreshToken}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 553 | 
            +
                        );
         | 
| 554 | 
            +
                        headers3.append(
         | 
| 555 | 
            +
                          "Set-Cookie",
         | 
| 556 | 
            +
                          `${ACTIVE_ORG_ID_COOKIE_NAME}=${activeOrgId}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 557 | 
            +
                        );
         | 
| 558 | 
            +
                        headers3.append(
         | 
| 559 | 
            +
                          "Set-Cookie",
         | 
| 560 | 
            +
                          `${RETURN_TO_PATH_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 561 | 
            +
                        );
         | 
| 562 | 
            +
                        return new Response(null, {
         | 
| 563 | 
            +
                          status: 302,
         | 
| 564 | 
            +
                          headers: headers3
         | 
| 565 | 
            +
                        });
         | 
| 566 | 
            +
                      }
         | 
| 567 | 
            +
                    }
         | 
| 501 568 | 
             
                    const headers2 = new Headers();
         | 
| 502 569 | 
             
                    headers2.append("Location", returnToPath);
         | 
| 503 570 | 
             
                    headers2.append(
         | 
| @@ -508,6 +575,10 @@ function getRouteHandlers(args) { | |
| 508 575 | 
             
                      "Set-Cookie",
         | 
| 509 576 | 
             
                      `${REFRESH_TOKEN_COOKIE_NAME}=${data.refresh_token}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 510 577 | 
             
                    );
         | 
| 578 | 
            +
                    headers2.append(
         | 
| 579 | 
            +
                      "Set-Cookie",
         | 
| 580 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 581 | 
            +
                    );
         | 
| 511 582 | 
             
                    headers2.append(
         | 
| 512 583 | 
             
                      "Set-Cookie",
         | 
| 513 584 | 
             
                      `${RETURN_TO_PATH_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| @@ -528,10 +599,11 @@ function getRouteHandlers(args) { | |
| 528 599 | 
             
              }
         | 
| 529 600 | 
             
              function userinfoGetHandler(req) {
         | 
| 530 601 | 
             
                return __async(this, null, function* () {
         | 
| 531 | 
            -
                  var _a;
         | 
| 602 | 
            +
                  var _a, _b;
         | 
| 532 603 | 
             
                  const oldRefreshToken = (_a = req.cookies.get(REFRESH_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value;
         | 
| 604 | 
            +
                  const activeOrgId = (_b = req.cookies.get(ACTIVE_ORG_ID_COOKIE_NAME)) == null ? void 0 : _b.value;
         | 
| 533 605 | 
             
                  if (oldRefreshToken) {
         | 
| 534 | 
            -
                    const refreshResponse = yield refreshTokenWithAccessAndRefreshToken(oldRefreshToken);
         | 
| 606 | 
            +
                    const refreshResponse = yield refreshTokenWithAccessAndRefreshToken(oldRefreshToken, activeOrgId);
         | 
| 535 607 | 
             
                    if (refreshResponse.error === "unexpected") {
         | 
| 536 608 | 
             
                      throw new Error("Unexpected error while refreshing access token");
         | 
| 537 609 | 
             
                    } else if (refreshResponse.error === "unauthorized") {
         | 
| @@ -544,6 +616,10 @@ function getRouteHandlers(args) { | |
| 544 616 | 
             
                        "Set-Cookie",
         | 
| 545 617 | 
             
                        `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 546 618 | 
             
                      );
         | 
| 619 | 
            +
                      headers3.append(
         | 
| 620 | 
            +
                        "Set-Cookie",
         | 
| 621 | 
            +
                        `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 622 | 
            +
                      );
         | 
| 547 623 | 
             
                      return new Response("Unauthorized", { status: 401, headers: headers3 });
         | 
| 548 624 | 
             
                    }
         | 
| 549 625 | 
             
                    const refreshToken = refreshResponse.refreshToken;
         | 
| @@ -562,7 +638,8 @@ function getRouteHandlers(args) { | |
| 562 638 | 
             
                      const jsonResponse = {
         | 
| 563 639 | 
             
                        userinfo: data,
         | 
| 564 640 | 
             
                        accessToken,
         | 
| 565 | 
            -
                        impersonatorUserId: userFromToken.impersonatorUserId
         | 
| 641 | 
            +
                        impersonatorUserId: userFromToken.impersonatorUserId,
         | 
| 642 | 
            +
                        activeOrgId
         | 
| 566 643 | 
             
                      };
         | 
| 567 644 | 
             
                      const headers3 = new Headers();
         | 
| 568 645 | 
             
                      headers3.append(
         | 
| @@ -588,6 +665,10 @@ function getRouteHandlers(args) { | |
| 588 665 | 
             
                        "Set-Cookie",
         | 
| 589 666 | 
             
                        `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 590 667 | 
             
                      );
         | 
| 668 | 
            +
                      headers3.append(
         | 
| 669 | 
            +
                        "Set-Cookie",
         | 
| 670 | 
            +
                        `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 671 | 
            +
                      );
         | 
| 591 672 | 
             
                      return new Response(null, {
         | 
| 592 673 | 
             
                        status: 401,
         | 
| 593 674 | 
             
                        headers: headers3
         | 
| @@ -599,12 +680,13 @@ function getRouteHandlers(args) { | |
| 599 680 | 
             
                  const headers2 = new Headers();
         | 
| 600 681 | 
             
                  headers2.append("Set-Cookie", `${ACCESS_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 601 682 | 
             
                  headers2.append("Set-Cookie", `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 683 | 
            +
                  headers2.append("Set-Cookie", `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 602 684 | 
             
                  return new Response(null, { status: 401 });
         | 
| 603 685 | 
             
                });
         | 
| 604 686 | 
             
              }
         | 
| 605 687 | 
             
              function logoutGetHandler(req) {
         | 
| 606 688 | 
             
                return __async(this, null, function* () {
         | 
| 607 | 
            -
                  var _a;
         | 
| 689 | 
            +
                  var _a, _b;
         | 
| 608 690 | 
             
                  const path = (args == null ? void 0 : args.postLoginRedirectPathFn) ? args.postLoginRedirectPathFn(req) : "/";
         | 
| 609 691 | 
             
                  if (!path) {
         | 
| 610 692 | 
             
                    console.error("postLoginPathFn returned undefined");
         | 
| @@ -622,12 +704,17 @@ function getRouteHandlers(args) { | |
| 622 704 | 
             
                      "Set-Cookie",
         | 
| 623 705 | 
             
                      `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 624 706 | 
             
                    );
         | 
| 707 | 
            +
                    headers2.append(
         | 
| 708 | 
            +
                      "Set-Cookie",
         | 
| 709 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 710 | 
            +
                    );
         | 
| 625 711 | 
             
                    return new Response(null, {
         | 
| 626 712 | 
             
                      status: 302,
         | 
| 627 713 | 
             
                      headers: headers2
         | 
| 628 714 | 
             
                    });
         | 
| 629 715 | 
             
                  }
         | 
| 630 | 
            -
                  const  | 
| 716 | 
            +
                  const activeOrgId = (_b = req.cookies.get(ACTIVE_ORG_ID_COOKIE_NAME)) == null ? void 0 : _b.value;
         | 
| 717 | 
            +
                  const refreshResponse = yield refreshTokenWithAccessAndRefreshToken(refreshToken, activeOrgId);
         | 
| 631 718 | 
             
                  if (refreshResponse.error === "unexpected") {
         | 
| 632 719 | 
             
                    console.error("Unexpected error while refreshing access token");
         | 
| 633 720 | 
             
                    return new Response("Unexpected error", { status: 500 });
         | 
| @@ -642,6 +729,10 @@ function getRouteHandlers(args) { | |
| 642 729 | 
             
                      "Set-Cookie",
         | 
| 643 730 | 
             
                      `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 644 731 | 
             
                    );
         | 
| 732 | 
            +
                    headers2.append(
         | 
| 733 | 
            +
                      "Set-Cookie",
         | 
| 734 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 735 | 
            +
                    );
         | 
| 645 736 | 
             
                    return new Response(null, {
         | 
| 646 737 | 
             
                      status: 302,
         | 
| 647 738 | 
             
                      headers: headers2
         | 
| @@ -670,6 +761,10 @@ function getRouteHandlers(args) { | |
| 670 761 | 
             
                      "Set-Cookie",
         | 
| 671 762 | 
             
                      `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 672 763 | 
             
                    );
         | 
| 764 | 
            +
                    headers3.append(
         | 
| 765 | 
            +
                      "Set-Cookie",
         | 
| 766 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 767 | 
            +
                    );
         | 
| 673 768 | 
             
                    return new Response(null, { status: 200, headers: headers3 });
         | 
| 674 769 | 
             
                  }
         | 
| 675 770 | 
             
                  const authUrlOrigin = getAuthUrlOrigin();
         | 
| @@ -694,9 +789,78 @@ function getRouteHandlers(args) { | |
| 694 789 | 
             
                  const headers2 = new Headers();
         | 
| 695 790 | 
             
                  headers2.append("Set-Cookie", `${ACCESS_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 696 791 | 
             
                  headers2.append("Set-Cookie", `${REFRESH_TOKEN_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 792 | 
            +
                  headers2.append("Set-Cookie", `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
         | 
| 697 793 | 
             
                  return new Response(null, { status: 200, headers: headers2 });
         | 
| 698 794 | 
             
                });
         | 
| 699 795 | 
             
              }
         | 
| 796 | 
            +
              function setActiveOrgHandler(req) {
         | 
| 797 | 
            +
                return __async(this, null, function* () {
         | 
| 798 | 
            +
                  var _a;
         | 
| 799 | 
            +
                  const oldRefreshToken = (_a = req.cookies.get(REFRESH_TOKEN_COOKIE_NAME)) == null ? void 0 : _a.value;
         | 
| 800 | 
            +
                  const activeOrgId = req.nextUrl.searchParams.get("active_org_id");
         | 
| 801 | 
            +
                  if (!oldRefreshToken) {
         | 
| 802 | 
            +
                    const headers2 = new Headers();
         | 
| 803 | 
            +
                    headers2.append(
         | 
| 804 | 
            +
                      "Set-Cookie",
         | 
| 805 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
         | 
| 806 | 
            +
                    );
         | 
| 807 | 
            +
                    return new Response(null, { status: 401, headers: headers2 });
         | 
| 808 | 
            +
                  }
         | 
| 809 | 
            +
                  if (!activeOrgId) {
         | 
| 810 | 
            +
                    return new Response(null, { status: 400 });
         | 
| 811 | 
            +
                  }
         | 
| 812 | 
            +
                  const refreshResponse = yield refreshTokenWithAccessAndRefreshToken(oldRefreshToken, activeOrgId);
         | 
| 813 | 
            +
                  if (refreshResponse.error === "unexpected") {
         | 
| 814 | 
            +
                    throw new Error("Unexpected error while setting active org id");
         | 
| 815 | 
            +
                  } else if (refreshResponse.error === "unauthorized") {
         | 
| 816 | 
            +
                    return new Response("Unauthorized", { status: 401 });
         | 
| 817 | 
            +
                  }
         | 
| 818 | 
            +
                  const refreshToken = refreshResponse.refreshToken;
         | 
| 819 | 
            +
                  const accessToken = refreshResponse.accessToken;
         | 
| 820 | 
            +
                  const authUrlOrigin = getAuthUrlOrigin();
         | 
| 821 | 
            +
                  const path = `${authUrlOrigin}/propelauth/oauth/userinfo`;
         | 
| 822 | 
            +
                  const response = yield fetch(path, {
         | 
| 823 | 
            +
                    headers: {
         | 
| 824 | 
            +
                      "Content-Type": "application/json",
         | 
| 825 | 
            +
                      Authorization: "Bearer " + accessToken
         | 
| 826 | 
            +
                    }
         | 
| 827 | 
            +
                  });
         | 
| 828 | 
            +
                  if (response.ok) {
         | 
| 829 | 
            +
                    const userFromToken = yield validateAccessToken(accessToken);
         | 
| 830 | 
            +
                    const data = yield response.json();
         | 
| 831 | 
            +
                    const jsonResponse = {
         | 
| 832 | 
            +
                      userinfo: data,
         | 
| 833 | 
            +
                      accessToken,
         | 
| 834 | 
            +
                      impersonatorUserId: userFromToken.impersonatorUserId,
         | 
| 835 | 
            +
                      activeOrgId
         | 
| 836 | 
            +
                    };
         | 
| 837 | 
            +
                    const headers2 = new Headers();
         | 
| 838 | 
            +
                    headers2.append(
         | 
| 839 | 
            +
                      "Set-Cookie",
         | 
| 840 | 
            +
                      `${ACCESS_TOKEN_COOKIE_NAME}=${accessToken}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 841 | 
            +
                    );
         | 
| 842 | 
            +
                    headers2.append(
         | 
| 843 | 
            +
                      "Set-Cookie",
         | 
| 844 | 
            +
                      `${REFRESH_TOKEN_COOKIE_NAME}=${refreshToken}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 845 | 
            +
                    );
         | 
| 846 | 
            +
                    headers2.append(
         | 
| 847 | 
            +
                      "Set-Cookie",
         | 
| 848 | 
            +
                      `${ACTIVE_ORG_ID_COOKIE_NAME}=${activeOrgId}; Path=/; HttpOnly; Secure; SameSite=Lax`
         | 
| 849 | 
            +
                    );
         | 
| 850 | 
            +
                    headers2.append("Content-Type", "application/json");
         | 
| 851 | 
            +
                    return new Response(JSON.stringify(jsonResponse), {
         | 
| 852 | 
            +
                      status: 200,
         | 
| 853 | 
            +
                      headers: headers2
         | 
| 854 | 
            +
                    });
         | 
| 855 | 
            +
                  } else if (response.status === 401) {
         | 
| 856 | 
            +
                    return new Response(null, {
         | 
| 857 | 
            +
                      status: 401
         | 
| 858 | 
            +
                    });
         | 
| 859 | 
            +
                  } else {
         | 
| 860 | 
            +
                    return new Response(null, { status: 500 });
         | 
| 861 | 
            +
                  }
         | 
| 862 | 
            +
                });
         | 
| 863 | 
            +
              }
         | 
| 700 864 | 
             
              function getRouteHandler(req, { params }) {
         | 
| 701 865 | 
             
                if (params.slug === "login") {
         | 
| 702 866 | 
             
                  return loginGetHandler(req);
         | 
| @@ -715,6 +879,8 @@ function getRouteHandlers(args) { | |
| 715 879 | 
             
              function postRouteHandler(req, { params }) {
         | 
| 716 880 | 
             
                if (params.slug === "logout") {
         | 
| 717 881 | 
             
                  return logoutPostHandler(req);
         | 
| 882 | 
            +
                } else if (params.slug === "set-active-org") {
         | 
| 883 | 
            +
                  return setActiveOrgHandler(req);
         | 
| 718 884 | 
             
                } else {
         | 
| 719 885 | 
             
                  return new Response("", { status: 404 });
         | 
| 720 886 | 
             
                }
         |