@anarchitects/auth-angular 0.0.1 → 0.1.5
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @anarchitects/auth-angular
|
|
2
2
|
|
|
3
|
-
Angular bricks for the Anarchitecture auth domain. The library is organized into standalone feature slices (config, data-access, feature, state, util, ui) that compose together to provide
|
|
3
|
+
Angular bricks for the Anarchitecture auth domain. The library is organized into standalone feature slices (config, data-access, feature, state, util, ui) that compose together to provide implementation-aligned authentication flows for Angular applications.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -96,7 +96,7 @@ export const routes: Routes = [
|
|
|
96
96
|
|
|
97
97
|
## Development notes
|
|
98
98
|
|
|
99
|
-
-
|
|
99
|
+
- DTOs live in `@anarchitects/auth-ts`; regenerate OpenAPI docs when route schemas change (`nx run api-specs:generate`).
|
|
100
100
|
- Data-access layer should always use the generated OpenAPI clients—no manual HTTP calls.
|
|
101
101
|
- State layer uses Angular signals via `@ngrx/signals` for reactive updates and caches the CASL ability returned by the API.
|
|
102
102
|
- Ability creation is centralised in `@anarchitects/auth-angular/util`; import `createAppAbility` instead of instantiating CASL directly.
|
|
@@ -69,12 +69,14 @@ const AuthStore = signalStore({ providedIn: 'root' }, withState(initialState), w
|
|
|
69
69
|
patchState(store, { loading: false });
|
|
70
70
|
},
|
|
71
71
|
}))))),
|
|
72
|
-
logout: rxMethod(pipe(tap(() =>
|
|
72
|
+
logout: rxMethod(pipe(tap(() => {
|
|
73
|
+
patchState(store, { loading: true, error: null, success: false });
|
|
74
|
+
localStorage.removeItem('accessToken');
|
|
75
|
+
localStorage.removeItem('refreshToken');
|
|
76
|
+
patchState(store, removeAllEntities(), { ability: undefined });
|
|
77
|
+
}), switchMap((dto) => store._authApi.logout(dto).pipe(tapResponse({
|
|
73
78
|
next: ({ success }) => {
|
|
74
79
|
patchState(store, { success });
|
|
75
|
-
localStorage.removeItem('accessToken');
|
|
76
|
-
localStorage.removeItem('refreshToken');
|
|
77
|
-
patchState(store, removeAllEntities());
|
|
78
80
|
},
|
|
79
81
|
error: (error) => {
|
|
80
82
|
patchState(store, { error });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anarchitects-auth-angular-state.mjs","sources":["../../../../../libs/auth/angular/state/src/auth.store.ts","../../../../../libs/auth/angular/state/src/anarchitects-auth-angular-state.ts"],"sourcesContent":["import { AuthApi } from '@anarchitects/auth-angular/data-access';\nimport { createAppAbility } from '@anarchitects/auth-angular/util';\nimport {\n ActivateUserRequestDTO,\n ChangePasswordRequestDTO,\n ForgotPasswordRequestDTO,\n LoginRequestDTO,\n LogoutRequestDTO,\n RefreshTokenRequestDTO,\n RegisterRequestDTO,\n ResetPasswordRequestDTO,\n UpdateEmailRequestDTO,\n VerifyEmailRequestDTO,\n} from '@anarchitects/auth-ts/dtos';\nimport { User } from '@anarchitects/auth-ts/models';\nimport { computed, inject } from '@angular/core';\nimport { PureAbility } from '@casl/ability';\nimport { tapResponse } from '@ngrx/operators';\nimport {\n patchState,\n signalStore,\n withComputed,\n withMethods,\n withProps,\n withState,\n} from '@ngrx/signals';\nimport {\n removeAllEntities,\n setAllEntities,\n withEntities,\n} from '@ngrx/signals/entities';\nimport { rxMethod } from '@ngrx/signals/rxjs-interop';\nimport { jwtDecode } from 'jwt-decode';\nimport { EMPTY, pipe, switchMap, tap } from 'rxjs';\n\ntype AuthState = {\n loading: boolean;\n error: string | null;\n success: boolean;\n ability?: PureAbility;\n};\n\ntype AuthUser = Pick<User, 'id' | 'email'>;\n\nconst initialState: AuthState = {\n loading: false,\n error: null,\n success: false,\n ability: undefined,\n};\n\nexport const AuthStore = signalStore(\n { providedIn: 'root' },\n withState(initialState),\n withEntities<AuthUser>(),\n withProps(() => ({\n _authApi: inject(AuthApi),\n })),\n withComputed((store) => ({\n isLoggedIn: computed(() => !!store.entities().length),\n loggedInUser: computed(() => store.entities()[0]),\n })),\n withMethods((store) => ({\n registerUser: rxMethod<RegisterRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.registerUser(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n })\n )\n )\n )\n ),\n activateUser: rxMethod<ActivateUserRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.activateUser(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n })\n )\n )\n )\n ),\n login: rxMethod<LoginRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.login(dto).pipe(\n switchMap(({ accessToken, refreshToken }) => {\n localStorage.setItem('accessToken', accessToken);\n localStorage.setItem('refreshToken', refreshToken);\n const decoded = jwtDecode<{ sub?: string }>(accessToken);\n if (!decoded.sub) {\n patchState(store, { error: 'Invalid access token payload.' });\n return EMPTY;\n }\n return store._authApi.getLoggedInUserInfo();\n }),\n tapResponse({\n next: ({ user, rbac }) => {\n const authUser: AuthUser = {\n id: user.id,\n email: user.email,\n };\n patchState(store, setAllEntities([authUser]), {\n ability: createAppAbility(rbac),\n success: true,\n });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n })\n )\n )\n )\n ),\n logout: rxMethod<LogoutRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.logout(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n localStorage.removeItem('accessToken');\n localStorage.removeItem('refreshToken');\n patchState(store, removeAllEntities());\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n })\n )\n )\n )\n ),\n changePassword: rxMethod<{ userId: string; dto: ChangePasswordRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.changePassword(userId, dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n })\n )\n )\n )\n ),\n forgotPassword: rxMethod<ForgotPasswordRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.forgotPassword(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n })\n )\n )\n )\n ),\n resetPassword: rxMethod<{ dto: ResetPasswordRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ dto }) =>\n store._authApi.resetPassword(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n })\n )\n )\n )\n ),\n verifyEmail: rxMethod<VerifyEmailRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.verifyEmail(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n })\n )\n )\n )\n ),\n updateEmail: rxMethod<{ userId: string; dto: UpdateEmailRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.updateEmail(userId, dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n })\n )\n )\n )\n ),\n refreshTokens: rxMethod<{ userId: string; dto: RefreshTokenRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.refreshTokens(userId, dto).pipe(\n switchMap(({ accessToken, refreshToken }) => {\n localStorage.setItem('accessToken', accessToken);\n localStorage.setItem('refreshToken', refreshToken);\n const decoded = jwtDecode<{ sub?: string }>(accessToken);\n if (!decoded.sub) {\n patchState(store, { error: 'Invalid access token payload.' });\n return EMPTY;\n }\n return store._authApi.getLoggedInUserInfo();\n }),\n tapResponse({\n next: ({ user, rbac }) => {\n const authUser: AuthUser = {\n id: user.id,\n email: user.email,\n };\n patchState(store, setAllEntities([authUser]), {\n ability: createAppAbility(rbac),\n success: true,\n });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n })\n )\n )\n )\n ),\n }))\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anarchitects-auth-angular-state.mjs","sources":["../../../../../libs/auth/angular/state/src/auth.store.ts","../../../../../libs/auth/angular/state/src/anarchitects-auth-angular-state.ts"],"sourcesContent":["import { AuthApi } from '@anarchitects/auth-angular/data-access';\nimport { createAppAbility } from '@anarchitects/auth-angular/util';\nimport {\n ActivateUserRequestDTO,\n ChangePasswordRequestDTO,\n ForgotPasswordRequestDTO,\n LoginRequestDTO,\n LogoutRequestDTO,\n RefreshTokenRequestDTO,\n RegisterRequestDTO,\n ResetPasswordRequestDTO,\n UpdateEmailRequestDTO,\n VerifyEmailRequestDTO,\n} from '@anarchitects/auth-ts/dtos';\nimport { User } from '@anarchitects/auth-ts/models';\nimport { computed, inject } from '@angular/core';\nimport { PureAbility } from '@casl/ability';\nimport { tapResponse } from '@ngrx/operators';\nimport {\n patchState,\n signalStore,\n withComputed,\n withMethods,\n withProps,\n withState,\n} from '@ngrx/signals';\nimport {\n removeAllEntities,\n setAllEntities,\n withEntities,\n} from '@ngrx/signals/entities';\nimport { rxMethod } from '@ngrx/signals/rxjs-interop';\nimport { jwtDecode } from 'jwt-decode';\nimport { EMPTY, pipe, switchMap, tap } from 'rxjs';\n\ntype AuthState = {\n loading: boolean;\n error: string | null;\n success: boolean;\n ability?: PureAbility;\n};\n\ntype AuthUser = Pick<User, 'id' | 'email'>;\n\nconst initialState: AuthState = {\n loading: false,\n error: null,\n success: false,\n ability: undefined,\n};\n\nexport const AuthStore = signalStore(\n { providedIn: 'root' },\n withState(initialState),\n withEntities<AuthUser>(),\n withProps(() => ({\n _authApi: inject(AuthApi),\n })),\n withComputed((store) => ({\n isLoggedIn: computed(() => !!store.entities().length),\n loggedInUser: computed(() => store.entities()[0]),\n })),\n withMethods((store) => ({\n registerUser: rxMethod<RegisterRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.registerUser(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n activateUser: rxMethod<ActivateUserRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.activateUser(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n login: rxMethod<LoginRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.login(dto).pipe(\n switchMap(({ accessToken, refreshToken }) => {\n localStorage.setItem('accessToken', accessToken);\n localStorage.setItem('refreshToken', refreshToken);\n const decoded = jwtDecode<{ sub?: string }>(accessToken);\n if (!decoded.sub) {\n patchState(store, { error: 'Invalid access token payload.' });\n return EMPTY;\n }\n return store._authApi.getLoggedInUserInfo();\n }),\n tapResponse({\n next: ({ user, rbac }) => {\n const authUser: AuthUser = {\n id: user.id,\n email: user.email,\n };\n patchState(store, setAllEntities([authUser]), {\n ability: createAppAbility(rbac),\n success: true,\n });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n logout: rxMethod<LogoutRequestDTO>(\n pipe(\n tap(() => {\n patchState(store, { loading: true, error: null, success: false });\n localStorage.removeItem('accessToken');\n localStorage.removeItem('refreshToken');\n patchState(store, removeAllEntities(), { ability: undefined });\n }),\n switchMap((dto) =>\n store._authApi.logout(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n changePassword: rxMethod<{ userId: string; dto: ChangePasswordRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.changePassword(userId, dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n forgotPassword: rxMethod<ForgotPasswordRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.forgotPassword(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n resetPassword: rxMethod<{ dto: ResetPasswordRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ dto }) =>\n store._authApi.resetPassword(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n verifyEmail: rxMethod<VerifyEmailRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.verifyEmail(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n updateEmail: rxMethod<{ userId: string; dto: UpdateEmailRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.updateEmail(userId, dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n refreshTokens: rxMethod<{ userId: string; dto: RefreshTokenRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.refreshTokens(userId, dto).pipe(\n switchMap(({ accessToken, refreshToken }) => {\n localStorage.setItem('accessToken', accessToken);\n localStorage.setItem('refreshToken', refreshToken);\n const decoded = jwtDecode<{ sub?: string }>(accessToken);\n if (!decoded.sub) {\n patchState(store, { error: 'Invalid access token payload.' });\n return EMPTY;\n }\n return store._authApi.getLoggedInUserInfo();\n }),\n tapResponse({\n next: ({ user, rbac }) => {\n const authUser: AuthUser = {\n id: user.id,\n email: user.email,\n };\n patchState(store, setAllEntities([authUser]), {\n ability: createAppAbility(rbac),\n success: true,\n });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n })),\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anarchitects/auth-angular",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "21.1.6",
|
|
6
6
|
"@angular/core": "21.1.6",
|
|
7
|
-
"@anarchitects/auth-ts": "0.
|
|
8
|
-
"@anarchitects/forms-angular": "0.0.
|
|
9
|
-
"@anarchitects/forms-ts": "0.0.
|
|
7
|
+
"@anarchitects/auth-ts": "0.1.3",
|
|
8
|
+
"@anarchitects/forms-angular": "0.0.12",
|
|
9
|
+
"@anarchitects/forms-ts": "0.0.8",
|
|
10
10
|
"@ngrx/signals": "^20.0.1",
|
|
11
11
|
"@ngrx/operators": "^20.0.1",
|
|
12
12
|
"rxjs": "~7.8.0",
|