Vigia

将 yaml 从 1.x 升级到 2.x

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

概要

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

已删除的导出

importexportkind之前
yamlASTnamespacenamespace
yamlOptionsinterfaceinterface
yamlparseCSTfunction(str: string): ParsedCST
yamlcreateNodefunction(value: any, wrapScalars?: true | undefined, tag?: string | undefined): YAMLMap | YAMLSeq | Scalar | (value: any, wrapScalars: false, tag?: string | undefined): string | number | boolean | YAMLMap | YAMLSeq | null
yamlscalarOptionsvariable{ binary: Binary; bool: Bool; int: Int; null: Null; str: Str; }
yamldefaultOptionsvariableOptions

已修改的签名

export之前之后
yaml · parse(str: string, options?: Options | undefined): any(src: string, options?: (ParseOptions & DocumentOptions & SchemaOptions & ToJSOptions) | undefined): any | (src: string, reviver: Reviver, options?: (ParseOptions & DocumentOptions & SchemaOptions & ToJSOptions) | undefined): any
yaml · stringify(value: any, options?: Options | undefined): string(value: any, options?: (DocumentOptions & SchemaOptions & ParseOptions & CreateNodeOptions & ToStringOptions) | undefined): string | (value: any, replacer?: Replacer | null | undefined, options?: string | number | (DocumentOptions & SchemaOptions & ParseOptions & CreateNodeOptions & ToStringOptions) | undefined): string
yaml · parseDocument(str: string, options?: Options | undefined): Parsed<Contents extends Node = ParsedNode, Strict extends boolean = true>(source: string, options?: (ParseOptions & DocumentOptions & SchemaOptions) | undefined): Contents extends ParsedNode ? Parsed<Contents, Strict> : Document<Contents, Strict>
yaml · parseAllDocuments(str: string, options?: Options | undefined): Parsed[]<Contents extends Node = ParsedNode, Strict extends boolean = true>(source: string, options?: (ParseOptions & DocumentOptions & SchemaOptions) | undefined): EmptyStream | (Contents extends ParsedNode ? Parsed<Contents, Strict> : Document<Contents, Strict>)[]

已删除的类或接口成员

memberimport之前
Document.tagyamlnever
Document.typeyamlType.DOCUMENT
Document.itemsyamlany[]
Document.parseyaml(cst: Document): Document
Document.anchorsyamlAnchors
Document.cstNodeyamlDocument | undefined
Document.versionyamlstring | undefined
Document.spaceBeforeyamlboolean | undefined
Document.tagPrefixesyamlTagPrefix[]
Document.setTagPrefixyaml(handle: string, prefix: string): void
Document.listNonDefaultTagsyaml(): string[]
Document.directivesEndMarkeryamlboolean | undefined

已修改的类或接口成员

member之前之后
Document.get(key: any, keepScalar?: boolean | undefined): any(key: unknown, keepScalar?: boolean | undefined): Strict extends true ? unknown : any
Document.has(key: any): boolean(key: unknown): boolean
Document.set(key: any, value: any): void(key: any, value: unknown): void
Document.addIn(path: Iterable<any>, value: any): void(path: Iterable<unknown>, value: unknown): void
Document.getIn(path: Iterable<any>, keepScalar?: boolean | undefined): any(path: Iterable<unknown> | null, keepScalar?: boolean | undefined): Strict extends true ? unknown : any
Document.hasIn(path: Iterable<any>): boolean(path: Iterable<unknown> | null): boolean
Document.range[number, number] | null | undefinedRange | undefined
Document.setIn(path: Iterable<any>, value: any): void(path: Iterable<unknown> | null, value: unknown): void
Document.delete(key: any): boolean(key: unknown): boolean
Document.schemaSchema | undefinedSchema
Document.toJSON(arg?: string | undefined, onAnchor?: ((value: any, count: number) => void) | undefined): any(jsonArg?: string | null | undefined, onAnchor?: ((value: unknown, count: number) => void) | undefined): any
Document.commentstring | null | undefinedstring | null
Document.contentsanyStrict extends true ? Contents | null : Contents
Document.deleteIn(path: Iterable<any>): boolean(path: Iterable<unknown> | null): boolean
Document.toString(): string(options?: ToStringOptions | undefined): string
Document.setSchema(id?: "1.0" | "1.1" | "1.2" | Name | undefined, customTags?: (TagId | Tag)[] | undefined): void(version: "1.1" | "1.2" | "next" | null, options?: SchemaOptions | undefined): void
Document.constructor(options?: Options | undefined): Document<Contents extends Node = Node, Strict extends boolean = true>(value?: any, options?: (DocumentOptions & SchemaOptions & ParseOptions & CreateNodeOptions) | undefined): Document<Contents, Strict> | <Contents extends Node = Node, Strict extends boolean = true>(value: any, replacer: Replacer | null, op…
Document.commentBeforestring | null | undefinedstring | null

新增弃用

未发现。

要求变化(engines、peer 依赖)

之前之后
engines.node>= 6>= 14.6
新增导出 (44)
importexportkind
yamlNodetype
yamlPairclass
yamlTagstype
yamlAliasclass
yamlLexerclass
yamlRangetype
yamlTagIdtype
yamlisMapvariable
yamlisSeqvariable
yamlvisitfunction
yamlParserclass
yamlScalarclass
yamlSchemaclass
yamlisNodefunction
yamlisPairvariable
yamlYAMLMapclass
yamlYAMLSeqclass
yamlYAMLSetclass
yamlisAliasvariable
yamlvisitortype
yamlComposerclass
yamlYAMLOMapclass
yamlisScalarvariable
yamlErrorCodetype
yamlScalarTaginterface
yamlYAMLErrorclass
yamlvisitorFntype
yamlParsedNodetype
yamlisDocumentvariable
yamlvisitAsyncfunction
yamlEmptyStreaminterface
yamlLineCounterclass
yamlToJSOptionstype
yamlYAMLWarningclass
yamlParseOptionstype
yamlasyncVisitortype
yamlisCollectionfunction
yamlCollectionTaginterface
yamlSchemaOptionstype
yamlYAMLParseErrorclass
yamlasyncVisitorFntype
yamlDocumentOptionstype
yamlToStringOptionstype
yamlCreateNodeOptionstype

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

常见问题

将 yaml 从 1 升级到 2 有哪些不兼容变更?

在 yaml 1.10.3 与 2.9.1 之间,Vigia 发现 6 个已删除的导出、4 个已修改的签名,以及 30 个已删除或修改的类或接口成员。

yaml 2 中弃用了哪些内容?

yaml 2.9.1 中有 0 个导出或成员新被标记为弃用。

供智能体使用

GET https://vigia.coredls.cloud/v1/packages/npm/yaml/upgrade?from=1.10.3&to=2.9.1