@quantabit/reach-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 +74 -0
- package/dist/index.cjs +1123 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.esm.js +1092 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.iife.js +1124 -0
- package/dist/index.iife.js.map +1 -0
- package/dist/index.umd.js +1125 -0
- package/dist/index.umd.js.map +1 -0
- package/package.json +79 -0
- package/types/index.d.ts +82 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../src/services/reachApi.js","../src/types.js","../src/i18n/index.js","../src/hooks/useReach.js","../src/components/CampaignBuilder.jsx","../src/index.js"],"sourcesContent":["/**\n * Reach SDK - API 客户端\n * 用户触达系统后端接口封装\n * \n * 使用 BaseApiClient 基类简化代码\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\n/**\n * 用户触达 API 客户端\n */\nexport class ReachApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/reach', config);\n }\n\n // ============ 触达任务 ============\n\n /**\n * 获取触达任务列表\n * @param {Object} params - 查询参数\n */\n async getTasks(params = {}) {\n return this.get('/tasks', params);\n }\n\n /**\n * 获取触达任务详情\n * @param {string} taskId - 任务 ID\n */\n async getTask(taskId) {\n return this.get(`/tasks/${taskId}`);\n }\n\n /**\n * 创建触达任务(管理员)\n * @param {Object} data - 任务数据\n */\n async createTask(data) {\n return this.post('/tasks', data);\n }\n\n /**\n * 更新触达任务(管理员)\n * @param {string} taskId - 任务 ID\n * @param {Object} updates - 更新数据\n */\n async updateTask(taskId, updates) {\n return this.put(`/tasks/${taskId}`, updates);\n }\n\n /**\n * 删除触达任务(管理员)\n * @param {string} taskId - 任务 ID\n */\n async deleteTask(taskId) {\n return this.delete(`/tasks/${taskId}`);\n }\n\n // ============ 任务控制 ============\n\n /**\n * 立即执行(管理员)\n * @param {string} taskId - 任务 ID\n */\n async executeNow(taskId) {\n return this.post(`/tasks/${taskId}/execute`);\n }\n\n /**\n * 暂停任务(管理员)\n * @param {string} taskId - 任务 ID\n */\n async pauseTask(taskId) {\n return this.post(`/tasks/${taskId}/pause`);\n }\n\n /**\n * 恢复任务(管理员)\n * @param {string} taskId - 任务 ID\n */\n async resumeTask(taskId) {\n return this.post(`/tasks/${taskId}/resume`);\n }\n\n /**\n * 取消任务(管理员)\n * @param {string} taskId - 任务 ID\n */\n async cancelTask(taskId) {\n return this.post(`/tasks/${taskId}/cancel`);\n }\n\n // ============ 渠道管理 ============\n\n /**\n * 获取触达渠道\n */\n async getChannels() {\n return this.get('/channels');\n }\n\n /**\n * 获取渠道配置\n * @param {string} channelType - 渠道类型\n */\n async getChannelConfig(channelType) {\n return this.get(`/channels/${channelType}/config`);\n }\n\n /**\n * 更新渠道配置(管理员)\n * @param {string} channelType - 渠道类型\n * @param {Object} config - 配置数据\n */\n async updateChannelConfig(channelType, config) {\n return this.put(`/channels/${channelType}/config`, config);\n }\n\n /**\n * 测试渠道发送\n * @param {string} channelType - 渠道类型\n * @param {Object} testData - 测试数据\n */\n async testChannel(channelType, testData) {\n return this.post(`/channels/${channelType}/test`, testData);\n }\n\n // ============ 模板管理 ============\n\n /**\n * 获取消息模板\n * @param {Object} params - 查询参数\n */\n async getTemplates(params = {}) {\n return this.get('/templates', params);\n }\n\n /**\n * 获取模板详情\n * @param {string} templateId - 模板 ID\n */\n async getTemplate(templateId) {\n return this.get(`/templates/${templateId}`);\n }\n\n /**\n * 创建模板(管理员)\n * @param {Object} data - 模板数据\n */\n async createTemplate(data) {\n return this.post('/templates', data);\n }\n\n /**\n * 更新模板(管理员)\n * @param {string} templateId - 模板 ID\n * @param {Object} updates - 更新数据\n */\n async updateTemplate(templateId, updates) {\n return this.put(`/templates/${templateId}`, updates);\n }\n\n /**\n * 预览模板\n * @param {string} templateId - 模板 ID\n * @param {Object} variables - 变量数据\n */\n async previewTemplate(templateId, variables = {}) {\n return this.post(`/templates/${templateId}/preview`, { variables });\n }\n\n // ============ 受众管理 ============\n\n /**\n * 获取受众列表\n * @param {Object} params - 查询参数\n */\n async getAudiences(params = {}) {\n return this.get('/audiences', params);\n }\n\n /**\n * 创建受众(管理员)\n * @param {Object} data - 受众数据\n */\n async createAudience(data) {\n return this.post('/audiences', data);\n }\n\n /**\n * 预估受众规模\n * @param {Object} conditions - 筛选条件\n */\n async estimateAudienceSize(conditions) {\n return this.post('/audiences/estimate', conditions);\n }\n\n // ============ 统计分析 ============\n\n /**\n * 获取任务统计\n * @param {string} taskId - 任务 ID\n */\n async getTaskStats(taskId) {\n return this.get(`/tasks/${taskId}/stats`);\n }\n\n /**\n * 获取整体统计\n * @param {Object} params - 统计参数\n */\n async getOverallStats(params = {}) {\n return this.get('/stats', params);\n }\n\n /**\n * 获取发送记录\n * @param {string} taskId - 任务 ID\n * @param {Object} params - 查询参数\n */\n async getSendLogs(taskId, params = {}) {\n return this.get(`/tasks/${taskId}/logs`, params);\n }\n\n // ============ 兼容性方法 (Campaigns, Push, Popups, Banners, Events) ============\n\n /**\n * 获取活动列表\n * @param {Object} params - 查询参数\n */\n async getCampaigns(params = {}) {\n return this.get('/campaigns', params);\n }\n\n /**\n * 获取活跃的活动列表\n * @param {Object} params - 查询参数\n */\n async getActiveCampaigns(params = {}) {\n return this.get('/campaigns/active', params);\n }\n\n /**\n * 获取活动详情\n * @param {string} campaignId - 活动 ID\n */\n async getCampaign(campaignId) {\n return this.get(`/campaigns/${campaignId}`);\n }\n\n /**\n * 创建活动\n * @param {Object} data - 活动数据\n */\n async createCampaign(data) {\n return this.post('/campaigns', data);\n }\n\n /**\n * 更新活动\n * @param {string} campaignId - 活动 ID\n * @param {Object} data - 更新数据\n */\n async updateCampaign(campaignId, data) {\n return this.put(`/campaigns/${campaignId}`, data);\n }\n\n /**\n * 参与活动\n * @param {string} campaignId - 活动 ID\n * @param {Object} data - 参与数据\n */\n async joinCampaign(campaignId, data = {}) {\n return this.post(`/campaigns/${campaignId}/join`, data);\n }\n\n /**\n * 排期/调度活动\n * @param {string} campaignId - 活动 ID\n * @param {string} scheduledTime - 定时发送时间\n */\n async scheduleCampaign(campaignId, scheduledTime) {\n return this.post(`/campaigns/${campaignId}/schedule`, { scheduledTime });\n }\n\n /**\n * 发送活动\n * @param {string} campaignId - 活动 ID\n */\n async sendCampaign(campaignId) {\n return this.post(`/campaigns/${campaignId}/send`);\n }\n\n /**\n * 暂停活动\n * @param {string} campaignId - 活动 ID\n */\n async pauseCampaign(campaignId) {\n return this.post(`/campaigns/${campaignId}/pause`);\n }\n\n /**\n * 取消活动\n * @param {string} campaignId - 活动 ID\n */\n async cancelCampaign(campaignId) {\n return this.post(`/campaigns/${campaignId}/cancel`);\n }\n\n /**\n * 获取弹窗配置列表\n * @param {Object} params - 查询参数\n */\n async getPopups(params = {}) {\n return this.get('/popups', params);\n }\n\n /**\n * 获取横幅广告列表\n * @param {Object} params - 查询参数\n */\n async getBanners(params = {}) {\n return this.get('/banners', params);\n }\n\n /**\n * 追踪事件\n * @param {string} event - 事件名\n * @param {Object} data - 事件数据\n */\n async trackEvent(event, data = {}) {\n return this.post('/events/track', { event, data });\n }\n\n /**\n * 获取推送首选项\n * @param {Object} params - 查询参数\n */\n async getPushPreferences(params = {}) {\n return this.get('/push/preferences', params);\n }\n\n /**\n * 更新推送首选项\n * @param {Object} data - 首选项数据\n */\n async updatePushPreferences(data = {}) {\n return this.put('/push/preferences', data);\n }\n\n /**\n * 订阅推送\n * @param {Object} params - 订阅参数\n */\n async subscribe(params = {}) {\n return this.post('/push/subscribe', params);\n }\n\n /**\n * 取消订阅推送\n * @param {Object} params - 取消参数\n */\n async unsubscribe(params = {}) {\n return this.post('/push/unsubscribe', params);\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} criteria - 预估条件\n */\n async estimateAudience(criteria = {}) {\n return this.post('/audiences/estimate', criteria);\n }\n}\n\n// 创建默认实例\nexport const reachApi = new ReachApiClient();\n\n\n\nexport default reachApi;\n","\nexport const ChannelType = {};\n\nexport const AudienceType = {};\n\nexport const TemplateType = {};\n\nexport const CampaignStatus = {};\n","/**\n * Reach SDK - 国际化\n */\n\nexport const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\n\nexport const messages = {\n zh: {\n // 触达\n reach: '批量触达',\n campaign: '活动',\n campaigns: '触达活动',\n createCampaign: '创建活动',\n \n // 渠道\n channel: '渠道',\n channels: '渠道',\n email: '邮件',\n sms: '短信',\n push: '推送',\n inApp: '站内信',\n wechat: '微信',\n \n // 状态\n draft: '草稿',\n scheduled: '待发送',\n sending: '发送中',\n sent: '已发送',\n paused: '已暂停',\n cancelled: '已取消',\n \n // 受众\n audience: '受众',\n selectAudience: '选择受众',\n allUsers: '全部用户',\n segment: '用户分群',\n uploadList: '上传名单',\n \n // 内容\n content: '内容',\n template: '模板',\n subject: '主题',\n preview: '预览',\n \n // 发送\n send: '发送',\n sendNow: '立即发送',\n schedule: '定时发送',\n scheduledTime: '发送时间',\n \n // 统计\n delivered: '已送达',\n opened: '已打开',\n clicked: '已点击',\n converted: '已转化',\n failed: '发送失败',\n bounced: '退回',\n unsubscribed: '退订',\n \n // 速率\n sendRate: '发送速率',\n openRate: '打开率',\n clickRate: '点击率',\n conversionRate: '转化率',\n },\n ja: {\n // 触达\n reach: '一括アプローチ',\n campaign: 'アクティビティ',\n campaigns: 'アプローチキャンペーン',\n createCampaign: 'キャンペーン作成',\n \n // 渠道\n channel: 'チャネル',\n channels: 'チャネル',\n email: 'メール',\n sms: 'SMS',\n push: 'プッシュ通知',\n inApp: 'メッセージ',\n wechat: 'WeChat',\n \n // 状态\n draft: '下書き',\n scheduled: '送信待ち',\n sending: '送信中',\n sent: '送信済み',\n paused: '一時停止中',\n cancelled: 'キャンセル済み',\n \n // 受众\n audience: 'ターゲット',\n selectAudience: 'ターゲットを選択',\n allUsers: 'すべてのユーザー',\n segment: 'ユーザーセグメント',\n uploadList: 'リストをアップロード',\n \n // 内容\n content: 'コンテンツ',\n template: 'テンプレート',\n subject: '件名',\n preview: 'プレビュー',\n \n // 发送\n send: '送信',\n sendNow: '今すぐ送信',\n schedule: '予約送信',\n scheduledTime: '送信時間',\n \n // 统计\n delivered: '配達済み',\n opened: '開封済み',\n clicked: 'クリック済み',\n converted: 'コンバージョン済み',\n failed: '送信失敗',\n bounced: 'バウンス',\n unsubscribed: '配信停止',\n \n // 速率\n sendRate: '送信速度',\n openRate: '開封率',\n clickRate: 'クリック率',\n conversionRate: 'コンバージョン率',\n },\n ko: {\n // 触达\n reach: '일괄 도달',\n campaign: '이벤트',\n campaigns: '도달 캠페인',\n createCampaign: '캠페인 생성',\n \n // 渠道\n channel: '채널',\n channels: '채널',\n email: '이메일',\n sms: 'SMS',\n push: '푸시 알림',\n inApp: '사이트 메시지',\n wechat: '위챗',\n \n // 状态\n draft: '초안',\n scheduled: '발송 대기',\n sending: '발송 중',\n sent: '전송됨',\n paused: '일시 중지됨',\n cancelled: '취소됨',\n \n // 受众\n audience: '대상',\n selectAudience: '대상 선택',\n allUsers: '모든 사용자',\n segment: '사용자 그룹',\n uploadList: '목록 업로드',\n \n // 内容\n content: '내용',\n template: '템플릿',\n subject: '주제',\n preview: '미리보기',\n \n // 发送\n send: '보내기',\n sendNow: '즉시 발송',\n schedule: '예약 발송',\n scheduledTime: '발송 시간',\n \n // 统计\n delivered: '도달됨',\n opened: '열어봄',\n clicked: '클릭됨',\n converted: '전환됨',\n failed: '전송 실패',\n bounced: '반송됨',\n unsubscribed: '구독 취소됨',\n \n // 速率\n sendRate: '전송 속도',\n openRate: '오픈율',\n clickRate: '클릭률',\n conversionRate: '전환율',\n },\n en: {\n reach: 'Reach',\n campaign: 'Campaign',\n campaigns: 'Campaigns',\n createCampaign: 'Create Campaign',\n \n channel: 'Channel',\n channels: 'Channels',\n email: 'Email',\n sms: 'SMS',\n push: 'Push',\n inApp: 'In-App',\n wechat: 'WeChat',\n \n draft: 'Draft',\n scheduled: 'Scheduled',\n sending: 'Sending',\n sent: 'Sent',\n paused: 'Paused',\n cancelled: 'Cancelled',\n \n audience: 'Audience',\n selectAudience: 'Select Audience',\n allUsers: 'All Users',\n segment: 'Segment',\n uploadList: 'Upload List',\n \n content: 'Content',\n template: 'Template',\n subject: 'Subject',\n preview: 'Preview',\n \n send: 'Send',\n sendNow: 'Send Now',\n schedule: 'Schedule',\n scheduledTime: 'Scheduled Time',\n \n delivered: 'Delivered',\n opened: 'Opened',\n clicked: 'Clicked',\n converted: 'Converted',\n failed: 'Failed',\n bounced: 'Bounced',\n unsubscribed: 'Unsubscribed',\n \n sendRate: 'Send Rate',\n openRate: 'Open Rate',\n clickRate: 'Click Rate',\n conversionRate: 'Conversion Rate',\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) {\n return (messages[currentLanguage] || messages.en)[key] || key;\n}\n\nexport default { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t };\n","/**\n * Reach SDK - React Hooks\n */\n\nimport { useState, useEffect, useCallback } from 'react';\nimport { reachApi } from '../services/reachApi';\n\n/**\n * useCampaigns - 触达活动列表Hook\n */\nexport function useCampaigns(options = {}) {\n const [campaigns, setCampaigns] = useState([]);\n const [loading, setLoading] = useState(false);\n const [total, setTotal] = useState(0);\n\n const loadCampaigns = useCallback(async () => {\n setLoading(true);\n try {\n const result = await reachApi.getCampaigns(options);\n setCampaigns(result.campaigns || []);\n setTotal(result.total || 0);\n } finally {\n setLoading(false);\n }\n }, [options.status, options.channel]);\n\n useEffect(() => {\n loadCampaigns();\n }, [options.status, options.channel]);\n\n return { campaigns, loading, total, refresh: loadCampaigns };\n}\n\n/**\n * useCampaign - 单个触达活动Hook\n */\nexport function useCampaign(campaignId) {\n const [campaign, setCampaign] = useState(null);\n const [stats, setStats] = useState(null);\n const [loading, setLoading] = useState(false);\n const [saving, setSaving] = useState(false);\n\n const loadCampaign = useCallback(async () => {\n if (!campaignId) return;\n setLoading(true);\n try {\n const [campaignData, statsData] = await Promise.all([\n reachApi.getCampaign(campaignId),\n reachApi.getCampaignStats(campaignId),\n ]);\n setCampaign(campaignData);\n setStats(statsData);\n } finally {\n setLoading(false);\n }\n }, [campaignId]);\n\n // 保存活动\n const saveCampaign = useCallback(async (data) => {\n setSaving(true);\n try {\n const result = campaignId\n ? await reachApi.updateCampaign(campaignId, data)\n : await reachApi.createCampaign(data);\n setCampaign(result);\n return result;\n } finally {\n setSaving(false);\n }\n }, [campaignId]);\n\n // 发送活动\n const sendCampaign = useCallback(async (scheduledTime) => {\n if (!campaignId) return false;\n try {\n if (scheduledTime) {\n await reachApi.scheduleCampaign(campaignId, scheduledTime);\n } else {\n await reachApi.sendCampaign(campaignId);\n }\n loadCampaign();\n return true;\n } catch (e) {\n return false;\n }\n }, [campaignId, loadCampaign]);\n\n // 暂停发送\n const pauseCampaign = useCallback(async () => {\n if (!campaignId) return false;\n try {\n await reachApi.pauseCampaign(campaignId);\n loadCampaign();\n return true;\n } catch (e) {\n return false;\n }\n }, [campaignId, loadCampaign]);\n\n // 取消活动\n const cancelCampaign = useCallback(async () => {\n if (!campaignId) return false;\n try {\n await reachApi.cancelCampaign(campaignId);\n loadCampaign();\n return true;\n } catch (e) {\n return false;\n }\n }, [campaignId, loadCampaign]);\n\n useEffect(() => {\n loadCampaign();\n }, [campaignId]);\n\n return {\n campaign,\n stats,\n loading,\n saving,\n saveCampaign,\n sendCampaign,\n pauseCampaign,\n cancelCampaign,\n refresh: loadCampaign,\n };\n}\n\n/**\n * useTemplates - 模板Hook\n */\nexport function useTemplates(channel) {\n const [templates, setTemplates] = useState([]);\n const [loading, setLoading] = useState(false);\n\n const loadTemplates = useCallback(async () => {\n setLoading(true);\n try {\n const result = await reachApi.getTemplates(channel);\n setTemplates(result.templates || []);\n } finally {\n setLoading(false);\n }\n }, [channel]);\n\n useEffect(() => {\n loadTemplates();\n }, [channel]);\n\n return { templates, loading, refresh: loadTemplates };\n}\n\n/**\n * useAudience - 受众Hook\n */\nexport function useAudience() {\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 reachApi.getSegments();\n setSegments(result.segments || []);\n } finally {\n setLoading(false);\n }\n }, []);\n\n // 获取受众人数预估\n const estimateAudience = useCallback(async (criteria) => {\n try {\n const result = await reachApi.estimateAudience(criteria);\n return result.count || 0;\n } catch (e) {\n return 0;\n }\n }, []);\n\n useEffect(() => {\n loadSegments();\n }, []);\n\n return { segments, loading, estimateAudience, refresh: loadSegments };\n}\n\n","/**\n * Reach SDK - 触达组件\n */\n\nimport React from 'react';\nimport { t } from '../i18n';\nimport { CampaignStatus, ChannelType } from '../types';\n\n/**\n * 状态颜色\n */\nconst statusColors = {\n [CampaignStatus.DRAFT]: '#6B7280',\n [CampaignStatus.SCHEDULED]: '#3B82F6',\n [CampaignStatus.SENDING]: '#F59E0B',\n [CampaignStatus.SENT]: '#10B981',\n [CampaignStatus.PAUSED]: '#EF4444',\n [CampaignStatus.CANCELLED]: '#9CA3AF',\n};\n\n/**\n * 渠道图标\n */\nconst channelIcons = {\n [ChannelType.EMAIL]: '📧',\n [ChannelType.SMS]: '📱',\n [ChannelType.PUSH]: '🔔',\n [ChannelType.IN_APP]: '💬',\n [ChannelType.WECHAT]: '💚',\n};\n\n/**\n * CampaignCard 组件\n */\nexport function CampaignCard({\n campaign,\n onClick,\n onSend,\n onPause,\n onCancel,\n}) {\n const { id, name, channel, status, stats, scheduled_time } = campaign;\n const statusColor = statusColors[status] || '#6B7280';\n const channelIcon = channelIcons[channel] || '📤';\n\n return (\n <div className=\"eco-reach-card\" onClick={() => onClick?.(campaign)}>\n <div className=\"eco-reach-card-header\">\n <span className=\"eco-reach-channel\">{channelIcon}</span>\n <h4 className=\"eco-reach-card-title\">{name}</h4>\n <span\n className=\"eco-reach-status\"\n style={{ backgroundColor: `${statusColor}20`, color: statusColor }}\n >\n {t(status)}\n </span>\n </div>\n\n {/* 统计数据 */}\n {stats && (\n <div className=\"eco-reach-stats\">\n <div className=\"eco-reach-stat\">\n <span className=\"eco-reach-stat-value\">{stats.sent || 0}</span>\n <span className=\"eco-reach-stat-label\">{t('delivered')}</span>\n </div>\n <div className=\"eco-reach-stat\">\n <span className=\"eco-reach-stat-value\">\n {((stats.open_rate || 0) * 100).toFixed(1)}%\n </span>\n <span className=\"eco-reach-stat-label\">{t('openRate')}</span>\n </div>\n <div className=\"eco-reach-stat\">\n <span className=\"eco-reach-stat-value\">\n {((stats.click_rate || 0) * 100).toFixed(1)}%\n </span>\n <span className=\"eco-reach-stat-label\">{t('clickRate')}</span>\n </div>\n <div className=\"eco-reach-stat\">\n <span className=\"eco-reach-stat-value\">\n {((stats.conversion_rate || 0) * 100).toFixed(1)}%\n </span>\n <span className=\"eco-reach-stat-label\">{t('conversionRate')}</span>\n </div>\n </div>\n )}\n\n {/* 定时信息 */}\n {scheduled_time && status === CampaignStatus.SCHEDULED && (\n <div className=\"eco-reach-scheduled\">\n 📅 {t('scheduledTime')}: {new Date(scheduled_time).toLocaleString()}\n </div>\n )}\n\n {/* 操作按钮 */}\n <div className=\"eco-reach-actions\" onClick={e => e.stopPropagation()}>\n {status === CampaignStatus.DRAFT && (\n <button className=\"eco-reach-btn send\" onClick={() => onSend?.(id)}>\n {t('sendNow')}\n </button>\n )}\n {status === CampaignStatus.SENDING && (\n <button className=\"eco-reach-btn pause\" onClick={() => onPause?.(id)}>\n {t('paused')}\n </button>\n )}\n {status === CampaignStatus.SCHEDULED && (\n <button className=\"eco-reach-btn cancel\" onClick={() => onCancel?.(id)}>\n {t('cancelled')}\n </button>\n )}\n </div>\n </div>\n );\n}\n\n/**\n * ChannelSelector 组件\n */\nexport function ChannelSelector({ value, onChange }) {\n const channels = [\n { type: ChannelType.EMAIL, icon: '📧', label: t('email') },\n { type: ChannelType.SMS, icon: '📱', label: t('sms') },\n { type: ChannelType.PUSH, icon: '🔔', label: t('push') },\n { type: ChannelType.IN_APP, icon: '💬', label: t('inApp') },\n { type: ChannelType.WECHAT, icon: '💚', label: t('wechat') },\n ];\n\n return (\n <div className=\"eco-reach-channel-selector\">\n {channels.map(channel => (\n <div\n key={channel.type}\n className={`eco-reach-channel-option ${value === channel.type ? 'active' : ''}`}\n onClick={() => onChange?.(channel.type)}\n >\n <span className=\"eco-reach-channel-icon\">{channel.icon}</span>\n <span className=\"eco-reach-channel-label\">{channel.label}</span>\n </div>\n ))}\n </div>\n );\n}\n\n/**\n * AudienceSelector 组件\n */\nexport function AudienceSelector({\n value,\n segments = [],\n estimatedCount,\n onChange,\n}) {\n return (\n <div className=\"eco-reach-audience\">\n <h4>{t('selectAudience')}</h4>\n \n <div className=\"eco-reach-audience-options\">\n <div\n className={`eco-reach-audience-option ${value?.type === 'all' ? 'active' : ''}`}\n onClick={() => onChange?.({ type: 'all' })}\n >\n <span className=\"eco-reach-audience-icon\">👥</span>\n <span>{t('allUsers')}</span>\n </div>\n \n <div\n className={`eco-reach-audience-option ${value?.type === 'segment' ? 'active' : ''}`}\n onClick={() => onChange?.({ type: 'segment' })}\n >\n <span className=\"eco-reach-audience-icon\">🎯</span>\n <span>{t('segment')}</span>\n </div>\n \n <div\n className={`eco-reach-audience-option ${value?.type === 'upload' ? 'active' : ''}`}\n onClick={() => onChange?.({ type: 'upload' })}\n >\n <span className=\"eco-reach-audience-icon\">📤</span>\n <span>{t('uploadList')}</span>\n </div>\n </div>\n\n {/* 分群选择 */}\n {value?.type === 'segment' && segments.length > 0 && (\n <div className=\"eco-reach-segment-list\">\n {segments.map(segment => (\n <div\n key={segment.id}\n className={`eco-reach-segment-item ${value?.segmentId === segment.id ? 'active' : ''}`}\n onClick={() => onChange?.({ type: 'segment', segmentId: segment.id })}\n >\n <span>{segment.name}</span>\n <span className=\"eco-reach-segment-count\">{segment.user_count} 人</span>\n </div>\n ))}\n </div>\n )}\n\n {/* 预估人数 */}\n {estimatedCount !== undefined && (\n <div className=\"eco-reach-estimated\">\n 预估触达人数: <strong>{estimatedCount.toLocaleString()}</strong> 人\n </div>\n )}\n </div>\n );\n}\n\n/**\n * CampaignStats 组件 - 活动统计\n */\nexport function CampaignStats({ stats }) {\n if (!stats) return null;\n\n const metrics = [\n { key: 'sent', label: t('delivered'), value: stats.sent || 0 },\n { key: 'opened', label: t('opened'), value: stats.opened || 0 },\n { key: 'clicked', label: t('clicked'), value: stats.clicked || 0 },\n { key: 'converted', label: t('converted'), value: stats.converted || 0 },\n { key: 'failed', label: t('failed'), value: stats.failed || 0 },\n { key: 'bounced', label: t('bounced'), value: stats.bounced || 0 },\n ];\n\n return (\n <div className=\"eco-reach-stats-detail\">\n {metrics.map(metric => (\n <div key={metric.key} className=\"eco-reach-stats-item\">\n <div className=\"eco-reach-stats-value\">{metric.value.toLocaleString()}</div>\n <div className=\"eco-reach-stats-label\">{metric.label}</div>\n {stats.total > 0 && (\n <div className=\"eco-reach-stats-rate\">\n {((metric.value / stats.total) * 100).toFixed(1)}%\n </div>\n )}\n </div>\n ))}\n </div>\n );\n}\n\n/**\n * CampaignList 组件\n */\nexport function CampaignList({\n campaigns = [],\n loading = false,\n onCampaignClick,\n onSend,\n onPause,\n onCancel,\n}) {\n if (loading && campaigns.length === 0) {\n return <div className=\"eco-reach-loading\">加载中...</div>;\n }\n\n if (campaigns.length === 0) {\n return <div className=\"eco-reach-empty\">暂无触达活动</div>;\n }\n\n return (\n <div className=\"eco-reach-list\">\n {campaigns.map(campaign => (\n <CampaignCard\n key={campaign.id}\n campaign={campaign}\n onClick={onCampaignClick}\n onSend={onSend}\n onPause={onPause}\n onCancel={onCancel}\n />\n ))}\n </div>\n );\n}\n\n","/**\n * @quantabit/reach-sdk\n * Campaign SDK - Full Version\n */\n\n// API Client\nexport { reachApi, ReachApiClient } from './services/reachApi';\n\n// Types\nexport { CampaignStatus, ChannelType, AudienceType, TemplateType } from './types';\n\n// i18n\nexport { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t } from './i18n';\n\n// React Hooks\nexport { useCampaigns, useCampaign, useTemplates, useAudience } from './hooks/useReach';\n\n// React Components\nexport {\n CampaignCard,\n ChannelSelector,\n AudienceSelector,\n CampaignStats,\n CampaignList,\n} from './components/CampaignBuilder';\n\n// Shortcut Methods\nimport { reachApi } from './services/reachApi';\n\nexport const getActiveCampaigns = (params) => reachApi.getActiveCampaigns(params);\nexport const getCampaign = (campaignId) => reachApi.getCampaign(campaignId);\nexport const joinCampaign = (campaignId, data) => reachApi.joinCampaign(campaignId, data);\nexport const getPopups = (params) => reachApi.getPopups(params);\nexport const getBanners = (params) => reachApi.getBanners(params);\nexport const trackEvent = (event, data) => reachApi.trackEvent(event, data);\nexport const getPushPreferences = (params) => reachApi.getPushPreferences(params);\nexport const updatePushPreferences = (data) => reachApi.updatePushPreferences(data);\nexport const subscribe = (params) => reachApi.subscribe(params);\nexport const unsubscribe = (params) => reachApi.unsubscribe(params);\n\n"],"names":["ReachApiClient","BaseApiClient","constructor","config","getTasks","params","get","getTask","taskId","createTask","data","post","updateTask","updates","put","deleteTask","delete","executeNow","pauseTask","resumeTask","cancelTask","getChannels","getChannelConfig","channelType","updateChannelConfig","testChannel","testData","getTemplates","getTemplate","templateId","createTemplate","updateTemplate","previewTemplate","variables","getAudiences","createAudience","estimateAudienceSize","conditions","getTaskStats","getOverallStats","getSendLogs","getCampaigns","getActiveCampaigns","getCampaign","campaignId","createCampaign","updateCampaign","joinCampaign","scheduleCampaign","scheduledTime","sendCampaign","pauseCampaign","cancelCampaign","getPopups","getBanners","trackEvent","event","getPushPreferences","updatePushPreferences","subscribe","unsubscribe","getSegments","estimateAudience","criteria","reachApi","ChannelType","AudienceType","TemplateType","CampaignStatus","SUPPORTED_LANGUAGES","messages","zh","reach","campaign","campaigns","channel","channels","email","sms","push","inApp","wechat","draft","scheduled","sending","sent","paused","cancelled","audience","selectAudience","allUsers","segment","uploadList","content","template","subject","preview","send","sendNow","schedule","delivered","opened","clicked","converted","failed","bounced","unsubscribed","sendRate","openRate","clickRate","conversionRate","ja","ko","en","currentLanguage","setLanguage","lang","includes","getLanguage","t","key","useCampaigns","options","setCampaigns","useState","loading","setLoading","total","setTotal","loadCampaigns","useCallback","result","status","useEffect","refresh","useCampaign","setCampaign","stats","setStats","saving","setSaving","loadCampaign","campaignData","statsData","Promise","all","getCampaignStats","saveCampaign","e","useTemplates","templates","setTemplates","loadTemplates","useAudience","segments","setSegments","loadSegments","count","statusColors","DRAFT","SCHEDULED","SENDING","SENT","PAUSED","CANCELLED","channelIcons","EMAIL","SMS","PUSH","IN_APP","WECHAT","CampaignCard","onClick","onSend","onPause","onCancel","id","name","scheduled_time","statusColor","channelIcon","React","createElement","className","style","backgroundColor","color","open_rate","toFixed","click_rate","conversion_rate","Date","toLocaleString","stopPropagation","ChannelSelector","value","onChange","type","icon","label","map","AudienceSelector","estimatedCount","length","segmentId","user_count","undefined","CampaignStats","metrics","metric","CampaignList","onCampaignClick"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@quantabit/reach-sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "QuantaBit Reach SDK - User outreach and message delivery management",
|
|
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
|
+
"@rollup/plugin-commonjs": "^25.0.0",
|
|
32
|
+
"@rollup/plugin-node-resolve": "^15.0.0",
|
|
33
|
+
"rollup": "^4.0.0",
|
|
34
|
+
"@babel/core": "^7.23.0",
|
|
35
|
+
"@babel/preset-react": "^7.23.0",
|
|
36
|
+
"@rollup/plugin-babel": "^6.0.0",
|
|
37
|
+
"rollup-plugin-postcss": "^4.0.0"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@quantabit/sdk-config": "^1.0.6"
|
|
41
|
+
},
|
|
42
|
+
"author": "QuantaBit Team",
|
|
43
|
+
"license": "MIT",
|
|
44
|
+
"publishConfig": {
|
|
45
|
+
"access": "public",
|
|
46
|
+
"registry": "https://registry.npmjs.org"
|
|
47
|
+
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"react": ">=17.0.0",
|
|
50
|
+
"react-dom": ">=17.0.0"
|
|
51
|
+
},
|
|
52
|
+
"repository": {
|
|
53
|
+
"type": "git",
|
|
54
|
+
"url": "https://github.com/quantabit-chain/qbit-sdk.git",
|
|
55
|
+
"directory": "packages/reach-sdk"
|
|
56
|
+
},
|
|
57
|
+
"homepage": "https://github.com/quantabit-chain/qbit-sdk/tree/main/packages/reach-sdk#readme",
|
|
58
|
+
"bugs": {
|
|
59
|
+
"url": "https://github.com/quantabit-chain/qbit-sdk/issues"
|
|
60
|
+
},
|
|
61
|
+
"keywords": [
|
|
62
|
+
"quantabit",
|
|
63
|
+
"reach",
|
|
64
|
+
"sdk"
|
|
65
|
+
],
|
|
66
|
+
"types": "types/index.d.ts",
|
|
67
|
+
"engines": {
|
|
68
|
+
"node": ">=18.0.0"
|
|
69
|
+
},
|
|
70
|
+
"sideEffects": false,
|
|
71
|
+
"qbit": {
|
|
72
|
+
"privacy": {
|
|
73
|
+
"level": "functional",
|
|
74
|
+
"dataCollection": "Feature-related data for personalization. Requires user consent.",
|
|
75
|
+
"gdprCompliant": true,
|
|
76
|
+
"ccpaCompliant": true
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @quantabit/reach-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
|
+
// ============ Hooks ============
|
|
10
|
+
|
|
11
|
+
export interface UseCampaignsReturn {
|
|
12
|
+
data: any;
|
|
13
|
+
loading: boolean;
|
|
14
|
+
error: string | null;
|
|
15
|
+
[key: string]: any;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export declare function useCampaigns(...args: any[]): UseCampaignsReturn;
|
|
19
|
+
|
|
20
|
+
export interface UseCampaignReturn {
|
|
21
|
+
data: any;
|
|
22
|
+
loading: boolean;
|
|
23
|
+
error: string | null;
|
|
24
|
+
[key: string]: any;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export declare function useCampaign(...args: any[]): UseCampaignReturn;
|
|
28
|
+
|
|
29
|
+
export interface UseTemplatesReturn {
|
|
30
|
+
data: any;
|
|
31
|
+
loading: boolean;
|
|
32
|
+
error: string | null;
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export declare function useTemplates(...args: any[]): UseTemplatesReturn;
|
|
37
|
+
|
|
38
|
+
export interface UseAudienceReturn {
|
|
39
|
+
data: any;
|
|
40
|
+
loading: boolean;
|
|
41
|
+
error: string | null;
|
|
42
|
+
[key: string]: any;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export declare function useAudience(...args: any[]): UseAudienceReturn;
|
|
46
|
+
|
|
47
|
+
// ============ Services ============
|
|
48
|
+
|
|
49
|
+
export declare const reachApi: any;
|
|
50
|
+
|
|
51
|
+
export declare class ReachApiClient {
|
|
52
|
+
constructor(config?: Record<string, any>);
|
|
53
|
+
setToken(token: string): void;
|
|
54
|
+
setBaseUrl(url: string): void;
|
|
55
|
+
destroy(): void;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// ============ Types & Enums ============
|
|
59
|
+
|
|
60
|
+
export declare const CampaignStatus: Record<string, string>;
|
|
61
|
+
export declare const ChannelType: Record<string, string>;
|
|
62
|
+
export declare const AudienceType: Record<string, string>;
|
|
63
|
+
export declare const TemplateType: Record<string, string>;
|
|
64
|
+
|
|
65
|
+
// ============ Functions & Utilities ============
|
|
66
|
+
|
|
67
|
+
export declare const messages: Record<string, Record<string, string>>;
|
|
68
|
+
export declare const SUPPORTED_LANGUAGES: string[];
|
|
69
|
+
export declare function setLanguage(lang: string): void;
|
|
70
|
+
export declare function getLanguage(): string;
|
|
71
|
+
export declare function t(key: string, params?: Record<string, any>): string;
|
|
72
|
+
export declare function getActiveCampaigns(...args: any[]): any;
|
|
73
|
+
export declare function getCampaign(...args: any[]): any;
|
|
74
|
+
export declare function joinCampaign(...args: any[]): any;
|
|
75
|
+
export declare function getPopups(...args: any[]): any;
|
|
76
|
+
export declare function getBanners(...args: any[]): any;
|
|
77
|
+
export declare function trackEvent(...args: any[]): any;
|
|
78
|
+
export declare function getPushPreferences(...args: any[]): any;
|
|
79
|
+
export declare function updatePushPreferences(...args: any[]): any;
|
|
80
|
+
export declare function subscribe(...args: any[]): any;
|
|
81
|
+
export declare function unsubscribe(...args: any[]): any;
|
|
82
|
+
|