New:Socket for Asana Is Now Available.Learn more
Get Started

@ultimat3/schema

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ultimat3/schema - npm Package Compare versions

Comparing version
17.0.0
to
18.0.0
+16
-6
CLAUDE.md

@@ -53,6 +53,8 @@ # @ultimat3/schema — agent notes

`SCHEMA_ERROR_CODES` in `errors.ts` is data, not a `registerErrorCodes()` call — this package is
tier 0 and cannot import `@ultimat3/core` to reach it. `@ultimat3/core`'s `schema-error-codes.ts`
carries a duplicate of these titles and registers them unconditionally, so every process gets the
real titles just by importing core. Add a code here **and** update that duplicate in the same
change — `schema-error-codes-pin.test.ts` in `@ultimat3/cli` fails the build if they disagree.
tier 0 and cannot import `@ultimat3/core` to reach it, and never will. `@ultimat3/core`'s
`schema-error-codes.ts` READS this object over the declared `core -> schema` edge and registers it
unconditionally, so every process gets the real titles just by importing core. **Adding a code here
is the whole edit `As of 2026-08-27`** — the title and its `terminal` retry classification are both
derived from this set, where they used to be a hand-kept duplicate in core plus a hand-written
retry list a fifth code would have been silently missing from.

@@ -64,5 +66,13 @@ `ERROR_DOCS_URL` in `errors.ts` is the third deliberate tier-0 duplicate, beside `singleLine` and

`https://ultimate.dev/errors/<code>` was a 404 on every error and was deleted `As of 2026-08-23`. Change it
here and in `packages/core/src/error-codes.ts` in the same edit. **There is no pin test yet** —
one belongs in `@ultimat3/cli` beside `single-line-pin.test.ts`, which may legally import both.
here and in `packages/core/src/error-codes.ts` in the same edit. **It is pinned `As of 2026-08-27`**
— `packages/core/src/single-line-pin.test.ts` asserts a `SchemaError`'s `docs` equals an
`UltimateError`'s, which was the one copy with no mechanical check at all and the one that decides
where every schema refusal sends its reader.
**These three are the whole of the duplication that remains, and the edge does not reach them.**
`core -> schema` was declared 2026-08-27 and collapsed five copies on the CORE side; `singleLine`,
`ERROR_DOCS_URL` and `ULTIMATE_ERROR_BRAND` go the other way, and `schema -> core` stays forbidden
on its merits — `t` is in every bundle graph an app has, so a dependency here is a dependency
everywhere.
`MoneyValue` in `money-value.ts` — its own file, because it is the only builtin whose *shape* other

@@ -69,0 +79,0 @@ packages alias — is the framework's **one** declaration of a money value. Tier 0 is

{
"name": "@ultimat3/schema",
"version": "17.0.0",
"version": "18.0.0",
"description": "Ultimate's validation seam: Standard Schema interface, the t namespace, JSON Schema output",
"license": "MIT",
"type": "module",
"sideEffects": false,
"repository": {

@@ -27,3 +28,3 @@ "type": "git",

"engines": {
"bun": ">=1.3.0"
"bun": ">=1.4.0"
},

@@ -30,0 +31,0 @@ "scripts": {

@@ -94,2 +94,3 @@ // Single responsibility: the public API of @ultimat3/schema. Explicit named exports only.

export { t } from './t';
export { isIanaZoneName } from './time-zone-name';
export type {

@@ -96,0 +97,0 @@ NumberSchema,

@@ -1,6 +0,10 @@

// Single responsibility: is a string an IANA zone NAME? Tier 0's second statement of the one rule
// Single responsibility: is a string an IANA zone NAME? TIER 0'S ONE STATEMENT of the rule
// `@ultimat3/time` enforces everywhere above it — a zone is `Area/Location`, and `UTC` is the one
// exception. It is stated a third time because `schema` is tier 0 and may import neither
// `@ultimat3/time` nor `@ultimat3/core`; `packages/time/src/zone-canonical.ts` is where the rule
// and its reasoning are written down.
// exception. `@ultimat3/core` imported its own copy of this predicate until 2026-08-27 and now
// re-exports this one, over the declared `core -> schema` edge.
//
// `@ultimat3/time`'s `canonicalTimeZone` is NOT a fourth copy and is deliberately left alone: it
// answers a different question (the canonical SPELLING, memoised over ~445 listed zones plus a
// probe cache) and shares only the leading-sign rule below. Collapsing it into this predicate
// would trade a cache a request header can hit for one it cannot.

@@ -25,6 +29,5 @@ /**

*
* `@ultimat3/core`'s `isIanaZoneName` is the same predicate for `app.config.ts`. Nothing below
* tier 5 can compare the two, so `timezone-validator-pin.test.ts` in `@ultimat3/cli` is the
* mechanical half — the arrangement `schema-error-codes-pin.test.ts` already uses for tier 0's
* other deliberate duplicate.
* `@ultimat3/core` re-exports THIS function for `app.config.ts`, so the edge validator and the
* config validator are one predicate. They were two, held equal by a 123-line pin test in
* `@ultimat3/cli` that no rule required to exist.
*

@@ -31,0 +34,0 @@ * Of the three copies this is the one that guards CALLER input: `t.timezone` is a request body