@quantabit/profile-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.
- package/LICENSE +21 -0
- package/README.md +68 -0
- package/dist/index.cjs +1151 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.esm.js +1113 -0
- package/dist/index.esm.js.map +1 -0
- package/package.json +88 -0
- package/types/index.d.ts +84 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/services/profileApi.js","../src/types/index.js","../src/i18n/index.js","../src/hooks/useProfile.js","../src/components/ProfileCard.jsx","../src/index.js"],"sourcesContent":["/**\n * Profile SDK - API 客户端\n * 用户画像系统后端接口封装\n * \n * 使用 BaseApiClient 基类简化代码\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\n/**\n * 画像 API 客户端\n */\nexport class ProfileApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/profile', config);\n }\n\n // ============ 用户画像 ============\n\n /**\n * 获取我的画像\n */\n async getMyProfile() {\n return this.get('/my');\n }\n\n /**\n * 获取用户画像\n * @param {string} userId - 用户 ID\n */\n async getUserProfile(userId) {\n return this.get(`/users/${userId}`);\n }\n\n /**\n * 更新用户画像\n * @param {string} userId - 用户 ID\n * @param {Object} updates - 更新数据\n */\n async updateUserProfile(userId, updates) {\n return this.put(`/users/${userId}`, updates);\n }\n\n /**\n * 批量获取用户画像\n * @param {string[]} userIds - 用户 ID 列表\n */\n async batchGetProfiles(userIds) {\n return this.post('/users/batch', { user_ids: userIds });\n }\n\n // ============ 标签管理 ============\n\n /**\n * 获取用户标签\n * @param {string} userId - 用户 ID\n */\n async getUserTags(userId) {\n return this.get(`/users/${userId}/tags`);\n }\n\n /**\n * 获取我的标签\n */\n async getMyTags() {\n return this.get('/my/tags');\n }\n\n /**\n * 添加用户标签\n * @param {string} userId - 用户 ID\n * @param {string[]} tags - 标签列表\n */\n async addUserTags(userId, tags) {\n return this.post(`/users/${userId}/tags`, { tags });\n }\n\n /**\n * 给当前用户添加标签\n * @param {Object|string} tag - 标签对象或标签 ID\n */\n async addTag(tag) {\n return this.post('/my/tags', { tag });\n }\n\n /**\n * 移除用户标签\n * @param {string} userId - 用户 ID\n * @param {string[]} tags - 标签列表\n */\n async removeUserTags(userId, tags) {\n return this.delete(`/users/${userId}/tags`, { tags });\n }\n\n /**\n * 移除当前用户标签\n * @param {string} tagId - 标签 ID\n */\n async removeTag(tagId) {\n return this.delete(`/my/tags/${tagId}`);\n }\n\n /**\n * 获取所有标签\n * @param {Object} params - 查询参数\n */\n async getTags(params = {}) {\n return this.get('/tags', params);\n }\n\n /**\n * 创建标签\n * @param {Object} tag - 标签数据\n */\n async createTag(tag) {\n return this.post('/tags', tag);\n }\n\n /**\n * 获取标签统计\n * @param {string} tagId - 标签 ID\n */\n async getTagStats(tagId) {\n return this.get(`/tags/${tagId}/stats`);\n }\n\n // ============ 人群圈选 ============\n\n /**\n * 获取人群列表\n * @param {Object} params - 查询参数\n */\n async getSegments(params = {}) {\n return this.get('/segments', params);\n }\n\n /**\n * 创建人群\n * @param {Object} segment - 人群定义\n */\n async createSegment(segment) {\n return this.post('/segments', segment);\n }\n\n /**\n * 获取人群详情\n * @param {string} segmentId - 人群 ID\n */\n async getSegment(segmentId) {\n return this.get(`/segments/${segmentId}`);\n }\n\n /**\n * 更新人群\n * @param {string} segmentId - 人群 ID\n * @param {Object} updates - 更新数据\n */\n async updateSegment(segmentId, updates) {\n return this.put(`/segments/${segmentId}`, updates);\n }\n\n /**\n * 删除人群\n * @param {string} segmentId - 人群 ID\n */\n async deleteSegment(segmentId) {\n return this.delete(`/segments/${segmentId}`);\n }\n\n /**\n * 预估人群规模\n * @param {Object} rules - 圈选规则\n */\n async estimateSegmentSize(rules) {\n return this.post('/segments/estimate', { rules });\n }\n\n /**\n * 获取人群用户\n * @param {string} segmentId - 人群 ID\n * @param {Object} params - 查询参数\n */\n async getSegmentUsers(segmentId, params = {}) {\n return this.get(`/segments/${segmentId}/users`, params);\n }\n\n // ============ 规则引擎 ============\n\n /**\n * 获取可用属性\n */\n async getAvailableAttributes() {\n return this.get('/attributes');\n }\n\n /**\n * 获取属性值分布\n * @param {string} attribute - 属性名\n */\n async getAttributeDistribution(attribute) {\n return this.get(`/attributes/${attribute}/distribution`);\n }\n\n /**\n * 验证规则\n * @param {Object} rules - 规则定义\n */\n async validateRules(rules) {\n return this.post('/rules/validate', { rules });\n }\n\n // ============ 画像分析 ============\n\n /**\n * 获取画像概览\n * @param {Object} params - 查询参数\n */\n async getProfileOverview(params = {}) {\n return this.get('/analytics/overview', params);\n }\n\n /**\n * 获取用户分布\n * @param {string} dimension - 维度\n * @param {Object} params - 查询参数\n */\n async getUserDistribution(dimension, params = {}) {\n return this.get('/analytics/distribution', { dimension, ...params });\n }\n\n /**\n * 获取用户趋势\n * @param {Object} params - 查询参数\n */\n async getUserTrend(params = {}) {\n return this.get('/analytics/trend', params);\n }\n\n // ============ 行为与偏好 ============\n\n /**\n * 获取我的行为画像\n */\n async getMyBehavior() {\n return this.get('/my/behavior');\n }\n\n /**\n * 获取用户行为画像\n * @param {string} userId - 用户 ID\n */\n async getUserBehavior(userId) {\n return this.get(`/users/${userId}/behavior`);\n }\n\n /**\n * 记录当前用户行为\n * @param {string} eventType - 行为类型\n * @param {Object} data - 行为数据\n */\n async trackBehavior(eventType, data = {}) {\n return this.post('/my/behavior', { event_type: eventType, data });\n }\n\n /**\n * 获取我的偏好设置\n */\n async getPreferences() {\n return this.get('/my/preferences');\n }\n\n /**\n * 更新我的偏好设置\n * @param {Object} preferences - 偏好设置\n */\n async updatePreferences(preferences) {\n return this.put('/my/preferences', preferences);\n }\n\n /**\n * 获取我的人群归属\n */\n async getUserSegments() {\n return this.get('/my/segments');\n }\n\n // ============ 导入导出 ============\n\n /**\n * 导出用户画像\n * @param {Object} options - 导出选项\n */\n async exportProfiles(options) {\n return this.post('/export', options);\n }\n\n /**\n * 导入用户画像\n * @param {Object} data - 导入数据\n */\n async importProfiles(data) {\n return this.post('/import', data);\n }\n\n // ============ 隐私合规 (GDPR 画像数据保护) ============\n\n /**\n * 导出我的画像数据 — GDPR 第20条\n * 包括画像、标签、行为数据、偏好设置\n * @returns {Promise<object>} 用户画像完整数据包\n */\n async exportMyData() {\n try {\n const [profile, tags, preferences] = await Promise.allSettled([\n this.getMyProfile(),\n this.get('/my/tags'),\n this.get('/my/preferences'),\n ]);\n return {\n exportDate: new Date().toISOString(),\n format: 'QBit Profile Export (GDPR Art. 20)',\n profile: profile.status === 'fulfilled' ? profile.value?.data : null,\n tags: tags.status === 'fulfilled' ? tags.value?.data : [],\n preferences: preferences.status === 'fulfilled' ? preferences.value?.data : null,\n };\n } catch (e) {\n return { error: e.message, exportDate: new Date().toISOString() };\n }\n }\n\n /**\n * 请求删除我的画像数据 — GDPR 第17条\n * @param {string} reason - 删除原因\n */\n async requestDataDeletion(reason = '') {\n return this.post('/my/gdpr/delete', { reason });\n }\n\n /**\n * 获取我的隐私设置\n */\n async getPrivacySettings() {\n return this.get('/my/privacy');\n }\n\n /**\n * 更新我的隐私设置\n * @param {Object} settings - 隐私偏好\n */\n async updatePrivacySettings(settings) {\n return this.put('/my/privacy', settings);\n }\n\n /**\n * 获取隐私数据声明\n */\n getDataDisclosure() {\n return {\n sdk: '@quantabit/profile-sdk',\n privacyLevel: 'analytics',\n consentRequired: true,\n collected: [\n { type: 'user_profile', description: 'Name, avatar, bio, preferences', retention: 'Until account deletion' },\n { type: 'user_tags', description: 'Behavioral and demographic tags', retention: 'Until cleared or account deletion' },\n { type: 'behavior_data', description: 'User interaction patterns for segmentation', retention: '1 year (rolling)' },\n { type: 'segments', description: 'User group membership', retention: 'While segment is active' },\n ],\n legalBasis: 'Consent (profiling, Art. 6(1)(a) GDPR)',\n compliance: ['GDPR Art. 22 (Profiling)', 'GDPR Art. 20 (Portability)'],\n gdprCapabilities: ['export', 'delete-request', 'privacy-settings'],\n note: 'User profiling requires explicit consent. Users can opt out via privacy settings.',\n };\n }\n}\n\n// 创建默认实例\nexport const profileApi = new ProfileApiClient();\n\n\n\nexport default profileApi;\n","/**\n * Profile SDK - 类型定义\n */\n\n// 标签类型\nexport const TagType = {\n DEMOGRAPHIC: 'demographic', // 人口属性\n INTEREST: 'interest', // 兴趣偏好\n BEHAVIOR: 'behavior', // 行为特征\n LIFECYCLE: 'lifecycle', // 生命周期\n VALUE: 'value', // 价值分层\n CUSTOM: 'custom', // 自定义\n};\n\n// 标签来源\nexport const TagSource = {\n SYSTEM: 'system', // 系统自动\n MANUAL: 'manual', // 人工打标\n RULE: 'rule', // 规则引擎\n MODEL: 'model', // 模型预测\n};\n\n// 用户生命周期\nexport const LifecycleStage = {\n NEW: 'new',\n ACTIVE: 'active',\n MATURE: 'mature',\n DECLINING: 'declining',\n CHURNED: 'churned',\n REVIVED: 'revived',\n};\n\n// 价值分层\nexport const ValueTier = {\n HIGH: 'high',\n MEDIUM: 'medium',\n LOW: 'low',\n POTENTIAL: 'potential',\n};\n\nexport default { TagType, TagSource, LifecycleStage, ValueTier };\n","/**\n * Profile SDK - 国际化\n */\n\nexport const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\n\nexport const messages = {\n zh: {\n // 画像\n profile: '用户画像',\n myProfile: '我的画像',\n tags: '标签',\n preferences: '偏好',\n \n // 标签类型\n demographic: '人口属性',\n interest: '兴趣偏好',\n behavior: '行为特征',\n lifecycle: '生命周期',\n custom: '自定义',\n \n // 生命周期\n new: '新用户',\n active: '活跃用户',\n loyal: '忠实用户',\n dormant: '沉睡用户',\n churned: '流失用户',\n \n // 价值分层\n vip: 'VIP',\n high: '高价值',\n medium: '中价值',\n low: '低价值',\n \n // 行为\n lastActive: '最近活跃',\n visitCount: '访问次数',\n orderCount: '订单数',\n totalSpent: '总消费',\n avgOrderValue: '平均订单价值',\n \n // 兴趣\n categories: '偏好分类',\n brands: '偏好品牌',\n priceRange: '价格敏感度',\n \n // 设置\n privacySettings: '隐私设置',\n dataCollection: '数据采集',\n personalization: '个性化推荐',\n enabled: '已开启',\n disabled: '已关闭',\n },\n en: {\n profile: 'User Profile',\n myProfile: 'My Profile',\n tags: 'Tags',\n preferences: 'Preferences',\n \n demographic: 'Demographics',\n interest: 'Interests',\n behavior: 'Behavior',\n lifecycle: 'Lifecycle',\n custom: 'Custom',\n \n new: 'New',\n active: 'Active',\n loyal: 'Loyal',\n dormant: 'Dormant',\n churned: 'Churned',\n \n vip: 'VIP',\n high: 'High Value',\n medium: 'Medium Value',\n low: 'Low Value',\n \n lastActive: 'Last Active',\n visitCount: 'Visits',\n orderCount: 'Orders',\n totalSpent: 'Total Spent',\n avgOrderValue: 'AOV',\n \n categories: 'Categories',\n brands: 'Brands',\n priceRange: 'Price Sensitivity',\n \n privacySettings: 'Privacy Settings',\n dataCollection: 'Data Collection',\n personalization: 'Personalization',\n enabled: 'Enabled',\n disabled: 'Disabled',\n },\n ja: {\n profile: 'ユーザープロファイル',\n myProfile: 'マイプロファイル',\n tags: 'タグ',\n preferences: '設定',\n \n demographic: 'デモグラフィック',\n interest: '興味',\n behavior: '行動',\n lifecycle: 'ライフサイクル',\n custom: 'カスタム',\n \n new: '新規',\n active: 'アクティブ',\n loyal: 'ロイヤル',\n dormant: '休眠',\n churned: '離脱',\n \n vip: 'VIP',\n high: '高価値',\n medium: '中価値',\n low: '低価値',\n \n lastActive: '最終アクティブ',\n visitCount: '訪問回数',\n orderCount: '注文数',\n totalSpent: '総消費額',\n avgOrderValue: '平均注文額',\n \n categories: 'カテゴリ',\n brands: 'ブランド',\n priceRange: '価格感度',\n \n privacySettings: 'プライバシー設定',\n dataCollection: 'データ収集',\n personalization: 'パーソナライゼーション',\n enabled: '有効',\n disabled: '無効',\n },\n ko: {\n profile: '사용자 프로필',\n myProfile: '내 프로필',\n tags: '태그',\n preferences: '환경설정',\n \n demographic: '인구통계',\n interest: '관심사',\n behavior: '행동',\n lifecycle: '라이프사이클',\n custom: '사용자 지정',\n \n new: '신규',\n active: '활성',\n loyal: '충성',\n dormant: '휴면',\n churned: '이탈',\n \n vip: 'VIP',\n high: '고가치',\n medium: '중가치',\n low: '저가치',\n \n lastActive: '최근 활동',\n visitCount: '방문 횟수',\n orderCount: '주문 수',\n totalSpent: '총 지출',\n avgOrderValue: '평균 주문 금액',\n \n categories: '카테고리',\n brands: '브랜드',\n priceRange: '가격 민감도',\n \n privacySettings: '개인정보 설정',\n dataCollection: '데이터 수집',\n personalization: '개인화',\n enabled: '활성화됨',\n disabled: '비활성화됨',\n },\n};\n\nlet currentLanguage = 'zh';\n\nexport function setLanguage(lang) {\n if (SUPPORTED_LANGUAGES.includes(lang)) currentLanguage = lang;\n}\n\nexport function getLanguage() {\n return currentLanguage;\n}\n\nexport function t(key, params = {}) {\n let text = (messages[currentLanguage] || messages.en)[key] || key;\n Object.entries(params).forEach(([k, v]) => {\n text = text.replace(new RegExp(`\\\\{${k}\\\\}`, 'g'), v);\n });\n return text;\n}\n\nexport default { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t };\n","/**\n * Profile SDK - React Hooks\n */\n\nimport { useState, useEffect, useCallback } from 'react';\nimport { profileApi } from '../services/profileApi';\n\n/**\n * useUserProfile - 用户画像Hook\n */\nexport function useUserProfile(userId) {\n const [profile, setProfile] = useState(null);\n const [loading, setLoading] = useState(false);\n\n const loadProfile = useCallback(async () => {\n setLoading(true);\n try {\n const result = userId\n ? await profileApi.getUserProfile(userId)\n : await profileApi.getMyProfile();\n setProfile(result);\n } finally {\n setLoading(false);\n }\n }, [userId]);\n\n useEffect(() => {\n loadProfile();\n }, [userId]);\n\n return { profile, loading, refresh: loadProfile };\n}\n\n/**\n * useUserTags - 用户标签Hook\n */\nexport function useUserTags(userId) {\n const [tags, setTags] = useState([]);\n const [loading, setLoading] = useState(false);\n\n const loadTags = useCallback(async () => {\n setLoading(true);\n try {\n const result = userId\n ? await profileApi.getUserTags(userId)\n : await profileApi.getMyTags();\n setTags(result.tags || []);\n } finally {\n setLoading(false);\n }\n }, [userId]);\n\n // 添加标签\n const addTag = useCallback(async (tag) => {\n try {\n await profileApi.addTag(tag);\n loadTags();\n return true;\n } catch (e) {\n return false;\n }\n }, [loadTags]);\n\n // 移除标签\n const removeTag = useCallback(async (tagId) => {\n try {\n await profileApi.removeTag(tagId);\n loadTags();\n return true;\n } catch (e) {\n return false;\n }\n }, [loadTags]);\n\n useEffect(() => {\n loadTags();\n }, [userId]);\n\n // 按类型分组\n const tagsByType = tags.reduce((acc, tag) => {\n const type = tag.type || 'custom';\n if (!acc[type]) acc[type] = [];\n acc[type].push(tag);\n return acc;\n }, {});\n\n return {\n tags,\n tagsByType,\n loading,\n addTag,\n removeTag,\n refresh: loadTags,\n };\n}\n\n/**\n * useUserBehavior - 用户行为Hook\n */\nexport function useUserBehavior(userId) {\n const [behavior, setBehavior] = useState(null);\n const [loading, setLoading] = useState(false);\n\n const loadBehavior = useCallback(async () => {\n setLoading(true);\n try {\n const result = userId\n ? await profileApi.getUserBehavior(userId)\n : await profileApi.getMyBehavior();\n setBehavior(result);\n } finally {\n setLoading(false);\n }\n }, [userId]);\n\n // 记录行为\n const trackBehavior = useCallback(async (eventType, data) => {\n try {\n await profileApi.trackBehavior(eventType, data);\n return true;\n } catch (e) {\n return false;\n }\n }, []);\n\n useEffect(() => {\n loadBehavior();\n }, [userId]);\n\n return { behavior, loading, trackBehavior, refresh: loadBehavior };\n}\n\n/**\n * useUserPreferences - 用户偏好Hook\n */\nexport function useUserPreferences() {\n const [preferences, setPreferences] = useState(null);\n const [loading, setLoading] = useState(false);\n const [saving, setSaving] = useState(false);\n\n const loadPreferences = useCallback(async () => {\n setLoading(true);\n try {\n const result = await profileApi.getPreferences();\n setPreferences(result);\n } finally {\n setLoading(false);\n }\n }, []);\n\n // 更新偏好\n const updatePreferences = useCallback(async (updates) => {\n setSaving(true);\n try {\n const result = await profileApi.updatePreferences(updates);\n setPreferences(result);\n return true;\n } catch (e) {\n return false;\n } finally {\n setSaving(false);\n }\n }, []);\n\n useEffect(() => {\n loadPreferences();\n }, []);\n\n return {\n preferences,\n loading,\n saving,\n updatePreferences,\n refresh: loadPreferences,\n };\n}\n\n/**\n * usePrivacySettings - 隐私设置Hook\n */\nexport function usePrivacySettings() {\n const [settings, setSettings] = useState({\n dataCollection: true,\n personalization: true,\n });\n const [loading, setLoading] = useState(false);\n\n const loadSettings = useCallback(async () => {\n setLoading(true);\n try {\n const result = await profileApi.getPrivacySettings();\n setSettings(result);\n } finally {\n setLoading(false);\n }\n }, []);\n\n const updateSettings = useCallback(async (key, value) => {\n try {\n await profileApi.updatePrivacySettings({ [key]: value });\n setSettings(prev => ({ ...prev, [key]: value }));\n return true;\n } catch (e) {\n return false;\n }\n }, []);\n\n useEffect(() => {\n loadSettings();\n }, []);\n\n return { settings, loading, updateSettings, refresh: loadSettings };\n}\n\n/**\n * useUserSegments - 用户分群Hook\n */\nexport function useUserSegments() {\n const [segments, setSegments] = useState([]);\n const [loading, setLoading] = useState(false);\n\n const loadSegments = useCallback(async () => {\n setLoading(true);\n try {\n const result = await profileApi.getUserSegments();\n setSegments(result.segments || []);\n } finally {\n setLoading(false);\n }\n }, []);\n\n useEffect(() => {\n loadSegments();\n }, []);\n\n return { segments, loading, refresh: loadSegments };\n}\n\n","/**\n * Profile SDK - 用户画像组件\n */\n\nimport React from 'react';\nimport { t } from '../i18n';\nimport { TagType, LifecycleStage, ValueTier } from '../types';\n\n/**\n * 生命周期阶段颜色\n */\nconst lifecycleColors = {\n [LifecycleStage.NEW]: '#3B82F6',\n [LifecycleStage.ACTIVE]: '#10B981',\n [LifecycleStage.LOYAL]: '#8B5CF6',\n [LifecycleStage.DORMANT]: '#F59E0B',\n [LifecycleStage.CHURNED]: '#EF4444',\n};\n\n/**\n * 价值分层颜色\n */\nconst valueColors = {\n [ValueTier.VIP]: '#EC4899',\n [ValueTier.HIGH]: '#8B5CF6',\n [ValueTier.MEDIUM]: '#3B82F6',\n [ValueTier.LOW]: '#6B7280',\n};\n\n/**\n * UserTag 组件\n */\nexport function UserTag({ tag, removable = false, onRemove }) {\n const typeColors = {\n [TagType.DEMOGRAPHIC]: '#3B82F6',\n [TagType.INTEREST]: '#10B981',\n [TagType.BEHAVIOR]: '#F59E0B',\n [TagType.LIFECYCLE]: '#8B5CF6',\n [TagType.CUSTOM]: '#6B7280',\n };\n\n const color = typeColors[tag.type] || '#6B7280';\n\n return (\n <span\n className=\"eco-profile-tag\"\n style={{ backgroundColor: `${color}20`, color }}\n >\n {tag.name || tag.value}\n {removable && onRemove && (\n <button\n className=\"eco-profile-tag-remove\"\n onClick={() => onRemove(tag.id)}\n >\n ×\n </button>\n )}\n </span>\n );\n}\n\n/**\n * TagCloud 组件\n */\nexport function TagCloud({ tags = [], type, removable = false, onRemove }) {\n const filteredTags = type ? tags.filter(t => t.type === type) : tags;\n\n if (filteredTags.length === 0) {\n return <div className=\"eco-profile-empty\">暂无标签</div>;\n }\n\n return (\n <div className=\"eco-profile-tag-cloud\">\n {filteredTags.map(tag => (\n <UserTag\n key={tag.id}\n tag={tag}\n removable={removable}\n onRemove={onRemove}\n />\n ))}\n </div>\n );\n}\n\n/**\n * LifecycleIndicator 组件\n */\nexport function LifecycleIndicator({ stage }) {\n const color = lifecycleColors[stage] || '#6B7280';\n\n return (\n <div className=\"eco-profile-lifecycle\" style={{ borderColor: color }}>\n <span className=\"eco-profile-lifecycle-dot\" style={{ backgroundColor: color }} />\n <span className=\"eco-profile-lifecycle-text\">{t(stage)}</span>\n </div>\n );\n}\n\n/**\n * ValueTierBadge 组件\n */\nexport function ValueTierBadge({ tier }) {\n const color = valueColors[tier] || '#6B7280';\n\n return (\n <span\n className=\"eco-profile-value-badge\"\n style={{ backgroundColor: color }}\n >\n {t(tier)}\n </span>\n );\n}\n\n/**\n * BehaviorStats 组件\n */\nexport function BehaviorStats({ behavior }) {\n if (!behavior) return null;\n\n const stats = [\n { label: t('lastActive'), value: behavior.last_active ? new Date(behavior.last_active).toLocaleDateString() : '-' },\n { label: t('visitCount'), value: behavior.visit_count || 0 },\n { label: t('orderCount'), value: behavior.order_count || 0 },\n { label: t('totalSpent'), value: `¥${(behavior.total_spent || 0).toLocaleString()}` },\n { label: t('avgOrderValue'), value: `¥${(behavior.avg_order_value || 0).toFixed(2)}` },\n ];\n\n return (\n <div className=\"eco-profile-behavior-stats\">\n {stats.map((stat, i) => (\n <div key={i} className=\"eco-profile-stat\">\n <span className=\"eco-profile-stat-value\">{stat.value}</span>\n <span className=\"eco-profile-stat-label\">{stat.label}</span>\n </div>\n ))}\n </div>\n );\n}\n\n/**\n * PreferenceList 组件\n */\nexport function PreferenceList({ preferences, type }) {\n const items = preferences?.[type] || [];\n\n if (items.length === 0) {\n return <div className=\"eco-profile-empty\">暂无数据</div>;\n }\n\n return (\n <div className=\"eco-profile-preference-list\">\n {items.map((item, i) => (\n <div key={i} className=\"eco-profile-preference-item\">\n <span className=\"eco-profile-preference-name\">{item.name}</span>\n <div className=\"eco-profile-preference-bar\">\n <div\n className=\"eco-profile-preference-fill\"\n style={{ width: `${item.score * 100}%` }}\n />\n </div>\n <span className=\"eco-profile-preference-score\">\n {Math.round(item.score * 100)}%\n </span>\n </div>\n ))}\n </div>\n );\n}\n\n/**\n * UserProfileCard 组件\n */\nexport function UserProfileCard({ profile, behavior, tags = [], compact = false }) {\n if (!profile) return null;\n\n const { lifecycle_stage, value_tier } = profile;\n\n return (\n <div className={`eco-profile-card ${compact ? 'compact' : ''}`}>\n {/* 头部 */}\n <div className=\"eco-profile-card-header\">\n <div className=\"eco-profile-badges\">\n {lifecycle_stage && <LifecycleIndicator stage={lifecycle_stage} />}\n {value_tier && <ValueTierBadge tier={value_tier} />}\n </div>\n </div>\n\n {/* 行为统计 */}\n {!compact && behavior && (\n <BehaviorStats behavior={behavior} />\n )}\n\n {/* 标签 */}\n {tags.length > 0 && (\n <div className=\"eco-profile-card-tags\">\n <h4>{t('tags')}</h4>\n <TagCloud tags={tags.slice(0, compact ? 5 : 10)} />\n </div>\n )}\n </div>\n );\n}\n\n/**\n * PrivacyToggle 组件\n */\nexport function PrivacyToggle({ label, value, onChange, loading = false }) {\n return (\n <div className=\"eco-profile-privacy-toggle\">\n <span className=\"eco-profile-privacy-label\">{label}</span>\n <button\n className={`eco-profile-toggle ${value ? 'active' : ''}`}\n onClick={() => onChange(!value)}\n disabled={loading}\n >\n <span className=\"eco-profile-toggle-slider\" />\n </button>\n <span className=\"eco-profile-privacy-status\">\n {value ? t('enabled') : t('disabled')}\n </span>\n </div>\n );\n}\n\n","/**\n * @quantabit/profile-sdk\n * User Profile SDK - Full Version\n */\n\n// API Client\nexport { profileApi, ProfileApiClient } from './services/profileApi';\n\n// Types\nexport { TagType, TagSource, LifecycleStage, ValueTier } from './types';\n\n// i18n\nexport { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t } from './i18n';\n\n// React Hooks\nexport {\n useUserProfile,\n useUserTags,\n useUserBehavior,\n useUserPreferences,\n usePrivacySettings,\n useUserSegments,\n} from './hooks/useProfile';\n\n// React Components\nexport {\n UserTag,\n TagCloud,\n LifecycleIndicator,\n ValueTierBadge,\n BehaviorStats,\n PreferenceList,\n UserProfileCard,\n PrivacyToggle,\n} from './components/ProfileCard';\n\n// Shortcut Methods\nimport { profileApi } from './services/profileApi';\n\nexport const getMyProfile = () => profileApi.getMyProfile();\nexport const getUserProfile = (userId) => profileApi.getUserProfile(userId);\nexport const getMyTags = () => profileApi.getMyTags();\nexport const getUserTags = (userId) => profileApi.getUserTags(userId);\nexport const addTag = (tag) => profileApi.addTag(tag);\nexport const removeTag = (tagId) => profileApi.removeTag(tagId);\nexport const getMyBehavior = () => profileApi.getMyBehavior();\nexport const trackBehavior = (eventType, data) => profileApi.trackBehavior(eventType, data);\nexport const getPreferences = () => profileApi.getPreferences();\nexport const updatePreferences = (updates) => profileApi.updatePreferences(updates);\nexport const getPrivacySettings = () => profileApi.getPrivacySettings();\nexport const updatePrivacySettings = (settings) => profileApi.updatePrivacySettings(settings);\n"],"names":["ProfileApiClient","BaseApiClient","constructor","config","getMyProfile","get","getUserProfile","userId","updateUserProfile","updates","put","batchGetProfiles","userIds","post","user_ids","getUserTags","getMyTags","addUserTags","tags","addTag","tag","removeUserTags","delete","removeTag","tagId","getTags","params","createTag","getTagStats","getSegments","createSegment","segment","getSegment","segmentId","updateSegment","deleteSegment","estimateSegmentSize","rules","getSegmentUsers","getAvailableAttributes","getAttributeDistribution","attribute","validateRules","getProfileOverview","getUserDistribution","dimension","getUserTrend","getMyBehavior","getUserBehavior","trackBehavior","eventType","data","event_type","getPreferences","updatePreferences","preferences","getUserSegments","exportProfiles","options","importProfiles","exportMyData","profile","Promise","allSettled","exportDate","Date","toISOString","format","status","value","e","error","message","requestDataDeletion","reason","getPrivacySettings","updatePrivacySettings","settings","getDataDisclosure","sdk","privacyLevel","consentRequired","collected","type","description","retention","legalBasis","compliance","gdprCapabilities","note","profileApi","TagType","DEMOGRAPHIC","INTEREST","BEHAVIOR","LIFECYCLE","VALUE","CUSTOM","TagSource","SYSTEM","MANUAL","RULE","MODEL","LifecycleStage","NEW","ACTIVE","MATURE","DECLINING","CHURNED","REVIVED","ValueTier","HIGH","MEDIUM","LOW","POTENTIAL","SUPPORTED_LANGUAGES","messages","zh","myProfile","demographic","interest","behavior","lifecycle","custom","new","active","loyal","dormant","churned","vip","high","medium","low","lastActive","visitCount","orderCount","totalSpent","avgOrderValue","categories","brands","priceRange","privacySettings","dataCollection","personalization","enabled","disabled","en","ja","ko","currentLanguage","setLanguage","lang","includes","getLanguage","t","key","text","Object","entries","forEach","k","v","replace","RegExp","useUserProfile","setProfile","useState","loading","setLoading","loadProfile","useCallback","result","useEffect","refresh","useUserTags","setTags","loadTags","tagsByType","reduce","acc","push","useUserBehavior","setBehavior","loadBehavior","useUserPreferences","setPreferences","saving","setSaving","loadPreferences","usePrivacySettings","setSettings","loadSettings","updateSettings","prev","useUserSegments","segments","setSegments","loadSegments","lifecycleColors","LOYAL","DORMANT","valueColors","VIP","UserTag","removable","onRemove","typeColors","color","React","createElement","className","style","backgroundColor","name","onClick","id","TagCloud","filteredTags","filter","length","map","LifecycleIndicator","stage","borderColor","ValueTierBadge","tier","BehaviorStats","stats","label","last_active","toLocaleDateString","visit_count","order_count","total_spent","toLocaleString","avg_order_value","toFixed","stat","i","PreferenceList","items","item","width","score","Math","round","UserProfileCard","compact","lifecycle_stage","value_tier","slice","PrivacyToggle","onChange"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@quantabit/profile-sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "QuantaBit User Profile SDK - Behavioral auto-tagging, dynamic profile building, and precision targeting",
|
|
6
|
+
"main": "dist/index.cjs",
|
|
7
|
+
"module": "dist/index.esm.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"README.md",
|
|
11
|
+
"LICENSE",
|
|
12
|
+
"types"
|
|
13
|
+
],
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./types/index.d.ts",
|
|
17
|
+
"import": "./dist/index.esm.js",
|
|
18
|
+
"require": "./dist/index.cjs"
|
|
19
|
+
},
|
|
20
|
+
"./styles": "./dist/styles.css",
|
|
21
|
+
"./styles.css": "./dist/styles.css"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "rollup -c",
|
|
25
|
+
"dev": "rollup -c -w",
|
|
26
|
+
"clean": "rm -rf dist",
|
|
27
|
+
"prepublishOnly": "npm run build",
|
|
28
|
+
"test": "jest --passWithNoTests"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@babel/core": "^7.23.0",
|
|
32
|
+
"@babel/preset-env": "^7.23.0",
|
|
33
|
+
"@babel/preset-react": "^7.23.0",
|
|
34
|
+
"@rollup/plugin-babel": "^6.0.0",
|
|
35
|
+
"@rollup/plugin-commonjs": "^25.0.0",
|
|
36
|
+
"@rollup/plugin-node-resolve": "^15.0.0",
|
|
37
|
+
"babel-jest": "^29.7.0",
|
|
38
|
+
"identity-obj-proxy": "^3.0.0",
|
|
39
|
+
"jest": "^29.7.0",
|
|
40
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
41
|
+
"react": "^18.2.0",
|
|
42
|
+
"react-dom": "^18.2.0",
|
|
43
|
+
"rollup": "^4.0.0",
|
|
44
|
+
"rollup-plugin-postcss": "^4.0.0"
|
|
45
|
+
},
|
|
46
|
+
"keywords": [
|
|
47
|
+
"profile",
|
|
48
|
+
"portrait",
|
|
49
|
+
"tagging",
|
|
50
|
+
"behavior",
|
|
51
|
+
"quantabit"
|
|
52
|
+
],
|
|
53
|
+
"author": "QuantaBit Team",
|
|
54
|
+
"license": "MIT",
|
|
55
|
+
"publishConfig": {
|
|
56
|
+
"access": "public",
|
|
57
|
+
"registry": "https://registry.npmjs.org"
|
|
58
|
+
},
|
|
59
|
+
"dependencies": {
|
|
60
|
+
"@quantabit/sdk-config": "^1.0.6"
|
|
61
|
+
},
|
|
62
|
+
"peerDependencies": {
|
|
63
|
+
"react": ">=17.0.0",
|
|
64
|
+
"react-dom": ">=17.0.0"
|
|
65
|
+
},
|
|
66
|
+
"repository": {
|
|
67
|
+
"type": "git",
|
|
68
|
+
"url": "https://github.com/quantabit-chain/qbit-sdk.git",
|
|
69
|
+
"directory": "packages/profile-sdk"
|
|
70
|
+
},
|
|
71
|
+
"homepage": "https://github.com/quantabit-chain/qbit-sdk/tree/main/packages/profile-sdk#readme",
|
|
72
|
+
"bugs": {
|
|
73
|
+
"url": "https://github.com/quantabit-chain/qbit-sdk/issues"
|
|
74
|
+
},
|
|
75
|
+
"types": "types/index.d.ts",
|
|
76
|
+
"engines": {
|
|
77
|
+
"node": ">=18.0.0"
|
|
78
|
+
},
|
|
79
|
+
"sideEffects": false,
|
|
80
|
+
"qbit": {
|
|
81
|
+
"privacy": {
|
|
82
|
+
"level": "functional",
|
|
83
|
+
"dataCollection": "Feature-related data for personalization. Requires user consent.",
|
|
84
|
+
"gdprCompliant": true,
|
|
85
|
+
"ccpaCompliant": true
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @quantabit/profile-sdk TypeScript Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Auto-generated type stubs. Enhance with specific types as the SDK matures.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { FC, ReactNode } from 'react';
|
|
8
|
+
|
|
9
|
+
// ============ Services ============
|
|
10
|
+
|
|
11
|
+
export declare const profileApi: any;
|
|
12
|
+
|
|
13
|
+
export declare class ProfileApiClient {
|
|
14
|
+
constructor(config?: Record<string, any>);
|
|
15
|
+
setToken(token: string): void;
|
|
16
|
+
setBaseUrl(url: string): void;
|
|
17
|
+
destroy(): void;
|
|
18
|
+
getMyProfile(): Promise<any>;
|
|
19
|
+
getUserProfile(userId: string): Promise<any>;
|
|
20
|
+
updateUserProfile(userId: string, updates: Record<string, any>): Promise<any>;
|
|
21
|
+
batchGetProfiles(userIds: string[]): Promise<any>;
|
|
22
|
+
getUserTags(userId: string): Promise<any>;
|
|
23
|
+
getMyTags(): Promise<any>;
|
|
24
|
+
addUserTags(userId: string, tags: string[]): Promise<any>;
|
|
25
|
+
addTag(tag: string | Record<string, any>): Promise<any>;
|
|
26
|
+
removeUserTags(userId: string, tags: string[]): Promise<any>;
|
|
27
|
+
removeTag(tagId: string): Promise<any>;
|
|
28
|
+
getTags(params?: Record<string, any>): Promise<any>;
|
|
29
|
+
createTag(tag: Record<string, any>): Promise<any>;
|
|
30
|
+
getTagStats(tagId: string): Promise<any>;
|
|
31
|
+
getSegments(params?: Record<string, any>): Promise<any>;
|
|
32
|
+
createSegment(segment: Record<string, any>): Promise<any>;
|
|
33
|
+
getSegment(segmentId: string): Promise<any>;
|
|
34
|
+
updateSegment(segmentId: string, updates: Record<string, any>): Promise<any>;
|
|
35
|
+
deleteSegment(segmentId: string): Promise<any>;
|
|
36
|
+
estimateSegmentSize(rules: Record<string, any>): Promise<any>;
|
|
37
|
+
getSegmentUsers(segmentId: string, params?: Record<string, any>): Promise<any>;
|
|
38
|
+
getAvailableAttributes(): Promise<any>;
|
|
39
|
+
getAttributeDistribution(attribute: string): Promise<any>;
|
|
40
|
+
validateRules(rules: Record<string, any>): Promise<any>;
|
|
41
|
+
getProfileOverview(params?: Record<string, any>): Promise<any>;
|
|
42
|
+
getUserDistribution(dimension: string, params?: Record<string, any>): Promise<any>;
|
|
43
|
+
getUserTrend(params?: Record<string, any>): Promise<any>;
|
|
44
|
+
getMyBehavior(): Promise<any>;
|
|
45
|
+
getUserBehavior(userId: string): Promise<any>;
|
|
46
|
+
trackBehavior(eventType: string, data?: Record<string, any>): Promise<any>;
|
|
47
|
+
getPreferences(): Promise<any>;
|
|
48
|
+
updatePreferences(preferences: Record<string, any>): Promise<any>;
|
|
49
|
+
getUserSegments(): Promise<any>;
|
|
50
|
+
exportProfiles(options: Record<string, any>): Promise<any>;
|
|
51
|
+
importProfiles(data: Record<string, any>): Promise<any>;
|
|
52
|
+
exportMyData(): Promise<any>;
|
|
53
|
+
requestDataDeletion(reason?: string): Promise<any>;
|
|
54
|
+
getPrivacySettings(): Promise<any>;
|
|
55
|
+
updatePrivacySettings(settings: Record<string, any>): Promise<any>;
|
|
56
|
+
getDataDisclosure(): Record<string, any>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// ============ Types & Enums ============
|
|
60
|
+
|
|
61
|
+
export declare const TagType: Record<string, string>;
|
|
62
|
+
export declare const TagSource: any;
|
|
63
|
+
export declare const LifecycleStage: any;
|
|
64
|
+
export declare const ValueTier: any;
|
|
65
|
+
|
|
66
|
+
// ============ Functions & Utilities ============
|
|
67
|
+
|
|
68
|
+
export declare const messages: Record<string, Record<string, string>>;
|
|
69
|
+
export declare const SUPPORTED_LANGUAGES: string[];
|
|
70
|
+
export declare function setLanguage(lang: string): void;
|
|
71
|
+
export declare function getLanguage(): string;
|
|
72
|
+
export declare function t(key: string, params?: Record<string, any>): string;
|
|
73
|
+
export declare function getMyProfile(...args: any[]): any;
|
|
74
|
+
export declare function getUserProfile(...args: any[]): any;
|
|
75
|
+
export declare function getMyTags(...args: any[]): any;
|
|
76
|
+
export declare function getUserTags(...args: any[]): any;
|
|
77
|
+
export declare function addTag(...args: any[]): any;
|
|
78
|
+
export declare function removeTag(...args: any[]): any;
|
|
79
|
+
export declare function getMyBehavior(...args: any[]): any;
|
|
80
|
+
export declare function trackBehavior(...args: any[]): any;
|
|
81
|
+
export declare function getPreferences(...args: any[]): any;
|
|
82
|
+
export declare function updatePreferences(...args: any[]): any;
|
|
83
|
+
export declare function getPrivacySettings(...args: any[]): any;
|
|
84
|
+
export declare function updatePrivacySettings(...args: any[]): any;
|