| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372 | import { CST } from './parse-cst'import {  AST,  Alias,  Collection,  Merge,  Node,  Scalar,  Schema,  YAMLMap,  YAMLSeq} from './types'import { Type, YAMLError, YAMLWarning } from './util'export { AST, CST }export { default as parseCST } from './parse-cst'/** * `yaml` defines document-specific options in three places: as an argument of * parse, create and stringify calls, in the values of `YAML.defaultOptions`, * and in the version-dependent `YAML.Document.defaults` object. Values set in * `YAML.defaultOptions` override version-dependent defaults, and argument * options override both. */export const defaultOptions: Optionsexport interface Options extends Schema.Options {  /**   * Default prefix for anchors.   *   * Default: `'a'`, resulting in anchors `a1`, `a2`, etc.   */  anchorPrefix?: string  /**   * The number of spaces to use when indenting code.   *   * Default: `2`   */  indent?: number  /**   * Whether block sequences should be indented.   *   * Default: `true`   */  indentSeq?: boolean  /**   * Allow non-JSON JavaScript objects to remain in the `toJSON` output.   * Relevant with the YAML 1.1 `!!timestamp` and `!!binary` tags as well as BigInts.   *   * Default: `true`   */  keepBlobsInJSON?: boolean  /**   * Include references in the AST to each node's corresponding CST node.   *   * Default: `false`   */  keepCstNodes?: boolean  /**   * Store the original node type when parsing documents.   *   * Default: `true`   */  keepNodeTypes?: boolean  /**   * When outputting JS, use Map rather than Object to represent mappings.   *   * Default: `false`   */  mapAsMap?: boolean  /**   * Prevent exponential entity expansion attacks by limiting data aliasing count;   * set to `-1` to disable checks; `0` disallows all alias nodes.   *   * Default: `100`   */  maxAliasCount?: number  /**   * Include line position & node type directly in errors; drop their verbose source and context.   *   * Default: `false`   */  prettyErrors?: boolean  /**   * When stringifying, require keys to be scalars and to use implicit rather than explicit notation.   *   * Default: `false`   */  simpleKeys?: boolean  /**   * The YAML version used by documents without a `%YAML` directive.   *   * Default: `"1.2"`   */  version?: '1.0' | '1.1' | '1.2'}/** * Some customization options are availabe to control the parsing and * stringification of scalars. Note that these values are used by all documents. */export const scalarOptions: {  binary: scalarOptions.Binary  bool: scalarOptions.Bool  int: scalarOptions.Int  null: scalarOptions.Null  str: scalarOptions.Str}export namespace scalarOptions {  interface Binary {    /**     * The type of string literal used to stringify `!!binary` values.     *     * Default: `'BLOCK_LITERAL'`     */    defaultType: Scalar.Type    /**     * Maximum line width for `!!binary`.     *     * Default: `76`     */    lineWidth: number  }  interface Bool {    /**     * String representation for `true`. With the core schema, use `'true' | 'True' | 'TRUE'`.     *     * Default: `'true'`     */    trueStr: string    /**     * String representation for `false`. With the core schema, use `'false' | 'False' | 'FALSE'`.     *     * Default: `'false'`     */    falseStr: string  }  interface Int {    /**     * Whether integers should be parsed into BigInt values.     *     * Default: `false`     */    asBigInt: boolean  }  interface Null {    /**     * String representation for `null`. With the core schema, use `'null' | 'Null' | 'NULL' | '~' | ''`.     *     * Default: `'null'`     */    nullStr: string  }  interface Str {    /**     * The default type of string literal used to stringify values     *     * Default: `'PLAIN'`     */    defaultType: Scalar.Type    doubleQuoted: {      /**       * Whether to restrict double-quoted strings to use JSON-compatible syntax.       *       * Default: `false`       */      jsonEncoding: boolean      /**       * Minimum length to use multiple lines to represent the value.       *       * Default: `40`       */      minMultiLineLength: number    }    fold: {      /**       * Maximum line width (set to `0` to disable folding).       *       * Default: `80`       */      lineWidth: number      /**       * Minimum width for highly-indented content.       *       * Default: `20`       */      minContentWidth: number    }  }}export class Document extends Collection {  cstNode?: CST.Document  constructor(options?: Options)  tag: never  directivesEndMarker?: boolean  type: Type.DOCUMENT  /**   * Anchors associated with the document's nodes;   * also provides alias & merge node creators.   */  anchors: Document.Anchors  /** The document contents. */  contents: any  /** Errors encountered during parsing. */  errors: YAMLError[]  /**   * The schema used with the document. Use `setSchema()` to change or   * initialise.   */  schema?: Schema  /**   * Array of prefixes; each will have a string `handle` that   * starts and ends with `!` and a string `prefix` that the handle will be replaced by.   */  tagPrefixes: Document.TagPrefix[]  /**   * The parsed version of the source document;   * if true-ish, stringified output will include a `%YAML` directive.   */  version?: string  /** Warnings encountered during parsing. */  warnings: YAMLWarning[]  /**   * List the tags used in the document that are not in the default   * `tag:yaml.org,2002:` namespace.   */  listNonDefaultTags(): string[]  /** Parse a CST into this document */  parse(cst: CST.Document): this  /**   * When a document is created with `new YAML.Document()`, the schema object is   * not set as it may be influenced by parsed directives; call this with no   * arguments to set it manually, or with arguments to change the schema used   * by the document.   **/  setSchema(    id?: Options['version'] | Schema.Name,    customTags?: (Schema.TagId | Schema.Tag)[]  ): void  /** Set `handle` as a shorthand string for the `prefix` tag namespace. */  setTagPrefix(handle: string, prefix: string): void  /**   * A plain JavaScript representation of the document `contents`.   *   * @param arg Used by `JSON.stringify` to indicate the array index or property   *   name. If its value is a `string` and the document `contents` has a scalar   *   value, the `keepBlobsInJSON` option has no effect.   * @param onAnchor If defined, called with the resolved `value` and reference   *   `count` for each anchor in the document.   * */  toJSON(arg?: string, onAnchor?: (value: any, count: number) => void): any  /** A YAML representation of the document. */  toString(): string}export namespace Document {  interface Parsed extends Document {    contents: Scalar | YAMLMap | YAMLSeq | null    /** The schema used with the document. */    schema: Schema  }  interface Anchors {    /**     * Create a new `Alias` node, adding the required anchor for `node`.     * If `name` is empty, a new anchor name will be generated.     */    createAlias(node: Node, name?: string): Alias    /**     * Create a new `Merge` node with the given source nodes.     * Non-`Alias` sources will be automatically wrapped.     */    createMergePair(...nodes: Node[]): Merge    /** The anchor name associated with `node`, if set. */    getName(node: Node): undefined | string    /** List of all defined anchor names. */    getNames(): string[]    /** The node associated with the anchor `name`, if set. */    getNode(name: string): undefined | Node    /**     * Find an available anchor name with the given `prefix` and a     * numerical suffix.     */    newName(prefix: string): string    /**     * Associate an anchor with `node`. If `name` is empty, a new name will be generated.     * To remove an anchor, use `setAnchor(null, name)`.     */    setAnchor(node: Node | null, name?: string): void | string  }  interface TagPrefix {    handle: string    prefix: string  }}/** * Recursively turns objects into collections. Generic objects as well as `Map` * and its descendants become mappings, while arrays and other iterable objects * result in sequences. * * The primary purpose of this function is to enable attaching comments or other * metadata to a value, or to otherwise exert more fine-grained control over the * stringified output. To that end, you'll need to assign its return value to * the `contents` of a Document (or somewhere within said contents), as the * document's schema is required for YAML string output. * * @param wrapScalars If undefined or `true`, also wraps plain values in *   `Scalar` objects; if `false` and `value` is not an object, it will be *   returned directly. * @param tag Use to specify the collection type, e.g. `"!!omap"`. Note that *   this requires the corresponding tag to be available based on the default *   options. To use a specific document's schema, use `doc.schema.createNode`. */export function createNode(  value: any,  wrapScalars?: true,  tag?: string): YAMLMap | YAMLSeq | Scalar/** * YAML.createNode recursively turns objects into Map and arrays to Seq collections. * Its primary use is to enable attaching comments or other metadata to a value, * or to otherwise exert more fine-grained control over the stringified output. * * Doesn't wrap plain values in Scalar objects. */export function createNode(  value: any,  wrapScalars: false,  tag?: string): YAMLMap | YAMLSeq | string | number | boolean | null/** * Parse an input string into a single YAML.Document. */export function parseDocument(str: string, options?: Options): Document.Parsed/** * Parse the input as a stream of YAML documents. * * Documents should be separated from each other by `...` or `---` marker lines. */export function parseAllDocuments(  str: string,  options?: Options): Document.Parsed[]/** * Parse an input string into JavaScript. * * Only supports input consisting of a single YAML document; for multi-document * support you should use `YAML.parseAllDocuments`. May throw on error, and may * log warnings using `console.warn`. * * @param str A string with YAML formatting. * @returns The value will match the type of the root value of the parsed YAML *   document, so Maps become objects, Sequences arrays, and scalars result in *   nulls, booleans, numbers and strings. */export function parse(str: string, options?: Options): any/** * @returns Will always include \n as the last character, as is expected of YAML documents. */export function stringify(value: any, options?: Options): string
 |