@motherbase/client 1.2.8 → 1.4.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 +73 -9
- package/dist/auth.d.ts +172 -14
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +399 -14
- package/dist/auth.js.map +1 -1
- package/dist/channel.d.ts +15 -12
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js.map +1 -1
- package/dist/compat.d.ts +40 -0
- package/dist/compat.d.ts.map +1 -0
- package/dist/compat.js +98 -0
- package/dist/compat.js.map +1 -0
- package/dist/cookie.d.ts +23 -2
- package/dist/cookie.d.ts.map +1 -1
- package/dist/cookie.js +71 -9
- package/dist/cookie.js.map +1 -1
- package/dist/database.d.ts +20 -1
- package/dist/database.d.ts.map +1 -1
- package/dist/functions.d.ts +36 -0
- package/dist/functions.d.ts.map +1 -1
- package/dist/functions.js +56 -5
- package/dist/functions.js.map +1 -1
- package/dist/http.d.ts +47 -7
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +73 -12
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +79 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +183 -11
- package/dist/index.js.map +1 -1
- package/dist/postgrest.d.ts +94 -1
- package/dist/postgrest.d.ts.map +1 -1
- package/dist/postgrest.js +185 -17
- package/dist/postgrest.js.map +1 -1
- package/dist/query.d.ts +97 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +94 -0
- package/dist/query.js.map +1 -0
- package/dist/session.d.ts +19 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +57 -4
- package/dist/session.js.map +1 -1
- package/dist/storage.d.ts +172 -5
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +249 -6
- package/dist/storage.js.map +1 -1
- package/dist/testing.d.ts +38 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +50 -0
- package/dist/testing.js.map +1 -0
- package/dist/types.d.ts +264 -20
- package/dist/types.d.ts.map +1 -1
- package/dist/warn.d.ts +4 -0
- package/dist/warn.d.ts.map +1 -0
- package/dist/warn.js +27 -0
- package/dist/warn.js.map +1 -0
- package/package.json +60 -52
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAsClE,qEAAqE;AACrE,MAAM,YAAY,GAAG,GAAG,WAAW,CAAC,KAAK,SAAS,CAAC;AAwBnD;;;;;;;;GAQG;AACH,MAAM,IAAI,GAAG,iEAAiE,CAAC;AAE/E,MAAM,OAAO,aAAa;IACxB,YACmB,IAAgB,EAChB,OAAe,EACf,MAAc;IAC/B,+EAA+E;IAC9D,SAAuB;QAJvB,SAAI,GAAJ,IAAI,CAAY;QAChB,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAQ;QAEd,cAAS,GAAT,SAAS,CAAc;IACvC,CAAC;IAEJ;;;;OAIG;IACK,UAAU,CAAC,QAAgB,EAAE,IAA6C;QAChF,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;YACvG,CAAC;YACD,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,IAAiB,EACjB,UAAyB,EAAE;QAE3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;gBACxD,wEAAwE;gBACxE,uEAAuE;gBACvE,wEAAwE;gBACxE,qEAAqE;gBACrE,SAAS;gBACT,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAuB,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,OAAO,CAAC,UAAU;gBAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1B,IAAI,OAAO,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwB,GAAG,WAAW,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAClH,OAAO;gBACL,IAAI,EAAE;oBACJ,IAAI;oBACJ,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;oBACnB,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;iBACnC;gBACD,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,UAAU,CACd,KAA0E,EAC1E,UAKI,EAAE;QAEN,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,IAAI,KAAK,CAAoE,KAAK,CAAC,CAAC;QACpG,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,0EAA0E;QAC1E,wDAAwD;QACxD,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;YACvC,SAAS,CAAC;gBACR,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;gBACrB,IAAI,KAAK,IAAI,KAAK;oBAAE,OAAO;gBAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBACjF,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;gBACzF,SAAS,IAAI,CAAC,CAAC;gBACf,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACxE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAe;QAC1B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CACf,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACV,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtB,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,WAAW,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;qBAChE,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,kBAAkB,CAAC;qBACvB,IAAI,CAAC,GAAG,CAAC,EAAE,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,CACrB,CACF,CACF,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,UAAuB,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,MAAM;gBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACxC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;gBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9E,IAAI,OAAO,CAAC,MAAM;gBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM;gBAAE,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3E,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK;gBAAE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACjC,GAAG,WAAW,CAAC,KAAK,SAAS,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CACxE,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,2FAA2F;IAC3F,YAAY,CAAC,IAAY;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO;YACL,IAAI,EAAE;gBACJ,SAAS,EAAE,GAAG,IAAI,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,kBAAkB,CAAC,IAAI,CAAC,EAAE;aACtG;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,eAAe,CACnB,IAAY,EACZ,SAAkB;QAElB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3F,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACjC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,KAAK,EAAE,CACjD,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CACpB,KAAe,EACf,SAAkB;QAElB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;YACrB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACpE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;QACrF,CAAC,CAAC,CACH,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,IAAiB,EAAE,UAAyB,EAAE;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,EAAU,EAAE,UAAgC,EAAE;QACrE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,EAAU,EAAE,UAAgC,EAAE;QACrE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,MAAuB,EACvB,IAAY,EACZ,EAAU,EACV,OAA6B;QAE7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACjC,GAAG,WAAW,CAAC,KAAK,IAAI,MAAM,EAAE,EAChC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,EAAE,CAC7F,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACjF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAa,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;YACtF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC7C,IAAI,KAAK,EAAE,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,OAAO,EAAE,uBAAuB,EAAE,EAAE,CAAC;IAC9E,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,qBAAqB,CACzB,IAAY,EACZ,OAA4E;QAE5E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACjC,GAAG,WAAW,CAAC,KAAK,UAAU,EAC9B;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI;oBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,WAAW;oBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;iBAC/B;aACF,CACF,CAAC;YACF,uEAAuE;YACvE,oEAAoE;YACpE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACtE,OAAO,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CACrB,IAAY,EACZ,KAAa,EACb,IAAU,EACV,UAAoC,EAAE;QAEtC,IAAI,MAAqC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAkC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mEAAmE,EAAE,EAAE,CAAC;QACjH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mEAAmE,EAAE,EAAE,CAAC;QACjH,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC3C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,IAAI,0BAA0B,EAAE;aAC5F,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,6BAA6B,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3G,CAAC;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACxF,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAED,yEAAyE;AACzE,MAAM,OAAO,aAAa;IACxB,YACmB,IAAgB,EAChB,OAAe,EACf,SAAuB;QAFvB,SAAI,GAAJ,IAAI,CAAY;QAChB,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAc;IACvC,CAAC;IAEJ,IAAI,CAAC,MAAc;QACjB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAA4B,YAAY,CAAC,CAAC;YAC7E,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,IAAI,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,UAA+C,EAAE;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,OAA4C;QACzE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,IAAI,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACtF,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACjC,GAAG,YAAY,IAAI,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EACjD,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,UAA+B,EAAE;QAC9D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACjC,GAAG,YAAY,IAAI,kBAAkB,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EACnD,EAAE,MAAM,EAAE,QAAQ,EAAE,CACrB,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,MAAM,GAAG,KAAK,EAAE,IAAc;QACnE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAa,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test-only client: run a query as a specific user, or as nobody.
|
|
3
|
+
*
|
|
4
|
+
* A row level security policy is a claim about who can see what, and the only
|
|
5
|
+
* honest way to check it is to issue the same query as several callers and
|
|
6
|
+
* compare the results. Without this, doing that in a test means creating users
|
|
7
|
+
* and signing in as each of them through the real auth flow, which is slow
|
|
8
|
+
* enough that most policies end up untested and wrong.
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* const asAlice = createTestClient(url, secretKey, { as: alice.id })
|
|
12
|
+
* const asBob = createTestClient(url, secretKey, { as: bob.id })
|
|
13
|
+
* const asAnon = createTestClient(url, secretKey, { as: 'anon' })
|
|
14
|
+
*
|
|
15
|
+
* expect((await asAlice.from('notes').select('*')).data).toHaveLength(1)
|
|
16
|
+
* expect((await asBob.from('notes').select('*')).data).toHaveLength(0)
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* This is a server-side tool. It needs the project's SECRET key, which bypasses
|
|
20
|
+
* RLS and must never reach a browser, so importing this module from application
|
|
21
|
+
* code is a mistake even though nothing here can stop you. The server refuses
|
|
22
|
+
* the impersonation header outright when the key is anything else, so the worst
|
|
23
|
+
* case is a failed request rather than a privilege escalation.
|
|
24
|
+
*/
|
|
25
|
+
import { MotherbaseClient } from './index.js';
|
|
26
|
+
import type { ClientOptions } from './types.js';
|
|
27
|
+
import type { GenericDatabase, GenericSchema, DefaultSchemaName, SchemaOf } from './database.js';
|
|
28
|
+
/** The header the server reads. Exported so a raw fetch can do the same thing. */
|
|
29
|
+
export declare const IMPERSONATE_HEADER = "x-motherbase-impersonate";
|
|
30
|
+
export interface TestClientOptions extends ClientOptions {
|
|
31
|
+
/**
|
|
32
|
+
* Who to run as: a user id, `'anon'` for a signed-out visitor, or
|
|
33
|
+
* `'service_role'` to keep the secret key's own bypass-everything identity.
|
|
34
|
+
*/
|
|
35
|
+
as: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function createTestClient<Database = GenericDatabase, SchemaName = DefaultSchemaName<Database>, Schema extends GenericSchema = SchemaOf<Database, SchemaName>>(url: string, secretKey: string, options: TestClientOptions): MotherbaseClient<Database, SchemaName, Schema>;
|
|
38
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAgB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEjG,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,GAAG,eAAe,EAC1B,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EACxC,MAAM,SAAS,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,EAE7D,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAuBhD"}
|
package/dist/testing.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test-only client: run a query as a specific user, or as nobody.
|
|
3
|
+
*
|
|
4
|
+
* A row level security policy is a claim about who can see what, and the only
|
|
5
|
+
* honest way to check it is to issue the same query as several callers and
|
|
6
|
+
* compare the results. Without this, doing that in a test means creating users
|
|
7
|
+
* and signing in as each of them through the real auth flow, which is slow
|
|
8
|
+
* enough that most policies end up untested and wrong.
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* const asAlice = createTestClient(url, secretKey, { as: alice.id })
|
|
12
|
+
* const asBob = createTestClient(url, secretKey, { as: bob.id })
|
|
13
|
+
* const asAnon = createTestClient(url, secretKey, { as: 'anon' })
|
|
14
|
+
*
|
|
15
|
+
* expect((await asAlice.from('notes').select('*')).data).toHaveLength(1)
|
|
16
|
+
* expect((await asBob.from('notes').select('*')).data).toHaveLength(0)
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* This is a server-side tool. It needs the project's SECRET key, which bypasses
|
|
20
|
+
* RLS and must never reach a browser, so importing this module from application
|
|
21
|
+
* code is a mistake even though nothing here can stop you. The server refuses
|
|
22
|
+
* the impersonation header outright when the key is anything else, so the worst
|
|
23
|
+
* case is a failed request rather than a privilege escalation.
|
|
24
|
+
*/
|
|
25
|
+
import { createClient } from './index.js';
|
|
26
|
+
import { memoryStorage } from './session.js';
|
|
27
|
+
/** The header the server reads. Exported so a raw fetch can do the same thing. */
|
|
28
|
+
export const IMPERSONATE_HEADER = 'x-motherbase-impersonate';
|
|
29
|
+
export function createTestClient(url, secretKey, options) {
|
|
30
|
+
if (!secretKey?.startsWith('mb_secret_')) {
|
|
31
|
+
// Fail here rather than at the first query: a test that ran as the wrong
|
|
32
|
+
// caller and passed is the failure this whole module exists to prevent.
|
|
33
|
+
throw new Error('createTestClient needs the project secret key (mb_secret_…). A publishable key cannot impersonate, '
|
|
34
|
+
+ 'and the server refuses the header with a 403.');
|
|
35
|
+
}
|
|
36
|
+
const { as, ...rest } = options;
|
|
37
|
+
return createClient(url, secretKey, {
|
|
38
|
+
// A fresh in-memory session per client, so two clients in one test file
|
|
39
|
+
// cannot share (or clobber) each other's stored session.
|
|
40
|
+
storage: memoryStorage(),
|
|
41
|
+
...rest,
|
|
42
|
+
headers: {
|
|
43
|
+
...rest.headers,
|
|
44
|
+
// `service_role` is the absence of impersonation: the secret key already
|
|
45
|
+
// is service_role, so sending a header would only add a lookup.
|
|
46
|
+
...(as === 'service_role' ? {} : { [IMPERSONATE_HEADER]: as }),
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAU7D,MAAM,UAAU,gBAAgB,CAK9B,GAAW,EACX,SAAiB,EACjB,OAA0B;IAE1B,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,IAAI,KAAK,CACb,qGAAqG;cACjG,+CAA+C,CACpD,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAChC,OAAO,YAAY,CAA+B,GAAG,EAAE,SAAS,EAAE;QAChE,wEAAwE;QACxE,yDAAyD;QACzD,OAAO,EAAE,aAAa,EAAE;QACxB,GAAG,IAAI;QACP,OAAO,EAAE;YACP,GAAG,IAAI,CAAC,OAAO;YACf,yEAAyE;YACzE,gEAAgE;YAChE,GAAG,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC;SAC/D;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -7,13 +7,120 @@ export interface ApiEnvelope<T = unknown> {
|
|
|
7
7
|
data?: T;
|
|
8
8
|
pager?: Record<string, unknown>;
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
/**
|
|
11
|
+
* A timestamp as it can reach the client: ISO string over HTTP, `Date` when a
|
|
12
|
+
* server-side caller passes a Better Auth row straight in.
|
|
13
|
+
*/
|
|
14
|
+
export type Timestamp = string | Date;
|
|
15
|
+
/**
|
|
16
|
+
* The open bag of profile fields.
|
|
17
|
+
*
|
|
18
|
+
* `User` itself is closed: every field the platform sets is declared, and a
|
|
19
|
+
* typo like `user.emailVerifed` is a compile error. Project-specific columns
|
|
20
|
+
* (anything added to `user.additionalFields` on the server) cannot be known
|
|
21
|
+
* here, so they live in this bag, which is the one place with an index
|
|
22
|
+
* signature. `compat.ts` copies every non-platform field into it, so a custom
|
|
23
|
+
* `plan` column is readable as `user.user_metadata.plan`.
|
|
24
|
+
*
|
|
25
|
+
* Declare your own shape for it when you know the columns:
|
|
26
|
+
* `const meta = user.user_metadata as { plan?: string }`.
|
|
27
|
+
*/
|
|
28
|
+
export interface UserMetadata {
|
|
29
|
+
name?: string | null;
|
|
30
|
+
image?: string | null;
|
|
31
|
+
[key: string]: unknown;
|
|
32
|
+
}
|
|
33
|
+
/** Fields Better Auth itself owns on a user row. */
|
|
34
|
+
export interface BetterAuthUserFields {
|
|
35
|
+
/** Display name. Better Auth's own column, mirrored into `user_metadata`. */
|
|
36
|
+
name?: string | null;
|
|
37
|
+
/** Avatar URL. Better Auth's own column, mirrored into `user_metadata`. */
|
|
38
|
+
image?: string | null;
|
|
39
|
+
/** Better Auth stores verification as a boolean, not a timestamp. */
|
|
40
|
+
emailVerified?: boolean;
|
|
41
|
+
createdAt?: Timestamp | null;
|
|
42
|
+
updatedAt?: Timestamp | null;
|
|
43
|
+
/** Set by the `phoneNumber` plugin; aliased to `phone`. */
|
|
44
|
+
phoneNumber?: string | null;
|
|
45
|
+
phoneNumberVerified?: boolean | null;
|
|
46
|
+
/** Set by the `admin` plugin. */
|
|
47
|
+
banned?: boolean | null;
|
|
48
|
+
banReason?: string | null;
|
|
49
|
+
banExpires?: Timestamp | null;
|
|
50
|
+
/** Set by the `twoFactor` plugin. */
|
|
51
|
+
twoFactorEnabled?: boolean | null;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The `additionalFields` Motherbase configures on every project's auth
|
|
55
|
+
* instance (see `apps/server/auth/instance.ts`). The first four are
|
|
56
|
+
* client-writable through `updateUser`; the rest are server-set.
|
|
57
|
+
*/
|
|
58
|
+
export interface MotherbaseUserFields {
|
|
14
59
|
username?: string | null;
|
|
60
|
+
firstName?: string | null;
|
|
61
|
+
lastName?: string | null;
|
|
62
|
+
imageUrl?: string | null;
|
|
63
|
+
/** `'USER'` by default on the server, `'authenticated'` after `compat.ts`. */
|
|
15
64
|
role?: string;
|
|
16
|
-
|
|
65
|
+
status?: string | null;
|
|
66
|
+
classicEmail?: string | null;
|
|
67
|
+
appleId?: string | null;
|
|
68
|
+
appleEmail?: string | null;
|
|
69
|
+
googleId?: string | null;
|
|
70
|
+
googleEmail?: string | null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The snake_case aliases `compat.ts` adds on the way out, so code ported from
|
|
74
|
+
* supabase-js reads `user.created_at` and `user.user_metadata.full_name` on a
|
|
75
|
+
* user that came out of Better Auth.
|
|
76
|
+
*
|
|
77
|
+
* They are optional because a `User` you construct yourself (a test fixture, a
|
|
78
|
+
* value on its way *in*) has not been through `compat.ts` yet. Everything the
|
|
79
|
+
* SDK hands back has them.
|
|
80
|
+
*/
|
|
81
|
+
export interface SupabaseUserAliases {
|
|
82
|
+
/** Always `'authenticated'`. Present for supabase-js parity. */
|
|
83
|
+
aud?: string;
|
|
84
|
+
created_at?: string | null;
|
|
85
|
+
updated_at?: string | null;
|
|
86
|
+
/** Non-null once the email is verified. Better Auth stores a boolean, so the
|
|
87
|
+
* value is the last-update timestamp rather than the true verification time. */
|
|
88
|
+
email_confirmed_at?: string | null;
|
|
89
|
+
confirmed_at?: string | null;
|
|
90
|
+
/** Alias of `phoneNumber`, `''` when the user has no phone. */
|
|
91
|
+
phone?: string;
|
|
92
|
+
/**
|
|
93
|
+
* Always `{}`: the client is not told which provider issued the session, and
|
|
94
|
+
* a guessed `{ provider: 'email' }` is worse than a missing one.
|
|
95
|
+
*/
|
|
96
|
+
app_metadata?: Record<string, unknown>;
|
|
97
|
+
/** Profile fields (`name`, `image`, any configured additional field). */
|
|
98
|
+
user_metadata?: UserMetadata;
|
|
99
|
+
identities?: UserIdentity[];
|
|
100
|
+
is_anonymous?: boolean;
|
|
101
|
+
}
|
|
102
|
+
/** A linked provider, in the supabase-js `UserIdentity` shape. */
|
|
103
|
+
export interface UserIdentity {
|
|
104
|
+
id: string;
|
|
105
|
+
identity_id: string;
|
|
106
|
+
user_id: string;
|
|
107
|
+
provider: string;
|
|
108
|
+
identity_data: Record<string, unknown>;
|
|
109
|
+
created_at: string | null;
|
|
110
|
+
updated_at: string | null;
|
|
111
|
+
last_sign_in_at: string | null;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Authenticated user as returned by the API.
|
|
115
|
+
*
|
|
116
|
+
* Closed on purpose: every field the platform can set is declared above, so
|
|
117
|
+
* reading one that does not exist is a compile error instead of a silent
|
|
118
|
+
* `undefined` at runtime. Project-specific columns go through
|
|
119
|
+
* [`UserMetadata`](#UserMetadata) (`user.user_metadata.<field>`).
|
|
120
|
+
*/
|
|
121
|
+
export interface User extends BetterAuthUserFields, MotherbaseUserFields, SupabaseUserAliases {
|
|
122
|
+
id: string;
|
|
123
|
+
email: string;
|
|
17
124
|
}
|
|
18
125
|
/**
|
|
19
126
|
* The bearer token issued by sign-up / sign-in. With Better Auth this is the
|
|
@@ -25,23 +132,76 @@ export interface Tokens {
|
|
|
25
132
|
accessToken: string;
|
|
26
133
|
refreshToken?: string;
|
|
27
134
|
}
|
|
28
|
-
/**
|
|
135
|
+
/**
|
|
136
|
+
* The locally-held session: the bearer token plus the user it belongs to.
|
|
137
|
+
*
|
|
138
|
+
* The snake_case fields are supabase-js aliases, added by the session store on
|
|
139
|
+
* the way out (see `compat.ts`). `access_token` always mirrors `accessToken`;
|
|
140
|
+
* `expires_at` / `expires_in` are present only when the server dated the
|
|
141
|
+
* session, because supabase-js callers schedule refreshes off them and a
|
|
142
|
+
* fabricated expiry schedules them wrong.
|
|
143
|
+
*/
|
|
29
144
|
export interface Session extends Tokens {
|
|
30
145
|
user: User;
|
|
146
|
+
/** supabase-js alias of `accessToken`. */
|
|
147
|
+
access_token?: string;
|
|
148
|
+
/** supabase-js alias of `refreshToken`. Always null on Better Auth sessions. */
|
|
149
|
+
refresh_token?: string | null;
|
|
150
|
+
token_type?: 'bearer';
|
|
151
|
+
/** Unix seconds. Absent when the backend did not date the session. */
|
|
152
|
+
expires_at?: number;
|
|
153
|
+
/** Seconds until `expires_at`. Absent for the same reason. */
|
|
154
|
+
expires_in?: number;
|
|
155
|
+
}
|
|
156
|
+
export type FileVisibility = 'public' | 'private';
|
|
157
|
+
/** Lifecycle of a stored object: `ready` unless a presigned upload is pending. */
|
|
158
|
+
export type FileStatus = 'pending' | 'ready' | 'expired';
|
|
159
|
+
/**
|
|
160
|
+
* A row of the storage table, as `POST /api/files/` returns it.
|
|
161
|
+
*
|
|
162
|
+
* This is the upload shape, not the `list()` shape: `list()` answers in the
|
|
163
|
+
* supabase-js `FileObject` form, which is a different set of fields under
|
|
164
|
+
* different names. Conflating the two is what the old `[key: string]: unknown`
|
|
165
|
+
* hid, and `file.filename` (a field the server never sent) type-checked.
|
|
166
|
+
*/
|
|
167
|
+
export interface StoredFile {
|
|
168
|
+
id: string;
|
|
169
|
+
/** Bucket slug. */
|
|
170
|
+
bucket: string;
|
|
171
|
+
/** Object key inside the bucket, including any prefix. */
|
|
172
|
+
key: string;
|
|
173
|
+
mime?: string | null;
|
|
174
|
+
size: number;
|
|
175
|
+
visibility: FileVisibility;
|
|
176
|
+
status: FileStatus;
|
|
177
|
+
/** Set for public objects and for drivers that store an absolute URL. */
|
|
178
|
+
url?: string | null;
|
|
179
|
+
ownerId?: string | null;
|
|
180
|
+
bucketId?: string | null;
|
|
181
|
+
/** Deadline of a presigned upload that has not been finalised. */
|
|
182
|
+
uploadExpiresAt?: string | null;
|
|
183
|
+
createdAt: string;
|
|
184
|
+
updatedAt: string;
|
|
31
185
|
}
|
|
32
|
-
/**
|
|
186
|
+
/**
|
|
187
|
+
* One object as `list()` returns it: the supabase-js `FileObject` shape, which
|
|
188
|
+
* is what code ported from Supabase reads (`obj.name`, `obj.metadata.size`).
|
|
189
|
+
*/
|
|
33
190
|
export interface FileObject {
|
|
191
|
+
/** Key relative to the bucket. */
|
|
192
|
+
name: string;
|
|
34
193
|
id: string;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
194
|
+
created_at: string | null;
|
|
195
|
+
updated_at: string | null;
|
|
196
|
+
last_accessed_at: string | null;
|
|
197
|
+
metadata: {
|
|
198
|
+
size: number;
|
|
199
|
+
mimetype: string | null;
|
|
200
|
+
cacheControl: string | null;
|
|
201
|
+
};
|
|
41
202
|
}
|
|
42
|
-
export type FileVisibility = 'public' | 'private';
|
|
43
203
|
/** Exact payload returned by `POST /api/files/`. */
|
|
44
|
-
export type StorageUploadResponse = StorageUploadContract<
|
|
204
|
+
export type StorageUploadResponse = StorageUploadContract<StoredFile>;
|
|
45
205
|
/** Exact payload returned by `DELETE /api/files/:id`. */
|
|
46
206
|
export type StorageRemoveResponse = StorageRemoveContract;
|
|
47
207
|
/** A file-ish value accepted by multipart uploads (browser File/Blob or RN asset). */
|
|
@@ -53,7 +213,7 @@ export type UploadInput = Blob | {
|
|
|
53
213
|
/**
|
|
54
214
|
* The uniform result envelope every data/auth/storage call resolves to.
|
|
55
215
|
* `error` is `null` on success; `data` is `null` on failure. Never throws for
|
|
56
|
-
* expected API errors
|
|
216
|
+
* expected API errors: only for programmer misuse.
|
|
57
217
|
*/
|
|
58
218
|
export interface MotherbaseResponse<T> {
|
|
59
219
|
data: T | null;
|
|
@@ -66,6 +226,13 @@ export interface MotherbaseError {
|
|
|
66
226
|
status?: number;
|
|
67
227
|
/** Backend/app error code, when present. */
|
|
68
228
|
code?: string;
|
|
229
|
+
/**
|
|
230
|
+
* Correlation id of the failed request, from the `x-request-id` response
|
|
231
|
+
* header. The same id is on the server-side log line, so quoting it in a bug
|
|
232
|
+
* report (or logging it beside your own error) is what makes an intermittent
|
|
233
|
+
* 500 findable.
|
|
234
|
+
*/
|
|
235
|
+
requestId?: string;
|
|
69
236
|
}
|
|
70
237
|
/**
|
|
71
238
|
* Persists the session between runs. Implementations must be synchronous-or-async
|
|
@@ -75,7 +242,56 @@ export interface SessionStorageAdapter {
|
|
|
75
242
|
get(): Session | null | Promise<Session | null>;
|
|
76
243
|
set(session: Session | null): void | Promise<void>;
|
|
77
244
|
}
|
|
78
|
-
|
|
245
|
+
/**
|
|
246
|
+
* A key/value store shaped like `window.localStorage` or React Native's
|
|
247
|
+
* `AsyncStorage`. supabase-js takes its session storage in this form, so an app
|
|
248
|
+
* being ported passes one of these; the client wraps it (see
|
|
249
|
+
* `keyValueStorage`) rather than failing at runtime on a missing `.get`.
|
|
250
|
+
*/
|
|
251
|
+
export interface KeyValueStorageAdapter {
|
|
252
|
+
getItem(key: string): string | null | Promise<string | null>;
|
|
253
|
+
setItem(key: string, value: string): void | Promise<void>;
|
|
254
|
+
removeItem(key: string): void | Promise<void>;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* The supabase-js-shaped half of the options.
|
|
258
|
+
*
|
|
259
|
+
* supabase-js nests its options under `auth`, `db`, `global` and `realtime`.
|
|
260
|
+
* Ported code passes them that way, and silently dropping them is the worst
|
|
261
|
+
* possible outcome: `{ auth: { persistSession: true } }` looks like it works
|
|
262
|
+
* and the user is signed out on every reload. Both spellings are accepted; the
|
|
263
|
+
* flat (native) one wins where they collide.
|
|
264
|
+
*/
|
|
265
|
+
export interface SupabaseStyleOptions {
|
|
266
|
+
auth?: {
|
|
267
|
+
/** Refresh on 401 and, with `startAutoRefresh()`, on a timer. Default true. */
|
|
268
|
+
autoRefreshToken?: boolean;
|
|
269
|
+
/**
|
|
270
|
+
* `true` (the default in a browser) persists the session to localStorage
|
|
271
|
+
* when no explicit storage is given. `false` keeps it in memory.
|
|
272
|
+
*/
|
|
273
|
+
persistSession?: boolean;
|
|
274
|
+
/** Read the OAuth token out of the URL on construction. Default true in a browser. */
|
|
275
|
+
detectSessionInUrl?: boolean;
|
|
276
|
+
/** Either adapter shape: supabase-js's key/value store or the native one. */
|
|
277
|
+
storage?: KeyValueStorageAdapter | SessionStorageAdapter;
|
|
278
|
+
/** Storage key. Defaults to `motherbase.session`. */
|
|
279
|
+
storageKey?: string;
|
|
280
|
+
/** Accepted for signature parity. Motherbase runs the implicit flow only. */
|
|
281
|
+
flowType?: 'implicit' | 'pkce';
|
|
282
|
+
debug?: boolean;
|
|
283
|
+
};
|
|
284
|
+
db?: {
|
|
285
|
+
/** Default schema for `from()` and `rpc()`. Only `public` is exposed today. */
|
|
286
|
+
schema?: string;
|
|
287
|
+
};
|
|
288
|
+
global?: {
|
|
289
|
+
headers?: Record<string, string>;
|
|
290
|
+
fetch?: typeof fetch;
|
|
291
|
+
};
|
|
292
|
+
realtime?: Record<string, unknown>;
|
|
293
|
+
}
|
|
294
|
+
export interface ClientOptions extends SupabaseStyleOptions {
|
|
79
295
|
/** Where to persist the session. Defaults to in-memory (SSR-safe). */
|
|
80
296
|
storage?: SessionStorageAdapter;
|
|
81
297
|
/** Refresh the access token automatically on a 401. Default: true. */
|
|
@@ -84,16 +300,44 @@ export interface ClientOptions {
|
|
|
84
300
|
fetch?: typeof fetch;
|
|
85
301
|
/** Extra headers merged into every request (e.g. a custom `apikey`). */
|
|
86
302
|
headers?: Record<string, string>;
|
|
303
|
+
/**
|
|
304
|
+
* Align the behaviours that differ from supabase-js but share its spelling.
|
|
305
|
+
*
|
|
306
|
+
* A missing method fails loudly. A method that exists and behaves differently
|
|
307
|
+
* does not, and that is what breaks a ported app in production. Three known
|
|
308
|
+
* cases, all recorded in COMPATIBILITY.md:
|
|
309
|
+
*
|
|
310
|
+
* - `update()` / `delete()` whose filter matches nothing answer 404 here and
|
|
311
|
+
* an empty array in supabase-js.
|
|
312
|
+
* - a write returns its rows whether or not `.select()` was called, so the
|
|
313
|
+
* supabase-js opt-in reads as a no-op.
|
|
314
|
+
*
|
|
315
|
+
* `'supabase'` makes both behave as supabase-js does. Off by default: the
|
|
316
|
+
* native behaviours are the better ones, and changing them silently for
|
|
317
|
+
* existing callers would be the same class of bug this option exists to fix.
|
|
318
|
+
*
|
|
319
|
+
* NOT covered, on purpose: an unfiltered `delete()` stays refused with 400.
|
|
320
|
+
* Parity there means removing a guard against deleting a whole table from a
|
|
321
|
+
* typo, and no migration is worth that. Add `.neq('id', 0)`, or run it from
|
|
322
|
+
* the SQL editor.
|
|
323
|
+
*/
|
|
324
|
+
compat?: 'supabase';
|
|
87
325
|
/**
|
|
88
326
|
* Inject a socket.io factory for realtime (tests / custom transports).
|
|
89
327
|
* When omitted, `socket.io-client` is imported lazily at connect time.
|
|
90
328
|
*/
|
|
91
329
|
realtimeIoFactory?: (url: string, opts: Record<string, unknown>) => import('./realtime.js').SocketLike;
|
|
92
330
|
}
|
|
93
|
-
/**
|
|
94
|
-
|
|
331
|
+
/**
|
|
332
|
+
* Supabase-compatible auth change events emitted by `onAuthStateChange`.
|
|
333
|
+
*
|
|
334
|
+
* `INITIAL_SESSION` is fired once per subscription, right after subscribing,
|
|
335
|
+
* with whatever session was already stored. supabase-js does the same, and an
|
|
336
|
+
* app that clears its loading flag on it hangs forever without it.
|
|
337
|
+
*/
|
|
338
|
+
export type AuthChangeEvent = 'INITIAL_SESSION' | 'SIGNED_IN' | 'SIGNED_OUT' | 'TOKEN_REFRESHED' | 'USER_UPDATED' | 'PASSWORD_RECOVERY' | 'MFA_CHALLENGE_VERIFIED';
|
|
95
339
|
export type AuthChangeListener = (event: AuthChangeEvent, session: Session | null) => void;
|
|
96
340
|
/** Internal event names used by the session store. */
|
|
97
|
-
export type AuthEvent = 'signIn' | 'signOut' | 'tokenRefreshed';
|
|
341
|
+
export type AuthEvent = 'signIn' | 'signOut' | 'tokenRefreshed' | 'userUpdated' | 'mfaVerified';
|
|
98
342
|
export type AuthListener = (event: AuthEvent, session: Session | null) => void;
|
|
99
343
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE1F,uFAAuF;AACvF,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/warn.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warn.d.ts","sourceRoot":"","sources":["../src/warn.ts"],"names":[],"mappings":"AAiBA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAKzF;AAED,oDAAoD;AACpD,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
|
package/dist/warn.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { isProduction } from './cookie.js';
|
|
2
|
+
/**
|
|
3
|
+
* One warning per ignored option, in development only.
|
|
4
|
+
*
|
|
5
|
+
* An option this SDK accepts and does not act on is the worst shape of
|
|
6
|
+
* incompatibility: the call compiles, returns a success, and does something
|
|
7
|
+
* other than what the caller asked. supabase-js code passes these because they
|
|
8
|
+
* work there. Saying so once, out loud, is the difference between a five minute
|
|
9
|
+
* fix and a production incident nobody can reproduce.
|
|
10
|
+
*
|
|
11
|
+
* Deduplicated by site and option, because these sit in call paths that run per
|
|
12
|
+
* row, and silent in production, where nobody reads the console and the cost is
|
|
13
|
+
* paid on every call.
|
|
14
|
+
*/
|
|
15
|
+
const warned = new Set();
|
|
16
|
+
export function warnIgnoredOption(site, option, consequence) {
|
|
17
|
+
const key = `${site}.${option}`;
|
|
18
|
+
if (warned.has(key) || isProduction())
|
|
19
|
+
return;
|
|
20
|
+
warned.add(key);
|
|
21
|
+
console.warn(`[motherbase] ${site}: \`${option}\` is accepted and ignored. ${consequence}`);
|
|
22
|
+
}
|
|
23
|
+
/** Test seam: forget what has been warned about. */
|
|
24
|
+
export function resetIgnoredOptionWarnings() {
|
|
25
|
+
warned.clear();
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=warn.js.map
|
package/dist/warn.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warn.js","sourceRoot":"","sources":["../src/warn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AAEjC,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,MAAc,EAAE,WAAmB;IACjF,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;IAChC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE;QAAE,OAAO;IAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,OAAO,MAAM,+BAA+B,WAAW,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,0BAA0B;IACxC,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC"}
|