@quantabit/account-switch-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.iife.js","sources":["../src/services/accountSwitchApi.js","../src/hooks/useAccountSwitch.js","../src/components/IdentitySwitcher.jsx","../src/i18n/index.js","../src/index.js"],"sourcesContent":["/**\n * Account Switch SDK - API 客户端\n * 多身份切换系统后端接口封装\n * \n * 使用 BaseApiClient 基类简化代码\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\n/**\n * 账号切换 API 客户端\n */\nexport class AccountSwitchApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/account/switch', config);\n }\n\n // ============ 身份查询 ============\n\n /**\n * 获取我的所有身份\n */\n async getIdentities() {\n return this.get('/identities');\n }\n\n /**\n * 获取当前激活的身份\n */\n async getCurrentIdentity() {\n return this.get('/current');\n }\n\n /**\n * 获取身份详情\n * @param {string} identityId - 身份 ID\n */\n async getIdentity(identityId) {\n return this.get(`/identities/${identityId}`);\n }\n\n // ============ 身份切换 ============\n\n /**\n * 切换身份\n * @param {string} identityId - 目标身份 ID\n */\n async switchTo(identityId) {\n return this.post('/switch', { identity_id: identityId });\n }\n\n /**\n * 快速切换到上一个身份\n */\n async switchBack() {\n return this.post('/switch-back');\n }\n\n /**\n * 获取切换历史\n * @param {Object} params - 查询参数\n */\n async getSwitchHistory(params = {}) {\n return this.get('/history', params);\n }\n\n // ============ 身份管理 ============\n\n /**\n * 创建新身份\n * @param {Object} identityData - 身份数据\n */\n async createIdentity(identityData) {\n return this.post('/identities', identityData);\n }\n\n /**\n * 更新身份信息\n * @param {string} identityId - 身份 ID\n * @param {Object} updates - 更新数据\n */\n async updateIdentity(identityId, updates) {\n return this.put(`/identities/${identityId}`, updates);\n }\n\n /**\n * 删除身份\n * @param {string} identityId - 身份 ID\n */\n async deleteIdentity(identityId) {\n return this.delete(`/identities/${identityId}`);\n }\n\n /**\n * 设置默认身份\n * @param {string} identityId - 身份 ID\n */\n async setDefaultIdentity(identityId) {\n return this.post(`/identities/${identityId}/set-default`);\n }\n\n // ============ 角色身份 ============\n\n /**\n * 获取可用角色列表\n */\n async getAvailableRoles() {\n return this.get('/roles');\n }\n\n /**\n * 切换角色\n * @param {string} roleId - 角色 ID\n */\n async switchRole(roleId) {\n return this.post('/switch-role', { role_id: roleId });\n }\n\n /**\n * 获取当前角色\n */\n async getCurrentRole() {\n return this.get('/current-role');\n }\n\n // ============ 多租户 ============\n\n /**\n * 获取我加入的租户\n */\n async getTenants() {\n return this.get('/tenants');\n }\n\n /**\n * 切换租户\n * @param {string} tenantId - 租户 ID\n */\n async switchTenant(tenantId) {\n return this.post('/switch-tenant', { tenant_id: tenantId });\n }\n\n /**\n * 获取当前租户\n */\n async getCurrentTenant() {\n return this.get('/current-tenant');\n }\n\n // ============ 会话管理 ============\n\n /**\n * 获取活跃会话\n */\n async getActiveSessions() {\n return this.get('/sessions');\n }\n\n /**\n * 结束其他会话\n */\n async endOtherSessions() {\n return this.post('/sessions/end-others');\n }\n\n /**\n * 刷新当前会话\n */\n async refreshSession() {\n return this.post('/sessions/refresh');\n }\n\n // ============ 快捷切换 ============\n\n /**\n * 设置快捷切换列表\n * @param {string[]} identityIds - 身份 ID 列表\n */\n async setQuickSwitch(identityIds) {\n return this.post('/quick-switch', { identity_ids: identityIds });\n }\n\n /**\n * 获取快捷切换列表\n */\n async getQuickSwitch() {\n return this.get('/quick-switch');\n }\n}\n\n// 创建默认实例\nexport const accountSwitchApi = new AccountSwitchApiClient();\n\n\n\nexport default accountSwitchApi;\n","/**\n * Account Switch SDK - React Hooks\n * 多身份切换功能的 React Hooks\n */\n\nimport { useState, useCallback, useEffect } from 'react';\nimport { accountSwitchApi } from '../services/accountSwitchApi';\n\n/**\n * 使用身份切换功能\n */\nexport function useAccountSwitch() {\n const [identities, setIdentities] = useState([]);\n const [currentIdentity, setCurrentIdentity] = useState(null);\n const [loading, setLoading] = useState(false);\n const [switching, setSwitching] = useState(false);\n const [error, setError] = useState(null);\n\n // 获取所有身份\n const fetchIdentities = useCallback(async () => {\n setLoading(true);\n setError(null);\n try {\n const result = await accountSwitchApi.getIdentities();\n setIdentities(result.data || []);\n return result;\n } catch (err) {\n setError(err.message);\n throw err;\n } finally {\n setLoading(false);\n }\n }, []);\n\n // 获取当前身份\n const fetchCurrentIdentity = useCallback(async () => {\n try {\n const result = await accountSwitchApi.getCurrentIdentity();\n setCurrentIdentity(result.data);\n return result;\n } catch (err) {\n setError(err.message);\n throw err;\n }\n }, []);\n\n // 切换身份\n const switchIdentity = useCallback(async (identityId) => {\n setSwitching(true);\n setError(null);\n try {\n const result = await accountSwitchApi.switchTo(identityId);\n await fetchCurrentIdentity();\n return result;\n } catch (err) {\n setError(err.message);\n throw err;\n } finally {\n setSwitching(false);\n }\n }, [fetchCurrentIdentity]);\n\n // 切换回上一个身份\n const switchBack = useCallback(async () => {\n setSwitching(true);\n try {\n const result = await accountSwitchApi.switchBack();\n await fetchCurrentIdentity();\n return result;\n } catch (err) {\n setError(err.message);\n throw err;\n } finally {\n setSwitching(false);\n }\n }, [fetchCurrentIdentity]);\n\n // 创建新身份\n const createIdentity = useCallback(async (identityData) => {\n setLoading(true);\n try {\n const result = await accountSwitchApi.createIdentity(identityData);\n await fetchIdentities();\n return result;\n } catch (err) {\n setError(err.message);\n throw err;\n } finally {\n setLoading(false);\n }\n }, [fetchIdentities]);\n\n // 删除身份\n const deleteIdentity = useCallback(async (identityId) => {\n setLoading(true);\n try {\n const result = await accountSwitchApi.deleteIdentity(identityId);\n await fetchIdentities();\n return result;\n } catch (err) {\n setError(err.message);\n throw err;\n } finally {\n setLoading(false);\n }\n }, [fetchIdentities]);\n\n // 设置默认身份\n const setDefault = useCallback(async (identityId) => {\n setLoading(true);\n try {\n const result = await accountSwitchApi.setDefaultIdentity(identityId);\n await fetchIdentities();\n return result;\n } catch (err) {\n setError(err.message);\n throw err;\n } finally {\n setLoading(false);\n }\n }, [fetchIdentities]);\n\n useEffect(() => {\n fetchIdentities();\n fetchCurrentIdentity();\n }, [fetchIdentities, fetchCurrentIdentity]);\n\n return {\n identities,\n currentIdentity,\n loading,\n switching,\n error,\n fetchIdentities,\n fetchCurrentIdentity,\n switchIdentity,\n switchBack,\n createIdentity,\n deleteIdentity,\n setDefault,\n };\n}\n\n/**\n * 使用角色切换\n */\nexport function useRoleSwitch() {\n const [roles, setRoles] = useState([]);\n const [currentRole, setCurrentRole] = useState(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n // 获取可用角色\n const fetchRoles = useCallback(async () => {\n setLoading(true);\n try {\n const result = await accountSwitchApi.getAvailableRoles();\n setRoles(result.data || []);\n return result;\n } catch (err) {\n setError(err.message);\n throw err;\n } finally {\n setLoading(false);\n }\n }, []);\n\n // 获取当前角色\n const fetchCurrentRole = useCallback(async () => {\n try {\n const result = await accountSwitchApi.getCurrentRole();\n setCurrentRole(result.data);\n return result;\n } catch (err) {\n setError(err.message);\n throw err;\n }\n }, []);\n\n // 切换角色\n const switchRole = useCallback(async (roleId) => {\n setLoading(true);\n try {\n const result = await accountSwitchApi.switchRole(roleId);\n await fetchCurrentRole();\n return result;\n } catch (err) {\n setError(err.message);\n throw err;\n } finally {\n setLoading(false);\n }\n }, [fetchCurrentRole]);\n\n useEffect(() => {\n fetchRoles();\n fetchCurrentRole();\n }, [fetchRoles, fetchCurrentRole]);\n\n return {\n roles,\n currentRole,\n loading,\n error,\n fetchRoles,\n fetchCurrentRole,\n switchRole,\n };\n}\n\nexport default { useAccountSwitch, useRoleSwitch };\n","/**\n * Account Switch SDK - 身份切换组件\n */\n\nimport React, { useState } from 'react';\nimport { useAccountSwitch } from '../hooks/useAccountSwitch';\n\n/**\n * 身份切换器组件\n */\nexport function IdentitySwitcher({ showCreateButton = true }) {\n const { \n identities, \n currentIdentity, \n switching, \n loading,\n switchIdentity,\n createIdentity,\n deleteIdentity,\n setDefault,\n } = useAccountSwitch();\n \n const [showDropdown, setShowDropdown] = useState(false);\n const [showCreateModal, setShowCreateModal] = useState(false);\n\n const handleSwitch = async (identityId) => {\n try {\n await switchIdentity(identityId);\n setShowDropdown(false);\n } catch (err) {\n // 错误处理\n }\n };\n\n return (\n <div className=\"eco-identity-switcher\">\n {/* 当前身份 */}\n <button \n className=\"eco-current-identity\"\n onClick={() => setShowDropdown(!showDropdown)}\n disabled={switching}\n >\n <div className=\"eco-identity-avatar\">\n {currentIdentity?.avatar ? (\n <img src={currentIdentity.avatar} alt={currentIdentity.name} />\n ) : (\n <span>{currentIdentity?.name?.[0] || '?'}</span>\n )}\n </div>\n <div className=\"eco-identity-info\">\n <span className=\"eco-identity-name\">{currentIdentity?.name || '未知'}</span>\n <span className=\"eco-identity-type\">{currentIdentity?.type || ''}</span>\n </div>\n <span className=\"eco-switcher-icon\">{showDropdown ? '▲' : '▼'}</span>\n </button>\n\n {/* 下拉列表 */}\n {showDropdown && (\n <div className=\"eco-identity-dropdown\">\n <div className=\"eco-dropdown-header\">切换身份</div>\n <div className=\"eco-identity-list\">\n {identities.map((identity) => (\n <div \n key={identity.id} \n className={`eco-identity-item ${identity.id === currentIdentity?.id ? 'active' : ''}`}\n >\n <button \n className=\"eco-identity-select\"\n onClick={() => handleSwitch(identity.id)}\n disabled={identity.id === currentIdentity?.id}\n >\n <div className=\"eco-identity-avatar-sm\">\n {identity.avatar ? (\n <img src={identity.avatar} alt={identity.name} />\n ) : (\n <span>{identity.name?.[0] || '?'}</span>\n )}\n </div>\n <div className=\"eco-identity-details\">\n <span className=\"eco-identity-name\">{identity.name}</span>\n <span className=\"eco-identity-type\">{identity.type}</span>\n </div>\n {identity.is_default && (\n <span className=\"eco-identity-badge\">默认</span>\n )}\n </button>\n <div className=\"eco-identity-actions\">\n {!identity.is_default && (\n <button \n className=\"eco-btn-icon\"\n onClick={() => setDefault(identity.id)}\n title=\"设为默认\"\n >\n ⭐\n </button>\n )}\n {identity.id !== currentIdentity?.id && (\n <button \n className=\"eco-btn-icon eco-btn-danger\"\n onClick={() => deleteIdentity(identity.id)}\n title=\"删除\"\n >\n 🗑️\n </button>\n )}\n </div>\n </div>\n ))}\n </div>\n \n {showCreateButton && (\n <button \n className=\"eco-create-identity-btn\"\n onClick={() => {\n setShowDropdown(false);\n setShowCreateModal(true);\n }}\n >\n + 创建新身份\n </button>\n )}\n </div>\n )}\n\n {/* 创建身份模态框 */}\n {showCreateModal && (\n <CreateIdentityModal \n onClose={() => setShowCreateModal(false)}\n onCreate={createIdentity}\n />\n )}\n\n {/* 切换中遮罩 */}\n {switching && (\n <div className=\"eco-switching-overlay\">\n <div className=\"eco-switching-spinner\" />\n <span>切换中...</span>\n </div>\n )}\n </div>\n );\n}\n\n/**\n * 创建身份模态框\n */\nfunction CreateIdentityModal({ onClose, onCreate }) {\n const [name, setName] = useState('');\n const [type, setType] = useState('personal');\n const [loading, setLoading] = useState(false);\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n setLoading(true);\n try {\n await onCreate({ name, type });\n onClose();\n } catch (err) {\n // 错误处理\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <div className=\"eco-modal-overlay\" onClick={onClose}>\n <div className=\"eco-modal\" onClick={(e) => e.stopPropagation()}>\n <div className=\"eco-modal-header\">\n <h3>创建新身份</h3>\n <button className=\"eco-modal-close\" onClick={onClose}>×</button>\n </div>\n <form onSubmit={handleSubmit}>\n <div className=\"eco-modal-body\">\n <div className=\"eco-form-group\">\n <label>身份名称</label>\n <input\n type=\"text\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n placeholder=\"例如:工作账号\"\n required\n />\n </div>\n <div className=\"eco-form-group\">\n <label>身份类型</label>\n <select value={type} onChange={(e) => setType(e.target.value)}>\n <option value=\"personal\">个人</option>\n <option value=\"business\">商业</option>\n <option value=\"creator\">创作者</option>\n <option value=\"developer\">开发者</option>\n </select>\n </div>\n </div>\n <div className=\"eco-modal-footer\">\n <button type=\"button\" className=\"eco-btn\" onClick={onClose}>\n 取消\n </button>\n <button \n type=\"submit\" \n className=\"eco-btn eco-btn-primary\"\n disabled={loading}\n >\n {loading ? '创建中...' : '创建'}\n </button>\n </div>\n </form>\n </div>\n </div>\n );\n}\n\n/**\n * 快捷切换栏\n */\nexport function QuickSwitchBar() {\n const { identities, currentIdentity, switchIdentity, switching } = useAccountSwitch();\n \n // 只显示前 5 个身份\n const quickIdentities = identities.slice(0, 5);\n\n return (\n <div className=\"eco-quick-switch-bar\">\n {quickIdentities.map((identity) => (\n <button\n key={identity.id}\n className={`eco-quick-switch-item ${identity.id === currentIdentity?.id ? 'active' : ''}`}\n onClick={() => switchIdentity(identity.id)}\n disabled={switching || identity.id === currentIdentity?.id}\n title={identity.name}\n >\n <div className=\"eco-quick-avatar\">\n {identity.avatar ? (\n <img src={identity.avatar} alt={identity.name} />\n ) : (\n <span>{identity.name?.[0] || '?'}</span>\n )}\n </div>\n </button>\n ))}\n </div>\n );\n}\n\nexport default IdentitySwitcher;\n","/**\n * Account Switch SDK - 国际化\n */\n\nexport const zh = {\n accountSwitch: {\n title: '切换身份',\n subtitle: '在多个身份之间快速切换',\n currentIdentity: '当前身份',\n allIdentities: '所有身份',\n noIdentities: '暂无其他身份',\n \n // 身份类型\n identityType: {\n personal: '个人',\n business: '商业',\n creator: '创作者',\n developer: '开发者',\n },\n \n // 操作\n actions: {\n switch: '切换',\n switchBack: '切回上一个',\n create: '创建身份',\n edit: '编辑',\n delete: '删除',\n setDefault: '设为默认',\n },\n \n // 角色\n role: {\n title: '角色',\n current: '当前角色',\n available: '可用角色',\n switch: '切换角色',\n },\n \n // 租户\n tenant: {\n title: '租户/组织',\n current: '当前组织',\n switch: '切换组织',\n noTenants: '未加入任何组织',\n },\n \n // 快捷切换\n quickSwitch: {\n title: '快捷切换',\n add: '添加到快捷',\n remove: '移出快捷',\n },\n \n // 消息\n messages: {\n switchSuccess: '切换成功',\n createSuccess: '身份创建成功',\n deleteSuccess: '身份已删除',\n setDefaultSuccess: '已设为默认身份',\n },\n \n // 错误\n errors: {\n switchFailed: '切换失败',\n createFailed: '创建身份失败',\n deleteFailed: '删除身份失败',\n cannotDeleteCurrent: '无法删除当前使用的身份',\n },\n \n // 确认\n confirm: {\n switchTitle: '确认切换',\n switchMessage: '确定要切换到此身份吗?',\n deleteTitle: '确认删除',\n deleteMessage: '确定要删除此身份吗?此操作不可撤销。',\n },\n },\n};\n\nexport const en = {\n accountSwitch: {\n title: 'Switch Identity',\n subtitle: 'Quickly switch between multiple identities',\n currentIdentity: 'Current Identity',\n allIdentities: 'All Identities',\n noIdentities: 'No other identities',\n \n identityType: {\n personal: 'Personal',\n business: 'Business',\n creator: 'Creator',\n developer: 'Developer',\n },\n \n actions: {\n switch: 'Switch',\n switchBack: 'Switch Back',\n create: 'Create Identity',\n edit: 'Edit',\n delete: 'Delete',\n setDefault: 'Set as Default',\n },\n \n role: {\n title: 'Role',\n current: 'Current Role',\n available: 'Available Roles',\n switch: 'Switch Role',\n },\n \n tenant: {\n title: 'Tenant/Organization',\n current: 'Current Organization',\n switch: 'Switch Organization',\n noTenants: 'Not joined any organization',\n },\n \n quickSwitch: {\n title: 'Quick Switch',\n add: 'Add to Quick',\n remove: 'Remove from Quick',\n },\n \n messages: {\n switchSuccess: 'Switched successfully',\n createSuccess: 'Identity created',\n deleteSuccess: 'Identity deleted',\n setDefaultSuccess: 'Set as default identity',\n },\n \n errors: {\n switchFailed: 'Switch failed',\n createFailed: 'Failed to create identity',\n deleteFailed: 'Failed to delete identity',\n cannotDeleteCurrent: 'Cannot delete current identity',\n },\n \n confirm: {\n switchTitle: 'Confirm Switch',\n switchMessage: 'Are you sure you want to switch to this identity?',\n deleteTitle: 'Confirm Delete',\n deleteMessage: 'Are you sure you want to delete this identity? This cannot be undone.',\n },\n },\n};\n\nexport default { zh, en };\n","/**\n * @quantabit/account-switch-sdk - 多身份切换 SDK\n * \n * 支持多身份、角色切换、租户切换等功能\n */\n\n// 类型定义\nexport const IdentityType = {\n PERSONAL: 'personal',\n BUSINESS: 'business',\n CREATOR: 'creator',\n DEVELOPER: 'developer',\n};\n\nexport const SwitchStatus = {\n IDLE: 'idle',\n SWITCHING: 'switching',\n SUCCESS: 'success',\n ERROR: 'error',\n};\n\n// API 客户端 - 使用 BaseApiClient\nexport { AccountSwitchApiClient, accountSwitchApi } from './services/accountSwitchApi';\n\n// React Hooks\nexport { useAccountSwitch, useRoleSwitch } from './hooks/useAccountSwitch';\n\n// 组件\nexport { \n IdentitySwitcher,\n QuickSwitchBar,\n} from './components/IdentitySwitcher';\n\n// 国际化\nexport { zh, en } from './i18n';\n\n// 默认导出\nimport { accountSwitchApi } from './services/accountSwitchApi';\nexport default accountSwitchApi;\n"],"names":["AccountSwitchApiClient","BaseApiClient","constructor","config","getIdentities","get","getCurrentIdentity","getIdentity","identityId","switchTo","post","identity_id","switchBack","getSwitchHistory","params","createIdentity","identityData","updateIdentity","updates","put","deleteIdentity","delete","setDefaultIdentity","getAvailableRoles","switchRole","roleId","role_id","getCurrentRole","getTenants","switchTenant","tenantId","tenant_id","getCurrentTenant","getActiveSessions","endOtherSessions","refreshSession","setQuickSwitch","identityIds","identity_ids","getQuickSwitch","accountSwitchApi","useAccountSwitch","identities","setIdentities","useState","currentIdentity","setCurrentIdentity","loading","setLoading","switching","setSwitching","error","setError","fetchIdentities","useCallback","result","data","err","message","fetchCurrentIdentity","switchIdentity","setDefault","useEffect","useRoleSwitch","roles","setRoles","currentRole","setCurrentRole","fetchRoles","fetchCurrentRole","IdentitySwitcher","showCreateButton","showDropdown","setShowDropdown","showCreateModal","setShowCreateModal","handleSwitch","React","createElement","className","onClick","disabled","avatar","src","alt","name","type","map","identity","key","id","is_default","title","CreateIdentityModal","onClose","onCreate","setName","setType","handleSubmit","e","preventDefault","stopPropagation","onSubmit","value","onChange","target","placeholder","required","QuickSwitchBar","quickIdentities","slice","zh","accountSwitch","subtitle","allIdentities","noIdentities","identityType","personal","business","creator","developer","actions","switch","create","edit","role","current","available","tenant","noTenants","quickSwitch","add","remove","messages","switchSuccess","createSuccess","deleteSuccess","setDefaultSuccess","errors","switchFailed","createFailed","deleteFailed","cannotDeleteCurrent","confirm","switchTitle","switchMessage","deleteTitle","deleteMessage","en","IdentityType","PERSONAL","BUSINESS","CREATOR","DEVELOPER","SwitchStatus","IDLE","SWITCHING","SUCCESS","ERROR"],"mappings":"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"}