{
  "name": "openlibrary",
  "version": "1.0.0",
  "repository": "github:internetarchive/openlibrary",
  "license": "AGPL-3.0",
  "watch": {
    "build-assets:css": {
      "patterns": [
        "static",
        "css"
      ],
      "extensions": "less",
      "quiet": false
    }
  },
  "scripts": {
    "watch": "npx webpack --watch --mode=development --progress",
    "watch-css": "npm-watch build-assets:css",
    "build-assets:webpack": "env NODE_ENV=production npx webpack --mode=production",
    "build-assets": "make js && make css && make components",
    "build-assets:css": "make css",
    "build-assets:components": "make components",
    "build-assets:js": "make js",
    "svg-min": "svgo --config config/svgo.config.js static/images/**/*.svg static/images/*.svg",
    "lint": "npx concurrently --group npm:lint:js npm:lint:css",
    "lint:js": "eslint --ext js,vue .",
    "lint:css": "stylelint ./**/*.less",
    "lint-fix": "npm run lint-fix:js && npm run lint-fix:css",
    "lint-fix:js": "eslint --fix --ext js,vue .",
    "lint-fix:css": "stylelint --fix ./**/*.{less,vue}",
    "serve": "node openlibrary/components/serve-component.js && npx @vue/cli-service serve openlibrary/components/_dev.js",
    "test": "npm run test:js && bundlesize",
    "test:js": "jest",
    "storybook": "storybook dev -p 6006",
    "build-storybook": "storybook build"
  },
  "devDependencies": {
    "@babel/core": "^7.24.7",
    "@babel/eslint-parser": "^7.24.7",
    "@babel/preset-env": "^7.24.7",
    "@ericblade/quagga2": "^1.7.4",
    "@storybook/addon-essentials": "^7.0.0",
    "@storybook/cli": "^7.0.0",
    "@storybook/html-webpack5": "^7.0.0",
    "@vue/cli": "^5.0.8",
    "@vue/cli-plugin-babel": "^5.0.8",
    "@vue/cli-plugin-eslint": "^5.0.8",
    "@vue/cli-service": "^5.0.8",
    "babel-loader": "^9.1.3",
    "bundlesize2": "^0.0.31",
    "chart.js": "2.9.4",
    "chartjs-plugin-datalabels": "0.7.0",
    "concurrently": "^7.6.0",
    "core-js": "^3.37.1",
    "css-loader": "^7.1.2",
    "datatables.net-dt": "1.10.25",
    "details-polyfill": "1.2.0",
    "diff": "4.0.2",
    "eslint": "^8.49.0",
    "eslint-plugin-no-jquery": "2.7.0",
    "eslint-plugin-vue": "^9.17.0",
    "flot": "0.8.3",
    "isbn3": "1.1.1",
    "jest": "29.7.0",
    "jest-environment-jsdom": "29.7.0",
    "jquery": "3.6.0",
    "jquery-colorbox": "1.6.4",
    "jquery-ui": "1.13.2",
    "jquery-ui-touch-punch": "0.2.3",
    "jquery-validation": "1.19.3",
    "less": "^4.2.0",
    "less-loader": "^12.2.0",
    "less-plugin-clean-css": "^1.5.1",
    "lodash": "4.17.21",
    "lucene-query-parser": "1.2.0",
    "npm-watch": "0.11.0",
    "promise-polyfill": "8.3.0",
    "regenerator-runtime": "^0.14.1",
    "sinon": "14.0.2",
    "slick-carousel": "1.6.0",
    "storybook": "^7.0.0",
    "style-loader": "^4.0.0",
    "stylelint": "15.11.0",
    "stylelint-declaration-strict-value": "1.10.6",
    "svgo": "2.3.1",
    "tesseract.js": "4.1.1",
    "vue": "^2.7.0",
    "vue-async-computed": "3.9.0",
    "vue-loader": "^17.4.2",
    "vue-multiselect": "2.1.6",
    "webpack": "^5.91.0",
    "webpack-cli": "^5.1.4",
    "workbox-webpack-plugin": "^7.1.0"
  },
  "jest": {
    "roots": [
      "<rootDir>/openlibrary/plugins/openlibrary/js/",
      "<rootDir>/tests/unit/js/"
    ],
    "moduleNameMapper": {
      "\\.(css|less)$": "<rootDir>/tests/unit/js/styleMock.js"
    },
    "setupFiles": [
      "<rootDir>/tests/unit/js/setup.js"
    ],
    "testEnvironment": "jsdom",
    "collectCoverageFrom": [
      "openlibrary/plugins/openlibrary/js/**/*.js"
    ],
    "coverageThreshold": {
      "global": {
        "branches": 14,
        "functions": 11,
        "lines": 14,
        "statements": 14
      }
    },
    "collectCoverage": true
  },
  "dependencies": {
    "postcss-less": "^6.0.0"
  }
}
