Chore: refactor build phase

This commit is contained in:
SukkaW 2022-11-07 16:17:56 +08:00
parent e3c2d289ec
commit c403ae2c1f
18 changed files with 68 additions and 75987 deletions

View File

@ -51,6 +51,5 @@ jobs:
user_name: ${{ secrets.GIT_USER }} user_name: ${{ secrets.GIT_USER }}
user_email: ${{ secrets.GIT_EMAIL }} user_email: ${{ secrets.GIT_EMAIL }}
publish_branch: gh-pages publish_branch: gh-pages
exclude_assets: '.github,Build,package.json,pnpm-lock.yaml' publish_dir: public
publish_dir: ./
cname: ruleset.skk.moe cname: ruleset.skk.moe

10
.gitignore vendored
View File

@ -2,3 +2,13 @@
node_modules node_modules
.clinic .clinic
.wireit .wireit
public
List/domainset/reject.conf
List/domainset/reject_phishing.conf
List/domainset/apple_cdn.conf
List/non_ip/cdn.conf
List/non_ip/apple_cdn.conf
List/ip/telegram.conf
List/ip/reject.conf
List/ip/china_ip.conf

View File

@ -18,13 +18,14 @@ const { isIP } = require('net');
.filter(ip => typeof ip === 'string' && isIP(ip) !== 0); .filter(ip => typeof ip === 'string' && isIP(ip) !== 0);
console.timeEnd('* Download bogus-nxdomain-list') console.timeEnd('* Download bogus-nxdomain-list')
const filePath = path.resolve(__dirname, '../List/ip/reject.conf'); const filePath = path.resolve(__dirname, '../Source/ip/reject.conf');
const resultPath = path.resolve(__dirname, '../List/ip/reject.conf');
const content = (await fs.promises.readFile(filePath, 'utf-8')) const content = (await fs.promises.readFile(filePath, 'utf-8'))
.replace( .replace(
'# --- [Anti Bogus Domain Replace Me] ---', '# --- [Anti Bogus Domain Replace Me] ---',
res.map(ip => `IP-CIDR,${ip}/32,no-resolve`).join('\n') res.map(ip => `IP-CIDR,${ip}/32,no-resolve`).join('\n')
); );
await fs.promises.writeFile(filePath, content, 'utf-8'); await fs.promises.writeFile(resultPath, content, 'utf-8');
console.timeEnd('Total Time - build-anti-bogus-domain'); console.timeEnd('Total Time - build-anti-bogus-domain');
})(); })();

View File

@ -23,14 +23,15 @@ const path = require('path');
return false; return false;
}) })
const filePath = path.resolve(__dirname, '../List/non_ip/cdn.conf'); const filePath = path.resolve(__dirname, '../Source/non_ip/cdn.conf');
const resultPath = path.resolve(__dirname, '../List/non_ip/cdn.conf');
const content = (await fs.promises.readFile(filePath, 'utf-8')) const content = (await fs.promises.readFile(filePath, 'utf-8'))
.replace( .replace(
'# --- [AWS S3 Replace Me] ---', '# --- [AWS S3 Replace Me] ---',
S3OSSDomains.map(domain => `DOMAIN-SUFFIX,${domain}`).join('\n') S3OSSDomains.map(domain => `DOMAIN-SUFFIX,${domain}`).join('\n')
); );
await fs.promises.writeFile(filePath, content, 'utf-8'); await fs.promises.writeFile(resultPath, content, 'utf-8');
console.timeEnd('Total Time - build-cdn-conf'); console.timeEnd('Total Time - build-cdn-conf');
})(); })();

View File

@ -1,18 +1,32 @@
const listDir = require('@sukka/listdir'); const listDir = require('@sukka/listdir');
const path = require('path'); const path = require('path');
const fs = require('fs'); const fs = require('fs');
const fse = require('fs-extra');
const rootPath = path.resolve(__dirname, '../'); const rootPath = path.resolve(__dirname, '../');
const publicPath = path.resolve(__dirname, '../public');
const folderAndFilesToBeDeployed = [
'Assets',
'List',
'Modules',
'Script',
'LICENSE',
'README.md'
];
(async () => { (async () => {
const list = await listDir(rootPath, { await fse.ensureDir(publicPath);
await Promise.all(folderAndFilesToBeDeployed.map(dir => fse.copy(path.resolve(rootPath, dir), path.resolve(publicPath, dir))));
const list = await listDir(publicPath, {
ignoreHidden: true, ignoreHidden: true,
ignorePattern: /node_modules|Build|.DS_Store|\.(json|html|md|js)|LICENSE/ ignorePattern: /node_modules|Build|.DS_Store|\.(json|html|md|js)|LICENSE/
}); });
const html = template(list); const html = template(list);
await fs.promises.writeFile(path.join(rootPath, 'index.html'), html, 'utf-8'); await fs.promises.writeFile(path.join(publicPath, 'index.html'), html, 'utf-8');
})(); })();
/** /**
@ -46,7 +60,7 @@ function template(urlList) {
<main class="container"> <main class="container">
<h1>Sukka Surge Ruleset Server</h1> <h1>Sukka Surge Ruleset Server</h1>
<p>Made by <a href="https://skk.moe">Sukka</a> | <a href="https://github.com/SukkaW/Surge/">Source @ GitHub</a> | Licensed under <a href="https://github.com/SukkaW/Surge/blob/master/LICENSE" target="_blank">AGPL-3.0</a></p> <p>Made by <a href="https://skk.moe">Sukka</a> | <a href="https://github.com/SukkaW/Surge/">Source @ GitHub</a> | Licensed under <a href="https://github.com/SukkaW/Surge/blob/master/LICENSE" target="_blank">AGPL-3.0</a></p>
<p>Last Updated: ${new Date().toISOString()}</p> <p>Last Build: ${new Date().toISOString()}</p>
<hr> <hr>
<br> <br>
<ul> <ul>

View File

@ -33,7 +33,7 @@ const threads = isCI ? cpuCount : cpuCount / 2;
let previousSize = domainSets.size; let previousSize = domainSets.size;
console.log(`Import ${previousSize} rules from hosts files!`); console.log(`Import ${previousSize} rules from hosts files!`);
await fsPromises.readFile(pathResolve(__dirname, '../List/domainset/reject_sukka.conf'), { encoding: 'utf-8' }).then(data => { await fsPromises.readFile(pathResolve(__dirname, '../Source/domainset/reject_sukka.conf'), { encoding: 'utf-8' }).then(data => {
data.split('\n').forEach(line => { data.split('\n').forEach(line => {
const trimmed = line.trim(); const trimmed = line.trim();
if ( if (

View File

@ -1,123 +0,0 @@
a1.mzstatic.com
a2.mzstatic.com
a3.mzstatic.com
a4.mzstatic.com
a5.mzstatic.com
adcdownload.apple.com.akadns.net
adcdownload.apple.com
appldnld.apple.com
appldnld.g.aaplimg.com
appleid.cdn-apple.com
apps.apple.com
apps.mzstatic.com
cdn-cn1.apple-mapkit.com
cdn-cn2.apple-mapkit.com
cdn-cn3.apple-mapkit.com
cdn-cn4.apple-mapkit.com
cdn.apple-mapkit.com
cdn1.apple-mapkit.com
cdn2.apple-mapkit.com
cdn3.apple-mapkit.com
cdn4.apple-mapkit.com
cds-cdn.v.aaplimg.com
cds.apple.com.akadns.net
cds.apple.com
cl1-cdn.origin-apple.com.akadns.net
cl1.apple.com
cl2-cn.apple.com
cl2.apple.com
cl3-cdn.origin-apple.com.akadns.net
cl3.apple.com
cl4-cdn.origin-apple.com.akadns.net
cl4-cn.apple.com
cl4.apple.com
cl5-cdn.origin-apple.com.akadns.net
cl5.apple.com
clientflow.apple.com.akadns.net
clientflow.apple.com
configuration.apple.com.akadns.net
configuration.apple.com
cstat.apple.com
dd-cdn.origin-apple.com.akadns.net
download.developer.apple.com
gs-loc-cn.apple.com
gs-loc.apple.com
gsp10-ssl-cn.ls.apple.com
gsp13-cn.ls.apple.com
gsp4-cn.ls.apple.com.edgekey.net.globalredir.akadns.net
gsp4-cn.ls.apple.com.edgekey.net
gsp4-cn.ls.apple.com
gsp5-cn.ls.apple.com
gsp85-cn-ssl.ls.apple.com
gspe19-cn-ssl.ls.apple.com
gspe19-cn.ls-apple.com.akadns.net
gspe19-cn.ls.apple.com
gspe21-ssl.ls.apple.com
gspe21.ls.apple.com
gspe35-ssl.ls.apple.com
iadsdk.apple.com
icloud-cdn.icloud.com.akadns.net
icloud.cdn-apple.com
images.apple.com.akadns.net
images.apple.com.edgekey.net.globalredir.akadns.net
images.apple.com
init-p01md-lb.push-apple.com.akadns.net
init-p01md.apple.com
init-p01st-lb.push-apple.com.akadns.net
init-p01st.push.apple.com
init-s01st-lb.push-apple.com.akadns.net
init-s01st.push.apple.com
iosapps.itunes.g.aaplimg.com
iphone-ld.apple.com
is1-ssl.mzstatic.com
is1.mzstatic.com
is2-ssl.mzstatic.com
is2.mzstatic.com
is3-ssl.mzstatic.com
is3.mzstatic.com
is4-ssl.mzstatic.com
is4.mzstatic.com
is5-ssl.mzstatic.com
is5.mzstatic.com
itunes-apple.com.akadns.net
itunes.apple.com
itunesconnect.apple.com
mesu-cdn.apple.com.akadns.net
mesu-china.apple.com.akadns.net
mesu.apple.com
music.apple.com
ocsp-lb.apple.com.akadns.net
ocsp.apple.com
oscdn.apple.com
oscdn.origin-apple.com.akadns.net
pancake.apple.com
pancake.cdn-apple.com.akadns.net
phobos.apple.com
prod-support.apple-support.akadns.net
reserve-prime.apple.com
s.mzstatic.com
stocks-sparkline-lb.apple.com.akadns.net
store.apple.com.edgekey.net.globalredir.akadns.net
store.apple.com.edgekey.net
store.apple.com
store.storeimages.apple.com.akadns.net
store.storeimages.cdn-apple.com
support-china.apple-support.akadns.net
support.apple.com
swcatalog-cdn.apple.com.akadns.net
swcatalog.apple.com
swcdn.apple.com
swcdn.g.aaplimg.com
swdist.apple.com.akadns.net
swdist.apple.com
swscan-cdn.apple.com.akadns.net
swscan.apple.com
updates-http.cdn-apple.com.akadns.net
updates-http.cdn-apple.com
updates.cdn-apple.com
valid.apple.com
valid.origin-apple.com.akadns.net
www.apple.com.edgekey.net.globalredir.akadns.net
www.apple.com.edgekey.net
www.apple.com
xp.apple.com

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +0,0 @@
# Telegram CIDR (https://core.telegram.org/resources/cidr.txt)
# Last Updated: 2021-10-01T16:51:55.000Z
IP-CIDR,91.108.56.0/22,no-resolve
IP-CIDR,91.108.4.0/22,no-resolve
IP-CIDR,91.108.8.0/22,no-resolve
IP-CIDR,91.108.16.0/22,no-resolve
IP-CIDR,91.108.12.0/22,no-resolve
IP-CIDR,149.154.160.0/20,no-resolve
IP-CIDR,91.105.192.0/23,no-resolve
IP-CIDR,91.108.20.0/22,no-resolve
IP-CIDR,185.76.151.0/24,no-resolve
IP-CIDR6,2001:b28:f23d::/48,no-resolve
IP-CIDR6,2001:b28:f23f::/48,no-resolve
IP-CIDR6,2001:67c:4e8::/48,no-resolve
IP-CIDR6,2001:b28:f23c::/48,no-resolve
IP-CIDR6,2a0a:f280::/32,no-resolve

View File

@ -1,123 +0,0 @@
DOMAIN,a1.mzstatic.com
DOMAIN,a2.mzstatic.com
DOMAIN,a3.mzstatic.com
DOMAIN,a4.mzstatic.com
DOMAIN,a5.mzstatic.com
DOMAIN,adcdownload.apple.com.akadns.net
DOMAIN,adcdownload.apple.com
DOMAIN,appldnld.apple.com
DOMAIN,appldnld.g.aaplimg.com
DOMAIN,appleid.cdn-apple.com
DOMAIN,apps.apple.com
DOMAIN,apps.mzstatic.com
DOMAIN,cdn-cn1.apple-mapkit.com
DOMAIN,cdn-cn2.apple-mapkit.com
DOMAIN,cdn-cn3.apple-mapkit.com
DOMAIN,cdn-cn4.apple-mapkit.com
DOMAIN,cdn.apple-mapkit.com
DOMAIN,cdn1.apple-mapkit.com
DOMAIN,cdn2.apple-mapkit.com
DOMAIN,cdn3.apple-mapkit.com
DOMAIN,cdn4.apple-mapkit.com
DOMAIN,cds-cdn.v.aaplimg.com
DOMAIN,cds.apple.com.akadns.net
DOMAIN,cds.apple.com
DOMAIN,cl1-cdn.origin-apple.com.akadns.net
DOMAIN,cl1.apple.com
DOMAIN,cl2-cn.apple.com
DOMAIN,cl2.apple.com
DOMAIN,cl3-cdn.origin-apple.com.akadns.net
DOMAIN,cl3.apple.com
DOMAIN,cl4-cdn.origin-apple.com.akadns.net
DOMAIN,cl4-cn.apple.com
DOMAIN,cl4.apple.com
DOMAIN,cl5-cdn.origin-apple.com.akadns.net
DOMAIN,cl5.apple.com
DOMAIN,clientflow.apple.com.akadns.net
DOMAIN,clientflow.apple.com
DOMAIN,configuration.apple.com.akadns.net
DOMAIN,configuration.apple.com
DOMAIN,cstat.apple.com
DOMAIN,dd-cdn.origin-apple.com.akadns.net
DOMAIN,download.developer.apple.com
DOMAIN,gs-loc-cn.apple.com
DOMAIN,gs-loc.apple.com
DOMAIN,gsp10-ssl-cn.ls.apple.com
DOMAIN,gsp13-cn.ls.apple.com
DOMAIN,gsp4-cn.ls.apple.com.edgekey.net.globalredir.akadns.net
DOMAIN,gsp4-cn.ls.apple.com.edgekey.net
DOMAIN,gsp4-cn.ls.apple.com
DOMAIN,gsp5-cn.ls.apple.com
DOMAIN,gsp85-cn-ssl.ls.apple.com
DOMAIN,gspe19-cn-ssl.ls.apple.com
DOMAIN,gspe19-cn.ls-apple.com.akadns.net
DOMAIN,gspe19-cn.ls.apple.com
DOMAIN,gspe21-ssl.ls.apple.com
DOMAIN,gspe21.ls.apple.com
DOMAIN,gspe35-ssl.ls.apple.com
DOMAIN,iadsdk.apple.com
DOMAIN,icloud-cdn.icloud.com.akadns.net
DOMAIN,icloud.cdn-apple.com
DOMAIN,images.apple.com.akadns.net
DOMAIN,images.apple.com.edgekey.net.globalredir.akadns.net
DOMAIN,images.apple.com
DOMAIN,init-p01md-lb.push-apple.com.akadns.net
DOMAIN,init-p01md.apple.com
DOMAIN,init-p01st-lb.push-apple.com.akadns.net
DOMAIN,init-p01st.push.apple.com
DOMAIN,init-s01st-lb.push-apple.com.akadns.net
DOMAIN,init-s01st.push.apple.com
DOMAIN,iosapps.itunes.g.aaplimg.com
DOMAIN,iphone-ld.apple.com
DOMAIN,is1-ssl.mzstatic.com
DOMAIN,is1.mzstatic.com
DOMAIN,is2-ssl.mzstatic.com
DOMAIN,is2.mzstatic.com
DOMAIN,is3-ssl.mzstatic.com
DOMAIN,is3.mzstatic.com
DOMAIN,is4-ssl.mzstatic.com
DOMAIN,is4.mzstatic.com
DOMAIN,is5-ssl.mzstatic.com
DOMAIN,is5.mzstatic.com
DOMAIN,itunes-apple.com.akadns.net
DOMAIN,itunes.apple.com
DOMAIN,itunesconnect.apple.com
DOMAIN,mesu-cdn.apple.com.akadns.net
DOMAIN,mesu-china.apple.com.akadns.net
DOMAIN,mesu.apple.com
DOMAIN,music.apple.com
DOMAIN,ocsp-lb.apple.com.akadns.net
DOMAIN,ocsp.apple.com
DOMAIN,oscdn.apple.com
DOMAIN,oscdn.origin-apple.com.akadns.net
DOMAIN,pancake.apple.com
DOMAIN,pancake.cdn-apple.com.akadns.net
DOMAIN,phobos.apple.com
DOMAIN,prod-support.apple-support.akadns.net
DOMAIN,reserve-prime.apple.com
DOMAIN,s.mzstatic.com
DOMAIN,stocks-sparkline-lb.apple.com.akadns.net
DOMAIN,store.apple.com.edgekey.net.globalredir.akadns.net
DOMAIN,store.apple.com.edgekey.net
DOMAIN,store.apple.com
DOMAIN,store.storeimages.apple.com.akadns.net
DOMAIN,store.storeimages.cdn-apple.com
DOMAIN,support-china.apple-support.akadns.net
DOMAIN,support.apple.com
DOMAIN,swcatalog-cdn.apple.com.akadns.net
DOMAIN,swcatalog.apple.com
DOMAIN,swcdn.apple.com
DOMAIN,swcdn.g.aaplimg.com
DOMAIN,swdist.apple.com.akadns.net
DOMAIN,swdist.apple.com
DOMAIN,swscan-cdn.apple.com.akadns.net
DOMAIN,swscan.apple.com
DOMAIN,updates-http.cdn-apple.com.akadns.net
DOMAIN,updates-http.cdn-apple.com
DOMAIN,updates.cdn-apple.com
DOMAIN,valid.apple.com
DOMAIN,valid.origin-apple.com.akadns.net
DOMAIN,www.apple.com.edgekey.net.globalredir.akadns.net
DOMAIN,www.apple.com.edgekey.net
DOMAIN,www.apple.com
DOMAIN,xp.apple.com

View File

@ -21,7 +21,6 @@
```ini ```ini
RULE-SET,https://ruleset.skk.moe/List/non_ip/reject.conf,reject RULE-SET,https://ruleset.skk.moe/List/non_ip/reject.conf,reject
DOMAIN-SET,https://ruleset.skk.moe/List/domainset/reject.conf,reject-tinygif DOMAIN-SET,https://ruleset.skk.moe/List/domainset/reject.conf,reject-tinygif
DOMAIN-SET,https://ruleset.skk.moe/List/domainset/reject_sukka.conf,reject-tinygif
DOMAIN-SET,https://ruleset.skk.moe/List/domainset/reject_phishing.conf,reject DOMAIN-SET,https://ruleset.skk.moe/List/domainset/reject_phishing.conf,reject
RULE-SET,https://ruleset.skk.moe/List/ip/reject.conf,reject-drop RULE-SET,https://ruleset.skk.moe/List/ip/reject.conf,reject-drop
``` ```

View File

@ -8,7 +8,7 @@
"build:anti-bogus-domain": "wireit", "build:anti-bogus-domain": "wireit",
"build:apple-cdn": "wireit", "build:apple-cdn": "wireit",
"build:cdn-conf": "wireit", "build:cdn-conf": "wireit",
"build:index-html": "wireit", "build:public": "wireit",
"build:reject-domainset": "wireit", "build:reject-domainset": "wireit",
"build:phishing-domainset": "wireit", "build:phishing-domainset": "wireit",
"build:telegram-cidr": "wireit", "build:telegram-cidr": "wireit",
@ -40,8 +40,8 @@
"build:chn-cidr": { "build:chn-cidr": {
"command": "node ./Build/build-chn-cidr.js" "command": "node ./Build/build-chn-cidr.js"
}, },
"build:index-html": { "build:public": {
"command": "node ./Build/build-index.html.js", "command": "node ./Build/build-public.js",
"dependencies": [ "dependencies": [
"build:anti-bogus-domain", "build:anti-bogus-domain",
"build:apple-cdn", "build:apple-cdn",
@ -51,7 +51,10 @@
] ]
}, },
"validate:cdn-conf": { "validate:cdn-conf": {
"command": "node ./Build/validate-cdn-conf.js" "command": "node ./Build/validate-cdn-conf.js",
"dependencies": [
"build:cdn-conf"
]
}, },
"build": { "build": {
"dependencies": [ "dependencies": [
@ -61,7 +64,7 @@
"build:reject-domainset", "build:reject-domainset",
"build:telegram-cidr", "build:telegram-cidr",
"build:chn-cidr", "build:chn-cidr",
"build:index-html", "build:public",
"validate:cdn-conf" "validate:cdn-conf"
] ]
} }
@ -76,6 +79,7 @@
"@sukka/listdir": "^0.2.0", "@sukka/listdir": "^0.2.0",
"@vercel/fetch-retry": "^5.1.3", "@vercel/fetch-retry": "^5.1.3",
"ci-info": "^3.5.0", "ci-info": "^3.5.0",
"fs-extra": "^10.1.0",
"picocolors": "^1.0.0", "picocolors": "^1.0.0",
"piscina": "^3.2.0", "piscina": "^3.2.0",
"table": "^6.8.0", "table": "^6.8.0",

25
pnpm-lock.yaml generated
View File

@ -4,6 +4,7 @@ specifiers:
'@sukka/listdir': ^0.2.0 '@sukka/listdir': ^0.2.0
'@vercel/fetch-retry': ^5.1.3 '@vercel/fetch-retry': ^5.1.3
ci-info: ^3.5.0 ci-info: ^3.5.0
fs-extra: ^10.1.0
picocolors: ^1.0.0 picocolors: ^1.0.0
piscina: ^3.2.0 piscina: ^3.2.0
table: ^6.8.0 table: ^6.8.0
@ -15,6 +16,7 @@ dependencies:
'@sukka/listdir': 0.2.0 '@sukka/listdir': 0.2.0
'@vercel/fetch-retry': 5.1.3 '@vercel/fetch-retry': 5.1.3
ci-info: 3.5.0 ci-info: 3.5.0
fs-extra: 10.1.0
picocolors: 1.0.0 picocolors: 1.0.0
piscina: 3.2.0 piscina: 3.2.0
table: 6.8.0 table: 6.8.0
@ -207,6 +209,15 @@ packages:
to-regex-range: 5.0.1 to-regex-range: 5.0.1
dev: true dev: true
/fs-extra/10.1.0:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'}
dependencies:
graceful-fs: 4.2.10
jsonfile: 6.1.0
universalify: 2.0.0
dev: false
/fsevents/2.3.2: /fsevents/2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@ -224,7 +235,6 @@ packages:
/graceful-fs/4.2.10: /graceful-fs/4.2.10:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
dev: true
/hdr-histogram-js/2.0.1: /hdr-histogram-js/2.0.1:
resolution: {integrity: sha512-uPZxl1dAFnjUFHWLZmt93vUUvtHeaBay9nVNHu38SdOjMSF/4KqJUqa1Seuj08ptU1rEb6AHvB41X8n/zFZ74Q==} resolution: {integrity: sha512-uPZxl1dAFnjUFHWLZmt93vUUvtHeaBay9nVNHu38SdOjMSF/4KqJUqa1Seuj08ptU1rEb6AHvB41X8n/zFZ74Q==}
@ -275,6 +285,14 @@ packages:
resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==}
dev: true dev: true
/jsonfile/6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
dependencies:
universalify: 2.0.0
optionalDependencies:
graceful-fs: 4.2.10
dev: false
/lodash.truncate/4.4.2: /lodash.truncate/4.4.2:
resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
dev: false dev: false
@ -465,6 +483,11 @@ packages:
busboy: 1.6.0 busboy: 1.6.0
dev: false dev: false
/universalify/2.0.0:
resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
engines: {node: '>= 10.0.0'}
dev: false
/uri-js/4.4.1: /uri-js/4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies: dependencies: