Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Jsonpath Laravel Package

softcreatr/jsonpath

A fast, eval-free JSONPath implementation for PHP 8.5+. Query arrays, objects, and ArrayAccess/traversables with unions, slices, wildcards, filters, regex, and deep equality. Includes tokenized parsing and internal caching.

View on GitHub
Deep Wiki
Context7
2.2.0
  • Added opt-in JSONPath::RFC9535 mode with full standard query parsing, eager type validation, Unicode and escaped member names, mixed selector unions, and RFC filter and slice semantics. Existing calls retain their previous behavior.
  • Added findPaths() for normalized RFC result paths, including ordered duplicate matches.
  • Integrated all 715 cases from the pinned JSONPath compliance suite, checking values and normalized paths together and rejecting invalid queries independently of document contents.
  • Kept the original compatibility tests and added regression coverage for mode isolation, nested absolute queries, and JSON value comparisons.
  • CI now enforces 100% coverage, and PHP CS Fixer is the sole code style tool.
2.1.0
  • Added the RFC 9535 length(), count(), match(), search(), and value() function extensions.
  • Added a dedicated expression parser and static type checker for function expressions; malformed and ill-typed expressions are rejected without evaluating user-controlled PHP code.
  • Added checked RFC 9485 I-Regexp support for full-string and substring matching, with PCRE resource limits.
1.0.2

Fixed tokenizer handling for quoted bracket keys containing $ so literals like ['[$the.size$]'] remain atomic and do not split into root tokens.

Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/1.0.1...1.0.2

1.0.1
  • Aligned the query runner and lexer with the JSONPath comparison suite: JSON documents are now decoded as objects to preserve {} vs [], unsupported selectors no longer abort the runner, and dot-notation now accepts quoted keys with dots/spaces/leading @.
  • Hardened filter parsing: boolean-only filters (?(true|false|null)), literal short-circuiting (&& false, || true), and empty filters now return the expected collections instead of throwing.
  • Slice filters gracefully skip non-countable objects.

Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/1.0.0...1.0.1

1.0.0

Version 1.0.0 is finally here!

  • Rebuilt the test suite from scratch: removed bulky baseline fixtures and added compact unit/integration coverage for every filter (index, union, query, recursive, slice), lexer edge cases, and JSONPath core helpers. Runs reflection-free and deprecation-free.
  • Achieved and enforced 100% code coverage across AccessHelper, all filters, lexer, tokens, and JSONPath core while keeping phpstan and coding standards clean.
  • Added a lightweight manual query runner with curated examples to exercise selectors quickly without external datasets.
  • Major compatibility push toward the unofficial JSONPath standard: unions support slices/queries/wildcards, trailing commas parse correctly, negative indexes and bracket-escaped keys (quotes, brackets, wildcards, special chars) are honored, filters compare path-to-path and root references, equality/deep-equality/regex/in/nin semantics align with expectations, and null existence/value handling follows RFC behavior.
  • New feature highlights from this cycle:
    • Multi-key unions with and without quotes: $[name,year] and $["name","year"].
    • Robust bracket notation for special/escaped keys, including ']', '*', $, backslashes, and mixed punctuation.
    • Trailing comma support in unions/slices (e.g. $..books[0,1,2,]).
    • Negative index handling aligned with spec (short arrays return empty; -1 works where valid).
    • Filter improvements: path-to-path/root comparisons, deep equality across scalars/objects/arrays/null/empties, regex matching, in/nin/!in, tautological expressions, and ?@ existence behavior per RFC.
    • Unions combining slices/queries/wildcards now return complete results (e.g. $[1:3,4], $[*,1]).

Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.11.0...1.0.0

0.11.0

🔻 Breaking changes ahead:

  • Dropped support for PHP < 8.5
  • JSONPathToken now uses a TokenType enum and the constructor signature changed accordingly.
  • JSONPath options flag is now an int bitmask (was bool), requiring callers to pass integer flags.
  • SliceFilter returns an empty result for non-positive step values (previously iterated indefinitely).
  • QueryResultFilter now throws a JSONPathException for unsupported operators instead of silently proceeding.
  • Access helper behavior is stricter: arrayValues throws on invalid types; ArrayAccess lookups check offsetExists before reading; traversables and objects are handled distinctly.
  • Adopted PHP 8.5 features: TokenType enum, readonly value object for tokens, typed flags/options, and #[\Override] usage.
  • CI now runs on PHP 8.5 with required extensions; code style workflow updated accordingly.
  • Added coverage for AccessHelper edge cases (magic getters, ArrayAccess, traversables, negative indexes), QueryResultFilter arithmetic branches, and SliceFilter negative/null bounds.
  • Fixed empty-expression handling in lexer and improved safety in AccessHelper traversable lookups.
  • Added PHPStan static analysis to the toolchain and addressed its findings.

Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.10.0...0.11.0

0.10.0

What's Changed

New Contributors

Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.9.1...0.10.0

0.9.1

What's Changed

New Contributors

Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.9.0...0.9.1

0.8.3

What's Changed

New Contributors

Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.8.2...0.8.3

0.8.2

What's Changed

New Contributors

Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.8.1...0.8.2

0.7.5
0.7.4
0.7.3
0.5.1
0.7.2
0.7.1
0.7.0

🔻 Breaking changes ahead:

  • Made JSONPath::__construct final
  • Added missing type hints
  • Partially reduced complexity
  • Performed some code optimizations
  • Updated composer.json for proper PHPUnit/PHP usage
  • Added support for regular expression operator (=~)
  • Added QueryTest to perform tests against all queries from https://cburgmer.github.io/json-path-comparison/
  • Switched Code Style from PSR-2 to PSR-12
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin