1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
{
"name": "juick",
"private": true,
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"compile:css": "postcss --verbose --map style.css.map src/main/assets/style.css -d src/main/resources/static/",
"compile:js": "webpack",
"compile": "cross-env NODE_ENV=production concurrently \"npm run compile:css\" \"npm run compile:js\"",
"lint": "eslint .",
"vnext:test": "jest",
"vnext:build:css": "postcss --verbose --map style.css.map vnext/src/index.css -d public/",
"vnext:build:js": "webpack -c vnext/webpack.config.js",
"vnext:build": "cross-env NODE_ENV=production concurrently \"npm run vnext:build:css\" \"npm run vnext:build:js -- --sourcemap --keep-names --minify\"",
"vnext:build:ssr": "npm run vnext:build && esbuild --bundle --sourcemap --minify --keep-names --platform=node --target=node18 --loader:.js=jsx --loader:.png=file --loader:.svg=file --outfile=public/server.js vnext/server/index.js",
"vnext:start-ssr": "npm run vnext:build:ssr && cross-env DEBUG=http node public/server.js",
"vnext:start": "cross-env NODE_ENV=development concurrently \"npm run vnext:build:js -- --watch\" \"npm run vnext:build:css -- -w\" \"live-server -V --entry-file=index.html public/\"",
"vnext:lint": "eslint vnext/src/**/*.js"
},
"repository": {
"type": "git",
"url": "https://github.com/juick/juick.git"
},
"license": "AGPL-3.0-or-later",
"babel": {
"presets": [
[
"@babel/preset-env",
{
"corejs": 3,
"useBuiltIns": "entry",
"modules": false,
"exclude": [
"es.symbol.*"
]
}
],
[
"@babel/preset-react",
{
"runtime": "automatic"
}
]
]
},
"devDependencies": {
"@babel/core": "^7.21.0",
"@babel/preset-env": "^7.20.2",
"@babel/preset-react": "^7.18.6",
"@swc/core": "^1.3.37",
"@swc/jest": "^0.2.24",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^14.0.0",
"@typescript-eslint/eslint-plugin": "^5.54.0",
"babel-loader": "^9.1.2",
"concurrently": "^7.6.0",
"copy-webpack-plugin": "^11.0.0",
"core-js": "^3.29.0",
"cross-env": "^7.0.3",
"cssnano": "^5.1.15",
"eslint": "8.35.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jest": "^27.2.1",
"eslint-plugin-jest-dom": "^4.0.3",
"eslint-plugin-jsdoc": "^40.0.1",
"eslint-plugin-only-ascii": "0.0.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-testing-library": "^5.10.2",
"eslint-webpack-plugin": "^4.0.0",
"file-loader": "^6.2.0",
"jest": "^29.4.3",
"jest-environment-jsdom": "^29.4.3",
"live-server": "^1.2.2",
"postcss": "^8.4.21",
"postcss-cli": "^10.1.0",
"postcss-import": "^15.1.0",
"postcss-preset-env": "^8.0.1",
"postcss-url": "^10.1.3",
"react-test-renderer": "^18.2.0",
"regenerator-runtime": "^0.13.11",
"stylelint": "^15.2.0",
"stylelint-config-standard": "^30.0.1",
"webpack": "^5.75.0",
"webpack-cli": "^5.0.1"
},
"dependencies": {
"axios": "^1.3.4",
"axios-cache-interceptor": "^1.0.1",
"body-parser": "^1.20.2",
"classlist.js": "^1.1.20150312",
"config": "^3.3.9",
"dayjs": "^1.11.7",
"element-closest": "3.0.2",
"evil-icons": "^1.10.1",
"express": "^4.18.2",
"formdata-polyfill": "^4.0.10",
"mailparser": "^3.6.4",
"node-pushnotifications": "^2.0.3",
"node-telegram-bot-api": "^0.61.0",
"react": "^18.2.0",
"react-content-loader": "^6.2.0",
"react-cookie": "^4.1.1",
"react-dom": "^18.2.0",
"react-helmet": "^6.1.0",
"react-hook-form": "^7.43.4",
"react-hot-toast": "^2.4.0",
"react-router-dom": "^6.8.2",
"svg4everybody": "^2.1.9",
"url-polyfill": "^1.1.12",
"whatwg-fetch": "^3.6.2",
"xml2js": "^0.4.23"
}
}
|