@gauts/auth 0.10.0 → 0.10.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/README.md CHANGED
@@ -306,6 +306,7 @@ The application owns the redirect URL. When `unauthorizedUrl` is provided, the a
306
306
  | `@gauts/auth/express` | Express cookies, methods, and middleware. |
307
307
  | `@gauts/auth/fastify` | Fastify cookies, methods, decorators, and hooks. |
308
308
  | `@gauts/auth/next` | Next.js renewal scheduling and `Set-Cookie` forwarding. |
309
+ | `@gauts/auth/headers` | Browser-safe controlled header forwarding helpers. |
309
310
  | `@gauts/auth/providers` | Google, GitHub, and X OAuth providers. |
310
311
 
311
312
  ## Configuration reference
@@ -1237,10 +1238,10 @@ Result values:
1237
1238
 
1238
1239
  The adapter forwards only the session cookie and controlled client/origin headers required by the private API. `__ctx` is not forwarded because the API renewal endpoint always validates the opaque token through the database and returns a new signed context. Other cookies, authorization headers, and arbitrary headers are not forwarded.
1239
1240
 
1240
- `buildForwardHeaders()` and `FORWARD_HEADERS` are exported from `@gauts/auth/next` for application fetchers that need the same controlled forwarding rules:
1241
+ `buildForwardHeaders()` and `FORWARD_HEADERS` are exported from the browser-safe `@gauts/auth/headers` entrypoint for application fetchers that need the same controlled forwarding rules:
1241
1242
 
1242
1243
  ```ts
1243
- import { buildForwardHeaders } from "@gauts/auth/next";
1244
+ import { buildForwardHeaders } from "@gauts/auth/headers";
1244
1245
 
1245
1246
  const headers = buildForwardHeaders({
1246
1247
  headers: incoming,
@@ -1,4 +1,5 @@
1
1
  import { NextResponse, type NextRequest } from "next/server.js";
2
+ export { buildForwardHeaders, FORWARD_HEADERS, type BuildForwardHeadersInput, } from "../../headers/index.js";
2
3
  export type NextCookieConfig = {
3
4
  contextName?: string;
4
5
  sessionName?: string;
@@ -20,11 +21,5 @@ export type NextRenewResult = {
20
21
  export type NextAuth = {
21
22
  renew(input: NextRenewInput): Promise<NextRenewResult>;
22
23
  };
23
- export type BuildForwardHeadersInput = {
24
- extra?: readonly string[];
25
- headers: Headers;
26
- };
27
- export declare const FORWARD_HEADERS: readonly ["accept-language", "cf-connecting-ip", "origin", "referer", "sec-ch-ua", "sec-ch-ua-mobile", "sec-ch-ua-platform", "sec-fetch-dest", "sec-fetch-mode", "sec-fetch-site", "sec-fetch-user", "true-client-ip", "user-agent", "x-forwarded-for", "x-forwarded-host", "x-forwarded-port", "x-forwarded-proto", "x-real-ip"];
28
- export declare const buildForwardHeaders: ({ extra, headers: incoming, }: BuildForwardHeadersInput) => Headers;
29
24
  export declare const createNextAuth: ({ cookie, renewUrl }: NextAuthConfig) => NextAuth;
30
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/next/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMhE,MAAM,MAAM,gBAAgB,GAAG;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC1D,CAAC;AAaF,MAAM,MAAM,wBAAwB,GAAG;IACnC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAIF,eAAO,MAAM,eAAe,mUAmBlB,CAAC;AAEX,eAAO,MAAM,mBAAmB,GAAI,+BAGjC,wBAAwB,KAAG,OAoB7B,CAAC;AA8BF,eAAO,MAAM,cAAc,GAAI,sBAAsB,cAAc,KAAG,QAsErE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/next/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOhE,OAAO,EACH,mBAAmB,EACnB,eAAe,EACf,KAAK,wBAAwB,GAChC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,gBAAgB,GAAG;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC1D,CAAC;AA2CF,eAAO,MAAM,cAAc,GAAI,sBAAsB,cAAc,KAAG,QAsErE,CAAC"}
@@ -1,44 +1,10 @@
1
1
  import { NextResponse } from "next/server.js";
2
2
  import { createError } from "../../errors.js";
3
+ import { buildForwardHeaders } from "../../headers/index.js";
3
4
  import { parseSessionToken, resolveSessionCookieNames } from "../../session/cookie.js";
4
5
  import { parseSessionState } from "../../session/state.js";
6
+ export { buildForwardHeaders, FORWARD_HEADERS, } from "../../headers/index.js";
5
7
  const RENEW_TIMEOUT = 5_000;
6
- export const FORWARD_HEADERS = [
7
- "accept-language",
8
- "cf-connecting-ip",
9
- "origin",
10
- "referer",
11
- "sec-ch-ua",
12
- "sec-ch-ua-mobile",
13
- "sec-ch-ua-platform",
14
- "sec-fetch-dest",
15
- "sec-fetch-mode",
16
- "sec-fetch-site",
17
- "sec-fetch-user",
18
- "true-client-ip",
19
- "user-agent",
20
- "x-forwarded-for",
21
- "x-forwarded-host",
22
- "x-forwarded-port",
23
- "x-forwarded-proto",
24
- "x-real-ip",
25
- ];
26
- export const buildForwardHeaders = ({ extra = [], headers: incoming, }) => {
27
- const headers = new Headers();
28
- for (const name of [...FORWARD_HEADERS, ...extra]) {
29
- const value = incoming.get(name);
30
- if (value?.trim()) {
31
- headers.set(name, value);
32
- }
33
- }
34
- const origin = headers.get("origin")?.trim();
35
- const host = headers.get("x-forwarded-host")?.trim();
36
- const proto = headers.get("x-forwarded-proto")?.trim();
37
- if (!origin && host && proto) {
38
- headers.set("origin", `${proto}://${host}`);
39
- }
40
- return headers;
41
- };
42
8
  const getSetCookies = (headers) => {
43
9
  const cookieHeaders = headers;
44
10
  if (typeof cookieHeaders.getSetCookie === "function") {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/next/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/next/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type BuildForwardHeadersInput = {
2
+ extra?: readonly string[];
3
+ headers: Headers;
4
+ };
5
+ export declare const FORWARD_HEADERS: readonly ["accept-language", "cf-connecting-ip", "origin", "referer", "sec-ch-ua", "sec-ch-ua-mobile", "sec-ch-ua-platform", "sec-fetch-dest", "sec-fetch-mode", "sec-fetch-site", "sec-fetch-user", "true-client-ip", "user-agent", "x-forwarded-for", "x-forwarded-host", "x-forwarded-port", "x-forwarded-proto", "x-real-ip"];
6
+ export declare const buildForwardHeaders: ({ extra, headers: incoming, }: BuildForwardHeadersInput) => Headers;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/headers/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAAG;IACnC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,eAAe,mUAmBlB,CAAC;AAEX,eAAO,MAAM,mBAAmB,GAAI,+BAGjC,wBAAwB,KAAG,OAoB7B,CAAC"}
@@ -0,0 +1,37 @@
1
+ export const FORWARD_HEADERS = [
2
+ "accept-language",
3
+ "cf-connecting-ip",
4
+ "origin",
5
+ "referer",
6
+ "sec-ch-ua",
7
+ "sec-ch-ua-mobile",
8
+ "sec-ch-ua-platform",
9
+ "sec-fetch-dest",
10
+ "sec-fetch-mode",
11
+ "sec-fetch-site",
12
+ "sec-fetch-user",
13
+ "true-client-ip",
14
+ "user-agent",
15
+ "x-forwarded-for",
16
+ "x-forwarded-host",
17
+ "x-forwarded-port",
18
+ "x-forwarded-proto",
19
+ "x-real-ip",
20
+ ];
21
+ export const buildForwardHeaders = ({ extra = [], headers: incoming, }) => {
22
+ const headers = new Headers();
23
+ for (const name of [...FORWARD_HEADERS, ...extra]) {
24
+ const value = incoming.get(name);
25
+ if (value?.trim()) {
26
+ headers.set(name, value);
27
+ }
28
+ }
29
+ const origin = headers.get("origin")?.trim();
30
+ const host = headers.get("x-forwarded-host")?.trim();
31
+ const proto = headers.get("x-forwarded-proto")?.trim();
32
+ if (!origin && host && proto) {
33
+ headers.set("origin", `${proto}://${host}`);
34
+ }
35
+ return headers;
36
+ };
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/headers/index.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,iBAAiB;IACjB,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,WAAW;IACX,kBAAkB;IAClB,oBAAoB;IACpB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,WAAW;CACL,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAChC,KAAK,GAAG,EAAE,EACV,OAAO,EAAE,QAAQ,GACM,EAAW,EAAE;IACpC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,eAAe,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC;IAEvD,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,MAAM,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gauts/auth",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "Database-backed password, session, and social authentication for Node.js.",
5
5
  "license": "MIT",
6
6
  "author": "GVALFER",
@@ -68,6 +68,10 @@
68
68
  "types": "./dist/adapters/next/index.d.ts",
69
69
  "import": "./dist/adapters/next/index.js"
70
70
  },
71
+ "./headers": {
72
+ "types": "./dist/headers/index.d.ts",
73
+ "import": "./dist/headers/index.js"
74
+ },
71
75
  "./providers": {
72
76
  "types": "./dist/providers/index.d.ts",
73
77
  "import": "./dist/providers/index.js"