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
+1 -1
View File
@@ -1,5 +1,5 @@
{
"name": "bknd-cli",
"name": "userbase-cli",
"type": "module",
"bin": "./dist/cli/index.js",
"version": "0.0.7",
+1 -1
View File
@@ -1,4 +1,4 @@
# bknd-plasmic
# userbase-plasmic
To install dependencies:
+3 -3
View File
@@ -1,5 +1,5 @@
{
"name": "@bknd/plasmic",
"name": "@userbase/plasmic",
"version": "0.5.1",
"type": "module",
"sideEffects": false,
@@ -19,12 +19,12 @@
"dependencies": {},
"devDependencies": {
"@types/bun": "latest",
"bknd": "workspace:*",
"userbase": "workspace:*",
"tsdx": "^0.14.1",
"typescript": "^5.0.0"
},
"peerDependencies": {
"bknd": "*",
"userbase": "*",
"react": ">=18",
"react-dom": ">=18",
"@plasmicapp/host": ">=1.0.0",
+2 -1
View File
@@ -1,3 +1,4 @@
import { type CodeComponentMeta, type ComponentMeta, registerComponent } from "@plasmicapp/host";
// biome-ignore lint/style/useImportType: <explanation>
import React from "react";
@@ -225,7 +226,7 @@ export function registerImage(
export const ImageMeta: CodeComponentMeta<ImageProps> = {
name: "ImageLazy",
importPath: "@bknd/plasmic",
importPath: "@userbase/plasmic",
props: {
src: {
type: "imageUrl",
@@ -89,7 +89,7 @@ export function registerLazyRender(
export const LazyRenderMeta: CodeComponentMeta<LazyRenderProps> = {
name: "LazyRender",
importPath: "@bknd/plasmic",
importPath: "@userbase/plasmic",
props: {
forceLoad: {
type: "boolean",
@@ -5,13 +5,13 @@ import {
usePlasmicCanvasContext
} from "@plasmicapp/host";
import { usePlasmicQueryData } from "@plasmicapp/loader-react";
import { useApi, useEntityQuery } from "bknd/client";
import type { RepoQueryIn } from "bknd/data";
import { useApi, useEntityQuery } from "userbase/client";
import type { RepoQueryIn } from "userbase/data";
// biome-ignore lint/style/useImportType: <explanation>
import React from "react";
import { usePlasmicBkndContext } from "../../contexts/BkndContext";
import { usePlasmicUserbaseContext } from "../../contexts/UserbaseContext";
type BkndDataProps = {
type UserbaseDataProps = {
children?: React.ReactNode;
loading?: React.ReactNode;
error?: React.ReactNode;
@@ -51,7 +51,7 @@ const EmptyComponent = ({ empty }: { empty?: React.ReactNode }) => {
return empty ? <>{empty}</> : <>No data</>;
};
export function BkndData({
export function UserbaseData({
children,
loading,
error,
@@ -73,10 +73,10 @@ export function BkndData({
preview,
previewSlot,
...props
}: BkndDataProps) {
//console.log("--bknd data");
}: UserbaseDataProps) {
//console.log("--userbase data");
const inEditor = !!usePlasmicCanvasContext();
const plasmicContext = usePlasmicBkndContext();
const plasmicContext = usePlasmicUserbaseContext();
if (inEditor && preview) {
let Component: React.ReactNode;
@@ -239,22 +239,22 @@ const ModeSWR = ({ children, loading, error, dataName, entityId, empty, entity }
);
};
export function registerBkndData(
export function registerUserbaseData(
loader?: { registerComponent: typeof registerComponent },
customMeta?: ComponentMeta<BkndDataProps>
customMeta?: ComponentMeta<UserbaseDataProps>
) {
if (loader) {
loader.registerComponent(BkndData, customMeta ?? BkndDataMeta);
loader.registerComponent(UserbaseData, customMeta ?? UserbaseDataMeta);
} else {
registerComponent(BkndData, customMeta ?? BkndDataMeta);
registerComponent(UserbaseData, customMeta ?? UserbaseDataMeta);
}
}
export const BkndDataMeta: ComponentMeta<BkndDataProps> = {
export const UserbaseDataMeta: ComponentMeta<UserbaseDataProps> = {
name: "BKND Data",
importName: "BkndData",
importName: "UserbaseData",
section: "BKND",
importPath: "@bknd/plasmic",
importPath: "@userbase/plasmic",
providesData: true,
props: {
entity: {
+1 -1
View File
@@ -1,3 +1,3 @@
export { BkndData, BkndDataMeta } from "./data/BkndData";
export { UserbaseData, UserbaseDataMeta } from "./data/UserbaseData";
export { Image, ImageMeta } from "./Image";
export { LazyRender, LazyRenderMeta } from "./LazyRender";
+23 -23
View File
@@ -5,39 +5,39 @@ import {
registerGlobalContext,
usePlasmicCanvasContext
} from "@plasmicapp/host";
import type { AppConfig } from "bknd";
import type { AppConfig } from "userbase";
// @ts-ignore
import { ClientProvider, useApi, useAuth, useBaseUrl } from "bknd/client";
import { ClientProvider, useApi, useAuth, useBaseUrl } from "userbase/client";
// biome-ignore lint/style/useImportType: <explanation>
import React from "react";
import { createContext, useContext, useEffect, useMemo, useState } from "react";
// Users will be able to set these props in Studio.
interface BkndGlobalContextProps {
interface UserbaseGlobalContextProps {
// You might use this to override the auth URL to a test or local URL.
baseUrl?: string;
appConfig?: AppConfig;
auth: any; // @todo: add typings
}
type BkndContextProps = {
type UserbaseContextProps = {
baseUrl?: string;
initialAuth?: any;
};
const BkndContextContext = createContext<BkndGlobalContextProps>({} as any);
BkndContextContext.displayName = "BkndContext";
const UserbaseContextContext = createContext<UserbaseGlobalContextProps>({} as any);
UserbaseContextContext.displayName = "UserbaseContext";
export const BkndContext = ({
export const UserbaseContext = ({
children,
baseUrl,
initialAuth
}: React.PropsWithChildren<BkndContextProps>) => {
}: React.PropsWithChildren<UserbaseContextProps>) => {
const auth = useAuth();
const baseurl = baseUrl ?? useBaseUrl();
const api = useApi(baseurl);
const [data, setData] = useState<BkndGlobalContextProps>({
const [data, setData] = useState<UserbaseGlobalContextProps>({
baseUrl: baseurl,
auth: auth ?? initialAuth,
appConfig: undefined
@@ -67,37 +67,37 @@ export const BkndContext = ({
[baseUrl]
);
console.log("plasmic.bknd.context", { baseurl });
console.log("plasmic.userbase.context", { baseurl });
return (
<GlobalActionsProvider contextName="BkndContext" actions={actions}>
<BkndContextContext.Provider value={data}>
<DataProvider name="bknd" data={data}>
<GlobalActionsProvider contextName="UserbaseContext" actions={actions}>
<UserbaseContextContext.Provider value={data}>
<DataProvider name="userbase" data={data}>
<ClientProvider baseUrl={data.baseUrl}>{children}</ClientProvider>
</DataProvider>
</BkndContextContext.Provider>
</UserbaseContextContext.Provider>
</GlobalActionsProvider>
);
};
export function usePlasmicBkndContext() {
const context = useContext(BkndContextContext);
export function usePlasmicUserbaseContext() {
const context = useContext(UserbaseContextContext);
return context;
}
export function registerBkndContext(
export function registerUserbaseContext(
loader?: { registerGlobalContext: typeof registerGlobalContext },
customMeta?: GlobalContextMeta<BkndContextProps>
customMeta?: GlobalContextMeta<UserbaseContextProps>
) {
if (loader) {
loader.registerGlobalContext(BkndContext, customMeta ?? BkndContextMeta);
loader.registerGlobalContext(UserbaseContext, customMeta ?? UserbaseContextMeta);
} else {
registerGlobalContext(BkndContext, customMeta ?? BkndContextMeta);
registerGlobalContext(UserbaseContext, customMeta ?? UserbaseContextMeta);
}
}
export const BkndContextMeta: GlobalContextMeta<BkndContextProps> = {
name: "BkndContext",
importPath: "@bknd/plasmic",
export const UserbaseContextMeta: GlobalContextMeta<UserbaseContextProps> = {
name: "UserbaseContext",
importPath: "@userbase/plasmic",
props: { baseUrl: { type: "string" }, initialAuth: { type: "object" } },
providesData: true,
globalActions: {
+1 -1
View File
@@ -1 +1 @@
export { BkndContext, BkndContextMeta } from "./BkndContext";
export { UserbaseContext, UserbaseContextMeta } from "./UserbaseContext";
+5 -5
View File
@@ -1,17 +1,17 @@
import type { registerComponent, registerGlobalContext } from "@plasmicapp/host";
import { registerImage } from "./components/Image";
import { registerLazyRender } from "./components/LazyRender";
import { registerBkndData } from "./components/data/BkndData";
import { registerBkndContext } from "./contexts/BkndContext";
import { registerUserbaseData } from "./components/data/UserbaseData";
import { registerUserbaseContext } from "./contexts/UserbaseContext";
export function registerAll(loader?: {
registerComponent: typeof registerComponent;
registerGlobalContext: typeof registerGlobalContext;
}) {
registerBkndData(loader);
registerBkndContext(loader);
registerUserbaseData(loader);
registerUserbaseContext(loader);
registerImage(loader);
registerLazyRender(loader);
}
export { registerBkndData, registerBkndContext };
export { registerUserbaseData, registerUserbaseContext };
+1 -1
View File
@@ -47,7 +47,7 @@ export function getStaticProps(PLASMIC: TPlasmic, opts?: TGetStaticPropsOptions)
}
const globalContextsProps = {
bkndContextProps: {
userbaseContextProps: {
baseUrl
}
};
+1 -1
View File
@@ -21,5 +21,5 @@
"tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo"
},
"include": ["./src/**/*"],
"exclude": ["bknd", "dist", "node_modules"]
"exclude": ["userbase", "dist", "node_modules"]
}