mirror of
https://github.com/SukkaW/Surge.git
synced 2026-04-30 01:46:57 +08:00
Refactor: deprecate SSPanel appprofile.php output
This commit is contained in:
@@ -1,14 +1,13 @@
|
|||||||
import { parseFelixDnsmasqFromResp } from './lib/parse-dnsmasq';
|
import { parseFelixDnsmasqFromResp } from './lib/parse-dnsmasq';
|
||||||
import { task } from './trace';
|
import { task } from './trace';
|
||||||
import { SHARED_DESCRIPTION } from './constants/description';
|
import { SHARED_DESCRIPTION } from './constants/description';
|
||||||
import { once } from 'foxts/once';
|
|
||||||
import { DomainsetOutput } from './lib/rules/domainset';
|
import { DomainsetOutput } from './lib/rules/domainset';
|
||||||
import { $$fetch } from './lib/fetch-retry';
|
import { $$fetch } from './lib/fetch-retry';
|
||||||
|
|
||||||
export const getAppleCdnDomainsPromise = once(() => $$fetch('https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/apple.china.conf').then(parseFelixDnsmasqFromResp));
|
const getAppleCdnDomainsPromise = $$fetch('https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/apple.china.conf').then(parseFelixDnsmasqFromResp);
|
||||||
|
|
||||||
export const buildAppleCdn = task(require.main === module, __filename)(async (span) => {
|
export const buildAppleCdn = task(require.main === module, __filename)(async (span) => {
|
||||||
const res: string[] = await span.traceChildPromise('get apple cdn domains', getAppleCdnDomainsPromise());
|
const res: string[] = await span.traceChildPromise('get apple cdn domains', getAppleCdnDomainsPromise);
|
||||||
|
|
||||||
return new DomainsetOutput(span, 'apple_cdn')
|
return new DomainsetOutput(span, 'apple_cdn')
|
||||||
.withTitle('Sukka\'s Ruleset - Apple CDN')
|
.withTitle('Sukka\'s Ruleset - Apple CDN')
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ export const buildCdnDownloadConf = task(require.main === module, __filename)(as
|
|||||||
span.traceChildAsync(
|
span.traceChildAsync(
|
||||||
'load public ipfs gateway list',
|
'load public ipfs gateway list',
|
||||||
async () => {
|
async () => {
|
||||||
const data = await (await $$fetch('https://cdn.jsdelivr.net/gh/ipfs/public-gateway-checker@refs/heads/main/gateways.json')).json();
|
const data = await (await $$fetch('https://cdn.jsdelivr.net/gh/ipfs/public-gateway-checker@main/gateways.json')).json();
|
||||||
if (!Array.isArray(data)) {
|
if (!Array.isArray(data)) {
|
||||||
console.error('Invalid IPFS gateway list format');
|
console.error('Invalid IPFS gateway list format');
|
||||||
return [];
|
return [];
|
||||||
|
|||||||
@@ -1,19 +1,16 @@
|
|||||||
import { fetchRemoteTextByLine } from './lib/fetch-text-by-line';
|
import { fetchRemoteTextByLine } from './lib/fetch-text-by-line';
|
||||||
import { task } from './trace';
|
import { task } from './trace';
|
||||||
|
|
||||||
import { once } from 'foxts/once';
|
|
||||||
import { IPListOutput } from './lib/rules/ip';
|
import { IPListOutput } from './lib/rules/ip';
|
||||||
import { createFileDescription } from './constants/description';
|
import { createFileDescription } from './constants/description';
|
||||||
|
|
||||||
export const getChnCidrPromise = once(async function getChnCidr() {
|
const getChnCidrPromise = Promise.all([
|
||||||
return Promise.all([
|
|
||||||
fetchRemoteTextByLine('https://chnroutes2.cdn.skk.moe/chnroutes.txt', true).then(Array.fromAsync<string>),
|
fetchRemoteTextByLine('https://chnroutes2.cdn.skk.moe/chnroutes.txt', true).then(Array.fromAsync<string>),
|
||||||
fetchRemoteTextByLine('https://gaoyifan.github.io/china-operator-ip/china6.txt', true).then(Array.fromAsync<string>)
|
fetchRemoteTextByLine('https://gaoyifan.github.io/china-operator-ip/china6.txt', true).then(Array.fromAsync<string>)
|
||||||
]);
|
]);
|
||||||
});
|
|
||||||
|
|
||||||
export const buildChnCidr = task(require.main === module, __filename)(async (span) => {
|
export const buildChnCidr = task(require.main === module, __filename)(async (span) => {
|
||||||
const [filteredCidr4, cidr6] = await span.traceChildAsync('download chnroutes2', getChnCidrPromise);
|
const [filteredCidr4, cidr6] = await span.traceChildPromise('download chnroutes2', getChnCidrPromise);
|
||||||
|
|
||||||
// Can not use SHARED_DESCRIPTION here as different license
|
// Can not use SHARED_DESCRIPTION here as different license
|
||||||
const description = createFileDescription('CC BY-SA 2.0');
|
const description = createFileDescription('CC BY-SA 2.0');
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { readFileIntoProcessedArray } from './lib/fetch-text-by-line';
|
|||||||
import { SHARED_DESCRIPTION } from './constants/description';
|
import { SHARED_DESCRIPTION } from './constants/description';
|
||||||
import { RulesetOutput } from './lib/rules/ruleset';
|
import { RulesetOutput } from './lib/rules/ruleset';
|
||||||
|
|
||||||
export const getGlobalRulesetPromise = once(async () => {
|
const getGlobalRulesetPromise = once(async () => {
|
||||||
const globals = await readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/global.conf'));
|
const globals = await readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/global.conf'));
|
||||||
const getDnsMappingRuleWithWildcard = createGetDnsMappingRule(true);
|
const getDnsMappingRuleWithWildcard = createGetDnsMappingRule(true);
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { SHARED_DESCRIPTION } from './constants/description';
|
|||||||
import { RulesetOutput } from './lib/rules/ruleset';
|
import { RulesetOutput } from './lib/rules/ruleset';
|
||||||
import Worktank from 'worktank';
|
import Worktank from 'worktank';
|
||||||
import { RULES } from './constants/microsoft-cdn';
|
import { RULES } from './constants/microsoft-cdn';
|
||||||
import { wait } from 'foxts/wait';
|
|
||||||
|
|
||||||
const pool = new Worktank({
|
const pool = new Worktank({
|
||||||
pool: {
|
pool: {
|
||||||
@@ -48,10 +47,10 @@ const pool = new Worktank({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
export const getMicrosoftCdnRulesetPromise = wait(0).then(() => pool.exec(
|
const getMicrosoftCdnRulesetPromise = pool.exec(
|
||||||
'getMicrosoftCdnRuleset',
|
'getMicrosoftCdnRuleset',
|
||||||
[__filename]
|
[__filename]
|
||||||
)).finally(() => pool.terminate());
|
).finally(() => pool.terminate());
|
||||||
|
|
||||||
export const buildMicrosoftCdn = task(require.main === module, __filename)(async (span) => {
|
export const buildMicrosoftCdn = task(require.main === module, __filename)(async (span) => {
|
||||||
const [domains, domainSuffixes] = await span.traceChildPromise('get microsoft cdn domains', getMicrosoftCdnRulesetPromise);
|
const [domains, domainSuffixes] = await span.traceChildPromise('get microsoft cdn domains', getMicrosoftCdnRulesetPromise);
|
||||||
|
|||||||
@@ -16,9 +16,8 @@ import { SHARED_DESCRIPTION } from './constants/description';
|
|||||||
|
|
||||||
import { addArrayElementsToSet } from 'foxts/add-array-elements-to-set';
|
import { addArrayElementsToSet } from 'foxts/add-array-elements-to-set';
|
||||||
import { OUTPUT_INTERNAL_DIR, SOURCE_DIR } from './constants/dir';
|
import { OUTPUT_INTERNAL_DIR, SOURCE_DIR } from './constants/dir';
|
||||||
import { DomainsetOutput } from './lib/rules/domainset';
|
import { DomainsetOutput, AdGuardHomeOutput } from './lib/rules/domainset';
|
||||||
import { foundDebugDomain } from './lib/parse-filter/shared';
|
import { foundDebugDomain } from './lib/parse-filter/shared';
|
||||||
import { AdGuardHomeOutput } from './lib/rules/domainset';
|
|
||||||
import { getPhishingDomains } from './lib/get-phishing-domains';
|
import { getPhishingDomains } from './lib/get-phishing-domains';
|
||||||
import type { MaybePromise } from './lib/misc';
|
import type { MaybePromise } from './lib/misc';
|
||||||
import { RulesetOutput } from './lib/rules/ruleset';
|
import { RulesetOutput } from './lib/rules/ruleset';
|
||||||
|
|||||||
@@ -1,290 +0,0 @@
|
|||||||
import { getAppleCdnDomainsPromise } from './build-apple-cdn';
|
|
||||||
import { getDomesticAndDirectDomainsRulesetPromise } from './build-domestic-direct-lan-ruleset-dns-mapping-module';
|
|
||||||
import { readFileIntoProcessedArray } from './lib/fetch-text-by-line';
|
|
||||||
import { task } from './trace';
|
|
||||||
import path from 'node:path';
|
|
||||||
|
|
||||||
import { ALL as AllStreamServices } from '../Source/stream';
|
|
||||||
import { getChnCidrPromise } from './build-chn-cidr';
|
|
||||||
import { getTelegramCIDRPromise } from './lib/get-telegram-backup-ip';
|
|
||||||
import { compareAndWriteFile } from './lib/create-file';
|
|
||||||
import { getMicrosoftCdnRulesetPromise } from './build-microsoft-cdn';
|
|
||||||
import { isTruthy, nullthrow } from 'foxts/guard';
|
|
||||||
import { appendArrayInPlace } from 'foxts/append-array-in-place';
|
|
||||||
import { OUTPUT_INTERNAL_DIR, OUTPUT_SURGE_DIR, SOURCE_DIR } from './constants/dir';
|
|
||||||
import { ClashOnlyRulesetOutput } from './lib/rules/ruleset';
|
|
||||||
import { getGlobalRulesetPromise } from './build-global-server-dns-mapping';
|
|
||||||
|
|
||||||
const POLICY_GROUPS: Array<[name: string, insertProxy: boolean, insertDirect: boolean]> = [
|
|
||||||
['Default Proxy', true, false],
|
|
||||||
['Global', true, true],
|
|
||||||
['Microsoft & Apple', true, true],
|
|
||||||
['Stream', true, false],
|
|
||||||
['Steam Download', true, true],
|
|
||||||
['Domestic', false, true],
|
|
||||||
['Final Match', true, true]
|
|
||||||
];
|
|
||||||
|
|
||||||
const steamDomainsPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'domainset/game-download.conf'));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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,
|
|
||||||
[microsoftCdnDomains, microsoftCdnDomainSuffixes],
|
|
||||||
appleCnRules,
|
|
||||||
neteaseMusicRules,
|
|
||||||
microsoftRules,
|
|
||||||
appleRules,
|
|
||||||
// streamRules,
|
|
||||||
steamDomainset,
|
|
||||||
[globalRules],
|
|
||||||
telegramRules,
|
|
||||||
[domesticCidrs4, domesticCidrs6],
|
|
||||||
// [streamCidrs4, streamCidrs6],
|
|
||||||
{ ipcidr: telegramCidrs4, ipcidr6: telegramCidrs6 },
|
|
||||||
rawLanCidrs
|
|
||||||
] = await Promise.all([
|
|
||||||
// domestic - domains
|
|
||||||
getDomesticAndDirectDomainsRulesetPromise(),
|
|
||||||
getAppleCdnDomainsPromise(),
|
|
||||||
getMicrosoftCdnRulesetPromise,
|
|
||||||
readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/apple_cn.conf')),
|
|
||||||
readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/neteasemusic.conf')),
|
|
||||||
// microsoft & apple - domains
|
|
||||||
readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/microsoft.conf')),
|
|
||||||
readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/apple_services.conf')),
|
|
||||||
// steam - domains
|
|
||||||
steamDomainsPromise,
|
|
||||||
// global - domains
|
|
||||||
getGlobalRulesetPromise(),
|
|
||||||
readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/telegram.conf')),
|
|
||||||
// domestic - ip cidr
|
|
||||||
getChnCidrPromise(),
|
|
||||||
// global - ip cidr
|
|
||||||
getTelegramCIDRPromise(),
|
|
||||||
// lan - ip cidr
|
|
||||||
readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'ip/lan.conf'))
|
|
||||||
] as const);
|
|
||||||
|
|
||||||
const domestic = new ClashOnlyRulesetOutput(span, '_', 'non_ip')
|
|
||||||
.addFromRuleset(domesticRules)
|
|
||||||
.bulkAddDomainSuffix(appleCdnDomains)
|
|
||||||
.bulkAddDomain(microsoftCdnDomains)
|
|
||||||
.bulkAddDomainSuffix(microsoftCdnDomainSuffixes)
|
|
||||||
.addFromRuleset(appleCnRules)
|
|
||||||
.addFromRuleset(neteaseMusicRules);
|
|
||||||
|
|
||||||
const microsoftApple = new ClashOnlyRulesetOutput(span, '_', 'non_ip')
|
|
||||||
.addFromRuleset(microsoftRules)
|
|
||||||
.addFromRuleset(appleRules);
|
|
||||||
|
|
||||||
const stream = new ClashOnlyRulesetOutput(span, '_', 'non_ip')
|
|
||||||
.addFromRuleset(streamRules);
|
|
||||||
|
|
||||||
const steam = new ClashOnlyRulesetOutput(span, '_', 'non_ip')
|
|
||||||
.addFromDomainset(steamDomainset);
|
|
||||||
|
|
||||||
const global = new ClashOnlyRulesetOutput(span, '_', 'non_ip')
|
|
||||||
.addFromRuleset(globalRules)
|
|
||||||
.addFromRuleset(telegramRules);
|
|
||||||
|
|
||||||
const direct = new ClashOnlyRulesetOutput(span, '_', 'non_ip')
|
|
||||||
.addFromRuleset(directRules)
|
|
||||||
.addFromRuleset(lanRules);
|
|
||||||
|
|
||||||
const domesticCidr = new ClashOnlyRulesetOutput(span, '_', 'ip')
|
|
||||||
.bulkAddCIDR4(domesticCidrs4)
|
|
||||||
.bulkAddCIDR6(domesticCidrs6);
|
|
||||||
|
|
||||||
const streamCidr = new ClashOnlyRulesetOutput(span, '_', 'ip')
|
|
||||||
.bulkAddCIDR4(streamCidrs4)
|
|
||||||
.bulkAddCIDR6(streamCidrs6);
|
|
||||||
|
|
||||||
const telegramCidr = new ClashOnlyRulesetOutput(span, '_', 'ip')
|
|
||||||
.bulkAddCIDR4(telegramCidrs4)
|
|
||||||
.bulkAddCIDR6(telegramCidrs6);
|
|
||||||
|
|
||||||
const lanCidrs = new ClashOnlyRulesetOutput(span, '_', 'ip')
|
|
||||||
.addFromRuleset(rawLanCidrs);
|
|
||||||
|
|
||||||
const output = generateAppProfile(
|
|
||||||
...(
|
|
||||||
(await Promise.all([
|
|
||||||
domestic.compile(),
|
|
||||||
microsoftApple.compile(),
|
|
||||||
stream.compile(),
|
|
||||||
steam.compile(),
|
|
||||||
global.compile(),
|
|
||||||
direct.compile(),
|
|
||||||
domesticCidr.compile(),
|
|
||||||
streamCidr.compile(),
|
|
||||||
telegramCidr.compile(),
|
|
||||||
lanCidrs.compile()
|
|
||||||
])).map(output => nullthrow(output[0]))
|
|
||||||
) as [
|
|
||||||
string[], string[], string[], string[], string[],
|
|
||||||
string[], string[], string[], string[], string[]
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
await compareAndWriteFile(
|
|
||||||
span,
|
|
||||||
output,
|
|
||||||
path.resolve(OUTPUT_INTERNAL_DIR, 'appprofile.php')
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
function generateAppProfile(
|
|
||||||
directDomains: string[],
|
|
||||||
microsoftAppleDomains: string[],
|
|
||||||
streamDomains: string[],
|
|
||||||
steamDomains: string[],
|
|
||||||
globalDomains: string[],
|
|
||||||
|
|
||||||
lanDomains: string[],
|
|
||||||
directCidrs: string[],
|
|
||||||
streamCidrs: string[],
|
|
||||||
globalCidrs: string[],
|
|
||||||
lanCidrs: string[]
|
|
||||||
) {
|
|
||||||
const redults = [
|
|
||||||
'<?php',
|
|
||||||
'',
|
|
||||||
`// # Build ${new Date().toISOString()}`,
|
|
||||||
'',
|
|
||||||
'declare(strict_types=1);',
|
|
||||||
'',
|
|
||||||
'$_ENV[\'Clash_Config\'] = [',
|
|
||||||
' \'port\' => 7890,',
|
|
||||||
' \'socks-port\' => 7891,',
|
|
||||||
' \'allow-lan\' => false,',
|
|
||||||
' \'mode\' => \'Rule\',',
|
|
||||||
' \'ipv6\' => true,',
|
|
||||||
' \'log-level\' => \'error\',',
|
|
||||||
' \'external-controller\' => \'0.0.0.0:9090\',',
|
|
||||||
' \'tun\' => [',
|
|
||||||
' \'enable\' => true,',
|
|
||||||
' \'stack\' => \'system\',',
|
|
||||||
' \'auto-route\' => true,',
|
|
||||||
' \'auto-redir\' => true,',
|
|
||||||
' \'auto-detect-interface\' => true,',
|
|
||||||
' \'dns-hijack\' => [',
|
|
||||||
' \'8.8.8.8:53\',',
|
|
||||||
' \'any:53\',',
|
|
||||||
' \'tcp://8.8.8.8:53\',',
|
|
||||||
' \'tcp://any:53\',',
|
|
||||||
' ]',
|
|
||||||
' ]',
|
|
||||||
'];',
|
|
||||||
'',
|
|
||||||
`$_ENV['Clash_Group_Indexes'] = [${JSON.stringify(POLICY_GROUPS.reduce<number[]>((acc, [, insertProxy], index) => {
|
|
||||||
if (insertProxy) {
|
|
||||||
acc.push(index);
|
|
||||||
}
|
|
||||||
return acc;
|
|
||||||
}, [])).slice(1, -1)}];`,
|
|
||||||
'$_ENV[\'Clash_Group_Config\'] = [',
|
|
||||||
' \'proxy-groups\' => ['
|
|
||||||
];
|
|
||||||
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
POLICY_GROUPS.flatMap(([name, insertProxy, insertDirect]) => [
|
|
||||||
' [',
|
|
||||||
` 'name' => '${name}',`,
|
|
||||||
' \'type\' => \'select\',',
|
|
||||||
' \'proxies\' => [',
|
|
||||||
insertProxy && name !== 'Default Proxy' && ' \'Default Proxy\',',
|
|
||||||
insertDirect && ' \'DIRECT\',',
|
|
||||||
' ],',
|
|
||||||
' ],'
|
|
||||||
].filter(isTruthy))
|
|
||||||
);
|
|
||||||
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
[
|
|
||||||
' ],',
|
|
||||||
' \'rules\' => ['
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
// domestic - domains
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
directDomains.map(line => ` '${line},Domestic',`)
|
|
||||||
);
|
|
||||||
|
|
||||||
// microsoft & apple - domains
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
microsoftAppleDomains.map(line => ` '${line},Microsoft & Apple',`)
|
|
||||||
);
|
|
||||||
|
|
||||||
// stream - domains
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
streamDomains.map(line => ` '${line},Stream',`)
|
|
||||||
);
|
|
||||||
// steam download - domains
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
steamDomains.map(line => ` '${line},Steam Download',`)
|
|
||||||
);
|
|
||||||
// global - domains
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
globalDomains.map(line => ` '${line},Global',`)
|
|
||||||
);
|
|
||||||
// microsoft & apple - ip cidr (nope)
|
|
||||||
// lan - domains
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
lanDomains.map(line => ` '${line},DIRECT',`)
|
|
||||||
);
|
|
||||||
// stream - ip cidr
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
streamCidrs.map(line => ` '${line},Stream',`)
|
|
||||||
);
|
|
||||||
// global - ip cidr
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
globalCidrs.map(line => ` '${line},Global',`)
|
|
||||||
);
|
|
||||||
// domestic - ip cidr
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
directCidrs.map(line => ` '${line},Domestic',`)
|
|
||||||
);
|
|
||||||
// lan - ip cidr
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
lanCidrs.map(line => ` '${line},DIRECT',`)
|
|
||||||
);
|
|
||||||
// match
|
|
||||||
appendArrayInPlace(
|
|
||||||
redults,
|
|
||||||
[
|
|
||||||
' \'MATCH,Final Match\',',
|
|
||||||
' ],',
|
|
||||||
'];'
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
return redults;
|
|
||||||
}
|
|
||||||
@@ -19,7 +19,6 @@ import { buildRedirectModule } from './build-sgmodule-redirect';
|
|||||||
import { buildAlwaysRealIPModule } from './build-sgmodule-always-realip';
|
import { buildAlwaysRealIPModule } from './build-sgmodule-always-realip';
|
||||||
|
|
||||||
import { buildMicrosoftCdn } from './build-microsoft-cdn';
|
import { buildMicrosoftCdn } from './build-microsoft-cdn';
|
||||||
import { buildSSPanelUIMAppProfile } from './build-sspanel-appprofile';
|
|
||||||
|
|
||||||
import { buildPublic } from './build-public';
|
import { buildPublic } from './build-public';
|
||||||
import { downloadMockAssets } from './download-mock-assets';
|
import { downloadMockAssets } from './download-mock-assets';
|
||||||
@@ -98,10 +97,6 @@ const buildFinishedLock = path.join(ROOT_DIR, '.BUILD_FINISHED');
|
|||||||
downloadPreviousBuildPromise.then(() => buildAlwaysRealIPModule(rootSpan)),
|
downloadPreviousBuildPromise.then(() => buildAlwaysRealIPModule(rootSpan)),
|
||||||
downloadPreviousBuildPromise.then(() => buildStreamService(rootSpan)),
|
downloadPreviousBuildPromise.then(() => buildStreamService(rootSpan)),
|
||||||
downloadPreviousBuildPromise.then(() => buildMicrosoftCdn(rootSpan)),
|
downloadPreviousBuildPromise.then(() => buildMicrosoftCdn(rootSpan)),
|
||||||
Promise.all([
|
|
||||||
downloadPreviousBuildPromise,
|
|
||||||
buildCommonPromise
|
|
||||||
]).then(() => buildSSPanelUIMAppProfile(rootSpan)),
|
|
||||||
downloadPreviousBuildPromise.then(() => buildCloudMounterRules(rootSpan)),
|
downloadPreviousBuildPromise.then(() => buildCloudMounterRules(rootSpan)),
|
||||||
downloadMockAssets(rootSpan)
|
downloadMockAssets(rootSpan)
|
||||||
]);
|
]);
|
||||||
|
|||||||
Reference in New Issue
Block a user