{
    "name": "n8n-nodes-duckduckgo-search",
    "version": "32.9.2",
    "description": "AI Agent-ready n8n community node for DuckDuckGo search. Search the web, images, news, and videos with no API key required and no outbound telemetry. Optionally fetch and extract the main text of result pages or any URL, and get DuckDuckGo Instant Answers. Provides robust error handling, fallback result paths for news and video, and clean output for downstream AI Agent use.",
    "keywords": [
        "n8n-community-node-package",
        "n8n",
        "n8n-nodes",
        "workflow-automation",
        "duckduckgo",
        "search-engine",
        "automation",
        "workflow",
        "web-search",
        "image-search",
        "news-search",
        "video-search",
        "privacy-focused",
        "search-results"
    ],
    "license": "MIT",
    "homepage": "https://github.com/samnodehi/n8n-nodes-duckduckgo#readme",
    "author": {
        "name": "Sam Nodehi",
        "email": "sam.noodehi@gmail.com"
    },
    "repository": {
        "type": "git",
        "url": "git+https://github.com/samnodehi/n8n-nodes-duckduckgo.git"
    },
    "bugs": {
        "url": "https://github.com/samnodehi/n8n-nodes-duckduckgo/issues"
    },
    "main": "dist/nodes/index.js",
    "scripts": {
        "build": "tsc && gulp build:icons",
        "build:prod": "rimraf dist && npm run build && npm run postbuild && npm run clean-build",
        "postbuild": "copyfiles -u 1 \"nodes/**/*.{svg,png}\" dist/",
        "clean-build": "node -e \"const fs=require('fs'); const path=require('path'); const glob=require('glob'); const files=glob.sync('dist/**/*.{tsbuildinfo,map}'); files.forEach(f => fs.existsSync(f) && fs.unlinkSync(f)); const toRemove=['dist/tests','dist/credentials'].concat(glob.sync('dist/**/__tests__',{onlyDirectories:true})); toRemove.forEach(d=>{if(fs.existsSync(d))fs.rmSync(d,{recursive:true});});\"",
        "verify-build": "node -e \"const fs=require('fs'); const path=require('path'); const assert=require('assert'); assert.ok(fs.existsSync(path.join(__dirname, 'dist/nodes/DuckDuckGo/DuckDuckGo.node.js')), 'Main node file missing'); assert.ok(fs.existsSync(path.join(__dirname, 'dist/nodes/DuckDuckGo/duckduckgo.svg')), 'Icon missing'); console.log('✅ Build verification successful')\"",
        "dev": "tsc --watch",
        "format": "prettier nodes --write",
        "lint": "eslint nodes package.json",
        "lintfix": "eslint nodes package.json --fix",
        "prepublishOnly": "npm run build:prod && npm run lint && npm run verify-build",
        "test": "jest",
        "test:coverage": "jest --coverage"
    },
    "files": [
        "dist"
    ],
    "n8n": {
        "n8nNodesApiVersion": 1,
        "credentials": [],
        "nodes": [
            "dist/nodes/DuckDuckGo/DuckDuckGo.node.js"
        ]
    },
    "devDependencies": {
        "@eslint/eslintrc": "^3.3.5",
        "@types/jest": "^29.5.14",
        "@typescript-eslint/parser": "^8.62.0",
        "babel-jest": "^29.7.0",
        "copyfiles": "^2.4.1",
        "eslint": "^9.39.4",
        "eslint-plugin-n8n-nodes-base": "^1.16.7",
        "glob": "^13.0.6",
        "globals": "^17.7.0",
        "gulp": "^5.0.1",
        "jest": "^29.7.0",
        "n8n-core": "^2.16.1",
        "n8n-workflow": "^2.8.0",
        "prettier": "^3.8.4",
        "rimraf": "^6.1.3",
        "ts-jest": "^29.4.11",
        "typescript": "^5.4.0"
    },
    "dependencies": {
        "@mozilla/readability": "^0.6.0",
        "axios": "^1.18.1",
        "duck-duck-scrape": "^2.2.7",
        "linkedom": "^0.18.0"
    },
    "engines": {
        "node": ">=18.0.0"
    },
    "publishConfig": {
        "access": "public"
    },
    "resolutions": {
        "@n8n/client-oauth2/axios": "^1.13.0"
    }
}
