open-circle/valibot 42b767d8..7d1b5556
base and head as given
- Schema metadata can now be retrieved as merged values.
- Schema titles can now be retrieved.
- Schema descriptions can now be retrieved.
- Schema metadata now has an inferred TypeScript type.
- files changed
- 34
- in a component
- 19
- lines in components
- 1,101
- components
- 11
- public routes changed
- 0
- schema statements
- 0
- new dependencies
- 0
- excluded by role
- 15
Schema metadata introspection
Added- Before
- Metadata readers did not exist
- After
- Schemas expose metadata readers
Library users can retrieve a schema's merged metadata, effective title, and effective description. Metadata traversal includes nested pipelines; duplicate metadata keys are shallowly overwritten in depth-first order.
In favour
- In favour: Nested pipelines preserve higher-level title and description precedence
- In favour: Inferred metadata matches the runtime depth-first merge order
The model found nothing to weigh against this.
Inspect 10 source files behind this explanation
- library/src/types/utils.ts
- library/src/utils/index.ts
- library/src/methods/index.ts
- library/src/utils/_getLastMetadata/_getLastMetadata.ts
- library/src/methods/getMetadata/getMetadata.ts
- library/src/methods/getDescription/getDescription.ts
- library/src/methods/getTitle/getTitle.ts
- library/src/methods/pipe/pipe.ts
- library/src/methods/pipe/pipeAsync.ts
- website/src/routes/api/(methods)/getMetadata/properties.ts
4 new dependencies between components — Last Metadata → Types · Last Metadata → Pipe · Utils → Last Metadata · Last Metadata → Methods
What else could behave differently
199 components · 725 filesThese components import changed code, directly or through other files. A traced dependency is a place to review, not a confirmed runtime failure.
Reached 3
| Component | Symbol | Cited at | Files | Reached by |
|---|---|---|---|---|
| Typeslibrary/src/types/ | Signature changed SchemaWithPipe1 of 5 changed symbols reaching it | library/src/methods/pipe/pipe.ts:21-70 | 12 | 2 direct · 10 at two stepsTrace pathShortest component path from the changed symbol:
Later steps follow file imports; they do not prove this symbol is called. |
| library/src/utils/_addIssue/ | Signature changed SchemaWithPipe1 of 2 changed symbols reaching it | library/src/methods/pipe/pipe.ts:21-70 | 2 | none direct · 1 at two steps · 1 at three stepsTrace pathShortest component path from the changed symbol:
Later steps follow file imports; they do not prove this symbol is called. |
| library/src/ | Signature changed SchemaWithPipe1 of 5 changed symbols reaching it | library/src/methods/pipe/pipe.ts:21-70 | 1 | none direct · 1 at two stepsTrace pathShortest component path from the changed symbol:
Later steps follow file imports; they do not prove this symbol is called. |
Held back 31
| Component | Files | Reached by | Resolution |
|---|---|---|---|
| library/src/utils/ | 1 | none direct · 1 at three steps | precise |
| library/ | 1 | none direct · 1 at three steps | precise |
| library/src/actions/ | 2 | none direct · 1 at three steps · 1 at four steps | precise |
| library/src/schemas/ | 1 | none direct · 1 at three steps | precise |
| library/src/methods/ | 1 | none direct · 1 at three steps | precise |
| library/src/actions/transform/ | 5 | none direct · 4 at three steps · 1 at four steps | precise |
| packages/to-json-schema/src/ | 5 | none direct · 4 at three steps · 1 at four steps | precise |
| library/src/actions/readonly/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/brand/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/schemas/unknown/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/schemas/any/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/description/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/title/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/metadata/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/trim/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/await/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/filterItems/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/findItem/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/flavor/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/mapItems/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/normalize/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/reduceItems/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/sortItems/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/toLowerCase/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/toMaxValue/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/toMinValue/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/toUpperCase/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/trimEnd/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| library/src/actions/trimStart/ | 3 | none direct · 2 at three steps · 1 at four steps | precise |
| packages/to-json-schema/src/utils/ | 1 | none direct · 1 at four steps | precise |
| packages/to-json-schema/src/vitest/ | 1 | none direct · 1 at four steps | precise |
Ranked lower 165
| Component | Files | Reached by |
|---|---|---|
| library/src/utils/_getStandardProps/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/string/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/methods/pipe/ | 5 | 2 direct · 2 at two steps · 1 at three steps |
| library/src/schemas/number/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/object/ | 6 | 2 direct · 3 at two steps · 1 at three steps |
| library/src/schemas/optional/ | 6 | 2 direct · 3 at two steps · 1 at three steps |
| library/src/storages/ | 9 | none direct · 4 at two steps · 4 at three steps · 1 at four steps |
| library/src/schemas/nullish/ | 6 | 2 direct · 3 at two steps · 1 at three steps |
| library/src/schemas/boolean/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/looseObject/ | 6 | 2 direct · 3 at two steps · 1 at three steps |
| library/src/schemas/objectWithRest/ | 6 | 2 direct · 3 at two steps · 1 at three steps |
| library/src/schemas/strictObject/ | 6 | 2 direct · 3 at two steps · 1 at three steps |
| library/src/methods/getDefault/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/vitest/ | 9 | none direct · 8 at two steps · 1 at three steps |
| library/src/schemas/undefinedable/ | 6 | 2 direct · 3 at two steps · 1 at three steps |
| library/src/schemas/exactOptional/ | 5 | 2 direct · 2 at two steps · 1 at three steps |
| library/src/methods/getFallback/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/array/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/schemas/null/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/utils/ValiError/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/nullable/ | 6 | 2 direct · 3 at two steps · 1 at three steps |
| library/src/methods/fallback/ | 5 | 2 direct · 2 at two steps · 1 at three steps |
| library/src/schemas/union/ | 9 | none direct · 4 at two steps · 4 at three steps · 1 at four steps |
| library/src/schemas/custom/ | 6 | none direct · 1 at two steps · 5 at three steps |
| library/src/schemas/looseTuple/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/schemas/strictTuple/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/schemas/tuple/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/schemas/tupleWithRest/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/schemas/nonOptional/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/schemas/undefined/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/utils/_getLastMetadata/ | 2 | 1 direct · 1 at two steps |
| library/src/schemas/nonNullable/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/schemas/nonNullish/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/actions/email/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/minLength/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/minValue/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/literal/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/picklist/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/utils/getDotPath/ | 3 | none direct · 2 at two steps · 1 at three steps |
| library/src/methods/safeParse/ | 6 | 4 direct · 2 at two steps |
| library/src/schemas/record/ | 6 | 3 direct · 3 at two steps |
| library/src/actions/check/ | 6 | none direct · 1 at two steps · 5 at three steps |
| library/src/schemas/intersect/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/schemas/map/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/schemas/set/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/schemas/variant/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/methods/parse/ | 5 | none direct · 2 at two steps · 3 at three steps |
| library/src/schemas/lazy/ | 5 | none direct · 2 at two steps · 3 at three steps |
| library/src/actions/decimal/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/startsWith/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/url/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/methods/safeParser/ | 5 | 4 direct · 1 at two steps |
| library/src/methods/getMetadata/ | 3 | 2 direct · 1 at two steps |
| library/src/utils/entriesFromObjects/ | 3 | 1 direct · 2 at two steps |
| library/src/methods/getDescription/ | 2 | 1 direct · 1 at two steps |
| library/src/methods/getTitle/ | 2 | 1 direct · 1 at two steps |
| library/src/actions/partialCheck/ | 9 | none direct · 2 at two steps · 6 at three steps · 1 at four steps |
| library/src/actions/checkItems/ | 6 | none direct · 1 at two steps · 5 at three steps |
| library/src/actions/rawCheck/ | 6 | none direct · 1 at two steps · 5 at three steps |
| library/src/actions/rawTransform/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/methods/forward/ | 6 | none direct · 2 at two steps · 4 at three steps |
| library/src/methods/getDefaults/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/methods/getFallbacks/ | 6 | none direct · 3 at two steps · 3 at three steps |
| library/src/actions/args/ | 5 | none direct · 2 at two steps · 3 at three steps |
| library/src/actions/returns/ | 5 | none direct · 2 at two steps · 3 at three steps |
| library/src/methods/parser/ | 5 | none direct · 2 at two steps · 3 at three steps |
| library/src/methods/partial/ | 5 | none direct · 2 at two steps · 3 at three steps |
| library/src/methods/required/ | 5 | none direct · 2 at two steps · 3 at three steps |
| library/src/actions/base64/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/bic/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/bytes/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/creditCard/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/cuid2/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/digits/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/emoji/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/empty/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/endsWith/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/entries/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/everyItem/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/excludes/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/finite/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/graphemes/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/gtValue/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/hash/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/hexadecimal/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/hexColor/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/imei/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/includes/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/integer/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/ip/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/ipv4/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/ipv6/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/isoDate/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/isoDateTime/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/isoTime/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/isoTimeSecond/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/isoTimestamp/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/isoWeek/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/length/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/ltValue/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/mac/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/mac48/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/mac64/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/maxBytes/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/maxEntries/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/maxGraphemes/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/maxLength/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/maxSize/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/maxValue/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/maxWords/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/mimeType/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/minBytes/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/minEntries/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/minGraphemes/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/minSize/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/minWords/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/multipleOf/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/nanoid/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/nonEmpty/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/notBytes/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/notEntries/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/notGraphemes/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/notLength/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/notSize/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/notValue/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/notValues/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/notWords/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/octal/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/parseJson/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/regex/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/rfcEmail/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/safeInteger/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/size/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/slug/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/someItem/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/stringifyJson/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/ulid/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/uuid/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/value/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/values/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/actions/words/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/methods/assert/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/methods/config/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/methods/flatten/ | 3 | none direct · 2 at two steps · 1 at three steps |
| library/src/methods/is/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/methods/keyof/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/methods/message/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/methods/omit/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/methods/pick/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/methods/unwrap/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/bigint/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/blob/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/date/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/enum/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/file/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/function/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/instance/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/nan/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/never/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/promise/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/symbol/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/schemas/void/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/utils/entriesFromList/ | 3 | none direct · 1 at two steps · 2 at three steps |
| library/src/methods/summarize/ | 2 | none direct · 1 at two steps · 1 at three steps |
| library/src/utils/isValiError/ | 2 | none direct · 1 at two steps · 1 at three steps |
Statements 5
SchemaWithPipe's signature change was traced to 12 files in types. 210SchemaWithPipe's signature change was traced to 2 files in _addIssue. 11SchemaWithPipe's signature change was traced to 1 file in library source. 1SafeParseResult's signature change was traced to 6 files in safeParse. 42SafeParseResult's signature change was traced to 5 files in safeParser. 41242 reached files belong to no component — tests, docs and config.
Routes, schema, dependencies
No public URL, no migration and no new package.
Inspect components, files and symbols
Component
File
Function
imports what changeddownstream of it, one mark per step
Diff
Analysis scope
2691 → 11- files at head2,691
- components228
- changed by this change11
- shown above of 116
Where the new files landed
12 new files| New file | Belongs to | Used by | Calls | Serves |
|---|---|---|---|---|
| library/src/utils/_getLastMetadata/2 new files | Last Metadatanew territory | Get DescriptionGet TitleUtils | library/src/actions/MethodsTypes | — |
| library/src/methods/getMetadata/3 new files | Get Metadatanew territory | Methods | library/src/actions/Pipelibrary/src/schemas/Types | — |
| library/src/methods/getDescription/2 new files | Get Descriptionnew territory | Methods | library/src/actions/MethodsTypesUtils | — |
| library/src/methods/getTitle/2 new files | Get Titlenew territory | Methods | library/src/actions/title/MethodsTypesUtils | — |
| website/src/routes/api/3 new files | API Routesbase frame | nothing in the existing application | website/src/components/ | — |
8 added files carry no component — 4 docs, 4 test.
34 files changed, 215 claims stated. 199 components reached in total.