Vigia

将 expo-media-library 从 57.x 升级到 58.x

根据 TypeScript 类型自动比较 expo-media-library 57.0.5 与 58.0.9 的公开 API。签名变化表示可能存在不兼容变更,并非确定结论。

概要

已删除的导入路径2
已删除的导出0
已修改的签名5
已删除的类或接口成员0
已修改的类或接口成员1
新增弃用0
要求变化(engines、peer 依赖)0
新增导出5

已删除的导入路径

已删除的导入路径
expo-media-library/next
expo-media-library/legacy

已删除的导出

未发现。

已修改的签名

export之前之后
expo-media-library · AssetInfo{ id: string; filename: string; uri: string; mediaType: MediaType; width: number; height: number; duration: number | null; creationTime: number | null; modificationTime: number | null; isFavorite: boolean; }{ id: string; filename: string; uri: string; mediaType: MediaType; width: number; height: number; duration: number | null; creationTime: number | null; modificationTime: number | null; isFavorite?: boolean | undefined; mediaSubtypes?: MediaSubtype[] | undefined; }
expo-media-library · AssetMetadata{ id: string; filename: string | null; mediaType: MediaType; width: number | null; height: number | null; duration: number | null; creationTime: number | null; modificationTime: number | null; isFavorite: boolean; }{ id: string; filename: string | null; mediaType: MediaType; width: number | null; height: number | null; duration: number | null; creationTime: number | null; modificationTime: number | null; isFavorite: boolean; mediaSubtypes?: MediaSubtype[] | undefined; }
expo-media-library · usePermissions(options?: any): [any, () => Promise<any>, () => Promise<any>](options?: any): [any, () => Promise<PermissionResponse>, () => Promise<PermissionResponse>]
expo-media-library · getPermissionsAsync(writeOnly?: boolean | undefined, granularPermissions?: GranularPermission[] | undefined): Promise<any>(writeOnly?: boolean | undefined, granularPermissions?: GranularPermission[] | undefined): Promise<PermissionResponse>
expo-media-library · requestPermissionsAsync(writeOnly?: boolean | undefined, granularPermissions?: GranularPermission[] | undefined): Promise<any>(writeOnly?: boolean | undefined, granularPermissions?: GranularPermission[] | undefined): Promise<PermissionResponse>

已删除的类或接口成员

未发现。

已修改的类或接口成员

member之前之后
Asset.getUri(): Promise<string>(options?: AssetUriOptions | undefined): Promise<string>

新增弃用

未发现。

要求变化(engines、peer 依赖)

未发现。

新增导出 (5)
importexportkind
expo-media-libraryAlbumTypeenum
expo-media-librarySubscriptionvariable
expo-media-libraryAlbumMetadatatype
expo-media-libraryAssetUriOptionstype
expo-media-libraryAssetUriVersionenum

这些版本之间的 changelog

软件包作者发布的文本,按原样显示。

58.0.9
### Patch Changes

- [iOS] Add `mediaSubtypes` to `AssetInfo` and `AssetMetadata`, so `Asset.getInfo()` and `Query.exeForMetadata()` return an asset's subtypes. ([#51514](https://github.com/expo/expo/pull/51514) by [@Wenszel](https://github.com/Wenszel))
- [iOS] Add the `animation` and `screenRecording` media subtypes. ([#51513](https://github.com/expo/expo/pull/51513) by [@Wenszel](https://github.com/Wenszel))
58.0.8
### Patch Changes

- [Internal] Bump precompiled artifacts due to ABI breakage in expo-modules-jsi, which makes `JavaScriptValue` a non-copyable struct. ([#51368](https://github.com/expo/expo/pull/51368) by [@tsapeta](https://github.com/tsapeta))
58.0.7
### Patch Changes

- Bump precompiled artifacts due to ABI breakage in expo-modules-core@58.0.13. ([#51138](https://github.com/expo/expo/pull/51138) by [@alanjhughes](https://github.com/alanjhughes))
58.0.6
### Patch Changes

- [Android] Fix assets moved with `Album.create` (with `moveAssets` set to `true`) or `album.add` sometimes disappearing from the media library. The file was moved, but its MediaStore entry was deleted, so it only showed up again after a rescan, with a new ID. ([#50817](https://github.com/expo/expo/pull/50817) by [@devonik](https://github.com/devonik))
58.0.5
### Patch Changes

- Bump precompiled artifacts due to ABI breakage in expo-modules-jsi@58.0.6. ([#50881](https://github.com/expo/expo/pull/50881) by [@kitten](https://github.com/kitten))
58.0.4
### Patch Changes

- Force-bump all packages, due to migration to changesets. ([#50762](https://github.com/expo/expo/pull/50762) by [@kitten](https://github.com/kitten))
- [iOS] Fix `Album.getAll()` not returning albums nested inside folders. ([#47822](https://github.com/expo/expo/pull/47822) by [@Wenszel](https://github.com/Wenszel))
- [iOS] Add `Album.getSmartAlbums()` and `Album.getType()`. ([#47822](https://github.com/expo/expo/pull/47822) by [@Wenszel](https://github.com/Wenszel))
- Add `Album.getAlbumsMetadata()` for cheap bulk album listing and `album.getAssetCount()`. ([#47903](https://github.com/expo/expo/pull/47903) by [@Wenszel](https://github.com/Wenszel))
58.0.3
_This version does not introduce any user-facing changes._
58.0.2
### 🐛 Bug fixes

- [Android] Fix `Album.create` naming copied assets (with `moveAssets` set to `false`) after the full `file://` path of the original, e.g. `file____storage_emulated_0_DCIM_Camera_IMG_1234.jpg`, instead of its file name. ([#50621](https://github.com/expo/expo/pull/50621) by [@devonik](https://github.com/devonik))
58.0.1
### 🐛 Bug fixes

- [iOS] Request a single high-quality delivery for Live Photos. Under the default `.opportunistic` delivery mode `requestLivePhoto` invokes its result handler more than once, and the first, degraded pass could resolve `getAssetInfoAsync` without `pairedVideoAsset`. ([#50295](https://github.com/expo/expo/pull/50295) by [@henriquegpb](https://github.com/henriquegpb))
58.0.0
### 🛠 Breaking changes

- [iOS] `Asset.getUri()` and `AssetInfo.uri` now resolve a video to the version currently shown in the Photos app instead of the originally captured file. Pass `version: AssetUriVersion.ORIGINAL` to `getUri()` to keep the previous behavior. Note that only `getUri()` accepts the option; `AssetInfo.uri` from `getInfo()` always resolves the current version. ([#48640](https://github.com/expo/expo/pull/48640) by [@barthap](https://github.com/barthap))

### 🎉 New features

- [iOS] Add a `version` option to `Asset.getUri()` for choosing between the current and the original rendition of an asset. ([#48640](https://github.com/expo/expo/pull/48640) by [@barthap](https://github.com/barthap))
- [Android] Add `PhotographicSensitivity` to returned EXIF metadata. ([#47222](https://github.com/expo/expo/pull/47222) by [@Wenszel](https://github.com/Wenszel))

### 🐛 Bug fixes

- [Android] Parallelize per-file EXIF and location reads in `getAssetsAsync` when `resolveWithFullInfo` is true, speeding up large library scans. ([#48637](https://github.com/expo/expo/pull/48637) by [@hsource](https://github.com/hsource) and [@robin-pham](https://github.com/robin-pham))
- [iOS] Include GPS `location` in `getAssetsAsync` batch results and return numeric latitude/longitude instead of strings for `Asset.location` and `Album.approximateLocation` (matching the documented `Location` type). ([#49188](https://github.com/expo/expo/pull/49188) by [@hsource](https://github.com/hsource) and [@fractalbeauty](https://github.com/fractalbeauty))
- [Android] Fix transposed `width`/`height` for rotated assets (portrait photos and videos): `Asset.getInfo()`, `getWidth()`/`getHeight()`/`getShape()` and `Query.exeForMetadata()` now honor MediaStore `ORIENTATION`, matching the legacy API. ([#48150](https://github.com/expo/expo/pull/48150) by [@oeddyo](https://github.com/oeddyo))

### 💡 Others

- Re-organize TS code ([#45953](https://github.com/expo/expo/pull/45953) by [@Wenszel](https://github.com/Wenszel))

把这些数据交给你的 AI 智能体

Vigia 是免费的 MCP 服务器:你的编程智能体在写代码之前就能检查版本、不兼容变更和安全漏洞。无需注册,无需 API 密钥。

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

添加到 Cursor添加到 VS Code★ 在 GitHub 上加星

任何其他 MCP 客户端
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

智能体技能(SKILL.md):告诉智能体何时使用 Vigia · 用于拉取请求的 GitHub Action

常见问题

将 expo-media-library 从 57 升级到 58 有哪些不兼容变更?

在 expo-media-library 57.0.5 与 58.0.9 之间,Vigia 发现 0 个已删除的导出、5 个已修改的签名,以及 1 个已删除或修改的类或接口成员。

expo-media-library 58 中弃用了哪些内容?

expo-media-library 58.0.9 中有 0 个导出或成员新被标记为弃用。

供智能体使用

GET https://vigia.coredls.cloud/v1/packages/npm/expo-media-library/upgrade?from=57.0.5&to=58.0.9