From 0faac4103082dc4cc0a0320c8427bad875c45096 Mon Sep 17 00:00:00 2001 From: Claire Gaestel <213631+nyobe@users.noreply.github.com> Date: Thu, 8 Jan 2026 14:24:56 -0800 Subject: [PATCH 1/7] fn::conform --- ast/expr.go | 59 + eval/eval.go | 87 + eval/expr.go | 31 + .../eval/builtin-conform-error/env.yaml | 14 + .../eval/builtin-conform-error/expected.json | 1278 ++++ eval/testdata/eval/builtin-conform/env.yaml | 71 + .../eval/builtin-conform/expected.json | 6450 +++++++++++++++++ 7 files changed, 7990 insertions(+) create mode 100644 eval/testdata/eval/builtin-conform-error/env.yaml create mode 100644 eval/testdata/eval/builtin-conform-error/expected.json create mode 100644 eval/testdata/eval/builtin-conform/env.yaml create mode 100644 eval/testdata/eval/builtin-conform/expected.json diff --git a/ast/expr.go b/ast/expr.go index ef5155e3..5010b8ea 100644 --- a/ast/expr.go +++ b/ast/expr.go @@ -671,6 +671,34 @@ func FromBase64(value Expr) *FromBase64Expr { return FromBase64Syntax(nil, name, value) } +// ConformExpr validates a value against a JSON schema. +type ConformExpr struct { + builtinNode + + Schema Expr // The JSON schema to validate against + Value Expr // The value to validate +} + +func ConformSyntax(node *syntax.ObjectNode, name *StringExpr, args, schemaExpr, valueExpr Expr) *ConformExpr { + return &ConformExpr{ + builtinNode: builtin(node, name, args), + Schema: schemaExpr, + Value: valueExpr, + } +} + +func Conform(schemaExpr, valueExpr Expr) *ConformExpr { + name := String("fn::conform") + return &ConformExpr{ + builtinNode: builtin(nil, name, Object( + ObjectProperty{Key: String("schema"), Value: schemaExpr}, + ObjectProperty{Key: String("value"), Value: valueExpr}, + )), + Schema: schemaExpr, + Value: valueExpr, + } +} + func tryParseFunction(node *syntax.ObjectNode) (Expr, syntax.Diagnostics, bool) { var diags syntax.Diagnostics if node.Len() != 1 { @@ -689,6 +717,8 @@ func tryParseFunction(node *syntax.ObjectNode) (Expr, syntax.Diagnostics, bool) switch kvp.Key.Value() { case "fn::concat": parse = parseConcat + case "fn::conform": + parse = parseConform case "fn::fromJSON": parse = parseFromJSON case "fn::fromBase64": @@ -944,3 +974,32 @@ func parseSecret(node *syntax.ObjectNode, name *StringExpr, value Expr) (Expr, s } return PlaintextSyntax(node, name, str), diags } + +func parseConform(node *syntax.ObjectNode, name *StringExpr, args Expr) (Expr, syntax.Diagnostics) { + obj, ok := args.(*ObjectExpr) + if !ok { + diags := syntax.Diagnostics{ExprError(args, "the argument to fn::conform must be an object containing 'schema' and 'value'")} + return ConformSyntax(node, name, args, nil, nil), diags + } + + var schemaExpr, valueExpr Expr + var diags syntax.Diagnostics + + for _, kvp := range obj.Entries { + switch kvp.Key.GetValue() { + case "schema": + schemaExpr = kvp.Value + case "value": + valueExpr = kvp.Value + } + } + + if schemaExpr == nil { + diags.Extend(ExprError(obj, "missing required property 'schema'")) + } + if valueExpr == nil { + diags.Extend(ExprError(obj, "missing required property 'value'")) + } + + return ConformSyntax(node, name, obj, schemaExpr, valueExpr), diags +} diff --git a/eval/eval.go b/eval/eval.go index e6372ebf..77803485 100644 --- a/eval/eval.go +++ b/eval/eval.go @@ -15,6 +15,7 @@ package eval import ( + "bytes" "context" "encoding/base64" "encoding/json" @@ -331,6 +332,14 @@ func declare[Expr exprNode](e *evalContext, path string, x Expr, base *value) *e case *ast.FromBase64Expr: repr := &fromBase64Expr{node: x, string: declare(e, "", x.String, nil)} return newExpr(path, repr, schema.String().Schema(), base) + case *ast.ConformExpr: + repr := &conformExpr{ + node: x, + schemaExpr: declare(e, "", x.Schema, nil), + value: declare(e, "", x.Value, nil), + } + // Output schema is dynamic - will be determined during evaluation + return newExpr(path, repr, schema.Always().Schema(), base) case *ast.FromJSONExpr: repr := &fromJSONExpr{node: x, string: declare(e, "", x.String, nil)} return newExpr(path, repr, schema.Always(), base) @@ -602,6 +611,8 @@ func (e *evalContext) evaluateExpr(x *expr, accept *schema.Schema) *value { val = e.evaluateBuiltinConcat(x, repr) case *fromBase64Expr: val = e.evaluateBuiltinFromBase64(x, repr) + case *conformExpr: + val = e.evaluateBuiltinConform(x, repr) case *fromJSONExpr: val = e.evaluateBuiltinFromJSON(x, repr) case *joinExpr: @@ -1326,6 +1337,82 @@ func (e *evalContext) evaluateBuiltinFromBase64(x *expr, repr *fromBase64Expr) * return v } +// evaluateBuiltinConform evaluates a call to the fn::conform builtin. +// It validates the value against the provided schema and emits diagnostics on failure. +// The value is always returned (pass-through semantics). +func (e *evalContext) evaluateBuiltinConform(x *expr, repr *conformExpr) *value { + v := &value{def: x} + + // Evaluate the schema expression first + schemaVal := e.evaluateExpr(repr.schemaExpr, schema.Always()) + if schemaVal.containsUnknowns() { + // If schema is unknown, we can't validate - just return the value + val := e.evaluateExpr(repr.value, schema.Always()) + v.schema = val.schema + v.repr = val.repr + v.combine(val) + return v + } + + // Convert the evaluated schema value to a *schema.Schema + conformSchema, err := e.valueToSchema(schemaVal) + if err != nil { + e.errorf(repr.schemaExpr.repr.syntax(), "invalid schema: %v", err) + val := e.evaluateExpr(repr.value, schema.Always()) + v.schema = val.schema + v.repr = val.repr + v.combine(val) + return v + } + repr.conformSchema = conformSchema + + // Compile the schema (like fn::open does with provider schemas) + if err := conformSchema.Compile(); err != nil { + e.errorf(repr.schemaExpr.repr.syntax(), "invalid schema: %v", err) + val := e.evaluateExpr(repr.value, schema.Always()) + v.schema = val.schema + v.repr = val.repr + v.combine(val) + return v + } + + // Validate value against the conform schema using evaluateTypedExpr + // This follows the same pattern as fn::open: inputs, ok := e.evaluateTypedExpr(repr.inputs, repr.inputSchema) + val, _ := e.evaluateTypedExpr(repr.value, conformSchema) + + // Return the value with its schema (pass-through semantics) + v.schema = val.schema + v.repr = val.repr + v.combine(val) + return v +} + +// valueToSchema converts an evaluated value to a *schema.Schema. +func (e *evalContext) valueToSchema(v *value) (*schema.Schema, error) { + // Export the value to esc.Value + ev, diags := v.export("") + e.diags.Extend(diags...) + + // Convert to JSON representation + jsonVal := ev.ToJSON(false) + + // Marshal to JSON bytes + jsonBytes, err := json.Marshal(jsonVal) + if err != nil { + return nil, fmt.Errorf("failed to marshal schema to JSON: %w", err) + } + + // Unmarshal into a schema.Schema + var s schema.Schema + dec := json.NewDecoder(bytes.NewReader(jsonBytes)) + dec.UseNumber() + if err := dec.Decode(&s); err != nil { + return nil, fmt.Errorf("failed to parse schema: %w", err) + } + + return &s, nil +} + // evaluateBuiltinFromJSON evaluates a call from the fn::fromJSON builtin. func (e *evalContext) evaluateBuiltinFromJSON(x *expr, repr *fromJSONExpr) *value { v := &value{def: x, schema: x.schema} diff --git a/eval/expr.go b/eval/expr.go index ca4357a8..9964c5a7 100644 --- a/eval/expr.go +++ b/eval/expr.go @@ -16,6 +16,7 @@ package eval import ( "fmt" + "github.com/hashicorp/hcl/v2" "github.com/pulumi/esc" "github.com/pulumi/esc/ast" @@ -168,6 +169,22 @@ func (x *expr) export(environment string) esc.Expr { ArgSchema: schema.String().Schema(), Arg: repr.string.export(environment), } + case *conformExpr: + ex.Builtin = &esc.BuiltinExpr{ + Name: repr.node.Name().Value, + NameRange: convertRange(repr.node.Name().Syntax().Syntax().Range(), environment), + ArgSchema: schema.Record(schema.SchemaMap{ + "schema": schema.Always(), + "value": schema.Always(), + }).Schema(), + Arg: esc.Expr{ + Range: convertRange(repr.node.Args().Syntax().Syntax().Range(), environment), + Object: map[string]esc.Expr{ + "schema": repr.schemaExpr.export(environment), + "value": repr.value.export(environment), + }, + }, + } case *fromJSONExpr: ex.Builtin = &esc.BuiltinExpr{ Name: repr.node.Name().Value, @@ -550,3 +567,17 @@ type fromBase64Expr struct { func (x *fromBase64Expr) syntax() ast.Expr { return x.node } + +// conformExpr represents a call to the fn::conform builtin. +type conformExpr struct { + node *ast.ConformExpr + + schemaExpr *expr // The schema expression (evaluated to get schema value) + value *expr // The value expression to validate + + conformSchema *schema.Schema // Computed schema (populated during evaluation) +} + +func (x *conformExpr) syntax() ast.Expr { + return x.node +} diff --git a/eval/testdata/eval/builtin-conform-error/env.yaml b/eval/testdata/eval/builtin-conform-error/env.yaml new file mode 100644 index 00000000..c4b167de --- /dev/null +++ b/eval/testdata/eval/builtin-conform-error/env.yaml @@ -0,0 +1,14 @@ +values: + # Missing schema + missing-schema: + fn::conform: + value: "test" + + # Missing value + missing-value: + fn::conform: + schema: { type: string } + + # Not an object + not-object: + fn::conform: "invalid" diff --git a/eval/testdata/eval/builtin-conform-error/expected.json b/eval/testdata/eval/builtin-conform-error/expected.json new file mode 100644 index 00000000..a791974b --- /dev/null +++ b/eval/testdata/eval/builtin-conform-error/expected.json @@ -0,0 +1,1278 @@ +{ + "loadDiags": [ + { + "Severity": 1, + "Summary": "missing required property 'schema'", + "Detail": "", + "Subject": { + "Filename": "builtin-conform-error", + "Start": { + "Line": 5, + "Column": 7, + "Byte": 68 + }, + "End": { + "Line": 5, + "Column": 18, + "Byte": 79 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"missing-schema\"][\"fn::conform\"]" + }, + { + "Severity": 1, + "Summary": "missing required property 'value'", + "Detail": "", + "Subject": { + "Filename": "builtin-conform-error", + "Start": { + "Line": 10, + "Column": 7, + "Byte": 141 + }, + "End": { + "Line": 10, + "Column": 29, + "Byte": 163 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"missing-value\"][\"fn::conform\"]" + }, + { + "Severity": 1, + "Summary": "the argument to fn::conform must be an object containing 'schema' and 'value'", + "Detail": "", + "Subject": { + "Filename": "builtin-conform-error", + "Start": { + "Line": 14, + "Column": 18, + "Byte": 216 + }, + "End": { + "Line": 14, + "Column": 25, + "Byte": 223 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"not-object\"][\"fn::conform\"]" + } + ], + "check": { + "exprs": { + "missing-schema": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 4, + "column": 5, + "byte": 49 + }, + "end": { + "line": 5, + "column": 18, + "byte": 79 + } + }, + "schema": { + "type": "string", + "const": "test" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform-error", + "begin": { + "line": 4, + "column": 5, + "byte": 49 + }, + "end": { + "line": 4, + "column": 16, + "byte": 60 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 5, + "column": 7, + "byte": 68 + }, + "end": { + "line": 5, + "column": 18, + "byte": 79 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + }, + "schema": true + }, + "value": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 5, + "column": 14, + "byte": 75 + }, + "end": { + "line": 5, + "column": 18, + "byte": 79 + } + }, + "schema": { + "type": "string", + "const": "test" + }, + "literal": "test" + } + } + } + } + }, + "missing-value": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 9, + "column": 5, + "byte": 122 + }, + "end": { + "line": 10, + "column": 29, + "byte": 163 + } + }, + "schema": true, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform-error", + "begin": { + "line": 9, + "column": 5, + "byte": 122 + }, + "end": { + "line": 9, + "column": 16, + "byte": 133 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 10, + "column": 7, + "byte": 141 + }, + "end": { + "line": 10, + "column": 29, + "byte": 163 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 10, + "column": 15, + "byte": 149 + }, + "end": { + "line": 10, + "column": 29, + "byte": 163 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform-error", + "begin": { + "line": 10, + "column": 17, + "byte": 151 + }, + "end": { + "line": 10, + "column": 21, + "byte": 155 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 10, + "column": 23, + "byte": 157 + }, + "end": { + "line": 10, + "column": 29, + "byte": 163 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + }, + "schema": true + } + } + } + } + }, + "not-object": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 14, + "column": 5, + "byte": 203 + }, + "end": { + "line": 14, + "column": 25, + "byte": 223 + } + }, + "schema": true, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform-error", + "begin": { + "line": 14, + "column": 5, + "byte": 203 + }, + "end": { + "line": 14, + "column": 16, + "byte": 214 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 14, + "column": 18, + "byte": 216 + }, + "end": { + "line": 14, + "column": 25, + "byte": 223 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + }, + "schema": true + }, + "value": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + }, + "schema": true + } + } + } + } + } + }, + "properties": { + "missing-schema": { + "value": "test", + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 4, + "column": 5, + "byte": 49 + }, + "end": { + "line": 5, + "column": 18, + "byte": 79 + } + } + } + }, + "missing-value": { + "unknown": true, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 9, + "column": 5, + "byte": 122 + }, + "end": { + "line": 10, + "column": 29, + "byte": 163 + } + } + } + }, + "not-object": { + "unknown": true, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 14, + "column": 5, + "byte": 203 + }, + "end": { + "line": 14, + "column": 25, + "byte": 223 + } + } + } + } + }, + "schema": { + "properties": { + "missing-schema": { + "type": "string", + "const": "test" + }, + "missing-value": true, + "not-object": true + }, + "type": "object", + "required": [ + "missing-schema", + "missing-value", + "not-object" + ] + }, + "executionContext": { + "properties": { + "currentEnvironment": { + "value": { + "name": { + "value": "builtin-conform-error", + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + }, + "pulumi": { + "value": { + "user": { + "value": { + "id": { + "value": "USER_123", + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + }, + "rootEnvironment": { + "value": { + "name": { + "value": "builtin-conform-error", + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "schema": { + "properties": { + "currentEnvironment": { + "properties": { + "name": { + "type": "string", + "const": "builtin-conform-error" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "pulumi": { + "properties": { + "user": { + "properties": { + "id": { + "type": "string", + "const": "USER_123" + } + }, + "type": "object", + "required": [ + "id" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "rootEnvironment": { + "properties": { + "name": { + "type": "string", + "const": "builtin-conform-error" + } + }, + "type": "object", + "required": [ + "name" + ] + } + }, + "type": "object", + "required": [ + "currentEnvironment", + "pulumi", + "rootEnvironment" + ] + } + } + }, + "checkJson": { + "missing-schema": "test", + "missing-value": "[unknown]", + "not-object": "[unknown]" + }, + "eval": { + "exprs": { + "missing-schema": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 4, + "column": 5, + "byte": 49 + }, + "end": { + "line": 5, + "column": 18, + "byte": 79 + } + }, + "schema": { + "type": "string", + "const": "test" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform-error", + "begin": { + "line": 4, + "column": 5, + "byte": 49 + }, + "end": { + "line": 4, + "column": 16, + "byte": 60 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 5, + "column": 7, + "byte": 68 + }, + "end": { + "line": 5, + "column": 18, + "byte": 79 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + }, + "schema": true + }, + "value": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 5, + "column": 14, + "byte": 75 + }, + "end": { + "line": 5, + "column": 18, + "byte": 79 + } + }, + "schema": { + "type": "string", + "const": "test" + }, + "literal": "test" + } + } + } + } + }, + "missing-value": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 9, + "column": 5, + "byte": 122 + }, + "end": { + "line": 10, + "column": 29, + "byte": 163 + } + }, + "schema": true, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform-error", + "begin": { + "line": 9, + "column": 5, + "byte": 122 + }, + "end": { + "line": 9, + "column": 16, + "byte": 133 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 10, + "column": 7, + "byte": 141 + }, + "end": { + "line": 10, + "column": 29, + "byte": 163 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 10, + "column": 15, + "byte": 149 + }, + "end": { + "line": 10, + "column": 29, + "byte": 163 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform-error", + "begin": { + "line": 10, + "column": 17, + "byte": 151 + }, + "end": { + "line": 10, + "column": 21, + "byte": 155 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 10, + "column": 23, + "byte": 157 + }, + "end": { + "line": 10, + "column": 29, + "byte": 163 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + }, + "schema": true + } + } + } + } + }, + "not-object": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 14, + "column": 5, + "byte": 203 + }, + "end": { + "line": 14, + "column": 25, + "byte": 223 + } + }, + "schema": true, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform-error", + "begin": { + "line": 14, + "column": 5, + "byte": 203 + }, + "end": { + "line": 14, + "column": 16, + "byte": 214 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 14, + "column": 18, + "byte": 216 + }, + "end": { + "line": 14, + "column": 25, + "byte": 223 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + }, + "schema": true + }, + "value": { + "range": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + }, + "schema": true + } + } + } + } + } + }, + "properties": { + "missing-schema": { + "value": "test", + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 4, + "column": 5, + "byte": 49 + }, + "end": { + "line": 5, + "column": 18, + "byte": 79 + } + } + } + }, + "missing-value": { + "unknown": true, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 9, + "column": 5, + "byte": 122 + }, + "end": { + "line": 10, + "column": 29, + "byte": 163 + } + } + } + }, + "not-object": { + "unknown": true, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 14, + "column": 5, + "byte": 203 + }, + "end": { + "line": 14, + "column": 25, + "byte": 223 + } + } + } + } + }, + "schema": { + "properties": { + "missing-schema": { + "type": "string", + "const": "test" + }, + "missing-value": true, + "not-object": true + }, + "type": "object", + "required": [ + "missing-schema", + "missing-value", + "not-object" + ] + }, + "executionContext": { + "properties": { + "currentEnvironment": { + "value": { + "name": { + "value": "builtin-conform-error", + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + }, + "pulumi": { + "value": { + "user": { + "value": { + "id": { + "value": "USER_123", + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + }, + "rootEnvironment": { + "value": { + "name": { + "value": "builtin-conform-error", + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform-error", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "schema": { + "properties": { + "currentEnvironment": { + "properties": { + "name": { + "type": "string", + "const": "builtin-conform-error" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "pulumi": { + "properties": { + "user": { + "properties": { + "id": { + "type": "string", + "const": "USER_123" + } + }, + "type": "object", + "required": [ + "id" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "rootEnvironment": { + "properties": { + "name": { + "type": "string", + "const": "builtin-conform-error" + } + }, + "type": "object", + "required": [ + "name" + ] + } + }, + "type": "object", + "required": [ + "currentEnvironment", + "pulumi", + "rootEnvironment" + ] + } + } + }, + "evalJsonRedacted": { + "missing-schema": "test", + "missing-value": "[unknown]", + "not-object": "[unknown]" + }, + "evalJSONRevealed": { + "missing-schema": "test", + "missing-value": "[unknown]", + "not-object": "[unknown]" + } +} diff --git a/eval/testdata/eval/builtin-conform/env.yaml b/eval/testdata/eval/builtin-conform/env.yaml new file mode 100644 index 00000000..9b70467c --- /dev/null +++ b/eval/testdata/eval/builtin-conform/env.yaml @@ -0,0 +1,71 @@ +values: + # Valid cases - should pass with no errors + valid-string: + fn::conform: + schema: { type: string } + value: "hello" + + valid-number: + fn::conform: + schema: { type: number, minimum: 0 } + value: 42 + + # Type violation - should emit error, still return 42 + type-error: + fn::conform: + schema: { type: string } + value: 42 + + # Object with required fields + missing-required: + fn::conform: + schema: + type: object + properties: + name: { type: string } + required: [name] + value: + other: "value" + + # String constraints + min-length-fail: + fn::conform: + schema: { type: string, minLength: 5 } + value: "hi" + + # Number constraints + number-range-fail: + fn::conform: + schema: { type: number, minimum: 10 } + value: 5 + + # Array validation + array-items-fail: + fn::conform: + schema: + type: array + items: { type: string } + value: ["hello", 42] + + # Schema from reference (dynamic schema) + my-schema: + type: string + minLength: 1 + dynamic-schema: + fn::conform: + schema: ${my-schema} + value: "" + + # Nested object validation + nested-fail: + fn::conform: + schema: + type: object + properties: + user: + type: object + properties: + age: { type: number } + value: + user: + age: "not a number" diff --git a/eval/testdata/eval/builtin-conform/expected.json b/eval/testdata/eval/builtin-conform/expected.json new file mode 100644 index 00000000..dfe7002e --- /dev/null +++ b/eval/testdata/eval/builtin-conform/expected.json @@ -0,0 +1,6450 @@ +{ + "checkDiags": [ + { + "Severity": 1, + "Summary": "expected string, got number", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 17, + "Column": 14, + "Byte": 363 + }, + "End": { + "Line": 17, + "Column": 16, + "Byte": 365 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"type-error\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "missing required properties: name", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 28, + "Column": 9, + "Byte": 570 + }, + "End": { + "Line": 28, + "Column": 21, + "Byte": 582 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"missing-required\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected a string of at least length 5", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 34, + "Column": 14, + "Byte": 703 + }, + "End": { + "Line": 34, + "Column": 16, + "Byte": 705 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"min-length-fail\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected a number greater than or equal to 10", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 40, + "Column": 14, + "Byte": 827 + }, + "End": { + "Line": 40, + "Column": 15, + "Byte": 828 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"number-range-fail\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected string, got number", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 48, + "Column": 24, + "Byte": 977 + }, + "End": { + "Line": 48, + "Column": 26, + "Byte": 979 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"array-items-fail\"][\"fn::conform\"].value[1]" + }, + { + "Severity": 1, + "Summary": "expected a string of at least length 1", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 57, + "Column": 14, + "Byte": 1147 + }, + "End": { + "Line": 57, + "Column": 14, + "Byte": 1147 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"dynamic-schema\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected number, got string", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 71, + "Column": 16, + "Byte": 1410 + }, + "End": { + "Line": 71, + "Column": 28, + "Byte": 1422 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"nested-fail\"][\"fn::conform\"].value.user.age" + } + ], + "check": { + "exprs": { + "array-items-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 44, + "column": 5, + "byte": 875 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + }, + "schema": { + "prefixItems": [ + { + "type": "string", + "const": "hello" + }, + { + "type": "number", + "const": 42 + } + ], + "items": false, + "type": "array" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 44, + "column": 5, + "byte": 875 + }, + "end": { + "line": 44, + "column": 16, + "byte": 886 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 45, + "column": 7, + "byte": 894 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 46, + "column": 9, + "byte": 910 + }, + "end": { + "line": 47, + "column": 30, + "byte": 951 + } + }, + "schema": { + "properties": { + "items": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "type": { + "type": "string", + "const": "array" + } + }, + "type": "object", + "required": [ + "items", + "type" + ] + }, + "keyRanges": { + "items": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 9, + "byte": 930 + }, + "end": { + "line": 47, + "column": 14, + "byte": 935 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 46, + "column": 9, + "byte": 910 + }, + "end": { + "line": 46, + "column": 13, + "byte": 914 + } + } + }, + "object": { + "items": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 16, + "byte": 937 + }, + "end": { + "line": 47, + "column": 30, + "byte": 951 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 18, + "byte": 939 + }, + "end": { + "line": 47, + "column": 22, + "byte": 943 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 24, + "byte": 945 + }, + "end": { + "line": 47, + "column": 30, + "byte": 951 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 46, + "column": 15, + "byte": 916 + }, + "end": { + "line": 46, + "column": 20, + "byte": 921 + } + }, + "schema": { + "type": "string", + "const": "array" + }, + "literal": "array" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 14, + "byte": 967 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + }, + "schema": { + "prefixItems": [ + { + "type": "string", + "const": "hello" + }, + { + "type": "number", + "const": 42 + } + ], + "items": false, + "type": "array" + }, + "list": [ + { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 15, + "byte": 968 + }, + "end": { + "line": 48, + "column": 20, + "byte": 973 + } + }, + "schema": { + "type": "string", + "const": "hello" + }, + "literal": "hello" + }, + { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 24, + "byte": 977 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "literal": 42 + } + ] + } + } + } + } + }, + "dynamic-schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 55, + "column": 5, + "byte": 1094 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 + } + }, + "schema": { + "type": "string", + "const": "" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 55, + "column": 5, + "byte": 1094 + }, + "end": { + "line": 55, + "column": 16, + "byte": 1105 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 56, + "column": 7, + "byte": 1113 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 56, + "column": 15, + "byte": 1121 + }, + "end": { + "line": 56, + "column": 27, + "byte": 1133 + } + }, + "schema": { + "properties": { + "minLength": { + "type": "number", + "const": 1 + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "symbol": [ + { + "key": "my-schema", + "range": { + "environment": "builtin-conform", + "begin": { + "line": 56, + "column": 17, + "byte": 1123 + }, + "end": { + "line": 56, + "column": 26, + "byte": 1132 + } + }, + "value": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 5, + "byte": 1042 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + } + } + ] + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 57, + "column": 14, + "byte": 1147 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 + } + }, + "schema": { + "type": "string", + "const": "" + }, + "literal": "" + } + } + } + } + }, + "min-length-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 32, + "column": 5, + "byte": 632 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + }, + "schema": { + "type": "string", + "const": "hi" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 32, + "column": 5, + "byte": 632 + }, + "end": { + "line": 32, + "column": 16, + "byte": 643 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 7, + "byte": 651 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 15, + "byte": 659 + }, + "end": { + "line": 33, + "column": 43, + "byte": 687 + } + }, + "schema": { + "properties": { + "minLength": { + "type": "number", + "const": 5 + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "keyRanges": { + "minLength": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 31, + "byte": 675 + }, + "end": { + "line": 33, + "column": 40, + "byte": 684 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 17, + "byte": 661 + }, + "end": { + "line": 33, + "column": 21, + "byte": 665 + } + } + }, + "object": { + "minLength": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 42, + "byte": 686 + }, + "end": { + "line": 33, + "column": 43, + "byte": 687 + } + }, + "schema": { + "type": "number", + "const": 5 + }, + "literal": 5 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 23, + "byte": 667 + }, + "end": { + "line": 33, + "column": 29, + "byte": 673 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 34, + "column": 14, + "byte": 703 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + }, + "schema": { + "type": "string", + "const": "hi" + }, + "literal": "hi" + } + } + } + } + }, + "missing-required": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 21, + "column": 5, + "byte": 423 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + }, + "schema": { + "properties": { + "other": { + "type": "string", + "const": "value" + } + }, + "type": "object", + "required": [ + "other" + ] + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 21, + "column": 5, + "byte": 423 + }, + "end": { + "line": 21, + "column": 16, + "byte": 434 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 22, + "column": 7, + "byte": 442 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 23, + "column": 9, + "byte": 458 + }, + "end": { + "line": 26, + "column": 24, + "byte": 547 + } + }, + "schema": { + "properties": { + "properties": { + "properties": { + "name": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "required": { + "prefixItems": [ + { + "type": "string", + "const": "name" + } + ], + "items": false, + "type": "array" + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "required", + "type" + ] + }, + "keyRanges": { + "properties": { + "environment": "builtin-conform", + "begin": { + "line": 24, + "column": 9, + "byte": 479 + }, + "end": { + "line": 24, + "column": 19, + "byte": 489 + } + }, + "required": { + "environment": "builtin-conform", + "begin": { + "line": 26, + "column": 9, + "byte": 532 + }, + "end": { + "line": 26, + "column": 17, + "byte": 540 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 23, + "column": 9, + "byte": 458 + }, + "end": { + "line": 23, + "column": 13, + "byte": 462 + } + } + }, + "object": { + "properties": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 11, + "byte": 501 + }, + "end": { + "line": 25, + "column": 31, + "byte": 521 + } + }, + "schema": { + "properties": { + "name": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "keyRanges": { + "name": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 11, + "byte": 501 + }, + "end": { + "line": 25, + "column": 15, + "byte": 505 + } + } + }, + "object": { + "name": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 17, + "byte": 507 + }, + "end": { + "line": 25, + "column": 31, + "byte": 521 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 19, + "byte": 509 + }, + "end": { + "line": 25, + "column": 23, + "byte": 513 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 25, + "byte": 515 + }, + "end": { + "line": 25, + "column": 31, + "byte": 521 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + } + } + }, + "required": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 26, + "column": 19, + "byte": 542 + }, + "end": { + "line": 26, + "column": 24, + "byte": 547 + } + }, + "schema": { + "prefixItems": [ + { + "type": "string", + "const": "name" + } + ], + "items": false, + "type": "array" + }, + "list": [ + { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 26, + "column": 20, + "byte": 543 + }, + "end": { + "line": 26, + "column": 24, + "byte": 547 + } + }, + "schema": { + "type": "string", + "const": "name" + }, + "literal": "name" + } + ] + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 23, + "column": 15, + "byte": 464 + }, + "end": { + "line": 23, + "column": 21, + "byte": 470 + } + }, + "schema": { + "type": "string", + "const": "object" + }, + "literal": "object" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 28, + "column": 9, + "byte": 570 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + }, + "schema": { + "properties": { + "other": { + "type": "string", + "const": "value" + } + }, + "type": "object", + "required": [ + "other" + ] + }, + "keyRanges": { + "other": { + "environment": "builtin-conform", + "begin": { + "line": 28, + "column": 9, + "byte": 570 + }, + "end": { + "line": 28, + "column": 14, + "byte": 575 + } + } + }, + "object": { + "other": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 28, + "column": 16, + "byte": 577 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + }, + "schema": { + "type": "string", + "const": "value" + }, + "literal": "value" + } + } + } + } + } + } + }, + "my-schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 5, + "byte": 1042 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + }, + "schema": { + "properties": { + "minLength": { + "type": "number", + "const": 1 + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "keyRanges": { + "minLength": { + "environment": "builtin-conform", + "begin": { + "line": 53, + "column": 5, + "byte": 1059 + }, + "end": { + "line": 53, + "column": 14, + "byte": 1068 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 5, + "byte": 1042 + }, + "end": { + "line": 52, + "column": 9, + "byte": 1046 + } + } + }, + "object": { + "minLength": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 53, + "column": 16, + "byte": 1070 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + }, + "schema": { + "type": "number", + "const": 1 + }, + "literal": 1 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 11, + "byte": 1048 + }, + "end": { + "line": 52, + "column": 17, + "byte": 1054 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "nested-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 61, + "column": 5, + "byte": 1199 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "properties": { + "user": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 61, + "column": 5, + "byte": 1199 + }, + "end": { + "line": 61, + "column": 16, + "byte": 1210 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 62, + "column": 7, + "byte": 1218 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 63, + "column": 9, + "byte": 1234 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "properties": { + "properties": { + "user": { + "properties": { + "properties": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + }, + "keyRanges": { + "properties": { + "environment": "builtin-conform", + "begin": { + "line": 64, + "column": 9, + "byte": 1255 + }, + "end": { + "line": 64, + "column": 19, + "byte": 1265 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 63, + "column": 9, + "byte": 1234 + }, + "end": { + "line": 63, + "column": 13, + "byte": 1238 + } + } + }, + "object": { + "properties": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 65, + "column": 11, + "byte": 1277 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "user": { + "properties": { + "properties": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "keyRanges": { + "user": { + "environment": "builtin-conform", + "begin": { + "line": 65, + "column": 11, + "byte": 1277 + }, + "end": { + "line": 65, + "column": 15, + "byte": 1281 + } + } + }, + "object": { + "user": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 66, + "column": 13, + "byte": 1295 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "properties": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + }, + "keyRanges": { + "properties": { + "environment": "builtin-conform", + "begin": { + "line": 67, + "column": 13, + "byte": 1320 + }, + "end": { + "line": 67, + "column": 23, + "byte": 1330 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 66, + "column": 13, + "byte": 1295 + }, + "end": { + "line": 66, + "column": 17, + "byte": 1299 + } + } + }, + "object": { + "properties": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 15, + "byte": 1346 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "keyRanges": { + "age": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 15, + "byte": 1346 + }, + "end": { + "line": 68, + "column": 18, + "byte": 1349 + } + } + }, + "object": { + "age": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 20, + "byte": 1351 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 22, + "byte": 1353 + }, + "end": { + "line": 68, + "column": 26, + "byte": 1357 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 28, + "byte": 1359 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "type": "string", + "const": "number" + }, + "literal": "number" + } + } + } + } + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 66, + "column": 19, + "byte": 1301 + }, + "end": { + "line": 66, + "column": 25, + "byte": 1307 + } + }, + "schema": { + "type": "string", + "const": "object" + }, + "literal": "object" + } + } + } + } + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 63, + "column": 15, + "byte": 1240 + }, + "end": { + "line": 63, + "column": 21, + "byte": 1246 + } + }, + "schema": { + "type": "string", + "const": "object" + }, + "literal": "object" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 70, + "column": 9, + "byte": 1389 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "properties": { + "user": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "keyRanges": { + "user": { + "environment": "builtin-conform", + "begin": { + "line": 70, + "column": 9, + "byte": 1389 + }, + "end": { + "line": 70, + "column": 13, + "byte": 1393 + } + } + }, + "object": { + "user": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 11, + "byte": 1405 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "keyRanges": { + "age": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 11, + "byte": 1405 + }, + "end": { + "line": 71, + "column": 14, + "byte": 1408 + } + } + }, + "object": { + "age": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 16, + "byte": 1410 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "type": "string", + "const": "not a number" + }, + "literal": "not a number" + } + } + } + } + } + } + } + } + }, + "number-range-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 38, + "column": 5, + "byte": 757 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + }, + "schema": { + "type": "number", + "const": 5 + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 38, + "column": 5, + "byte": 757 + }, + "end": { + "line": 38, + "column": 16, + "byte": 768 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 7, + "byte": 776 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 15, + "byte": 784 + }, + "end": { + "line": 39, + "column": 42, + "byte": 811 + } + }, + "schema": { + "properties": { + "minimum": { + "type": "number", + "const": 10 + }, + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "minimum", + "type" + ] + }, + "keyRanges": { + "minimum": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 31, + "byte": 800 + }, + "end": { + "line": 39, + "column": 38, + "byte": 807 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 17, + "byte": 786 + }, + "end": { + "line": 39, + "column": 21, + "byte": 790 + } + } + }, + "object": { + "minimum": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 40, + "byte": 809 + }, + "end": { + "line": 39, + "column": 42, + "byte": 811 + } + }, + "schema": { + "type": "number", + "const": 10 + }, + "literal": 10 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 23, + "byte": 792 + }, + "end": { + "line": 39, + "column": 29, + "byte": 798 + } + }, + "schema": { + "type": "string", + "const": "number" + }, + "literal": "number" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 40, + "column": 14, + "byte": 827 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + }, + "schema": { + "type": "number", + "const": 5 + }, + "literal": 5 + } + } + } + } + }, + "type-error": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 15, + "column": 5, + "byte": 306 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 15, + "column": 5, + "byte": 306 + }, + "end": { + "line": 15, + "column": 16, + "byte": 317 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 7, + "byte": 325 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 15, + "byte": 333 + }, + "end": { + "line": 16, + "column": 29, + "byte": 347 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 17, + "byte": 335 + }, + "end": { + "line": 16, + "column": 21, + "byte": 339 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 23, + "byte": 341 + }, + "end": { + "line": 16, + "column": 29, + "byte": 347 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 17, + "column": 14, + "byte": 363 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "literal": 42 + } + } + } + } + }, + "valid-number": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 9, + "column": 5, + "byte": 159 + }, + "end": { + "line": 11, + "column": 16, + "byte": 230 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 9, + "column": 5, + "byte": 159 + }, + "end": { + "line": 9, + "column": 16, + "byte": 170 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 7, + "byte": 178 + }, + "end": { + "line": 11, + "column": 16, + "byte": 230 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 15, + "byte": 186 + }, + "end": { + "line": 10, + "column": 41, + "byte": 212 + } + }, + "schema": { + "properties": { + "minimum": { + "type": "number", + "const": 0 + }, + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "minimum", + "type" + ] + }, + "keyRanges": { + "minimum": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 31, + "byte": 202 + }, + "end": { + "line": 10, + "column": 38, + "byte": 209 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 17, + "byte": 188 + }, + "end": { + "line": 10, + "column": 21, + "byte": 192 + } + } + }, + "object": { + "minimum": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 40, + "byte": 211 + }, + "end": { + "line": 10, + "column": 41, + "byte": 212 + } + }, + "schema": { + "type": "number", + "const": 0 + }, + "literal": 0 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 23, + "byte": 194 + }, + "end": { + "line": 10, + "column": 29, + "byte": 200 + } + }, + "schema": { + "type": "string", + "const": "number" + }, + "literal": "number" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 11, + "column": 14, + "byte": 228 + }, + "end": { + "line": 11, + "column": 16, + "byte": 230 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "literal": 42 + } + } + } + } + }, + "valid-string": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 4, + "column": 5, + "byte": 73 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + }, + "schema": { + "type": "string", + "const": "hello" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 4, + "column": 5, + "byte": 73 + }, + "end": { + "line": 4, + "column": 16, + "byte": 84 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 7, + "byte": 92 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 15, + "byte": 100 + }, + "end": { + "line": 5, + "column": 29, + "byte": 114 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 17, + "byte": 102 + }, + "end": { + "line": 5, + "column": 21, + "byte": 106 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 23, + "byte": 108 + }, + "end": { + "line": 5, + "column": 29, + "byte": 114 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 6, + "column": 14, + "byte": 130 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + }, + "schema": { + "type": "string", + "const": "hello" + }, + "literal": "hello" + } + } + } + } + } + }, + "properties": { + "array-items-fail": { + "value": [ + { + "value": "hello", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 15, + "byte": 968 + }, + "end": { + "line": 48, + "column": 20, + "byte": 973 + } + } + } + }, + { + "value": 42, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 24, + "byte": 977 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + } + } + } + ], + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 44, + "column": 5, + "byte": 875 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + } + } + }, + "dynamic-schema": { + "value": "", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 55, + "column": 5, + "byte": 1094 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 + } + } + } + }, + "min-length-fail": { + "value": "hi", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 32, + "column": 5, + "byte": 632 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + } + } + }, + "missing-required": { + "value": { + "other": { + "value": "value", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 28, + "column": 16, + "byte": 577 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 21, + "column": 5, + "byte": 423 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + } + } + }, + "my-schema": { + "value": { + "minLength": { + "value": 1, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 53, + "column": 16, + "byte": 1070 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + } + } + }, + "type": { + "value": "string", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 11, + "byte": 1048 + }, + "end": { + "line": 52, + "column": 17, + "byte": 1054 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 5, + "byte": 1042 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + } + } + }, + "nested-fail": { + "value": { + "user": { + "value": { + "age": { + "value": "not a number", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 16, + "byte": 1410 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 11, + "byte": 1405 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 61, + "column": 5, + "byte": 1199 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + } + } + }, + "number-range-fail": { + "value": 5, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 38, + "column": 5, + "byte": 757 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + } + } + }, + "type-error": { + "value": 42, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 15, + "column": 5, + "byte": 306 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + } + } + }, + "valid-number": { + "value": 42, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 9, + "column": 5, + "byte": 159 + }, + "end": { + "line": 11, + "column": 16, + "byte": 230 + } + } + } + }, + "valid-string": { + "value": "hello", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 4, + "column": 5, + "byte": 73 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + } + } + } + }, + "schema": { + "properties": { + "array-items-fail": { + "prefixItems": [ + { + "type": "string", + "const": "hello" + }, + { + "type": "number", + "const": 42 + } + ], + "items": false, + "type": "array" + }, + "dynamic-schema": { + "type": "string", + "const": "" + }, + "min-length-fail": { + "type": "string", + "const": "hi" + }, + "missing-required": { + "properties": { + "other": { + "type": "string", + "const": "value" + } + }, + "type": "object", + "required": [ + "other" + ] + }, + "my-schema": { + "properties": { + "minLength": { + "type": "number", + "const": 1 + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "nested-fail": { + "properties": { + "user": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "number-range-fail": { + "type": "number", + "const": 5 + }, + "type-error": { + "type": "number", + "const": 42 + }, + "valid-number": { + "type": "number", + "const": 42 + }, + "valid-string": { + "type": "string", + "const": "hello" + } + }, + "type": "object", + "required": [ + "array-items-fail", + "dynamic-schema", + "min-length-fail", + "missing-required", + "my-schema", + "nested-fail", + "number-range-fail", + "type-error", + "valid-number", + "valid-string" + ] + }, + "executionContext": { + "properties": { + "currentEnvironment": { + "value": { + "name": { + "value": "builtin-conform", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + }, + "pulumi": { + "value": { + "user": { + "value": { + "id": { + "value": "USER_123", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + }, + "rootEnvironment": { + "value": { + "name": { + "value": "builtin-conform", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "schema": { + "properties": { + "currentEnvironment": { + "properties": { + "name": { + "type": "string", + "const": "builtin-conform" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "pulumi": { + "properties": { + "user": { + "properties": { + "id": { + "type": "string", + "const": "USER_123" + } + }, + "type": "object", + "required": [ + "id" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "rootEnvironment": { + "properties": { + "name": { + "type": "string", + "const": "builtin-conform" + } + }, + "type": "object", + "required": [ + "name" + ] + } + }, + "type": "object", + "required": [ + "currentEnvironment", + "pulumi", + "rootEnvironment" + ] + } + } + }, + "checkJson": { + "array-items-fail": [ + "hello", + 42 + ], + "dynamic-schema": "", + "min-length-fail": "hi", + "missing-required": { + "other": "value" + }, + "my-schema": { + "minLength": 1, + "type": "string" + }, + "nested-fail": { + "user": { + "age": "not a number" + } + }, + "number-range-fail": 5, + "type-error": 42, + "valid-number": 42, + "valid-string": "hello" + }, + "evalDiags": [ + { + "Severity": 1, + "Summary": "expected string, got number", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 17, + "Column": 14, + "Byte": 363 + }, + "End": { + "Line": 17, + "Column": 16, + "Byte": 365 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"type-error\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "missing required properties: name", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 28, + "Column": 9, + "Byte": 570 + }, + "End": { + "Line": 28, + "Column": 21, + "Byte": 582 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"missing-required\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected a string of at least length 5", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 34, + "Column": 14, + "Byte": 703 + }, + "End": { + "Line": 34, + "Column": 16, + "Byte": 705 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"min-length-fail\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected a number greater than or equal to 10", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 40, + "Column": 14, + "Byte": 827 + }, + "End": { + "Line": 40, + "Column": 15, + "Byte": 828 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"number-range-fail\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected string, got number", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 48, + "Column": 24, + "Byte": 977 + }, + "End": { + "Line": 48, + "Column": 26, + "Byte": 979 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"array-items-fail\"][\"fn::conform\"].value[1]" + }, + { + "Severity": 1, + "Summary": "expected a string of at least length 1", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 57, + "Column": 14, + "Byte": 1147 + }, + "End": { + "Line": 57, + "Column": 14, + "Byte": 1147 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"dynamic-schema\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected number, got string", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 71, + "Column": 16, + "Byte": 1410 + }, + "End": { + "Line": 71, + "Column": 28, + "Byte": 1422 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"nested-fail\"][\"fn::conform\"].value.user.age" + } + ], + "eval": { + "exprs": { + "array-items-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 44, + "column": 5, + "byte": 875 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + }, + "schema": { + "prefixItems": [ + { + "type": "string", + "const": "hello" + }, + { + "type": "number", + "const": 42 + } + ], + "items": false, + "type": "array" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 44, + "column": 5, + "byte": 875 + }, + "end": { + "line": 44, + "column": 16, + "byte": 886 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 45, + "column": 7, + "byte": 894 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 46, + "column": 9, + "byte": 910 + }, + "end": { + "line": 47, + "column": 30, + "byte": 951 + } + }, + "schema": { + "properties": { + "items": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "type": { + "type": "string", + "const": "array" + } + }, + "type": "object", + "required": [ + "items", + "type" + ] + }, + "keyRanges": { + "items": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 9, + "byte": 930 + }, + "end": { + "line": 47, + "column": 14, + "byte": 935 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 46, + "column": 9, + "byte": 910 + }, + "end": { + "line": 46, + "column": 13, + "byte": 914 + } + } + }, + "object": { + "items": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 16, + "byte": 937 + }, + "end": { + "line": 47, + "column": 30, + "byte": 951 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 18, + "byte": 939 + }, + "end": { + "line": 47, + "column": 22, + "byte": 943 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 24, + "byte": 945 + }, + "end": { + "line": 47, + "column": 30, + "byte": 951 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 46, + "column": 15, + "byte": 916 + }, + "end": { + "line": 46, + "column": 20, + "byte": 921 + } + }, + "schema": { + "type": "string", + "const": "array" + }, + "literal": "array" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 14, + "byte": 967 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + }, + "schema": { + "prefixItems": [ + { + "type": "string", + "const": "hello" + }, + { + "type": "number", + "const": 42 + } + ], + "items": false, + "type": "array" + }, + "list": [ + { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 15, + "byte": 968 + }, + "end": { + "line": 48, + "column": 20, + "byte": 973 + } + }, + "schema": { + "type": "string", + "const": "hello" + }, + "literal": "hello" + }, + { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 24, + "byte": 977 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "literal": 42 + } + ] + } + } + } + } + }, + "dynamic-schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 55, + "column": 5, + "byte": 1094 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 + } + }, + "schema": { + "type": "string", + "const": "" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 55, + "column": 5, + "byte": 1094 + }, + "end": { + "line": 55, + "column": 16, + "byte": 1105 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 56, + "column": 7, + "byte": 1113 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 56, + "column": 15, + "byte": 1121 + }, + "end": { + "line": 56, + "column": 27, + "byte": 1133 + } + }, + "schema": { + "properties": { + "minLength": { + "type": "number", + "const": 1 + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "symbol": [ + { + "key": "my-schema", + "range": { + "environment": "builtin-conform", + "begin": { + "line": 56, + "column": 17, + "byte": 1123 + }, + "end": { + "line": 56, + "column": 26, + "byte": 1132 + } + }, + "value": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 5, + "byte": 1042 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + } + } + ] + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 57, + "column": 14, + "byte": 1147 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 + } + }, + "schema": { + "type": "string", + "const": "" + }, + "literal": "" + } + } + } + } + }, + "min-length-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 32, + "column": 5, + "byte": 632 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + }, + "schema": { + "type": "string", + "const": "hi" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 32, + "column": 5, + "byte": 632 + }, + "end": { + "line": 32, + "column": 16, + "byte": 643 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 7, + "byte": 651 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 15, + "byte": 659 + }, + "end": { + "line": 33, + "column": 43, + "byte": 687 + } + }, + "schema": { + "properties": { + "minLength": { + "type": "number", + "const": 5 + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "keyRanges": { + "minLength": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 31, + "byte": 675 + }, + "end": { + "line": 33, + "column": 40, + "byte": 684 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 17, + "byte": 661 + }, + "end": { + "line": 33, + "column": 21, + "byte": 665 + } + } + }, + "object": { + "minLength": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 42, + "byte": 686 + }, + "end": { + "line": 33, + "column": 43, + "byte": 687 + } + }, + "schema": { + "type": "number", + "const": 5 + }, + "literal": 5 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 23, + "byte": 667 + }, + "end": { + "line": 33, + "column": 29, + "byte": 673 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 34, + "column": 14, + "byte": 703 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + }, + "schema": { + "type": "string", + "const": "hi" + }, + "literal": "hi" + } + } + } + } + }, + "missing-required": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 21, + "column": 5, + "byte": 423 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + }, + "schema": { + "properties": { + "other": { + "type": "string", + "const": "value" + } + }, + "type": "object", + "required": [ + "other" + ] + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 21, + "column": 5, + "byte": 423 + }, + "end": { + "line": 21, + "column": 16, + "byte": 434 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 22, + "column": 7, + "byte": 442 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 23, + "column": 9, + "byte": 458 + }, + "end": { + "line": 26, + "column": 24, + "byte": 547 + } + }, + "schema": { + "properties": { + "properties": { + "properties": { + "name": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "required": { + "prefixItems": [ + { + "type": "string", + "const": "name" + } + ], + "items": false, + "type": "array" + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "required", + "type" + ] + }, + "keyRanges": { + "properties": { + "environment": "builtin-conform", + "begin": { + "line": 24, + "column": 9, + "byte": 479 + }, + "end": { + "line": 24, + "column": 19, + "byte": 489 + } + }, + "required": { + "environment": "builtin-conform", + "begin": { + "line": 26, + "column": 9, + "byte": 532 + }, + "end": { + "line": 26, + "column": 17, + "byte": 540 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 23, + "column": 9, + "byte": 458 + }, + "end": { + "line": 23, + "column": 13, + "byte": 462 + } + } + }, + "object": { + "properties": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 11, + "byte": 501 + }, + "end": { + "line": 25, + "column": 31, + "byte": 521 + } + }, + "schema": { + "properties": { + "name": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "keyRanges": { + "name": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 11, + "byte": 501 + }, + "end": { + "line": 25, + "column": 15, + "byte": 505 + } + } + }, + "object": { + "name": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 17, + "byte": 507 + }, + "end": { + "line": 25, + "column": 31, + "byte": 521 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 19, + "byte": 509 + }, + "end": { + "line": 25, + "column": 23, + "byte": 513 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 25, + "byte": 515 + }, + "end": { + "line": 25, + "column": 31, + "byte": 521 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + } + } + }, + "required": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 26, + "column": 19, + "byte": 542 + }, + "end": { + "line": 26, + "column": 24, + "byte": 547 + } + }, + "schema": { + "prefixItems": [ + { + "type": "string", + "const": "name" + } + ], + "items": false, + "type": "array" + }, + "list": [ + { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 26, + "column": 20, + "byte": 543 + }, + "end": { + "line": 26, + "column": 24, + "byte": 547 + } + }, + "schema": { + "type": "string", + "const": "name" + }, + "literal": "name" + } + ] + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 23, + "column": 15, + "byte": 464 + }, + "end": { + "line": 23, + "column": 21, + "byte": 470 + } + }, + "schema": { + "type": "string", + "const": "object" + }, + "literal": "object" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 28, + "column": 9, + "byte": 570 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + }, + "schema": { + "properties": { + "other": { + "type": "string", + "const": "value" + } + }, + "type": "object", + "required": [ + "other" + ] + }, + "keyRanges": { + "other": { + "environment": "builtin-conform", + "begin": { + "line": 28, + "column": 9, + "byte": 570 + }, + "end": { + "line": 28, + "column": 14, + "byte": 575 + } + } + }, + "object": { + "other": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 28, + "column": 16, + "byte": 577 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + }, + "schema": { + "type": "string", + "const": "value" + }, + "literal": "value" + } + } + } + } + } + } + }, + "my-schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 5, + "byte": 1042 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + }, + "schema": { + "properties": { + "minLength": { + "type": "number", + "const": 1 + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "keyRanges": { + "minLength": { + "environment": "builtin-conform", + "begin": { + "line": 53, + "column": 5, + "byte": 1059 + }, + "end": { + "line": 53, + "column": 14, + "byte": 1068 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 5, + "byte": 1042 + }, + "end": { + "line": 52, + "column": 9, + "byte": 1046 + } + } + }, + "object": { + "minLength": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 53, + "column": 16, + "byte": 1070 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + }, + "schema": { + "type": "number", + "const": 1 + }, + "literal": 1 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 11, + "byte": 1048 + }, + "end": { + "line": 52, + "column": 17, + "byte": 1054 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "nested-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 61, + "column": 5, + "byte": 1199 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "properties": { + "user": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 61, + "column": 5, + "byte": 1199 + }, + "end": { + "line": 61, + "column": 16, + "byte": 1210 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 62, + "column": 7, + "byte": 1218 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 63, + "column": 9, + "byte": 1234 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "properties": { + "properties": { + "user": { + "properties": { + "properties": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + }, + "keyRanges": { + "properties": { + "environment": "builtin-conform", + "begin": { + "line": 64, + "column": 9, + "byte": 1255 + }, + "end": { + "line": 64, + "column": 19, + "byte": 1265 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 63, + "column": 9, + "byte": 1234 + }, + "end": { + "line": 63, + "column": 13, + "byte": 1238 + } + } + }, + "object": { + "properties": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 65, + "column": 11, + "byte": 1277 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "user": { + "properties": { + "properties": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "keyRanges": { + "user": { + "environment": "builtin-conform", + "begin": { + "line": 65, + "column": 11, + "byte": 1277 + }, + "end": { + "line": 65, + "column": 15, + "byte": 1281 + } + } + }, + "object": { + "user": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 66, + "column": 13, + "byte": 1295 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "properties": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + }, + "keyRanges": { + "properties": { + "environment": "builtin-conform", + "begin": { + "line": 67, + "column": 13, + "byte": 1320 + }, + "end": { + "line": 67, + "column": 23, + "byte": 1330 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 66, + "column": 13, + "byte": 1295 + }, + "end": { + "line": 66, + "column": 17, + "byte": 1299 + } + } + }, + "object": { + "properties": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 15, + "byte": 1346 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "keyRanges": { + "age": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 15, + "byte": 1346 + }, + "end": { + "line": 68, + "column": 18, + "byte": 1349 + } + } + }, + "object": { + "age": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 20, + "byte": 1351 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 22, + "byte": 1353 + }, + "end": { + "line": 68, + "column": 26, + "byte": 1357 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 28, + "byte": 1359 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "type": "string", + "const": "number" + }, + "literal": "number" + } + } + } + } + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 66, + "column": 19, + "byte": 1301 + }, + "end": { + "line": 66, + "column": 25, + "byte": 1307 + } + }, + "schema": { + "type": "string", + "const": "object" + }, + "literal": "object" + } + } + } + } + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 63, + "column": 15, + "byte": 1240 + }, + "end": { + "line": 63, + "column": 21, + "byte": 1246 + } + }, + "schema": { + "type": "string", + "const": "object" + }, + "literal": "object" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 70, + "column": 9, + "byte": 1389 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "properties": { + "user": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "keyRanges": { + "user": { + "environment": "builtin-conform", + "begin": { + "line": 70, + "column": 9, + "byte": 1389 + }, + "end": { + "line": 70, + "column": 13, + "byte": 1393 + } + } + }, + "object": { + "user": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 11, + "byte": 1405 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "keyRanges": { + "age": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 11, + "byte": 1405 + }, + "end": { + "line": 71, + "column": 14, + "byte": 1408 + } + } + }, + "object": { + "age": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 16, + "byte": 1410 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "type": "string", + "const": "not a number" + }, + "literal": "not a number" + } + } + } + } + } + } + } + } + }, + "number-range-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 38, + "column": 5, + "byte": 757 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + }, + "schema": { + "type": "number", + "const": 5 + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 38, + "column": 5, + "byte": 757 + }, + "end": { + "line": 38, + "column": 16, + "byte": 768 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 7, + "byte": 776 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 15, + "byte": 784 + }, + "end": { + "line": 39, + "column": 42, + "byte": 811 + } + }, + "schema": { + "properties": { + "minimum": { + "type": "number", + "const": 10 + }, + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "minimum", + "type" + ] + }, + "keyRanges": { + "minimum": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 31, + "byte": 800 + }, + "end": { + "line": 39, + "column": 38, + "byte": 807 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 17, + "byte": 786 + }, + "end": { + "line": 39, + "column": 21, + "byte": 790 + } + } + }, + "object": { + "minimum": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 40, + "byte": 809 + }, + "end": { + "line": 39, + "column": 42, + "byte": 811 + } + }, + "schema": { + "type": "number", + "const": 10 + }, + "literal": 10 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 23, + "byte": 792 + }, + "end": { + "line": 39, + "column": 29, + "byte": 798 + } + }, + "schema": { + "type": "string", + "const": "number" + }, + "literal": "number" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 40, + "column": 14, + "byte": 827 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + }, + "schema": { + "type": "number", + "const": 5 + }, + "literal": 5 + } + } + } + } + }, + "type-error": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 15, + "column": 5, + "byte": 306 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 15, + "column": 5, + "byte": 306 + }, + "end": { + "line": 15, + "column": 16, + "byte": 317 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 7, + "byte": 325 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 15, + "byte": 333 + }, + "end": { + "line": 16, + "column": 29, + "byte": 347 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 17, + "byte": 335 + }, + "end": { + "line": 16, + "column": 21, + "byte": 339 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 23, + "byte": 341 + }, + "end": { + "line": 16, + "column": 29, + "byte": 347 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 17, + "column": 14, + "byte": 363 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "literal": 42 + } + } + } + } + }, + "valid-number": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 9, + "column": 5, + "byte": 159 + }, + "end": { + "line": 11, + "column": 16, + "byte": 230 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 9, + "column": 5, + "byte": 159 + }, + "end": { + "line": 9, + "column": 16, + "byte": 170 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 7, + "byte": 178 + }, + "end": { + "line": 11, + "column": 16, + "byte": 230 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 15, + "byte": 186 + }, + "end": { + "line": 10, + "column": 41, + "byte": 212 + } + }, + "schema": { + "properties": { + "minimum": { + "type": "number", + "const": 0 + }, + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "minimum", + "type" + ] + }, + "keyRanges": { + "minimum": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 31, + "byte": 202 + }, + "end": { + "line": 10, + "column": 38, + "byte": 209 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 17, + "byte": 188 + }, + "end": { + "line": 10, + "column": 21, + "byte": 192 + } + } + }, + "object": { + "minimum": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 40, + "byte": 211 + }, + "end": { + "line": 10, + "column": 41, + "byte": 212 + } + }, + "schema": { + "type": "number", + "const": 0 + }, + "literal": 0 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 23, + "byte": 194 + }, + "end": { + "line": 10, + "column": 29, + "byte": 200 + } + }, + "schema": { + "type": "string", + "const": "number" + }, + "literal": "number" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 11, + "column": 14, + "byte": 228 + }, + "end": { + "line": 11, + "column": 16, + "byte": 230 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "literal": 42 + } + } + } + } + }, + "valid-string": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 4, + "column": 5, + "byte": 73 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + }, + "schema": { + "type": "string", + "const": "hello" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 4, + "column": 5, + "byte": 73 + }, + "end": { + "line": 4, + "column": 16, + "byte": 84 + } + }, + "argSchema": { + "properties": { + "schema": true, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 7, + "byte": 92 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 15, + "byte": 100 + }, + "end": { + "line": 5, + "column": 29, + "byte": 114 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 17, + "byte": 102 + }, + "end": { + "line": 5, + "column": 21, + "byte": 106 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 23, + "byte": 108 + }, + "end": { + "line": 5, + "column": 29, + "byte": 114 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 6, + "column": 14, + "byte": 130 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + }, + "schema": { + "type": "string", + "const": "hello" + }, + "literal": "hello" + } + } + } + } + } + }, + "properties": { + "array-items-fail": { + "value": [ + { + "value": "hello", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 15, + "byte": 968 + }, + "end": { + "line": 48, + "column": 20, + "byte": 973 + } + } + } + }, + { + "value": 42, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 24, + "byte": 977 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + } + } + } + ], + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 44, + "column": 5, + "byte": 875 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + } + } + }, + "dynamic-schema": { + "value": "", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 55, + "column": 5, + "byte": 1094 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 + } + } + } + }, + "min-length-fail": { + "value": "hi", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 32, + "column": 5, + "byte": 632 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + } + } + }, + "missing-required": { + "value": { + "other": { + "value": "value", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 28, + "column": 16, + "byte": 577 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 21, + "column": 5, + "byte": 423 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + } + } + }, + "my-schema": { + "value": { + "minLength": { + "value": 1, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 53, + "column": 16, + "byte": 1070 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + } + } + }, + "type": { + "value": "string", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 11, + "byte": 1048 + }, + "end": { + "line": 52, + "column": 17, + "byte": 1054 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 5, + "byte": 1042 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + } + } + }, + "nested-fail": { + "value": { + "user": { + "value": { + "age": { + "value": "not a number", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 16, + "byte": 1410 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 11, + "byte": 1405 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 61, + "column": 5, + "byte": 1199 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + } + } + }, + "number-range-fail": { + "value": 5, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 38, + "column": 5, + "byte": 757 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + } + } + }, + "type-error": { + "value": 42, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 15, + "column": 5, + "byte": 306 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + } + } + }, + "valid-number": { + "value": 42, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 9, + "column": 5, + "byte": 159 + }, + "end": { + "line": 11, + "column": 16, + "byte": 230 + } + } + } + }, + "valid-string": { + "value": "hello", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 4, + "column": 5, + "byte": 73 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + } + } + } + }, + "schema": { + "properties": { + "array-items-fail": { + "prefixItems": [ + { + "type": "string", + "const": "hello" + }, + { + "type": "number", + "const": 42 + } + ], + "items": false, + "type": "array" + }, + "dynamic-schema": { + "type": "string", + "const": "" + }, + "min-length-fail": { + "type": "string", + "const": "hi" + }, + "missing-required": { + "properties": { + "other": { + "type": "string", + "const": "value" + } + }, + "type": "object", + "required": [ + "other" + ] + }, + "my-schema": { + "properties": { + "minLength": { + "type": "number", + "const": 1 + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "nested-fail": { + "properties": { + "user": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "number-range-fail": { + "type": "number", + "const": 5 + }, + "type-error": { + "type": "number", + "const": 42 + }, + "valid-number": { + "type": "number", + "const": 42 + }, + "valid-string": { + "type": "string", + "const": "hello" + } + }, + "type": "object", + "required": [ + "array-items-fail", + "dynamic-schema", + "min-length-fail", + "missing-required", + "my-schema", + "nested-fail", + "number-range-fail", + "type-error", + "valid-number", + "valid-string" + ] + }, + "executionContext": { + "properties": { + "currentEnvironment": { + "value": { + "name": { + "value": "builtin-conform", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + }, + "pulumi": { + "value": { + "user": { + "value": { + "id": { + "value": "USER_123", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + }, + "rootEnvironment": { + "value": { + "name": { + "value": "builtin-conform", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "schema": { + "properties": { + "currentEnvironment": { + "properties": { + "name": { + "type": "string", + "const": "builtin-conform" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "pulumi": { + "properties": { + "user": { + "properties": { + "id": { + "type": "string", + "const": "USER_123" + } + }, + "type": "object", + "required": [ + "id" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "rootEnvironment": { + "properties": { + "name": { + "type": "string", + "const": "builtin-conform" + } + }, + "type": "object", + "required": [ + "name" + ] + } + }, + "type": "object", + "required": [ + "currentEnvironment", + "pulumi", + "rootEnvironment" + ] + } + } + }, + "evalJsonRedacted": { + "array-items-fail": [ + "hello", + 42 + ], + "dynamic-schema": "", + "min-length-fail": "hi", + "missing-required": { + "other": "value" + }, + "my-schema": { + "minLength": 1, + "type": "string" + }, + "nested-fail": { + "user": { + "age": "not a number" + } + }, + "number-range-fail": 5, + "type-error": 42, + "valid-number": 42, + "valid-string": "hello" + }, + "evalJSONRevealed": { + "array-items-fail": [ + "hello", + 42 + ], + "dynamic-schema": "", + "min-length-fail": "hi", + "missing-required": { + "other": "value" + }, + "my-schema": { + "minLength": 1, + "type": "string" + }, + "nested-fail": { + "user": { + "age": "not a number" + } + }, + "number-range-fail": 5, + "type-error": 42, + "valid-number": 42, + "valid-string": "hello" + } +} From de2e4737b02d2a9e257153d0bc559034137ce06c Mon Sep 17 00:00:00 2001 From: Claire Gaestel <213631+nyobe@users.noreply.github.com> Date: Thu, 8 Jan 2026 14:55:42 -0800 Subject: [PATCH 2/7] schema schema --- eval/eval.go | 14 +- eval/expr.go | 2 +- .../eval/builtin-conform-error/expected.json | 996 +- eval/testdata/eval/builtin-conform/env.yaml | 21 + .../eval/builtin-conform/expected.json | 11134 ++++++++++++---- schema/schema_schema.go | 83 + 6 files changed, 9897 insertions(+), 2353 deletions(-) create mode 100644 schema/schema_schema.go diff --git a/eval/eval.go b/eval/eval.go index 77803485..ca5ef2a4 100644 --- a/eval/eval.go +++ b/eval/eval.go @@ -1343,8 +1343,8 @@ func (e *evalContext) evaluateBuiltinFromBase64(x *expr, repr *fromBase64Expr) * func (e *evalContext) evaluateBuiltinConform(x *expr, repr *conformExpr) *value { v := &value{def: x} - // Evaluate the schema expression first - schemaVal := e.evaluateExpr(repr.schemaExpr, schema.Always()) + // Evaluate and validate the schema expression against the JSON schema schema + schemaVal, schemaOk := e.evaluateTypedExpr(repr.schemaExpr, schema.JSONSchemaSchema()) if schemaVal.containsUnknowns() { // If schema is unknown, we can't validate - just return the value val := e.evaluateExpr(repr.value, schema.Always()) @@ -1354,6 +1354,16 @@ func (e *evalContext) evaluateBuiltinConform(x *expr, repr *conformExpr) *value return v } + // If schema validation failed, still try to convert and use it + // (the error has already been reported) + if !schemaOk { + val := e.evaluateExpr(repr.value, schema.Always()) + v.schema = val.schema + v.repr = val.repr + v.combine(val) + return v + } + // Convert the evaluated schema value to a *schema.Schema conformSchema, err := e.valueToSchema(schemaVal) if err != nil { diff --git a/eval/expr.go b/eval/expr.go index 9964c5a7..654175b4 100644 --- a/eval/expr.go +++ b/eval/expr.go @@ -174,7 +174,7 @@ func (x *expr) export(environment string) esc.Expr { Name: repr.node.Name().Value, NameRange: convertRange(repr.node.Name().Syntax().Syntax().Range(), environment), ArgSchema: schema.Record(schema.SchemaMap{ - "schema": schema.Always(), + "schema": schema.JSONSchemaSchema(), "value": schema.Always(), }).Schema(), Arg: esc.Expr{ diff --git a/eval/testdata/eval/builtin-conform-error/expected.json b/eval/testdata/eval/builtin-conform-error/expected.json index a791974b..a98e0fae 100644 --- a/eval/testdata/eval/builtin-conform-error/expected.json +++ b/eval/testdata/eval/builtin-conform-error/expected.json @@ -107,7 +107,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -203,7 +367,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -343,7 +671,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -707,7 +1199,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -803,7 +1459,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -943,7 +1763,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", diff --git a/eval/testdata/eval/builtin-conform/env.yaml b/eval/testdata/eval/builtin-conform/env.yaml index 9b70467c..8396e076 100644 --- a/eval/testdata/eval/builtin-conform/env.yaml +++ b/eval/testdata/eval/builtin-conform/env.yaml @@ -69,3 +69,24 @@ values: value: user: age: "not a number" + + # Invalid schema definitions - should emit errors about the schema itself + invalid-type-value: + fn::conform: + schema: { type: "invalid-type" } + value: "test" + + invalid-minLength-type: + fn::conform: + schema: { type: string, minLength: "not a number" } + value: "test" + + invalid-required-type: + fn::conform: + schema: { type: object, required: "should be array" } + value: {} + + invalid-properties-type: + fn::conform: + schema: { type: object, properties: "should be object" } + value: {} diff --git a/eval/testdata/eval/builtin-conform/expected.json b/eval/testdata/eval/builtin-conform/expected.json index dfe7002e..9173e840 100644 --- a/eval/testdata/eval/builtin-conform/expected.json +++ b/eval/testdata/eval/builtin-conform/expected.json @@ -160,6 +160,305 @@ "EvalContext": null, "Extra": null, "Path": "values[\"nested-fail\"][\"fn::conform\"].value.user.age" + }, + { + "Severity": 1, + "Summary": "at least one subschema must match", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 76, + "Column": 15, + "Byte": 1555 + }, + "End": { + "Line": 76, + "Column": 35, + "Byte": 1575 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected boolean, got object", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 76, + "Column": 15, + "Byte": 1555 + }, + "End": { + "Line": 76, + "Column": 35, + "Byte": 1575 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected one of [\"string\",\"number\",\"boolean\",\"array\",\"object\",\"null\"]", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 76, + "Column": 23, + "Byte": 1563 + }, + "End": { + "Line": 76, + "Column": 35, + "Byte": 1575 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema.type" + }, + { + "Severity": 1, + "Summary": "at least one subschema must match", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 76, + "Column": 23, + "Byte": 1563 + }, + "End": { + "Line": 76, + "Column": 35, + "Byte": 1575 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema.type" + }, + { + "Severity": 1, + "Summary": "at least one subschema must match", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 81, + "Column": 15, + "Byte": 1658 + }, + "End": { + "Line": 81, + "Column": 54, + "Byte": 1697 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected boolean, got object", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 81, + "Column": 15, + "Byte": 1658 + }, + "End": { + "Line": 81, + "Column": 54, + "Byte": 1697 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected number, got string", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 81, + "Column": 42, + "Byte": 1685 + }, + "End": { + "Line": 81, + "Column": 54, + "Byte": 1697 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema.minLength" + }, + { + "Severity": 1, + "Summary": "at least one subschema must match", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 86, + "Column": 15, + "Byte": 1779 + }, + "End": { + "Line": 86, + "Column": 56, + "Byte": 1820 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected boolean, got object", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 86, + "Column": 15, + "Byte": 1779 + }, + "End": { + "Line": 86, + "Column": 56, + "Byte": 1820 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected array, got string", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 86, + "Column": 41, + "Byte": 1805 + }, + "End": { + "Line": 86, + "Column": 56, + "Byte": 1820 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema.required" + }, + { + "Severity": 1, + "Summary": "at least one subschema must match", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 91, + "Column": 15, + "Byte": 1900 + }, + "End": { + "Line": 91, + "Column": 59, + "Byte": 1944 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected boolean, got object", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 91, + "Column": 15, + "Byte": 1900 + }, + "End": { + "Line": 91, + "Column": 59, + "Byte": 1944 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected object, got string", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 91, + "Column": 43, + "Byte": 1928 + }, + "End": { + "Line": 91, + "Column": 59, + "Byte": 1944 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema.properties" } ], "check": { @@ -209,60 +508,224 @@ }, "argSchema": { "properties": { - "schema": true, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 45, - "column": 7, - "byte": 894 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - }, - "object": { "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 46, - "column": 9, - "byte": 910 - }, - "end": { - "line": 47, - "column": 30, - "byte": 951 - } - }, - "schema": { - "properties": { - "items": { - "properties": { - "type": { - "type": "string", - "const": "string" - } + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" }, - "type": "object", - "required": [ - "type" - ] - }, - "type": { - "type": "string", + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 45, + "column": 7, + "byte": 894 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 46, + "column": 9, + "byte": 910 + }, + "end": { + "line": 47, + "column": 30, + "byte": 951 + } + }, + "schema": { + "properties": { + "items": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "type": { + "type": "string", "const": "array" } }, @@ -497,7 +960,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -608,42 +1235,206 @@ } } }, - "min-length-fail": { + "invalid-minLength-type": { "range": { "environment": "builtin-conform", "begin": { - "line": 32, + "line": 80, "column": 5, - "byte": 632 + "byte": 1631 }, "end": { - "line": 34, - "column": 16, - "byte": 705 + "line": 82, + "column": 18, + "byte": 1719 } }, "schema": { "type": "string", - "const": "hi" + "const": "test" }, "builtin": { "name": "fn::conform", "nameRange": { "environment": "builtin-conform", "begin": { - "line": 32, + "line": 80, "column": 5, - "byte": 632 + "byte": 1631 }, "end": { - "line": 32, + "line": 80, "column": 16, - "byte": 643 + "byte": 1642 } }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -656,14 +1447,14 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 33, + "line": 81, "column": 7, - "byte": 651 + "byte": 1650 }, "end": { - "line": 34, - "column": 16, - "byte": 705 + "line": 82, + "column": 18, + "byte": 1719 } }, "object": { @@ -671,21 +1462,21 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 33, + "line": 81, "column": 15, - "byte": 659 + "byte": 1658 }, "end": { - "line": 33, - "column": 43, - "byte": 687 + "line": 81, + "column": 54, + "byte": 1697 } }, "schema": { "properties": { "minLength": { - "type": "number", - "const": 5 + "type": "string", + "const": "not a number" }, "type": { "type": "string", @@ -702,27 +1493,27 @@ "minLength": { "environment": "builtin-conform", "begin": { - "line": 33, + "line": 81, "column": 31, - "byte": 675 + "byte": 1674 }, "end": { - "line": 33, + "line": 81, "column": 40, - "byte": 684 + "byte": 1683 } }, "type": { "environment": "builtin-conform", "begin": { - "line": 33, + "line": 81, "column": 17, - "byte": 661 + "byte": 1660 }, "end": { - "line": 33, + "line": 81, "column": 21, - "byte": 665 + "byte": 1664 } } }, @@ -731,34 +1522,34 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 33, + "line": 81, "column": 42, - "byte": 686 + "byte": 1685 }, "end": { - "line": 33, - "column": 43, - "byte": 687 + "line": 81, + "column": 54, + "byte": 1697 } }, "schema": { - "type": "number", - "const": 5 + "type": "string", + "const": "not a number" }, - "literal": 5 + "literal": "not a number" }, "type": { "range": { "environment": "builtin-conform", "begin": { - "line": 33, + "line": 81, "column": 23, - "byte": 667 + "byte": 1666 }, "end": { - "line": 33, + "line": 81, "column": 29, - "byte": 673 + "byte": 1672 } }, "schema": { @@ -773,70 +1564,225 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 34, + "line": 82, "column": 14, - "byte": 703 + "byte": 1715 }, "end": { - "line": 34, - "column": 16, - "byte": 705 + "line": 82, + "column": 18, + "byte": 1719 } }, "schema": { "type": "string", - "const": "hi" + "const": "test" }, - "literal": "hi" + "literal": "test" } } } } }, - "missing-required": { + "invalid-properties-type": { "range": { "environment": "builtin-conform", "begin": { - "line": 21, + "line": 90, "column": 5, - "byte": 423 + "byte": 1873 }, "end": { - "line": 28, - "column": 21, - "byte": 582 + "line": 92, + "column": 14, + "byte": 1962 } }, "schema": { - "properties": { - "other": { - "type": "string", - "const": "value" - } - }, - "type": "object", - "required": [ - "other" - ] + "type": "object" }, "builtin": { "name": "fn::conform", "nameRange": { "environment": "builtin-conform", "begin": { - "line": 21, + "line": 90, "column": 5, - "byte": 423 + "byte": 1873 }, "end": { - "line": 21, + "line": 90, "column": 16, - "byte": 434 + "byte": 1884 } }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -849,14 +1795,14 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 22, + "line": 91, "column": 7, - "byte": 442 + "byte": 1892 }, "end": { - "line": 28, - "column": 21, - "byte": 582 + "line": 92, + "column": 14, + "byte": 1962 } }, "object": { @@ -864,47 +1810,21 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 23, - "column": 9, - "byte": 458 + "line": 91, + "column": 15, + "byte": 1900 }, "end": { - "line": 26, - "column": 24, - "byte": 547 + "line": 91, + "column": 59, + "byte": 1944 } }, "schema": { "properties": { "properties": { - "properties": { - "name": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "name" - ] - }, - "required": { - "prefixItems": [ - { - "type": "string", - "const": "name" - } - ], - "items": false, - "type": "array" + "type": "string", + "const": "should be object" }, "type": { "type": "string", @@ -914,7 +1834,6 @@ "type": "object", "required": [ "properties", - "required", "type" ] }, @@ -922,40 +1841,27 @@ "properties": { "environment": "builtin-conform", "begin": { - "line": 24, - "column": 9, - "byte": 479 - }, - "end": { - "line": 24, - "column": 19, - "byte": 489 - } - }, - "required": { - "environment": "builtin-conform", - "begin": { - "line": 26, - "column": 9, - "byte": 532 + "line": 91, + "column": 31, + "byte": 1916 }, "end": { - "line": 26, - "column": 17, - "byte": 540 + "line": 91, + "column": 41, + "byte": 1926 } }, "type": { "environment": "builtin-conform", "begin": { - "line": 23, - "column": 9, - "byte": 458 + "line": 91, + "column": 17, + "byte": 1902 }, "end": { - "line": 23, - "column": 13, - "byte": 462 + "line": 91, + "column": 21, + "byte": 1906 } } }, @@ -964,177 +1870,34 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 25, - "column": 11, - "byte": 501 + "line": 91, + "column": 43, + "byte": 1928 }, "end": { - "line": 25, - "column": 31, - "byte": 521 + "line": 91, + "column": 59, + "byte": 1944 } }, "schema": { - "properties": { - "name": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "name" - ] + "type": "string", + "const": "should be object" }, - "keyRanges": { - "name": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 11, - "byte": 501 - }, - "end": { - "line": 25, - "column": 15, - "byte": 505 - } - } - }, - "object": { - "name": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 17, - "byte": 507 - }, - "end": { - "line": 25, - "column": 31, - "byte": 521 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 19, - "byte": 509 - }, - "end": { - "line": 25, - "column": 23, - "byte": 513 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 25, - "byte": 515 - }, - "end": { - "line": 25, - "column": 31, - "byte": 521 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - } - } - }, - "required": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 26, - "column": 19, - "byte": 542 - }, - "end": { - "line": 26, - "column": 24, - "byte": 547 - } - }, - "schema": { - "prefixItems": [ - { - "type": "string", - "const": "name" - } - ], - "items": false, - "type": "array" - }, - "list": [ - { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 26, - "column": 20, - "byte": 543 - }, - "end": { - "line": 26, - "column": 24, - "byte": 547 - } - }, - "schema": { - "type": "string", - "const": "name" - }, - "literal": "name" - } - ] - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 23, - "column": 15, - "byte": 464 - }, - "end": { - "line": 23, - "column": 21, - "byte": 470 + "literal": "should be object" + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 91, + "column": 23, + "byte": 1908 + }, + "end": { + "line": 91, + "column": 29, + "byte": 1914 } }, "schema": { @@ -1149,224 +1912,570 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 28, - "column": 9, - "byte": 570 + "line": 92, + "column": 14, + "byte": 1962 }, "end": { - "line": 28, - "column": 21, - "byte": 582 + "line": 92, + "column": 14, + "byte": 1962 } }, "schema": { - "properties": { - "other": { - "type": "string", - "const": "value" - } - }, - "type": "object", - "required": [ - "other" - ] - }, - "keyRanges": { - "other": { - "environment": "builtin-conform", - "begin": { - "line": 28, - "column": 9, - "byte": 570 - }, - "end": { - "line": 28, - "column": 14, - "byte": 575 - } - } - }, - "object": { - "other": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 28, - "column": 16, - "byte": 577 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - }, - "schema": { - "type": "string", - "const": "value" - }, - "literal": "value" - } + "type": "object" } } } } } }, - "my-schema": { + "invalid-required-type": { "range": { "environment": "builtin-conform", "begin": { - "line": 52, + "line": 85, "column": 5, - "byte": 1042 + "byte": 1752 }, "end": { - "line": 53, - "column": 17, - "byte": 1071 + "line": 87, + "column": 14, + "byte": 1838 } }, "schema": { - "properties": { - "minLength": { - "type": "number", - "const": 1 - }, - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "minLength", - "type" - ] + "type": "object" }, - "keyRanges": { - "minLength": { + "builtin": { + "name": "fn::conform", + "nameRange": { "environment": "builtin-conform", "begin": { - "line": 53, + "line": 85, "column": 5, - "byte": 1059 + "byte": 1752 }, "end": { - "line": 53, - "column": 14, - "byte": 1068 + "line": 85, + "column": 16, + "byte": 1763 } }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 5, - "byte": 1042 + "argSchema": { + "properties": { + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, + "value": true }, - "end": { - "line": 52, - "column": 9, - "byte": 1046 - } - } - }, - "object": { - "minLength": { + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { "range": { "environment": "builtin-conform", "begin": { - "line": 53, - "column": 16, - "byte": 1070 + "line": 86, + "column": 7, + "byte": 1771 }, "end": { - "line": 53, - "column": 17, - "byte": 1071 + "line": 87, + "column": 14, + "byte": 1838 } }, - "schema": { - "type": "number", - "const": 1 - }, - "literal": 1 - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 11, - "byte": 1048 + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 86, + "column": 15, + "byte": 1779 + }, + "end": { + "line": 86, + "column": 56, + "byte": 1820 + } + }, + "schema": { + "properties": { + "required": { + "type": "string", + "const": "should be array" + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "required", + "type" + ] + }, + "keyRanges": { + "required": { + "environment": "builtin-conform", + "begin": { + "line": 86, + "column": 31, + "byte": 1795 + }, + "end": { + "line": 86, + "column": 39, + "byte": 1803 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 86, + "column": 17, + "byte": 1781 + }, + "end": { + "line": 86, + "column": 21, + "byte": 1785 + } + } + }, + "object": { + "required": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 86, + "column": 41, + "byte": 1805 + }, + "end": { + "line": 86, + "column": 56, + "byte": 1820 + } + }, + "schema": { + "type": "string", + "const": "should be array" + }, + "literal": "should be array" + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 86, + "column": 23, + "byte": 1787 + }, + "end": { + "line": 86, + "column": 29, + "byte": 1793 + } + }, + "schema": { + "type": "string", + "const": "object" + }, + "literal": "object" + } + } }, - "end": { - "line": 52, - "column": 17, - "byte": 1054 + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 87, + "column": 14, + "byte": 1838 + }, + "end": { + "line": 87, + "column": 14, + "byte": 1838 + } + }, + "schema": { + "type": "object" + } } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" + } } } }, - "nested-fail": { + "invalid-type-value": { "range": { "environment": "builtin-conform", "begin": { - "line": 61, + "line": 75, "column": 5, - "byte": 1199 + "byte": 1528 }, "end": { - "line": 71, - "column": 28, - "byte": 1422 + "line": 77, + "column": 18, + "byte": 1597 } }, "schema": { - "properties": { - "user": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } - }, - "type": "object", - "required": [ - "age" - ] - } - }, - "type": "object", - "required": [ - "user" - ] + "type": "string", + "const": "test" }, "builtin": { "name": "fn::conform", "nameRange": { "environment": "builtin-conform", "begin": { - "line": 61, + "line": 75, "column": 5, - "byte": 1199 + "byte": 1528 }, "end": { - "line": 61, + "line": 75, "column": 16, - "byte": 1210 + "byte": 1539 } }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -1379,14 +2488,14 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 62, + "line": 76, "column": 7, - "byte": 1218 + "byte": 1547 }, "end": { - "line": 71, - "column": 28, - "byte": 1422 + "line": 77, + "column": 18, + "byte": 1597 } }, "object": { @@ -1394,564 +2503,647 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 63, - "column": 9, - "byte": 1234 + "line": 76, + "column": 15, + "byte": 1555 }, "end": { - "line": 68, - "column": 34, - "byte": 1365 + "line": 76, + "column": 35, + "byte": 1575 } }, "schema": { "properties": { - "properties": { - "properties": { - "user": { - "properties": { - "properties": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "type" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, "type": { "type": "string", - "const": "object" + "const": "invalid-type" } }, "type": "object", "required": [ - "properties", "type" ] }, "keyRanges": { - "properties": { + "type": { "environment": "builtin-conform", "begin": { - "line": 64, - "column": 9, - "byte": 1255 + "line": 76, + "column": 17, + "byte": 1557 }, "end": { - "line": 64, - "column": 19, - "byte": 1265 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 63, - "column": 9, - "byte": 1234 - }, - "end": { - "line": 63, - "column": 13, - "byte": 1238 + "line": 76, + "column": 21, + "byte": 1561 } } }, "object": { - "properties": { + "type": { "range": { "environment": "builtin-conform", "begin": { - "line": 65, - "column": 11, - "byte": 1277 + "line": 76, + "column": 23, + "byte": 1563 }, "end": { - "line": 68, - "column": 34, - "byte": 1365 + "line": 76, + "column": 35, + "byte": 1575 } }, "schema": { - "properties": { - "user": { - "properties": { - "properties": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "age" - ] + "type": "string", + "const": "invalid-type" + }, + "literal": "invalid-type" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 77, + "column": 14, + "byte": 1593 + }, + "end": { + "line": 77, + "column": 18, + "byte": 1597 + } + }, + "schema": { + "type": "string", + "const": "test" + }, + "literal": "test" + } + } + } + } + }, + "min-length-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 32, + "column": 5, + "byte": 632 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + }, + "schema": { + "type": "string", + "const": "hi" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 32, + "column": 5, + "byte": 632 + }, + "end": { + "line": 32, + "column": 16, + "byte": 643 + } + }, + "argSchema": { + "properties": { + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" }, - "type": { - "type": "string", - "const": "object" - } + "type": "object" }, - "type": "object", - "required": [ - "properties", - "type" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "keyRanges": { - "user": { - "environment": "builtin-conform", - "begin": { - "line": 65, - "column": 11, - "byte": 1277 - }, - "end": { - "line": 65, - "column": 15, - "byte": 1281 - } - } - }, - "object": { - "user": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 66, - "column": 13, - "byte": 1295 + "$ref": { + "type": "string" }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "properties": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" }, - "type": "object", - "required": [ - "age" - ] + "type": "array" }, - "type": { - "type": "string", - "const": "object" - } + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" }, - "type": "object", - "required": [ - "properties", - "type" - ] - }, - "keyRanges": { "properties": { - "environment": "builtin-conform", - "begin": { - "line": 67, - "column": 13, - "byte": 1320 + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" }, - "end": { - "line": 67, - "column": 23, - "byte": 1330 - } + "type": "object" }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 66, - "column": 13, - "byte": 1295 + "required": { + "items": { + "type": "string" }, - "end": { - "line": 66, - "column": 17, - "byte": 1299 - } + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" } }, - "object": { - "properties": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 15, - "byte": 1346 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "keyRanges": { - "age": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 15, - "byte": 1346 - }, - "end": { - "line": 68, - "column": 18, - "byte": 1349 - } - } - }, - "object": { - "age": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 20, - "byte": 1351 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 22, - "byte": 1353 - }, - "end": { - "line": 68, - "column": 26, - "byte": 1357 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 28, - "byte": 1359 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "type": "string", - "const": "number" - }, - "literal": "number" - } - } - } - } - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 66, - "column": 19, - "byte": 1301 - }, - "end": { - "line": 66, - "column": 25, - "byte": 1307 - } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" - } - } - } - } - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 63, - "column": 15, - "byte": 1240 - }, - "end": { - "line": 63, - "column": 21, - "byte": 1246 + "type": "object" } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" + ], + "type": "" } - } + }, + "$ref": "#/$defs/schema", + "type": "" }, - "value": { + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 7, + "byte": 651 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + }, + "object": { + "schema": { "range": { "environment": "builtin-conform", "begin": { - "line": 70, - "column": 9, - "byte": 1389 + "line": 33, + "column": 15, + "byte": 659 }, "end": { - "line": 71, - "column": 28, - "byte": 1422 + "line": 33, + "column": 43, + "byte": 687 } }, "schema": { "properties": { - "user": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } - }, - "type": "object", - "required": [ - "age" - ] + "minLength": { + "type": "number", + "const": 5 + }, + "type": { + "type": "string", + "const": "string" } }, "type": "object", "required": [ - "user" + "minLength", + "type" ] }, "keyRanges": { - "user": { + "minLength": { "environment": "builtin-conform", "begin": { - "line": 70, - "column": 9, - "byte": 1389 + "line": 33, + "column": 31, + "byte": 675 }, "end": { - "line": 70, - "column": 13, - "byte": 1393 + "line": 33, + "column": 40, + "byte": 684 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 17, + "byte": 661 + }, + "end": { + "line": 33, + "column": 21, + "byte": 665 } } }, "object": { - "user": { + "minLength": { "range": { "environment": "builtin-conform", "begin": { - "line": 71, - "column": 11, - "byte": 1405 + "line": 33, + "column": 42, + "byte": 686 }, "end": { - "line": 71, - "column": 28, - "byte": 1422 + "line": 33, + "column": 43, + "byte": 687 } }, "schema": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } - }, - "type": "object", - "required": [ - "age" - ] + "type": "number", + "const": 5 }, - "keyRanges": { - "age": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 11, - "byte": 1405 - }, - "end": { - "line": 71, - "column": 14, - "byte": 1408 - } + "literal": 5 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 33, + "column": 23, + "byte": 667 + }, + "end": { + "line": 33, + "column": 29, + "byte": 673 } }, - "object": { - "age": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 16, - "byte": 1410 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - }, - "schema": { - "type": "string", - "const": "not a number" - }, - "literal": "not a number" - } - } + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" } } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 34, + "column": 14, + "byte": 703 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + }, + "schema": { + "type": "string", + "const": "hi" + }, + "literal": "hi" } } } } }, - "number-range-fail": { + "missing-required": { "range": { "environment": "builtin-conform", "begin": { - "line": 38, + "line": 21, "column": 5, - "byte": 757 + "byte": 423 }, "end": { - "line": 40, - "column": 15, - "byte": 828 + "line": 28, + "column": 21, + "byte": 582 } }, "schema": { - "type": "number", - "const": 5 + "properties": { + "other": { + "type": "string", + "const": "value" + } + }, + "type": "object", + "required": [ + "other" + ] }, "builtin": { "name": "fn::conform", "nameRange": { "environment": "builtin-conform", "begin": { - "line": 38, + "line": 21, "column": 5, - "byte": 757 + "byte": 423 }, "end": { - "line": 38, + "line": 21, "column": 16, - "byte": 768 + "byte": 434 } }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -1964,14 +3156,14 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 39, + "line": 22, "column": 7, - "byte": 776 + "byte": 442 }, "end": { - "line": 40, - "column": 15, - "byte": 828 + "line": 28, + "column": 21, + "byte": 582 } }, "object": { @@ -1979,101 +3171,284 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 39, - "column": 15, - "byte": 784 + "line": 23, + "column": 9, + "byte": 458 }, "end": { - "line": 39, - "column": 42, - "byte": 811 + "line": 26, + "column": 24, + "byte": 547 } }, "schema": { "properties": { - "minimum": { - "type": "number", - "const": 10 + "properties": { + "properties": { + "name": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "required": { + "prefixItems": [ + { + "type": "string", + "const": "name" + } + ], + "items": false, + "type": "array" }, "type": { "type": "string", - "const": "number" + "const": "object" } }, "type": "object", "required": [ - "minimum", + "properties", + "required", "type" ] }, "keyRanges": { - "minimum": { + "properties": { "environment": "builtin-conform", "begin": { - "line": 39, - "column": 31, - "byte": 800 + "line": 24, + "column": 9, + "byte": 479 }, "end": { - "line": 39, - "column": 38, - "byte": 807 + "line": 24, + "column": 19, + "byte": 489 } }, - "type": { + "required": { "environment": "builtin-conform", "begin": { - "line": 39, + "line": 26, + "column": 9, + "byte": 532 + }, + "end": { + "line": 26, "column": 17, - "byte": 786 + "byte": 540 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 23, + "column": 9, + "byte": 458 }, "end": { - "line": 39, - "column": 21, - "byte": 790 + "line": 23, + "column": 13, + "byte": 462 } } }, "object": { - "minimum": { + "properties": { "range": { "environment": "builtin-conform", "begin": { - "line": 39, - "column": 40, - "byte": 809 + "line": 25, + "column": 11, + "byte": 501 }, "end": { - "line": 39, - "column": 42, - "byte": 811 + "line": 25, + "column": 31, + "byte": 521 } }, "schema": { - "type": "number", - "const": 10 + "properties": { + "name": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "name" + ] }, - "literal": 10 + "keyRanges": { + "name": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 11, + "byte": 501 + }, + "end": { + "line": 25, + "column": 15, + "byte": 505 + } + } + }, + "object": { + "name": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 17, + "byte": 507 + }, + "end": { + "line": 25, + "column": 31, + "byte": 521 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 19, + "byte": 509 + }, + "end": { + "line": 25, + "column": 23, + "byte": 513 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 25, + "column": 25, + "byte": 515 + }, + "end": { + "line": 25, + "column": 31, + "byte": 521 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + } + } + }, + "required": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 26, + "column": 19, + "byte": 542 + }, + "end": { + "line": 26, + "column": 24, + "byte": 547 + } + }, + "schema": { + "prefixItems": [ + { + "type": "string", + "const": "name" + } + ], + "items": false, + "type": "array" + }, + "list": [ + { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 26, + "column": 20, + "byte": 543 + }, + "end": { + "line": 26, + "column": 24, + "byte": 547 + } + }, + "schema": { + "type": "string", + "const": "name" + }, + "literal": "name" + } + ] }, "type": { "range": { "environment": "builtin-conform", "begin": { - "line": 39, - "column": 23, - "byte": 792 + "line": 23, + "column": 15, + "byte": 464 }, "end": { - "line": 39, - "column": 29, - "byte": 798 + "line": 23, + "column": 21, + "byte": 470 } }, "schema": { "type": "string", - "const": "number" + "const": "object" }, - "literal": "number" + "literal": "object" } } }, @@ -2081,62 +3456,388 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 40, - "column": 14, - "byte": 827 + "line": 28, + "column": 9, + "byte": 570 }, "end": { - "line": 40, - "column": 15, - "byte": 828 + "line": 28, + "column": 21, + "byte": 582 } }, "schema": { - "type": "number", - "const": 5 + "properties": { + "other": { + "type": "string", + "const": "value" + } + }, + "type": "object", + "required": [ + "other" + ] }, - "literal": 5 + "keyRanges": { + "other": { + "environment": "builtin-conform", + "begin": { + "line": 28, + "column": 9, + "byte": 570 + }, + "end": { + "line": 28, + "column": 14, + "byte": 575 + } + } + }, + "object": { + "other": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 28, + "column": 16, + "byte": 577 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + }, + "schema": { + "type": "string", + "const": "value" + }, + "literal": "value" + } + } } } } } }, - "type-error": { + "my-schema": { "range": { "environment": "builtin-conform", "begin": { - "line": 15, + "line": 52, "column": 5, - "byte": 306 + "byte": 1042 }, "end": { - "line": 17, - "column": 16, - "byte": 365 + "line": 53, + "column": 17, + "byte": 1071 } }, "schema": { - "type": "number", - "const": 42 - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 15, + "properties": { + "minLength": { + "type": "number", + "const": 1 + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "keyRanges": { + "minLength": { + "environment": "builtin-conform", + "begin": { + "line": 53, "column": 5, - "byte": 306 + "byte": 1059 }, "end": { - "line": 15, + "line": 53, + "column": 14, + "byte": 1068 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 5, + "byte": 1042 + }, + "end": { + "line": 52, + "column": 9, + "byte": 1046 + } + } + }, + "object": { + "minLength": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 53, + "column": 16, + "byte": 1070 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + }, + "schema": { + "type": "number", + "const": 1 + }, + "literal": 1 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 11, + "byte": 1048 + }, + "end": { + "line": 52, + "column": 17, + "byte": 1054 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "nested-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 61, + "column": 5, + "byte": 1199 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "properties": { + "user": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 61, + "column": 5, + "byte": 1199 + }, + "end": { + "line": 61, "column": 16, - "byte": 317 + "byte": 1210 } }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -2149,14 +3850,14 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 16, + "line": 62, "column": 7, - "byte": 325 + "byte": 1218 }, "end": { - "line": 17, - "column": 16, - "byte": 365 + "line": 71, + "column": 28, + "byte": 1422 } }, "object": { @@ -2164,739 +3865,3052 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 16, - "column": 15, - "byte": 333 + "line": 63, + "column": 9, + "byte": 1234 }, "end": { - "line": 16, - "column": 29, - "byte": 347 + "line": 68, + "column": 34, + "byte": 1365 } }, "schema": { "properties": { + "properties": { + "properties": { + "user": { + "properties": { + "properties": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, "type": { "type": "string", - "const": "string" + "const": "object" } }, "type": "object", "required": [ + "properties", "type" ] }, "keyRanges": { - "type": { + "properties": { "environment": "builtin-conform", "begin": { - "line": 16, - "column": 17, - "byte": 335 - }, - "end": { - "line": 16, - "column": 21, - "byte": 339 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 16, - "column": 23, - "byte": 341 - }, - "end": { - "line": 16, - "column": 29, - "byte": 347 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 17, - "column": 14, - "byte": 363 - }, - "end": { - "line": 17, - "column": 16, - "byte": 365 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "literal": 42 - } - } - } - } - }, - "valid-number": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 9, - "column": 5, - "byte": 159 - }, - "end": { - "line": 11, - "column": 16, - "byte": 230 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 9, - "column": 5, - "byte": 159 - }, - "end": { - "line": 9, - "column": 16, - "byte": 170 - } - }, - "argSchema": { - "properties": { - "schema": true, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 7, - "byte": 178 - }, - "end": { - "line": 11, - "column": 16, - "byte": 230 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 15, - "byte": 186 - }, - "end": { - "line": 10, - "column": 41, - "byte": 212 - } - }, - "schema": { - "properties": { - "minimum": { - "type": "number", - "const": 0 - }, - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "minimum", - "type" - ] - }, - "keyRanges": { - "minimum": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 31, - "byte": 202 + "line": 64, + "column": 9, + "byte": 1255 }, "end": { - "line": 10, - "column": 38, - "byte": 209 + "line": 64, + "column": 19, + "byte": 1265 } }, "type": { "environment": "builtin-conform", "begin": { - "line": 10, - "column": 17, - "byte": 188 + "line": 63, + "column": 9, + "byte": 1234 }, "end": { - "line": 10, - "column": 21, - "byte": 192 + "line": 63, + "column": 13, + "byte": 1238 } } }, "object": { - "minimum": { + "properties": { "range": { "environment": "builtin-conform", "begin": { - "line": 10, - "column": 40, - "byte": 211 + "line": 65, + "column": 11, + "byte": 1277 }, "end": { - "line": 10, - "column": 41, - "byte": 212 + "line": 68, + "column": 34, + "byte": 1365 } }, "schema": { - "type": "number", - "const": 0 - }, - "literal": 0 - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 23, - "byte": 194 + "properties": { + "user": { + "properties": { + "properties": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + } }, - "end": { - "line": 10, - "column": 29, - "byte": 200 - } - }, - "schema": { - "type": "string", - "const": "number" + "type": "object", + "required": [ + "user" + ] }, - "literal": "number" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { + "keyRanges": { + "user": { + "environment": "builtin-conform", + "begin": { + "line": 65, + "column": 11, + "byte": 1277 + }, + "end": { + "line": 65, + "column": 15, + "byte": 1281 + } + } + }, + "object": { + "user": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 66, + "column": 13, + "byte": 1295 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "properties": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + }, + "keyRanges": { + "properties": { + "environment": "builtin-conform", + "begin": { + "line": 67, + "column": 13, + "byte": 1320 + }, + "end": { + "line": 67, + "column": 23, + "byte": 1330 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 66, + "column": 13, + "byte": 1295 + }, + "end": { + "line": 66, + "column": 17, + "byte": 1299 + } + } + }, + "object": { + "properties": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 15, + "byte": 1346 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "age": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "keyRanges": { + "age": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 15, + "byte": 1346 + }, + "end": { + "line": 68, + "column": 18, + "byte": 1349 + } + } + }, + "object": { + "age": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 20, + "byte": 1351 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 22, + "byte": 1353 + }, + "end": { + "line": 68, + "column": 26, + "byte": 1357 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 68, + "column": 28, + "byte": 1359 + }, + "end": { + "line": 68, + "column": 34, + "byte": 1365 + } + }, + "schema": { + "type": "string", + "const": "number" + }, + "literal": "number" + } + } + } + } + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 66, + "column": 19, + "byte": 1301 + }, + "end": { + "line": 66, + "column": 25, + "byte": 1307 + } + }, + "schema": { + "type": "string", + "const": "object" + }, + "literal": "object" + } + } + } + } + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 63, + "column": 15, + "byte": 1240 + }, + "end": { + "line": 63, + "column": 21, + "byte": 1246 + } + }, + "schema": { + "type": "string", + "const": "object" + }, + "literal": "object" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 70, + "column": 9, + "byte": 1389 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "properties": { + "user": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "keyRanges": { + "user": { + "environment": "builtin-conform", + "begin": { + "line": 70, + "column": 9, + "byte": 1389 + }, + "end": { + "line": 70, + "column": 13, + "byte": 1393 + } + } + }, + "object": { + "user": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 11, + "byte": 1405 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + }, + "keyRanges": { + "age": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 11, + "byte": 1405 + }, + "end": { + "line": 71, + "column": 14, + "byte": 1408 + } + } + }, + "object": { + "age": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 16, + "byte": 1410 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + }, + "schema": { + "type": "string", + "const": "not a number" + }, + "literal": "not a number" + } + } + } + } + } + } + } + } + }, + "number-range-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 38, + "column": 5, + "byte": 757 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + }, + "schema": { + "type": "number", + "const": 5 + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 38, + "column": 5, + "byte": 757 + }, + "end": { + "line": 38, + "column": 16, + "byte": 768 + } + }, + "argSchema": { + "properties": { + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 7, + "byte": 776 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 15, + "byte": 784 + }, + "end": { + "line": 39, + "column": 42, + "byte": 811 + } + }, + "schema": { + "properties": { + "minimum": { + "type": "number", + "const": 10 + }, + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "minimum", + "type" + ] + }, + "keyRanges": { + "minimum": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 31, + "byte": 800 + }, + "end": { + "line": 39, + "column": 38, + "byte": 807 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 17, + "byte": 786 + }, + "end": { + "line": 39, + "column": 21, + "byte": 790 + } + } + }, + "object": { + "minimum": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 40, + "byte": 809 + }, + "end": { + "line": 39, + "column": 42, + "byte": 811 + } + }, + "schema": { + "type": "number", + "const": 10 + }, + "literal": 10 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 39, + "column": 23, + "byte": 792 + }, + "end": { + "line": 39, + "column": 29, + "byte": 798 + } + }, + "schema": { + "type": "string", + "const": "number" + }, + "literal": "number" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 40, + "column": 14, + "byte": 827 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + }, + "schema": { + "type": "number", + "const": 5 + }, + "literal": 5 + } + } + } + } + }, + "type-error": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 15, + "column": 5, + "byte": 306 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 15, + "column": 5, + "byte": 306 + }, + "end": { + "line": 15, + "column": 16, + "byte": 317 + } + }, + "argSchema": { + "properties": { + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 7, + "byte": 325 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 15, + "byte": 333 + }, + "end": { + "line": 16, + "column": 29, + "byte": 347 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 17, + "byte": 335 + }, + "end": { + "line": 16, + "column": 21, + "byte": 339 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 16, + "column": 23, + "byte": 341 + }, + "end": { + "line": 16, + "column": 29, + "byte": 347 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 17, + "column": 14, + "byte": 363 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "literal": 42 + } + } + } + } + }, + "valid-number": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 9, + "column": 5, + "byte": 159 + }, + "end": { + "line": 11, + "column": 16, + "byte": 230 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 9, + "column": 5, + "byte": 159 + }, + "end": { + "line": 9, + "column": 16, + "byte": 170 + } + }, + "argSchema": { + "properties": { + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 7, + "byte": 178 + }, + "end": { + "line": 11, + "column": 16, + "byte": 230 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 15, + "byte": 186 + }, + "end": { + "line": 10, + "column": 41, + "byte": 212 + } + }, + "schema": { + "properties": { + "minimum": { + "type": "number", + "const": 0 + }, + "type": { + "type": "string", + "const": "number" + } + }, + "type": "object", + "required": [ + "minimum", + "type" + ] + }, + "keyRanges": { + "minimum": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 31, + "byte": 202 + }, + "end": { + "line": 10, + "column": 38, + "byte": 209 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 17, + "byte": 188 + }, + "end": { + "line": 10, + "column": 21, + "byte": 192 + } + } + }, + "object": { + "minimum": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 40, + "byte": 211 + }, + "end": { + "line": 10, + "column": 41, + "byte": 212 + } + }, + "schema": { + "type": "number", + "const": 0 + }, + "literal": 0 + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 10, + "column": 23, + "byte": 194 + }, + "end": { + "line": 10, + "column": 29, + "byte": 200 + } + }, + "schema": { + "type": "string", + "const": "number" + }, + "literal": "number" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 11, + "column": 14, + "byte": 228 + }, + "end": { "line": 11, + "column": 16, + "byte": 230 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "literal": 42 + } + } + } + } + }, + "valid-string": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 4, + "column": 5, + "byte": 73 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + }, + "schema": { + "type": "string", + "const": "hello" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 4, + "column": 5, + "byte": 73 + }, + "end": { + "line": 4, + "column": 16, + "byte": 84 + } + }, + "argSchema": { + "properties": { + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 7, + "byte": 92 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 15, + "byte": 100 + }, + "end": { + "line": 5, + "column": 29, + "byte": 114 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 17, + "byte": 102 + }, + "end": { + "line": 5, + "column": 21, + "byte": 106 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 5, + "column": 23, + "byte": 108 + }, + "end": { + "line": 5, + "column": 29, + "byte": 114 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 6, "column": 14, - "byte": 228 + "byte": 130 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + }, + "schema": { + "type": "string", + "const": "hello" + }, + "literal": "hello" + } + } + } + } + } + }, + "properties": { + "array-items-fail": { + "value": [ + { + "value": "hello", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 15, + "byte": 968 + }, + "end": { + "line": 48, + "column": 20, + "byte": 973 + } + } + } + }, + { + "value": 42, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 24, + "byte": 977 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + } + } + } + ], + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 44, + "column": 5, + "byte": 875 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + } + } + }, + "dynamic-schema": { + "value": "", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 55, + "column": 5, + "byte": 1094 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 + } + } + } + }, + "invalid-minLength-type": { + "value": "test", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 80, + "column": 5, + "byte": 1631 + }, + "end": { + "line": 82, + "column": 18, + "byte": 1719 + } + } + } + }, + "invalid-properties-type": { + "value": {}, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 90, + "column": 5, + "byte": 1873 + }, + "end": { + "line": 92, + "column": 14, + "byte": 1962 + } + } + } + }, + "invalid-required-type": { + "value": {}, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 85, + "column": 5, + "byte": 1752 + }, + "end": { + "line": 87, + "column": 14, + "byte": 1838 + } + } + } + }, + "invalid-type-value": { + "value": "test", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 75, + "column": 5, + "byte": 1528 + }, + "end": { + "line": 77, + "column": 18, + "byte": 1597 + } + } + } + }, + "min-length-fail": { + "value": "hi", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 32, + "column": 5, + "byte": 632 + }, + "end": { + "line": 34, + "column": 16, + "byte": 705 + } + } + } + }, + "missing-required": { + "value": { + "other": { + "value": "value", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 28, + "column": 16, + "byte": 577 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 21, + "column": 5, + "byte": 423 + }, + "end": { + "line": 28, + "column": 21, + "byte": 582 + } + } + } + }, + "my-schema": { + "value": { + "minLength": { + "value": 1, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 53, + "column": 16, + "byte": 1070 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + } + } + }, + "type": { + "value": "string", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 11, + "byte": 1048 + }, + "end": { + "line": 52, + "column": 17, + "byte": 1054 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 5, + "byte": 1042 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + } + } + }, + "nested-fail": { + "value": { + "user": { + "value": { + "age": { + "value": "not a number", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 16, + "byte": 1410 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 71, + "column": 11, + "byte": 1405 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 61, + "column": 5, + "byte": 1199 + }, + "end": { + "line": 71, + "column": 28, + "byte": 1422 + } + } + } + }, + "number-range-fail": { + "value": 5, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 38, + "column": 5, + "byte": 757 + }, + "end": { + "line": 40, + "column": 15, + "byte": 828 + } + } + } + }, + "type-error": { + "value": 42, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 15, + "column": 5, + "byte": 306 + }, + "end": { + "line": 17, + "column": 16, + "byte": 365 + } + } + } + }, + "valid-number": { + "value": 42, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 9, + "column": 5, + "byte": 159 + }, + "end": { + "line": 11, + "column": 16, + "byte": 230 + } + } + } + }, + "valid-string": { + "value": "hello", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 4, + "column": 5, + "byte": 73 + }, + "end": { + "line": 6, + "column": 19, + "byte": 135 + } + } + } + } + }, + "schema": { + "properties": { + "array-items-fail": { + "prefixItems": [ + { + "type": "string", + "const": "hello" + }, + { + "type": "number", + "const": 42 + } + ], + "items": false, + "type": "array" + }, + "dynamic-schema": { + "type": "string", + "const": "" + }, + "invalid-minLength-type": { + "type": "string", + "const": "test" + }, + "invalid-properties-type": { + "type": "object" + }, + "invalid-required-type": { + "type": "object" + }, + "invalid-type-value": { + "type": "string", + "const": "test" + }, + "min-length-fail": { + "type": "string", + "const": "hi" + }, + "missing-required": { + "properties": { + "other": { + "type": "string", + "const": "value" + } + }, + "type": "object", + "required": [ + "other" + ] + }, + "my-schema": { + "properties": { + "minLength": { + "type": "number", + "const": 1 + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "nested-fail": { + "properties": { + "user": { + "properties": { + "age": { + "type": "string", + "const": "not a number" + } + }, + "type": "object", + "required": [ + "age" + ] + } + }, + "type": "object", + "required": [ + "user" + ] + }, + "number-range-fail": { + "type": "number", + "const": 5 + }, + "type-error": { + "type": "number", + "const": 42 + }, + "valid-number": { + "type": "number", + "const": 42 + }, + "valid-string": { + "type": "string", + "const": "hello" + } + }, + "type": "object", + "required": [ + "array-items-fail", + "dynamic-schema", + "invalid-minLength-type", + "invalid-properties-type", + "invalid-required-type", + "invalid-type-value", + "min-length-fail", + "missing-required", + "my-schema", + "nested-fail", + "number-range-fail", + "type-error", + "valid-number", + "valid-string" + ] + }, + "executionContext": { + "properties": { + "currentEnvironment": { + "value": { + "name": { + "value": "builtin-conform", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 }, "end": { - "line": 11, - "column": 16, - "byte": 230 + "line": 0, + "column": 0, + "byte": 0 } - }, - "schema": { - "type": "number", - "const": 42 - }, - "literal": 42 + } } } - } - } - }, - "valid-string": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 4, - "column": 5, - "byte": 73 - }, - "end": { - "line": 6, - "column": 19, - "byte": 135 - } - }, - "schema": { - "type": "string", - "const": "hello" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 4, - "column": 5, - "byte": 73 - }, - "end": { - "line": 4, - "column": 16, - "byte": 84 - } - }, - "argSchema": { - "properties": { - "schema": true, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] }, - "arg": { - "range": { + "trace": { + "def": { "environment": "builtin-conform", "begin": { - "line": 5, - "column": 7, - "byte": 92 + "line": 0, + "column": 0, + "byte": 0 }, "end": { - "line": 6, - "column": 19, - "byte": 135 + "line": 0, + "column": 0, + "byte": 0 } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 5, - "column": 15, - "byte": 100 - }, - "end": { - "line": 5, - "column": 29, - "byte": 114 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 5, - "column": 17, - "byte": 102 - }, - "end": { - "line": 5, - "column": 21, - "byte": 106 - } - } - }, - "object": { - "type": { - "range": { + } + } + }, + "pulumi": { + "value": { + "user": { + "value": { + "id": { + "value": "USER_123", + "trace": { + "def": { "environment": "builtin-conform", "begin": { - "line": 5, - "column": 23, - "byte": 108 + "line": 0, + "column": 0, + "byte": 0 }, "end": { - "line": 5, - "column": 29, - "byte": 114 + "line": 0, + "column": 0, + "byte": 0 } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" + } } } }, - "value": { - "range": { + "trace": { + "def": { "environment": "builtin-conform", "begin": { - "line": 6, - "column": 14, - "byte": 130 + "line": 0, + "column": 0, + "byte": 0 }, "end": { - "line": 6, - "column": 19, - "byte": 135 + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + }, + "rootEnvironment": { + "value": { + "name": { + "value": "builtin-conform", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 0, + "column": 0, + "byte": 0 + }, + "end": { + "line": 0, + "column": 0, + "byte": 0 + } + } + } + } + }, + "schema": { + "properties": { + "currentEnvironment": { + "properties": { + "name": { + "type": "string", + "const": "builtin-conform" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "pulumi": { + "properties": { + "user": { + "properties": { + "id": { + "type": "string", + "const": "USER_123" } }, - "schema": { - "type": "string", - "const": "hello" - }, - "literal": "hello" + "type": "object", + "required": [ + "id" + ] } - } + }, + "type": "object", + "required": [ + "user" + ] + }, + "rootEnvironment": { + "properties": { + "name": { + "type": "string", + "const": "builtin-conform" + } + }, + "type": "object", + "required": [ + "name" + ] } + }, + "type": "object", + "required": [ + "currentEnvironment", + "pulumi", + "rootEnvironment" + ] + } + } + }, + "checkJson": { + "array-items-fail": [ + "hello", + 42 + ], + "dynamic-schema": "", + "invalid-minLength-type": "test", + "invalid-properties-type": {}, + "invalid-required-type": {}, + "invalid-type-value": "test", + "min-length-fail": "hi", + "missing-required": { + "other": "value" + }, + "my-schema": { + "minLength": 1, + "type": "string" + }, + "nested-fail": { + "user": { + "age": "not a number" + } + }, + "number-range-fail": 5, + "type-error": 42, + "valid-number": 42, + "valid-string": "hello" + }, + "evalDiags": [ + { + "Severity": 1, + "Summary": "expected string, got number", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 17, + "Column": 14, + "Byte": 363 + }, + "End": { + "Line": 17, + "Column": 16, + "Byte": 365 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"type-error\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "missing required properties: name", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 28, + "Column": 9, + "Byte": 570 + }, + "End": { + "Line": 28, + "Column": 21, + "Byte": 582 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"missing-required\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected a string of at least length 5", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 34, + "Column": 14, + "Byte": 703 + }, + "End": { + "Line": 34, + "Column": 16, + "Byte": 705 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"min-length-fail\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected a number greater than or equal to 10", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 40, + "Column": 14, + "Byte": 827 + }, + "End": { + "Line": 40, + "Column": 15, + "Byte": 828 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"number-range-fail\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected string, got number", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 48, + "Column": 24, + "Byte": 977 + }, + "End": { + "Line": 48, + "Column": 26, + "Byte": 979 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"array-items-fail\"][\"fn::conform\"].value[1]" + }, + { + "Severity": 1, + "Summary": "expected a string of at least length 1", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 57, + "Column": 14, + "Byte": 1147 + }, + "End": { + "Line": 57, + "Column": 14, + "Byte": 1147 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"dynamic-schema\"][\"fn::conform\"].value" + }, + { + "Severity": 1, + "Summary": "expected number, got string", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 71, + "Column": 16, + "Byte": 1410 + }, + "End": { + "Line": 71, + "Column": 28, + "Byte": 1422 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"nested-fail\"][\"fn::conform\"].value.user.age" + }, + { + "Severity": 1, + "Summary": "at least one subschema must match", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 76, + "Column": 15, + "Byte": 1555 + }, + "End": { + "Line": 76, + "Column": 35, + "Byte": 1575 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected boolean, got object", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 76, + "Column": 15, + "Byte": 1555 + }, + "End": { + "Line": 76, + "Column": 35, + "Byte": 1575 } - } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema" }, - "properties": { - "array-items-fail": { - "value": [ - { - "value": "hello", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 15, - "byte": 968 - }, - "end": { - "line": 48, - "column": 20, - "byte": 973 - } - } - } - }, - { - "value": 42, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 24, - "byte": 977 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - } - } - } - ], - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 44, - "column": 5, - "byte": 875 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - } + { + "Severity": 1, + "Summary": "expected one of [\"string\",\"number\",\"boolean\",\"array\",\"object\",\"null\"]", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 76, + "Column": 23, + "Byte": 1563 + }, + "End": { + "Line": 76, + "Column": 35, + "Byte": 1575 } }, - "dynamic-schema": { - "value": "", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 55, - "column": 5, - "byte": 1094 - }, - "end": { - "line": 57, - "column": 14, - "byte": 1147 - } - } + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema.type" + }, + { + "Severity": 1, + "Summary": "at least one subschema must match", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 76, + "Column": 23, + "Byte": 1563 + }, + "End": { + "Line": 76, + "Column": 35, + "Byte": 1575 } }, - "min-length-fail": { - "value": "hi", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 32, - "column": 5, - "byte": 632 - }, - "end": { - "line": 34, - "column": 16, - "byte": 705 - } - } + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema.type" + }, + { + "Severity": 1, + "Summary": "at least one subschema must match", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 81, + "Column": 15, + "Byte": 1658 + }, + "End": { + "Line": 81, + "Column": 54, + "Byte": 1697 } }, - "missing-required": { - "value": { - "other": { - "value": "value", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 28, - "column": 16, - "byte": 577 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - } - } - } + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected boolean, got object", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 81, + "Column": 15, + "Byte": 1658 }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 21, - "column": 5, - "byte": 423 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - } + "End": { + "Line": 81, + "Column": 54, + "Byte": 1697 } }, - "my-schema": { - "value": { - "minLength": { - "value": 1, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 53, - "column": 16, - "byte": 1070 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - } - } - }, - "type": { - "value": "string", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 11, - "byte": 1048 - }, - "end": { - "line": 52, - "column": 17, - "byte": 1054 - } - } - } - } + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected number, got string", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 81, + "Column": 42, + "Byte": 1685 + }, + "End": { + "Line": 81, + "Column": 54, + "Byte": 1697 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema.minLength" + }, + { + "Severity": 1, + "Summary": "at least one subschema must match", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 86, + "Column": 15, + "Byte": 1779 + }, + "End": { + "Line": 86, + "Column": 56, + "Byte": 1820 + } + }, + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected boolean, got object", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 86, + "Column": 15, + "Byte": 1779 }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 5, - "byte": 1042 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - } + "End": { + "Line": 86, + "Column": 56, + "Byte": 1820 } }, - "nested-fail": { - "value": { - "user": { - "value": { - "age": { - "value": "not a number", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 16, - "byte": 1410 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 11, - "byte": 1405 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - } - } - } + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected array, got string", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 86, + "Column": 41, + "Byte": 1805 }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 61, - "column": 5, - "byte": 1199 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - } + "End": { + "Line": 86, + "Column": 56, + "Byte": 1820 } }, - "number-range-fail": { - "value": 5, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 38, - "column": 5, - "byte": 757 - }, - "end": { - "line": 40, - "column": 15, - "byte": 828 - } - } + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema.required" + }, + { + "Severity": 1, + "Summary": "at least one subschema must match", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 91, + "Column": 15, + "Byte": 1900 + }, + "End": { + "Line": 91, + "Column": 59, + "Byte": 1944 } }, - "type-error": { - "value": 42, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 15, - "column": 5, - "byte": 306 - }, - "end": { - "line": 17, - "column": 16, - "byte": 365 - } - } + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected boolean, got object", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 91, + "Column": 15, + "Byte": 1900 + }, + "End": { + "Line": 91, + "Column": 59, + "Byte": 1944 } }, - "valid-number": { - "value": 42, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 9, - "column": 5, - "byte": 159 - }, - "end": { - "line": 11, - "column": 16, - "byte": 230 - } - } + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema" + }, + { + "Severity": 1, + "Summary": "expected object, got string", + "Detail": "", + "Subject": { + "Filename": "builtin-conform", + "Start": { + "Line": 91, + "Column": 43, + "Byte": 1928 + }, + "End": { + "Line": 91, + "Column": 59, + "Byte": 1944 } }, - "valid-string": { - "value": "hello", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 4, - "column": 5, - "byte": 73 - }, - "end": { - "line": 6, - "column": 19, - "byte": 135 - } + "Context": null, + "Expression": null, + "EvalContext": null, + "Extra": null, + "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema.properties" + } + ], + "eval": { + "exprs": { + "array-items-fail": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 44, + "column": 5, + "byte": 875 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 } - } - } - }, - "schema": { - "properties": { - "array-items-fail": { + }, + "schema": { "prefixItems": [ { "type": "string", @@ -2910,518 +6924,1644 @@ "items": false, "type": "array" }, - "dynamic-schema": { - "type": "string", - "const": "" - }, - "min-length-fail": { - "type": "string", - "const": "hi" - }, - "missing-required": { - "properties": { - "other": { - "type": "string", - "const": "value" - } - }, - "type": "object", - "required": [ - "other" - ] - }, - "my-schema": { - "properties": { - "minLength": { - "type": "number", - "const": 1 + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 44, + "column": 5, + "byte": 875 }, - "type": { - "type": "string", - "const": "string" + "end": { + "line": 44, + "column": 16, + "byte": 886 } }, - "type": "object", - "required": [ - "minLength", - "type" - ] - }, - "nested-fail": { - "properties": { - "user": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } + "argSchema": { + "properties": { + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" }, - "type": "object", - "required": [ - "age" - ] - } + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] }, - "type": "object", - "required": [ - "user" - ] - }, - "number-range-fail": { - "type": "number", - "const": 5 - }, - "type-error": { - "type": "number", - "const": 42 - }, - "valid-number": { - "type": "number", - "const": 42 - }, - "valid-string": { - "type": "string", - "const": "hello" - } - }, - "type": "object", - "required": [ - "array-items-fail", - "dynamic-schema", - "min-length-fail", - "missing-required", - "my-schema", - "nested-fail", - "number-range-fail", - "type-error", - "valid-number", - "valid-string" - ] - }, - "executionContext": { - "properties": { - "currentEnvironment": { - "value": { - "name": { - "value": "builtin-conform", - "trace": { - "def": { + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 45, + "column": 7, + "byte": 894 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + }, + "object": { + "schema": { + "range": { "environment": "builtin-conform", "begin": { - "line": 0, - "column": 0, - "byte": 0 + "line": 46, + "column": 9, + "byte": 910 + }, + "end": { + "line": 47, + "column": 30, + "byte": 951 + } + }, + "schema": { + "properties": { + "items": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "type": { + "type": "string", + "const": "array" + } + }, + "type": "object", + "required": [ + "items", + "type" + ] + }, + "keyRanges": { + "items": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 9, + "byte": 930 + }, + "end": { + "line": 47, + "column": 14, + "byte": 935 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 46, + "column": 9, + "byte": 910 + }, + "end": { + "line": 46, + "column": 13, + "byte": 914 + } + } + }, + "object": { + "items": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 16, + "byte": 937 + }, + "end": { + "line": 47, + "column": 30, + "byte": 951 + } + }, + "schema": { + "properties": { + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 18, + "byte": 939 + }, + "end": { + "line": 47, + "column": 22, + "byte": 943 + } + } + }, + "object": { + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 47, + "column": 24, + "byte": 945 + }, + "end": { + "line": 47, + "column": 30, + "byte": 951 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - }, - "pulumi": { - "value": { - "user": { - "value": { - "id": { - "value": "USER_123", - "trace": { - "def": { + "type": { + "range": { "environment": "builtin-conform", "begin": { - "line": 0, - "column": 0, - "byte": 0 + "line": 46, + "column": 15, + "byte": 916 }, "end": { - "line": 0, - "column": 0, - "byte": 0 + "line": 46, + "column": 20, + "byte": 921 } - } + }, + "schema": { + "type": "string", + "const": "array" + }, + "literal": "array" } } }, - "trace": { - "def": { + "value": { + "range": { "environment": "builtin-conform", "begin": { - "line": 0, - "column": 0, - "byte": 0 + "line": 48, + "column": 14, + "byte": 967 }, "end": { - "line": 0, - "column": 0, - "byte": 0 + "line": 48, + "column": 26, + "byte": 979 } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - }, - "rootEnvironment": { - "value": { - "name": { - "value": "builtin-conform", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 + }, + "schema": { + "prefixItems": [ + { + "type": "string", + "const": "hello" + }, + { + "type": "number", + "const": 42 + } + ], + "items": false, + "type": "array" + }, + "list": [ + { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 15, + "byte": 968 + }, + "end": { + "line": 48, + "column": 20, + "byte": 973 + } + }, + "schema": { + "type": "string", + "const": "hello" + }, + "literal": "hello" }, - "end": { - "line": 0, - "column": 0, - "byte": 0 + { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 48, + "column": 24, + "byte": 977 + }, + "end": { + "line": 48, + "column": 26, + "byte": 979 + } + }, + "schema": { + "type": "number", + "const": 42 + }, + "literal": 42 } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 + ] } } } } }, - "schema": { - "properties": { - "currentEnvironment": { - "properties": { - "name": { - "type": "string", - "const": "builtin-conform" - } + "dynamic-schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 55, + "column": 5, + "byte": 1094 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 + } + }, + "schema": { + "type": "string", + "const": "" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 55, + "column": 5, + "byte": 1094 }, - "type": "object", - "required": [ - "name" - ] + "end": { + "line": 55, + "column": 16, + "byte": 1105 + } }, - "pulumi": { + "argSchema": { "properties": { - "user": { - "properties": { - "id": { - "type": "string", - "const": "USER_123" + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" } }, - "type": "object", - "required": [ - "id" - ] - } + "$ref": "#/$defs/schema", + "type": "" + }, + "value": true }, "type": "object", "required": [ - "user" + "schema", + "value" ] }, - "rootEnvironment": { - "properties": { - "name": { - "type": "string", - "const": "builtin-conform" + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 56, + "column": 7, + "byte": 1113 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 } }, - "type": "object", - "required": [ - "name" - ] - } - }, - "type": "object", - "required": [ - "currentEnvironment", - "pulumi", - "rootEnvironment" - ] - } - } - }, - "checkJson": { - "array-items-fail": [ - "hello", - 42 - ], - "dynamic-schema": "", - "min-length-fail": "hi", - "missing-required": { - "other": "value" - }, - "my-schema": { - "minLength": 1, - "type": "string" - }, - "nested-fail": { - "user": { - "age": "not a number" - } - }, - "number-range-fail": 5, - "type-error": 42, - "valid-number": 42, - "valid-string": "hello" - }, - "evalDiags": [ - { - "Severity": 1, - "Summary": "expected string, got number", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 17, - "Column": 14, - "Byte": 363 - }, - "End": { - "Line": 17, - "Column": 16, - "Byte": 365 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"type-error\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "missing required properties: name", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 28, - "Column": 9, - "Byte": 570 - }, - "End": { - "Line": 28, - "Column": 21, - "Byte": 582 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"missing-required\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected a string of at least length 5", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 34, - "Column": 14, - "Byte": 703 - }, - "End": { - "Line": 34, - "Column": 16, - "Byte": 705 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"min-length-fail\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected a number greater than or equal to 10", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 40, - "Column": 14, - "Byte": 827 - }, - "End": { - "Line": 40, - "Column": 15, - "Byte": 828 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"number-range-fail\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected string, got number", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 48, - "Column": 24, - "Byte": 977 - }, - "End": { - "Line": 48, - "Column": 26, - "Byte": 979 + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 56, + "column": 15, + "byte": 1121 + }, + "end": { + "line": 56, + "column": 27, + "byte": 1133 + } + }, + "schema": { + "properties": { + "minLength": { + "type": "number", + "const": 1 + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "symbol": [ + { + "key": "my-schema", + "range": { + "environment": "builtin-conform", + "begin": { + "line": 56, + "column": 17, + "byte": 1123 + }, + "end": { + "line": 56, + "column": 26, + "byte": 1132 + } + }, + "value": { + "environment": "builtin-conform", + "begin": { + "line": 52, + "column": 5, + "byte": 1042 + }, + "end": { + "line": 53, + "column": 17, + "byte": 1071 + } + } + } + ] + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 57, + "column": 14, + "byte": 1147 + }, + "end": { + "line": 57, + "column": 14, + "byte": 1147 + } + }, + "schema": { + "type": "string", + "const": "" + }, + "literal": "" + } + } + } } }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"array-items-fail\"][\"fn::conform\"].value[1]" - }, - { - "Severity": 1, - "Summary": "expected a string of at least length 1", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 57, - "Column": 14, - "Byte": 1147 + "invalid-minLength-type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 80, + "column": 5, + "byte": 1631 + }, + "end": { + "line": 82, + "column": 18, + "byte": 1719 + } }, - "End": { - "Line": 57, - "Column": 14, - "Byte": 1147 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"dynamic-schema\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected number, got string", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 71, - "Column": 16, - "Byte": 1410 + "schema": { + "type": "string", + "const": "test" }, - "End": { - "Line": 71, - "Column": 28, - "Byte": 1422 + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 80, + "column": 5, + "byte": 1631 + }, + "end": { + "line": 80, + "column": 16, + "byte": 1642 + } + }, + "argSchema": { + "properties": { + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 81, + "column": 7, + "byte": 1650 + }, + "end": { + "line": 82, + "column": 18, + "byte": 1719 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 81, + "column": 15, + "byte": 1658 + }, + "end": { + "line": 81, + "column": 54, + "byte": 1697 + } + }, + "schema": { + "properties": { + "minLength": { + "type": "string", + "const": "not a number" + }, + "type": { + "type": "string", + "const": "string" + } + }, + "type": "object", + "required": [ + "minLength", + "type" + ] + }, + "keyRanges": { + "minLength": { + "environment": "builtin-conform", + "begin": { + "line": 81, + "column": 31, + "byte": 1674 + }, + "end": { + "line": 81, + "column": 40, + "byte": 1683 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 81, + "column": 17, + "byte": 1660 + }, + "end": { + "line": 81, + "column": 21, + "byte": 1664 + } + } + }, + "object": { + "minLength": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 81, + "column": 42, + "byte": 1685 + }, + "end": { + "line": 81, + "column": 54, + "byte": 1697 + } + }, + "schema": { + "type": "string", + "const": "not a number" + }, + "literal": "not a number" + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 81, + "column": 23, + "byte": 1666 + }, + "end": { + "line": 81, + "column": 29, + "byte": 1672 + } + }, + "schema": { + "type": "string", + "const": "string" + }, + "literal": "string" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 82, + "column": 14, + "byte": 1715 + }, + "end": { + "line": 82, + "column": 18, + "byte": 1719 + } + }, + "schema": { + "type": "string", + "const": "test" + }, + "literal": "test" + } + } + } } }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"nested-fail\"][\"fn::conform\"].value.user.age" - } - ], - "eval": { - "exprs": { - "array-items-fail": { + "invalid-properties-type": { "range": { "environment": "builtin-conform", "begin": { - "line": 44, + "line": 90, "column": 5, - "byte": 875 + "byte": 1873 }, "end": { - "line": 48, - "column": 26, - "byte": 979 + "line": 92, + "column": 14, + "byte": 1962 } }, "schema": { - "prefixItems": [ - { - "type": "string", - "const": "hello" + "type": "object" + }, + "builtin": { + "name": "fn::conform", + "nameRange": { + "environment": "builtin-conform", + "begin": { + "line": 90, + "column": 5, + "byte": 1873 }, - { - "type": "number", - "const": 42 + "end": { + "line": 90, + "column": 16, + "byte": 1884 } - ], - "items": false, - "type": "array" + }, + "argSchema": { + "properties": { + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, + "value": true + }, + "type": "object", + "required": [ + "schema", + "value" + ] + }, + "arg": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 91, + "column": 7, + "byte": 1892 + }, + "end": { + "line": 92, + "column": 14, + "byte": 1962 + } + }, + "object": { + "schema": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 91, + "column": 15, + "byte": 1900 + }, + "end": { + "line": 91, + "column": 59, + "byte": 1944 + } + }, + "schema": { + "properties": { + "properties": { + "type": "string", + "const": "should be object" + }, + "type": { + "type": "string", + "const": "object" + } + }, + "type": "object", + "required": [ + "properties", + "type" + ] + }, + "keyRanges": { + "properties": { + "environment": "builtin-conform", + "begin": { + "line": 91, + "column": 31, + "byte": 1916 + }, + "end": { + "line": 91, + "column": 41, + "byte": 1926 + } + }, + "type": { + "environment": "builtin-conform", + "begin": { + "line": 91, + "column": 17, + "byte": 1902 + }, + "end": { + "line": 91, + "column": 21, + "byte": 1906 + } + } + }, + "object": { + "properties": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 91, + "column": 43, + "byte": 1928 + }, + "end": { + "line": 91, + "column": 59, + "byte": 1944 + } + }, + "schema": { + "type": "string", + "const": "should be object" + }, + "literal": "should be object" + }, + "type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 91, + "column": 23, + "byte": 1908 + }, + "end": { + "line": 91, + "column": 29, + "byte": 1914 + } + }, + "schema": { + "type": "string", + "const": "object" + }, + "literal": "object" + } + } + }, + "value": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 92, + "column": 14, + "byte": 1962 + }, + "end": { + "line": 92, + "column": 14, + "byte": 1962 + } + }, + "schema": { + "type": "object" + } + } + } + } + } + }, + "invalid-required-type": { + "range": { + "environment": "builtin-conform", + "begin": { + "line": 85, + "column": 5, + "byte": 1752 + }, + "end": { + "line": 87, + "column": 14, + "byte": 1838 + } + }, + "schema": { + "type": "object" }, "builtin": { "name": "fn::conform", "nameRange": { "environment": "builtin-conform", "begin": { - "line": 44, + "line": 85, "column": 5, - "byte": 875 + "byte": 1752 }, "end": { - "line": 44, + "line": 85, "column": 16, - "byte": 886 + "byte": 1763 } }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -3434,14 +8574,14 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 45, + "line": 86, "column": 7, - "byte": 894 + "byte": 1771 }, "end": { - "line": 48, - "column": 26, - "byte": 979 + "line": 87, + "column": 14, + "byte": 1838 } }, "object": { @@ -3449,153 +8589,101 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 46, - "column": 9, - "byte": 910 + "line": 86, + "column": 15, + "byte": 1779 }, "end": { - "line": 47, - "column": 30, - "byte": 951 + "line": 86, + "column": 56, + "byte": 1820 } }, "schema": { "properties": { - "items": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] + "required": { + "type": "string", + "const": "should be array" }, "type": { "type": "string", - "const": "array" + "const": "object" } }, "type": "object", "required": [ - "items", + "required", "type" ] }, "keyRanges": { - "items": { + "required": { "environment": "builtin-conform", "begin": { - "line": 47, - "column": 9, - "byte": 930 + "line": 86, + "column": 31, + "byte": 1795 }, "end": { - "line": 47, - "column": 14, - "byte": 935 + "line": 86, + "column": 39, + "byte": 1803 } }, "type": { "environment": "builtin-conform", "begin": { - "line": 46, - "column": 9, - "byte": 910 + "line": 86, + "column": 17, + "byte": 1781 }, "end": { - "line": 46, - "column": 13, - "byte": 914 + "line": 86, + "column": 21, + "byte": 1785 } } }, "object": { - "items": { + "required": { "range": { "environment": "builtin-conform", "begin": { - "line": 47, - "column": 16, - "byte": 937 + "line": 86, + "column": 41, + "byte": 1805 }, "end": { - "line": 47, - "column": 30, - "byte": 951 + "line": 86, + "column": 56, + "byte": 1820 } }, "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 47, - "column": 18, - "byte": 939 - }, - "end": { - "line": 47, - "column": 22, - "byte": 943 - } - } + "type": "string", + "const": "should be array" }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 47, - "column": 24, - "byte": 945 - }, - "end": { - "line": 47, - "column": 30, - "byte": 951 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } + "literal": "should be array" }, "type": { "range": { "environment": "builtin-conform", "begin": { - "line": 46, - "column": 15, - "byte": 916 + "line": 86, + "column": 23, + "byte": 1787 }, "end": { - "line": 46, - "column": 20, - "byte": 921 + "line": 86, + "column": 29, + "byte": 1793 } }, "schema": { "type": "string", - "const": "array" + "const": "object" }, - "literal": "array" + "literal": "object" } } }, @@ -3603,113 +8691,224 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 48, + "line": 87, "column": 14, - "byte": 967 + "byte": 1838 }, "end": { - "line": 48, - "column": 26, - "byte": 979 + "line": 87, + "column": 14, + "byte": 1838 } }, "schema": { - "prefixItems": [ - { - "type": "string", - "const": "hello" - }, - { - "type": "number", - "const": 42 - } - ], - "items": false, - "type": "array" - }, - "list": [ - { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 15, - "byte": 968 - }, - "end": { - "line": 48, - "column": 20, - "byte": 973 - } - }, - "schema": { - "type": "string", - "const": "hello" - }, - "literal": "hello" - }, - { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 24, - "byte": 977 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "literal": 42 - } - ] + "type": "object" + } } } } } }, - "dynamic-schema": { + "invalid-type-value": { "range": { "environment": "builtin-conform", "begin": { - "line": 55, + "line": 75, "column": 5, - "byte": 1094 + "byte": 1528 }, "end": { - "line": 57, - "column": 14, - "byte": 1147 + "line": 77, + "column": 18, + "byte": 1597 } }, "schema": { "type": "string", - "const": "" + "const": "test" }, "builtin": { "name": "fn::conform", "nameRange": { "environment": "builtin-conform", "begin": { - "line": 55, + "line": 75, "column": 5, - "byte": 1094 + "byte": 1528 }, "end": { - "line": 55, + "line": 75, "column": 16, - "byte": 1105 + "byte": 1539 } }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -3722,14 +8921,14 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 56, + "line": 76, "column": 7, - "byte": 1113 + "byte": 1547 }, "end": { - "line": 57, - "column": 14, - "byte": 1147 + "line": 77, + "column": 18, + "byte": 1597 } }, "object": { @@ -3737,84 +8936,85 @@ "range": { "environment": "builtin-conform", "begin": { - "line": 56, + "line": 76, "column": 15, - "byte": 1121 + "byte": 1555 }, "end": { - "line": 56, - "column": 27, - "byte": 1133 + "line": 76, + "column": 35, + "byte": 1575 } }, "schema": { "properties": { - "minLength": { - "type": "number", - "const": 1 - }, "type": { "type": "string", - "const": "string" + "const": "invalid-type" } }, "type": "object", "required": [ - "minLength", "type" ] }, - "symbol": [ - { - "key": "my-schema", + "keyRanges": { + "type": { + "environment": "builtin-conform", + "begin": { + "line": 76, + "column": 17, + "byte": 1557 + }, + "end": { + "line": 76, + "column": 21, + "byte": 1561 + } + } + }, + "object": { + "type": { "range": { "environment": "builtin-conform", "begin": { - "line": 56, - "column": 17, - "byte": 1123 + "line": 76, + "column": 23, + "byte": 1563 }, "end": { - "line": 56, - "column": 26, - "byte": 1132 + "line": 76, + "column": 35, + "byte": 1575 } }, - "value": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 5, - "byte": 1042 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - } + "schema": { + "type": "string", + "const": "invalid-type" + }, + "literal": "invalid-type" } - ] + } }, "value": { "range": { "environment": "builtin-conform", "begin": { - "line": 57, + "line": 77, "column": 14, - "byte": 1147 + "byte": 1593 }, "end": { - "line": 57, - "column": 14, - "byte": 1147 + "line": 77, + "column": 18, + "byte": 1597 } }, "schema": { "type": "string", - "const": "" + "const": "test" }, - "literal": "" + "literal": "test" } } } @@ -3855,7 +9055,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -4048,7 +9412,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -4578,7 +10106,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -5163,7 +10855,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -5348,7 +11204,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -5495,7 +11515,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -5680,7 +11864,171 @@ }, "argSchema": { "properties": { - "schema": true, + "schema": { + "$defs": { + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "properties": { + "$defs": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "$ref": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "anyOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "const": { + "type": "" + }, + "default": { + "type": "" + }, + "dependentRequired": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object" + }, + "deprecated": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "examples": { + "type": "array" + }, + "exclusiveMaximum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "maxItems": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxProperties": { + "type": "number" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "minProperties": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "multipleOf": { + "type": "number" + }, + "oneOf": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "prefixItems": { + "items": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "array" + }, + "properties": { + "additionalProperties": { + "$ref": "#/$defs/schema", + "type": "" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rotateOnly": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secret": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] + } + ], + "type": "" + }, + "uniqueItems": { + "type": "boolean" + } + }, + "type": "object" + } + ], + "type": "" + } + }, + "$ref": "#/$defs/schema", + "type": "" + }, "value": true }, "type": "object", @@ -5867,6 +12215,78 @@ } } }, + "invalid-minLength-type": { + "value": "test", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 80, + "column": 5, + "byte": 1631 + }, + "end": { + "line": 82, + "column": 18, + "byte": 1719 + } + } + } + }, + "invalid-properties-type": { + "value": {}, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 90, + "column": 5, + "byte": 1873 + }, + "end": { + "line": 92, + "column": 14, + "byte": 1962 + } + } + } + }, + "invalid-required-type": { + "value": {}, + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 85, + "column": 5, + "byte": 1752 + }, + "end": { + "line": 87, + "column": 14, + "byte": 1838 + } + } + } + }, + "invalid-type-value": { + "value": "test", + "trace": { + "def": { + "environment": "builtin-conform", + "begin": { + "line": 75, + "column": 5, + "byte": 1528 + }, + "end": { + "line": 77, + "column": 18, + "byte": 1597 + } + } + } + }, "min-length-fail": { "value": "hi", "trace": { @@ -6126,6 +12546,20 @@ "type": "string", "const": "" }, + "invalid-minLength-type": { + "type": "string", + "const": "test" + }, + "invalid-properties-type": { + "type": "object" + }, + "invalid-required-type": { + "type": "object" + }, + "invalid-type-value": { + "type": "string", + "const": "test" + }, "min-length-fail": { "type": "string", "const": "hi" @@ -6200,6 +12634,10 @@ "required": [ "array-items-fail", "dynamic-schema", + "invalid-minLength-type", + "invalid-properties-type", + "invalid-required-type", + "invalid-type-value", "min-length-fail", "missing-required", "my-schema", @@ -6405,6 +12843,10 @@ 42 ], "dynamic-schema": "", + "invalid-minLength-type": "test", + "invalid-properties-type": {}, + "invalid-required-type": {}, + "invalid-type-value": "test", "min-length-fail": "hi", "missing-required": { "other": "value" @@ -6429,6 +12871,10 @@ 42 ], "dynamic-schema": "", + "invalid-minLength-type": "test", + "invalid-properties-type": {}, + "invalid-required-type": {}, + "invalid-type-value": "test", "min-length-fail": "hi", "missing-required": { "other": "value" diff --git a/schema/schema_schema.go b/schema/schema_schema.go new file mode 100644 index 00000000..12ad110e --- /dev/null +++ b/schema/schema_schema.go @@ -0,0 +1,83 @@ +package schema + +// JSONSchemaSchema is a schema that validates JSON schema definitions. +func JSONSchemaSchema() *Schema { + return &Schema{ + Defs: map[string]*Schema{ + "schema": { + AnyOf: []*Schema{ + // Boolean schema (true = accept all, false = reject all) + {Type: "boolean"}, + // Object schema + { + Type: "object", + Properties: map[string]*Schema{ + // Core vocabulary + "$defs": { + Type: "object", + AdditionalProperties: &Schema{Ref: "#/$defs/schema"}, + }, + + // Applicator vocabulary + "$ref": {Type: "string"}, + "anyOf": {Type: "array", Items: &Schema{Ref: "#/$defs/schema"}}, + "oneOf": {Type: "array", Items: &Schema{Ref: "#/$defs/schema"}}, + "prefixItems": { + Type: "array", + Items: &Schema{Ref: "#/$defs/schema"}, + }, + "items": &Schema{Ref: "#/$defs/schema"}, + "additionalProperties": &Schema{Ref: "#/$defs/schema"}, + "properties": { + Type: "object", + AdditionalProperties: &Schema{Ref: "#/$defs/schema"}, + }, + + // Validation vocabulary + "type": { + AnyOf: []*Schema{ + { + Type: "string", + Enum: []any{"string", "number", "boolean", "array", "object", "null"}, + }, + }, + }, + "const": {}, // Any value + "enum": {Type: "array"}, + "multipleOf": {Type: "number"}, + "maximum": {Type: "number"}, + "exclusiveMaximum": {Type: "number"}, + "minimum": {Type: "number"}, + "exclusiveMinimum": {Type: "number"}, + "maxLength": {Type: "number"}, + "minLength": {Type: "number"}, + "pattern": {Type: "string"}, + "maxItems": {Type: "number"}, + "minItems": {Type: "number"}, + "uniqueItems": {Type: "boolean"}, + "maxProperties": {Type: "number"}, + "minProperties": {Type: "number"}, + "required": {Type: "array", Items: &Schema{Type: "string"}}, + "dependentRequired": { + Type: "object", + AdditionalProperties: &Schema{Type: "array", Items: &Schema{Type: "string"}}, + }, + + // Metadata vocabulary + "title": {Type: "string"}, + "description": {Type: "string"}, + "default": {}, // Any value + "deprecated": {Type: "boolean"}, + "examples": {Type: "array"}, + + // ESC extensions + "secret": {Type: "boolean"}, + "rotateOnly": {Type: "array", Items: &Schema{Type: "string"}}, + }, + }, + }, + }, + }, + Ref: "#/$defs/schema", + } +} From b76f82de2f3703eae9ff07a019c94f7a26718eac Mon Sep 17 00:00:00 2001 From: Claire Gaestel <213631+nyobe@users.noreply.github.com> Date: Sat, 7 Feb 2026 00:10:31 -0500 Subject: [PATCH 3/7] lint --- schema/schema_schema.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/schema/schema_schema.go b/schema/schema_schema.go index 12ad110e..f2c929d9 100644 --- a/schema/schema_schema.go +++ b/schema/schema_schema.go @@ -1,3 +1,17 @@ +// Copyright 2026, Pulumi Corporation. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package schema // JSONSchemaSchema is a schema that validates JSON schema definitions. From 5d6d687571c905ac1262c122128e203419852509 Mon Sep 17 00:00:00 2001 From: Claire Gaestel <213631+nyobe@users.noreply.github.com> Date: Sat, 7 Feb 2026 00:15:58 -0500 Subject: [PATCH 4/7] changelog --- CHANGELOG_PENDING.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index ab086590..dd862f85 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -1,9 +1,7 @@ ### Improvements -- Added support for `fn::split` built-in function to split strings into arrays. - [#281](https://github.com/pulumi/esc/issues/281) -- Add native support for OIDC token exchange when logging into Pulumi Cloud. Run `esc login --help` for more - information. [#607](https://github.com/pulumi/esc/pull/607) +- Add support for `fn::conform` built-in function that validates an input against a json schema. + [#618](https://github.com/pulumi/esc/pulls/618) ### Bug Fixes From b51c49b7593ced6b420fac9ff50f9cfcbb77531f Mon Sep 17 00:00:00 2001 From: Claire Gaestel <213631+nyobe@users.noreply.github.com> Date: Mon, 9 Feb 2026 13:55:38 -0500 Subject: [PATCH 5/7] mv schema/schema_schema.go -> schema/json_schema.go --- schema/{schema_schema.go => json_schema.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename schema/{schema_schema.go => json_schema.go} (100%) diff --git a/schema/schema_schema.go b/schema/json_schema.go similarity index 100% rename from schema/schema_schema.go rename to schema/json_schema.go From fec57c76f5920e94e007ded5ed756b1bc6ceeb6f Mon Sep 17 00:00:00 2001 From: Claire Gaestel <213631+nyobe@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:14:51 -0500 Subject: [PATCH 6/7] nit --- .../eval/builtin-conform-error/expected.json | 192 ++-- .../eval/builtin-conform/expected.json | 886 +++++------------- schema/json_schema.go | 21 +- 3 files changed, 300 insertions(+), 799 deletions(-) diff --git a/eval/testdata/eval/builtin-conform-error/expected.json b/eval/testdata/eval/builtin-conform-error/expected.json index a98e0fae..ac615b45 100644 --- a/eval/testdata/eval/builtin-conform-error/expected.json +++ b/eval/testdata/eval/builtin-conform-error/expected.json @@ -231,33 +231,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -491,33 +477,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -795,33 +767,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -1323,33 +1281,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -1583,33 +1527,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -1887,33 +1817,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" diff --git a/eval/testdata/eval/builtin-conform/expected.json b/eval/testdata/eval/builtin-conform/expected.json index 9173e840..8bb61c5e 100644 --- a/eval/testdata/eval/builtin-conform/expected.json +++ b/eval/testdata/eval/builtin-conform/expected.json @@ -163,7 +163,7 @@ }, { "Severity": 1, - "Summary": "at least one subschema must match", + "Summary": "expected boolean, got object", "Detail": "", "Subject": { "Filename": "builtin-conform", @@ -186,7 +186,7 @@ }, { "Severity": 1, - "Summary": "expected boolean, got object", + "Summary": "at least one subschema must match", "Detail": "", "Subject": { "Filename": "builtin-conform", @@ -230,29 +230,6 @@ "Extra": null, "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema.type" }, - { - "Severity": 1, - "Summary": "at least one subschema must match", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 76, - "Column": 23, - "Byte": 1563 - }, - "End": { - "Line": 76, - "Column": 35, - "Byte": 1575 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema.type" - }, { "Severity": 1, "Summary": "at least one subschema must match", @@ -632,33 +609,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -1084,33 +1047,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -1394,33 +1343,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -1742,33 +1677,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -2088,33 +2009,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -2435,33 +2342,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -2746,33 +2639,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -3103,33 +2982,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -3797,33 +3662,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -4546,33 +4397,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -4895,33 +4732,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -5206,33 +5029,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -5555,33 +5364,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -6596,7 +6391,7 @@ }, { "Severity": 1, - "Summary": "at least one subschema must match", + "Summary": "expected boolean, got object", "Detail": "", "Subject": { "Filename": "builtin-conform", @@ -6619,7 +6414,7 @@ }, { "Severity": 1, - "Summary": "expected boolean, got object", + "Summary": "at least one subschema must match", "Detail": "", "Subject": { "Filename": "builtin-conform", @@ -6663,29 +6458,6 @@ "Extra": null, "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema.type" }, - { - "Severity": 1, - "Summary": "at least one subschema must match", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 76, - "Column": 23, - "Byte": 1563 - }, - "End": { - "Line": 76, - "Column": 35, - "Byte": 1575 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema.type" - }, { "Severity": 1, "Summary": "at least one subschema must match", @@ -7065,33 +6837,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -7517,33 +7275,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -7827,33 +7571,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -8175,33 +7905,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -8521,33 +8237,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -8868,33 +8570,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -9179,33 +8867,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -9536,33 +9210,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -10230,33 +9890,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -10979,33 +10625,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -11328,33 +10960,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -11639,33 +11257,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" @@ -11988,33 +11592,19 @@ }, "type": "array" }, - "rotateOnly": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secret": { - "type": "boolean" - }, "title": { "type": "string" }, "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - } - ], - "type": "" + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "array", + "object", + "null" + ] }, "uniqueItems": { "type": "boolean" diff --git a/schema/json_schema.go b/schema/json_schema.go index f2c929d9..e4537344 100644 --- a/schema/json_schema.go +++ b/schema/json_schema.go @@ -40,8 +40,8 @@ func JSONSchemaSchema() *Schema { Type: "array", Items: &Schema{Ref: "#/$defs/schema"}, }, - "items": &Schema{Ref: "#/$defs/schema"}, - "additionalProperties": &Schema{Ref: "#/$defs/schema"}, + "items": {Ref: "#/$defs/schema"}, + "additionalProperties": {Ref: "#/$defs/schema"}, "properties": { Type: "object", AdditionalProperties: &Schema{Ref: "#/$defs/schema"}, @@ -49,12 +49,8 @@ func JSONSchemaSchema() *Schema { // Validation vocabulary "type": { - AnyOf: []*Schema{ - { - Type: "string", - Enum: []any{"string", "number", "boolean", "array", "object", "null"}, - }, - }, + Type: "string", + Enum: []any{"string", "number", "boolean", "array", "object", "null"}, }, "const": {}, // Any value "enum": {Type: "array"}, @@ -71,7 +67,10 @@ func JSONSchemaSchema() *Schema { "uniqueItems": {Type: "boolean"}, "maxProperties": {Type: "number"}, "minProperties": {Type: "number"}, - "required": {Type: "array", Items: &Schema{Type: "string"}}, + "required": { + Type: "array", + Items: &Schema{Type: "string"}, + }, "dependentRequired": { Type: "object", AdditionalProperties: &Schema{Type: "array", Items: &Schema{Type: "string"}}, @@ -83,10 +82,6 @@ func JSONSchemaSchema() *Schema { "default": {}, // Any value "deprecated": {Type: "boolean"}, "examples": {Type: "array"}, - - // ESC extensions - "secret": {Type: "boolean"}, - "rotateOnly": {Type: "array", Items: &Schema{Type: "string"}}, }, }, }, From c979a7c614b737360ffe05c59a3a1f2b2025f84d Mon Sep 17 00:00:00 2001 From: Claire Gaestel <213631+nyobe@users.noreply.github.com> Date: Tue, 10 Feb 2026 11:19:13 -0500 Subject: [PATCH 7/7] rename fn::conform -> fn::validate --- CHANGELOG_PENDING.md | 2 +- ast/expr.go | 26 +- eval/eval.go | 20 +- eval/expr.go | 10 +- .../eval/builtin-conform-error/env.yaml | 14 - .../eval/builtin-conform-error/expected.json | 2178 --- eval/testdata/eval/builtin-conform/env.yaml | 92 - .../eval/builtin-conform/expected.json | 12486 ---------------- 8 files changed, 29 insertions(+), 14799 deletions(-) delete mode 100644 eval/testdata/eval/builtin-conform-error/env.yaml delete mode 100644 eval/testdata/eval/builtin-conform-error/expected.json delete mode 100644 eval/testdata/eval/builtin-conform/env.yaml delete mode 100644 eval/testdata/eval/builtin-conform/expected.json diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index 7fdde464..e0687a8e 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -2,7 +2,7 @@ - Add warning when an environment has duplicate top-level keys [#615](https://github.com/pulumi/esc/issues/615) -- Add support for `fn::conform` built-in function that validates an input against a json schema. +- Add support for `fn::validate` built-in function that validates an input against a json schema. [#618](https://github.com/pulumi/esc/pulls/618) ### Bug Fixes diff --git a/ast/expr.go b/ast/expr.go index 5010b8ea..a9bd142d 100644 --- a/ast/expr.go +++ b/ast/expr.go @@ -671,25 +671,25 @@ func FromBase64(value Expr) *FromBase64Expr { return FromBase64Syntax(nil, name, value) } -// ConformExpr validates a value against a JSON schema. -type ConformExpr struct { +// ValidateExpr validates a value against a JSON schema. +type ValidateExpr struct { builtinNode Schema Expr // The JSON schema to validate against Value Expr // The value to validate } -func ConformSyntax(node *syntax.ObjectNode, name *StringExpr, args, schemaExpr, valueExpr Expr) *ConformExpr { - return &ConformExpr{ +func ValidateSyntax(node *syntax.ObjectNode, name *StringExpr, args, schemaExpr, valueExpr Expr) *ValidateExpr { + return &ValidateExpr{ builtinNode: builtin(node, name, args), Schema: schemaExpr, Value: valueExpr, } } -func Conform(schemaExpr, valueExpr Expr) *ConformExpr { - name := String("fn::conform") - return &ConformExpr{ +func Validate(schemaExpr, valueExpr Expr) *ValidateExpr { + name := String("fn::validate") + return &ValidateExpr{ builtinNode: builtin(nil, name, Object( ObjectProperty{Key: String("schema"), Value: schemaExpr}, ObjectProperty{Key: String("value"), Value: valueExpr}, @@ -717,8 +717,8 @@ func tryParseFunction(node *syntax.ObjectNode) (Expr, syntax.Diagnostics, bool) switch kvp.Key.Value() { case "fn::concat": parse = parseConcat - case "fn::conform": - parse = parseConform + case "fn::validate": + parse = parseValidate case "fn::fromJSON": parse = parseFromJSON case "fn::fromBase64": @@ -975,11 +975,11 @@ func parseSecret(node *syntax.ObjectNode, name *StringExpr, value Expr) (Expr, s return PlaintextSyntax(node, name, str), diags } -func parseConform(node *syntax.ObjectNode, name *StringExpr, args Expr) (Expr, syntax.Diagnostics) { +func parseValidate(node *syntax.ObjectNode, name *StringExpr, args Expr) (Expr, syntax.Diagnostics) { obj, ok := args.(*ObjectExpr) if !ok { - diags := syntax.Diagnostics{ExprError(args, "the argument to fn::conform must be an object containing 'schema' and 'value'")} - return ConformSyntax(node, name, args, nil, nil), diags + diags := syntax.Diagnostics{ExprError(args, "the argument to fn::validate must be an object containing 'schema' and 'value'")} + return ValidateSyntax(node, name, args, nil, nil), diags } var schemaExpr, valueExpr Expr @@ -1001,5 +1001,5 @@ func parseConform(node *syntax.ObjectNode, name *StringExpr, args Expr) (Expr, s diags.Extend(ExprError(obj, "missing required property 'value'")) } - return ConformSyntax(node, name, obj, schemaExpr, valueExpr), diags + return ValidateSyntax(node, name, obj, schemaExpr, valueExpr), diags } diff --git a/eval/eval.go b/eval/eval.go index ca5ef2a4..c8372ed8 100644 --- a/eval/eval.go +++ b/eval/eval.go @@ -332,8 +332,8 @@ func declare[Expr exprNode](e *evalContext, path string, x Expr, base *value) *e case *ast.FromBase64Expr: repr := &fromBase64Expr{node: x, string: declare(e, "", x.String, nil)} return newExpr(path, repr, schema.String().Schema(), base) - case *ast.ConformExpr: - repr := &conformExpr{ + case *ast.ValidateExpr: + repr := &validateExpr{ node: x, schemaExpr: declare(e, "", x.Schema, nil), value: declare(e, "", x.Value, nil), @@ -611,8 +611,8 @@ func (e *evalContext) evaluateExpr(x *expr, accept *schema.Schema) *value { val = e.evaluateBuiltinConcat(x, repr) case *fromBase64Expr: val = e.evaluateBuiltinFromBase64(x, repr) - case *conformExpr: - val = e.evaluateBuiltinConform(x, repr) + case *validateExpr: + val = e.evaluateBuiltinValidate(x, repr) case *fromJSONExpr: val = e.evaluateBuiltinFromJSON(x, repr) case *joinExpr: @@ -1337,10 +1337,10 @@ func (e *evalContext) evaluateBuiltinFromBase64(x *expr, repr *fromBase64Expr) * return v } -// evaluateBuiltinConform evaluates a call to the fn::conform builtin. +// evaluateBuiltinValidate evaluates a call to the fn::validate builtin. // It validates the value against the provided schema and emits diagnostics on failure. // The value is always returned (pass-through semantics). -func (e *evalContext) evaluateBuiltinConform(x *expr, repr *conformExpr) *value { +func (e *evalContext) evaluateBuiltinValidate(x *expr, repr *validateExpr) *value { v := &value{def: x} // Evaluate and validate the schema expression against the JSON schema schema @@ -1365,7 +1365,7 @@ func (e *evalContext) evaluateBuiltinConform(x *expr, repr *conformExpr) *value } // Convert the evaluated schema value to a *schema.Schema - conformSchema, err := e.valueToSchema(schemaVal) + validationSchema, err := e.valueToSchema(schemaVal) if err != nil { e.errorf(repr.schemaExpr.repr.syntax(), "invalid schema: %v", err) val := e.evaluateExpr(repr.value, schema.Always()) @@ -1374,10 +1374,10 @@ func (e *evalContext) evaluateBuiltinConform(x *expr, repr *conformExpr) *value v.combine(val) return v } - repr.conformSchema = conformSchema + repr.conformSchema = validationSchema // Compile the schema (like fn::open does with provider schemas) - if err := conformSchema.Compile(); err != nil { + if err := validationSchema.Compile(); err != nil { e.errorf(repr.schemaExpr.repr.syntax(), "invalid schema: %v", err) val := e.evaluateExpr(repr.value, schema.Always()) v.schema = val.schema @@ -1388,7 +1388,7 @@ func (e *evalContext) evaluateBuiltinConform(x *expr, repr *conformExpr) *value // Validate value against the conform schema using evaluateTypedExpr // This follows the same pattern as fn::open: inputs, ok := e.evaluateTypedExpr(repr.inputs, repr.inputSchema) - val, _ := e.evaluateTypedExpr(repr.value, conformSchema) + val, _ := e.evaluateTypedExpr(repr.value, validationSchema) // Return the value with its schema (pass-through semantics) v.schema = val.schema diff --git a/eval/expr.go b/eval/expr.go index 654175b4..33f2d7be 100644 --- a/eval/expr.go +++ b/eval/expr.go @@ -169,7 +169,7 @@ func (x *expr) export(environment string) esc.Expr { ArgSchema: schema.String().Schema(), Arg: repr.string.export(environment), } - case *conformExpr: + case *validateExpr: ex.Builtin = &esc.BuiltinExpr{ Name: repr.node.Name().Value, NameRange: convertRange(repr.node.Name().Syntax().Syntax().Range(), environment), @@ -568,9 +568,9 @@ func (x *fromBase64Expr) syntax() ast.Expr { return x.node } -// conformExpr represents a call to the fn::conform builtin. -type conformExpr struct { - node *ast.ConformExpr +// validateExpr represents a call to the fn::validate builtin. +type validateExpr struct { + node *ast.ValidateExpr schemaExpr *expr // The schema expression (evaluated to get schema value) value *expr // The value expression to validate @@ -578,6 +578,6 @@ type conformExpr struct { conformSchema *schema.Schema // Computed schema (populated during evaluation) } -func (x *conformExpr) syntax() ast.Expr { +func (x *validateExpr) syntax() ast.Expr { return x.node } diff --git a/eval/testdata/eval/builtin-conform-error/env.yaml b/eval/testdata/eval/builtin-conform-error/env.yaml deleted file mode 100644 index c4b167de..00000000 --- a/eval/testdata/eval/builtin-conform-error/env.yaml +++ /dev/null @@ -1,14 +0,0 @@ -values: - # Missing schema - missing-schema: - fn::conform: - value: "test" - - # Missing value - missing-value: - fn::conform: - schema: { type: string } - - # Not an object - not-object: - fn::conform: "invalid" diff --git a/eval/testdata/eval/builtin-conform-error/expected.json b/eval/testdata/eval/builtin-conform-error/expected.json deleted file mode 100644 index ac615b45..00000000 --- a/eval/testdata/eval/builtin-conform-error/expected.json +++ /dev/null @@ -1,2178 +0,0 @@ -{ - "loadDiags": [ - { - "Severity": 1, - "Summary": "missing required property 'schema'", - "Detail": "", - "Subject": { - "Filename": "builtin-conform-error", - "Start": { - "Line": 5, - "Column": 7, - "Byte": 68 - }, - "End": { - "Line": 5, - "Column": 18, - "Byte": 79 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"missing-schema\"][\"fn::conform\"]" - }, - { - "Severity": 1, - "Summary": "missing required property 'value'", - "Detail": "", - "Subject": { - "Filename": "builtin-conform-error", - "Start": { - "Line": 10, - "Column": 7, - "Byte": 141 - }, - "End": { - "Line": 10, - "Column": 29, - "Byte": 163 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"missing-value\"][\"fn::conform\"]" - }, - { - "Severity": 1, - "Summary": "the argument to fn::conform must be an object containing 'schema' and 'value'", - "Detail": "", - "Subject": { - "Filename": "builtin-conform-error", - "Start": { - "Line": 14, - "Column": 18, - "Byte": 216 - }, - "End": { - "Line": 14, - "Column": 25, - "Byte": 223 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"not-object\"][\"fn::conform\"]" - } - ], - "check": { - "exprs": { - "missing-schema": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 4, - "column": 5, - "byte": 49 - }, - "end": { - "line": 5, - "column": 18, - "byte": 79 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform-error", - "begin": { - "line": 4, - "column": 5, - "byte": 49 - }, - "end": { - "line": 4, - "column": 16, - "byte": 60 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 5, - "column": 7, - "byte": 68 - }, - "end": { - "line": 5, - "column": 18, - "byte": 79 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - }, - "schema": true - }, - "value": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 5, - "column": 14, - "byte": 75 - }, - "end": { - "line": 5, - "column": 18, - "byte": 79 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "literal": "test" - } - } - } - } - }, - "missing-value": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 9, - "column": 5, - "byte": 122 - }, - "end": { - "line": 10, - "column": 29, - "byte": 163 - } - }, - "schema": true, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform-error", - "begin": { - "line": 9, - "column": 5, - "byte": 122 - }, - "end": { - "line": 9, - "column": 16, - "byte": 133 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 10, - "column": 7, - "byte": 141 - }, - "end": { - "line": 10, - "column": 29, - "byte": 163 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 10, - "column": 15, - "byte": 149 - }, - "end": { - "line": 10, - "column": 29, - "byte": 163 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform-error", - "begin": { - "line": 10, - "column": 17, - "byte": 151 - }, - "end": { - "line": 10, - "column": 21, - "byte": 155 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 10, - "column": 23, - "byte": 157 - }, - "end": { - "line": 10, - "column": 29, - "byte": 163 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - }, - "schema": true - } - } - } - } - }, - "not-object": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 14, - "column": 5, - "byte": 203 - }, - "end": { - "line": 14, - "column": 25, - "byte": 223 - } - }, - "schema": true, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform-error", - "begin": { - "line": 14, - "column": 5, - "byte": 203 - }, - "end": { - "line": 14, - "column": 16, - "byte": 214 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 14, - "column": 18, - "byte": 216 - }, - "end": { - "line": 14, - "column": 25, - "byte": 223 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - }, - "schema": true - }, - "value": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - }, - "schema": true - } - } - } - } - } - }, - "properties": { - "missing-schema": { - "value": "test", - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 4, - "column": 5, - "byte": 49 - }, - "end": { - "line": 5, - "column": 18, - "byte": 79 - } - } - } - }, - "missing-value": { - "unknown": true, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 9, - "column": 5, - "byte": 122 - }, - "end": { - "line": 10, - "column": 29, - "byte": 163 - } - } - } - }, - "not-object": { - "unknown": true, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 14, - "column": 5, - "byte": 203 - }, - "end": { - "line": 14, - "column": 25, - "byte": 223 - } - } - } - } - }, - "schema": { - "properties": { - "missing-schema": { - "type": "string", - "const": "test" - }, - "missing-value": true, - "not-object": true - }, - "type": "object", - "required": [ - "missing-schema", - "missing-value", - "not-object" - ] - }, - "executionContext": { - "properties": { - "currentEnvironment": { - "value": { - "name": { - "value": "builtin-conform-error", - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - }, - "pulumi": { - "value": { - "user": { - "value": { - "id": { - "value": "USER_123", - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - }, - "rootEnvironment": { - "value": { - "name": { - "value": "builtin-conform-error", - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "schema": { - "properties": { - "currentEnvironment": { - "properties": { - "name": { - "type": "string", - "const": "builtin-conform-error" - } - }, - "type": "object", - "required": [ - "name" - ] - }, - "pulumi": { - "properties": { - "user": { - "properties": { - "id": { - "type": "string", - "const": "USER_123" - } - }, - "type": "object", - "required": [ - "id" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "rootEnvironment": { - "properties": { - "name": { - "type": "string", - "const": "builtin-conform-error" - } - }, - "type": "object", - "required": [ - "name" - ] - } - }, - "type": "object", - "required": [ - "currentEnvironment", - "pulumi", - "rootEnvironment" - ] - } - } - }, - "checkJson": { - "missing-schema": "test", - "missing-value": "[unknown]", - "not-object": "[unknown]" - }, - "eval": { - "exprs": { - "missing-schema": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 4, - "column": 5, - "byte": 49 - }, - "end": { - "line": 5, - "column": 18, - "byte": 79 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform-error", - "begin": { - "line": 4, - "column": 5, - "byte": 49 - }, - "end": { - "line": 4, - "column": 16, - "byte": 60 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 5, - "column": 7, - "byte": 68 - }, - "end": { - "line": 5, - "column": 18, - "byte": 79 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - }, - "schema": true - }, - "value": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 5, - "column": 14, - "byte": 75 - }, - "end": { - "line": 5, - "column": 18, - "byte": 79 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "literal": "test" - } - } - } - } - }, - "missing-value": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 9, - "column": 5, - "byte": 122 - }, - "end": { - "line": 10, - "column": 29, - "byte": 163 - } - }, - "schema": true, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform-error", - "begin": { - "line": 9, - "column": 5, - "byte": 122 - }, - "end": { - "line": 9, - "column": 16, - "byte": 133 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 10, - "column": 7, - "byte": 141 - }, - "end": { - "line": 10, - "column": 29, - "byte": 163 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 10, - "column": 15, - "byte": 149 - }, - "end": { - "line": 10, - "column": 29, - "byte": 163 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform-error", - "begin": { - "line": 10, - "column": 17, - "byte": 151 - }, - "end": { - "line": 10, - "column": 21, - "byte": 155 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 10, - "column": 23, - "byte": 157 - }, - "end": { - "line": 10, - "column": 29, - "byte": 163 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - }, - "schema": true - } - } - } - } - }, - "not-object": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 14, - "column": 5, - "byte": 203 - }, - "end": { - "line": 14, - "column": 25, - "byte": 223 - } - }, - "schema": true, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform-error", - "begin": { - "line": 14, - "column": 5, - "byte": 203 - }, - "end": { - "line": 14, - "column": 16, - "byte": 214 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 14, - "column": 18, - "byte": 216 - }, - "end": { - "line": 14, - "column": 25, - "byte": 223 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - }, - "schema": true - }, - "value": { - "range": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - }, - "schema": true - } - } - } - } - } - }, - "properties": { - "missing-schema": { - "value": "test", - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 4, - "column": 5, - "byte": 49 - }, - "end": { - "line": 5, - "column": 18, - "byte": 79 - } - } - } - }, - "missing-value": { - "unknown": true, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 9, - "column": 5, - "byte": 122 - }, - "end": { - "line": 10, - "column": 29, - "byte": 163 - } - } - } - }, - "not-object": { - "unknown": true, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 14, - "column": 5, - "byte": 203 - }, - "end": { - "line": 14, - "column": 25, - "byte": 223 - } - } - } - } - }, - "schema": { - "properties": { - "missing-schema": { - "type": "string", - "const": "test" - }, - "missing-value": true, - "not-object": true - }, - "type": "object", - "required": [ - "missing-schema", - "missing-value", - "not-object" - ] - }, - "executionContext": { - "properties": { - "currentEnvironment": { - "value": { - "name": { - "value": "builtin-conform-error", - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - }, - "pulumi": { - "value": { - "user": { - "value": { - "id": { - "value": "USER_123", - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - }, - "rootEnvironment": { - "value": { - "name": { - "value": "builtin-conform-error", - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform-error", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "schema": { - "properties": { - "currentEnvironment": { - "properties": { - "name": { - "type": "string", - "const": "builtin-conform-error" - } - }, - "type": "object", - "required": [ - "name" - ] - }, - "pulumi": { - "properties": { - "user": { - "properties": { - "id": { - "type": "string", - "const": "USER_123" - } - }, - "type": "object", - "required": [ - "id" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "rootEnvironment": { - "properties": { - "name": { - "type": "string", - "const": "builtin-conform-error" - } - }, - "type": "object", - "required": [ - "name" - ] - } - }, - "type": "object", - "required": [ - "currentEnvironment", - "pulumi", - "rootEnvironment" - ] - } - } - }, - "evalJsonRedacted": { - "missing-schema": "test", - "missing-value": "[unknown]", - "not-object": "[unknown]" - }, - "evalJSONRevealed": { - "missing-schema": "test", - "missing-value": "[unknown]", - "not-object": "[unknown]" - } -} diff --git a/eval/testdata/eval/builtin-conform/env.yaml b/eval/testdata/eval/builtin-conform/env.yaml deleted file mode 100644 index 8396e076..00000000 --- a/eval/testdata/eval/builtin-conform/env.yaml +++ /dev/null @@ -1,92 +0,0 @@ -values: - # Valid cases - should pass with no errors - valid-string: - fn::conform: - schema: { type: string } - value: "hello" - - valid-number: - fn::conform: - schema: { type: number, minimum: 0 } - value: 42 - - # Type violation - should emit error, still return 42 - type-error: - fn::conform: - schema: { type: string } - value: 42 - - # Object with required fields - missing-required: - fn::conform: - schema: - type: object - properties: - name: { type: string } - required: [name] - value: - other: "value" - - # String constraints - min-length-fail: - fn::conform: - schema: { type: string, minLength: 5 } - value: "hi" - - # Number constraints - number-range-fail: - fn::conform: - schema: { type: number, minimum: 10 } - value: 5 - - # Array validation - array-items-fail: - fn::conform: - schema: - type: array - items: { type: string } - value: ["hello", 42] - - # Schema from reference (dynamic schema) - my-schema: - type: string - minLength: 1 - dynamic-schema: - fn::conform: - schema: ${my-schema} - value: "" - - # Nested object validation - nested-fail: - fn::conform: - schema: - type: object - properties: - user: - type: object - properties: - age: { type: number } - value: - user: - age: "not a number" - - # Invalid schema definitions - should emit errors about the schema itself - invalid-type-value: - fn::conform: - schema: { type: "invalid-type" } - value: "test" - - invalid-minLength-type: - fn::conform: - schema: { type: string, minLength: "not a number" } - value: "test" - - invalid-required-type: - fn::conform: - schema: { type: object, required: "should be array" } - value: {} - - invalid-properties-type: - fn::conform: - schema: { type: object, properties: "should be object" } - value: {} diff --git a/eval/testdata/eval/builtin-conform/expected.json b/eval/testdata/eval/builtin-conform/expected.json deleted file mode 100644 index 8bb61c5e..00000000 --- a/eval/testdata/eval/builtin-conform/expected.json +++ /dev/null @@ -1,12486 +0,0 @@ -{ - "checkDiags": [ - { - "Severity": 1, - "Summary": "expected string, got number", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 17, - "Column": 14, - "Byte": 363 - }, - "End": { - "Line": 17, - "Column": 16, - "Byte": 365 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"type-error\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "missing required properties: name", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 28, - "Column": 9, - "Byte": 570 - }, - "End": { - "Line": 28, - "Column": 21, - "Byte": 582 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"missing-required\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected a string of at least length 5", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 34, - "Column": 14, - "Byte": 703 - }, - "End": { - "Line": 34, - "Column": 16, - "Byte": 705 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"min-length-fail\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected a number greater than or equal to 10", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 40, - "Column": 14, - "Byte": 827 - }, - "End": { - "Line": 40, - "Column": 15, - "Byte": 828 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"number-range-fail\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected string, got number", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 48, - "Column": 24, - "Byte": 977 - }, - "End": { - "Line": 48, - "Column": 26, - "Byte": 979 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"array-items-fail\"][\"fn::conform\"].value[1]" - }, - { - "Severity": 1, - "Summary": "expected a string of at least length 1", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 57, - "Column": 14, - "Byte": 1147 - }, - "End": { - "Line": 57, - "Column": 14, - "Byte": 1147 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"dynamic-schema\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected number, got string", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 71, - "Column": 16, - "Byte": 1410 - }, - "End": { - "Line": 71, - "Column": 28, - "Byte": 1422 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"nested-fail\"][\"fn::conform\"].value.user.age" - }, - { - "Severity": 1, - "Summary": "expected boolean, got object", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 76, - "Column": 15, - "Byte": 1555 - }, - "End": { - "Line": 76, - "Column": 35, - "Byte": 1575 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "at least one subschema must match", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 76, - "Column": 15, - "Byte": 1555 - }, - "End": { - "Line": 76, - "Column": 35, - "Byte": 1575 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected one of [\"string\",\"number\",\"boolean\",\"array\",\"object\",\"null\"]", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 76, - "Column": 23, - "Byte": 1563 - }, - "End": { - "Line": 76, - "Column": 35, - "Byte": 1575 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema.type" - }, - { - "Severity": 1, - "Summary": "at least one subschema must match", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 81, - "Column": 15, - "Byte": 1658 - }, - "End": { - "Line": 81, - "Column": 54, - "Byte": 1697 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected boolean, got object", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 81, - "Column": 15, - "Byte": 1658 - }, - "End": { - "Line": 81, - "Column": 54, - "Byte": 1697 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected number, got string", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 81, - "Column": 42, - "Byte": 1685 - }, - "End": { - "Line": 81, - "Column": 54, - "Byte": 1697 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema.minLength" - }, - { - "Severity": 1, - "Summary": "at least one subschema must match", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 86, - "Column": 15, - "Byte": 1779 - }, - "End": { - "Line": 86, - "Column": 56, - "Byte": 1820 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected boolean, got object", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 86, - "Column": 15, - "Byte": 1779 - }, - "End": { - "Line": 86, - "Column": 56, - "Byte": 1820 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected array, got string", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 86, - "Column": 41, - "Byte": 1805 - }, - "End": { - "Line": 86, - "Column": 56, - "Byte": 1820 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema.required" - }, - { - "Severity": 1, - "Summary": "at least one subschema must match", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 91, - "Column": 15, - "Byte": 1900 - }, - "End": { - "Line": 91, - "Column": 59, - "Byte": 1944 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected boolean, got object", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 91, - "Column": 15, - "Byte": 1900 - }, - "End": { - "Line": 91, - "Column": 59, - "Byte": 1944 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected object, got string", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 91, - "Column": 43, - "Byte": 1928 - }, - "End": { - "Line": 91, - "Column": 59, - "Byte": 1944 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema.properties" - } - ], - "check": { - "exprs": { - "array-items-fail": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 44, - "column": 5, - "byte": 875 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - }, - "schema": { - "prefixItems": [ - { - "type": "string", - "const": "hello" - }, - { - "type": "number", - "const": 42 - } - ], - "items": false, - "type": "array" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 44, - "column": 5, - "byte": 875 - }, - "end": { - "line": 44, - "column": 16, - "byte": 886 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 45, - "column": 7, - "byte": 894 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 46, - "column": 9, - "byte": 910 - }, - "end": { - "line": 47, - "column": 30, - "byte": 951 - } - }, - "schema": { - "properties": { - "items": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "type": { - "type": "string", - "const": "array" - } - }, - "type": "object", - "required": [ - "items", - "type" - ] - }, - "keyRanges": { - "items": { - "environment": "builtin-conform", - "begin": { - "line": 47, - "column": 9, - "byte": 930 - }, - "end": { - "line": 47, - "column": 14, - "byte": 935 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 46, - "column": 9, - "byte": 910 - }, - "end": { - "line": 46, - "column": 13, - "byte": 914 - } - } - }, - "object": { - "items": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 47, - "column": 16, - "byte": 937 - }, - "end": { - "line": 47, - "column": 30, - "byte": 951 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 47, - "column": 18, - "byte": 939 - }, - "end": { - "line": 47, - "column": 22, - "byte": 943 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 47, - "column": 24, - "byte": 945 - }, - "end": { - "line": 47, - "column": 30, - "byte": 951 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 46, - "column": 15, - "byte": 916 - }, - "end": { - "line": 46, - "column": 20, - "byte": 921 - } - }, - "schema": { - "type": "string", - "const": "array" - }, - "literal": "array" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 14, - "byte": 967 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - }, - "schema": { - "prefixItems": [ - { - "type": "string", - "const": "hello" - }, - { - "type": "number", - "const": 42 - } - ], - "items": false, - "type": "array" - }, - "list": [ - { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 15, - "byte": 968 - }, - "end": { - "line": 48, - "column": 20, - "byte": 973 - } - }, - "schema": { - "type": "string", - "const": "hello" - }, - "literal": "hello" - }, - { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 24, - "byte": 977 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "literal": 42 - } - ] - } - } - } - } - }, - "dynamic-schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 55, - "column": 5, - "byte": 1094 - }, - "end": { - "line": 57, - "column": 14, - "byte": 1147 - } - }, - "schema": { - "type": "string", - "const": "" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 55, - "column": 5, - "byte": 1094 - }, - "end": { - "line": 55, - "column": 16, - "byte": 1105 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 56, - "column": 7, - "byte": 1113 - }, - "end": { - "line": 57, - "column": 14, - "byte": 1147 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 56, - "column": 15, - "byte": 1121 - }, - "end": { - "line": 56, - "column": 27, - "byte": 1133 - } - }, - "schema": { - "properties": { - "minLength": { - "type": "number", - "const": 1 - }, - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "minLength", - "type" - ] - }, - "symbol": [ - { - "key": "my-schema", - "range": { - "environment": "builtin-conform", - "begin": { - "line": 56, - "column": 17, - "byte": 1123 - }, - "end": { - "line": 56, - "column": 26, - "byte": 1132 - } - }, - "value": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 5, - "byte": 1042 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - } - } - ] - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 57, - "column": 14, - "byte": 1147 - }, - "end": { - "line": 57, - "column": 14, - "byte": 1147 - } - }, - "schema": { - "type": "string", - "const": "" - }, - "literal": "" - } - } - } - } - }, - "invalid-minLength-type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 80, - "column": 5, - "byte": 1631 - }, - "end": { - "line": 82, - "column": 18, - "byte": 1719 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 80, - "column": 5, - "byte": 1631 - }, - "end": { - "line": 80, - "column": 16, - "byte": 1642 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 7, - "byte": 1650 - }, - "end": { - "line": 82, - "column": 18, - "byte": 1719 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 15, - "byte": 1658 - }, - "end": { - "line": 81, - "column": 54, - "byte": 1697 - } - }, - "schema": { - "properties": { - "minLength": { - "type": "string", - "const": "not a number" - }, - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "minLength", - "type" - ] - }, - "keyRanges": { - "minLength": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 31, - "byte": 1674 - }, - "end": { - "line": 81, - "column": 40, - "byte": 1683 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 17, - "byte": 1660 - }, - "end": { - "line": 81, - "column": 21, - "byte": 1664 - } - } - }, - "object": { - "minLength": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 42, - "byte": 1685 - }, - "end": { - "line": 81, - "column": 54, - "byte": 1697 - } - }, - "schema": { - "type": "string", - "const": "not a number" - }, - "literal": "not a number" - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 23, - "byte": 1666 - }, - "end": { - "line": 81, - "column": 29, - "byte": 1672 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 82, - "column": 14, - "byte": 1715 - }, - "end": { - "line": 82, - "column": 18, - "byte": 1719 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "literal": "test" - } - } - } - } - }, - "invalid-properties-type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 90, - "column": 5, - "byte": 1873 - }, - "end": { - "line": 92, - "column": 14, - "byte": 1962 - } - }, - "schema": { - "type": "object" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 90, - "column": 5, - "byte": 1873 - }, - "end": { - "line": 90, - "column": 16, - "byte": 1884 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 7, - "byte": 1892 - }, - "end": { - "line": 92, - "column": 14, - "byte": 1962 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 15, - "byte": 1900 - }, - "end": { - "line": 91, - "column": 59, - "byte": 1944 - } - }, - "schema": { - "properties": { - "properties": { - "type": "string", - "const": "should be object" - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "type" - ] - }, - "keyRanges": { - "properties": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 31, - "byte": 1916 - }, - "end": { - "line": 91, - "column": 41, - "byte": 1926 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 17, - "byte": 1902 - }, - "end": { - "line": 91, - "column": 21, - "byte": 1906 - } - } - }, - "object": { - "properties": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 43, - "byte": 1928 - }, - "end": { - "line": 91, - "column": 59, - "byte": 1944 - } - }, - "schema": { - "type": "string", - "const": "should be object" - }, - "literal": "should be object" - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 23, - "byte": 1908 - }, - "end": { - "line": 91, - "column": 29, - "byte": 1914 - } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 92, - "column": 14, - "byte": 1962 - }, - "end": { - "line": 92, - "column": 14, - "byte": 1962 - } - }, - "schema": { - "type": "object" - } - } - } - } - } - }, - "invalid-required-type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 85, - "column": 5, - "byte": 1752 - }, - "end": { - "line": 87, - "column": 14, - "byte": 1838 - } - }, - "schema": { - "type": "object" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 85, - "column": 5, - "byte": 1752 - }, - "end": { - "line": 85, - "column": 16, - "byte": 1763 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 7, - "byte": 1771 - }, - "end": { - "line": 87, - "column": 14, - "byte": 1838 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 15, - "byte": 1779 - }, - "end": { - "line": 86, - "column": 56, - "byte": 1820 - } - }, - "schema": { - "properties": { - "required": { - "type": "string", - "const": "should be array" - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "required", - "type" - ] - }, - "keyRanges": { - "required": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 31, - "byte": 1795 - }, - "end": { - "line": 86, - "column": 39, - "byte": 1803 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 17, - "byte": 1781 - }, - "end": { - "line": 86, - "column": 21, - "byte": 1785 - } - } - }, - "object": { - "required": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 41, - "byte": 1805 - }, - "end": { - "line": 86, - "column": 56, - "byte": 1820 - } - }, - "schema": { - "type": "string", - "const": "should be array" - }, - "literal": "should be array" - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 23, - "byte": 1787 - }, - "end": { - "line": 86, - "column": 29, - "byte": 1793 - } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 87, - "column": 14, - "byte": 1838 - }, - "end": { - "line": 87, - "column": 14, - "byte": 1838 - } - }, - "schema": { - "type": "object" - } - } - } - } - } - }, - "invalid-type-value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 75, - "column": 5, - "byte": 1528 - }, - "end": { - "line": 77, - "column": 18, - "byte": 1597 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 75, - "column": 5, - "byte": 1528 - }, - "end": { - "line": 75, - "column": 16, - "byte": 1539 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 76, - "column": 7, - "byte": 1547 - }, - "end": { - "line": 77, - "column": 18, - "byte": 1597 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 76, - "column": 15, - "byte": 1555 - }, - "end": { - "line": 76, - "column": 35, - "byte": 1575 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "invalid-type" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 76, - "column": 17, - "byte": 1557 - }, - "end": { - "line": 76, - "column": 21, - "byte": 1561 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 76, - "column": 23, - "byte": 1563 - }, - "end": { - "line": 76, - "column": 35, - "byte": 1575 - } - }, - "schema": { - "type": "string", - "const": "invalid-type" - }, - "literal": "invalid-type" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 77, - "column": 14, - "byte": 1593 - }, - "end": { - "line": 77, - "column": 18, - "byte": 1597 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "literal": "test" - } - } - } - } - }, - "min-length-fail": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 32, - "column": 5, - "byte": 632 - }, - "end": { - "line": 34, - "column": 16, - "byte": 705 - } - }, - "schema": { - "type": "string", - "const": "hi" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 32, - "column": 5, - "byte": 632 - }, - "end": { - "line": 32, - "column": 16, - "byte": 643 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 7, - "byte": 651 - }, - "end": { - "line": 34, - "column": 16, - "byte": 705 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 15, - "byte": 659 - }, - "end": { - "line": 33, - "column": 43, - "byte": 687 - } - }, - "schema": { - "properties": { - "minLength": { - "type": "number", - "const": 5 - }, - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "minLength", - "type" - ] - }, - "keyRanges": { - "minLength": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 31, - "byte": 675 - }, - "end": { - "line": 33, - "column": 40, - "byte": 684 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 17, - "byte": 661 - }, - "end": { - "line": 33, - "column": 21, - "byte": 665 - } - } - }, - "object": { - "minLength": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 42, - "byte": 686 - }, - "end": { - "line": 33, - "column": 43, - "byte": 687 - } - }, - "schema": { - "type": "number", - "const": 5 - }, - "literal": 5 - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 23, - "byte": 667 - }, - "end": { - "line": 33, - "column": 29, - "byte": 673 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 34, - "column": 14, - "byte": 703 - }, - "end": { - "line": 34, - "column": 16, - "byte": 705 - } - }, - "schema": { - "type": "string", - "const": "hi" - }, - "literal": "hi" - } - } - } - } - }, - "missing-required": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 21, - "column": 5, - "byte": 423 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - }, - "schema": { - "properties": { - "other": { - "type": "string", - "const": "value" - } - }, - "type": "object", - "required": [ - "other" - ] - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 21, - "column": 5, - "byte": 423 - }, - "end": { - "line": 21, - "column": 16, - "byte": 434 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 22, - "column": 7, - "byte": 442 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 23, - "column": 9, - "byte": 458 - }, - "end": { - "line": 26, - "column": 24, - "byte": 547 - } - }, - "schema": { - "properties": { - "properties": { - "properties": { - "name": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "name" - ] - }, - "required": { - "prefixItems": [ - { - "type": "string", - "const": "name" - } - ], - "items": false, - "type": "array" - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "required", - "type" - ] - }, - "keyRanges": { - "properties": { - "environment": "builtin-conform", - "begin": { - "line": 24, - "column": 9, - "byte": 479 - }, - "end": { - "line": 24, - "column": 19, - "byte": 489 - } - }, - "required": { - "environment": "builtin-conform", - "begin": { - "line": 26, - "column": 9, - "byte": 532 - }, - "end": { - "line": 26, - "column": 17, - "byte": 540 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 23, - "column": 9, - "byte": 458 - }, - "end": { - "line": 23, - "column": 13, - "byte": 462 - } - } - }, - "object": { - "properties": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 11, - "byte": 501 - }, - "end": { - "line": 25, - "column": 31, - "byte": 521 - } - }, - "schema": { - "properties": { - "name": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "name" - ] - }, - "keyRanges": { - "name": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 11, - "byte": 501 - }, - "end": { - "line": 25, - "column": 15, - "byte": 505 - } - } - }, - "object": { - "name": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 17, - "byte": 507 - }, - "end": { - "line": 25, - "column": 31, - "byte": 521 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 19, - "byte": 509 - }, - "end": { - "line": 25, - "column": 23, - "byte": 513 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 25, - "byte": 515 - }, - "end": { - "line": 25, - "column": 31, - "byte": 521 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - } - } - }, - "required": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 26, - "column": 19, - "byte": 542 - }, - "end": { - "line": 26, - "column": 24, - "byte": 547 - } - }, - "schema": { - "prefixItems": [ - { - "type": "string", - "const": "name" - } - ], - "items": false, - "type": "array" - }, - "list": [ - { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 26, - "column": 20, - "byte": 543 - }, - "end": { - "line": 26, - "column": 24, - "byte": 547 - } - }, - "schema": { - "type": "string", - "const": "name" - }, - "literal": "name" - } - ] - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 23, - "column": 15, - "byte": 464 - }, - "end": { - "line": 23, - "column": 21, - "byte": 470 - } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 28, - "column": 9, - "byte": 570 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - }, - "schema": { - "properties": { - "other": { - "type": "string", - "const": "value" - } - }, - "type": "object", - "required": [ - "other" - ] - }, - "keyRanges": { - "other": { - "environment": "builtin-conform", - "begin": { - "line": 28, - "column": 9, - "byte": 570 - }, - "end": { - "line": 28, - "column": 14, - "byte": 575 - } - } - }, - "object": { - "other": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 28, - "column": 16, - "byte": 577 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - }, - "schema": { - "type": "string", - "const": "value" - }, - "literal": "value" - } - } - } - } - } - } - }, - "my-schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 5, - "byte": 1042 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - }, - "schema": { - "properties": { - "minLength": { - "type": "number", - "const": 1 - }, - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "minLength", - "type" - ] - }, - "keyRanges": { - "minLength": { - "environment": "builtin-conform", - "begin": { - "line": 53, - "column": 5, - "byte": 1059 - }, - "end": { - "line": 53, - "column": 14, - "byte": 1068 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 5, - "byte": 1042 - }, - "end": { - "line": 52, - "column": 9, - "byte": 1046 - } - } - }, - "object": { - "minLength": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 53, - "column": 16, - "byte": 1070 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - }, - "schema": { - "type": "number", - "const": 1 - }, - "literal": 1 - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 11, - "byte": 1048 - }, - "end": { - "line": 52, - "column": 17, - "byte": 1054 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "nested-fail": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 61, - "column": 5, - "byte": 1199 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - }, - "schema": { - "properties": { - "user": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } - }, - "type": "object", - "required": [ - "age" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 61, - "column": 5, - "byte": 1199 - }, - "end": { - "line": 61, - "column": 16, - "byte": 1210 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 62, - "column": 7, - "byte": 1218 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 63, - "column": 9, - "byte": 1234 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "properties": { - "properties": { - "user": { - "properties": { - "properties": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "type" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "type" - ] - }, - "keyRanges": { - "properties": { - "environment": "builtin-conform", - "begin": { - "line": 64, - "column": 9, - "byte": 1255 - }, - "end": { - "line": 64, - "column": 19, - "byte": 1265 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 63, - "column": 9, - "byte": 1234 - }, - "end": { - "line": 63, - "column": 13, - "byte": 1238 - } - } - }, - "object": { - "properties": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 65, - "column": 11, - "byte": 1277 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "user": { - "properties": { - "properties": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "type" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "keyRanges": { - "user": { - "environment": "builtin-conform", - "begin": { - "line": 65, - "column": 11, - "byte": 1277 - }, - "end": { - "line": 65, - "column": 15, - "byte": 1281 - } - } - }, - "object": { - "user": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 66, - "column": 13, - "byte": 1295 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "properties": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "type" - ] - }, - "keyRanges": { - "properties": { - "environment": "builtin-conform", - "begin": { - "line": 67, - "column": 13, - "byte": 1320 - }, - "end": { - "line": 67, - "column": 23, - "byte": 1330 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 66, - "column": 13, - "byte": 1295 - }, - "end": { - "line": 66, - "column": 17, - "byte": 1299 - } - } - }, - "object": { - "properties": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 15, - "byte": 1346 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "keyRanges": { - "age": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 15, - "byte": 1346 - }, - "end": { - "line": 68, - "column": 18, - "byte": 1349 - } - } - }, - "object": { - "age": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 20, - "byte": 1351 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 22, - "byte": 1353 - }, - "end": { - "line": 68, - "column": 26, - "byte": 1357 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 28, - "byte": 1359 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "type": "string", - "const": "number" - }, - "literal": "number" - } - } - } - } - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 66, - "column": 19, - "byte": 1301 - }, - "end": { - "line": 66, - "column": 25, - "byte": 1307 - } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" - } - } - } - } - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 63, - "column": 15, - "byte": 1240 - }, - "end": { - "line": 63, - "column": 21, - "byte": 1246 - } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 70, - "column": 9, - "byte": 1389 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - }, - "schema": { - "properties": { - "user": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } - }, - "type": "object", - "required": [ - "age" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "keyRanges": { - "user": { - "environment": "builtin-conform", - "begin": { - "line": 70, - "column": 9, - "byte": 1389 - }, - "end": { - "line": 70, - "column": 13, - "byte": 1393 - } - } - }, - "object": { - "user": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 11, - "byte": 1405 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - }, - "schema": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "keyRanges": { - "age": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 11, - "byte": 1405 - }, - "end": { - "line": 71, - "column": 14, - "byte": 1408 - } - } - }, - "object": { - "age": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 16, - "byte": 1410 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - }, - "schema": { - "type": "string", - "const": "not a number" - }, - "literal": "not a number" - } - } - } - } - } - } - } - } - }, - "number-range-fail": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 38, - "column": 5, - "byte": 757 - }, - "end": { - "line": 40, - "column": 15, - "byte": 828 - } - }, - "schema": { - "type": "number", - "const": 5 - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 38, - "column": 5, - "byte": 757 - }, - "end": { - "line": 38, - "column": 16, - "byte": 768 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 7, - "byte": 776 - }, - "end": { - "line": 40, - "column": 15, - "byte": 828 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 15, - "byte": 784 - }, - "end": { - "line": 39, - "column": 42, - "byte": 811 - } - }, - "schema": { - "properties": { - "minimum": { - "type": "number", - "const": 10 - }, - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "minimum", - "type" - ] - }, - "keyRanges": { - "minimum": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 31, - "byte": 800 - }, - "end": { - "line": 39, - "column": 38, - "byte": 807 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 17, - "byte": 786 - }, - "end": { - "line": 39, - "column": 21, - "byte": 790 - } - } - }, - "object": { - "minimum": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 40, - "byte": 809 - }, - "end": { - "line": 39, - "column": 42, - "byte": 811 - } - }, - "schema": { - "type": "number", - "const": 10 - }, - "literal": 10 - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 23, - "byte": 792 - }, - "end": { - "line": 39, - "column": 29, - "byte": 798 - } - }, - "schema": { - "type": "string", - "const": "number" - }, - "literal": "number" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 40, - "column": 14, - "byte": 827 - }, - "end": { - "line": 40, - "column": 15, - "byte": 828 - } - }, - "schema": { - "type": "number", - "const": 5 - }, - "literal": 5 - } - } - } - } - }, - "type-error": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 15, - "column": 5, - "byte": 306 - }, - "end": { - "line": 17, - "column": 16, - "byte": 365 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 15, - "column": 5, - "byte": 306 - }, - "end": { - "line": 15, - "column": 16, - "byte": 317 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 16, - "column": 7, - "byte": 325 - }, - "end": { - "line": 17, - "column": 16, - "byte": 365 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 16, - "column": 15, - "byte": 333 - }, - "end": { - "line": 16, - "column": 29, - "byte": 347 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 16, - "column": 17, - "byte": 335 - }, - "end": { - "line": 16, - "column": 21, - "byte": 339 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 16, - "column": 23, - "byte": 341 - }, - "end": { - "line": 16, - "column": 29, - "byte": 347 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 17, - "column": 14, - "byte": 363 - }, - "end": { - "line": 17, - "column": 16, - "byte": 365 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "literal": 42 - } - } - } - } - }, - "valid-number": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 9, - "column": 5, - "byte": 159 - }, - "end": { - "line": 11, - "column": 16, - "byte": 230 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 9, - "column": 5, - "byte": 159 - }, - "end": { - "line": 9, - "column": 16, - "byte": 170 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 7, - "byte": 178 - }, - "end": { - "line": 11, - "column": 16, - "byte": 230 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 15, - "byte": 186 - }, - "end": { - "line": 10, - "column": 41, - "byte": 212 - } - }, - "schema": { - "properties": { - "minimum": { - "type": "number", - "const": 0 - }, - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "minimum", - "type" - ] - }, - "keyRanges": { - "minimum": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 31, - "byte": 202 - }, - "end": { - "line": 10, - "column": 38, - "byte": 209 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 17, - "byte": 188 - }, - "end": { - "line": 10, - "column": 21, - "byte": 192 - } - } - }, - "object": { - "minimum": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 40, - "byte": 211 - }, - "end": { - "line": 10, - "column": 41, - "byte": 212 - } - }, - "schema": { - "type": "number", - "const": 0 - }, - "literal": 0 - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 23, - "byte": 194 - }, - "end": { - "line": 10, - "column": 29, - "byte": 200 - } - }, - "schema": { - "type": "string", - "const": "number" - }, - "literal": "number" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 11, - "column": 14, - "byte": 228 - }, - "end": { - "line": 11, - "column": 16, - "byte": 230 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "literal": 42 - } - } - } - } - }, - "valid-string": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 4, - "column": 5, - "byte": 73 - }, - "end": { - "line": 6, - "column": 19, - "byte": 135 - } - }, - "schema": { - "type": "string", - "const": "hello" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 4, - "column": 5, - "byte": 73 - }, - "end": { - "line": 4, - "column": 16, - "byte": 84 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 5, - "column": 7, - "byte": 92 - }, - "end": { - "line": 6, - "column": 19, - "byte": 135 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 5, - "column": 15, - "byte": 100 - }, - "end": { - "line": 5, - "column": 29, - "byte": 114 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 5, - "column": 17, - "byte": 102 - }, - "end": { - "line": 5, - "column": 21, - "byte": 106 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 5, - "column": 23, - "byte": 108 - }, - "end": { - "line": 5, - "column": 29, - "byte": 114 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 6, - "column": 14, - "byte": 130 - }, - "end": { - "line": 6, - "column": 19, - "byte": 135 - } - }, - "schema": { - "type": "string", - "const": "hello" - }, - "literal": "hello" - } - } - } - } - } - }, - "properties": { - "array-items-fail": { - "value": [ - { - "value": "hello", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 15, - "byte": 968 - }, - "end": { - "line": 48, - "column": 20, - "byte": 973 - } - } - } - }, - { - "value": 42, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 24, - "byte": 977 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - } - } - } - ], - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 44, - "column": 5, - "byte": 875 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - } - } - }, - "dynamic-schema": { - "value": "", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 55, - "column": 5, - "byte": 1094 - }, - "end": { - "line": 57, - "column": 14, - "byte": 1147 - } - } - } - }, - "invalid-minLength-type": { - "value": "test", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 80, - "column": 5, - "byte": 1631 - }, - "end": { - "line": 82, - "column": 18, - "byte": 1719 - } - } - } - }, - "invalid-properties-type": { - "value": {}, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 90, - "column": 5, - "byte": 1873 - }, - "end": { - "line": 92, - "column": 14, - "byte": 1962 - } - } - } - }, - "invalid-required-type": { - "value": {}, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 85, - "column": 5, - "byte": 1752 - }, - "end": { - "line": 87, - "column": 14, - "byte": 1838 - } - } - } - }, - "invalid-type-value": { - "value": "test", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 75, - "column": 5, - "byte": 1528 - }, - "end": { - "line": 77, - "column": 18, - "byte": 1597 - } - } - } - }, - "min-length-fail": { - "value": "hi", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 32, - "column": 5, - "byte": 632 - }, - "end": { - "line": 34, - "column": 16, - "byte": 705 - } - } - } - }, - "missing-required": { - "value": { - "other": { - "value": "value", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 28, - "column": 16, - "byte": 577 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 21, - "column": 5, - "byte": 423 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - } - } - }, - "my-schema": { - "value": { - "minLength": { - "value": 1, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 53, - "column": 16, - "byte": 1070 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - } - } - }, - "type": { - "value": "string", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 11, - "byte": 1048 - }, - "end": { - "line": 52, - "column": 17, - "byte": 1054 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 5, - "byte": 1042 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - } - } - }, - "nested-fail": { - "value": { - "user": { - "value": { - "age": { - "value": "not a number", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 16, - "byte": 1410 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 11, - "byte": 1405 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 61, - "column": 5, - "byte": 1199 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - } - } - }, - "number-range-fail": { - "value": 5, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 38, - "column": 5, - "byte": 757 - }, - "end": { - "line": 40, - "column": 15, - "byte": 828 - } - } - } - }, - "type-error": { - "value": 42, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 15, - "column": 5, - "byte": 306 - }, - "end": { - "line": 17, - "column": 16, - "byte": 365 - } - } - } - }, - "valid-number": { - "value": 42, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 9, - "column": 5, - "byte": 159 - }, - "end": { - "line": 11, - "column": 16, - "byte": 230 - } - } - } - }, - "valid-string": { - "value": "hello", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 4, - "column": 5, - "byte": 73 - }, - "end": { - "line": 6, - "column": 19, - "byte": 135 - } - } - } - } - }, - "schema": { - "properties": { - "array-items-fail": { - "prefixItems": [ - { - "type": "string", - "const": "hello" - }, - { - "type": "number", - "const": 42 - } - ], - "items": false, - "type": "array" - }, - "dynamic-schema": { - "type": "string", - "const": "" - }, - "invalid-minLength-type": { - "type": "string", - "const": "test" - }, - "invalid-properties-type": { - "type": "object" - }, - "invalid-required-type": { - "type": "object" - }, - "invalid-type-value": { - "type": "string", - "const": "test" - }, - "min-length-fail": { - "type": "string", - "const": "hi" - }, - "missing-required": { - "properties": { - "other": { - "type": "string", - "const": "value" - } - }, - "type": "object", - "required": [ - "other" - ] - }, - "my-schema": { - "properties": { - "minLength": { - "type": "number", - "const": 1 - }, - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "minLength", - "type" - ] - }, - "nested-fail": { - "properties": { - "user": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } - }, - "type": "object", - "required": [ - "age" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "number-range-fail": { - "type": "number", - "const": 5 - }, - "type-error": { - "type": "number", - "const": 42 - }, - "valid-number": { - "type": "number", - "const": 42 - }, - "valid-string": { - "type": "string", - "const": "hello" - } - }, - "type": "object", - "required": [ - "array-items-fail", - "dynamic-schema", - "invalid-minLength-type", - "invalid-properties-type", - "invalid-required-type", - "invalid-type-value", - "min-length-fail", - "missing-required", - "my-schema", - "nested-fail", - "number-range-fail", - "type-error", - "valid-number", - "valid-string" - ] - }, - "executionContext": { - "properties": { - "currentEnvironment": { - "value": { - "name": { - "value": "builtin-conform", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - }, - "pulumi": { - "value": { - "user": { - "value": { - "id": { - "value": "USER_123", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - }, - "rootEnvironment": { - "value": { - "name": { - "value": "builtin-conform", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "schema": { - "properties": { - "currentEnvironment": { - "properties": { - "name": { - "type": "string", - "const": "builtin-conform" - } - }, - "type": "object", - "required": [ - "name" - ] - }, - "pulumi": { - "properties": { - "user": { - "properties": { - "id": { - "type": "string", - "const": "USER_123" - } - }, - "type": "object", - "required": [ - "id" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "rootEnvironment": { - "properties": { - "name": { - "type": "string", - "const": "builtin-conform" - } - }, - "type": "object", - "required": [ - "name" - ] - } - }, - "type": "object", - "required": [ - "currentEnvironment", - "pulumi", - "rootEnvironment" - ] - } - } - }, - "checkJson": { - "array-items-fail": [ - "hello", - 42 - ], - "dynamic-schema": "", - "invalid-minLength-type": "test", - "invalid-properties-type": {}, - "invalid-required-type": {}, - "invalid-type-value": "test", - "min-length-fail": "hi", - "missing-required": { - "other": "value" - }, - "my-schema": { - "minLength": 1, - "type": "string" - }, - "nested-fail": { - "user": { - "age": "not a number" - } - }, - "number-range-fail": 5, - "type-error": 42, - "valid-number": 42, - "valid-string": "hello" - }, - "evalDiags": [ - { - "Severity": 1, - "Summary": "expected string, got number", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 17, - "Column": 14, - "Byte": 363 - }, - "End": { - "Line": 17, - "Column": 16, - "Byte": 365 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"type-error\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "missing required properties: name", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 28, - "Column": 9, - "Byte": 570 - }, - "End": { - "Line": 28, - "Column": 21, - "Byte": 582 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"missing-required\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected a string of at least length 5", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 34, - "Column": 14, - "Byte": 703 - }, - "End": { - "Line": 34, - "Column": 16, - "Byte": 705 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"min-length-fail\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected a number greater than or equal to 10", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 40, - "Column": 14, - "Byte": 827 - }, - "End": { - "Line": 40, - "Column": 15, - "Byte": 828 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"number-range-fail\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected string, got number", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 48, - "Column": 24, - "Byte": 977 - }, - "End": { - "Line": 48, - "Column": 26, - "Byte": 979 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"array-items-fail\"][\"fn::conform\"].value[1]" - }, - { - "Severity": 1, - "Summary": "expected a string of at least length 1", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 57, - "Column": 14, - "Byte": 1147 - }, - "End": { - "Line": 57, - "Column": 14, - "Byte": 1147 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"dynamic-schema\"][\"fn::conform\"].value" - }, - { - "Severity": 1, - "Summary": "expected number, got string", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 71, - "Column": 16, - "Byte": 1410 - }, - "End": { - "Line": 71, - "Column": 28, - "Byte": 1422 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"nested-fail\"][\"fn::conform\"].value.user.age" - }, - { - "Severity": 1, - "Summary": "expected boolean, got object", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 76, - "Column": 15, - "Byte": 1555 - }, - "End": { - "Line": 76, - "Column": 35, - "Byte": 1575 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "at least one subschema must match", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 76, - "Column": 15, - "Byte": 1555 - }, - "End": { - "Line": 76, - "Column": 35, - "Byte": 1575 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected one of [\"string\",\"number\",\"boolean\",\"array\",\"object\",\"null\"]", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 76, - "Column": 23, - "Byte": 1563 - }, - "End": { - "Line": 76, - "Column": 35, - "Byte": 1575 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-type-value\"][\"fn::conform\"].schema.type" - }, - { - "Severity": 1, - "Summary": "at least one subschema must match", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 81, - "Column": 15, - "Byte": 1658 - }, - "End": { - "Line": 81, - "Column": 54, - "Byte": 1697 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected boolean, got object", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 81, - "Column": 15, - "Byte": 1658 - }, - "End": { - "Line": 81, - "Column": 54, - "Byte": 1697 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected number, got string", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 81, - "Column": 42, - "Byte": 1685 - }, - "End": { - "Line": 81, - "Column": 54, - "Byte": 1697 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-minLength-type\"][\"fn::conform\"].schema.minLength" - }, - { - "Severity": 1, - "Summary": "at least one subschema must match", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 86, - "Column": 15, - "Byte": 1779 - }, - "End": { - "Line": 86, - "Column": 56, - "Byte": 1820 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected boolean, got object", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 86, - "Column": 15, - "Byte": 1779 - }, - "End": { - "Line": 86, - "Column": 56, - "Byte": 1820 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected array, got string", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 86, - "Column": 41, - "Byte": 1805 - }, - "End": { - "Line": 86, - "Column": 56, - "Byte": 1820 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-required-type\"][\"fn::conform\"].schema.required" - }, - { - "Severity": 1, - "Summary": "at least one subschema must match", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 91, - "Column": 15, - "Byte": 1900 - }, - "End": { - "Line": 91, - "Column": 59, - "Byte": 1944 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected boolean, got object", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 91, - "Column": 15, - "Byte": 1900 - }, - "End": { - "Line": 91, - "Column": 59, - "Byte": 1944 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema" - }, - { - "Severity": 1, - "Summary": "expected object, got string", - "Detail": "", - "Subject": { - "Filename": "builtin-conform", - "Start": { - "Line": 91, - "Column": 43, - "Byte": 1928 - }, - "End": { - "Line": 91, - "Column": 59, - "Byte": 1944 - } - }, - "Context": null, - "Expression": null, - "EvalContext": null, - "Extra": null, - "Path": "values[\"invalid-properties-type\"][\"fn::conform\"].schema.properties" - } - ], - "eval": { - "exprs": { - "array-items-fail": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 44, - "column": 5, - "byte": 875 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - }, - "schema": { - "prefixItems": [ - { - "type": "string", - "const": "hello" - }, - { - "type": "number", - "const": 42 - } - ], - "items": false, - "type": "array" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 44, - "column": 5, - "byte": 875 - }, - "end": { - "line": 44, - "column": 16, - "byte": 886 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 45, - "column": 7, - "byte": 894 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 46, - "column": 9, - "byte": 910 - }, - "end": { - "line": 47, - "column": 30, - "byte": 951 - } - }, - "schema": { - "properties": { - "items": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "type": { - "type": "string", - "const": "array" - } - }, - "type": "object", - "required": [ - "items", - "type" - ] - }, - "keyRanges": { - "items": { - "environment": "builtin-conform", - "begin": { - "line": 47, - "column": 9, - "byte": 930 - }, - "end": { - "line": 47, - "column": 14, - "byte": 935 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 46, - "column": 9, - "byte": 910 - }, - "end": { - "line": 46, - "column": 13, - "byte": 914 - } - } - }, - "object": { - "items": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 47, - "column": 16, - "byte": 937 - }, - "end": { - "line": 47, - "column": 30, - "byte": 951 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 47, - "column": 18, - "byte": 939 - }, - "end": { - "line": 47, - "column": 22, - "byte": 943 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 47, - "column": 24, - "byte": 945 - }, - "end": { - "line": 47, - "column": 30, - "byte": 951 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 46, - "column": 15, - "byte": 916 - }, - "end": { - "line": 46, - "column": 20, - "byte": 921 - } - }, - "schema": { - "type": "string", - "const": "array" - }, - "literal": "array" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 14, - "byte": 967 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - }, - "schema": { - "prefixItems": [ - { - "type": "string", - "const": "hello" - }, - { - "type": "number", - "const": 42 - } - ], - "items": false, - "type": "array" - }, - "list": [ - { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 15, - "byte": 968 - }, - "end": { - "line": 48, - "column": 20, - "byte": 973 - } - }, - "schema": { - "type": "string", - "const": "hello" - }, - "literal": "hello" - }, - { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 24, - "byte": 977 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "literal": 42 - } - ] - } - } - } - } - }, - "dynamic-schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 55, - "column": 5, - "byte": 1094 - }, - "end": { - "line": 57, - "column": 14, - "byte": 1147 - } - }, - "schema": { - "type": "string", - "const": "" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 55, - "column": 5, - "byte": 1094 - }, - "end": { - "line": 55, - "column": 16, - "byte": 1105 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 56, - "column": 7, - "byte": 1113 - }, - "end": { - "line": 57, - "column": 14, - "byte": 1147 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 56, - "column": 15, - "byte": 1121 - }, - "end": { - "line": 56, - "column": 27, - "byte": 1133 - } - }, - "schema": { - "properties": { - "minLength": { - "type": "number", - "const": 1 - }, - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "minLength", - "type" - ] - }, - "symbol": [ - { - "key": "my-schema", - "range": { - "environment": "builtin-conform", - "begin": { - "line": 56, - "column": 17, - "byte": 1123 - }, - "end": { - "line": 56, - "column": 26, - "byte": 1132 - } - }, - "value": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 5, - "byte": 1042 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - } - } - ] - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 57, - "column": 14, - "byte": 1147 - }, - "end": { - "line": 57, - "column": 14, - "byte": 1147 - } - }, - "schema": { - "type": "string", - "const": "" - }, - "literal": "" - } - } - } - } - }, - "invalid-minLength-type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 80, - "column": 5, - "byte": 1631 - }, - "end": { - "line": 82, - "column": 18, - "byte": 1719 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 80, - "column": 5, - "byte": 1631 - }, - "end": { - "line": 80, - "column": 16, - "byte": 1642 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 7, - "byte": 1650 - }, - "end": { - "line": 82, - "column": 18, - "byte": 1719 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 15, - "byte": 1658 - }, - "end": { - "line": 81, - "column": 54, - "byte": 1697 - } - }, - "schema": { - "properties": { - "minLength": { - "type": "string", - "const": "not a number" - }, - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "minLength", - "type" - ] - }, - "keyRanges": { - "minLength": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 31, - "byte": 1674 - }, - "end": { - "line": 81, - "column": 40, - "byte": 1683 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 17, - "byte": 1660 - }, - "end": { - "line": 81, - "column": 21, - "byte": 1664 - } - } - }, - "object": { - "minLength": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 42, - "byte": 1685 - }, - "end": { - "line": 81, - "column": 54, - "byte": 1697 - } - }, - "schema": { - "type": "string", - "const": "not a number" - }, - "literal": "not a number" - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 81, - "column": 23, - "byte": 1666 - }, - "end": { - "line": 81, - "column": 29, - "byte": 1672 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 82, - "column": 14, - "byte": 1715 - }, - "end": { - "line": 82, - "column": 18, - "byte": 1719 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "literal": "test" - } - } - } - } - }, - "invalid-properties-type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 90, - "column": 5, - "byte": 1873 - }, - "end": { - "line": 92, - "column": 14, - "byte": 1962 - } - }, - "schema": { - "type": "object" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 90, - "column": 5, - "byte": 1873 - }, - "end": { - "line": 90, - "column": 16, - "byte": 1884 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 7, - "byte": 1892 - }, - "end": { - "line": 92, - "column": 14, - "byte": 1962 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 15, - "byte": 1900 - }, - "end": { - "line": 91, - "column": 59, - "byte": 1944 - } - }, - "schema": { - "properties": { - "properties": { - "type": "string", - "const": "should be object" - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "type" - ] - }, - "keyRanges": { - "properties": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 31, - "byte": 1916 - }, - "end": { - "line": 91, - "column": 41, - "byte": 1926 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 17, - "byte": 1902 - }, - "end": { - "line": 91, - "column": 21, - "byte": 1906 - } - } - }, - "object": { - "properties": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 43, - "byte": 1928 - }, - "end": { - "line": 91, - "column": 59, - "byte": 1944 - } - }, - "schema": { - "type": "string", - "const": "should be object" - }, - "literal": "should be object" - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 91, - "column": 23, - "byte": 1908 - }, - "end": { - "line": 91, - "column": 29, - "byte": 1914 - } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 92, - "column": 14, - "byte": 1962 - }, - "end": { - "line": 92, - "column": 14, - "byte": 1962 - } - }, - "schema": { - "type": "object" - } - } - } - } - } - }, - "invalid-required-type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 85, - "column": 5, - "byte": 1752 - }, - "end": { - "line": 87, - "column": 14, - "byte": 1838 - } - }, - "schema": { - "type": "object" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 85, - "column": 5, - "byte": 1752 - }, - "end": { - "line": 85, - "column": 16, - "byte": 1763 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 7, - "byte": 1771 - }, - "end": { - "line": 87, - "column": 14, - "byte": 1838 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 15, - "byte": 1779 - }, - "end": { - "line": 86, - "column": 56, - "byte": 1820 - } - }, - "schema": { - "properties": { - "required": { - "type": "string", - "const": "should be array" - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "required", - "type" - ] - }, - "keyRanges": { - "required": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 31, - "byte": 1795 - }, - "end": { - "line": 86, - "column": 39, - "byte": 1803 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 17, - "byte": 1781 - }, - "end": { - "line": 86, - "column": 21, - "byte": 1785 - } - } - }, - "object": { - "required": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 41, - "byte": 1805 - }, - "end": { - "line": 86, - "column": 56, - "byte": 1820 - } - }, - "schema": { - "type": "string", - "const": "should be array" - }, - "literal": "should be array" - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 86, - "column": 23, - "byte": 1787 - }, - "end": { - "line": 86, - "column": 29, - "byte": 1793 - } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 87, - "column": 14, - "byte": 1838 - }, - "end": { - "line": 87, - "column": 14, - "byte": 1838 - } - }, - "schema": { - "type": "object" - } - } - } - } - } - }, - "invalid-type-value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 75, - "column": 5, - "byte": 1528 - }, - "end": { - "line": 77, - "column": 18, - "byte": 1597 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 75, - "column": 5, - "byte": 1528 - }, - "end": { - "line": 75, - "column": 16, - "byte": 1539 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 76, - "column": 7, - "byte": 1547 - }, - "end": { - "line": 77, - "column": 18, - "byte": 1597 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 76, - "column": 15, - "byte": 1555 - }, - "end": { - "line": 76, - "column": 35, - "byte": 1575 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "invalid-type" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 76, - "column": 17, - "byte": 1557 - }, - "end": { - "line": 76, - "column": 21, - "byte": 1561 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 76, - "column": 23, - "byte": 1563 - }, - "end": { - "line": 76, - "column": 35, - "byte": 1575 - } - }, - "schema": { - "type": "string", - "const": "invalid-type" - }, - "literal": "invalid-type" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 77, - "column": 14, - "byte": 1593 - }, - "end": { - "line": 77, - "column": 18, - "byte": 1597 - } - }, - "schema": { - "type": "string", - "const": "test" - }, - "literal": "test" - } - } - } - } - }, - "min-length-fail": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 32, - "column": 5, - "byte": 632 - }, - "end": { - "line": 34, - "column": 16, - "byte": 705 - } - }, - "schema": { - "type": "string", - "const": "hi" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 32, - "column": 5, - "byte": 632 - }, - "end": { - "line": 32, - "column": 16, - "byte": 643 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 7, - "byte": 651 - }, - "end": { - "line": 34, - "column": 16, - "byte": 705 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 15, - "byte": 659 - }, - "end": { - "line": 33, - "column": 43, - "byte": 687 - } - }, - "schema": { - "properties": { - "minLength": { - "type": "number", - "const": 5 - }, - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "minLength", - "type" - ] - }, - "keyRanges": { - "minLength": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 31, - "byte": 675 - }, - "end": { - "line": 33, - "column": 40, - "byte": 684 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 17, - "byte": 661 - }, - "end": { - "line": 33, - "column": 21, - "byte": 665 - } - } - }, - "object": { - "minLength": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 42, - "byte": 686 - }, - "end": { - "line": 33, - "column": 43, - "byte": 687 - } - }, - "schema": { - "type": "number", - "const": 5 - }, - "literal": 5 - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 33, - "column": 23, - "byte": 667 - }, - "end": { - "line": 33, - "column": 29, - "byte": 673 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 34, - "column": 14, - "byte": 703 - }, - "end": { - "line": 34, - "column": 16, - "byte": 705 - } - }, - "schema": { - "type": "string", - "const": "hi" - }, - "literal": "hi" - } - } - } - } - }, - "missing-required": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 21, - "column": 5, - "byte": 423 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - }, - "schema": { - "properties": { - "other": { - "type": "string", - "const": "value" - } - }, - "type": "object", - "required": [ - "other" - ] - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 21, - "column": 5, - "byte": 423 - }, - "end": { - "line": 21, - "column": 16, - "byte": 434 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 22, - "column": 7, - "byte": 442 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 23, - "column": 9, - "byte": 458 - }, - "end": { - "line": 26, - "column": 24, - "byte": 547 - } - }, - "schema": { - "properties": { - "properties": { - "properties": { - "name": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "name" - ] - }, - "required": { - "prefixItems": [ - { - "type": "string", - "const": "name" - } - ], - "items": false, - "type": "array" - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "required", - "type" - ] - }, - "keyRanges": { - "properties": { - "environment": "builtin-conform", - "begin": { - "line": 24, - "column": 9, - "byte": 479 - }, - "end": { - "line": 24, - "column": 19, - "byte": 489 - } - }, - "required": { - "environment": "builtin-conform", - "begin": { - "line": 26, - "column": 9, - "byte": 532 - }, - "end": { - "line": 26, - "column": 17, - "byte": 540 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 23, - "column": 9, - "byte": 458 - }, - "end": { - "line": 23, - "column": 13, - "byte": 462 - } - } - }, - "object": { - "properties": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 11, - "byte": 501 - }, - "end": { - "line": 25, - "column": 31, - "byte": 521 - } - }, - "schema": { - "properties": { - "name": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "name" - ] - }, - "keyRanges": { - "name": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 11, - "byte": 501 - }, - "end": { - "line": 25, - "column": 15, - "byte": 505 - } - } - }, - "object": { - "name": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 17, - "byte": 507 - }, - "end": { - "line": 25, - "column": 31, - "byte": 521 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 19, - "byte": 509 - }, - "end": { - "line": 25, - "column": 23, - "byte": 513 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 25, - "column": 25, - "byte": 515 - }, - "end": { - "line": 25, - "column": 31, - "byte": 521 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - } - } - }, - "required": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 26, - "column": 19, - "byte": 542 - }, - "end": { - "line": 26, - "column": 24, - "byte": 547 - } - }, - "schema": { - "prefixItems": [ - { - "type": "string", - "const": "name" - } - ], - "items": false, - "type": "array" - }, - "list": [ - { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 26, - "column": 20, - "byte": 543 - }, - "end": { - "line": 26, - "column": 24, - "byte": 547 - } - }, - "schema": { - "type": "string", - "const": "name" - }, - "literal": "name" - } - ] - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 23, - "column": 15, - "byte": 464 - }, - "end": { - "line": 23, - "column": 21, - "byte": 470 - } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 28, - "column": 9, - "byte": 570 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - }, - "schema": { - "properties": { - "other": { - "type": "string", - "const": "value" - } - }, - "type": "object", - "required": [ - "other" - ] - }, - "keyRanges": { - "other": { - "environment": "builtin-conform", - "begin": { - "line": 28, - "column": 9, - "byte": 570 - }, - "end": { - "line": 28, - "column": 14, - "byte": 575 - } - } - }, - "object": { - "other": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 28, - "column": 16, - "byte": 577 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - }, - "schema": { - "type": "string", - "const": "value" - }, - "literal": "value" - } - } - } - } - } - } - }, - "my-schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 5, - "byte": 1042 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - }, - "schema": { - "properties": { - "minLength": { - "type": "number", - "const": 1 - }, - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "minLength", - "type" - ] - }, - "keyRanges": { - "minLength": { - "environment": "builtin-conform", - "begin": { - "line": 53, - "column": 5, - "byte": 1059 - }, - "end": { - "line": 53, - "column": 14, - "byte": 1068 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 5, - "byte": 1042 - }, - "end": { - "line": 52, - "column": 9, - "byte": 1046 - } - } - }, - "object": { - "minLength": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 53, - "column": 16, - "byte": 1070 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - }, - "schema": { - "type": "number", - "const": 1 - }, - "literal": 1 - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 11, - "byte": 1048 - }, - "end": { - "line": 52, - "column": 17, - "byte": 1054 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "nested-fail": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 61, - "column": 5, - "byte": 1199 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - }, - "schema": { - "properties": { - "user": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } - }, - "type": "object", - "required": [ - "age" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 61, - "column": 5, - "byte": 1199 - }, - "end": { - "line": 61, - "column": 16, - "byte": 1210 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 62, - "column": 7, - "byte": 1218 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 63, - "column": 9, - "byte": 1234 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "properties": { - "properties": { - "user": { - "properties": { - "properties": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "type" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "type" - ] - }, - "keyRanges": { - "properties": { - "environment": "builtin-conform", - "begin": { - "line": 64, - "column": 9, - "byte": 1255 - }, - "end": { - "line": 64, - "column": 19, - "byte": 1265 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 63, - "column": 9, - "byte": 1234 - }, - "end": { - "line": 63, - "column": 13, - "byte": 1238 - } - } - }, - "object": { - "properties": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 65, - "column": 11, - "byte": 1277 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "user": { - "properties": { - "properties": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "type" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "keyRanges": { - "user": { - "environment": "builtin-conform", - "begin": { - "line": 65, - "column": 11, - "byte": 1277 - }, - "end": { - "line": 65, - "column": 15, - "byte": 1281 - } - } - }, - "object": { - "user": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 66, - "column": 13, - "byte": 1295 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "properties": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "type": { - "type": "string", - "const": "object" - } - }, - "type": "object", - "required": [ - "properties", - "type" - ] - }, - "keyRanges": { - "properties": { - "environment": "builtin-conform", - "begin": { - "line": 67, - "column": 13, - "byte": 1320 - }, - "end": { - "line": 67, - "column": 23, - "byte": 1330 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 66, - "column": 13, - "byte": 1295 - }, - "end": { - "line": 66, - "column": 17, - "byte": 1299 - } - } - }, - "object": { - "properties": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 15, - "byte": 1346 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "age": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "keyRanges": { - "age": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 15, - "byte": 1346 - }, - "end": { - "line": 68, - "column": 18, - "byte": 1349 - } - } - }, - "object": { - "age": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 20, - "byte": 1351 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 22, - "byte": 1353 - }, - "end": { - "line": 68, - "column": 26, - "byte": 1357 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 68, - "column": 28, - "byte": 1359 - }, - "end": { - "line": 68, - "column": 34, - "byte": 1365 - } - }, - "schema": { - "type": "string", - "const": "number" - }, - "literal": "number" - } - } - } - } - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 66, - "column": 19, - "byte": 1301 - }, - "end": { - "line": 66, - "column": 25, - "byte": 1307 - } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" - } - } - } - } - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 63, - "column": 15, - "byte": 1240 - }, - "end": { - "line": 63, - "column": 21, - "byte": 1246 - } - }, - "schema": { - "type": "string", - "const": "object" - }, - "literal": "object" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 70, - "column": 9, - "byte": 1389 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - }, - "schema": { - "properties": { - "user": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } - }, - "type": "object", - "required": [ - "age" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "keyRanges": { - "user": { - "environment": "builtin-conform", - "begin": { - "line": 70, - "column": 9, - "byte": 1389 - }, - "end": { - "line": 70, - "column": 13, - "byte": 1393 - } - } - }, - "object": { - "user": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 11, - "byte": 1405 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - }, - "schema": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } - }, - "type": "object", - "required": [ - "age" - ] - }, - "keyRanges": { - "age": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 11, - "byte": 1405 - }, - "end": { - "line": 71, - "column": 14, - "byte": 1408 - } - } - }, - "object": { - "age": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 16, - "byte": 1410 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - }, - "schema": { - "type": "string", - "const": "not a number" - }, - "literal": "not a number" - } - } - } - } - } - } - } - } - }, - "number-range-fail": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 38, - "column": 5, - "byte": 757 - }, - "end": { - "line": 40, - "column": 15, - "byte": 828 - } - }, - "schema": { - "type": "number", - "const": 5 - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 38, - "column": 5, - "byte": 757 - }, - "end": { - "line": 38, - "column": 16, - "byte": 768 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 7, - "byte": 776 - }, - "end": { - "line": 40, - "column": 15, - "byte": 828 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 15, - "byte": 784 - }, - "end": { - "line": 39, - "column": 42, - "byte": 811 - } - }, - "schema": { - "properties": { - "minimum": { - "type": "number", - "const": 10 - }, - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "minimum", - "type" - ] - }, - "keyRanges": { - "minimum": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 31, - "byte": 800 - }, - "end": { - "line": 39, - "column": 38, - "byte": 807 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 17, - "byte": 786 - }, - "end": { - "line": 39, - "column": 21, - "byte": 790 - } - } - }, - "object": { - "minimum": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 40, - "byte": 809 - }, - "end": { - "line": 39, - "column": 42, - "byte": 811 - } - }, - "schema": { - "type": "number", - "const": 10 - }, - "literal": 10 - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 39, - "column": 23, - "byte": 792 - }, - "end": { - "line": 39, - "column": 29, - "byte": 798 - } - }, - "schema": { - "type": "string", - "const": "number" - }, - "literal": "number" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 40, - "column": 14, - "byte": 827 - }, - "end": { - "line": 40, - "column": 15, - "byte": 828 - } - }, - "schema": { - "type": "number", - "const": 5 - }, - "literal": 5 - } - } - } - } - }, - "type-error": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 15, - "column": 5, - "byte": 306 - }, - "end": { - "line": 17, - "column": 16, - "byte": 365 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 15, - "column": 5, - "byte": 306 - }, - "end": { - "line": 15, - "column": 16, - "byte": 317 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 16, - "column": 7, - "byte": 325 - }, - "end": { - "line": 17, - "column": 16, - "byte": 365 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 16, - "column": 15, - "byte": 333 - }, - "end": { - "line": 16, - "column": 29, - "byte": 347 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 16, - "column": 17, - "byte": 335 - }, - "end": { - "line": 16, - "column": 21, - "byte": 339 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 16, - "column": 23, - "byte": 341 - }, - "end": { - "line": 16, - "column": 29, - "byte": 347 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 17, - "column": 14, - "byte": 363 - }, - "end": { - "line": 17, - "column": 16, - "byte": 365 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "literal": 42 - } - } - } - } - }, - "valid-number": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 9, - "column": 5, - "byte": 159 - }, - "end": { - "line": 11, - "column": 16, - "byte": 230 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 9, - "column": 5, - "byte": 159 - }, - "end": { - "line": 9, - "column": 16, - "byte": 170 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 7, - "byte": 178 - }, - "end": { - "line": 11, - "column": 16, - "byte": 230 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 15, - "byte": 186 - }, - "end": { - "line": 10, - "column": 41, - "byte": 212 - } - }, - "schema": { - "properties": { - "minimum": { - "type": "number", - "const": 0 - }, - "type": { - "type": "string", - "const": "number" - } - }, - "type": "object", - "required": [ - "minimum", - "type" - ] - }, - "keyRanges": { - "minimum": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 31, - "byte": 202 - }, - "end": { - "line": 10, - "column": 38, - "byte": 209 - } - }, - "type": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 17, - "byte": 188 - }, - "end": { - "line": 10, - "column": 21, - "byte": 192 - } - } - }, - "object": { - "minimum": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 40, - "byte": 211 - }, - "end": { - "line": 10, - "column": 41, - "byte": 212 - } - }, - "schema": { - "type": "number", - "const": 0 - }, - "literal": 0 - }, - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 10, - "column": 23, - "byte": 194 - }, - "end": { - "line": 10, - "column": 29, - "byte": 200 - } - }, - "schema": { - "type": "string", - "const": "number" - }, - "literal": "number" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 11, - "column": 14, - "byte": 228 - }, - "end": { - "line": 11, - "column": 16, - "byte": 230 - } - }, - "schema": { - "type": "number", - "const": 42 - }, - "literal": 42 - } - } - } - } - }, - "valid-string": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 4, - "column": 5, - "byte": 73 - }, - "end": { - "line": 6, - "column": 19, - "byte": 135 - } - }, - "schema": { - "type": "string", - "const": "hello" - }, - "builtin": { - "name": "fn::conform", - "nameRange": { - "environment": "builtin-conform", - "begin": { - "line": 4, - "column": 5, - "byte": 73 - }, - "end": { - "line": 4, - "column": 16, - "byte": 84 - } - }, - "argSchema": { - "properties": { - "schema": { - "$defs": { - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "properties": { - "$defs": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "$ref": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "anyOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "const": { - "type": "" - }, - "default": { - "type": "" - }, - "dependentRequired": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "deprecated": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array" - }, - "examples": { - "type": "array" - }, - "exclusiveMaximum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "maxItems": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "maxProperties": { - "type": "number" - }, - "maximum": { - "type": "number" - }, - "minItems": { - "type": "number" - }, - "minLength": { - "type": "number" - }, - "minProperties": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "multipleOf": { - "type": "number" - }, - "oneOf": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "prefixItems": { - "items": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "array" - }, - "properties": { - "additionalProperties": { - "$ref": "#/$defs/schema", - "type": "" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "null" - ] - }, - "uniqueItems": { - "type": "boolean" - } - }, - "type": "object" - } - ], - "type": "" - } - }, - "$ref": "#/$defs/schema", - "type": "" - }, - "value": true - }, - "type": "object", - "required": [ - "schema", - "value" - ] - }, - "arg": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 5, - "column": 7, - "byte": 92 - }, - "end": { - "line": 6, - "column": 19, - "byte": 135 - } - }, - "object": { - "schema": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 5, - "column": 15, - "byte": 100 - }, - "end": { - "line": 5, - "column": 29, - "byte": 114 - } - }, - "schema": { - "properties": { - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "type" - ] - }, - "keyRanges": { - "type": { - "environment": "builtin-conform", - "begin": { - "line": 5, - "column": 17, - "byte": 102 - }, - "end": { - "line": 5, - "column": 21, - "byte": 106 - } - } - }, - "object": { - "type": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 5, - "column": 23, - "byte": 108 - }, - "end": { - "line": 5, - "column": 29, - "byte": 114 - } - }, - "schema": { - "type": "string", - "const": "string" - }, - "literal": "string" - } - } - }, - "value": { - "range": { - "environment": "builtin-conform", - "begin": { - "line": 6, - "column": 14, - "byte": 130 - }, - "end": { - "line": 6, - "column": 19, - "byte": 135 - } - }, - "schema": { - "type": "string", - "const": "hello" - }, - "literal": "hello" - } - } - } - } - } - }, - "properties": { - "array-items-fail": { - "value": [ - { - "value": "hello", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 15, - "byte": 968 - }, - "end": { - "line": 48, - "column": 20, - "byte": 973 - } - } - } - }, - { - "value": 42, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 48, - "column": 24, - "byte": 977 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - } - } - } - ], - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 44, - "column": 5, - "byte": 875 - }, - "end": { - "line": 48, - "column": 26, - "byte": 979 - } - } - } - }, - "dynamic-schema": { - "value": "", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 55, - "column": 5, - "byte": 1094 - }, - "end": { - "line": 57, - "column": 14, - "byte": 1147 - } - } - } - }, - "invalid-minLength-type": { - "value": "test", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 80, - "column": 5, - "byte": 1631 - }, - "end": { - "line": 82, - "column": 18, - "byte": 1719 - } - } - } - }, - "invalid-properties-type": { - "value": {}, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 90, - "column": 5, - "byte": 1873 - }, - "end": { - "line": 92, - "column": 14, - "byte": 1962 - } - } - } - }, - "invalid-required-type": { - "value": {}, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 85, - "column": 5, - "byte": 1752 - }, - "end": { - "line": 87, - "column": 14, - "byte": 1838 - } - } - } - }, - "invalid-type-value": { - "value": "test", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 75, - "column": 5, - "byte": 1528 - }, - "end": { - "line": 77, - "column": 18, - "byte": 1597 - } - } - } - }, - "min-length-fail": { - "value": "hi", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 32, - "column": 5, - "byte": 632 - }, - "end": { - "line": 34, - "column": 16, - "byte": 705 - } - } - } - }, - "missing-required": { - "value": { - "other": { - "value": "value", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 28, - "column": 16, - "byte": 577 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 21, - "column": 5, - "byte": 423 - }, - "end": { - "line": 28, - "column": 21, - "byte": 582 - } - } - } - }, - "my-schema": { - "value": { - "minLength": { - "value": 1, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 53, - "column": 16, - "byte": 1070 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - } - } - }, - "type": { - "value": "string", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 11, - "byte": 1048 - }, - "end": { - "line": 52, - "column": 17, - "byte": 1054 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 52, - "column": 5, - "byte": 1042 - }, - "end": { - "line": 53, - "column": 17, - "byte": 1071 - } - } - } - }, - "nested-fail": { - "value": { - "user": { - "value": { - "age": { - "value": "not a number", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 16, - "byte": 1410 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 71, - "column": 11, - "byte": 1405 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 61, - "column": 5, - "byte": 1199 - }, - "end": { - "line": 71, - "column": 28, - "byte": 1422 - } - } - } - }, - "number-range-fail": { - "value": 5, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 38, - "column": 5, - "byte": 757 - }, - "end": { - "line": 40, - "column": 15, - "byte": 828 - } - } - } - }, - "type-error": { - "value": 42, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 15, - "column": 5, - "byte": 306 - }, - "end": { - "line": 17, - "column": 16, - "byte": 365 - } - } - } - }, - "valid-number": { - "value": 42, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 9, - "column": 5, - "byte": 159 - }, - "end": { - "line": 11, - "column": 16, - "byte": 230 - } - } - } - }, - "valid-string": { - "value": "hello", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 4, - "column": 5, - "byte": 73 - }, - "end": { - "line": 6, - "column": 19, - "byte": 135 - } - } - } - } - }, - "schema": { - "properties": { - "array-items-fail": { - "prefixItems": [ - { - "type": "string", - "const": "hello" - }, - { - "type": "number", - "const": 42 - } - ], - "items": false, - "type": "array" - }, - "dynamic-schema": { - "type": "string", - "const": "" - }, - "invalid-minLength-type": { - "type": "string", - "const": "test" - }, - "invalid-properties-type": { - "type": "object" - }, - "invalid-required-type": { - "type": "object" - }, - "invalid-type-value": { - "type": "string", - "const": "test" - }, - "min-length-fail": { - "type": "string", - "const": "hi" - }, - "missing-required": { - "properties": { - "other": { - "type": "string", - "const": "value" - } - }, - "type": "object", - "required": [ - "other" - ] - }, - "my-schema": { - "properties": { - "minLength": { - "type": "number", - "const": 1 - }, - "type": { - "type": "string", - "const": "string" - } - }, - "type": "object", - "required": [ - "minLength", - "type" - ] - }, - "nested-fail": { - "properties": { - "user": { - "properties": { - "age": { - "type": "string", - "const": "not a number" - } - }, - "type": "object", - "required": [ - "age" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "number-range-fail": { - "type": "number", - "const": 5 - }, - "type-error": { - "type": "number", - "const": 42 - }, - "valid-number": { - "type": "number", - "const": 42 - }, - "valid-string": { - "type": "string", - "const": "hello" - } - }, - "type": "object", - "required": [ - "array-items-fail", - "dynamic-schema", - "invalid-minLength-type", - "invalid-properties-type", - "invalid-required-type", - "invalid-type-value", - "min-length-fail", - "missing-required", - "my-schema", - "nested-fail", - "number-range-fail", - "type-error", - "valid-number", - "valid-string" - ] - }, - "executionContext": { - "properties": { - "currentEnvironment": { - "value": { - "name": { - "value": "builtin-conform", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - }, - "pulumi": { - "value": { - "user": { - "value": { - "id": { - "value": "USER_123", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - }, - "rootEnvironment": { - "value": { - "name": { - "value": "builtin-conform", - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "trace": { - "def": { - "environment": "builtin-conform", - "begin": { - "line": 0, - "column": 0, - "byte": 0 - }, - "end": { - "line": 0, - "column": 0, - "byte": 0 - } - } - } - } - }, - "schema": { - "properties": { - "currentEnvironment": { - "properties": { - "name": { - "type": "string", - "const": "builtin-conform" - } - }, - "type": "object", - "required": [ - "name" - ] - }, - "pulumi": { - "properties": { - "user": { - "properties": { - "id": { - "type": "string", - "const": "USER_123" - } - }, - "type": "object", - "required": [ - "id" - ] - } - }, - "type": "object", - "required": [ - "user" - ] - }, - "rootEnvironment": { - "properties": { - "name": { - "type": "string", - "const": "builtin-conform" - } - }, - "type": "object", - "required": [ - "name" - ] - } - }, - "type": "object", - "required": [ - "currentEnvironment", - "pulumi", - "rootEnvironment" - ] - } - } - }, - "evalJsonRedacted": { - "array-items-fail": [ - "hello", - 42 - ], - "dynamic-schema": "", - "invalid-minLength-type": "test", - "invalid-properties-type": {}, - "invalid-required-type": {}, - "invalid-type-value": "test", - "min-length-fail": "hi", - "missing-required": { - "other": "value" - }, - "my-schema": { - "minLength": 1, - "type": "string" - }, - "nested-fail": { - "user": { - "age": "not a number" - } - }, - "number-range-fail": 5, - "type-error": 42, - "valid-number": 42, - "valid-string": "hello" - }, - "evalJSONRevealed": { - "array-items-fail": [ - "hello", - 42 - ], - "dynamic-schema": "", - "invalid-minLength-type": "test", - "invalid-properties-type": {}, - "invalid-required-type": {}, - "invalid-type-value": "test", - "min-length-fail": "hi", - "missing-required": { - "other": "value" - }, - "my-schema": { - "minLength": 1, - "type": "string" - }, - "nested-fail": { - "user": { - "age": "not a number" - } - }, - "number-range-fail": 5, - "type-error": 42, - "valid-number": 42, - "valid-string": "hello" - } -}