Plugins
Plugins add named validators, transformers, and derived functions to JSON templates. Built-ins are always available, including with plugins: []. Each namespace has its own reference page below.
Plugin guide
Shared rules and custom registration live in the plugin guide:
- Validators and transformers
- Conditional validation
- Execution order and array scopes
- Derived functions
- Plugin configuration
- Writing a custom plugin
- Errors and TypeScript
- Migrating from flat plugin names
Namespace reference
| Namespace | Scope | Availability |
|---|---|---|
| array | Array-specific operations | Reserved; no operations yet |
| boolean | Boolean operations | Reserved; no operations yet |
| collection | General collection operations | Available |
| core | General operations across types | Available |
| date | Dates, datetimes, and intervals | Available |
| Email addresses and domains | Available | |
| encoding | Encoding and decoding | Reserved; no operations yet |
| id | Identifiers such as UUIDs | Reserved; no operations yet |
| iso | ISO country, currency, and language codes | Reserved; no operations yet |
| json | JSON text | Reserved; no operations yet |
| network | IP addresses and network identifiers | Reserved; no operations yet |
| number | Numeric operations | Reserved; no operations yet |
| phone | Phone numbers | Reserved; no operations yet |
| style | Named casing and word styles | Available |
| text | Trimming and whitespace normalization | Available |
| time | Times of day and durations | Reserved; no operations yet |
| url | URLs and TLDs | Reserved; no operations yet |
Reserved namespaces
All 17 namespaces listed above are reserved. Custom plugins using any of these names raise RESERVED_PLUGIN_NAME, even when empty. A reserved namespace does not necessarily have implemented operations; availability is listed in the table above. Adding a reserved namespace in the future is a compatibility change for custom plugins using that name.
Built-in operations
Browse the namespace reference for operation signatures, validation rules, and examples. Built-ins cannot be overridden. Operation names require their namespace, such as ! email.email, > text.trim, or = date.interval(start,end).
Derived functions
Functions read evaluated template properties with bare paths, or original render inputs with $.name, and produce a typed result. See the function guide for custom signatures and execution order, or date intervals for a complete example.
Output omission
Use terminal > core.omit to remove a property or array entry after evaluation. See the core namespace for restrictions, fallback behavior, and examples.