moonrockz/openrpc/schema
Types
Dependency
pub(all) enum Dependency {
SchemaDependency(Schema)
PropertyDependencies(Array[String])
} derive(@moonbitlang/core/debug.Debug)Dependency::to_repr
fn Dependency::to_repr(Dependency) -> @moonbitlang/core/debug.ReprItems
pub(all) enum Items {
SingleItems(Schema)
TupleItems(Array[Schema])
} derive(@moonbitlang/core/debug.Debug)Items::to_repr
fn Items::to_repr(Items) -> @moonbitlang/core/debug.ReprKeyword
pub(all) enum Keyword {
Id(@moonrockz/openrpc/reference.UriReference)
Dialect(@moonrockz/openrpc/reference.UriReference)
Ref(@moonrockz/openrpc/reference.Reference)
Comment(String)
Title(String)
Description(String)
Default(@moonrockz/openrpc/json.Value)
ReadOnly(Bool)
WriteOnly(Bool)
Examples(Array[@moonrockz/openrpc/json.Value])
MultipleOf(PositiveNumber)
Maximum(@moonrockz/openrpc/json.Number)
ExclusiveMaximum(@moonrockz/openrpc/json.Number)
Minimum(@moonrockz/openrpc/json.Number)
ExclusiveMinimum(@moonrockz/openrpc/json.Number)
MaxLength(NonNegativeInteger)
MinLength(NonNegativeInteger)
Pattern(String)
AdditionalItems(Schema)
Items(Items)
MaxItems(NonNegativeInteger)
MinItems(NonNegativeInteger)
UniqueItems(Bool)
Contains(Schema)
MaxProperties(NonNegativeInteger)
MinProperties(NonNegativeInteger)
Required(Array[String])
AdditionalProperties(Schema)
Definitions(Array[(String, Schema)])
Properties(Array[(String, Schema)])
PatternProperties(Array[(String, Schema)])
Dependencies(Array[(String, Dependency)])
PropertyNames(Schema)
Const(@moonrockz/openrpc/json.Value)
Enum(Array[@moonrockz/openrpc/json.Value])
Type(TypeConstraint)
Format(String)
ContentMediaType(String)
ContentEncoding(String)
If(Schema)
Then(Schema)
Else(Schema)
AllOf(Array[Schema])
AnyOf(Array[Schema])
OneOf(Array[Schema])
Not(Schema)
} derive(@moonbitlang/core/debug.Debug)Keyword::name
fn Keyword::name(self : Keyword) -> StringKeyword::to_json
fn Keyword::to_json(self : Keyword) -> Result[@moonrockz/openrpc/json.Value, @moonrockz/openrpc/json.Diagnostic]Keyword::to_repr
fn Keyword::to_repr(Keyword) -> @moonbitlang/core/debug.ReprNonNegativeInteger
pub struct NonNegativeInteger {
number : @moonrockz/openrpc/json.Number
} derive(Eq, @moonbitlang/core/debug.Debug)NonNegativeInteger::equal
fn NonNegativeInteger::equal(NonNegativeInteger, NonNegativeInteger) -> BoolNonNegativeInteger::from_number
fn NonNegativeInteger::from_number(number : @moonrockz/openrpc/json.Number) -> Result[NonNegativeInteger, @moonrockz/openrpc/json.Diagnostic]NonNegativeInteger::not_equal
fn NonNegativeInteger::not_equal(x : NonNegativeInteger, y : NonNegativeInteger) -> BoolNonNegativeInteger::number
fn NonNegativeInteger::number(self : NonNegativeInteger) -> @moonrockz/openrpc/json.NumberNonNegativeInteger::parse
fn NonNegativeInteger::parse(token : String) -> Result[NonNegativeInteger, @moonrockz/openrpc/json.Diagnostic]NonNegativeInteger::to_repr
fn NonNegativeInteger::to_repr(NonNegativeInteger) -> @moonbitlang/core/debug.ReprPatternError
pub struct PatternError {
code : @moonrockz/openrpc/json.Code
message : String
offset : Int
} derive(@moonbitlang/core/debug.Debug)A syntax error offset refers to UTF-16 units in the decoded pattern string. It is not a span in the JSON source containing that string.
PatternError::code
fn PatternError::code(self : PatternError) -> @moonrockz/openrpc/json.CodePatternError::message
fn PatternError::message(self : PatternError) -> StringPatternError::offset
fn PatternError::offset(self : PatternError) -> IntPatternError::to_repr
fn PatternError::to_repr(PatternError) -> @moonbitlang/core/debug.ReprPositiveNumber
pub struct PositiveNumber {
number : @moonrockz/openrpc/json.Number
} derive(Eq, @moonbitlang/core/debug.Debug)PositiveNumber::equal
fn PositiveNumber::equal(PositiveNumber, PositiveNumber) -> BoolPositiveNumber::from_number
fn PositiveNumber::from_number(number : @moonrockz/openrpc/json.Number) -> Result[PositiveNumber, @moonrockz/openrpc/json.Diagnostic]PositiveNumber::not_equal
fn PositiveNumber::not_equal(x : PositiveNumber, y : PositiveNumber) -> BoolPositiveNumber::number
fn PositiveNumber::number(self : PositiveNumber) -> @moonrockz/openrpc/json.NumberPositiveNumber::parse
fn PositiveNumber::parse(token : String) -> Result[PositiveNumber, @moonrockz/openrpc/json.Diagnostic]PositiveNumber::to_repr
fn PositiveNumber::to_repr(PositiveNumber) -> @moonbitlang/core/debug.ReprReferenceObject
pub struct ReferenceObject {
reference : @moonrockz/openrpc/reference.Reference
siblings : @moonrockz/openrpc/json.Value
} derive(@moonbitlang/core/debug.Debug)ReferenceObject::reference
fn ReferenceObject::reference(self : ReferenceObject) -> @moonrockz/openrpc/reference.ReferenceReferenceObject::siblings
fn ReferenceObject::siblings(self : ReferenceObject) -> @moonrockz/openrpc/json.ValueReferenceObject::to_repr
fn ReferenceObject::to_repr(ReferenceObject) -> @moonbitlang/core/debug.ReprReport
pub struct Report {
complete : Bool
references_complete : Bool
// private fields
} derive(@moonbitlang/core/debug.Debug)Completeness means all requested schema-document checks were performed. It does not mean that the diagnostics contain no failures.
Report::diagnostic_resources
fn Report::diagnostic_resources(self : Report) -> Array[@moonrockz/openrpc/reference.UriReference?]One resolution per followed $ref edge, in traversal order.
Report::diagnostics
fn Report::diagnostics(self : Report) -> Array[@moonrockz/openrpc/json.Diagnostic]Report::is_complete
fn Report::is_complete(self : Report) -> BoolReport::references_complete
fn Report::references_complete(self : Report) -> BoolWhether every followed reference and every schema identifier was resolved
or definitively failed. Local keyword and regex checks are reported
separately through is_complete.
Report::resolutions
fn Report::resolutions(self : Report) -> Array[@moonrockz/openrpc/reference.Resolution]Report::to_repr
fn Report::to_repr(Report) -> @moonbitlang/core/debug.ReprSchema
pub struct Schema {
value : @moonrockz/openrpc/json.Value
} derive(@moonbitlang/core/debug.Debug)A schema retains exact JSON with checked typed keyword forms.
Schema::from_json
fn Schema::from_json(value : @moonrockz/openrpc/json.Value, limits? : @moonrockz/openrpc/json.Limits) -> Result[Schema, @moonrockz/openrpc/json.Diagnostic]Schema::from_keywords
fn Schema::from_keywords(keywords : Array[Keyword], additional_fields? : Array[(String, @moonrockz/openrpc/json.Value)], extensions? : @moonrockz/openrpc/domain.Extensions, limits? : @moonrockz/openrpc/json.Limits) -> Result[Schema, @moonrockz/openrpc/json.Diagnostic]Schema::kind
fn Schema::kind(self : Schema) -> SchemaKindSchema::to_json
fn Schema::to_json(self : Schema) -> @moonrockz/openrpc/json.ValueSchema::to_repr
fn Schema::to_repr(Schema) -> @moonbitlang/core/debug.ReprSchemaKind
pub(all) enum SchemaKind {
BooleanSchema(Bool)
ObjectSchema(SchemaObject)
ReferenceSchema(ReferenceObject)
UnsupportedDialectSchema(@moonrockz/openrpc/reference.UriReference, @moonrockz/openrpc/json.Value)
} derive(@moonbitlang/core/debug.Debug)SchemaKind::to_repr
fn SchemaKind::to_repr(SchemaKind) -> @moonbitlang/core/debug.ReprSchemaObject
pub struct SchemaObject {
value : @moonrockz/openrpc/json.Value
} derive(@moonbitlang/core/debug.Debug)SchemaObject::additional_fields
fn SchemaObject::additional_fields(self : SchemaObject) -> Array[(String, @moonrockz/openrpc/json.Value)]SchemaObject::extensions
fn SchemaObject::extensions(self : SchemaObject) -> @moonrockz/openrpc/domain.ExtensionsSchemaObject::keyword
fn SchemaObject::keyword(self : SchemaObject, name : String) -> Keyword?SchemaObject::keywords
fn SchemaObject::keywords(self : SchemaObject) -> Array[Keyword]SchemaObject::to_repr
fn SchemaObject::to_repr(SchemaObject) -> @moonbitlang/core/debug.ReprSimpleType
pub(all) enum SimpleType {
ArrayType
BooleanType
IntegerType
NullType
NumberType
ObjectType
StringType
} derive(Eq, @moonbitlang/core/debug.Debug)SimpleType::equal
fn SimpleType::equal(SimpleType, SimpleType) -> BoolSimpleType::not_equal
fn SimpleType::not_equal(x : SimpleType, y : SimpleType) -> BoolSimpleType::to_repr
fn SimpleType::to_repr(SimpleType) -> @moonbitlang/core/debug.ReprSimpleType::to_string
fn SimpleType::to_string(self : SimpleType) -> StringTypeConstraint
pub struct TypeConstraint {
types : Array[SimpleType]
union : Bool
} derive(@moonbitlang/core/debug.Debug)TypeConstraint::is_union
fn TypeConstraint::is_union(self : TypeConstraint) -> BoolTypeConstraint::many
fn TypeConstraint::many(types : Array[SimpleType]) -> Result[TypeConstraint, @moonrockz/openrpc/json.Diagnostic]TypeConstraint::one
fn TypeConstraint::one(type_ : SimpleType) -> TypeConstraintTypeConstraint::to_json
fn TypeConstraint::to_json(self : TypeConstraint) -> @moonrockz/openrpc/json.ValueTypeConstraint::to_repr
fn TypeConstraint::to_repr(TypeConstraint) -> @moonbitlang/core/debug.ReprTypeConstraint::types
fn TypeConstraint::types(self : TypeConstraint) -> Array[SimpleType]Values
check_pattern
fn check_pattern(source : String, limits? : @moonrockz/openrpc/json.Limits) -> Result[Unit, PatternError]Check ECMA-262 2018 pattern syntax with no flags and Annex B extensions. This performs no matching, fetching, compilation or instance evaluation.
keyword_names
fn keyword_names() -> Array[String]validate
fn validate(schema : Schema, root~ : @moonrockz/openrpc/json.Value, path? : Array[String], base? : @moonrockz/openrpc/reference.UriReference?, resources? : @moonrockz/openrpc/reference.ResourceSet, max_nodes? : Int, max_edges? : Int, max_findings? : Int, max_comparison_work? : Int, limits? : @moonrockz/openrpc/json.Limits) -> ReportValidate a bounded schema-document graph without evaluating instances.
References resolve through nested $id scopes and the explicit
resources; nothing is fetched.
validate_in
fn validate_in(schema : Schema, index~ : @moonrockz/openrpc/reference.SchemaIndex, resource? : @moonrockz/openrpc/reference.UriReference?, path? : Array[String], max_nodes? : Int, max_edges? : Int, max_findings? : Int, max_comparison_work? : Int, limits? : @moonrockz/openrpc/json.Limits) -> ReportCheck one schema against an index the caller built once for a whole
document. resource names the index document holding the schema (None for
the unnamed input) and path is its location there. Index diagnostics are
the caller's to report.
validate_json
fn validate_json(value : @moonrockz/openrpc/json.Value, root~ : @moonrockz/openrpc/json.Value, path? : Array[String], base? : @moonrockz/openrpc/reference.UriReference?, resources? : @moonrockz/openrpc/reference.ResourceSet, max_nodes? : Int, max_edges? : Int, max_findings? : Int, max_comparison_work? : Int, limits? : @moonrockz/openrpc/json.Limits) -> ReportReport malformed schema documents without constructing an invalid typed AST.