Latest changelog entries in Readme link
- 1.2.114
- import.mjs is not included in npm publish (fixed)
- Fix errors found when reviving referneces; (assumed a field in object meant THE object; checked wrong array length; cleanup duplicate variables)
- 1.2.113
- Add higher resolution Date type called DateNS; which adds a 'ns' field which is a number of additional nanoseconds on top of the timestamp. (JS Specific issue; ISO-8601 date format may be of any precision)
- 1.2.112
- add check for
\ufeff
in stringifier for identifiers; because of BOM legacy usage unquoted ZWNBSP has to be counted as just whitespace. (especially considering multiple files might have been concatenated?)
- add check for
- 1.2.111
- fixes travis tests; latest mocha/coverage slows benchmark tests by 10x.
- 1.2.110
- Fix packaging error.
- 1.2.109
- fixed vertical tab character parsing.
- fixed hex numbers with
[a-f][A-F]
characters. - added reset() method for tests to reset global JSOX type registrations.
- added 1.2.108 named tests.
- Added
RegExp
support;encodes as?e?
string type;JSOX.parses("?e?'a+'") === /a+/
- encode as
regex
instead of?e?
; is actually 1 byte shorter, and more familiar.JSOX.parses("regex'a+'") === /a+/
,JSOX.stringify(/a+/) === /"regex'a+'"/
- encode as
- 1.2.108
- Refix base64, which failed to quote strings that looked like numbers.
- Clear array buffer typed variable when resolving the typed array; leaked to next parse.
- 1.2.107
- Updated document about CI tests.
- Enable Travis CI integration.
- Reference arrays don't result with the same object; reduce frequency of warning message.
- Remove automatic guess promoting numbers to bigints, floats can also be pretty big.
- 1.2.106
- fix regression in stringifying binary array objects; removing the quotes caused the '/' to be interpreted as a comment.
- update documentation about base64 encoding
- replace '+/' with '$_' as the high value strings emitted. Older versions will already accept this encoding.
- 1.2.105
- Fix losing array containing typed objects.
- Pass stringifier to toJSOX method.
- Added compatibility tests between sack.vfs node plugin and JS version.
- Fixed issues reviving references (new test), and replacing/providing values.
- 1.2.104
- Throw error while parser is in error state and new writes() are called.
- allow '+' prefix to numbers
- Fix fromJSOX class revival handling; call per-field.
- Added beginning of stringify tests (coverage).
- 1.2.103
- additional reference path revival fix.
- 1.2.102
- added automated test notes
- Added formal reference revival test; a different recursive variation of reference which failed.
- refactored to remove 'element_array' special case tracking variable; standardize on just 'elements' instead.
- 1.1.123 (published as 1.2.101)
- Added automated mocha tests; (ported from JSON6).
- Fixed some parsing issues exposed by tests around unicode whitespace handling and more.
- Throw an error when a invalid date is created.
- Most fixes were in handling badly formatted data either with exceptions, or accepting more badly formatted input as valid.
- 1.1.122
- Remove option SUPPORT_LEAD_ZERO_OCTAL; JS "strict" errors on lead zeros; and Number() converts lead zeros as decimal; removes custom decoding.
- 1.1.121
- fix parsing {op:f,}. Generalize unquoted string recovery.
- 1.1.120
- revert UTC time change; keep accuracy.
- 1.1.119
- missed the toFullYear -> toUTCFullYear of the date.
- 1.1.118
- treat \u00A0 the same as a ' ' (space). Visually they are the same, so in the interst of being human readable, it would make sense the machine should read it the same way.
- fix failure to encode millisecond into timestamp.
- 1.1.117
- Fixes reviving a class in a class in a map referencing the class in the map, and then finishsing map.class.class before finishing map.class
- Fixes reviving references after another prototype revival. (map followed by a key with a reference).
- restore handling empty object arguments
{,,a:3,,,,,b:4,,,}
results in{a;3,b:4}
. - Added some tests which caused the above failures; updated ancient tests to account for
- top level
<string><object>
in a stream to seprate with<string><ws><object>
which is valid for the test.
- 1.1.116
- Provides 'browser', and 'module' entry points. Improves module support.
- Fixes an issue with references in arrays after other objects.
- Fixes unclosed ref array state, for
ref[], []
. - Resolves an internal state meaning that overlapped meaning of default and pushed.
- 1.1.115
- publish minor doc updates
- 1.1.114
- Cricial Fix - clear arrayType when opening a new object or array (circular object decode)
- Reference fix when referencing the root node.
- 1.1.113
- fix leftover test code in require.js.
- 1.1.111
- fix packaging.
- 1.1.101
- Minor patch to get a long miner version
- fixed base64 decoding to handle terminations better.
- 1.1.1
- added Map() builtin type for JS which is type 'map'.
- Fixed expression which quoted words with 'S' or 's' in them.
- Fixed Known array types.
- 1.1.0
- Added stringifier/parser instance specific registrations for ToJSOX and FromJSOX handlers.
- removed unicode non-identifier check, prefering instead just the set of structure characters (basically anything which is not caught before the end begins an identifier). This simplifies testing field names for encoding/stringification.
- 1.0.8 - Sort object fields case insensitively; standardize field ordering.
- 1.0.7 - Fixed some stream parsing issues with identifiers.
- 1.0.6 - just updated build products
- 1.0.5
- Fix streaming ability
- consequtive strings only have whitespace to separate them, so identifiers for defining typed-objects cannot have whitespace between them and '{'.
- (reverted)implement test for non-identifier characters to quote field strings (or not). Implement reading non-identifier characters, and fault if identifier is unquoted and has such a character.
- implement typed-strings, which can be used to trigger constructors which accept single strings.
- update readme with typed-strings, typed-arrays, and typed-objects.
- performance fix; was keeping parser objects forever.
- 1.0.4 - Be more forgiving about platforms not having BigInt native support.
- 1.0.3 - Add ability to register prototypes to use for decoding.
- 1.0.2 - Issue with mutiple leading and trailing spaces. Fix collecting streams of numbers. Fix an issue with nested classes. Add circular reference support.
- 1.0.1 - Removed modification of object prototypes; instead track object prototype to formatting function in a WeakMap(). Fixed class expansion. Make objects of a class share the same prototype.
- 1.0.0 - Intial Release.