aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar muhamedsalih-tw <104364298+muhamedsalih-tw@users.noreply.github.com>2022-10-23 16:19:40 +0530
committerLibravatar GitHub <noreply@github.com>2022-10-23 10:49:40 +0000
commitc9f8a4e90beb48f96008f3417d603c8e35bc2985 (patch)
tree6161edd53c83df8030b4177fb4df462ed63b77ac
parent6.2.1-nightly.26 [skip ci] (diff)
downloadferdium-app-c9f8a4e90beb48f96008f3417d603c8e35bc2985.tar.gz
ferdium-app-c9f8a4e90beb48f96008f3417d603c8e35bc2985.tar.zst
ferdium-app-c9f8a4e90beb48f96008f3417d603c8e35bc2985.zip
chore: convert some js scripts & gulpfile into typescript (#693)
-rw-r--r--.eslintignore4
-rw-r--r--.gitignore3
-rw-r--r--gulpfile.babel.ts (renamed from gulpfile.babel.js)85
-rw-r--r--package-lock.json723
-rw-r--r--package.json18
-rw-r--r--scripts/theme/default/legacy.js38
-rw-r--r--scripts/theme/default/legacy.ts46
-rw-r--r--src/@types/kebab-case.d.ts1
-rw-r--r--tsconfig.json1
9 files changed, 815 insertions, 104 deletions
diff --git a/.eslintignore b/.eslintignore
index 820648215..f874f2272 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -28,3 +28,7 @@ npm-debug.log.*
28/build/ 28/build/
29/out/ 29/out/
30/recipes/ 30/recipes/
31
32# package files
33package.json
34package-lock.json
diff --git a/.gitignore b/.gitignore
index 77e359b22..2e8b1af49 100644
--- a/.gitignore
+++ b/.gitignore
@@ -353,3 +353,6 @@ server*.log
353/src/internal-server/public/privacy.html 353/src/internal-server/public/privacy.html
354 354
355/src/internal-server/user_data/ 355/src/internal-server/user_data/
356
357# env
358.envrc
diff --git a/gulpfile.babel.js b/gulpfile.babel.ts
index 447542f56..5d3510715 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.ts
@@ -7,7 +7,6 @@ import csso from 'gulp-csso';
7import terser from 'gulp-terser'; 7import terser from 'gulp-terser';
8import htmlMin from 'gulp-htmlmin'; 8import htmlMin from 'gulp-htmlmin';
9import connect from 'gulp-connect'; 9import connect from 'gulp-connect';
10import { exec } from 'child_process';
11import sassVariables from 'gulp-sass-variables'; 10import sassVariables from 'gulp-sass-variables';
12import { removeSync, outputJson } from 'fs-extra'; 11import { removeSync, outputJson } from 'fs-extra';
13import kebabCase from 'kebab-case'; 12import kebabCase from 'kebab-case';
@@ -17,7 +16,7 @@ import ts from 'gulp-typescript';
17import * as buildInfo from 'preval-build-info'; 16import * as buildInfo from 'preval-build-info';
18import config from './package.json'; 17import config from './package.json';
19 18
20import * as rawStyleConfig from './scripts/theme/default/legacy'; 19import rawStyleConfig from './scripts/theme/default/legacy';
21 20
22import 'dotenv/config'; 21import 'dotenv/config';
23 22
@@ -67,56 +66,34 @@ const paths = {
67 dest: 'build/styles', 66 dest: 'build/styles',
68 watch: 'src/styles/**/*.scss', 67 watch: 'src/styles/**/*.scss',
69 }, 68 },
70 javascripts: { 69 javascript: {
71 src: ['src/**/*.js', 'src/**/*.jsx'], 70 src: ['src/**/*.js', 'src/**/*.jsx'],
72 dest: 'build/', 71 dest: 'build/',
73 watch: ['src/**/*.js', 'src/**/*.jsx'], 72 watch: ['src/**/*.js', 'src/**/*.jsx'],
74 }, 73 },
75 typescripts: { 74 typescript: {
76 src: ['src/**/*.ts', 'src/**/*.tsx'], 75 src: ['src/**/*.ts', 'src/**/*.tsx'],
77 dest: 'build/', 76 dest: 'build/',
78 watch: ['src/**/*.ts', 'src/**/*.tsx'], 77 watch: ['src/**/*.ts', 'src/**/*.tsx'],
79 }, 78 },
80}; 79};
81 80
82// eslint-disable-next-line no-unused-vars 81const clean: (done: any) => void = done => {
83function _shell(cmd, cb) {
84 console.log('executing', cmd);
85 exec(
86 cmd,
87 {
88 cwd: paths.dest,
89 },
90 (error, stdout, stderr) => {
91 if (error) {
92 console.error(`exec error: ${error}`);
93 return;
94 }
95 console.log(`stdout: ${stdout}`);
96 console.log(`stderr: ${stderr}`);
97
98 cb();
99 },
100 );
101}
102
103const clean = done => {
104 removeSync(paths.tmp); 82 removeSync(paths.tmp);
105 removeSync(paths.dest); 83 removeSync(paths.dest);
106 removeSync(paths.dist); 84 removeSync(paths.dist);
107 85
108 done(); 86 done();
109}; 87};
110export { clean };
111 88
112export function mvSrc() { 89function mvSrc() {
113 return gulp 90 return gulp
114 .src( 91 .src(
115 [ 92 [
116 `${paths.src}/*`, 93 `${paths.src}/*`,
117 `${paths.src}/*/**`, 94 `${paths.src}/*/**`,
118 `!${paths.javascripts.watch[0]}`, 95 `!${paths.javascript.watch[0]}`,
119 `!${paths.typescripts.watch[0]}`, 96 `!${paths.typescript.watch[0]}`,
120 `!${paths.src}/styles/**`, 97 `!${paths.src}/styles/**`,
121 ], 98 ],
122 { since: gulp.lastRun(mvSrc) }, 99 { since: gulp.lastRun(mvSrc) },
@@ -124,11 +101,11 @@ export function mvSrc() {
124 .pipe(gulp.dest(paths.dest)); 101 .pipe(gulp.dest(paths.dest));
125} 102}
126 103
127export function mvPackageJson() { 104function mvPackageJson() {
128 return gulp.src(['./package.json']).pipe(gulp.dest(paths.dest)); 105 return gulp.src(['./package.json']).pipe(gulp.dest(paths.dest));
129} 106}
130 107
131export function exportBuildInfo() { 108function BuildInfo() {
132 const buildInfoData = { 109 const buildInfoData = {
133 timestamp: buildInfo.timestamp, 110 timestamp: buildInfo.timestamp,
134 gitHashShort: buildInfo.gitHashShort, 111 gitHashShort: buildInfo.gitHashShort,
@@ -137,7 +114,7 @@ export function exportBuildInfo() {
137 return outputJson(paths.buildInfoDestFile, buildInfoData); 114 return outputJson(paths.buildInfoDestFile, buildInfoData);
138} 115}
139 116
140export function html() { 117function html() {
141 return gulp 118 return gulp
142 .src(paths.html.src, { since: gulp.lastRun(html) }) 119 .src(paths.html.src, { since: gulp.lastRun(html) })
143 .pipe( 120 .pipe(
@@ -154,7 +131,7 @@ export function html() {
154 .pipe(connect.reload()); 131 .pipe(connect.reload());
155} 132}
156 133
157export function styles() { 134function styles(): NodeJS.ReadWriteStream {
158 return gulp 135 return gulp
159 .src(paths.styles.src) 136 .src(paths.styles.src)
160 .pipe( 137 .pipe(
@@ -185,22 +162,22 @@ export function styles() {
185 .pipe(connect.reload()); 162 .pipe(connect.reload());
186} 163}
187 164
188export function processJavascripts() { 165function processJavascript() {
189 return gulp 166 return gulp
190 .src(paths.javascripts.src, { since: gulp.lastRun(processJavascripts) }) 167 .src(paths.javascript.src, { since: gulp.lastRun(processJavascript) })
191 .pipe( 168 .pipe(
192 babel({ 169 babel({
193 comments: false, 170 comments: false,
194 }), 171 }),
195 ) 172 )
196 .pipe(gulpIf(!isDevBuild, terser())) // Only uglify in production to speed up dev builds 173 .pipe(gulpIf(!isDevBuild, terser())) // Only uglify in production to speed up dev builds
197 .pipe(gulp.dest(paths.javascripts.dest)) 174 .pipe(gulp.dest(paths.javascript.dest))
198 .pipe(connect.reload()); 175 .pipe(connect.reload());
199} 176}
200 177
201export function processTypescripts() { 178function processTypescript() {
202 return gulp 179 return gulp
203 .src(paths.typescripts.src, { since: gulp.lastRun(processTypescripts) }) 180 .src(paths.typescript.src, { since: gulp.lastRun(processTypescript) })
204 .pipe(tsProject()) 181 .pipe(tsProject())
205 .js.pipe( 182 .js.pipe(
206 babel({ 183 babel({
@@ -208,55 +185,49 @@ export function processTypescripts() {
208 }), 185 }),
209 ) 186 )
210 .pipe(gulpIf(!isDevBuild, terser())) // Only uglify in production to speed up dev builds 187 .pipe(gulpIf(!isDevBuild, terser())) // Only uglify in production to speed up dev builds
211 .pipe(gulp.dest(paths.typescripts.dest)) 188 .pipe(gulp.dest(paths.typescript.dest))
212 .pipe(connect.reload()); 189 .pipe(connect.reload());
213} 190}
214 191
215export function watch() { 192function watch() {
216 gulp.watch(paths.styles.watch, styles); 193 gulp.watch(paths.styles.watch, styles);
217 194
218 gulp.watch([paths.src], mvSrc); 195 gulp.watch([paths.src], mvSrc);
219 196
220 gulp.watch(paths.javascripts.watch, processJavascripts); 197 gulp.watch(paths.javascript.watch, processJavascript);
221 gulp.watch(paths.typescripts.watch, processTypescripts); 198 gulp.watch(paths.typescript.watch, processTypescript);
222} 199}
223 200
224export function webserver() { 201function webserver() {
225 connect.server({ 202 connect.server({
226 root: paths.dest, 203 root: paths.dest,
227 livereload: true, 204 livereload: true,
228 }); 205 });
229} 206}
230 207
231export function recipes() { 208function recipes() {
232 return gulp 209 return gulp
233 .src(paths.recipes.src, { since: gulp.lastRun(recipes) }) 210 .src(paths.recipes.src, { since: gulp.lastRun(recipes) })
234 .pipe(gulp.dest(paths.recipes.dest)); 211 .pipe(gulp.dest(paths.recipes.dest));
235} 212}
236 213
237export function recipeInfo() { 214function recipeInfo() {
238 return gulp 215 return gulp
239 .src(paths.recipeInfo.src, { since: gulp.lastRun(recipeInfo) }) 216 .src(paths.recipeInfo.src, { since: gulp.lastRun(recipeInfo) })
240 .pipe(gulp.dest(paths.recipeInfo.dest)); 217 .pipe(gulp.dest(paths.recipeInfo.dest));
241} 218}
242 219
243const build = gulp.series( 220export const build = gulp.series(
244 clean, 221 clean,
245 gulp.parallel( 222 gulp.parallel(mvSrc, mvPackageJson, BuildInfo),
246 mvSrc,
247 mvPackageJson,
248 exportBuildInfo,
249 ),
250 gulp.parallel( 223 gulp.parallel(
251 html, 224 html,
252 processJavascripts, 225 processJavascript,
253 processTypescripts, 226 processTypescript,
254 styles, 227 styles,
255 recipes, 228 recipes,
256 recipeInfo, 229 recipeInfo,
257 ), 230 ),
258); 231);
259export { build };
260 232
261const dev = gulp.series(build, gulp.parallel(webserver, watch)); 233export const dev = gulp.series(build, gulp.parallel(webserver, watch));
262export { dev };
diff --git a/package-lock.json b/package-lock.json
index 96181c80e..f1af75e17 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -105,6 +105,17 @@
105 "@types/color": "3.0.3", 105 "@types/color": "3.0.3",
106 "@types/expect.js": "0.3.29", 106 "@types/expect.js": "0.3.29",
107 "@types/fs-extra": "9.0.13", 107 "@types/fs-extra": "9.0.13",
108 "@types/gulp": "4.0.9",
109 "@types/gulp-babel": "6.1.30",
110 "@types/gulp-connect": "5.0.5",
111 "@types/gulp-csso": "4.0.1",
112 "@types/gulp-htmlmin": "1.3.32",
113 "@types/gulp-if": "0.0.34",
114 "@types/gulp-sass": "5.0.0",
115 "@types/gulp-sass-variables": "1.2.2",
116 "@types/gulp-terser": "1.2.1",
117 "@types/gulp-typescript": "2.13.0",
118 "@types/hex-rgb": "4.1.1",
108 "@types/jest": "28.1.4", 119 "@types/jest": "28.1.4",
109 "@types/lodash": "4.14.186", 120 "@types/lodash": "4.14.186",
110 "@types/mime-types": "2.1.1", 121 "@types/mime-types": "2.1.1",
@@ -113,6 +124,7 @@
113 "@types/react": "17.0.45", 124 "@types/react": "17.0.45",
114 "@types/react-dom": "17.0.17", 125 "@types/react-dom": "17.0.17",
115 "@types/route-parser": "0.1.4", 126 "@types/route-parser": "0.1.4",
127 "@types/sass": "1.43.1",
116 "@types/tar": "6.1.3", 128 "@types/tar": "6.1.3",
117 "@types/uuid": "8.3.4", 129 "@types/uuid": "8.3.4",
118 "@types/validator": "13.7.7", 130 "@types/validator": "13.7.7",
@@ -4748,6 +4760,16 @@
4748 "@types/node": "*" 4760 "@types/node": "*"
4749 } 4761 }
4750 }, 4762 },
4763 "node_modules/@types/clean-css": {
4764 "version": "4.2.6",
4765 "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.6.tgz",
4766 "integrity": "sha512-Ze1tf+LnGPmG6hBFMi0B4TEB0mhF7EiMM5oyjLDNPE9hxrPU0W+5+bHvO+eFPA+bt0iC1zkQMoU/iGdRVjcRbw==",
4767 "dev": true,
4768 "dependencies": {
4769 "@types/node": "*",
4770 "source-map": "^0.6.0"
4771 }
4772 },
4751 "node_modules/@types/color": { 4773 "node_modules/@types/color": {
4752 "version": "3.0.3", 4774 "version": "3.0.3",
4753 "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.3.tgz", 4775 "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.3.tgz",
@@ -4826,6 +4848,12 @@
4826 "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", 4848 "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
4827 "dev": true 4849 "dev": true
4828 }, 4850 },
4851 "node_modules/@types/expect": {
4852 "version": "1.20.4",
4853 "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz",
4854 "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==",
4855 "dev": true
4856 },
4829 "node_modules/@types/expect.js": { 4857 "node_modules/@types/expect.js": {
4830 "version": "0.3.29", 4858 "version": "0.3.29",
4831 "resolved": "https://registry.npmjs.org/@types/expect.js/-/expect.js-0.3.29.tgz", 4859 "resolved": "https://registry.npmjs.org/@types/expect.js/-/expect.js-0.3.29.tgz",
@@ -4869,12 +4897,21 @@
4869 "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", 4897 "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
4870 "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", 4898 "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
4871 "dev": true, 4899 "dev": true,
4872 "optional": true,
4873 "dependencies": { 4900 "dependencies": {
4874 "@types/minimatch": "*", 4901 "@types/minimatch": "*",
4875 "@types/node": "*" 4902 "@types/node": "*"
4876 } 4903 }
4877 }, 4904 },
4905 "node_modules/@types/glob-stream": {
4906 "version": "6.1.1",
4907 "resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-6.1.1.tgz",
4908 "integrity": "sha512-AGOUTsTdbPkRS0qDeyeS+6KypmfVpbT5j23SN8UPG63qjKXNKjXn6V9wZUr8Fin0m9l8oGYaPK8b2WUMF8xI1A==",
4909 "dev": true,
4910 "dependencies": {
4911 "@types/glob": "*",
4912 "@types/node": "*"
4913 }
4914 },
4878 "node_modules/@types/graceful-fs": { 4915 "node_modules/@types/graceful-fs": {
4879 "version": "4.1.5", 4916 "version": "4.1.5",
4880 "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", 4917 "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
@@ -4884,6 +4921,274 @@
4884 "@types/node": "*" 4921 "@types/node": "*"
4885 } 4922 }
4886 }, 4923 },
4924 "node_modules/@types/gulp": {
4925 "version": "4.0.9",
4926 "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.9.tgz",
4927 "integrity": "sha512-zzT+wfQ8uwoXjDhRK9Zkmmk09/fbLLmN/yDHFizJiEKIve85qutOnXcP/TM2sKPBTU+Jc16vfPbOMkORMUBN7Q==",
4928 "dev": true,
4929 "dependencies": {
4930 "@types/undertaker": "*",
4931 "@types/vinyl-fs": "*",
4932 "chokidar": "^3.3.1"
4933 }
4934 },
4935 "node_modules/@types/gulp-babel": {
4936 "version": "6.1.30",
4937 "resolved": "https://registry.npmjs.org/@types/gulp-babel/-/gulp-babel-6.1.30.tgz",
4938 "integrity": "sha512-tMs5xeU3iZy0eXwMudKtLonhMrvZLj804lL68Sv+IofA9bReGWFukPYXxWVGWlw7vXdVloP10Fycs5ecrx+eMA==",
4939 "dev": true,
4940 "dependencies": {
4941 "@types/node": "*"
4942 }
4943 },
4944 "node_modules/@types/gulp-connect": {
4945 "version": "5.0.5",
4946 "resolved": "https://registry.npmjs.org/@types/gulp-connect/-/gulp-connect-5.0.5.tgz",
4947 "integrity": "sha512-E4xB9CyVj6a2dKImazVQm5FFHrwJ4W91wK00y4MqFDGDyHaRsJRFIkA7+9h9SvN69dKvXMQI7F/q1jS6LVPeqQ==",
4948 "dev": true,
4949 "dependencies": {
4950 "@types/connect": "*"
4951 }
4952 },
4953 "node_modules/@types/gulp-csso": {
4954 "version": "4.0.1",
4955 "resolved": "https://registry.npmjs.org/@types/gulp-csso/-/gulp-csso-4.0.1.tgz",
4956 "integrity": "sha512-o+REOxQd5iQpGK5bSjtvwunr3x3XuYn2eEFyhndOM/MLugo/NP8F6+c/2Pmg9KACOvVKoZtNwNHmAk/qzGWgLA==",
4957 "dev": true,
4958 "dependencies": {
4959 "@types/node": "*"
4960 }
4961 },
4962 "node_modules/@types/gulp-htmlmin": {
4963 "version": "1.3.32",
4964 "resolved": "https://registry.npmjs.org/@types/gulp-htmlmin/-/gulp-htmlmin-1.3.32.tgz",
4965 "integrity": "sha512-G/xcBVxm0haTePU+Z8nGs+pL7tl489v2gKzm4ARrv7o9taoaXRgRbp58yDz/XkuqFUHeU5Z0/YiR9RsN+M6LSQ==",
4966 "dev": true,
4967 "dependencies": {
4968 "@types/html-minifier": "*",
4969 "@types/node": "*"
4970 }
4971 },
4972 "node_modules/@types/gulp-if": {
4973 "version": "0.0.34",
4974 "resolved": "https://registry.npmjs.org/@types/gulp-if/-/gulp-if-0.0.34.tgz",
4975 "integrity": "sha512-r2A04hHDC+ZWMRAm+3q6/UeC3ggvl+TZm9P1+2umnp4q9bOlBmUQnR178Io3c0DkZPQAwup8VNtOvmvaWCpP5w==",
4976 "dev": true,
4977 "dependencies": {
4978 "@types/node": "*",
4979 "@types/vinyl": "*"
4980 }
4981 },
4982 "node_modules/@types/gulp-sass": {
4983 "version": "5.0.0",
4984 "resolved": "https://registry.npmjs.org/@types/gulp-sass/-/gulp-sass-5.0.0.tgz",
4985 "integrity": "sha512-7p7nT+IKDREyJzTH13/FC/j3fobDBZTclSJFrgAJA+qzNZgzCENAx3HeiO4N7QlraLRqx44u3OR0Aq0Jw4wz8Q==",
4986 "dev": true,
4987 "dependencies": {
4988 "@types/node": "*",
4989 "@types/node-sass": "*"
4990 }
4991 },
4992 "node_modules/@types/gulp-sass-variables": {
4993 "version": "1.2.2",
4994 "resolved": "https://registry.npmjs.org/@types/gulp-sass-variables/-/gulp-sass-variables-1.2.2.tgz",
4995 "integrity": "sha512-LKlcWWz7s5u/1UAP3mWsuMQ6a49EQj5EfePh7nPQRlQbD5nBgW4X0/v1zz3iqih3z04FGKxGfk50am2j21zFPQ==",
4996 "dev": true,
4997 "dependencies": {
4998 "@types/node": "*"
4999 }
5000 },
5001 "node_modules/@types/gulp-terser": {
5002 "version": "1.2.1",
5003 "resolved": "https://registry.npmjs.org/@types/gulp-terser/-/gulp-terser-1.2.1.tgz",
5004 "integrity": "sha512-6sLk/x9MOiKr2pH+FShPIiACKf39u90cF97R+wZyVCGXWIuBQnJEQ54O5VslLMfn//15rPRljsh30c+re6MRLw==",
5005 "dev": true,
5006 "dependencies": {
5007 "@types/node": "*",
5008 "terser": "^4.0.0"
5009 }
5010 },
5011 "node_modules/@types/gulp-terser/node_modules/terser": {
5012 "version": "4.8.1",
5013 "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz",
5014 "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==",
5015 "dev": true,
5016 "dependencies": {
5017 "commander": "^2.20.0",
5018 "source-map": "~0.6.1",
5019 "source-map-support": "~0.5.12"
5020 },
5021 "bin": {
5022 "terser": "bin/terser"
5023 },
5024 "engines": {
5025 "node": ">=6.0.0"
5026 }
5027 },
5028 "node_modules/@types/gulp-typescript": {
5029 "version": "2.13.0",
5030 "resolved": "https://registry.npmjs.org/@types/gulp-typescript/-/gulp-typescript-2.13.0.tgz",
5031 "integrity": "sha512-LKtclXKmzr4qvxoG/Z9ysRxNCUlU3CpXk2NFxwAONQ5u5cAfsmBZnZP39s2mRwAy+IYTmCGEIOOjlMsct9A6uA==",
5032 "deprecated": "This is a stub types definition for gulp-typescript (https://github.com/ivogabe/gulp-typescript). gulp-typescript provides its own type definitions, so you don't need @types/gulp-typescript installed!",
5033 "dev": true,
5034 "dependencies": {
5035 "gulp-typescript": "*"
5036 }
5037 },
5038 "node_modules/@types/gulp/node_modules/anymatch": {
5039 "version": "3.1.2",
5040 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
5041 "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
5042 "dev": true,
5043 "dependencies": {
5044 "normalize-path": "^3.0.0",
5045 "picomatch": "^2.0.4"
5046 },
5047 "engines": {
5048 "node": ">= 8"
5049 }
5050 },
5051 "node_modules/@types/gulp/node_modules/binary-extensions": {
5052 "version": "2.2.0",
5053 "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
5054 "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
5055 "dev": true,
5056 "engines": {
5057 "node": ">=8"
5058 }
5059 },
5060 "node_modules/@types/gulp/node_modules/braces": {
5061 "version": "3.0.2",
5062 "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
5063 "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
5064 "dev": true,
5065 "dependencies": {
5066 "fill-range": "^7.0.1"
5067 },
5068 "engines": {
5069 "node": ">=8"
5070 }
5071 },
5072 "node_modules/@types/gulp/node_modules/chokidar": {
5073 "version": "3.5.3",
5074 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
5075 "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
5076 "dev": true,
5077 "funding": [
5078 {
5079 "type": "individual",
5080 "url": "https://paulmillr.com/funding/"
5081 }
5082 ],
5083 "dependencies": {
5084 "anymatch": "~3.1.2",
5085 "braces": "~3.0.2",
5086 "glob-parent": "~5.1.2",
5087 "is-binary-path": "~2.1.0",
5088 "is-glob": "~4.0.1",
5089 "normalize-path": "~3.0.0",
5090 "readdirp": "~3.6.0"
5091 },
5092 "engines": {
5093 "node": ">= 8.10.0"
5094 },
5095 "optionalDependencies": {
5096 "fsevents": "~2.3.2"
5097 }
5098 },
5099 "node_modules/@types/gulp/node_modules/fill-range": {
5100 "version": "7.0.1",
5101 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
5102 "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
5103 "dev": true,
5104 "dependencies": {
5105 "to-regex-range": "^5.0.1"
5106 },
5107 "engines": {
5108 "node": ">=8"
5109 }
5110 },
5111 "node_modules/@types/gulp/node_modules/fsevents": {
5112 "version": "2.3.2",
5113 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
5114 "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
5115 "dev": true,
5116 "hasInstallScript": true,
5117 "optional": true,
5118 "os": [
5119 "darwin"
5120 ],
5121 "engines": {
5122 "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
5123 }
5124 },
5125 "node_modules/@types/gulp/node_modules/glob-parent": {
5126 "version": "5.1.2",
5127 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
5128 "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
5129 "dev": true,
5130 "dependencies": {
5131 "is-glob": "^4.0.1"
5132 },
5133 "engines": {
5134 "node": ">= 6"
5135 }
5136 },
5137 "node_modules/@types/gulp/node_modules/is-binary-path": {
5138 "version": "2.1.0",
5139 "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
5140 "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
5141 "dev": true,
5142 "dependencies": {
5143 "binary-extensions": "^2.0.0"
5144 },
5145 "engines": {
5146 "node": ">=8"
5147 }
5148 },
5149 "node_modules/@types/gulp/node_modules/is-number": {
5150 "version": "7.0.0",
5151 "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
5152 "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
5153 "dev": true,
5154 "engines": {
5155 "node": ">=0.12.0"
5156 }
5157 },
5158 "node_modules/@types/gulp/node_modules/readdirp": {
5159 "version": "3.6.0",
5160 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
5161 "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
5162 "dev": true,
5163 "dependencies": {
5164 "picomatch": "^2.2.1"
5165 },
5166 "engines": {
5167 "node": ">=8.10.0"
5168 }
5169 },
5170 "node_modules/@types/gulp/node_modules/to-regex-range": {
5171 "version": "5.0.1",
5172 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
5173 "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
5174 "dev": true,
5175 "dependencies": {
5176 "is-number": "^7.0.0"
5177 },
5178 "engines": {
5179 "node": ">=8.0"
5180 }
5181 },
5182 "node_modules/@types/hex-rgb": {
5183 "version": "4.1.1",
5184 "resolved": "https://registry.npmjs.org/@types/hex-rgb/-/hex-rgb-4.1.1.tgz",
5185 "integrity": "sha512-FHOC5mHnkCnMSzbTJCVnCPqw5TxKABoAkaP1Zdo8p5xa6AS13ty7V8kgpojYt20yIok6wZVlNWRqndUIUuJpKQ==",
5186 "deprecated": "This is a stub types definition. hex-rgb provides its own type definitions, so you do not need this installed.",
5187 "dev": true,
5188 "dependencies": {
5189 "hex-rgb": "*"
5190 }
5191 },
4887 "node_modules/@types/hoist-non-react-statics": { 5192 "node_modules/@types/hoist-non-react-statics": {
4888 "version": "3.3.1", 5193 "version": "3.3.1",
4889 "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", 5194 "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
@@ -4893,6 +5198,17 @@
4893 "hoist-non-react-statics": "^3.3.0" 5198 "hoist-non-react-statics": "^3.3.0"
4894 } 5199 }
4895 }, 5200 },
5201 "node_modules/@types/html-minifier": {
5202 "version": "4.0.2",
5203 "resolved": "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-4.0.2.tgz",
5204 "integrity": "sha512-4IkmkXJP/25R2fZsCHDX2abztXuQRzUAZq39PfCMz2loLFj8vS9y7aF6vDl58koXSTpsF+eL4Lc5Y4Aww/GCTQ==",
5205 "dev": true,
5206 "dependencies": {
5207 "@types/clean-css": "*",
5208 "@types/relateurl": "*",
5209 "@types/uglify-js": "*"
5210 }
5211 },
4896 "node_modules/@types/http-proxy": { 5212 "node_modules/@types/http-proxy": {
4897 "version": "1.17.9", 5213 "version": "1.17.9",
4898 "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", 5214 "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz",
@@ -4976,8 +5292,7 @@
4976 "version": "5.1.2", 5292 "version": "5.1.2",
4977 "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", 5293 "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
4978 "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", 5294 "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
4979 "dev": true, 5295 "dev": true
4980 "optional": true
4981 }, 5296 },
4982 "node_modules/@types/minimist": { 5297 "node_modules/@types/minimist": {
4983 "version": "1.2.2", 5298 "version": "1.2.2",
@@ -4997,6 +5312,15 @@
4997 "integrity": "sha512-0PJ0vg+JyU0MIan58IOIFRtSvsb7Ri+7Wltx2qAg94eMOrpg4+uuP3aUHCpxXc1i0jCXiC+zIamSZh3l9AbcQA==", 5312 "integrity": "sha512-0PJ0vg+JyU0MIan58IOIFRtSvsb7Ri+7Wltx2qAg94eMOrpg4+uuP3aUHCpxXc1i0jCXiC+zIamSZh3l9AbcQA==",
4998 "dev": true 5313 "dev": true
4999 }, 5314 },
5315 "node_modules/@types/node-sass": {
5316 "version": "4.11.3",
5317 "resolved": "https://registry.npmjs.org/@types/node-sass/-/node-sass-4.11.3.tgz",
5318 "integrity": "sha512-wXPCn3t9uu5rR4zXNSLasZHQMuRzUKBsdi4MsgT8uq4Lp1gQQo+T2G23tGj4SSgDHeNBle6vGseZtM2XV/X9bw==",
5319 "dev": true,
5320 "dependencies": {
5321 "@types/node": "*"
5322 }
5323 },
5000 "node_modules/@types/normalize-package-data": { 5324 "node_modules/@types/normalize-package-data": {
5001 "version": "2.4.1", 5325 "version": "2.4.1",
5002 "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", 5326 "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
@@ -5062,6 +5386,12 @@
5062 "@types/react": "^17" 5386 "@types/react": "^17"
5063 } 5387 }
5064 }, 5388 },
5389 "node_modules/@types/relateurl": {
5390 "version": "0.2.29",
5391 "resolved": "https://registry.npmjs.org/@types/relateurl/-/relateurl-0.2.29.tgz",
5392 "integrity": "sha512-QSvevZ+IRww2ldtfv1QskYsqVVVwCKQf1XbwtcyyoRvLIQzfyPhj/C+3+PKzSDRdiyejaiLgnq//XTkleorpLg==",
5393 "dev": true
5394 },
5065 "node_modules/@types/retry": { 5395 "node_modules/@types/retry": {
5066 "version": "0.12.0", 5396 "version": "0.12.0",
5067 "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", 5397 "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
@@ -5074,6 +5404,15 @@
5074 "integrity": "sha512-lwH3SeyKwCAwP7oUoJNryPDdbW3Bx5lrB6mhV5iebqzOJHIut6wlaSxpQR4Lsk6j7wC08pGenr/xE8I/A4J3Fg==", 5404 "integrity": "sha512-lwH3SeyKwCAwP7oUoJNryPDdbW3Bx5lrB6mhV5iebqzOJHIut6wlaSxpQR4Lsk6j7wC08pGenr/xE8I/A4J3Fg==",
5075 "dev": true 5405 "dev": true
5076 }, 5406 },
5407 "node_modules/@types/sass": {
5408 "version": "1.43.1",
5409 "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz",
5410 "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==",
5411 "dev": true,
5412 "dependencies": {
5413 "@types/node": "*"
5414 }
5415 },
5077 "node_modules/@types/scheduler": { 5416 "node_modules/@types/scheduler": {
5078 "version": "0.16.2", 5417 "version": "0.16.2",
5079 "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 5418 "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
@@ -5133,6 +5472,32 @@
5133 "minipass": "^3.3.5" 5472 "minipass": "^3.3.5"
5134 } 5473 }
5135 }, 5474 },
5475 "node_modules/@types/uglify-js": {
5476 "version": "3.17.1",
5477 "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.1.tgz",
5478 "integrity": "sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g==",
5479 "dev": true,
5480 "dependencies": {
5481 "source-map": "^0.6.1"
5482 }
5483 },
5484 "node_modules/@types/undertaker": {
5485 "version": "1.2.8",
5486 "resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.8.tgz",
5487 "integrity": "sha512-gW3PRqCHYpo45XFQHJBhch7L6hytPsIe0QeLujlnFsjHPnXLhJcPdN6a9368d7aIQgH2I/dUTPFBlGeSNA3qOg==",
5488 "dev": true,
5489 "dependencies": {
5490 "@types/node": "*",
5491 "@types/undertaker-registry": "*",
5492 "async-done": "~1.3.2"
5493 }
5494 },
5495 "node_modules/@types/undertaker-registry": {
5496 "version": "1.0.1",
5497 "resolved": "https://registry.npmjs.org/@types/undertaker-registry/-/undertaker-registry-1.0.1.tgz",
5498 "integrity": "sha512-Z4TYuEKn9+RbNVk1Ll2SS4x1JeLHecolIbM/a8gveaHsW0Hr+RQMraZACwTO2VD7JvepgA6UO1A1VrbktQrIbQ==",
5499 "dev": true
5500 },
5136 "node_modules/@types/uuid": { 5501 "node_modules/@types/uuid": {
5137 "version": "8.3.4", 5502 "version": "8.3.4",
5138 "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", 5503 "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
@@ -5152,6 +5517,27 @@
5152 "dev": true, 5517 "dev": true,
5153 "optional": true 5518 "optional": true
5154 }, 5519 },
5520 "node_modules/@types/vinyl": {
5521 "version": "2.0.6",
5522 "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.6.tgz",
5523 "integrity": "sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==",
5524 "dev": true,
5525 "dependencies": {
5526 "@types/expect": "^1.20.4",
5527 "@types/node": "*"
5528 }
5529 },
5530 "node_modules/@types/vinyl-fs": {
5531 "version": "2.4.12",
5532 "resolved": "https://registry.npmjs.org/@types/vinyl-fs/-/vinyl-fs-2.4.12.tgz",
5533 "integrity": "sha512-LgBpYIWuuGsihnlF+OOWWz4ovwCYlT03gd3DuLwex50cYZLmX3yrW+sFF9ndtmh7zcZpS6Ri47PrIu+fV+sbXw==",
5534 "dev": true,
5535 "dependencies": {
5536 "@types/glob-stream": "*",
5537 "@types/node": "*",
5538 "@types/vinyl": "*"
5539 }
5540 },
5155 "node_modules/@types/ws": { 5541 "node_modules/@types/ws": {
5156 "version": "8.5.3", 5542 "version": "8.5.3",
5157 "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", 5543 "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
@@ -30662,6 +31048,16 @@
30662 "@types/node": "*" 31048 "@types/node": "*"
30663 } 31049 }
30664 }, 31050 },
31051 "@types/clean-css": {
31052 "version": "4.2.6",
31053 "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.6.tgz",
31054 "integrity": "sha512-Ze1tf+LnGPmG6hBFMi0B4TEB0mhF7EiMM5oyjLDNPE9hxrPU0W+5+bHvO+eFPA+bt0iC1zkQMoU/iGdRVjcRbw==",
31055 "dev": true,
31056 "requires": {
31057 "@types/node": "*",
31058 "source-map": "^0.6.0"
31059 }
31060 },
30665 "@types/color": { 31061 "@types/color": {
30666 "version": "3.0.3", 31062 "version": "3.0.3",
30667 "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.3.tgz", 31063 "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.3.tgz",
@@ -30740,6 +31136,12 @@
30740 "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", 31136 "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
30741 "dev": true 31137 "dev": true
30742 }, 31138 },
31139 "@types/expect": {
31140 "version": "1.20.4",
31141 "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz",
31142 "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==",
31143 "dev": true
31144 },
30743 "@types/expect.js": { 31145 "@types/expect.js": {
30744 "version": "0.3.29", 31146 "version": "0.3.29",
30745 "resolved": "https://registry.npmjs.org/@types/expect.js/-/expect.js-0.3.29.tgz", 31147 "resolved": "https://registry.npmjs.org/@types/expect.js/-/expect.js-0.3.29.tgz",
@@ -30783,12 +31185,21 @@
30783 "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", 31185 "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
30784 "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", 31186 "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
30785 "dev": true, 31187 "dev": true,
30786 "optional": true,
30787 "requires": { 31188 "requires": {
30788 "@types/minimatch": "*", 31189 "@types/minimatch": "*",
30789 "@types/node": "*" 31190 "@types/node": "*"
30790 } 31191 }
30791 }, 31192 },
31193 "@types/glob-stream": {
31194 "version": "6.1.1",
31195 "resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-6.1.1.tgz",
31196 "integrity": "sha512-AGOUTsTdbPkRS0qDeyeS+6KypmfVpbT5j23SN8UPG63qjKXNKjXn6V9wZUr8Fin0m9l8oGYaPK8b2WUMF8xI1A==",
31197 "dev": true,
31198 "requires": {
31199 "@types/glob": "*",
31200 "@types/node": "*"
31201 }
31202 },
30792 "@types/graceful-fs": { 31203 "@types/graceful-fs": {
30793 "version": "4.1.5", 31204 "version": "4.1.5",
30794 "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", 31205 "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
@@ -30798,6 +31209,225 @@
30798 "@types/node": "*" 31209 "@types/node": "*"
30799 } 31210 }
30800 }, 31211 },
31212 "@types/gulp": {
31213 "version": "4.0.9",
31214 "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.9.tgz",
31215 "integrity": "sha512-zzT+wfQ8uwoXjDhRK9Zkmmk09/fbLLmN/yDHFizJiEKIve85qutOnXcP/TM2sKPBTU+Jc16vfPbOMkORMUBN7Q==",
31216 "dev": true,
31217 "requires": {
31218 "@types/undertaker": "*",
31219 "@types/vinyl-fs": "*",
31220 "chokidar": "^3.3.1"
31221 },
31222 "dependencies": {
31223 "anymatch": {
31224 "version": "3.1.2",
31225 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
31226 "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
31227 "dev": true,
31228 "requires": {
31229 "normalize-path": "^3.0.0",
31230 "picomatch": "^2.0.4"
31231 }
31232 },
31233 "binary-extensions": {
31234 "version": "2.2.0",
31235 "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
31236 "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
31237 "dev": true
31238 },
31239 "braces": {
31240 "version": "3.0.2",
31241 "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
31242 "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
31243 "dev": true,
31244 "requires": {
31245 "fill-range": "^7.0.1"
31246 }
31247 },
31248 "chokidar": {
31249 "version": "3.5.3",
31250 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
31251 "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
31252 "dev": true,
31253 "requires": {
31254 "anymatch": "~3.1.2",
31255 "braces": "~3.0.2",
31256 "fsevents": "~2.3.2",
31257 "glob-parent": "~5.1.2",
31258 "is-binary-path": "~2.1.0",
31259 "is-glob": "~4.0.1",
31260 "normalize-path": "~3.0.0",
31261 "readdirp": "~3.6.0"
31262 }
31263 },
31264 "fill-range": {
31265 "version": "7.0.1",
31266 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
31267 "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
31268 "dev": true,
31269 "requires": {
31270 "to-regex-range": "^5.0.1"
31271 }
31272 },
31273 "fsevents": {
31274 "version": "2.3.2",
31275 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
31276 "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
31277 "dev": true,
31278 "optional": true
31279 },
31280 "glob-parent": {
31281 "version": "5.1.2",
31282 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
31283 "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
31284 "dev": true,
31285 "requires": {
31286 "is-glob": "^4.0.1"
31287 }
31288 },
31289 "is-binary-path": {
31290 "version": "2.1.0",
31291 "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
31292 "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
31293 "dev": true,
31294 "requires": {
31295 "binary-extensions": "^2.0.0"
31296 }
31297 },
31298 "is-number": {
31299 "version": "7.0.0",
31300 "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
31301 "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
31302 "dev": true
31303 },
31304 "readdirp": {
31305 "version": "3.6.0",
31306 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
31307 "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
31308 "dev": true,
31309 "requires": {
31310 "picomatch": "^2.2.1"
31311 }
31312 },
31313 "to-regex-range": {
31314 "version": "5.0.1",
31315 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
31316 "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
31317 "dev": true,
31318 "requires": {
31319 "is-number": "^7.0.0"
31320 }
31321 }
31322 }
31323 },
31324 "@types/gulp-babel": {
31325 "version": "6.1.30",
31326 "resolved": "https://registry.npmjs.org/@types/gulp-babel/-/gulp-babel-6.1.30.tgz",
31327 "integrity": "sha512-tMs5xeU3iZy0eXwMudKtLonhMrvZLj804lL68Sv+IofA9bReGWFukPYXxWVGWlw7vXdVloP10Fycs5ecrx+eMA==",
31328 "dev": true,
31329 "requires": {
31330 "@types/node": "*"
31331 }
31332 },
31333 "@types/gulp-connect": {
31334 "version": "5.0.5",
31335 "resolved": "https://registry.npmjs.org/@types/gulp-connect/-/gulp-connect-5.0.5.tgz",
31336 "integrity": "sha512-E4xB9CyVj6a2dKImazVQm5FFHrwJ4W91wK00y4MqFDGDyHaRsJRFIkA7+9h9SvN69dKvXMQI7F/q1jS6LVPeqQ==",
31337 "dev": true,
31338 "requires": {
31339 "@types/connect": "*"
31340 }
31341 },
31342 "@types/gulp-csso": {
31343 "version": "4.0.1",
31344 "resolved": "https://registry.npmjs.org/@types/gulp-csso/-/gulp-csso-4.0.1.tgz",
31345 "integrity": "sha512-o+REOxQd5iQpGK5bSjtvwunr3x3XuYn2eEFyhndOM/MLugo/NP8F6+c/2Pmg9KACOvVKoZtNwNHmAk/qzGWgLA==",
31346 "dev": true,
31347 "requires": {
31348 "@types/node": "*"
31349 }
31350 },
31351 "@types/gulp-htmlmin": {
31352 "version": "1.3.32",
31353 "resolved": "https://registry.npmjs.org/@types/gulp-htmlmin/-/gulp-htmlmin-1.3.32.tgz",
31354 "integrity": "sha512-G/xcBVxm0haTePU+Z8nGs+pL7tl489v2gKzm4ARrv7o9taoaXRgRbp58yDz/XkuqFUHeU5Z0/YiR9RsN+M6LSQ==",
31355 "dev": true,
31356 "requires": {
31357 "@types/html-minifier": "*",
31358 "@types/node": "*"
31359 }
31360 },
31361 "@types/gulp-if": {
31362 "version": "0.0.34",
31363 "resolved": "https://registry.npmjs.org/@types/gulp-if/-/gulp-if-0.0.34.tgz",
31364 "integrity": "sha512-r2A04hHDC+ZWMRAm+3q6/UeC3ggvl+TZm9P1+2umnp4q9bOlBmUQnR178Io3c0DkZPQAwup8VNtOvmvaWCpP5w==",
31365 "dev": true,
31366 "requires": {
31367 "@types/node": "*",
31368 "@types/vinyl": "*"
31369 }
31370 },
31371 "@types/gulp-sass": {
31372 "version": "5.0.0",
31373 "resolved": "https://registry.npmjs.org/@types/gulp-sass/-/gulp-sass-5.0.0.tgz",
31374 "integrity": "sha512-7p7nT+IKDREyJzTH13/FC/j3fobDBZTclSJFrgAJA+qzNZgzCENAx3HeiO4N7QlraLRqx44u3OR0Aq0Jw4wz8Q==",
31375 "dev": true,
31376 "requires": {
31377 "@types/node": "*",
31378 "@types/node-sass": "*"
31379 }
31380 },
31381 "@types/gulp-sass-variables": {
31382 "version": "1.2.2",
31383 "resolved": "https://registry.npmjs.org/@types/gulp-sass-variables/-/gulp-sass-variables-1.2.2.tgz",
31384 "integrity": "sha512-LKlcWWz7s5u/1UAP3mWsuMQ6a49EQj5EfePh7nPQRlQbD5nBgW4X0/v1zz3iqih3z04FGKxGfk50am2j21zFPQ==",
31385 "dev": true,
31386 "requires": {
31387 "@types/node": "*"
31388 }
31389 },
31390 "@types/gulp-terser": {
31391 "version": "1.2.1",
31392 "resolved": "https://registry.npmjs.org/@types/gulp-terser/-/gulp-terser-1.2.1.tgz",
31393 "integrity": "sha512-6sLk/x9MOiKr2pH+FShPIiACKf39u90cF97R+wZyVCGXWIuBQnJEQ54O5VslLMfn//15rPRljsh30c+re6MRLw==",
31394 "dev": true,
31395 "requires": {
31396 "@types/node": "*",
31397 "terser": "^4.0.0"
31398 },
31399 "dependencies": {
31400 "terser": {
31401 "version": "4.8.1",
31402 "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz",
31403 "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==",
31404 "dev": true,
31405 "requires": {
31406 "commander": "^2.20.0",
31407 "source-map": "~0.6.1",
31408 "source-map-support": "~0.5.12"
31409 }
31410 }
31411 }
31412 },
31413 "@types/gulp-typescript": {
31414 "version": "2.13.0",
31415 "resolved": "https://registry.npmjs.org/@types/gulp-typescript/-/gulp-typescript-2.13.0.tgz",
31416 "integrity": "sha512-LKtclXKmzr4qvxoG/Z9ysRxNCUlU3CpXk2NFxwAONQ5u5cAfsmBZnZP39s2mRwAy+IYTmCGEIOOjlMsct9A6uA==",
31417 "dev": true,
31418 "requires": {
31419 "gulp-typescript": "*"
31420 }
31421 },
31422 "@types/hex-rgb": {
31423 "version": "4.1.1",
31424 "resolved": "https://registry.npmjs.org/@types/hex-rgb/-/hex-rgb-4.1.1.tgz",
31425 "integrity": "sha512-FHOC5mHnkCnMSzbTJCVnCPqw5TxKABoAkaP1Zdo8p5xa6AS13ty7V8kgpojYt20yIok6wZVlNWRqndUIUuJpKQ==",
31426 "dev": true,
31427 "requires": {
31428 "hex-rgb": "*"
31429 }
31430 },
30801 "@types/hoist-non-react-statics": { 31431 "@types/hoist-non-react-statics": {
30802 "version": "3.3.1", 31432 "version": "3.3.1",
30803 "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", 31433 "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
@@ -30807,6 +31437,17 @@
30807 "hoist-non-react-statics": "^3.3.0" 31437 "hoist-non-react-statics": "^3.3.0"
30808 } 31438 }
30809 }, 31439 },
31440 "@types/html-minifier": {
31441 "version": "4.0.2",
31442 "resolved": "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-4.0.2.tgz",
31443 "integrity": "sha512-4IkmkXJP/25R2fZsCHDX2abztXuQRzUAZq39PfCMz2loLFj8vS9y7aF6vDl58koXSTpsF+eL4Lc5Y4Aww/GCTQ==",
31444 "dev": true,
31445 "requires": {
31446 "@types/clean-css": "*",
31447 "@types/relateurl": "*",
31448 "@types/uglify-js": "*"
31449 }
31450 },
30810 "@types/http-proxy": { 31451 "@types/http-proxy": {
30811 "version": "1.17.9", 31452 "version": "1.17.9",
30812 "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", 31453 "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz",
@@ -30890,8 +31531,7 @@
30890 "version": "5.1.2", 31531 "version": "5.1.2",
30891 "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", 31532 "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
30892 "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", 31533 "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
30893 "dev": true, 31534 "dev": true
30894 "optional": true
30895 }, 31535 },
30896 "@types/minimist": { 31536 "@types/minimist": {
30897 "version": "1.2.2", 31537 "version": "1.2.2",
@@ -30911,6 +31551,15 @@
30911 "integrity": "sha512-0PJ0vg+JyU0MIan58IOIFRtSvsb7Ri+7Wltx2qAg94eMOrpg4+uuP3aUHCpxXc1i0jCXiC+zIamSZh3l9AbcQA==", 31551 "integrity": "sha512-0PJ0vg+JyU0MIan58IOIFRtSvsb7Ri+7Wltx2qAg94eMOrpg4+uuP3aUHCpxXc1i0jCXiC+zIamSZh3l9AbcQA==",
30912 "dev": true 31552 "dev": true
30913 }, 31553 },
31554 "@types/node-sass": {
31555 "version": "4.11.3",
31556 "resolved": "https://registry.npmjs.org/@types/node-sass/-/node-sass-4.11.3.tgz",
31557 "integrity": "sha512-wXPCn3t9uu5rR4zXNSLasZHQMuRzUKBsdi4MsgT8uq4Lp1gQQo+T2G23tGj4SSgDHeNBle6vGseZtM2XV/X9bw==",
31558 "dev": true,
31559 "requires": {
31560 "@types/node": "*"
31561 }
31562 },
30914 "@types/normalize-package-data": { 31563 "@types/normalize-package-data": {
30915 "version": "2.4.1", 31564 "version": "2.4.1",
30916 "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", 31565 "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
@@ -30976,6 +31625,12 @@
30976 "@types/react": "^17" 31625 "@types/react": "^17"
30977 } 31626 }
30978 }, 31627 },
31628 "@types/relateurl": {
31629 "version": "0.2.29",
31630 "resolved": "https://registry.npmjs.org/@types/relateurl/-/relateurl-0.2.29.tgz",
31631 "integrity": "sha512-QSvevZ+IRww2ldtfv1QskYsqVVVwCKQf1XbwtcyyoRvLIQzfyPhj/C+3+PKzSDRdiyejaiLgnq//XTkleorpLg==",
31632 "dev": true
31633 },
30979 "@types/retry": { 31634 "@types/retry": {
30980 "version": "0.12.0", 31635 "version": "0.12.0",
30981 "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", 31636 "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
@@ -30988,6 +31643,15 @@
30988 "integrity": "sha512-lwH3SeyKwCAwP7oUoJNryPDdbW3Bx5lrB6mhV5iebqzOJHIut6wlaSxpQR4Lsk6j7wC08pGenr/xE8I/A4J3Fg==", 31643 "integrity": "sha512-lwH3SeyKwCAwP7oUoJNryPDdbW3Bx5lrB6mhV5iebqzOJHIut6wlaSxpQR4Lsk6j7wC08pGenr/xE8I/A4J3Fg==",
30989 "dev": true 31644 "dev": true
30990 }, 31645 },
31646 "@types/sass": {
31647 "version": "1.43.1",
31648 "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz",
31649 "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==",
31650 "dev": true,
31651 "requires": {
31652 "@types/node": "*"
31653 }
31654 },
30991 "@types/scheduler": { 31655 "@types/scheduler": {
30992 "version": "0.16.2", 31656 "version": "0.16.2",
30993 "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 31657 "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
@@ -31047,6 +31711,32 @@
31047 "minipass": "^3.3.5" 31711 "minipass": "^3.3.5"
31048 } 31712 }
31049 }, 31713 },
31714 "@types/uglify-js": {
31715 "version": "3.17.1",
31716 "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.1.tgz",
31717 "integrity": "sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g==",
31718 "dev": true,
31719 "requires": {
31720 "source-map": "^0.6.1"
31721 }
31722 },
31723 "@types/undertaker": {
31724 "version": "1.2.8",
31725 "resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.8.tgz",
31726 "integrity": "sha512-gW3PRqCHYpo45XFQHJBhch7L6hytPsIe0QeLujlnFsjHPnXLhJcPdN6a9368d7aIQgH2I/dUTPFBlGeSNA3qOg==",
31727 "dev": true,
31728 "requires": {
31729 "@types/node": "*",
31730 "@types/undertaker-registry": "*",
31731 "async-done": "~1.3.2"
31732 }
31733 },
31734 "@types/undertaker-registry": {
31735 "version": "1.0.1",
31736 "resolved": "https://registry.npmjs.org/@types/undertaker-registry/-/undertaker-registry-1.0.1.tgz",
31737 "integrity": "sha512-Z4TYuEKn9+RbNVk1Ll2SS4x1JeLHecolIbM/a8gveaHsW0Hr+RQMraZACwTO2VD7JvepgA6UO1A1VrbktQrIbQ==",
31738 "dev": true
31739 },
31050 "@types/uuid": { 31740 "@types/uuid": {
31051 "version": "8.3.4", 31741 "version": "8.3.4",
31052 "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", 31742 "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
@@ -31066,6 +31756,27 @@
31066 "dev": true, 31756 "dev": true,
31067 "optional": true 31757 "optional": true
31068 }, 31758 },
31759 "@types/vinyl": {
31760 "version": "2.0.6",
31761 "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.6.tgz",
31762 "integrity": "sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==",
31763 "dev": true,
31764 "requires": {
31765 "@types/expect": "^1.20.4",
31766 "@types/node": "*"
31767 }
31768 },
31769 "@types/vinyl-fs": {
31770 "version": "2.4.12",
31771 "resolved": "https://registry.npmjs.org/@types/vinyl-fs/-/vinyl-fs-2.4.12.tgz",
31772 "integrity": "sha512-LgBpYIWuuGsihnlF+OOWWz4ovwCYlT03gd3DuLwex50cYZLmX3yrW+sFF9ndtmh7zcZpS6Ri47PrIu+fV+sbXw==",
31773 "dev": true,
31774 "requires": {
31775 "@types/glob-stream": "*",
31776 "@types/node": "*",
31777 "@types/vinyl": "*"
31778 }
31779 },
31069 "@types/ws": { 31780 "@types/ws": {
31070 "version": "8.5.3", 31781 "version": "8.5.3",
31071 "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", 31782 "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
diff --git a/package.json b/package.json
index 086c0e73d..87f5faeec 100644
--- a/package.json
+++ b/package.json
@@ -26,9 +26,9 @@
26 "dev": "cross-env NODE_ENV=development gulp dev", 26 "dev": "cross-env NODE_ENV=development gulp dev",
27 "test": "jest", 27 "test": "jest",
28 "test:watch": "jest --watch", 28 "test:watch": "jest --watch",
29 "lint": "npx eslint \"{src,test,scripts}/**/*.{js,jsx,ts,tsx}\"", 29 "lint": "tsc --noEmit && eslint \"{src,test,scripts}/**/*.{js,jsx,ts,tsx}\"",
30 "lint:fix": "npx eslint --fix \"{src,test,scripts}/**/*.{js,jsx,ts,tsx}\"", 30 "lint:fix": "eslint --fix \"{src,test,scripts}/**/*.{js,jsx,ts,tsx}\"",
31 "extract": "formatjs extract \"src/**/*.{js,jsx,ts,tsx}\" --out-file temp.json --flatten --id-interpolation-pattern '[sha512:contenthash:base64:6]' --preserve-whitespace", 31 "extract": "formatjs extract \"src/**/*.{js,jsx,ts,tsx}\" --ignore=\"**/*.d.ts\" --out-file temp.json --flatten --id-interpolation-pattern '[sha512:contenthash:base64:6]' --preserve-whitespace",
32 "compile": "formatjs compile \"temp.json\" --out-file src/i18n/locales/en-US.json", 32 "compile": "formatjs compile \"temp.json\" --out-file src/i18n/locales/en-US.json",
33 "manage-translations": "npm run extract && npm run compile && rimraf temp.json", 33 "manage-translations": "npm run extract && npm run compile && rimraf temp.json",
34 "build": "preval-build-info-cli && gulp build && electron-builder", 34 "build": "preval-build-info-cli && gulp build && electron-builder",
@@ -140,6 +140,17 @@
140 "@types/color": "3.0.3", 140 "@types/color": "3.0.3",
141 "@types/expect.js": "0.3.29", 141 "@types/expect.js": "0.3.29",
142 "@types/fs-extra": "9.0.13", 142 "@types/fs-extra": "9.0.13",
143 "@types/gulp": "4.0.9",
144 "@types/gulp-babel": "6.1.30",
145 "@types/gulp-connect": "5.0.5",
146 "@types/gulp-csso": "4.0.1",
147 "@types/gulp-htmlmin": "1.3.32",
148 "@types/gulp-if": "0.0.34",
149 "@types/gulp-sass": "5.0.0",
150 "@types/gulp-sass-variables": "1.2.2",
151 "@types/gulp-terser": "1.2.1",
152 "@types/gulp-typescript": "2.13.0",
153 "@types/hex-rgb": "4.1.1",
143 "@types/jest": "28.1.4", 154 "@types/jest": "28.1.4",
144 "@types/lodash": "4.14.186", 155 "@types/lodash": "4.14.186",
145 "@types/mime-types": "2.1.1", 156 "@types/mime-types": "2.1.1",
@@ -148,6 +159,7 @@
148 "@types/react": "17.0.45", 159 "@types/react": "17.0.45",
149 "@types/react-dom": "17.0.17", 160 "@types/react-dom": "17.0.17",
150 "@types/route-parser": "0.1.4", 161 "@types/route-parser": "0.1.4",
162 "@types/sass": "1.43.1",
151 "@types/tar": "6.1.3", 163 "@types/tar": "6.1.3",
152 "@types/uuid": "8.3.4", 164 "@types/uuid": "8.3.4",
153 "@types/validator": "13.7.7", 165 "@types/validator": "13.7.7",
diff --git a/scripts/theme/default/legacy.js b/scripts/theme/default/legacy.js
deleted file mode 100644
index 015dca756..000000000
--- a/scripts/theme/default/legacy.js
+++ /dev/null
@@ -1,38 +0,0 @@
1/* legacy config, injected into sass at build time */
2export const themeBrandPrimary = '#7266F0';
3export const themeBrandSuccess = '#5cb85c';
4export const themeBrandInfo = '#5bc0de';
5export const themeBrandWarning = '#FF9F00';
6export const themeBrandDanger = '#d9534f';
7
8export const themeGrayDark = '#373a3c';
9export const themeGray = '#55595c';
10export const themeGrayLight = '#818a91';
11export const themeGrayLighter = '#eceeef';
12export const themeGrayLightest = '#f7f7f9';
13
14export const themeBorderRadius = '6px';
15export const themeBorderRadiusSmall = '3px';
16
17export const themeSidebarWidth = '68px';
18
19export const themeTextColor = themeGrayDark;
20
21export const themeTransitionTime = '.5s';
22
23export const themeInsetShadow = 'inset 0 2px 5px rgba(0, 0, 0, .03)';
24
25export const darkThemeBlack = '#1A1A1A';
26
27export const darkThemeGrayDarkest = '#1E1E1E';
28export const darkThemeGrayDarker = '#2D2F31';
29export const darkThemeGrayDark = '#383A3B';
30
31export const darkThemeGray = '#47494B';
32
33export const darkThemeGrayLight = '#515355';
34export const darkThemeGrayLighter = '#8a8b8b';
35export const darkThemeGrayLightest = '#FFFFFF';
36
37export const darkThemeGraySmoke = '#CED0D1';
38export const darkThemeTextColor = '#FFFFFF';
diff --git a/scripts/theme/default/legacy.ts b/scripts/theme/default/legacy.ts
new file mode 100644
index 000000000..e7e15f7cf
--- /dev/null
+++ b/scripts/theme/default/legacy.ts
@@ -0,0 +1,46 @@
1/* legacy config, injected into sass at build time */
2interface ILegacyConfig {
3 [key: string]: string;
4}
5
6const legacyConfig: ILegacyConfig = {
7 themeBrandPrimary: '#7266F0',
8 themeBrandSuccess: '#5cb85c',
9 themeBrandInfo: '#5bc0de',
10 themeBrandWarning: '#FF9F00',
11 themeBrandDanger: '#d9534f',
12
13 themeGrayDark: '#373a3c',
14 themeGray: '#55595c',
15 themeGrayLight: '#818a91',
16 themeGrayLighter: '#eceeef',
17 themeGrayLightest: '#f7f7f9',
18
19 themeBorderRadius: '6px',
20 themeBorderRadiusSmall: '3px',
21
22 themeSidebarWidth: '68px',
23
24 themeTextColor: '#373a3c',
25
26 themeTransitionTime: '.5s',
27
28 themeInsetShadow: 'inset 0 2px 5px rgba(0, 0, 0, .03)',
29
30 darkThemeBlack: '#1A1A1A',
31
32 darkThemeGrayDarkest: '#1E1E1E',
33 darkThemeGrayDarker: '#2D2F31',
34 darkThemeGrayDark: '#383A3B',
35
36 darkThemeGray: '#47494B',
37
38 darkThemeGrayLight: '#515355',
39 darkThemeGrayLighter: '#8a8b8b',
40 darkThemeGrayLightest: '#FFFFFF',
41
42 darkThemeGraySmoke: '#CED0D1',
43 darkThemeTextColor: '#FFFFFF',
44};
45
46export default legacyConfig;
diff --git a/src/@types/kebab-case.d.ts b/src/@types/kebab-case.d.ts
new file mode 100644
index 000000000..712405ac0
--- /dev/null
+++ b/src/@types/kebab-case.d.ts
@@ -0,0 +1 @@
declare module 'kebab-case';
diff --git a/tsconfig.json b/tsconfig.json
index d1465de86..08ea43d77 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -49,5 +49,6 @@
49 "src", 49 "src",
50 "scripts", 50 "scripts",
51 "test", 51 "test",
52 "gulpfile.babel.ts",
52 ], 53 ],
53} 54}