@herbertgao/surgio
Version:
Generating rules for Surge, Clash, Quantumult like a PRO
46 lines • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProviderValidator = void 0;
const zod_1 = require("zod");
const types_1 = require("../types");
const filter_1 = require("./filter");
const hooks_1 = require("./hooks");
exports.ProviderValidator = zod_1.z.object({
type: zod_1.z.nativeEnum(types_1.SupportProviderEnum),
addFlag: zod_1.z.oboolean(),
removeExistingFlag: zod_1.z.oboolean(),
mptcp: zod_1.z.oboolean(),
tfo: zod_1.z.oboolean(),
ecn: zod_1.z.oboolean(),
blockQuic: zod_1.z
.union([zod_1.z.literal('auto'), zod_1.z.literal('on'), zod_1.z.literal('off')])
.optional(),
underlyingProxy: zod_1.z.ostring(),
startPort: zod_1.z.number().min(1024).max(65535).optional(),
relayUrl: zod_1.z.string().url().optional(),
requestUserAgent: zod_1.z.ostring(),
renameNode: zod_1.z
.function()
.args(zod_1.z.string())
.returns(zod_1.z.union([zod_1.z.string(), zod_1.z.undefined(), zod_1.z.void()]))
.optional(),
customFilters: zod_1.z
.record(zod_1.z.union([filter_1.NodeFilterTypeValidator, filter_1.SortedNodeFilterTypeValidator]))
.optional(),
nodeFilter: zod_1.z
.union([filter_1.NodeFilterTypeValidator, filter_1.SortedNodeFilterTypeValidator])
.optional(),
netflixFilter: zod_1.z
.union([filter_1.NodeFilterTypeValidator, filter_1.SortedNodeFilterTypeValidator])
.optional(),
youtubePremiumFilter: zod_1.z
.union([filter_1.NodeFilterTypeValidator, filter_1.SortedNodeFilterTypeValidator])
.optional(),
hooks: zod_1.z
.object({
afterNodeListResponse: hooks_1.AfterNodeListResponseHookValidator.optional(),
onError: hooks_1.OnErrorHookValidator.optional(),
})
.optional(),
});
//# sourceMappingURL=provider.js.map