{
  "name": "abstract-linked-lists",
  "version": "1.1.0",
  "description": "A TypeScript library that provides implementations of singly and doubly linked lists, designed to support both object-oriented and functional programming paradigms.",
  "keywords": [
    "abstract data structures",
    "abstract data types",
    "data structures",
    "doubly linked list",
    "linked list",
    "singly linked list"
  ],
  "author": "Yiannis Stergiou <hello@styiannis.dev>",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/styiannis/abstract-linked-lists.git"
  },
  "bugs": {
    "url": "https://github.com/styiannis/abstract-linked-lists/issues"
  },
  "source": "src/index.ts",
  "main": "dist/cjs/index.js",
  "module": "dist/es/index.js",
  "types": "dist/@types/index.d.ts",
  "files": [
    "CHANGELOG.md",
    "dist"
  ],
  "engines": {
    "node": ">=18.0.0",
    "npm": ">=8.0.0"
  },
  "commitlint": {
    "extends": [
      "@commitlint/config-conventional"
    ]
  },
  "scripts": {
    "build": "npx rimraf ./dist && rollup -c",
    "dev": "npx rimraf ./dist && rollup -c --watch",
    "check-types": "tsc --noEmit",
    "check-updates": "npx npm-check-updates",
    "ci": "npm run check-types && npm run lint && npm run build && npm run validate-exports",
    "clear": "npx rimraf ./build ./code_documentation ./coverage_report ./dist",
    "docs": "npx rimraf ./code_documentation && npx typedoc@latest --basePath ./ --entryPoints src/index.ts --entryPointStrategy Expand --readme none --includeVersion --out code_documentation --name 'Abstract Linked Lists'",
    "format": "npx prettier -w ./",
    "lint": "npx oxlint@latest src",
    "prepack": "npm i && npm run build",
    "reset": "npm run clear && npx rimraf ./node_modules ./package-lock.json ./yarn.lock ./pnpm-lock.yaml",
    "test": "jest",
    "test-coverage": "npx rimraf ./coverage_report && jest --coverage --coverageDirectory=coverage_report",
    "test-coverage-watch": "npm run test-coverage -- --watchAll",
    "test-watch": "jest --watchAll",
    "validate-exports": "node ./scripts/validate-exports.js"
  },
  "devDependencies": {
    "@rollup/plugin-node-resolve": "^16.0.3",
    "@rollup/plugin-typescript": "^12.3.0",
    "@tsconfig/node22": "^22.0.5",
    "@types/jest": "^30.0.0",
    "@types/node": "^24.10.2",
    "jest": "^30.2.0",
    "rollup": "^4.53.3",
    "rollup-plugin-dts": "^6.3.0",
    "ts-jest": "^29.4.6",
    "tslib": "^2.8.1",
    "typescript": "^5.9.3"
  },
  "exports": {
    ".": {
      "import": {
        "types": "./dist/@types/index.d.ts",
        "default": "./dist/es/index.js"
      },
      "require": {
        "types": "./dist/@types/index.d.ts",
        "default": "./dist/cjs/index.js"
      }
    },
    "./singly-linked-list": {
      "import": {
        "types": "./dist/@types/core/singly-linked-list/index.d.ts",
        "default": "./dist/es/core/singly-linked-list/index.js"
      },
      "require": {
        "types": "./dist/@types/core/singly-linked-list/index.d.ts",
        "default": "./dist/cjs/core/singly-linked-list/index.js"
      }
    },
    "./singly-linked-list/iterators": {
      "import": {
        "types": "./dist/@types/core/singly-linked-list/iterators.d.ts",
        "default": "./dist/es/core/singly-linked-list/iterators.js"
      },
      "require": {
        "types": "./dist/@types/core/singly-linked-list/iterators.d.ts",
        "default": "./dist/cjs/core/singly-linked-list/iterators.js"
      }
    },
    "./singly-linked-list/list": {
      "import": {
        "types": "./dist/@types/core/singly-linked-list/list.d.ts",
        "default": "./dist/es/core/singly-linked-list/list.js"
      },
      "require": {
        "types": "./dist/@types/core/singly-linked-list/list.d.ts",
        "default": "./dist/cjs/core/singly-linked-list/list.js"
      }
    },
    "./singly-linked-list/node": {
      "import": {
        "types": "./dist/@types/core/singly-linked-list/node.d.ts",
        "default": "./dist/es/core/singly-linked-list/node.js"
      },
      "require": {
        "types": "./dist/@types/core/singly-linked-list/node.d.ts",
        "default": "./dist/cjs/core/singly-linked-list/node.js"
      }
    },
    "./doubly-linked-list": {
      "import": {
        "types": "./dist/@types/core/doubly-linked-list/index.d.ts",
        "default": "./dist/es/core/doubly-linked-list/index.js"
      },
      "require": {
        "types": "./dist/@types/core/doubly-linked-list/index.d.ts",
        "default": "./dist/cjs/core/doubly-linked-list/index.js"
      }
    },
    "./doubly-linked-list/iterators": {
      "import": {
        "types": "./dist/@types/core/doubly-linked-list/iterators.d.ts",
        "default": "./dist/es/core/doubly-linked-list/iterators.js"
      },
      "require": {
        "types": "./dist/@types/core/doubly-linked-list/iterators.d.ts",
        "default": "./dist/cjs/core/doubly-linked-list/iterators.js"
      }
    },
    "./doubly-linked-list/list": {
      "import": {
        "types": "./dist/@types/core/doubly-linked-list/list.d.ts",
        "default": "./dist/es/core/doubly-linked-list/list.js"
      },
      "require": {
        "types": "./dist/@types/core/doubly-linked-list/list.d.ts",
        "default": "./dist/cjs/core/doubly-linked-list/list.js"
      }
    },
    "./doubly-linked-list/node": {
      "import": {
        "types": "./dist/@types/core/doubly-linked-list/node.d.ts",
        "default": "./dist/es/core/doubly-linked-list/node.js"
      },
      "require": {
        "types": "./dist/@types/core/doubly-linked-list/node.d.ts",
        "default": "./dist/cjs/core/doubly-linked-list/node.js"
      }
    }
  }
}
