{
  "name": "datakit",
  "version": "1.0.24",
  "description": "Simple JavaScript toolkit for data transform across JSON, CSV and YAML.",
  "main": "build/index.js",
  "types": "build/index.d.ts",
  "scripts": {
    "c": "npm run clean",
    "clean": "rm -rf build && rm -rf dist",
    "b": "npm run build",
    "build": "tsc",
    "cb": "npm run clean-build",
    "clean-build": "npm run clean && npm run build",
    "bw": "tsc --watch",
    "build:watch": "tsc --watch",
    "cbw": "npm run clean-build:watch",
    "clean-build:watch": "npm run clean-build && npm run build:watch",
    "t": "npm run test",
    "test": "mocha --require ts-node/register --require source-map-support/register --full-trace --recursive  --exclude src/test/pipelines.test.ts src/test/**/*.test.ts",
    "tw": "npm run test:watch",
    "test:watch": "mocha --watch --watch-files src/**/*.ts --require ts-node/register --require source-map-support/register --full-trace --recursive --exclude src/test/pipelines.test.ts src/test/**/*.test.ts",
    "test-pipelines": "npm run build && mocha --parallel --timeout 20000 --require ts-node/register --require source-map-support/register --full-trace --recursive  src/test/pipelines.test.ts",
    "tp": "npm run test-pipelines",
    "api-docs": "typedoc --plugin typedoc-plugin-markdown --options typedoc.json --out docs ./src/index.ts",
    "cli-docs": "ts-node ./src/scripts/create-cli-docs",
    "prepublishOnly": "npm run clean && npm run test && npm run test-pipelines && npm run build && npm run api-docs && npm run cli-docs",
    "postinstall": "node postinstall.js || echo \"ignore\"",
    "test-help": "ts-node ./cli/map --help",
    "test-1": "ts-node ./cli/from-yaml < .\\src\\test\\data\\example-data.yaml | ts-node ./cli/transform \"records => records.map(r => ({ ...r, CashPool: Math.floor(r.CashPool) }))\" | ts-node ./cli/to-yaml",
    "test-2": "ts-node ./cli/from-yaml < .\\src\\test\\data\\example-data.yaml | ts-node ./cli/transform -f ./src/test/code/transform-test.js | ts-node ./cli/to-yaml",
    "test-3": "ts-node ./cli/from-yaml < .\\src\\test\\data\\example-data.yaml | ts-node ./cli/length -",
    "test-4": "ts-node ./cli/from-yaml < .\\src\\test\\data\\example-data.yaml | ts-node ./cli/reduce \"(a, r) => a + r.SharesValue\" \"0\"",
    "test-5": "ts-node ./cli/from-csv < .\\src\\test\\data\\example-data.csv | ts-node ./cli/transform \"records => records.map(r => ({ ...r, CashPool: Math.floor(r.CashPool) }))\" | ts-node ./cli/to-csv",
    "test-6": "echo { \"x\": 1, \"hello\": \"world\" } | ts-node ./cli/transform \"data => ({ ...data, hello: 'computer'})\" | ts-node ./cli/to-yaml",
    "test-sort": "cat ./src/test/data/starwars/characters.json | ts-node ./cli/map \"r => ({ name: r.name, gender: r.gender, homeworld: r.homeworld })\" | ts-node ./cli/sort \"r => r.gender\" \"r => r.name\" descending |  ts-node ./cli/to-csv",
    "test-format-tree-1": "ts-node ./cli/format-tree ./src/test/data/example-tree.json",
    "test-format-tree-2": "ts-node ./cli/transform -f ./src/test/code/transform-tree.js < ./src/test/data/example-tree.json | ts-node ./cli/format-tree",
    "test-format-table-1": "ts-node ./cli/map \"r => ({ ...r, name: chalk.green(r.name) })\" < ./src/test/data/starwars/characters.json | ts-node ./cli/format-table -",
    "test-format-table-2": "ts-node ./cli/map \"r => ({ ...r, name: r.homeworld === 'Tatooine' ? chalk.green(r.name) : r.name })\" < ./src/test/data/starwars/characters.json | ts-node ./cli/format-table",
    "test-skip-take": "cat ./src/test/data/starwars/characters.json | ts-node ./cli/skip 1 | ts-node ./cli/take 5 | ts-node ./cli/to-csv",
    "test-intersect-1": "ts-node ./cli/intersect \"character => character.homeworld\" ./src/test/data/starwars/characters.json \"planet => planet.name\" ./src/test/data/starwars/planets.json \"(character, planet) => ({ character, planet })\"",
    "test-intersect-2": "ts-node ./cli/intersect \"character => character.homeworld\" ./src/test/data/starwars/characters.json \"planet => planet.name\" ./src/test/data/starwars/planets.json \"(character, planet) => character ? (planet ? ({ ...planet, ...character}) : character) : undefined\"",
    "test-group-1": "ts-node ./cli/group \"r => r.homeworld\" < ./src/test/data/starwars/characters.json",
    "test-group-2": "ts-node ./cli/group \"r => r.homeworld\" < ./src/test/data/starwars/characters.json | ts-node ./cli/reduce \"(o, r) => { o[r.key] = r. records; return o; }\" \"{}\"",
    "test-group-3": "npx ts-node ./cli/group \"r => r.homeworld\" < ./src/test/data/starwars/characters.json | npx ts-node ./cli/to-object \"r => r.key\" \"r => r.records\"",
    "test-err-1": "ts-node ./cli/map \"r => x\" < ./src/test/data/starwars/characters.json",
    "test-err-2": "ts-node ./cli/map --file ./src/test/code/map-test-with-error.js < ./src/test/data/starwars/characters.json",
    "test-cmd": "ts-node ./cli/map \"async r => await runCmd(`echo ${r.Name}`)\" \"./src/test/data/cmds.csv\" | ts-node ./cli/map \"r => r.stdout\"",
    "test-run": "ts-node ./cli/run \"r => `echo ${r.Name}`\" \"./src/test/data/cmds.csv\"",
    "test-run-with-exit": "ts-node ./cli/run \"r => `exit 1`\" \"./src/test/data/cmds.csv\"",
    "test-bad-cmd": "ts-node ./cli/map \"r => await runCmd(`echo ${r.Name}`)\" \"./src/test/data/cmds.csv\"",
    "test-length": "cat ./src/test/data/cmds.csv | ts-node ./cli/length"
  },
  "bin": {
    "batch": "./cli/batch",
    "run": "./cli/run",
    "split-to-files": "./cli/split-to-files",
    "distinct": "./cli/distinct",
    "filter": "./cli/filter",
    "format-table": "./cli/format-table",
    "format-tree": "./cli/format-tree",
    "from-csv": "./cli/from-csv",
    "from-yaml": "./cli/from-yaml",
    "group": "./cli/group",
    "intersect": "./cli/intersect",
    "length": "./cli/length",
    "map": "./cli/map",
    "reduce": "./cli/reduce",
    "skip": "./cli/skip",
    "orderBy": "./cli/sort",
    "take": "./cli/take",
    "to-csv": "./cli/to-csv",
    "to-object": "./cli/to-object",
    "to-yaml": "./cli/to-yaml",
    "transform": "./cli/transform",
    "omit": "./cli/omit",
    "pick": "./cli/pick",
    "concat": "./cli/concat",
    "flatten": "./cli/flatten"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/data-forge-notebook/datakit.git"
  },
  "keywords": [
    "data-wrangling",
    "data",
    "data-analysis",
    "csv",
    "json",
    "data-munging",
    "data-cleaning",
    "data-science",
    "data-clensing"
  ],
  "author": "ashley@codecapers.com.au",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/data-forge-notebook/datakit/issues"
  },
  "homepage": "https://github.com/data-forge-notebook/datakit#readme",
  "dependencies": {
    "chalk": "^4.1.2",
    "papaparse": "^5.4.1",
    "table": "^6.8.1",
    "treeify": "^1.1.0",
    "typy": "^3.0.1",
    "yaml": "^2.2.1"
  },
  "devDependencies": {
    "@types/chai": "4.0.4",
    "@types/fs-extra": "^11.0.1",
    "@types/mocha": "2.2.43",
    "@types/mock-require": "2.0.0",
    "@types/node": "^18.16.1",
    "@types/treeify": "^1.0.0",
    "chai": "4.1.2",
    "dayjs": "^1.8.20",
    "fs-extra": "^11.1.1",
    "handlebars": "^4.7.7",
    "mocha": "^10.2.0",
    "mock-require": "^3.0.3",
    "ts-node": "^10.9.1",
    "typedoc": "^0.24.6",
    "typedoc-plugin-markdown": "^3.15.3",
    "typescript": "^5.0.4"
  }
}
