{"_id":"@eleven-am/searxng-sdk","_rev":"4-db4e6d682b9fa05f6726fe977e643318","name":"@eleven-am/searxng-sdk","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.3":{"name":"@eleven-am/searxng-sdk","version":"0.0.3","author":{"name":"Roy OSSAI"},"license":"GPL-3.0","_id":"@eleven-am/searxng-sdk@0.0.3","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"7a7d93f04f2459e9ff55683ee877ceb1cbfde664","tarball":"https://registry.npmjs.org/@eleven-am/searxng-sdk/-/searxng-sdk-0.0.3.tgz","fileCount":12,"integrity":"sha512-zU73snxGLaAtzzzpEVqsRkNOZe0u4KUVoifJHfWXOx0eo4f6Y6zoZgZHwTZNtFbR4dzwO++8XsqDv0W90JH38g==","signatures":[{"sig":"MEUCIENmAu5vkgPSk/jGgBkf56ecafIdu/YD0O4Bcyg0MwPzAiEAiF8CVDBCBKJ4T7YzQQBVE8fH0X4oHvdUvj1R9RTXqWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94915},"jest":{"rootDir":"src","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"./index.js","types":"./index.d.ts","scripts":{"copy":"cp package.json dist && cp LICENSE dist","lint":"eslint --ext .ts src","push":"npm version patch && npm run copy && cd dist && npm publish && cd ..","test":"jest --coverage --verbose","build":"rimraf dist && tsc","lint:fix":"eslint --fix --ext .ts src","pipeline":"npm run build && npm run push"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"10.9.0","directories":{},"_nodeVersion":"20.14.0","dependencies":{"zod":"^3.24.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.21.0","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^3.5.3","supertest":"^7.0.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.13.9","tsconfig-paths":"^4.2.0","source-map-support":"^0.5.21","eslint-plugin-import":"^2.31.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","@typescript-eslint/parser":"^8.26.0","@stylistic/eslint-plugin-ts":"^4.2.0","eslint-import-resolver-node":"^0.3.9","eslint-plugin-file-progress":"^3.0.1","@typescript-eslint/eslint-plugin":"^8.26.0"},"_npmOperationalInternal":{"tmp":"tmp/searxng-sdk_0.0.3_1742329324627_0.09453991278736362","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@eleven-am/searxng-sdk","version":"0.0.4","author":{"name":"Roy OSSAI"},"license":"GPL-3.0","_id":"@eleven-am/searxng-sdk@0.0.4","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"37b65596cbf6ab1d0b42c719b7b9626899edf9b2","tarball":"https://registry.npmjs.org/@eleven-am/searxng-sdk/-/searxng-sdk-0.0.4.tgz","fileCount":13,"integrity":"sha512-1TScycLcVEEh9XU2wB7HAVKartCJD/Y7BMniWj5RgE96+bbVedVhymthmUsqD20SPnS6Qe6VWT1yfM9CcJMzbQ==","signatures":[{"sig":"MEQCIG9+lg8hpdOlw5IeF+QR+dDh5TfmZGN7jKDQN3jDtLVKAiALEaVx7XwqkS+z1MDIimHIcxo4qPhP5jPfiHJ67UTxvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101059},"jest":{"rootDir":"src","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"./index.js","types":"./index.d.ts","scripts":{"copy":"cp package.json dist && cp LICENSE dist && cp README.md dist","lint":"eslint --ext .ts src","push":"npm version patch && npm run copy && cd dist && npm publish && cd ..","test":"jest --coverage --verbose","build":"rimraf dist && tsc","lint:fix":"eslint --fix --ext .ts src","pipeline":"npm run build && npm run push"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"10.9.0","description":"A strongly-typed TypeScript client for interacting with SearXNG, a privacy-focused metasearch engine.","directories":{},"_nodeVersion":"20.14.0","dependencies":{"zod":"^3.24.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.21.0","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^3.5.3","supertest":"^7.0.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.13.9","tsconfig-paths":"^4.2.0","source-map-support":"^0.5.21","eslint-plugin-import":"^2.31.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","@typescript-eslint/parser":"^8.26.0","@stylistic/eslint-plugin-ts":"^4.2.0","eslint-import-resolver-node":"^0.3.9","eslint-plugin-file-progress":"^3.0.1","@typescript-eslint/eslint-plugin":"^8.26.0"},"_npmOperationalInternal":{"tmp":"tmp/searxng-sdk_0.0.4_1742329405607_0.9235021182246661","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@eleven-am/searxng-sdk","version":"0.0.5","author":{"name":"Roy OSSAI"},"license":"GPL-3.0","_id":"@eleven-am/searxng-sdk@0.0.5","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"9d9833f4abb5f627832c83da7ca328180e36a25c","tarball":"https://registry.npmjs.org/@eleven-am/searxng-sdk/-/searxng-sdk-0.0.5.tgz","fileCount":13,"integrity":"sha512-JAhwDAVlN9rXLOYl0Mph7Qw9mRlMj+titN/HZtXKyGNGcNLrVSQOot094jap31lMTNBR8CydoufAPktGAY2N4A==","signatures":[{"sig":"MEYCIQDM7R5fMIitdTI6or5lGiVedro8sVl116h34/MqUUZwXwIhAIZ47qPsalrRSmvVJtueDX1lbDTaRTP6CV4ytyAn9BA7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101469},"jest":{"rootDir":"src","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"./index.js","types":"./index.d.ts","scripts":{"copy":"cp package.json dist && cp LICENSE dist && cp README.md dist","lint":"eslint --ext .ts src","push":"npm version patch && npm run copy && cd dist && npm publish && cd ..","test":"jest --coverage --verbose","build":"rimraf dist && tsc","lint:fix":"eslint --fix --ext .ts src","pipeline":"npm run build && npm run push"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"10.9.0","description":"A strongly-typed TypeScript client for interacting with SearXNG, a privacy-focused metasearch engine.","directories":{},"_nodeVersion":"20.14.0","dependencies":{"zod":"^3.24.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.21.0","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^3.5.3","supertest":"^7.0.0","ts-loader":"^9.5.2","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.13.9","tsconfig-paths":"^4.2.0","source-map-support":"^0.5.21","eslint-plugin-import":"^2.31.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","@typescript-eslint/parser":"^8.26.0","@stylistic/eslint-plugin-ts":"^4.2.0","eslint-import-resolver-node":"^0.3.9","eslint-plugin-file-progress":"^3.0.1","@typescript-eslint/eslint-plugin":"^8.26.0"},"_npmOperationalInternal":{"tmp":"tmp/searxng-sdk_0.0.5_1742329488035_0.1184047193677924","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@eleven-am/searxng-sdk","version":"0.0.6","publishConfig":{"access":"public"},"author":{"name":"Roy OSSAI"},"main":"./index.js","types":"./index.d.ts","license":"GPL-3.0","scripts":{"test":"jest --coverage --verbose","build":"rimraf dist && tsc","lint":"eslint --ext .ts src","lint:fix":"eslint --fix --ext .ts src","copy":"cp package.json dist && cp LICENSE dist && cp README.md dist","push":"npm version patch && npm run copy && cd dist && npm publish && cd ..","pipeline":"npm run build && npm run push"},"dependencies":{"zod":"^3.24.2"},"devDependencies":{"@stylistic/eslint-plugin-ts":"^4.2.0","@types/jest":"^29.5.14","@types/node":"^22.13.9","@typescript-eslint/eslint-plugin":"^8.26.0","@typescript-eslint/parser":"^8.26.0","eslint":"^9.21.0","eslint-config-prettier":"^10.1.1","eslint-import-resolver-node":"^0.3.9","eslint-plugin-file-progress":"^3.0.1","eslint-plugin-import":"^2.31.0","eslint-plugin-prettier":"^5.2.3","jest":"^29.7.0","prettier":"^3.5.3","source-map-support":"^0.5.21","supertest":"^7.0.0","ts-jest":"^29.2.6","ts-loader":"^9.5.2","ts-node":"^10.9.2","tsconfig-paths":"^4.2.0","typescript":"^5.8.2"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"src","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"_id":"@eleven-am/searxng-sdk@0.0.6","description":"A strongly-typed TypeScript client for interacting with SearXNG, a privacy-focused metasearch engine.","_nodeVersion":"20.14.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-YX7SNUQ4JMRKYNvTO18+GyQlW6VtKpJ3+7ZCIOLXNiXXTRapIjnU6qTgZq7A4q3a6qWROI6qC1HejjR70XDgOA==","shasum":"43d3872661e1f7fc6508da7d227646e55895cccf","tarball":"https://registry.npmjs.org/@eleven-am/searxng-sdk/-/searxng-sdk-0.0.6.tgz","fileCount":13,"unpackedSize":104421,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDD8YlbyYOMXFEy5J8cepEfV5uZJuSl+oVIQzKMY1z+YAIgHUswm0PolAOpU6whz9X1P9voRYoghZgjK2xnokTg48M="}]},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"directories":{},"maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/searxng-sdk_0.0.6_1742478173345_0.5518573015140322"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-18T20:22:04.439Z","modified":"2025-03-20T13:42:53.685Z","0.0.3":"2025-03-18T20:22:04.809Z","0.0.4":"2025-03-18T20:23:25.817Z","0.0.5":"2025-03-18T20:24:48.231Z","0.0.6":"2025-03-20T13:42:53.514Z"},"author":{"name":"Roy OSSAI"},"license":"GPL-3.0","description":"A strongly-typed TypeScript client for interacting with SearXNG, a privacy-focused metasearch engine.","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"readme":"# SearXNG TypeScript SDK\n\nA strongly-typed TypeScript client for interacting with SearXNG, a privacy-focused metasearch engine.\n\n## Features\n\n- **Fully TypeScript**: Type-safe API with proper TypeScript definitions\n- **Zod Validation**: Runtime validation of API responses\n- **Fluent Interface**: Chainable methods for configuring search requests\n- **Complete API Coverage**: Support for all SearXNG search parameters\n- **Modern**: Uses native fetch API and modern ES features\n- **Flexible**: Works in Node.js, browsers and other JavaScript runtimes\n\n## Installation\n\n```bash\nnpm install @eleven-am/searxng-sdk\n```\n\n## Quick Start\n\n```typescript\nimport { SearXNGClient } from '@eleven-am/searxng-sdk';\n\n// Initialize with your SearXNG instance URL\nconst searx = new SearXNGClient('https://your-searxng-instance.org');\n\n// Perform a simple search\nasync function searchExample() {\n  try {\n    const results = await searx.search('privacy tools');\n    console.log(`Found ${results.results.length} results`);\n    \n    // Results are typed!\n    results.results.forEach(result => {\n      console.log(`${result.title}: ${result.url}`);\n    });\n  } catch (error) {\n    console.error('Search failed:', error);\n  }\n}\n\nsearchExample();\n```\n\n## Advanced Usage\n\n### Configuring Searches\n\n```typescript\nimport { SearXNGClient, Format, TimeRange, SafeSearchLevel } from '@eleven-am/searxng-sdk';\n\nconst searx = new SearXNGClient('https://your-searxng-instance.org');\n\nasync function advancedSearch() {\n  const results = await searx\n    .setLanguage('en')\n    .setSafeSearch(SafeSearchLevel.MODERATE)\n    .setTimeRange(TimeRange.MONTH)\n    .setCategories(['general', 'science'])\n    .setEngines(['google', 'bing', 'duckduckgo'])\n    .setPage(1)\n    .setFormat(Format.JSON)\n    .search('climate change research');\n    \n  // Process results\n  console.log(`Found ${results.results.length} results`);\n}\n```\n\n### Custom Headers\n\n```typescript\nsearx.setHeaders({\n  'User-Agent': 'My Custom App/1.0',\n  'Authorization': 'Bearer token123'\n});\n```\n\n### Working with Plugins\n\n```typescript\n// Enable specific plugins\nsearx.enablePlugins(['Hash_plugin', 'Tracker_URL_remover']);\n\n// Disable specific plugins\nsearx.disablePlugins(['Vim-like_hotkeys']);\n```\n\n## API Reference\n\n### Method Parameters\n\n| Method              | Parameters                           | Description                                       |\n|---------------------|--------------------------------------|---------------------------------------------------|\n| `constructor`       | `baseUrl: string`                    | Base URL of the SearXNG instance                  |\n|                     | `defaultOptions?: SearXNGOptions`    | Default options for all requests                  |\n| `search`            | `query: string`                      | The search query                                  |\n|                     | `options?: SearXNGOptions`           | Additional options for this specific search       |\n| `setHeaders`        | `headers: Record<string, string>`    | Custom HTTP headers for requests                  |\n| `setLanguage`       | `language: string`                   | Language code (e.g., 'en', 'fr', 'de')           |\n| `setSafeSearch`     | `level: SafeSearchLevel`             | Safe search level (0=off, 1=moderate, 2=strict)  |\n| `setTimeRange`      | `timeRange: TimeRange`               | Time range ('day', 'month', 'year')              |\n| `setPage`           | `pageNumber: number`                 | Page number (starts at 1)                         |\n| `setCategories`     | `categories: string \\| string[]`     | Category or list of categories                    |\n| `setEngines`        | `engines: string \\| string[]`        | Engine name or list of engine names              |\n| `enablePlugins`     | `plugins: string \\| string[]`        | Plugin name or list of plugin names              |\n| `disablePlugins`    | `plugins: string \\| string[]`        | Plugin name or list of plugin names              |\n| `setFormat`         | `format: Format`                     | Output format ('json', 'csv', 'rss')             |\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nGPL-3.0\n","readmeFilename":"README.md"}