daravel library

Daravel — a Laravel-inspired, AOT-native backend framework for Dart.

Tier 0 walking skeleton: container + zone scopes, application builder, HTTP kernel, radix router, SQLite database access, schema migrations.

Classes

AcceptanceRule
accepted, declined and, with other, accepted_if and declined_if (laravel/framework ValidatesAttributes, the same from 8 to 13): the value must pass _test, only while other is one of values for the conditional rules. Implicit, so a missing attribute fails.
AggregateClause
Aggregate request (count, sum...).
AlgorithmRateLimitStore
A RateLimitStore that also counts with other algorithms than the fixed window (Limit.slidingWindow, Limit.gcra).
AlphaDashRule
alpha_dash: see Rules.alphaDash.
AlphaNumRule
alpha_num: see Rules.alphaNum.
AlphaRule
alpha: see Rules.alpha.
AnonymousNotifiable
Recipients without a model (Notifications.route('mail', 'a@b.co')).
AnyOfSchema
A value matching any of several schemas.
App
Container access.
AppConfig
Core application settings (config/app.php parity).
Application
The application: owns the container, configuration, router and kernel (BLUEPRINT_V2 §7.1.2, §5.3).
ApplicationBuilder
Fluent builder mirroring Laravel's Application::configure().
AppMetrics
Framework metrics: HTTP, queue and process (BLUEPRINT_V2 §7.10.4).
ArrayFeatureStore
Values in memory (Pennant's array driver): per isolate, lost on restart. The default in tests.
ArrayRule
array, a JSON array or object: see Rules.array.
ArraySchema
A JSON array schema.
ArrayTransport
Keeps messages in memory (MAIL_MAILER=array; the default in tests).
AsciiRule
ascii: see Rules.ascii.
Assets
Versioned URLs of the files served by ApplicationBuilder.withStatic (Laravel's asset() and Vite::asset()).
Auth
Authentication (Auth::user(), Auth::guard('jwt')).
AuthConfig
AUTH_* / JWT_* configuration (config/auth.php parity).
Authenticatable
Something that can be authenticated (Laravel Authenticatable).
AuthenticateMiddleware
auth / auth:token,jwt — tries each guard in order and activates the first that authenticates; otherwise 401 {"message":"Unauthenticated."}.
AuthManager
Multi-guard authentication manager (Laravel AuthManager).
AuthorizationGate
Ability registry and checker (Laravel Gate). One instance per application; forUser yields a view bound to a specific user.
AuthorizeMiddleware
Middleware can:ability,param1,param2 — route parameters are passed as their bound models (see Router.bind) or raw strings.
AuthResponse
Result of an authorization check with an optional message and code.
AuthScope
Access to the active request scope for guards.
AuthState
Per-scope authentication state: resolved users per guard, the active guard chosen by auth:a,b middleware and the current access token.
BailRule
Marker: stop validating the attribute after the first failure.
BasicWhere
column operator value (where('votes', '>', 100)).
BelongsTo<R extends Model>
belongsTo: the parent carries foreignKey = related ownerKey.
BelongsToMany<R extends Model>
belongsToMany through a pivot table.
BetweenRule
between: see Rules.between.
BetweenWhere
column [NOT] BETWEEN from AND to (whereBetween).
BindingKey
Identifies a binding: a Type plus an optional name for contextual bindings (for example two Disk implementations registered as local and s3).
Blueprint
Collects column, index and foreign key definitions for Schema.create and the change commands for Schema.table.
BodyLimitsMiddleware
Request body limits (BLUEPRINT_V2 §2.3). Defaults: 1 MiB for JSON and form bodies, 50 MiB for multipart/other bodies, JSON nesting ≤ 64.
BoolCast
Reads and writes bool values.
BooleanRule
boolean: see Rules.boolean.
BooleanSchema
A JSON boolean schema.
Broadcast
Broadcasting, at two levels:
BroadcastAuthorization
Laravel's /broadcasting/auth: Echo asks before joining a private or presence channel, and gets the signature the server checks.
BroadcastChannel
Publishes notifications to their channels on the Broadcaster, as Laravel's BroadcastNotificationCreated event: {"event": ..., "data": {...toBroadcast, "id": ..., "type": ...}}.
BroadcastConfig
Broadcasting, from the keys of Laravel 12's config/broadcasting.php and config/reverb.php, so one .env serves both frameworks.
Broadcaster
Publishes messages to channels that listeners in every worker isolate receive, for example a chat room or an order's status page served over WebSockets or server-sent events.
BroadcastManager
Sends broadcast events where BROADCAST_CONNECTION says: this server (PusherServer), another Reverb or Pusher Channels (their HTTP API), the log, or nowhere.
BroadcastRelay
Carries the Pusher server's frames to the other servers and theirs to this one (REVERB_SCALING_ENABLED): DatabaseBroadcastRelay, or a driver registered with ApplicationBuilder.withBroadcastScaling (package:daravel_redis's Pub/Sub).
BroadcastService
Coordinator side of Broadcaster: which isolates listen to which channel, and the fan-out of each message to them.
BroadcastSubscription
A listener on one channel of a Broadcaster.
BytesBody
A body held in memory.
BytesPayload
An IsolatePayload of binary data.
Cache
Cache access (Cache::get, Cache::remember, Cache::lock).
CacheConfig
CACHE_* configuration (config/cache.php parity).
CacheHeadersMiddleware
Laravel's cache.headers middleware (SetCacheHeaders):
CacheHealthCheck
Writes, reads and deletes a probe key.
CacheJwtDenylist
Revoked JWT ids in a CacheStore, so a logout holds on every worker isolate (the process store) or every machine (database).
CacheManager
Holds named stores (Laravel CacheManager).
CachePrefixShaping
A store that shapes the key prefix its repository applies, as Laravel's stores own their prefix: RedisStore::setPrefix appended : to a non-empty prefix up to Laravel 10 and keeps it as given from 11.
CacheRateLimitStore
Rate limits counted in a CacheStore (CACHE_LIMITER, Laravel's cache.limiter): with the database store, every machine sharing the database shares the limits (scope cluster).
CacheRepository
A store wrapped with a key prefix and the high-level API (remember, flexible, lock, …).
CacheStore
Backing store contract (BLUEPRINT_V2 §7.7). Values must be JSON-serializable for the file/database stores.
CallbackAction
Runs a Dart callback.
CallbackHealthCheck
Closure-based check (HealthCheck.of('queue', () async => ...)).
CallQueuedListener
Job wrapping a QueuedListener invocation.
Cast
Attribute casting (Laravel $casts). get converts a raw database value into the Dart value exposed by the model; set converts a Dart value into what is stored.
ChannelMembershipService
Who is subscribed to which channel, across every worker isolate: the coordinator side of the Pusher server (broadcasting/pusher_server.dart).
ChannelRegistry
Laravel's routes/channels.php: who may listen to private and presence channels.
ChannelState
Where a PusherServer keeps who is on which channel, the members of presence channels and the last event of cache channels: the coordinator (one server, every isolate) or the database (DatabaseChannelState, several servers). The operations and their results are the coordinator's ChannelMembershipService's.
Cidr
An IPv4/IPv6 network in CIDR notation (10.0.0.0/8, ::1/128) or a single address.
ClientRequest
An outgoing request, as sent (and as recorded by HttpFake).
ClientResponse
A response to an outgoing request (Laravel's Http\Client\Response).
Clock
The framework's source of "now" (BLUEPRINT_V2 §7.11).
ClosureGuard<T extends Authenticatable>
A guard driven by a closure (Auth.viaRequest).
ClosureRule
A rule from a closure: see Rules.custom.
ColumnDefinition
A column being defined (or changed) inside a Blueprint.
ColumnInfo
Column metadata returned by Schema.getColumns.
ColumnWhere
first operator second between two columns (whereColumn).
CommandAction
Runs a dartisan command.
CompareRule
gt, gte, lt and lte: against another field of the same type, or a number when the value is numeric too.
Compilation
Accumulates bindings while compiling and emits dialect placeholders.
CompiledQuery
SQL text plus its ordered bindings, ready for a driver.
CompressResponseMiddleware
Compresses responses with gzip for clients that accept it (Accept-Encoding: gzip): bodies of at least minLength bytes with a compressible type (JSON, text, XML, SVG, JavaScript). Streams (server-sent events, downloads) are left alone. A strong ETag becomes weak, as the bytes change with the encoding.
Concurrency
Laravel's Concurrency facade, on a pool of warm worker isolates.
ConcurrencyFake
What Concurrency.sync and Concurrency.fake do to a zone.
Config
Configuration access (Config.get('app.name')).
ConfigIssue
A problem found by ConfigValidator.
ConfigRepository
Holds typed configuration sections and their dot-notation projection.
ConfigSection
A typed configuration section (ADR-007). Each section is registered once and projected into the dot-notation map used by Config.get('app.name').
ConfigValidator
Validates configuration at boot (BLUEPRINT_V2 §5.3 step 3, §9.2).
ConfirmedRule
confirmed: see Rules.confirmed.
ConnectionConfig
A single named connection (config/database.php parity).
ConsoleHandler
Human-readable lines; warnings and above go to err.
Container
The IoC container (BLUEPRINT_V2 §7.1.1, ADR-001).
Context
Laravel 11's Context: data that belongs to the current request, job or command, added to every log record and carried into the jobs it dispatches:
ContextRepository
Data of one request, job or command (Laravel 11's Context).
ConvertEmptyStringsToNullMiddleware
Converts empty string inputs to null (Laravel's ConvertEmptyStringsToNull).
Coordinator
Hosts process-scope services. Lives in the supervisor (main) isolate when serving with several workers; in-process otherwise.
CoordinatorChannel
How application code reaches the coordinator.
CoordinatorMessage
Marks a typed coordinator message (ADR-032): an object sent to a TypedCoordinatorService through TypedCoordinatorChannel.callTyped, or returned by one.
CoordinatorReply
Reply to a CoordinatorRequest.
CoordinatorRequest
A request to a coordinator service.
CoordinatorService
A service hosted by the Coordinator (rate limiter, locks, cache...).
CorsConfig
CORS configuration (config/cors.php parity).
CorsMiddleware
Cross-origin resource sharing. Secure by default: no origin is allowed until configured, and * is never combined with credentials (BLUEPRINT_V2 §9.2).
Counter
Monotonic counter.
CreateBroadcastingTables
The tables of REVERB_SCALING_ENABLED: relayed frames, channel members, server heartbeats and cache channels.
CreateCacheTable
Creates Laravel's cache and cache_locks tables (same schema and migration name as Laravel 11's default).
CreateFeaturesTable
Pennant's features table (2022_11_01_000001_create_features_table).
CreateJobsTable
Creates jobs, job_batches and failed_jobs with Laravel 11's schema and migration name.
CreateNotificationsTable
Laravel's notifications table (make:notifications-table). Created only when missing, so a database already migrated by Laravel is fine.
CreatePersonalAccessTokensTable
Creates personal_access_tokens with the exact Sanctum schema. Named like Sanctum's migration so a shared migrations table stays consistent.
CronExpression
A five-field cron expression (minute hour day-of-month month day-of-week) with ranges, steps, lists, names and @aliases.
Crypt
Symmetric encryption keyed by APP_KEY (Crypt::encryptString).
Csp
A Content-Security-Policy, built directive by directive and sent by SecurityHeadersMiddleware(contentSecurityPolicy: ...) on HTML responses.
Cursor
Opaque cursor for CursorPaginator, encoded like Laravel's Cursor: URL-safe unpadded base64 of the PHP JSON of the boundary row's ordered column values plus _pointsToNextItems, so cursors are interchangeable with a Laravel app over the same table.
CursorPaginator<T>
cursorPaginate() result (keyset pagination).
CustomCast<T>
A cast with your own conversion: CustomCast.new takes a function reading the raw value and one writing the attribute.
DailyFileHandler
daravel-YYYY-MM-DD.log files rotated daily, keeping days files.
DaravelUri
Illuminate\Support\Uri: an immutable URI to read and change one part at a time, which dart:core's Uri.replace makes awkward for queries.
DatabaseBroadcastRelay
Relays the Pusher server's frames between servers through the database (REVERB_SCALING_ENABLED), as Reverb does through Redis: send stores a frame, and every isolate of every other server reads it (start) and hands it to its own connections.
DatabaseChannel
Stores the notification in Laravel's notifications table.
DatabaseChannelState
Channel state shared by every server through the database (REVERB_SCALING_ENABLED): a presence channel's members are the same whichever server a client is connected to, and member_added goes out once per user across all of them.
DatabaseConfig
Database configuration section.
DatabaseDateTime
A date read from a driver that returns DateTimes, with the text PDO would have returned. An uncast column reaches Laravel's JSON as that text (2024-01-01 10:00:00), not as an ISO-8601 date.
DatabaseDriver
A connection to a database server or file.
DatabaseFailedJobProvider
Laravel-compatible failed_jobs table.
DatabaseFeatureStore
Values in Pennant's features table (name, scope, JSON value), so a Laravel application on the same database sees the same flags.
DatabaseHealthCheck
Runs SELECT 1 on connection.
DatabaseManager
Opens and keeps the database connections, runs transactions (nested ones as savepoints) and after-commit callbacks, and hands out query builders. DB is its facade.
DatabaseNotification
A row of the notifications table.
DatabaseQueue
Laravel-compatible jobs table (scope cluster). Reservation is an optimistic UPDATE … WHERE reserved_at IS NULL, so several workers never process the same row twice.
DatabaseStore
Laravel-compatible cache / cache_locks tables (scope cluster).
DateCast
Reads and writes dates without a time.
DateCompareRule
after, after_or_equal, before, before_or_equal and date_equals.
DateFormatRule
date_format:Y-m-d[,d/m/Y]: the value, a string or a number, reads back exactly in one of formats (Laravel's validateDateFormat).
DatePartWhere
whereDate/Month/Day/Year/Time.
DateRule
date: see Rules.date.
DateTimeCast
Reads and writes DateTime values in UTC.
DateTimeFormatCast
Cast.dateTimeFormat: a DateTime attribute that Model.toJson writes with a PHP date() format.
DB
Database access.
DbTransactionBeginning
A transaction or savepoint is starting.
DbTransactionCommitted
A transaction or savepoint committed.
DbTransactionRolledBack
A transaction or savepoint rolled back.
DecimalRule
decimal:2 and decimal:0,4.
DecimalStringCast
Laravel's decimal:<places>: a string with exactly places digits after the point, so money keeps its precision.
DeferredServiceProvider
A provider whose bindings are registered lazily, the first time one of the types in provides is resolved from the container (Laravel's DeferrableProvider). Registration must be synchronous because Container.make is synchronous; boot is not invoked for deferred providers.
DependentRule
prohibited_if, prohibited_unless and present_if.
DigitCountRule
min_digits and max_digits: the length of a number made of digits.
DigitsBetweenRule
digits_between: see Rules.digitsBetween.
DigitsRule
digits: see Rules.digits.
Disk
A filesystem abstraction (Laravel Filesystem; BLUEPRINT_V2 §7.10.1). Paths are relative, /-separated and never escape the disk root.
DistinctRule
distinct: see Rules.distinct.
DomainPattern
A route's host: admin.example.com or {tenant}.example.com, where {tenant:slug} also names the column of a model binding. A parameter is one label, so it cannot swallow a dot.
DoubleCast
Reads and writes double values.
DrainSignal
Completes when the application starts shutting down (SIGTERM or ServerEngine.stop): long-lived responses (server-sent events) end cleanly so clients reconnect elsewhere, instead of holding the shutdown until its timeout.
Ed25519JwtKey
Ed25519 key for EdDSA. Verification only needs publicKey; signing also needs the 32-byte seed.
EmailRule
email: see Rules.email.
EmbeddedWorkers
Queue worker and scheduler isolates started by Application.serveWith (serve --embed-queue --embed-scheduler), so one process can serve HTTP, process jobs and run the schedule without supervisord or cron.
EmptyBody
No body.
Encrypter
Authenticated symmetric encryption keyed by APP_KEY (§7.6.1).
EndsWithRule
ends_with: see Rules.endsWith.
EnsureFeaturesAreActive
feature:a,b (Pennant's EnsureFeaturesAreActive): 400 Bad Request unless every feature is active for the authenticated user.
EnumCast<E extends Enum>
A Dart enum stored by its name: EnumCast(Status.values). An unknown stored name reads as null.
EnumRule<E extends Enum>
Rule::enum(): the value of one of values, by name or by toValue.
Env
Typed access to environment variables loaded from .env files, the OS environment and explicit overrides (BLUEPRINT_V2 §7.1.3).
Envelope
Who and what a Mailable is about (Laravel's Envelope).
EnvironmentEncrypter
Laravel-compatible encrypted environment files (.env.encrypted), as written by php artisan env:encrypt and dartisan env:encrypt.
Event
Events (Event::dispatch, Event::listen, Event::fake).
EventDispatcher
Synchronous + queued event dispatching (BLUEPRINT_V2 §7.8).
EventFake
Recorded dispatches while EventDispatcher.fake is active.
EventSubscriber
Groups listeners (Laravel EventSubscriber).
ExceptionHandler
Central exception → response mapping (ADR-009).
ExcludeRule
The rules that drop an attribute: passes answers its name when the attribute leaves the validated data, and no error is added.
ExecAction
Runs a program.
ExistsRule
exists:table,column — the value must be present in the table.
ExistsWhere
[NOT] EXISTS (subquery) (whereExists).
ExtensionsRule
extensions:csv,txt: the extension of the client's file name.
FailedJob
A row of failed_jobs.
FailedJobProvider
Storage for failed jobs (Laravel FailedJobProviderInterface).
Faker
Minimal, dependency-free fake data generator for seeders and factories. Deterministic when constructed with a seed (Faker(seed: 42)).
Feature
Laravel Pennant's Feature facade over the application's FeatureManager.
FeatureManager
Feature flags (Laravel Pennant): resolvers, a FeatureStore and the default scope (the authenticated user).
FeatureScope
A scope that knows its own stored form (Pennant's FeatureScopeSerializeable).
FeatureStore
Where resolved feature values are kept.
FileRule
file: see Rules.file.
FileStore
JSON files under a directory (scope cluster on a shared disk, otherwise process). Writes go to a temp file then rename (atomic on POSIX and NTFS). Locks use exclusive file creation.
FilledRule
filled: see Rules.filled.
ForeignIdDefinition
A foreignId() column that can be constrained().
ForeignKeyDefinition
A foreign key constraint.
FormRequest
Reusable authorization + validation for a request (Laravel FormRequest).
FunctionalMiddleware
Middleware backed by a closure.
Gate
Authorization (Gate::allows, Gate::authorize).
Gauge
Value that goes up and down.
Guard<T extends Authenticatable>
Resolves the user for a request (Laravel Guard).
Hash
Password hashing (Hash::make, Hash::check).
HashConfig
HASH_DRIVER / BCRYPT_ROUNDS / ARGON_* configuration (config/hashing.php parity).
HashInfo
Parsed metadata of a hash string.
HashManager
Creates and verifies password hashes off the event loop.
HasMany<R extends Model>
hasMany: related rows carry foreignKey = parent localKey.
HasManyThrough<R extends Model>
hasManyThrough: parent → through (firstKey = parent localKey) → related (secondKey = through secondLocalKey).
HasOne<R extends Model>
hasOne: like HasMany but a single row.
HasOneThrough<R extends Model>
hasOneThrough: like HasManyThrough but a single model (or null).
HavingClause
HAVING entry.
Headers
Case-insensitive, multi-value HTTP header collection.
HealthCheck
A readiness probe (/up/ready).
HealthChecker
Runs every check with a timeout and builds the /up/ready payload.
HealthResult
Outcome of one HealthCheck.
Histogram
Cumulative histogram with fixed buckets.
HmacJwtKey
Shared secret for HS256. An empty secret is refused: HMAC over an empty key signs and verifies like any other, so a JWT_SECRET that was never set would accept tokens anyone could mint (AuthManager also requires 32 bytes for the guard's secret; this is the floor for every other use of the codec).
Http
Outgoing HTTP requests, like Laravel's Http facade:
HttpClientFactory
Sends outgoing requests (one pooled dart:io client) or answers them from a fake. Registered as a singleton in the application container.
HttpFake
Stubs and the requests sent while faking (Http.fake()).
HttpKernel
Orchestrates the request lifecycle (BLUEPRINT_V2 §5.4): global middleware → routing → route middleware → handler → response conversion, with exception rendering at both the route and global layers, per-route timeouts and a terminate phase after the response is sent.
ImageRule
image (jpg, jpeg, png, gif, bmp, webp; image:allow_svg adds svg).
IndexDefinition
A table-level index.
InRule
in and not_in: see Rules.inList.
IntCast
Reads and writes int values.
IntegerRule
integer: see Rules.integer.
IntegerSchema
A JSON integer schema.
InWhere
column [NOT] IN (...) (whereIn, whereNotIn).
IpRule
ip, ipv4 and ipv6: see Rules.ip.
IsolatePayload
A value prepared to cross an isolate boundary cheaply (ADR-031).
Job
A unit of background work (BLUEPRINT_V2 §7.9.1). Jobs are plain Dart objects serialised to JSON through toJson and rebuilt by the factory registered in JobRegistry (no reflection, AOT-friendly).
JobAction
Pushes a job onto the queue.
JobContext
Runtime information and control for a running job.
JobDefinition
Registry entry: name → factory from JSON.
JobExceptionOccurred
A job threw; willRetry tells whether it was released for another try.
JobFailed
A job exhausted its attempts and was recorded in failed_jobs.
JobMiddleware
Wraps job execution (Laravel job middleware).
JobPayload
JSON envelope stored by every driver. Top-level keys mirror Laravel's payload (uuid, displayName, job, maxTries, …); data holds the Dart job's own JSON, so payloads are not cross-runtime (§4.4).
JobProcessed
A job finished without error.
JobProcessing
A job was reserved and is about to run.
JobProcessor
Runs one reserved job through its middleware with timeout, retry and failure bookkeeping (shared by the worker and the sync driver).
JobRegistry
Explicit job registry (ADR-002).
JoinBuilder
Fluent ON builder for closure joins.
JoinClause
A join clause.
JoinCondition
One ON condition of a join.
JsonApiCollection<T>
Resources under one data; paginators add Laravel's links and meta.
JsonApiRelationship<R extends Model>
A relation a JsonApiResource can expose. There is no toResource without reflection, so it names the resource for its models.
JsonApiRequest
?fields[type]=a,b and ?include=author,comments.user, as Laravel's JsonApiRequest reads them.
JsonApiResource<T>
Laravel 13's JsonApiResource: a JsonResource in the JSON:API v1.1 shape.
JsonCast
Reads JSON text into maps and lists, and writes them back as JSON.
JsonHandler
One JSON object per line (containers, log shippers).
JsonResource<T>
Transforms a value (usually a Model) into its API representation (Laravel JsonResource; BLUEPRINT_V2 §7.10.5).
JsonRule
json: see Rules.json.
JsonSchema
Laravel's Illuminate\JsonSchema: a typed builder for JSON Schema documents.
JsonSerializable
Objects that provide a JSON representation.
JsonStructuralDiffer
Compares the shape of two JSON documents: keys, types and list lengths, not values. Daravel and Laravel read one database, but a shadow request comes later, so a value may rightly have changed.
JsonWhere
whereJsonContains / whereJsonLength (dialect specific).
JwtClaims
Verified claims of a token.
JwtCodec
Signs and verifies JWTs (RFC 7519) with a key ring.
JwtDenylist
Revoked token ids (jti) until their expiry.
JwtGuard<T extends Authenticatable>
Stateless bearer-JWT guard: sub is the user's identifier.
JwtKey
A signing/verification key with an optional kid for rotation.
KeyGenerator
Generates client-side keys.
Lang
Laravel's Lang facade over the application's Translator.
LegacyKey
Keys for tables that have no sequence, where Laravel code writes MAX(id) + 1. Two requests doing that at once read the same maximum.
LengthAwarePaginator<T>
paginate() result. Serializes exactly like Laravel's LengthAwarePaginator (key order, links with page, URL window).
Limit
A rate limit (Laravel Illuminate\Cache\RateLimiting\Limit).
ListeningQueryExecutor
Wraps an executor to report every query to listeners. Only used while listeners are registered, so queries cost nothing extra otherwise.
ListRule
list, a JSON array: see Rules.list.
LocalCoordinatorChannel
Direct in-process calls (single isolate / tests): no message hop.
LocalDisk
Local filesystem disk rooted at root.
Lock
An atomic lock (Laravel Cache::lock). Semantics are fail-closed: a coordinator error surfaces as an exception instead of a false "got it".
LockMessage
One lock call to ProcessCacheService, as ProcessStore sends it through TypedCoordinatorChannel.callTyped (ADR-031): deeply immutable, so it crosses to the coordinator isolate by reference where the map of toArgs is copied entry by entry. Other cache operations stay maps.
Log
Logging access.
LogContext
Per-scope (request/job/command) context added to every log line.
Logger
Structured logger with channels, scope context and redaction (BLUEPRINT_V2 §7.10.3).
LoggingConfig
LOG_* configuration (config/logging.php).
LogHandler
Destination of log records (console, JSON stdout, daily file, memory…).
LogRecord
One log entry as handed to LogHandlers.
LogTransport
Writes each message to the log instead of sending it (MAIL_MAILER=log, Laravel's default).
LowercaseRule
lowercase: see Rules.lowercase.
Mail
Laravel's Mail facade:
Mailable
An email (Laravel's Mailable):
MailAddress
An email address with an optional display name: Teo <teo@example.com>.
MailAttachment
A file attached to a message.
MailChannel
Sends toMail (a NotificationMail or a Mailable) to the notifiable's address.
MailConfig
Mail configuration, from the keys of Laravel 12's config/mail.php.
MailContent
The body of a Mailable (Laravel's Content): HTML, plain text or both, or markdown in the mail theme. Give a text alternative when you can; mail clients and spam filters prefer messages that have one.
Mailer
Renders mailables and hands them to the configured MailTransport (the Mail facade).
MailFake
What Mail.fake() recorded, with Laravel's assertions.
MailMessage
A message ready to send: what a Mailable renders to.
MailTheme
The look of markdown mail and notification mail: Laravel 12's default mail theme (resources/views/vendor/mail/html/themes/default.css), with its styles inlined into every element, as Laravel does before sending, since many mail clients ignore <style>.
MailTransport
Delivers rendered messages (MAIL_MAILER): smtp, log, array, or one registered with withMailTransport.
MaintenanceMode
Maintenance mode state in storage/framework/down, the file and JSON shape Laravel's php artisan down writes (dartisan down / up).
MapRule
map, a JSON object: see Rules.map.
MaxRule
max: see Rules.max.
MemoryDisk
In-memory disk (Storage.fake()), with assertions.
MemoryFailedJobProvider
In-memory failed job list (sync/memory connections, tests).
MemoryHandler
Keeps records in memory; returned by Log.spy() for assertions.
MemoryJwtDenylist
In-memory denylist of one isolate, for tests and single-isolate tools: with APP_ISOLATES > 1 a token revoked on one isolate stays valid on the others. Applications get a shared one by default (auth.jwt).
MemoryQueue
In-memory queue (scope isolate): tests and --embed-queue style single-process setups.
MemoryRateLimitStore
Fixed-window counters in this isolate's memory, like Laravel's RateLimiter (hits + reset time per key): O(1) time and two integers per key, whatever the limit.
MemoryStore
Bounded LRU store in this isolate's memory (scope isolate).
MergeValue
Attributes merged into the parent map (mergeWhen).
MethodOverrideMiddleware
HTML forms and multipart uploads can only POST: _method or the X-HTTP-Method-Override header names the real verb, as Symfony's Request::getMethod() reads them.
MetricsConfig
METRICS_* configuration.
MetricsMiddleware
Records request count, latency and in-flight gauge. The route label is the route pattern (/users/{id}), never the raw path, to bound cardinality; unmatched requests use unmatched.
MetricsRegistry
Counters, gauges and histograms rendered in Prometheus text format.
MetricsService
Coordinator service collecting worker snapshots (process scope).
Middleware
Onion-style middleware (BLUEPRINT_V2 §7.2.4).
MiddlewarePipeline
Runs a list of middleware around a core handler.
MiddlewareRegistry
Global middleware stack, aliases, groups and priority, configured via ApplicationBuilder.withMiddleware.
Migration
A schema migration. name must be unique and stable (it is recorded in the migrations table, Laravel-compatible: id, migration, batch).
MigrationStatus
Status row reported by migrate:status.
Migrator
Runs migrations in batches (migrate, migrate:rollback, migrate:status, migrate:reset).
MimesRule
mimes:jpg,png: the extension guessed from the content.
MimetypesRule
mimetypes:image/jpeg,video/*: the type detected from the content.
MinRule
min: see Rules.min.
MissingValue
Marker for attributes omitted by when/whenLoaded (Laravel MissingValue).
Model
Base for Hybrid Active Record models (ADR-006): an attribute bag with typed accessors written by the developer (or dartisan make:model), dirty tracking, casts, timestamps, soft deletes, relations and events.
ModelCollection<T extends Model>
A list of models with Laravel Collection conveniences.
ModelDefinition<T extends Model>
Static metadata of a model (ADR-006). Declared once per model class with an explicit type (so mutually referencing models do not create an inference cycle):
ModelFactory<T extends Model>
Model factory (named ModelFactory because ModelFactory is the container binding typedef; BLUEPRINT_V2 §7.5.6).
ModelObserver<T extends Model>
Observes a model's lifecycle. Return false from a *ing hook to cancel the operation (creating, updating, saving, deleting, restoring).
ModelQuery<T extends Model>
Model-aware query (Laravel's Eloquent Builder): wraps a QueryBuilder and hydrates models, applies global scopes and soft deletes, eager loads relations and offers whereHas / withCount.
ModelRef<T extends Model>
Reference to a model stored in a payload by key (SerializesModels). The model is reloaded fresh when the job runs; a missing row throws ModelNotFoundException, failing the job without retry.
ModelRegistry
The application's models (bootstrap/models.dart, registered with ApplicationBuilder.withModels): the explicit list that model:show, mcp:serve and generators read instead of discovering classes.
ModelUserProvider<T extends Authenticatable>
UserProvider backed by an ORM model definition.
MorphedByMany<R extends Model>
morphedByMany: the inverse of MorphToMany (the posts of a tag). The pivot's {morphName}_type is the related model's morph class.
MorphMany<R extends Model>
morphMany: related rows carry {morphName}_type = the parent's morph class (Relation.morphClassOf) and {morphName}_id = the parent's localKey, so posts and videos can share one comments table.
MorphOne<R extends Model>
morphOne: like MorphMany but a single row.
MorphTo
morphTo: the inverse of MorphOne / MorphMany. Each row names its owner's type in morphType and key in foreignKey, so rows of one table may point at different models (a comment on a post or a video).
MorphToMany<R extends Model>
morphToMany: a polymorphic many-to-many through a pivot table holding {morphName}_type, {morphName}_id and relatedPivotKey (taggables: the tags of posts and of videos). pivotTable defaults to {morphName}s; pass it when the plural is irregular.
MultipartLimits
Limits applied while parsing (PHP's max_input_vars, max_file_uploads; the total size is the request's body limit).
MultipleOfRule
multiple_of: see Rules.multipleOf.
MySqlQueryGrammar
MySQL/MariaDB grammar: backtick quoting, ? placeholders, no RETURNING.
MySqlSchemaGrammar
MySQL/MariaDB DDL grammar.
NestedWhere
A parenthesized group of conditions (where((q) => ...), whereNot).
NewAccessToken
Result of TokenGuard.issue: the plain-text token is only available here, never again (only its hash is stored).
Notification
A notification (Laravel's Notification): via names the channels, and each channel reads its own method.
NotificationChannel
Delivers a notification on one channel; id is this delivery's UUID.
NotificationFake
What Notifications.fake() recorded, with Laravel's assertions.
NotificationMail
The mail of a notification (Laravel's notification MailMessage): a greeting, lines, an optional button and a salutation, rendered as HTML and text.
NotificationManager
Sends notifications on their channels (the Notifications facade).
Notifications
Laravel's Notification facade (plural here: Notification is the base class):
NotifyingDriver
A driver that delivers notifications between connections to the same database (PostgreSQL's LISTEN / NOTIFY), so other processes and machines can be woken instead of polling.
NullableRule
Marker: null values skip the remaining rules.
NullWhere
column IS [NOT] NULL (whereNull, whereNotNull).
Number
Laravel's Illuminate\Support\Number for the en and id locales, with ICU's output (separators, half-even rounding, currency symbols and spacing) checked against Laravel 12:
NumberSchema
A JSON number schema.
NumericRule
numeric: see Rules.numeric.
ObjectSchema
A JSON object schema.
OrderClause
ORDER BY entry.
Pagination
Resolves pagination input from the current request, like Laravel's PaginationState (page from the query string, path from $request->url()). Outside a request it falls back to page 1 and /.
PasswordRule
Password: see Rules.password.
PendingDispatch
Fluent dispatch (dispatch($job)->onQueue('x')->delay(...)). Awaiting it performs the push and yields the driver job id (null when a unique job was skipped).
PendingMail
Mail.to(...).cc(...).bcc(...).send(mailable).
PendingRequest
A request being configured (Laravel's PendingRequest).
PersonalAccessToken
A row of personal_access_tokens (Sanctum-compatible schema).
PhpJsonEncoder
Values: null, bool, num (finite), String, List, Map with string keys and PhpObject; anything else goes through toEncodable once, as dart:convert does, or throws JsonUnsupportedObjectError. A cycle throws JsonCyclicError.
PhpObject
A PHP object read by phpUnserialize (O:8:"stdClass":1:{...}): its class name and properties, kept so the value can be written back unchanged by phpSerialize. Daravel code does not create these.
Policy<T extends Object>
Groups authorization logic for one model type (Laravel Policy).
PoolWaitProbe
Filled by a pooled driver with the time a query waited for a connection. It sits in the zone of a query only while a listener wants the number.
PostgresDriver
PostgreSQL driver backed by package:postgres (pure Dart, pooled).
PostgresQueryGrammar
PostgreSQL grammar: $n placeholders, RETURNING, ON CONFLICT.
PostgresSchemaGrammar
PostgreSQL DDL grammar.
PreparedResponsable
A Responsable with async work to do first. The kernel awaits prepare on what a route returns, then calls toResponse: a JSON:API resource loads what ?include= asks for there, because toResponse is synchronous.
PresentRule
present: see Rules.present.
PreventRequestsDuringMaintenance
Answers 503 while the application is in maintenance mode, like Laravel's PreventRequestsDuringMaintenance.
ProcessCacheService
Coordinator service exposing a MemoryStore to every worker (process-scope cache and locks). Values arrive in the wire form of ProcessStore.encodeWire (mostly JSON strings) and are kept as they are: this isolate never decodes or copies them.
ProcessRateLimitStore
Process-wide counters via the coordinator. Fails open on coordinator errors/timeouts (the request is allowed and onError is notified), the documented default for rate limiting (§5.2), unless failClosed. Either way the result is RateLimitResult.degraded, so a Limit.failClosed limit refuses it even in a store that fails open.
ProcessStore
Process-wide cache and locks via the coordinator (scope process). Lock calls are fail-closed: coordinator errors propagate.
ProcessSupervisor
Runs the server as several operating-system processes on consecutive ports, for a reverse proxy to balance (ADR-027): APP_PROCESSES=N or serve --processes=N.
ProhibitedRule
prohibited: see Rules.prohibited.
ProhibitsRule
prohibits: the others must be empty while this one is not.
PusherServer
A Pusher protocol server (version 7), as Laravel Reverb is: Laravel Echo and pusher-js connect to /app/{key}, and Laravel (or anything with a Pusher HTTP client) publishes through /apps/{id}/events.
PusherSignature
The Pusher protocol's signatures, as pusher/pusher-php-server and Laravel Reverb compute them.
QueryAst
Dialect-neutral description of a query, compiled by a QueryGrammar.
QueryBuilder
Fluent SQL builder (BLUEPRINT_V2 §7.5.3). Mutable like Laravel's; use clone to branch. Compiles through the grammar of the connection it runs on, so the same builder works on SQLite, PostgreSQL and MySQL.
QueryErrors
A driver that recognises a unique index or primary key refusing a row among its errors (Laravel's isUniqueConstraintError), so it surfaces as UniqueConstraintViolationException.
QueryExceptionExecutor
Wraps an executor so a failing query throws QueryException, or UniqueConstraintViolationException when errors recognises one, as Laravel's runQueryCallback does.
QueryExecuted
A query that ran (Laravel's QueryExecuted), passed to DatabaseManager.listen / DB.listen listeners: SQL with its bindings, duration and connection. For debugging, slow-query logging, N+1 detection and inspection tools.
QueryExecutor
Executes parameterized SQL. Bindings use ? placeholders in Tier 0; the dialect-aware grammar (ADR-005) takes over placeholder emission in S5.
QueryGrammar
Compiles a QueryAst into SQL for one dialect (ADR-005). Placeholders are emitted while compiling, never rewritten textually afterwards.
Queue
Queue (Queue::push, dispatch(), Queue::fake).
QueueableNotificationChannel
A channel whose work can be prepared when the notification is sent and done later by a worker, for ShouldQueue notifications: prepare returns JSON, deliver gets it back in the job.
QueueConfig
QUEUE_* configuration (config/queue.php parity).
QueuedJob
A job reserved from a queue, being processed.
QueuedListener<E extends Object>
A listener executed on the queue (ShouldQueue). The event must be JSON-serializable through eventToJson/eventFromJson.
QueueDriver
Queue backend (BLUEPRINT_V2 §7.9.1).
QueueFake
Recorded pushes while QueueManager.fake is active.
QueueManager
Connections, dispatching, unique jobs and faking (Laravel QueueManager
QueueWorker
Polls queues and processes jobs (dartisan queue:work).
RadixTree<T extends Object>
Segment-based route tree with static > parameter > wildcard priority and backtracking (BLUEPRINT_V2 §7.3.1).
RateCounterStore
A store that counts rate limits as a sliding window or with the generic cell rate algorithm, in one atomic step on the server's clock (daravel_redis). resetIn is how long until the key holds no hits; retryAfter how long until a refused hit would be counted.
RateLimitedJob
Limits how often jobs sharing a key run (uses the application's RateLimiter store, so the limit is process-wide under a supervisor).
RateLimiter
Named limiters + counters (Laravel RateLimiter; BLUEPRINT_V2 §7.7).
RateLimitGrant
Grant of MemoryRateLimitStore.acquireSync: how many of the requested hits were recorded and the window they belong to. Deeply immutable, so the coordinator's answer to a lease crosses back without a copy.
RateLimitMessage
One call to RateLimitService, as ProcessRateLimitStore sends it through TypedCoordinatorChannel.callTyped (ADR-031): deeply immutable, so it crosses to the coordinator isolate by reference where the map of toArgs is copied entry by entry. op is an operation of RateLimitService.handle; the fields an operation does not read are 0.
RateLimitResult
Outcome of RateLimitStore.attempt.
RateLimitService
Coordinator service exposing a MemoryRateLimitStore to every worker. Workers send it RateLimitMessages; handle answers the same operations given as maps.
RateLimitStore
Backing store of attempt counters (ADR-003 scopes).
RawExpression
Raw SQL fragment with its own bindings; inserted verbatim by grammars.
RawWhere
A raw condition with bindings (whereRaw).
ReadThroughDisk
Laravel's ReadThroughFilesystemAdapter, for moving files to a new disk without copying them all first: reads try primary, then fallback, and a file found there moves up to primary unless promote is off. Writes go to primary. Deletes reach both, or the file would come back.
RegexRule
regex and not_regex: see Rules.regex.
Relation<R extends Model>
Base relation (BLUEPRINT_V2 §7.5.4). Related definitions are resolved lazily through a thunk so two models may reference each other.
RemoteCoordinatorChannel
Request/response over SendPort with correlation ids and timeouts.
ReplicaLayout
The layout of a replica on a disk, under its prefix:
ReplicaRestore
What a restore applied.
ReplicationSync
What one SqliteReplicator.sync did.
Request
Incoming HTTP request (BLUEPRINT_V2 §7.2.2).
RequestGuard<T extends Authenticatable>
Base for guards that resolve the user from the current Request: caches per scope, so every call within one request hits the database at most once.
RequestId
Generates opaque, URL-safe request identifiers.
RequestIdMiddleware
Echoes the request id as x-request-id on every response.
RequiredIfAcceptedRule
required_if_accepted: see Rules.requiredIfAccepted.
RequiredIfRule
required_if: see Rules.requiredIf.
RequiredRule
required: see Rules.required.
RequiredUnlessRule
required_unless: see Rules.requiredUnless.
RequiredWithAllRule
required_with_all: see Rules.requiredWithAll.
RequiredWithoutAllRule
required_without_all: see Rules.requiredWithoutAll.
RequiredWithoutRule
required_without: see Rules.requiredWithout.
RequiredWithRule
required_with: see Rules.requiredWith.
ResourceCollection<T>
A collection of resources; paginators add Laravel's links and meta.
ResourceController
Controller contract for Router.apiResource (index, store, show, update, destroy). Implement the actions you need; the router only registers the ones selected with only/except.
ResourceWrapping
Shape of a resource payload: the wrapping key (data) is global, like Laravel's JsonResource::$wrap.
Responsable
Objects that know how to turn themselves into a Response.
Response
Immutable HTTP response (BLUEPRINT_V2 §7.2.3).
ResponseBody
Body of a Response.
ResponseSequence
Responses handed out in order by one stub.
RetryableErrors
A driver that recognises its own transient errors (deadlocks, lock timeouts), so DB.transaction(attempts: n) retries them.
RouteEntry
A registered route with fluent configuration (BLUEPRINT_V2 §7.3.2).
RouteMatch<T extends Object>
Result of a successful RadixTree.lookup.
RoutePatterns
Well-known parameter patterns (Laravel whereNumber, whereUuid, ...).
Router
Fluent router (BLUEPRINT_V2 §7.3.2). Routes are registered during boot and compiled once into per-method RadixTrees.
RouteResponse
A documented route response (see RouteEntry.returns).
RoutesNotifications
A notifiable that decides its own routes (Laravel's routeNotificationFor<Channel>): return null for the default.
Rule
A validation rule. passes returns null on success or a message reference on failure: either a translation key such as min.string (resolved with parameters) or a literal message containing a space.
RuleBuilder
Rules written as a chain, typed and checked by the compiler:
RuleParser
Parses Laravel's string rule DSL ('required|email|max:255') into Rule objects (ADR-020). Parsing happens once at definition time and unknown rules throw immediately, so typos surface at boot or in tests, never in a request.
Rules
Factory facade for built-in rules (Rule.required(), Rule.email()...). Each factory returns a const-friendly Rule subclass that can be introspected for messages and OpenAPI hints.
RunsBeforeBindings
Route middleware that runs before route bindings, as the entries above SubstituteBindings in Laravel's $middlewarePriority (the same from 8 to 13): cookies, the session, authentication and rate limits. So a guest gets 401 rather than a 404 that tells which records exist, and a binder can use the authenticated user. The bindings run right after the last of these on a route, or first when it has none.
SameRule
same and different: see Rules.same.
Schedule
Declares scheduled tasks (routes/console.dart, Laravel 11 style).
ScheduledAction
What a scheduled task does.
ScheduledTask
A task with its cron expression, filters and hooks (Laravel Event).
ScheduledTaskFinished
A scheduled task finished (successfully or not).
ScheduledTaskSkipped
A scheduled task was skipped (filter, overlap lock, environment).
ScheduledTaskStarting
A scheduled task is about to run.
Scheduler
Executes due tasks (schedule:run) or loops every minute (schedule:work).
Schema
Schema access.
SchemaBuilder
Executes schema operations against a QueryExecutor (Schema::create, Schema::table, Schema::dropIfExists, Schema::hasTable...).
SchemaGrammar
Compiles blueprints into DDL for one dialect.
SchemaType
One node of a schema. Named so because Type is dart:core's.
Scope
Per-request/job/command/test storage created by Container.runScoped.
ScopedFeatures
The features of one scope (Feature.forScope(user)).
SecurityHeadersMiddleware
Conservative security headers for API responses (BLUEPRINT_V2 §9.2). Headers already set by the handler are preserved.
Seeder
Populates the database (db:seed). Seeders run inside the application's command scope, so facades (DB, models, factories) are available.
SeederRegistry
Seeders registered with ApplicationBuilder.withSeeders. The first entry is the root seeder run by a bare db:seed (Laravel's DatabaseSeeder).
SendQueuedMail
The job that sends a queued message (daravel:mail, registered by the framework). Its payload is the rendered message.
SendQueuedNotification
The job that delivers a queued notification on a queueable channel (daravel:notification, registered by the framework).
SentMessage
A sent message: its id and the raw MIME that went out.
ServeOptions
Options for Application.serve.
ServerEngine
Binds the dart:io server, wraps every request in a request scope and performs graceful shutdown on SIGINT (and SIGTERM outside Windows).
ServiceProvider
Registers and boots services, mirroring Laravel's two-phase providers.
SessionStore
The session as code outside the session package sees it: Laravel's Illuminate\Contracts\Session\Session, reduced to what the testing toolkit reads and writes.
SetLocaleMiddleware
Picks the request's locale from ?lang= (or query) or the Accept-Language header, among supported, and makes it the locale of the request: trans, App.locale and validation messages follow it. Without a match the application locale stays.
ShadowAnswer
The upstream's answer to a replay.
ShadowDrift
One difference. It holds a path and types, never a value: drifts go to logs and dashboards, and the bodies hold user data.
ShadowParityDrift
A route of Daravel answered differently from the upstream.
ShadowParityRunner
Replays a sample of the GET and HEAD requests Daravel answers to the upstream, and reports where the answers differ, after the client has its response: a route can move to Daravel and be watched against Laravel under real traffic.
ShouldBroadcast
An event that is broadcast when it is dispatched (Laravel's ShouldBroadcast): Event.dispatch(OrderShipped(order)) also sends it to broadcastOn's channels.
ShouldQueue
Laravel's ShouldQueue for mailables and notifications: sending one puts it on the queue instead. Override the getters to pick where.
SimplePaginator<T>
simplePaginate() result: no total, only next/previous.
SizeRule
size: see Rules.size.
SmtpTransport
Sends mail over SMTP (MAIL_MAILER=smtp), one connection per message: EHLO, STARTTLS when offered (or TLS from the start with smtps), AUTH PLAIN or LOGIN when credentials are set, then the message with its lines dot-stuffed. Every step is bounded by MailConfig.timeout.
SometimesRule
Marker: validate only when the attribute is present.
SqlBindings
Expands raw SQL bindings into a dialect's placeholders without touching string literals, comments, ::casts or PostgreSQL JSON operators (ADR-005).
SqliteDriver
SQLite driver backed by package:sqlite3 (synchronous FFI).
SqliteQueryGrammar
SQLite grammar: ? placeholders, INSERT OR IGNORE, ON CONFLICT.
SqliteReplicator
Ships an SQLite database in WAL mode to a Disk, as Litestream does (Blueprint #30): a page-exact snapshot, then the committed frames of the write-ahead log as they appear, so a restore loses at most what was committed since the last sync.
SqliteSchemaGrammar
SQLite DDL grammar.
SqliteTableRebuilder
Rebuilds a SQLite table to apply changes ALTER TABLE cannot express (the documented 12-step procedure, as Laravel/Doctrine do): create a temp table with the new definition, copy rows, drop the old table, rename, recreate indexes. Works inside the migration transaction because the old table is dropped only after the rebuilt table has taken its name.
SqliteVersion
Parsed sqlite_version().
SseEvent
One server-sent event (Laravel's StreamedEvent): event defaults to update as in Laravel's response()->eventStream(); data that is not a string or number is sent as JSON.
StartsWithRule
starts_with: see Rules.startsWith.
StatefulGuard<T extends Authenticatable>
A guard that also persists login state (session guard, T2).
StaticAssets
Every directory registered with withStatic, in order: url uses the first that has the file. Bound in the container, read by Assets.
StaticFile
One file found by a StaticFiles scan.
StaticFiles
A public directory served under a URL prefix (ApplicationBuilder .withStatic('public', prefix: '/assets')), traversal-proof by construction: the directory is scanned at boot and a request is answered by looking its path up among the files found. No part of the URL reaches the file system, so .., %2e%2e, backslashes or a symbolic link planted later can only miss the lookup.
Storage
Filesystem access (Storage::disk('public')->put(...)).
StorageConfig
FILESYSTEM_* configuration (config/filesystems.php, Laravel 11).
StorageManager
Named disks (Laravel FilesystemManager).
Str
String helpers with Laravel's Str semantics (BLUEPRINT_V2 §7.12).
StreamBody
A body streamed as it is produced.
StringCast
Reads and writes String values.
StringRule
string: see Rules.string.
StringSchema
A JSON string schema.
SubSelect
A subquery in the select list: (SELECT ...) AS alias, or EXISTS(SELECT ...) AS alias when exists. Compiled in the same pass as the outer query, so dialects with numbered placeholders stay in order.
Supervisor
Main-isolate supervisor (ADR-004): spawns N HTTP workers that bind the same port with shared: true, hosts the Coordinator for process-scope state, waits for readiness, respawns crashed workers with backoff and orchestrates a graceful drain on signals.
SyncQueue
Runs jobs inline at push time (dev/test). processor is wired by the queue manager.
TaggableCacheStore
A store whose entries can carry tags (Laravel's TaggableStore): Cache.tags(['posts']).put(...), then Cache.tags(['posts']).flush() forgets them. The memory and process stores and daravel_redis's support it; the file and database stores do not, as in Laravel.
TaggedCacheStore
A store seen through tags (TaggableCacheStore.tags): keys are namespaced by the tags, in their order, and flush forgets only what they tagged.
TagSetCacheStore
Laravel's TagSet and TaggedCache over any store: each tag has a random id (tag:<name>:key), keys live under the SHA-1 of the ids, and a flush gives the tags new ids, so what they tagged is no longer reached (and expires, or leaves the memory store's LRU).
TaskRunResult
Result of one task execution.
TerminableMiddleware
Middleware with work to do after the response has been sent to the client (Laravel's terminate()), such as flushing logs or metrics.
TextPayload
An IsolatePayload of text.
ThrottleMiddleware
throttle:60,1 (max attempts, decay minutes) or throttle:api (named limiter). Adds X-RateLimit-Limit/X-RateLimit-Remaining to responses and answers 429 with Retry-After when exceeded.
TimezoneRule
PHP's timezone_identifiers_list by the group of the name. The database here also knows old aliases such as Asia/Calcutta, which PHP's list leaves out.
TokenGuard<T extends Authenticatable>
Sanctum-style personal access token guard (BLUEPRINT_V2 §7.6.2).
TouchableCacheStore
A store that can change how long a key lives without rewriting its value (Laravel's Cache::touch), so a concurrent increment is never lost.
TransactionBeginning
A database transaction or savepoint began. depth is 1 for BEGIN.
TransactionCommitted
A database transaction committed, or a savepoint was released.
TransactionEvent
The life of a transaction, for DB.listenTransactions. depth is 1 for BEGIN and above that for a savepoint, as transactionLevel().
TransactionRolledBack
A database transaction or savepoint rolled back.
TranslationLines
The application's keyed translation lines, for the modules below translation (validation messages, paginator labels).
Translator
Translations (Laravel's Translator, __(), trans() and trans_choice()).
TrimStringsMiddleware
Trims surrounding whitespace from every string input, except the keys listed in except (Laravel's TrimStrings, which skips passwords).
TrustProxiesMiddleware
Applies X-Forwarded-* headers only when the TCP peer is a trusted proxy (BLUEPRINT_V2 §2.3, §9.1). Without this middleware, or when the peer is not trusted, forwarded headers are ignored and request.ip is the socket address, which makes IP-based rate limiting unspoofable.
TypedCoordinatorChannel
A CoordinatorChannel that also sends typed messages to a TypedCoordinatorService. LocalCoordinatorChannel and RemoteCoordinatorChannel are both. A channel that is only a CoordinatorChannel (an application's own, a test double) keeps working: the framework's stores send it the same operation as a map through call.
TypedCoordinatorService<M extends Object>
A CoordinatorService that also answers typed messages of type M (ADR-031): one small immutable object per call instead of a map whose entries the VM copies, used on the hottest paths (rate limits, locks). CoordinatorService.handle keeps answering the same operations as maps, for channels that are not a TypedCoordinatorChannel.
UlidRule
ulid: see Rules.ulid.
UnionClause
UNION entry.
UnionSchema
A value of any of several JSON types.
UniqueRule
unique:table,column,ignore,idColumn — queries the active connection (joining any Zone transaction).
UploadedFile
A file sent in a multipart/form-data request (Laravel's Illuminate\Http\UploadedFile).
UploadedFileFactory
UploadedFile.fake helpers.
UppercaseRule
uppercase: see Rules.uppercase.
UpstreamProxy
Forwards requests Daravel has no route for to another server, usually the Laravel application being migrated (the strangler fig pattern, Blueprint #29): migrated routes answer from Daravel, the rest from Laravel, behind one address, on one database.
UrlRule
url: see Rules.url.
UrlSigner
Signs and verifies URLs with HMAC-SHA256 (Laravel URL::signedRoute).
UserProvider<T extends Authenticatable>
Loads users for guards (Laravel UserProvider).
UuidRule
uuid: see Rules.uuid.
ValidateSignatureMiddleware
Rejects requests whose URL signature is missing, invalid or expired (signed middleware alias; Laravel ValidateSignature).
ValidationContext
Everything a Rule needs to evaluate one attribute (BLUEPRINT_V2 §7.4.1).
ValidationMessages
Default validation messages (Laravel lang/en/validation.php parity) with an Indonesian translation as the second bundled locale.
Validator
Validates a map of input against rules (BLUEPRINT_V2 §7.4).
VectorCast
A list of doubles stored as a vector (pgvector, MariaDB VECTOR), or as JSON text on SQLite.
WakeableQueueDriver
A driver that wakes an idle worker as soon as a job is pushed, instead of the worker sleeping --sleep between empty polls.
WalFrame
One frame: a page image and, for the last frame of a transaction, the size of the database after it commits.
WalHeader
The 32-byte header of an SQLite write-ahead log (https://www.sqlite.org/fileformat2.html#walformat).
WalRead
The committed frames read from a log, and where reading stopped.
WebResourceController
Adds the HTML form actions used by Router.resource (create, edit).
WhereClause
Where clauses (sealed so grammars can be exhaustive).
WindowCounterStore
A store that counts fixed-window hits in one atomic step, for rate limits over the network (CACHE_LIMITER=database): one round trip per attempt instead of a read-modify-write sequence.
WithoutOverlapping
Prevents concurrent runs sharing key by holding a cache lock. When the lock is taken the job is released after releaseAfter (or deleted when dontRelease is true).
WorkerAwareService
A CoordinatorService holding state on behalf of worker isolates (presence members, broadcast ports): told when a worker is gone, so what it registered does not outlive it. Workers name themselves with Isolate.current.debugName (daravel-worker-N under a supervisor).
WorkerDrained
Sent by a worker after draining.
WorkerFailed
Sent by a worker that failed to boot or bind.
WorkerOptions
queue:work options.
WorkerReady
Sent by a worker once its server is bound.
WorkerReports
A worker's side of WorkerReportService.
WorkerReportService
The latest report of every worker isolate, by topic: a worker publishes what it measured on its own (WorkerReports.publish) and any worker collects all of them, so a page served by one worker can show the whole process. Reports must be sendable (maps, lists, strings, numbers, booleans). The worker sends a report JSON can hold as JSON text, which the VM shares between isolates instead of deep-copying it (ADR-031); the coordinator keeps that text as is and the collecting worker decodes it.

Enums

ColumnType
Column types supported by the schema builder.
ConfigIssueLevel
Severity of a ConfigIssue.
EmbeddedRole
What an embedded isolate runs next to the HTTP server.
EncryptionCipher
Symmetric ciphers supported by Encrypter.
ForwardedHeader
Forwarded headers that a trusted proxy may supply.
HashDriver
Password hashing drivers (ADR-008). Every driver produces a self-describing string so that HashManager.check can detect the driver from its prefix.
JobOutcome
Outcome of one processing attempt.
JoinType
Join types.
JwtAlgorithm
Signing algorithms (BLUEPRINT_V2 §7.6.2): HMAC-SHA256 and Ed25519.
KeyType
Primary key strategies.
Lifetime
Lifetime of a binding registered through a factory.
LockMode
Row-lock modes.
LogLevel
RFC 5424 levels (ordered by severity).
ModelEvent
Lifecycle events a model fires (Laravel parity).
PostgresSslMode
SSL modes exposed without leaking the postgres package type.
RateLimitAlgorithm
How a Limit counts attempts.
ResponseShape
How a route returns its item schema (see RouteEntry.returns).
ShadowCompare
What a shadow replay compares.
SqlDialect
SQL dialects known to the framework.
StateScope
Where a piece of state lives (ADR-003).

Mixins

AuthenticatableModel
Default Authenticatable implementation for models:

Extension Types

ValidatedData
Validated input with typed accessors (ADR-011). Only attributes that had rules are included (Laravel $request->validated() parity).

Extensions

DaravelDateTime on DateTime
Carbon-style helpers, relative to Clock.now (so freezeTime() and travel() apply).
DaravelDuration on Duration
15.minutes.fromNow, 7.days.ago, on the testable Clock.
DaravelDurationInt on int
10.minutes, 7.days for Cache.remember, token expiry, travel().
DaravelIterable on Iterable<T>
Laravel-collection style helpers on any Iterable (BLUEPRINT_V2 §7.12). They complement package:collection rather than replace it, and work directly on lists, sets, query results and model collections:
DaravelNullableString on String?
Blank checks on possibly-null strings (blank() / filled()).
DaravelNumber on num
5242880.toFileSize(), 1500.abbreviate().
DaravelOrdinal on int
22.ordinal() → 22nd.
DaravelString on String
Str as methods on the string (Laravel's Str::of() chain): rawTitle.after(':').squish().slug(). Members that String already has (contains, startsWith, padLeft, …) keep their Dart meaning; use Str for Laravel's versions of those.
DiskResponses on Disk
Laravel's Storage::download() and Storage::response(). These live on the http side because storage depends on nothing but foundation.
NotifiableModel on Model
user.notify(...) (Laravel's Notifiable trait) for every model.
RequestAuth on Request
Auth helpers on the request ($request->user(), bearerToken()).
RuleChain on Rule
Starts a RuleBuilder from any rule: Rules.required().email().
SchemaTypeFluent on S
The setters every node shares. An extension, so each returns its own type.

Constants

daravelFaviconDataUri → const String
The Daravel favicon (32 px PNG) as a data URI.
daravelLogoDataUri → const String
The Daravel icon (128 px PNG) as a data URI, for welcome pages: embedded so an AOT binary serves it without static files. Unused constants are tree-shaken from builds.
daravelVersion → const String
The Daravel release (kept equal to every workspace pubspec.yaml version by test/foundation/version_test.dart).
defaultBuckets → const List<double>
Default histogram buckets in seconds (Prometheus client defaults).
laravelImplicitRules → const Set<String>
Laravel's Validator::$implicitRules (laravel/framework 8 to 13, the same list), by rule name: a failure of one of these ends the validation of its attribute. prohibited is not one of them.
missing → const MissingValue
The single MissingValue instance.
reasonPhrases → const Map<int, String>
Standard reason phrases used when aborting without a custom message.
strongDrivers → const Set<HashDriver>
Drivers whose hashes HashManager.check accepts across a driver switch even with verify enabled (ADR-024).

Functions

abort(int status, [String? message, Map<String, String> headers = const <String, String>{}]) → Never
Throws an HttpException with status (Laravel's abort() helper).
abortIf(bool condition, int status, [String? message, Map<String, String> headers = const <String, String>{}]) → void
Aborts with status when condition is true (abort_if()).
abortUnless(bool condition, int status, [String? message, Map<String, String> headers = const <String, String>{}]) → void
Aborts with status unless condition is true (abort_unless()).
applyWalFrames(String path, Iterable<WalFrame> frames, int pageSize) → void
Writes frames into the database file at path, in order: each page at its place, and the file cut to the commit's size after each commit frame. This is what a checkpoint does. Applying frames a snapshot already contains is harmless: the last image of each page and the last commit's size win.
asset(String path) → String
Laravel's asset(): the versioned URL of a file served by withStatic (asset('neo.css') → /assets/neo.css?v=1a2b3c4d5e6f).
bearerTokenOf(Request request) → String?
Extracts the Authorization: Bearer <token> value, if any.
blank(Object? value) → bool
Whether value is "blank": null, a whitespace-only string, or an empty collection or map (blank()). Numbers and false are not blank.
buildInput(Iterable<(String, Object)> pairs, {int maxDepth = 32}) → Map<String, Object?>
Nests name[key][]-style pairs into maps and lists, as PHP fills $_GET, $_POST and $_FILES (used for query strings, form bodies and multipart fields and files).
buildOpenApi(Iterable<RouteEntry> routes, {String title = 'Daravel API', String version = '1.0.0', String? serverUrl}) → Map<String, Object?>
Builds an OpenAPI 3.1 document from the compiled route table (dartisan openapi:generate, the live /docs/api page).
castName(Cast cast) → String
The cast's name in Laravel's vocabulary (integer, datetime, ...).
constantTimeBytesEquals(List<int> x, List<int> y) → bool
Byte-wise constant-time comparison.
constantTimeEquals(String a, String b) → bool
Compares two strings without leaking their common-prefix length through timing (BLUEPRINT_V2 §7.6.5).
contentDisposition(String name, {bool inline = false}) → String
Content-Disposition by RFC 6266: an ASCII filename for old clients and filename* (RFC 5987) when the name is not plain ASCII. A name with a path or a control character is a programming error, as in Symfony's HeaderUtils::makeDisposition.
crc32b(List<int> bytes) → String
PHP hash('crc32b', $data): CRC-32 (IEEE 802.3, as zlib) as 8 lowercase hex digits. Sanctum appends it to token secrets so leaked tokens can be recognised by secret scanners.
createStandardCoordinator({int processCacheMaxEntries = 10000}) → Coordinator
Builds the standard coordinator: rate limiting, process cache, merged metrics (with the coordinator's own counters), broadcast fan-out, channel membership and worker reports.
currentLaravelCompat() → int
The COMPAT_LARAVEL_VERSION of the active application, or AppConfig.defaultLaravelCompat outside one (a unit test of a validator, a script).
currentLocale() → String
The locale of the current request, job or command: the one set with setCurrentLocale in this scope, else the application's (APP_LOCALE). Translations and validation messages follow it.
dataGet(Object? target, String path, [Object? fallback]) → Object?
Reads path (dot notation, * not supported) from nested maps, lists and models, or returns fallback (data_get()).
decodeSegment(List<int> compressed) → (int, List<WalFrame>)
The page size and frames of a segment written by encodeSegment.
defaultBroadcastServerId() → String
This server's name among the others when BroadcastConfig.serverId is not set: the host and the process, which every worker isolate shares.
describeModel(ModelDefinition<Model> definition) → Map<String, Object?>
definition as JSON-friendly data, in the spirit of artisan model:show --json (database columns are added by the caller that can query them).
describeRelation(Relation<Model> relation) → Map<String, Object?>
One relation: its name, type, related model and keys.
detectMimeType(List<int> header) → String
Detects a MIME type from the first bytes of a file, never from its name: package:mime signatures plus BMP, SVG, ZIP-based documents (Office Open XML, OpenDocument) and plain text.
encodeHeaderWord(String value) → String
value as RFC 2047 encoded words (=?utf-8?B?...?=), each at most 75 characters and split between characters, never inside one.
encodeQuotedPrintable(String text) → String
RFC 2045 quoted-printable of text as UTF-8, CRLF line endings, lines at most 76 characters (soft breaks end with =).
encodeSegment(List<WalFrame> frames, int pageSize) → Uint8List
Encodes frames as a segment: DRVWAL01, page size, frame count, then per frame its page number, commit size and page.
env(String key, [String? fallback]) → String?
Reads an environment variable from the active application.
equalizeLoginTiming(Map<String, Object?> credentials) → Future<void>
When no user matched credentials, hashes their password against a dummy hash so failed logins for unknown and known accounts take the same time (user enumeration mitigation, BLUEPRINT_V2 §9.2 item 9).
escapeHtml(String value) → String
value with & < > " ' escaped, for HTML text and attribute values: Laravel's e() (htmlspecialchars with ENT_QUOTES), so ' becomes &#039;.
extensionForMimeType(String mimeType) → String?
The usual extension for mimeType (Symfony's guessExtension).
filled(Object? value) → bool
!blank(value) (filled()).
formatDate(DateTime value) → String
yyyy-MM-dd.
formatDateTime(DateTime value) → String
yyyy-MM-dd HH:mm:ss in UTC (Laravel's default date format).
formatMailDate(DateTime date) → String
RFC 5322 date: Mon, 26 Oct 2026 08:00:00 +0000.
formatPhpDate(DateTime value, String format) → String
Formats value, converted to UTC, with a PHP date() format: Y-m-d H:i:s, D, d M Y, c, U, ... Every PHP token is supported, \ escapes the next character and any other character is copied. Zone tokens (e, T, O, P, p, Z, I) describe UTC.
inject<T extends Object>({String? name}) → T
Resolves T from the active container (Laravel's resolve()), with T inferred from where the value goes, so a default stays mockable:
isEmptyValue(Object? value) → bool
Whether value counts as empty for required (Laravel semantics).
isolateSizingAdvice({required bool production, required int isolates, int? processors}) → String?
Why a production server with one HTTP isolate on a machine with several cores may be undersized, or null when it is not the case: one isolate runs one CPU-bound request at a time, so heavy endpoints stop scaling with concurrency. serve logs it and dartisan doctor reports it.
isWebSocketUpgrade(Request request) → bool
Whether request asks to switch to the WebSocket protocol.
jsonArrayBytes(Stream<Object?> items, {bool phpCompatible = false, String? wrap, int flushBytes = 64 * 1024}) → Stream<List<int>>
The bytes of a JSON array of items, written as the items arrive: [ and ] around them, a comma between, each item encoded with Response.encodeJson (or Response.encodePhpJson with phpCompatible) as soon as it is produced, so a response never holds every row at once. With wrap, the array is the value of that key in an object: {"data":[...]}, as Laravel's response()->streamJson() writes.
jsonDate(DateTime time) → String
Serializes time the way Laravel serializes dates to JSON (Carbon::toJSON()): UTC ISO-8601 with microseconds, 2026-01-02T03:04:05.000000Z; a DatabaseDateTime as its text.
jsonTypeOf(Object? value) → String
The JSON type of a decoded value. int and double stay apart, like {} and []: a client can tell them, and PHP's empty array is the classic drift.
laravelErrorResponse(Map<String, Object?> body, {required int status, Map<String, String> headers = const <String, String>{}}) → Response
Laravel's Handler::prepareJsonResponse body: the error as JSON with JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES (four-space indent, / kept, non-ASCII as `` escapes), as Laravel 8 to 13 send every error but 401 Unauthenticated. and 422 validation errors.
listReplicaGenerations(Disk disk, String prefix) → Future<List<String>>
The generations of the replica under prefix, oldest first.
looksPhpSerialized(String data) → bool
Whether data starts like a serialize() payload, so a reader can tell it from JSON without parsing.
mailAddressOf(Model model) → MailAddress
The address of model: its email attribute, named by name.
mailButton(String label, String url, {String color = 'primary'}) → String
Laravel's <x-mail::button>, with label and url escaped, for markdown mail: color is primary, success or error.
mailPanel(String markdown) → String
Laravel's <x-mail::panel> around markdown.
markdownToText(String markdown) → String
A plain-text version of themed markdown: links and buttons as text: url, tags removed.
maybeInject<T extends Object>({String? name}) → T?
inject, or null when nothing is bound for T.
mimeTypeOf(String name) → String
The Content-Type of a file called name, by its extension.
modelClassName(ModelDefinition<Model> definition) → String
The Dart class name of the models definition creates.
multipartBoundary(String? contentType) → String?
The boundary of a multipart/form-data content type, or null.
normalizeDiskPath(String path) → String
Normalises a disk-relative path, rejecting traversal and absolute paths.
now() → DateTime
Global helpers with Laravel's semantics (BLUEPRINT_V2 §7.12). abort, abortIf and abortUnless live with the HTTP exceptions; env with the facades. Laravel's app() is App.make<T>() (a top-level app would be shadowed by the idiomatic app variable). The current time from Clock (frozen by freezeTime() in tests).
once<T>(Object key, T callback()) → T
Memoizes callback by key for the current scope (request, job, command): the first call runs it, later calls in the same scope return the stored result (once()). Outside a scope it just runs callback.
parseDate(Object? value) → DateTime?
Parses ISO-8601 dates/datetimes and yyyy-MM-dd.
parseDateTime(Object? raw) → DateTime?
Parses ISO-8601, yyyy-MM-dd HH:mm:ss and epoch values as UTC.
parseDbDateTime(Object? value) → DateTime?
Parses a timestamp column value (driver-specific: DateTime, ISO string or epoch milliseconds). Text without a zone, such as MySQL's Y-m-d H:i:s, is UTC, the zone the framework writes in, whatever the zone of the process.
parseQueryString(String query, {int maxDepth = 32}) → Map<String, Object?>
Parses a query string (or form body) the way PHP's parse_str fills Laravel's input: a[]=1&a[]=2 is a list, f[status]=x a map, keys nest up to maxDepth levels, and a repeated plain key keeps its last value. Maps whose keys are exactly 0..n-1 become lists, as in Laravel's JSON.
phpDateMatchesFormat(String value, String format) → bool
Laravel's date_format check (ValidatesAttributes::validateDateFormat, laravel/framework v8.83.27 to v13.38.0): value passes when PHP's DateTime::createFromFormat('!' . $format, $value, UTC) reads it and formatting the result with format gives value back exactly, so 2026-02-30 fails Y-m-d (it overflows to March) and 2026-1-5 fails Y-m-d but passes Y-n-j.
phpJsonDouble(double value) → String
Writes the bytes of PHP's json_encode() for a Dart value in one pass: the same output as jsonEncode followed by phpJsonFromDart, without the intermediate string and its rewrite (on a 1 MB response the rewrite cost more than the encoding itself).
phpJsonEncode(Object? value) → String
PHP json_encode() with default flags: like jsonEncode, but / is escaped as \/ and non-ASCII characters as \uXXXX (UTF-16 units).
phpJsonFromDart(String json, {bool emptyMapsAsArrays = false, bool escapeSlashes = true}) → String
Rewrites json (the output of dart:convert's encoder) into the bytes PHP's json_encode() writes with default flags: / becomes \/ and every non-ASCII UTF-16 unit \uxxxx (lower-case hex, surrogate pairs as two escapes). Control characters and quotes are already escaped the same way by both.
phpRawUrlEncode(String value) → String
PHP's rawurlencode: every byte of the UTF-8 encoding except A-Z a-z 0-9 - _ . ~ becomes %XX (upper case).
phpSerialize(Object? value) → String
PHP serialize() of value: null, bool, int, double, String, List (an array with keys 0..n-1), Map (an array; a key that is a canonical decimal integer becomes an integer key, as PHP does) and PhpObject. Strings count UTF-8 bytes. Anything else throws ArgumentError.
phpUnserialize(String data) → Object?
PHP unserialize() of data: arrays whose keys are exactly 0..n-1 in order become a List, other arrays a Map<String, Object?> (integer keys as decimal strings), objects a PhpObject. References (r:, R:) and Serializable payloads (C:) throw FormatException, as does any malformed input.
readWalFrames(Uint8List bytes, WalHeader header, {required int offset, required int checksum1, required int checksum2}) → WalRead
Reads the frames of the log in bytes that belong to header, from offset with the running checksum (checksum1, checksum2) of the frame before it (the header's for the first frame). Frames are trusted only while their salts match and their cumulative checksum holds, exactly as SQLite decides which frames a reader may use; only frames up to the last commit are returned.
rescue<T>(FutureOr<T> callback(), {T? fallback, bool report = true}) → Future<T?>
Runs callback, returning fallback when it throws (rescue()). The error is logged unless report is false.
restoreReplica(Disk disk, String prefix, String target, {String? generation, DateTime? at, bool overwrite = false}) → Future<ReplicaRestore>
Restores the replica under prefix to target: the snapshot of the newest generation (or generation), then its segments in order, up to at when given (point in time; the generation is then the newest one whose snapshot is not after it). Refuses to overwrite a file unless overwrite. Checks the result with PRAGMA integrity_check.
retry<T>(int times, FutureOr<T> callback(int attempt), {Duration delay = Duration.zero, Duration backoff(int attempt)?, bool when(Object error)?}) → Future<T>
Runs callback up to times times until it succeeds (retry()).
rfc3986Query(Map<String, String> parameters) → String
PHP http_build_query(..., PHP_QUERY_RFC3986) for flat parameters (Laravel Arr::query): rawurlencode keys and values joined by &.
rulesToJsonSchema(Map<String, Object> rules) → Map<String, Object?>
Converts validation rules (the map given to request.validate or a FormRequest) into a JSON Schema object (OpenAPI 3.1 dialect), so API documents and generated clients describe exactly what the server validates:
secureRandomString(int length) → String
Cryptographically random token of length URL-safe alphanumeric chars (Laravel Str::random).
selfArguments([List<String> extra = const <String>[]]) → List<String>
The arguments that start this same program again: for an AOT binary none beyond extra; under dart, the VM flags and the script.
setApplicationLocale(String locale) → void
Sets the application locale (APP_LOCALE, at boot).
setCurrentLocale(String locale) → void
Sets the locale of the current scope (Laravel's App::setLocale), so concurrent requests never see each other's; outside any scope, the application's.
singularize(String word) → String
Minimal English singularization used for resource parameter names (posts → post, categories → category, people → people).
sizeOf(Object? value, {bool numeric = false}) → num?
Size of a value Laravel-style: numbers by value, strings by rune count, collections by length. null for unsupported types. Uploaded files by size in kilobytes, as Laravel measures them.
sseStream(Stream<Object?> events, {Object? endStreamWith = '</stream>', Duration? heartbeat = const Duration(seconds: 15)}) → Stream<List<int>>
The body of Response.sse: events (each an SseEvent or a value sent as an update event), a heartbeat comment every heartbeat while idle, then endStreamWith (Laravel's </stream>, null for none). Ends early when the application starts draining; cancelling (the client went away) cancels events.
tap<T>(T value, void callback(T value)) → T
Calls callback with value and returns value (tap()).
titleFromClass(String className) → String
InvoicePaid → Invoice Paid (Laravel's default notification subject).
today() → DateTime
Today at midnight, local time (Clock aware).
trans(String key, [Map<String, Object?> replace = const {}, String? locale]) → String
Laravel's __() and trans() (a leading underscore makes a Dart name private, so there is no __): the line for key in the current locale with replace applied, or key itself.
transChoice(String key, num count, [Map<String, Object?> replace = const {}, String? locale]) → String
Laravel's trans_choice(): the plural form of key for count.
translationLine(String key, {String? locale, bool fallback = true}) → String?
TranslationLines.line of the active application; null outside one.
urlWindow(int current, int last, [int onEachSide = 3]) → List<int?>
Laravel's UrlWindow: all pages when there are fewer than onEachSide * 2 + 8, otherwise the first/last two pages and a slider around current. null stands for a ... separator.
value<T>(T callback()) → T
Runs callback and returns its result (value()), handy for expressions that need statements.
walChecksum(Uint8List bytes, int start, int end, bool bigEndian, int s1, int s2) → (int, int)
SQLite's WAL checksum over bytes[start..end) (a multiple of 8), continuing from (s1, s2): for each pair of 32-bit words x0, x1, s1 += x0 + s2; s2 += x1 + s1, modulo 2^32.
watchSupervisorParent(Map<String, String> environment, Future<void> onParentGone()) → void
In a child of ProcessSupervisor (DARAVEL_PROCESS_WATCH_PARENT=stdin), calls onParentGone once the parent's end of stdin closes: the parent stopped, crashed or was killed. Does nothing in any other process.

Typedefs

AccessorFn<T extends Model> = Object? Function(T model)
Computed attribute: accessors: {'full_name': (u) => '${u.first} ${u.last}'}.
AfterCommitHook = Future<void> Function(FutureOr<void> ())
Defers work until the active transaction commits (DatabaseManager.afterCommit).
ApplicationFactory = Application Function()
Creates an unbooted Application. Must be a top-level function (or a closure capturing nothing) so it can be sent to worker isolates.
BroadcastScaling = ({BroadcastRelay relay, ChannelState state})
The channel state and relay of a scaling driver.
ChannelAuthorizer = FutureOr<Object?> Function(Authenticatable user, Map<String, String> parameters)
Decides whether user may join a channel matched by a pattern; parameters are its {placeholders}. Return false (or null) to refuse, true to admit to a private channel, or the user's public details (a map) to admit to a presence channel.
ConfigCheck = Iterable<ConfigIssue> Function(Env env, ConfigRepository config)
A reusable configuration check.
DatabaseDriverFactory = DatabaseDriver Function(String name, ConnectionConfig connection)
Manages named connections, Zone-aware transactions with savepoints and raw SQL binding expansion (BLUEPRINT_V2 §5.6, ADR-005).
EnvDecrypter = Future<String> Function(String contents, String key)
Decrypts the contents of an encrypted environment file with key (EnvironmentEncrypter.decrypt in the application).
EventListener<E extends Object> = FutureOr<void> Function(E event)
Handles an event of type E.
ExceptionRenderer<T extends Object> = FutureOr<Response?> Function(T exception, Request request)
Renders an exception of type T into a Response, or returns null to fall through to the next renderer. It may be asynchronous: write an audit row, read a translation, encrypt the body.
ExceptionReporter<T extends Object> = FutureOr<void> Function(T exception, StackTrace stackTrace, Request request)
Reports (logs, forwards) an exception of type T.
Factory<T extends Object> = T Function(Container container)
Builds an instance of T using the Container.
FactoryDefinition = Map<String, Object?> Function(Faker faker)
Produces default attributes for a model (definition() in Laravel).
FactoryState = Map<String, Object?> Function(Faker faker)
A state transformation (state()): receives the faker, returns overrides.
FeatureResolver = FutureOr<Object?> Function(Object? scope)
Resolves a feature's value for a scope (null for "no scope"). false means inactive; any other value (true, a variant name) is active.
GateAfterHook = FutureOr<Object?> Function(Authenticatable? user, String ability, AuthResponse result, List<Object?> args)
after hook: may override the result by returning non-null.
GateBeforeHook = FutureOr<Object?> Function(Authenticatable? user, String ability, List<Object?> args)
before hook: a non-null result short-circuits the check.
GateCallback = FutureOr<Object?> Function(Authenticatable? user, List<Object?> args)
Ability callback: returns bool, AuthResponse or null (= no opinion in before/after hooks, deny in abilities).
GlobalScopeFn<T extends Model> = void Function(ModelQuery<T> query)
Global scope applied to every query unless withoutGlobalScopes().
Handler = FutureOr<Object?> Function(Request request)
A route handler. May return a Response, a Responsable, a JSON-able value (Map, List, num, bool, JsonSerializable), a String (text) or null (empty 200).
InputTransformer = Object? Function(String key, Object? value)
Rewrites an input value; used by TrimStrings and ConvertEmptyStringsToNull style middleware.
JobNext = Future<void> Function()
Continues the job middleware chain.
LimitResolver = FutureOr<Object?> Function(Request request)
Resolves the limit(s) for a request: a Limit, a List<Limit> or null (no limit).
MatchPredicate<T extends Object> = bool Function(T value, Map<String, String> params)
Decides whether value accepts the captured params (route constraints).
MiddlewareFactory = Middleware Function(List<String> params)
Builds a middleware from alias parameters ('throttle:60,1' → [60, 1]).
Models<T extends Model> = ModelCollection<T>
Convenience alias used by generated code.
MorphConstraint = void Function(ModelQuery<Model> query, ModelDefinition<Model> type)
Constraint for whereHasMorph, called once per target type.
MutatorFn<T extends Model> = Object? Function(T model, Object? value)
Attribute mutator: mutators: {'email': (u, v) => '$v'.toLowerCase()}.
Next = Future<Response> Function(Request request)
Continues the pipeline with request and yields the downstream response.
QueryConstraint = Object? Function(QueryBuilder query)
A condition added to the query of UniqueRule or ExistsRule: Rules.unique('users').where((q) => q.where('active', true)).
QueuePusher = Future<Object?> Function(Job job)
Pushes a job onto the queue (QueueManager.push).
Raw = RawExpression
Raw helper re-exported for relation subqueries.
RelationConstraint = void Function(ModelQuery<Model> query)
Constraint applied to a relation query (with({'posts': (q) => ...})).
RelationFactory = Relation<Model> Function()
Lazily builds a relation (lazy so definitions may reference each other).
RouteBinder = FutureOr<Object?> Function(String value, Request request)
Resolves a route parameter value into a bound object (null → 404 when Router.bind was registered with orFail).
ScheduleCommandRunner = Future<int> Function(String command, List<String> args)
Runs a console command by name (wired by the CLI runner).
ScopeFn<T extends Model> = void Function(ModelQuery<T> query, List<Object?> args)
Local scope: scopes: {'published': (q, args) => q.where('published', true)}.
ThrottleResponseBuilder = Response Function(Request request, Map<String, String> headers)
Builds the 429 response for a limit (Limit.response).
WebSocketHandler = FutureOr<void> Function(WebSocket socket, Request request)
Handles an upgraded connection (router.ws).

Exceptions / Errors

AuthenticationException
401 — no authenticated user for the attempted guards.
AuthorizationException
403 — the user may not perform the ability (Gate.authorize).
BadRequestHttpException
A 400 Bad Request.
BindingResolutionException
Thrown when Container.make cannot find a binding for the requested type.
CircularDependencyException
Thrown when two factories depend on each other, directly or indirectly.
ConfigException
Raised for missing configuration keys/sections or type mismatches.
ConnectionException
The server could not be reached, or did not answer in time.
CoordinatorException
Raised when the coordinator rejects or cannot process a request.
CoordinatorTimeoutException
Raised when the coordinator does not answer within the timeout.
CorruptPayloadException
A reserved job handed to the worker. A claimed row whose payload is Daravel-shaped but does not decode. The driver has removed the row; raw is what it held, for failed_jobs.
CronFormatException
Raised for malformed cron expressions.
DaravelException
Base class for every exception raised by the framework itself.
DaravelQueryException
Base for query-layer exceptions.
DecryptException
Raised when a payload is malformed, was tampered with or was encrypted with an unknown key.
EncryptException
Raised for invalid keys.
EnvException
Raised for malformed .env files or missing/invalid environment values.
ForbiddenHttpException
A 403: the user may not do this.
HashException
Raised for driver mismatches and malformed hashes.
HttpException
An exception that maps directly to an HTTP response (ADR-009).
JwtException
Raised for malformed, expired, not-yet-valid or badly signed tokens.
LockTimeoutException
Raised by Lock.block when the lock cannot be obtained in time.
MassAssignmentException
Thrown when mass assigning a guarded attribute while Model.preventSilentlyDiscardingAttributes is enabled.
MethodNotAllowedHttpException
A 405: the route exists, but not for this method.
ModelNotFoundException
Thrown by findOrFail() and friends.
MultipleRecordsFoundException
Thrown by sole() when more than one row matches.
NotFoundHttpException
A 404 Not Found.
PayloadTooLargeHttpException
A 413: the body is larger than allowed.
QueryException
A query the database refused (Laravel's QueryException): the driver's error (previous) with the connection and the SQL.
RecordNotFound
Base for "not found" model errors (kept separate from HTTP so it can be mapped by the exception handler).
RecordNotFoundException
Thrown by firstOrFail() / sole().
ReplicationException
Thrown when a database cannot be replicated or restored.
RequestException
A 4xx or 5xx response, thrown by ClientResponse.throwIfFailed.
ScopeDisposeException
Raised by Scope.dispose when one or more dispose callbacks failed.
ScopeRequiredException
Thrown when a scoped binding is resolved outside of an active Scope.
ServiceUnavailableHttpException
A 503: the application cannot serve the request now.
SmtpException
An SMTP reply the transport did not expect.
StorageException
Raised for paths escaping the disk root or missing files.
StrayRequestException
A request that matched no stub while stray requests are prevented.
ThrottleRequestsException
429 with Retry-After and X-RateLimit-* headers.
TransactionTimeoutException
A transaction (or savepoint) still running when its timeout passed (DatabaseManager.transaction): it was rolled back, and later queries of its body throw this too.
UnauthorizedHttpException
A 401: the request is not authenticated.
UniqueConstraintViolationException
A row a unique index or primary key refused (Laravel's UniqueConstraintViolationException): two requests registering the same email at once, say. As in Laravel it is a server error unless caught; createOrFirst and firstOrCreate catch it for you.
UnknownJobException
Thrown when a payload names a job that is not registered.
ValidationException
Thrown when validation fails; rendered as a Laravel-compatible 422: {"message": "...", "errors": {"field": ["..."]}}.