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.
authenticate
✓ import { authenticate } from 'pico-auth'
✗ const authenticate = require('pico-auth').authenticate
ESM-only; no default export.
refreshToken
✓ import { refreshToken } from 'pico-auth'
Named export for refreshing JWT tokens.
UserProvider
✓ import { UserProvider } from 'pico-auth'
✗ import { userProvider } from 'pico-auth'
TypeScript type export; case-sensitive.
mfaRegister
✓ import { mfaRegister } from 'pico-auth'
✗ import { mfa_register } from 'pico-auth'
camelCase export name.
Demonstrates basic password authentication with custom UserProvider and JWT spec, outputting access and refresh tokens.
import { authenticate } from 'pico-auth';
const userProvider = {
async getUser(login: string) {
// mock: return user from DB
return { id: 'user1', passwordHash: 'hashed_pw', name: 'Test User' };
},
async putUser(user: any) { return user; },
userPasswordPath: 'passwordHash',
};
const jwtSpecs = {
secretKey: process.env.JWT_SECRET || 'changeme',
expiryTimeMs: 3600000, // 1 hour
};
async function main() {
const tokens = await authenticate('user1', 'password123', undefined, undefined, userProvider, undefined, jwtSpecs);
console.log('Access token:', tokens.token);
console.log('Refresh token:', tokens.refreshToken);
}
main().catch(console.error);
Errors
Common errors & fixes
Error: getUser must return a BaseUser object
UserProvider.getUser returned null or undefined instead of a valid user object.
fixEnsure getUser returns a Promise<BaseUser>; if user not found, throw an error instead of returning null.
TypeError: Cannot destructure property 'token' of undefined
authenticate() returned undefined due to missing userProvider or jwtSpecs fields.
fixCheck that all required arguments are provided: login, password, userProvider, and jwtSpecs.
Cannot read properties of undefined (reading 'secretKey')
jwtSpecs object is missing secretKey property.
fixEnsure jwtSpecs has both secretKey and expiryTimeMs defined.
Audit
Dependencies
No dependency data recorded yet.