All Versions
21
Latest Version
Avg Release Cycle
72 days
Latest Release
752 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v1.1.3 Changes
October 12, 2022๐ Fixed
- ๐ Fix the parsing of nested sub-trees that use wildcards (#83). Thanks @cerbero90
-
v1.1.2 Changes
September 29, 2022โ Added
- ๐ PHP 8.2 support
๐ Fixed
- Meaningful error on invalid token. (#86)
- โ Added missing return type annotation. (#84)
-
v1.1.1 Changes
March 03, 2022๐ Fixed
- ๐ Fixed warning when generating autoload classmap via composer.
-
v1.1.0 Changes
February 19, 2022โ Added
- ๐ Autoloading without Composer. Thanks @a-sync.
-
v1.0.1 Changes
February 06, 2022๐ Fixed
- ๐ Broken command
make performance-tests
- ๐ Slight performance improvements
- ๐ Broken command
-
v1.0.0 Changes
February 04, 2022โ Removed
- โ Removed deprecated functions
objects()
andhttpClientChunks()
. - โ Removed deprecated
JsonMachine
entrypoint class. UseItems
instead. - โ Removed deprecated
Decoder
interface. UseItemDecoder
instead. - โ Removed
Parser::getJsonPointer()
. UseParser::getJsonPointers()
/Items::getJsonPointers()
instead. - โ Removed
Parser::getJsonPointerPath()
. No replacement. Was not useful for anything other than testing and exposed internal implementation.
๐ Changed
๐ Simplified and fixed decoding
- JSON Pointer parts between slashes (a.k.a reference tokens) must be valid encoded JSON strings to be JSON Pointer RFC 6901 compliant.
It means that no internal key decoding is performed anymore. You will have to change your JSON Pointers if you match against keys with escape sequences.
diff Items::fromString( '{"quotes\"": [1, 2, 3]}', - ['pointer' => '/quotes"'] + ['pointer' => '/quotes\"'] );
- Method
ItemDecoder::decodeInternalKey()
was deleted as well as relatedValidStringResult
. They are not used anymore as described in previous point. PassThruDecoder
does not decode keys anymore. Both the key and the value yielded are raw JSON now.
Other
- 0๏ธโฃ Default decoding structure of
Parser
is object. (You won't notice that unless you useParser
class directly) SyntaxError
renamed toSyntaxErrorException
Items::__construct
accepts the options array instead of separate arguments. (You won't notice that unless you instantiateItems
class directly)Lexer
renamed toTokens
DebugLexer
renamed toTokensWithDebugging
โ Added
- ๐ Multiple JSON Pointers can be specified as an array in
pointer
option. See README. Thanks @fwolfsjaeger. - ๐ New methods available during iteration:
Items::getCurrentJsonPointer()
andItems::getMatchedJsonPointer()
๐ to track where you are. See README. Thanks @fwolfsjaeger.
๐ Fixed
- Incorrect position information of
TokensWithDebugging::getPosition()
. Was constantly off by 1-2 bytes.
- โ Removed deprecated functions
-
v0.8.0 Changes
๐ Changed
- ๐ Internal decoders moved to
ItemDecoder
.ErrorWrappingDecoder
decorator now requiresItemDecoder
as well. - โฌ๏ธ Dropped PHP 5.6 support.
๐ Deprecated
- ๐
JsonMachine\JsonMachine
entry point class is deprecated, useJsonMachine\Items
instead. - ๐
JsonMachine\JsonDecoder\Decoder
interface is deprecated. UseJsonMachine\JsonDecoder\ItemDecoder
instead.
โ Added
- ๐ New entry point class
Items
replacesJsonMachine
. - 0๏ธโฃ Object as default decoding structure instead of array in
Items
. - ๐
Items::getIterator()
now returnsParser
's iterator directly. CallItems::getIterator()
๐ instead ofJsonMachine::getIterator()::getIterator()
to get toParser
's iterator if you need it. Fixes https://stackoverflow.com/questions/63706550 Items
usesoptions
in its factory methods instead of growing number of many parameters. See Options in README.Items
introduces newdebug
option. See Options in README.- Noticeable performance improvements. What took 10 seconds in
0.7.*
takes about 7 seconds in0.8.0
.
- ๐ Internal decoders moved to
-
v0.7.1 Changes
๐ New features
- ๐ PHP 8.1 support
- ๐ท DEV: Build system switched to composer scripts and Makefile
-
v0.7.0 Changes
๐ New features
- ๐ Use a
-
in json pointer as a wildcard for an array index. Example:/users/-/id
. Thanks @cerbero90
- ๐ Use a
-
v0.6.1 Changes
๐ Fixed bugs
- Empty dict at the end of an item was causing Syntax error in the next item. Reason: closing
}
did not set object key expectation tofalse
. (#41 via PR #42).
- Empty dict at the end of an item was causing Syntax error in the next item. Reason: closing