Repository navigation
rune v0.1.9
rune 0.1.9
rune: 0.1.9
016649d
Describe mobile() as it actually behaves
The doc-comments claimed rune carries no per-locale numbering plans and that
mobile() takes no locale. It carries 41 and has taken a locale since; an
unknown one raises UNSUPPORTED_LOCALE naming the ones it knows.
648a267
rune: fail loud without the Rust engine, plus the missing VineJS surface
- assertNativeAvailable() throws RuneNativeRequiredError on the path a schema
WOULD have run natively. A one-time warning used to let the TypeScript
validator take over, so the same code could reach different verdicts on two
machines — the code said so itself: "validation is platform-dependent". The
TypeScript path stays only for what the engine cannot do (custom rules, a
translator, a messages provider), where it is the only implementation - union().otherwise(cb): the name existed but aliased the
elseBRANCH FACTORY,
so the documented union([...]).otherwise(cb) was "not a function" - record().validateKeys(cb), enum(cb) computed per validation, and getChoices()
- RuleDef.validate receives the field context, built lazily. That also fixed
in()/notIn(), whose callback form took NO argument where VineJS passes the
field — a migrated in((field) => ...) read undefined - email({ allow_display_name }) parsed the display name with a pattern where
\s* and [^<>@]*? could both claim a space, so N spaces had N splits and the
engine tried them all: measured cubic, 8 KB of spaces blocking the event loop
for 67 seconds. Replaced by a linear walk, with the length bound applied to
the RAW input before any parsing
b59922d
Changes since v0.1.8.