This commit is contained in:
Evert Prants 2023-10-10 20:14:53 +03:00
parent 799f50ea08
commit 001dc0b63a
Signed by: evert
GPG Key ID: 1688DA83D222D0B5
21 changed files with 7473 additions and 6312 deletions

12827
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -24,90 +24,89 @@
"test:e2e": "jest --config ./test/jest-e2e.json" "test:e2e": "jest --config ./test/jest-e2e.json"
}, },
"dependencies": { "dependencies": {
"@icynet/oauth2-provider": "^1.0.7", "@icynet/oauth2-provider": "^1.0.8",
"@nestjs/common": "^9.0.11", "@nestjs/common": "^10.2.7",
"@nestjs/core": "^9.0.11", "@nestjs/core": "^10.2.7",
"@nestjs/platform-express": "^9.0.11", "@nestjs/platform-express": "^10.2.7",
"@nestjs/serve-static": "^3.0.0", "@nestjs/serve-static": "^4.0.0",
"@nestjs/swagger": "^6.1.0", "@nestjs/swagger": "^7.1.13",
"@nestjs/throttler": "^3.0.0", "@nestjs/throttler": "^5.0.0",
"bcrypt": "^5.0.1", "bcrypt": "^5.1.1",
"class-transformer": "^0.5.1", "class-transformer": "^0.5.1",
"class-validator": "^0.13.2", "class-validator": "^0.14.0",
"connect-redis": "^6.1.3", "connect-redis": "^7.1.0",
"cookie-parser": "^1.4.6", "cookie-parser": "^1.4.6",
"cors": "^2.8.5", "cors": "^2.8.5",
"cropperjs": "^1.5.12", "cropperjs": "^1.6.1",
"csrf": "^3.1.0", "csrf": "^3.1.0",
"dotenv": "^16.0.1", "dotenv": "^16.3.1",
"express-session": "^1.17.3", "express-session": "^1.17.3",
"express-useragent": "^1.0.15", "express-useragent": "^1.0.15",
"geoip-lite": "^1.4.6", "geoip-lite": "^1.4.7",
"image-size": "^1.0.2", "image-size": "^1.0.2",
"jsonwebtoken": "^8.5.1", "jsonwebtoken": "^9.0.2",
"marked": "^4.0.18", "marked": "^9.1.0",
"mime-types": "^2.1.35", "mime-types": "^2.1.35",
"multer": "^1.4.4", "multer": "^1.4.4",
"mysql2": "^2.3.3", "mysql2": "^3.6.1",
"nodemailer": "^6.7.8", "nodemailer": "^6.9.6",
"otplib": "^12.0.1", "otplib": "^12.0.1",
"pug": "^3.0.2", "pug": "^3.0.2",
"qrcode": "^1.5.1", "qrcode": "^1.5.3",
"redis": "^4.3.0", "redis": "^4.6.10",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2", "rimraf": "^5.0.5",
"rxjs": "^7.5.6", "rxjs": "^7.8.1",
"thirty-two": "^1.0.2", "thirty-two": "^1.0.2",
"toml": "^3.0.0", "toml": "^3.0.0",
"typeorm": "^0.3.7", "typeorm": "^0.3.17",
"uuid": "^8.3.2" "uuid": "^9.0.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/preset-env": "^7.18.10", "@babel/preset-env": "^7.22.20",
"@babel/preset-typescript": "^7.18.6", "@babel/preset-typescript": "^7.23.0",
"@nestjs/cli": "^9.0.0", "@nestjs/cli": "^10.1.18",
"@nestjs/schematics": "^9.0.1", "@nestjs/schematics": "^10.0.2",
"@nestjs/testing": "^9.0.11", "@nestjs/testing": "^10.2.7",
"@types/bcrypt": "^5.0.0", "@types/bcrypt": "^5.0.0",
"@types/connect-redis": "^0.0.18", "@types/cookie-parser": "^1.4.4",
"@types/cookie-parser": "^1.4.3", "@types/cors": "^2.8.14",
"@types/cors": "^2.8.12", "@types/express": "^4.17.18",
"@types/express": "^4.17.13", "@types/express-session": "^1.17.8",
"@types/express-session": "^1.17.5", "@types/express-useragent": "^1.0.3",
"@types/express-useragent": "^1.0.2", "@types/geoip-lite": "^1.4.2",
"@types/geoip-lite": "^1.4.1", "@types/jest": "29.5.5",
"@types/jest": "28.1.7", "@types/jsonwebtoken": "^9.0.3",
"@types/jsonwebtoken": "^8.5.8",
"@types/marked": "^4.0.4", "@types/marked": "^4.0.4",
"@types/mime-types": "^2.1.1", "@types/mime-types": "^2.1.2",
"@types/multer": "^1.4.7", "@types/multer": "^1.4.8",
"@types/node": "^18.7.16", "@types/node": "^20.8.4",
"@types/nodemailer": "^6.4.5", "@types/nodemailer": "^6.4.11",
"@types/qrcode": "^1.4.3", "@types/qrcode": "^1.5.2",
"@types/supertest": "^2.0.12", "@types/supertest": "^2.0.14",
"@types/uuid": "^8.3.4", "@types/uuid": "^9.0.5",
"@typescript-eslint/eslint-plugin": "^5.33.1", "@typescript-eslint/eslint-plugin": "^6.7.5",
"@typescript-eslint/parser": "^5.33.1", "@typescript-eslint/parser": "^6.7.5",
"babel-loader": "^8.2.5", "babel-loader": "^9.1.3",
"css-loader": "^6.7.1", "css-loader": "^6.8.1",
"eslint": "^8.22.0", "eslint": "^8.51.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^9.0.0",
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^5.0.0",
"jest": "^28.1.3", "jest": "^29.7.0",
"mini-css-extract-plugin": "^2.6.1", "mini-css-extract-plugin": "^2.7.6",
"prettier": "^2.7.1", "prettier": "^3.0.3",
"sass": "^1.54.4", "sass": "^1.69.1",
"sass-loader": "^13.0.2", "sass-loader": "^13.3.2",
"source-map-support": "^0.5.21", "source-map-support": "^0.5.21",
"supertest": "^6.2.4", "supertest": "^6.3.3",
"text-loader": "^0.0.1", "text-loader": "^0.0.1",
"ts-jest": "^28.0.8", "ts-jest": "^29.1.1",
"ts-loader": "^9.3.1", "ts-loader": "^9.5.0",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"tsconfig-paths": "^4.1.0", "tsconfig-paths": "^4.2.0",
"typescript": "^4.7.4", "typescript": "^5.2.2",
"webpack": "^5.74.0", "webpack": "^5.88.2",
"webpack-cli": "^4.10.0" "webpack-cli": "^5.1.4"
}, },
"jest": { "jest": {
"moduleFileExtensions": [ "moduleFileExtensions": [

View File

@ -1,54 +1,90 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg <svg
xmlns:dc="http://purl.org/dc/elements/1.1/" width="29.898235mm"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg8"
version="1.1"
viewBox="0 0 29.898235 29.898235"
height="29.898235mm" height="29.898235mm"
width="29.898235mm"> viewBox="0 0 29.898235 29.898235"
version="1.1"
id="svg8"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="icynet-icon-analytics.svg"
inkscape:export-filename="../../../icynet-auth-server/public/image/icynet-icon.png"
inkscape:export-xdpi="231.56612"
inkscape:export-ydpi="231.56612"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs <defs
id="defs2"> id="defs2">
<filter
inkscape:label="Apparition"
inkscape:menu="Blurs"
inkscape:menu-tooltip="Edges are partly feathered out"
style="color-interpolation-filters:sRGB;"
id="filter2660"
x="-0.89911998"
y="-1.0271712"
width="2.79824"
height="3.0543424">
<feMorphology
radius="4"
in="SourceGraphic"
result="result0"
id="feMorphology2654" />
<feGaussianBlur
in="result0"
stdDeviation="8"
result="result91"
id="feGaussianBlur2656" />
<feComposite
operator="in"
in="SourceGraphic"
in2="result91"
id="feComposite2658" />
</filter>
<marker <marker
style="overflow:visible;" style="overflow:visible"
id="Arrow1Send" id="Arrow1Send"
refX="0.0" refX="0"
refY="0.0" refY="0"
orient="auto"> orient="auto">
<path <path
transform="scale(0.2) rotate(180) translate(6,0)" transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
style="fill-rule:evenodd;stroke:#03a9f4;stroke-width:1pt;stroke-opacity:1;fill:#03a9f4;fill-opacity:1" style="fill:#03a9f4;fill-opacity:1;fill-rule:evenodd;stroke:#03a9f4;stroke-width:1pt;stroke-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path856" /> id="path856" />
</marker> </marker>
<marker
style="overflow:visible;"
id="Arrow1Mend"
refX="0.0"
refY="0.0"
orient="auto">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#03a9f4;stroke-width:1pt;stroke-opacity:1;fill:#03a9f4;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path850" />
</marker>
<marker
style="overflow:visible;"
id="Arrow1Lend"
refX="0.0"
refY="0.0"
orient="auto">
<path
transform="scale(0.8) rotate(180) translate(12.5,0)"
style="fill-rule:evenodd;stroke:#03a9f4;stroke-width:1pt;stroke-opacity:1;fill:#03a9f4;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path844" />
</marker>
</defs> </defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="4"
inkscape:cx="38.75"
inkscape:cy="63"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1025"
inkscape:window-x="1920"
inkscape:window-y="31"
inkscape:window-maximized="1"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<metadata <metadata
id="metadata5"> id="metadata5">
<rdf:RDF> <rdf:RDF>
@ -57,61 +93,100 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
<g <g
transform="translate(-1.2029979e-7,-0.00176382)" inkscape:label="Layer 1"
id="layer1"> inkscape:groupmode="layer"
id="layer1"
transform="translate(-1.2029979e-7,-0.00176382)">
<rect <rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00a1b5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;font-variant-east_asian:normal" transform="rotate(4.9247462)"
y="1.0026652"
x="3.5677404"
height="25.219364"
width="25.219364"
id="rect2635"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00464f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<rect
transform="rotate(1.6937281)"
y="1.8928192"
x="2.7748053"
height="25.219364"
width="25.219364"
id="rect1083" id="rect1083"
width="24.856066" style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00707e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
height="24.856066"
x="1.5723678"
y="3.4147503"
transform="rotate(-3.5293181)" />
<rect <rect
transform="rotate(-8.5307657)" transform="rotate(-3.5293181)"
y="4.5749965" y="3.2331011"
x="0.13787289" x="1.3907185"
height="24.856066" height="25.219364"
width="24.856066" width="25.219364"
id="rect939"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00a1b5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00e1fd;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.993345;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect815" id="rect815"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00e1fd;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;font-variant-east_asian:normal" /> width="24.690649"
height="24.690649"
x="0.22058077"
y="4.6577044"
transform="rotate(-8.5307657)" />
<rect <rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#6fefff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" y="1.1378485"
x="4.3940787"
height="24.19313"
width="24.19313"
id="rect817" id="rect817"
width="24.856066" style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#6fefff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.973329;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
height="24.856066" transform="rotate(7.0463029)" />
x="2.5211489" <g
y="2.5227857" id="g603"
transform="rotate(2.4309033e-4)" /> transform="matrix(0.94264948,0.17853381,-0.17853381,0.94264948,4.0048107,-2.1374345)">
<path <g
clip-path="none"
id="path827" id="path827"
d="m 10.375347,9.502362 8.447685,9.454613 4.277499,-12.1369222" clip-path="none"
style="fill:none;fill-opacity:1;stroke:#03a9f4;stroke-width:1.876;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send)" /> transform="translate(-7.9764753,0.55048925)">
<path <path
id="path831" style="color:#000000;fill:#03a9f4;-inkscape-stroke:none"
d="M 10.375347,9.502362 6.5886091,23.968708" d="m 30.416016,6.5800781 -3.75,10.6406249 -7.390625,-8.2714842 -1.398438,1.2500002 9.503906,10.638672 4.804688,-13.6328129 z"
style="fill:none;fill-opacity:1;stroke:#03a9f4;stroke-width:1.87612462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> id="path583" />
<g
id="g573">
<g
id="path575">
<path
style="color:#000000;fill:#03a9f4;fill-rule:evenodd;stroke-width:0.3752pt;-inkscape-stroke:none"
d="m 30.553356,9.0157909 1.145752,2.3929071 0.41319,-6.8162315 -3.951849,5.5690775 z"
id="path579" />
<path
style="color:#000000;fill:#03a9f4;fill-rule:evenodd;-inkscape-stroke:none"
d="M 32.414062,3.734375 27.398437,10.804688 30.4375,9.3496094 31.890625,12.386719 Z M 31.810547,5.4492187 31.507812,10.429688 30.671875,8.6816406 30.445312,8.7910156 28.923828,9.5195313 Z"
id="path581" />
</g>
</g>
</g>
<path
style="color:#000000;fill:#03a9f4;-inkscape-stroke:none"
d="M 9.6934467,9.8883799 5.9063377,24.353223 7.7207907,24.829786 11.5079,10.362989 Z"
id="path831" />
<circle <circle
r="2.1394424" r="2.1394424"
cy="9.6658792" cy="10.288911"
cx="10.358132" cx="10.582774"
id="path833" id="circle569"
style="fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:0.92037439;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> style="fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:0.920374;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path <path
id="path833-3" id="path588"
d="m 20.970232,18.802922 a 2.1394424,2.1394424 0 0 1 -2.139443,2.139442 2.1394424,2.1394424 0 0 1 -2.139442,-2.139442 2.1394424,2.1394424 0 0 1 2.139442,-2.139443 2.1394424,2.1394424 0 0 1 2.139443,2.139443 z" d="m 21.194874,19.425953 a 2.1394424,2.1394424 0 0 1 -2.139443,2.139442 2.1394424,2.1394424 0 0 1 -2.139442,-2.139442 2.1394424,2.1394424 0 0 1 2.139442,-2.139443 2.1394424,2.1394424 0 0 1 2.139443,2.139443 z"
style="opacity:1;vector-effect:none;fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:0.92037439;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> style="vector-effect:none;fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:0.920374;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle <circle
r="2.1394424" r="2.1394424"
cy="23.691137" cy="24.314169"
cx="6.5025473" cx="6.7271886"
id="path833-6" id="circle560"
style="fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:0.92037439;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> style="fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:0.920374;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -2,36 +2,62 @@
<!-- Created with Inkscape (http://www.inkscape.org/) --> <!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg <svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="29.898235mm" width="29.898235mm"
height="29.898235mm" height="29.898235mm"
viewBox="0 0 29.898235 29.898235" viewBox="0 0 29.898235 29.898235"
version="1.1" version="1.1"
id="svg8" id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14" inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="icynet-icon-git.svg" sodipodi:docname="icynet-icon-git.svg"
inkscape:export-filename="/home/diamond/IcyNetwork/IcyNet.eu/static/image/icynet-icon-large.png" inkscape:export-filename="../../../icynet-auth-server/public/image/icynet-icon.png"
inkscape:export-xdpi="460.05008" inkscape:export-xdpi="231.56612"
inkscape:export-ydpi="460.05008"> inkscape:export-ydpi="231.56612"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs <defs
id="defs2"> id="defs2">
<filter
inkscape:label="Apparition"
inkscape:menu="Blurs"
inkscape:menu-tooltip="Edges are partly feathered out"
style="color-interpolation-filters:sRGB;"
id="filter2660"
x="-0.89911998"
y="-1.0271712"
width="2.79824"
height="3.0543424">
<feMorphology
radius="4"
in="SourceGraphic"
result="result0"
id="feMorphology2654" />
<feGaussianBlur
in="result0"
stdDeviation="8"
result="result91"
id="feGaussianBlur2656" />
<feComposite
operator="in"
in="SourceGraphic"
in2="result91"
id="feComposite2658" />
</filter>
<clipPath <clipPath
clipPathUnits="userSpaceOnUse" clipPathUnits="userSpaceOnUse"
id="clipPath877"> id="clipPath1319">
<rect <rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#6fefff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" y="0.60363495"
id="rect879" x="2.5229926"
width="24.856066" height="27.922024"
height="24.856066" width="27.922024"
x="2.5211489" id="rect1321"
y="2.5227857" style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#6fefff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.12335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
transform="rotate(2.4309033e-4)" /> transform="rotate(7.0463029)" />
</clipPath> </clipPath>
</defs> </defs>
<sodipodi:namedview <sodipodi:namedview
@ -41,9 +67,9 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="2.3312427" inkscape:zoom="4"
inkscape:cx="28.418921" inkscape:cx="14.5"
inkscape:cy="80.641272" inkscape:cy="61.25"
inkscape:document-units="mm" inkscape:document-units="mm"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="false" showgrid="false"
@ -52,14 +78,13 @@
fit-margin-right="0" fit-margin-right="0"
fit-margin-bottom="0" fit-margin-bottom="0"
inkscape:window-width="1920" inkscape:window-width="1920"
inkscape:window-height="1021" inkscape:window-height="1025"
inkscape:window-x="0" inkscape:window-x="1920"
inkscape:window-y="31" inkscape:window-y="31"
inkscape:window-maximized="1" inkscape:window-maximized="1"
inkscape:object-paths="true" inkscape:showpageshadow="2"
inkscape:snap-intersection-paths="true" inkscape:pagecheckerboard="0"
inkscape:snap-smooth-nodes="false" inkscape:deskcolor="#d1d1d1" />
inkscape:object-nodes="true" />
<metadata <metadata
id="metadata5"> id="metadata5">
<rdf:RDF> <rdf:RDF>
@ -68,7 +93,6 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
@ -78,57 +102,77 @@
id="layer1" id="layer1"
transform="translate(-1.2029979e-7,-0.00176382)"> transform="translate(-1.2029979e-7,-0.00176382)">
<rect <rect
transform="rotate(-3.5293181)" transform="rotate(4.9247462)"
y="3.4147503" y="1.0026652"
x="1.5723678" x="3.5677404"
height="24.856066" height="25.219364"
width="24.856066" width="25.219364"
id="rect1083" id="rect2635"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00a1b5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;font-variant-east_asian:normal" /> style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00464f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<rect <rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00e1fd;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;font-variant-east_asian:normal" transform="rotate(1.6937281)"
y="1.8928192"
x="2.7748053"
height="25.219364"
width="25.219364"
id="rect1083"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00707e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<rect
transform="rotate(-3.5293181)"
y="3.2331011"
x="1.3907185"
height="25.219364"
width="25.219364"
id="rect939"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00a1b5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00e1fd;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.993345;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect815" id="rect815"
width="24.856066" width="24.690649"
height="24.856066" height="24.690649"
x="0.13787289" x="0.22058077"
y="4.5749965" y="4.6577044"
transform="rotate(-8.5307657)" /> transform="rotate(-8.5307657)" />
<rect <rect
transform="rotate(2.4309033e-4)" y="1.111316"
y="2.5227857" x="4.390799"
x="2.5211489" height="24.19313"
height="24.856066" width="24.19313"
width="24.856066"
id="rect817" id="rect817"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#6fefff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#6fefff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.973329;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
transform="rotate(7.0463029)" />
<g
id="g1219"
transform="matrix(0.86645333,0,0,0.86645333,2.1159251,0.85431022)">
<path <path
style="fill:none;fill-opacity:1;stroke:#03a9f4;stroke-width:2.63730979;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" style="fill:none;fill-opacity:1;stroke:#03a9f4;stroke-width:2.63731;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 5.0038362,0.64767494 6.6339828,6.39015866 8.36023,8.3602304" d="M 2.0325457,-0.50735864 12.336539,9.0911729 20.696769,17.451403"
id="path827" id="path827"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" sodipodi:nodetypes="ccc"
clip-path="url(#clipPath877)" /> clip-path="url(#clipPath1319)" />
<path <path
style="fill:none;fill-opacity:1;stroke:#03a9f4;stroke-width:2.63730979;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" style="fill:none;fill-opacity:1;stroke:#03a9f4;stroke-width:2.63731;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 11.637819,7.0378336 V 22.098787" d="M 12.33654,9.0911729 V 24.152126"
id="path831" id="path831"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<circle <circle
style="fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:1.29379058;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" style="fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:1.29379;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path833" id="path833"
cx="11.637817" cx="12.336537"
cy="7.0378332" cy="9.0911722"
r="3.0074615" /> r="3.0074615" />
<path <path
style="opacity:1;vector-effect:none;fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:1.29379058;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" style="vector-effect:none;fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:1.29379;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 24.135889,16.54294 a 3.0074614,3.0074614 0 0 1 -3.007462,3.007461 3.0074614,3.0074614 0 0 1 -3.007461,-3.007461 3.0074614,3.0074614 0 0 1 3.007461,-3.007462 3.0074614,3.0074614 0 0 1 3.007462,3.007462 z" d="m 24.834609,18.596279 a 3.0074614,3.0074614 0 0 1 -3.007462,3.007461 3.0074614,3.0074614 0 0 1 -3.007461,-3.007461 3.0074614,3.0074614 0 0 1 3.007461,-3.007461 3.0074614,3.0074614 0 0 1 3.007462,3.007461 z"
id="path833-3" id="path833-3"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<circle <circle
style="fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:1.29379058;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" style="fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:1.29379;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path833-6" id="path833-6"
cx="11.637819" cx="12.336539"
cy="22.204615" cy="24.257954"
r="3.0074615" /> r="3.0074615" />
</g> </g>
</g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -2,37 +2,73 @@
<!-- Created with Inkscape (http://www.inkscape.org/) --> <!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg <svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="29.898235mm" width="29.898235mm"
height="29.898235mm" height="29.898235mm"
viewBox="0 0 29.898235 29.898235" viewBox="0 0 29.898235 29.898235"
version="1.1" version="1.1"
id="svg8" id="svg8"
inkscape:version="0.92.2 5c3e80d, 2017-08-06" inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="icynet-icon.svg" sodipodi:docname="icynet-icon.svg"
inkscape:export-filename="/home/diamond/IcyNetwork/IcyNet.eu/static/image/icynet-icon-large.png" inkscape:export-filename="../../../icynet-auth-server/public/image/icynet-icon.png"
inkscape:export-xdpi="460.05008" inkscape:export-xdpi="231.56612"
inkscape:export-ydpi="460.05008"> inkscape:export-ydpi="231.56612"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs <defs
id="defs2"> id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient2420">
<stop
style="stop-color:#005b8d;stop-opacity:1;"
offset="0"
id="stop2416" />
<stop
style="stop-color:#008bdc;stop-opacity:1;"
offset="1"
id="stop2418" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2420"
id="linearGradient2549"
gradientUnits="userSpaceOnUse"
x1="15.328702"
y1="15.039351"
x2="15.328702"
y2="15.942641"
gradientTransform="matrix(0.8545986,0,0,0.8545986,2.2028839,2.1880836)" />
<filter <filter
inkscape:collect="always" inkscape:label="Apparition"
style="color-interpolation-filters:sRGB" inkscape:menu="Blurs"
id="filter1378" inkscape:menu-tooltip="Edges are partly feathered out"
x="-0.024088247" style="color-interpolation-filters:sRGB;"
width="1.0481765" id="filter2660"
y="-0.023912397" x="-0.89911998"
height="1.0478248"> y="-1.0271712"
width="2.79824"
height="3.0543424">
<feMorphology
radius="4"
in="SourceGraphic"
result="result0"
id="feMorphology2654" />
<feGaussianBlur <feGaussianBlur
inkscape:collect="always" in="result0"
stdDeviation="0.19860895" stdDeviation="8"
id="feGaussianBlur1380" /> result="result91"
id="feGaussianBlur2656" />
<feComposite
operator="in"
in="SourceGraphic"
in2="result91"
id="feComposite2658" />
</filter> </filter>
</defs> </defs>
<sodipodi:namedview <sodipodi:namedview
@ -42,9 +78,9 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="5.6568543" inkscape:zoom="4"
inkscape:cx="38.38993" inkscape:cx="38.75"
inkscape:cy="45.763944" inkscape:cy="63"
inkscape:document-units="mm" inkscape:document-units="mm"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="false" showgrid="false"
@ -53,10 +89,13 @@
fit-margin-right="0" fit-margin-right="0"
fit-margin-bottom="0" fit-margin-bottom="0"
inkscape:window-width="1920" inkscape:window-width="1920"
inkscape:window-height="1011" inkscape:window-height="1025"
inkscape:window-x="0" inkscape:window-x="1920"
inkscape:window-y="0" inkscape:window-y="31"
inkscape:window-maximized="1" /> inkscape:window-maximized="1"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<metadata <metadata
id="metadata5"> id="metadata5">
<rdf:RDF> <rdf:RDF>
@ -65,7 +104,6 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
@ -75,60 +113,51 @@
id="layer1" id="layer1"
transform="translate(-1.2029979e-7,-0.00176382)"> transform="translate(-1.2029979e-7,-0.00176382)">
<rect <rect
transform="rotate(-3.5293181)" transform="rotate(4.9247462)"
y="3.4147503" y="1.0026652"
x="1.5723678" x="3.5677404"
height="24.856066" height="25.219364"
width="24.856066" width="25.219364"
id="rect1083" id="rect2635"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00a1b5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;font-variant-east_asian:normal" /> style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00464f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<rect <rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00e1fd;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;font-variant-east_asian:normal" transform="rotate(1.6937281)"
y="1.8928192"
x="2.7748053"
height="25.219364"
width="25.219364"
id="rect1083"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00707e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<rect
transform="rotate(-3.5293181)"
y="3.2331011"
x="1.3907185"
height="25.219364"
width="25.219364"
id="rect939"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00a1b5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.01462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#00e1fd;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.993345;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect815" id="rect815"
width="24.856066" width="24.690649"
height="24.856066" height="24.690649"
x="0.13787289" x="0.22058077"
y="4.5749965" y="4.6577044"
transform="rotate(-8.5307657)" /> transform="rotate(-8.5307657)" />
<rect <rect
transform="rotate(2.4309033e-4)" y="1.1378485"
y="2.5227857" x="4.3940787"
x="2.5211489" height="24.19313"
height="24.856066" width="24.19313"
width="24.856066"
id="rect817" id="rect817"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#6fefff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#6fefff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.973329;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
<text transform="rotate(7.0463029)" />
xml:space="preserve" <path
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:52.66549683px;line-height:0;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.61717373px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter1378)" id="path381"
x="14.788064" style="font-weight:bold;font-size:9.05188px;line-height:0;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient2549);fill-opacity:1;stroke-width:0.527436px"
y="14.919127" d="m 20.176626,20.410989 c 0.201451,0 0.443193,-0.04407 0.725224,-0.132202 v 0.857427 c -0.287068,0.128425 -0.639608,0.192637 -1.057619,0.192637 -0.460819,0 -0.796991,-0.115834 -1.008514,-0.347503 -0.209006,-0.234187 -0.313509,-0.584209 -0.313509,-1.050065 v -2.035916 h -0.551472 v -0.487259 l 0.634571,-0.385276 0.332394,-0.891421 h 0.736557 v 0.898976 h 1.182266 v 0.86498 h -1.182266 v 2.035916 c 0,0.163679 0.04533,0.28455 0.135979,0.362613 0.09317,0.07806 0.215301,0.117093 0.366389,0.117093 z M 15.575985,17.77072 c -0.24426,0 -0.435639,0.07806 -0.574136,0.234187 -0.138498,0.153606 -0.21782,0.372684 -0.237965,0.657234 h 1.616646 c -0.005,-0.28455 -0.07928,-0.503628 -0.222855,-0.657234 -0.143534,-0.156125 -0.337431,-0.234187 -0.58169,-0.234187 z m 0.16242,3.558131 c -0.679898,0 -1.211225,-0.187601 -1.593982,-0.562804 -0.382758,-0.375203 -0.574137,-0.906531 -0.574137,-1.593982 0,-0.707597 0.17627,-1.254034 0.52881,-1.63931 0.355057,-0.387793 0.844836,-0.58169 1.469335,-0.58169 0.596799,0 1.061395,0.169974 1.393789,0.509923 0.332395,0.339949 0.498592,0.809582 0.498592,1.408899 v 0.559028 h -2.723368 c 0.01259,0.327358 0.109542,0.582949 0.290845,0.766774 0.181306,0.183824 0.435638,0.275736 0.762997,0.275736 0.254332,0 0.494814,-0.02644 0.721447,-0.07932 0.226632,-0.05288 0.463337,-0.137238 0.710115,-0.253073 v 0.891421 c -0.201451,0.100725 -0.416752,0.175011 -0.645903,0.222856 -0.22915,0.05037 -0.508663,0.07555 -0.83854,0.07555 z m -3.097312,-0.07555 h -1.152049 v -2.466519 c 0,-0.304695 -0.05414,-0.532586 -0.16242,-0.683674 -0.10828,-0.153607 -0.280773,-0.23041 -0.517478,-0.23041 -0.322322,0 -0.55525,0.10828 -0.698784,0.32484 -0.1435337,0.214042 -0.2153006,0.570359 -0.2153006,1.06895 v 1.986813 H 8.7430125 V 17.03038 h 0.8800898 l 0.1548656,0.540141 h 0.064213 c 0.1284247,-0.203969 0.3046941,-0.357576 0.5288091,-0.460819 0.226633,-0.105763 0.483483,-0.158644 0.770551,-0.158644 0.491037,0 0.863721,0.133462 1.118053,0.400385 0.254333,0.264405 0.381499,0.647162 0.381499,1.148272 z M 20.092327,9.9537729 21.768034,6.6463105 h 1.835038 l -2.66465,4.9062525 v 3.126156 h -1.69219 v -3.071212 l -2.66465,-4.9611939 h 1.846026 z M 13.834519,7.9484203 c -0.640981,0 -1.137283,0.2417415 -1.488907,0.7252244 -0.351624,0.4798201 -0.527436,1.1501032 -0.527436,2.0108493 0,1.791084 0.672114,2.686626 2.016343,2.686626 0.564064,0 1.247167,-0.141016 2.049308,-0.423047 v 1.428472 c -0.659295,0.274706 -1.395507,0.412059 -2.208637,0.412059 -1.168417,0 -2.062127,-0.353455 -2.681132,-1.060365 -0.619005,-0.710574 -0.928507,-1.728818 -0.928507,-3.054733 0,-0.8351071 0.152004,-1.5658256 0.456012,-2.1921557 0.304008,-0.6299928 0.739875,-1.1116443 1.307602,-1.4449544 0.571388,-0.336973 1.239839,-0.5054595 2.005354,-0.5054595 0.780166,0 1.563994,0.1886316 2.351485,0.5658948 L 15.636592,8.4813503 C 15.336247,8.3385031 15.03407,8.2139696 14.730062,8.1077499 14.426053,8.0015302 14.127539,7.9484203 13.834519,7.9484203 Z M 6.6976529,14.678722 V 6.6463131 h 1.7031784 v 8.0324089 z"
id="text1264"><tspan class="UnoptimicedTransforms"
id="tspan1260" sodipodi:nodetypes="sccscsccccccccccscssccccscsscsssccssscccccccscscscccccccscscccccccccccscssccscsccsccssccccc"
sodipodi:role="line" transform="matrix(1.1198707,0,0,1.1198707,-2.0173286,-0.6488022)" />
x="14.788064"
y="14.919127"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.16637421px;line-height:0;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Bold';text-align:center;text-anchor:middle;fill:#0059a0;fill-opacity:1;stroke-width:0.61717373px">ICY</tspan><tspan
id="tspan1262"
sodipodi:role="line"
x="14.788064"
y="25.230335"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:9.05188179px;line-height:0;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Bold';text-align:center;text-anchor:middle;fill:#007104;fill-opacity:1;stroke-width:0.61717373px">net</tspan></text>
<text
id="text839"
y="14.615795"
x="14.558904"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:52.66549683px;line-height:0;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.61717373px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.16637421px;line-height:0;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Bold';text-align:center;text-anchor:middle;fill:#03a9f4;fill-opacity:1;stroke-width:0.61717373px"
y="14.615795"
x="14.558904"
sodipodi:role="line"
id="tspan1252">ICY</tspan><tspan
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:9.05188179px;line-height:0;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Bold';text-align:center;text-anchor:middle;fill:#00b300;fill-opacity:1;stroke-width:0.61717373px"
y="24.927004"
x="14.558904"
sodipodi:role="line"
id="tspan1258">net</tspan></text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -1,152 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
width="303.82721"
height="35.330757"
version="1.1"
viewBox="0 0 80.387615 9.3479292"
id="svg3874">
<metadata
id="metadata3880">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3878">
<filter
style="color-interpolation-filters:sRGB"
id="filter5033"
x="0"
y="0"
width="1.04"
height="1.0599999">
<feFlood
flood-opacity="1"
flood-color="rgb(0,89,160)"
result="flood"
id="feFlood5023" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite5025" />
<feOffset
dx="0.4"
dy="0.4"
result="offset"
id="feOffset5029" />
<feGaussianBlur
in="offset"
stdDeviation="0.3"
result="blur"
id="feGaussianBlur5027" />
<feComposite
in="SourceGraphic"
in2="blur"
operator="over"
result="composite2"
id="feComposite5031" />
</filter>
<filter
style="color-interpolation-filters:sRGB"
id="filter5045"
x="0"
y="0"
width="1.01"
height="1.0599999">
<feFlood
flood-opacity="1"
flood-color="rgb(0,113,4)"
result="flood"
id="feFlood5035" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite5037" />
<feOffset
dx="0.4"
dy="0.4"
result="offset"
id="feOffset5041" />
<feGaussianBlur
in="offset"
stdDeviation="0.3"
result="blur"
id="feGaussianBlur5039" />
<feComposite
in="SourceGraphic"
in2="blur"
operator="over"
result="composite2"
id="feComposite5043" />
</filter>
</defs>
<!--style>
text {
font-family: "Open Sans";
font-weight: bold;
text-transform: uppercase;
text-align: center;
text-shadow: 2px 2px 1px #007104;
color: #00b300;
user-select: none;
cursor: default;
}
#ts1 {
color: #03a9f4;
text-shadow: 2px 2px 1px #0059a0;
}
</style-->
<g
transform="translate(-50.340659,-159.82899)"
id="g3872"
style="filter:url(#filter5045)">
<text
x="69.641945"
y="168.53017"
xml:space="preserve"
id="text3870"><tspan
id="ts2"
x="69.641945"
y="168.53017"
style="color:#00b300;font-weight:bold;font-family:'Open Sans';text-align:center;text-transform:uppercase;fill:#00b300;fill-opacity:1">NETWORK</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.11109924px;line-height:1.25;font-family:P052;-inkscape-font-specification:P052;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="16.607485"
y="2.4248574"
id="text4974"><tspan
id="tspan4972"
x="16.607485"
y="122.5104"
style="stroke-width:0.26458332" /></text>
<g
transform="translate(-82.121269,-160.8011)"
id="g3872-7">
<text
x="81.043144"
y="169.50345"
xml:space="preserve"
id="text3870-0"
style="fill:#03a9f4;fill-opacity:1;filter:url(#filter5033)"><tspan
id="ts2-3"
x="81.043144"
y="169.50345"
style="color:#00b300;font-weight:bold;font-family:'Open Sans';text-align:center;text-transform:uppercase;fill:#03a9f4;fill-opacity:1">ICY</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -18,11 +18,17 @@ import { WellKnownModule } from './modules/well-known/well-known.module';
ServeStaticModule.forRoot({ ServeStaticModule.forRoot({
rootPath: join(__dirname, '..', 'uploads'), rootPath: join(__dirname, '..', 'uploads'),
serveRoot: '/uploads', serveRoot: '/uploads',
serveStaticOptions: {
cacheControl: true,
maxAge: 8 * 60 * 60 * 1000,
},
}), }),
ThrottlerModule.forRoot({ ThrottlerModule.forRoot([
ttl: 10, {
ttl: 10000,
limit: 10, limit: 10,
}), },
]),
ConfigurationModule, ConfigurationModule,
UtilityModule, UtilityModule,
JWTModule, JWTModule,

View File

@ -60,6 +60,7 @@ async function bootstrap() {
app.useStaticAssets(join(__dirname, '..', 'public'), { app.useStaticAssets(join(__dirname, '..', 'public'), {
prefix: '/public/', prefix: '/public/',
maxAge: 8 * 60 * 60 * 1000,
}); });
app.setBaseViewsDir(join(__dirname, '..', 'views')); app.setBaseViewsDir(join(__dirname, '..', 'views'));
app.setViewEngine('pug'); app.setViewEngine('pug');

View File

@ -1,5 +1,5 @@
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import { Client } from 'connect-redis'; import { OAuth2Client } from 'src/modules/objects/oauth2-client/oauth2-client.entity';
import { User } from 'src/modules/objects/user/user.entity'; import { User } from 'src/modules/objects/user/user.entity';
const UNPRIVILEGED_STRIP = ['id_token', 'management', 'implicit']; const UNPRIVILEGED_STRIP = ['id_token', 'management', 'implicit'];
@ -10,7 +10,7 @@ export class AdminService {
return user.privileges.some(({ name }) => name === privilege); return user.privileges.some(({ name }) => name === privilege);
} }
public userCanEditClient(user: User, client: Client): boolean { public userCanEditClient(user: User, client: OAuth2Client): boolean {
if (this.userHasPrivilege(user, 'admin:oauth2')) { if (this.userHasPrivilege(user, 'admin:oauth2')) {
return true; return true;
} }

View File

@ -509,7 +509,7 @@ export class OAuth2AdminController {
return url; return url;
} }
@Throttle(3, 60) @Throttle({ default: { limit: 3, ttl: 60000 } })
@Post('clients/:id/picture') @Post('clients/:id/picture')
@Scopes('management') @Scopes('management')
@Privileges(['admin', 'admin:oauth2'], 'self:oauth2') @Privileges(['admin', 'admin:oauth2'], 'self:oauth2')

View File

@ -27,15 +27,7 @@ export class DocumentService {
} }
public async render(input: string): Promise<string> { public async render(input: string): Promise<string> {
return new Promise((resolve, reject) => { return marked.parse(input);
marked.parse(input, (err, result) => {
if (err) {
return reject(err);
}
resolve(result);
});
});
} }
public async getDocumentBySlug( public async getDocumentBySlug(

View File

@ -13,7 +13,6 @@ export const redisProviders = [
process.env.REDIS_URL || process.env.REDIS_URL ||
config.get<string>('app.redis_url') || config.get<string>('app.redis_url') ||
'redis://localhost:6379', 'redis://localhost:6379',
legacyMode: true,
}); });
await redisClient.connect(); await redisClient.connect();

View File

@ -300,7 +300,7 @@ export class LoginController {
} }
@Post('password') @Post('password')
@Throttle(3, 60) @Throttle({ default: { limit: 3, ttl: 60000 } })
public async setNewPassword( public async setNewPassword(
@Req() req: Request, @Req() req: Request,
@Res() res: Response, @Res() res: Response,

View File

@ -39,7 +39,7 @@ export class RegisterController {
} }
@Post() @Post()
@Throttle(3, 10) @Throttle({ default: { limit: 3, ttl: 10000 } })
public async registerRequest( public async registerRequest(
@Req() req: Request, @Req() req: Request,
@Res() res: Response, @Res() res: Response,

View File

@ -2,25 +2,20 @@ import { FactoryProvider } from '@nestjs/common';
import { ConfigurationService } from 'src/modules/config/config.service'; import { ConfigurationService } from 'src/modules/config/config.service';
import * as session from 'express-session'; import * as session from 'express-session';
import * as connectRedis from 'connect-redis'; import RedisStore from 'connect-redis';
import type { RequestHandler } from 'express'; import type { RequestHandler } from 'express';
import type { Redis } from 'src/modules/redis/redis.providers'; import type { Redis } from 'src/modules/redis/redis.providers';
const RedisStore = connectRedis(session);
export const sessionProviders = [ export const sessionProviders = [
{ {
provide: 'SESSION_STORE', provide: 'SESSION_STORE',
useFactory: async (redis: Redis): Promise<connectRedis.RedisStore> => useFactory: async (redis: Redis): Promise<RedisStore> =>
new RedisStore({ client: redis }), new RedisStore({ client: redis }),
inject: ['REDIS_CLIENT'], inject: ['REDIS_CLIENT'],
} as FactoryProvider<connectRedis.RedisStore>, } as FactoryProvider<RedisStore>,
{ {
provide: 'SESSION', provide: 'SESSION',
useFactory: ( useFactory: (store: RedisStore, config: ConfigurationService) =>
store: connectRedis.RedisStore,
config: ConfigurationService,
) =>
session({ session({
name: config.get<string>('app.session_name'), name: config.get<string>('app.session_name'),
secret: config.get<string>('app.session_secret'), secret: config.get<string>('app.session_secret'),

View File

@ -89,7 +89,7 @@ export class SettingsController {
res.redirect('/account/general'); res.redirect('/account/general');
} }
@Throttle(3, 60) @Throttle({ default: { limit: 3, ttl: 60000 } })
@Post('avatar') @Post('avatar')
@UseInterceptors(FileInterceptor('file')) @UseInterceptors(FileInterceptor('file'))
async uploadAvatarFile( async uploadAvatarFile(