feat: add JSONPathExtractor tool (#5052)

* feat: add JSONPathExtractor tool with lodash-based path extraction

  - Implement JSONPathExtractor tool for extracting values from JSON using path notation
  - Use lodash.get for robust path extraction supporting edge cases (numeric string keys, array indexing)
  - Add configurable error handling with returnNullOnError parameter
  - Include comprehensive test suite with 34 tests covering all scenarios
  - Support JSON strings, objects, and arrays as input

* fix lint

* Update pnpm-lock.yaml

* fix: exclude test files from TypeScript compilation

Prevents test files from being included in the dist folder which was causing
"jest is not defined" errors during server startup.

---------

Co-authored-by: Henry Heng <henryheng@flowiseai.com>
This commit is contained in:
anatolii burtsev
2025-08-18 02:55:58 -07:00
committed by GitHub
parent 4ce0851858
commit b126472816
7 changed files with 39438 additions and 38833 deletions
@@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">
<!-- JSON document -->
<rect x="4" y="3" width="16" height="18" rx="2" stroke="currentColor" stroke-width="2" fill="none"/>
<!-- Lines representing JSON content -->
<line x1="7" y1="7" x2="11" y2="7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
<line x1="7" y1="10" x2="9" y2="10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
<line x1="11" y1="10" x2="15" y2="10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
<line x1="7" y1="13" x2="9" y2="13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
<!-- Magnifying glass for extraction -->
<circle cx="15" cy="15" r="3" stroke="currentColor" stroke-width="2" fill="currentColor" fill-opacity="0.1"/>
<path d="M17.5 17.5l2 2" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
<!-- Dot indicating selected value -->
<circle cx="15" cy="15" r="1" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB