package longdistance

import "errors"

// Error types from the JSON-LD specification.
var (
	ErrCollidingKeywords           = errors.New("colliding keywords")
	ErrContextOverflow             = errors.New("context overflow")
	ErrCyclicIRIMapping            = errors.New("cyclic IRI mapping")
	ErrInvalidBaseDirection        = errors.New("invalid base direction")
	ErrInvalidBaseIRI              = errors.New("invalid base IRI")
	ErrInvalidContainerMapping     = errors.New("invalid container mapping")
	ErrInvalidContextEntry         = errors.New("invalid context entry")
	ErrInvalidContextNullificaton  = errors.New("invalid context nullification")
	ErrInvalidDefaultLanguage      = errors.New("invalid default language")
	ErrInvalidIDValue              = errors.New("invalid @id value")
	ErrInvalidImportValue          = errors.New("invalid @import value")
	ErrInvalidIncludedValue        = errors.New("invalid @included value")
	ErrInvalidIndexValue           = errors.New("invalid @index value")
	ErrInvalidIRIMapping           = errors.New("invalid IRI mapping")
	ErrInvalidKeywordAlias         = errors.New("invalid keyword alias")
	ErrInvalidLanguageMapping      = errors.New("invalid language mapping")
	ErrInvalidLanguageMapValue     = errors.New("invalid language map value")
	ErrInvalidLanguageTaggedString = errors.New("invalid language-tagged string")
	ErrInvalidLanguageTaggedValue  = errors.New("invalid language-tagged value")
	ErrInvalidLocalContext         = errors.New("invalid local context")
	ErrInvalidNestValue            = errors.New("invalid @nest value")
	ErrInvalidPrefixValue          = errors.New("invalid @prefix value")
	ErrInvalidPropagateValue       = errors.New("invalid @propagate value")
	ErrInvalidProtectedValue       = errors.New("invalid @protected value")
	ErrInvalidRemoteContext        = errors.New("invalid remote context")
	ErrInvalidReverseProperty      = errors.New("invalid reverse property")
	ErrInvalidReversePropertyMap   = errors.New("invalid reverse property map")
	ErrInvalidReversePropertyValue = errors.New("invalid reverse property value")
	ErrInvalidReverseValue         = errors.New("invalid @reverse value")
	ErrInvalidScopedContext        = errors.New("invalid scoped context")
	ErrInvalidSetOrListObject      = errors.New("invalid set or list object")
	ErrInvalidTermDefinition       = errors.New("invalid term definition")
	ErrInvalidTypedValue           = errors.New("invalid typed value")
	ErrInvalidTypeMapping          = errors.New("invalid type mapping")
	ErrInvalidTypeValue            = errors.New("invalid type value")
	ErrInvalidValueObject          = errors.New("invalid value object")
	ErrInvalidValueObjectValue     = errors.New("invalid value object value")
	ErrInvalidVersionValue         = errors.New("invalid @version value")
	ErrInvalidVocabMapping         = errors.New("invalid vocab mapping")
	ErrIRIConfusedWithPrefix       = errors.New("IRI confused with prefix")
	ErrKeywordRedefinition         = errors.New("keyword redefinition")
	ErrLoadingDocument             = errors.New("loading document failed")
	ErrLoadingRemoteContext        = errors.New("loading remote context failed")
	ErrProcessingMode              = errors.New("processing mode conflict")
	ErrProtectedTermRedefinition   = errors.New("protected term redefinition")
	ErrRecursiveContextInclusion   = errors.New("recursive context inclusion")
)

// Library-specific errors.
var (
	ErrFrameExpansionUnsupported = errors.New("frame expansion is not supported")
	ErrPreserveUnsupported       = errors.New("@preserve is not supported")
)
