@murumets-ee/auth 0.1.1 → 0.1.2
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/package.json +9 -13
- package/dist/admin/index.cjs +0 -1
- package/dist/admin/index.d.cts +0 -72
- package/dist/client.cjs +0 -1
- package/dist/client.d.cts +0 -2064
- package/dist/index.cjs +0 -1
- package/dist/index.d.cts +0 -114
- package/dist/plugin-C-MA3A5U.d.cts +0 -993
- package/dist/plugin.cjs +0 -1
- package/dist/plugin.d.cts +0 -6
package/dist/plugin.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var L=Object.create;var p=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var b=(t,n)=>()=>(t&&(n=t(t=0)),n);var w=(t,n)=>{for(var e in n)p(t,e,{get:n[e],enumerable:!0})},A=(t,n,e,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of D(n))!M.call(t,r)&&r!==e&&p(t,r,{get:()=>n[r],enumerable:!(s=x(n,r))||s.enumerable});return t};var U=(t,n,e)=>(e=t!=null?L(H(t)):{},A(n||!t||!t.__esModule?p(e,"default",{value:t,enumerable:!0}):e,t)),W=t=>A(p({},"__esModule",{value:!0}),t);function R(t){return t.behaviors?.some(n=>n.name==="publishable")??!1}function I(t){let n={...f};for(let e of t)n[e.name]=R(e)?F:j;return n}function T(t,n){let e={},s={};e.user=[...f.user],e.session=[...f.session],s.user=[],s.session=[];for(let r of n)e[r.name]=R(r)?["view","create","update","delete","publish"]:["view","create","update","delete"],s[r.name]=["view"];return{admin:t.newRole(e),authenticated:t.newRole(s)}}var z,j,F,f,S=b(()=>{"use strict";z=require("better-auth/plugins/access"),j=["view","create","update","delete"],F=["view","create","update","delete","publish"];f={user:["create","list","set-role","ban","impersonate","delete","set-password","get","update"],session:["list","revoke","delete"]}});var C={};w(C,{createAuthServer:()=>X});function m(t){let n=t?.context?.session,e=n?.user;return{id:e?.id??n?.userId,name:e?.name}}function G(t,n){function e(r){n?.log(r).catch(()=>{})}let s=null;return{user:{create:{after:async r=>{try{await t.readWrite.execute(h.sql`UPDATE "user" SET role = 'admin' WHERE id = ${r.id} AND (SELECT COUNT(*) FROM "user") = 1`)}catch{}e({action:"auth.signup",entityType:"user",entityId:r.id,userId:r.id,userName:r.name,changes:{fields:{name:r.name,email:r.email}}})}},update:{before:async r=>{let o={};for(let[i,a]of Object.entries(r))q.has(i)||i==="id"||(o[i]=a);s=Object.keys(o).length>0?o:null},after:async(r,o)=>{let i=m(o),a=s;s=null,e({action:"auth.user.update",entityType:"user",entityId:r.id,userId:i.id,userName:i.name,changes:a?{fields:a}:void 0,metadata:{targetUser:r.name}})}},delete:{after:async(r,o)=>{let i=m(o);e({action:"auth.user.delete",entityType:"user",entityId:r.id,userId:i.id,userName:i.name,metadata:{targetUser:r.name}})}}}}}function Q(t){function n(e){t.log(e).catch(()=>{})}return{after:(0,g.createAuthMiddleware)(async e=>{if(B.some(c=>e.path.startsWith(c))){let u=e.context.returned?.status;if(!u)return;if(u>=400){let d=e.body?.email;n({action:"auth.login.failed",metadata:{...typeof d=="string"?{email:d}:{},status:u,path:e.path}})}else{let d=e.context.newSession;d?.user?.id&&n({action:"auth.login",entityType:"user",entityId:d.user.id,userId:d.user.id,userName:d.user.name})}return}if(e.path===K){let c=e.context.returned;if(!c?.status||c.status<400){let u=m(e);u.id&&n({action:"auth.logout",entityType:"user",entityId:u.id,userId:u.id,userName:u.name})}return}let r=$[e.path];if(r){let c=e.context.returned;if(!c?.status||c.status<400){let u=m(e),d=e.body;n({action:r,entityType:"user",userId:u.id,userName:u.name,metadata:{...typeof d?.email=="string"?{email:d.email}:{},path:e.path}})}return}let o=J[e.path];if(!o)return;let i=e.context.returned;if(i?.status&&i.status>=400)return;let a=m(e),l=e.body;n({action:o,entityType:"user",entityId:l?.userId??void 0,userId:a.id,userName:a.name,metadata:{targetUserId:l?.userId,...l?.role?{role:l.role}:{},path:e.path}})})}}function V(t){return(0,g.createAuthMiddleware)(async n=>{if(n.path!=="/sign-up/email")return;let e=await t.readWrite.execute(h.sql`SELECT COUNT(*)::text as count FROM "user"`);if(Number(e[0]?.count)>0)throw new g.APIError("FORBIDDEN",{message:"Sign-up is closed"})})}function X(t,n,e){let s=[...n.entities.values()],r=I(s),o=(0,_.createAccessControl)(r),i=T(o,s),a={};return t.social?.google&&(a.google=t.social.google),t.social?.github&&(a.github=t.social.github),(0,k.betterAuth)({database:(0,v.drizzleAdapter)(n.db.readWrite,{provider:"pg",...t.schema?{schema:t.schema}:{}}),emailAndPassword:{enabled:t.providers?.includes("email")??!0},socialProviders:a,session:{expiresIn:t.session?.expiresIn??3600*2,updateAge:t.session?.updateAge??3600},rateLimit:{enabled:!0,window:60,max:100,storage:"memory",customRules:{"/sign-in/email":{window:60,max:5},"/sign-in/social":{window:60,max:10},"/sign-up/email":{window:60,max:3},"/forget-password":{window:60,max:3},"/reset-password":{window:60,max:5},"/admin/*":{window:60,max:20}}},databaseHooks:G(n.db,e),hooks:{before:V(n.db),...e?Q(e):{}},plugins:[(0,E.admin)({ac:o,roles:i,defaultRole:"authenticated"}),...t.organizations?[(0,N.organization)({ac:o,roles:i})]:[],...t.betterAuthPlugins??[],(0,P.nextCookies)()]})}var k,v,g,P,E,_,N,h,q,B,K,$,J,O=b(()=>{"use strict";k=require("better-auth"),v=require("better-auth/adapters/drizzle"),g=require("better-auth/api"),P=require("better-auth/next-js"),E=require("better-auth/plugins"),_=require("better-auth/plugins/access"),N=require("better-auth/plugins/organization"),h=require("drizzle-orm");S();q=new Set(["updatedAt","createdAt"]);B=["/sign-in/email","/sign-in/social"],K="/sign-out",$={"/change-password":"auth.password.change","/forget-password":"auth.password.reset_request","/reset-password":"auth.password.reset"},J={"/admin/set-role":"auth.admin.set_role","/admin/ban-user":"auth.admin.ban","/admin/unban-user":"auth.admin.unban","/admin/create-user":"auth.admin.create_user","/admin/remove-user":"auth.admin.remove_user","/admin/impersonate-user":"auth.admin.impersonate","/admin/stop-impersonating":"auth.admin.stop_impersonating","/admin/revoke-session":"auth.admin.revoke_session","/admin/revoke-sessions":"auth.admin.revoke_sessions"}});var ee={};w(ee,{auth:()=>Z,getAuth:()=>Y});module.exports=W(ee);var y=null;function Y(){if(!y)throw new Error("@murumets-ee/auth not initialized. Add auth() to your toolkit config plugins.");return y}function Z(t={}){return{name:"@murumets-ee/auth",init:async n=>{let{createAuthServer:e}=await Promise.resolve().then(()=>(O(),C)),s;if(t.audit!==!1){let{createAuditLogger:r,createAuditDbWriter:o,createLogger:i}=await import("@murumets-ee/logging");s=r({logger:i({name:"auth-audit"}),dbWriter:o(n.db.readWrite)})}y=e(t,n,s),n.logger.info("Auth plugin initialized")}}}0&&(module.exports={auth,getAuth});
|