@ingram-tech/nk-auth 0.5.0 → 0.6.0
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 +8 -3
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +18 -1
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ only what you need from focused subpaths.
|
|
|
17
17
|
| `createAuthPool` (`./pool`) | `pg` Pool with optional SSL CA verification |
|
|
18
18
|
| `bcryptPassword`, `makeEmailSenders`, `makePasskeyOptions`, `uuidGenerateId` (`./`) | password migration, email hooks, passkeys, UUID ids |
|
|
19
19
|
| `createServerSupabase` (`./`) | RLS-aware supabase-js client (attaches the session JWT) |
|
|
20
|
-
| `createAuthHelpers` (`./server`) | validated App Router session helpers: `getSession` / `getUser` / `requireUser` / `redirectIfAuthenticated` |
|
|
20
|
+
| `createAuthHelpers` (`./server`) | validated App Router session helpers: `getSession` / `getUser` / `requireSession` / `requireUser` / `redirectIfAuthenticated` |
|
|
21
21
|
| `createAuthMiddleware` (`./middleware`) | loop-safe edge middleware that only gates *unauthenticated* users off protected paths |
|
|
22
22
|
|
|
23
23
|
> **Supabase Auth → Better Auth + RLS migration?** Read
|
|
@@ -190,8 +190,13 @@ The validated layer (server helpers) — bind once to your instance:
|
|
|
190
190
|
import { createAuthHelpers } from "@ingram-tech/nk-auth/server";
|
|
191
191
|
import { auth } from "@/lib/auth";
|
|
192
192
|
|
|
193
|
-
export const {
|
|
194
|
-
|
|
193
|
+
export const {
|
|
194
|
+
getSession,
|
|
195
|
+
getUser,
|
|
196
|
+
requireSession,
|
|
197
|
+
requireUser,
|
|
198
|
+
redirectIfAuthenticated,
|
|
199
|
+
} = createAuthHelpers(auth);
|
|
195
200
|
```
|
|
196
201
|
|
|
197
202
|
```tsx
|
package/dist/server.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ interface AuthLike<S extends SessionLike> {
|
|
|
17
17
|
export declare function createAuthHelpers<S extends SessionLike>(auth: AuthLike<S>): {
|
|
18
18
|
getSession: () => Promise<S | null>;
|
|
19
19
|
getUser: () => Promise<S["user"] | null>;
|
|
20
|
+
requireSession: (redirectTo?: string) => Promise<S>;
|
|
20
21
|
requireUser: (redirectTo?: string) => Promise<S["user"]>;
|
|
21
22
|
redirectIfAuthenticated: (to: string) => Promise<void>;
|
|
22
23
|
};
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAwBA,oEAAoE;AACpE,UAAU,WAAW;IACpB,IAAI,EAAE,OAAO,CAAC;CACd;AAED;;;;GAIG;AACH,UAAU,QAAQ,CAAC,CAAC,SAAS,WAAW;IACvC,GAAG,EAAE;QACJ,UAAU,EAAE,CAAC,KAAK,EAAE;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;KAC/D,CAAC;CACF;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;sBAE5C,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAwBA,oEAAoE;AACpE,UAAU,WAAW;IACpB,IAAI,EAAE,OAAO,CAAC;CACd;AAED;;;;GAIG;AACH,UAAU,QAAQ,CAAC,CAAC,SAAS,WAAW;IACvC,GAAG,EAAE;QACJ,UAAU,EAAE,CAAC,KAAK,EAAE;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;KAC/D,CAAC;CACF;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;sBAE5C,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;mBAgBpB,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;6CARG,OAAO,CAAC,CAAC,CAAC;0CAkBb,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;kCAa1B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;EAWjE"}
|
package/dist/server.js
CHANGED
|
@@ -26,6 +26,17 @@ export function createAuthHelpers(auth) {
|
|
|
26
26
|
async function getSession() {
|
|
27
27
|
return auth.api.getSession({ headers: await headers() });
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Require a session or redirect, returning the full validated session (use
|
|
31
|
+
* when the caller needs more than the user — session id, active org, …).
|
|
32
|
+
*/
|
|
33
|
+
async function requireSession(redirectTo = "/login") {
|
|
34
|
+
const session = await getSession();
|
|
35
|
+
// redirect() is typed `never`, so `session` narrows to non-null below.
|
|
36
|
+
if (!session)
|
|
37
|
+
redirect(redirectTo);
|
|
38
|
+
return session;
|
|
39
|
+
}
|
|
29
40
|
/** The authenticated user, or null. */
|
|
30
41
|
async function getUser() {
|
|
31
42
|
const session = await getSession();
|
|
@@ -53,6 +64,12 @@ export function createAuthHelpers(auth) {
|
|
|
53
64
|
if (await getSession())
|
|
54
65
|
redirect(to);
|
|
55
66
|
}
|
|
56
|
-
return {
|
|
67
|
+
return {
|
|
68
|
+
getSession,
|
|
69
|
+
getUser,
|
|
70
|
+
requireSession,
|
|
71
|
+
requireUser,
|
|
72
|
+
redirectIfAuthenticated,
|
|
73
|
+
};
|
|
57
74
|
}
|
|
58
75
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAkB3C,MAAM,UAAU,iBAAiB,CAAwB,IAAiB;IACzE,4DAA4D;IAC5D,KAAK,UAAU,UAAU;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,uCAAuC;IACvC,KAAK,UAAU,OAAO;QACrB,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;QACnC,OAAO,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,KAAK,UAAU,WAAW,CAAC,UAAU,GAAG,QAAQ;QAC/C,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;QAC7B,oEAAoE;QACpE,IAAI,CAAC,IAAI;YAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,KAAK,UAAU,uBAAuB,CAAC,EAAU;QAChD,IAAI,MAAM,UAAU,EAAE;YAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAkB3C,MAAM,UAAU,iBAAiB,CAAwB,IAAiB;IACzE,4DAA4D;IAC5D,KAAK,UAAU,UAAU;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,KAAK,UAAU,cAAc,CAAC,UAAU,GAAG,QAAQ;QAClD,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;QACnC,uEAAuE;QACvE,IAAI,CAAC,OAAO;YAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,uCAAuC;IACvC,KAAK,UAAU,OAAO;QACrB,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;QACnC,OAAO,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,KAAK,UAAU,WAAW,CAAC,UAAU,GAAG,QAAQ;QAC/C,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;QAC7B,oEAAoE;QACpE,IAAI,CAAC,IAAI;YAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,KAAK,UAAU,uBAAuB,CAAC,EAAU;QAChD,IAAI,MAAM,UAAU,EAAE;YAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACN,UAAU;QACV,OAAO;QACP,cAAc;QACd,WAAW;QACX,uBAAuB;KACvB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ingram-tech/nk-auth",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "The Ingram Better Auth foundation: composable presets (org, dual-shape JWT, Supabase RLS bridge, active-org hooks, pg pool) for Next.js sites.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|