aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Vijay A <vraravam@users.noreply.github.com>2023-06-03 08:08:04 +0530
committerLibravatar Vijay Aravamudhan <vraravam@users.noreply.github.com>2023-06-03 09:09:54 +0530
commit70cd1ed8e8f02e8b9fb2e1d3310fb2b4ae209e40 (patch)
tree64eeaf9835a4648f6b805e9652cf73d600dac29b
parent6.3.0-nightly.18 [skip ci] (diff)
downloadferdium-app-70cd1ed8e8f02e8b9fb2e1d3310fb2b4ae209e40.tar.gz
ferdium-app-70cd1ed8e8f02e8b9fb2e1d3310fb2b4ae209e40.tar.zst
ferdium-app-70cd1ed8e8f02e8b9fb2e1d3310fb2b4ae209e40.zip
Upgrade npm modules and some minor refactoring to remove redundant variable
-rwxr-xr-xesbuild.mjs43
-rw-r--r--package.json8
-rw-r--r--pnpm-lock.yaml60
3 files changed, 53 insertions, 58 deletions
diff --git a/esbuild.mjs b/esbuild.mjs
index 0df31be47..ae940b586 100755
--- a/esbuild.mjs
+++ b/esbuild.mjs
@@ -1,5 +1,5 @@
1#!/usr/bin/env node 1#!/usr/bin/env node
2import { build, serve } from 'esbuild'; 2import * as esbuild from 'esbuild';
3import { sassPlugin } from 'esbuild-sass-plugin'; 3import { sassPlugin } from 'esbuild-sass-plugin';
4import { copy } from 'esbuild-plugin-copy'; 4import { copy } from 'esbuild-plugin-copy';
5import glob from 'tiny-glob'; 5import glob from 'tiny-glob';
@@ -60,7 +60,7 @@ const staticAssets = () => [
60 }), 60 }),
61]; 61];
62 62
63const copyManualAssets = async () => { 63const copyManualAssets = () => {
64 if (!fs.existsSync(outDir)) { 64 if (!fs.existsSync(outDir)) {
65 fs.mkdirSync(outDir); 65 fs.mkdirSync(outDir);
66 } 66 }
@@ -72,27 +72,21 @@ const copyManualAssets = async () => {
72 gitHashShort: buildInfo.gitHashShort, 72 gitHashShort: buildInfo.gitHashShort,
73 gitBranch: buildInfo.gitBranch, 73 gitBranch: buildInfo.gitBranch,
74 }; 74 };
75 await fsPkg.outputJson(`${outDir}/buildInfo.json`, buildInfoData); 75 fsPkg.outputJsonSync(`${outDir}/buildInfo.json`, buildInfoData);
76}; 76};
77 77
78const runEsbuild = async () => { 78const runEsbuild = async () => {
79 const startTime = performance.now(); 79 const startTime = performance.now();
80 80
81 let watch = false;
82 let isDev = false;
83
84 const myArgs = process.argv.slice(2); 81 const myArgs = process.argv.slice(2);
85 if (myArgs.includes('--watch')) { 82 const isDev = myArgs.includes('--watch');
86 watch = true;
87 isDev = true;
88 }
89 log(chalk.blue(`Starting with args`), myArgs); 83 log(chalk.blue(`Starting with args`), myArgs);
90 84
91 if (fs.existsSync(outDir)) { 85 if (fs.existsSync(outDir)) {
92 fs.rmSync(outDir, { force: true, recursive: true }); 86 fs.rmSync(outDir, { force: true, recursive: true });
93 log(chalk.blue(`Cleaning`), outDir); 87 log(chalk.blue(`Cleaning`), outDir);
94 } 88 }
95 await copyManualAssets(); 89 copyManualAssets();
96 90
97 // Source files 91 // Source files
98 const entryPoints = await glob('./src/**/*.{ts,tsx,js,jsx}'); 92 const entryPoints = await glob('./src/**/*.{ts,tsx,js,jsx}');
@@ -105,7 +99,7 @@ const runEsbuild = async () => {
105 ); 99 );
106 100
107 // Run build 101 // Run build
108 await build({ 102 await esbuild.build({
109 entryPoints, 103 entryPoints,
110 format: 'cjs', 104 format: 'cjs',
111 minify: false, 105 minify: false,
@@ -113,23 +107,22 @@ const runEsbuild = async () => {
113 minifyIdentifiers: true, 107 minifyIdentifiers: true,
114 keepNames: true, 108 keepNames: true,
115 outdir: outDir, 109 outdir: outDir,
116 watch: isDev && 110 watch: isDev && {
117 watch && { 111 onRebuild(error, result) {
118 onRebuild(error, result) { 112 if (error) {
119 if (error) { 113 log(chalk.red(`watch build failed: ${error}`));
120 log(chalk.red(`watch build failed: ${error}`)); 114 } else {
121 } else { 115 log(chalk.blue(`watch build success:`), result);
122 log(chalk.blue(`watch build success:`), result); 116 livereload.reload();
123 livereload.reload(); 117 }
124 }
125 },
126 }, 118 },
127 incremental: isDev && watch, 119 },
120 incremental: isDev,
128 plugins: [sassPlugin(), ...staticAssets()], 121 plugins: [sassPlugin(), ...staticAssets()],
129 }); 122 });
130 123
131 if (watch) { 124 if (isDev) {
132 const serveResult = await serve( 125 const serveResult = await esbuild.serve(
133 { 126 {
134 servedir: outDir, 127 servedir: outDir,
135 port: 8080, 128 port: 8080,
diff --git a/package.json b/package.json
index 019b28e8c..2ce901a51 100644
--- a/package.json
+++ b/package.json
@@ -85,7 +85,7 @@
85 "languagedetect": "2.0.0", 85 "languagedetect": "2.0.0",
86 "lodash": "4.17.21", 86 "lodash": "4.17.21",
87 "macos-version": "5.2.1", 87 "macos-version": "5.2.1",
88 "markdown-to-jsx": "7.2.0", 88 "markdown-to-jsx": "7.2.1",
89 "minimist": "1.2.8", 89 "minimist": "1.2.8",
90 "mobx": "6.9.0", 90 "mobx": "6.9.0",
91 "mobx-localstorage": "1.2.0", 91 "mobx-localstorage": "1.2.0",
@@ -118,7 +118,7 @@
118 "semver": "7.5.1", 118 "semver": "7.5.1",
119 "sqlite3": "5.1.6", 119 "sqlite3": "5.1.6",
120 "tar": "6.1.15", 120 "tar": "6.1.15",
121 "tslib": "2.5.2", 121 "tslib": "2.5.3",
122 "useragent-generator": "1.1.1-amkt-22079-finish.0", 122 "useragent-generator": "1.1.1-amkt-22079-finish.0",
123 "uuid": "9.0.0", 123 "uuid": "9.0.0",
124 "validator": "13.9.0", 124 "validator": "13.9.0",
@@ -144,9 +144,9 @@
144 "@types/validator": "13.7.17", 144 "@types/validator": "13.7.17",
145 "@typescript-eslint/eslint-plugin": "5.59.8", 145 "@typescript-eslint/eslint-plugin": "5.59.8",
146 "@typescript-eslint/parser": "5.59.8", 146 "@typescript-eslint/parser": "5.59.8",
147 "all-contributors-cli": "6.25.1", 147 "all-contributors-cli": "6.26.0",
148 "chalk": "5.2.0", 148 "chalk": "5.2.0",
149 "concurrently": "8.0.1", 149 "concurrently": "8.1.0",
150 "cross-env": "7.0.3", 150 "cross-env": "7.0.3",
151 "electron": "25.0.1", 151 "electron": "25.0.1",
152 "electron-builder": "24.4.0", 152 "electron-builder": "24.4.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index bddbd02ca..90b15b214 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -135,8 +135,8 @@ dependencies:
135 specifier: 5.2.1 135 specifier: 5.2.1
136 version: 5.2.1 136 version: 5.2.1
137 markdown-to-jsx: 137 markdown-to-jsx:
138 specifier: 7.2.0 138 specifier: 7.2.1
139 version: 7.2.0(react@18.2.0) 139 version: 7.2.1(react@18.2.0)
140 minimist: 140 minimist:
141 specifier: 1.2.8 141 specifier: 1.2.8
142 version: 1.2.8 142 version: 1.2.8
@@ -234,8 +234,8 @@ dependencies:
234 specifier: 6.1.15 234 specifier: 6.1.15
235 version: 6.1.15 235 version: 6.1.15
236 tslib: 236 tslib:
237 specifier: 2.5.2 237 specifier: 2.5.3
238 version: 2.5.2 238 version: 2.5.3
239 useragent-generator: 239 useragent-generator:
240 specifier: 1.1.1-amkt-22079-finish.0 240 specifier: 1.1.1-amkt-22079-finish.0
241 version: 1.1.1-amkt-22079-finish.0 241 version: 1.1.1-amkt-22079-finish.0
@@ -316,14 +316,14 @@ devDependencies:
316 specifier: 5.59.8 316 specifier: 5.59.8
317 version: 5.59.8(eslint@8.39.0)(typescript@5.0.4) 317 version: 5.59.8(eslint@8.39.0)(typescript@5.0.4)
318 all-contributors-cli: 318 all-contributors-cli:
319 specifier: 6.25.1 319 specifier: 6.26.0
320 version: 6.25.1 320 version: 6.26.0
321 chalk: 321 chalk:
322 specifier: 5.2.0 322 specifier: 5.2.0
323 version: 5.2.0 323 version: 5.2.0
324 concurrently: 324 concurrently:
325 specifier: 8.0.1 325 specifier: 8.1.0
326 version: 8.0.1 326 version: 8.1.0
327 cross-env: 327 cross-env:
328 specifier: 7.0.3 328 specifier: 7.0.3
329 version: 7.0.3 329 version: 7.0.3
@@ -1526,13 +1526,13 @@ packages:
1526 resolution: {integrity: sha512-7bAYAv0w4AIao9DNg0avfOLTCPE9woAgs6SpXuMq11IN3A+l+cq8ghczwqSZBM11myvPSJA7vLn72q0rJ0QK6Q==} 1526 resolution: {integrity: sha512-7bAYAv0w4AIao9DNg0avfOLTCPE9woAgs6SpXuMq11IN3A+l+cq8ghczwqSZBM11myvPSJA7vLn72q0rJ0QK6Q==}
1527 dependencies: 1527 dependencies:
1528 '@formatjs/intl-localematcher': 0.2.32 1528 '@formatjs/intl-localematcher': 0.2.32
1529 tslib: 2.5.2 1529 tslib: 2.5.3
1530 dev: false 1530 dev: false
1531 1531
1532 /@formatjs/fast-memoize@2.0.1: 1532 /@formatjs/fast-memoize@2.0.1:
1533 resolution: {integrity: sha512-M2GgV+qJn5WJQAYewz7q2Cdl6fobQa69S1AzSM2y0P68ZDbK5cWrJIcPCO395Of1ksftGZoOt4LYCO/j9BKBSA==} 1533 resolution: {integrity: sha512-M2GgV+qJn5WJQAYewz7q2Cdl6fobQa69S1AzSM2y0P68ZDbK5cWrJIcPCO395Of1ksftGZoOt4LYCO/j9BKBSA==}
1534 dependencies: 1534 dependencies:
1535 tslib: 2.5.2 1535 tslib: 2.5.3
1536 dev: false 1536 dev: false
1537 1537
1538 /@formatjs/icu-messageformat-parser@2.4.0: 1538 /@formatjs/icu-messageformat-parser@2.4.0:
@@ -1540,14 +1540,14 @@ packages:
1540 dependencies: 1540 dependencies:
1541 '@formatjs/ecma402-abstract': 1.15.0 1541 '@formatjs/ecma402-abstract': 1.15.0
1542 '@formatjs/icu-skeleton-parser': 1.4.0 1542 '@formatjs/icu-skeleton-parser': 1.4.0
1543 tslib: 2.5.2 1543 tslib: 2.5.3
1544 dev: false 1544 dev: false
1545 1545
1546 /@formatjs/icu-skeleton-parser@1.4.0: 1546 /@formatjs/icu-skeleton-parser@1.4.0:
1547 resolution: {integrity: sha512-Qq347VM616rVLkvN6QsKJELazRyNlbCiN47LdH0Mc5U7E2xV0vatiVhGqd3KFgbc055BvtnUXR7XX60dCGFuWg==} 1547 resolution: {integrity: sha512-Qq347VM616rVLkvN6QsKJELazRyNlbCiN47LdH0Mc5U7E2xV0vatiVhGqd3KFgbc055BvtnUXR7XX60dCGFuWg==}
1548 dependencies: 1548 dependencies:
1549 '@formatjs/ecma402-abstract': 1.15.0 1549 '@formatjs/ecma402-abstract': 1.15.0
1550 tslib: 2.5.2 1550 tslib: 2.5.3
1551 dev: false 1551 dev: false
1552 1552
1553 /@formatjs/intl-displaynames@6.3.2: 1553 /@formatjs/intl-displaynames@6.3.2:
@@ -1555,7 +1555,7 @@ packages:
1555 dependencies: 1555 dependencies:
1556 '@formatjs/ecma402-abstract': 1.15.0 1556 '@formatjs/ecma402-abstract': 1.15.0
1557 '@formatjs/intl-localematcher': 0.2.32 1557 '@formatjs/intl-localematcher': 0.2.32
1558 tslib: 2.5.2 1558 tslib: 2.5.3
1559 dev: false 1559 dev: false
1560 1560
1561 /@formatjs/intl-listformat@7.2.2: 1561 /@formatjs/intl-listformat@7.2.2:
@@ -1563,13 +1563,13 @@ packages:
1563 dependencies: 1563 dependencies:
1564 '@formatjs/ecma402-abstract': 1.15.0 1564 '@formatjs/ecma402-abstract': 1.15.0
1565 '@formatjs/intl-localematcher': 0.2.32 1565 '@formatjs/intl-localematcher': 0.2.32
1566 tslib: 2.5.2 1566 tslib: 2.5.3
1567 dev: false 1567 dev: false
1568 1568
1569 /@formatjs/intl-localematcher@0.2.32: 1569 /@formatjs/intl-localematcher@0.2.32:
1570 resolution: {integrity: sha512-k/MEBstff4sttohyEpXxCmC3MqbUn9VvHGlZ8fauLzkbwXmVrEeyzS+4uhrvAk9DWU9/7otYWxyDox4nT/KVLQ==} 1570 resolution: {integrity: sha512-k/MEBstff4sttohyEpXxCmC3MqbUn9VvHGlZ8fauLzkbwXmVrEeyzS+4uhrvAk9DWU9/7otYWxyDox4nT/KVLQ==}
1571 dependencies: 1571 dependencies:
1572 tslib: 2.5.2 1572 tslib: 2.5.3
1573 dev: false 1573 dev: false
1574 1574
1575 /@formatjs/intl@2.7.2(typescript@5.0.4): 1575 /@formatjs/intl@2.7.2(typescript@5.0.4):
@@ -1586,7 +1586,7 @@ packages:
1586 '@formatjs/intl-displaynames': 6.3.2 1586 '@formatjs/intl-displaynames': 6.3.2
1587 '@formatjs/intl-listformat': 7.2.2 1587 '@formatjs/intl-listformat': 7.2.2
1588 intl-messageformat: 10.3.5 1588 intl-messageformat: 10.3.5
1589 tslib: 2.5.2 1589 tslib: 2.5.3
1590 typescript: 5.0.4 1590 typescript: 5.0.4
1591 dev: false 1591 dev: false
1592 1592
@@ -2202,7 +2202,7 @@ packages:
2202 '@sentry/types': 7.16.0 2202 '@sentry/types': 7.16.0
2203 '@sentry/utils': 7.16.0 2203 '@sentry/utils': 7.16.0
2204 deepmerge: 4.2.2 2204 deepmerge: 4.2.2
2205 tslib: 2.5.2 2205 tslib: 2.5.3
2206 transitivePeerDependencies: 2206 transitivePeerDependencies:
2207 - supports-color 2207 - supports-color
2208 dev: false 2208 dev: false
@@ -2865,8 +2865,8 @@ packages:
2865 uri-js: 4.4.1 2865 uri-js: 4.4.1
2866 dev: true 2866 dev: true
2867 2867
2868 /all-contributors-cli@6.25.1: 2868 /all-contributors-cli@6.26.0:
2869 resolution: {integrity: sha512-Q9MfsO6FH09h71IG6OobfESA7lbooB3/bnO2wnuXbLPye1lFsYsa/jpNZP0YBx6zbhwXqqm6CXRZ9HO/tmD4NQ==} 2869 resolution: {integrity: sha512-HOMfawD0XyNbOvLUn7rOAP5N9RLnbH+Y/9/IoxwPzCmy6srHSFyRMwbpD0H7Tw+1QzdJT8RH7bTe1IZkPhF+NQ==}
2870 engines: {node: '>=4'} 2870 engines: {node: '>=4'}
2871 hasBin: true 2871 hasBin: true
2872 dependencies: 2872 dependencies:
@@ -2880,6 +2880,8 @@ packages:
2880 node-fetch: 2.6.11 2880 node-fetch: 2.6.11
2881 pify: 5.0.0 2881 pify: 5.0.0
2882 yargs: 15.4.1 2882 yargs: 15.4.1
2883 optionalDependencies:
2884 prettier: 2.8.8
2883 transitivePeerDependencies: 2885 transitivePeerDependencies:
2884 - encoding 2886 - encoding
2885 dev: true 2887 dev: true
@@ -4268,8 +4270,8 @@ packages:
4268 /concat-map@0.0.1: 4270 /concat-map@0.0.1:
4269 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 4271 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
4270 4272
4271 /concurrently@8.0.1: 4273 /concurrently@8.1.0:
4272 resolution: {integrity: sha512-Sh8bGQMEL0TAmAm2meAXMjcASHZa7V0xXQVDBLknCPa9TPtkY9yYs+0cnGGgfdkW0SV1Mlg+hVGfXcoI8d3MJA==} 4274 resolution: {integrity: sha512-0AB6eOAtaW/r/kX2lCdolaWtT191ICeuJjEJvI9hT3zbPFuZ/iZaJwMRKwbuwADome7OKxk73L7od+fsveZ7tA==}
4273 engines: {node: ^14.13.0 || >=16.0.0} 4275 engines: {node: ^14.13.0 || >=16.0.0}
4274 hasBin: true 4276 hasBin: true
4275 dependencies: 4277 dependencies:
@@ -5914,7 +5916,7 @@ packages:
5914 resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} 5916 resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==}
5915 engines: {node: '>= 12'} 5917 engines: {node: '>= 12'}
5916 dependencies: 5918 dependencies:
5917 tslib: 2.5.2 5919 tslib: 2.5.3
5918 dev: false 5920 dev: false
5919 5921
5920 /file-uri-to-path@1.0.0: 5922 /file-uri-to-path@1.0.0:
@@ -6835,7 +6837,7 @@ packages:
6835 '@formatjs/ecma402-abstract': 1.15.0 6837 '@formatjs/ecma402-abstract': 1.15.0
6836 '@formatjs/fast-memoize': 2.0.1 6838 '@formatjs/fast-memoize': 2.0.1
6837 '@formatjs/icu-messageformat-parser': 2.4.0 6839 '@formatjs/icu-messageformat-parser': 2.4.0
6838 tslib: 2.5.2 6840 tslib: 2.5.3
6839 dev: false 6841 dev: false
6840 6842
6841 /invariant@2.2.4: 6843 /invariant@2.2.4:
@@ -8488,8 +8490,8 @@ packages:
8488 object-visit: 1.0.1 8490 object-visit: 1.0.1
8489 dev: false 8491 dev: false
8490 8492
8491 /markdown-to-jsx@7.2.0(react@18.2.0): 8493 /markdown-to-jsx@7.2.1(react@18.2.0):
8492 resolution: {integrity: sha512-3l4/Bigjm4bEqjCR6Xr+d4DtM1X6vvtGsMGSjJYyep8RjjIvcWtrXBS8Wbfe1/P+atKNMccpsraESIaWVplzVg==} 8494 resolution: {integrity: sha512-9HrdzBAo0+sFz9ZYAGT5fB8ilzTW+q6lPocRxrIesMO+aB40V9MgFfbfMXxlGjf22OpRy+IXlvVaQenicdpgbg==}
8493 engines: {node: '>= 10'} 8495 engines: {node: '>= 10'}
8494 peerDependencies: 8496 peerDependencies:
8495 react: '>= 0.14.0' 8497 react: '>= 0.14.0'
@@ -10010,7 +10012,7 @@ packages:
10010 hoist-non-react-statics: 3.3.2 10012 hoist-non-react-statics: 3.3.2
10011 intl-messageformat: 10.3.5 10013 intl-messageformat: 10.3.5
10012 react: 18.2.0 10014 react: 18.2.0
10013 tslib: 2.5.2 10015 tslib: 2.5.3
10014 typescript: 5.0.4 10016 typescript: 5.0.4
10015 dev: false 10017 dev: false
10016 10018
@@ -10570,7 +10572,7 @@ packages:
10570 /rxjs@7.8.1: 10572 /rxjs@7.8.1:
10571 resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} 10573 resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
10572 dependencies: 10574 dependencies:
10573 tslib: 2.5.2 10575 tslib: 2.5.3
10574 10576
10575 /safe-buffer@5.1.2: 10577 /safe-buffer@5.1.2:
10576 resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 10578 resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
@@ -11654,8 +11656,8 @@ packages:
11654 resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 11656 resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
11655 dev: true 11657 dev: true
11656 11658
11657 /tslib@2.5.2: 11659 /tslib@2.5.3:
11658 resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==} 11660 resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==}
11659 11661
11660 /tsscmp@1.0.6: 11662 /tsscmp@1.0.6:
11661 resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} 11663 resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==}