Housekeeping & Make ESLint Happy
Some checks failed
Build / Build (push) Has been cancelled
Build / Diff output (push) Has been cancelled
Build / Deploy to Cloudflare Pages (3.114.12) (push) Has been cancelled
Build / Deploy to GitHub and GitLab (push) Has been cancelled

This commit is contained in:
SukkaW 2025-10-15 00:31:27 +08:00
parent b0ca03cd26
commit a3f98c2f29
6 changed files with 293 additions and 277 deletions

View File

@ -24,6 +24,7 @@ import type { MaybePromise } from './lib/misc';
import { RulesetOutput } from './lib/rules/ruleset';
import { fetchAssets } from './lib/fetch-assets';
import { AUGUST_ASN, HUIZE_ASN } from '../Source/ip/badboy_asn';
import { arrayPushNonNullish } from 'foxts/array-push-non-nullish';
const readLocalRejectDomainsetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'domainset/reject.conf'));
const readLocalRejectExtraDomainsetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'domainset/reject_extra.conf'));
@ -117,102 +118,112 @@ export const buildRejectDomainSet = task(require.main === module, __filename)(as
// Parse from AdGuard Filters
await span
.traceChild('download and process hosts / adblock filter rules')
.traceAsyncFn((childSpan) => Promise.all([
.traceAsyncFn((childSpan) => {
const promises: Array<Promise<void>> = [];
// Parse from remote hosts & domain lists
hostsDownloads.map(task => task(childSpan).then(appendArrayToRejectOutput)),
hostsExtraDownloads.map(task => task(childSpan).then(appendArrayToRejectExtraOutput)),
domainListsDownloads.map(task => task(childSpan).then(appendArrayToRejectOutput)),
domainListsExtraDownloads.map(task => task(childSpan).then(appendArrayToRejectExtraOutput)),
arrayPushNonNullish(promises, hostsDownloads.map(task => task(childSpan).then(appendArrayToRejectOutput)));
arrayPushNonNullish(promises, hostsExtraDownloads.map(task => task(childSpan).then(appendArrayToRejectExtraOutput)));
arrayPushNonNullish(promises, domainListsDownloads.map(task => task(childSpan).then(appendArrayToRejectOutput)));
arrayPushNonNullish(promises, domainListsExtraDownloads.map(task => task(childSpan).then(appendArrayToRejectExtraOutput)));
rejectPhisingDomainsetOutput.addFromDomainset(getPhishingDomains(childSpan)),
rejectPhisingDomainsetOutput.addFromDomainset(getPhishingDomains(childSpan));
adguardFiltersDownloads.map(
task => task(childSpan).then(({
filterRulesUrl,
whiteDomains, whiteDomainSuffixes,
blackDomains, blackDomainSuffixes,
blackIPs, blackWildcard,
whiteKeyword, blackKeyword
}) => {
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomains);
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomainSuffixes, suffix => '.' + suffix);
arrayPushNonNullish(
promises,
adguardFiltersDownloads.map(
task => task(childSpan).then(({
filterRulesUrl,
whiteDomains, whiteDomainSuffixes,
blackDomains, blackDomainSuffixes,
blackIPs, blackWildcard,
whiteKeyword, blackKeyword
}) => {
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomains);
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomainSuffixes, suffix => '.' + suffix);
addArrayElementsToSet(filterRuleWhiteKeywords, whiteKeyword);
addArrayElementsToSet(filterRuleWhiteKeywords, whiteKeyword);
rejectDomainsetOutput.bulkAddDomain(blackDomains);
rejectDomainsetOutput.bulkAddDomainSuffix(blackDomainSuffixes);
rejectDomainsetOutput.bulkAddDomain(blackDomains);
rejectDomainsetOutput.bulkAddDomainSuffix(blackDomainSuffixes);
rejectDomainsetOutput.bulkAddDomainKeyword(blackKeyword);
rejectDomainsetOutput.bulkAddDomainKeyword(blackKeyword);
rejectDomainsetOutput.appendDataSource(filterRulesUrl);
rejectDomainsetOutput.appendDataSource(filterRulesUrl);
rejectNonIpRulesetOutput.bulkAddDomainWildcard(blackWildcard);
rejectNonIpRulesetOutput.appendDataSource(filterRulesUrl);
rejectNonIpRulesetOutput.bulkAddDomainWildcard(blackWildcard);
rejectNonIpRulesetOutput.appendDataSource(filterRulesUrl);
rejectIPOutput.bulkAddAnyCIDR(blackIPs, false);
rejectIPOutput.appendDataSource(filterRulesUrl);
})
),
adguardFiltersExtraDownloads.map(
task => task(childSpan).then(({
filterRulesUrl,
whiteDomains, whiteDomainSuffixes,
blackDomains, blackDomainSuffixes,
blackIPs, blackWildcard, whiteKeyword, blackKeyword
}) => {
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomains);
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomainSuffixes, suffix => '.' + suffix);
addArrayElementsToSet(filterRuleWhiteKeywords, whiteKeyword);
rejectExtraDomainsetOutput.bulkAddDomain(blackDomains);
rejectExtraDomainsetOutput.bulkAddDomainSuffix(blackDomainSuffixes);
rejectExtraDomainsetOutput.bulkAddDomainKeyword(blackKeyword);
rejectExtraDomainsetOutput.appendDataSource(filterRulesUrl);
rejectIPOutput.bulkAddAnyCIDR(blackIPs, false);
rejectIPOutput.appendDataSource(filterRulesUrl);
rejectNonIpRulesetOutput.bulkAddDomainWildcard(blackWildcard);
rejectNonIpRulesetOutput.appendDataSource(filterRulesUrl);
})
),
adguardFiltersWhitelistsDownloads.map(
task => task(childSpan).then(({ whiteDomains, whiteDomainSuffixes, blackDomains, blackDomainSuffixes, whiteKeyword, blackKeyword }) => {
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomains);
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomainSuffixes, suffix => '.' + suffix);
addArrayElementsToSet(filterRuleWhitelistDomainSets, blackDomains);
addArrayElementsToSet(filterRuleWhitelistDomainSets, blackDomainSuffixes, suffix => '.' + suffix);
addArrayElementsToSet(filterRuleWhiteKeywords, whiteKeyword);
addArrayElementsToSet(filterRuleWhiteKeywords, blackKeyword);
})
),
span.traceChildAsync(
'get bogus nxdomain ips',
() => fetchAssets(...BOGUS_NXDOMAIN_DNSMASQ, true, false)
.then(arr => {
for (let i = 0, len = arr.length; i < len; i++) {
const line = arr[i];
if (line.startsWith('bogus-nxdomain=')) {
// bogus nxdomain needs to be blocked even after resolved
rejectIPOutput.addAnyCIDR(
line.slice(15).trim(),
false
);
}
}
return arr;
rejectIPOutput.bulkAddAnyCIDR(blackIPs, false);
rejectIPOutput.appendDataSource(filterRulesUrl);
})
)
].flat()));
)
);
arrayPushNonNullish(
promises,
adguardFiltersExtraDownloads.map(
task => task(childSpan).then(({
filterRulesUrl,
whiteDomains, whiteDomainSuffixes,
blackDomains, blackDomainSuffixes,
blackIPs, blackWildcard, whiteKeyword, blackKeyword
}) => {
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomains);
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomainSuffixes, suffix => '.' + suffix);
addArrayElementsToSet(filterRuleWhiteKeywords, whiteKeyword);
rejectExtraDomainsetOutput.bulkAddDomain(blackDomains);
rejectExtraDomainsetOutput.bulkAddDomainSuffix(blackDomainSuffixes);
rejectExtraDomainsetOutput.bulkAddDomainKeyword(blackKeyword);
rejectExtraDomainsetOutput.appendDataSource(filterRulesUrl);
rejectIPOutput.bulkAddAnyCIDR(blackIPs, false);
rejectIPOutput.appendDataSource(filterRulesUrl);
rejectNonIpRulesetOutput.bulkAddDomainWildcard(blackWildcard);
rejectNonIpRulesetOutput.appendDataSource(filterRulesUrl);
})
)
);
arrayPushNonNullish(
promises,
adguardFiltersWhitelistsDownloads.map(
task => task(childSpan).then(({ whiteDomains, whiteDomainSuffixes, blackDomains, blackDomainSuffixes, whiteKeyword, blackKeyword }) => {
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomains);
addArrayElementsToSet(filterRuleWhitelistDomainSets, whiteDomainSuffixes, suffix => '.' + suffix);
addArrayElementsToSet(filterRuleWhitelistDomainSets, blackDomains);
addArrayElementsToSet(filterRuleWhitelistDomainSets, blackDomainSuffixes, suffix => '.' + suffix);
addArrayElementsToSet(filterRuleWhiteKeywords, whiteKeyword);
addArrayElementsToSet(filterRuleWhiteKeywords, blackKeyword);
})
)
);
promises.push(span.traceChildAsync(
'get bogus nxdomain ips',
() => fetchAssets(...BOGUS_NXDOMAIN_DNSMASQ, true, false).then(arr => {
for (let i = 0, len = arr.length; i < len; i++) {
const line = arr[i];
if (line.startsWith('bogus-nxdomain=')) {
// bogus nxdomain needs to be blocked even after resolved
rejectIPOutput.addAnyCIDR(
line.slice(15).trim(),
false
);
}
}
// return arr;
})
));
return Promise.all(promises);
});
if (foundDebugDomain.value) {
// eslint-disable-next-line sukka/unicorn/no-process-exit -- cli App
// eslint-disable-next-line sukka/unicorn/no-process-exit -- cli App
process.exit(1);
}
@ -231,8 +242,8 @@ export const buildRejectDomainSet = task(require.main === module, __filename)(as
rejectExtraDomainsetOutput.whitelistDomain(domain);
rejectPhisingDomainsetOutput.whitelistDomain(domain);
// DON'T Whitelist reject non_ip ruleset, we are force blocking thingshere
// rejectNonIpRulesetOutput.whitelistDomain(domain);
// DON'T Whitelist reject non_ip ruleset, we are force blocking thingshere
// rejectNonIpRulesetOutput.whitelistDomain(domain);
}
// we use "whitelistKeyword" method, this will be used to create kwfilter internally
@ -271,7 +282,7 @@ export const buildRejectDomainSet = task(require.main === module, __filename)(as
rejectOutputAdGuardHome.domainTrie = rejectDomainsetOutput.domainTrie;
await rejectOutputAdGuardHome
// .addFromRuleset(readLocalMyRejectRulesetPromise)
// .addFromRuleset(readLocalMyRejectRulesetPromise)
.addFromRuleset(readLocalRejectRulesetPromise)
.addFromRuleset(readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/reject-drop.conf')))
.addFromRuleset(readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/reject-no-drop.conf')))

View File

@ -30,6 +30,16 @@ const steamDomainsPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'do
* This only generates a simplified version, for under-used users only.
*/
export const buildSSPanelUIMAppProfile = task(require.main === module, __filename)(async (span) => {
const streamRules = AllStreamServices.flatMap((i) => i.rules);
const [streamCidrs4, streamCidrs6] = AllStreamServices.reduce<[cidr4: string[], cidr6: string[]]>((acc, i) => {
if (i.ip) {
appendArrayInPlace(acc[0], i.ip.v4);
appendArrayInPlace(acc[1], i.ip.v6);
}
return acc;
}, [[], []]);
const [
[domesticRules, directRules, lanRules],
appleCdnDomains,
@ -38,12 +48,12 @@ export const buildSSPanelUIMAppProfile = task(require.main === module, __filenam
neteaseMusicRules,
microsoftRules,
appleRules,
streamRules,
// streamRules,
steamDomainset,
globalRules,
telegramRules,
[domesticCidrs4, domesticCidrs6],
[streamCidrs4, streamCidrs6],
// [streamCidrs4, streamCidrs6],
{ ipcidr: telegramCidrs4, ipcidr6: telegramCidrs6 },
rawLanCidrs
] = await Promise.all([
@ -56,8 +66,6 @@ export const buildSSPanelUIMAppProfile = task(require.main === module, __filenam
// microsoft & apple - domains
readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/microsoft.conf')),
readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/apple_services.conf')),
// stream - domains
AllStreamServices.flatMap((i) => i.rules),
// steam - domains
steamDomainsPromise,
// global - domains
@ -65,14 +73,6 @@ export const buildSSPanelUIMAppProfile = task(require.main === module, __filenam
readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/telegram.conf')),
// domestic - ip cidr
getChnCidrPromise(),
AllStreamServices.reduce<[cidr4: string[], cidr6: string[]]>((acc, i) => {
if (i.ip) {
appendArrayInPlace(acc[0], i.ip.v4);
appendArrayInPlace(acc[1], i.ip.v6);
}
return acc;
}, [[], []]),
// global - ip cidr
getTelegramCIDRPromise(),
// lan - ip cidr

View File

@ -145,6 +145,11 @@ export const DOMAIN_LISTS_EXTRA: HostsSource[] = [
'https://curbengh.github.io/urlhaus-filter/urlhaus-filter-domains-online.txt'
],
true
],
[
'https://raw.githubusercontent.com/DandelionSprout/adfilt/refs/heads/master/Alternate%20versions%20Anti-Malware%20List/AntiMalwareDomains.txt',
[],
true
]
// Spam404
// Not actively maintained, let's consider it is dead
@ -254,12 +259,6 @@ export const ADGUARD_FILTERS: AdGuardFilterSource[] = [
]
]
//
// [
// 'https://raw.githubusercontent.com/DandelionSprout/adfilt/master/Alternate%20versions%20Anti-Malware%20List/AntiMalwareAdGuardHome.txt',
// [
// 'https://adguardteam.github.io/HostlistsRegistry/assets/filter_12.txt'
// ]
// ]
// Stalkerware
// [
// 'https://raw.githubusercontent.com/AssoEchap/stalkerware-indicators/master/generated/hosts',

View File

@ -546,7 +546,7 @@ export class FileOutput {
childSpan.traceChildSync('write to strategies', () => this.writeToStrategies());
return childSpan.traceChildAsync('output to disk', (childSpan) => {
const promises: Array<Promise<void> | void> = [];
const promises: Array<Promise<void>> = [];
const descriptions = nullthrow(this.description, 'Missing description');

View File

@ -31,7 +31,7 @@
"fast-cidr-tools": "^0.3.3",
"fast-uri": "^3.1.0",
"fdir": "^6.5.0",
"foxts": "^4.4.0",
"foxts": "^4.5.0",
"hash-wasm": "^4.12.0",
"json-stringify-pretty-compact": "4.0.0",
"null-prototype-object": "^1.2.3",
@ -49,7 +49,7 @@
"yauzl-promise": "^4.0.0"
},
"devDependencies": {
"@eslint-sukka/node": "^7.3.3",
"@eslint-sukka/node": "^7.3.5",
"@swc-node/register": "^1.11.1",
"@swc/core": "^1.13.5",
"@types/better-sqlite3": "^7.6.13",
@ -60,8 +60,8 @@
"@types/tar-fs": "^2.0.4",
"@types/yauzl-promise": "^4.0.1",
"eslint": "^9.37.0",
"eslint-config-sukka": "^7.3.3",
"eslint-formatter-sukka": "^7.3.3",
"eslint-config-sukka": "^7.3.5",
"eslint-formatter-sukka": "^7.3.5",
"expect": "^30.2.0",
"mitata": "^1.0.34",
"mocha": "^11.7.4",

342
pnpm-lock.yaml generated
View File

@ -51,8 +51,8 @@ importers:
specifier: ^6.5.0
version: 6.5.0(picomatch@4.0.3)
foxts:
specifier: ^4.4.0
version: 4.4.0
specifier: ^4.5.0
version: 4.5.0
hash-wasm:
specifier: ^4.12.0
version: 4.12.0
@ -100,8 +100,8 @@ importers:
version: 4.0.0
devDependencies:
'@eslint-sukka/node':
specifier: ^7.3.3
version: 7.3.3(eslint@9.37.0)(typescript@5.9.3)
specifier: ^7.3.5
version: 7.3.5(eslint@9.37.0)(typescript@5.9.3)
'@swc-node/register':
specifier: ^1.11.1
version: 1.11.1(@swc/core@1.13.5)(@swc/types@0.1.24)(typescript@5.9.3)
@ -133,11 +133,11 @@ importers:
specifier: ^9.37.0
version: 9.37.0
eslint-config-sukka:
specifier: ^7.3.3
version: 7.3.3(@typescript-eslint/utils@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0)(typescript@5.9.3)
specifier: ^7.3.5
version: 7.3.5(@typescript-eslint/utils@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0)(typescript@5.9.3)
eslint-formatter-sukka:
specifier: ^7.3.3
version: 7.3.3(eslint@9.37.0)
specifier: ^7.3.5
version: 7.3.5(eslint@9.37.0)
expect:
specifier: ^30.2.0
version: 30.2.0
@ -192,16 +192,16 @@ packages:
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
'@eslint-sukka/eslint-plugin-stylistic@7.3.3':
resolution: {integrity: sha512-l7gket2oRda4qNpgbzpQMZWEjGsYSCqsG0IK3pHLqWc9phPUCSOPNMrFR2h7f1d6QekgYu2V/N7M4Es3M3t9KA==}
'@eslint-sukka/eslint-plugin-stylistic@7.3.5':
resolution: {integrity: sha512-YitFTu+Ajh3sktTNER9Vq5SmZ0yoka914WzSEIRKgOiNoHqMYIBNYMGROBYt97niY9nOr/VYxVixE2YiJHwnAg==}
peerDependencies:
eslint: '*'
'@eslint-sukka/node@7.3.3':
resolution: {integrity: sha512-CeSi/TGCDdHAi8bi4XkSjWZ72Z5w47fhWrFZNXT/YKodePjvruSQc5sajjETdhFBIZkhFg9AOM1tA0tE94YpkA==}
'@eslint-sukka/node@7.3.5':
resolution: {integrity: sha512-EoSV7fOaPmFFu7CxjDZ/ANqMQ/gEA2cdgfJ7qjsoqo9q0w/OUsFB/El8hH9/40rH1l8aJM9KLbu9yvQF3VfC2w==}
'@eslint-sukka/shared@7.3.3':
resolution: {integrity: sha512-GfdQaHYDGAKMLEMCSsaKmILs3bGZpV39DdomZyTcc3xr1g8XslBoKn22NtMjw3iAfY74q1jHRDAMUvPCqhFwgQ==}
'@eslint-sukka/shared@7.3.5':
resolution: {integrity: sha512-ttsaWyrIgx0ef7bqvYyvRtgZMxAODKB6uCKzE2QkDVTYx6cLbbHYPA0CgyOZzhSSOzWqkbUXdy+poEhU2EpVYA==}
'@eslint/config-array@0.21.0':
resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
@ -690,63 +690,63 @@ packages:
'@types/yauzl-promise@4.0.1':
resolution: {integrity: sha512-qYEC3rJwqiJpdQ9b+bPNeuSY0c3JUM8vIuDy08qfuVN7xHm3ZDsHn2kGphUIB0ruEXrPGNXZ64nMUcu4fDjViQ==}
'@typescript-eslint/eslint-plugin@8.46.0':
resolution: {integrity: sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==}
'@typescript-eslint/eslint-plugin@8.46.1':
resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^8.46.0
'@typescript-eslint/parser': ^8.46.1
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/parser@8.46.0':
resolution: {integrity: sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==}
'@typescript-eslint/parser@8.46.1':
resolution: {integrity: sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/project-service@8.46.0':
resolution: {integrity: sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==}
'@typescript-eslint/project-service@8.46.1':
resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/scope-manager@8.46.0':
resolution: {integrity: sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==}
'@typescript-eslint/scope-manager@8.46.1':
resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/tsconfig-utils@8.46.0':
resolution: {integrity: sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==}
'@typescript-eslint/tsconfig-utils@8.46.1':
resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/type-utils@8.46.0':
resolution: {integrity: sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==}
'@typescript-eslint/type-utils@8.46.1':
resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/types@8.46.0':
resolution: {integrity: sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==}
'@typescript-eslint/types@8.46.1':
resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@8.46.0':
resolution: {integrity: sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==}
'@typescript-eslint/typescript-estree@8.46.1':
resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/utils@8.46.0':
resolution: {integrity: sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==}
'@typescript-eslint/utils@8.46.1':
resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/visitor-keys@8.46.0':
resolution: {integrity: sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==}
'@typescript-eslint/visitor-keys@8.46.1':
resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@unrs/resolver-binding-android-arm-eabi@1.11.1':
@ -1009,8 +1009,8 @@ packages:
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
comment-json@4.2.5:
resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==}
comment-json@4.4.1:
resolution: {integrity: sha512-r1To31BQD5060QdkC+Iheai7gHwoSZobzunqkf2/kQ6xIAfJyrKNAFUwdKvkK7Qgu7pVTKQEa7ok7Ed3ycAJgg==}
engines: {node: '>= 6'}
comment-parser@1.4.1:
@ -1059,6 +1059,15 @@ packages:
supports-color:
optional: true
debug@4.4.3:
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
decamelize@4.0.0:
resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
engines: {node: '>=10'}
@ -1167,11 +1176,11 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
eslint-config-sukka@7.3.3:
resolution: {integrity: sha512-gafTceuX0NZzuk6p4dMBoHlm/ZZ4Pvs5f5MpNQwoleHvuQy1bl08UyNbbmN9cDa5djX27iKVOD/qw+/0jIPAtg==}
eslint-config-sukka@7.3.5:
resolution: {integrity: sha512-phX7VamyCVhUI/eDUNrIIfmNBh27XuzKgu28cvMOhBd5iYB+3HLK+/DTthxB7J5GUTKAfHd3zZR1GViWS7WdxQ==}
eslint-formatter-sukka@7.3.3:
resolution: {integrity: sha512-MX6RFVjCbivWCN0YI/AjWpOqPO7OMhafPdz1BHmlf2VVESj4T9dJYpGiFGi44hqYi2Jt8o6d3UPUwOLsBz0rrQ==}
eslint-formatter-sukka@7.3.5:
resolution: {integrity: sha512-d2dudNANB8hIma2c10jMn3MK7oC3ituv3cWuwj8ym+CbnnhGgu3Y5D6gSZea3BMgjZcwNMpWKTHpJ4j19MW5VQ==}
peerDependencies:
eslint: '*'
@ -1263,8 +1272,8 @@ packages:
peerDependencies:
eslint: '>=8.44.0'
eslint-plugin-sukka@7.3.3:
resolution: {integrity: sha512-eRGEBF5pd5nvFxVKzTje5ZRr0h3t7AQ5I6U4iVd/h6gyh9bx6v6OrnN+n11rNsD8GQSTbgUWrk/k+5+ElW6BiQ==}
eslint-plugin-sukka@7.3.5:
resolution: {integrity: sha512-1fC66OcoIUcyw74oFyd2IDEb7OLbnTGL6BxbzUso4x+nLJsVJSwLE9AfwN2rndZ5++MOv2EZIOD+GZMK0ioM6w==}
peerDependencies:
eslint: '*'
typescript: '*'
@ -1428,8 +1437,8 @@ packages:
foxts@3.15.0:
resolution: {integrity: sha512-XaSnlPKgD23NGdfuUHAX50V9h17bavUEZthg3SBO8ajT3D0pFg6KhYRvKNOlB+t7MpKZ1fj22bUPssH5PY0h4w==}
foxts@4.4.0:
resolution: {integrity: sha512-JfNrapswF+lEebNmJXukHSiqEiX9ox0A6B3n70PqP9t9odoMMTccDNzY9qDoYDn8KqDkF9uWMQ5BBK7tHtPZhQ==}
foxts@4.5.0:
resolution: {integrity: sha512-1eWQ9TCj/F9NFYE0nZ3ou/84/Mk6qZioxYYkDMuinSeg/MZ6kb5SkXkjHJB68W3ESopmJRxdqpFigPjow86t1Q==}
fs-constants@1.0.0:
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
@ -1441,8 +1450,8 @@ packages:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
get-tsconfig@4.10.1:
resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==}
get-tsconfig@4.12.0:
resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==}
github-from-package@0.0.0:
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
@ -1480,10 +1489,6 @@ packages:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'}
has-own-prop@2.0.0:
resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==}
engines: {node: '>=8'}
hash-wasm@4.12.0:
resolution: {integrity: sha512-+/2B2rYLb48I/evdOIhP+K/DD2ca2fgBjp6O+GBEnCDk2e4rpeXIK8GvIyRPjTezgmWn9gmKwkQjjx6BtqDHVQ==}
@ -1711,8 +1716,8 @@ packages:
napi-build-utils@2.0.0:
resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==}
napi-postinstall@0.3.3:
resolution: {integrity: sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==}
napi-postinstall@0.3.4:
resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
hasBin: true
@ -1854,10 +1859,6 @@ packages:
resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
repeat-string@1.6.1:
resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
engines: {node: '>=0.10'}
require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@ -1890,6 +1891,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
semver@7.7.3:
resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
engines: {node: '>=10'}
hasBin: true
serialize-javascript@6.0.2:
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
@ -1998,8 +2004,8 @@ packages:
resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
engines: {node: ^14.18.0 || >=16.0.0}
tapable@2.2.2:
resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==}
tapable@2.3.0:
resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
engines: {node: '>=6'}
tar-fs@2.1.3:
@ -2024,8 +2030,8 @@ packages:
tinyexec@1.0.1:
resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
tinyglobby@0.2.14:
resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
tinyglobby@0.2.15:
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
engines: {node: '>=12.0.0'}
tldts-core@7.0.17:
@ -2073,8 +2079,8 @@ packages:
typedarray-to-buffer@3.1.5:
resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
typescript-eslint@8.46.0:
resolution: {integrity: sha512-6+ZrB6y2bT2DX3K+Qd9vn7OFOJR+xSLDj+Aw/N3zBwUt27uTw2sw2TE2+UcY1RiyBZkaGbTkVg9SSdPNUG6aUw==}
typescript-eslint@8.46.1:
resolution: {integrity: sha512-VHgijW803JafdSsDO8I761r3SHrgk4T00IdyQ+/UsthtgPRsBWQLqoSxOolxTpxRKi1kGXK0bSz4CoAc9ObqJA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@ -2229,24 +2235,24 @@ snapshots:
'@eslint-community/regexpp@4.12.1': {}
'@eslint-sukka/eslint-plugin-stylistic@7.3.3(eslint@9.37.0)':
'@eslint-sukka/eslint-plugin-stylistic@7.3.5(eslint@9.37.0)':
dependencies:
eslint: 9.37.0
'@eslint-sukka/node@7.3.3(eslint@9.37.0)(typescript@5.9.3)':
'@eslint-sukka/node@7.3.5(eslint@9.37.0)(typescript@5.9.3)':
dependencies:
'@eslint-sukka/shared': 7.3.3(eslint@9.37.0)(typescript@5.9.3)
'@eslint-sukka/shared': 7.3.5(eslint@9.37.0)(typescript@5.9.3)
eslint-plugin-n: 17.23.1(eslint@9.37.0)(typescript@5.9.3)
eslint-plugin-sukka: 7.3.3(eslint@9.37.0)(typescript@5.9.3)
eslint-plugin-sukka: 7.3.5(eslint@9.37.0)(typescript@5.9.3)
transitivePeerDependencies:
- eslint
- supports-color
- typescript
'@eslint-sukka/shared@7.3.3(eslint@9.37.0)(typescript@5.9.3)':
'@eslint-sukka/shared@7.3.5(eslint@9.37.0)(typescript@5.9.3)':
dependencies:
'@package-json/types': 0.0.12
'@typescript-eslint/utils': 8.46.0(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3)
oxc-resolver: 11.9.0
transitivePeerDependencies:
- eslint
@ -2686,14 +2692,14 @@ snapshots:
dependencies:
'@types/node': 24.7.2
'@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3)':
'@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
'@typescript-eslint/parser': 8.46.0(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.46.0
'@typescript-eslint/type-utils': 8.46.0(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.0(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.46.0
'@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.46.1
'@typescript-eslint/type-utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.46.1
eslint: 9.37.0
graphemer: 1.4.0
ignore: 7.0.5
@ -2703,80 +2709,80 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.46.0(eslint@9.37.0)(typescript@5.9.3)':
'@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.46.0
'@typescript-eslint/types': 8.46.0
'@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.46.0
debug: 4.4.1(supports-color@8.1.1)
'@typescript-eslint/scope-manager': 8.46.1
'@typescript-eslint/types': 8.46.1
'@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.46.1
debug: 4.4.3
eslint: 9.37.0
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/project-service@8.46.0(typescript@5.9.3)':
'@typescript-eslint/project-service@8.46.1(typescript@5.9.3)':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3)
'@typescript-eslint/types': 8.46.0
debug: 4.4.1(supports-color@8.1.1)
'@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3)
'@typescript-eslint/types': 8.46.1
debug: 4.4.3
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/scope-manager@8.46.0':
'@typescript-eslint/scope-manager@8.46.1':
dependencies:
'@typescript-eslint/types': 8.46.0
'@typescript-eslint/visitor-keys': 8.46.0
'@typescript-eslint/types': 8.46.1
'@typescript-eslint/visitor-keys': 8.46.1
'@typescript-eslint/tsconfig-utils@8.46.0(typescript@5.9.3)':
'@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)':
dependencies:
typescript: 5.9.3
'@typescript-eslint/type-utils@8.46.0(eslint@9.37.0)(typescript@5.9.3)':
'@typescript-eslint/type-utils@8.46.1(eslint@9.37.0)(typescript@5.9.3)':
dependencies:
'@typescript-eslint/types': 8.46.0
'@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.0(eslint@9.37.0)(typescript@5.9.3)
debug: 4.4.1(supports-color@8.1.1)
'@typescript-eslint/types': 8.46.1
'@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3)
debug: 4.4.3
eslint: 9.37.0
ts-api-utils: 2.1.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/types@8.46.0': {}
'@typescript-eslint/types@8.46.1': {}
'@typescript-eslint/typescript-estree@8.46.0(typescript@5.9.3)':
'@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)':
dependencies:
'@typescript-eslint/project-service': 8.46.0(typescript@5.9.3)
'@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3)
'@typescript-eslint/types': 8.46.0
'@typescript-eslint/visitor-keys': 8.46.0
debug: 4.4.1(supports-color@8.1.1)
'@typescript-eslint/project-service': 8.46.1(typescript@5.9.3)
'@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3)
'@typescript-eslint/types': 8.46.1
'@typescript-eslint/visitor-keys': 8.46.1
debug: 4.4.3
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.2
semver: 7.7.3
ts-api-utils: 2.1.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.46.0(eslint@9.37.0)(typescript@5.9.3)':
'@typescript-eslint/utils@8.46.1(eslint@9.37.0)(typescript@5.9.3)':
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0)
'@typescript-eslint/scope-manager': 8.46.0
'@typescript-eslint/types': 8.46.0
'@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.46.1
'@typescript-eslint/types': 8.46.1
'@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3)
eslint: 9.37.0
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/visitor-keys@8.46.0':
'@typescript-eslint/visitor-keys@8.46.1':
dependencies:
'@typescript-eslint/types': 8.46.0
'@typescript-eslint/types': 8.46.1
eslint-visitor-keys: 4.2.1
'@unrs/resolver-binding-android-arm-eabi@1.11.1':
@ -2990,13 +2996,11 @@ snapshots:
colorette@2.0.20: {}
comment-json@4.2.5:
comment-json@4.4.1:
dependencies:
array-timsort: 1.0.3
core-util-is: 1.0.3
esprima: 4.0.1
has-own-prop: 2.0.0
repeat-string: 1.6.1
comment-parser@1.4.1: {}
@ -3032,6 +3036,10 @@ snapshots:
optionalDependencies:
supports-color: 8.1.1
debug@4.4.3:
dependencies:
ms: 2.1.3
decamelize@4.0.0: {}
decompress-response@6.0.0:
@ -3064,7 +3072,7 @@ snapshots:
dependencies:
debug: 4.4.1(supports-color@8.1.1)
dns2: https://codeload.github.com/lsongdev/node-dns/tar.gz/3adb7e91b3101c0e4f43ebaca3a568269ea04d11
foxts: 4.4.0
foxts: 4.5.0
tldts: 7.0.17
transitivePeerDependencies:
- supports-color
@ -3094,7 +3102,7 @@ snapshots:
enhanced-resolve@5.18.3:
dependencies:
graceful-fs: 4.2.11
tapable: 2.2.2
tapable: 2.3.0
entities@2.2.0: {}
@ -3125,36 +3133,36 @@ snapshots:
eslint-compat-utils@0.5.1(eslint@9.37.0):
dependencies:
eslint: 9.37.0
semver: 7.7.2
semver: 7.7.3
eslint-compat-utils@0.6.5(eslint@9.37.0):
dependencies:
eslint: 9.37.0
semver: 7.7.2
semver: 7.7.3
eslint-config-sukka@7.3.3(@typescript-eslint/utils@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0)(typescript@5.9.3):
eslint-config-sukka@7.3.5(@typescript-eslint/utils@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0)(typescript@5.9.3):
dependencies:
'@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.37.0)
'@eslint-sukka/eslint-plugin-stylistic': 7.3.3(eslint@9.37.0)
'@eslint-sukka/shared': 7.3.3(eslint@9.37.0)(typescript@5.9.3)
'@eslint-sukka/eslint-plugin-stylistic': 7.3.5(eslint@9.37.0)
'@eslint-sukka/shared': 7.3.5(eslint@9.37.0)(typescript@5.9.3)
'@eslint/js': 9.37.0
'@typescript-eslint/eslint-plugin': 8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/parser': 8.46.0(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.9.3)
ci-info: 4.3.1
defu: 6.1.4
eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0))(eslint@9.37.0)
eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0))(eslint@9.37.0)
eslint-plugin-autofix: 2.2.0(eslint@9.37.0)
eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0)
eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0)
eslint-plugin-jsonc: 2.21.0(eslint@9.37.0)
eslint-plugin-paths: 1.1.0
eslint-plugin-promise: 7.2.1(eslint@9.37.0)
eslint-plugin-regexp: 2.10.0(eslint@9.37.0)
eslint-plugin-sukka: 7.3.3(eslint@9.37.0)(typescript@5.9.3)
eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)
foxts: 4.4.0
eslint-plugin-sukka: 7.3.5(eslint@9.37.0)(typescript@5.9.3)
eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)
foxts: 4.5.0
jsonc-eslint-parser: 2.4.1
picocolors: 1.1.1
typescript-eslint: 8.46.0(eslint@9.37.0)(typescript@5.9.3)
typescript-eslint: 8.46.1(eslint@9.37.0)(typescript@5.9.3)
transitivePeerDependencies:
- '@eslint/json'
- '@typescript-eslint/utils'
@ -3164,16 +3172,16 @@ snapshots:
- supports-color
- typescript
eslint-formatter-sukka@7.3.3(eslint@9.37.0):
eslint-formatter-sukka@7.3.5(eslint@9.37.0):
dependencies:
ci-info: 4.3.1
eslint: 9.37.0
foxts: 4.4.0
foxts: 4.5.0
picocolors: 1.1.1
eslint-import-context@0.1.9(unrs-resolver@1.11.1):
dependencies:
get-tsconfig: 4.10.1
get-tsconfig: 4.12.0
stable-hash-x: 0.2.0
optionalDependencies:
unrs-resolver: 1.11.1
@ -3187,18 +3195,18 @@ snapshots:
- supports-color
optional: true
eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0))(eslint@9.37.0):
eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0))(eslint@9.37.0):
dependencies:
debug: 4.4.1(supports-color@8.1.1)
debug: 4.4.3
eslint: 9.37.0
eslint-import-context: 0.1.9(unrs-resolver@1.11.1)
get-tsconfig: 4.10.1
get-tsconfig: 4.12.0
is-bun-module: 2.0.0
stable-hash-x: 0.2.0
tinyglobby: 0.2.14
tinyglobby: 0.2.15
unrs-resolver: 1.11.1
optionalDependencies:
eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0)
eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0)
transitivePeerDependencies:
- supports-color
@ -3223,20 +3231,20 @@ snapshots:
eslint: 9.37.0
eslint-compat-utils: 0.5.1(eslint@9.37.0)
eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0):
eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0):
dependencies:
'@typescript-eslint/types': 8.46.0
'@typescript-eslint/types': 8.46.1
comment-parser: 1.4.1
debug: 4.4.1(supports-color@8.1.1)
debug: 4.4.3
eslint: 9.37.0
eslint-import-context: 0.1.9(unrs-resolver@1.11.1)
is-glob: 4.0.3
minimatch: 10.0.3
semver: 7.7.2
semver: 7.7.3
stable-hash-x: 0.2.0
unrs-resolver: 1.11.1
optionalDependencies:
'@typescript-eslint/utils': 8.46.0(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3)
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
@ -3262,18 +3270,18 @@ snapshots:
enhanced-resolve: 5.18.3
eslint: 9.37.0
eslint-plugin-es-x: 7.8.0(eslint@9.37.0)
get-tsconfig: 4.10.1
get-tsconfig: 4.12.0
globals: 15.15.0
globrex: 0.1.2
ignore: 5.3.2
semver: 7.7.2
semver: 7.7.3
ts-declaration-location: 1.0.7(typescript@5.9.3)
transitivePeerDependencies:
- typescript
eslint-plugin-paths@1.1.0:
dependencies:
comment-json: 4.2.5
comment-json: 4.4.1
eslint-plugin-promise@7.2.1(eslint@9.37.0):
dependencies:
@ -3291,24 +3299,24 @@ snapshots:
regexp-ast-analysis: 0.7.1
scslre: 0.3.0
eslint-plugin-sukka@7.3.3(eslint@9.37.0)(typescript@5.9.3):
eslint-plugin-sukka@7.3.5(eslint@9.37.0)(typescript@5.9.3):
dependencies:
'@eslint-sukka/shared': 7.3.3(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/type-utils': 8.46.0(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/types': 8.46.0
'@typescript-eslint/utils': 8.46.0(eslint@9.37.0)(typescript@5.9.3)
'@eslint-sukka/shared': 7.3.5(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/type-utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/types': 8.46.1
'@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3)
eslint: 9.37.0
foxts: 4.4.0
foxts: 4.5.0
optionalDependencies:
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0):
eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0):
dependencies:
eslint: 9.37.0
optionalDependencies:
'@typescript-eslint/eslint-plugin': 8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3)
eslint-rule-composer@0.3.0: {}
@ -3416,7 +3424,7 @@ snapshots:
fast-cidr-tools@0.3.3:
dependencies:
foxts: 4.4.0
foxts: 4.5.0
fast-deep-equal@3.1.3: {}
@ -3482,7 +3490,7 @@ snapshots:
fast-escape-html: 1.1.0
fast-escape-regexp: 1.0.1
foxts@4.4.0:
foxts@4.5.0:
dependencies:
fast-escape-html: 1.1.0
fast-escape-regexp: 1.0.1
@ -3494,7 +3502,7 @@ snapshots:
get-caller-file@2.0.5: {}
get-tsconfig@4.10.1:
get-tsconfig@4.12.0:
dependencies:
resolve-pkg-maps: 1.0.0
@ -3529,8 +3537,6 @@ snapshots:
has-flag@4.0.0: {}
has-own-prop@2.0.0: {}
hash-wasm@4.12.0: {}
hasown@2.0.2:
@ -3570,7 +3576,7 @@ snapshots:
is-bun-module@2.0.0:
dependencies:
semver: 7.7.2
semver: 7.7.3
is-core-module@2.16.1:
dependencies:
@ -3677,7 +3683,7 @@ snapshots:
acorn: 8.15.0
eslint-visitor-keys: 3.4.3
espree: 9.6.1
semver: 7.7.2
semver: 7.7.3
keyv@4.5.4:
dependencies:
@ -3762,7 +3768,7 @@ snapshots:
napi-build-utils@2.0.0: {}
napi-postinstall@0.3.3: {}
napi-postinstall@0.3.4: {}
natural-compare@1.4.0: {}
@ -3919,8 +3925,6 @@ snapshots:
'@eslint-community/regexpp': 4.12.1
refa: 0.12.1
repeat-string@1.6.1: {}
require-directory@2.1.1: {}
resolve-from@4.0.0: {}
@ -3948,6 +3952,8 @@ snapshots:
semver@7.7.2: {}
semver@7.7.3: {}
serialize-javascript@6.0.2:
dependencies:
randombytes: 2.1.0
@ -4048,7 +4054,7 @@ snapshots:
dependencies:
'@pkgr/core': 0.2.9
tapable@2.2.2: {}
tapable@2.3.0: {}
tar-fs@2.1.3:
dependencies:
@ -4109,7 +4115,7 @@ snapshots:
tinyexec@1.0.1: {}
tinyglobby@0.2.14:
tinyglobby@0.2.15:
dependencies:
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
@ -4155,12 +4161,12 @@ snapshots:
dependencies:
is-typedarray: 1.0.0
typescript-eslint@8.46.0(eslint@9.37.0)(typescript@5.9.3):
typescript-eslint@8.46.1(eslint@9.37.0)(typescript@5.9.3):
dependencies:
'@typescript-eslint/eslint-plugin': 8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/parser': 8.46.0(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.0(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.9.3)
'@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3)
eslint: 9.37.0
typescript: 5.9.3
transitivePeerDependencies:
@ -4180,7 +4186,7 @@ snapshots:
unrs-resolver@1.11.1:
dependencies:
napi-postinstall: 0.3.3
napi-postinstall: 0.3.4
optionalDependencies:
'@unrs/resolver-binding-android-arm-eabi': 1.11.1
'@unrs/resolver-binding-android-arm64': 1.11.1