alias.cycle
"alias.cycle" : { chain : readonly string [] }
alias.syntax.invalid
"alias.syntax.invalid" : { actual : unknown }
alias.target.missing
"alias.target.missing" : { actual ?: string ; alias : string ; path : string }
alias.target.not- token
"alias.target.not-token" : { alias : string ; path : string }
alias.type.mismatch
"alias.type.mismatch" : { actual : string ; actualType ?: string ; alias : string ; expected : string ; target : string ; }
color.color- space.invalid
color.color- space.missing
color.component.invalid
"color.component.invalid" : { actual : unknown ; index : number }
color.component.out- of- range
"color.component.out-of-range" : RangeMeta & { colorSpace : string | undefined ; index : number ; name : string ; }
color.components.not- array
color.components.wrong- length
"color.components.wrong-length" : { actual : number ; colorSpace : unknown ; expected : number ; }
color.hex.invalid
"color.hex.invalid" : { actual : unknown ; actualType ?: string }
color.hex.mismatch
"color.hex.mismatch" : { expected : string ; hex : string }
composite.property.missing
"composite.property.missing" : { expectedType : string ; property : string ; type : string ; }
composite.value.not- object
"composite.value.not-object" : { actualType : string ; properties : readonly string [] ; type : string ; }
cubic- bezier.point.not- number
"cubic-bezier.point.not-number" : { actualType : string ; index : number }
cubic- bezier.value.not- array
cubic- bezier.value.wrong- length
"cubic-bezier.value.wrong-length" : { actual : number }
cubic- bezier.x.out- of- range
"cubic-bezier.x.out-of-range" : RangeMeta & { index : number }
dimension.value.not- number
dimension.value.not- object
document.invalid- json
"document.invalid-json" : { reason : string }
document.too- deep
"document.too-deep" : { depth : number }
document.unreadable- node
"document.unreadable-node" : { reason : string }
duration.value.not- number
duration.value.not- object
extends.cycle
"extends.cycle" : { chain : readonly string [] }
extends.inherited- token.invalid
"extends.inherited-token.invalid" : { effectiveType ?: string ; inheritedFrom : string ; originType ?: string ; reason : string ; token : string ; }
extends.target.missing
"extends.target.missing" : { actual : unknown ; path : string }
extends.target.not- group
"extends.target.not-group" : { actual : unknown ; path : string }
font- family.name.not- string
"font-family.name.not-string" : { actualType : string ; index : number }
font- family.value.invalid
font- weight.keyword.invalid
font- weight.number.out- of- range
font- weight.value.invalid
gradient.position.out- of- range
"gradient.position.out-of-range" : { actual : number }
gradient.stop.invalid
"gradient.stop.invalid" : { actualType : string ; index : number }
group.description.not- string
group.extends.invalid
"group.extends.invalid" : { actual : unknown }
group.extensions.key- not- namespaced
"group.extensions.key-not-namespaced" : { key : string }
group.extensions.not- object
group.member.invalid
"group.member.invalid" : { actualType : string ; name : string }
group.name.case- collision
"group.name.case-collision" : { names : readonly string [] }
group.property.unknown
"group.property.unknown" : { property : string }
group.ref.invalid
"group.ref.invalid" : { actual : unknown }
name.forbidden- character
"name.forbidden-character" : { character : string ; characters : readonly string [] ; name : string ; }
name.reserved- prefix
"name.reserved-prefix" : { name : string }
ref.cycle
"ref.cycle" : { chain : readonly string [] }
ref.not- local
"ref.not-local" : { actual : unknown }
ref.syntax.invalid
"ref.syntax.invalid" : { actual : unknown }
ref.target.missing
"ref.target.missing" : { actual : string ; alias ?: string ; path : string }
ref.type.mismatch
"ref.type.mismatch" : { actual : string ; actualType : string ; alias ?: string ; expected : string ; target : string ; }
shadow.item.invalid
"shadow.item.invalid" : { actualType : string ; index : number }
stroke- style.dash- array.not- array
"stroke-style.dash-array.not-array" : ShapeMeta
stroke- style.keyword.invalid
"stroke-style.keyword.invalid" : EnumMeta
stroke- style.line- cap.invalid
"stroke-style.line-cap.invalid" : EnumMeta
stroke- style.value.invalid
token.description.not- string
token.extensions.key- not- namespaced
"token.extensions.key-not-namespaced" : { key : string }
token.extensions.not- object
token.property.not- allowed
"token.property.not-allowed" : { property : string }
token.property.unknown
"token.property.unknown" : { property : string }
token.type.missing
"token.type.missing" : { actualValueType ?: string ; target ?: string ; via ?: "alias" ; }
value.unknown- property
"value.unknown-property" : { known : readonly string [] ; property : string }
The structured details (
meta) each issue code carries, so clients can build their own messages or UI from the data rather than parsing the English sentence. Public API: keys are only added, never renamed or removed, without a major version.