@rebasepro/server 0.10.0 → 0.10.1-canary.18115ba
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/auth/interfaces.d.ts +65 -2
- package/dist/auth/jwt.d.ts +17 -0
- package/dist/auth/routes.d.ts +16 -0
- package/dist/index.es.js +2093 -32
- package/dist/index.es.js.map +1 -1
- package/dist/{jwt-B3zjddCa.js → jwt-Dj7r7QX7.js} +36 -24
- package/dist/{jwt-B3zjddCa.js.map → jwt-Dj7r7QX7.js.map} +1 -1
- package/package.json +5 -5
|
@@ -4165,6 +4165,7 @@ var require_jsonwebtoken = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4165
4165
|
//#endregion
|
|
4166
4166
|
//#region src/auth/jwt.ts
|
|
4167
4167
|
var jwt_exports = /* @__PURE__ */ __exportAll({
|
|
4168
|
+
MAX_COOKIE_AGE_MS: () => MAX_COOKIE_AGE_MS,
|
|
4168
4169
|
configureJwt: () => configureJwt,
|
|
4169
4170
|
generateAccessToken: () => generateAccessToken,
|
|
4170
4171
|
generateDownloadToken: () => generateDownloadToken,
|
|
@@ -4172,6 +4173,7 @@ var jwt_exports = /* @__PURE__ */ __exportAll({
|
|
|
4172
4173
|
getAccessTokenExpiry: () => getAccessTokenExpiry,
|
|
4173
4174
|
getAccessTokenExpiryMs: () => getAccessTokenExpiryMs,
|
|
4174
4175
|
getRefreshTokenExpiry: () => getRefreshTokenExpiry,
|
|
4176
|
+
getRefreshTokenTtlMs: () => getRefreshTokenTtlMs,
|
|
4175
4177
|
hashRefreshToken: () => hashRefreshToken,
|
|
4176
4178
|
verifyAccessToken: () => verifyAccessToken,
|
|
4177
4179
|
verifyDownloadToken: () => verifyDownloadToken
|
|
@@ -4180,7 +4182,7 @@ var import_jsonwebtoken = /* @__PURE__ */ __toESM(require_jsonwebtoken(), 1);
|
|
|
4180
4182
|
var jwtConfig = {
|
|
4181
4183
|
secret: "",
|
|
4182
4184
|
accessExpiresIn: "1h",
|
|
4183
|
-
refreshExpiresIn: "
|
|
4185
|
+
refreshExpiresIn: "400d"
|
|
4184
4186
|
};
|
|
4185
4187
|
/**
|
|
4186
4188
|
* Configure JWT settings - call this during initialization.
|
|
@@ -4306,30 +4308,40 @@ function hashRefreshToken(token) {
|
|
|
4306
4308
|
return createHash("sha256").update(token).digest("hex");
|
|
4307
4309
|
}
|
|
4308
4310
|
/**
|
|
4309
|
-
*
|
|
4311
|
+
* The longest a cookie can live. Chrome (since 104) and RFC 6265bis silently
|
|
4312
|
+
* rewrite any `Max-Age` beyond 400 days down to 400 days, so promising a
|
|
4313
|
+
* browser more is not a stricter policy — it is a policy that differs from
|
|
4314
|
+
* what is actually enforced, which is worse than knowing the ceiling.
|
|
4310
4315
|
*/
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
|
|
4316
|
+
var MAX_COOKIE_AGE_MS = 400 * 24 * 60 * 60 * 1e3;
|
|
4317
|
+
/** Fallback when `refreshExpiresIn` is unset or unparseable. */
|
|
4318
|
+
var DEFAULT_REFRESH_TTL_MS = MAX_COOKIE_AGE_MS;
|
|
4319
|
+
/**
|
|
4320
|
+
* How long a refresh token is valid for, in milliseconds.
|
|
4321
|
+
*
|
|
4322
|
+
* Every rotation issues a token with a fresh TTL, so this is a sliding window:
|
|
4323
|
+
* a user who visits at all keeps their session indefinitely, and one who
|
|
4324
|
+
* disappears loses it this long after their last visit. That is what both
|
|
4325
|
+
* Firebase and Supabase do by default, and it is the behaviour people mean
|
|
4326
|
+
* when they say they expect to still be signed in.
|
|
4327
|
+
*/
|
|
4328
|
+
function getRefreshTokenTtlMs() {
|
|
4329
|
+
const match = jwtConfig.refreshExpiresIn?.match(/^(\d+)([dhms])$/);
|
|
4330
|
+
if (!match) return DEFAULT_REFRESH_TTL_MS;
|
|
4314
4331
|
const value = parseInt(match[1], 10);
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
|
|
4318
|
-
case "
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
case "h":
|
|
4322
|
-
ms = value * 60 * 60 * 1e3;
|
|
4323
|
-
break;
|
|
4324
|
-
case "m":
|
|
4325
|
-
ms = value * 60 * 1e3;
|
|
4326
|
-
break;
|
|
4327
|
-
case "s":
|
|
4328
|
-
ms = value * 1e3;
|
|
4329
|
-
break;
|
|
4330
|
-
default: ms = 720 * 60 * 60 * 1e3;
|
|
4332
|
+
switch (match[2]) {
|
|
4333
|
+
case "d": return value * 24 * 60 * 60 * 1e3;
|
|
4334
|
+
case "h": return value * 60 * 60 * 1e3;
|
|
4335
|
+
case "m": return value * 60 * 1e3;
|
|
4336
|
+
case "s": return value * 1e3;
|
|
4337
|
+
default: return DEFAULT_REFRESH_TTL_MS;
|
|
4331
4338
|
}
|
|
4332
|
-
|
|
4339
|
+
}
|
|
4340
|
+
/**
|
|
4341
|
+
* Calculate refresh token expiration date
|
|
4342
|
+
*/
|
|
4343
|
+
function getRefreshTokenExpiry() {
|
|
4344
|
+
return new Date(Date.now() + getRefreshTokenTtlMs());
|
|
4333
4345
|
}
|
|
4334
4346
|
/**
|
|
4335
4347
|
* Generate a short-lived download token scoped to a specific file path or prefix
|
|
@@ -4363,6 +4375,6 @@ function verifyDownloadToken(token) {
|
|
|
4363
4375
|
}
|
|
4364
4376
|
}
|
|
4365
4377
|
//#endregion
|
|
4366
|
-
export {
|
|
4378
|
+
export { __toESM as _, generateRefreshToken as a, getRefreshTokenTtlMs as c, verifyAccessToken as d, verifyDownloadToken as f, __require as g, __exportAll as h, generateDownloadToken as i, hashRefreshToken as l, __commonJSMin as m, configureJwt as n, getAccessTokenExpiry as o, require_jsonwebtoken as p, generateAccessToken as r, getRefreshTokenExpiry as s, MAX_COOKIE_AGE_MS as t, jwt_exports as u };
|
|
4367
4379
|
|
|
4368
|
-
//# sourceMappingURL=jwt-
|
|
4380
|
+
//# sourceMappingURL=jwt-Dj7r7QX7.js.map
|