# History

## v4.1.0 2017 April 10
- Updated base files
- `cson2json` and `json2cson` will now output the error if the input file is invalid
  - Closes [issue #78](https://github.com/bevry/cson/issues/78)

## v4.0.0 2016 October 20
- `parseCSString` no longer creates the `sandbox` variable if it was missing, the responsibility of such things should be, and now is, handled via the eval function of coffeescript which is what that method uses
	- This is a major breaking change as parsing coffeescript files will now by default run still in a virtual machine but now in the global context rather than their own context
	 	- If you are parsing untrusted coffeescript files, you should now setup the `sandbox` option yourself with the appropriate values
		- If you are parsing trusted coffeescript files, or not parsing coffeescript files (e.g. only CSON files), then this change won't impact you
	- This change is done such that the result object from `parseCSString` passes `result.__proto__ === Object.prototype` which before it did not as the different context caused the prototype to point to a different contexts `Object` causing the assertion to fail
- Updated dependencies
- Updated internal packing conventions

## v3.0.2 2015 September 18
- Updated dependencies to avoid duplicate CoffeeScript installations

## v3.0.1 2015 March 16
- Fixed stdin support on Node 0.8

## v3.0.0 2015 March 16
- Every function now also supports callbacks (2nd or 3rd argument)
- Errors will now always maintain their stacks where possible
- Simplified some aliases (b/c break)
	- Changed `stringify` to now accept the arguments you would expect `stringify(data, replacer, indent)`
	- Changed `parse` to delegate to `parseCSONString` instead of `parseString`
	- Changed `load` to delegate to `parseCSONFile` instead of `parseFile`
	- Removed `require` (it use to delegate to `requireFile`)
- Updated dependencies

## v2.0.0 2015 February 6
- API has been rewritten to be more robust and simple
- CSON data is now parsed and stringified with the [cson-parser](https://www.npmjs.com/package/cson-parser) package
- CLI now supports stdin input
- Node v0.11 and IO.js support

## v1.6.2 2014 December 11
- Updated dependencies

## v1.6.1 2014 August 3
- Updated dependencies

## v1.6.0 2014 May 17
- Updated dependencies
- Fixed error handling in certain conditions

## v1.5.0 2014 February 8th
- Updated dependencies

## v1.4.5 2013 October 31
- Updated dependencies

## v1.4.4 2013 August 30
- Updated dependencies

## v1.4.3 2013 August 30
- Better error handling when requiring a file that has syntax errors
- Fixed stringify of '{}' giving '{{}}' which is invalid
	- Closes [issue #21](https://github.com/bevry/cson/issues/21)

## v1.4.2 2013 June 7
- Updated dependencies

## v1.4.1 2013 March 16
- Added `npm-shrinkwrap.json` that ensures `js2coffee` uses `coffee-script` 1.4.0
- Updated dependencies

## v1.4.0 2012 October 25
- Dropped require extensions following [CoffeeScript's lead](https://github.com/jashkenas/coffee-script/issues/2441)
	- If you still want them, add them to your application manually
- Updated dependencies
	- coffee-script 1.3.x to 1.4.x

## v1.3.0 2012 September 1
- You can now use `require` to require CSON files
	- Thanks to [Linus G Thiel](https://github.com/linus) for [pull request #16](https://github.com/bevry/cson/pull/16)
- Drops node v0.4 support, min supported version now v0.6

## v1.2.3 2012 September 1
- Fixed `json2cson` and `cson2json` binaries
	- Thanks to [Zhang Cheng](https://github.com/zhangcheng) for [pull request #15](https://github.com/bevry/cson/pull/15)

## v1.2.2 2012 August 10
- Re-added markdown files to npm distribution as they are required for the npm website

## v1.2.1 2012 July 16
- Fixed try surrounding a next callback

## v1.2.0 2012 July 7
- CSON files are now sandboxed by default, ensuring they can't do bad stuff to your global scope
- Added `opts` as the middle argument for `parseFile`, `parseFileSync`, `parse`, and `parseSync` functions
	- You can use this to specify `sandbox: false` if you do not want sandboxing on CSON files

## v1.1.2 2012 June 22
- We no longer have `require` cache our configuration files

## v1.1.1 2012 June 21
- Fixed main file location

## v1.1.0 2012 June 21
- Parsing file changes
	- If files have `js` or `coffee` extension, will try to require them
	- If files have `json` or `cson` extension, will try to read them
	- Otherwise will throw an unknown extension error
- Moved tests from Mocha to [Joe](https://github.com/bevry/joe)

## v1.0.2 2012 May 04
- Fixed some CSON use cases and added more unit tests

## v1.0.1 2012 May 04
- Async calls now act asynchronously
	- Thanks to [Ryan LeFevre](https://github.com/meltingice) for [pull request #10](https://github.com/bevry/cson/pull/10) -

## v1.0.0 2012 April 23
- Updated tests
- Updated `package.json` for latest npm
- Cleaned up the code
- CoffeeScript dependency is now local
- Added synchronous API calls to the README
- Stringify functions now output CSON strings, instead of JSON strings
	- Use `JSON.stringify` if you want JSON strings
- Added `json2cson` and `cson2json` bin tools

## v0.2 2011 August 10
- Added synchronous interface thanks to [clyfe](https://github.com/clyfe) - closes issue [#1](https://github.com/balupton/cson.npm/issues/1) and [#3](https://github.com/balupton/cson.npm/pull/3)

## v0.1 2011 June 2
- Initial commit
