mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-12 01:00:34 +08:00
Chore: enable microsoft_cdn build / refine Clash transformation
This commit is contained in:
parent
809281f56b
commit
c9c23ee127
@ -14,6 +14,7 @@ import { buildStreamService } from './build-stream-service';
|
|||||||
import { buildRedirectModule } from './build-redirect-module';
|
import { buildRedirectModule } from './build-redirect-module';
|
||||||
import { validate } from './validate-domainset';
|
import { validate } from './validate-domainset';
|
||||||
|
|
||||||
|
import { buildMicrosoftCdn } from './build-microsoft-cdn';
|
||||||
import { buildSSPanelUIMAppProfile } from './build-sspanel-appprofile';
|
import { buildSSPanelUIMAppProfile } from './build-sspanel-appprofile';
|
||||||
|
|
||||||
import { buildPublic } from './build-public';
|
import { buildPublic } from './build-public';
|
||||||
@ -67,6 +68,8 @@ import { downloadMockAssets } from './download-mock-assets';
|
|||||||
const buildRedirectModulePromise = downloadPreviousBuildPromise.then(() => buildRedirectModule());
|
const buildRedirectModulePromise = downloadPreviousBuildPromise.then(() => buildRedirectModule());
|
||||||
const buildStreamServicePromise = downloadPreviousBuildPromise.then(() => buildStreamService());
|
const buildStreamServicePromise = downloadPreviousBuildPromise.then(() => buildStreamService());
|
||||||
|
|
||||||
|
const buildMicrosoftCdnPromise = downloadPreviousBuildPromise.then(() => buildMicrosoftCdn());
|
||||||
|
|
||||||
const buildSSPanelUIMAppProfilePromise = Promise.all([
|
const buildSSPanelUIMAppProfilePromise = Promise.all([
|
||||||
downloadPreviousBuildPromise
|
downloadPreviousBuildPromise
|
||||||
]).then(() => buildSSPanelUIMAppProfile());
|
]).then(() => buildSSPanelUIMAppProfile());
|
||||||
@ -90,6 +93,7 @@ import { downloadMockAssets } from './download-mock-assets';
|
|||||||
buildDomesticRulesetPromise,
|
buildDomesticRulesetPromise,
|
||||||
buildRedirectModulePromise,
|
buildRedirectModulePromise,
|
||||||
buildStreamServicePromise,
|
buildStreamServicePromise,
|
||||||
|
buildMicrosoftCdnPromise,
|
||||||
buildSSPanelUIMAppProfilePromise,
|
buildSSPanelUIMAppProfilePromise,
|
||||||
|
|
||||||
downloadMockAssetsPromise
|
downloadMockAssetsPromise
|
||||||
|
|||||||
@ -16,10 +16,23 @@ const CLASH_SUPPORTED_RULE_TYPE = [
|
|||||||
'PROCESS-PATH'
|
'PROCESS-PATH'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const REQUIRE_REWRITE = {
|
||||||
|
'DEST-PORT': 'DST-PORT',
|
||||||
|
'IN-PORT': 'SRC-PORT'
|
||||||
|
} as const;
|
||||||
|
|
||||||
export const surgeRulesetToClashClassicalTextRuleset = (rules: string[] | Set<string>) => {
|
export const surgeRulesetToClashClassicalTextRuleset = (rules: string[] | Set<string>) => {
|
||||||
const trie = Trie.from(rules);
|
const trie = Trie.from(rules);
|
||||||
|
|
||||||
return CLASH_SUPPORTED_RULE_TYPE.flatMap(
|
return CLASH_SUPPORTED_RULE_TYPE.flatMap(
|
||||||
type => trie.find(`${type},`)
|
type => trie.find(`${type},`)
|
||||||
|
).concat(
|
||||||
|
Object.keys(REQUIRE_REWRITE).flatMap(
|
||||||
|
(type) => {
|
||||||
|
const found = trie.find(`${type},`);
|
||||||
|
return found.map(line => `${REQUIRE_REWRITE[type as keyof typeof REQUIRE_REWRITE]}${line.slice(type.length)}`);
|
||||||
|
}
|
||||||
|
)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user