Klip: Kutt like it's perfect. An easy to use self-hosted URL shortener. https://uwu.ryukyu/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

156 lines
4.8 KiB

  1. {
  2. "name": "klip",
  3. "version": "2.5.2",
  4. "description": "Modern URL shortener.",
  5. "main": "./production-server/server.js",
  6. "scripts": {
  7. "test": "mocha --compilers js:@babel/register ./client/**/__test__/*.js",
  8. "docker:build": "docker build -t klip .",
  9. "docker:run": "docker run -p 3000:3000 --env-file .env -d klip:latest",
  10. "dev": "npm run migrate && nodemon server/server.ts",
  11. "build": "next build client/ && rimraf production-server && tsc --project tsconfig.json && copyfiles -f \"server/mail/*.html\" production-server/mail",
  12. "start": "npm run migrate && NODE_ENV=production node production-server/server.js",
  13. "migrate": "knex migrate:up --env production",
  14. "lint": "eslint server/ --ext .js,.ts --fix",
  15. "lint:nofix": "eslint server/ --ext .js,.ts",
  16. "docs:build": "cd docs/api && tsc generate.ts --resolveJsonModule && node generate && cd ../.."
  17. },
  18. "husky": {
  19. "hooks": {
  20. "pre-commit": "npm run lint:nofix"
  21. }
  22. },
  23. "repository": {
  24. "type": "git",
  25. "url": "git+https://github.com/jellykells/klip.git"
  26. },
  27. "keywords": [
  28. "url-shortener"
  29. ],
  30. "author": "Pouria Ezzati <ezzati.upt@gmail.com>",
  31. "license": "MIT",
  32. "bugs": {
  33. "url": "https://github.com/jellykells/klip/issues"
  34. },
  35. "homepage": "https://github.com/jellykells/klip#readme",
  36. "dependencies": {
  37. "axios": "^0.19.1",
  38. "babel-plugin-inline-react-svg": "^1.1.1",
  39. "bcryptjs": "^2.4.3",
  40. "bull": "^3.12.1",
  41. "cookie-parser": "^1.4.4",
  42. "cors": "^2.8.5",
  43. "date-fns": "^2.9.0",
  44. "dotenv": "^8.2.0",
  45. "easy-peasy": "^3.3.0",
  46. "email-validator": "^1.2.3",
  47. "envalid": "^6.0.0",
  48. "express": "^4.17.1",
  49. "express-async-handler": "^1.1.4",
  50. "express-validator": "^6.3.1",
  51. "geoip-lite": "^1.4.0",
  52. "helmet": "^3.21.2",
  53. "isbot": "^2.5.4",
  54. "js-cookie": "^2.2.1",
  55. "jsonwebtoken": "^8.4.0",
  56. "jwt-decode": "^2.2.0",
  57. "knex": "^0.21.1",
  58. "morgan": "^1.9.1",
  59. "ms": "^2.1.2",
  60. "nanoid": "^1.3.4",
  61. "neo4j-driver": "^1.7.6",
  62. "next": "^9.4.4",
  63. "node-cron": "^2.0.3",
  64. "nodemailer": "^6.4.2",
  65. "p-queue": "^6.2.1",
  66. "passport": "^0.4.1",
  67. "passport-jwt": "^4.0.0",
  68. "passport-local": "^1.0.0",
  69. "passport-localapikey-update": "^0.6.0",
  70. "pg": "^8.2.1",
  71. "pg-query-stream": "^2.1.2",
  72. "prop-types": "^15.7.2",
  73. "qrcode.react": "^0.8.0",
  74. "query-string": "^6.10.1",
  75. "raven": "^2.6.4",
  76. "react": "^16.12.0",
  77. "react-copy-to-clipboard": "^5.0.2",
  78. "react-dom": "^16.12.0",
  79. "react-ga": "^2.7.0",
  80. "react-inlinesvg": "^1.2.0",
  81. "react-tippy": "^1.3.1",
  82. "react-tooltip": "^3.11.2",
  83. "react-use-form-state": "^0.12.1",
  84. "recharts": "^1.8.5",
  85. "redis": "^2.8.0",
  86. "reflexbox": "^4.0.6",
  87. "signale": "^1.4.0",
  88. "styled-components": "^5.0.0",
  89. "styled-tools": "^1.7.1",
  90. "url-regex-safe": "^1.0.2",
  91. "use-media": "^1.4.0",
  92. "useragent": "^2.2.1",
  93. "uuid": "^3.4.0"
  94. },
  95. "devDependencies": {
  96. "@babel/cli": "^7.8.3",
  97. "@babel/core": "^7.8.3",
  98. "@babel/node": "^7.8.3",
  99. "@babel/preset-env": "^7.8.3",
  100. "@babel/register": "^7.8.3",
  101. "@types/bcryptjs": "^2.4.2",
  102. "@types/body-parser": "^1.17.1",
  103. "@types/bull": "^3.12.0",
  104. "@types/cookie-parser": "^1.4.2",
  105. "@types/cors": "^2.8.6",
  106. "@types/date-fns": "^2.6.0",
  107. "@types/dotenv": "^4.0.3",
  108. "@types/express": "^4.17.2",
  109. "@types/helmet": "0.0.38",
  110. "@types/jsonwebtoken": "^7.2.8",
  111. "@types/jwt-decode": "^2.2.1",
  112. "@types/mongodb": "^3.3.14",
  113. "@types/morgan": "^1.7.37",
  114. "@types/ms": "^0.7.31",
  115. "@types/next": "^9.0.0",
  116. "@types/node-cron": "^2.0.2",
  117. "@types/nodemailer": "^6.4.0",
  118. "@types/pg": "^7.14.1",
  119. "@types/pg-query-stream": "^1.0.3",
  120. "@types/qrcode.react": "^1.0.0",
  121. "@types/react": "^16.9.17",
  122. "@types/react-dom": "^16.9.4",
  123. "@types/react-tooltip": "^3.11.0",
  124. "@types/redis": "^2.8.14",
  125. "@types/reflexbox": "^4.0.0",
  126. "@types/styled-components": "^4.1.8",
  127. "@typescript-eslint/eslint-plugin": "^2.16.0",
  128. "@typescript-eslint/parser": "^2.16.0",
  129. "babel": "^6.23.0",
  130. "babel-cli": "^6.26.0",
  131. "babel-core": "^6.26.3",
  132. "babel-eslint": "^8.2.6",
  133. "babel-plugin-styled-components": "^1.10.6",
  134. "babel-preset-env": "^1.7.0",
  135. "chai": "^4.1.2",
  136. "copyfiles": "^2.2.0",
  137. "deep-freeze": "^0.0.1",
  138. "eslint": "^5.16.0",
  139. "eslint-config-airbnb": "^16.1.0",
  140. "eslint-config-prettier": "^6.9.0",
  141. "eslint-plugin-import": "^2.20.0",
  142. "eslint-plugin-jsx-a11y": "^6.2.3",
  143. "eslint-plugin-prettier": "^3.1.2",
  144. "eslint-plugin-react": "^7.18.0",
  145. "husky": "^0.15.0-rc.13",
  146. "mocha": "^5.2.0",
  147. "nock": "^9.3.3",
  148. "nodemon": "^1.19.4",
  149. "prettier": "^1.19.1",
  150. "redoc": "^2.0.0-rc.40",
  151. "rimraf": "^3.0.0",
  152. "sinon": "^6.0.0",
  153. "typescript": "^3.7.5"
  154. }
  155. }