{"_id":"@sillvva/search","_rev":"27-cd985693f569950e8a130761d6138d62","name":"@sillvva/search","dist-tags":{"latest":"1.0.3"},"versions":{"0.2.1":{"name":"@sillvva/search","version":"0.2.1","keywords":["search","query","filter","parser","analyzer","tokenization","ast","database","orm"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.2.1","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"94be578cceaa95b31fb45c560f43b0bad87db8a6","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.2.1.tgz","fileCount":12,"integrity":"sha512-eERpqHhMECV46ZXU6qhgSngQvBYFWkS8Pu/pzE1sIX+PSBmgfrrj7KjPCtwLHU11NUIiQ0qbLr2mknHGrLAQcg==","signatures":[{"sig":"MEUCIQC7EvbxMri1059HuJXzlrDT9YKKMnPJ0G2vHazt4Tr2VAIgAwcM0rpi8KaG03iokqHuWf9O+4qbT6WaamWGT4GiZYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108811},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./json":{"types":"./dist/json.d.mts","default":"./dist/json.mjs"},"./drizzle":{"types":"./dist/drizzle.d.mts","default":"./dist/drizzle.mjs"}},"gitHead":"0d89763a8e5a8b01326e129cf94222a8e27ab21b","scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"tsup":"^8.5.0","typescript":"^5.8.3"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.2.1_1750959969648_0.2992743183138409","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@sillvva/search","version":"0.2.2","keywords":["search","query","filter","parser","analyzer","tokenization","ast","database","orm"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.2.2","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"ff31a986ff4ba6a63d72b9560527f5d91f7d3ba8","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.2.2.tgz","fileCount":12,"integrity":"sha512-Cgmqu74JSnC1Tj2aoQEaYILC9EgMGq/ElPD69csyVMdoLSwaomaJbPhL/trCk9t5Bx3Y1czuGPVumCep8XCMbw==","signatures":[{"sig":"MEQCIB3S8xvk4zJr9rERBgtN7patWrN3+KeZ5vbpFi9Fp/mQAiACp3rrOgmuhmv5Q2a86ilIiOvYIqISvBJjRFrN1d9mSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109100},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./json":{"types":"./dist/json.d.mts","default":"./dist/json.mjs"},"./drizzle":{"types":"./dist/drizzle.d.mts","default":"./dist/drizzle.mjs"}},"gitHead":"89777de0af4cb8193c0492140f26fafeab4db6d9","scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"tsup":"^8.5.0","typescript":"^5.8.3"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.2.2_1750960541449_0.16359666367077352","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@sillvva/search","version":"0.2.3","keywords":["search","query","filter","parser","analyzer","tokenization","ast","database","orm"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.2.3","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"06b67cc9b769fb8e21a20a570c640267a025e31d","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.2.3.tgz","fileCount":21,"integrity":"sha512-sJPixDbxe28pEvFENfBFcy2GI5aSK1fUNA4PAOXrsKjYkjlOWfkJPhKrKE+0ScPSoGcKmkvFUx2OH/NOJK7jdA==","signatures":[{"sig":"MEUCIQC3pa825iqwZjF7RlszsRR8g4IlKFO2zDmCLmyBiG9LCwIgUc96iNaia3k3T/TCHXzgRzbZhsZV0y1mRTLmhjANJ74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190400},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"gitHead":"d304d7fddb92579653b24fcfb03d69c526bc6d1a","scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"tsup":"^8.5.0","typescript":"^5.8.3"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.2.3_1750965572821_0.4205491267554853","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@sillvva/search","version":"0.3.0","keywords":["search","query","filter","parser","analyzer","tokenization","ast","database","orm"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.3.0","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"cbedeb8f1c033416c8ab2de4bdba7871c351a720","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.3.0.tgz","fileCount":21,"integrity":"sha512-PH+UWuoxDTXisVRYGwHRs8OFf6Q/WNwqnXWu+pjHQpvEWgzoH/y2svoxQXBvqryrQgXlSe47rFx7WrRZeMwIVg==","signatures":[{"sig":"MEUCIQDRZiZ0D8FPXGl1t4Jv6LvSoJKQfeFC3JVRCMKI8oVxSwIgAi8Ix+77g94rU+tkbFt9zjiTHigRB2DBRE5uZI+bKMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209969},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"gitHead":"a1e2265aef8c3d21bc24a4ab2a2dc9864703fd37","scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"tsup":"^8.5.0","typescript":"^5.8.3"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.3.0_1751032437244_0.5751078219380719","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@sillvva/search","version":"0.3.1","keywords":["search","query","filter","parser","analyzer","tokenization","ast","database","orm"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.3.1","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"fed79755eda7e60bffc4b86273116ea11460c853","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.3.1.tgz","fileCount":21,"integrity":"sha512-6HOUEEq04l5jBv3x/975pY1OY8uFYzQoRa5dabKexbG2519lt/95YhETtBaXIbEhsNBwRZeSL3Vv5Pm++orFeQ==","signatures":[{"sig":"MEQCIDxCEL/1KYuwOAILd2Y0ggW/vP95jGdvUH9mJ5zaAmRYAiAcXOPrRcvFnCXDEKgfr0GosqZC3FKDU8bsW60AXSaHlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217445},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"gitHead":"7e2fb2edd210f509f880fde0247221c920000cf0","scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"tsup":"^8.5.0","typescript":"^5.8.3"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.3.1_1751040020315_0.36530569691729586","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@sillvva/search","version":"0.3.2","keywords":["search","query","filter","parser","analyzer","tokenization","ast","database","orm"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.3.2","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"e3df69cee624d1afd22b1f9be5cb32ee20573bcc","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.3.2.tgz","fileCount":21,"integrity":"sha512-XN/Pq7RwSALjLz8jcS87HY9r3JCKQKM32QsX6Iheye98BRRMe1nHvc893Tgw4EFG+OF+Zd/vxR9WeSfNVLVn9g==","signatures":[{"sig":"MEUCIHE08G/J8YNrMtwP0jWduLS5ULrJMmD9boiwxwRAzlOHAiEApXSQzIUvPJhzfaA6j94gPWrwQIR3yur9DpWMi2oqxHU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215579},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"gitHead":"0dcfec80e3b8440df22924afca41820fdb297e14","scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"tsup":"^8.5.0","typescript":"^5.8.3"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.3.2_1751041276814_0.8456165628226902","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@sillvva/search","version":"0.4.2","keywords":["search","query","filter","parser","analyzer","tokenization","ast","database","orm"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.4.2","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"d251a17307c61f95d4e695938bf62139db85462e","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.4.2.tgz","fileCount":21,"integrity":"sha512-wuNlbsHCx6v0xo2WIXQwpvEkJa7EIA5oDiwyQK+JDa3OdMmhvn/QjwHf5U8e+q3+AvvjRRZz7dEMzYL+WvrcHA==","signatures":[{"sig":"MEUCIQCYmfywnefeyN0/V4ORTh4T48WS9z7OzkeDCYPl6eo2UgIgBrXSZvE2YAJNYji+gPD89b50cBMllZqCAiEJDMwagmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259887},"_from":"file:sillvva-search-0.4.2.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/1f7736fa4dce764a8e0bf1869b8de0fa/sillvva-search-0.4.2.tgz","_integrity":"sha512-wuNlbsHCx6v0xo2WIXQwpvEkJa7EIA5oDiwyQK+JDa3OdMmhvn/QjwHf5U8e+q3+AvvjRRZz7dEMzYL+WvrcHA==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.4.2_1751075526939_0.4514479792762769","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@sillvva/search","version":"0.4.3","keywords":["search","query","filter","parser","analyzer","tokenization","ast","database","orm"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.4.3","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"b65bc51c48c25c79158810d2d42682843b256bb8","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.4.3.tgz","fileCount":21,"integrity":"sha512-K7nwPkbElU6qkjY3miJQYFT9iRtOMIJ/RXHaJkm8Rx6FOy8IbVqXPA9mXMM3s9L0hznS4Y3BRgmjcoSMuasv4Q==","signatures":[{"sig":"MEUCIQCEVi+7AIvIihrjRwuQzxTNzsHv4znfMKRXeuRpmgiS8wIgDct2yqKFyoiw/wADcDv7smgyyy88J3wpOFK57cxJgus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260055},"_from":"file:sillvva-search-0.4.3.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/e2b74330932904658f3dad40ce0d8e1f/sillvva-search-0.4.3.tgz","_integrity":"sha512-K7nwPkbElU6qkjY3miJQYFT9iRtOMIJ/RXHaJkm8Rx6FOy8IbVqXPA9mXMM3s9L0hznS4Y3BRgmjcoSMuasv4Q==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.4.3_1751081809529_0.08083934898074419","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@sillvva/search","version":"0.4.4","keywords":["search","query","filter","parser","analyzer","tokenization","ast","database","orm"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.4.4","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"48221722d363851b09b83a417b6c94951b9e43a2","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.4.4.tgz","fileCount":21,"integrity":"sha512-w3BEbbWyynKIf93iiPfpYBDfIzslh/aJIHDlJEp5k0VfYcUIX06MX7avcavKNSHautrXAPY43T1G+dEDhtUyHA==","signatures":[{"sig":"MEUCIQDPRFS1ViaXdPQFCabb4I4eLrHGzSN6d+Ki/bK4q+q4FAIgZc38zRwH9Kr+r5ufHop2aFfMmou9D/Z7OzgZGgnycCY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305513},"_from":"file:sillvva-search-0.4.4.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/5edc5c5b86b1642618f37ae375104bae/sillvva-search-0.4.4.tgz","_integrity":"sha512-w3BEbbWyynKIf93iiPfpYBDfIzslh/aJIHDlJEp5k0VfYcUIX06MX7avcavKNSHautrXAPY43T1G+dEDhtUyHA==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.4.4_1751135482762_0.5189785665818125","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@sillvva/search","version":"0.4.5","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.4.5","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"641f00a2fbbbc2cf65573b7da37c306e541545bf","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.4.5.tgz","fileCount":21,"integrity":"sha512-3/MGi71qlPRTTC9+ScGuM/ju3Ut33rnHsUA/yx9FPnfTMMZ87G7dyWn48+ciI3+01PNESCrsN2y8zgKLRCTccA==","signatures":[{"sig":"MEYCIQDtNWgzmKSkQdYRhTeIcJyljKj+tPew9ow9eB9nrsMZJAIhAPAPe89T2yOmBLU6QeV9QAr/juNDPdke/bfAgdPabJU+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319103},"_from":"file:sillvva-search-0.4.5.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/68f5e0b18a546007b362fbad6386774c/sillvva-search-0.4.5.tgz","_integrity":"sha512-3/MGi71qlPRTTC9+ScGuM/ju3Ut33rnHsUA/yx9FPnfTMMZ87G7dyWn48+ciI3+01PNESCrsN2y8zgKLRCTccA==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.4.5_1751208746455_0.4787284034997097","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@sillvva/search","version":"0.4.6","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.4.6","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"98c874e0a38a837475b42307fe30cd7074580100","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.4.6.tgz","fileCount":21,"integrity":"sha512-1D+MGVzbK/TtpYPAUg1uxyQipLGYeKSzn4eb1FTm9koHikGBoBPX+5ZaIUx+XJO6VJYriyqcyzZINeEOzYTciQ==","signatures":[{"sig":"MEUCIBF/0anvVeMDLyXAygK4PK/ResWxkLS9EZ5lv0tOy8UPAiEAmsEfhY/3dVAn+zHXsSTd3eWmwWXFlv4PTz9211CM/Yg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319163},"_from":"file:sillvva-search-0.4.6.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/11f7f52e6f4d5c98822507979916ed68/sillvva-search-0.4.6.tgz","_integrity":"sha512-1D+MGVzbK/TtpYPAUg1uxyQipLGYeKSzn4eb1FTm9koHikGBoBPX+5ZaIUx+XJO6VJYriyqcyzZINeEOzYTciQ==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.4.6_1751209281025_0.4277149151937407","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@sillvva/search","version":"0.5.2","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.5.2","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"bc0dec05f681ee6bdfd45dffcd1481d978501737","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.5.2.tgz","fileCount":21,"integrity":"sha512-6tfqhPnTzR0gUzLPgSC0B7y6o2qGZk61BgE1ziZBALam2K7/fnCiMnqU2BzoCys2BPImXGiL8ApNWUCfgP1DJQ==","signatures":[{"sig":"MEQCIGO/5NNNOLrkxpvAefflqab1ySMlgRIzUohgw79V3/A0AiBO1Ol4oax/7HUqBpz+5dEPPlPgzOBGdHKHBpvJ4uPj9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321947},"_from":"file:sillvva-search-0.5.2.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/302dd6166167eeffe8cc1db6e574b191/sillvva-search-0.5.2.tgz","_integrity":"sha512-6tfqhPnTzR0gUzLPgSC0B7y6o2qGZk61BgE1ziZBALam2K7/fnCiMnqU2BzoCys2BPImXGiL8ApNWUCfgP1DJQ==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.5.2_1751209919271_0.24322547411880113","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@sillvva/search","version":"0.5.3","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.5.3","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"e43204f45ecc5588404713af0b3f82c9dbece8bb","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.5.3.tgz","fileCount":21,"integrity":"sha512-H9izSpOtpblDq04vwFVmVvERGeE0prmOroUOIXO+FF26rKYHhbU0fNUO03291fowm0zPU8tIWY2rApKW/kk+MA==","signatures":[{"sig":"MEUCIE46TxySPJRhqysFCHi6zDofpD/tkOzlbMZLfODJ7WJbAiEA9ge0z8lDb4c9H4VTeg1cN/6QKczzsXtOKcZW6KsrzsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":324851},"_from":"file:sillvva-search-0.5.3.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/8543f30fb36e6bf6860a7cd1452d3e9a/sillvva-search-0.5.3.tgz","_integrity":"sha512-H9izSpOtpblDq04vwFVmVvERGeE0prmOroUOIXO+FF26rKYHhbU0fNUO03291fowm0zPU8tIWY2rApKW/kk+MA==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.5.3_1751212382469_0.8587670888053165","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@sillvva/search","version":"0.5.4","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.5.4","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"9f298bf6090a3d45c8d439fc504722066fb1b37b","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.5.4.tgz","fileCount":21,"integrity":"sha512-b0rm2ZM6konY3YRYVa5OoJs3ZgKEBcG33CUm4Bqv4smGWPw3Ge+3vQjjExqkhDoxoZcjCuKatxHAaiXCL9I32Q==","signatures":[{"sig":"MEUCIDcV98mLwWlyiI6OSeqLA2G9z/p23fSL5QiR/CZbmNuVAiEA95L1UbtK2rU3nlgshs4DkPeUbnEDD2yY/GtlPrWYqsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340945},"_from":"file:sillvva-search-0.5.4.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/204fc508457cb21fb01a2b44362d23c0/sillvva-search-0.5.4.tgz","_integrity":"sha512-b0rm2ZM6konY3YRYVa5OoJs3ZgKEBcG33CUm4Bqv4smGWPw3Ge+3vQjjExqkhDoxoZcjCuKatxHAaiXCL9I32Q==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.5.4_1751223568090_0.05686815650183474","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@sillvva/search","version":"0.5.5","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.5.5","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"503facb9482f4105cacbe38efb4f73f1fa8d0bf3","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.5.5.tgz","fileCount":21,"integrity":"sha512-RBMflun6NBG5736F7G3xgN016vBozoEPrPvNiVvd7aOUO0nQTEBM1f5EDNz5e05kau1PPkxRy+Cixvj2lYMZFg==","signatures":[{"sig":"MEUCIGA+Yb7d38h1IltkMSNcorlKvkGOIv/L0Xi49mUXPr9+AiEAq8vjg3iCHYYjHW9mLj4oryNisRA08XG5H8Ph66qumDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344875},"_from":"file:sillvva-search-0.5.5.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/6dbdc65e118ac29f543e1e5895fc1ade/sillvva-search-0.5.5.tgz","_integrity":"sha512-RBMflun6NBG5736F7G3xgN016vBozoEPrPvNiVvd7aOUO0nQTEBM1f5EDNz5e05kau1PPkxRy+Cixvj2lYMZFg==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.5.5_1751295489470_0.08866235304741976","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@sillvva/search","version":"0.5.6","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.5.6","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"2d08c17e8138768631690539e42ef1b18499c482","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.5.6.tgz","fileCount":21,"integrity":"sha512-CfENzwB/0Obw/a3BjkKR87iYPIkjuyFIdUqbZFuS+DvRSDS5RIBumSOAana7mDM2w4her2ljZ9s9vgD/d1qoTA==","signatures":[{"sig":"MEYCIQDVQNqKJKtGly1MP8xNnFB8M9Cdn7S/3r36H+I8aF40GgIhAOppi3negQyIYDd9I33P5c2chpOKw53xNP6MEQy18e1E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367331},"_from":"file:sillvva-search-0.5.6.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/129b665332ec8c6c8b84efabd96b3a56/sillvva-search-0.5.6.tgz","_integrity":"sha512-CfENzwB/0Obw/a3BjkKR87iYPIkjuyFIdUqbZFuS+DvRSDS5RIBumSOAana7mDM2w4her2ljZ9s9vgD/d1qoTA==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.5.6_1751384361340_0.5561841947123678","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@sillvva/search","version":"0.6.0","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.6.0","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"6c3b642fc8c1718703f5166eea1c32adf0917217","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.6.0.tgz","fileCount":21,"integrity":"sha512-0mI28zIQM0keSgzLwqV3QRY9tp1px+4S1MZDeUJM9TcHG2bAYERVbA6gGkTusgkiy5Z4ZGaRm0PtGmywCIjXtw==","signatures":[{"sig":"MEUCIHjhlqh0F0b6oCRxxgsbrNfTJrRsdddm26Sau+MT6oe0AiEAnfjy79Bvhahs8YGa4ncJiixbX1vQjouloFuNaA7jKts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":406748},"_from":"file:sillvva-search-0.6.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/79d1522937be13077cdef857db195395/sillvva-search-0.6.0.tgz","_integrity":"sha512-0mI28zIQM0keSgzLwqV3QRY9tp1px+4S1MZDeUJM9TcHG2bAYERVbA6gGkTusgkiy5Z4ZGaRm0PtGmywCIjXtw==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.6.0_1751464171233_0.979210772253094","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@sillvva/search","version":"0.6.1","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.6.1","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"b9df320cb7238fe1d02b58af21b62a719cb3b4ac","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.6.1.tgz","fileCount":21,"integrity":"sha512-/VjOlDmgTMEwU4foozzPhUamgUol9ttpHjgkAQfoxXXMeVG2cc5+iYtmHqaBf55Ql8d4yK/KPqW7VsocXxGrEQ==","signatures":[{"sig":"MEUCIE9gDKUCoP/M+Cg+GgKx8dGOavUQfJht+MXuBpoAVtXfAiEAyqJFRqfkILNUHrRziJyipvPwZAjoqK3rTDvgoWRonyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":410827},"_from":"file:sillvva-search-0.6.1.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/34baa1450d602e30e87c66f0b3a82926/sillvva-search-0.6.1.tgz","_integrity":"sha512-/VjOlDmgTMEwU4foozzPhUamgUol9ttpHjgkAQfoxXXMeVG2cc5+iYtmHqaBf55Ql8d4yK/KPqW7VsocXxGrEQ==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.6.1_1751481075579_0.8143227712946353","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@sillvva/search","version":"0.6.2","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.6.2","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"918794e9d79d277f8e577b89b35094102d571936","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.6.2.tgz","fileCount":21,"integrity":"sha512-cSDjItEgd79XMqu4gVi/et5o7CesW206q0etKeemCR7EZm7P4gwCT8uo7ZVbc16+ESxZomkofJ4X1gFnQplHbA==","signatures":[{"sig":"MEYCIQC3+sB09aNR7yykvocy4DIUk8/6tokKsMFln7HkjQlXHQIhAJvnld4FbdLamrra8sQmAiyKLon+mXFiW7VmAim8Vyri","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412345},"_from":"file:sillvva-search-0.6.2.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/9e658f26b9f21a25ab4327749e4f2534/sillvva-search-0.6.2.tgz","_integrity":"sha512-cSDjItEgd79XMqu4gVi/et5o7CesW206q0etKeemCR7EZm7P4gwCT8uo7ZVbc16+ESxZomkofJ4X1gFnQplHbA==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"@sillvva/utils":"npm:@jsr/sillvva__utils@^0.5.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.3","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.6.2_1751578255474_0.9067741742130229","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@sillvva/search","version":"0.6.4","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@0.6.4","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"72d303670ac114f907600ec7df135908fa4397f6","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-0.6.4.tgz","fileCount":21,"integrity":"sha512-M+7zR662xUjZjHQ5fEP3V/I7tOqGfvUdN2lbA9WTlQi5Xc9joCI4h3rT25cQwjPg9aRVrd+fKHBSzyRLo4l5gQ==","signatures":[{"sig":"MEYCIQDf9jJGTt1VYWAs9PtpNDOIq1T0jrJET+Rp/kNqpoZEkgIhAJ7HZbMNR55l51faR4/X0CgfDYTD/ZpiOsmrkc30wtG4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412321},"_from":"file:sillvva-search-0.6.4.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/89af431cc643cce46e35ba92ac0804b0/sillvva-search-0.6.4.tgz","_integrity":"sha512-M+7zR662xUjZjHQ5fEP3V/I7tOqGfvUdN2lbA9WTlQi5Xc9joCI4h3rT25cQwjPg9aRVrd+fKHBSzyRLo4l5gQ==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"@sillvva/utils":"^0.5.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_0.6.4_1751587371317_0.19405132382495305","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@sillvva/search","version":"1.0.0","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@1.0.0","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"63f8b83c531b208a0e9d8f8fa91160dcae421f8d","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-1.0.0.tgz","fileCount":21,"integrity":"sha512-cKR0zOvLPeO67H4uqCvmqOKRJ7VlreT9aPwr1Z/4Dw9PhDnMJjuJ1+d77CHr46eTwJcC6uBatMz93AxbdoTi5Q==","signatures":[{"sig":"MEYCIQCcYh8J7QteqaV5PoxDeAx6fkIuCT7qmEibrDNJiSIY/gIhAMlup5JzSj8vn7pFpAcdKPM778Ccz9+kpDfd3s54QVk+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412625},"_from":"file:sillvva-search-1.0.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/f05d45c0d97541c30ecb8e1ae9918c7f/sillvva-search-1.0.0.tgz","_integrity":"sha512-cKR0zOvLPeO67H4uqCvmqOKRJ7VlreT9aPwr1Z/4Dw9PhDnMJjuJ1+d77CHr46eTwJcC6uBatMz93AxbdoTi5Q==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"@sillvva/utils":"^0.5.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_1.0.0_1751599255742_0.36701232920736504","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@sillvva/search","version":"1.0.1","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@1.0.1","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"a2a457851bab0daa4e49e541d1a21ecdbd965c1b","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-1.0.1.tgz","fileCount":21,"integrity":"sha512-plcnamwT5maUvoH7D+sB5fEskiQ/thVWCMFoKblGeY48/WK+fiRgFASdO8+a9x9hDWDMT9P9KiMCzWfV0xq1cg==","signatures":[{"sig":"MEUCIEfepJbboRVI78rqtBO+6COvD0CVFFZtJH9cgskrzYh9AiEAs/RDkUgsojfTmkW9HHCSYzVYgQJzVuEj06x2VKfw+Rs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412734},"_from":"file:sillvva-search-1.0.1.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/d2ec12fd00a5eb76e1d3c0dd4e1600ff/sillvva-search-1.0.1.tgz","_integrity":"sha512-plcnamwT5maUvoH7D+sB5fEskiQ/thVWCMFoKblGeY48/WK+fiRgFASdO8+a9x9hDWDMT9P9KiMCzWfV0xq1cg==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"@sillvva/utils":"^0.5.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_1.0.1_1751635418160_0.804554883528928","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@sillvva/search","version":"1.0.2","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"license":"MIT","_id":"@sillvva/search@1.0.2","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"homepage":"https://github.com/sillvva/sillvva-search#readme","bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"dist":{"shasum":"cbff203f5a25108e02330aca864eda2a4b380870","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-1.0.2.tgz","fileCount":21,"integrity":"sha512-2L7KtaNT2HZSVdKNhnA9zI47fJyxb7ZfPtguS4SA24H+s3lIrVt/4HCiz2JT6Wf+TDybdoLsTlkaylwlbssz5Q==","signatures":[{"sig":"MEYCIQDfyIaWMgGf1wueQQ6IDmK6SO1JWiSxE1+sMWqtbGoyJgIhAPJ7qdafwR8+/BOr2fDZmRb1SQ0LxEEOfr7hq5u0HkL/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":414925},"_from":"file:sillvva-search-1.0.2.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"scripts":{"dev":"tsup --watch","link":"pnpm build && pnpm link","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sillvva","actor":{"name":"sillvva","type":"user","email":"matt.dekok@gmail.com"},"email":"matt.dekok@gmail.com"},"_resolved":"/tmp/d72d4097072fc874e99d0a0eb798211e/sillvva-search-1.0.2.tgz","_integrity":"sha512-2L7KtaNT2HZSVdKNhnA9zI47fJyxb7ZfPtguS4SA24H+s3lIrVt/4HCiz2JT6Wf+TDybdoLsTlkaylwlbssz5Q==","repository":{"url":"git+https://github.com/sillvva/sillvva-search.git","type":"git","directory":"."},"_npmVersion":"10.8.2","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@sillvva/utils":"^0.5.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","tsup":"^8.5.0","ts-jest":"^29.4.0","typescript":"^5.8.3","@types/jest":"^30.0.0"},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.1"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/search_1.0.2_1752085834792_0.30395483883949836","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@sillvva/search","version":"1.0.3","description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","license":"MIT","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"author":{"name":"Matt DeKok"},"repository":{"type":"git","url":"git+https://github.com/sillvva/sillvva-search.git","directory":"."},"bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"homepage":"https://github.com/sillvva/sillvva-search#readme","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./json":{"types":"./dist/json.d.ts","default":"./dist/json.js"},"./drizzle":{"types":"./dist/drizzle.d.ts","default":"./dist/drizzle.js"}},"peerDependencies":{"drizzle-orm":">=1.0.0-beta.22"},"peerDependenciesMeta":{"drizzle-orm":{"optional":true}},"devDependencies":{"@types/jest":"^30.0.0","jest":"^30.0.4","ts-jest":"^29.4.0","tsup":"^8.5.0","typescript":"^5.8.3"},"dependencies":{"@sillvva/utils":"^0.5.5"},"scripts":{"build":"tsup","dev":"tsup --watch","link":"pnpm build && pnpm link","clean":"rm -rf dist","typecheck":"tsc --noEmit","test":"jest"},"_id":"@sillvva/search@1.0.3","_integrity":"sha512-WFLrnIjmSFpiE6P8jdR7FjVO46hpQNWrRYdmE5DSqLa/iLk526sR3YlSWmWH/h5tQ9Cdeo6VF36I3Mv5GtDLfw==","_resolved":"/private/var/folders/ds/qlp6637n0gv0v_stxls01ddm0000gn/T/e077699ac5ce6601c21a68055877c0b8/sillvva-search-1.0.3.tgz","_from":"file:sillvva-search-1.0.3.tgz","_nodeVersion":"24.11.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-WFLrnIjmSFpiE6P8jdR7FjVO46hpQNWrRYdmE5DSqLa/iLk526sR3YlSWmWH/h5tQ9Cdeo6VF36I3Mv5GtDLfw==","shasum":"492599f50d587035048c8470c461af3396e75998","tarball":"https://registry.npmjs.org/@sillvva/search/-/search-1.0.3.tgz","fileCount":21,"unpackedSize":417078,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC9na3O+Wk63jceWMLhQjSsoK63HrhimepvC2UQlvxyowIhAL3Lf7zF29VLU1mnsMf1M/vK2ZMmzWCvApN+6KUJAgks"}]},"_npmUser":{"name":"sillvva","email":"matt.dekok@gmail.com"},"directories":{},"maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/search_1.0.3_1783789042962_0.6433611802091779"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-26T17:46:09.525Z","modified":"2026-07-11T16:57:23.201Z","0.2.0":"2025-06-26T17:36:25.586Z","0.2.1":"2025-06-26T17:46:09.834Z","0.2.2":"2025-06-26T17:55:41.683Z","0.2.3":"2025-06-26T19:19:33.011Z","0.3.0":"2025-06-27T13:53:57.412Z","0.3.1":"2025-06-27T16:00:20.495Z","0.3.2":"2025-06-27T16:21:17.000Z","0.4.2":"2025-06-28T01:52:07.249Z","0.4.3":"2025-06-28T03:36:49.727Z","0.4.4":"2025-06-28T18:31:22.964Z","0.4.5":"2025-06-29T14:52:26.656Z","0.4.6":"2025-06-29T15:01:21.244Z","0.5.2":"2025-06-29T15:11:59.470Z","0.5.3":"2025-06-29T15:53:02.664Z","0.5.4":"2025-06-29T18:59:28.269Z","0.5.5":"2025-06-30T14:58:09.687Z","0.5.6":"2025-07-01T15:39:21.554Z","0.6.0":"2025-07-02T13:49:31.494Z","0.6.1":"2025-07-02T18:31:15.805Z","0.6.2":"2025-07-03T21:30:55.695Z","0.6.4":"2025-07-04T00:02:51.506Z","1.0.0":"2025-07-04T03:20:55.900Z","1.0.1":"2025-07-04T13:23:38.328Z","1.0.2":"2025-07-09T18:30:34.980Z","1.0.3":"2026-07-11T16:57:23.095Z"},"bugs":{"url":"https://github.com/sillvva/sillvva-search/issues"},"author":{"name":"Matt DeKok"},"license":"MIT","homepage":"https://github.com/sillvva/sillvva-search#readme","keywords":["search","syntax","query","filter","parser","analyzer","tokenization","ast","database","orm","typescript"],"repository":{"type":"git","url":"git+https://github.com/sillvva/sillvva-search.git","directory":"."},"description":"A parser and analyzer for advanced search queries, supporting tokenization, abstract syntax tree generation, and condition extraction.","maintainers":[{"name":"sillvva","email":"matt.dekok@gmail.com"}],"readme":"# Introduction\n\nUsers often need to specify more nuanced criteria than basic keyword searches, such as searching within specific fields, excluding certain terms, or applying logical operators (AND, OR, NOT). Parsing these types of queries can be tricky. Some websites, like [The Gatherer](https://gatherer.wizards.com/advanced-search) (Magic the Gathering's card database), choose to provide \"Advanced Search\" forms that provide multiple fields for the user to filter the search results. Others like [Scryfall](https://scryfall.com/docs/syntax) choose to provide a single field that interprets human-readable query strings with a custom syntax into search results.\n\nThe latter option is what `QueryParser` was designed to assist with. It addresses this need by providing a programmatic way to interpret human-readable query strings into a structured, easily consumable format. Included is a custom search syntax that features:\n\n> - **Word or phrase matching:** e.g., `ai \"deep learning\"`\n> - **Field-specific searches:** e.g., `author:\"John Doe\"`\n> - **Exclusions:** e.g., `-draft`\n> - **Logical operators and grouping:** e.g., `status:published (category:technology OR tag:AI)`\n> - **Numerical operators:** e.g., `age>=30` or `created<2025-01-01 12:00`\n> - **Range operators:** e.g., `age:20..30` or `created:2025-01..2025-06`\n> - **Regular expressions:** e.g., `author:/John (Doe|Smith)/`\n\nBy transforming these complex strings into a structured representation like an Abstract Syntax Tree, `QueryParser` simplifies the subsequent steps of building database queries, filtering data, or highlighting search results. This separation of concerns — parsing the query from executing the search — makes your search logic cleaner, more maintainable, and less prone to errors.\n\nWhile the package includes other classes, such as `JSONSearchParser` and `DrizzleSearchParser`, these are primarily illustrative examples demonstrating how you can integrate `QueryParser` into different search scenarios. The true value and primary focus of `@sillvva/search` is the `QueryParser` class.\n\n## Demo\n\nYou can see a demo of [`DrizzleSearchParser`](#the-drizzlesearchparser-class) on [CodeSandbox](https://codesandbox.io/p/devbox/d4d36t?file=%2Flib%2Fsearch%2Fcharacter.ts).\n\n# Table of Contents\n\n- [Installation](#installation)\n- [Classes](#classes)\n  - [The `QueryParser` Class](#the-queryparser-class)\n    - [Class Constructor](#class-constructor)\n    - [Syntax Reference](#syntax-reference)\n    - [Type Reference](#type-reference)\n      - [`Token`](#token)\n      - [`ASTNode`](#astnode)\n      - [`ASTCondition`](#astcondition)\n      - [`ParseError`, `ParseMetadata`, and `ParseResult`](#parseerror-parsemetadata-and-parseresult)\n  - [The `JSONSearchParser` Class](#the-jsonsearchparser-class)\n  - [The `DrizzleSearchParser` Class](#the-drizzlesearchparser-class)\n    - [`DrizzleParseResult`](#drizzleparseresult)\n\n# Installation\n\nInstall the package using your preferred package manager:\n\n```sh\nnpm install @sillvva/search\n\npnpm add @sillvva/search\n\nbun add @sillvva/search\n```\n\n# Classes\n\n## The `QueryParser` Class\n\nThis is a base class intended for creating a parser class for more specific use cases. For example, the AST can be parsed into a `where` filter object for a database ORM such as Drizzle. See the [`DrizzleSearchParser`](#the-drizzlesearchparser-class) and [`JSONSearchParser`](#the-jsonsearchparser-class) classes for examples.\n\n```ts\nimport { QueryParser } from \"@sillvva/search\";\n\nconst query = new QueryParser({ validKeys: [\"title\", \"author\"] });\nconst result = query.parse('author:Tolkien -title:\"The Hobbit\"');\n\nconsole.log(result.tokens);\nconsole.log(result.ast);\nconsole.log(result.astConditions);\n\n/**\n * Tokens\n * [\n *   { type: 'keyword', key: 'author', value: 'Tolkien', position: 0 },\n *   { type: 'negation', position: 15 },\n *   { type: 'keyword_phrase', key: 'title', value: 'The Hobbit', position: 16 }\n * ]\n */\n\n/**\n * Abstract Syntax Tree\n * {\n *   type: 'binary',\n *   operator: 'AND',\n *   left: { type: 'condition', token: 'keyword', key: 'author', value: 'Tolkien', position: 0 },\n *   right: { type: 'condition', token: 'keyword_phrase', key: 'title', value: 'The Hobbit', negated: true, position: 16 }\n * }\n */\n\n/**\n * AST Conditions\n * [\n *   { key: 'author', value: 'Tolkien', position: 0, isNegated: false, isRegex: false, isNumeric: false, isDate: false },\n *   { key: 'title', value: 'The Hobbit', position: 16, isNegated: true, isRegex: false, isNumeric: false, isDate: false }\n * ]\n */\n```\n\n### Class Constructor\n\nThe only parameter is an optional options object with two properties:\n\n- `validKeys` allows you to specify which keys are permitted and all other keys given in the query will be ignored. If not provided, all keys in the query will be passed to the parser function.\n- `defaultKey` allows you to define a default key for \"word\", \"phrase\", and \"regex\" tokens as defined in the [syntax reference](#syntax-reference). If not provided, the key for the `ConditionNode` will be `undefined`.\n\n### Syntax Reference\n\n| Syntax                                       | Description                                                                                                                                                                                                                             |\n| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `word`                                       | A single word will be parsed as a \"word\" token with no key. A `defaultKey` can be provided in the class options parameter.                                                                                                              |\n| `key:word`                                   | A keyword includes a specific key to associate with the word or phrase. It will be parsed as a \"keyword\" token.                                                                                                                         |\n| `\"a phrase\"`                                 | This syntax will be parsed as a \"phrase\" token. It allows you to join multiple words together into one token.                                                                                                                           |\n| `key:\"a phrase\"`                             | This syntax will be parsed as a \"keyword_phrase\" token. It combines the properties of the \"keyword\" and \"phrase\" tokens.                                                                                                                |\n| `/^regex$/`                                  | This syntax will be parsed as a \"regex\" token. The regular expression between the `/` will be provided as a string and can be converted to a `RegExp` constructor in JS or passed to a SQL statement using supported syntax.            |\n| `key:/^regex$/`                              | This syntax combines the properties of the \"keyword\" syntax and the \"regex\" syntax.                                                                                                                                                     |\n| `key=10`<br>`key>=2024-01-01 00:00`          | When using numeric operators for numbers or dates, the token will become a \"keyword_numeric\" or \"keyword_date\" token with the operator provided. See below<sup>1</sup> for supported date formats.                                      |\n| `key:10..20`<br>`key:2024-01-01..2024-01-15` | Range queries allow you to specify a range of values. For ranges, use `key:start..end`. The result will be two \"keyword_numeric\" or \"keyword_date\" tokens. See below<sup>1</sup> for supported date formats.                            |\n| `AND` `&`<br>`OR` `\\|`                       | Use `AND`/`&` to require both conditions, `OR`/`\\|` for either condition. Adjacent terms default to `AND`.                                                                                                                              |\n| `foo (bar or baz)`                           | Tokens can be grouped together using parentheses. Groups can also be nested.                                                                                                                                                            |\n| `-`<br>`!`                                   | The negator character can be used to negate any \"word\", \"keyword\", or \"phrase\" token. Example: `-word -\"phrase\"` or `!word !\"phrase\"`<br><br>It can also be used to negate a group. Example: `-(word1 OR word2)` or `!(word1 \\| word2)` |\n\n<sup>1</sup> The following [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formats are supported:\n\n- ISO 8601 UTC - `YYYY-MM-DD[T| ]HH:mm(:ss(.sss))(Z)` - Seconds, milliseconds, and time zone are optional\n- ISO 8601 with offset - `YYYY-MM-DD[T| ]HH:mm(:ss(.sss))([+|-]HH:mm)` - Seconds, milliseconds, and time zone are optional\n- Full date - `YYYY-MM-DD`\n- Month - `YYYY-MM`\n- Year - `YYYY`\n\n### Type Reference\n\n#### `Token`\n\nThe tokens represent the various syntax components detailed above. The protected `parse` method of the [`QueryParser`](#the-queryparser-class), converts the search query string into tokens and then into an `ASTNode` object and an array of `ASTCondition` objects.\n\n```ts\nexport type LogicalOperator = \"AND\" | \"OR\";\nexport type NumericOperator = \"=\" | \">\" | \"<\" | \">=\" | \"<=\";\n\nexport type Token =\n\t| { type: \"keyword\"; key: string; value: string; position: number }\n\t| { type: \"keyword_phrase\"; key: string; value: string; position: number }\n\t| { type: \"keyword_regex\"; key: string; value: string; position: number }\n\t| { type: \"keyword_numeric\"; key: string; operator: NumericOperator; value: number; position: number }\n\t| { type: \"keyword_date\"; key: string; operator: NumericOperator; value: Date; position: number }\n\t| { type: \"word\"; value: string; position: number }\n\t| { type: \"phrase\"; value: string; position: number }\n\t| { type: \"regex\"; value: string; position: number }\n\t| { type: \"operator\"; value: LogicalOperator; position: number }\n\t| { type: \"open_paren\"; negated?: boolean; position: number }\n\t| { type: \"close_paren\"; position: number }\n\t| { type: \"negation\"; position: number };\n```\n\n#### `ASTNode`\n\nThe Abstract Syntax Tree is represented by the `ASTNode` type, which is a type that recursively references itself for nested conditions. The `BinaryNode` represents a logical operation (AND/OR) between two nodes. The `ConditionNode` represents a single search condition.\n\n```ts\nexport type ASTNode = BinaryNode | ConditionNode;\n\ninterface BinaryNode {\n\ttype: \"binary\";\n\toperator: LogicalOperator;\n\tleft: ASTNode;\n\tright: ASTNode;\n\tnegated?: boolean;\n}\n\ninterface ConditionNode {\n\ttype: \"condition\";\n\ttoken: ConditionToken;\n\tkey?: string;\n\tvalue: string | number | Date;\n\tposition: number;\n\tnegated?: boolean;\n\toperator?: NumericOperator;\n}\n```\n\n#### `ASTCondition`\n\nThe `ASTCondition` type is a flattened object representing condition nodes from the Abstract Syntax Tree. In the [DrizzleSearchParser](#the-drizzlesearchparser-class), the parser function you provide uses this type as its only parameter for converting AST nodes into Drizzle-compatible filter objects.\n\n```ts\nexport interface ASTCondition {\n\t/** The key for the condition, if any (e.g., 'author'). */\n\tkey?: string;\n\t/** The value for the condition (e.g., 'Tolkien'). */\n\tvalue: string | number | Date;\n\t/** The position of the condition in the query string. */\n\tposition: number;\n\t/** Whether the condition is negated. */\n\tisNegated: boolean;\n\t/** Whether the value is a regex pattern. */\n\tisRegex: boolean;\n\t/** Whether the condition is numeric. */\n\tisNumeric: boolean;\n\t/** Whether the condition is a date. */\n\tisDate: boolean;\n\t/** The numeric operator, if applicable. */\n\toperator?: NumericOperator;\n}\n```\n\n#### `ParseError`, `ParseMetadata`, and `ParseResult`\n\nThe protected `parse` method returns a `ParseResult` object, which contains the tokens, abstract syntax tree, flattened conditions array, and query metadata. The metadata includes any syntax or invalid key errors from the query.\n\n```ts\nexport interface ParseError {\n\ttype: \"syntax\" | \"invalid_key\";\n\tmessage: string;\n\tposition: number;\n\tkey?: string;\n\tvalue?: string;\n}\n\nexport interface ParseMetadata {\n\toriginalQuery: string;\n\tparseTime: number;\n\thasErrors: boolean;\n\terrors: ParseError[];\n}\n\nexport interface ParseResult {\n\ttokens: Token[];\n\tast: ASTNode | null;\n\tastConditions: ASTCondition[];\n\tmetadata: ParseMetadata;\n}\n```\n\n## The `JSONSearchParser` Class\n\n`JSONSearchParser` is a class that extends the [`QueryParser`](#the-queryparser-class) class and provides a filter method that filters and sosrts an array of JSON data using a search query.\n\n```ts\nimport { JSONSearchParser } from \"@sillvva/search/json\";\n\ninterface Book {\n\ttitle: string;\n\tauthor: string;\n}\n\nconst books: Book[] = [\n\t{ title: \"The Hobbit\", author: \"Tolkien\" },\n\t{ title: \"The Lord of the Rings\", author: \"Tolkien\" },\n\t{ title: \"1984\", author: \"Orwell\" }\n];\n\nconst parser = new JSONSearchParser(books, { validKeys: [\"title\", \"author\"], defaultKey: \"title\" });\nconst result = parser.filter(\"author:tolkien -hobbit\");\n// result: [{ title: \"The Lord of the Rings\", author: \"Tolkien\" }]\n\nconst result = parser.filter(\"asc:author asc:title\");\n// result: [\n//   { title: \"1984\", author: \"Orwell\" },\n//   { title: \"The Hobbit\", author: \"Tolkien\" },\n//   { title: \"The Lord of the Rings\", author: \"Tolkien\" }\n// ]\n```\n\n## The `DrizzleSearchParser` Class\n\n`DrizzleSearchParser` is a class that extends the [`QueryParser`](#the-queryparser-class) class and provides a parseDrizzle method that parses a search query into a Drizzle-compatible filter object for the [v2 relational query builder](https://rqbv2.drizzle-orm-fe.pages.dev/docs/rqb-v2#select-filters). You can see a demo of this on [CodeSandbox](https://codesandbox.io/p/devbox/d4d36t?file=%2Flib%2Fsearch%2Fcharacter.ts).\n\nThe class requires two type parameters:\n\n- The relations from the `defineRelations` function in Drizzle's RQB v2.\n- The table name as a string constant type\n\nThe constructor takes an options object with four properties:\n\n- Required: `filterFn` parses individual `ASTCondition` objects into Drizzle-compatible filter objects. By providing relations to the class, the return statement will provide autocomplete as if you were building a `findFirst` or `findMany` where object directly. Returning `undefined` will remove the condition from the final where object.\n- Optional: `orderFn` parses [`SortCondition`](#drizzleparseresult) objects into Drizzle-compatible `orderBy` objects and merges them together.\n- Optional: `validKeys` allows you to specify which keys are permitted and all other keys given in the query will be ignored. If not provided, all keys in the query will be passed to the parser function.\n- Optional: `defaultKey` allows you to define a default key for \"word\", \"phrase\", and \"regex\" tokens as defined in the [syntax reference](#syntax-reference). If not provided, the key for the `ConditionNode` will be `undefined`.\n\nThe class has three methods:\n\n- The `parseNumeric` and `parseDate` method parses \"keyword_numeric\" and \"keyword_date\" conditions and operator to the Drizzle-compatible equivalent.\n- The `parse` method returns the [`DrizzleParseResult`](#drizzleparseresult) object detailed below.\n\n```ts\nimport { DrizzleSearchParser } from \"@sillvva/search/drizzle\";\nimport { relations } from \"./schema\";\n\nconst validKeys = [\"name\", \"age\"] as const;\nconst defaultKey = \"name\" as const satisfies (typeof validKeys)[number];\n\n// Instantiate the parser\nconst parser = new DrizzleSearchParser<typeof relations, \"user\">({\n\tvalidKeys,\n\tdefaultKey,\n\tfilterFn: (cond) => {\n\t\tconst key = (cond.key?.toLowerCase() || defaultKey) as (typeof validKeys)[number];\n\t\tswitch(key) {\n\t\t\tcase \"name\":\n\t\t\t\treturn { name: { ilike: `%${cond.value}%` } };\n\n\t\t\tcase \"age\":\n\t\t\t\tconst op = parser.parseNumeric(cond);\n\t\t\t\treturn op && { [key]: op };\n\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t}\n\torderFn: (cond) => {\n\t\tconst key = (String(cond.value)?.toLowerCase() || defaultKey) as (typeof validKeys)[number];\n\t\tswitch(key) {\n\t\t\tcase \"name\":\n\t\t\tcase \"age\":\n\t\t\t\treturn { [key]: cond.key === \"asc\" : \"asc\" : \"desc\" };\n\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t}\n});\n\n// Parse a query string ✅\nconst { where, orderBy } = parser.parse(\"name:John age>=30 desc:age\");\n// where: { AND: [{ name: { ilike: \"%John%\" } }, { age: { gte: 30 } }] }\n// orderBy: { age: \"desc\" }\n\n// Invalid age ❌\nconst { where, orderBy } = parser.parse(\"name:John age:thirty\");\n// where: { AND: [{ name: { ilike: \"%John%\" } }] }\n// orderBy: undefined\n\n// Usage\nconst users = await db.query.user.findMany({ where, orderBy });\n```\n\n### `DrizzleParseResult`\n\nThe `DrizzleParseResult` interface result extends the [`ParseResult`](#parseerror-parsemetadata-and-parseresult) interface including the tokens, Abstract Syntax Tree (AST), and metadata. In addition to the `where` and `orderBy` objects, the `parse` method also returns the conditions used to construct those objects as well as any remaining conditions that were not included in either. The `excluded` conditions can be used for further filtering and sorting after the db results are fetched.\n\n```ts\nexport interface SortCondition {\n\tdir: \"asc\" | \"desc\";\n\tkey: string;\n}\n\nexport interface DrizzleParseResult<TFilter extends RelationsFilter<any, any>, TOrder extends RelationsOrder<any>>\n\textends Omit<ParseResult, \"astConditions\"> {\n\t/**\n\t * The Drizzle-compatible where object.\n\t */\n\twhere: TFilter | undefined;\n\t/**\n\t * The Drizzle-compatible orderBy object.\n\t */\n\torderBy: TOrder | undefined;\n\t/**\n\t * Conditions that were included and excluded from the Drizzle-compatible where and orderBy objects.\n\t */\n\tconditions: {\n\t\t/**\n\t\t * Conditions that were included in the Drizzle-compatible where object.\n\t\t */\n\t\tfiltered: ASTCondition[];\n\t\t/**\n\t\t * Conditions that were included in the Drizzle-compatible orderBy object.\n\t\t */\n\t\tsorted: SortCondition[];\n\t\t/**\n\t\t * Conditions that were excluded from the Drizzle-compatible where and orderBy objects.\n\t\t */\n\t\texcluded: ASTCondition[];\n\t};\n}\n```\n","readmeFilename":"README.md"}