feat(ipuaro): add JSON/YAML parsing and symlinks metadata

- Add YAML parsing using yaml npm package
- Add JSON parsing using tree-sitter-json
- Add symlinkTarget to ScanResult interface
- Update ROADMAP: verify v0.20.0-v0.23.0 complete
- Add 8 new tests (1687 total)
This commit is contained in:
imfozilbek
2025-12-04 19:57:06 +05:00
parent b0f1778f3a
commit 141888bf59
9 changed files with 407 additions and 99 deletions

56
pnpm-lock.yaml generated
View File

@@ -131,7 +131,7 @@ importers:
version: 5.9.3
vitest:
specifier: ^4.0.10
version: 4.0.13(@types/node@22.19.1)(@vitest/ui@4.0.13)(jsdom@27.2.0)(terser@5.44.1)(tsx@4.20.6)
version: 4.0.13(@types/node@22.19.1)(@vitest/ui@4.0.13)(jsdom@27.2.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.2)
packages/ipuaro:
dependencies:
@@ -168,9 +168,15 @@ importers:
tree-sitter-javascript:
specifier: ^0.21.0
version: 0.21.4(tree-sitter@0.21.1)
tree-sitter-json:
specifier: ^0.24.8
version: 0.24.8(tree-sitter@0.21.1)
tree-sitter-typescript:
specifier: ^0.21.2
version: 0.21.2(tree-sitter@0.21.1)
yaml:
specifier: ^2.8.2
version: 2.8.2
zod:
specifier: ^3.23.8
version: 3.25.76
@@ -201,7 +207,7 @@ importers:
version: 18.3.1(react@18.3.1)
tsup:
specifier: ^8.3.5
version: 8.5.1(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)
version: 8.5.1(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.2)
typescript:
specifier: ^5.7.2
version: 5.9.3
@@ -4172,6 +4178,14 @@ packages:
tree-sitter:
optional: true
tree-sitter-json@0.24.8:
resolution: {integrity: sha512-Tc9ZZYwHyWZ3Tt1VEw7Pa2scu1YO7/d2BCBbKTx5hXwig3UfdQjsOPkPyLpDJOn/m1UBEWYAtSdGAwCSyagBqQ==}
peerDependencies:
tree-sitter: ^0.21.1
peerDependenciesMeta:
tree-sitter:
optional: true
tree-sitter-typescript@0.21.2:
resolution: {integrity: sha512-/RyNK41ZpkA8PuPZimR6pGLvNR1p0ibRUJwwQn4qAjyyLEIQD/BNlwS3NSxWtGsAWZe9gZ44VK1mWx2+eQVldg==}
peerDependencies:
@@ -4636,6 +4650,11 @@ packages:
yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
yaml@2.8.2:
resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==}
engines: {node: '>= 14.6'}
hasBin: true
yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
@@ -6325,7 +6344,7 @@ snapshots:
magicast: 0.5.1
std-env: 3.10.0
tinyrainbow: 3.0.3
vitest: 4.0.13(@types/node@22.19.1)(@vitest/ui@4.0.13)(jsdom@27.2.0)(terser@5.44.1)(tsx@4.20.6)
vitest: 4.0.13(@types/node@22.19.1)(@vitest/ui@4.0.13)(jsdom@27.2.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
@@ -6344,13 +6363,13 @@ snapshots:
chai: 6.2.1
tinyrainbow: 3.0.3
'@vitest/mocker@4.0.13(vite@7.2.4(@types/node@22.19.1)(terser@5.44.1)(tsx@4.20.6))':
'@vitest/mocker@4.0.13(vite@7.2.4(@types/node@22.19.1)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.2))':
dependencies:
'@vitest/spy': 4.0.13
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
vite: 7.2.4(@types/node@22.19.1)(terser@5.44.1)(tsx@4.20.6)
vite: 7.2.4(@types/node@22.19.1)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.2)
'@vitest/pretty-format@4.0.13':
dependencies:
@@ -6405,7 +6424,7 @@ snapshots:
sirv: 3.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.0.3
vitest: 4.0.13(@types/node@22.19.1)(@vitest/ui@4.0.13)(jsdom@27.2.0)(terser@5.44.1)(tsx@4.20.6)
vitest: 4.0.13(@types/node@22.19.1)(@vitest/ui@4.0.13)(jsdom@27.2.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.2)
'@vitest/utils@1.6.1':
dependencies:
@@ -8392,12 +8411,13 @@ snapshots:
pluralize@8.0.0: {}
postcss-load-config@6.0.1(postcss@8.5.6)(tsx@4.20.6):
postcss-load-config@6.0.1(postcss@8.5.6)(tsx@4.20.6)(yaml@2.8.2):
dependencies:
lilconfig: 3.1.3
optionalDependencies:
postcss: 8.5.6
tsx: 4.20.6
yaml: 2.8.2
postcss@8.5.6:
dependencies:
@@ -8911,6 +8931,13 @@ snapshots:
optionalDependencies:
tree-sitter: 0.21.1
tree-sitter-json@0.24.8(tree-sitter@0.21.1):
dependencies:
node-addon-api: 8.5.0
node-gyp-build: 4.8.4
optionalDependencies:
tree-sitter: 0.21.1
tree-sitter-typescript@0.21.2(tree-sitter@0.21.1):
dependencies:
node-addon-api: 8.5.0
@@ -8999,7 +9026,7 @@ snapshots:
tslib@2.8.1: {}
tsup@8.5.1(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3):
tsup@8.5.1(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.2):
dependencies:
bundle-require: 5.1.0(esbuild@0.27.0)
cac: 6.7.14
@@ -9010,7 +9037,7 @@ snapshots:
fix-dts-default-cjs-exports: 1.0.1
joycon: 3.1.1
picocolors: 1.1.1
postcss-load-config: 6.0.1(postcss@8.5.6)(tsx@4.20.6)
postcss-load-config: 6.0.1(postcss@8.5.6)(tsx@4.20.6)(yaml@2.8.2)
resolve-from: 5.0.0
rollup: 4.53.3
source-map: 0.7.6
@@ -9156,7 +9183,7 @@ snapshots:
fsevents: 2.3.3
terser: 5.44.1
vite@7.2.4(@types/node@22.19.1)(terser@5.44.1)(tsx@4.20.6):
vite@7.2.4(@types/node@22.19.1)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.2):
dependencies:
esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.3)
@@ -9169,6 +9196,7 @@ snapshots:
fsevents: 2.3.3
terser: 5.44.1
tsx: 4.20.6
yaml: 2.8.2
vitest@1.6.1(@types/node@22.19.1)(@vitest/ui@1.6.1)(jsdom@27.2.0)(terser@5.44.1):
dependencies:
@@ -9206,10 +9234,10 @@ snapshots:
- supports-color
- terser
vitest@4.0.13(@types/node@22.19.1)(@vitest/ui@4.0.13)(jsdom@27.2.0)(terser@5.44.1)(tsx@4.20.6):
vitest@4.0.13(@types/node@22.19.1)(@vitest/ui@4.0.13)(jsdom@27.2.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.2):
dependencies:
'@vitest/expect': 4.0.13
'@vitest/mocker': 4.0.13(vite@7.2.4(@types/node@22.19.1)(terser@5.44.1)(tsx@4.20.6))
'@vitest/mocker': 4.0.13(vite@7.2.4(@types/node@22.19.1)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.2))
'@vitest/pretty-format': 4.0.13
'@vitest/runner': 4.0.13
'@vitest/snapshot': 4.0.13
@@ -9226,7 +9254,7 @@ snapshots:
tinyexec: 0.3.2
tinyglobby: 0.2.15
tinyrainbow: 3.0.3
vite: 7.2.4(@types/node@22.19.1)(terser@5.44.1)(tsx@4.20.6)
vite: 7.2.4(@types/node@22.19.1)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.2)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.19.1
@@ -9366,6 +9394,8 @@ snapshots:
yallist@3.1.1: {}
yaml@2.8.2: {}
yargs-parser@21.1.1: {}
yargs@17.7.2: