From 7dd42fbff376dc069f5b829894e7218f45059774 Mon Sep 17 00:00:00 2001 From: dswbx Date: Thu, 23 Jan 2025 08:34:11 +0100 Subject: [PATCH 1/4] fixed schema updates to fail in nextjs envs due to lodash's merge --- app/__test__/modules/module-test-suite.ts | 2 + app/src/core/object/SchemaObject.ts | 26 ++++-- app/src/core/utils/objects.ts | 87 ++++++++++++++++-- app/src/data/AppData.ts | 17 +++- app/src/modules/Module.ts | 3 +- app/src/modules/ModuleManager.ts | 3 +- app/src/ui/routes/data/data.$entity.index.tsx | 2 +- bun.lockb | Bin 1064392 -> 1068368 bytes 8 files changed, 114 insertions(+), 26 deletions(-) diff --git a/app/__test__/modules/module-test-suite.ts b/app/__test__/modules/module-test-suite.ts index cf4926a..d4f0f95 100644 --- a/app/__test__/modules/module-test-suite.ts +++ b/app/__test__/modules/module-test-suite.ts @@ -2,6 +2,7 @@ import { beforeEach, describe, expect, it } from "bun:test"; import { Hono } from "hono"; import { Guard } from "../../src/auth"; +import { DebugLogger } from "../../src/core"; import { EventManager } from "../../src/core/events"; import { Default, stripMark } from "../../src/core/utils"; import { EntityManager } from "../../src/data"; @@ -17,6 +18,7 @@ export function makeCtx(overrides?: Partial): ModuleBuildCon emgr: new EventManager(), guard: new Guard(), flags: Module.ctx_flags, + logger: new DebugLogger(false), ...overrides }; } diff --git a/app/src/core/object/SchemaObject.ts b/app/src/core/object/SchemaObject.ts index 7c2e926..c8584bf 100644 --- a/app/src/core/object/SchemaObject.ts +++ b/app/src/core/object/SchemaObject.ts @@ -1,10 +1,10 @@ -import { cloneDeep, get, has, mergeWith, omit, set } from "lodash-es"; +import { get, has, omit, set } from "lodash-es"; import { Default, type Static, type TObject, getFullPathKeys, - mark, + mergeObjectWith, parse, stripMark } from "../utils"; @@ -33,7 +33,7 @@ export class SchemaObject { ) { this._default = Default(_schema, {} as any) as any; this._value = initial - ? parse(_schema, cloneDeep(initial as any), { + ? parse(_schema, structuredClone(initial as any), { forceParse: this.isForceParse(), skipMark: this.isForceParse() }) @@ -64,8 +64,12 @@ export class SchemaObject { return this._config; } + clone() { + return structuredClone(this._config); + } + async set(config: Static, noEmit?: boolean): Promise> { - const valid = parse(this._schema, cloneDeep(config) as any, { + const valid = parse(this._schema, structuredClone(config) as any, { forceParse: true, skipMark: this.isForceParse() }); @@ -114,7 +118,7 @@ export class SchemaObject { } async patch(path: string, value: any): Promise<[Partial>, Static]> { - const current = cloneDeep(this._config); + const current = this.clone(); const partial = path.length > 0 ? (set({}, path, value) as Partial>) : value; this.throwIfRestricted(partial); @@ -122,11 +126,13 @@ export class SchemaObject { // overwrite arrays and primitives, only deep merge objects // @ts-ignore - const config = mergeWith(current, partial, (objValue, srcValue) => { + //console.log("---alt:new", _jsonp(mergeObject(current, partial))); + const config = mergeObjectWith(current, partial, (objValue, srcValue) => { if (Array.isArray(objValue) && Array.isArray(srcValue)) { return srcValue; } }); + //console.log("---new", _jsonp(config)); //console.log("overwritePaths", this.options?.overwritePaths); if (this.options?.overwritePaths) { @@ -164,14 +170,14 @@ export class SchemaObject { } } - //console.log("patch", { path, value, partial, config, current }); + //console.log("patch", _jsonp({ path, value, partial, config, current })); const newConfig = await this.set(config); return [partial, newConfig]; } async overwrite(path: string, value: any): Promise<[Partial>, Static]> { - const current = cloneDeep(this._config); + const current = this.clone(); const partial = path.length > 0 ? (set({}, path, value) as Partial>) : value; this.throwIfRestricted(partial); @@ -192,7 +198,7 @@ export class SchemaObject { if (p.length > 1) { const parent = p.slice(0, -1).join("."); if (!has(this._config, parent)) { - console.log("parent", parent, JSON.stringify(this._config, null, 2)); + //console.log("parent", parent, JSON.stringify(this._config, null, 2)); throw new Error(`Parent path "${parent}" does not exist`); } } @@ -207,7 +213,7 @@ export class SchemaObject { throw new Error(`Path "${path}" does not exist`); } - const current = cloneDeep(this._config); + const current = this.clone(); const removed = get(current, path) as Partial>; const config = omit(current, path); const newConfig = await this.set(config); diff --git a/app/src/core/utils/objects.ts b/app/src/core/utils/objects.ts index f8ae7a0..ab5b807 100644 --- a/app/src/core/utils/objects.ts +++ b/app/src/core/utils/objects.ts @@ -4,6 +4,14 @@ export function _jsonp(obj: any, space = 2): string { return JSON.stringify(obj, null, space); } +export function isPlainObject(value: unknown): value is Record { + return Object.prototype.toString.call(value) === "[object Object]"; +} + +export function isObject(value: unknown): value is Record { + return value !== null && typeof value === "object"; +} + export function safelyParseObjectValues(obj: T): T { return Object.entries(obj).reduce((acc, [key, value]) => { try { @@ -97,15 +105,6 @@ export function objectEach, U>( ); } -/** - * Simple object check. - * @param item - * @returns {boolean} - */ -export function isObject(item) { - return item && typeof item === "object" && !Array.isArray(item); -} - /** * Deep merge two objects. * @param target @@ -197,3 +196,73 @@ export function objectCleanEmpty(obj: Obj): return acc; }, {} as any); } + +/** + * Lodash's merge implementation caused issues in Next.js environments + * From: https://thescottyjam.github.io/snap.js/#!/nolodash/merge + * NOTE: This mutates `object`. It also may mutate anything that gets attached to `object` during the merge. + * @param object + * @param sources + */ +export function mergeObject(object, ...sources) { + for (const source of sources) { + for (const [key, value] of Object.entries(source)) { + if (value === undefined) { + continue; + } + + // These checks are a week attempt at mimicking the various edge-case behaviors + // that Lodash's `_.merge()` exhibits. Feel free to simplify and + // remove checks that you don't need. + if (!isPlainObject(value) && !Array.isArray(value)) { + object[key] = value; + } else if (Array.isArray(value) && !Array.isArray(object[key])) { + object[key] = value; + } else if (!isObject(object[key])) { + object[key] = value; + } else { + mergeObject(object[key], value); + } + } + } + + return object; +} + +/** + * Lodash's mergeWith implementation caused issues in Next.js environments + * From: https://thescottyjam.github.io/snap.js/#!/nolodash/mergeWith + * NOTE: This mutates `object`. It also may mutate anything that gets attached to `object` during the merge. + * @param object + * @param sources + * @param customizer + */ +export function mergeObjectWith(object, source, customizer) { + for (const [key, value] of Object.entries(source)) { + const mergedValue = customizer(object[key], value, key, object, source); + if (mergedValue !== undefined) { + object[key] = mergedValue; + continue; + } + // Otherwise, fall back to default behavior + + if (value === undefined) { + continue; + } + + // These checks are a week attempt at mimicking the various edge-case behaviors + // that Lodash's `_.merge()` exhibits. Feel free to simplify and + // remove checks that you don't need. + if (!isPlainObject(value) && !Array.isArray(value)) { + object[key] = value; + } else if (Array.isArray(value) && !Array.isArray(object[key])) { + object[key] = value; + } else if (!isObject(object[key])) { + object[key] = value; + } else { + mergeObjectWith(object[key], value, customizer); + } + } + + return object; +} diff --git a/app/src/data/AppData.ts b/app/src/data/AppData.ts index 210c834..45edb15 100644 --- a/app/src/data/AppData.ts +++ b/app/src/data/AppData.ts @@ -13,7 +13,15 @@ import { type AppDataConfig, dataConfigSchema } from "./data-schema"; export class AppData extends Module { override async build() { - const entities = transformObject(this.config.entities ?? {}, (entityConfig, name) => { + const { + entities: _entities = {}, + relations: _relations = {}, + indices: _indices = {} + } = this.config; + + this.ctx.logger.context("AppData").log("building with entities", Object.keys(_entities)); + + const entities = transformObject(_entities, (entityConfig, name) => { return constructEntity(name, entityConfig); }); @@ -21,14 +29,14 @@ export class AppData extends Module { const name = typeof _e === "string" ? _e : _e.name; const entity = entities[name]; if (entity) return entity; - throw new Error(`Entity "${name}" not found`); + throw new Error(`[AppData] Entity "${name}" not found`); }; - const relations = transformObject(this.config.relations ?? {}, (relation) => + const relations = transformObject(_relations, (relation) => constructRelation(relation, _entity) ); - const indices = transformObject(this.config.indices ?? {}, (index, name) => { + const indices = transformObject(_indices, (index, name) => { const entity = _entity(index.entity)!; const fields = index.fields.map((f) => entity.field(f)!); return new EntityIndex(entity, fields, index.unique, name); @@ -52,6 +60,7 @@ export class AppData extends Module { ); this.ctx.guard.registerPermissions(Object.values(DataPermissions)); + this.ctx.logger.clear(); this.setBuilt(); } diff --git a/app/src/modules/Module.ts b/app/src/modules/Module.ts index 0d5b8bf..ef0bc81 100644 --- a/app/src/modules/Module.ts +++ b/app/src/modules/Module.ts @@ -1,6 +1,6 @@ import type { App } from "App"; import type { Guard } from "auth"; -import { SchemaObject } from "core"; +import { type DebugLogger, SchemaObject } from "core"; import type { EventManager } from "core/events"; import type { Static, TSchema } from "core/utils"; import { @@ -35,6 +35,7 @@ export type ModuleBuildContext = { em: EntityManager; emgr: EventManager; guard: Guard; + logger: DebugLogger; flags: (typeof Module)["ctx_flags"]; }; diff --git a/app/src/modules/ModuleManager.ts b/app/src/modules/ModuleManager.ts index 9a09bf9..efe7a09 100644 --- a/app/src/modules/ModuleManager.ts +++ b/app/src/modules/ModuleManager.ts @@ -231,7 +231,8 @@ export class ModuleManager { em: this.em, emgr: this.emgr, guard: this.guard, - flags: Module.ctx_flags + flags: Module.ctx_flags, + logger: this.logger }; } diff --git a/app/src/ui/routes/data/data.$entity.index.tsx b/app/src/ui/routes/data/data.$entity.index.tsx index d096731..135595e 100644 --- a/app/src/ui/routes/data/data.$entity.index.tsx +++ b/app/src/ui/routes/data/data.$entity.index.tsx @@ -40,7 +40,7 @@ export function DataEntityList({ params }) { useBrowserTitle(["Data", entity?.label ?? params.entity]); const [navigate] = useNavigate(); const search = useSearch(searchSchema, { - select: undefined, + select: entity.getSelect(undefined, "form"), sort: undefined }); diff --git a/bun.lockb b/bun.lockb index 19836ad79553abab4d05eb8769dd45966e6eea54..1b049f9ee0e966f175a07d48305d9c1f53aab433 100755 GIT binary patch delta 182377 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%0Dm3pKf8Z}3I{F$k z3-~A6dM5#XJ_?CXB06UpfctUKPT?tg-_Z!h^75xn$naRO%ZFAC zZ6t|~qj@Iz(JBSIKZ9KXv?@V68MK0E<$`u9o#T7pLWsv1`yV&J?NO&N+MnUBm?>yQ z(44xC!60+cilRAlRm&2zVrb4>)v^YyINGj|Up6!gUBc`C#~@}8h9xn49qlO+=RhME zJBL5sw-adT!LAhA4({*c(Q*c@G+IR_hLh291?^n43Sk17J7{Ilu10$(-hWteH^L$f{0qg}|X$xk6P&#nSmS+wb-EgJHxh}Iz3 z6+`p*u}X*+1hIH9tc=z$XeEMH1+8|_N(RkGe>H=44jRE&HU8AY@27OIJ0IY+BFPzP0?=RAg`ib7_??+ zBPg`f@J2zq2(3Tbe6+?vyBIA#D2Pph=+7-qp`CI!4O$B{r_gH6g4Pnv-tXP=qM%)Z z_9@yTw2OmwDca{~Z=p30+GS{)GPHQCMG!AXY!NQSmO;A$ttFZ>TgtLc2F;ZO{nDTJvW>(Ap)_QvYob2L-V`qE+1%tqq!=>q25SBE;GT z%}(Z>tvy=1pmhpquSRPhw618jyHDn?30n7{U5j>Y9PvF$-4hWfb{*oyXwJ=V3mIOI zc7W-(Q}aG(&Ov?re<*1EL)shBHiv2Yy=We|1Dexxr{?zsyN+nijMt;Z?+@Zlh<&+Z zIa3`Jv`%RLrsxFpfuP-tHjb&86VL~P))}oWniI>xLFJl-aQ($ z+t8+a{W-rI84}-)*q0g2KD1Fm>xI@G&AHs@kl4AO|A5!I+?Zh32dzuco(S3br7EoT0gWa(EKDq;=9nU3U=dz-Q8%;A)GHxLbLbZgH{7O z=Zh}{yZ&gkg7#9-;`buf4B|{g>|+DaoPIm8oE5ZzXh%4R^T1bvb|2b7H0OM?(Fn%w z=g+>N%?;WhwB12_Eu?k%dd+D5H!p|}BKlaz&-|bbM%zGQKMT;TEoV*sj^=#vO*DeZ zweN45mcXKrb}0TULVj-rZ5Y~>L0g=Y_9u_nLx@)eaY-KOFL+5fUgEk8PdZtaz<=#be zUN;*5CqerV&4KH2v>jo3^>Ii$25lIc)4O%S?g{)4p~V$9AUc{oiN8chyg4L(3hg9A zu+yewLNE;|BWM1nVFB% zryapCp`V+CQ>CwhHXi@2VdnF7&?cZ=isr0nXV50%zanVgpxI|8p|uLy_hvdrhEwr33);^?dk(EFey3S`gEkGnw_HEJ;1WzeDr$(o8i8Mf z-3$2ZYsc|p`-9urJR-Kyh^E;YnHv_E>nlq*2A??ff z`{H+2bRuXo@!u7+KXBu=`z*wJf|!Ye5ljxhmC5h|0$I?!N*sPIU<2H&L7Ri$iG{PB zY(aBKc3z=&M$lfxzn#fTW85=?_L}oQzx60)58^!h9>iHpj-buQZ(ne7k`}ZD_&1TV%`C=$Ia(WBe|^S@E#c1srJED_` z3L(Q~_zR#pNvIgKckp`<=LnV1aAM2(<3ZG_pm~rL_%owjk9$6vW5r7R?HFe|0`q4PrwQd*^Br4AvR0yhmrM~V7CcvSsZZ;p6d`j$Y%WS1np)tYvv2I6+!D9v@K{W zgVqJj%lJ#Q;b>3b_6XWm{3C+a3(dZ;4eha@#rp-r?T90TcrTg<-hoyU?Md7LXgIO2 z_~ZEfG_K!*wEG(WF|=oJ?+@Be{9eWm?Sq2$4gNM^w0$5Wzj*9h#A|{$I2eA1b{*Pe z+<4Hw$A4qchM;-IKcICC+9Mem#&)6kC1o1!h>-S2{8yqm>^>T_-T0T}^7`ZRSV+7F zaXx-Oqk`d2Xs-utbg=swZC=pE;5sbtMOzuPr*W;BU(gogcNq8Eui8HR%^0{G#-EMO z?pFeNF>rhyi))7a@#hcPgpl|E+5pbPA=_`nII)BLaptV%H)0QR2>(DdKU0Es7|m(C zpQ%BMA3<~;@8`K7{)Xl}-j83!EzIv|gM#*Ause$8K;sbm5}KXs82)RxJRL`72fO3= z{q4|kWDc5F#0mUo73TU^d@UIMf!`k#)vR96vTDqmuFTq#{jj}!7dw` zV}O_BhiK+^2AX4l+FCS%$seT`aSSihbs=r`I596FdY!HhB3rRzW6-=#KSA?nfHXAk z2VSOIgIzjWDeSyVw*@UH+DNVlFSYGK%Y`;7Xgkmd#&YxL8ML^U-%doF*jb1VB7RTc z+mP7R@q>f*UC{EN#e?>JNShaJAex_DL30&-Cp0h9-9gKbwh6zVpK{Uuwy{g=zd-b| z`WaWPAey&VuZ+DxD}+`wXukx_H7L$xyfXHo;lzrdIcf2;KiCyTiv{gK(2BV=+3$2- zLI;Cb97E@Beh#6TVF@%RoL)jlf?Y|pFVVb$ehb<;XnxQ0^Lt2J3hgO0uc~9gt~A=y zYH`HlK|B|6H=>u?iJ+B1^Umfa^heOnLo0}8kN-1hWzkO17yO(=BPv!7&8x(Y>_$tk zlJfYw(ImG28E76qR)N46MB6_*qMAD;Mx)vOX+f)m|2{O^IwzXVR2l#MLCb|kFjj>> z9>n%PJJ`8?$UbHJ=LuRhms2^%vkmhG@qGMF8vW!8T6HwP&De(dgH{8-Gh&;oK+tO9 zKOD4zL92yk6WfG^f>t|dC2jx0L9B!5S7kp%f>sx8M$n1|tzJlMa}^8P1^AOspKyu? ztv=eJ&?F_$tkni+){HfNj+*zMhC#H-O9#UX@qf;NsiIh!kYOYIPMxix^MckGzh`F+ zl?|Hz>fSH0e#!-{DcaJYl@FT#bUyAkRzLpAX?tFTI0wzzs2H@1@xL1EDg~`Mn!gQL zLw-*%Z43OF!w_60Xf4sQpjkszgLVo2Pcrh0$EqP(HJ2j#?bMR`?Zyl*!|&H;OIjn? zxz)!X5iC@#V0Q(6e?#z7JJ`AXX9JoCs~hZE;olgvdP%J#^L<3WQhTrqf?;d?3((BC ze$d+Be?4dog4PzzX7XSSgSI8Cko>StqU6CGIAIveZ;zZ_1KE}Qgd`#_Q z=}zDi=Cin~oDF#(Z{ml8Icgzh|oHE_ol)UkyH(cSS)XXberD zDO>~>!>1f!bCyK4-*QZh`!Lssw{HFRd9BZ9eID!c*C*jAaCi1IFc!vvyRgSYVUAf0 z^1_cy;I8FluYmT@4z7f2pb1cYiv6x(%~6TnafL4bmYeyYXcGPgFB!DbcfrZ6Wj#dpcmW@y`d-E2^FCdRE8>0 z0m?&FI2VdQQ78dDbO9M6%SdEB2l9*Dc`&TV#6!L4;}rF$NxLt8G(tKf3jKyA1yZaKIU z?p;_4Z^H_B3)~I&FxvnMWR$sUSKH*mMDRjU;mwxyv%!XO;3LGTv z2)L8Wom)3ycYzaLC#E|PzJjkIJ7=~B_eaGROKcr_d>b%$-PeQZE`P@dzaj*G|zW2xfjX3NA5LpZ;@Mx+&bh|p>E*zAh!d# z{m0!t?(X@M8>2gV+`;3H9e?mHihIB_g(ENtCc_kX0!F~2FbGD{1Kq3>zkxqjLP;nE z3&^Mt?hY>pbzwhUf^yYclWrP$K5+uz-4fu zH^|C(cG3jjz_;)nd=EdsF4#_=coJ@8$ahcU3HTG-@#793_bR%p=ODO4$LXdUYlg$4 z;1=_GZ~?fv#*H&|p(@nOQICXNB`%G2X|=1IT@vleW|v>HE<3s5#TC)dQ8Uw^Bne9- z)@4a6*1ZDP(H8`_fcs+I2J5!h?clanx3T_6Qn$Fg2yScfmiQp#B5iIs3*7uUlddug zUV+kuH(+C{Chrd^yV?$!vmLb&zeCg=pWfV&xbz-@3l^n%{tRtC2&xK+We32sGj z>w&up+(qE70e1mo*JO(2nK8io1VIbTJw?R+n0M~;{rZ0p>;8N+0 z@GZm9gD@C;Q^|5z0WO<%`LnB?eE+n z&^H%fOMhpyI0}zJX(-19Jqkv{ozNM&!1Zty{6>a{U=REZ_i};cfHcSnE(|^k&W1dY z7xKA1Wj3A6MZV91uU2>(E`&><5j2Hn&>UL8HBbTk#V|XZ0Vl}J2aB#)b@{^=umuVd z=l1Po@FutfcM%jv&j+isa>nx#d2*!1<7N2y)s?NTWOe1L3su{2CAEe2;G$C3kfy;7 z!r#Joa305YH?3p_!ynHJ!_1}@WNRc1W74AW(oF0*_D zLsvqsrPH zR?ww^y9>|~@8fxoE9?N=MQ!e)hFqHYJuD(zi7U=Ee&<6oxENg6bSH7WsO`S6674D|9)gGAkvM-wz+*5Ho`PrKSr`lBAOYiH0=x*W5Bv;wD_qDG zSO@AseP{qa#%l;J=c^7ip&kWxQCcqWQGgFDo`<;40472=B09q@;0mY?aFiPO4Py8+ zgFix@3;v#T7isQ;+u#dqT>0jrw!y>=g!`cm;fJW*{%|k!g5J;vTn@%kFTOu;d5(fH z@C1y2NnD*%z-3x4%W@f(%dV~lms+_J>I--UX2Tqq0sd~}?@3cA>|59^h9z)Eu@I3flk}{BqGjfrVtEOCj?<%MwXhp%d zY^;K%;G5YNfX@^%fj|4c0(0P1c#=x(!4=gx&YxD`TA&iJm)`#c1=s=~kx>QQs!$zj zf-7iTG4laz$Nv?$A#5kO8phQxE_QKoOFL)}wXtmo7lP|Yw!=2KAL8Bk(;Y5=`p^Ix z!iCTX8bez+3kpFVC;<7P7$nz};GUvAT_f^4`~)9xHLZpZVGXQ>kH7`aKS6Uk?+RaE zco5GaSO}9~3iP0dyB4G`xP-%p%T3`@a0!OXE3Sh)a48+_Wpr0k_`{^X{rMZ??Zn*y zcS1kt4Hu#Jqi}b@v-Fn*`HE2z+UIP9x9KP`W}VZhcHg46F!6luw0!Z~Xq7(H;x}*^ zHF!B(0X|m#juZFM?+;Lga9L=HzXdddCQt-2K^FL!3RnkIImhQ<8u-w(J@}lo12mGz{iL#UGvG|U>8yOXs{0~qQ>5WOjOdv)QV5!@`F#|eCp;yw&H|K zKqbgbxIbrfFAM-5A+_VIT0?ti18w03xE`*CYvDS$27JQ1DbAly;XPOd=|mjGEe$6r zlnY`q<4-;k!gcwetNVP)=-kc6=3c^|7Pc6Rs`8v2B7Q!nq9VWw5@HmWw5pW+o1ed`O=mk}w6~w#qrx{!b zhvM795O8$}1HNqhOikwMTt zYa*>sTGw{jxP-I9nQ#VVhs|6$TPfTj?p#N}_kH{ZzNW($%T1%{o(EsOQ3HI7Ms$ql zGbgs@O}jCE4t?=Fs1DJ|`jUzva5kFnoOq2qo`oo_@0alXr2l`Fk*te?f8SvfnF^=% zjr%SH-+j;@-1qN3{|CWs{C9C9x*OcSe*;5p2XH(7XLMzE+i!*)uoK)~G!GWQt1utj zO0Y5Bv#XH&MH1dVZWgsb{;AaC@$UrMPcvkP`ng z{#jscm~H~qdmap=o4yYhGV-{8c{hHyB7YArz@KRDWr$&W9M^5dZX@;t&Ma2MP=&~AfH&<;w$QuKYqFNgc_AI7bW`y4!r z|2*88xJAyS{R6-JD7TR2OK|t(Sa5SB z8z1Abhwu!8I1GWIu!#iG#kz?yZ-%H!BHfGlLpn=O1_5_Qy6G`B&drSvhf%x?e)lH+ z0slTYaLxVQ=&%?=SI656*U+%xL>dZcwxII@LFgG?V&9+ zXIjw$N|Lr5Hf5oT>74dfM63(dASXPD_5@6T$^IED%bAw@DbPY$Iu_Y+q&4s6^{+Xb06FfZsEEXE&_K@?Z?>V zdk5hV9EKzCJA4LPz$S`Dm1y9|&4JH?=zxwc4ivQlv$$TbWN=9STZ0OSUbubfbot>9 zaL1HyT^dIxOMsK$wz&TdcffzY0r~_YnzE(QUg@xnE7)yV?x)+;$i7BPh%Ea9~BKFhoCN; z57nUt{cY&CpXg`#+o=h}^e1(4lY=O3B8~jxGAFt+zK~CXXpYqz>UxWT$KA)zP#eg zjFYP_akD};I0Ldn8svmyj6K_72YeOAA;%Yc{UhM8(GGTU#eRyLygCxO&f@~pB)XmH zKS}q}ZO=v14&0M*J=_59#dw1F)LYws>e~&lcMFDFF6uyCaI1w6dmTVHR{URAWU@?% zMzo{=P2n>R_Bm{VDBg>!H*r0oJ9L4Yz;sKoTL}6c+*4Ze-x~6-3g)*sEBG5OjAh_f z3AaYL6=HZ|WqE#!bHjqyO>|wjF~K3&(a)Y`Pr8fle+x{7S70G{ne>6H!Mz9WHE?gi zMf6~A(_UYVN$=i*mT(1J3Ft4;3`g}HT>t!)h(lUJwqjZO^qIfiufyqUU!`E2`EOmIFy8QpfsEd zWuPpS1JmUT?!Tu`j478^Fs^NTT5bcl71c8 z$N!&CD&w3^JCAtsM0V5EKf_*5>YuugxBSi6tb!I4`mgSk(VJYA{}wEUC9o7;gqL6j zybLp87Pv6~33##~WBpTjo&g5|SK^lj`m zuW2qhKMZL!xvRU6!583mgN?8T-iO~>@W(z<2)8g40l)thfK1?`_|dS}{spd8e+r(4 zu`mvH=S((bIh)cZNxkJd%6Rd%pxIi&C58WL_JY{vgkzlWpRgbPADS@Pg0GWSqApp2 zvix1QJP)0&8Bg|2`{lVL@+yvQa9+KJU105Uc9*XYg<;^bb(g6}@h(N*4$&msRp{xE z6+Wh79tT&KyPDielo#RUoW-dTns{mutu>qbEZjVW{;DDGxTyt-4t#onwQ=U}DqvifwFK6|J78g5Gi?TbRm=_>@NWbYt%P?$ zy9MAfXAAThya(zb^VrckT-toLB$CUUE4sSzTE6D^+uy_V`83?@;6Fs$220Yipb>M1uHv_l~&)p4UY1xXnX>ca^Y%U9&-~c|Oa~p;m zP28^I4ySkFZJ3oP-5~AOxVyL9b(?_b++3*iBDme_d6)(hVLU`DY~1IjHUXvteJZZ{ zBrq=0^_!p5Eg$Ubmq*=98U7(+(piG&&MbH1E{3<@Rqz>OR5;^&-Z&e4j%}RUn_$}c z@LF)yjh_dp{?`e+h-!|T8H^MYrW!?l*Tkgy%{)4g1@OR8ycwtF<2e8?gF=gZ3A~! zeGlKkx4^cqcx)%0ui-0jZ4xS~$trZ)1Qgthr2xTeuQa*Z>s zY3wl3anw)20y{zKL88o~Obut|z>$p^pFubqBzqCzCX_7);p`Bd+0|%Oi7SWZJL??B z*5T&Hb*v#OX`ATZFs)ExNW-*jiO~(yvd7(hR~F8LGH@=GhEm{mF}IPG0QWH!gQDR6 zwZc#c+y_?x+&GmF+HHuzhEdv`nmHw9e= zmqJTu4lTfUbY6n%51SbUh@U!Tqz7>~&=ugp3||Qrz)d}d|3?ZIC*ye>q%~)9DR>b@ zc+i`{Gtu7}>~fy1w=p%j6?#B7xFxvVac_g3a63fZwvSpk!8`EBt;#6!Zv1yaKe!XD zT5H9Fs1Ja9;U4G@#+zmsjDw+YKimgi4-dc)@FWMrAW(Y{ekU#djQ`)Hkr89T%)H>9 z#eEc>fheP=@sEK~FdB}K$y2yb!ej6dm}WRwut(rw7y+gk2_D#EnCB=L^LVf)f?z>B zK$Lk@FyFQG0X&{!=fNZ0%uE-Zz(6s;QVrp9+Bf(L~FwSWI zs8CUcHk${r8UIMJ{WHaXGWhK`ri;=0y+Rs0NJW_|xN}YechBj%gHBf>yVQe3nwOsG zt=33$bn)_4_foV;Q)@##uCbSj2T;%`v`x}DCka!lHl47x&oX9sl|&hOW>&quJgQ>z zGykZ`94FLFW4^@kG8!_AN_jS7RDj4RI(XD4PVY!&7@c)w6P?VzY9bsoHJst6{-aVx ziJ~(yY`YbvP*DLrV-FVDc*fD${;N$xO-43RzMfoaS__+O|B6IZfb!tN_A*c$EST5u z>DPKx81?9k9I8`?ZfzX49jc>YIvSqMHyWDbj?K}y>`?45d>9VGf7kFE)lgKxl)~}9 zg(!eGk-sb5|9s(S|EP3UVQL$C7d$sbD~&(8JZ)1ci{{y!2UhFpP4#!0ch-N^gbx(| zcWv}PSqpJ{u(!yl7E(Lc*XU6PQ;$08|4Ao}<_^|?{mMJ2wc}M0UD902eg5tGPwmnF zRP}E07*8e%s0S6{Iy6^hT@B~M!wgQy>>f^rv>Oozo15x~y_^*J*?w4*9B8qY# zHmJoK!Y`Dw32rlJ3X{n2a@@<{Qn(0O!dK|calggA7cxpnoWu-`923A9l()mIGSydxB9qeyhd|`l8(d zo~1V3aBqRG&?RV5`rd?lK@03A!tMBPgP!2)iEqX20oGJ^Tz_IZ73UP(Ea5?IKTD>; zofu@spdapCa5vN-u0O6#W6gNrhv9zw1Hl5S-G~1%T*Eel)vj(|v)~WFATT~289W*c zhY+FRV0aKB!^loI@<%q&fpv$I<~0iXFz!R}2u$aM>}Sv59|a@fF?iJWH=;Wz`f}CR z@js3~N?>>_;b&nCj0WRpg-oBq|0FyCris#--_wwQaqt?0-Ps9IQ(2dhS173m`VS0-DGJX#-3p~i1A#A!gU;)g7SK$>fkGWR08O??{!EYue z(w!gthV{Q5!usEV#jp(ChNZ9s-hxG7KQUfcng>@+e=CSbk;@Ss82st$J^WL_YVz7X z3x3D{8+-@{z_VEczrshb7FL5b^Z~pN7Frv_rrSy05$ZqL{u=FrUqHjX@H1?HPvH|- z2Oon~s{MKh86<0IBjH)F2|kCY2CeF-iL7!9XH9Wa4y>D=Lg6*;mz6OnU zfC;{W?XVT1wl^~m`Xy|E;hf=S+%Ld9B0FvLo45Hz`nEU$OK61dkFX0Y$Pe&6L$pYA17WgU4vi&tOQzN28W}s%Gs2c5@r$9T?q}oIUu>i(t7o|%rplLlhYtc@g z#rMzJ)2-Uv_@ipH)E*!^nkCJKtBnb>;(rcT8>{zB!tO{h>=>dy7uY$|anm3NT+*%`s{lmG3bB7x{-J0=n{tBG3!s)H}&sRmg|>c z;lhv&v}-_IeYgOelsrqCdid)?9jKj+_D}vh0Rm?3G^rVG6Yz)sCWIT~Zv;*8H^ntm zGr9=(Vz9RS_z<`yIN!Ynw>`9j*5I~?E8sG?6fS|}^v$O=mxq9Y2ELskn%n8R)u0Wu z4Xzn#=On{dI;7fq(5MiR{xMIWEtIRQouqr49tlp(;vW(DAUH{Q0M~WiZcFJ8_rTrI z6*|I2WO5g72j~ZPLLYG3%I$C)ScA9Xx~|+EEH}ap&>C98#o$hs6~Makcye1x2TJxf z!ctfQi{K4#_sMfG6`lrnp|~5x{aFsPGiV0iGUXemZX^%iZE-z#BYTGCb5i3QsT$+@ z=)~_50}1=4s>iVFVEdaOj&L(>N9Y7Mf&bMh6Nw5C*Nboi{Dbj7g5S*SAKmeL)trak z5v-y9Xug@F2t1764P=Gz7leuUGvoSJjxI33>wg&Zg$JNBn5l_0@W8&l!!x-bw+}=I zbsFZudP6t32kr**x&=(DeH8x+_Wn0G(=Wj_K7Jd2ZiODuGr0P12aPInMjA$$+=1V) zwP7tph3SXp0|MWpbytc_S86A+aS#4L;s(IIz(o^3bsrwjE-IA=^30>N7>xfxFy2eg z>v<>)fzz*PYqK^uUTAOiKLnmoROmj zcD7}*4ROaq0!D%z>sfdPo&u-dqi_q8hyCeE{G-ACHO5izad-l(1rOkLY2v40ER4bM znM93_Ebbde@Nt5Uu8u)%@lU|7`y%d4+~;v`A}%Vo<(&$i+Z5c%FbOD1@;RisgQ6|{ z9PTuD0j7i7SWn{q0VlF?wf>67%w7VgiXQAo_#S*h`W@~!uoJ$5*I@z7hq*8tX248% z8D4=|(1SwA9Q^a(Rd@}wkrl9t6yAh4U zf<5>>8RI;`eeg?)|2Y0*aMY{ycRUBd-oGFB0Q?qQ|5e&y{D;7=hevR$!=GS>Jq0m( zG(9=lc^%ou;_n5HXOG}|m3PODu9p7z9|m7cc(%8Ri3EIG;iI^|z0kK94#V#_fBgJd57Y4b(k5HPd-E7W(uWxCgxiXnQxV_SS^=x7%$0s5;6ZbS2Uo zn>Au>bb$d-8m$<3fWBbOn5mf+$1MrbLDaO-JqNuMoD0^B2ObpS%x|pi@0s+Z79PRv zhUmzgIx1U0&$<(F7S6Me3f6(}jZhZKL24m9fQ7pOnvOn)O4{NcD_QRDY?3A$%Zf$TUt@+l1uGrN~lTmnWQBwg#%s<67+ z;a&@N`@d@g8{XNJvnV@P)KhKy2f?|)#*IZ zWzmJOncBb2GDt+ku=M-%R-Qo_z~(sh3tVUvCn(gp3_kqLO-vbVt9R%tqq3 z*WN|A2k7sIdnfdTJD?BrhF)+x+y*`2R?yyg#oxK{e~S1&)ty(4fx++~2O9)VT=K&G z`2Fuv_u)E|9su`3e{j&jCUfk8M5gZa!?B#C1B^8^92{JRfHizGL>1%U(vff>T*nVv zYp8zmv)?{~-`};(?@|0CpetSEDcmPuG>n3g;L0z*<8))NjEzym@bTb2iF-epbOL|B zewOev;8zQ;^*SW<`>^xa353tVCV@K+w7H4`+2QR%;|Y6h)+4Wp_$Pq{ngU+h>-^VR zONew*G8b_U%!X+&173jVVLH4B-q2pcodqw$%;3I)I}cuiSHT0#hXwE^_~dJ0aP?c; z&7g_>(C;XViF``~!i~Vfcn{Ffk+BG2`)M9r?JH0V)>?VocZ|cPJ`90>nsBegt}1xt zn|~A1$G^w(9efLpH_#;3~`zhg1 z;A6O(@M_!-z-D_NcNM(nIP@-_58)$N3v0kmWI@*BUkB%ci8jDhun~5E-(xNGcKk!J z--f#tnvmXFvPP{%FNV$dzXS);FL1ZOt7p*uH(>0U`tQ`t_3bydz&C__?i4UNhZFKVju3ML}bJNCC0}IXT_fhPT~I({(uwkJNyPm;4mD5pW&iV*n{{z z=w93dupfQ}kMRo_cd^GuNMdr3Y>luYJY=Gqk8+TiIBV zOwa>&3mi*Kxt&ot>H_9tQ=Nrttyu<-uWOR1j5g&z`RztgIXpMZXCBdONQ~2;ViQjq zSqU225}ts4$FAUsTGnpR9d3araa3{938aSgd!ZBuyOl2^h|*cG5`=ps^9rpJwSj==yCJ$Xcp_!N!dAj<1m;`LtJ3!-oC|fpE6XbP zEiVnB0bEA7Hm(bz}F-(>_OE$sD--~SNpgn>_MPB zu7(;Ip?fR%f(Ty}Q4Oks2Q%aP;EQQ}{Y+h`37&xYxpz~)d024$QQG8&}*X^d)&&Hw8d z<%oZJf3gE6wK$Pck38MTcG9ppI9liDR?!0gRbcP-7SIZ=ge%~3@L#_6;0(PDTngR_ zybU;@UV>{rsmCdM8KUndGDF`}kQyKLOV8Kapm}z~-xd6=nctY>N$~~((T~TwFHU=~ z`J*+i_frpGCi=UO=4QAF)LLZD2s?A=6g2Ie3^XB~1(*TOMmiI3+zoz_a4LBVg5rCK zQHGYV2bg(JTxSHmah;Ewp|xd!EZ_?IvQuw=a(@W4SweyCz+RiaxK3sKAE_6p2b*DW zJbfsk-#|)Z_!LG@gNb^Q=|B<=fO{c|a|#>zJv(imB+Vdf%){w!6z^2mLK$|-YQfCk z!heW;_eb!o#bfE$;I0N29DIQLKCFWGz_VJ3y8@nvWD9{?v^B)4`&H>iX60pVHZqwqUBgwy6cR%OneE z|4hy3^h8mCqO)>MO0*f_^h~3)sRvRskAFJGfBd2w9Xv`L6(YI z5y131~yurE0$T&i|%j?N7lS2L6YY+{F3cRb0&Fe^?m@ zL+D0haVL^bcH$q!UzI}o!aFA^(T}lDWvBL@M0^60gBGsuw;Tb(p&tG4LvR*z5#g2i zAHmHB55o}fcQXHBlmEEMf8aC-^1#`U8*;&R(wqNK(%Y{co05a2W0P-WjLxaM^^K3}kzd!>tEJk+%OaEm-=kI%ta4wX zu2J#e>Q_4lv^Q*;GT_oD)0_*X!8pU(xm@ZzTy0z)6{YWkqPrfCbPt3P-M*1u!q&aEy5DIs(^%2f7BXhUkFp@%xg$=wPV_(k9A0 zD&#+fEmW%gUw+!(>XUA86SRaIA*$LADSoTjHIf~1t!4{o72BS+x%t>{Zh@}Q1vG4t61Dc0dhWYdY3!v5;tQ7|%JN6w=BEug~_FOL!2cW(XT}~zO zr(P-!F41M>rRPDSOD>AL8_fgU5BI@c&=1t_3E{|QAmIUC|NZgY8!*yDk&)MZYDRt) z8H_d_*Xcn8t`_fV-o(6eZoxkce|OxWxT9edJPMD2zgPP+@<{yeaT3*BSLM(Abwh*? zy`LfSY4AC-VQ-xkh#!LMO~l#2c;XW<5iE#j{T$SV3ShWs@V|mP3ueO0Fdep#?+o1d z3;cPHvr&8p_a)pHgI~?xjZHWY{AK<%+9lzj=EDN;^*XQPdTW0ZcOY&w z7l`HvOC0}y#L)ZwB8)uK#kg-lfBYVNIQ{|L&+mmd2>TUQ{bBTn3Y*|F(B^a8FJLo7h12d! z*aF7OcGw2S#lPZDYNn|*V3mFo;x+yjJd5waIIDU$Soj}d7o^(j*Uos;NA^GA_n2t$ zWSd_?TmOQv51!yvM!pO51pbR~WAHnEJJ=B@hwW3i&i8)Bb!Dl2$9SJ79m2IEAHi=gPdUaY{&(<;Vj4l z7f`6OxW(aIC;_FR6cmO+Pyq5lekch3b1KuBrWh23LAHMpJZ5kXoCp4E4l}O+6@$Mr zZYA(W@_%!1Uygk~oWa9V ze&ZWL1JEW)qh{EAw29K|Zweku>>H!t65HPnVrQ~*TueCX;r5BBKiCIW&_sTb@ZSiv zgccBGWSWtLhk3CGL%IDgFw$@qGO8@~J?gZ{ac`q6b*f6AXU? z^+A^pxvnAp3h?Wij|hEbaa(8uS3+y@Y7E{f%i*?#MsO8z4RMWYg})eXLEHZi&P-zh z$po!a3^j69xp5|pY|XemcI_aV`J^7ebWs8RE1NKR@TAf^o;Bi55OR}5xll-q8YgN685?CowyyL z1DsE$L#e@A@N3%(_jYg@d^cPNr<-u2c>gC_XSf;SUHQ`mOxPDUGU|;#%BVYjGq@Fc zz-`bITwJq}!uYF=et%~0SBxl+$h`yGKHxFzsJcF-zsvWr_anl==N{ada^`^7^1Z@?>H;iIv_8M!+j2>!W5Vcli+KN&CJYC&-9=4RNHN&b6eDR z|0NIF|0P5>>1+qLEJX)USF7e{MVJmRKsbYcxwp~`+Mcc(HebgB&)$4rCcXaN zUjI>*T78OcUz-&SOssBVzx}xH#%iBK{A_SQaVMJJg#1?Y3D{Jx6BpSpz+al<*p#N3 z4{mjuiyMzJe2svanD|xvCWzWx8#A95Y&?isq@VsZ%-&uU-o!pHuHiBeNl}-3Jz$fq_L>+sXe&Vfx=u5~- zw0zG0-U*Q_aF>Hd`pr=HJ$M()AhL=4@1w5@ai(1jAAo74CI$0q@NC!Pn)gSzYl5~g zj%O`+so4Zpk;W!oNBCpVZy$+t-A~cA_ofong3YxNEjq)`@J~i_^vi>tU%QMm{S(Ap z1m`;GNS$yvFj&g$_#&1!G3lqYBE`xtr)n|im%r}#Q6+Oco;0XkjZwZq;u8&8VZa-5hkXC) zg6Ti5oqh9P23-@qeoiY={6P#j{*ddBE&hC1wU;!gQ>|vrYBggcmM5nDoK~~=L@aV* zQM5qWJVVR0{}_uJ7gVcNtwzlm%M<&4PAgn|Ar|?uNE=t@(Fdw_YlTH^3~Eu~%M;h` zO{yX9;s(pLio+aN`$VBOkkJU-s{YzS{x|dQt-E zOd=$`{OFqA*?ygVH8HiSQ8%??T~{QwbM(6R++FpKzTLXV9=^VAk31iK)d`Cl)vML# z+=;of%RRUB{I%I@&mFsY(wb!2TGgs^(_E4G?U%GGiw`Duo95&8C3fc?b8JBJxYe~7 zyCTtPUs}!hOf0PWWow!}@brXskDY7DlION8#H{`5`CaQ?Y_OAeq!nuS0`hVHF1)dJRIlbgB3<^TlLZ##MGb?vr?9`5_1RT zEK;Y$O1@cO@z|NSR~oi+L1`@NRjWZ|#4ekjk@lP^nRnLC`^JyNRIgU6X0=+iD?JI$}_}TFqK?!S*539kZK1{zPIyHxElfDz9_m*uJz{nQlu| z{S{|mqRX#otul>Cy!LBa5uVeoLCm~iW#Z(oX@xUyUzsSpKdn-ZLu6Kx!!%E1I*?W* z(QSWP-fU04%Xgwgm-EsKWd7~l#MArJt}d4U{p6R_A??1K(d*f+uU(rtc|CZ{WWrjR zLi(!?q!mq6$evz1^N0@;owBE2nR(*}i8tBfU`ZuB$V8Th--nmbkU@kXo5D z)hJc96dgT=`Mew?zjJkB?O(}iX70K=Q8O(gyB@k3*%dBcfSkOlM!%3Yx!=<-H_M#K zT>R|(AhA9zy>Q)$Yci^STmE62c1_>4KXWD@DET=~%vq$(*}1^h9GmtW{3|A;%^bPZ zZ<};Zf8z4Q)O1R>@uS4FyyU&}ql_!IcC+8=U-?m@JJnFPS`B;eVPfn}BY$s^Kg$=D zM}!!zxNILM_L=saj~U0X7=Hf3#p5=7IxKUh&?90kh;b}=;+8{Qu06JSRx)k!nrQuT z;=+8Cu7x}@|@WDa+zBO z?fbX9))(Sj$g5gGEEizOJMV|&o7?w{f`2aF^q1w%j}lGuW4UTwVvO#Vb%}jdQo9ve7uyBSqF*E1=EYB7WXePI@ip$1yX-CZ*ops7N z*b<(D1!!~0hK!3W=PRFn+92!Xp41nYSZ&ViuI@d%+|uiw*p@>}v$S~Q=QENqj5th6 zNMoPg*=WU2jmKU6Ml!}Eu~QooQx7m!p)tiwDKD>+I#56#9s9up|-kfo# zSv9Hp`$vamFPkikBXDfM=2#-nx#=}ZjK;)^rQWhL7cDK`dUf)!$=lUrOm03my-@zs z@8bD0onC++Fr7k#VJ8UE`Vg zo40;AAzAvG-k<-mL^+}}PmbpKvnQ{gaIRH~Bt!q0HmcTag;`TvBiS3uCcV_oJzctX z?b5Y(_w2{!+-QFO+36o=?t8zaq;qJSEDeUs0mP){OCR zR_hWQCO^G#X|ifbmXat+U3>uxR~^&OuROndt6v8{f^F#c?`%uFeUQGoaa&?Vd3sIL z3h4#TtZgl9+m;xOlDX6NM8^uaw{1@}KE&MQUKS}jsNYU)s}d^r}LIH{{GX%W8GFE9^{k zJe<~}c>ZrPu7V~r_WV(^M+Ou2aB3~-6m}wj(^wXi}zL8QgwE+ zzLSl#`kO?RBY)MQ_cE@i{AbpoR_c8hOT;VDfX(qtsFYqKOKUvq^xTLiQ|0uV8b`gV z;P)AGjh@GM&#N)J^LfegC&!@e%tEY{*PE9tKXYSz>tDxa0GV7l{mSB({g840Uz;h< z*4DFk9}gBZ%jsieG&Y8DxcKRFK2nCx$Gu~kcctjg5RI-OW!=iVGTQt5wzW$1Jl5;* zUn!dqQ;hPSRp`f24}EgZ(Z6Ci`i0)nQcC3=uK10la5}xL)}2rN@Ll~D$?_)$ig5HS z-FL+j-<+SGKN~$9ty*<*33s=Djr*sEBfIFHvRC(xe_G;IBIrrA1E^dN(a^MJp!P^8x6^BtT9 zbf^R{43d?+C@98IM5&>pEgx)6G$GPhgz7anx;Xa^@68dT?quZ5h;4ap4^iR0D^;PS zD+VX3eA6~}kDjC`#6Nw!7N8z~jp(VLQeEIXs++ zVupQu&#UJCn>l*b3Ut8(d#WYIV%*jze;}8o~wLl3^@Lv3SHLtmS^U9(GLhpnU2b46pQ|H*eMR)h8 zC0;yA_Y)wd$86l!P85OMPogMy9lKjoR`_~}66nuj zl(5G=ZhU$7UC{%hQKC*7kf|uB4c(-Oj&WHU_6T#SN~?hO{|;u(pF~bJ`oC6u*x;0mS5r^(d~f@t$fO9H&+)1rSb9fG&oF z3pouBZT98T)1fe9!P=bgxR^_?MgUc2hKxA0I2M|60&jTkeH*`ASEGZSX{1wyfofe< zSS6D|z%IAJ8xkk~+y)=l&xz#DqY-h;qo--P!MVG55$}BLdSc?od!VM~7HS|juBRip z4b57DFO`-4^UmgroD@I~`lUc(E!>w^V`cl>Vppd}E!m~E$p?Z&QcbT;?M`hg-t?@Rl()cyn1?SzyRxHtEbA*#=b!rP)o&Fn5H+! ze;4fxO$-<9G;|BFY))z1wSr+l+Rg1sfJwAd!TI22ferObI3tYW5=OcdF%`>YD>Kxz@{pv zX#61oX_Nz|NtV~5x#?Oc8s=@2P7*%&Ua2a~(9bZnH>#X1Li$YLJV#TU4L+u1N4**V z{xbEihK|pMAGd130VnF?YzROqX;~2rc7BEEJR>wOq*q7fikqVCO4L4F93t?p1}E&T zYgdTeiWodfcLRh2gtQ*N9N*ETMc#9sx`DLnt>Fj{7oxbw7&9k=utvXut;7m0OsPfS z3BwALtqWp6gR^Eno?YCpIn+Gu$MtD*yh6@&&;^j?oM|e4O|=181oc%b`DE$tIy1G| zpz1sXqo?=KE}w)97RFg9pRRvVx>*$5M;D!249qV9APZ}Web~84 zP4~{!03j>gj-uoVDVWXxf~N{I%go(*u}NJFrDDj|Jt#_D8R8Ql+yLRS<7BRpCt7~6 zR#x0Zi%^T4nJY*oCl)h!DE=n8>1uGc^*8BxKXnweA`tJheIDgXk%0e4I$EO`?2F_C z*#9JVc_sJxC~rAKb2;nFdVa`?DrbSF{g^>=q*2KH{r8>|QX*6hHFFI6uV!ENJcCR( z$8^a&tyG3wr|AGPXEljL2!|B(B1`}|PfCx(tot8OVY%6!Q&!x0j(fJeyDAB3V|wszc6u#{Bx#w;X?(Yp@f&jS{w~+V_eb zwHbfwthMB?GIP6tguW~#e+%6#Syrzr1;82yTvOab2vHG8RIdpV4a!o0Hz0Zef)kz3 zYcELj%~>8E2fcpKXjMaPl~KY?2|SwjNxMH?VMUUUM&&4`F=&LAqj07*z8nSl;CEFyN@{}N z?d7O5|DGyGOZfd0yl)Gx^0@0&CGrnFcD6(CrNUNdzb_GOvK%8&VVX0lkDNg{wAuqy}$tdAeeW~LezYexp(N~l}b5^@k zP!CW)1PFF}MfdM*S^s+7xhjM==Ps_glV1ns)SdRB7L!eRO)5vD>fAcvzvGUz7T5BW z3J9e_c^cIYzX9cGDr5F6PjUP_raT?Qvxz`~rFV5qfV74 z`;I`m2c)X_eOsOa+T+*WgWQ_qx2Ok2@pDBFnhrRVzlY|w5?ecN8tmCsvIQsE)q~D3 z)E^5)JOO~vxKsJdCJh&32)U>iDxN=tRSE5!m!HwiHYj_I}w4er> z8Ag736{krTT+Py{Z(&Gc8Fi^KUw;nHc$kqH4sQO&_4j><;@>EYkSQ)vtI-2FqnU z}naM8@jB9lT$lm)$(L2+Wx`sdtIoT+oEdPuy zDwJmCL_gLuRA=K>6*!~#tcw2S_ej91W@mvn=dPt!lWXr{$~+G3U1SR+r)FBPl8=&- zkg3nWjk}t^kGY`ARGm-DI)o#k-|C~Cc&U0B@ltvr)8I;41ut_Am^D35@EJh{E_QQm zGP2{BDTAuW0)*_F@M4rU%1SUXMtxz#LBFX^Sym)5wP%ZKCC{dy zE(*UuE*)P`=0qOxWexlMDV5!QX7{f-ZLC*&H$$+dxm^`2ojyq+OWiZwNAGcXJZXB+ zrWuE)@|vK?1q#EGyvqKk=m0}iQ}%IyYYp04NLFOCB-wv@&WtB)z%-+QHcx7?YE6mY zt3C%5b%O}cXEF&)_G>!+Gt#t--m(KTo04QTBbv2oqDzEhQ%xfysIwv@MN3*E>~(CU zg&CutD03eyJPi*cBfqMR=wo+i>Nkxj1)XgE9+0J>Y_^Ff%y|!ns_9lOR-G?slr6e4 zs!~X^5G}6cKzMf}@@=Cz0#)$ZSn14OTD1y{Ory9CDfmp{l3=3PlsT?;V0~A4$P}BK zvX9M06(RyxL=>%Lij^&{M#jBT?%Bk<%0EZ7A~ID({P~5r^Z)I5Q)+IeE|E_8{|o+q zRiG~fpN*C9#5A)r!Av#{Qv%btCR)yK+P0?C=iFLU6ype|wBf)qVmK>5H=)#?Fj&-u z5xj@#Y*Q_?OWtW)K;NvN&T9Iaotf?cfagZtXVy`!f9Q1I>R+TqNh8nf3;v<}GZW9& z8A#3h|EB)mJ++jko{ihi+@nGz{&C3p-!asD!AdfrnjNKtw*314EY99!#;-X%82F^*%$nN67QRC__X$s`%`S$ z5KQRuw;->+;8%m}p`^5+2YoRu(B3cpKHrLBfnjj;1j&^iuLsR(oX&c&)_olaPGzzbCpB&P4$Ad8?O8{r~OXD0Ko&$cD1GJKr@-X(bAdi zH*|baBCHk957oqYRUHU9M1ULZ*V)qY?AwKQ%#1+)?EIFJA`DR`U-Tqr?mEtD8}+zL zr#}=uvcqZ$S;~LdcbZ<+-Z`P--P8!Ai6n%SzrEITG`Fw8h0+FKR+2qcfkWK~Vl!>J z2bcJSfrdX6(}E7#vVwiN#5H%u^ye*4ygmxuT;72Weh(pT=s;J$H~6UQP5Fjkd3R?A zavy>hyk6942o|V#6=?=a}HMisks;sya*1p%90sn@LKsSB1Qb*@U7)B`mT_|v*p_X~MP=Le3 zlJ=eo`0zcL!~G-`bW-caAmc}X-z1+)|>UhF_&1VSeA3;DzAmEV&98WI~$#q8C_^e z6gcqgMPA+T+_o3Rbx6-i1{x*CrdwN9#`mW1v8>gCR%~yY8ja`Uy=fo6PfsiBRcGt6 zafWJmC0)rx&AN8|SznWJ9Q;|0FilbmJBF-1ySw@>(MeFs)?w6f9LCls{o-$qGX&`s z_x|KH0lHYNzor{+))aZUY;iX>dR~czE;c|3yMuE-jQ&2S->>vvO<@MNGoR(d3E9tz>$sJQ+-0AC1nYH-q)+ zR^qDB(@WGod#EhPiJX)`mt>STgK5PiXk&{ZY}$ zVJDK&Tf?X`aFv(CC~+2kC4>Ek(*}Mo8I2uIN&M_Sf}&QXdoLw>43gz>vh3}&d>=gS z@YWs}G5?d?J{(D-egtM_(TMk^F{3m?-&VG;)6|6_8$f~mG895$NXU(&wTNe9{Kz`z z=a=AAplIiw(G)Nh{d^P=iEqZs z6@o^=NG)Rdb^ae^w(39fwlvYH?vZo`xQbsSJ)DZpL~Tocf{s-E31c<3SM~YH`qH!; zo4`0ka zm;cNk^YuXmJPbfOyQ1kJAk3!#!Es-q!l%dW`n~BDD@67x4@m?gS=5VkwG<5=P0;FlB zfLMF_MqwM>Xw1%~Y44suk&{95^aP4s39G#eNRD0d#tsSpv?w|iki69!iuPgxdCf#0 zN`;&M14YgR7n!-0DxETsJeQ!n{;;{TFjRG(q{U_p*GGp<9CrK|2#b!B2!gQb7VMGZ znS>HW{9TXtYpg=5k#}Z?AnfuBu0~pB&q-8lHkiq5xjvIAY&II@H<@C&yxn99T7X|^ z>EV+ph2M{#OkPXV;jf%bzH{&_>F$|K5qLIVn5_BwetkzgAF{38DXXBLp@btV+gg1} zm1|h=rnN+R5v_GjIU#GoHbu@yP+WShAzG1)qytWj1>^ErGHhWilMj{nQiKv-Je$w{ zqH z?(RMw`J!~ux2+|ze#w_PhT`TyQ`-rQ6$850vm0}6jTIx4s7?Q6fm%9O%1+88bLao3 z<+4rb@YFua;=MYq-Jee381GEk4-e7Z0xXsk+87U4}M zZ1eb8T0Ggan?tvRKS!viM-YF*x7|ev?5I|cER94paM@1j3bJ?G5>gX^k1}`;b!Bf8J%{!^h4=sM zqtQkAdk$^FOY_G$+8SxjQe~yTQt?HMAm)aquM?uS=1mI2ulEfsiRC-A)v+~OkD{dY| z{EPuOJG_5xr8egIC>o{DeC)rI54VBbR~QP|-kh&FQaQeeG0yC}K-2D$1#`@}Jz@M< zh*{`e_M@L>M|AvWC`%?yw~TYL;R_Z}P%Z?&Qp#%<(5RK@4H<=kpEx|5_ka&}^phu~ z9i`qu<-vytp0W=QM2~$TNFB9M3jn|Ct1s>26W!I?y4edUfP+p!!xDsw_on5GG!>uz z$8Q~`xjrvv#T28AX+I!%PEprqeW@M$oEBLjΜ$)u4T45t;C7+JX-ba&%C!LH!!e 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 delta 179851 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

da+*qpes;-4;%n*+gWj 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 From ba936604a3bda8042b6ac385a9b5b006acaae524 Mon Sep 17 00:00:00 2001 From: dswbx Date: Thu, 23 Jan 2025 09:02:58 +0100 Subject: [PATCH 2/4] fix overwrite of entity config (e.g. empty label) --- app/src/ui/client/schema/data/use-bknd-data.ts | 6 +++++- app/src/ui/components/form/json-schema/JsonSchemaForm.tsx | 6 ++++-- app/src/ui/routes/data/_data.root.tsx | 2 +- app/src/ui/routes/data/data.$entity.index.tsx | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/ui/client/schema/data/use-bknd-data.ts b/app/src/ui/client/schema/data/use-bknd-data.ts index 7ab5d9b..315d692 100644 --- a/app/src/ui/client/schema/data/use-bknd-data.ts +++ b/app/src/ui/client/schema/data/use-bknd-data.ts @@ -43,7 +43,11 @@ export function useBkndData() { return { config: async (partial: Partial): Promise => { console.log("patch config", entityName, partial); - return await bkndActions.patch("data", `entities.${entityName}.config`, partial); + return await bkndActions.overwrite( + "data", + `entities.${entityName}.config`, + partial + ); }, fields: entityFieldActions(bkndActions, entityName) }; diff --git a/app/src/ui/components/form/json-schema/JsonSchemaForm.tsx b/app/src/ui/components/form/json-schema/JsonSchemaForm.tsx index 8b79f70..f73ce83 100644 --- a/app/src/ui/components/form/json-schema/JsonSchemaForm.tsx +++ b/app/src/ui/components/form/json-schema/JsonSchemaForm.tsx @@ -16,6 +16,7 @@ export type JsonSchemaFormProps = any & { uiSchema?: any; direction?: "horizontal" | "vertical"; onChange?: (value: any, isValid: () => boolean) => void; + cleanOnChange?: boolean; }; export type JsonSchemaFormRef = { @@ -36,6 +37,7 @@ export const JsonSchemaForm = forwardRef templates, fields, widgets, + cleanOnChange, ...props }, ref @@ -51,8 +53,8 @@ export const JsonSchemaForm = forwardRef return false; }; const handleChange = ({ formData }: any, e) => { - const clean = JSON.parse(JSON.stringify(formData)); - //console.log("Data changed: ", clean, JSON.stringify(formData, null, 2)); + const clean = cleanOnChange !== false ? JSON.parse(JSON.stringify(formData)) : formData; + console.log("Data changed: ", clean, { cleanOnChange }); setValue(clean); onChange?.(clean, () => isValid(clean)); }; diff --git a/app/src/ui/routes/data/_data.root.tsx b/app/src/ui/routes/data/_data.root.tsx index f7281ef..3ef6a49 100644 --- a/app/src/ui/routes/data/_data.root.tsx +++ b/app/src/ui/routes/data/_data.root.tsx @@ -201,7 +201,7 @@ const EntityContextMenu = ({ separator, { icon: IconSettings, - label: "Settings", + label: "Advanced", onClick: () => navigate(routes.settings.path(["data", "entities", entity.name]), { absolute: true diff --git a/app/src/ui/routes/data/data.$entity.index.tsx b/app/src/ui/routes/data/data.$entity.index.tsx index 135595e..960a4b6 100644 --- a/app/src/ui/routes/data/data.$entity.index.tsx +++ b/app/src/ui/routes/data/data.$entity.index.tsx @@ -41,7 +41,7 @@ export function DataEntityList({ params }) { const [navigate] = useNavigate(); const search = useSearch(searchSchema, { select: entity.getSelect(undefined, "form"), - sort: undefined + sort: entity.getDefaultSort() }); const $q = useApiQuery( From cc76964d03e6fee90155a8544722621074f3865a Mon Sep 17 00:00:00 2001 From: dswbx Date: Sat, 25 Jan 2025 09:14:02 +0100 Subject: [PATCH 3/4] restructured elements slightly for better customization, updated readme and docs --- README.md | 15 +- app/src/index.ts | 3 + app/src/ui/elements/auth/AuthScreen.tsx | 17 ++- app/src/ui/elements/auth/index.ts | 3 + app/src/ui/elements/index.ts | 2 +- .../ui/elements/media/DropzoneContainer.tsx | 38 +++-- app/src/ui/elements/media/index.ts | 7 +- .../test/tests/dropzone-element-test.tsx | 17 +-- docs/usage/elements.mdx | 131 ++++++++++++++++-- docs/usage/react.mdx | 18 ++- 10 files changed, 211 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 4689c7f..b44bc67 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,13 @@ ![bknd](https://raw.githubusercontent.com/bknd-io/bknd/refs/heads/main/docs/_assets/poster.png) -bknd simplifies app development by providing fully functional backend for database management, authentication, media and workflows. Being lightweight and built on Web Standards, it can be deployed nearly anywhere, including running inside your framework of choice. No more deploying multiple separate services! +

+ +bknd simplifies app development by providing a fully functional backend for database management, authentication, media and workflows. Being lightweight and built on Web Standards, it can be deployed nearly anywhere, including running inside your framework of choice. No more deploying multiple separate services! **For documentation and examples, please visit https://docs.bknd.io.** @@ -17,7 +23,7 @@ bknd simplifies app development by providing fully functional backend for databa ![gzipped size of bknd/elements](https://img.badgesize.io/https://unpkg.com/bknd@0.6.1/dist/ui/elements/index.js?compression=gzip&label=bknd/elements) ![gzipped size of bknd/ui](https://img.badgesize.io/https://unpkg.com/bknd@0.6.1/dist/ui/index.js?compression=gzip&label=bknd/ui) -The unpacked size on npm is misleading, as the `bknd` package includes the backend, the ui components as well as the whole backend bundled into the cli including static assets. +The size on npm is misleading, as the `bknd` package includes the backend, the ui components as well as the whole backend bundled into the cli including static assets. ## Motivation Creating digital products always requires developing both the backend (the logic) and the frontend (the appearance). Building a backend from scratch demands deep knowledge in areas such as authentication and database management. Using a backend framework can speed up initial development, but it still requires ongoing effort to work within its constraints (e.g., *"how to do X with Y?"*), which can quickly slow you down. Choosing a backend system is a tough decision, as you might not be aware of its limitations until you encounter them. @@ -43,8 +49,8 @@ The package is mainly split into 4 parts, each serving a specific purpose: | Import | Purpose | |-----------------------------|------------------------------------------------------| -| `bknd`
`bknd/adapter/*` | Backend including all APIs | -| `bknd/ui` | Admin UI components for react frameworks at | +| `bknd`
`bknd/adapter/*` | Backend including APIs and adapters | +| `bknd/ui` | Admin UI components for react frameworks | | `bknd/client` | TypeScript SDK and React hooks for the API endpoints | | `bknd/elements` | React components for authentication and media | @@ -110,6 +116,7 @@ export default function App() { You don't have to figure out API details to include media uploads to your app. For an user avatar upload, this is all you need: ```tsx import { Media } from "bknd/elements" +import "bknd/dist/main.css" export function UserAvatar() { return ; + + if (formOnly) { + if (loading) return null; + return Form; + } return (
@@ -25,7 +38,7 @@ export function AuthScreen({ method = "POST", action = "login", logo, intro }: A

Enter your credentials below to get access.

)} - + {Form} )} diff --git a/app/src/ui/elements/auth/index.ts b/app/src/ui/elements/auth/index.ts index b73224a..68843bd 100644 --- a/app/src/ui/elements/auth/index.ts +++ b/app/src/ui/elements/auth/index.ts @@ -1,3 +1,4 @@ +import { useAuthStrategies } from "../hooks/use-auth"; import { AuthForm } from "./AuthForm"; import { AuthScreen } from "./AuthScreen"; import { SocialLink } from "./SocialLink"; @@ -7,3 +8,5 @@ export const Auth = { Form: AuthForm, SocialLink: SocialLink }; + +export { useAuthStrategies }; diff --git a/app/src/ui/elements/index.ts b/app/src/ui/elements/index.ts index c2d2109..9072c1e 100644 --- a/app/src/ui/elements/index.ts +++ b/app/src/ui/elements/index.ts @@ -1,2 +1,2 @@ -export { Auth } from "./auth"; +export * from "./auth"; export * from "./media"; diff --git a/app/src/ui/elements/media/DropzoneContainer.tsx b/app/src/ui/elements/media/DropzoneContainer.tsx index adca51d..fa41f90 100644 --- a/app/src/ui/elements/media/DropzoneContainer.tsx +++ b/app/src/ui/elements/media/DropzoneContainer.tsx @@ -1,31 +1,32 @@ -import type { RepoQuery, RepoQueryIn } from "data"; +import type { RepoQueryIn } from "data"; import type { MediaFieldSchema } from "media/AppMedia"; import type { TAppMediaConfig } from "media/media-schema"; -import { useId } from "react"; -import { useApi, useBaseUrl, useEntityQuery, useInvalidate } from "ui/client"; +import { type ReactNode, createContext, useContext, useId } from "react"; +import { useApi, useEntityQuery, useInvalidate } from "ui/client"; import { useEvent } from "ui/hooks/use-event"; import { Dropzone, type DropzoneProps, type DropzoneRenderProps, type FileState } from "./Dropzone"; import { mediaItemsToFileStates } from "./helper"; export type DropzoneContainerProps = { - children?: (props: DropzoneRenderProps) => JSX.Element; + children?: ReactNode; initialItems?: MediaFieldSchema[]; entity?: { name: string; id: number; field: string; }; + media?: Pick; query?: RepoQueryIn; -} & Partial> & - Partial; +} & Omit, "children" | "initialItems">; + +const DropzoneContainerContext = createContext(undefined!); export function DropzoneContainer({ initialItems, - basepath = "/api/media", - storage = {}, - entity_name = "media", + media, entity, query, + children, ...props }: DropzoneContainerProps) { const id = useId(); @@ -33,10 +34,11 @@ export function DropzoneContainer({ const baseUrl = api.baseUrl; const invalidate = useInvalidate(); const limit = query?.limit ? query?.limit : props.maxItems ? props.maxItems : 50; - console.log("dropzone:baseUrl", baseUrl); + const entity_name = (media?.entity_name ?? "media") as "media"; + //console.log("dropzone:baseUrl", baseUrl); const $q = useEntityQuery( - entity_name as "media", + entity_name, undefined, { ...query, @@ -89,6 +91,18 @@ export function DropzoneContainer({ autoUpload initialItems={_initialItems} {...props} - /> + > + {children + ? (props) => ( + + {children} + + ) + : undefined} + ); } + +export function useDropzone() { + return useContext(DropzoneContainerContext); +} diff --git a/app/src/ui/elements/media/index.ts b/app/src/ui/elements/media/index.ts index 142d2a7..ff5c8f8 100644 --- a/app/src/ui/elements/media/index.ts +++ b/app/src/ui/elements/media/index.ts @@ -1,11 +1,14 @@ import { PreviewWrapperMemoized } from "./Dropzone"; -import { DropzoneContainer } from "./DropzoneContainer"; +import { DropzoneContainer, useDropzone } from "./DropzoneContainer"; export const Media = { Dropzone: DropzoneContainer, - Preview: PreviewWrapperMemoized + Preview: PreviewWrapperMemoized, + useDropzone: useDropzone }; +export { useDropzone as useMediaDropzone }; + export type { PreviewComponentProps, FileState, diff --git a/app/src/ui/routes/test/tests/dropzone-element-test.tsx b/app/src/ui/routes/test/tests/dropzone-element-test.tsx index 3abaebe..6e53d95 100644 --- a/app/src/ui/routes/test/tests/dropzone-element-test.tsx +++ b/app/src/ui/routes/test/tests/dropzone-element-test.tsx @@ -1,4 +1,4 @@ -import { type DropzoneRenderProps, Media } from "ui/elements"; +import { Media } from "ui/elements"; import { Scrollable } from "ui/layouts/AppShell/AppShell"; export default function DropzoneElementTest() { @@ -12,7 +12,7 @@ export default function DropzoneElementTest() { maxItems={1} overwrite > - {(props) => } +
@@ -49,12 +49,13 @@ export default function DropzoneElementTest() { ); } -function CustomUserAvatarDropzone({ - wrapperRef, - inputProps, - state: { files, isOver, isOverAccepted, showPlaceholder }, - actions: { openFileInput } -}: DropzoneRenderProps) { +function CustomUserAvatarDropzone() { + const { + wrapperRef, + inputProps, + state: { files, isOver, isOverAccepted, showPlaceholder }, + actions: { openFileInput } + } = Media.useDropzone(); const file = files[0]; return ( diff --git a/docs/usage/elements.mdx b/docs/usage/elements.mdx index 0a517fa..299ecd3 100644 --- a/docs/usage/elements.mdx +++ b/docs/usage/elements.mdx @@ -3,23 +3,134 @@ title: "React Elements" description: "Speed up your frontend development" --- - - The documentation is currently a work in progress and not complete. - - - Not only creating and maintaing a backend is time-consuming, but also integrating it into your frontend can be a hassle. With `bknd/elements`, you can easily add media uploads and authentication forms to your app without having to figure out API details. -## Media uploads + + In order to use these exported elements, make sure to wrap your app inside `ClientProvider`. See the [React Setup](/usage/react#setup) for more information. + + +# Media + +## Media.Dropzone +The `Media.Dropzone` element allows retrieving from and uploading media items to your bknd instance. Without any properties specified, it will behave similar to your media library inside the bknd Admin UI. Here is how to get the last 10 items: ```tsx import { Media } from "bknd/elements" -export function UserAvatar() { +export default function MediaGallery() { + return +} +``` + +Since you can also upload media to a specific entity, you can also point that `Dropzone` to it. Here is an example of a single user avatar that gets overwritten on re-upload: + +```tsx +import { Media } from "bknd/elements"; + +export default function UserAvatar() { return +} +``` + +### Props +- `initialItems?: xMediaFieldSchema[]`: Initial items to display, must be an array of media objects. +- `entity?: { name: string; id: number; field: string }`: If given, the initial media items fetched will be from this entity. +- `query?: RepoQueryIn`: Query to filter the media items. +- `overwrite?: boolean`: If true, the media item will be overwritten on entity media uploads if limit was reached. +- `maxItems?: number`: Maximum number of media items that can be uploaded. +- `autoUpload?: boolean`: If true, the media items will be uploaded automatically. +- `onRejected?: (files: FileWithPath[]) => void`: Callback when a file is rejected. +- `onDeleted?: (file: FileState) => void`: Callback when a file is deleted. +- `onUploaded?: (file: FileState) => void`: Callback when a file is uploaded. +- `placeholder?: { show?: boolean; text?: string }`: Placeholder text to show when no media items are present. + +### Customize Rendering +You can also customize the rendering of the media items and its uploading by passing a react element as a child. Here is an example of a custom `Media.Dropzone` that renders an user avatar (styled using tailwind): + +```tsx +import { Media, useMediaDropzone } from "bknd/elements"; + +export default function CustomUserAvatar() { + return + + +} + +function CustomUserAvatar() { + const { + wrapperRef, + inputProps, + state: { files, isOver, isOverAccepted, showPlaceholder }, + actions: { openFileInput } + } = useMediaDropzone(); + + const file = files[0]; + + return ( +
+
+ +
+ {showPlaceholder && <>{isOver && isOverAccepted ? "let it drop" : "drop here"}} + {file && ( + + )} +
+ ); +} +``` + +# Auth +Adding authentication to your app with bknd is as easy as adding a `
` with an action pointing to the action (`login` or `register`) to the strategy you want to use, e.g. for the password strategy, use `/api/auth/password/login`. But to make it even easier, you can use the `Auth.*` elements. + +## `Auth.Screen` +The `Auth.Screen` element is a wrapper around the `Auth.Form` element that provides a full page screen. The current layout is admittedly very basic, but there will be more customization options in the future. + +```tsx +import { Auth } from "bknd/elements" + +export default function LoginScreen() { + return +} +``` + +### Props +Note that this component doesn't require any strategy-specific information, as it gathers it itself. + +- `action: "login" | "register"`: The action to perform. +- `method?: "POST" | "GET"`: The method to use for the form. + + + +## `Auth.Form` +If you only wish to render the form itself without the screen, you can use the `Auth.Form` element. Unlike the `Auth.Screen`, this element requires the `strategy` prop to be set to the strategy you want to use. You can either specify it manually, use use the exported hook `useAuthStrategies()` for fetch them from your bknd instance. + +```tsx +import { Auth, useAuthStrategies } from "bknd/elements" + +export default function LoginForm() { + const { strategies, basepath, loading } = useAuthStrategies(); + if (loading) return null; + + return } ``` \ No newline at end of file diff --git a/docs/usage/react.mdx b/docs/usage/react.mdx index 753e93b..1e45325 100644 --- a/docs/usage/react.mdx +++ b/docs/usage/react.mdx @@ -3,7 +3,7 @@ title: 'SDK (React)' description: 'Use the bknd SDK for React' --- -bknd exports 4 useful hooks to work with your backend: +There are 4 useful hooks to work with your backend: 1. simple hooks which are solely based on the [API](/usage/sdk): - [`useApi`](#useapi) - [`useEntity`](#useentity) @@ -11,6 +11,22 @@ bknd exports 4 useful hooks to work with your backend: - [`useApiQuery`](#useapiquery) - [`useEntityQuery`](#useentityquery) + +## Setup +In order to use them, make sure you wrap your `` inside ``, so that these hooks point to your bknd instance: + +```tsx +import { ClientProvider } from "bknd/client"; + +export default function App() { + return + {/* your app */} + +} +``` + +For all other examples below, we'll assume that your app is wrapped inside the `ClientProvider`. + ## `useApi()` To use the simple hook that returns the Api, you can use: ```tsx From acc504cdc9da560d372488c74283e4647ae8d0b7 Mon Sep 17 00:00:00 2001 From: dswbx Date: Sat, 25 Jan 2025 09:40:15 +0100 Subject: [PATCH 4/4] release version 0.6.2 --- app/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/package.json b/app/package.json index ebd8f9b..a04b686 100644 --- a/app/package.json +++ b/app/package.json @@ -3,7 +3,7 @@ "type": "module", "sideEffects": false, "bin": "./dist/cli/index.js", - "version": "0.6.1", + "version": "0.6.2", "description": "Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, Remix, Astro, Cloudflare, Bun, Node, AWS Lambda & more.", "homepage": "https://bknd.io", "repository": {

+ +⭐ Live Demo + +