Ctrl K
ComunidadGuías…

worklenz-backend/package.json

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
  "name": "worklenz-backend",
  "version": "3.0.0",
  "private": true,
  "engines": {
    "npm": ">=8.11.0",
    "node": ">=22.12.0",
    "yarn": "WARNING: Please use npm package manager instead of yarn"
  },
  "main": "build/bin/www",
  "repository": "GITHUB_REPO_HERE",
  "author": "worklenz.com",
  "scripts": {
    "test": "jest",
    "start": "node build/bin/www.js",
    "dev": "npm run compile:dev && npm run copy && concurrently \"npm run watch\" \"npm run dev:server\"",
    "dev:server": "nodemon --watch build --ext js,json,pug --delay 2000ms build/bin/www.js",
    "build": "npm run clean && npm run compile && npm run copy && npm run compress",
    "build:dev": "npm run clean && npm run compile:dev && npm run copy",
    "build:prod": "npm run clean && npm run compile:prod && npm run copy && npm run minify && npm run compress",
    "clean": "rimraf build",
    "compile": "tsc --build tsconfig.prod.json",
    "compile:dev": "tsc --build tsconfig.json",
    "compile:prod": "tsc --build tsconfig.prod.json",
    "copy": "npm run copy:assets && npm run copy:views && npm run copy:config && npm run copy:shared && npm run copy:templates && npm run copy:release-notes && npm run copy:docs",
    "copy:assets": "npx cpx2 \"src/public/**\" build/public",
    "copy:views": "npx cpx2 \"src/views/**\" build/views",
    "copy:config": "npx cpx2 \".env\" build && npx cpx2 \"package.json\" build",
    "copy:shared": "npx cpx2 \"src/shared/postgresql-error-codes.json\" build/shared && npx cpx2 \"src/shared/sample-data.json\" build/shared && npx cpx2 \"src/shared/templates/**\" build/shared/templates",
    "copy:templates": "npx cpx2 \"worklenz-email-templates/**\" build/worklenz-email-templates",
    "copy:release-notes": "npx cpx2 \"release-notes/**\" build/release-notes",
    "copy:docs": "npx cpx2 \"src/docs/**\" build/docs",
    "watch": "concurrently \"npm run watch:ts\" \"npm run watch:assets\"",
    "watch:ts": "tsc --build tsconfig.json --watch",
    "watch:assets": "npx cpx2 \"src/{public,views}/**\" build --watch",
    "minify": "terser build/**/*.js --compress --mangle --output-dir build",
    "compress": "node scripts/compress.js",
    "swagger": "node ./cli/swagger",
    "inline-queries": "node ./cli/inline-queries",
    "sonar": "sonar-scanner -Dproject.settings=sonar-project-dev.properties",
    "tsc": "tsc",
    "test:watch": "jest --watch --setupFiles dotenv/config",
    "validate-docs": "echo 'Note: Install swagger-cli globally (npm install -g @apidevtools/swagger-cli) to validate OpenAPI spec' && echo 'For now, validation happens automatically when Swagger UI loads'",
    "migrate:up": "node scripts/migrate.js up",
    "migrate:down": "node scripts/migrate.js down 1",
    "migrate:create": "node scripts/migrate.js create",
    "migrate:addons": "node scripts/migrate-addons.js",
    "build:addons": "node scripts/build-addons.js",
    "migrate:bootstrap": "node scripts/migrate-bootstrap.js",
    "migrate:reconcile-legacy-ids": "node scripts/reconcile-legacy-migration-ids.js",
    "migrate:validate-ids": "node scripts/validate-migration-ids.js"
  },
  "jestSonar": {
    "reportPath": "coverage",
    "reportFile": "test-reporter.xml",
    "indent": 4
  },
  "dependencies": {
    "@aws-sdk/client-s3": "^3.952.0",
    "@aws-sdk/client-ses": "^3.378.0",
    "@aws-sdk/s3-request-presigner": "^3.378.0",
    "@aws-sdk/util-format-url": "^3.357.0",
    "@azure/storage-blob": "^12.27.0",
    "@slack/events-api": "^3.0.1",
    "@slack/interactive-messages": "^2.0.2",
    "@slack/web-api": "^7.11.0",
    "@types/nodemailer": "^8.0.2",
    "archiver": "^7.0.1",
    "axios": "^1.20.0",
    "bcrypt": "^5.1.0",
    "bluebird": "^3.7.2",
    "chartjs-to-image": "^1.2.1",
    "compression": "^1.8.2",
    "connect-flash": "^0.1.1",
    "connect-pg-simple": "^10.0.0",
    "cookie-parser": "~1.4.4",
    "cors": "^2.8.5",
    "cron": "^2.4.0",
    "crypto-js": "^4.1.1",
    "csrf-sync": "^4.2.1",
    "date-holidays": "^3.34.1",
    "debug": "^4.3.4",
    "dotenv": "^16.3.1",
    "exceljs": "^4.3.0",
    "express": "^4.18.2",
    "express-rate-limit": "^6.8.0",
    "express-session": "^1.17.3",
    "express-validator": "^6.15.0",
    "gray-matter": "^4.0.3",
    "helmet": "^6.2.0",
    "hpp": "^0.2.3",
    "http-errors": "^2.0.0",
    "i18next": "^23.16.8",
    "i18next-fs-backend": "^2.6.8",
    "jsonschema": "^1.4.1",
    "jsonwebtoken": "^9.0.1",
    "jwks-rsa": "^3.2.0",
    "libphonenumber-js": "^1.12.33",
    "lodash": "^4.17.21",
    "marked": "^4.3.0",
    "mime-types": "^2.1.35",
    "moment": "^2.31.0",
    "moment-timezone": "^0.5.43",
    "morgan": "^1.12.1",
    "multer": "^2.5.0",
    "nanoid": "^3.3.6",
    "nodemailer": "^10.1.4",
    "passport": "^0.7.0",
    "passport-apple": "^2.0.2",
    "passport-custom": "^1.1.1",
    "passport-google-oauth2": "^0.2.0",
    "passport-google-oauth20": "^2.0.0",
    "passport-local": "^1.0.0",
    "path": "^0.12.7",
    "pg": "^8.16.3",
    "pug": "^3.0.2",
    "puppeteer": "^24.34.0",
    "redis": "^4.6.7",
    "sanitize-html": "^2.18.1",
    "segfault-handler": "^1.3.0",
    "sharp": "^0.35.5",
    "slugify": "^1.6.6",
    "socket.io": "^4.7.1",
    "tinymce": "^8.9.3",
    "uglify-js": "^3.17.4",
    "winston": "^3.10.0",
    "worklenz-backend": "file:",
    "xss-filters": "^1.2.7"
  },
  "devDependencies": {
    "@babel/plugin-proposal-decorators": "^7.29.7",
    "@babel/preset-env": "^7.22.9",
    "@babel/preset-typescript": "^7.22.5",
    "@types/archiver": "^6.0.4",
    "@types/bcrypt": "^5.0.0",
    "@types/bluebird": "^3.5.38",
    "@types/body-parser": "^1.19.2",
    "@types/compression": "^1.7.2",
    "@types/connect-flash": "^0.0.37",
    "@types/cookie-parser": "^1.4.3",
    "@types/cookie-signature": "^1.1.2",
    "@types/cron": "^2.0.1",
    "@types/crypto-js": "^4.2.2",
    "@types/csurf": "^1.11.2",
    "@types/express": "^4.17.21",
    "@types/express-brute": "^1.0.2",
    "@types/express-brute-redis": "^0.0.4",
    "@types/express-serve-static-core": "^4.17.34",
    "@types/express-session": "^1.17.7",
    "@types/fs-extra": "^9.0.13",
    "@types/hpp": "^0.2.2",
    "@types/http-errors": "^1.8.2",
    "@types/i18next-fs-backend": "^1.1.5",
    "@types/jest": "^28.1.8",
    "@types/jsonwebtoken": "^9.0.2",
    "@types/lodash": "^4.14.196",
    "@types/marked": "^5.0.2",
    "@types/mime-types": "^2.1.1",
    "@types/morgan": "^1.9.4",
    "@types/multer": "^1.4.13",
    "@types/node": "^18.19.129",
    "@types/passport": "^1.0.17",
    "@types/passport-apple": "^2.0.3",
    "@types/passport-google-oauth20": "^2.0.16",
    "@types/passport-local": "^1.0.38",
    "@types/pg": "^8.11.11",
    "@types/pug": "^2.0.6",
    "@types/sanitize-html": "^2.9.0",
    "@types/sharp": "^0.31.1",
    "@types/swagger-jsdoc": "^6.0.1",
    "@types/swagger-ui-express": "^4.1.8",
    "@types/toobusy-js": "^0.5.2",
    "@types/uglify-js": "^3.17.1",
    "@types/uuid": "^9.0.8",
    "@types/xss-filters": "^0.0.27",
    "@types/yamljs": "^0.2.34",
    "@typescript-eslint/eslint-plugin": "^5.62.0",
    "@typescript-eslint/parser": "^5.62.0",
    "chokidar": "^3.5.3",
    "concurrently": "^9.1.2",
    "cpx2": "^8.0.0",
    "esbuild": "^0.25.8",
    "esbuild-envfile-plugin": "^1.0.5",
    "esbuild-node-externals": "^1.8.0",
    "eslint": "^8.57.1",
    "eslint-plugin-security": "^1.7.1",
    "fs-extra": "^10.1.0",
    "highcharts": "^11.4.9",
    "jest": "^28.1.3",
    "jest-sonar-reporter": "^2.0.0",
    "ncp": "^2.0.0",
    "node-pg-migrate": "^8.0.4",
    "nodemon": "^3.1.10",
    "rimraf": "^6.0.1",
    "swagger-jsdoc": "^6.2.8",
    "swagger-ui-express": "^5.0.1",
    "terser": "^5.40.0",
    "ts-jest": "^28.0.8",
    "ts-node": "^10.9.1",
    "typescript": "^4.9.5",
    "yamljs": "^0.3.0"
  },
  "overrides": {
    "passport-custom": {
      "@types/express": "$@types/express"
    }
  }
}