Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslnode 18–226 runs
build_error
glibcnode 18–226 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
AuthModule
✓ import { AuthModule } from 'tdn-auth';
✗ import { AuthModule } from 'angular-auth/auth.module';
The README contains a discrepancy; assume 'tdn-auth' is the correct package name. Always use `AuthModule.forRoot()` to initialize.
AuthConfig
✓ import { AuthConfig } from 'tdn-auth/auth.config';
✗ import { AuthConfig } from 'tdn-auth';
This is a deep import for configuration customization. Do not try to import directly from 'tdn-auth'.
CustomAuthConfig
✓ import { Injectable } from '@angular/core';
import { AuthConfig } from 'tdn-auth/auth.config';
@Injectable()
export class CustomAuthConfig extends AuthConfig {
constructor() {
super();
// Customize properties like base_url
this.base_url = 'https://your.api.com/auth/';
}
}
✗ const CustomAuthConfig = require('tdn-auth/auth.config').AuthConfig; // Incorrect for Angular/TypeScript
Custom configuration requires extending `AuthConfig` and applying the `@Injectable()` decorator. This is a class, not a direct export.
This quickstart demonstrates how to import and initialize the `AuthModule` in an Angular application, including how to provide a custom configuration by extending `AuthConfig` to set the base URL for the Django REST Auth API.
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AuthModule } from 'tdn-auth';
import { Injectable } from '@angular/core';
import { AuthConfig } from 'tdn-auth/auth.config';
// Assuming you have an Angular environment file for configuration
const environment = {
production: false,
api_base_url: 'https://your-django-rest-auth-api.com/' // Replace with your Django REST Auth API base URL
};
@Injectable()
export class CustomAuthConfig extends AuthConfig {
constructor() {
super();
this.base_url = environment.api_base_url;
// Further customization, e.g., token names, endpoints
// this.login_url = 'auth/jwt/create/';
// this.token_name = 'access_token';
}
}
@NgModule({
imports: [
BrowserModule,
// ... other Angular modules like HttpClientModule for API calls
AuthModule.forRoot(CustomAuthConfig) // Use AuthModule with your custom configuration
],
providers: [],
bootstrap: []
})
export class AppModule { }
Errors
Common errors & fixes
Error: Uncaught (in promise): Error: StaticInjectorError[AuthService]: StaticInjectorError[AuthService]: NullInjectorError: No provider for AuthService!
The AuthModule was not properly imported or initialized, specifically `forRoot()` was not called.
fixEnsure `AuthModule.forRoot()` is included in the `imports` array of your root Angular module (e.g., `AppModule`).
Module not found: Error: Can't resolve '@angular/common/http'
This package was developed for Angular 5.x, which uses `HttpClientModule` (from `@angular/common/http`) for HTTP requests. Later Angular versions might have subtle changes or require different setup, or you might be missing this specific import.
fixEnsure `@angular/common/http` is imported as `HttpClientModule` in your `AppModule` and listed in its `imports` array, alongside `BrowserModule`.
ERROR in node_modules/tdn-auth/tdn-auth.d.ts(XX,XX): error TS2307: Cannot find module '@angular/core' or its corresponding type declarations.
Incompatibility with newer TypeScript versions or mismatched Angular peer dependencies.
fixThis package is not compatible with modern Angular versions (6+) or their corresponding TypeScript versions. Revert to Angular 5.x and a compatible TypeScript version (e.g., TypeScript 2.5-2.7) or migrate to a different authentication library.
Audit
Dependencies
@angular/animationsrequiredRequired for Angular application animations, part of the core Angular framework dependencies.
@angular/cdkrequiredAngular Component Dev Kit, provides foundational utilities for building Angular components, including accessibility and interaction patterns.
@angular/commonrequiredCore Angular common modules, providing common directives, pipes, and services.
@angular/compilerrequiredRequired for compiling Angular templates and components.
@angular/corerequiredThe core Angular framework, essential for any Angular application.
@angular/flex-layoutrequiredAn Angular library for building responsive layouts using Flexbox, commonly used with Angular Material.
@angular/formsrequiredProvides support for building forms in Angular applications.
@angular/materialrequiredAngular Material component library, used for UI elements.
@angular/platform-browserrequiredRequired for Angular applications running in a browser environment.
@angular/routerrequiredEssential for navigation and routing within Angular applications.
core-jsrequiredJavaScript polyfills required for older browsers or specific JavaScript features not natively supported.
ngx-cookierequiredUtility for handling cookies in Angular applications, likely used for session management or token storage.
rxjsrequiredReactive Extensions for JavaScript, used extensively in Angular for asynchronous programming and event handling.
zone.jsrequiredA patching mechanism for asynchronous operations, critical for Angular's change detection mechanism.
reflect-metadatarequiredPolyfill for the Reflect Metadata API, used by TypeScript decorators in Angular.