@cloudbase/js-sdk
Version:
cloudbase javascript sdk
336 lines (235 loc) • 13.9 kB
Markdown
# 更新日志
## [3.6.4] 2026-07-24
- [Fixed] 自定义登录场景下用户通过 `init({ env, auth: { credentials } })` 传入的私钥无法被 `createTicket` 读取的问题:`getSecretInfo()` 此前仅从顶层 `config.credentials` 读取,现同时兼容 `config.auth.credentials`(js-sdk 风格)与顶层 `credentials`(node-sdk 风格)两种传法
- [Fixed] `dealNodeAdapterConfig()` 回填 `config.auth.credentials` 时会被空值覆盖的问题,改为保留用户显式传入的 `credentials`;并修正其兜底值类型(`ICredentialsInfo` 对象,无有效值时为 `undefined`,不再用空字符串)
## [3.6.3] 2026-07-17
- [Changed] `timeout` 默认值区分运行环境:Node.js 环境(云函数/云托管/自建服务器)默认不设置超时(不限制),以适配服务端长耗时请求;Web 等非 Node.js 环境仍默认 15000ms。显式传入 `timeout` 时以传入值为准
- [Changed] `NodeRequest` 未设置 `timeout` 时不再施加超时中断(`download` 及 `createAbortController` 均按需启用超时),仅在显式传入 `timeout` 时启用
- [Changed] Auth `updateUser` 不再支持修改密码:传入 `password` / `new_password` 参数将抛出错误,请改用 `resetPasswordForOld`(旧密码修改)、`resetPasswordForEmail`(验证码重置)或 `reauthenticate`(重新认证后改密)
- [Changed] `UpdateUserReq` 类型从基础请求中剔除 `password` / `new_password` 字段(标记为 `never`)
## [3.6.2] 2026-06-29
- [Fixed] `getSecretInfo()` 中顶层 secretId/secretKey 场景下 `sessionToken` 错误地从环境变量 `TENCENTCLOUD_SESSIONTOKEN` 取值,修正为从 config 顶层 `sessionToken` 字段取值
- [Fixed] `getSecretInfo()` 中 `config.auth` 场景下 `sessionToken` 错误地从环境变量取值,修正为从 `config.auth.sessionToken` 取值
- [Fixed] `NodeRequest` V3 签名时 `secretId`/`secretKey`/`sessionToken` 取值逻辑修正为同时支持顶层配置和 `config.auth` 配置(`config.auth` 优先级更高)
## [3.6.1] 2026-06-29
- [Fixed] AI 模块:优先使用原生 Web Streams API(Node.js >= 18 / 现代浏览器),避免 `web-streams-polyfill` 在高版本环境中的兼容问题
- [Fixed] 浏览器端 webpack 构建增加 `resolve.fallback: { crypto: false }`,避免引入 Node.js `crypto` 模块的 polyfill
- [Changed] `@cloudbase/database` 依赖 `bson` 版本从 `^7.1.1` 降级为 `^6.10.3`
- [Changed] `@cloudbase/mysql` 及 `database` 的 `typescript` devDependency 升级至 `^5.0.0`
- [Changed] `@cloudbase/mysql` tsconfig.esm.json 补充 `moduleResolution: "node"`
## [3.6.0] 2026-06-29
- [Fixed] 修复 Node 端构建时 `webpack.DefinePlugin` 将 `process.env` 整体替换为静态对象,导致运行时无法读取 `TENCENTCLOUD_SECRETID`、`TENCENTCLOUD_SECRETKEY`、`SCF_NAMESPACE` 等环境变量的问题
- [Fixed] `getSecretInfo()` 改为从 `getCloudbaseContext()` 统一取值(而非直接 `getEnv()`),确保 context 中的环境变量优先级正确
- [Fixed] `getCloudbaseContext()` 新增 `CLOUDBASE_APIKEY` 环境变量的采集
- [Fixed] AI 模块:Node.js 适配器非流式场景下 `responseData` 已是 JSON 对象时,跳过 ReadableStream 解析直接返回结果
## [3.5.4] 2026-06-25
- [Fixed] 修复 Node.js ESM 环境下初始化时 `getWxDefaultAdapter` 返回空对象导致 `useAdapters` 调用 `isMatch()` 报 `TypeError: i is not a function` 的问题
- [Fixed] 修复 GATEWAY 模式下文档型数据库集合查询时,后端返回数据缺少 `list` 字段导致 `formatResDocumentData` 报 `TypeError: Cannot read properties of undefined (reading 'map')` 的问题
## [3.5.3] 2026-06-25
- [Added] App 实例新增 `registerHost(host, protocol?)` 方法,一次性设置所有端点(CLOUD_API / GATEWAY),只需传入 host 地址自动拼接路径
- [Added] `cloudbase.app.App` 类型声明补充 `registerHost`、`getEndPointWithKey`、`registerEndPoint`、`registerEndPointWithKey`、`parseCaptcha` 实例方法
- [Added] `ai(options?)` 支持传入 `baseUrl` 参数自定义 AI 服务地址
- [Fixed] AI 模块支持 `registerEndPointWithKey` 后端点动态变更自动生效(`aiBaseUrl` / `aiBotBaseUrl` 改为动态 getter)
- [Fixed] MySQL/RDB 模块支持端点动态变更,`registerEndPointWithKey` 后新请求自动使用最新 GATEWAY 地址
- [Fixed] Auth/OAuth 模块支持端点动态变更,`registerEndPointWithKey` 后认证请求自动跟随最新 apiOrigin
## [3.5.2] 2026-06-24
- [Fixed] 修复 Node 服务端(secretId/secretKey 认证)场景下,`CloudbaseRequest.fetch` 因无 `oauthInstance` 导致请求失败的问题,使 RDB 等模块能正确通过底层 `NodeRequest` 的 V3 签名自动换取 access_token
## [3.5.1] 2026-06-23
- [Added] Auth 模块新增 `AuthErrorCode` 数字错误码枚举及 `AuthError.errorCode`、`retryAfter` 属性
- [Added] `AuthErrorCategory` 新增 `RATE_LIMITED`、`CAPTCHA_REQUIRED`、`CAPTCHA_INVALID`、`MFA_REQUIRED`、`PRECONDITION_FAILED`、`VERIFICATION_FAILED` 分类
- [Fixed] Auth `updateUser` 中 `verifyOtp` 校验失败时正确返回错误;仅在实际修改时触发 `USER_UPDATED` 事件
- [Fixed] 验证码发送补充 `target: 'USER'` 参数;修复 abort 监听器泄漏、容错解析非 JSON 响应体
## [3.5.0] 2026-06-23
- [Added] Storage 模块新增 Neo 环境对象存储能力,`app.storage.from(bucketId)` 返回全新对象存储客户端(上传/下载/删除/移动/复制/签名 URL 等)
- [Added] `app.storage` 新增 Bucket 管理 API:`listBuckets` / `getBucket` / `createBucket` / `updateBucket` / `deleteBucket`
- [Changed] `app.storage.from()` 无参仍返回 `ClassicStorageFileApi`(行为不变);传入 `bucketId` 返回 Neo 对象存储客户端
- [Deprecated] 传统顶层云存储 API(`uploadFile` / `downloadFile` / `deleteFile` 等)标记为废弃,推荐改用 `app.storage.from(bucketId)` 新 API
## [3.4.8] 2026-06-16
- [Fixed] 修复 `getUser` 和 `getSession` 在无凭证或 `accessKey` 模式下返回 `user` 统一返回 `null`
## [3.4.7] 2026-06-16
- [Fixed] Auth 模块 `verifyOtp` 的 `token` 参数兼容 `number` 和 `string` 类型
## [3.4.6] 2026-06-12
- [Refactor] 重构 Node.js adapter 层,整合微信云开发相关请求逻辑(callWxOpenApi / callWxPayApi / callCompatibleWxOpenApi / wxCallContainerApi)
- [Fixed] 修复微信云开发 form-data 请求返回值格式与旧版不一致的问题,正确返回 Buffer 类型响应
- [Changed] request 模块新增 responseType: 'buffer' 支持,兼容二进制响应场景
## [3.4.5] 2026-06-10
- [Fixed] 服务端 body 为 stream 时设置 duplex: 'half'
## [3.4.4] 2026-06-10
- [Fixed] 服务端增加 `bson` 依赖
## [3.4.3] 2026-06-10
- [Fixed] 修复 Node.js 环境下调用 downloadFile 报 `window is not defined` 的问题
## [3.4.2] 2026-06-10
- [Fixed] 修复 bundledDependencies 子包版本号导致 yarn install 时从 registry 查找失败的问题
## [3.4.1] 2026-06-10
- [Fixed] 修复 database 模块文档查询相关问题
## [3.4.0] 2026-06-09
- [Changed] 移除 analytics 模块,不再随主包发布
- [Changed] 子模块随主包一起发布,不再单独进行模块独立版本更新
- [Added] 支持 sub-path exports 按需引入(如 `@cloudbase/js-sdk/auth`)
## [3.3.13] 2026-05-29
- [Fixed] 修复云函数相关问题
## [3.3.12] 2026-05-28
- [Fixed] 适配 v1/user/me 接口返回字段变化,hasPassword 改用 password === 'SET' 判断
## [3.3.11] 2026-05-26
- [Fixed] 修复 _getCredentials 中 credentials 为空时访问 scope 属性报错的问题
## [3.3.10] 2026-05-19
- [Changed] fetch 请求支持 withCredentials 参数控制是否携带鉴权信息
## [3.3.9] 2026-05-08
- [Changed] endPointMode 默认值更新为 GATEWAY
## [3.3.8] 2026-05-07
- [Added] getUser 支持从 providers 中匹配当前小程序 appId 对应的 open_id
## [3.3.7] 2026-05-06
- [Fixed] getUser 返回用户信息支持 open_id 字段
## [3.3.6] 2026-04-30
- [Added] 文档型数据库支持批量新增数据
## [3.3.5] 2026-04-29
- [Added] 添加类型定义
## [3.3.4] 2026-04-21
- [Added] database where条件支持事务
## [3.3.3] 2026-04-17
- [Fixed] signUp 修复 phone_number 为空时格式化报错的问题
## [3.3.2] 2026-04-13
- [Changed] getUser/getCurrentUser 支持 isRefresh 参数控制是否发请求获取最新用户信息,默认每次请求最新数据
## [3.3.1] 2026-04-13
- [Added] getUser 支持读缓存和读接口数据可选
## [3.3.0] 2026-04-08
- [Added] database 支持 http api
## [3.2.2] 2026-04-02
- [Added] signInWithOtp 支持 emailRedirectTo
## [3.2.1] 2026-03-24
- [Added] 增加帮助信息
## [3.2.0] 2026-03-23
- [Added] 小程序手机号授权支持服务商类型小程序
## [3.1.12] 2026-03-16
- [Fixed] node 模式下请求参数增加 envName
## [3.1.11] 2026-03-16
- [Fixed] node 模式下 v3 签名兼容 headers 为空场景
## [3.1.9] 2026-03-13
- [Added] 增强类型声明以及错误提示
## [3.1.8] 2026-03-12
- [Fixed] 增加 storage 类型定义
## [3.1.7] 2026-03-12
- [Fixed] getVerification 增加 phone_number 参数格式化
## [3.1.6] 2026-03-12
- [Added] signInWithOtp 增加可选参数 options.shouldCreateUser 控制是否自动注册用户
## [3.1.5] 2026-03-11
- [Changed] 完善 database 类型定义
- [Added] 异常时增加 requestId 返回
## [3.1.4] 2026-03-11
- [Fixed] verifyOAuth 返回预设重定向地址
## [3.1.3] 2026-03-10
- [Fixed] verifyOAuth 兼容 hash 地址
## [3.1.2] 2026-03-06
- [Fixed] 修复 HBuilderX 找不到 SourceMap 问题
## [3.1.1] 2026-03-03
- [Changed] 更新微信小程序端adapter
## [3.1.0] 2026-03-03
- [Fixed] 兼容多端
## [3.0.6] 2026-03-03
- [Fixed] 修复 Node.js 端签名问题
## [3.0.5] 2026-03-01
- [Added] Node.js 端支持 SecretId 和 SecretKey
## [3.0.4] 2026-02-27
- [Added] 支持 Node.js 端
## [3.0.3] 2026-02-26
- [Fixed] 修复用户信息nickName获取问题
## [3.0.2] 2026-02-12
- [Fixed] 修复用户信息role获取问题
## [3.0.0] 2026-02-10
- [Changed] endPointMode 默认启用 GATEWAY 模式
## [2.28.4] 2026-05-06
- [Fixed] getUser 返回用户信息支持 open_id 字段
## [2.28.3] 2026-04-30
- [Added] 文档型数据库支持批量新增数据
## [2.28.2] 2026-04-29
- [Added] 类型定义
## [2.28.1] 2026-04-23
- [Added] 海外支持
## [2.27.5] 2026-04-21
- [Added] database where条件支持事务
## [2.27.4] 2026-04-17
- [Fixed] signUp 修复 phone_number 为空时格式化报错的问题
## [2.27.3] 2026-04-13
- [Added] getUser 支持读缓存和读接口数据可选
## [2.27.2] 2026-04-02
- [Added] signInWithOtp 支持 emailRedirectTo
## [2.27.1] 2026-03-24
- [Added] 增加帮助信息
## [2.27.0] 2026-03-23
- [Added] 小程序手机号授权支持服务商类型小程序
## [2.26.2] 2026-03-13
- [Added] 增强类型声明以及错误提示
## [2.26.1] 2026-03-12
- [Fixed] getVerification 增加 phone_number 参数格式化
## [2.26.0] 2026-03-12
- [Added] signInWithOtp 增加可选参数 options.shouldCreateUser 控制是否自动注册用户
## [2.25.11] 2026-03-11
- [Fixed] verifyOAuth 返回预设重定向地址
## [2.25.10] 2026-03-10
- [Fixed] verifyOAuth 兼容 hash 地址
## [2.25.9] 2026-03-06
- [Fixed] 修复 HBuilderX 找不到 SourceMap 问题
## [2.25.8] 2026-03-03
- [Changed] 更新微信小程序端adapter
## [2.25.5] 2026-02-04
- [Fixed] 修复用户信息role获取问题
## [2.25.4] 2026-02-04
- [Added] encryptlong 兼容多端
## [2.25.3] 2026-01-28
- [Fixed] GET/HEAD 请求时,将请求体设置为空
- [Fixed] auth\.wsWebSign action 一直走 tcb api 请求
## [2.25.2] 2026-01-26
- [Added] 新版本 auth api 上线
## [2.25.1] 2026-01-22
- [Added] 更新 database 依赖版本
## [2.25.0] 2026-01-22
- [Changed] 构建 CI 发布、Node.js 版本升级至 22、代码优化
## [2.24.10] 2026‑01‑14
- [Changed] 更新 getDeviceInfo 和错误处理
## [2.24.9] 2026‑01‑13
- [Changed] 更新数据库依赖至 0.10.0、多认证支持、清理构建文件
## [2.24.8] 2026‑01‑12
- [Added] 添加混元 AR 图像模型支持
## [2.24.7 及更早版本] 2025-12-29 至 2026-01-12
- 略
## [1.4.1] 2021-03-08
- [Fixed] 修复上传文件进度获取异常 bug
## [1.4.0] 2020-12-16
- [Added] 新增 analytics 接口
## [1.3.3] 2020-09-25
- [Changed] 优化 TypeScript 语法提示
- [Fixed] 修复未登录调用数据库报错问题
## [1.3.2] 2020-09-24
- [Fixed] 微信小程序插件环境获取 appSign 取插件 AppId
- [Fixed] storage 满仓情况下写入抛出错误
## [1.3.1] 2020-09-23
- [Fixed] 兼容微信小程序插件环境
## [1.3.0] 2020-09-11
- [Changed] 数据库实时推送功能抽离为独立的模块
## [1.2.5] 2020-09-07
- [Fixed] 修复微信小程序真机环境报错
## [1.2.3] 2020-09-03
- [Changed] 优化 API 语法提示
## [1.2.2] 2020-09-01
- [Changed] 优化开发环境的错误信息
## [1.2.1] 2020-08-26
- [Added] 新增 `Auth.getAuthHeaderAsync` API
## [1.1.4] 2020-08-25
- [Fixed] 修复微信公众号登录 Bug
- [Fixed] 修复微信小程序上传文件 Bug
## [1.1.2] 2020-08-24
- [Fixed] 修复小程序无法直接引用 npm 包问题
## [1.1.1] 2020-08-19
- [Fixed] 修复用户名密码登录bug
## [1.1.0] 2020-08-18
- [Added] 增加 `cloudbase.registerSdkName` API
## [1.0.4] 2020-08-13
- [Fixed] 修复实时推送多环境混淆问题
## [1.0.3] 2020-08-11
- [Fixed] 修复由 Crypto-JS 引起的打包体积过大问题
## [1.0.2] 2020-08-10
- [Changed] 优化版本统计信息
## [1.0.1] 2020-08-05
- [Fixed] `Storage.downloadFile` 可将文件直接下载到本地
## [1.0.0] 2020-07-31
- [Added] 发布 1.0.0 版本,旧版本 SDK [tcb-js-sdk](https://github.com/TencentCloudBase/tcb-js-sdk) 未来不再增加新功能