minigame-std
Version:
Cross-platform standard library for WeChat minigame and web browsers with unified APIs for crypto, fs, fetch, storage, and more.
567 lines (429 loc) • 20.3 kB
Markdown
# 更新日志
本项目的所有重要更改都将记录在此文件中。
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
## [2.4.0] - 2026-05-24
### 新增
- 新增 `path` 模块,提供小游戏平台兼容的 POSIX 路径工具(`basename`、`dirname`、`normalize`、`SEPARATOR`),不依赖 `URL`,可安全在小游戏环境使用
- `platform.isMiniGameHarmonyPC`:新增鸿蒙 PC 平台检测
### 变更
- 移除 `@std/path` 运行时依赖,改用内置 `path` 模块实现,解决小游戏平台 `URL` 未定义导致的兼容问题
- 升级 `@happy-ts/fetch-t` 至 `^1.10.0`
## [2.3.1] - 2026-05-24
### 修复
- 修复 `fetchT` 在小游戏平台传入带 `byteOffset` 的 `BufferSource`(如 `Uint8Array` 子视图)作为 `body` 时,数据未正确截取的问题
## [2.3.0] - 2026-05-22
### 新增
- `fetchT` 的 `body` 参数现在支持直接传入对象(`WechatMinigame.IAnyObject`),Web 平台自动 `JSON.stringify` 并设置 `Content-Type: application/json`,小游戏平台直接作为 `data` 传递
- `fetchT`、`connectSocket`、`fs.downloadFile`、`fs.uploadFile` 统一使用 `headers`(`Record<string, string>`)传递请求头,小游戏平台自动映射为 `header`
### 变更
- **⚠️ BREAKING**:`UnionFetchInit` 不再包含 `data` 和 `header` 属性,请迁移到 `body` 和 `headers`
- **⚠️ BREAKING**:`SocketOptions` 不再包含 `header` 属性,请迁移到 `headers`
- **⚠️ BREAKING**:`DownloadFileOptions`、`UploadFileOptions` 不再包含 `header` 属性,请迁移到 `headers`
- **⚠️ BREAKING**:`MinaFetchInit`、`DownloadFileOptions`、`UploadFileOptions` 不再作为公共类型导出
- 内部平台检测从 `isMinaEnv()` 函数改为 `IS_MINA` 常量,对下游 bundler tree-shaking 更友好
## [2.2.0] - 2026-05-20
### 新增
- `audio.playWebAudioFromUrl`:支持从远程 URL 下载音频并通过 WebAudio 解码播放
- `video.createVideoFrameSource` / `video.isVideoFrameSourceSupported`:新增视频帧源 API,支持游戏渲染循环获取视频帧并上传到 RenderTexture/WebGL
- `video.createVideoFrameSourceFromFile`:支持从本地文件创建视频帧源
- `event.addShowListener` / `event.addHideListener`:新增游戏回到前台、切到后台事件监听;Web 平台 `addShowListener` 会返回当前 URL query
### 变更
- 重命名视频帧源创建选项字段,使 API 语义更贴近 URL / 文件统一来源
- 升级依赖版本
### 修复
- 修复 `minigame-test` 构建中 `inlineDynamicImports` 弃用警告,改用 `codeSplitting: false` 保持单文件输出
### 测试
- 为 `audio.playWebAudioFromUrl`、`VideoFrameSource`、前后台事件监听补充小游戏侧测试
- 调整小游戏测试以兼容微信开发者工具中的视频和事件行为差异
## [2.1.2] - 2026-05-12
### 性能优化
- 为模块顶层调用全面添加 `/*#__PURE__*/` 注解,配合更激进的 treeshake 配置后,下游 bundler 可按需消除未使用的顶层副作用,进一步缩小产物体积
### 变更
- 收紧 Rollup treeshake 选项:`moduleSideEffects: false` + `propertyReadSideEffects: false`,并在 cjs/esm 输出中关闭 `topLevelVar`,使 PURE 注解对 `const` 顶层声明持续生效
- 升级依赖版本(vitest 4.1.5、eslint 10.3.0、rollup 4.60.3、typescript 6.0.3、typescript-eslint 8.59.2、vite 8.0.11、minigame-api-typings 3.8.20、rsa-oaep-encryption 1.2.1 等),并适配 pnpm 11
### 修复
- 修复 pnpm 11 下 `pnpm run docs` 因新增内置子命令冲突而无法分发到 workspace 的问题(root 脚本显式补 `run` 关键字)
### 风格
- 将仓库内所有 `/*@__PURE__*/` 统一为 `/*#__PURE__*/` 风格,与 Rollup/Vite/Terser/SWC 社区惯例一致
### 文档
- `tsconfig.base.json` 的 `$schema` URL 由 `http` 改为 `https`
- 将 `CODEBUDDY.md` 重命名为 `AGENTS.md`,对所有 AI agent 通用,并刷新 PURE 注解、treeshake 配置、pnpm 11 注意事项、release 流程、单测命令等指引
## [2.1.1] - 2026-03-05
### 新增
- `decodeUtf8` 新增 `TextDecoderOptions` 参数,支持 `fatal` 和 `ignoreBOM` 选项
### 变更
- 构建前置步骤 (`prebuild`) 增加 lint 检查,确保构建前通过类型检查和代码规范检查
- 升级依赖版本(eslint v10、rollup、typedoc、typescript-eslint、happy-codec、minigame-api-typings 等)
### 修复
- 修复 `mina_utf8.ts` 中 `decodeUtf8` 回退到 Web 实现时未传递 `options` 参数的问题
- 修复 `asyncResultify` 对小游戏平台返回非 void 非 PromiseLike 值的 API 的兼容性
### 测试
- 新增 `decodeUtf8` 的 `TextDecoderOptions` 测试用例(Web 平台、mina 模拟、mina-wx 模拟)
- 更新 `asyncResultify` 测试用例以匹配新的容错行为
## [2.1.0] - 2026-02-11
### 新增
- `fs.readFile`、`fs.readFileSync`、`fs.stat`、`fs.statSync`、`fs.readDir`、`fs.readDirSync` 支持读取代码包文件(不以 `./` 或 `../` 开头的相对路径)
- 新增 `validateReadablePath` 函数用于验证只读操作的路径
- `fs.stat` 递归结果按路径排序,确保跨平台一致性
- Web 平台 UTF-8 编解码新增 `TextEncoder`/`TextDecoder` 不可用时的回退实现
- `getRandomValues` 新增正整数验证
### 变更
- 重构 codec 模块,将 base64、hex、bytestring、utf8 编解码实现替换为 `happy-codec` 包
- Web 平台 UTF-8 编解码回退到 `happy-codec` 实现(保留微信小游戏平台适配器)
- 提取路径类型验证逻辑到 `validatePathType` 辅助函数
- `decodeUtf8` 参数类型从 `AllowSharedBufferSource` 改为 `BufferSource`
- 改进 `bufferSourceToBytes` 和 `bufferSourceToAb` 的错误消息,使其更清晰
- `validateString` 和 `validatePositiveInteger` 的 `name` 参数改为必选,改进错误消息的可区分性
- `validatePositiveInteger` 细化错误类型:类型错误抛出 `TypeError`,值错误抛出 `Error`
- 优化 `web_clipboard` 模块代码结构
- 优化 `web_socket` 模块的 `send` 错误处理
- 移除 `package.json` 中的 `predocs` 脚本
- 升级依赖版本
### 修复
- 修复 Android 子项目中递归 stat 的路径规范化问题
- 修复 `web_storage` 的 `getItem` 在 key 不存在时的错误消息
- 修复部分文件中缺少 `.ts` 扩展名的相对导入路径
- 修复 `web_video` 进度事件中 `video.duration` 为零时的除零问题
- 移除 `mina_fs_async` 中的重复 region 注释
### 文档
- 更新 codec 模块文档以反映 `happy-codec` 迁移
- 修正 README 中 codec 返回类型描述(`ArrayBuffer` → `Uint8Array`)
- 改进 codec 和 defines 模块的 JSDoc 注释
- 移除 typedoc.json 中不必要的 exclude 选项
### 测试
- 新增代码包路径的异步和同步测试用例
- 新增 `normalizeStats` 排序行为测试用例
- 新增 UTF-8 codec 基准测试(对比 wx 原生与纯 JS 实现)
- 修复 fs 测试断言和格式问题
## [2.0.2] - 2026-01-29
### 文档
- 为各子模块文件添加 `@module` JSDoc 注释
- 为 `fs.stat` 方法的所有重载签名添加 JSDoc 注释
### 变更
- 移除 prepublishOnly 中的文件复制步骤
## [2.0.1] - 2026-01-29
### 文档
- 为所有导出模块添加 JSDoc 文档注释
### 变更
- CI 发布流程添加复制共享文件的步骤
## [2.0.0] - 2026-01-29
### 破坏性变更
- `fs.readFile` 返回类型从 `ArrayBuffer` 改为 `Uint8Array<ArrayBuffer>`
- SHA 系列函数返回类型从 `Promise<string>` 改为 `AsyncIOResult<string>`
- HMAC 系列函数返回类型改为 `AsyncIOResult`
- RSA 加密函数返回类型改为 `AsyncIOResult`
- 重命名 `promisifyWithResult` 为 `asyncResultify`
- 重命名 codec 模块函数以保持命名一致性
- 简化 base64 API 为统一的 `encodeBase64`/`decodeBase64` 函数
- 移除 `tryDOMAsyncOp`/`tryDOMSyncOp`,使用 `tryGeneralAsyncOp`/`tryResult` 代替
- 移除内部 assert 函数的公开导出
- 适配 `@happy-ts/fetch-t` 和 `happy-opfs` 的破坏性变更
### 新增
- 新增 `video` 模块及跨平台 `createVideo` API
- 新增 `fs.writeJsonFile` 和 `fs.writeJsonFileSync` 方法
- 新增 `decodeHex` 函数用于十六进制解码
- 新增 `asyncResultify`、`asyncIOResultify`、`syncIOResultify` 工具函数
- 新增 `fs.zipSync` 内存压缩支持(无文件路径时返回 bytes)
- 新增 `AppendOptions` 支持 `appendFile` 和 `appendFileSync`
- 新增 `ReadOptions`、`ExistsOptions` 支持相应文件操作
- 新增内部验证模块 (`internal/validate`)
- 新增 `encodeHex` 支持字符串输入
- 新增 `ASYNC_RESULT_VOID` 常量
- 新增跨平台高精度计时工具 (`performance`)
- 新增 `video.requestFullScreen` 方法支持屏幕方向锁定
- 导出 `fs.createAbortError` 辅助函数
### 变更
- 许可证从 GPL-3.0 切换到 MIT
- 迁移到 pnpm monorepo 结构
- 构建工具从 Rollup 迁移到 Vite
- 测试框架从 Deno 迁移到 Vitest
- 文档生成从 Markdown 切换到 HTML 格式
- 生成的 API 文档不再提交到仓库,改为通过 GitHub Pages 自动部署
- 使用 `happy-rusty` 的 `Lazy` 和 `Once` 进行延迟初始化
- 重构 codec 模块,将 base64 整合到 codec 模块
- 重构 UTF-8 编码模块到专用子目录
- 重构 SHA/HMAC 实现,提取纯 JS 实现到共享模块
- 统一 `stat` API 在 `recursive=true` 时始终返回 `FileStats[]`
- 统一微信和 Web 平台 API 返回类型
- 简化 `mkdir`:目录已存在时直接返回成功
- 优化 `readDir`:可用时使用 `Array.fromAsync` 提升性能
- 错误处理集中化,使用统一的错误转换函数
- 替换 `tiny-invariant` 为自定义实现
- 更新依赖到最新版本
### 修复
- 修复 UTF-8 解码使用 `fromCodePoint` 替代 `fromCharCode` 处理代理对
- 修复 UTF-8 编码使用 `codePointAt` 正确处理代理对
- 修复 `TextDecoder` 设置 `fatal` 选项以正确处理错误
- 修复 `validateAbsolutePath` 处理多斜杠完整路径
- 修复 `zip` 保留根目录结构
- 修复 `appendFile` 在文件不存在时的处理
- 修复 `getDeviceBenchmarkInfo` 调用前的类型检查
- 修复 `image` 模块加载后撤销 object URL 防止内存泄漏
- 修复 `storage.getLength` 在非 Mina 环境使用 `webGetLength`
- 修复 `Uint8Array` 从 `ArrayBufferView` 创建的优化
- 修复各模块错误类型改进
### 文档
- 重写 README,添加双语支持和详细功能说明
- 新增 CODEBUDDY.md 仓库上下文指南
- 为所有公开 API 添加 `@since` 版本标签
- 完善 JSDoc 文档和 `@example` 示例
- 将 JSDoc 注释从英文翻译为中文
### 测试
- 迁移测试到 Vitest 并大幅扩展测试覆盖率
- 新增 minigame-test 项目用于小游戏平台测试
- 新增 mina 平台各模块的综合测试
- 新增 benchmark 性能测试
## [1.10.0] - 2025-07-31
### 新增
- 新增设备性能评级功能 (`getDeviceBenchmarkLevel`)
- 新增 `promisify` 工具函数,用于将回调式 API 转换为 AsyncResult
### 变更
- 重构平台检测工具函数
- 升级依赖版本
## [1.9.7] - 2025-07-09
### 变更
- 重构 fetch 模块的导入结构
## [1.9.6] - 2025-06-30
### 变更
- 二进制数据的编码参数改为 undefined
## [1.9.5] - 2025-06-18
### 变更
- 重构下载文件时的目录创建逻辑
## [1.9.4] - 2025-06-04
### 修复
- 修复 `fetchT` 的响应类型错误
## [1.9.3] - 2025-05-21
### 新增
- 新增 `storage.hasItem` 和 `storage.hasItemSync` 方法
## [1.9.2] - 2025-05-06
### 变更
- 更新 happy-opfs 到 v1.8.6
## [1.9.1] - 2025-05-06
### 变更
- 使用 `toLowerCase` 来判断平台类型
- 更新依赖
## [1.9.0] - 2025-04-24
### 新增
- 新增更多平台判断方法
## [1.8.8] - 2025-04-21
### 修复
- 修复下载文件前未创建目录的问题
## [1.8.7] - 2025-03-31
### 新增
- `writeFile` 支持 `WriteOptions` 参数
### 修复
- 修复 `mkdir` 在目录已存在时返回成功
## [1.8.6] - 2025-03-31
### 修复
- 修复 `mkdir` 应过滤根目录的问题
## [1.8.5] - 2025-03-18
### 变更
- 更新导出以包含 `happy-opfs` 的所有成员
## [1.8.4] - 2025-02-27
### 修复
- 添加对缺少 `wx.encode` 和 `wx.decode` 方法的兼容处理
## [1.8.3] - 2025-02-19
### 修复
- 当 `wx.getFuzzyLocation` 不存在时回退到 `wx.getLocation`
## [1.8.2] - 2025-01-07
### 修复
- 修复 `wx.getDeviceInfo` 可能不存在的问题
## [1.8.1] - 2024-12-25
### 修复
- 修复文件不存在时 `appendFile` 失败的问题
## [1.8.0] - 2024-12-19
### 新增
- 支持 HMAC 计算
- 新增 `DataSource` 类型别名 (`string | BufferSource`)
## [1.7.1] - 2024-12-13
### 变更
- SHA 方法的键改为字符串类型
## [1.7.0] - 2024-08-23
### 新增
- 新增 `cryptos.random` 模块
- 新增 `addResizeListener` 方法
- 新增 `lbs` (位置服务) 模块
- 新增 `image` 模块
- 新增 `getWindowInfo` 方法
### 变更
- 删除 `getDeviceInfo` 方法
## [1.6.0] - 2024-08-18
### 新增
- 支持更多 SHA 算法
- 支持 SHA1 计算
- 支持 RSA 加密
- 新增 `hexFromBuffer` 方法
- 新增 `bufferSource2U8a` 方法
- 新增 `fs.readJsonFile` 和 `fs.readJsonFileSync` 方法
- `importPublicKey` 支持设置哈希算法
- `publicKeyFromPem` 支持 `hash` 参数
### 变更
- 使用 `rsa-oaep-encryption` 替代 `node-forge`
- 修改 base64 编解码实现
- 部分函数参数从 `ArrayBuffer` 改为 `BufferSource`
- 导出 `SocketReadyState` 常量
## [1.5.2] - 2024-08-13
### 修复
- `fs.downloadFile` 失败时应删除未完成的文件
## [1.5.1] - 2024-08-13
### 修复
- `fs.downloadFile` 当状态码非 2XX 时应返回 Err
## [1.5.0] - 2024-08-12
### 新增
- 支持 WebAudio
### 变更
- 调整部分 API 名称和命名空间
## [1.4.1] - 2024-08-12
### 变更
- `fs.rename` 重命名为 `fs.move`
- 使用 `Result.andThen` 优化流程控制
- 重命名 `move` 的参数
## [1.4.0] - 2024-08-09
### 新增
- 新增 `zipFromUrl` 方法,支持压缩到内存
- 新增 `unzipFromUrl` 方法
- `fs.downloadFile` 支持下载到临时文件
- `fs.downloadFile` 支持 `onProgress` 回调
- `fs.copyFile` 自动创建目标目录
- 支持 `fs.copy` 和 `fs.copySync`
- fetch 支持 `onChunkReceived` (或 `onChunk`)
### 变更
- 使用 `Uint8Array` 进行 base64 编解码
- 使用 `BufferSource` 替代 `ArrayBuffer | ArrayBufferView`
- `encode` 返回 `Uint8Array`
### 修复
- 修复临时路径断言失败的问题
## [1.3.0] - 2024-08-06
### 新增
- 实现 `fs.zip` 方法
- 实现 `fs.zipSync` 和 `fs.unzipSync` 方法
- 新增 `fs.unzip` 方法
### 变更
- `minaErrorToError` 重命名为 `miniGameFailureToError`
- 同步 `fs` API 改为抛出 Error
## [1.2.0] - 2024-08-06
### 新增
- 新增 `storage.getLength` 方法
- 导出 `utils` 模块
### 变更
- `storage` 方法返回 `Result` 类型
- 统一 `clipboard` 方法的返回值
- `socket` 的 `send` 方法返回 `RESULT_VOID`
- 修改 `fs` 方法的返回值
- `toErr` 重命名为 `fileErrorToResult`
## [1.1.0] - 2024-08-04
### 新增
- 新增 fs 同步方法
- 使用 Future 模式
### 变更
- 测试工具切换到 Deno
- 整理 `fs` 代码结构
- 使用 `AsyncOption` 类型
- 优化 `emptyDir`
- `remove` 在文件不存在时返回成功
- 更新 ESLint 到 v9
## [1.0.9] - 2024-07-26
### 新增
- 导出 `NetworkType` 类型
- 支持获取网络类型和监听变化
- `addListener` 返回 `removeListener` 委托
- socket 新增 `readyState` 属性
- socket 支持 `removeEventListener`
### 变更
- 移除全局类型增强
## [1.0.8] - 2024-07-25
### 变更
- fetch 默认返回 `string | Response`
- 更新 happy-opfs 到 v1.0.17
## [1.0.7] - 2024-07-25
### 变更
- 上传文件时 `name` 参数改为可选
## [1.0.6] - 2024-07-24
### 新增
- 导出所有定义的类型
- fetch 和 download/upload 支持中止操作
### 变更
- 更新 happy-opfs 到 v1.0.13
- 修改 `fetchT` 返回类型
## [1.0.5] - 2024-07-23
### 新增
- 新增请求超时错误 (TimeoutError)
## [1.0.4] - 2024-07-17
### 变更
- 使用 `asErr` 进行类型转换
## [1.0.3] - 2024-07-13
### 变更
- 更新 GitHub Actions 配置
- 重置 typedoc 入口文件名
## [1.0.2] - 2024-06-11
### 新增
- 导出部分接口类型
- 添加代码注释
### 变更
- 移除 rimraf 依赖
- 使用 tiny-invariant
## [1.0.1] - 2024-05-17
### 新增
- 新增 `fs.emptyDir` 方法
## [1.0.0] - 2024-05-15
### 新增
- 首次正式发布
- 支持跨平台 API:小游戏环境 (微信、QQ 等) 和 Web 浏览器
- 模块包括:
- `base64` - Base64 编解码
- `clipboard` - 剪贴板操作
- `codec` - 文本编解码 (UTF-8)
- `cryptos` - 加密功能 (MD5, SHA)
- `fetch` - HTTP 请求
- `fs` - 文件系统操作
- `network` - 网络状态检测
- `platform` - 平台检测
- `socket` - WebSocket
- `storage` - 本地存储
[2.2.0]: https://github.com/JiangJie/minigame-std/compare/v2.1.2...v2.2.0
[2.1.2]: https://github.com/JiangJie/minigame-std/compare/v2.1.1...v2.1.2
[2.1.1]: https://github.com/JiangJie/minigame-std/compare/v2.1.0...v2.1.1
[2.1.0]: https://github.com/JiangJie/minigame-std/compare/v2.0.2...v2.1.0
[2.0.2]: https://github.com/JiangJie/minigame-std/compare/v2.0.1...v2.0.2
[2.0.1]: https://github.com/JiangJie/minigame-std/compare/v2.0.0...v2.0.1
[2.0.0]: https://github.com/JiangJie/minigame-std/compare/v1.10.0...v2.0.0
[1.10.0]: https://github.com/JiangJie/minigame-std/compare/v1.9.7...v1.10.0
[1.9.7]: https://github.com/JiangJie/minigame-std/compare/v1.9.6...v1.9.7
[1.9.6]: https://github.com/JiangJie/minigame-std/compare/v1.9.5...v1.9.6
[1.9.5]: https://github.com/JiangJie/minigame-std/compare/v1.9.4...v1.9.5
[1.9.4]: https://github.com/JiangJie/minigame-std/compare/v1.9.3...v1.9.4
[1.9.3]: https://github.com/JiangJie/minigame-std/compare/v1.9.2...v1.9.3
[1.9.2]: https://github.com/JiangJie/minigame-std/compare/v1.9.1...v1.9.2
[1.9.1]: https://github.com/JiangJie/minigame-std/compare/v1.9.0...v1.9.1
[1.9.0]: https://github.com/JiangJie/minigame-std/compare/v1.8.8...v1.9.0
[1.8.8]: https://github.com/JiangJie/minigame-std/compare/v1.8.7...v1.8.8
[1.8.7]: https://github.com/JiangJie/minigame-std/compare/v1.8.6...v1.8.7
[1.8.6]: https://github.com/JiangJie/minigame-std/compare/v1.8.5...v1.8.6
[1.8.5]: https://github.com/JiangJie/minigame-std/compare/v1.8.4...v1.8.5
[1.8.4]: https://github.com/JiangJie/minigame-std/compare/v1.8.3...v1.8.4
[1.8.3]: https://github.com/JiangJie/minigame-std/compare/v1.8.2...v1.8.3
[1.8.2]: https://github.com/JiangJie/minigame-std/compare/v1.8.1...v1.8.2
[1.8.1]: https://github.com/JiangJie/minigame-std/compare/v1.8.0...v1.8.1
[1.8.0]: https://github.com/JiangJie/minigame-std/compare/v1.7.1...v1.8.0
[1.7.1]: https://github.com/JiangJie/minigame-std/compare/v1.7.0...v1.7.1
[1.7.0]: https://github.com/JiangJie/minigame-std/compare/v1.6.0...v1.7.0
[1.6.0]: https://github.com/JiangJie/minigame-std/compare/v1.5.2...v1.6.0
[1.5.2]: https://github.com/JiangJie/minigame-std/compare/v1.5.1...v1.5.2
[1.5.1]: https://github.com/JiangJie/minigame-std/compare/v1.5.0...v1.5.1
[1.5.0]: https://github.com/JiangJie/minigame-std/compare/v1.4.1...v1.5.0
[1.4.1]: https://github.com/JiangJie/minigame-std/compare/v1.4.0...v1.4.1
[1.4.0]: https://github.com/JiangJie/minigame-std/compare/v1.3.0...v1.4.0
[1.3.0]: https://github.com/JiangJie/minigame-std/compare/v1.2.0...v1.3.0
[1.2.0]: https://github.com/JiangJie/minigame-std/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/JiangJie/minigame-std/compare/v1.0.9...v1.1.0
[1.0.9]: https://github.com/JiangJie/minigame-std/compare/v1.0.8...v1.0.9
[1.0.8]: https://github.com/JiangJie/minigame-std/compare/v1.0.7...v1.0.8
[1.0.7]: https://github.com/JiangJie/minigame-std/compare/v1.0.6...v1.0.7
[1.0.6]: https://github.com/JiangJie/minigame-std/compare/v1.0.5...v1.0.6
[1.0.5]: https://github.com/JiangJie/minigame-std/compare/v1.0.4...v1.0.5
[1.0.4]: https://github.com/JiangJie/minigame-std/compare/v1.0.3...v1.0.4
[1.0.3]: https://github.com/JiangJie/minigame-std/compare/v1.0.2...v1.0.3
[1.0.2]: https://github.com/JiangJie/minigame-std/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/JiangJie/minigame-std/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/JiangJie/minigame-std/releases/tag/v1.0.0