using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.Linq; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text.Json; using System.Text.Json.Nodes; using Json.Schema; namespace Questionable.Validation.Validators; internal abstract class DefinitionSchemaValidator : IDefinitionSchemaValidator { [CompilerGenerated] private sealed class _003C_003Ec__DisplayClass12_0 { public DefinitionSchemaValidator _003C_003E4__this; public ushort id; [MethodImpl(MethodImplOptions.NoInlining)] internal ValidationIssue _003CValidateImmediate_003Eb__0(SchemaValidationHelper.ParsedError error) { return new ValidationIssue { PathType = _003C_003E4__this.PathType, Id = id.ToString(_206F_200B_202C_200B_200B_202D_200F_206F_202C_206C_200D_202C_206C_200E_200D_202B_206B_206D_200F_206D_200F_202E_202E_202E_202C_200E_200D_200F_206C_200C_202E_206B_202E_206D_200D_206F_200C_206E_200F_202A_202E()), Location = (_206E_202D_206D_202A_200F_206A_206D_206A_206C_202E_200B_206C_202D_202B_200E_206A_200B_202A_206E_206B_206C_200E_202C_202D_206B_200E_206A_206F_206C_202D_200C_206D_206D_200D_202E_206C_200C_200D_206B_202E_202E(error.PropertyPath) ? null : error.PropertyPath), Type = EIssueType.InvalidJsonSchema, Severity = EIssueSeverity.Error, Description = (_206E_202D_206D_202A_200F_206A_206D_206A_206C_202E_200B_206C_202D_202B_200E_206A_200B_202A_206E_206B_206C_200E_202C_202D_206B_200E_206A_206F_206C_202D_200C_206D_206D_200D_202E_206C_200C_200D_206B_202E_202E(error.PropertyPath) ? error.Message : _202C_200C_200C_202E_206D_200F_200F_206C_202C_200E_200E_200F_202B_202C_206B_202D_202E_200D_206E_206E_200B_202D_200D_202E_200F_202D_206B_202C_206C_202C_202E_200D_200D_202A_200F_200E_200B_206F_202A_206E_202E(error.PropertyPath, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-437343681), error.Message)) }; } static CultureInfo _206F_200B_202C_200B_200B_202D_200F_206F_202C_206C_200D_202C_206C_200E_200D_202B_206B_206D_200F_206D_200F_202E_202E_202E_202C_200E_200D_200F_206C_200C_202E_206B_202E_206D_200D_206F_200C_206E_200F_202A_202E() { return CultureInfo.InvariantCulture; } static bool _206E_202D_206D_202A_200F_206A_206D_206A_206C_202E_200B_206C_202D_202B_200E_206A_200B_202A_206E_206B_206C_200E_202C_202D_206B_200E_206A_206F_206C_202D_200C_206D_206D_200D_202E_206C_200C_200D_206B_202E_202E(string P_0) { return string.IsNullOrEmpty(P_0); } static string _202C_200C_200C_202E_206D_200F_200F_206C_202C_200E_200E_200F_202B_202C_206B_202D_202E_200D_206E_206E_200B_202D_200D_202E_200F_202D_206B_202C_206C_202C_202E_200D_200D_202A_200F_200E_200B_206F_202A_206E_202E(string P_0, string P_1, string P_2) { return P_0 + P_1 + P_2; } } [CompilerGenerated] private sealed class _003CValidate_003Ed__11 : IEnumerable, IEnumerable, IEnumerator, IEnumerator, IDisposable { private int _003C_003E1__state; private ValidationIssue _003C_003E2__current; private int _003C_003El__initialThreadId; public DefinitionSchemaValidator _003C_003E4__this; private Dictionary.Enumerator _003C_003E7__wrap1; private List.Enumerator _003C_003E7__wrap2; ValidationIssue IEnumerator.Current { [DebuggerHidden] get { return _003C_003E2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return _003C_003E2__current; } } [DebuggerHidden] public _003CValidate_003Ed__11(int _003C_003E1__state) { this._003C_003E1__state = _003C_003E1__state; _003C_003El__initialThreadId = _206C_206E_202E_200D_200C_202A_206A_202A_206C_202D_206F_202A_206E_206D_206B_206E_202C_200F_202B_206C_200B_200D_206E_206E_206A_206A_200D_206F_202D_206D_200B_202D_200B_200C_206C_202D_206E_206C_200E_200D_202E(); } [DebuggerHidden] void IDisposable.Dispose() { int num = _003C_003E1__state; int num2 = -4; int num3 = num; int num4 = (((uint)(~(~num3 + num2)) <= 1u) ? 755205306 : 755205307); while (true) { int num5 = num4; num2 = 755205306; num3 = num5; switch ((num3 | num2) - (num3 & num2)) { default: continue; case 2: num4 = 755205307; continue; case 1: if (num == 1) { num4 = 755205306; continue; } break; case 0: try { num4 = ((num == -4) ? (-1716476280) : (-1716476279)); while (true) { int num6 = num4; num2 = -1716476278; num3 = num6; int num7 = num3 + num2; int num8 = num3 & num2; switch (num7 - (num8 + num8)) { case 0: num4 = -1716476279; break; case 3: num4 = ((num == 1) ? (-1716476280) : (-1716476277)); break; case 1: goto end_IL_008e; case 2: try { } finally { _003C_003Em__Finally2(); } goto end_IL_008e; } continue; end_IL_008e: break; } } finally { _003C_003Em__Finally1(); } break; } break; } _003C_003E7__wrap1 = default(Dictionary.Enumerator); _003C_003E7__wrap2 = default(List.Enumerator); _003C_003E1__state = -2; } private bool MoveNext() { try { int num = _003C_003E1__state; DefinitionSchemaValidator definitionSchemaValidator = _003C_003E4__this; int num2 = ((num == 0) ? 946151668 : 946151666); while (true) { int num3 = num2; int num4 = 946151672; int num5 = num3; switch ((num5 | num4) - (num5 & num4)) { case 11: _003C_003E1__state = -4; num2 = 946151670; break; case 14: num2 = (_003C_003E7__wrap2.MoveNext() ? 946151664 : 946151677); break; case 7: num2 = (_003C_003E7__wrap1.MoveNext() ? 946151675 : 946151678); break; case 2: num2 = 946151666; break; case 3: { _003C_003E7__wrap1.Current.Deconstruct(out ushort key, out JsonNode value); ushort id = key; JsonNode node = value; _003C_003E7__wrap2 = definitionSchemaValidator.ValidateImmediate(id, node).GetEnumerator(); _003C_003E1__state = -4; num2 = 946151670; break; } case 4: return false; case 12: _003C_003E1__state = -1; num2 = ((definitionSchemaValidator._nodes.Count != 0) ? 946151669 : 946151676); break; case 13: num2 = ((definitionSchemaValidator._schema != null) ? 946151672 : 946151673); break; case 9: return false; case 0: _003C_003E7__wrap1 = definitionSchemaValidator._nodes.GetEnumerator(); _003C_003E1__state = -3; num2 = 946151679; break; case 8: { ValidationIssue current = _003C_003E7__wrap2.Current; _003C_003E2__current = current; _003C_003E1__state = 1; return true; } case 10: num2 = ((num == 1) ? 946151667 : 946151665); break; case 1: definitionSchemaValidator._schema = definitionSchemaValidator._schemaRegistrar.Get(definitionSchemaValidator.MainSchemaUri); num2 = 946151672; break; case 5: _003C_003Em__Finally2(); _003C_003E7__wrap2 = default(List.Enumerator); num2 = 946151679; break; case 6: _003C_003Em__Finally1(); _003C_003E7__wrap1 = default(Dictionary.Enumerator); return false; } } } catch { //try-fault ((IDisposable)this).Dispose(); throw; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } private void _003C_003Em__Finally1() { _003C_003E1__state = -1; ((IDisposable)_003C_003E7__wrap1/*cast due to .constrained prefix*/).Dispose(); } private void _003C_003Em__Finally2() { _003C_003E1__state = -3; ((IDisposable)_003C_003E7__wrap2/*cast due to .constrained prefix*/).Dispose(); } [DebuggerHidden] void IEnumerator.Reset() { throw _200E_200B_206D_206B_200D_206C_202A_202A_202C_206D_206D_202B_200F_202E_202D_206A_202B_202D_206B_200B_202E_200F_200D_202C_202A_206C_206A_202A_202E_202C_202A_202D_200C_206F_206B_202A_200D_206B_206C_206E_202E(); } [DebuggerHidden] IEnumerator IEnumerable.GetEnumerator() { int num = ((_003C_003E1__state != -2) ? 1575118820 : 1575118817); _003CValidate_003Ed__11 result = default(_003CValidate_003Ed__11); while (true) { int num2 = num; int num3 = 1575118816; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 3: _003C_003E1__state = 0; result = this; num = 1575118816; break; case 4: result = new _003CValidate_003Ed__11(0) { _003C_003E4__this = _003C_003E4__this }; num = 1575118816; break; case 2: num = 1575118817; break; case 0: return result; case 1: num = ((_003C_003El__initialThreadId != _206C_206E_202E_200D_200C_202A_206A_202A_206C_202D_206F_202A_206E_206D_206B_206E_202C_200F_202B_206C_200B_200D_206E_206E_206A_206A_200D_206F_202D_206D_200B_202D_200B_200C_206C_202D_206E_206C_200E_200D_202E()) ? 1575118820 : 1575118819); break; } } } [DebuggerHidden] IEnumerator IEnumerable.GetEnumerator() { return ((IEnumerable)this).GetEnumerator(); } static int _206C_206E_202E_200D_200C_202A_206A_202A_206C_202D_206F_202A_206E_206D_206B_206E_202C_200F_202B_206C_200B_200D_206E_206E_206A_206A_200D_206F_202D_206D_200B_202D_200B_200C_206C_202D_206E_206C_200E_200D_202E() { return Environment.CurrentManagedThreadId; } static NotSupportedException _200E_200B_206D_206B_200D_206C_202A_202A_202C_206D_206D_202B_200F_202E_202D_206A_202B_202D_206B_200B_202E_200F_200D_202C_202A_206C_206A_202A_202E_202C_202A_202D_200C_206F_206B_202A_200D_206B_206C_206E_202E() { return new NotSupportedException(); } } protected const string BaseUri = "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main"; private readonly SchemaRegistrar _schemaRegistrar; private readonly Dictionary _nodes = new Dictionary(); private JsonSchema? _schema; protected abstract EPathType PathType { get; } protected abstract string MainSchemaUri { get; } protected DefinitionSchemaValidator(SchemaRegistrar schemaRegistrar) { _schemaRegistrar = schemaRegistrar; } public void Enqueue(ushort id, JsonNode node) { _nodes[id] = node; } void IDefinitionSchemaValidator.Enqueue(ushort id, JsonNode node) { //ILSpy generated this explicit interface implementation from .override directive in Enqueue this.Enqueue(id, node); } public void Reset() { _nodes.Clear(); } void IDefinitionSchemaValidator.Reset() { //ILSpy generated this explicit interface implementation from .override directive in Reset this.Reset(); } [IteratorStateMachine(typeof(_003CValidate_003Ed__11))] public IEnumerable Validate() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new _003CValidate_003Ed__11(-2) { _003C_003E4__this = this }; } IEnumerable IDefinitionSchemaValidator.Validate() { //ILSpy generated this explicit interface implementation from .override directive in Validate return this.Validate(); } [MethodImpl(MethodImplOptions.NoInlining)] public List ValidateImmediate(ushort id, JsonNode node) { int num = ((_schema != null) ? 2044491341 : 2044491340); EvaluationResults evaluationResults = default(EvaluationResults); List list = default(List); while (true) { int num2 = num; int num3 = 2044491341; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 4: num = 2044491340; break; case 2: { int num5 = 1; List list2 = new List(num5); CollectionsMarshal.SetCount(list2, num5); CollectionsMarshal.AsSpan(list2)[0] = new ValidationIssue { PathType = PathType, Id = id.ToString(_206B_202D_202D_200F_200F_206C_202D_202D_200D_202C_202A_206B_206C_202D_202E_200E_202A_206E_202D_202B_206B_200C_200E_206B_206F_200F_200F_202B_200D_206D_206A_200D_206E_200D_206D_202E_200F_200F_200D_206B_202E()), Location = null, Type = EIssueType.InvalidJsonSchema, Severity = EIssueSeverity.Error, Description = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(213210949) }; return list2; } case 0: { JsonSchema? schema = _schema; JsonElement jsonElement = JsonSerializer.SerializeToElement(node); EvaluationOptions evaluationOptions = _202B_202C_206F_206D_206C_200C_200D_206B_206F_206A_206E_200B_200E_200D_202C_206F_202E_200C_206A_206A_200C_206D_206C_206B_200C_206C_202E_200E_200B_202B_206F_202A_206F_206B_200C_200F_206E_206B_202C_200E_202E(); _200D_206C_200E_206D_200E_200D_200D_206A_206E_202A_206B_206C_202A_206A_202B_206F_200F_206E_202E_200E_200F_200B_206A_206F_202C_200C_206B_206F_206F_200E_206B_200E_200E_206B_206E_202C_200D_206B_202D_200D_202E(evaluationOptions, _206B_202D_202D_200F_200F_206C_202D_202D_200D_202C_202A_206B_206C_202D_202E_200E_202A_206E_202D_202B_206B_200C_200E_206B_206F_200F_200F_202B_200D_206D_206A_200D_206E_200D_206D_202E_200F_200F_200D_206B_202E()); _206D_200E_200E_202E_200E_200F_206E_206A_206C_200F_200E_206B_206B_200D_206C_200B_202D_200B_200B_206A_202D_200E_200E_206D_200D_206B_200C_206F_202C_202C_202E_206A_200E_200C_206A_200E_206E_206E_200C_202A_202E(evaluationOptions, OutputFormat.Hierarchical); evaluationResults = _200B_202C_202B_202C_206E_200D_206D_202E_202A_200C_200F_202C_206D_206F_202C_200F_200F_202D_200C_202A_206A_200B_206B_202C_206C_200B_202E_206C_202A_202D_206E_202E_200E_206C_202C_206A_206C_206C_206B_206E_202E(schema, jsonElement, evaluationOptions); num = ((!_202E_206B_206D_200D_200D_206C_202A_206A_206D_206F_206C_202A_206A_200E_206D_206F_206F_206E_206D_206E_206F_206E_206B_202A_202D_206C_200E_206B_206C_200F_206E_202A_200E_206F_200F_202E_202B_206A_202A_206A_202E(evaluationResults)) ? 2044491336 : 2044491339); break; } case 5: list = new List(); SchemaValidationHelper.CollectLeafErrors(evaluationResults, list); num = ((list.Count != 0) ? 2044491342 : 2044491343); break; case 1: _schema = _schemaRegistrar.Get(MainSchemaUri); num = 2044491341; break; case 3: return list.Select([MethodImpl(MethodImplOptions.NoInlining)] (SchemaValidationHelper.ParsedError error) => new ValidationIssue { PathType = PathType, Id = id.ToString(_003C_003Ec__DisplayClass12_0._206F_200B_202C_200B_200B_202D_200F_206F_202C_206C_200D_202C_206C_200E_200D_202B_206B_206D_200F_206D_200F_202E_202E_202E_202C_200E_200D_200F_206C_200C_202E_206B_202E_206D_200D_206F_200C_206E_200F_202A_202E()), Location = (_003C_003Ec__DisplayClass12_0._206E_202D_206D_202A_200F_206A_206D_206A_206C_202E_200B_206C_202D_202B_200E_206A_200B_202A_206E_206B_206C_200E_202C_202D_206B_200E_206A_206F_206C_202D_200C_206D_206D_200D_202E_206C_200C_200D_206B_202E_202E(error.PropertyPath) ? null : error.PropertyPath), Type = EIssueType.InvalidJsonSchema, Severity = EIssueSeverity.Error, Description = (_003C_003Ec__DisplayClass12_0._206E_202D_206D_202A_200F_206A_206D_206A_206C_202E_200B_206C_202D_202B_200E_206A_200B_202A_206E_206B_206C_200E_202C_202D_206B_200E_206A_206F_206C_202D_200C_206D_206D_200D_202E_206C_200C_200D_206B_202E_202E(error.PropertyPath) ? error.Message : _003C_003Ec__DisplayClass12_0._202C_200C_200C_202E_206D_200F_200F_206C_202C_200E_200E_200F_202B_202C_206B_202D_202E_200D_206E_206E_200B_202D_200D_202E_200F_202D_206B_202C_206C_202C_202E_200D_200D_202A_200F_200E_200B_206F_202A_206E_202E(error.PropertyPath, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-437343681), error.Message)) }).ToList(); case 6: return new List(); } } } static EvaluationOptions _202B_202C_206F_206D_206C_200C_200D_206B_206F_206A_206E_200B_200E_200D_202C_206F_202E_200C_206A_206A_200C_206D_206C_206B_200C_206C_202E_200E_200B_202B_206F_202A_206F_206B_200C_200F_206E_206B_202C_200E_202E() { return new EvaluationOptions(); } static CultureInfo _206B_202D_202D_200F_200F_206C_202D_202D_200D_202C_202A_206B_206C_202D_202E_200E_202A_206E_202D_202B_206B_200C_200E_206B_206F_200F_200F_202B_200D_206D_206A_200D_206E_200D_206D_202E_200F_200F_200D_206B_202E() { return CultureInfo.InvariantCulture; } static void _200D_206C_200E_206D_200E_200D_200D_206A_206E_202A_206B_206C_202A_206A_202B_206F_200F_206E_202E_200E_200F_200B_206A_206F_202C_200C_206B_206F_206F_200E_206B_200E_200E_206B_206E_202C_200D_206B_202D_200D_202E(EvaluationOptions P_0, CultureInfo P_1) { P_0.Culture = P_1; } static void _206D_200E_200E_202E_200E_200F_206E_206A_206C_200F_200E_206B_206B_200D_206C_200B_202D_200B_200B_206A_202D_200E_200E_206D_200D_206B_200C_206F_202C_202C_202E_206A_200E_200C_206A_200E_206E_206E_200C_202A_202E(EvaluationOptions P_0, OutputFormat P_1) { P_0.OutputFormat = P_1; } static EvaluationResults _200B_202C_202B_202C_206E_200D_206D_202E_202A_200C_200F_202C_206D_206F_202C_200F_200F_202D_200C_202A_206A_200B_206B_202C_206C_200B_202E_206C_202A_202D_206E_202E_200E_206C_202C_206A_206C_206C_206B_206E_202E(JsonSchema P_0, JsonElement P_1, EvaluationOptions P_2) { return P_0.Evaluate(P_1, P_2); } static bool _202E_206B_206D_200D_200D_206C_202A_206A_206D_206F_206C_202A_206A_200E_206D_206F_206F_206E_206D_206E_206F_206E_206B_202A_202D_206C_200E_206B_206C_200F_206E_202A_200E_206F_200F_202E_202B_206A_202A_206A_202E(EvaluationResults P_0) { return P_0.IsValid; } }