{
  "name": "ruchy-notebook",
  "version": "1.93.0",
  "description": "Interactive notebook for Ruchy programming language",
  "main": "js/ruchy-notebook.js",
  "scripts": {
    "test": "jest --coverage",
    "test:watch": "jest --watch",
    "test:coverage": "jest --coverage --coverageThreshold='{\"global\":{\"branches\":80,\"functions\":80,\"lines\":80,\"statements\":80}}'",
    "lint": "npm run lint:js && npm run lint:html",
    "lint:js": "eslint js/**/*.js --fix",
    "lint:html": "htmlhint assets/**/*.html testing/**/*.html",
    "quality": "npm run lint && npm run test:coverage",
    "serve": "python3 -m http.server 8080",
    "build": "webpack --mode production",
    "dev": "webpack serve --mode development"
  },
  "keywords": [
    "ruchy",
    "notebook",
    "wasm",
    "interactive",
    "programming"
  ],
  "author": "Noah Gift",
  "license": "MIT OR Apache-2.0",
  "devDependencies": {
    "@babel/core": "^7.24.0",
    "@babel/preset-env": "^7.24.0",
    "babel-jest": "^29.7.0",
    "eslint": "^8.57.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-jest": "^27.9.0",
    "htmlhint": "^1.1.4",
    "jest": "^29.7.0",
    "jest-environment-jsdom": "^29.7.0",
    "webpack": "^5.90.0",
    "webpack-cli": "^5.1.0",
    "webpack-dev-server": "^5.0.0"
  },
  "jest": {
    "testEnvironment": "jsdom",
    "collectCoverage": true,
    "collectCoverageFrom": [
      "js/**/*.js",
      "!js/**/*.test.js",
      "!js/**/*.spec.js"
    ],
    "coverageDirectory": "coverage",
    "coverageReporters": [
      "text",
      "lcov",
      "html"
    ],
    "testMatch": [
      "**/tests/**/*.test.js",
      "**/tests/**/*.spec.js"
    ],
    "setupFilesAfterEnv": [
      "<rootDir>/tests/setup.js"
    ],
    "moduleNameMapper": {
      "\\.(css|less|scss|sass)$": "identity-obj-proxy"
    }
  }
}