{
  "name": "jtcsv",
  "version": "3.3.1",
  "description": "JSON ↔ CSV toolkit for Node.js and browser. ~18 KB gz core. Streaming, NDJSON/TSV, worker threads, TypeScript-native. Zero runtime deps in core.",
  "main": "dist/index.cjs.js",
  "module": "dist/index.esm.js",
  "browser": "dist/jtcsv.umd.js",
  "types": "index.d.ts",
  "bin": {
    "jtcsv": "dist/bin/jtcsv.js"
  },
  "exports": {
    ".": {
      "types": "./index.d.ts",
      "require": "./dist/index.cjs.js",
      "import": "./dist/index.esm.js",
      "browser": "./dist/jtcsv.umd.js",
      "default": "./dist/index.cjs.js"
    },
    "./csv": {
      "types": "./dist/types/src/entry-csv.d.ts",
      "require": "./dist/csv.cjs.js",
      "import": "./dist/csv.esm.js",
      "default": "./dist/csv.cjs.js"
    },
    "./json": {
      "types": "./dist/types/src/entry-json.d.ts",
      "require": "./dist/json.cjs.js",
      "import": "./dist/json.esm.js",
      "default": "./dist/json.cjs.js"
    },
    "./streams": {
      "types": "./dist/types/src/entry-streams.d.ts",
      "require": "./dist/streams.cjs.js",
      "import": "./dist/streams.esm.js",
      "default": "./dist/streams.cjs.js"
    },
    "./ndjson": {
      "types": "./dist/types/src/entry-ndjson.d.ts",
      "require": "./dist/ndjson.cjs.js",
      "import": "./dist/ndjson.esm.js",
      "default": "./dist/ndjson.cjs.js"
    },
    "./tsv": {
      "types": "./dist/types/src/entry-tsv.d.ts",
      "require": "./dist/tsv.cjs.js",
      "import": "./dist/tsv.esm.js",
      "default": "./dist/tsv.cjs.js"
    },
    "./errors": {
      "types": "./dist/types/src/entry-errors.d.ts",
      "require": "./dist/errors.cjs.js",
      "import": "./dist/errors.esm.js",
      "default": "./dist/errors.cjs.js"
    },
    "./browser": {
      "types": "./browser.d.ts",
      "require": "./dist/jtcsv.cjs.js",
      "import": "./dist/jtcsv.esm.js",
      "browser": "./dist/jtcsv.umd.js",
      "default": "./dist/jtcsv.esm.js"
    },
    "./plugins": {
      "types": "./plugins.d.ts",
      "require": "./dist/plugins.cjs.js",
      "import": "./dist/plugins.esm.js",
      "default": "./dist/plugins.cjs.js"
    },
    "./cli": {
      "require": "./dist/bin/jtcsv.js",
      "import": "./dist/bin/jtcsv.js",
      "default": "./dist/bin/jtcsv.js"
    },
    "./schema": {
      "types": "./schema.d.ts",
      "require": "./dist/schema.cjs.js",
      "import": "./dist/schema.esm.js",
      "default": "./dist/schema.cjs.js"
    },
    "./package.json": "./package.json"
  },
  "scripts": {
    "test": "jest",
    "test:unit": "jest --testPathIgnorePatterns=\"(__tests__/benchmark-suite\\.test|__tests__/load-tests\\.test|__tests__/soak-memory\\.test|__tests__/security-fuzzing\\.test|__tests__/memory-profiling\\.test)\"",
    "test:ci": "jest --testPathIgnorePatterns=\"(__tests__/benchmark-suite\\.test|__tests__/load-tests\\.test|__tests__/soak-memory\\.test|__tests__/memory-profiling\\.test)\"",
    "test:coverage": "node scripts/run-coverage.js --target=ts --scope=full --strict=0",
    "coverage:badge": "node scripts/coverage-badge.js",
    "test:coverage:strict": "cross-env JTCSV_COVERAGE_STRICT=1 JTCSV_FUZZ_SEED=4242 node scripts/run-coverage.js --target=ts --scope=full --strict=1",
    "test:coverage:entry": "node scripts/run-coverage.js --target=ts --scope=entry --strict=1",
    "test:coverage:ts": "node scripts/run-coverage.js --target=ts --scope=full --strict=0",
    "test:watch": "jest --watch",
    "test:browser": "jest --testEnvironment=jsdom",
    "test:plugins": "jest __tests__/plugin-system.test",
    "test:fastpath": "jest __tests__/fast-path-engine.test",
    "test:ndjson": "jest __tests__/ndjson-parser.test",
    "test:performance": "jest --testNamePattern=\"Производительность|производительность\"",
    "test:benchmark": "jest __tests__/benchmark-suite.test --testTimeout=60000",
    "test:load": "jest __tests__/load-tests.test --testTimeout=300000",
    "test:load:large": "cross-env LOAD_TEST_SIZE=large jest __tests__/load-tests.test --testTimeout=300000",
    "test:security": "jest __tests__/security-fuzzing.test --testTimeout=60000",
    "test:memory": "node --expose-gc node_modules/jest/bin/jest __tests__/memory-profiling.test --testTimeout=120000",
    "test:express": "cd plugins/express-middleware && npm test",
    "test:fastify": "cd plugins/fastify-plugin && npm test",
    "test:nextjs": "cd plugins/nextjs-api && npm test",
    "lint": "eslint index.ts json-to-csv.ts csv-to-json.ts errors.ts stream-json-to-csv.ts stream-csv-to-json.ts json-save.ts",
    "lint:all": "eslint .",
    "lint:plugins": "eslint plugins/",
    "security-check": "npm audit",
    "sync:cli-version": "node scripts/sync-cli-version.js",
    "verify:changeset-ignore": "node scripts/verify-changeset-ignore.js",
    "audit:regex": "node scripts/audit-regex.js",
    "prerelease:check": "node scripts/prerelease-check.js",
    "verify:release": "node scripts/verify-release.js",
    "prepublishOnly": "npm run sync:cli-version && npm run verify:changeset-ignore && npm run audit:regex && npm run prerelease:check && npm run test:unit && npm run tsc:check && npm run tsc:check-strict:count && npm run build && npm run size && eslint index.ts json-to-csv.ts csv-to-json.ts errors.ts stream-json-to-csv.ts stream-csv-to-json.ts json-save.ts",
    "tui": "node packages/jtcsv-tui/bin/jtcsv-tui.js",
    "cli": "node dist/bin/jtcsv.js",
    "build": "npm run clean && npm run tsc:build && rollup -c rollup.config.mjs",
    "build:watch": "rollup -c rollup.config.mjs -w",
    "build:prod": "npm run clean && npm run tsc:build && cross-env NODE_ENV=production rollup -c rollup.config.mjs",
    "clean": "rimraf dist",
    "dev": "cross-env NODE_ENV=development rollup -c rollup.config.mjs -w",
    "verify:browser": "node scripts/verify-browser-build.js",
    "demo": "npm run build && node dist/run-demo.js",
    "demo:web": "cd demo && npm run dev",
    "demo:serve": "cd demo && npm run serve",
    "demo:plugins": "node examples/plugin-excel-exporter.js",
    "demo:express": "cd plugins/express-middleware && node example.js",
    "size": "node scripts/check-bundle-size.js",
    "size:legacy": "size-limit",
    "size:why": "size-limit --why",
    "benchmark": "npm run build && node dist/benchmark.js",
    "benchmark:fastpath": "npm run build && node dist/benchmark.js --fastpath",
    "benchmark:vs": "npm run build && node --expose-gc scripts/bench-vs-competitors.js",
    "benchmark:vs:quick": "npm run build && cross-env BENCH_QUICK=1 node --expose-gc scripts/bench-vs-competitors.js",
    "profile:perf": "npm run build && node dist/scripts/profile-performance.js",
    "example:plugins": "node examples/plugin-excel-exporter.js",
    "example:express": "cd plugins/express-middleware && node example.js",
    "plugins:build": "npm run build && cd plugins/express-middleware && npm run build && cd ../fastify-plugin && npm run build && cd ../nextjs-api && npm run build",
    "docs": "typedoc",
    "docs:watch": "typedoc --watch",
    "docs:serve": "typedoc && npx serve docs/.typedoc",
    "site:dev": "vitepress dev docs",
    "site:build": "vitepress build docs",
    "site:preview": "vitepress preview docs",
    "examples:smoke": "node scripts/run-examples.js",
    "fuzz:replay": "node scripts/fuzz-replay.js",
    "test:packages": "npm test --workspace packages/jtcsv-codemod && npm test --workspace packages/jtcsv-excel && npm test --workspace packages/jtcsv-react && npm test --workspace packages/jtcsv-vue",
    "test:all": "npm run test:unit && npm run test:packages",
    "tsc": "tsc",
    "tsc:dev": "tsc --project tsconfig.dev.json",
    "tsc:build": "tsc --project tsconfig.build.json",
    "tsc:watch": "tsc --project tsconfig.dev.json --watch",
    "tsc:check": "tsc --noEmit --project tsconfig.build.json",
    "tsc:check-strict": "tsc --noEmit --project tsconfig.strict.json",
    "tsc:check-strict:count": "node scripts/count-strict-errors.js",
    "tsc:types": "tsc --project tsconfig.types.json",
    "test:ts": "jest --config jest.config.ts.js",
    "test:ts:coverage": "jest --config jest.config.ts.js --coverage",
    "test:ts:watch": "jest --config jest.config.ts.js --watch",
    "test:types": "npm run tsc:build && node scripts/run-type-tests.js",
    "build:ts": "npm run build",
    "build:ts:watch": "npm run tsc:watch & npm run build:watch",
    "lint:ts": "eslint --ext .ts,.tsx .",
    "lint:ts:fix": "eslint --ext .ts,.tsx --fix .",
    "changeset": "changeset",
    "changeset:status": "changeset status",
    "release:version": "changeset version",
    "release:version:beta": "changeset version",
    "release:publish": "npm run build && changeset publish",
    "release:publish:beta": "changeset publish --tag next",
    "release:publish:signed": "cross-env NPM_CONFIG_PROVENANCE=true npm run release:publish",
    "release:publish:local": "cross-env NPM_CONFIG_PROVENANCE=false npm run release:publish",
    "prepare": "husky"
  },
  "keywords": [
    "json",
    "csv",
    "converter",
    "json-to-csv",
    "csv-to-json",
    "json2csv",
    "csv2json",
    "export",
    "import",
    "excel",
    "data",
    "transform",
    "nodejs",
    "browser",
    "web-workers",
    "streaming",
    "security",
    "csv-injection",
    "javascript",
    "typescript",
    "simple",
    "lightweight",
    "zero-dependencies",
    "utf8",
    "cyrillic",
    "bidirectional",
    "cli",
    "tui",
    "terminal",
    "interface",
    "gui",
    "tool",
    "utility",
    "plugin-system",
    "ndjson",
    "fast-path",
    "optimization",
    "performance",
    "enterprise",
    "express",
    "fastify",
    "nextjs",
    "react",
    "middleware",
    "api",
    "rest",
    "http"
  ],
  "author": "Ruslan Fomenko",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/Linol-Hamelton/jtcsv.git"
  },
  "bugs": {
    "url": "https://github.com/Linol-Hamelton/jtcsv/issues"
  },
  "homepage": "https://github.com/Linol-Hamelton/jtcsv#readme",
  "engines": {
    "node": ">=18.17.0"
  },
  "files": [
    "dist/**/*.js",
    "dist/types/**/*.d.ts",
    "index.d.ts",
    "browser.d.ts",
    "plugins.d.ts",
    "schema.d.ts",
    "workers.d.ts",
    "README.md",
    "LICENSE",
    "CHANGELOG.md"
  ],
  "optionalDependencies": {
    "glob": "^11.0.0"
  },
  "devDependencies": {
    "@babel/core": "^7.26.0",
    "@babel/preset-env": "^7.26.0",
    "@babel/preset-react": "^7.26.0",
    "@changesets/changelog-github": "0.6.0",
    "@changesets/cli": "2.31.0",
    "@commitlint/cli": "19.8.1",
    "@commitlint/config-conventional": "19.8.1",
    "@eslint/js": "^9.18.0",
    "@rollup/plugin-commonjs": "^28.0.0",
    "@rollup/plugin-node-resolve": "^16.0.0",
    "@rollup/plugin-terser": "^0.4.4",
    "@rollup/plugin-typescript": "^12.1.2",
    "@size-limit/preset-small-lib": "^11.1.0",
    "@types/express": "5.0.6",
    "@types/jest": "^29.5.14",
    "@types/node": "^22.10.6",
    "@typescript-eslint/eslint-plugin": "8.56.1",
    "@typescript-eslint/parser": "8.56.1",
    "blessed": "^0.1.81",
    "blessed-contrib": "4.11.0",
    "cross-env": "7.0.3",
    "csv-parse": "6.2.1",
    "eslint": "^9.18.0",
    "express": "5.2.1",
    "fast-check": "3.23.2",
    "fast-csv": "5.0.5",
    "globals": "^15.14.0",
    "husky": "9.1.7",
    "jest": "^29.7.0",
    "jest-environment-jsdom": "^29.7.0",
    "papaparse": "5.5.3",
    "rimraf": "6.1.3",
    "rollup": "^4.30.0",
    "safe-regex2": "5.1.1",
    "size-limit": "^11.1.0",
    "supertest": "7.2.2",
    "ts-jest": "^29.2.5",
    "ts-node": "^10.9.2",
    "tsd": "0.33.0",
    "tslib": "^2.8.1",
    "typedoc": "^0.27.0",
    "typescript": "^5.7.3",
    "typescript-eslint": "8.56.1",
    "vitepress": "1.6.4",
    "zod": "4.4.3"
  },
  "type": "commonjs",
  "sideEffects": false,
  "workspaces": [
    ".",
    "packages/jtcsv-codemod",
    "packages/jtcsv-excel",
    "packages/jtcsv-react",
    "packages/jtcsv-vue",
    "packages/jtcsv-tui",
    "packages/jtcsv-validator",
    "plugins/express-middleware",
    "plugins/fastify-plugin",
    "plugins/nextjs-api",
    "plugins/hono",
    "plugins/nestjs"
  ],
  "size-limit": [
    {
      "name": "jtcsv/csv (entry, gz)",
      "path": "dist/csv.esm.js",
      "limit": "1 KB",
      "brotli": false
    },
    {
      "name": "jtcsv/json (entry, gz)",
      "path": "dist/json.esm.js",
      "limit": "3 KB",
      "brotli": false
    },
    {
      "name": "jtcsv/streams (entry, gz)",
      "path": "dist/streams.esm.js",
      "limit": "1 KB",
      "brotli": false
    },
    {
      "name": "jtcsv/ndjson (entry, gz)",
      "path": "dist/ndjson.esm.js",
      "limit": "5 KB",
      "brotli": false
    },
    {
      "name": "jtcsv/tsv (entry, gz)",
      "path": "dist/tsv.esm.js",
      "limit": "4 KB",
      "brotli": false
    },
    {
      "name": "jtcsv/errors (entry, gz)",
      "path": "dist/errors.esm.js",
      "limit": "4.5 KB",
      "brotli": false
    },
    {
      "name": "jtcsv (full barrel, gz)",
      "path": "dist/index.esm.js",
      "limit": "55 KB",
      "brotli": false
    },
    {
      "name": "jtcsv/browser ESM (gz)",
      "path": "dist/jtcsv.esm.js",
      "limit": "20 KB",
      "brotli": false
    },
    {
      "name": "jtcsv/browser UMD (CDN, gz)",
      "path": "dist/jtcsv.umd.js",
      "limit": "25 KB",
      "brotli": false
    }
  ],
  "browserslist": [
    "defaults and supports es6-module",
    "not dead",
    "node >= 18.17"
  ]
}
