Skip to content

Latest commit

 

History

History
223 lines (136 loc) · 5.17 KB

CHANGES.md

File metadata and controls

223 lines (136 loc) · 5.17 KB

v3.1.0

  • Dialyzer and api spec improvements

v3.0

  • drop support for OTP versions before 17.0
  • remove definition options for disabling maps globally, {return_maps, false} is still an accepted option to decode/2

v2.8.2

  • enable debug_info for rebar3

v2.8.1

  • enable debug_info when used via mix
  • accept erlang:timestamp as input to the parser

v2.8.0

  • add JSX_FORCE_MAPS env var for forcing decoding to maps rather than attempting to autodetect

v2.7.2

  • fix an issue where tuples were assumed to be jsx ast and not checked
  • mask a function_clause error in encoder with a badarg error for api unity

v2.7.1

  • support for milliseconds in datetimes

v2.7.0

  • return_tail option
  • fixes for edoc generation

v2.6.2

  • ensure maps are always enabled when compiling via mix

v2.6.1

  • hex.pm maintenance release

v2.6.0

  • equivalent to v2.5.3 but created for semver reasons

v2.5.3

  • add a mix.exs to be buildable by both mix and rebar
  • minor README updates

v2.5.2

  • fix regression parsing <<"-0e...">> (thanks @c-bik)

v2.5.1

  • assume all datetimes are UTC time and add Z designator to indicate
  • fix parsing issue with datetimes in arrays

v2.5.0

  • consult/2 function for reading a file directly to a json term
  • maps_always build flag for always returning maps on platforms that support them
  • dialyzer fixes

v2.4.0

  • enough performance improvements to justify a new version. 2-3x speedup depending on mode of operation

v2.3.1

  • fixes an issue where astral plane json escape sequences were inadvertently being converted to the unicode replacement character

v2.3

  • switched to a faster implementation of string parsing in both the decoder and encoder
  • expand uescape option to the decoder
  • allow control codes in json passed to decoder (contrary to the spec, yes)

v2.2

  • return_maps option
  • uescape option for 7-bit clean output
  • add Makefile for slightly better erlang.mk compatibility
  • add maps_support/0 call to determine whether jsx was compiled with support for maps or not

v2.1.1

  • faster generation of json via iolists
  • repeat_keys option

v2.1

  • force the end of streams with end_json in addition to end_stream
  • support for encoding erlang datetime tuples to iso8601 format
  • allow a single trailing comma in objects and arrays

v2.0.4

  • more typespec adjustments

v2.0.3

  • update some typespecs to make them more comprehensive

v2.0.2

  • fixes travis-ci spec

v2.0.1

  • fix regression in output of empty objects/arrays

v2.0

  • jsx is much more pragmatic by default; common json errors are silently ignored (and fixed). stricter parsing must be enabled with options
  • add support for encoding otp 17.0's new maps data type
  • removed pre_encode and post_decode options in favour of making jsx functions easier to wrap and customize
  • streaming behavior is now disabled by default and must be requested explicitly
  • removed deprecated function names (to_json, to_term, term_to_json, etc)
  • expanded test coverage

v1.4.5

  • various fixes to typespecs uncovered by dialyzer
  • allow integer keys during encoding
  • convert atoms (other than true, false and null) to strings during encoding

v1.4.4

  • typespec for json_term/0 fixed
  • incorrect boolean shortcircuiting fixed in multibyte escape processing

v1.4.3

  • add empty rebar.config for mix build tool
  • add attempt_atom option for decoding json objects
  • fix a bug related to multibyte codepoints and streaming input
  • add a missing error state in the encoder

v1.4.2

  • build apparatus cleaned up and streamlined
  • new {raw, <<"json goes here">>} intermediate form to support direct generation of json
  • bugfixes involving inappropriate exceptions from jsx functions

v1.4.1

  • fixes a bug with interaction between dirty_strings and even numbers of escape characters
  • performance enhancements

v1.4

  • radically refactored decoder
  • dirty_strings now behaves intuitively in decoding. bad codepoints, bad utf8, illegal characters and escapes (except " and ' if single_quoted_strings is enabled) are ignored completely
  • incomplete_handler & error_handler are now available for use, see documentation in README

v1.3.3

  • pre_encode now orders input in the order you'd expect

v1.3.2

  • pre_encode is now able to handle tuples correctly

v1.3.1

  • pre_encode is now able to handle tuples

v1.3

  • introduces prettify/1 and minify/1, shortcuts for format/2
  • introduce encode/1,2 and decode/1,2 as primary interface to built in tokenizers. to_json/1,2 and to_term/1,2 remain accessible but not advertised
  • new parser/3 function exposes syntactic analysis stage for use with user defined tokenizers
  • improved documentation

v1.2.1

  • fixes incorrect handling of escaped forward slashes, thanks bob ippolito

v1.2

  • rewritten handling of string escaping to improve performance
  • pre_encode and post_decode hooks, see README
  • relax option

v1.1.2

  • add dirty_strings option
  • more fixes for invalid unicode in strings

v1.1.1

  • fixes bug regarding handling of invalid unicode in R14Bxx

v1.1

  • improvements to string escaping and json generation performance

v1.0.2

  • fixes to function specs
  • rewritten README
  • comments option

v1.0.1

  • rebar fix