feat(phone-sms): support 5sim provider

(cherry picked from commit 7d10cab9765ed662b5088f791c8635fd8cc63e44)
This commit is contained in:
朴圣佑
2026-04-30 15:12:58 +08:00
committed by QLHazyCoder
parent 48e3df0831
commit 2eb913e00b
17 changed files with 3569 additions and 2140 deletions
+43
View File
@@ -0,0 +1,43 @@
// phone-sms/providers/registry.js — 接码平台注册表
(function attachPhoneSmsProviderRegistry(root, factory) {
root.PhoneSmsProviderRegistry = factory(root);
})(typeof self !== 'undefined' ? self : globalThis, function createPhoneSmsProviderRegistry(root) {
const PROVIDER_HERO_SMS = 'hero-sms';
const PROVIDER_FIVE_SIM = '5sim';
const DEFAULT_PROVIDER = PROVIDER_HERO_SMS;
function normalizeProviderId(value = '') {
const normalized = String(value || '').trim().toLowerCase();
return normalized === PROVIDER_FIVE_SIM ? PROVIDER_FIVE_SIM : PROVIDER_HERO_SMS;
}
function getProviderModule(providerId = DEFAULT_PROVIDER) {
const normalized = normalizeProviderId(providerId);
if (normalized === PROVIDER_FIVE_SIM) {
return root.PhoneSmsFiveSimProvider || null;
}
return root.PhoneSmsHeroSmsProvider || null;
}
function createProvider(providerId = DEFAULT_PROVIDER, deps = {}) {
const module = getProviderModule(providerId);
if (!module || typeof module.createProvider !== 'function') {
throw new Error(`Phone SMS provider is not loaded: ${normalizeProviderId(providerId)}`);
}
return module.createProvider(deps);
}
function getProviderLabel(providerId = DEFAULT_PROVIDER) {
return normalizeProviderId(providerId) === PROVIDER_FIVE_SIM ? '5sim' : 'HeroSMS';
}
return {
PROVIDER_HERO_SMS,
PROVIDER_FIVE_SIM,
DEFAULT_PROVIDER,
normalizeProviderId,
getProviderModule,
createProvider,
getProviderLabel,
};
});