@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
1,132 lines (1,130 loc) • 28.5 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/solution/RegisterAndLogin/config.ts
var config_exports = {};
__export(config_exports, {
ApiCaller: () => ApiCaller,
channelConfigMap: () => channelConfigMap,
createApiCaller: () => createApiCaller,
getChannelConfig: () => getChannelConfig
});
module.exports = __toCommonJS(config_exports);
var onlineStoreConfig = {
sendEmailVerificationCode: {
url: "/auth/email/register-code",
method: "GET",
transformParams: (params) => ({
email: params.target
})
},
sendEmailLoginCode: {
url: "/auth/send-email-code",
method: "POST",
transformParams: (params) => ({
email: params.target,
purpose: params.purpose,
type: params.type
})
},
sendSmsRegisterCode: {
url: "/auth/mobile/sms-register",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
sendEmailRegisterLink: {
url: "/auth/email/link/new-send-register-link",
method: "POST",
transformParams: (email) => ({
email
})
},
verifyEmailRegistrationLink: {
url: "/auth/email/link/new-register",
method: "POST",
transformParams: (params) => ({
code: params.code,
password: params.password
})
},
emailPasswordLogin: {
url: "/auth/email/login",
method: "POST",
transformParams: (params) => ({
email: params.email,
password: params.password
}),
options: {
withCredentials: true
}
},
emailCodeRegister: {
url: "/auth/email/register",
method: "POST",
transformParams: (params) => ({
email: params.email,
code: params.code,
password: params.password
})
},
phoneCodeRegister: {
url: "/auth/mobile/register",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
code: params.code,
country_calling_code: String(params.country_calling_code)
})
},
resendEmailRegisterLink: {
url: "/auth/email/link/resend_register_link",
method: "POST",
transformParams: (params) => ({
code: params.code
})
},
checkEmailLinkCode: {
url: "/auth/email/link/new-register-check-code",
method: "GET",
transformParams: (params) => ({
code: params.code
})
},
sendSmsLoginCode: {
url: "/auth/send-login-msg",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
phoneCodeLogin: {
url: "/auth/mobile-login",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code),
code: params.code
})
},
guestLogin: {
url: "/auth/guest/login",
method: "POST",
transformParams: (params) => ({
login_channel: params.login_channel,
guest_code: params.guest_code
})
},
checkEmailExists: {
url: "/auth/email/check-email",
method: "GET",
transformParams: (params) => ({
email: params.email,
sales_channel: "online_store"
})
},
checkEmailCode: {
url: "/auth/email/check-email-code",
method: "GET",
transformParams: (params) => ({
email: params.email,
code: params.code,
action: params.action
})
},
checkMobileCode: {
url: "/auth/mobile/check-mobile-code",
method: "GET",
transformParams: (params) => ({
phone: String(params.phone),
code: params.code,
country_calling_code: String(params.country_calling_code),
action: params.action
})
},
phonePasswordLogin: {
url: "/auth/mobile/login",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
country_calling_code: String(params.country_calling_code)
})
},
sendPasswordResetEmail: {
url: "/auth/email/reset-password-code",
method: "GET",
transformParams: (params) => ({
email: params.email
})
},
sendPasswordResetSms: {
url: "/auth/mobile/sms-forget",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
sendResetPasswordLink: {
url: "/auth/email/link/send_reset_pwd_link",
method: "POST",
transformParams: (params) => ({
email: params.email
})
},
checkResetPasswordCode: {
url: "/auth/email/link/check_code",
method: "GET",
transformParams: (params) => ({
code: params.code
})
},
resetPasswordByCode: {
url: "/auth/email/link/reset_pwd_by_code",
method: "POST",
transformParams: (params) => ({
code: params.code,
password: params.password
})
},
resetPasswordByEmail: {
url: "/auth/email/reset-password",
method: "POST",
transformParams: (params) => ({
email: params.email,
password: params.password,
code: params.code
})
},
resetPasswordByPhone: {
url: "/auth/mobile/reset-password",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
code: params.code,
country_calling_code: String(params.country_calling_code)
})
},
verifyCode: {
url: "/auth/verify-code",
method: "POST",
transformParams: (params) => params
},
register: {
url: "/auth/register",
method: "POST",
transformParams: (params) => params
},
login: {
url: "/auth/login",
method: "POST",
transformParams: (params) => params
},
oauthLogin: {
url: "/auth/oauth-login",
method: "POST",
transformParams: (params) => params
},
validateToken: {
url: "/auth/validate",
method: "GET",
transformParams: (token) => ({}),
options: {
headers: (token) => ({
Authorization: `Bearer ${token}`
})
}
},
logout: {
url: "/auth/logout",
method: "POST",
transformParams: () => ({})
},
getCountries: {
url: "/area/country",
method: "GET",
transformParams: () => ({})
},
facebookLogin: {
url: "/auth/facebook/login",
method: "POST",
transformParams: (params) => ({
token: params.token
})
},
appleLogin: {
url: "/auth/apple/login",
method: "POST",
transformParams: (params) => ({
code: params.code
})
}
};
var defaultConfig = {
sendEmailVerificationCode: {
url: "/auth/send-email-code",
method: "POST",
transformParams: (params) => ({
email: params.target,
purpose: params.purpose,
type: params.type
})
},
sendEmailLoginCode: {
url: "/auth/send-email-code",
method: "POST",
transformParams: (params) => ({
email: params.target,
purpose: params.purpose,
type: params.type
})
},
sendSmsRegisterCode: {
url: "/auth/send-sms-register",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
sendEmailRegisterLink: {
url: "/auth/send-email-register-link",
method: "POST",
transformParams: (email) => ({
email
})
},
verifyEmailRegistrationLink: {
url: "/auth/verify-email-registration-link",
method: "POST",
transformParams: (code) => ({
code
})
},
emailPasswordLogin: {
url: "/auth/email-password-login",
method: "POST",
transformParams: (params) => ({
email: params.email,
password: params.password
})
},
emailCodeRegister: {
url: "/auth/email/register",
method: "POST",
transformParams: (params) => ({
email: params.email,
code: params.code,
password: params.password
})
},
phoneCodeRegister: {
url: "/auth/mobile/register",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
code: params.code,
country_calling_code: String(params.country_calling_code)
})
},
resendEmailRegisterLink: {
url: "/auth/resend-email-register-link",
method: "POST",
transformParams: (params) => ({
code: params.code
})
},
checkEmailLinkCode: {
url: "/email/link/check_code",
method: "GET",
transformParams: (params) => ({
code: params.code
})
},
sendSmsLoginCode: {
url: "/auth/send-sms-login-code",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
phoneCodeLogin: {
url: "/auth/phone-code-login",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code),
code: params.code
})
},
guestLogin: {
url: "/auth/guest-login",
method: "POST",
transformParams: (channel) => ({
login_channel: channel
})
},
checkEmailExists: {
url: "/auth/check-email-exists",
method: "GET",
transformParams: (params) => ({
email: params.email
})
},
checkEmailCode: {
url: "/auth/check-email-code",
method: "GET",
transformParams: (params) => ({
email: params.email,
code: params.code
})
},
checkMobileCode: {
url: "/auth/check-mobile-code",
method: "GET",
transformParams: (params) => ({
phone: String(params.phone),
code: params.code,
country_calling_code: String(params.country_calling_code),
action: params.action
})
},
phonePasswordLogin: {
url: "/auth/mobile-password-login",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
country_calling_code: String(params.country_calling_code)
})
},
sendPasswordResetEmail: {
url: "/auth/send-password-reset-email",
method: "GET",
transformParams: (params) => ({
email: params.email
})
},
sendPasswordResetSms: {
url: "/auth/send-password-reset-sms",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
sendResetPasswordLink: {
url: "/auth/send-reset-password-link",
method: "POST",
transformParams: (params) => ({
email: params.email
})
},
checkResetPasswordCode: {
url: "/auth/check-reset-password-code",
method: "GET",
transformParams: (params) => ({
code: params.code
})
},
resetPasswordByCode: {
url: "/auth/reset-password-by-code",
method: "GET",
transformParams: (params) => ({
code: params.code,
password: params.password
})
},
resetPasswordByEmail: {
url: "/auth/reset-password-email",
method: "POST",
transformParams: (params) => ({
email: params.email,
password: params.password,
code: params.code
})
},
resetPasswordByPhone: {
url: "/auth/reset-password-phone",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
code: params.code,
country_calling_code: String(params.country_calling_code)
})
},
verifyCode: {
url: "/auth/verify-code",
method: "POST",
transformParams: (params) => params
},
register: {
url: "/auth/register",
method: "POST",
transformParams: (params) => params
},
login: {
url: "/auth/login",
method: "POST",
transformParams: (params) => params
},
oauthLogin: {
url: "/auth/oauth-login",
method: "POST",
transformParams: (params) => params
},
validateToken: {
url: "/auth/validate",
method: "GET",
transformParams: (token) => ({}),
options: {
headers: (token) => ({
Authorization: `Bearer ${token}`
})
}
},
logout: {
url: "/auth/logout",
method: "POST",
transformParams: () => ({})
},
getCountries: {
url: "/auth/countries",
method: "GET",
transformParams: () => ({})
},
facebookLogin: {
url: "/auth/facebook/login",
method: "POST",
transformParams: (params) => ({
token: params.token
})
},
appleLogin: {
url: "/auth/apple/login",
method: "POST",
transformParams: (params) => ({
code: params.code
})
}
};
var webposConfig = {
sendEmailVerificationCode: {
url: "/auth/email/register-code",
method: "GET",
transformParams: (params) => ({
email: params.target
})
},
sendEmailLoginCode: {
url: "/auth/send-email-code",
method: "POST",
transformParams: (params) => ({
email: params.target,
purpose: params.purpose,
type: params.type
})
},
sendSmsRegisterCode: {
url: "/auth/mobile/sms-register",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
sendEmailRegisterLink: {
url: "/auth/email/link/new-send-register-link",
method: "POST",
transformParams: (email) => ({
email
})
},
verifyEmailRegistrationLink: {
url: "/auth/email/link/new-register",
method: "POST",
transformParams: (params) => ({
code: params.code,
password: params.password
})
},
emailPasswordLogin: {
url: "/tenant/account/login/email",
method: "POST",
transformParams: (params) => ({
email: params.email,
password: params.password,
device: "webpos" + (/* @__PURE__ */ new Date()).getTime()
}),
options: (values) => ({
// withCredentials: true,
prefix: false,
isDefaultSaasDomain: true,
cache: {
mode: "remote_local",
type: "indexDB",
cacheKeyData: values
}
})
},
emailCodeRegister: {
url: "/auth/email/register",
method: "POST",
transformParams: (params) => ({
email: params.email,
code: params.code,
password: params.password
})
},
phoneCodeRegister: {
url: "/auth/mobile/register",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
code: params.code,
country_calling_code: String(params.country_calling_code)
})
},
resendEmailRegisterLink: {
url: "/auth/email/link/resend_register_link",
method: "POST",
transformParams: (params) => ({
code: params.code
})
},
checkEmailLinkCode: {
url: "/auth/email/link/new-register-check-code",
method: "GET",
transformParams: (params) => ({
code: params.code
})
},
sendSmsLoginCode: {
url: "/auth/send-login-msg",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
phoneCodeLogin: {
url: "/auth/mobile-login",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code),
code: params.code
})
},
guestLogin: {
url: "/auth/guest/login",
method: "POST",
transformParams: (params) => ({
login_channel: params.login_channel,
guest_code: params.guest_code
})
},
checkEmailExists: {
url: "/auth/email/check-email",
method: "GET",
transformParams: (params) => ({
email: params.email,
sales_channel: "online_store"
})
},
checkEmailCode: {
url: "/auth/email/check-email-code",
method: "GET",
transformParams: (params) => ({
email: params.email,
code: params.code,
action: params.action
})
},
checkMobileCode: {
url: "/auth/mobile/check-mobile-code",
method: "GET",
transformParams: (params) => ({
phone: String(params.phone),
code: params.code,
country_calling_code: String(params.country_calling_code),
action: params.action
})
},
phonePasswordLogin: {
url: "/auth/mobile/login",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
country_calling_code: String(params.country_calling_code)
})
},
sendPasswordResetEmail: {
url: "/auth/email/reset-password-code",
method: "GET",
transformParams: (params) => ({
email: params.email
})
},
sendPasswordResetSms: {
url: "/auth/mobile/sms-forget",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
sendResetPasswordLink: {
url: "/auth/email/link/send_reset_pwd_link",
method: "POST",
transformParams: (params) => ({
email: params.email
})
},
checkResetPasswordCode: {
url: "/auth/email/link/check_code",
method: "GET",
transformParams: (params) => ({
code: params.code
})
},
resetPasswordByCode: {
url: "/auth/email/link/reset_pwd_by_code",
method: "POST",
transformParams: (params) => ({
code: params.code,
password: params.password
})
},
resetPasswordByEmail: {
url: "/auth/email/reset-password",
method: "POST",
transformParams: (params) => ({
email: params.email,
password: params.password,
code: params.code
})
},
resetPasswordByPhone: {
url: "/auth/mobile/reset-password",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
code: params.code,
country_calling_code: String(params.country_calling_code)
})
},
verifyCode: {
url: "/auth/verify-code",
method: "POST",
transformParams: (params) => params
},
register: {
url: "/auth/register",
method: "POST",
transformParams: (params) => params
},
login: {
url: "/auth/login",
method: "POST",
transformParams: (params) => params
},
oauthLogin: {
url: "/auth/oauth-login",
method: "POST",
transformParams: (params) => params
},
validateToken: {
url: "/auth/validate",
method: "GET",
transformParams: (token) => ({}),
options: {
headers: (token) => ({
Authorization: `Bearer ${token}`
})
}
},
logout: {
url: "/auth/logout",
method: "POST",
transformParams: () => ({})
},
getCountries: {
url: "/area/country",
method: "GET",
transformParams: () => ({})
},
facebookLogin: {
url: "/auth/facebook/login",
method: "POST",
transformParams: (params) => ({
token: params.token
})
},
appleLogin: {
url: "/auth/apple/login",
method: "POST",
transformParams: (params) => ({
code: params.code
})
}
};
var shopWebposConfig = {
sendEmailVerificationCode: {
url: "/auth/email/register-code",
method: "GET",
transformParams: (params) => ({
email: params.target
})
},
sendEmailLoginCode: {
url: "/auth/send-email-code",
method: "POST",
transformParams: (params) => ({
email: params.target,
purpose: params.purpose,
type: params.type
})
},
sendSmsRegisterCode: {
url: "/auth/mobile/sms-register",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
sendEmailRegisterLink: {
url: "/auth/email/link/new-send-register-link",
method: "POST",
transformParams: (email) => ({
email
})
},
verifyEmailRegistrationLink: {
url: "/auth/email/link/new-register",
method: "POST",
transformParams: (params) => ({
code: params.code,
password: params.password
})
},
emailPasswordLogin: {
url: "/tenant/auth/login/email",
method: "POST",
transformParams: (params) => ({
email: params.email,
password: params.password,
device: "webpos" + (/* @__PURE__ */ new Date()).getTime()
}),
options: (values) => ({
// withCredentials: true,
prefix: false,
cache: {
mode: "remote_local",
type: "indexDB",
cacheKeyData: values
}
})
},
emailCodeRegister: {
url: "/auth/email/register",
method: "POST",
transformParams: (params) => ({
email: params.email,
code: params.code,
password: params.password
})
},
phoneCodeRegister: {
url: "/auth/mobile/register",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
code: params.code,
country_calling_code: String(params.country_calling_code)
})
},
resendEmailRegisterLink: {
url: "/auth/email/link/resend_register_link",
method: "POST",
transformParams: (params) => ({
code: params.code
})
},
checkEmailLinkCode: {
url: "/auth/email/link/new-register-check-code",
method: "GET",
transformParams: (params) => ({
code: params.code
})
},
sendSmsLoginCode: {
url: "/auth/send-login-msg",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
phoneCodeLogin: {
url: "/auth/mobile-login",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code),
code: params.code
})
},
guestLogin: {
url: "/auth/guest/login",
method: "POST",
transformParams: (params) => ({
login_channel: params.login_channel,
guest_code: params.guest_code
})
},
checkEmailExists: {
url: "/auth/email/check-email",
method: "GET",
transformParams: (params) => ({
email: params.email,
sales_channel: "online_store"
})
},
checkEmailCode: {
url: "/auth/email/check-email-code",
method: "GET",
transformParams: (params) => ({
email: params.email,
code: params.code,
action: params.action
})
},
checkMobileCode: {
url: "/auth/mobile/check-mobile-code",
method: "GET",
transformParams: (params) => ({
phone: String(params.phone),
code: params.code,
country_calling_code: String(params.country_calling_code),
action: params.action
})
},
phonePasswordLogin: {
url: "/auth/mobile/login",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
country_calling_code: String(params.country_calling_code)
})
},
sendPasswordResetEmail: {
url: "/auth/email/reset-password-code",
method: "GET",
transformParams: (params) => ({
email: params.email
})
},
sendPasswordResetSms: {
url: "/auth/mobile/sms-forget",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
country_calling_code: String(params.country_calling_code)
})
},
sendResetPasswordLink: {
url: "/auth/email/link/send_reset_pwd_link",
method: "POST",
transformParams: (params) => ({
email: params.email
})
},
checkResetPasswordCode: {
url: "/auth/email/link/check_code",
method: "GET",
transformParams: (params) => ({
code: params.code
})
},
resetPasswordByCode: {
url: "/auth/email/link/reset_pwd_by_code",
method: "POST",
transformParams: (params) => ({
code: params.code,
password: params.password
})
},
resetPasswordByEmail: {
url: "/auth/email/reset-password",
method: "POST",
transformParams: (params) => ({
email: params.email,
password: params.password,
code: params.code
})
},
resetPasswordByPhone: {
url: "/auth/mobile/reset-password",
method: "POST",
transformParams: (params) => ({
phone: String(params.phone),
password: params.password,
code: params.code,
country_calling_code: String(params.country_calling_code)
})
},
verifyCode: {
url: "/auth/verify-code",
method: "POST",
transformParams: (params) => params
},
register: {
url: "/auth/register",
method: "POST",
transformParams: (params) => params
},
login: {
url: "/auth/login",
method: "POST",
transformParams: (params) => params
},
oauthLogin: {
url: "/auth/oauth-login",
method: "POST",
transformParams: (params) => params
},
validateToken: {
url: "/auth/validate",
method: "GET",
transformParams: (token) => ({}),
options: {
headers: (token) => ({
Authorization: `Bearer ${token}`
})
}
},
logout: {
url: "/auth/logout",
method: "POST",
transformParams: () => ({})
},
getCountries: {
url: "/area/country",
method: "GET",
transformParams: () => ({})
},
facebookLogin: {
url: "/auth/facebook/login",
method: "POST",
transformParams: (params) => ({
token: params.token
})
},
appleLogin: {
url: "/auth/apple/login",
method: "POST",
transformParams: (params) => ({
code: params.code
})
}
};
var channelConfigMap = {
"online-store": onlineStoreConfig,
"default": defaultConfig,
"webpos": webposConfig,
"shop.webpos": shopWebposConfig
};
function getChannelConfig(channel) {
return channelConfigMap[channel] || channelConfigMap["default"];
}
var ApiCaller = class {
constructor(request, config) {
this.request = request;
this.config = config;
}
/**
* 执行 API 调用
*/
async call(apiName, params, additionalOptions) {
const apiConfig = this.config[apiName];
if (!apiConfig) {
throw new Error(`API 配置未找到: ${String(apiName)}`);
}
const transformedParams = apiConfig.transformParams ? apiConfig.transformParams(params) : params;
let options = {};
if (typeof apiConfig.options === "function") {
options = apiConfig.options(params);
} else {
options = (apiConfig == null ? void 0 : apiConfig.options) || {};
}
let requestOptions = { ...options, ...additionalOptions };
if (requestOptions.headers && typeof requestOptions.headers === "function") {
requestOptions.headers = requestOptions.headers(params);
}
requestOptions.customToast = () => {
};
let response;
switch (apiConfig.method) {
case "GET":
if (transformedParams && Object.keys(transformedParams).length > 0) {
response = await this.request.get(apiConfig.url, transformedParams, requestOptions);
} else {
response = await this.request.get(apiConfig.url, void 0, requestOptions);
}
break;
case "POST":
response = await this.request.post(apiConfig.url, transformedParams, requestOptions);
break;
case "PUT":
response = await this.request.put(apiConfig.url, transformedParams, requestOptions);
break;
case "DELETE":
response = await this.request.delete(apiConfig.url, requestOptions);
break;
default:
throw new Error(`不支持的 HTTP 方法: ${apiConfig.method}`);
}
return apiConfig.transformResponse ? apiConfig.transformResponse(response) : response;
}
};
function createApiCaller(request, channel) {
const config = getChannelConfig(channel);
return new ApiCaller(request, config);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
ApiCaller,
channelConfigMap,
createApiCaller,
getChannelConfig
});