TypeScript-native support tickets for AdonisJS
Lucid ORM models, service providers, and Inertia rendering. Escalated integrates with AdonisJS v6 as a fully typed package with first-class TypeScript support.
$ npm install @escalated-dev/escalated-adonisBuilt for AdonisJS
Why Escalated for AdonisJS
Escalated is designed to feel like a native AdonisJS package, not a bolt-on integration.
Lucid ORM Models
Tickets, replies, tags, and activities are Lucid models. Use relationships, scopes, and query builder with full TypeScript type inference.
Service Providers
Register Escalated through AdonisJS service providers. Configuration, bindings, and boot logic follow standard AdonisJS patterns.
TypeScript Native
Every model, controller, and service is written in TypeScript. Full type safety, autocompletion, and compile-time checks across the entire package.
Get Started
How It Works
Three steps to a full-featured support system inside your AdonisJS application.
Install the Package
npm install @escalated-dev/escalated-adonisConfigure the Provider
node ace configure @escalated-dev/escalated-adonisMount the Routes
Register Escalated routes in your start/routes.ts and you're live. Full ticket management with type-safe controllers.
Features
Everything You Need
Escalated integrates with the full AdonisJS ecosystem out of the box.
Lucid Relationships
Tickets belong to users, have many replies, and use polymorphic relationships. Type-safe query building and eager loading built in.
Bull Queue Integration
Email notifications and webhook dispatches use AdonisJS's built-in queue system. Background processing with retry logic and monitoring.
Bouncer Authorization
Authorization integrates with AdonisJS Bouncer. Define abilities and policies to control who can view, reply, and manage tickets.
Event Emitter
Every ticket action emits typed events. Listen to TicketCreated, ReplyAdded, and StatusChanged with full type safety.
HTTP Middleware
Apply your existing middleware to Escalated routes. Authentication, rate limiting, and tenant scoping work naturally in the AdonisJS middleware pipeline.
Japa Test Helpers
Ships with test helpers for Japa. Create tickets, replies, and users in your test suite with typed factory functions.
Integration
Feels Native to AdonisJS
Standard AdonisJS patterns. No new abstractions to learn.
// start/routes.ts
import router from '@adonisjs/core/services/router'
import { escalatedRoutes } from '@escalated-dev/escalated-adonis'
escalatedRoutes(router)
// app/models/user.ts
import { compose } from '@adonisjs/core/helpers'
import { HasTickets } from '@escalated-dev/escalated-adonis'
export default class User extends compose(BaseModel, HasTickets) {}
// Anywhere in your application
const ticket = await user.related('tickets').create({
subject: 'Need help with billing',
priority: 'high',
})
await ticket.related('replies').create({
body: "We've updated your invoice.",
userId: agent.id,
})Ready to add support tickets to your AdonisJS app?
Escalated is open source and free forever. Get started with the documentation or explore the source on GitHub.