XuqmGroup
0431b3d694
fix: 所有包添加 files=[src],排除 tsconfig.json 等开发文件不发布到 npm
2026-06-16 13:22:54 +08:00
XuqmGroup
f727478e53
fix(jenkins): SNAPSHOT 模式自动递增 alpha 版本号(查询 registry 最新 alpha 后 +1)
2026-06-16 13:18:43 +08:00
XuqmGroup
e5130c4627
chore: 版本号恢复为 base(Jenkins 发版时自动处理 SNAPSHOT/Release 后缀)
2026-06-16 13:14:46 +08:00
XuqmGroup
4e80b0bf4e
fix: rn-log ErrorCapture 类型修复 + 依赖版本对齐
...
- ErrorCapture.ts: global → globalThis,移除 declare global 冲突
- index.ts: 移除不存在的 UpdateDownloadProgress 导出
- 各 package.json 版本号对齐
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-16 13:10:16 +08:00
XuqmGroup
b2058840bc
feat(rn-log): 添加 metro plugin 存根 — withXuqmLog
...
打 Release 包时自动包裹 Metro config,后续补全 SourceMap 上传逻辑。
2026-06-16 12:20:04 +08:00
XuqmGroup
4c3019edab
docs: 添加 CLAUDE.md + 各 package README + 架构总览 + 模块待开发说明
...
Agent 8 文档生成:
- CLAUDE.md 项目上下文
- 各 package README (common/update/push/im/xwebview/license/log)
- docs/架构总览.md
- docs/模块待开发说明.md
2026-06-16 12:14:52 +08:00
XuqmGroup
16750b0421
feat: rn-update 进度回调 + rn-xwebview JSBridge + rn-log v0.1.0 新建
...
Agent 3 — rn-update:
- downloadPlugin/downloadApk 新增 onProgress 进度回调
- checkAppUpdate/checkPluginUpdate 版本缓存(30分钟 TTL)
- 新增 UpdateDownloadProgress 类型导出
Agent 3 — rn-xwebview:
- XWebViewBridge 补全标准 JSBridge handler
- getDeviceInfo/getToken/getUserInfo/openNativePage/closeWebView/showToast
Agent 4 — rn-log v0.1.0:
- XLog 主入口:event/captureError/warn/info/startCapture
- LogQueue:AsyncStorage 本地队列 + 批量上报
- ErrorCapture:JS global error + unhandledRejection
- FunnelTracker:漏斗分析
- fingerprint:SHA-256 指纹去重
- HttpInterceptor:rn-common HTTP 错误自动上报
- NativeLogReporter:TurboModule spec
2026-06-16 12:10:28 +08:00
XuqmGroup
97d4d9498a
feat(rn-common): v0.4.0 — api/ui 子模块 + config 扩展 + autoInit 修复
...
- 新增 api/ 子模块:useRequest、useApi、usePageApi(替换 @szyx-mobile)
- 新增 ui/ 子模块:showToast、showAlert、showConfirm、configureToast
- 新增 globalErrorHandler:setGlobalApiErrorHandler
- config.ts 新增 logApiUrl、logEnabled 字段
- device.ts 新增 manufacturer、vendorVersion 可选字段
- autoInit.ts 修复静默降级,__DEV__ 模式下 re-throw
- index.ts 补全 api/ui 导出
- package.json 版本升至 0.4.0,新增 axios/react/zod 依赖
2026-06-16 12:01:44 +08:00
XuqmGroup
9870a0a368
ci: 修复 Jenkinsfile — Type Check 和 Publish 阶段补充 log 包路径
...
SNAPSHOT 和正式发布时 MOD_LOG 勾选后 packages/log 不会被跳过
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 11:27:31 +08:00
XuqmGroup
10454b4152
ci: Jenkinsfile支持SNAPSHOT/alpha发布模式 + 新增rn-log模块支持
...
- 新增SNAPSHOT参数:勾选=发布alpha tag(不commit版本);不勾选=正式Release
- 模块列表新增MOD_LOG(@xuqm/rn-log)
- packages/log目录不存在时跳过typecheck和publish(Agent 4新建后自动生效)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 11:13:27 +08:00
XuqmGroup
1057d785e1
docs: 添加CLAUDE.md项目上下文
...
涵盖:包结构、核心API、技术约束、代码冻结模块说明、任务文档索引
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 11:05:53 +08:00
XuqmGroup
9ba90eaf6e
docs: 重写 SDK-API参考.md 以对齐 v0.4.0 新接口
...
完整覆盖:XuqmSDK 初始化两种方式(含配置文件解密流程)、setUserInfo 认证枢纽;
PushSDK 只暴露 setOfflinePushEnabled/setQuietHours/clearQuietHours/logout;
UpdateSDK registerPlugins/updatePlugin/downloadAndInstallApk/setBundleCallbacks;
ImSDK refreshToken 和订阅机制;LicenseSDK 无需初始化。
标注所有已移除 API 和替代方案。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 11:01:27 +08:00
XuqmGroup
b1e8e307d2
feat(sdk): 按跨平台规范重构所有 SDK 包接口
...
- common: setUserInfo 成为认证枢纽,分发订阅者;移除 init()/initializeFromLicense();
initWithConfigFile 解密后调用 initialize() 拉取远程服务配置;XuqmConfig 增加服务开通标志
- push: 移除独立 initialize/registerToken/unregisterToken 等方法;
改由 _registerUserInfoHandler 订阅,setUserInfo 时自动完成厂商检测+设备注册+token上报
- im: 新增 refreshToken();注册 setUserInfo 订阅,自动登录/断连;移除对 PushSDK 的直接调用
- update: 支持 registerPlugins(批量) + registerPlugin(向后兼容);
版本号自动从 AsyncStorage 读取,移除 version 字段;新增 updatePlugin(一步完成)、
downloadAndInstallApk、setBundleCallbacks 注入宿主写入/重载能力
- license: 移除独立 initialize/initializeFromFile;依赖 getConfig() 获取 appKey/licenseUrl
- 顶层 src/sdk.ts: 移除旧 login/logout 包装层,直接重导出 CommonXuqmSDK
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 10:57:55 +08:00
XuqmGroup
bed221f536
docs: SDK设计规范 迁移到 XuqmGroup-Docs,此文件改为指针
...
权威来源:XuqmGroup-Docs/design/06-sdk-cross-platform-spec.md
RN SDK 实现遵循跨平台规范,不在此独立维护设计决策。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 10:40:31 +08:00
XuqmGroup
8fb59bb5f2
fix(common): platformUrl 可选,不传使用默认公有平台
...
XuqmInitOptions.platformUrl 改为可选字段。
initialize() 内部:platformUrl ?? DEFAULT_TENANT_PLATFORM_URL。
公有云用户无需传 platformUrl,私有化部署传自有平台地址。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 10:37:57 +08:00
XuqmGroup
d86cab56b3
docs: add SDK设计规范.md — 全平台 SDK 架构需求文档
...
涵盖:
- XuqmSDK 仅两种初始化方式(配置文件自动/手动 initialize),移除 initializeFromLicense 和 init()
- setUserInfo 作为全局用户认证枢纽,一次调用自动同步 Push/IM/License/Update
- PushSDK 无需独立初始化,由 setUserInfo 触发全自动设备注册
- ImSDK login 通过 setUserInfo.userSig 驱动;新增 refreshToken
- UpdateSDK:批量注册插件、版本号自动获取、Android APK 直接安装、两步插件更新 API
- LicenseSDK:无独立初始化,依赖 XuqmSDK 公共上下文
- 全平台通用要求:RN/Android/iOS/Flutter/HarmonyOS/小程序/Vue3/Server SDK
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 10:32:09 +08:00
XuqmGroup
90ba1f9de3
fix(common): XuqmSDK.initialize() must not fall back to defaults on failure
...
Remove the silent fallback that used DEFAULT_TENANT_PLATFORM_URL on fetch errors.
Failure now propagates: rejects awaitInitialization() callers and throws to the
caller of initialize(). State is reset so initialize() can be retried.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 10:04:37 +08:00
XuqmGroup
07b08a4f5a
feat: T-B01~B04 — XuqmBundleModule + onProgress + JSBridge/厂商文档
...
T-B01: XuqmBundleModule 原生模块
- Android: XuqmBundleModule.java(文件读写/manifest/路径)
- iOS: XuqmBundleModule.m(对应实现)
- JS: NativeBundle.ts 封装
- 注册到 XuqmUpdatePackage
T-B02: downloadPluginBundle 添加 onProgress
- 使用 ReadableStream 实现下载进度追踪
- checkAndCachePlugin 同步支持 onProgress
T-B03: XWebView JSBridge 标准接口文档
- docs/XWebView-JSBridge.md
- H5→RN 消息协议 / RN→H5 通信
- 下载处理 / Dialog 覆盖 / 标准 Bridge 接口
T-B04: PushSDK Android 厂商集成文档
- docs/PushSDK-厂商集成.md
- 6 厂商配置步骤 / ProGuard 规则 / 调试指南
2026-06-15 02:36:11 +08:00
XuqmGroup
ab30b28f3d
feat: v0.3.0 — 自动初始化 + 插件更新 + 脚手架工具
...
common:
- 新增 autoInit.ts 自动初始化(对齐 Android ContentProvider 模式)
- 新增 configCrypto.ts 内置配置文件解密
- XuqmSDK 新增 initWithConfigFile / setUserInfo / getUserInfo
- 新增 crypto-types.d.ts Web Crypto 类型声明
update:
- 重写 UpdateSDK:checkAppUpdate / checkPluginUpdate / checkAndCachePlugin
- 移除 checkAndPromptAppUpdate(SDK 不做 UI)
- 新增插件脚手架 create-plugin.mjs
- 重命名 RnUpdateInfo → PluginUpdateInfo
license:
- crypto.ts 支持 XUQM-CONFIG-V1 + XUQM-LICENSE-V1 双格式
- 新增 decryptConfigFile 导出
docs:
- 重写 README.md
- 新增 docs/SDK-API参考.md
- 新增 docs/插件脚手架.md
- 新增 docs/配置文件规范.md
2026-06-15 01:44:20 +08:00
XuqmGroup
af3aa0cd43
feat(update): 添加 API Key 管理和 WebSocket 实时通知功能
...
- 新增 API Key 管理功能,支持外部工具认证调用平台 API
- 实现 WebSocket 实时通知,版本发布时推送轻量通知给客户端
- 添加 APK 文件哈希校验,支持已下载检测和直接安装
- 支持外部 APK 上传使用 API Key 认证
- 优化私有化部署自动注入 nginx WebSocket 代理配置
- 扩展 SDK 功能包括已下载检测、直接安装和实时通知监听
2026-06-11 12:25:16 +08:00
XuqmGroup
5b8528b7af
fix(ci): 模块复选框默认不勾选,需手动选择
2026-05-23 01:36:43 +08:00
XuqmGroup
84a04d0169
refactor(ci): 移除自定义版本号功能,仅保留自动升级
2026-05-23 01:34:58 +08:00
XuqmGroup
ca73202b7d
feat(ci): 模块选择改为复选框,每个模块独立勾选
2026-05-23 01:28:42 +08:00
XuqmGroup
174555fa53
fix(ci): 修复 choice 参数语法,使用 choices 数组
2026-05-23 01:25:12 +08:00
XuqmGroup
391ac3a915
chore(ci): 更新 Jenkins 配置以支持多模块版本管理
...
- 为 Android、Flutter、iOS 和 RN SDK 的 Jenkinsfile 添加模块化版本控制
- 引入版本升级策略选择(major/minor/patch)和自定义版本号功能
- 实现多模块独立版本管理和选择性构建发布
- 更新 iOS SDK Package.swift 以支持独立模块化库
- 修改 iOS SDK podspec 文件以适应新的标签命名约定
- 优化 Jenkins 构建流程以支持按需选择特定模块进行构建和发布
- 修复 iOS 测试中的可选类型转换问题以提高代码健壮性
2026-05-23 01:20:58 +08:00
XuqmGroup
ce9062a0f1
sdk: auto-init from license file, promise-based init waiting
...
- common/sdk: add awaitInitialization(), initializeFromLicense(), markInitialized()
- license: await XuqmSDK init before checkLicense
- update: await XuqmSDK init before checkAppUpdate
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 17:57:01 +08:00
XuqmGroup
c0c458817a
docs(deploy): 移除 Jenkins 配置和 Android Demo 计划文档
...
- 删除 jenkins-setup.md 完整的 Jenkins 服务配置指南
- 更新 README.md 部署文档标题为公有化部署文档
- 添加私有化部署说明章节和相关设计文档链接
- 从 REST API 设计文档中移除 demo-service 相关描述
- 更新推送架构图中业务服务端描述为客户端服务器
- 删除 android-demo-plan.md Android Demo 开发计划文档
- 删除 multi-platform-im-roadmap.md 多平台 IM 路线图文档
- 删除 java-im-server-sdk-plan.md Java IM 服务端 SDK 计划文档
2026-05-18 17:57:05 +08:00
XuqmGroup
09175c4612
fix: use scalar Set-Content with [char]10 newline for two-line .npmrc to avoid BOM and array issues
2026-05-16 12:41:43 +08:00
XuqmGroup
191d742591
fix: generate npm auth via PowerShell to bypass Jenkins Groovy sandbox
2026-05-16 12:25:32 +08:00
XuqmGroup
987e4f5952
fix: use string concat for npm auth to avoid Jenkins sandbox GString.getBytes restriction
2026-05-16 12:19:14 +08:00
XuqmGroup
44df386935
ci: remove all params, always run all stages, lock to main
2026-05-16 11:53:11 +08:00
XuqmGroup
748def7fb1
fix: set up Nexus auth before npm install, use npm install over npm ci
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 11:49:32 +08:00
XuqmGroup
b04742fb9c
feat(license): add @xuqm/rn-license package
...
Implements device authorization for React Native:
- AES-256-GCM + PBKDF2 decryption via react-native-quick-crypto (lazy loaded)
- AsyncStorage persistence with @xuqm:license:* keys
- 10-minute in-memory + persistent cache with offline fallback
- LicenseResult discriminated union type
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 02:25:38 +08:00
XuqmGroup
dfb95dc9e0
fix: split npm publish commands into separate bat steps
2026-05-14 19:26:36 +08:00
XuqmGroup
19deb4f00c
fix: remove withCredentials wrapper for npm publish
2026-05-14 19:21:37 +08:00
XuqmGroup
7aebf47ce4
chore: bump version to 0.2.2
2026-05-14 19:21:21 +08:00
XuqmGroup
85471505a9
fix: add --verbose to npm publish for debugging
2026-05-14 19:13:32 +08:00
XuqmGroup
b35fb46726
fix: use ACR_PASSWORD credential and remove branch condition
2026-05-14 18:50:28 +08:00
c59adf7f81
fix: clean bat returnStdout, fix publish condition, add IMAGE_TAG param
2026-05-14 18:16:11 +08:00
4731a0f7bd
fix: restore shim paths in xwebview tsconfig to fix async-storage type resolution
2026-05-14 18:14:16 +08:00
XuqmGroup
6229f1bb2b
fix: add async-storage to devDependencies for typecheck
2026-05-14 17:40:03 +08:00
XuqmGroup
bb4cd9ac29
fix: add missing @react-native-async-storage/async-storage devDependency to xwebview
...
修复 Jenkins 构建失败:xwebview 类型检查通过 paths 解析 common 包源码时,
缺少 @react-native-async-storage/async-storage 依赖导致 TS2307 错误
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 17:34:59 +08:00
XuqmGroup
95b19c27b3
fix: add type annotation for permission request parameter
...
修复 Jenkins 构建失败:XWebViewView.tsx:364 参数 request 隐式为 any 类型导致的 TypeScript 类型检查错误
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 17:31:11 +08:00
XuqmGroup
6d7cd0be6c
fix: add missing dev dependencies for xwebview types
2026-05-14 16:53:22 +08:00
XuqmGroup
947b1cd321
fix: update package-lock.json to sync with package.json
2026-05-14 16:37:06 +08:00
XuqmGroup
2f72e7a0f2
fix: update Jenkinsfile for Windows compatibility and xuqmGroup org
2026-05-14 16:27:49 +08:00
XuqmGroup
d45c756473
docs(android-sdk): 添加 Android SDK 完整文档与模块配置
...
- 新增 Android SDK 主文档,包含模块结构、集成方式、快速开始指南
- 添加 sdk-core、sdk-im、sdk-push、sdk-update、sdk-webview 各模块详细说明
- 配置各模块的 build.gradle.kts 文件,设置依赖和发布选项
- 更新 gradle.properties 版本配置和编译参数
- 重构 XWebViewView 组件,增加相机权限、文件选择、下载拦截功能
- 添加 XWebViewTypes.kt 定义配置类和控制器接口
- 集成 Flutter WebView 桥接代码,实现跨平台功能对齐
2026-05-11 15:21:54 +08:00
XuqmGroup
fb6ee4d9a5
docs(deploy): 添加完整的部署文档和配置示例
...
- 新增 compose.production.yaml 和 compose.production.server.yaml 部署配置
- 添加 nginx.dev.xuqinmin.com.conf 和 nginx.sentry.xuqinmin.com.conf 反向代理配置
- 创建详细的部署指南文档 deploy/README.md,涵盖架构设计和部署步骤
- 添加前端访问文档 web/README.md,包含线上地址和接口说明
- 补充平台文档总览 README.md,整合各模块文档入口
- 配置多服务容器化部署,包括 tenant-service、im-service、push-service 等
- 设置外部数据库和 Redis 连接配置,确保服务间正确通信
- 配置 WebSocket 和 API 路由转发规则,支持实时通信和版本更新服务
2026-05-09 14:53:42 +08:00
XuqmGroup
005860814d
docs(deploy): 添加部署文档和安全设计规范
...
- 新增 XuqmGroup 部署文档,包含部署方案、架构建议和部署步骤
- 添加安全设计规范,涵盖密码安全、AppSecret验证和服务端API认证
- 补充平台REST API规范,定义Server-to-Server调用接口和错误码
- 创建Java IM服务端SDK计划文档,规划Maven包发布和接口实现
2026-05-08 18:32:00 +08:00
XuqmGroup
09d42fa94f
feat(update): 添加应用更新检查功能支持用户ID参数
...
- 在UpdateApi接口中新增可选的userId查询参数
- 新增UpdateSDK对象用于统一管理应用更新逻辑
- 实现应用版本检查、下载安装和APK文件处理功能
- 添加下载URL规范化处理逻辑
- 在Flutter SDK中新增update模块实现跨平台更新功能
- 在iOS SDK中新增UpdateSDK类提供应用更新检查接口
- 支持Android和iOS平台的应用商店跳转功能
- 添加React Native SDK的更新检查和插件注册功能
- 实现RN Bundle的检查、下载和缓存机制
2026-05-08 12:00:34 +08:00