Vigia

将 keyv 从 5.x 升级到 6.x

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

概要

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

已删除的导出

importexportkind之前
keyvSerializetype<Value>(data: DeserializedData<Value>) => string | Promise<string>
keyvStoredDatatypeValue | DeserializedData<Value> | undefined
keyvDeserializetype<Value>(data: string) => DeserializedData<Value> | Promise<DeserializedData<Value> | undefined> | undefined
keyvIEventEmittertype{ on(event: string, listener: (...arguments_: any[]) => void): IEventEmitter; }
keyvStoredDataRawtypeDeserializedData<Value> | undefined
keyvStoredDataNoRawtypeValue | undefined
keyvCompressionAdaptertype{ compress(value: any, options?: any): Promise<any>; decompress(value: any, options?: any): Promise<any>; serialize<Value>(data: DeserializedData<Value>): string | Promise<string>; deserialize<Value>(data: string): DeserializedData<Value> | Promise<DeserializedData<Value> | undefined> | undefined; }

已修改的签名

export之前之后
keyv · KeyvEntry{ key: string; value: any; ttl?: number | undefined; }{ key: string; value: Value; ttl?: number | undefined; }
keyv · KeyvOptions{ emitErrors?: boolean | undefined; namespace?: string | undefined; serialize?: Serialize | undefined; deserialize?: Deserialize | undefined; store?: any; ttl?: number | undefined; compression?: any; stats?: boolean | undefined; useKeyPrefix?: boolean | undefined; throwOnErrors?: boolean | undefined; }{ namespace?: string | undefined; serialization?: false | KeyvSerializationAdapter | undefined; store?: any; ttl?: number | undefined; compression?: any; stats?: boolean | undefined; sanitize?: KeyvSanitizeOptions | undefined; encryption?: KeyvEncryptionAdapter | undefined; checkExpired?: boolean | undefined; }
keyv · KeyvStoreAdapter{ opts: any; namespace?: string | undefined; get<Value>(key: string): Promise<StoredData<Value>>; set(key: string, value: any, ttl?: number | undefined): any; setMany?(values: { key: string; value: any; ttl?: number | undefined; }[]): Promise<void>; delete(key: string): Promise<boolean>; clear(): Promise<void>; has?(key: string): Promise<boolean>; hasMany?(keys: string[]): Promise<boolean[]>; getMany?<Value>(keys: string[]): Promise<StoredData<Value | undefined>[]>; disconnect?(): Promise<void>; deleteMany?(key: string[]): Promise<boolean>; iterator?<Value>(namespace?: string | undefined): Asy…any

已删除的类或接口成员

memberimport之前
Keyv.onkeyv(event: string, listener: EventListener): Keyv<GenericValue>
Keyv.offkeyv(event: string, listener: EventListener): void
Keyv.emitkeyv(event: string, ...arguments_: any[]): void
Keyv.oncekeyv(event: string, listener: EventListener): void
Keyv.optskeyvKeyvOptions_
Keyv.hookskeyvHooksManager
Keyv.listenerskeyv(event: string): EventListener[]
Keyv.serializekeyvSerialize | undefined
Keyv._serializekeyvany
Keyv.addListenerkeyv(event: string, listener: EventListener): void
Keyv.deserializekeyvDeserialize | undefined
Keyv._deserializekeyvany
Keyv.maxListenerskeyv(): number
Keyv.useKeyPrefixkeyvboolean
Keyv._getKeyPrefixkeyv(key: string): string
Keyv._maxListenerskeyvnumber
Keyv._useKeyPrefixkeyvany
Keyv.serializeDatakeyv<T>(data: DeserializedData<T>): Promise<string | DeserializedData<T>>
Keyv.throwOnErrorskeyvboolean
Keyv._throwOnErrorskeyvany
Keyv.removeListenerkeyv(event: string, listener: EventListener): void
Keyv._eventListenerskeyvMap<string, EventListener[]>
Keyv._getKeyUnprefixkeyv(key: string): string
Keyv.deserializeDatakeyv<T>(data: string | DeserializedData<T>): Promise<DeserializedData<T> | undefined>
Keyv.setMaxListenerskeyv(n: number): void
Keyv.generateIteratorkeyv(iterator: IteratorFunction): IteratorFunction
Keyv._getKeyPrefixArraykeyv(keys: string[]): string[]
Keyv.removeAllListenerskeyv(event?: string | undefined): void
Keyv._checkIterableAdapterkeyv(): boolean
Keyv._isValidStorageAdapterkeyv(store: any): boolean
default.onkeyv(event: string, listener: EventListener): Keyv<GenericValue>
default.offkeyv(event: string, listener: EventListener): void
default.emitkeyv(event: string, ...arguments_: any[]): void
default.oncekeyv(event: string, listener: EventListener): void
default.optskeyvKeyvOptions_
default.hookskeyvHooksManager
default.listenerskeyv(event: string): EventListener[]
default.serializekeyvSerialize | undefined
default._serializekeyvany
default.addListenerkeyv(event: string, listener: EventListener): void
default.deserializekeyvDeserialize | undefined
default._deserializekeyvany
default.maxListenerskeyv(): number
default.useKeyPrefixkeyvboolean
default._getKeyPrefixkeyv(key: string): string
default._maxListenerskeyvnumber
default._useKeyPrefixkeyvany
default.serializeDatakeyv<T>(data: DeserializedData<T>): Promise<string | DeserializedData<T>>
default.throwOnErrorskeyvboolean
default._throwOnErrorskeyvany
default.removeListenerkeyv(event: string, listener: EventListener): void
default._eventListenerskeyvMap<string, EventListener[]>
default._getKeyUnprefixkeyv(key: string): string
default.deserializeDatakeyv<T>(data: string | DeserializedData<T>): Promise<DeserializedData<T> | undefined>
default.setMaxListenerskeyv(n: number): void
default.generateIteratorkeyv(iterator: IteratorFunction): IteratorFunction
default._getKeyPrefixArraykeyv(keys: string[]): string[]
default.removeAllListenerskeyv(event?: string | undefined): void
default._checkIterableAdapterkeyv(): boolean
default._isValidStorageAdapterkeyv(store: any): boolean

已修改的类或接口成员

member之前之后
Keyv.get<Value = GenericValue>(key: string, options?: { raw: false; } | undefined): Promise<StoredDataNoRaw<Value>> | <Value = GenericValue>(key: string, options?: { raw: true; } | undefined): Promise<StoredDataRaw<Value>> | <Value = GenericValue>(key: string[], options?: { raw: false; } | undefined): Promi…<Value = GenericValue>(key: string): Promise<Value | undefined> | <Value = GenericValue>(key: string[]): Promise<(Value | undefined)[]>
Keyv.statsStatsManagerKeyvStats
Keyv.delete(key: string | string[]): Promise<boolean>(key: string): Promise<boolean> | (keys: string[]): Promise<boolean[]>
Keyv.getRaw<Value = GenericValue>(key: string): Promise<StoredDataRaw<Value>><Value = GenericValue>(key: string): Promise<KeyvStorageGetResult<Value>>
Keyv.getMany<Value = GenericValue>(keys: string[], options?: { raw: false; } | undefined): Promise<StoredDataNoRaw<Value>[]> | <Value = GenericValue>(keys: string[], options?: { raw: true; } | undefined): Promise<StoredDataRaw<Value>[]><Value = GenericValue>(keys: string[]): Promise<(Value | undefined)[]>
Keyv.setMany<Value = GenericValue>(entries: KeyvEntry[]): Promise<boolean[]><Value = GenericValue>(entries: KeyvEntry<Value>[]): Promise<boolean[]>
Keyv.iteratorIteratorFunction | undefined(): AsyncGenerator<[string, any], void, any>
Keyv.deleteMany(keys: string[]): Promise<boolean>(keys: string[]): Promise<boolean[]>
Keyv.getManyRaw<Value = GenericValue>(keys: string[]): Promise<StoredDataRaw<Value>[]><Value = GenericValue>(keys: string[]): Promise<KeyvStorageGetResult<Value>[]>
Keyv.compressionCompressionAdapter | undefinedKeyvCompressionAdapter | undefined
Keyv.constructor<GenericValue = any>(store?: KeyvStoreAdapter | KeyvOptions | Map<any, any> | undefined, options?: Omit<KeyvOptions, "store"> | undefined): Keyv<GenericValue> | <GenericValue = any>(options?: KeyvOptions | undefined): Keyv<GenericValue><GenericValue = any>(store?: any, options?: Omit<KeyvOptions, "store"> | undefined): Keyv<GenericValue> | <GenericValue = any>(options?: KeyvOptions | undefined): Keyv<GenericValue>
default.get<Value = GenericValue>(key: string, options?: { raw: false; } | undefined): Promise<StoredDataNoRaw<Value>> | <Value = GenericValue>(key: string, options?: { raw: true; } | undefined): Promise<StoredDataRaw<Value>> | <Value = GenericValue>(key: string[], options?: { raw: false; } | undefined): Promi…<Value = GenericValue>(key: string): Promise<Value | undefined> | <Value = GenericValue>(key: string[]): Promise<(Value | undefined)[]>
default.statsStatsManagerKeyvStats
default.delete(key: string | string[]): Promise<boolean>(key: string): Promise<boolean> | (keys: string[]): Promise<boolean[]>
default.getRaw<Value = GenericValue>(key: string): Promise<StoredDataRaw<Value>><Value = GenericValue>(key: string): Promise<KeyvStorageGetResult<Value>>
default.getMany<Value = GenericValue>(keys: string[], options?: { raw: false; } | undefined): Promise<StoredDataNoRaw<Value>[]> | <Value = GenericValue>(keys: string[], options?: { raw: true; } | undefined): Promise<StoredDataRaw<Value>[]><Value = GenericValue>(keys: string[]): Promise<(Value | undefined)[]>
default.setMany<Value = GenericValue>(entries: KeyvEntry[]): Promise<boolean[]><Value = GenericValue>(entries: KeyvEntry<Value>[]): Promise<boolean[]>
default.iteratorIteratorFunction | undefined(): AsyncGenerator<[string, any], void, any>
default.deleteMany(keys: string[]): Promise<boolean>(keys: string[]): Promise<boolean[]>
default.getManyRaw<Value = GenericValue>(keys: string[]): Promise<StoredDataRaw<Value>[]><Value = GenericValue>(keys: string[]): Promise<KeyvStorageGetResult<Value>[]>
default.compressionCompressionAdapter | undefinedKeyvCompressionAdapter | undefined
default.constructor<GenericValue = any>(store?: KeyvStoreAdapter | KeyvOptions | Map<any, any> | undefined, options?: Omit<KeyvOptions, "store"> | undefined): Keyv<GenericValue> | <GenericValue = any>(options?: KeyvOptions | undefined): Keyv<GenericValue><GenericValue = any>(store?: any, options?: Omit<KeyvOptions, "store"> | undefined): Keyv<GenericValue> | <GenericValue = any>(options?: KeyvOptions | undefined): Keyv<GenericValue>

新增弃用

export@deprecated
keyv · DeserializedDataUse `KeyvValue` instead.
keyv · KeyvStoreAdapterUse `KeyvStorageAdapter` instead.

要求变化(engines、peer 依赖)

未发现。

新增导出 (47)
importexportkind
keyvKeyvAnytype
keyvKeyvStatsclass
keyvKeyvValuetype
keyvKeyvEventsenum
keyvKeyvMapAnytype
keyvMethodTypetype
keyvcreateKeyvfunction
keyvdetectKeyvfunction
keyvKeyvMapTypetype
keyvKeyvMethodstype
keyvKeyvAnyArraytype
keyvKeyvSanitizeclass
keyvKeyvCapabilitytype
keyvKeyvPropertiestype
keyvjsonSerializervariable
keyvKeyvBridgeStoretype
keyvKeyvCompressiontype
keyvKeyvStatsOptionstype
keyvKeyvStorageEntrytype
keyvKeyvBridgeAdapterclass
keyvKeyvMemoryAdapterclass
keyvKeyvStorageMethodtype
keyvdetectKeyvStoragefunction
keyvKeyvJsonSerializerclass
keyvKeyvStorageAdaptertype
keyvKeyvStorageMethodstype
keyvKeyvTelemetryEventtype
keyvKeyvSanitizeAdaptertype
keyvKeyvSanitizeOptionstype
keyvKeyvSanitizePatternstype
keyvKeyvStorageGetResulttype
keyvdetectKeyvEncryptionfunction
keyvKeyvEncryptionAdaptertype
keyvKeyvEncryptionMethodstype
keyvKeyvStorageCapabilitytype
keyvdetectKeyvCompressionfunction
keyvkeyvStorageCapabilityfunction
keyvKeyvCompressionAdaptertype
keyvKeyvCompressionMethodstype
keyvdetectKeyvSerializationfunction
keyvKeyvBridgeAdapterOptionstype
keyvKeyvEncryptionCapabilitytype
keyvKeyvMemoryAdapterOptionstype
keyvKeyvSerializationAdaptertype
keyvKeyvSerializationMethodstype
keyvKeyvCompressionCapabilitytype
keyvKeyvSerializationCapabilitytype

把这些数据交给你的 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

常见问题

将 keyv 从 5 升级到 6 有哪些不兼容变更?

在 keyv 5.6.0 与 6.1.0 之间,Vigia 发现 7 个已删除的导出、3 个已修改的签名,以及 82 个已删除或修改的类或接口成员。

keyv 6 中弃用了哪些内容?

keyv 6.1.0 中有 2 个导出或成员新被标记为弃用。

供智能体使用

GET https://vigia.coredls.cloud/v1/packages/npm/keyv/upgrade?from=5.6.0&to=6.1.0