@ooneex/auth 1.0.0 → 1.1.1

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/dist/index.d.ts CHANGED
@@ -3,13 +3,15 @@ declare class AuthException extends Exception {
3
3
  constructor(message: string, data?: Record<string, unknown>);
4
4
  }
5
5
  import { Session, User } from "@clerk/backend";
6
+ import { AppEnv } from "@ooneex/app-env";
6
7
  type ClerkAuthConfigType = {
7
8
  secretKey?: string;
8
9
  };
9
10
  declare class ClerkAuth {
11
+ private readonly env;
10
12
  private readonly client;
11
13
  private readonly secretKey;
12
- constructor(config?: ClerkAuthConfigType);
14
+ constructor(env: AppEnv, config?: ClerkAuthConfigType);
13
15
  getCurrentUser(token: string): Promise<User | null>;
14
16
  banUser(userId: string): Promise<User>;
15
17
  unbanUser(userId: string): Promise<User>;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- var c=function(e,t,r,a){var s=arguments.length,i=s<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,u;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var m=e.length-1;m>=0;m--)if(u=e[m])i=(s<3?u(i):s>3?u(t,r,i):u(t,r))||i;return s>3&&i&&Object.defineProperty(t,r,i),i},f=(e,t)=>(r,a)=>t(r,a,e),l=(e,t)=>{if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};import{Exception as U}from"@ooneex/exception";import{HttpStatus as g}from"@ooneex/http-status";class n extends U{constructor(e,t={}){super(e,{status:g.Code.InternalServerError,data:t});this.name="AuthException"}}import{createClerkClient as h,verifyToken as y}from"@clerk/backend";import{injectable as b}from"@ooneex/container";class o{client;secretKey;constructor(e){let t=e?.secretKey||Bun.env.CLERK_SECRET_KEY;if(!t)throw new n("Clerk secret key is required. Provide a secret key through config options or set the CLERK_SECRET_KEY environment variable.");this.secretKey=t,this.client=h({secretKey:t})}async getCurrentUser(e){let{sub:t}=await y(e,{secretKey:this.secretKey});if(!t)return null;return await this.getUser(t)}async banUser(e){return await this.client.users.banUser(e)}async unbanUser(e){return await this.client.users.unbanUser(e)}async getUser(e){return await this.client.users.getUser(e)}async lockUser(e){return await this.client.users.lockUser(e)}async unlockUser(e){return await this.client.users.unlockUser(e)}async updateUser(e,t){return await this.client.users.updateUser(e,t)}async updateUserProfileImage(e,t){return await this.client.users.updateUserProfileImage(e,t)}async updateUserMetadata(e,t){return await this.client.users.updateUserMetadata(e,t)}async getUserMetadata(e){let t=await this.getUser(e);return{publicMetadata:t.publicMetadata,privateMetadata:t.privateMetadata,unsafeMetadata:t.unsafeMetadata}}async deleteUser(e){return await this.client.users.deleteUser(e)}async deleteUserProfileImage(e){return await this.client.users.deleteUserProfileImage(e)}async getSession(e){return await this.client.sessions.getSession(e)}async getCurrentUserSession(e){let{sid:t}=await y(e,{secretKey:this.secretKey});if(!t)return null;return await this.getSession(t)}async signOut(e){return await this.client.sessions.revokeSession(e)}}o=c([b(),l("design:paramtypes",[typeof ClerkAuthConfigType==="undefined"?Object:ClerkAuthConfigType])],o);import{inject as w,injectable as A}from"@ooneex/container";import{HttpStatus as d}from"@ooneex/http-status";import{ERole as x}from"@ooneex/role";class p{clerkAuth;constructor(e){this.clerkAuth=e}async handler(e){let t=e.header.getBearerToken();if(!t)throw new n("Authentication required: Missing bearer token",{status:d.Code.Unauthorized});let r=await this.clerkAuth.getCurrentUser(t);if(!r)throw new n("Authentication failed: Invalid or expired token",{status:d.Code.Unauthorized});let a=r.emailAddresses.find((i)=>i.id===r.primaryEmailAddressId);if(!a)throw new n("User has no primary email",{status:d.Code.Unauthorized});let s={id:r.privateMetadata?.externalId,externalId:r.id,email:a.emailAddress,roles:r.privateMetadata?.roles??[x.USER]};if(r.firstName)s.firstName=r.firstName;if(r.lastName)s.lastName=r.lastName;if(r.username)s.username=r.username;if(r.phoneNumbers[0]?.phoneNumber)s.phone=r.phoneNumbers[0].phoneNumber;if(r.lastActiveAt)s.lastActiveAt=new Date(r.lastActiveAt);if(r.lastSignInAt)s.lastLoginAt=new Date(r.lastSignInAt);if(r.imageUrl)s.avatar=r.imageUrl;if(r.createdAt)s.createdAt=new Date(r.createdAt);if(r.updatedAt)s.updatedAt=new Date(r.updatedAt);return e.user=s,e}}p=c([A(),f(0,w(o)),l("design:paramtypes",[typeof o==="undefined"?Object:o])],p);export{p as ClerkAuthMiddleware,o as ClerkAuth,n as AuthException};
2
+ var c=function(e,r,t,a){var s=arguments.length,i=s<3?r:a===null?a=Object.getOwnPropertyDescriptor(r,t):a,u;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,r,t,a);else for(var d=e.length-1;d>=0;d--)if(u=e[d])i=(s<3?u(i):s>3?u(r,t,i):u(r,t))||i;return s>3&&i&&Object.defineProperty(r,t,i),i},l=(e,r)=>(t,a)=>r(t,a,e),p=(e,r)=>{if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,r)};import{Exception as g}from"@ooneex/exception";import{HttpStatus as h}from"@ooneex/http-status";class n extends g{constructor(e,r={}){super(e,{status:h.Code.InternalServerError,data:r});this.name="AuthException"}}import{createClerkClient as b,verifyToken as y}from"@clerk/backend";import{AppEnv as U}from"@ooneex/app-env";import{inject as w,injectable as A}from"@ooneex/container";class o{env;client;secretKey;constructor(e,r){this.env=e;let t=r?.secretKey||this.env.CLERK_SECRET_KEY;if(!t)throw new n("Clerk secret key is required. Provide a secret key through config options or set the CLERK_SECRET_KEY environment variable.");this.secretKey=t,this.client=b({secretKey:t})}async getCurrentUser(e){let{sub:r}=await y(e,{secretKey:this.secretKey});if(!r)return null;return await this.getUser(r)}async banUser(e){return await this.client.users.banUser(e)}async unbanUser(e){return await this.client.users.unbanUser(e)}async getUser(e){return await this.client.users.getUser(e)}async lockUser(e){return await this.client.users.lockUser(e)}async unlockUser(e){return await this.client.users.unlockUser(e)}async updateUser(e,r){return await this.client.users.updateUser(e,r)}async updateUserProfileImage(e,r){return await this.client.users.updateUserProfileImage(e,r)}async updateUserMetadata(e,r){return await this.client.users.updateUserMetadata(e,r)}async getUserMetadata(e){let r=await this.getUser(e);return{publicMetadata:r.publicMetadata,privateMetadata:r.privateMetadata,unsafeMetadata:r.unsafeMetadata}}async deleteUser(e){return await this.client.users.deleteUser(e)}async deleteUserProfileImage(e){return await this.client.users.deleteUserProfileImage(e)}async getSession(e){return await this.client.sessions.getSession(e)}async getCurrentUserSession(e){let{sid:r}=await y(e,{secretKey:this.secretKey});if(!r)return null;return await this.getSession(r)}async signOut(e){return await this.client.sessions.revokeSession(e)}}o=c([A(),l(0,w(U)),p("design:paramtypes",[typeof U==="undefined"?Object:U,typeof ClerkAuthConfigType==="undefined"?Object:ClerkAuthConfigType])],o);import{inject as x,injectable as C}from"@ooneex/container";import{HttpStatus as f}from"@ooneex/http-status";import{ERole as v}from"@ooneex/role";class m{clerkAuth;constructor(e){this.clerkAuth=e}async handler(e){let r=e.header.getBearerToken();if(!r)throw new n("Authentication required: Missing bearer token",{status:f.Code.Unauthorized});let t=await this.clerkAuth.getCurrentUser(r);if(!t)throw new n("Authentication failed: Invalid or expired token",{status:f.Code.Unauthorized});let a=t.emailAddresses.find((i)=>i.id===t.primaryEmailAddressId);if(!a)throw new n("User has no primary email",{status:f.Code.Unauthorized});let s={id:t.privateMetadata?.externalId,externalId:t.id,email:a.emailAddress,roles:t.privateMetadata?.roles??[v.USER]};if(t.firstName)s.firstName=t.firstName;if(t.lastName)s.lastName=t.lastName;if(t.username)s.username=t.username;if(t.phoneNumbers[0]?.phoneNumber)s.phone=t.phoneNumbers[0].phoneNumber;if(t.lastActiveAt)s.lastActiveAt=new Date(t.lastActiveAt);if(t.lastSignInAt)s.lastLoginAt=new Date(t.lastSignInAt);if(t.imageUrl)s.avatar=t.imageUrl;if(t.createdAt)s.createdAt=new Date(t.createdAt);if(t.updatedAt)s.updatedAt=new Date(t.updatedAt);return e.user=s,e}}m=c([C(),l(0,x(o)),p("design:paramtypes",[typeof o==="undefined"?Object:o])],m);export{m as ClerkAuthMiddleware,o as ClerkAuth,n as AuthException};
3
3
 
4
- //# debugId=4AAA1A1EEBE4A80C64756E2164756E21
4
+ //# debugId=66930AD30F6A9DB364756E2164756E21
package/dist/index.js.map CHANGED
@@ -3,10 +3,10 @@
3
3
  "sources": ["src/AuthException.ts", "src/ClerkAuth.ts", "src/ClerkAuthMiddleware.ts"],
4
4
  "sourcesContent": [
5
5
  "import { Exception } from \"@ooneex/exception\";\nimport { HttpStatus } from \"@ooneex/http-status\";\n\nexport class AuthException extends Exception {\n constructor(message: string, data: Record<string, unknown> = {}) {\n super(message, {\n status: HttpStatus.Code.InternalServerError,\n data,\n });\n this.name = \"AuthException\";\n }\n}\n",
6
- "import { createClerkClient, type Session, type User, verifyToken } from \"@clerk/backend\";\nimport { injectable } from \"@ooneex/container\";\nimport { AuthException } from \"./AuthException\";\nimport type { ClerkAuthConfigType } from \"./types\";\n\n@injectable()\nexport class ClerkAuth {\n private readonly client: ReturnType<typeof createClerkClient>;\n private readonly secretKey: string;\n\n constructor(config?: ClerkAuthConfigType) {\n const secretKey = config?.secretKey || Bun.env.CLERK_SECRET_KEY;\n\n if (!secretKey) {\n throw new AuthException(\n \"Clerk secret key is required. Provide a secret key through config options or set the CLERK_SECRET_KEY environment variable.\",\n );\n }\n\n this.secretKey = secretKey;\n this.client = createClerkClient({\n secretKey,\n });\n }\n\n public async getCurrentUser(token: string): Promise<User | null> {\n const { sub: userId } = await verifyToken(token, {\n secretKey: this.secretKey,\n });\n\n if (!userId) {\n return null;\n }\n\n return await this.getUser(userId);\n }\n\n public async banUser(userId: string): Promise<User> {\n return await this.client.users.banUser(userId);\n }\n\n public async unbanUser(userId: string): Promise<User> {\n return await this.client.users.unbanUser(userId);\n }\n\n public async getUser(userId: string): Promise<User> {\n return await this.client.users.getUser(userId);\n }\n\n public async lockUser(userId: string): Promise<User> {\n return await this.client.users.lockUser(userId);\n }\n\n public async unlockUser(userId: string): Promise<User> {\n return await this.client.users.unlockUser(userId);\n }\n\n public async updateUser(userId: string, params: Parameters<typeof this.client.users.updateUser>[1]): Promise<User> {\n return await this.client.users.updateUser(userId, params);\n }\n\n public async updateUserProfileImage(userId: string, params: { file: Blob | File }): Promise<User> {\n return await this.client.users.updateUserProfileImage(userId, params);\n }\n\n public async updateUserMetadata(\n userId: string,\n params: Parameters<typeof this.client.users.updateUserMetadata>[1],\n ): Promise<User> {\n return await this.client.users.updateUserMetadata(userId, params);\n }\n\n public async getUserMetadata(userId: string): Promise<{\n publicMetadata: User[\"publicMetadata\"];\n privateMetadata: User[\"privateMetadata\"];\n unsafeMetadata: User[\"unsafeMetadata\"];\n }> {\n const user = await this.getUser(userId);\n return {\n publicMetadata: user.publicMetadata,\n privateMetadata: user.privateMetadata,\n unsafeMetadata: user.unsafeMetadata,\n };\n }\n\n public async deleteUser(userId: string): Promise<User> {\n return await this.client.users.deleteUser(userId);\n }\n\n public async deleteUserProfileImage(userId: string): Promise<User> {\n return await this.client.users.deleteUserProfileImage(userId);\n }\n\n public async getSession(sessionId: string): Promise<Session> {\n return await this.client.sessions.getSession(sessionId);\n }\n\n public async getCurrentUserSession(token: string): Promise<Session | null> {\n const { sid: sessionId } = await verifyToken(token, {\n secretKey: this.secretKey,\n });\n\n if (!sessionId) {\n return null;\n }\n\n return await this.getSession(sessionId);\n }\n\n public async signOut(sessionId: string): Promise<Session> {\n return await this.client.sessions.revokeSession(sessionId);\n }\n}\n",
6
+ "import { createClerkClient, type Session, type User, verifyToken } from \"@clerk/backend\";\nimport { AppEnv } from \"@ooneex/app-env\";\nimport { inject, injectable } from \"@ooneex/container\";\nimport { AuthException } from \"./AuthException\";\nimport type { ClerkAuthConfigType } from \"./types\";\n\n@injectable()\nexport class ClerkAuth {\n private readonly client: ReturnType<typeof createClerkClient>;\n private readonly secretKey: string;\n\n constructor(\n @inject(AppEnv) private readonly env: AppEnv,\n config?: ClerkAuthConfigType,\n ) {\n const secretKey = config?.secretKey || this.env.CLERK_SECRET_KEY;\n\n if (!secretKey) {\n throw new AuthException(\n \"Clerk secret key is required. Provide a secret key through config options or set the CLERK_SECRET_KEY environment variable.\",\n );\n }\n\n this.secretKey = secretKey;\n this.client = createClerkClient({\n secretKey,\n });\n }\n\n public async getCurrentUser(token: string): Promise<User | null> {\n const { sub: userId } = await verifyToken(token, {\n secretKey: this.secretKey,\n });\n\n if (!userId) {\n return null;\n }\n\n return await this.getUser(userId);\n }\n\n public async banUser(userId: string): Promise<User> {\n return await this.client.users.banUser(userId);\n }\n\n public async unbanUser(userId: string): Promise<User> {\n return await this.client.users.unbanUser(userId);\n }\n\n public async getUser(userId: string): Promise<User> {\n return await this.client.users.getUser(userId);\n }\n\n public async lockUser(userId: string): Promise<User> {\n return await this.client.users.lockUser(userId);\n }\n\n public async unlockUser(userId: string): Promise<User> {\n return await this.client.users.unlockUser(userId);\n }\n\n public async updateUser(userId: string, params: Parameters<typeof this.client.users.updateUser>[1]): Promise<User> {\n return await this.client.users.updateUser(userId, params);\n }\n\n public async updateUserProfileImage(userId: string, params: { file: Blob | File }): Promise<User> {\n return await this.client.users.updateUserProfileImage(userId, params);\n }\n\n public async updateUserMetadata(\n userId: string,\n params: Parameters<typeof this.client.users.updateUserMetadata>[1],\n ): Promise<User> {\n return await this.client.users.updateUserMetadata(userId, params);\n }\n\n public async getUserMetadata(userId: string): Promise<{\n publicMetadata: User[\"publicMetadata\"];\n privateMetadata: User[\"privateMetadata\"];\n unsafeMetadata: User[\"unsafeMetadata\"];\n }> {\n const user = await this.getUser(userId);\n return {\n publicMetadata: user.publicMetadata,\n privateMetadata: user.privateMetadata,\n unsafeMetadata: user.unsafeMetadata,\n };\n }\n\n public async deleteUser(userId: string): Promise<User> {\n return await this.client.users.deleteUser(userId);\n }\n\n public async deleteUserProfileImage(userId: string): Promise<User> {\n return await this.client.users.deleteUserProfileImage(userId);\n }\n\n public async getSession(sessionId: string): Promise<Session> {\n return await this.client.sessions.getSession(sessionId);\n }\n\n public async getCurrentUserSession(token: string): Promise<Session | null> {\n const { sid: sessionId } = await verifyToken(token, {\n secretKey: this.secretKey,\n });\n\n if (!sessionId) {\n return null;\n }\n\n return await this.getSession(sessionId);\n }\n\n public async signOut(sessionId: string): Promise<Session> {\n return await this.client.sessions.revokeSession(sessionId);\n }\n}\n",
7
7
  "import { inject, injectable } from \"@ooneex/container\";\nimport type { ContextConfigType, ContextType } from \"@ooneex/controller\";\nimport { HttpStatus } from \"@ooneex/http-status\";\nimport type { IMiddleware } from \"@ooneex/middleware\";\nimport { ERole } from \"@ooneex/role\";\nimport type { IUser } from \"@ooneex/user\";\nimport { AuthException } from \"./AuthException\";\nimport { ClerkAuth } from \"./ClerkAuth\";\n\n@injectable()\nexport class ClerkAuthMiddleware implements IMiddleware {\n constructor(@inject(ClerkAuth) private readonly clerkAuth: ClerkAuth) {}\n\n public async handler<T extends ContextConfigType>(context: ContextType<T>): Promise<ContextType<T>> {\n const token = context.header.getBearerToken();\n\n if (!token) {\n throw new AuthException(\"Authentication required: Missing bearer token\", {\n status: HttpStatus.Code.Unauthorized,\n });\n }\n\n const clerkUser = await this.clerkAuth.getCurrentUser(token);\n\n if (!clerkUser) {\n throw new AuthException(\"Authentication failed: Invalid or expired token\", {\n status: HttpStatus.Code.Unauthorized,\n });\n }\n\n const primaryEmail = clerkUser.emailAddresses.find((e) => e.id === clerkUser.primaryEmailAddressId);\n\n if (!primaryEmail) {\n throw new AuthException(\"User has no primary email\", {\n status: HttpStatus.Code.Unauthorized,\n });\n }\n\n const user: IUser = {\n id: clerkUser.privateMetadata?.externalId as string,\n externalId: clerkUser.id,\n email: primaryEmail.emailAddress,\n roles: (clerkUser.privateMetadata?.roles as ERole[]) ?? [ERole.USER],\n };\n\n if (clerkUser.firstName) user.firstName = clerkUser.firstName;\n if (clerkUser.lastName) user.lastName = clerkUser.lastName;\n if (clerkUser.username) user.username = clerkUser.username;\n if (clerkUser.phoneNumbers[0]?.phoneNumber) user.phone = clerkUser.phoneNumbers[0].phoneNumber;\n if (clerkUser.lastActiveAt) user.lastActiveAt = new Date(clerkUser.lastActiveAt);\n if (clerkUser.lastSignInAt) user.lastLoginAt = new Date(clerkUser.lastSignInAt);\n if (clerkUser.imageUrl) user.avatar = clerkUser.imageUrl;\n if (clerkUser.createdAt) user.createdAt = new Date(clerkUser.createdAt);\n if (clerkUser.updatedAt) user.updatedAt = new Date(clerkUser.updatedAt);\n\n context.user = user;\n\n return context;\n }\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "4AAA1A1EEBE4A80C64756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "66930AD30F6A9DB364756E2164756E21",
11
11
  "names": []
12
12
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ooneex/auth",
3
3
  "description": "Authentication framework with pluggable strategies for securing APIs and web applications — supports token-based and session-based authentication flows",
4
- "version": "1.0.0",
4
+ "version": "1.1.1",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist",
@@ -24,18 +24,19 @@
24
24
  "scripts": {
25
25
  "build": "bunup",
26
26
  "lint": "tsgo --noEmit && bunx biome lint",
27
- "npm:publish": "bun publish --tolerate-republish --access public"
27
+ "npm:publish": "bun publish --tolerate-republish --force --production --access public"
28
28
  },
29
29
  "dependencies": {
30
30
  "@clerk/backend": "^1.24.1",
31
- "@ooneex/container": "0.0.19",
32
- "@ooneex/controller": "0.17.1",
33
- "@ooneex/exception": "0.0.18",
34
- "@ooneex/http-status": "0.0.18"
31
+ "@ooneex/app-env": "1.0.2",
32
+ "@ooneex/container": "1.0.1",
33
+ "@ooneex/controller": "1.1.1",
34
+ "@ooneex/exception": "1.0.1",
35
+ "@ooneex/http-status": "1.0.1"
35
36
  },
36
37
  "devDependencies": {
37
- "@ooneex/middleware": "0.17.1",
38
- "@ooneex/user": "0.0.19"
38
+ "@ooneex/middleware": "1.1.1",
39
+ "@ooneex/user": "1.0.1"
39
40
  },
40
41
  "keywords": [
41
42
  "auth",