hylekit 1.0.3 → 1.0.4

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.
Files changed (54) hide show
  1. package/README.md +126 -59
  2. package/dist/bff/index.cjs +5 -139
  3. package/dist/bff/index.cjs.map +1 -1
  4. package/dist/bff/index.d.cts +2 -1
  5. package/dist/bff/index.d.ts +2 -1
  6. package/dist/bff/index.js +5 -145
  7. package/dist/bff/index.js.map +1 -1
  8. package/dist/client/index.cjs +58 -0
  9. package/dist/client/index.cjs.map +1 -0
  10. package/dist/client/index.d.cts +1530 -0
  11. package/dist/client/index.d.ts +1530 -0
  12. package/dist/client/index.js +31 -0
  13. package/dist/client/index.js.map +1 -0
  14. package/dist/client/nextjs.cjs +3 -214
  15. package/dist/client/nextjs.cjs.map +1 -1
  16. package/dist/client/nextjs.d.cts +4 -97
  17. package/dist/client/nextjs.d.ts +4 -97
  18. package/dist/client/nextjs.js +2 -218
  19. package/dist/client/nextjs.js.map +1 -1
  20. package/dist/client/sveltekit.cjs +3 -201
  21. package/dist/client/sveltekit.cjs.map +1 -1
  22. package/dist/client/sveltekit.d.cts +3 -72
  23. package/dist/client/sveltekit.d.ts +3 -72
  24. package/dist/client/sveltekit.js +2 -205
  25. package/dist/client/sveltekit.js.map +1 -1
  26. package/dist/{index-DYW73KK3.d.cts → index-B-5TEr94.d.cts} +28 -2
  27. package/dist/{index-DYW73KK3.d.ts → index-B-5TEr94.d.ts} +28 -2
  28. package/dist/index.cjs +276 -262
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.cts +110 -3272
  31. package/dist/index.d.ts +110 -3272
  32. package/dist/index.js +270 -258
  33. package/dist/index.js.map +1 -1
  34. package/dist/server/express.cjs +71 -80
  35. package/dist/server/express.cjs.map +1 -1
  36. package/dist/server/express.d.cts +18 -6
  37. package/dist/server/express.d.ts +18 -6
  38. package/dist/server/express.js +70 -86
  39. package/dist/server/express.js.map +1 -1
  40. package/dist/server/nextjs.cjs +107 -0
  41. package/dist/server/nextjs.cjs.map +1 -0
  42. package/dist/server/nextjs.d.cts +90 -0
  43. package/dist/server/nextjs.d.ts +90 -0
  44. package/dist/server/nextjs.js +82 -0
  45. package/dist/server/nextjs.js.map +1 -0
  46. package/dist/server/sveltekit.cjs +94 -0
  47. package/dist/server/sveltekit.cjs.map +1 -0
  48. package/dist/server/sveltekit.d.cts +68 -0
  49. package/dist/server/sveltekit.d.ts +68 -0
  50. package/dist/server/sveltekit.js +69 -0
  51. package/dist/server/sveltekit.js.map +1 -0
  52. package/dist/{types-GOn9sn7-.d.ts → types-Wucl0qmN.d.cts} +1 -8
  53. package/dist/{types-BHiK1JUX.d.cts → types-Wucl0qmN.d.ts} +1 -8
  54. package/package.json +22 -6
@@ -1,18 +1,12 @@
1
1
  import * as nanostores from 'nanostores';
2
2
  import * as _better_fetch_fetch from '@better-fetch/fetch';
3
3
  import * as better_auth from 'better-auth';
4
- import { Handle, RequestEvent } from '@sveltejs/kit';
5
- import { S as SessionResult, a as SessionData, d as db } from '../types-GOn9sn7-.js';
6
- export { U as UserInfo } from '../types-GOn9sn7-.js';
7
- import '@libsql/client';
8
- import 'drizzle-orm/libsql';
9
- import '../schema-ph9L8QMm.js';
10
- import 'drizzle-orm';
11
- import 'drizzle-orm/sqlite-core';
4
+ export { a as SessionData, S as SessionResult, U as UserInfo } from '../types-Wucl0qmN.js';
12
5
 
13
6
  /**
14
7
  * Client-side Auth instance.
15
8
  * Use this in your Svelte components and client-side logic.
9
+ * This is safe to use on the client as it doesn't contain secrets.
16
10
  */
17
11
  declare const client: {
18
12
  /**
@@ -777,68 +771,5 @@ declare const client: {
777
771
  readonly MISSING_FIELD: "Field is required";
778
772
  };
779
773
  };
780
- /**
781
- * Server-side Auth instance.
782
- * Use this in your +page.server.ts, hooks.server.ts, and API routes.
783
- */
784
- declare const server: {
785
- /**
786
- * The underlying BetterAuth instance.
787
- */
788
- auth: better_auth.Auth<{
789
- database: (options: better_auth.BetterAuthOptions) => better_auth.DBAdapter<better_auth.BetterAuthOptions>;
790
- baseURL: string | undefined;
791
- secret: string | undefined;
792
- trustedOrigins: string[] | undefined;
793
- socialProviders: {
794
- google: {
795
- clientId: string;
796
- clientSecret: string;
797
- };
798
- };
799
- session: {
800
- expiresIn: number;
801
- updateAge: number;
802
- cookieCache: {
803
- enabled: true;
804
- maxAge: number;
805
- };
806
- };
807
- }>;
808
- /**
809
- * SvelteKit request handler for auth routes.
810
- * Place this in `src/routes/api/auth/[...auth]/+server.ts`
811
- */
812
- handler: {
813
- GET: (event: {
814
- request: Request;
815
- }) => Response | Promise<Response>;
816
- POST: (event: {
817
- request: Request;
818
- }) => Response | Promise<Response>;
819
- };
820
- /**
821
- * Creates a SvelteKit handle hook for session management.
822
- */
823
- createHandle: () => Handle;
824
- /**
825
- * Get session from request event.
826
- */
827
- getSession: (event: RequestEvent) => Promise<SessionResult>;
828
- /**
829
- * Check if user is authenticated.
830
- */
831
- isAuthenticated: (event: RequestEvent) => Promise<boolean>;
832
- /**
833
- * Wraps a function to ensure the user is authenticated before execution.
834
- * Injects the user, session, and db into the first argument.
835
- */
836
- makeAuthenticatedCall: <TArgs extends any[], TReturn>(fn: (ctx: {
837
- user: SessionData["user"];
838
- session: SessionData["session"];
839
- db: typeof db;
840
- event: RequestEvent;
841
- }, ...args: TArgs) => Promise<TReturn>) => (event: RequestEvent, ...args: TArgs) => Promise<TReturn>;
842
- };
843
774
 
844
- export { SessionData, SessionResult, client, server };
775
+ export { client };
@@ -1,217 +1,14 @@
1
- var __defProp = Object.defineProperty;
2
- var __export = (target, all) => {
3
- for (var name in all)
4
- __defProp(target, name, { get: all[name], enumerable: true });
5
- };
6
-
7
1
  // src/client/sveltekit.ts
8
- import { toSvelteKitHandler } from "better-auth/svelte-kit";
9
2
  import { createAuthClient } from "better-auth/svelte";
10
-
11
- // src/lib/auth.ts
12
- import { betterAuth } from "better-auth";
13
- import { drizzleAdapter } from "better-auth/adapters/drizzle";
14
-
15
- // src/lib/db.ts
16
- import { drizzle } from "drizzle-orm/libsql";
17
- import { createClient } from "@libsql/client";
18
-
19
- // src/lib/schema.ts
20
- var schema_exports = {};
21
- __export(schema_exports, {
22
- account: () => account,
23
- accountRelations: () => accountRelations,
24
- session: () => session,
25
- sessionRelations: () => sessionRelations,
26
- user: () => user,
27
- userRelations: () => userRelations,
28
- verification: () => verification
29
- });
30
- import { relations, sql } from "drizzle-orm";
31
- import { sqliteTable, text, integer, index } from "drizzle-orm/sqlite-core";
32
- var user = sqliteTable("user", {
33
- id: text("id").primaryKey(),
34
- name: text("name").notNull(),
35
- email: text("email").notNull().unique(),
36
- emailVerified: integer("email_verified", { mode: "boolean" }).default(false).notNull(),
37
- image: text("image"),
38
- createdAt: integer("created_at", { mode: "timestamp_ms" }).default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`).notNull(),
39
- updatedAt: integer("updated_at", { mode: "timestamp_ms" }).default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`).$onUpdate(() => /* @__PURE__ */ new Date()).notNull()
40
- });
41
- var session = sqliteTable(
42
- "session",
43
- {
44
- id: text("id").primaryKey(),
45
- expiresAt: integer("expires_at", { mode: "timestamp_ms" }).notNull(),
46
- token: text("token").notNull().unique(),
47
- createdAt: integer("created_at", { mode: "timestamp_ms" }).default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`).notNull(),
48
- updatedAt: integer("updated_at", { mode: "timestamp_ms" }).$onUpdate(() => /* @__PURE__ */ new Date()).notNull(),
49
- ipAddress: text("ip_address"),
50
- userAgent: text("user_agent"),
51
- userId: text("user_id").notNull().references(() => user.id, { onDelete: "cascade" })
52
- },
53
- (table) => [index("session_userId_idx").on(table.userId)]
54
- );
55
- var account = sqliteTable(
56
- "account",
57
- {
58
- id: text("id").primaryKey(),
59
- accountId: text("account_id").notNull(),
60
- providerId: text("provider_id").notNull(),
61
- userId: text("user_id").notNull().references(() => user.id, { onDelete: "cascade" }),
62
- accessToken: text("access_token"),
63
- refreshToken: text("refresh_token"),
64
- idToken: text("id_token"),
65
- accessTokenExpiresAt: integer("access_token_expires_at", {
66
- mode: "timestamp_ms"
67
- }),
68
- refreshTokenExpiresAt: integer("refresh_token_expires_at", {
69
- mode: "timestamp_ms"
70
- }),
71
- scope: text("scope"),
72
- password: text("password"),
73
- createdAt: integer("created_at", { mode: "timestamp_ms" }).default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`).notNull(),
74
- updatedAt: integer("updated_at", { mode: "timestamp_ms" }).$onUpdate(() => /* @__PURE__ */ new Date()).notNull()
75
- },
76
- (table) => [index("account_userId_idx").on(table.userId)]
77
- );
78
- var verification = sqliteTable(
79
- "verification",
80
- {
81
- id: text("id").primaryKey(),
82
- identifier: text("identifier").notNull(),
83
- value: text("value").notNull(),
84
- expiresAt: integer("expires_at", { mode: "timestamp_ms" }).notNull(),
85
- createdAt: integer("created_at", { mode: "timestamp_ms" }).default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`).notNull(),
86
- updatedAt: integer("updated_at", { mode: "timestamp_ms" }).default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`).$onUpdate(() => /* @__PURE__ */ new Date()).notNull()
87
- },
88
- (table) => [index("verification_identifier_idx").on(table.identifier)]
89
- );
90
- var userRelations = relations(user, ({ many }) => ({
91
- sessions: many(session),
92
- accounts: many(account)
93
- }));
94
- var sessionRelations = relations(session, ({ one }) => ({
95
- user: one(user, {
96
- fields: [session.userId],
97
- references: [user.id]
98
- })
99
- }));
100
- var accountRelations = relations(account, ({ one }) => ({
101
- user: one(user, {
102
- fields: [account.userId],
103
- references: [user.id]
104
- })
105
- }));
106
-
107
- // src/lib/db.ts
108
- var client = createClient({
109
- url: process.env.HYLE_DATABASE_URL,
110
- authToken: process.env.HYLE_DATABASE_AUTH_TOKEN
111
- });
112
- var db = drizzle(client, { schema: schema_exports });
113
-
114
- // src/lib/auth.ts
115
- var auth = betterAuth({
116
- database: drizzleAdapter(db, {
117
- provider: "sqlite",
118
- schema: {
119
- ...schema_exports
120
- }
121
- }),
122
- baseURL: process.env.BETTER_AUTH_URL || process.env.PUBLIC_APP_URL || process.env.NEXT_PUBLIC_APP_URL,
123
- secret: process.env.BETTER_AUTH_SECRET,
124
- trustedOrigins: process.env.TRUSTED_ORIGINS ? process.env.TRUSTED_ORIGINS.split(",") : void 0,
125
- socialProviders: {
126
- google: {
127
- clientId: process.env.GOOGLE_CLIENT_ID || "",
128
- clientSecret: process.env.GOOGLE_CLIENT_SECRET || ""
129
- }
130
- },
131
- session: {
132
- expiresIn: 60 * 60 * 24 * 7,
133
- // 7 days
134
- updateAge: 60 * 60 * 24,
135
- // Update session every 24 hours
136
- cookieCache: {
137
- enabled: true,
138
- maxAge: 60 * 5
139
- // 5 minutes
140
- }
141
- }
142
- });
143
-
144
- // src/client/sveltekit.ts
145
- var handler = toSvelteKitHandler(auth);
146
3
  var authClient = createAuthClient();
147
- var client2 = {
4
+ var client = {
148
5
  ...authClient,
149
6
  /**
150
7
  * Alias for signIn.
151
8
  */
152
9
  login: authClient.signIn
153
10
  };
154
- var server = {
155
- /**
156
- * The underlying BetterAuth instance.
157
- */
158
- auth,
159
- /**
160
- * SvelteKit request handler for auth routes.
161
- * Place this in `src/routes/api/auth/[...auth]/+server.ts`
162
- */
163
- handler: {
164
- GET: handler,
165
- POST: handler
166
- },
167
- /**
168
- * Creates a SvelteKit handle hook for session management.
169
- */
170
- createHandle: () => {
171
- return async ({ event, resolve }) => {
172
- const session2 = await auth.api.getSession({
173
- headers: event.request.headers
174
- });
175
- event.locals.session = session2;
176
- event.locals.user = session2?.user ?? null;
177
- return resolve(event);
178
- };
179
- },
180
- /**
181
- * Get session from request event.
182
- */
183
- getSession: async (event) => {
184
- return auth.api.getSession({
185
- headers: event.request.headers
186
- });
187
- },
188
- /**
189
- * Check if user is authenticated.
190
- */
191
- isAuthenticated: async (event) => {
192
- const session2 = await auth.api.getSession({
193
- headers: event.request.headers
194
- });
195
- return session2 !== null;
196
- },
197
- /**
198
- * Wraps a function to ensure the user is authenticated before execution.
199
- * Injects the user, session, and db into the first argument.
200
- */
201
- makeAuthenticatedCall: (fn) => {
202
- return async (event, ...args) => {
203
- const session2 = await auth.api.getSession({
204
- headers: event.request.headers
205
- });
206
- if (!session2) {
207
- throw new Error("Unauthorized");
208
- }
209
- return fn({ user: session2.user, session: session2.session, db, event }, ...args);
210
- };
211
- }
212
- };
213
11
  export {
214
- client2 as client,
215
- server
12
+ client
216
13
  };
217
14
  //# sourceMappingURL=sveltekit.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client/sveltekit.ts","../../src/lib/auth.ts","../../src/lib/db.ts","../../src/lib/schema.ts"],"sourcesContent":["import { toSvelteKitHandler } from \"better-auth/svelte-kit\";\nimport { createAuthClient } from \"better-auth/svelte\";\nimport type { Handle, RequestEvent } from \"@sveltejs/kit\";\nimport { auth as betterAuthInstance } from \"../lib/auth\";\nimport { db } from \"../lib/db\";\nimport type { SessionResult, UserInfo, SessionData } from \"./types\";\n\nexport type { SessionResult, UserInfo, SessionData } from \"./types\";\n\nconst handler = toSvelteKitHandler(betterAuthInstance);\n\n// Initialize the Better Auth Client (for browser/client-side use)\nconst authClient = createAuthClient();\n\n/**\n * Client-side Auth instance.\n * Use this in your Svelte components and client-side logic.\n */\nexport const client = {\n ...authClient,\n /**\n * Alias for signIn.\n */\n login: authClient.signIn\n};\n\n/**\n * Server-side Auth instance.\n * Use this in your +page.server.ts, hooks.server.ts, and API routes.\n */\nexport const server = {\n /**\n * The underlying BetterAuth instance.\n */\n auth: betterAuthInstance,\n\n /**\n * SvelteKit request handler for auth routes.\n * Place this in `src/routes/api/auth/[...auth]/+server.ts`\n */\n handler: {\n GET: handler,\n POST: handler,\n },\n\n /**\n * Creates a SvelteKit handle hook for session management.\n */\n createHandle: (): Handle => {\n return async ({ event, resolve }) => {\n const session = await betterAuthInstance.api.getSession({\n headers: event.request.headers,\n });\n\n // Set on locals - consumer must extend App.Locals type\n (event.locals as Record<string, unknown>).session = session;\n (event.locals as Record<string, unknown>).user = session?.user ?? null;\n\n return resolve(event);\n };\n },\n\n /**\n * Get session from request event.\n */\n getSession: async (event: RequestEvent): Promise<SessionResult> => {\n return betterAuthInstance.api.getSession({\n headers: event.request.headers,\n });\n },\n\n /**\n * Check if user is authenticated.\n */\n isAuthenticated: async (event: RequestEvent): Promise<boolean> => {\n const session = await betterAuthInstance.api.getSession({\n headers: event.request.headers,\n });\n return session !== null;\n },\n\n /**\n * Wraps a function to ensure the user is authenticated before execution.\n * Injects the user, session, and db into the first argument.\n */\n makeAuthenticatedCall: <TArgs extends any[], TReturn>(\n fn: (ctx: { user: SessionData['user']; session: SessionData['session']; db: typeof db; event: RequestEvent }, ...args: TArgs) => Promise<TReturn>\n ) => {\n return async (event: RequestEvent, ...args: TArgs): Promise<TReturn> => {\n const session = await betterAuthInstance.api.getSession({\n headers: event.request.headers,\n });\n if (!session) {\n throw new Error(\"Unauthorized\");\n }\n return fn({ user: session.user, session: session.session, db, event }, ...args);\n }\n }\n};\n\n","import { betterAuth } from \"better-auth\";\nimport { drizzleAdapter } from \"better-auth/adapters/drizzle\";\nimport { db } from \"./db\";\nimport * as schema from \"./schema\";\n\nexport const auth = betterAuth({\n database: drizzleAdapter(db, {\n provider: \"sqlite\",\n schema: {\n ...schema\n }\n }),\n baseURL: process.env.BETTER_AUTH_URL || process.env.PUBLIC_APP_URL || process.env.NEXT_PUBLIC_APP_URL,\n secret: process.env.BETTER_AUTH_SECRET,\n trustedOrigins: process.env.TRUSTED_ORIGINS ? process.env.TRUSTED_ORIGINS.split(\",\") : undefined,\n socialProviders: {\n google: {\n clientId: process.env.GOOGLE_CLIENT_ID || \"\",\n clientSecret: process.env.GOOGLE_CLIENT_SECRET || \"\",\n },\n },\n session: {\n expiresIn: 60 * 60 * 24 * 7, // 7 days\n updateAge: 60 * 60 * 24, // Update session every 24 hours\n cookieCache: {\n enabled: true,\n maxAge: 60 * 5, // 5 minutes\n },\n },\n});\n","import { drizzle } from \"drizzle-orm/libsql\";\nimport { createClient } from \"@libsql/client\";\nimport * as schema from \"./schema\";\n\nconst client = createClient({\n url: process.env.HYLE_DATABASE_URL!,\n authToken: process.env.HYLE_DATABASE_AUTH_TOKEN!,\n});\n\nexport const db = drizzle(client, { schema });\n","import { relations, sql } from \"drizzle-orm\";\nimport { sqliteTable, text, integer, index } from \"drizzle-orm/sqlite-core\";\n\nexport const user = sqliteTable(\"user\", {\n id: text(\"id\").primaryKey(),\n name: text(\"name\").notNull(),\n email: text(\"email\").notNull().unique(),\n emailVerified: integer(\"email_verified\", { mode: \"boolean\" })\n .default(false)\n .notNull(),\n image: text(\"image\"),\n createdAt: integer(\"created_at\", { mode: \"timestamp_ms\" })\n .default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`)\n .notNull(),\n updatedAt: integer(\"updated_at\", { mode: \"timestamp_ms\" })\n .default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`)\n .$onUpdate(() => /* @__PURE__ */ new Date())\n .notNull(),\n});\n\nexport const session = sqliteTable(\n \"session\",\n {\n id: text(\"id\").primaryKey(),\n expiresAt: integer(\"expires_at\", { mode: \"timestamp_ms\" }).notNull(),\n token: text(\"token\").notNull().unique(),\n createdAt: integer(\"created_at\", { mode: \"timestamp_ms\" })\n .default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`)\n .notNull(),\n updatedAt: integer(\"updated_at\", { mode: \"timestamp_ms\" })\n .$onUpdate(() => /* @__PURE__ */ new Date())\n .notNull(),\n ipAddress: text(\"ip_address\"),\n userAgent: text(\"user_agent\"),\n userId: text(\"user_id\")\n .notNull()\n .references(() => user.id, { onDelete: \"cascade\" }),\n },\n (table) => [index(\"session_userId_idx\").on(table.userId)],\n);\n\nexport const account = sqliteTable(\n \"account\",\n {\n id: text(\"id\").primaryKey(),\n accountId: text(\"account_id\").notNull(),\n providerId: text(\"provider_id\").notNull(),\n userId: text(\"user_id\")\n .notNull()\n .references(() => user.id, { onDelete: \"cascade\" }),\n accessToken: text(\"access_token\"),\n refreshToken: text(\"refresh_token\"),\n idToken: text(\"id_token\"),\n accessTokenExpiresAt: integer(\"access_token_expires_at\", {\n mode: \"timestamp_ms\",\n }),\n refreshTokenExpiresAt: integer(\"refresh_token_expires_at\", {\n mode: \"timestamp_ms\",\n }),\n scope: text(\"scope\"),\n password: text(\"password\"),\n createdAt: integer(\"created_at\", { mode: \"timestamp_ms\" })\n .default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`)\n .notNull(),\n updatedAt: integer(\"updated_at\", { mode: \"timestamp_ms\" })\n .$onUpdate(() => /* @__PURE__ */ new Date())\n .notNull(),\n },\n (table) => [index(\"account_userId_idx\").on(table.userId)],\n);\n\nexport const verification = sqliteTable(\n \"verification\",\n {\n id: text(\"id\").primaryKey(),\n identifier: text(\"identifier\").notNull(),\n value: text(\"value\").notNull(),\n expiresAt: integer(\"expires_at\", { mode: \"timestamp_ms\" }).notNull(),\n createdAt: integer(\"created_at\", { mode: \"timestamp_ms\" })\n .default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`)\n .notNull(),\n updatedAt: integer(\"updated_at\", { mode: \"timestamp_ms\" })\n .default(sql`(cast(unixepoch('subsecond') * 1000 as integer))`)\n .$onUpdate(() => /* @__PURE__ */ new Date())\n .notNull(),\n },\n (table) => [index(\"verification_identifier_idx\").on(table.identifier)],\n);\n\nexport const userRelations = relations(user, ({ many }) => ({\n sessions: many(session),\n accounts: many(account),\n}));\n\nexport const sessionRelations = relations(session, ({ one }) => ({\n user: one(user, {\n fields: [session.userId],\n references: [user.id],\n }),\n}));\n\nexport const accountRelations = relations(account, ({ one }) => ({\n user: one(user, {\n fields: [account.userId],\n references: [user.id],\n }),\n}));\n"],"mappings":"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","names":["client","session"]}
1
+ {"version":3,"sources":["../../src/client/sveltekit.ts"],"sourcesContent":["import { createAuthClient } from \"better-auth/svelte\";\nexport type { SessionResult, UserInfo, SessionData } from \"./types\";\n\n// Initialize the Better Auth Client (for browser/client-side use)\nconst authClient = createAuthClient();\n\n/**\n * Client-side Auth instance.\n * Use this in your Svelte components and client-side logic.\n * This is safe to use on the client as it doesn't contain secrets.\n */\nexport const client = {\n ...authClient,\n /**\n * Alias for signIn.\n */\n login: authClient.signIn\n};\n"],"mappings":";AAAA,SAAS,wBAAwB;AAIjC,IAAM,aAAa,iBAAiB;AAO7B,IAAM,SAAS;AAAA,EAClB,GAAG;AAAA;AAAA;AAAA;AAAA,EAIH,OAAO,WAAW;AACtB;","names":[]}
@@ -1,3 +1,4 @@
1
+ import * as better_auth from 'better-auth';
1
2
  import { RequestEvent } from '@sveltejs/kit';
2
3
 
3
4
  interface BffClientConfig {
@@ -44,8 +45,13 @@ declare class SvelteKitBffClient extends BffClientBase {
44
45
  }
45
46
  declare const createSvelteKitBff: (baseUrlOrConfig: string | BffClientConfig) => SvelteKitBffClient;
46
47
 
48
+ type HyleAuth = ReturnType<typeof better_auth.betterAuth>;
49
+ /**
50
+ * Next.js BFF Client that requires an auth instance.
51
+ */
47
52
  declare class NextJsBffClient extends BffClientBase {
48
- constructor(config: BffClientConfig);
53
+ private auth;
54
+ constructor(auth: HyleAuth, config: BffClientConfig);
49
55
  private getAuthHeaders;
50
56
  get<T>(path: string, options?: RequestOptions): Promise<T>;
51
57
  post<T>(path: string, body?: any, options?: RequestOptions): Promise<T>;
@@ -53,6 +59,26 @@ declare class NextJsBffClient extends BffClientBase {
53
59
  patch<T>(path: string, body?: any, options?: RequestOptions): Promise<T>;
54
60
  delete<T>(path: string, options?: RequestOptions): Promise<T>;
55
61
  }
56
- declare const createNextJsBff: (baseUrlOrConfig: string | BffClientConfig) => NextJsBffClient;
62
+ /**
63
+ * Creates a Next.js BFF client for making authenticated requests to your Express API.
64
+ *
65
+ * @param auth - Auth instance created by createAuth()
66
+ * @param baseUrlOrConfig - Base URL string or full config object
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * // In lib/bff.ts
71
+ * import { createDb, createAuth, createNextJsBff } from "hylekit";
72
+ *
73
+ * const db = createDb({ url: process.env.HYLE_DATABASE_URL!, authToken: process.env.HYLE_DATABASE_AUTH_TOKEN });
74
+ * const auth = createAuth(db, { ... });
75
+ *
76
+ * export const bff = createNextJsBff(auth, process.env.EXPRESS_API_URL!);
77
+ *
78
+ * // Usage in server components
79
+ * const data = await bff.get("/api/data");
80
+ * ```
81
+ */
82
+ declare const createNextJsBff: (auth: HyleAuth, baseUrlOrConfig: string | BffClientConfig) => NextJsBffClient;
57
83
 
58
84
  export { type BffClientConfig as B, NextJsBffClient as N, type RequestOptions as R, SvelteKitBffClient as S, createSvelteKitBff as a, createNextJsBff as c };
@@ -1,3 +1,4 @@
1
+ import * as better_auth from 'better-auth';
1
2
  import { RequestEvent } from '@sveltejs/kit';
2
3
 
3
4
  interface BffClientConfig {
@@ -44,8 +45,13 @@ declare class SvelteKitBffClient extends BffClientBase {
44
45
  }
45
46
  declare const createSvelteKitBff: (baseUrlOrConfig: string | BffClientConfig) => SvelteKitBffClient;
46
47
 
48
+ type HyleAuth = ReturnType<typeof better_auth.betterAuth>;
49
+ /**
50
+ * Next.js BFF Client that requires an auth instance.
51
+ */
47
52
  declare class NextJsBffClient extends BffClientBase {
48
- constructor(config: BffClientConfig);
53
+ private auth;
54
+ constructor(auth: HyleAuth, config: BffClientConfig);
49
55
  private getAuthHeaders;
50
56
  get<T>(path: string, options?: RequestOptions): Promise<T>;
51
57
  post<T>(path: string, body?: any, options?: RequestOptions): Promise<T>;
@@ -53,6 +59,26 @@ declare class NextJsBffClient extends BffClientBase {
53
59
  patch<T>(path: string, body?: any, options?: RequestOptions): Promise<T>;
54
60
  delete<T>(path: string, options?: RequestOptions): Promise<T>;
55
61
  }
56
- declare const createNextJsBff: (baseUrlOrConfig: string | BffClientConfig) => NextJsBffClient;
62
+ /**
63
+ * Creates a Next.js BFF client for making authenticated requests to your Express API.
64
+ *
65
+ * @param auth - Auth instance created by createAuth()
66
+ * @param baseUrlOrConfig - Base URL string or full config object
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * // In lib/bff.ts
71
+ * import { createDb, createAuth, createNextJsBff } from "hylekit";
72
+ *
73
+ * const db = createDb({ url: process.env.HYLE_DATABASE_URL!, authToken: process.env.HYLE_DATABASE_AUTH_TOKEN });
74
+ * const auth = createAuth(db, { ... });
75
+ *
76
+ * export const bff = createNextJsBff(auth, process.env.EXPRESS_API_URL!);
77
+ *
78
+ * // Usage in server components
79
+ * const data = await bff.get("/api/data");
80
+ * ```
81
+ */
82
+ declare const createNextJsBff: (auth: HyleAuth, baseUrlOrConfig: string | BffClientConfig) => NextJsBffClient;
57
83
 
58
84
  export { type BffClientConfig as B, NextJsBffClient as N, type RequestOptions as R, SvelteKitBffClient as S, createSvelteKitBff as a, createNextJsBff as c };