bknd is dead long live userbase
Run Tests / test (pull_request) Successful in 4m57s

This commit is contained in:
2026-09-27 19:34:06 +05:30
parent 05e0086fcd
commit 0bfcb5ad71
529 changed files with 2385 additions and 2924 deletions
+9 -9
View File
@@ -1,7 +1,7 @@
import { registerLocalMediaAdapter } from "bknd/adapter/node";
import type { BkndConfig } from "bknd/adapter";
import { boolean, em, entity, text } from "bknd";
import { secureRandomString } from "bknd/utils";
import { registerLocalMediaAdapter } from "userbase/adapter/node";
import type { UserbaseConfig } from "userbase/adapter";
import { boolean, em, entity, text } from "userbase";
import { secureRandomString } from "userbase/utils";
// since we're running in node, we can register the local media adapter
const local = registerLocalMediaAdapter();
@@ -15,7 +15,7 @@ const schema = em({
// register your schema to get automatic type completion
type Database = (typeof schema)["DB"];
declare module "bknd" {
declare module "userbase" {
interface DB extends Database {}
}
@@ -31,7 +31,7 @@ export default {
auth: {
enabled: true,
jwt: {
issuer: "bknd-waku-example",
issuer: "userbase-waku-example",
secret: secureRandomString(64),
},
},
@@ -48,15 +48,15 @@ export default {
seed: async (ctx) => {
// create some entries
await ctx.em.mutator("todos").insertMany([
{ title: "Learn bknd", done: true },
{ title: "Learn userbase", done: true },
{ title: "Build something cool", done: false },
]);
// and create a user
await ctx.app.module.auth.createUser({
email: "test@bknd.io",
email: "test@userbase.io",
password: "12345678",
});
},
},
} as const satisfies BkndConfig<{ DB_URL?: string }>;
} as const satisfies UserbaseConfig<{ DB_URL?: string }>;
+1 -1
View File
@@ -13,7 +13,7 @@
"react-dom": "19.0.0",
"react-server-dom-webpack": "19.0.0",
"waku": "0.23.3",
"bknd": "file:../../app"
"userbase": "file:../../app"
},
"devDependencies": {
"@tailwindcss/postcss": "4.1.10",
+2 -2
View File
@@ -1,5 +1,5 @@
import { createFrameworkApp } from "bknd/adapter";
import config from "../bknd.config";
import { createFrameworkApp } from "userbase/adapter";
import config from "../userbase.config";
export async function getApp() {
return await createFrameworkApp(config, process.env, {
+1 -1
View File
@@ -1,7 +1,7 @@
"use server";
import { getContext } from "waku/middleware/context";
import { getApi } from "../../bknd";
import { getApi } from "../../userbase";
export { unstable_rerenderRoute as rerender } from "waku/router/server";
+1 -1
View File
@@ -2,7 +2,7 @@ import "../styles.css";
import type { ReactNode } from "react";
import { ClientProvider } from "bknd/client";
import { ClientProvider } from "userbase/client";
type RootLayoutProps = { children: ReactNode };
+1 -1
View File
@@ -11,7 +11,7 @@ export default async function HomePage() {
const api = await getUserApi({ verify: true });
// @ts-ignore
const styles = await import("bknd/dist/styles.css?inline").then((m) => m.default);
const styles = await import("userbase/dist/styles.css?inline").then((m) => m.default);
return (
<>
<style>{styles}</style>
@@ -1,8 +1,8 @@
"use client";
import { Admin, type BkndAdminProps } from "bknd/ui";
import { Admin, type UserbaseAdminProps } from "userbase/ui";
export const AdminImpl = (props: BkndAdminProps) => {
export const AdminImpl = (props: UserbaseAdminProps) => {
if (typeof window === "undefined") {
return null;
}
@@ -1,12 +1,12 @@
"use client";
import type { BkndAdminProps } from "bknd/ui";
import type { UserbaseAdminProps } from "userbase/ui";
import { lazy } from "react";
import { BrowserOnly } from "../../../lib/waku/client";
const AdminImpl = import.meta.env.SSR ? undefined : lazy(() => import("./AdminImpl"));
export const AdminLoader = (props: BkndAdminProps) => {
export const AdminLoader = (props: UserbaseAdminProps) => {
return (
<BrowserOnly fallback={null}>
{/* @ts-expect-error */}
+1 -1
View File
@@ -1,4 +1,4 @@
import { getApp } from "../../bknd";
import { getApp } from "../../userbase";
export default async function handler(request: Request) {
return (await getApp()).fetch(request);