@quantabit/journey-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.esm.js","sources":["../src/services/journeyApi.js","../src/types/index.js","../src/i18n/index.js","../src/hooks/useJourney.js","../src/components/JourneyBuilder.jsx","../src/index.js"],"sourcesContent":["/**\n * Journey SDK - API 客户端\n * 用户旅程分析系统后端接口封装\n * \n * 使用 BaseApiClient 基类简化代码\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\n/**\n * 用户旅程 API 客户端\n */\nexport class JourneyApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/journey', config);\n }\n\n // ============ 旅程定义 ============\n\n /**\n * 获取旅程列表\n * @param {Object} params - 查询参数\n */\n async getJourneys(params = {}) {\n return this.get('/list', params);\n }\n\n /**\n * 获取旅程详情\n * @param {string} journeyId - 旅程 ID\n */\n async getJourney(journeyId) {\n return this.get(`/${journeyId}`);\n }\n\n /**\n * 创建旅程(管理员)\n * @param {Object} data - 旅程数据\n */\n async createJourney(data) {\n return this.post('/', data);\n }\n\n /**\n * 更新旅程(管理员)\n * @param {string} journeyId - 旅程 ID\n * @param {Object} updates - 更新数据\n */\n async updateJourney(journeyId, updates) {\n return this.put(`/${journeyId}`, updates);\n }\n\n /**\n * 删除旅程(管理员)\n * @param {string} journeyId - 旅程 ID\n */\n async deleteJourney(journeyId) {\n return this.delete(`/${journeyId}`);\n }\n\n // ============ 旅程分析 ============\n\n /**\n * 获取旅程分析数据\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 分析参数\n */\n async analyzeJourney(journeyId, params = {}) {\n return this.post(`/${journeyId}/analyze`, params);\n }\n\n /**\n * 获取步骤转化率\n * @param {string} journeyId - 旅程 ID\n */\n async getStepConversion(journeyId) {\n return this.get(`/${journeyId}/conversion`);\n }\n\n /**\n * 获取用户掉落点\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 查询参数\n */\n async getDropoffPoints(journeyId, params = {}) {\n return this.get(`/${journeyId}/dropoff`, params);\n }\n\n /**\n * 获取路径分布\n * @param {string} journeyId - 旅程 ID\n */\n async getPathDistribution(journeyId) {\n return this.get(`/${journeyId}/paths`);\n }\n\n // ============ 用户旅程 ============\n\n /**\n * 获取用户的旅程记录\n * @param {string} userId - 用户 ID\n * @param {Object} params - 查询参数\n */\n async getUserJourneys(userId, params = {}) {\n return this.get(`/users/${userId}`, params);\n }\n\n /**\n * 获取我的旅程记录\n * @param {Object} params - 查询参数\n */\n async getMyJourneys(params = {}) {\n return this.get('/my', params);\n }\n\n /**\n * 记录旅程事件\n * @param {string} journeyId - 旅程 ID\n * @param {string} stepId - 步骤 ID\n * @param {Object} data - 事件数据\n */\n async trackStep(journeyId, stepId, data = {}) {\n return this.post(`/${journeyId}/track`, { step_id: stepId, ...data });\n }\n\n // ============ 触点管理 ============\n\n /**\n * 获取触点列表\n * @param {string} journeyId - 旅程 ID\n */\n async getTouchpoints(journeyId) {\n return this.get(`/${journeyId}/touchpoints`);\n }\n\n /**\n * 添加触点(管理员)\n * @param {string} journeyId - 旅程 ID\n * @param {Object} touchpoint - 触点数据\n */\n async addTouchpoint(journeyId, touchpoint) {\n return this.post(`/${journeyId}/touchpoints`, touchpoint);\n }\n\n /**\n * 更新触点(管理员)\n * @param {string} journeyId - 旅程 ID\n * @param {string} touchpointId - 触点 ID\n * @param {Object} updates - 更新数据\n */\n async updateTouchpoint(journeyId, touchpointId, updates) {\n return this.put(`/${journeyId}/touchpoints/${touchpointId}`, updates);\n }\n\n // ============ 统计报表 ============\n\n /**\n * 获取旅程统计\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 统计参数\n */\n async getStats(journeyId, params = {}) {\n return this.get(`/${journeyId}/stats`, params);\n }\n\n /**\n * 获取趋势数据\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 查询参数\n */\n async getTrend(journeyId, params = {}) {\n return this.get(`/${journeyId}/trend`, params);\n }\n\n /**\n * 导出报表\n * @param {string} journeyId - 旅程 ID\n * @param {Object} options - 导出选项\n */\n async exportReport(journeyId, options = {}) {\n return this.post(`/${journeyId}/export`, options);\n }\n\n /**\n * 启动旅程\n * @param {string} journeyId - 旅程 ID\n */\n async startJourney(journeyId) {\n return this.post(`/${journeyId}/start`);\n }\n\n /**\n * 暂停旅程\n * @param {string} journeyId - 旅程 ID\n */\n async pauseJourney(journeyId) {\n return this.post(`/${journeyId}/pause`);\n }\n\n /**\n * 停止旅程\n * @param {string} journeyId - 旅程 ID\n */\n async stopJourney(journeyId) {\n return this.post(`/${journeyId}/stop`);\n }\n\n /**\n * 获取旅程统计 (快捷方法包装)\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 统计参数\n */\n async getJourneyStats(journeyId, params = {}) {\n return this.getStats(journeyId, params);\n }\n\n /**\n * 获取参与旅程的用户列表\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 查询参数\n */\n async getJourneyUsers(journeyId, params = {}) {\n return this.get(`/${journeyId}/users`, params);\n }\n}\n\n// 创建默认实例\nexport const journeyApi = new JourneyApiClient();\n\n\n\nexport default journeyApi;\n","/**\n * Journey SDK - 类型定义\n */\n\n// 旅程状态\nexport const JourneyStatus = {\n DRAFT: 'draft',\n ACTIVE: 'active',\n PAUSED: 'paused',\n COMPLETED: 'completed',\n ARCHIVED: 'archived',\n};\n\n// 触发类型\nexport const TriggerType = {\n EVENT: 'event', // 事件触发\n SEGMENT: 'segment', // 分群进入\n SCHEDULE: 'schedule', // 定时触发\n API: 'api', // API调用\n};\n\n// 动作类型\nexport const ActionType = {\n SEND_EMAIL: 'send_email',\n SEND_SMS: 'send_sms',\n SEND_PUSH: 'send_push',\n SEND_IN_APP: 'send_in_app',\n WEBHOOK: 'webhook',\n WAIT: 'wait',\n CONDITION: 'condition',\n SPLIT: 'split',\n UPDATE_PROFILE: 'update_profile',\n ADD_TAG: 'add_tag',\n};\n\n// 等待类型\nexport const WaitType = {\n DURATION: 'duration', // 固定时长\n UNTIL: 'until', // 到指定时间\n EVENT: 'event', // 等待事件\n};\n\nexport default { JourneyStatus, TriggerType, ActionType, WaitType };\n","/**\n * Journey SDK - 国际化\n */\n\nexport const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\n\nexport const messages = {\n zh: {\n // 旅程\n journey: '用户旅程',\n journeys: '旅程列表',\n createJourney: '创建旅程',\n myJourneys: '我的旅程',\n \n // 状态\n draft: '草稿',\n active: '运行中',\n paused: '已暂停',\n completed: '已完成',\n archived: '已归档',\n \n // 触发器\n trigger: '触发条件',\n triggers: '触发器',\n event: '事件触发',\n schedule: '定时触发',\n segment: '分群触发',\n manual: '手动触发',\n \n // 动作\n action: '动作',\n actions: '动作列表',\n sendEmail: '发送邮件',\n sendSMS: '发送短信',\n sendPush: '发送推送',\n sendNotification: '发送通知',\n addTag: '添加标签',\n removeTag: '移除标签',\n updateProfile: '更新画像',\n webhook: '调用Webhook',\n \n // 等待\n wait: '等待',\n waitTime: '等待时间',\n minutes: '分钟',\n hours: '小时',\n days: '天',\n \n // 条件\n condition: '条件',\n ifThen: '如果...则...',\n abTest: 'A/B测试',\n \n // 统计\n entered: '进入人数',\n completed: '完成人数',\n active: '活跃人数',\n conversionRate: '转化率',\n \n // 操作\n start: '启动',\n pause: '暂停',\n resume: '继续',\n stop: '停止',\n duplicate: '复制',\n delete: '删除',\n },\n ja: {\n // 旅程\n journey: 'ユーザージャーニー',\n journeys: 'ジャーニーリスト',\n createJourney: 'ジャーニー作成',\n myJourneys: 'マイジャーニー',\n \n // 状态\n draft: '下書き',\n active: '実行中',\n paused: '一時停止中',\n completed: '完了',\n archived: 'アーカイブ済み',\n \n // 触发器\n trigger: 'トリガー条件',\n triggers: 'トリガー',\n event: 'イベントトリガー',\n schedule: 'スケジュールトリガー',\n segment: 'セグメントトリガー',\n manual: '手動トリガー',\n \n // 动作\n action: 'アクション',\n actions: 'アクションリスト',\n sendEmail: 'メール送信',\n sendSMS: 'SMS送信',\n sendPush: 'プッシュ送信',\n sendNotification: '通知送信',\n addTag: 'タグ追加',\n removeTag: 'タグ削除',\n updateProfile: 'プロフィール更新',\n webhook: 'Webhook呼び出し',\n \n // 等待\n wait: '待機',\n waitTime: '待機時間',\n minutes: '分',\n hours: '時間',\n days: '日',\n \n // 条件\n condition: '条件',\n ifThen: 'もし...ならば...',\n abTest: 'A/B测试',\n \n // 统计\n entered: '参加者数',\n completed: '完了者数',\n active: 'アクティブ数',\n conversionRate: 'コンバージョン率',\n \n // 操作\n start: '起動',\n pause: '一時停止',\n resume: '再開',\n stop: '停止',\n duplicate: 'コピー',\n delete: '削除',\n },\n ko: {\n // 旅程\n journey: '사용자 여정',\n journeys: '여정 목록',\n createJourney: '여정 만들기',\n myJourneys: '내 여정',\n \n // 状态\n draft: '초안',\n active: '실행 중',\n paused: '일시 중지됨',\n completed: '완료됨',\n archived: '보관됨',\n \n // 触发器\n trigger: '트리거 조건',\n triggers: '트리거',\n event: '이벤트 트리거',\n schedule: '예약 트리거',\n segment: '세그먼트 트리거',\n manual: '수동 트리거',\n \n // 动作\n action: '작업',\n actions: '작업 목록',\n sendEmail: '이메일 전송',\n sendSMS: 'SMS 전송',\n sendPush: '푸시 알림 전송',\n sendNotification: '알림 전송',\n addTag: '태그 추가',\n removeTag: '태그 제거',\n updateProfile: '프로필 업데이트',\n webhook: 'Webhook 호출',\n \n // 等待\n wait: '대기',\n waitTime: '대기 시간',\n minutes: '분',\n hours: '시간',\n days: '일',\n \n // 条件\n condition: '조건',\n ifThen: '만약...라면...',\n abTest: 'A/B测试',\n \n // 统计\n entered: '참여자 수',\n completed: '완료자 수',\n active: '활성 사용자 수',\n conversionRate: '전환율',\n \n // 操作\n start: '시작',\n pause: '일시 정지',\n resume: '계속',\n stop: '중지',\n duplicate: '복사',\n delete: '삭제',\n },\n en: {\n journey: 'Journey',\n journeys: 'Journeys',\n createJourney: 'Create Journey',\n myJourneys: 'My Journeys',\n \n draft: 'Draft',\n active: 'Active',\n paused: 'Paused',\n completed: 'Completed',\n archived: 'Archived',\n \n trigger: 'Trigger',\n triggers: 'Triggers',\n event: 'Event',\n schedule: 'Schedule',\n segment: 'Segment',\n manual: 'Manual',\n \n action: 'Action',\n actions: 'Actions',\n sendEmail: 'Send Email',\n sendSMS: 'Send SMS',\n sendPush: 'Send Push',\n sendNotification: 'Send Notification',\n addTag: 'Add Tag',\n removeTag: 'Remove Tag',\n updateProfile: 'Update Profile',\n webhook: 'Webhook',\n \n wait: 'Wait',\n waitTime: 'Wait Time',\n minutes: 'minutes',\n hours: 'hours',\n days: 'days',\n \n condition: 'Condition',\n ifThen: 'If...Then...',\n abTest: 'A/B Test',\n \n entered: 'Entered',\n completed: 'Completed',\n active: 'Active',\n conversionRate: 'Conversion Rate',\n \n start: 'Start',\n pause: 'Pause',\n resume: 'Resume',\n stop: 'Stop',\n duplicate: 'Duplicate',\n delete: 'Delete',\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 * Journey SDK - React Hooks\n */\n\nimport { useState, useEffect, useCallback } from 'react';\nimport { journeyApi } from '../services/journeyApi';\n\n/**\n * useJourneys - 旅程列表Hook\n */\nexport function useJourneys(options = {}) {\n const [journeys, setJourneys] = useState([]);\n const [loading, setLoading] = useState(false);\n const [page, setPage] = useState(1);\n const [hasMore, setHasMore] = useState(true);\n const [total, setTotal] = useState(0);\n\n const loadJourneys = useCallback(async (reset = false) => {\n const currentPage = reset ? 1 : page;\n setLoading(true);\n try {\n const result = await journeyApi.getJourneys({\n ...options,\n page: currentPage,\n pageSize: 20,\n });\n \n const newJourneys = result.journeys || [];\n setJourneys(prev => reset ? newJourneys : [...prev, ...newJourneys]);\n setTotal(result.total || 0);\n setHasMore(newJourneys.length >= 20);\n if (reset) setPage(1);\n } finally {\n setLoading(false);\n }\n }, [options.status, page]);\n\n const loadMore = useCallback(() => {\n if (hasMore && !loading) {\n setPage(p => p + 1);\n }\n }, [hasMore, loading]);\n\n useEffect(() => {\n loadJourneys(true);\n }, [options.status]);\n\n useEffect(() => {\n if (page > 1) loadJourneys();\n }, [page]);\n\n return {\n journeys,\n loading,\n total,\n hasMore,\n loadMore,\n refresh: () => loadJourneys(true),\n };\n}\n\n/**\n * useJourney - 单个旅程Hook\n */\nexport function useJourney(journeyId) {\n const [journey, setJourney] = useState(null);\n const [stats, setStats] = useState(null);\n const [loading, setLoading] = useState(false);\n const [saving, setSaving] = useState(false);\n\n const loadJourney = useCallback(async () => {\n if (!journeyId) return;\n setLoading(true);\n try {\n const [journeyData, statsData] = await Promise.all([\n journeyApi.getJourney(journeyId),\n journeyApi.getJourneyStats(journeyId),\n ]);\n setJourney(journeyData);\n setStats(statsData);\n } finally {\n setLoading(false);\n }\n }, [journeyId]);\n\n // 保存旅程\n const saveJourney = useCallback(async (data) => {\n setSaving(true);\n try {\n const result = journeyId\n ? await journeyApi.updateJourney(journeyId, data)\n : await journeyApi.createJourney(data);\n setJourney(result);\n return result;\n } finally {\n setSaving(false);\n }\n }, [journeyId]);\n\n // 启动旅程\n const startJourney = useCallback(async () => {\n if (!journeyId) return false;\n try {\n await journeyApi.startJourney(journeyId);\n loadJourney();\n return true;\n } catch (e) {\n return false;\n }\n }, [journeyId, loadJourney]);\n\n // 暂停旅程\n const pauseJourney = useCallback(async () => {\n if (!journeyId) return false;\n try {\n await journeyApi.pauseJourney(journeyId);\n loadJourney();\n return true;\n } catch (e) {\n return false;\n }\n }, [journeyId, loadJourney]);\n\n // 停止旅程\n const stopJourney = useCallback(async () => {\n if (!journeyId) return false;\n try {\n await journeyApi.stopJourney(journeyId);\n loadJourney();\n return true;\n } catch (e) {\n return false;\n }\n }, [journeyId, loadJourney]);\n\n useEffect(() => {\n loadJourney();\n }, [journeyId]);\n\n return {\n journey,\n stats,\n loading,\n saving,\n saveJourney,\n startJourney,\n pauseJourney,\n stopJourney,\n refresh: loadJourney,\n };\n}\n\n/**\n * useJourneyBuilder - 旅程构建器Hook\n */\nexport function useJourneyBuilder(initialData = null) {\n const [nodes, setNodes] = useState(initialData?.nodes || []);\n const [edges, setEdges] = useState(initialData?.edges || []);\n const [selectedNode, setSelectedNode] = useState(null);\n\n // 添加节点\n const addNode = useCallback((type, data = {}) => {\n const newNode = {\n id: `node_${Date.now()}`,\n type,\n data,\n position: { x: 100, y: nodes.length * 150 },\n };\n setNodes(prev => [...prev, newNode]);\n return newNode;\n }, [nodes.length]);\n\n // 更新节点\n const updateNode = useCallback((nodeId, data) => {\n setNodes(prev => prev.map(node =>\n node.id === nodeId ? { ...node, data: { ...node.data, ...data } } : node\n ));\n }, []);\n\n // 删除节点\n const deleteNode = useCallback((nodeId) => {\n setNodes(prev => prev.filter(node => node.id !== nodeId));\n setEdges(prev => prev.filter(edge =>\n edge.source !== nodeId && edge.target !== nodeId\n ));\n if (selectedNode === nodeId) setSelectedNode(null);\n }, [selectedNode]);\n\n // 添加连线\n const addEdge = useCallback((source, target, label) => {\n const newEdge = {\n id: `edge_${Date.now()}`,\n source,\n target,\n label,\n };\n setEdges(prev => [...prev, newEdge]);\n return newEdge;\n }, []);\n\n // 删除连线\n const deleteEdge = useCallback((edgeId) => {\n setEdges(prev => prev.filter(edge => edge.id !== edgeId));\n }, []);\n\n // 导出数据\n const exportData = useCallback(() => {\n return { nodes, edges };\n }, [nodes, edges]);\n\n // 导入数据\n const importData = useCallback((data) => {\n setNodes(data.nodes || []);\n setEdges(data.edges || []);\n setSelectedNode(null);\n }, []);\n\n // 清空画布\n const clear = useCallback(() => {\n setNodes([]);\n setEdges([]);\n setSelectedNode(null);\n }, []);\n\n return {\n nodes,\n edges,\n selectedNode,\n setSelectedNode,\n addNode,\n updateNode,\n deleteNode,\n addEdge,\n deleteEdge,\n exportData,\n importData,\n clear,\n };\n}\n\n","/**\n * Journey SDK - 旅程组件\n */\n\nimport React from 'react';\nimport { t } from '../i18n';\nimport { JourneyStatus, TriggerType, ActionType } from '../types';\n\n/**\n * 状态颜色映射\n */\nconst statusColors = {\n [JourneyStatus.DRAFT]: '#6B7280',\n [JourneyStatus.ACTIVE]: '#10B981',\n [JourneyStatus.PAUSED]: '#F59E0B',\n [JourneyStatus.COMPLETED]: '#3B82F6',\n [JourneyStatus.ARCHIVED]: '#9CA3AF',\n};\n\n/**\n * 动作图标映射\n */\nconst actionIcons = {\n [ActionType.SEND_EMAIL]: '📧',\n [ActionType.SEND_SMS]: '📱',\n [ActionType.SEND_PUSH]: '🔔',\n [ActionType.SEND_NOTIFICATION]: '💬',\n [ActionType.ADD_TAG]: '🏷️',\n [ActionType.REMOVE_TAG]: '🚫',\n [ActionType.UPDATE_PROFILE]: '👤',\n [ActionType.WEBHOOK]: '🔗',\n [ActionType.WAIT]: '⏱️',\n [ActionType.CONDITION]: '🔀',\n};\n\n/**\n * JourneyCard 组件\n */\nexport function JourneyCard({\n journey,\n onClick,\n onStart,\n onPause,\n onStop,\n showActions = true,\n}) {\n const { id, name, description, status, stats } = journey;\n const statusColor = statusColors[status] || '#6B7280';\n const isActive = status === JourneyStatus.ACTIVE;\n const isDraft = status === JourneyStatus.DRAFT;\n const isPaused = status === JourneyStatus.PAUSED;\n\n return (\n <div className=\"eco-journey-card\" onClick={() => onClick?.(journey)}>\n <div className=\"eco-journey-card-header\">\n <h4 className=\"eco-journey-card-title\">{name}</h4>\n <span\n className=\"eco-journey-status\"\n style={{ backgroundColor: `${statusColor}20`, color: statusColor }}\n >\n {t(status)}\n </span>\n </div>\n\n {description && (\n <p className=\"eco-journey-card-desc\">{description}</p>\n )}\n\n {/* 统计数据 */}\n {stats && (\n <div className=\"eco-journey-stats\">\n <div className=\"eco-journey-stat\">\n <span className=\"eco-journey-stat-value\">{stats.entered || 0}</span>\n <span className=\"eco-journey-stat-label\">{t('entered')}</span>\n </div>\n <div className=\"eco-journey-stat\">\n <span className=\"eco-journey-stat-value\">{stats.active || 0}</span>\n <span className=\"eco-journey-stat-label\">{t('active')}</span>\n </div>\n <div className=\"eco-journey-stat\">\n <span className=\"eco-journey-stat-value\">{stats.completed || 0}</span>\n <span className=\"eco-journey-stat-label\">{t('completed')}</span>\n </div>\n <div className=\"eco-journey-stat\">\n <span className=\"eco-journey-stat-value\">\n {((stats.conversion_rate || 0) * 100).toFixed(1)}%\n </span>\n <span className=\"eco-journey-stat-label\">{t('conversionRate')}</span>\n </div>\n </div>\n )}\n\n {/* 操作按钮 */}\n {showActions && (\n <div className=\"eco-journey-actions\" onClick={e => e.stopPropagation()}>\n {isDraft && (\n <button className=\"eco-journey-btn start\" onClick={() => onStart?.(id)}>\n {t('start')}\n </button>\n )}\n {isActive && (\n <button className=\"eco-journey-btn pause\" onClick={() => onPause?.(id)}>\n {t('pause')}\n </button>\n )}\n {isPaused && (\n <>\n <button className=\"eco-journey-btn resume\" onClick={() => onStart?.(id)}>\n {t('resume')}\n </button>\n <button className=\"eco-journey-btn stop\" onClick={() => onStop?.(id)}>\n {t('stop')}\n </button>\n </>\n )}\n </div>\n )}\n </div>\n );\n}\n\n/**\n * JourneyNode 组件 - 单个节点\n */\nexport function JourneyNode({\n node,\n selected = false,\n onClick,\n onDelete,\n}) {\n const { type, data } = node;\n const icon = actionIcons[type] || '📦';\n\n return (\n <div\n className={`eco-journey-node ${type} ${selected ? 'selected' : ''}`}\n onClick={() => onClick?.(node)}\n >\n <div className=\"eco-journey-node-icon\">{icon}</div>\n <div className=\"eco-journey-node-content\">\n <span className=\"eco-journey-node-type\">{t(type)}</span>\n {data?.name && <span className=\"eco-journey-node-name\">{data.name}</span>}\n </div>\n {onDelete && (\n <button\n className=\"eco-journey-node-delete\"\n onClick={(e) => {\n e.stopPropagation();\n onDelete(node.id);\n }}\n >\n ×\n </button>\n )}\n </div>\n );\n}\n\n/**\n * TriggerSelector 组件 - 触发器选择\n */\nexport function TriggerSelector({ value, onChange }) {\n const triggers = [\n { type: TriggerType.EVENT, icon: '⚡', label: t('event') },\n { type: TriggerType.SCHEDULE, icon: '📅', label: t('schedule') },\n { type: TriggerType.SEGMENT, icon: '👥', label: t('segment') },\n { type: TriggerType.MANUAL, icon: '🖱️', label: t('manual') },\n ];\n\n return (\n <div className=\"eco-journey-trigger-selector\">\n {triggers.map(trigger => (\n <div\n key={trigger.type}\n className={`eco-journey-trigger-option ${value === trigger.type ? 'active' : ''}`}\n onClick={() => onChange?.(trigger.type)}\n >\n <span className=\"eco-journey-trigger-icon\">{trigger.icon}</span>\n <span className=\"eco-journey-trigger-label\">{trigger.label}</span>\n </div>\n ))}\n </div>\n );\n}\n\n/**\n * ActionSelector 组件 - 动作选择\n */\nexport function ActionSelector({ onSelect }) {\n const actions = [\n { type: ActionType.SEND_EMAIL, icon: '📧', label: t('sendEmail') },\n { type: ActionType.SEND_SMS, icon: '📱', label: t('sendSMS') },\n { type: ActionType.SEND_PUSH, icon: '🔔', label: t('sendPush') },\n { type: ActionType.SEND_NOTIFICATION, icon: '💬', label: t('sendNotification') },\n { type: ActionType.WAIT, icon: '⏱️', label: t('wait') },\n { type: ActionType.CONDITION, icon: '🔀', label: t('condition') },\n { type: ActionType.ADD_TAG, icon: '🏷️', label: t('addTag') },\n { type: ActionType.WEBHOOK, icon: '🔗', label: t('webhook') },\n ];\n\n return (\n <div className=\"eco-journey-action-selector\">\n {actions.map(action => (\n <div\n key={action.type}\n className=\"eco-journey-action-option\"\n onClick={() => onSelect?.(action.type)}\n >\n <span className=\"eco-journey-action-icon\">{action.icon}</span>\n <span className=\"eco-journey-action-label\">{action.label}</span>\n </div>\n ))}\n </div>\n );\n}\n\n/**\n * JourneyList 组件\n */\nexport function JourneyList({\n journeys = [],\n loading = false,\n onJourneyClick,\n onStart,\n onPause,\n onStop,\n}) {\n if (loading && journeys.length === 0) {\n return <div className=\"eco-journey-loading\">加载中...</div>;\n }\n\n if (journeys.length === 0) {\n return <div className=\"eco-journey-empty\">暂无旅程</div>;\n }\n\n return (\n <div className=\"eco-journey-list\">\n {journeys.map(journey => (\n <JourneyCard\n key={journey.id}\n journey={journey}\n onClick={onJourneyClick}\n onStart={onStart}\n onPause={onPause}\n onStop={onStop}\n />\n ))}\n </div>\n );\n}\n\n","/**\n * @quantabit/journey-sdk\n * Marketing Journey SDK - Full Version\n */\n\n// API Client\nexport { journeyApi, JourneyApiClient } from './services/journeyApi';\n\n// Types\nexport { JourneyStatus, TriggerType, ActionType, WaitType } from './types';\n\n// i18n\nexport { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t } from './i18n';\n\n// React Hooks\nexport { useJourneys, useJourney, useJourneyBuilder } from './hooks/useJourney';\n\n// React Components\nexport {\n JourneyCard,\n JourneyNode,\n TriggerSelector,\n ActionSelector,\n JourneyList,\n} from './components/JourneyBuilder';\n\n// Shortcut Methods\nimport { journeyApi } from './services/journeyApi';\n\nexport const getJourneys = (...args) => journeyApi.getJourneys(...args);\nexport const getJourney = (...args) => journeyApi.getJourney(...args);\nexport const createJourney = (...args) => journeyApi.createJourney(...args);\nexport const updateJourney = (...args) => journeyApi.updateJourney(...args);\nexport const deleteJourney = (...args) => journeyApi.deleteJourney(...args);\nexport const startJourney = (...args) => journeyApi.startJourney(...args);\nexport const pauseJourney = (...args) => journeyApi.pauseJourney(...args);\nexport const stopJourney = (...args) => journeyApi.stopJourney(...args);\nexport const getJourneyStats = (...args) => journeyApi.getJourneyStats(...args);\nexport const getJourneyUsers = (...args) => journeyApi.getJourneyUsers(...args);\n"],"names":["JourneyApiClient","BaseApiClient","constructor","config","getJourneys","params","get","getJourney","journeyId","createJourney","data","post","updateJourney","updates","put","deleteJourney","delete","analyzeJourney","getStepConversion","getDropoffPoints","getPathDistribution","getUserJourneys","userId","getMyJourneys","trackStep","stepId","step_id","getTouchpoints","addTouchpoint","touchpoint","updateTouchpoint","touchpointId","getStats","getTrend","exportReport","options","startJourney","pauseJourney","stopJourney","getJourneyStats","getJourneyUsers","journeyApi","JourneyStatus","DRAFT","ACTIVE","PAUSED","COMPLETED","ARCHIVED","TriggerType","EVENT","SEGMENT","SCHEDULE","API","ActionType","SEND_EMAIL","SEND_SMS","SEND_PUSH","SEND_IN_APP","WEBHOOK","WAIT","CONDITION","SPLIT","UPDATE_PROFILE","ADD_TAG","WaitType","DURATION","UNTIL","SUPPORTED_LANGUAGES","messages","zh","journey","journeys","myJourneys","draft","active","paused","completed","archived","trigger","triggers","event","schedule","segment","manual","action","actions","sendEmail","sendSMS","sendPush","sendNotification","addTag","removeTag","updateProfile","webhook","wait","waitTime","minutes","hours","days","condition","ifThen","abTest","entered","conversionRate","start","pause","resume","stop","duplicate","ja","ko","en","currentLanguage","setLanguage","lang","includes","getLanguage","t","key","useJourneys","setJourneys","useState","loading","setLoading","page","setPage","hasMore","setHasMore","total","setTotal","loadJourneys","useCallback","reset","currentPage","result","pageSize","newJourneys","prev","length","status","loadMore","p","useEffect","refresh","useJourney","setJourney","stats","setStats","saving","setSaving","loadJourney","journeyData","statsData","Promise","all","saveJourney","e","useJourneyBuilder","initialData","nodes","setNodes","edges","setEdges","selectedNode","setSelectedNode","addNode","type","newNode","id","Date","now","position","x","y","updateNode","nodeId","map","node","deleteNode","filter","edge","source","target","addEdge","label","newEdge","deleteEdge","edgeId","exportData","importData","clear","statusColors","actionIcons","SEND_NOTIFICATION","REMOVE_TAG","JourneyCard","onClick","onStart","onPause","onStop","showActions","name","description","statusColor","isActive","isDraft","isPaused","React","createElement","className","style","backgroundColor","color","conversion_rate","toFixed","stopPropagation","Fragment","JourneyNode","selected","onDelete","icon","TriggerSelector","value","onChange","MANUAL","ActionSelector","onSelect","JourneyList","onJourneyClick","args"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "@quantabit/journey-sdk",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "description": "QuantaBit Marketing Journey SDK - User journey automation and multi-channel trigger sequences",
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
+ "keywords": [
40
+ "journey",
41
+ "automation",
42
+ "marketing",
43
+ "workflow",
44
+ "quantabit"
45
+ ],
46
+ "author": "QuantaBit Team",
47
+ "license": "MIT",
48
+ "publishConfig": {
49
+ "access": "public",
50
+ "registry": "https://registry.npmjs.org"
51
+ },
52
+ "dependencies": {
53
+ "@quantabit/sdk-config": "^1.0.6"
54
+ },
55
+ "peerDependencies": {
56
+ "react": ">=17.0.0",
57
+ "react-dom": ">=17.0.0"
58
+ },
59
+ "repository": {
60
+ "type": "git",
61
+ "url": "https://github.com/quantabit-chain/qbit-sdk.git",
62
+ "directory": "packages/journey-sdk"
63
+ },
64
+ "homepage": "https://github.com/quantabit-chain/qbit-sdk/tree/main/packages/journey-sdk#readme",
65
+ "bugs": {
66
+ "url": "https://github.com/quantabit-chain/qbit-sdk/issues"
67
+ },
68
+ "types": "types/index.d.ts",
69
+ "engines": {
70
+ "node": ">=18.0.0"
71
+ },
72
+ "sideEffects": false,
73
+ "qbit": {
74
+ "privacy": {
75
+ "level": "functional",
76
+ "dataCollection": "Feature-related data for personalization. Requires user consent.",
77
+ "gdprCompliant": true,
78
+ "ccpaCompliant": true
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @quantabit/journey-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 UseJourneysReturn {
12
+ data: any;
13
+ loading: boolean;
14
+ error: string | null;
15
+ [key: string]: any;
16
+ }
17
+
18
+ export declare function useJourneys(...args: any[]): UseJourneysReturn;
19
+
20
+ export interface UseJourneyReturn {
21
+ data: any;
22
+ loading: boolean;
23
+ error: string | null;
24
+ [key: string]: any;
25
+ }
26
+
27
+ export declare function useJourney(...args: any[]): UseJourneyReturn;
28
+
29
+ export interface UseJourneyBuilderReturn {
30
+ data: any;
31
+ loading: boolean;
32
+ error: string | null;
33
+ [key: string]: any;
34
+ }
35
+
36
+ export declare function useJourneyBuilder(...args: any[]): UseJourneyBuilderReturn;
37
+
38
+ // ============ Services ============
39
+
40
+ export declare const journeyApi: any;
41
+
42
+ export declare class JourneyApiClient {
43
+ constructor(config?: Record<string, any>);
44
+ setToken(token: string): void;
45
+ setBaseUrl(url: string): void;
46
+ destroy(): void;
47
+ }
48
+
49
+ // ============ Types & Enums ============
50
+
51
+ export declare const JourneyStatus: Record<string, string>;
52
+ export declare const TriggerType: Record<string, string>;
53
+ export declare const ActionType: Record<string, string>;
54
+ export declare const WaitType: Record<string, string>;
55
+
56
+ // ============ Functions & Utilities ============
57
+
58
+ export declare const messages: Record<string, Record<string, string>>;
59
+ export declare const SUPPORTED_LANGUAGES: string[];
60
+ export declare function setLanguage(lang: string): void;
61
+ export declare function getLanguage(): string;
62
+ export declare function t(key: string, params?: Record<string, any>): string;
63
+ export declare function getJourneys(...args: any[]): any;
64
+ export declare function getJourney(...args: any[]): any;
65
+ export declare function createJourney(...args: any[]): any;
66
+ export declare function updateJourney(...args: any[]): any;
67
+ export declare function deleteJourney(...args: any[]): any;
68
+ export declare function startJourney(...args: any[]): any;
69
+ export declare function pauseJourney(...args: any[]): any;
70
+ export declare function stopJourney(...args: any[]): any;
71
+ export declare function getJourneyStats(...args: any[]): any;
72
+ export declare function getJourneyUsers(...args: any[]): any;
73
+