@absolutejs/auth 0.59.2 → 0.59.3

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/README.md CHANGED
@@ -29,8 +29,8 @@ Absolute Auth is a TypeScript-based authentication system that provides a compre
29
29
  1. Clone the repository:
30
30
 
31
31
  ```bash
32
- git clone https://github.com/alexkahndev/absolute-auth.git
33
- cd absolute-auth
32
+ git clone https://github.com/absolutejs/auth.git
33
+ cd auth
34
34
  ```
35
35
 
36
36
  2. Install the dependencies:
package/dist/index.js CHANGED
@@ -10275,6 +10275,12 @@ var resolveProviderClientConfiguration = ({
10275
10275
  // src/routes/authorize.ts
10276
10276
  init_constants();
10277
10277
  import { Elysia as Elysia27, t as t20 } from "elysia";
10278
+
10279
+ // src/redirect.ts
10280
+ var isSafeLocalPath = (value) => /^\/(?![/\\])/.test(value);
10281
+ var toSafeLocalPath = (value, fallback = "/") => value !== undefined && isSafeLocalPath(value) ? value : fallback;
10282
+
10283
+ // src/routes/authorize.ts
10278
10284
  var parseReferer = (headerReferer) => {
10279
10285
  if (!headerReferer)
10280
10286
  return "/";
@@ -10282,10 +10288,7 @@ var parseReferer = (headerReferer) => {
10282
10288
  const url = new URL(headerReferer);
10283
10289
  return url.pathname + url.search;
10284
10290
  } catch {
10285
- if (headerReferer.startsWith("/") && !headerReferer.startsWith("//")) {
10286
- return headerReferer;
10287
- }
10288
- return "/";
10291
+ return toSafeLocalPath(headerReferer);
10289
10292
  }
10290
10293
  };
10291
10294
  var authorize = ({
@@ -11962,7 +11965,7 @@ var parseReferer2 = (referer) => {
11962
11965
  const url = new URL(referer);
11963
11966
  return url.pathname + url.search;
11964
11967
  } catch {
11965
- return referer.startsWith("/") && !referer.startsWith("//") ? referer : "/";
11968
+ return toSafeLocalPath(referer);
11966
11969
  }
11967
11970
  };
11968
11971
  var oidcSsoRoutes = ({
@@ -12105,18 +12108,13 @@ var oidcSsoRoutes = ({
12105
12108
 
12106
12109
  // src/sso/samlRoutes.ts
12107
12110
  import { Elysia as Elysia39, t as t31 } from "elysia";
12108
- var toLocalPath = (value) => {
12109
- if (value === undefined || value.length === 0)
12110
- return "/";
12111
- return value.startsWith("/") && !value.startsWith("//") ? value : "/";
12112
- };
12113
12111
  var refererPath = (referer) => {
12114
12112
  if (referer === undefined)
12115
12113
  return "/";
12116
12114
  try {
12117
- return toLocalPath(new URL(referer).pathname);
12115
+ return toSafeLocalPath(new URL(referer).pathname);
12118
12116
  } catch {
12119
- return toLocalPath(referer);
12117
+ return toSafeLocalPath(referer);
12120
12118
  }
12121
12119
  };
12122
12120
  var settle = async (work) => {
@@ -12219,7 +12217,7 @@ var samlSsoRoutes = ({
12219
12217
  user,
12220
12218
  userSessionId
12221
12219
  });
12222
- return redirect(toLocalPath(body.RelayState));
12220
+ return redirect(toSafeLocalPath(body.RelayState));
12223
12221
  } catch (error) {
12224
12222
  await onSsoCallbackError?.({ error, organizationId });
12225
12223
  return status("Internal Server Error", "SAML sign-in failed");
@@ -12310,7 +12308,7 @@ var samlSsoRoutes = ({
12310
12308
  sloUrl
12311
12309
  }) ?? Promise.resolve());
12312
12310
  if (!("error" in responseSettled)) {
12313
- return redirect(toLocalPath(RelayState));
12311
+ return redirect(toSafeLocalPath(RelayState));
12314
12312
  }
12315
12313
  await onSsoCallbackError?.({
12316
12314
  error: responseSettled.error,
@@ -12358,7 +12356,7 @@ var samlSsoRoutes = ({
12358
12356
  });
12359
12357
  return redirect(url);
12360
12358
  }
12361
- return redirect(toLocalPath(info.relayState ?? RelayState));
12359
+ return redirect(toSafeLocalPath(info.relayState ?? RelayState));
12362
12360
  }, {
12363
12361
  cookie: t31.Cookie({
12364
12362
  user_session_id: t31.Optional(userSessionIdTypebox)
@@ -38040,5 +38038,5 @@ export {
38040
38038
  AGENT_CLAIM_GRANT_TYPE
38041
38039
  };
38042
38040
 
38043
- //# debugId=FC3F27A521162E4064756E2164756E21
38041
+ //# debugId=77BC0B5B04897A6364756E2164756E21
38044
38042
  //# sourceMappingURL=index.js.map