Anarchitecture Bricks Docs

Repository documentation hub for packages, guides, and generated references.

@anarchitects/auth-angular

Angular domain libraries for the Anarchitecture auth domain. The package is organized into standalone slices (config, data-access, feature, state, util, ui) that compose implementation-aligned authentication flows for Angular applications.

Features

Installation

npm install @anarchitects/auth-angular
# or
yarn add @anarchitects/auth-angular

Peer dependencies: Angular v20+, @ngrx/signals, @sinclair/typebox, and the sibling packages @anarchitects/auth-ts & @anarchitects/auth-nest (for end-to-end flows).

Usage

Quick start

// app.config.ts
import { ApplicationConfig } from '@angular/core';
import { provideAuthConfig } from '@anarchitects/auth-angular/config';
import { provideAuthDataAccess } from '@anarchitects/auth-angular/data-access';
import { provideAuthState } from '@anarchitects/auth-angular/state';

export const appConfig: ApplicationConfig = {
  providers: [
    provideAuthConfig({
      apiBaseUrl: 'https://api.anarchitects.dev',
    }),
    provideAuthDataAccess(),
    provideAuthState(),
  ],
};
// app.component.ts
import { Component, inject } from '@angular/core';
import { AuthStore } from '@anarchitects/auth-angular/state';

@Component({
  selector: 'app-root',
  template: `
    <button (click)="login()">Login</button>
    <p *ngIf="store.isLoggedIn()">Welcome {{ store.loggedInUser()?.email }}</p>
  `,
})
export class AppComponent {
  readonly store = inject(AuthStore);

  login() {
    this.store.login({ credential: 'user@example.com', password: 'secret' });
  }
}
// app.routes.ts
import { Routes } from '@angular/router';
import { policyGuard } from '@anarchitects/auth-angular/feature';

export const routes: Routes = [
  {
    path: 'admin',
    canMatch: [policyGuard],
    data: { action: 'manage', subject: 'admin-section' },
    loadComponent: () => import('./admin.component').then((m) => m.AdminComponent),
  },
];

Entry points

Import path Description
@anarchitects/auth-angular/config DI tokens and providers
@anarchitects/auth-angular/data-access Generated API clients and HTTP adapters
@anarchitects/auth-angular/state Signal store and CASL ability sync
@anarchitects/auth-angular/feature Router policy guard
@anarchitects/auth-angular/ui Auth domain form UI components
@anarchitects/auth-angular/util CASL ability factory and typings

Nx scripts

Development notes

License

Licensed under the Apache License, Version 2.0.

Source Links