{"_id":"metahkg-web","_rev":"30-1dda699cee91fcffae57776949394759","name":"metahkg-web","dist-tags":{"latest":"3.4.0","dev":"3.4.0-dev"},"versions":{"0.5.8-rc2":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"0.5.8-rc2","author":{"name":"wcyat"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.8.1","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.4.4","@mui/material":"^5.4.4","@tinymce/tinymce-react":"^3.13.1","axios":"^0.26.0","date-and-time":"^2.2.1","dompurify":"^2.3.6","dotenv":"^16.0.0","email-validator":"^2.0.4","express":"^4.17.3","hash.js":"^1.1.7","html-react-parser":"^1.4.9","humanize-duration":"^3.27.1","humanize-duration-shortened-english":"^3.27.1-ts2","is-sn-integer":"^0.3.0","metahkg-css":"^1.0.1","node-html-parser":"^5.3.3","prismjs":"^1.27.0","query-string":"^7.1.1","react":"^18.0.0","react-cool-img":"^1.2.12","react-device-detect":"^2.1.2","react-dom":"^18.0.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.0.0","react-player":"^2.10.0","react-router-dom":"^6.2.2","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","screenfull":"^6.0.1"},"devDependencies":{"@babel/core":"^7.17.5","@babel/preset-react":"^7.16.7","@types/date-and-time":"^0.13.0","@types/dompurify":"^2.3.3","@types/humanize-duration":"^3.27.1","@types/prismjs":"^1.26.0","@types/react-dom":"^17.0.11","@types/react-google-recaptcha":"^2.1.5","@types/sanitize-html":"^2.6.2","babel-loader":"^8.2.3","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","mongodb":"^4.4.0","prettier":"^2.5.1","react-app-rewired":"^2.2.1","react-scripts":"5.0.0","system-commands":"^1.1.7","typescript":"^4.5.5"},"scripts":{"start":"node server.js","start:api":"yarn run start","start:react":"npx react-app-rewired start","build":"node build.js","test":"react-scripts test","eject":"react-scripts eject","deploy":"yarn run build && yarn run start"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"gitHead":"ec621bb26fb5247c954e45f1c021dad77f89c1cb","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@0.5.8-rc2","_nodeVersion":"17.8.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-KklznNKbgfZcFo/zcX0PLdhJVxtM+6sYpSPcz0s10b1eGf+9t+F2Zgviz3+uXaLl1K2zGFh2KU2mEZmv/H3ESA==","shasum":"3d67c857fe1be437b236e6cf09ab43766bb4baef","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-0.5.8-rc2.tgz","fileCount":136,"unpackedSize":697911,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChUBKEJ12wqDU/jlH4pna5atad6FfJL8u8TE4b0/GLlQIhAIWtf1vBOu6aTo8fxcXEI2Qj1L/GcUYtm6nzba1GXAoY"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUPWBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpXwhAAlnGZIcu89lVf18mfmNlim3di/LUv/m+IqBcJjYmGuOF7beWt\r\n5stcDScwr00fC5mJdg5cnzOEuLGmjIjBg6DtvsCHgnVwh3BYI2YkiTApsCj6\r\nWM0/QXtWSgnFUipfFlas/ff23x59ckj3RyKl0VLl6acxF/XMB8pYKl6B7tRy\r\nbLYXyJHTopmi6CAGheWvxDRA1s4DN8LzyZyM19OQfiZs6MV9c3AgDoOKxLZu\r\nOR38BAyGgDFJXENWN34CcdwOGulujqWLUfaXb5ngYO+yxlNnPBWil0hL1CwY\r\naMeHcc6849NnB+GhB1u553zc2BGGuwx7ALIVSqqJV8+3ma1HloHP1zXbUp5P\r\nocU8RZmLGevO8MIwuxhbLRjh8njisRfpdKLZUVcReQi+HSCgtssLdAsxMHg5\r\nke/7VyfpXAvaFv31PzAIcmXD8aYKR5jHM70JCHohRCU1urZZTJt3ngQm+VXA\r\n46x+pxpXESEgB/ro49iCi0VzLkdSFdxPBHG0rHbJZcAdDKpQNX6Ci2ivwTpq\r\nZzKUTlzq49/sMUbGbCxzLbisFv+k33fJz9U7FHJ7l3AInMfrnWX5aRhxKszC\r\nri7NG93neB3CD/lCjWxh4/x33M4kFL4tERhVN7d4d3x8l9gMDZ1uKV8a/aub\r\n7e8T214LdxAg+xXdU8nFu2jqvVwjhTDj7TM=\r\n=6wDj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_0.5.8-rc2_1649472897033_0.8494848679038915"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"0.5.10-rc1":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"0.5.10-rc1","author":{"name":"wcyat"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.0","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.6.2","@mui/material":"^5.6.2","@tinymce/tinymce-react":"^4.0.0","axios":"^0.26.0","date-and-time":"^2.3.1","dotenv":"^16.0.0","email-validator":"^2.0.4","express":"^4.17.3","hash.js":"^1.1.7","html-react-parser":"^1.4.11","humanize-duration":"^3.27.1","humanize-duration-shortened-english":"^3.27.1-ts2","is-sn-integer":"^0.3.0","metahkg-css":"^1.0.2","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.0.0","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.0.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.0.0","react-player":"^2.10.0","react-router-dom":"^6.2.2","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","screenfull":"^6.0.1"},"devDependencies":{"@babel/core":"^7.17.9","@babel/preset-react":"^7.16.7","@redux-devtools/extension":"^3.2.2","@types/date-and-time":"^0.13.0","@types/dompurify":"^2.3.3","@types/humanize-duration":"^3.27.1","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.1","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/sanitize-html":"^2.6.2","babel-loader":"^8.2.3","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","eslint":"^8.13.0","eslint-config-react-app":"^7.0.1","husky":"^7.0.4","lint-staged":"^12.3.8","mongodb":"^4.4.0","prettier":"2.6.2","react-app-rewired":"^2.2.1","react-redux":"^8.0.0","react-scripts":"5.0.1","redux":"^4.2.0","redux-thunk":"^2.3.0","system-commands":"^1.1.7","typescript":"^4.5.5"},"scripts":{"start":"node server.js","start:api":"yarn run start","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD) && npx react-app-rewired build","build:nocheck":"yarn run build","test":"react-scripts test","eject":"react-scripts eject","deploy":"yarn run build && yarn run start","dev":"yarn run deploy","prepare":"husky install"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"gitHead":"a90b7a7122229af25ea8e38d48840c522617f392","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@0.5.10-rc1","_nodeVersion":"17.9.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-8UYuo2B6rW4uIlVsXggCKrM5Xwj+8eNCisq7N5Ap8Csf6aRuBprZDICErEXGjbaPF5bkaIrOs+FbIY0noHgCtA==","shasum":"45915f9f113df7194298c3f7002740a2671c9ff9","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-0.5.10-rc1.tgz","fileCount":143,"unpackedSize":772919,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfoSz0/dKGGyN/Ljrd9h2ISU5NQS3katMvm+vKMsLpIQIgc6y+o7MRt46pP23G4SYEc/uzjzkzTXPxG5XtO8o2Vpc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiXluzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp59A/+PMDgvVPEEnUcAY8u0ROhAw9kS3vtuaYXXZp71sBR6tIQ3aW3\r\n05QScUPdXJlmPz+1MKzDgyDntjpcsdKgje3OdRz1tUeS0LfC9elTi3Y1RwqL\r\nqqTzLW/IBj4lPTFDcNo2gwY9A9kJgEMLeyDsJ7yqzD4AvA27/N2nljD17Ao1\r\nqt+mn5HPPOuN3LY+hqS4iDZ65R+NR8q3G3bu/uEjAGSFPIw/qS/C+XmtveUs\r\nYXJsx7KdMGk0SIZ5zgxsHrX1or5GeCtAgPX8816z8WEUhIFD7a9hKPdz67Sl\r\nziuvLR1u00aTJkLXma+uDf6U9xxfvM54nc3Ezhe0ZSWsqybDo9WtG1EkJgUJ\r\ngz7VJL7sLt+vv6IWLDV6R8E3rZdk+/WwboNHXG09L7ZBSLnEv14TI6ebUdki\r\nYsFihhc3lT76kmC3TQ0qs3BQa+uk7ozMF0XO5iFglHgXp9N5PQJtRKlo6lGU\r\nlX+BAD53pdvfzZOZxWrm+jVeB6SYedWa6MVf9Xcmr1SNj/OonVcZWn4J9dzH\r\nI+dHeG08bsN6DyGakWBXWfaY34uQr3nN5cxyfTtuZnDT4QrvBZ4QZVrTBtzQ\r\nWpyewu7pSqmikiv4kylCqKBIwOM0eo09qax7NUwePDleWRPpjjgA6MsFEmNe\r\nyX29zdSm3eUoUO79WUFy5sMfeBgrS/2XQIg=\r\n=pHKb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_0.5.10-rc1_1650351027194_0.9885943020540289"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"0.6.1":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"0.6.1","author":{"name":"wcyat"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.0","@emotion/styled":"^11.8.1","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.4","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.3.1","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^1.4.12","humanize-duration":"^3.27.1","humanize-duration-shortened-english":"^3.27.1-ts2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.1.0-1","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.1.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.1.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.1.2","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.1","serve":"^13.0.2","typescript":"^4.6.4","webpack":"^5.72.1"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.2.0","@testing-library/user-event":"^14.1.1","@types/jest":"^27.5.0","chalk":"^5.0.1","eslint":"^8.15.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^12.4.1","prettier":"^2.6.2","source-map-explorer":"^2.5.2","webpack-bundle-analyzer":"^4.5.0","webpack-cli":"^4.9.2"},"scripts":{"analyze":"node analyze.js","start":"serve -s","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD); npx react-app-rewired build","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"gitHead":"7de1cbb46751c64f5b8a5eff2bb3e0ee5fbf92f5","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@0.6.1","_nodeVersion":"18.3.0","_npmVersion":"8.9.0","dist":{"integrity":"sha512-nsfhrIhhONtnxJyLYemndeyWykA/Pc2GhmIVNR7U58cJmAQIGfMhgx6hPAMU6650N76uD5V3tdyWppdVbgOOVQ==","shasum":"097b62f7d0f601710ce5bfd24821e85097db9f33","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-0.6.1.tgz","fileCount":156,"unpackedSize":816930,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjY0Z3H0pli/MQvIZKm4C9F+bIaN4k+WOlrxcpODRwwwIgM2VlodXq5R24y5syAz78Hr7dEp88rR6YFBO/+pLETvU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitEIyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmowVBAAhiJegpncE5CBACREWoSafpd1bt/LTKREYNFCvqOhHD1HzSnp\r\nTdOSVf/AwsfXz06zL4g/igGHJtt8F2amEcHNCdlfY10xF2K11L6GvgVYpIaP\r\nddA1KkT8wN9IZwFD7uFvL3j/fB8ZFLahBSwOVT/wxPSAmxN4c9RxRVTIE6WN\r\nCuVM/LggnMQ/CesVBIKY7f8npfmBPY/e3Yv3DjywdZoKHv/h8ffzgzAE+8Bf\r\nhGsUXPCxZWxGc5Z9XZb+WOPqG2FKw5QxUALwPBQap/7kCIQ3ojsbnD1/i0f2\r\nOaGIdIoWQPMtLttcXvSxSfQ+VIT8ow8XhV89VsGS4BLaKi4x9tKlkdqgWOqv\r\ncau6kkwiiKcn/BWVodDX3Rjft6DiFl38f2zJrFRermWxEelxrwx0JH6xkRhJ\r\n+A74PFfH/DtEpi5U6H/+LfTEva1lUV3OGTRwlKpVFWDVajet00aee2hCYtoe\r\nIgkHBNVp7VfCcab9gQK+K2aE7SPH9qGRFKpx7ZMLNjHfmmQN7oPbVTXQXvmo\r\niepBIGwOW5TxY4fDemud49v0BbMFN9t5NjVst02S7MZR/roVt1Kem20hy50Z\r\nND6Yb6hp4TM3N85nrhwg3OiBlnq2v2vB+VytAWyUCWcgIh4mkdT0qaLi+1D1\r\nlY4dT+UXqVcREOzBJlKsYXASFjI3Fskd4bY=\r\n=2dWc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_0.6.1_1655980594362_0.04486958974427124"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.4.0-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"2.4.0-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0-dev","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.4.0-dev-1-dev","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","chalk":"^5.0.1","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1","source-map-explorer":"^2.5.2","webpack-bundle-analyzer":"^4.5.0","webpack-cli":"^4.10.0"},"scripts":{"analyze":"node analyze.js","start":"serve -s","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD); npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --noEmit --skipLibCheck --removeComments","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"ddeb5fcf7c2bc66cc2af9ed92edc31059cfb08cc","readme":"# Metahkg Web\n\nThis is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).\n\nstable: [metahkg.org](https://metahkg.org)\n\ndev build (probably daily): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![GitHub license](https://img.shields.io/github/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/blob/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&amp;utm_medium=referral&amp;utm_content=metahkg/metahkg-web&amp;utm_campaign=Badge_Grade)\n\n## About\n\nThis open-source project was created primarily because of me being unable to register a lihkg account as a high school student.\n\nCurrently, it aims to be a fully featured alternative to lihkg. However, I might also add other useful features.\n\nAs contrasted with lihkg, metahkg is open to everyone and anyone can create an account with a email address, no matter issued by a university or not.\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee public/images/LICENSE for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.4.0-dev","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-+8cBw4uqXvmC7rcP5LtafAQYFojVN3slhjnDnlbXiqFOxB/1QZjo8O/Ki92GT1HLdPPgPIjWyGViZQGVpKDTvA==","shasum":"964c2a42b8e8c533ca7a2ded9d3711c989e68707","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.4.0-dev.tgz","fileCount":418,"unpackedSize":1564982,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8L56dRganfHnHIhxPQgIoLrbOZJvynIz0rIOtagKE8wIhAKx8/C5s232knYBe3COpVJyZdnN1zrLoF+3t5LpaOLbn"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivaPTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGNw/+IE9F5zRsPNUCOmCTNlP4GS8tkqcXzj1Pkj36pe1SSMOM/Gi3\r\nZBGMKH6sJNs6eeXMVbRo6INElC1FKm98udhTsaoZ6xLI61EQ6y7SOFwaj4QA\r\n+eDhr/4jhBUuU7GLpCX3DzyRKRBbvZhRMjjmWG4DH4KdsmD6kV4NY5R8khN+\r\n7d3ULBoVECIeL1oc6FzIYgwOWevHvLdiuhgqdbpD7yG5GC16f0DfivXoZoFv\r\ny9u6z/7wlWgrk6aq7MBhmkeTC+5bDkMOSWpiPFT5ZM+Uk5848Z8j83c+Mc7q\r\nlae1EMVJNj8dYBPbKVymkKXSGtqCjaS1JCEom9mP1whTR2bwqcDknSwzRDqY\r\nwcGGJo+0TYNoj1AV3mN/HrQCbkfpBoDQbHKUuED36gnVEAmUxJg+ZibxH4DB\r\ne17Rk5kwmiIkP1NtDzRS78NsxUoKcQNjvpriobYl57kbWVttZIRf47GY36IZ\r\nw+27/DN258pzUt2S+3na6MqYtVTpVYuIcZaOLfPoa8JauJkeE4N4zC94O01n\r\n1C7t0MY9m6H/UMYZ0TZJ1l/FeaTI+Lf8bwFz8sH/4dkJ/2NtYxumsgq5Rit3\r\nQX/fluqTlIo58yxyjprF9EmYL5QNDSdxD9lNaAPVeATlsmyHkpIMkHiFdlyS\r\n3QtxOgmb95v9ELCeHMge1ANOH81pv53CjGw=\r\n=MfEA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.4.0-dev_1656595410834_0.6907589480444212"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.4.0-1-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"2.4.0-1-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.4.0-1-dev-dev","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","chalk":"^5.0.1","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1","source-map-explorer":"^2.5.2","webpack-bundle-analyzer":"^4.5.0","webpack-cli":"^4.10.0"},"scripts":{"analyze":"node analyze.js","start":"serve -s","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD); npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --noEmit --skipLibCheck --removeComments","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"gitHead":"dd9daa2367b27c727a052f47e04ede872729ffbf","readme":"# Metahkg Web\n\nThis is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).\n\nstable: [metahkg.org](https://metahkg.org)\n\ndev build (probably daily): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![GitHub license](https://img.shields.io/github/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/blob/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n## About\n\nThis open-source project was created primarily because of me being unable to register a lihkg account as a high school student.\n\nCurrently, it aims to be a fully featured alternative to lihkg. However, I might also add other useful features.\n\nAs contrasted with lihkg, metahkg is open to everyone and anyone can create an account with a email address, no matter issued by a university or not.\n\n## Use as a module\n\nSince v2.4.0, you can use metahkg-web as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```typescript\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee public/images/LICENSE for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.4.0-1-dev","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-P3PVpKUBys3FVYK7dcuskWAneuKLLrkfihWXOXfxVlTBtFrCYNWd8dfQ99Y91YeC8F5s4PfpBtez/37QoejOxA==","shasum":"da74389404f65542a0673a29b83d73623401bac6","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.4.0-1-dev.tgz","fileCount":159,"unpackedSize":1086543,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFNv5UV/VDqfeKwKPrzMOmpP/R3vBCg+QMRwuN5uK1MGAiEAt0AHPJwtjp9lnpzEVDcajkN8FmjQne3YOt+kbPDFP5E="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivam7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqefBAAoXlR5me1yELY7ER2rX5UVgpfsojKaxI1UtwnAayqexaU3+Do\r\n16H0u+8AvSthfNK1kED4R+Xq3Pis8uld18xS4UF3xKgishSDzxoccYlReeOe\r\nReTqdfkr5rY5zUvWnJ3qVTbawaYWc1w11VtZ+JP/SHbpw0B6YTy1dXbrHioU\r\n5hjfEQr0OaEoAZpR8GhWxDU3xjcV7/jnm9hSCQ8hmgATdXOikgA7+x7Jxzld\r\n970N6T0OM25sdPiLBka+aN6HW/9IsmZDq+7Uru00AMlL5YimbuHNcgafGD6G\r\nQJ4dGTucRLQU1x8lMu4D3Q+TkARQPVmrXxaNPKkCyiZKYTRBKFcikCC10vLD\r\na9dt38rfRI0zUxZ70kObFPE6+JZ5PTPVrtLZO1xlqjhEZe9q5NtJAW16/mMy\r\nPWW7CEwWp3P62LcVzZF40jPJiHro6Y3xB1tLgVxTsijKoFN3bf10LJv1FxZv\r\nGKf0PnWSiQh0QVyuDnI5qaOknbXeU5G1hId3Uu8aAnIa8iNmq1eN/xxZm3iw\r\n67xWBrppsRnpY9qWEnjYRSwnDm3scCYIzn+aZxGWw2VN0U17w8G981QGe84M\r\n/T6HSm9y+2ryIGjcJCrUrY5nIj/I524T2PkQmLSFfjWQXM191ZiSfU47YbhY\r\nBg/wXTgs6520D2D26uKCxaivP94yucSsUes=\r\n=wJt7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.4.0-1-dev_1656596922874_0.22406304937789545"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.4.0-3":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"2.4.0-3","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.4.0-1-dev","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD); npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --noEmit --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"readme":"# Metahkg Web\n\nThis is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).\n\nstable: [metahkg.org](https://metahkg.org)\n\ndev build (probably daily): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![GitHub license](https://img.shields.io/github/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/blob/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n## About\n\nThis open-source project was created primarily because of me being unable to register a lihkg account as a high school student.\n\nCurrently, it aims to be a fully featured alternative to lihkg. However, I might also add other useful features.\n\nAs contrasted with lihkg, metahkg is open to everyone and anyone can create an account with a email address, no matter issued by a university or not.\n\n## Use as a module\n\nSince v2.4.0, you can use metahkg-web as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```typescript\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee public/images/LICENSE for details.\n","readmeFilename":"README.md","gitHead":"d3d6d4f04a9b0f21a21c4fcccf345ecc1a50938e","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.4.0-3","_nodeVersion":"18.4.0","_npmVersion":"8.8.0","dist":{"integrity":"sha512-zMZ9+6k82dzKm20qBtN3zsfDVi8pBNqWzvEtDuKPhYN9jnKYJdg2oRTg1/EZ6j5abUGtummRjtOtwDuv+rx03w==","shasum":"ccc4c52ca3a86b717fc5bd3f4f49fcbcd4c4b572","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.4.0-3.tgz","fileCount":157,"unpackedSize":816132,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHeuGokbfgaKQBPIuGuA+LBuA8kYiIjDLSF/gRvE7mmhAiEAjQ1k5ngB4OTF/WYhdXdYn6/wxMOmyf/UuvIfMjEo9rk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivbWxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrSOw/9GAP9+MPAwqwXbts5+VQJtU+gj3uuHmKeTa3h1g0YETRQUnHo\r\njeIF66YCAmDpozn4htDCG2qFRISuzQRRxjxvaNX9RNXaHdyM9M0ukX+4BuLW\r\nK2HMbUStExL9+gk6ySs5D9AzadXbPW5+D85bsdxBhbvEAT/SlLxvGBb2OkSS\r\nvwODgeJKe1GuINkBNeMGrhenJQAtHN5f52+KDFWTAJg34HXluur5FbPQodae\r\nialAfUnu0WWcabiRui66BAuqwDv/UKE8u/t12hX2CelFvm81Ypln1GvTkG9o\r\n5/xu9SieeWYMciAQ/4ATsGDXLtx7U2gGHSFfmXNZ1J1UQtIt3xiFEhrAwrZ/\r\nmuuQisFiqaHgzT+31oUXjiSN1YkCI9SDD+rUT+OX9b1YSQ3wT/Ss0cHqm/YG\r\nDHgDDB13xoo7HOyT84azkytswYVmTknG/CmYJ0/79JqroCKrRwVe6GSCxoT9\r\n+f5LdfACligMDz9KJZnl6CbiC6UVGXtqsCDwWeejGMqWGYBeGgjyGTmYutom\r\nqG7pU39Z9O8hXRJXiO+BrimPbUuAKh9MsStRz3jnfM9UX+nY4aChacVEDSWG\r\ne7zPBxJEJFsjI6LmlvJQZsf+Dowarob89vjwk557cRxhcbFbA+W38rYoru/y\r\nBFMCQ/qUnOKNUb7MofB8qb2ugemcNj/9v3A=\r\n=DsGP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.4.0-3_1656599985639_0.3472886996333162"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.4.0-4":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"2.4.0-4","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.4.0-1-dev","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD); npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --noEmit --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"readme":"# Metahkg Web\n\nThis is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).\n\nstable: [metahkg.org](https://metahkg.org)\n\ndev build (probably daily): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![GitHub license](https://img.shields.io/github/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/blob/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n## About\n\nThis open-source project was created primarily because of me being unable to register a lihkg account as a high school student.\n\nCurrently, it aims to be a fully featured alternative to lihkg. However, I might also add other useful features.\n\nAs contrasted with lihkg, metahkg is open to everyone and anyone can create an account with a email address, no matter issued by a university or not.\n\n## Use as a module\n\nSince v2.4.0, you can use metahkg-web as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```typescript\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee public/images/LICENSE for details.\n","readmeFilename":"README.md","gitHead":"d3d6d4f04a9b0f21a21c4fcccf345ecc1a50938e","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.4.0-4","_nodeVersion":"18.4.0","_npmVersion":"8.8.0","dist":{"integrity":"sha512-35r9CUulhKVe2lAlr64Q22mIFV33yLwMqmstQGF4tRBUUQazNQ3g5EqI9ZSOPMyfyT77NAb4FMEDQFpaY2x1Ug==","shasum":"6991fba3e8b3bafc6a35ae3abbb4e2b90adf6605","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.4.0-4.tgz","fileCount":183,"unpackedSize":825989,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTLL0CgFvJjrBt93BeBv4nBp6z9t9KcziPxWwPWYJ04QIgbpbSjb/G+IhtYkh5Mg7nRzUaTsCbh+tsNQ+SeFuA/xU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivbXLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoavRAAjPICMD6ijJu4hLkNps4rRgXc62U1I8YRtF+Fad6xc8eCCJsk\r\nZI0dOzKUeRiPDAz8vswlQ+QrFQERSFaT4d40zdssNT8x3c9t070k/F+sT0Gq\r\nVc3Ql91A1cmYpLreNW4VlsfCxQOlF+IMS0CEgT3aK1SB5VS4YqMWaFW2Vat7\r\nX8hchxrXzvWrBHlhDbvDIJwqOylLY9nx+8Py8Co36ZsGdLKokCW7X+dHsowB\r\nhp1cpSmR4/IzKNob5lDbUmtrj0NfiRxR/AJBN19PAlYgHdcPlXvrzxI18vG5\r\nGlQUcf7gOY1xanRvGxhrNXiLqE8F99JFkGfXqG3TxAYpTbjsLbDoJXmlXVoy\r\naymNRlSQW3I9z19qOryH7ARvGJweViE4n3nN+mr4f9BNae2fuZ9/qpwPvbhO\r\nq+of8MaAlxCTOUIPymtz3WUl+G2su22XHr+MNBHCnUhvyXqJldRoW8gl08r9\r\nUElPlDABXec85yKy9SFZRhUELVtoijzjMlxnY+q8OBKdKdmj1TtlM8qX3i6A\r\nL7wb2QjU3cuNBQLPCXejoOElX/SQx3M63OPzedEZqg8dJwoXNJwVa8iP2mNa\r\nxkYtbJTbO6QDlNJ3fgjBN2idA4np64UC59hSYxptKU1wkm4zK7vfsk8f+aTL\r\nZvyv52kmO3Tbrn1I8P4PVAaVTWaEyUMfzuk=\r\n=8y79\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.4.0-4_1656600011453_0.07753843666362759"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.4.0-3-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"2.4.0-3-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.4.0-1-dev","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD); npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --noEmit --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"gitHead":"d9a9c422148737247464a3c85ceeb3587fa914de","readme":"# Metahkg Web\n\nThis is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).\n\nstable: [metahkg.org](https://metahkg.org)\n\ndev build (probably daily): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![GitHub license](https://img.shields.io/github/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/blob/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n## About\n\nThis open-source project was created primarily because of me being unable to register a lihkg account as a high school student.\n\nCurrently, it aims to be a fully featured alternative to lihkg. However, I might also add other useful features.\n\nAs contrasted with lihkg, metahkg is open to everyone and anyone can create an account with a email address, no matter issued by a university or not.\n\n## Use as a module\n\nSince v2.4.0, you can use metahkg-web as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```typescript\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee public/images/LICENSE for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.4.0-3-dev","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-iGt9vvLFQmo7bhrL5CylfHlG/oxDk08BZ8A0N1QGB2ozDgqDNeN3kOb4aqd1AbQN8qjdIH3bt+lFLKXH553/hg==","shasum":"f69f6b3f32552843cd2f214ec34559dec1579fd3","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.4.0-3-dev.tgz","fileCount":184,"unpackedSize":1088674,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHfmB3t8po9O5MPUlAL4Wm0p/m/MAO1jW7BsWQnpRRmmAiBO2DxPszjtHNBKbVJ30/o8ZXyIknjzNCx2QQrxVzW9tg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivbiFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoayBAAnoi0HA3JMnh03W0/BY5VKybGFD9gvjNMvFhNndcx0YbVB0Qq\r\npzaU+IWTMQgEhROM6D4BcN8e/SupIEXwMHwnlAqiz1wypnZa/+wSjKB3wyNq\r\n1x6aKirAJH2yH93O9dDZ895VAIpbYNcDn1vRq+A6QRMWoAaQ8vCQLI6xUDI8\r\nxrv+y9UlCOGkeeQCL8d8OPIhIIwomNOZr4lj8zsosFy23zB0r7mHQrlxmJo7\r\n77b3dh13oY6l7z223pH4K4No23I+Z24/F1yADrY5aEMhhP6LI8NaGf6t1bcZ\r\nwurqxEQYRz0fBpW9x+ZIRoEs1OJi0NI2OZauUh5GnRPEmZebFvnbH4QTNDSU\r\nPdib41fJHtxPP+hJdFyHXoWOy5fBMfWSPtlsHjpygwKQrafIWJfbzDMKBwHy\r\ngorxWKbYc3GZGduVeKF/OCSL+qMsNIrYO2k5IgLSDM2tfaq8nPtG+sSHUiXX\r\n6lM5qKdvdAQuLSplUXOgVyqW92+jJlfQKi/pAFMx5eDzYtj8tDlouJFvVshW\r\n1zOAy6lxWhQ1VNpjBYBPZqqm5YlHPdz+NgcHpWXnUEm4UTzoIKn30sC0BjFv\r\n+A2K0zvQPfCMCWHGgYV77sks9tkMcJgvY+CeaNNaTUN22tPF8hUWCJh+OvVO\r\nmdxGVNbcShGiutov6FE38BkgdFQmqeiKNVg=\r\n=qguI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.4.0-3-dev_1656600709508_0.6222003283915851"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.4.0-5-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"2.4.0-5-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.4.0-1-dev","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD); npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --noEmit --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"gitHead":"cb90eba276347481c4bf155c7629e825a0d2d1d4","readme":"# Metahkg Web\n\nThis is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).\n\nstable: [metahkg.org](https://metahkg.org)\n\ndev build (probably daily): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![GitHub license](https://img.shields.io/github/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/blob/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n## About\n\nThis open-source project was created primarily because of me being unable to register a lihkg account as a high school student.\n\nCurrently, it aims to be a fully featured alternative to lihkg. However, I might also add other useful features.\n\nAs contrasted with lihkg, metahkg is open to everyone and anyone can create an account with a email address, no matter issued by a university or not.\n\n## Use as a module\n\nSince v2.4.0, you can use metahkg-web as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```typescript\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee public/images/LICENSE for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.4.0-5-dev","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-Z28PzdOTtyIj38pBCxjAX+9npR2Nqk2iqRXZbWwRE4lvoeTF2apDzk+hirNWbCWaXpXoCkupvMELabCU9u10IA==","shasum":"70c800dca2cce2036017aea5178c1e867d567d5a","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.4.0-5-dev.tgz","fileCount":184,"unpackedSize":1088674,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0UoucNfjMtbab6zbn2quUU+y5EPfttfAnLRSVhb6jLQIgBHekPTZuHuJxLdmEW6PCDTGMeyiR6kATj8/+mnCVONQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivbtNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSUhAAoglr93rxMoDslSqkU/CkDxujOIY1B4PW76HTqEEx09bOJYYW\r\nj/czhiHI7SujeOCCGXbKGLcTXKdQS2YeMGYgeWBOQmCV73jo983apvadryC2\r\nw2l2hEtccucFJeWpVSLvNAOcj5upDfGvyIzuUb8yfXFcb/cdLF7TicEVRjs4\r\nSuE7vd1xl4zyLUhAj3gqMrQWE7XpX4zOppwZb362KoAWR8RKKGfVvp5sBmYy\r\nsKkyoINToVV0IIzvSs2QNxcn+Bursm60BSnnOjqFKTKIkKi29r9JOTb5zHOi\r\nO4oLMCJ292PMcr4U8lcwB2hylKzfjRupcP5+Eqi/JkQtIX9fijzxACKx88rg\r\n/EsoQCwjw8oI1NPZkatwfNSdLeqofi2ZgZHj/54KU5kminyOcK9x1Qy/CDUH\r\ndmYXVsM9H+7QewXWfPOrgdNG3cQagv/gBxiOZdyjHzSAPwtwckeK8m8H1UzQ\r\nNSflvDT6S83swwjvU0S/dpYeSKeK9GLYycbhGQGOu27nhfHHfpvkq5Auw5tF\r\n4TXUBjbRPMoJ598EiOj84kfNKMJTMhaL2FgjZMgKtNchXQd+fpmSVofcJBJq\r\nvpTgcD0FrW4iVESQKTP/iVNY/y/QCw2obW1hBkOOv0S+fjq5YU5ahETOjTFG\r\nO7VzWek+i525kwim4v0gkVxhV2o65hfFKJ0=\r\n=Qd6j\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.4.0-5-dev_1656601421648_0.864434085035287"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.4.0-6-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"2.4.0-6-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.4.0-1-dev","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD); npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"439e55f7d3a02cd6826b7734f8765f6f788e1e66","readme":"# Metahkg Web\n\nThis is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).\n\nstable: [metahkg.org](https://metahkg.org)\n\ndev build (probably daily): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![GitHub license](https://img.shields.io/github/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/blob/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n## About\n\nThis open-source project was created primarily because of me being unable to register a lihkg account as a high school student.\n\nCurrently, it aims to be a fully featured alternative to lihkg. However, I might also add other useful features.\n\nAs contrasted with lihkg, metahkg is open to everyone and anyone can create an account with a email address, no matter issued by a university or not.\n\n## Use as a module\n\nSince v2.4.0, you can use metahkg-web as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```typescript\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee public/images/LICENSE for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.4.0-6-dev","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-yeJP8Eoh5Z9Lw6Mm126dIP8BHC6vkCYqbitEKR13TFDvlyST5jNAAxiwQrTBMAWmBMP80HGfcHLtpmBrjWvfYQ==","shasum":"7db6e50551ac41ba1b74afb259f21cd51319e468","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.4.0-6-dev.tgz","fileCount":442,"unpackedSize":1541350,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGwOEzd62q1iXfviFn0RXFA3K9+iJjSjs4zFzpxXt+yDAiEAmHnEk1Q8DgjugQKU+ym8uBl2w247c5y+0Q9PhuPh/sU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivcFKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrcNw/9Fmhv1uiO6AezmI+Snj0VdO8AHLsapbMEjTapGzpIchXlj+s+\r\nQi5p8BXKh6ZZWUxdBwymjwtYLGZwIYJp9Hn+snyrYFZX63g8wS5uutB9zJtU\r\nMH9JGdKchzsj7Z1yLDLdAB5A7L8YBQHFP6gVvX2e82S7EgyoE8fphzETJdpr\r\nM28PSJu/aKM8i3WmqOedHx7bc2YhfbQcEd/e7mzt1RmneF5KLXbSbD+I7R8a\r\nBkRxlHJRCJ1X4cxljpoto3qlDv7yLW+mhyBDXmcI4vp1i1AkqQKEmc83cf+1\r\nPpkTdmZK29KBaSscSfTIt13nPL9Uf/aHuus47KUcKYG8cG8m4zxeBI7IKsTx\r\niqgv0rapkreC0pQjjb8Z2qTXa2ZtRhyTaGftO/ajMj3+SXcNgSFOFeeqdA1E\r\nYEu7EFiYGayZbOWGF3OqCPTHW90hUw4j0bfyQXHpcptzh6wkSJNPYjzLiPkj\r\nruRACDMKFcrek1w8yWz32kxIA0qEFqfCVSIlXYPRze0IzHuECSV5KWomiDFM\r\nxBZE5PDVdmj2twxkWAuh5ddjsGm8u/Ae0B7YV6q/NVscO3UPJ4ZZURoZczC7\r\nAJi40tGLyTgGJRun5hGb3shv57BLZig4hpoXMjGgIw+/1mcgwP4vK5XL5FfQ\r\nuU5I5W0BcBHq1SGWr8LbtRPTzuoz4GiwZRk=\r\n=SluF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.4.0-6-dev_1656602954164_0.7980539075215345"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.4.0":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"2.4.0","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.4.0","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD); npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"e12b0653e3847b1e4a4010d692cfe2f4c7428065","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.4.0","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-DMbV5my2ghCIMvzkJb4S8JZjMIAZNc3fUF45GwtVhSa3D8AJG8xFRgDiqob91RY6qxW1LVBMwr5tUOK1Il8x1w==","shasum":"d843834a2a3c37cc6bfe1050bf89d83cdf8188dd","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.4.0.tgz","fileCount":442,"unpackedSize":1541431,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEA/37QofYzrXRLPQNRqETuMIvW0M85pbCfBDfK2Ru5eAiEAwm41jqsk8ledKHEjm/Heu1y+yvYj/xLLBpbTidwEdAs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivckpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpdkg//YlgAgI3r7CHQgBMKFhAEpZKNJ8i86IrKseM4NpJsebBAu/7N\r\nFozfKnzyPIhcwwSL8n4i/Ej9e2WHykAEN95XX4JvyCEBLJjin+1q0C9ziv0P\r\n2/K5KmRGAtOJgjkT6WFoFu4lg2Xab8MZhoF6LND8IRjJuCfvx61VBp/iYr/z\r\n/ZQZONuFWSI356xrYnDgzHvzPIMN3l0uJn0VXusLoOw1E8z5iEILD6AwJi3n\r\ntcp9dJFlnRPYDT1D1JCaRRapKFZsRrme8bcke1ov94Nsvxm21HrmkpdnBoAQ\r\nvyoxF89KIEGDPrEEfddl0Rub8BO3eRiHVNmYBLAOL1XpZasX0wvY3xvu5aut\r\nEATJQedhRT5vNM9c/FjdIdW0Yx5jQSuYejFgGjzk3dDz2XOCHoFWLZSRvbs5\r\nfL52rbJQg04x/G9CgSO15AoKUZaZy2CEe9/kAXCU986fCmCf/pierjbkfvRk\r\nejeChNPiNv0vaYLh7zArW0fzAMq0CXMwIl4ogC9PhOpme5DbI5wIPiNE1GA7\r\nLKHJnvoDP4EVj51iTdM3pw8ev0FJihBxyfgl9M7xkKfJ7Ssy5JenrnOx2rSG\r\ni8u6yrLh8P2ZkxlIG1Vr3ArzH0WBMAcQoDAE+KpDFd9D0FwohWWAhb2XE5TL\r\nR9hcFbBxBdimR+I007W8NfkmrDG/sr7Rgzc=\r\n=TZCL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.4.0_1656604968696_0.8973968192596338"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.4.0-7-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"2.4.0-7-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.4.0-1-dev","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD); npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"64e3a5234eb1a81668c71729a0e730675dcf88fe","readme":"# Metahkg Web\n\nThis is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).\n\nstable: [metahkg.org](https://metahkg.org)\n\ndev build (probably daily): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![GitHub license](https://img.shields.io/github/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/blob/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n## About\n\nThis open-source project was created primarily because of me being unable to register a lihkg account as a high school student.\n\nCurrently, it aims to be a fully featured alternative to lihkg. However, I might also add other useful features.\n\nAs contrasted with lihkg, metahkg is open to everyone and anyone can create an account with a email address, no matter issued by a university or not.\n\n## Use as a module\n\nSince v2.4.0, you can use metahkg-web as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```typescript\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee public/images/LICENSE for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.4.0-7-dev","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-REXfeQ+PqMhIcIf4TPQcjXCM025s8wzhMbC66/GKB5iugHduu0orxa+WemBkzqwOesZMVJ8D3IG0crqDTCSebA==","shasum":"2a3c4a185f7df8a283993cba06d50e6dc0c67ac2","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.4.0-7-dev.tgz","fileCount":442,"unpackedSize":1541302,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCck7V2MkuXQ8m3JGJp2/9ESN1gC5WaZ9q+5qjGRNr6dwIgT0IVy7+OCMy/Hs6u582q1vXMfVGg9iLVORHAFGXkSwc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivcpkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrt3RAApCG1aGhiRtAhsQOcy4vDfNt0Ks3/UA47HUiTkdNrPNaOvi4s\r\nrSZm/XPSta4Jn+vwAHfJWIwwM+XYSF1yUHjuMR9+4Za8TLppOQsILv06x/GG\r\nCrrdFsvt0W1mG5M3rmf1cUSBRE10syZlFvphCXd8giFDNq4kH29BK9g6AmIp\r\niDpTA18vrmFjpeiGe3aoXPWxouSRMloiiYRwKth+200b1fD7rlsDq9RsahLj\r\nEx37jKjWUmdnX+G8lafx/Hk4dDWxfWVLESUIQJdJu7OsNZ5p7IFy47iQMQM3\r\ncLjaocspmXWKsnUPkQFeRYgJVusZSrKKGPUNpN9RbmycTSNu28E0kvY6lPNe\r\n3NXXDA63GpQ46cv4+PJwDhiHTIwjDzocNK5JdIdMBgdy8sQonNDC7tt6wHHB\r\nJTMfUGLy0tFXTxrvzLd2RfjmeagqcJWoQyJCno9kUvco9f9W0shBNq/5mRhw\r\nnqZcRmlPyDm0N2hveW0UpkxRqpTlriIozLYOCExAiu+S8lnsuJ1v9VC71QEH\r\nbOm26BVr07bYrBIyF/1SpEt4yJnANwqYOKT7tELLtJyZD/dMpRFBnkpP0Aly\r\ntW0/l6xCWdJO+racSa54Wq2BZMRyBVgy9yQKlc3Z92L4+a54gZIEv4NcXm6x\r\nYzq5yC9pO5ZLxFsdb44AtTU/98nz4tCUnzg=\r\n=ffOm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.4.0-7-dev_1656605284265_0.964573119216287"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.4.0-7":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://github.com/metahkg/metahkg-web.git"},"version":"2.4.0-7","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.4.0-1-dev","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"export REACT_APP_build=$(git rev-parse --short HEAD); npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"0500e6bbf89956aed9cbb3bbf6d3c67ae1d6ec2a","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://github.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.4.0-7","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-gwe5IX8qIXBWVUJm3HMQOOndJzjBbhNKdEKFGOgq3ZPQ3cuPR6WmX3RCytHHBZqDpbxgGA9Ujx5MWJ6rjT0hnw==","shasum":"7e20407988e8fded7e7cf647a86330c5e5c68b00","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.4.0-7.tgz","fileCount":442,"unpackedSize":1541457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtbfLldEjkDsodGOcItAqWiEmqLWd26llLbMXuvt5DtgIgG7SuPRB/pdyYf+hMjtM8uy0nWIRFbCuj8PaK5xh6ZgM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivcqfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpRrQ/+OXj4cVrNGOoAtIx3gqir6lHL4TnnTjPtO/S7jMpZYk2/tozk\r\ncA+oUU2F9y6sZWz5zgXmxUY7pKscFXa7L5JSAEzJP21IrI3yAOGk0dnUT9ek\r\nfoOkWnUtR0G9FCaaUJDt5iQYfa58Mb8LXwH1lYxhnmkAYihvYxnvynZV8Txl\r\nIODhriWQnTmNXro81nYI9q6D/ROPRFRqgu5xXOQ8Lk92jBcQbSa71ORlnZjN\r\nImH6hfNSbRc6/HAHZBfFW0s2i7N+OApjkwgxPzMDAh70/iXmYRClu09wr++q\r\nB1uKPVTWe98Mf9Ma9UFYRVCMoflSigONMtMA6G2AiR+VSlfTec4duvfIhv06\r\nQQaCzuL7JV7hbWkCDIl6BC5NmP20NPpkP/DX0vjxAhl+8TwCG5zxlt18/mbT\r\nKpC5I0+2BPuRPpiQQmFVn8N06DR1SKWi8wyCL8/aagfJJF832Qucaj2jICYj\r\nOQA0aDcN3WXJf14EvytvcYScOb3Es1svXAOjqSigmivK6r8beeuZ5KKvHBu1\r\n2P6r07Z7aY7Lb5Y9gxA4Dd17lM9zfjombgDs6dnNsmLBphEtTjNzgywyv2Pb\r\nZRXndCTSI+r9oKUYkIF1BsB2a6/PrdpWXtMDJxCiDX4p3aSv59OrW1PelY60\r\naFdQ9b1tjafRsG77Kya1BpPWv3RYir5ekiE=\r\n=P2Rx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.4.0-7_1656605342898_0.17063293953224679"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.5.0-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"2.5.0-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.5.0-dev-dev","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"if [ -z \"$REACT_APP_build\" ]; then export REACT_APP_build=$(git rev-parse --short HEAD); fi; npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"38c48ee3a60f58b18a0f7f9febdef47592f13cef","readme":"# Metahkg Web\n\nThis is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).\n\nstable: [metahkg.org](https://metahkg.org)\n\ndev build (probably daily): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![GitHub license](https://img.shields.io/github/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/blob/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n## About\n\nThis open-source project was created primarily because of me being unable to register a lihkg account as a high school student.\n\nCurrently, it aims to be a fully featured alternative to lihkg. However, I might also add other useful features.\n\nAs contrasted with lihkg, metahkg is open to everyone and anyone can create an account with a email address, no matter issued by a university or not.\n\n## Use as a module\n\nSince v2.4.0, you can use metahkg-web as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```typescript\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee public/images/LICENSE for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.5.0-dev","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-T1PEx68JQLPfOGVeHUR/o/NVwBnZiWuSAmsa3/wWFnOTzyywCnlMRaB87VzdSX34wx570/XEQ4bvqWKoZyGUdA==","shasum":"ee480a49c73c300ffc977b4897c7b7c495dc6b35","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.5.0-dev.tgz","fileCount":442,"unpackedSize":1541828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoNvDV8l8aXL+JUYU6bSqyu4td+YwI5KWgPyOhGQl6wwIhAJV3T8KAFJ/1OZKTaCljsqT6wrdDeO+CuQSikCEUXfVK"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivsekACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6lA//a4MN7jbueUUZW5rIk93MSj3g1/qyx4yT0JUh246F3oFFm3K6\r\nfRJ4zC8AvdyFBdu0D7rYaH2n80DCydYNTs1x4A8nJSnyhMOaWj+9vdhofjTI\r\nf/QN2xQDBxyyjORPN05LsVi8j3Uu36Ek9g2Phaa88xnQMoKtXIarNXosl4SZ\r\nnrd93HzGHatNYD9HD848wwil/LwRRIt9GO33NsaGlVbJCmHgZh6TAW66PpIx\r\nBAtdMsCNUOsiw33lAaYSZUlIYzTt9Hqq179bW3Jc4Gx/1wGOsI+zTNxxbRxc\r\n7Lhk382yH+MSXYeqBMaCdzTWfxmoi3q+DhZsXxXPCY2Bdux5vHtn7+XYey8Q\r\n4Z5LIwDiXKNzTBleGp2Ahy/Qm0bBdGV9uXmYDiP5/jvPfy/Hkc091y1qhtpb\r\njO2mQKIXkJBXylBeuyRJobN78Ygcz1L/fSeedZz8Q35RHhH2s3g26g9zsABK\r\nOCfKEodLAy+NRNLt9Hu+o/8tYQRAlihpakKdxLup2WHiiHX4eJjcZh9ArzXw\r\nQK8pZG4BCLDFMw0ca45X6rX56wTDOSXHt4TMsv2M5HrFGzNN/DrWwX9OeXtQ\r\njlculb6EuNRh3fJXqxASLfdpBfgwwJhT1wfCJ9NYMhUWd4/riYMou8AjBahP\r\nL8mfCStKB5Um4wZG6QcHc1x8RtT+cGZJTjw=\r\n=8CJE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.5.0-dev_1656670115800_0.5683546293407862"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.5.0-1-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"2.5.0-1-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.5.0-dev","metahkg-css":"1.0.7","node-html-parser":"^5.3.3","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"if [ -z \"$REACT_APP_build\" ]; then export REACT_APP_build=$(git rev-parse --short HEAD); fi; npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"cf4e7acdda1eced56b0cccf91bd9ecaf3da1c912","readme":"# Metahkg Web\n\nThis is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).\n\nstable: [metahkg.org](https://metahkg.org)\n\ndev build (probably daily): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![GitHub license](https://img.shields.io/github/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/blob/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n## About\n\nThis open-source project was created primarily because of me being unable to register a lihkg account as a high school student.\n\nCurrently, it aims to be a fully featured alternative to lihkg. However, I might also add other useful features.\n\nAs contrasted with lihkg, metahkg is open to everyone and anyone can create an account with a email address, no matter issued by a university or not.\n\n## Use as a module\n\nSince v2.4.0, you can use metahkg-web as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```typescript\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee public/images/LICENSE for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.5.0-1-dev","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-L5aKbMWzMK27ujP2DOL0KDagw8YbCDfK06vZ6YEyfqcVAz/0W5Nssl4HOMCXV6LmT1l85q7dg13P6ZYwkjHjMw==","shasum":"4a2344ab23ce21a92e6b5d8e3832cf3a2a6aa3d0","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.5.0-1-dev.tgz","fileCount":441,"unpackedSize":1528627,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB3cmJyA01j7YrpLaKMp4bEqrKUdzUdnQqVYpQU9+hkHAiEAk0VpXJb3YIpreSc6iGdCIfBCXpZac32PttfYlzuizVE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv9UCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpuwA//aR6z+rbBpI+4EewcRdhPhdc3wxshx8hFVxXY7aJ+4T3gTzgl\r\n3tf4HsgFr36IG92FFudZdVqoI92L3Z62ipr0h4M6JA58QeNjl5aT0YURncj2\r\neszHp97h6H8zGgFXQ5U0xli+zS3iYbAjbLWoBSGDbD9Xyg339TVh0WCZIdZ2\r\nCj9bpIStRT3MTVaq9BmViBMAweWiiPnD8SPnQKS/ODDLXi46Le+amDJBslg3\r\nACaFKd1d+tGIl177r5Rvc74tWeYR4l/sAUTomZjiRRRqxbhjic5BXTBfCTWw\r\nn4smt/1bEflcUSA70DNEhEtNeTYBGfxAn8D3O3Vm/5ThiGE4ay7wiUlvJGIB\r\nI7eTcHBMeP8ypfxKaQFC4DxI6ladRpHQp4bD8AAqfygAH6WdtJgzvmyRyOG2\r\nrD2WJs9tTCzwgLUljNofmC/8uQeexPQH78pr4Ln431Yhxv8+A2TF7o2J1B+H\r\ne3idsZ0BK2vYFtsOZJr/pMelGJ7dO9MJDiFpaOQVnvIJlhf41+q1+GIXwHki\r\npuj40cwqn3ctlSfcmvR4odQdbqPoIgK/bNcNHmOnb74zRDR22RjacZeszWKH\r\nmeJhGoAaEuKG4Um93YGIpkOespYUlMg3OOE3wdUgzLaXmdtlpkWjHa06aa6N\r\nv1tsKnngtTqrcq7wRGlWEQ9vpTh1QlGMBGc=\r\n=ZsR7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.5.0-1-dev_1656739074325_0.8072001081937801"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.5.0-1":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"2.5.0-1","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","metahkg-api":"^2.5.0-dev","metahkg-css":"1.0.7","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-cool-img":"^1.2.12","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-spinner-material":"^1.4.0","react-twitter-embed":"^4.0.4","react-visibility-detector":"^1.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3","prettier":"^2.7.1"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"if [ -z \"$REACT_APP_build\" ]; then export REACT_APP_build=$(git rev-parse --short HEAD); fi; npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"npx eslint --cache --fix src && (npx prettier --check src || npx prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"51dcc09350dda161136db3713b8ab2a92086f129","description":"This is the metahkg web app. For backend api, please refer to [metahkg/metahkg-server](https://gitlab.com/metahkg/metahkg-server).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.5.0-1","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-ftYB4J0opy/V0nxs+nJgXKRlEtEXd4p4l2ARlKtSplNcxFyommtsZiYGFXl3OmbquJNxXxqX3NmDFNo+EXoWRg==","shasum":"9809bb3b953b80e645d6fef4ed3364436c51094b","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.5.0-1.tgz","fileCount":427,"unpackedSize":1222565,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/2NFOA2UBWQ7LWjz/sgurAv60ABAYI6MxtpmDZlmp8AIhAMAfNXK8VSs6I6zTQ+8HHFJmc8sAKRTpVHClPztKRK3B"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv/+FACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5UxAAjzB0j57yJRxewv3lbiync7C5rZiVSkMN4cnkZOwO3QEzNO9k\r\nbSmAFnXez6VoepW8eawjJb9sJ495zK0iY+WyyPT0weXeU24cNIXtUv7aQKby\r\nAbm29jRMQ3+qwr5UTNNqyy7E3jaJa06tQq3bWupkdGre6xOaRBvNIZUo+O9d\r\nri5oOLiYgQYzjJKLhi1f+oOnbkyRb9SNaoUhyEmDCqoo3ladTL//AmEu4PPC\r\nZ94O5VQwoJjniHXCSCY5SdNKTp0idbJ0bVPNmIP5qFk/jYWz3JA5hcs88v/E\r\ncHGgAjSZyQBWWFJpWr5pP/6zz4zGjPMHWxJQ+Dv0D6DXkbvGOyNVSGCsxz/W\r\ngBMwDmxmSY1IJBnDdzsJYMlySXo3+yrlFNRHDPtfrXEirMvshbHHUCU9g7JO\r\nLiGZGJT62+9DZq3IfZSG4pZf0GAsieUbpxnW0OMw+tSpkUXXAuSZKiUxa2Q+\r\nfFMYkY5T3vuo9DZMfthIC44qAyW501Kmn9WcV2QmFq8R/HXx+4i7J9Pv4suu\r\nnVIxPvfe4S5iAFfx3XAFXUXAYHMjvlNsNjfL4ix0ISh5QzgQ+9X4SyUlp27z\r\n1BJTKYWpK4Iprtfj0V23rxeHox8Y4j1MTEV1XPzvE4e+zSQyVpPOXlgPA+2n\r\n+x31RAWldaFrgzWuTELIqbDSqIoRrAmPQck=\r\n=AStN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.5.0-1_1656749957401_0.9964544155432333"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.6.0":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"2.6.0","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","css-to-react-native":"^3.0.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^2.5.0-dev","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":"npx react-app-rewired start","build":"if [ -z \"$REACT_APP_version\" ]; then export REACT_APP_version=$(node -e \"console.log(require('./package.json').version)\"); fi; if [ -z \"$REACT_APP_build\" ]; then export REACT_APP_build=$(git rev-parse --short HEAD); fi; npx react-app-rewired build","build:module":"tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"3355421085d2fe925262f59c63ece4e83cc9b60e","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.6.0","_nodeVersion":"18.5.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-ZP4HOIfgOeKxdyNWYdIxusQm0XoRA5MP79uQHusLysoHYCloNGtb3VqvpkdLQcM2kixA4FJlPe4kaepoCjmxCA==","shasum":"fd5357b34d755d8d654b3e1a6d691ce4c38fe6e6","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.6.0.tgz","fileCount":446,"unpackedSize":1303518,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFhO8xrhoMHFLtu66MWIzHuTQxDrAFL1okJcMQeBZrSUAiBZZkUqrNNEvoJwYg+QLBB/FvP+6+waV5wwhASFe7PUiQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJizp1eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpPYg//VEKB8cSY1/KSR3c3vRel+64tkb/4MLKJqYusIi5iMDM1KfSx\r\np54L9AI8M5OrxAjOZ/gMkkgbMSw1LoLSCQ5FPQ1eGXoTly03uoxsZCyMPgPy\r\nQM7AMHLmDWvv2SzMbt1m0+HOUJPndoZaJJoiSpmBdc6tcbdLc5NN/cdCQVdI\r\nxenPLTduaL66a4e60Nj/1oVmo8LaCXMWJVBqnn3JCGYaEf3KWFaUzY7qRblg\r\nKTuD0erKk3s/Vn4ivPdvI0PjD+8bx4cMjXRA0aE1IL9cdOi1wT0kolmgq6FO\r\nUZ3jQwsDSdeQ3bgFv/XXKycOt5WtirGsn7smH737JUq1fhjQsij/6iA8ZQ/H\r\nOPDpxd82vK6oPI1B+8zyw5yC6vWLyusRQjhHYGQVeL0xAxzfVdbxPkejy99H\r\n4Oi4ZNFGmMgGUQlYQwuFbxnvZ0nh2zCV4OtL2PSck4ItkH+Ao5xh0pfeIjBc\r\ntDvQ5kL+Is6Y/4E3ij7uKmm1rILB4k4GUnCG+zg+kboLgBVlt53OsHVnn9m0\r\nJYRGTOqlHJawotvZPUrJwh16r4sfKTi+czAvZeCqsfr4G/Lyns/PTQrj15C9\r\nZvCxe99vEOhY5sbEh7eyGjsbOG61nc1lWtcBSH1uGScFVTjXY+kd6Fx+4q29\r\nXDCVyRFbXnauB/8SyM7mkYKbGZilNSAxuKY=\r\n=g1mx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.6.0_1657707870217_0.5319477251643696"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.7.0-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"2.7.0-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","css-to-react-native":"^3.0.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^2.7.0-dev-dev","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"5ff9bc797fec5463f1e2942091e655ecfb1c3055","readme":"# Metahkg Web\n\nThis is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).\n\nstable (master branch): [metahkg.org](https://metahkg.org)\n\ndev (dev branch): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![License](https://img.shields.io/gitlab/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/tree/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n[![Telegram](https://patrolavia.github.io/telegram-badge/chat.svg)](https://t.me/+WbB7PyRovUY1ZDFl)\n[![Discord](https://img.shields.io/discord/992390401740775555)](https://discord.gg/yrf2v8KGdc)\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Use as a module\n\nSince v2.4.0, metahkg-web can be used as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```tsx\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE.md).\n\n### Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee [public/images/LICENSE](./public/images/LICENSE) for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.7.0-dev","_nodeVersion":"18.5.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-9aUytxIICdmSWkQ8loa/4HSHsK0EgW1IClQTZcB7LnLRCEjrPnKzpKqnUfePdUJVmmVZGCNCxZ3XqPxno/B6NQ==","shasum":"3b732572a338677cf657cd8b5d3f788439a4e87e","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.7.0-dev.tgz","fileCount":446,"unpackedSize":1304812,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUX3vWwQHrjulJg36uyNvwVlBbD1Y04hxw8bpa67weXgIgXHfI5Mj6BNP73OxOT2vJgIEIv0lrkyJC0nYEfL7Lc/M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJizu21ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTuw/+PeAsRDG513GATGS1wxuBJR3pjSDvRmMo5QJ5G18U3ySep1w0\r\nroIQLP3sKthPs/NUPm+XLahVjI2tmIC6mU41ey4giMUI1cyC1cTLtVoFvtm/\r\niCVYi5jFNjw2iAR/FfGJ3kfY/yPJr5R2Oz7OJAVSHMp1jqm8S32CxjuFAksF\r\n8NHOxOZadI++xrA8ifIwLcYiExh2fYWBikR1a0TDDnAuragEKs5l6+RlvZPe\r\nOFSk5HwUxb84JsjnPryHsnm6YSUG4GTH9CjCeCSCLLS4th6OSzyd/FaNRzRN\r\nU8dB7bZPuDg9cSRMWMxUYW5DYL2b7rA4PxWGlujftqDIg16FwoLmRSlrAtZq\r\nTwHs0Y4ijzgJIYCTAtoSZPZDIf1LGdMcqR9fNahgFjMg33DtuSmZvAOmRZZ/\r\ndR70cYRTYvL91g9iQcNU3DzKaUI4g6RankAmG432Aiw/z0xoAyRdglEJHGj2\r\nf8gy2R3oqrY6Wdz7rXoscShq0KJlnlrkQ79OscKvmK3LNyadgiaC67c/ryIJ\r\nWp26LGZDJ3JHc+EGpkxTcOeIJyd9LquCUqywZGQDIcBTyl4m+Q/XQQoW+eMG\r\nJoAGaQEeSzFN5O5pcnSMaMuNAMo9g/MCaCJeNa0juPBMRwAkiP+5Pa1J2n9m\r\nHa4S7vcUK+M6Au09cq651NPcsUx+n2kJ03U=\r\n=TnCG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.7.0-dev_1657728437110_0.4322940526213652"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.8.0-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"2.8.0-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","css-to-react-native":"^3.0.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^2.8.0-dev-dev","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","redux":"^4.2.0","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"7675219b9f00d5f10cbca46ca6ef226c2da226ae","readme":"# Metahkg Web\n\nThis is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).\n\nstable (master branch): [metahkg.org](https://metahkg.org)\n\ndev (dev branch): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![License](https://img.shields.io/gitlab/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/tree/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n[![Telegram](https://patrolavia.github.io/telegram-badge/chat.svg)](https://t.me/+WbB7PyRovUY1ZDFl)\n[![Discord](https://img.shields.io/discord/992390401740775555)](https://discord.gg/yrf2v8KGdc)\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Use as a module\n\nSince v2.4.0, metahkg-web can be used as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```tsx\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE.md).\n\n### Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee [public/images/LICENSE](./public/images/LICENSE) for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.8.0-dev","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-ouxH/Sl2VWH8jJrCyythhScCLCpJxXWG6CmIAhwvcIC444DikU7QX6Jp3J1YcuWwQXTHpF9dT0UjQ2rO9fWkPw==","shasum":"989aea5f0ffb349fd512464d3e52e18e1164b4df","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.8.0-dev.tgz","fileCount":446,"unpackedSize":1304865,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEz4U0436lQv7ayAPlmt4T9o2BA/iaX8fgtcUbwDG9OQAiAmoVAXtgvLKVNvmrkMAg/2Qae9ZpDLuMPD6WYo+PR7ZA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi0vl0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr32A/8DNVsHmMyXbRmc6bT2+H5rk1cG5qAp4yxiu5tEfm+xdle2jHP\r\n1vwVhlKSuBISf4+tjMzg9DYqyf2zHZN+mmAhw8Yv0gZaaSL6qMT9evmghJnf\r\ncE1y3SS/FPfpNc98nijsgMKJ0Q3UlKq8MlrHu1uQIu85mEjwv6J3383IeLwe\r\nj0w/WvpheXehZ0AHonuQryaNy20MdEtHMscKez4Aad3hcm8AuIyhTPDoY587\r\n19ReBCiKDC82pEkzZ4nYc6HR1BKJrlqy+AUdOD+DL3YjqAkWzL7LbEpPpJUM\r\nY1wGek+NJQkO1jWj0Q0l6mi/TT/ixR8BLhju0l53d3sFFyHkZk6iwLR5jSFz\r\n+lG8DpFWJfa2BzxvhNB/uPEIdcyGB3CWF08etPud873WaNaZZJmr920XE9PI\r\n8jaynhWlukayB4xkDBK7k7gipjGag5+2PAvxK8Imd6yXFgj0dp85tgH2S9yz\r\n7zuNlcvPSN69bkG+m/GJQpxmz6IUNFMwHygEot2x37avNKCJGwA/OC1BClrC\r\nSUrfrEs7fK6xzrRAZ2iL2JA7ahY5Y7bnwzf0KMnAgk7UkbKOfGamtzkk7Ysk\r\nZOHmssYhgeSDeOU9dADh5SCyzEMLSGklFASIgoj7tzTmQ7IVF80TxOhfjcm2\r\neeiw/+MP6Iak1cqh76aGOuoxfTV0E0CkIKg=\r\n=HCTI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.8.0-dev_1657993588524_0.4909605113806048"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"2.8.1-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"2.8.1-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^2.8.1-dev-dev","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-social-media-embed":"^2.2.2","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"36be799b2ecf63f07fd83f07de0ed32f72c4bce2","readme":"# Metahkg Web\n\nThis is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).\n\nstable (master branch): [metahkg.org](https://metahkg.org)\n\ndev (dev branch): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![License](https://img.shields.io/gitlab/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/tree/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n[![Telegram](https://patrolavia.github.io/telegram-badge/chat.svg)](https://t.me/+WbB7PyRovUY1ZDFl)\n[![Discord](https://img.shields.io/discord/992390401740775555)](https://discord.gg/yrf2v8KGdc)\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Use as a module\n\nSince v2.4.0, metahkg-web can be used as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```tsx\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE.md).\n\n### Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee [public/images/LICENSE](./public/images/LICENSE) for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@2.8.1-dev","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-dGD293MD3UxxdAPQQGJMx3U1uc7yE1XJROg9NDh+SNz+qnr9j98eoXsZ02e0pme/AkFtndCnzcTSeXt4/IU2Pg==","shasum":"4d49bbcf14221f714082fbc084d4154eaabd6623","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-2.8.1-dev.tgz","fileCount":449,"unpackedSize":1310322,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDES+MrAP+Sks03kC0DN99d5RdZVYiS4a0dGahbCtlumwIhAO9xTIr49gNn+99FkrICaHvqz8oLfeyvlEYLx4GGJZlt"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1rusACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrnVQ/9FzQ6I5Km+Byp7nHeufZ4AqUOKQbGtjojwsiDOTN2MOL2BpjW\r\nzJJsUwkFYf9he43T2XHKdN34XkO/LAKpzwmoAEM1rnZcgI9VfASTiEWcracv\r\nCvtTn10ihOzlX7IbCNsgxR2mhWKZTP7Rf4e8ZKco4Yj7w21zW01yyUWorOCN\r\nbWkmAYfaWsSlK+0SGUyo9jN1x7QIqt57tJLLgb/S67mFeLVZBT7PGII/95J1\r\nJYG8jSKUDkS88lvorhYsDlz3NqnAU0m2UkkWAf4uK130SaprNpRAI0HbKMHL\r\ndrE1xec1PWglRUTiipYCuZzEUdvTJ01O/1d2J4Sf3Rw49cT4FdfT27DJbs/9\r\ny2QEzYESLUAkmfPmRGqSReUBjazPmIENuqJW1shO7SIUb1VuWi3Y7HYxvhxi\r\nl77PkYOXwUXjnAYbUhCrbUQ/fWiCgyGV6dAuIEYuM8Q0q5FWXxMyqKwEBfHZ\r\np1BfRkYbmhqUbOotJdhWCU7mICnSV+hhqHCUnQrCaYWzKPQ3Aj8WJanvQ6Jb\r\niTmL/6c9zKXIsZWP1BUri4O2VgTF6nNLOjS7xccjrbA828u3hmikz3BmnW5K\r\nWhHE/Ro7w0KzdM3WwoIl4zVJYsyHxRXYdheo920DbxpiOy6+iG/wJifrA/Kt\r\nqpGvcLql6JgEBLHkj3GoYuGphVAqNtkET9Q=\r\n=yKvh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_2.8.1-dev_1658239915927_0.853280748381287"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"3.0.0-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"3.0.0-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0-dev","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^3.0.0-dev-rc4-2-dev","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-social-media-embed":"^2.2.2","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"57a55c626a9c712be1667bcb3235bcc3738d260c","readme":"# Metahkg Web\n\nThis is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).\n\nstable (master branch): [metahkg.org](https://metahkg.org)\n\ndev (dev branch): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![License](https://img.shields.io/gitlab/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/tree/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n[![Telegram](https://patrolavia.github.io/telegram-badge/chat.svg)](https://t.me/+WbB7PyRovUY1ZDFl)\n[![Discord](https://img.shields.io/discord/992390401740775555)](https://discord.gg/yrf2v8KGdc)\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Use as a module\n\nSince v2.4.0, metahkg-web can be used as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```tsx\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE.md).\n\n### Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee [public/images/LICENSE](./public/images/LICENSE) for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@3.0.0-dev","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-26RhqIJA/cWWZq40zXRtkvslXvwvFCeVAv25SOlBOR9Wf3szR49dz6YlaYqwmf3NjIAROKSUOkLTp4Fp7gvzqQ==","shasum":"f5d0654ccdedc8ae955c35ccee80ab3240cb449a","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-3.0.0-dev.tgz","fileCount":449,"unpackedSize":1307426,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWY22F85uItb8ow0oa9SbLnY32NKYyunTNmwK7Mg2W0wIhALDm+zXYdJ6T2m5ozMyLlC68WxrSJXFA/6zvvjyJssLO"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi17baACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYTA//Xas/2YA1ChV8mpBUW6+BXij17RyJqYHX2YiZi8JgGwxd9m2E\r\nCwPRVifl2E/CRpBQ9K4IqA+MZYS8WlgbOn6ZuU1cDWZAd6u3JGxUmMQTRIw2\r\n3en4JVCVdiDNPfgk1+E4xq2Pqhr3rc7glWdolwi2npFjrMCWoJ4yIMWGYIf4\r\n5nmU2SkLMo1soD9PWNId9e0nUJ2DUcDr0sXGp+UEzzDW2IMqqhY6trRK7juh\r\nb97/GMiYLfsOlGOz7Nnx3kIJ02+FX+rzGD10ASkOZinNaUiheuc7JyJaA9Kl\r\np5MTmS1nKDS7JaJ8V20AOC3d7dIZ49F6H/Edthod061LVlzcpDvbdHpCKEbO\r\nfj7uQsK/sS3sw8F0KD+nHlRh5lgQ2vRuw2wi1eQ6IiJkZjYHXDHH7S4Gr2Uk\r\npjddbdp9m3j85KersWkoVA6aBnmi+0oBqdhuQHQ8IHrIQhyIWOu7YQeWdCzI\r\nVBXT4DIeECvPljv5Rb17enDfe/Qzga5TjpQZaM67TLSIymv4DcJyCt/RM4el\r\nGd1UHbUrqVo4GPVFJ3W0CliV5cmcU0DvCwZi9bI19lWNJff+fY9QiJ+GgXnW\r\n6ISKd28FGwr7NWrWYcF9xmD3vVN+Or8oVrXJNtIhbLQ15dtOlLFZAHE45QN0\r\neUGBvZQGscaXmBUDkpUM/deKKebXx794SBs=\r\n=ICqx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_3.0.0-dev_1658304217988_0.6172840632834182"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"3.2.0-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"3.2.0-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^3.2.0-dev-dev","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-social-media-embed":"^2.2.2","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"218aeca77bcb164c6fb2365469eab511d363044b","readme":"# Metahkg Web\n\nThis is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).\n\nstable (master branch): [metahkg.org](https://metahkg.org)\n\ndev (dev branch): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![License](https://img.shields.io/gitlab/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/tree/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n[![Telegram](https://patrolavia.github.io/telegram-badge/chat.svg)](https://t.me/+WbB7PyRovUY1ZDFl)\n[![Discord](https://img.shields.io/discord/992390401740775555)](https://discord.gg/yrf2v8KGdc)\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Use as a module\n\nSince v2.4.0, metahkg-web can be used as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```tsx\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE.md).\n\n### Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee [public/images/LICENSE](./public/images/LICENSE) for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@3.2.0-dev","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-ck4GqB8WpI4+QLlHgptmBXH9u4Wpt5Ds0m8YDM0i5O8GFv/AHwerXunD2zE3ruf2koLv9PKCTOELD1YcqiZvgg==","shasum":"abf63260d602309589b9421a52f7cb4d92d8a281","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-3.2.0-dev.tgz","fileCount":443,"unpackedSize":1300867,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEolQAcdGvaxE+58pKP0/5w5zqJLUXqSgZ1r8Blx7h9zAiAp1GA7xRoT3ikjowZqp/k1gIh8CxXyDDtV68ZtQsOL0Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi181pACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqaYA/+OustjJGW1xKNQwVvnNG/pXoJXUXYIqA9x1n2sNBBr4C4Z+cr\r\nYvrkRYz1OXVn2QvpWk5YJOuYNjmt0392X2Du1k224BMfR374NS2h4XSfjKL4\r\nxviXaOWDh3OTpxWCiuPrFKYF6IJOpBgnDeOSHGFMvMxW1h/BvlbT4cQ67MgM\r\nZbNXtI3XNSt/+pod/5HS5VkGv83loYY+R3WW2lKl+qGnJJ9opFsJc7L08dd3\r\npWiGhJLb6OrSKj5p7XJpkDOGA5IhlWba7wgfn22n1yYNDBKPuEJ6wkCqMLCA\r\n7U6Mqjh9kVdcBJGS7cOIwp+ZJQ5q8xuNiEl1+SFBsAd5PZbq7OUuIGXvSnrE\r\ncfFuP93lvlrzZHbVwTNTCspZyxnr7m1FCXUFB3P3Oc9RcM8o7FRTpikXVK6X\r\nRmvbQg7tYLWPiwMvG3HReXlnVudBHr50MuYqQZcDbDrJ4cnT3Rjp5YDglbPN\r\nXgJCDprRoVooyBlKkw/4tV+HNeRo7PDkBCrsPhPd1A8/8U7PU273dk4Jh739\r\na0m3DjFNLNSyVpLMCgZo2WqeJCCKsP0wEAFzypN0c+FlemIklso8+HMgMTAF\r\nuaxJfqTuANaEJYSsfGmbtfkv6XV5vaQI/bBJAM00qBiUwVNSScDYTdT4lc/B\r\n/l8HXenbO0u/bqrWNYqOIJIpqo3WVgFOcaU=\r\n=RW82\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_3.2.0-dev_1658309993679_0.4430621033846849"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"3.2.1-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"3.2.1-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^3.2.0-dev","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-social-media-embed":"^2.2.2","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"8096e6c3952a1ed5e6353812499152dd57b4763a","readme":"# Metahkg Web\n\nThis is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).\n\nstable (master branch): [metahkg.org](https://metahkg.org)\n\ndev (dev branch): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![License](https://img.shields.io/gitlab/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/tree/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n[![Telegram](https://patrolavia.github.io/telegram-badge/chat.svg)](https://t.me/+WbB7PyRovUY1ZDFl)\n[![Discord](https://img.shields.io/discord/992390401740775555)](https://discord.gg/yrf2v8KGdc)\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Use as a module\n\nSince v2.4.0, metahkg-web can be used as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```tsx\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE.md).\n\n### Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee [public/images/LICENSE](./public/images/LICENSE) for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@3.2.1-dev","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-wSOn1hilwyaPU0vDEtyUaqe4FLq6SEPmkRLAyLXMMuH7KJPxPaKLqU0xdzbLGF+AIEhmTeSDLHlTWh9Z3N6fnw==","shasum":"c9191678cdf9cc673209e7dd1d4c452f38b453b8","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-3.2.1-dev.tgz","fileCount":443,"unpackedSize":1300832,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmL1znr5C5UtsIBzFGeWGfpLx53OjbpUP1be/wx/6mtQIhAKdteffBVpy/LqgMMJdUyyq04ETDZrYraQw4vxrlTAUH"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi19TXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrInQ/9HrRcaRnAFRQWZ4BH1IGunYFqlrZx+Fk5Ok39ZQdPvMQTl9UV\r\nnSsozl+r4mbtu84Gzk1TcVdzNTkuVEmriUYHIfeGH1F0obnqvL8zSubGe34o\r\nXHURqF/p0IYDURLIsBnkkE2O3UIRf5NPZOMG+98COpqhv+BzAh5gDIKxwmBG\r\nmLio8Ffbu6Q2DpiDuzmGxwKtyB7LCOxTSdTGnbg8H6itojWq2Maox5o6MNO1\r\n2rGusVs7jPp0x6rUyw50UqIuuf5i3Qkx9GAgA7E0KZCN4epfdFfrl9BQYdSC\r\nUWSWP/WMrvAdVwtrHLXhFmJthsHlbY3gt0xzXcBLLpL8+yeYUUvGzO7sMfDK\r\nQHNza7abU+L7p2qfXr2dlwSz4LrWs29fMitDL8duzdT6RWswDUQeWr+oiaBM\r\nKhh0uLH4fAjrtptYHmPBoYqYfWC5kaaQpve1uO57EvMyovc0hcyZbpAImNhX\r\npIT3B7ohQGGSPfkXK6z4jz7GFFYUw4cLM7wISI0p/PBEgA5P0U+cDIZFmiBi\r\nPh7XPG+m+vSqMDAdTeAhgRLPhy2GnvpYs8Dml2pec/KHuJZG9FT9i/bXdCTa\r\nfO9Sj3tW64Wb8fQs/4T7GB19lOWW6eB8nR4jXIa9P8m+vLsXkLfYTjpwQdvl\r\nOznyAEHl9bOGJBV5lS18mr8u+BX5omVa8Ro=\r\n=q1h5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_3.2.1-dev_1658311894542_0.7080486014778595"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"3.2.2-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"3.2.2-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^3.2.0-dev","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-social-media-embed":"^2.2.2","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"0721b49d101a1f1de6f8221d1fde06430b97669f","readme":"# Metahkg Web\n\nThis is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).\n\nstable (master branch): [metahkg.org](https://metahkg.org)\n\ndev (dev branch): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![License](https://img.shields.io/gitlab/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/tree/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n[![Telegram](https://patrolavia.github.io/telegram-badge/chat.svg)](https://t.me/+WbB7PyRovUY1ZDFl)\n[![Discord](https://img.shields.io/discord/992390401740775555)](https://discord.gg/yrf2v8KGdc)\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Use as a module\n\nSince v2.4.0, metahkg-web can be used as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```tsx\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE.md).\n\n### Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee [public/images/LICENSE](./public/images/LICENSE) for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@3.2.2-dev","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-45ze66LyEi6PPIRJBPGcKh9iQD0S3Hbf6GEmE2tNWi57ReQGeLvYsuywfnAmpon4K2x13Wio5vFRhzOmfWJGNQ==","shasum":"0a0980b8ae57d83dbae504c52d35e13c2b1a0c54","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-3.2.2-dev.tgz","fileCount":443,"unpackedSize":1300573,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAlgIvb+VBcCDRZ4g1phjSZT5oqFZVhn4DiQpG9n/hfHAiAhV/RnZhTffigDumMmqmeNu0Bfz2xj8H+lA91UZCgS+Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi190NACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/RhAAnNLAFGeKXXPolzgLzs2wODr3qzrmQvYjjOE6LF5knebl5bgu\r\n5A1VIzYEHIVP5inQ4b7MGyhcKdj/+dXneOmEHLJEftV6PokaFxGC0Jw+dDR8\r\nhYAo8Od+QBh+SVqQq3UmVgjRYcoz+xb5ep8eDxglB5eYELFst8+FClHiPD3k\r\nkBpjcnXijBxIAZ640djIi6N0SOmWlGh5nMdM5xPwD5Shbnu0P69vZwC4nUpx\r\nFp/pORQLI9lotqaM0fs90HiNaYwN0yd3LIXJ2myilwo2Qj1HGXGXvf/VfYce\r\nP481HfLm9CdtQlP2KN3wcQhdal5bIIvqVMS+MuN27Dg4qF1BBAJWIo2sBl5l\r\nJVXdXCV64BikXHw01TSyJN6dnV7PHBj83HnDjfJB0HWtwJA8nY0ZxSM22vHg\r\nLh9YARPC7pjL91uxdBHcPPpki1kcG42P2JU+BFQ7P4ifUJx6zRcuoMYnUd4b\r\nd9wdocXTtilthGjIqRA3sTQAz5TSwLIUx3hOvGuvzHjDmM3MWVuggt58QOFd\r\n7ravSyoMl8V8iOxpYYA+7A7IVjOF2f5tqIfDUu5LwKc1ItAeeGpK49R8Nn26\r\nGUn+vkGS0z64Rc/nULL4mGCdnuqhYa7XB7CDiuoVN1xJuuMVYXYnrhaqpseF\r\nwgsDQCu35iG0IWMk7P4c2PNWkLFvWg1fcEg=\r\n=/9w3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_3.2.2-dev_1658313997190_0.6957054863650673"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"3.2.3-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"3.2.3-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^3.2.0-dev","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-social-media-embed":"^2.2.2","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"402c629d5235dd38af45463ed07fa28bf676ac1d","readme":"# Metahkg Web\n\nThis is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).\n\nstable (master branch): [metahkg.org](https://metahkg.org)\n\ndev (dev branch): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![License](https://img.shields.io/gitlab/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/tree/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n[![Telegram](https://patrolavia.github.io/telegram-badge/chat.svg)](https://t.me/+WbB7PyRovUY1ZDFl)\n[![Discord](https://img.shields.io/discord/992390401740775555)](https://discord.gg/yrf2v8KGdc)\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Use as a module\n\nSince v2.4.0, metahkg-web can be used as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```tsx\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE.md).\n\n### Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee [public/images/LICENSE](./public/images/LICENSE) for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@3.2.3-dev","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-jaoQyfWDI+ogRtUazcpMxEAVVQ8G3iErmk6qVz3D0OwGGqY3d8UGhPdxpm0NMVeMMl/FDd3/mCyD1wcCJzStTQ==","shasum":"b07f5257d276b7a6eb40c25f6ffa66ac59f5359a","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-3.2.3-dev.tgz","fileCount":443,"unpackedSize":1301328,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1hW6QReQT+liWhNRn2Uxbd2wnAtW7lAhSVU4ZI7HqtQIgTwYpaPL4dIBKoigIzVN7v3vKSGMYfZWXTnJfP8iqZV8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3CmAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQKg/9EDUxyUMWo4lqMbPJKZC/SpptTtTg0Ng4IToFrmTtkI1gy3Sr\r\nlQEq938J4djuW58BHzBGp1QXwsbHF24chZgtrPT2YbU0ilGX3w5osWvNNO14\r\nc5vjUksRGdkNraKljttiw+zTFVbUzVcYIraCuLJ0gqXK3XNHsMfncqyMH40p\r\nPjMJU+UpEYUsUhsaEXPWyzTP9laKEejFFEeCxGfoJREcQ1QqGSzkS445wpX+\r\nC55CIUibzwOBF+jNNOTQiQLlzMmju9z619G07DOR24PQSep9PfT656BxUXQp\r\nlul8tUlHP/8ckJwS5Mg+PpjD915gH16zL6wmJwAC5mxIJ8FkubWsnTNfSe+F\r\nXDcSr9Wx0X1qtC9Eqv7VN5XYSrC4X3HpWwZYH7kqhNFtQElVFUuY4VBukgUD\r\n3KW7IiZP44AB8rrBOQgYSAhkVGvgfebLrW5sWPMR6URmjWdkWF6JDW5h3yI0\r\nr117RvBW9liBP9Ovh7WKcvw0wAIe+B/HVTy0f8o0g6gVi0ZPCJNKDz2+4SKa\r\n+Bs3eF2iH+regLMR8E7Z+9VcEbueomSQNyzPre/rNxweuQqh7GEbBWC+ff/T\r\njt1LG1hM7iAwh+Vt7NTQPr9IxoQS8CHWTsMPp6IUD/bLtPWelJUGuGOstdw6\r\nWA4yCYDjtf4HVCdJKw+DgDv4WfXOkGKGFBc=\r\n=dchn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_3.2.3-dev_1658595712268_0.968384805406604"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"3.2.3":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"3.2.3","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","css-to-react-native":"^3.0.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^3.2.0-dev","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-social-media-embed":"^2.2.2","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"d795fa442f6fd8cc93ccc613d82dcdcc14b147bb","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@3.2.3","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-8ZNERBcGNYOmLSfaXFmDExZmqwVckm5Uzj2JZWsiR4X+KONM0gVjjLZnRXDeZy3X3MeeDGCh/XoJEByTT6Lemw==","shasum":"0d0ee151e760c0f6b5fd7736f8b271265e41e7db","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-3.2.3.tgz","fileCount":445,"unpackedSize":1304330,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDe8blzFo/0zXCcadM+qhdYIy++s7yQYuk7wRCbnMT3AQIhAMwHaY04S+HCVFYC4xn+2RAE3O5GSYgSqygWbBtIHO47"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3NQrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqrHg//f5qrkyyVuYkgmQW5loAbayaSuBewaf0rg/L5a9oAl88yKMgC\r\nI0+DUUw2mhhc7LZWXxQUtzDyZE3Om5tPPhsC+i4EP3xvbhAwJ418Qos4ctj0\r\nlhWFSB0QuX6SxGs6UCwDV6hm1BywoD1EI25IIC4PVxkmqxGc/ETMZM276Ny6\r\nXz5930/BGM8SXakoOSxjeAGbokMQttCig+vzqhiLfbWGsT+GYJ9yWpe1PbHj\r\nFXxp5MgVJlHedw2bq4t1on5DMWec9HXZNwjK+B3ulYZ5n8GWE6lKi6f8G3z2\r\n9UMWWqgrG79589H7oOgRt+sFjEGkAwphTNZNt5PozS+fQ83L3y3I5GzwPLFt\r\ngWn0K3TNEv9zp6Z8zq/ppdLru6EoT96Cg7u7uu+uKu1bnM3tvpjZ68JeaGjH\r\nLgORV9C05QXxi1ff0mfy2JkLxm1QXzdg23UFSgb1suszdAmtW1PqRnKu+tVt\r\nKXtNPrt+ynNNd2umkW/RScPc7CT9G6J2gJtHtFZM7j9Npa5WVZJyPytL7lpc\r\nS43Nsi1+bIUyugDzFZmf5sREKkoQ1YA91h3dthfX35DgOOz+Tb+GQ3r7yk3J\r\nOatxl/6U2ISV7Fp71yTO7q+isG67fWSI4z10GojvhVCR+RYzfsSkz0UxsYS5\r\nQ5+3l8GM+0h6IvDt3LJV4udk2TCoz2hDTPc=\r\n=4iol\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_3.2.3_1658639403367_0.05618312534663206"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"3.3.0-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"3.3.0-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^3.2.0-dev","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-social-media-embed":"^2.2.2","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0-dev","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"fc7c5c99ca49b41b6728278c6599ce85a7aa3784","readme":"# Metahkg Web\n\nThis is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).\n\nstable (master branch): [metahkg.org](https://metahkg.org)\n\ndev (dev branch): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![License](https://img.shields.io/gitlab/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/tree/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n[![Telegram](https://patrolavia.github.io/telegram-badge/chat.svg)](https://t.me/+WbB7PyRovUY1ZDFl)\n[![Discord](https://img.shields.io/discord/992390401740775555)](https://discord.gg/yrf2v8KGdc)\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Use as a module\n\nSince v2.4.0, metahkg-web can be used as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```tsx\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE.md).\n\n### Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee [public/images/LICENSE](./public/images/LICENSE) for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@3.3.0-dev","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-6JaL69X6meLGLNy2OzJqao1WGsLBr+uQl0xM++OuonAuiJH6qpxJ49gfG4JMcej8sFodIEymyGR8GSfLK48sKQ==","shasum":"b60590b6b5dda856c5ea33d0899e006600e91530","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-3.3.0-dev.tgz","fileCount":443,"unpackedSize":1301301,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGgnx/45x0cIL/kSTTKCOUXxkLXUR2RGY/xyjdDZM4r9AiEAz03Snu1xVKY2JUMXP/DwGfcWmZrMp/S0V/F0r89jpyM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3NkVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqwCQ//Uwhe87QGHs3ZL0Ue0AOBHT+x0AECYzagrIMnDk5AioC6lgt9\r\nim8SyP3SLyW4xO9MVgn/8LxkyWJy4+DlxtvD7BgyDiz8vQ6BFQlXpsBYLlBT\r\n4cC38b6CzYPImVk/F7+4kuh2t0pmEgATjemGD37ePDM97nYBZWcUm1io/LsH\r\nwbou2bDtnObtulf3YkegrxR3oOCSDFmEBFZSI4VWfQmJi4u7lrCmQ4pTtbUI\r\nH1ZYDfDGo0fpsYH6sVbsv2tOmgvvATWI3NOyAfkZHSDn8bycSfHTZJ40J/8+\r\nSgVlnpHoBCpZJATODTlaXc3nn3DXf8iINhUwFBUnoOM1z2VbEKFibx+/7RUS\r\nuQdOhtbQBj6uikpEwB+keDkTfuq7v6QIOIPCTW1Pl/MEF4mY0hvXzcbez97u\r\nmF77L8spJcaEmEkoOS3jXgDS1L0wnWeaWfpTsAvYIFBBArBs+EGqe8JjgX7y\r\nmOO6P4ZCVMcZ/qh71CMQjX5h+fAnzLQmNLDE8GgY0usoluXpzjhYggXvFue8\r\nS2WSbpIG+noG2QVu3K7FI6JGtS232kITF6hO9ZCtlgfWbNhSW84SCRQBuTHn\r\n6ZC3J3D+1bRl0Eo+DRT2YRaNqtDgEISHgsrWW7um6nM0mDN6YvvlCCwPjrRA\r\nHe5W2oSm2sdeAHF1Q09U3vJJC6xEXCv9dn8=\r\n=vwql\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_3.3.0-dev_1658640660856_0.8173865773391098"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"3.3.0":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"3.3.0","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.1","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@mui/icons-material":"^5.8.4","@mui/material":"^5.8.5","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.5","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","css-to-react-native":"^3.0.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^2.0.0","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-api":"^3.3.1","metahkg-css":"1.0.7","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.1","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-social-media-embed":"^2.2.2","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","screenfull":"^6.0.2","serve":"^13.0.2","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.2.1","@types/jest":"^28.1.3","eslint":"^8.18.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"3c7c01c92f69711fda6fb6f0c504f5bff5ec55e2","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@3.3.0","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-XUVJBVeIlHTjSDJK1Jy5pSQI5LPJ1UZpIvm0GV6AIBzxZBEDtGGRbLmdk3pDtQwIHIkqyBSVo8Wd7PFDKkrZeg==","shasum":"4cdb14bbb117a5175aa08d2493661ed017a6bb6f","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-3.3.0.tgz","fileCount":445,"unpackedSize":1306022,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIErPGgDUA4pCqz7L085ZXM3yTks621YNmxTNieVXrzIkAiEAiN4oAi32VHaaLn4j5pWLQbT4z4yK/8FjBqd5zN23Bcs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3NncACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp4jA//SYsucegGWW1ZsFf4oOh+krqelEDci9gkBQZYrGsk5pX8WxQd\r\nTmEcP9Rq28hmC2b5wDz0H1idDXfvmA4y3QOZ6FdhFCv3d9rIcm7uQvP7Z6IS\r\nl25cTMD+6z4IZkIZ9f80vqJS5PaAV3vW4dBX+NWxGT/pFccWZuFJDLQYgYCM\r\nfXt4grQ3Atrnw1K4YNGvUSBiVCb6Qkjt5Ss+FMXoTLJo6k9FbJkKiVHWaTGt\r\nPiUMl8GExy7OjdFb/9F3FHZG8Qvr1dX/sNBN8hN0UWg8Bksb+FaC60aBUaId\r\n1iFhRdObUw385eSouwoQJihypDIZVPi4wDaUTBaCxetwA4uPQb6h3BeAHu6R\r\nYh5BcqBjOY/HH+pG/OdQiDvpLGP+wTAeqBXKUEHQRVkFyV4Ul89hPcew/vjC\r\n2E7bKh3ymbQk6Q2zfINA9gb8R+xfDm4i9rzhWhq0PhE8bshGO0q0HPAFHN+C\r\ntugFAMm2IsTNddLhmQttO66EfWyX5ztHpHVmTcUCFdSxe4rCHzvElKHm2nBD\r\nxQiLr1u1Wyoz4qGplMBpRP9IoWUiwYKJMWeRCIapxE402FVDqllYsvJywMkQ\r\nlhFO5BO/z7VpvKq7ZLjsMwSNJTv4ZYlYmAdHt2/y1pDyzE/3QVKZyJxujfTX\r\nlUY5vRIelXXL3SpAhILKnn8tnuirV/5eZ0E=\r\n=v5hD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_3.3.0_1658640860062_0.2883064175808414"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"3.4.0-dev":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"3.4.0-dev","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.2","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@metahkg/api":"^3.4.7-dev","@mui/icons-material":"^5.8.4","@mui/material":"^5.9.1","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.6","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@types/react-visibility-sensor":"^5.1.0","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","customize-cra":"^1.0.0","date-and-time":"^2.4.0","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^3.0.1","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-css":"1.1.0","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.2","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-social-media-embed":"^2.2.2","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","screenfull":"^6.0.2","serve":"^14.0.1","typescript":"^4.7.4","webpack":"^5.73.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/user-event":"^14.3.0","@types/jest":"^28.1.6","eslint":"^8.20.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"c7b5ea28645dd35f0d7278d896bba302cebdde50","readme":"# Metahkg Web\n\nThis is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).\n\nstable (master branch): [metahkg.org](https://metahkg.org)\n\ndev (dev branch): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![License](https://img.shields.io/gitlab/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/tree/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n[![Telegram](https://patrolavia.github.io/telegram-badge/chat.svg)](https://t.me/+WbB7PyRovUY1ZDFl)\n[![Discord](https://img.shields.io/discord/992390401740775555)](https://discord.gg/yrf2v8KGdc)\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Use as a module\n\nSince v2.4.0, metahkg-web can be used as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```tsx\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE.md).\n\n### Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee [public/images/LICENSE](./public/images/LICENSE) for details.\n","readmeFilename":"README.md","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@3.4.0-dev","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-usL8N7i4UXTWVSTpV+F/r/ZscN8DewUkcsoXtloZ9yFPeGV0G3d+Vmebg78nPw1/TiBTIcbGCKc21HvzAH8HQA==","shasum":"dafad2c709ada1aa89f0153cc16f0357a7867496","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-3.4.0-dev.tgz","fileCount":427,"unpackedSize":1288403,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQrCWTLPjTRF8fVx5ch9jnFHWMM7x9Y28dcF55mXgmFQIhAJICBH5w/SVcGen8jA7WNSfTsirZXzFRvVBbt8isKjej"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4tr3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrO1g//RtwqaBIVCJIKOAFDkZFV0NdIMDs5e6i2CC4PJaKZPs2PfMmh\r\nqxHR8UYYN0p6tRUebTGmsUATi7BmOXjV5UJXzd9JvV+Yh35rW9vNH8BM49ws\r\npyaf+tHvjRzQCx9Tl4XKlGYyAa8F4n3E+FAgWQFpOFxyXpNNnKXQNzlXaLWQ\r\nTbGnJDRZQds8Xdt66PkucECcnc8ac+Lh96ZUFGncC4Qg4Do7octR44qTYFFj\r\niDvvKiRZj+x1mcN7ALO62Hm7yZ9r9+vEEYW9SJnk+5E8F4SkqKDXIvUdRZvb\r\nV9MKCB4HTz9F5QHyWduF+LlKK5poUanuj3z4Ca9tclGKLyDdP7G8JXLym8XY\r\nuEQfSEJnOYwiwDr+j7XKJV8TtpAGKCBqyODntetJj/Oy4v5X8ph7kSTB0y/w\r\nxp5fW0W7uJu0xbDCK9SlOXTGSEPECZPzuJ6Or6iPosWm98LqP8t0RsnUGHcQ\r\n/6nub7gMyq+TQNF3ihsr93wtULNtjFdU2HlbODOC4gPZK7V6cgYYd11kDRb8\r\n+cP1a3bsn0RgLEzulcln7Ljpy8Kq0WhnUWIXLf3vwmGwAYOjYUBUnbQ5Ec7t\r\nroqS8BhiIzAry4PtbYR54jFcvpLteOCQGGRIqslN6FtEXV0J2nGSLCI0MlbW\r\nYehm9+F6WluyJvyVtWv6TQqZdo9t3J4+fnc=\r\n=huwG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_3.4.0-dev_1659034358971_0.6860381911116671"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"},"3.4.0":{"name":"metahkg-web","homepage":"https://metahkg.org","repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"version":"3.4.0","main":"dist/main.js","author":{"name":"wcyat","email":"wcyat@wcyat.me"},"license":"AGPL-3.0-or-later","keywords":["forum","react"],"dependencies":{"@dhaiwat10/react-link-preview":"^1.14.2","@emotion/react":"^11.9.3","@emotion/styled":"^11.9.3","@loadable/component":"^5.15.2","@metahkg/api":"^3.4.7","@mui/icons-material":"^5.8.4","@mui/material":"^5.9.2","@tinymce/tinymce-react":"^4.1.0","@types/date-and-time":"^0.13.0","@types/humanize-duration":"^3.27.1","@types/loadable__component":"^5.13.4","@types/lodash":"^4.14.182","@types/prismjs":"^1.26.0","@types/react-dom":"^18.0.6","@types/react-google-recaptcha":"^2.1.5","@types/react-redux":"^7.1.24","@types/react-swipeable-views":"^0.13.1","@types/react-swipeable-views-utils":"^0.13.3","@wc-yat/csstojson":"^3.0.0","axios":"^0.27.2","babel-loader":"^8.2.5","babel-plugin-prismjs":"^2.1.0","css-to-react-native":"^3.0.0","customize-cra":"^1.0.0","date-and-time":"^2.4.1","email-validator":"^2.0.4","hash.js":"^1.1.7","html-react-parser":"^3.0.1","humanize-duration":"^3.27.2","is-sn-integer":"^0.3.0","jwt-decode":"^3.1.2","lodash":"^4.17.21","metahkg-css":"1.1.0","prettier":"^2.7.1","prismjs":"^1.28.0","query-string":"^7.1.1","react":"^18.2.0","react-app-rewired":"^2.2.1","react-device-detect":"^2.2.2","react-dom":"^18.2.0","react-google-recaptcha":"^2.1.0","react-image":"^4.0.3","react-photo-view":"^1.2.2","react-player":"^2.10.1","react-router-dom":"^6.2.2","react-scripts":"^5.0.1","react-social-media-embed":"^2.2.2","react-swipeable-views":"^0.14.0","react-swipeable-views-utils":"^0.14.0","react-twitter-embed":"^4.0.4","react-visibility-sensor":"^5.1.1","screenfull":"^6.0.2","serve":"^14.0.1","typescript":"^4.7.4","webpack":"^5.74.0"},"devDependencies":{"@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.6","eslint":"^8.20.0","eslint-config-react-app":"^7.0.1","husky":"^8.0.1","lint-staged":"^13.0.3"},"scripts":{"start":"serve -s","start:react":". ./scripts/prebuild.sh; npx react-app-rewired start","build":". ./scripts/prebuild.sh; npx react-app-rewired build","build:module":". ./scripts/prebuild.sh; tsc src/main.tsx --outDir ./dist --declaration --sourceMap --jsx react-jsx --target es2017 --module esnext --lib dom,dom.iterable,esnext --moduleResolution node --esModuleInterop --skipLibCheck --removeComments && cp -r src/css dist","test":"react-scripts test || echo \"no tests\"","eject":"react-scripts eject","docker":"docker build -t metahkg/metahkg-web .","deploy":"yarn build && yarn start","dev":"yarn deploy","prepare":"husky install","lint":"eslint --cache --fix src && (prettier --check src || prettier --write src)"},"eslintConfig":{"extends":["react-app","react-app/jest"]},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"lint-staged":{"*.{js,jsx,tsx,ts}":"eslint --cache --fix","*.{js,css,md,jsx,tsx,ts}":"prettier --write"},"types":"./dist/main.d.ts","gitHead":"0e5cbba7422f8183095d37b21cef064613e2288e","description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"_id":"metahkg-web@3.4.0","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-+77BCRMUqXoQyRGnmzUqroaCNYFPMkyEIoXunIg29sCzR33Ex/uOvgPUp2XcfrtdiBN8JriogeHyUmiYGHV0oQ==","shasum":"a92854e87dc8366f4102f4e380d06f02744f3730","tarball":"https://registry.npmjs.org/metahkg-web/-/metahkg-web-3.4.0.tgz","fileCount":429,"unpackedSize":1294646,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSfBIdlkfoPTT6Y2rUCgFMRrjaFoetwgRFTpZ7vndPfgIhANseRV8zXXa6CN5uLmBcrX2wa3vxAuGuRPUFdycIIgsf"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi48G6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQAg//ZnbmSdjnOzISdD1mqE5Jpm/NAg+c7R3aOJd8vyaIEfnzp2+W\r\nVApN2VF8wBp9J1STNzwBEge3CUXKppA5xigT2fiYi9hdHaVIEEBN7DMH8DGB\r\n39SFe/ZZPASwgLJcauDJ1SB1k1sYeoQ4MQ7f23gAp4W86XkOWiC7vOjvRcoj\r\ngVUf6IfWWqc4UkwYdl95jiibFiW7okSOFmzp+Ee2yetrXceg6Ob40M87LvXM\r\n/l2HeZrcimstFQZGRYaj4+PtJmDwl3pFINJrLL6r0Ypn8wmc6QKXLaynYSS6\r\nKhfeM4sj+BzO84iq7m+99lyK5W3k7MYrtfvpxfQVtIQDMcpdhrQ/sGDcAdLS\r\nfEQgOfFsLQm3XHktTtiMJg2/do2d6M9tpJmz34OjPgkP1WroG6RpRo+8rJCT\r\nm1xD7gZuwxgFG3+Wi9ccJns6fX6xZV4EKIEHuGSMCoQ4X91lrM8p/nXJ1mCu\r\nKsJ4rG94BcBEkx8iN+fYJ3/FVDcW0mqA6QeW4VKyWGuPao6vCMfThPK+FTf4\r\nATzmZPW5b5wTNdA/VwQBh8hAiUPFGTVJdjj6N8LIzd6ppFA/8OaHg10GiKvI\r\n48gU+pnSA5lJGwfEiuMlL5r8Bd7nQpK1CBS215ytrrte1jp2rw+ZpA31J67/\r\neu5eNBroUXrO0TtF+orYLijcYtW1lktpGD4=\r\n=60Ll\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wc-yat","email":"sleep@wcyat.me"},"directories":{},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/metahkg-web_3.4.0_1659093434091_0.5633167824425758"},"_hasShrinkwrap":false,"deprecated":"Please use @metahkg/web"}},"time":{"created":"2022-04-09T02:54:57.033Z","0.5.8-rc2":"2022-04-09T02:54:57.232Z","modified":"2022-08-11T15:05:27.764Z","0.5.10-rc1":"2022-04-19T06:50:27.354Z","0.6.1":"2022-06-23T10:36:34.614Z","2.4.0-dev":"2022-06-30T13:23:31.205Z","2.4.0-1-dev":"2022-06-30T13:48:43.056Z","2.4.0-3":"2022-06-30T14:39:45.845Z","2.4.0-4":"2022-06-30T14:40:11.567Z","2.4.0-3-dev":"2022-06-30T14:51:49.724Z","2.4.0-5-dev":"2022-06-30T15:03:41.956Z","2.4.0-6-dev":"2022-06-30T15:29:14.429Z","2.4.0":"2022-06-30T16:02:49.023Z","2.4.0-7-dev":"2022-06-30T16:08:04.478Z","2.4.0-7":"2022-06-30T16:09:03.131Z","2.5.0-dev":"2022-07-01T10:08:36.265Z","2.5.0-1-dev":"2022-07-02T05:17:54.515Z","2.5.0-1":"2022-07-02T08:19:17.653Z","2.6.0":"2022-07-13T10:24:30.549Z","2.7.0-dev":"2022-07-13T16:07:17.395Z","2.8.0-dev":"2022-07-16T17:46:28.719Z","2.8.1-dev":"2022-07-19T14:11:56.200Z","3.0.0-dev":"2022-07-20T08:03:38.333Z","3.2.0-dev":"2022-07-20T09:39:53.973Z","3.2.1-dev":"2022-07-20T10:11:35.030Z","3.2.2-dev":"2022-07-20T10:46:37.449Z","3.2.3-dev":"2022-07-23T17:01:52.518Z","3.2.3":"2022-07-24T05:10:03.722Z","3.3.0-dev":"2022-07-24T05:31:01.164Z","3.3.0":"2022-07-24T05:34:20.268Z","3.4.0-dev":"2022-07-28T18:52:39.196Z","3.4.0":"2022-07-29T11:17:14.381Z"},"maintainers":[{"name":"wc-yat","email":"sleep@wcyat.me"}],"description":"This is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).","homepage":"https://metahkg.org","keywords":["forum","react"],"repository":{"type":"git","url":"git+https://gitlab.com/metahkg/metahkg-web.git"},"author":{"name":"wcyat","email":"wcyat@wcyat.me"},"bugs":{"url":"https://gitlab.com/metahkg/metahkg-web/issues"},"license":"AGPL-3.0-or-later","readme":"# Metahkg Web\n\nThis is the metahkg web app. See the [metahkg repository](https://gitlab.com/metahkg/metahkg).\n\nstable (master branch): [metahkg.org](https://metahkg.org)\n\ndev (dev branch): [dev.metahkg.org](https://dev.metahkg.org)\n\n[![React](https://badges.aleen42.com/src/react.svg)](http://reactjs.org/)\n[![Typescript](https://badges.aleen42.com/src/typescript.svg)](https://www.typescriptlang.org/)\n\n[![Gitlab](https://badges.aleen42.com/src/gitlab.svg)](https://gitlab.com/metahkg/metahkg-web)\n[![Github](https://badges.aleen42.com/src/github.svg)](https://github.com/metahkg/metahkg-web)\n[![License](https://img.shields.io/gitlab/license/metahkg/metahkg-web)](https://gitlab.com/metahkg/metahkg-web/-/tree/master/LICENSE.md)\n\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=active+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![DeepSource](https://deepsource.io/gh/metahkg/metahkg-web.svg/?label=resolved+issues&show_trend=true&token=oM1NNBO8D9mefjjcuiCmPQoS)](https://deepsource.io/gh/metahkg/metahkg-web/?ref=repository-badge)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0c0ee09f0cca4d6fa17d3b4f4465faf8)](https://www.codacy.com/gl/metahkg/metahkg-web/dashboard?utm_source=gitlab.com&utm_medium=referral&utm_content=metahkg/metahkg-web&utm_campaign=Badge_Grade)\n\n[![Telegram](https://patrolavia.github.io/telegram-badge/chat.svg)](https://t.me/+WbB7PyRovUY1ZDFl)\n[![Discord](https://img.shields.io/discord/992390401740775555)](https://discord.gg/yrf2v8KGdc)\n\n## Deploying\n\n### Docker\n\nIt is recommended to use docker for deployment (also supports hot reload).\n\n[Docs](https://docs.metahkg.org/docs/category/deploy-metahkg)\n\n### Manually\n\n> **_WARNING:_** This is NOT RECOMMENDED and might be OUTDATED!\n\nFor manual deployment, see DEPLOY.md.\n\n## Use as a module\n\nSince v2.4.0, metahkg-web can be used as a module.\n\n### Install\n\n```bash\nyarn add metahkg-web\n```\n\n### Usage\n\n```tsx\nimport React from \"react\";\nimport MetahkgWebApp from \"metahkg-web\";\n\nexport default function App() {\n    return <MetahkgWebApp reCaptchaSiteKey={\"<your-recaptcha-site-key>\"} />;\n}\n```\n\n### Build from source\n\n```bash\nyarn build:module\n```\n\nThe artifact would be in ./dist\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE.md).\n\n### Logo\n\nLogo (public/images/logo.svg) originally by \"white card\", CC-BY-4.0.\nModified versions by wcyat, CC0.\nSee [public/images/LICENSE](./public/images/LICENSE) for details.\n","readmeFilename":"README.md"}