{
  "name": "@sg-developer-portal/doc-theme-default",
  "version": "0.0.13",
  "description": "Developer Documentation Portal",
  "files": [
    "public/dist/doc.css"
  ],
  "scripts": {
    "build:redoc": "webpack --mode production --config ./apps/webpack.redoc.js",
    "build:static": "webpack --mode production --config ./apps/webpack.config.js",
    "build:server": "rm -rf ./build && tsc && cp -r ./app/views ./build",
    "tsc": "tsc",
    "deploy": "npm run build:static && serverless deploy",
    "dev:concurrent": "concurrently \"npm run dev:static\" \"npm run dev:server\"",
    "dev:static": "tsc && webpack -w --config ./apps/webpack.config.js",
    "dev:server": "ts-node-dev --respawn app/bin/www.ts",
    "knex": "knex",
    "knex:dotenv": "npm run build:server && cp ./app/.env ./build && knex --knexfile ./build/knexfile.js",
    "knex:test": "npm run build:server && cross-env DEPLOYMENT_ENVIRONMENT=test SESSION_SECRET=dummy DB_HOST=localhost DB_PASSWORD=dummy ELASTICSEARCH_DOMAIN=dummy.es.com knex --knexfile ./build/knexfile.js",
    "lint": "eslint --quiet '**/*.ts' '**/*.js' 'apps/**/*.vue'",
    "prepublishOnly": "npm run build:static",
    "serverless": "serverless",
    "serverless:local": "npm run build:server && serverless -v --stage local deploy",
    "start": "./run_migrations.sh && pm2 start ./build/bin/www.js -i 0",
    "// TODO: format logs using `pm2 logs --json` for better log parsing": "",
    "poststart": "pm2 logs --format",
    "test": "echo 'Use environment-specific test scripts! See package.json scripts.'",
    "// Environment variables while running jest are injected at tests/setup.ts. See jest.config.js.": "",
    "jest:test": "cross-env DEPLOYMENT_ENVIRONMENT=test SESSION_SECRET=dummy DB_HOST=localhost DB_PASSWORD=dummy ELASTICSEARCH_DOMAIN=dummy.es.com jest --runInBand",
    "test:ci": "knex migrate:latest --knexfile ./build/knexfile.js && jest --runInBand",
    "test:machine": "npm run build:server && cross-env DEPLOYMENT_ENVIRONMENT=test SESSION_SECRET=dummy DB_HOST=localhost DB_PASSWORD=dummy ELASTICSEARCH_DOMAIN=dummy.es.com knex migrate:latest --knexfile ./build/knexfile.js && npm run jest:test",
    "testenv": "docker-compose -f local/docker-compose.testenv.yml up",
    "testenv:macos": "TMPDIR=/private$TMPDIR docker-compose -f local/docker-compose.testenv.yml up",
    "testenv:rollback": "cross-env DEPLOYMENT_ENVIRONMENT=test SESSION_SECRET=dummy DB_HOST=localhost DB_PASSWORD=dummy ELASTICSEARCH_DOMAIN=dummy.es.com knex migrate:rollback --all --knexfile ./build/knexfile.js",
    "webpack": "webpack",
    "ts-node-dev": "ts-node-dev"
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*.{ts,js,css,md,vue}": "prettier --write",
    "*.{js,vue}": "eslint --cache --fix"
  },
  "dependencies": {
    "@braintree/sanitize-url": "^5.0.1",
    "@casl/ability": "^5.2.2",
    "@techpass/passport-openidconnect": "^0.3.0",
    "aws-sdk": "^2.807.0",
    "axios": "^0.21.1",
    "cors": "^2.8.5",
    "dotenv": "^8.2.0",
    "dynamodb-store": "^1.2.0",
    "express": "~4.17.1",
    "express-handlebars": "^5.3.2",
    "express-session": "^1.17.1",
    "express-validator": "^6.11.1",
    "helmet": "^4.2.0",
    "js-yaml": "^3.14.1",
    "knex": "^0.95.6",
    "lodash": "^4.17.20",
    "passport": "^0.4.1",
    "pg": "^8.5.1",
    "pino": "^6.7.0",
    "pino-http": "^5.3.0",
    "pm2": "^4.5.5",
    "simple-oauth2": "^4.2.0",
    "sjcl": "^1.0.8",
    "url-join": "^4.0.1",
    "validator": "^13.5.1",
    "vee-validate": "^3.4.5",
    "yup": "^0.32.9"
  },
  "devDependencies": {
    "@babel/core": "^7.12.10",
    "@babel/plugin-transform-runtime": "^7.13.10",
    "@babel/preset-env": "^7.12.10",
    "@babel/preset-react": "^7.12.10",
    "@linusborg/vue-simple-portal": "^0.1.4",
    "@types/aws-lambda": "^8.10.72",
    "@types/cors": "^2.8.10",
    "@types/express": "^4.17.11",
    "@types/express-handlebars": "^3.1.0",
    "@types/express-session": "^1.17.3",
    "@types/jest": "^26.0.21",
    "@types/js-yaml": "^4.0.0",
    "@types/node": "^14.14.31",
    "@types/passport": "^1.0.6",
    "@types/pino": "^6.3.6",
    "@types/pino-http": "^5.4.0",
    "@types/simple-oauth2": "^4.1.0",
    "@types/sjcl": "^1.0.29",
    "@types/supertest": "^2.0.10",
    "@types/url-join": "^4.0.0",
    "@types/validator": "^13.1.3",
    "@types/yup": "^0.29.11",
    "@typescript-eslint/eslint-plugin": "^4.20.0",
    "@typescript-eslint/parser": "^4.20.0",
    "@vue/eslint-config-typescript": "^7.0.0",
    "babel-loader": "^8.2.2",
    "concurrently": "^5.3.0",
    "core-js": "^3.8.1",
    "cross-env": "^7.0.3",
    "css-loader": "^5.0.1",
    "docsify-themeable": "^0.8.4",
    "eslint": "^7.23.0",
    "eslint-plugin-jest": "^23.20.0",
    "eslint-plugin-vue": "^7.8.0",
    "file-loader": "^5.1.0",
    "husky": "^4.3.5",
    "jest": "^26.6.3",
    "lint-staged": "^10.5.3",
    "mini-css-extract-plugin": "^1.3.2",
    "mobx": "^6.0.4",
    "nodemon": "^2.0.6",
    "noty": "^3.2.0-beta",
    "prettier": "^2.3.0",
    "react": "^16.14.0",
    "react-dom": "^16.14.0",
    "redoc": "^2.0.0-rc.53",
    "rewire": "^5.0.0",
    "sass": "^1.30.0",
    "sass-loader": "^10.1.0",
    "serverless": "^2.28.7",
    "serverless-dotenv-plugin": "^3.1.0",
    "serverless-prune-plugin": "^1.4.3",
    "serverless-pseudo-parameters": "^2.5.0",
    "sgds-govtech": "^1.3.17",
    "style-loader": "^2.0.0",
    "styled-components": "^5.2.1",
    "supertest": "^4.0.2",
    "ts-loader": "^8.1.0",
    "ts-node": "^9.1.1",
    "ts-node-dev": "^1.1.6",
    "typescript": "^4.2.3",
    "url-loader": "^4.1.1",
    "v-tooltip": "^2.0.3",
    "vue": "^2.6.12",
    "vue-loader": "^15.9.7",
    "vue-router": "^3.4.9",
    "vue-template-compiler": "^2.6.12",
    "vuex": "^3.6.0",
    "vuex-module-decorators": "^1.0.1",
    "webpack": "^4.44.2",
    "webpack-cli": "^4.2.0"
  }
}
