# 1.1.0

---

### Version Updates
- [Revision 1.1.39](https://github.com/sinclairzx81/typebox/pull/1603)
  - With Annotation Syntax
- [Revision 1.1.38](https://github.com/sinclairzx81/typebox/pull/1595)
  - Internal Maintenance on Schema and Compile Validator implementations.
  - Change Schema EvaluateResult from Interface to Class.
- [Revision 1.1.37](https://github.com/sinclairzx81/typebox/pull/1594)
  - Add Prototype Pollution Guards for Value.* Functions Clone, Diff, Patch, Mutate and Pointer.
- [Revision 1.1.36](https://github.com/sinclairzx81/typebox/pull/1592)
  - Ensure no Type Distribution when Mapping for Min/Max Tuple Elements (JSON Schema)
- [Revision 1.1.35](https://github.com/sinclairzx81/typebox/pull/1591)
  - AdditionalItems Inference Optimization (JSON Schema)
- [Revision 1.1.34](https://github.com/sinclairzx81/typebox/pull/1588)
  - Interior Module Paths to Use Snake Case (Underscore)
- [Revision 1.1.33](https://github.com/sinclairzx81/typebox/pull/1587)
  - Enforce VerbatimModuleSyntax
  - TakeLeft on Parameter Distribution
  - Name Collision Mitigation for Array, Object and Function types
- [Revision 1.1.32](https://github.com/sinclairzx81/typebox/pull/1586)
  - TakeLeft Guard Function
- [Revision 1.1.31](https://github.com/sinclairzx81/typebox/pull/1585)
  - Flag Awaited, Promise, Iterator and AsyncIterator for Deprecation
- [Revision 1.1.30](https://github.com/sinclairzx81/typebox/pull/1584)
  - Support Recursive Indexed This
- [Revision 1.1.29](https://github.com/sinclairzx81/typebox/pull/1583)
  - Type.Refine Error Callback
  - Type.Unsafe Retain Schema Kind
  - Alias Unsafe as Unknown in Extends
  - Value.Mutate Deprecation Notice
- [Revision 1.1.28](https://github.com/sinclairzx81/typebox/pull/1582)
  - Type Engine Optimization
- [Revision 1.1.27](https://github.com/sinclairzx81/typebox/pull/1580)
  - Inference Optimization for XStaticProperties
- [Revision 1.1.26](https://github.com/sinclairzx81/typebox/pull/1578)
  - Presentation Update for Record Inference
- [Revision 1.1.25](https://github.com/sinclairzx81/typebox/pull/1577)
  - Optimize Native Schema Inference via Type Static
- [Revision 1.1.24](https://github.com/sinclairzx81/typebox/pull/1576)
  - Support DynamicRef and DynamicAnchor
- [Revision 1.1.23](https://github.com/sinclairzx81/typebox/pull/1575)
  - Revert Email and IdnEmail
- [Revision 1.1.22](https://github.com/sinclairzx81/typebox/pull/1573)
  - Include Support for 0.x Array Convert
- [Revision 1.1.21](https://github.com/sinclairzx81/typebox/pull/1572)
  - Localize JIT Calls to System.Environment
- [Revision 1.1.20](https://github.com/sinclairzx81/typebox/pull/1568)
  - Union Priority Sort for Clean, Encode and Decode
- [Revision 1.1.19](https://github.com/sinclairzx81/typebox/pull/1566)
  - Improved Intersect Encode and Decode Handling
- [Revision 1.1.18](https://github.com/sinclairzx81/typebox/pull/1565)
  - Use Explicit Static Return Type Annotation for Value Functions
- [Revision 1.1.17](https://github.com/sinclairzx81/typebox/pull/1564)
  - Use Function Cache Optimization for JIT
- [Revision 1.1.16](https://github.com/sinclairzx81/typebox/pull/1562)
  - Accumulator Stack for Unevaluated Properties and Items
  - Hostname and IdnHostname Format Check (IDNA)
  - Duration Format Check
  - UriReference Format Check
- [Revision 1.1.15](https://github.com/sinclairzx81/typebox/pull/1560)
  - Unicode Support for Pattern and PatternProperties
- [Revision 1.1.14](https://github.com/sinclairzx81/typebox/pull/1558)
  - Additional Extends Match Pattern Usage
  - Documentation
- [Revision 1.1.13](https://github.com/sinclairzx81/typebox/pull/1557)
  - Semantic Action Left Reduce on IndexArray
  - Extends Match Pattern 
  - Codec Ref Resolve
- [Revision 1.1.12](https://github.com/sinclairzx81/typebox/pull/1555)
  - Intrinsic Length Property Indexer for Tuple and Array types.
- [Revision 1.1.11](https://github.com/sinclairzx81/typebox/pull/1553)
  - Linear Scan for Common Formats | 2020-12 Spec Alignment
- [Revision 1.1.10](https://github.com/sinclairzx81/typebox/pull/1552)
  - Distributive Mapped Types
- [Revision 1.1.9](https://github.com/sinclairzx81/typebox/pull/1551)
  - Positional Distributive Conditional Types
- [Revision 1.1.8](https://github.com/sinclairzx81/typebox/pull/1550)
  - Distributive Conditional Types
- [Revision 1.1.7](https://github.com/sinclairzx81/typebox/pull/1549)
  - Use ParseBox 0.11.3 Tokenization
- [Revision 1.1.6](https://github.com/sinclairzx81/typebox/pull/1540)
  - Flag Type.Base for Deprecation
- [Revision 1.1.5](https://github.com/sinclairzx81/typebox/pull/1538)
  - Add Schema Function to Schema Level Validator
- [Revision 1.1.4](https://github.com/sinclairzx81/typebox/pull/1537)
  - Add Default Generic Type for Schema Validator
- [Revision 1.1.3](https://github.com/sinclairzx81/typebox/pull/1536)
  - Re-Order String Checks. Ensure Length Check before Format Check
  - Rename IsEvaluated to IsAccelerated
- [Revision 1.1.2](https://github.com/sinclairzx81/typebox/pull/1534)
  - Pass Value Argument to Schema Compiler ParseError Constructor
- [Revision 1.1.1](https://github.com/sinclairzx81/typebox/pull/1533)
  - Export and Document TB V1 JSON Schema Compiler Infrastructure.
- [Revision 1.1.0](https://github.com/sinclairzx81/typebox/pull/1532)
  - Add Configuration for Corrective Parse | Breaking Change to Parse

## Overview

Version 1.1.0 introduces a behavioral change to `Value.Parse(...)` and `Validator.Parse(...)` where automatic corrective parsing is now disabled by default. This change addresses performance overhead when handling invalid data and prepares the `Value.*` API for future revisions.

This update introduces a validation semantics change and is published under a minor semver version.

## Corrective Parse

In 1.0, a feature referred to as “Corrective Parse” was trialed. This feature meant that for any invalid value passed to Parse, TypeBox would attempt to Convert, Default, and Clean the value, then re-Check it before throwing an assertion. The feature was introduced in 1.0 in an effort to establish a de facto parsing pipeline for TypeBox, but it has since been observed that it incurs significant performance overhead for large invalid values. Additionally, the correction behavior has generally proven surprising to users, and is therefore better expressed as an opt-in feature.

The following shows the changes from 1.0 to 1.1

```typescript
// 1.0 
const A = Value.Parse(Type.Number(), '123') // A = 123

// 1.1
const A = Value.Parse(Type.Number(), '123') // throw! - Expected Number
```

Corrective parsing can be re-enabled by using the `{ correctiveParse: true }` configuration.

```typescript
import { Settings } from 'typebox/system'

// 1.1
Settings.Set({ correctiveParse: true })

const A = Value.Parse(Type.Number(), '123') // A = 123
```