From 20d4dd42a75e23cf110db851cb4dfc7bce838e05 Mon Sep 17 00:00:00 2001 From: "ns.potapov" Date: Fri, 13 Oct 2023 09:43:04 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86?= =?UTF-8?q?=D0=B0=20=D1=81=20=D0=BD=D0=BE=D0=B2=D0=BE=D1=81=D1=82=D1=8F?= =?UTF-8?q?=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base.html | 31 + feed.html | 259 +++ package-lock.json | 1728 ++++++++++++++++- package.json | 12 +- static/css/avatar.css | 4 + static/css/base.css | 47 + static/css/center.css | 19 + static/css/feed.css | 0 static/css/left-menu.css | 7 + static/css/post.css | 12 + static/fonts/Roboto_Slab/LICENSE.txt | 202 ++ static/fonts/Roboto_Slab/README.txt | 71 + .../RobotoSlab-VariableFont_wght.ttf | Bin 0 -> 249348 bytes .../Roboto_Slab/static/RobotoSlab-Black.ttf | Bin 0 -> 127536 bytes .../Roboto_Slab/static/RobotoSlab-Bold.ttf | Bin 0 -> 127292 bytes .../static/RobotoSlab-ExtraBold.ttf | Bin 0 -> 127432 bytes .../static/RobotoSlab-ExtraLight.ttf | Bin 0 -> 126924 bytes .../Roboto_Slab/static/RobotoSlab-Light.ttf | Bin 0 -> 126916 bytes .../Roboto_Slab/static/RobotoSlab-Medium.ttf | Bin 0 -> 127204 bytes .../Roboto_Slab/static/RobotoSlab-Regular.ttf | Bin 0 -> 126524 bytes .../static/RobotoSlab-SemiBold.ttf | Bin 0 -> 127420 bytes .../Roboto_Slab/static/RobotoSlab-Thin.ttf | Bin 0 -> 125724 bytes static/img/gachi.jpg | Bin 0 -> 14537 bytes static/img/heart.svg | 21 + static/img/korgi.jpg | Bin 0 -> 142881 bytes 25 files changed, 2408 insertions(+), 5 deletions(-) create mode 100644 base.html create mode 100644 feed.html create mode 100644 static/css/avatar.css create mode 100644 static/css/base.css create mode 100644 static/css/center.css create mode 100644 static/css/feed.css create mode 100644 static/css/left-menu.css create mode 100644 static/css/post.css create mode 100644 static/fonts/Roboto_Slab/LICENSE.txt create mode 100644 static/fonts/Roboto_Slab/README.txt create mode 100644 static/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf create mode 100644 static/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf create mode 100644 static/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf create mode 100644 static/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf create mode 100644 static/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf create mode 100644 static/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf create mode 100644 static/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf create mode 100644 static/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf create mode 100644 static/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf create mode 100644 static/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf create mode 100644 static/img/gachi.jpg create mode 100644 static/img/heart.svg create mode 100644 static/img/korgi.jpg diff --git a/base.html b/base.html new file mode 100644 index 0000000..3be716c --- /dev/null +++ b/base.html @@ -0,0 +1,31 @@ + + + + + + + + + + + Неконтакте + + + +
+ +
+
+ +
+ + + + + diff --git a/feed.html b/feed.html new file mode 100644 index 0000000..ca47dd6 --- /dev/null +++ b/feed.html @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + Неконтакте + + + +
+ +
+
+ +
+
+
+
+ + + + + +
+
+
+

+ Корги – королевская порода с дружелюбным характером +

+

+ Привет, друзья! Сегодня я хочу рассказать вам о замечательной породе собак – корги. Эти + милые создания с короткими лапами и длинными ушами покорили сердца многих людей, и не + зря! Корги – это небольшие собаки, которые произошли из Уэльса. Они были выведены для + охоты на зайцев и других мелких животных. +

+
+ +
+ +
+
+
+ + + + + +
+
+
+

+ Корги - это не просто милые собачки, а настоящие друзья, которые всегда готовы составить + компанию в любых приключениях. Они очень умны и легко обучаемы, что делает их идеальными + питомцами для семей с детьми. Однако, несмотря на свою популярность, корги все же + остаются собаками, которые нуждаются в правильном уходе и заботе. +

+
+
+ +
+
+
+ + + + + +
+
+ +
+ +
+
+
+ +
+ + + + + diff --git a/package-lock.json b/package-lock.json index 51f0e5a..4cafc48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,361 @@ "bootstrap-icons": "1.11.1" }, "devDependencies": { - "http-server": "14.1.1" + "http-server": "14.1.1", + "npm-run-all": "4.1.5", + "vite": "4.4.9" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, "node_modules/@popperjs/core": { @@ -40,6 +394,40 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", @@ -49,6 +437,24 @@ "lodash": "^4.17.14" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, "node_modules/basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", @@ -94,6 +500,16 @@ } ] }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -141,6 +557,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, "node_modules/corser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", @@ -150,6 +572,22 @@ "node": ">= 0.4.0" } }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, "node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -159,6 +597,176 @@ "ms": "^2.1.1" } }, + "node_modules/define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -185,12 +793,62 @@ } } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", @@ -206,6 +864,55 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -218,6 +925,15 @@ "node": ">= 0.4.0" } }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -227,6 +943,18 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", @@ -251,6 +979,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -260,6 +1003,12 @@ "he": "bin/he" } }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -325,12 +1074,267 @@ "node": ">=0.10.0" } }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -343,6 +1347,18 @@ "node": ">=4" } }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", @@ -370,6 +1386,129 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -379,6 +1518,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", @@ -388,6 +1554,73 @@ "opener": "bin/opener-bin.js" } }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/portfinder": { "version": "1.0.32", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", @@ -402,6 +1635,34 @@ "node": ">= 0.12.0" } }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/qs": { "version": "6.11.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", @@ -417,18 +1678,114 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, + "node_modules/resolve": { + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -441,6 +1798,59 @@ "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", "dev": true }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -455,6 +1865,118 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz", + "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", + "dev": true + }, + "node_modules/string.prototype.padend": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", + "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -467,6 +1989,98 @@ "node": ">=8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/union": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", @@ -485,6 +2099,71 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", + "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -496,6 +2175,53 @@ "engines": { "node": ">=12" } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } } } } diff --git a/package.json b/package.json index d3d554a..dfafdf1 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,20 @@ { "name": "ip_pibd-21_potapov", "version": "1.0.0", - "main": "index.js", + "type": "module", "scripts": { - "start": "http-server -p 3000 ./", - "test": "echo \"Error: no test specified\" && exit 1" + "start": "vite --host 0.0.0.0 --port 80", + "serve": "http-server -p 3000 ./dist/", + "build": "vite build", + "prod": "npm-run-all build serve" }, "dependencies": { "bootstrap": "5.3.2", "bootstrap-icons": "1.11.1" }, "devDependencies": { - "http-server": "14.1.1" + "http-server": "14.1.1", + "vite": "4.4.9", + "npm-run-all": "4.1.5" } } diff --git a/static/css/avatar.css b/static/css/avatar.css new file mode 100644 index 0000000..57f5f4f --- /dev/null +++ b/static/css/avatar.css @@ -0,0 +1,4 @@ +.avatar-small { + height: 35px; + width: auto; +} diff --git a/static/css/base.css b/static/css/base.css new file mode 100644 index 0000000..5a35bf5 --- /dev/null +++ b/static/css/base.css @@ -0,0 +1,47 @@ +/* Hide scrollbar for Chrome, Safari and Opera */ +:root::-webkit-scrollbar { + display: none; +} + +/* Hide scrollbar for IE, Edge and Firefox */ +:root { + -ms-overflow-style: none; + /* IE and Edge */ + scrollbar-width: none; + /* Firefox */ +} + +@font-face { + font-family: Roboto Slab; + src: url("../fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf"); +} + +* { + font-family: Roboto Slab; +} + +a { + text-decoration: none; + color: black; +} + +a:hover { + cursor: pointer; +} + +header { + background-color: #235D70; +} + +.navbar { + color: white; +} + +.navbar-brand { + color: white; + margin-bottom: 0.2em; +} + +.navbar-brand:hover { + color: white; +} diff --git a/static/css/center.css b/static/css/center.css new file mode 100644 index 0000000..c2fb032 --- /dev/null +++ b/static/css/center.css @@ -0,0 +1,19 @@ +.wrapper { + width: 100%; +} + +.center { + width: 70%; +} + +@media screen and (min-width: 992px) { + .center { + width: 40%; + } +} + +@media screen and (max-width: 576px) { + .center { + width: 100%; + } +} diff --git a/static/css/feed.css b/static/css/feed.css new file mode 100644 index 0000000..e69de29 diff --git a/static/css/left-menu.css b/static/css/left-menu.css new file mode 100644 index 0000000..b88f2cf --- /dev/null +++ b/static/css/left-menu.css @@ -0,0 +1,7 @@ +.left-menu-item { + transition: .1s; +} + +.left-menu-item:hover { + background-color: #e8e8e8; +} diff --git a/static/css/post.css b/static/css/post.css new file mode 100644 index 0000000..0890061 --- /dev/null +++ b/static/css/post.css @@ -0,0 +1,12 @@ +.post-meta { + font-size: small; +} + +.counter-block { + transition: .1s; + cursor: pointer; +} + +.counter-block:hover { + background-color: #e8e8e8; +} diff --git a/static/fonts/Roboto_Slab/LICENSE.txt b/static/fonts/Roboto_Slab/LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/static/fonts/Roboto_Slab/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/static/fonts/Roboto_Slab/README.txt b/static/fonts/Roboto_Slab/README.txt new file mode 100644 index 0000000..091e21f --- /dev/null +++ b/static/fonts/Roboto_Slab/README.txt @@ -0,0 +1,71 @@ +Roboto Slab Variable Font +========================= + +This download contains Roboto Slab as both a variable font and static fonts. + +Roboto Slab is a variable font with this axis: + wght + +This means all the styles are contained in a single file: + RobotoSlab-VariableFont_wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Roboto Slab: + static/RobotoSlab-Thin.ttf + static/RobotoSlab-ExtraLight.ttf + static/RobotoSlab-Light.ttf + static/RobotoSlab-Regular.ttf + static/RobotoSlab-Medium.ttf + static/RobotoSlab-SemiBold.ttf + static/RobotoSlab-Bold.ttf + static/RobotoSlab-ExtraBold.ttf + static/RobotoSlab-Black.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (LICENSE.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them in your products & projects – print or digital, +commercial or otherwise. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/static/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf b/static/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e088f53c6dd59192478ba6d0d5e523c940e21fad GIT binary patch literal 249348 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