yaml 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +27 -8
  2. package/browser/dist/compose/resolve-props.js +1 -1
  3. package/browser/dist/log.js +1 -4
  4. package/browser/dist/schema/json/schema.js +1 -1
  5. package/browser/dist/schema/yaml-1.1/binary.js +2 -11
  6. package/browser/dist/schema/yaml-1.1/timestamp.js +1 -1
  7. package/browser/dist/stringify/stringifyString.js +20 -11
  8. package/browser/dist/util.js +1 -1
  9. package/dist/compose/compose-collection.d.ts +4 -4
  10. package/dist/compose/compose-doc.d.ts +6 -6
  11. package/dist/compose/compose-node.d.ts +7 -7
  12. package/dist/compose/compose-scalar.d.ts +4 -4
  13. package/dist/compose/composer.d.ts +7 -6
  14. package/dist/compose/composer.js +2 -1
  15. package/dist/compose/resolve-block-map.d.ts +5 -5
  16. package/dist/compose/resolve-block-scalar.d.ts +5 -5
  17. package/dist/compose/resolve-block-seq.d.ts +5 -5
  18. package/dist/compose/resolve-end.d.ts +2 -2
  19. package/dist/compose/resolve-flow-collection.d.ts +7 -7
  20. package/dist/compose/resolve-flow-scalar.d.ts +4 -4
  21. package/dist/compose/resolve-props.d.ts +2 -2
  22. package/dist/compose/resolve-props.js +1 -1
  23. package/dist/compose/util-contains-newline.d.ts +1 -1
  24. package/dist/compose/util-empty-scalar-position.d.ts +1 -1
  25. package/dist/compose/util-flow-indent-check.d.ts +2 -2
  26. package/dist/compose/util-map-includes.d.ts +3 -3
  27. package/dist/doc/Document.d.ts +11 -11
  28. package/dist/doc/anchors.d.ts +2 -2
  29. package/dist/doc/createNode.d.ts +4 -4
  30. package/dist/doc/directives.d.ts +1 -1
  31. package/dist/index.d.ts +21 -18
  32. package/dist/log.js +4 -2
  33. package/dist/nodes/Alias.d.ts +9 -8
  34. package/dist/nodes/Collection.d.ts +4 -4
  35. package/dist/nodes/Node.d.ts +10 -10
  36. package/dist/nodes/Pair.d.ts +9 -8
  37. package/dist/nodes/Scalar.d.ts +4 -3
  38. package/dist/nodes/YAMLMap.d.ts +10 -10
  39. package/dist/nodes/YAMLSeq.d.ts +10 -10
  40. package/dist/nodes/addPairToJSMap.d.ts +3 -3
  41. package/dist/nodes/identity.d.ts +7 -7
  42. package/dist/nodes/toJS.d.ts +2 -2
  43. package/dist/options.d.ts +10 -10
  44. package/dist/parse/cst-scalar.d.ts +4 -4
  45. package/dist/parse/cst-stringify.d.ts +1 -1
  46. package/dist/parse/cst-visit.d.ts +2 -2
  47. package/dist/parse/cst.d.ts +4 -3
  48. package/dist/parse/lexer.d.ts +1 -1
  49. package/dist/parse/parser.d.ts +4 -4
  50. package/dist/parse/parser.js +2 -1
  51. package/dist/public-api.d.ts +6 -5
  52. package/dist/schema/Schema.d.ts +4 -4
  53. package/dist/schema/common/map.d.ts +1 -1
  54. package/dist/schema/common/null.d.ts +1 -1
  55. package/dist/schema/common/seq.d.ts +1 -1
  56. package/dist/schema/common/string.d.ts +1 -1
  57. package/dist/schema/core/bool.d.ts +1 -1
  58. package/dist/schema/core/float.d.ts +1 -1
  59. package/dist/schema/core/int.d.ts +1 -1
  60. package/dist/schema/core/schema.d.ts +1 -1
  61. package/dist/schema/json/schema.d.ts +1 -1
  62. package/dist/schema/json/schema.js +1 -1
  63. package/dist/schema/tags.d.ts +2 -2
  64. package/dist/schema/types.d.ts +8 -8
  65. package/dist/schema/yaml-1.1/binary.d.ts +1 -1
  66. package/dist/schema/yaml-1.1/binary.js +6 -5
  67. package/dist/schema/yaml-1.1/bool.d.ts +1 -1
  68. package/dist/schema/yaml-1.1/float.d.ts +1 -1
  69. package/dist/schema/yaml-1.1/int.d.ts +1 -1
  70. package/dist/schema/yaml-1.1/merge.d.ts +3 -3
  71. package/dist/schema/yaml-1.1/omap.d.ts +11 -17
  72. package/dist/schema/yaml-1.1/pairs.d.ts +7 -7
  73. package/dist/schema/yaml-1.1/schema.d.ts +1 -1
  74. package/dist/schema/yaml-1.1/set.d.ts +9 -9
  75. package/dist/schema/yaml-1.1/timestamp.d.ts +1 -1
  76. package/dist/schema/yaml-1.1/timestamp.js +1 -1
  77. package/dist/stringify/stringify.d.ts +3 -3
  78. package/dist/stringify/stringifyCollection.d.ts +2 -2
  79. package/dist/stringify/stringifyDocument.d.ts +3 -3
  80. package/dist/stringify/stringifyNumber.d.ts +1 -1
  81. package/dist/stringify/stringifyPair.d.ts +2 -2
  82. package/dist/stringify/stringifyString.d.ts +2 -2
  83. package/dist/stringify/stringifyString.js +20 -11
  84. package/dist/util.d.ts +16 -12
  85. package/dist/util.js +2 -2
  86. package/dist/visit.d.ts +7 -7
  87. package/package.json +4 -4
package/README.md CHANGED
@@ -55,24 +55,29 @@ The first has the simplest API and "just works", the second gets you all the bel
55
55
 
56
56
  A [command-line tool](https://eemeli.org/yaml/#command-line-tool) is also included.
57
57
 
58
+ ### Parse & Stringify
59
+
58
60
  ```js
59
61
  import { parse, stringify } from 'yaml'
60
- // or
61
- import YAML from 'yaml'
62
- // or
63
- const YAML = require('yaml')
64
62
  ```
65
63
 
66
- ### Parse & Stringify
67
-
68
64
  - [`parse(str, reviver?, options?): value`](https://eemeli.org/yaml/#yaml-parse)
69
65
  - [`stringify(value, replacer?, options?): string`](https://eemeli.org/yaml/#yaml-stringify)
70
66
 
71
67
  ### Documents
72
68
 
69
+ <!-- prettier-ignore -->
70
+ ```js
71
+ import {
72
+ Document,
73
+ isDocument,
74
+ parseAllDocuments,
75
+ parseDocument
76
+ } from 'yaml'
77
+ ```
78
+
73
79
  - [`Document`](https://eemeli.org/yaml/#documents)
74
80
  - [`constructor(value, replacer?, options?)`](https://eemeli.org/yaml/#creating-documents)
75
- - [`#anchors`](https://eemeli.org/yaml/#working-with-anchors)
76
81
  - [`#contents`](https://eemeli.org/yaml/#content-nodes)
77
82
  - [`#directives`](https://eemeli.org/yaml/#stream-directives)
78
83
  - [`#errors`](https://eemeli.org/yaml/#errors)
@@ -83,6 +88,15 @@ const YAML = require('yaml')
83
88
 
84
89
  ### Content Nodes
85
90
 
91
+ <!-- prettier-ignore -->
92
+ ```js
93
+ import {
94
+ isAlias, isCollection, isMap, isNode,
95
+ isPair, isScalar, isSeq, Scalar,
96
+ visit, visitAsync, YAMLMap, YAMLSeq
97
+ } from 'yaml'
98
+ ```
99
+
86
100
  - [`isAlias(foo): boolean`](https://eemeli.org/yaml/#identifying-node-types)
87
101
  - [`isCollection(foo): boolean`](https://eemeli.org/yaml/#identifying-node-types)
88
102
  - [`isMap(foo): boolean`](https://eemeli.org/yaml/#identifying-node-types)
@@ -93,13 +107,18 @@ const YAML = require('yaml')
93
107
  - [`new Scalar(value)`](https://eemeli.org/yaml/#scalar-values)
94
108
  - [`new YAMLMap()`](https://eemeli.org/yaml/#collections)
95
109
  - [`new YAMLSeq()`](https://eemeli.org/yaml/#collections)
96
- - [`doc.createAlias(node, name?): Alias`](https://eemeli.org/yaml/#working-with-anchors)
110
+ - [`doc.createAlias(node, name?): Alias`](https://eemeli.org/yaml/#creating-nodes)
97
111
  - [`doc.createNode(value, options?): Node`](https://eemeli.org/yaml/#creating-nodes)
98
112
  - [`doc.createPair(key, value): Pair`](https://eemeli.org/yaml/#creating-nodes)
99
113
  - [`visit(node, visitor)`](https://eemeli.org/yaml/#finding-and-modifying-nodes)
114
+ - [`visitAsync(node, visitor)`](https://eemeli.org/yaml/#finding-and-modifying-nodes)
100
115
 
101
116
  ### Parsing YAML
102
117
 
118
+ ```js
119
+ import { Composer, Lexer, Parser } from 'yaml'
120
+ ```
121
+
103
122
  - [`new Lexer().lex(src)`](https://eemeli.org/yaml/#lexer)
104
123
  - [`new Parser(onNewLine?).parse(src)`](https://eemeli.org/yaml/#parser)
105
124
  - [`new Composer(options?).compose(tokens)`](https://eemeli.org/yaml/#composer)
@@ -55,7 +55,7 @@ function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIn
55
55
  if (atNewline) {
56
56
  if (comment)
57
57
  comment += token.source;
58
- else
58
+ else if (!found || indicator !== 'seq-item-ind')
59
59
  spaceBefore = true;
60
60
  }
61
61
  else
@@ -4,10 +4,7 @@ function debug(logLevel, ...messages) {
4
4
  }
5
5
  function warn(logLevel, warning) {
6
6
  if (logLevel === 'debug' || logLevel === 'warn') {
7
- if (typeof process !== 'undefined' && process.emitWarning)
8
- process.emitWarning(warning);
9
- else
10
- console.warn(warning);
7
+ console.warn(warning);
11
8
  }
12
9
  }
13
10
 
@@ -27,7 +27,7 @@ const jsonScalars = [
27
27
  identify: value => typeof value === 'boolean',
28
28
  default: true,
29
29
  tag: 'tag:yaml.org,2002:bool',
30
- test: /^true|false$/,
30
+ test: /^true$|^false$/,
31
31
  resolve: str => str === 'true',
32
32
  stringify: stringifyJSON
33
33
  },
@@ -14,10 +14,7 @@ const binary = {
14
14
  * document.querySelector('#photo').src = URL.createObjectURL(blob)
15
15
  */
16
16
  resolve(src, onError) {
17
- if (typeof Buffer === 'function') {
18
- return Buffer.from(src, 'base64');
19
- }
20
- else if (typeof atob === 'function') {
17
+ if (typeof atob === 'function') {
21
18
  // On IE 11, atob() can't handle newlines
22
19
  const str = atob(src.replace(/[\n\r]/g, ''));
23
20
  const buffer = new Uint8Array(str.length);
@@ -33,13 +30,7 @@ const binary = {
33
30
  stringify({ comment, type, value }, ctx, onComment, onChompKeep) {
34
31
  const buf = value; // checked earlier by binary.identify()
35
32
  let str;
36
- if (typeof Buffer === 'function') {
37
- str =
38
- buf instanceof Buffer
39
- ? buf.toString('base64')
40
- : Buffer.from(buf.buffer).toString('base64');
41
- }
42
- else if (typeof btoa === 'function') {
33
+ if (typeof btoa === 'function') {
43
34
  let s = '';
44
35
  for (let i = 0; i < buf.length; ++i)
45
36
  s += String.fromCharCode(buf[i]);
@@ -95,7 +95,7 @@ const timestamp = {
95
95
  }
96
96
  return new Date(date);
97
97
  },
98
- stringify: ({ value }) => value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, '')
98
+ stringify: ({ value }) => value.toISOString().replace(/(T00:00:00)?\.000Z$/, '')
99
99
  };
100
100
 
101
101
  export { floatTime, intTime, timestamp };
@@ -219,23 +219,32 @@ function blockString({ comment, type, value }, ctx, onComment, onChompKeep) {
219
219
  start = start.replace(/\n+/g, `$&${indent}`);
220
220
  }
221
221
  const indentSize = indent ? '2' : '1'; // root is at -1
222
- let header = (literal ? '|' : '>') + (startWithSpace ? indentSize : '') + chomp;
222
+ // Leading | or > is added later
223
+ let header = (startWithSpace ? indentSize : '') + chomp;
223
224
  if (comment) {
224
225
  header += ' ' + commentString(comment.replace(/ ?[\r\n]+/g, ' '));
225
226
  if (onComment)
226
227
  onComment();
227
228
  }
228
- if (literal) {
229
- value = value.replace(/\n+/g, `$&${indent}`);
230
- return `${header}\n${indent}${start}${value}${end}`;
229
+ if (!literal) {
230
+ const foldedValue = value
231
+ .replace(/\n+/g, '\n$&')
232
+ .replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, '$1$2') // more-indented lines aren't folded
233
+ // ^ more-ind. ^ empty ^ capture next empty lines only at end of indent
234
+ .replace(/\n+/g, `$&${indent}`);
235
+ let literalFallback = false;
236
+ const foldOptions = getFoldOptions(ctx, true);
237
+ if (blockQuote !== 'folded' && type !== Scalar.BLOCK_FOLDED) {
238
+ foldOptions.onOverflow = () => {
239
+ literalFallback = true;
240
+ };
241
+ }
242
+ const body = foldFlowLines(`${start}${foldedValue}${end}`, indent, FOLD_BLOCK, foldOptions);
243
+ if (!literalFallback)
244
+ return `>${header}\n${indent}${body}`;
231
245
  }
232
- value = value
233
- .replace(/\n+/g, '\n$&')
234
- .replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, '$1$2') // more-indented lines aren't folded
235
- // ^ more-ind. ^ empty ^ capture next empty lines only at end of indent
236
- .replace(/\n+/g, `$&${indent}`);
237
- const body = foldFlowLines(`${start}${value}${end}`, indent, FOLD_BLOCK, getFoldOptions(ctx, true));
238
- return `${header}\n${indent}${body}`;
246
+ value = value.replace(/\n+/g, `$&${indent}`);
247
+ return `|${header}\n${indent}${start}${value}${end}`;
239
248
  }
240
249
  function plainString(item, ctx, onComment, onChompKeep) {
241
250
  const { type, value } = item;
@@ -1,8 +1,8 @@
1
1
  export { createNode } from './doc/createNode.js';
2
2
  export { debug, warn } from './log.js';
3
3
  export { createPair } from './nodes/Pair.js';
4
- export { findPair } from './nodes/YAMLMap.js';
5
4
  export { toJS } from './nodes/toJS.js';
5
+ export { findPair } from './nodes/YAMLMap.js';
6
6
  export { map as mapTag } from './schema/common/map.js';
7
7
  export { seq as seqTag } from './schema/common/seq.js';
8
8
  export { string as stringTag } from './schema/common/string.js';
@@ -1,7 +1,7 @@
1
- import type { ParsedNode } from '../nodes/Node.js';
2
- import type { BlockMap, BlockSequence, FlowCollection, SourceToken } from '../parse/cst.js';
3
- import type { ComposeContext, ComposeNode } from './compose-node.js';
4
- import type { ComposeErrorHandler } from './composer.js';
1
+ import type { ParsedNode } from '../nodes/Node';
2
+ import type { BlockMap, BlockSequence, FlowCollection, SourceToken } from '../parse/cst';
3
+ import type { ComposeContext, ComposeNode } from './compose-node';
4
+ import type { ComposeErrorHandler } from './composer';
5
5
  interface Props {
6
6
  anchor: SourceToken | null;
7
7
  tag: SourceToken | null;
@@ -1,7 +1,7 @@
1
- import type { Directives } from '../doc/directives.js';
2
- import { Document } from '../doc/Document.js';
3
- import type { ParsedNode } from '../nodes/Node.js';
4
- import type { DocumentOptions, ParseOptions, SchemaOptions } from '../options.js';
5
- import type * as CST from '../parse/cst.js';
6
- import type { ComposeErrorHandler } from './composer.js';
1
+ import type { Directives } from '../doc/directives';
2
+ import { Document } from '../doc/Document';
3
+ import type { ParsedNode } from '../nodes/Node';
4
+ import type { DocumentOptions, ParseOptions, SchemaOptions } from '../options';
5
+ import type * as CST from '../parse/cst';
6
+ import type { ComposeErrorHandler } from './composer';
7
7
  export declare function composeDoc<Contents extends ParsedNode = ParsedNode, Strict extends boolean = true>(options: ParseOptions & DocumentOptions & SchemaOptions, directives: Directives, { offset, start, value, end }: CST.Document, onError: ComposeErrorHandler): Document.Parsed<Contents, Strict>;
@@ -1,9 +1,9 @@
1
- import type { Directives } from '../doc/directives.js';
2
- import type { ParsedNode } from '../nodes/Node.js';
3
- import type { ParseOptions } from '../options.js';
4
- import type { SourceToken, Token } from '../parse/cst.js';
5
- import type { Schema } from '../schema/Schema.js';
6
- import type { ComposeErrorHandler } from './composer.js';
1
+ import type { Directives } from '../doc/directives';
2
+ import type { ParsedNode } from '../nodes/Node';
3
+ import type { ParseOptions } from '../options';
4
+ import type { SourceToken, Token } from '../parse/cst';
5
+ import type { Schema } from '../schema/Schema';
6
+ import type { ComposeErrorHandler } from './composer';
7
7
  export interface ComposeContext {
8
8
  atKey: boolean;
9
9
  atRoot: boolean;
@@ -25,5 +25,5 @@ declare const CN: {
25
25
  };
26
26
  export type ComposeNode = typeof CN;
27
27
  export declare function composeNode(ctx: ComposeContext, token: Token, props: Props, onError: ComposeErrorHandler): ParsedNode;
28
- export declare function composeEmptyNode(ctx: ComposeContext, offset: number, before: Token[] | undefined, pos: number | null, { spaceBefore, comment, anchor, tag, end }: Props, onError: ComposeErrorHandler): import("../index.js").Scalar.Parsed;
28
+ export declare function composeEmptyNode(ctx: ComposeContext, offset: number, before: Token[] | undefined, pos: number | null, { spaceBefore, comment, anchor, tag, end }: Props, onError: ComposeErrorHandler): import('../index').Scalar.Parsed;
29
29
  export {};
@@ -1,5 +1,5 @@
1
- import { Scalar } from '../nodes/Scalar.js';
2
- import type { BlockScalar, FlowScalar, SourceToken } from '../parse/cst.js';
3
- import type { ComposeContext } from './compose-node.js';
4
- import type { ComposeErrorHandler } from './composer.js';
1
+ import { Scalar } from '../nodes/Scalar';
2
+ import type { BlockScalar, FlowScalar, SourceToken } from '../parse/cst';
3
+ import type { ComposeContext } from './compose-node';
4
+ import type { ComposeErrorHandler } from './composer';
5
5
  export declare function composeScalar(ctx: ComposeContext, token: FlowScalar | BlockScalar, tagToken: SourceToken | null, onError: ComposeErrorHandler): Scalar.Parsed;
@@ -1,9 +1,10 @@
1
- import { Directives } from '../doc/directives.js';
2
- import { Document } from '../doc/Document.js';
3
- import { ErrorCode, YAMLParseError, YAMLWarning } from '../errors.js';
4
- import type { ParsedNode, Range } from '../nodes/Node.js';
5
- import type { DocumentOptions, ParseOptions, SchemaOptions } from '../options.js';
6
- import type { Token } from '../parse/cst.js';
1
+ import { Directives } from '../doc/directives';
2
+ import { Document } from '../doc/Document';
3
+ import type { ErrorCode } from '../errors';
4
+ import { YAMLParseError, YAMLWarning } from '../errors';
5
+ import type { ParsedNode, Range } from '../nodes/Node';
6
+ import type { DocumentOptions, ParseOptions, SchemaOptions } from '../options';
7
+ import type { Token } from '../parse/cst';
7
8
  type ErrorSource = number | [number, number] | Range | {
8
9
  offset: number;
9
10
  source?: string;
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var node_process = require('node:process');
3
4
  var directives = require('../doc/directives.js');
4
5
  var Document = require('../doc/Document.js');
5
6
  var errors = require('../errors.js');
@@ -133,7 +134,7 @@ class Composer {
133
134
  }
134
135
  /** Advance the composer by one CST token. */
135
136
  *next(token) {
136
- if (process.env.LOG_STREAM)
137
+ if (node_process.env.LOG_STREAM)
137
138
  console.dir(token, { depth: null });
138
139
  switch (token.type) {
139
140
  case 'directive':
@@ -1,6 +1,6 @@
1
- import { YAMLMap } from '../nodes/YAMLMap.js';
2
- import type { BlockMap } from '../parse/cst.js';
3
- import { CollectionTag } from '../schema/types.js';
4
- import type { ComposeContext, ComposeNode } from './compose-node.js';
5
- import type { ComposeErrorHandler } from './composer.js';
1
+ import { YAMLMap } from '../nodes/YAMLMap';
2
+ import type { BlockMap } from '../parse/cst';
3
+ import type { CollectionTag } from '../schema/types';
4
+ import type { ComposeContext, ComposeNode } from './compose-node';
5
+ import type { ComposeErrorHandler } from './composer';
6
6
  export declare function resolveBlockMap({ composeNode, composeEmptyNode }: ComposeNode, ctx: ComposeContext, bm: BlockMap, onError: ComposeErrorHandler, tag?: CollectionTag): YAMLMap.Parsed;
@@ -1,8 +1,8 @@
1
- import { Range } from '../nodes/Node.js';
2
- import { Scalar } from '../nodes/Scalar.js';
3
- import type { BlockScalar } from '../parse/cst.js';
4
- import type { ComposeContext } from './compose-node.js';
5
- import type { ComposeErrorHandler } from './composer.js';
1
+ import type { Range } from '../nodes/Node';
2
+ import { Scalar } from '../nodes/Scalar';
3
+ import type { BlockScalar } from '../parse/cst';
4
+ import type { ComposeContext } from './compose-node';
5
+ import type { ComposeErrorHandler } from './composer';
6
6
  export declare function resolveBlockScalar(ctx: ComposeContext, scalar: BlockScalar, onError: ComposeErrorHandler): {
7
7
  value: string;
8
8
  type: Scalar.BLOCK_FOLDED | Scalar.BLOCK_LITERAL | null;
@@ -1,6 +1,6 @@
1
- import { YAMLSeq } from '../nodes/YAMLSeq.js';
2
- import type { BlockSequence } from '../parse/cst.js';
3
- import { CollectionTag } from '../schema/types.js';
4
- import type { ComposeContext, ComposeNode } from './compose-node.js';
5
- import type { ComposeErrorHandler } from './composer.js';
1
+ import { YAMLSeq } from '../nodes/YAMLSeq';
2
+ import type { BlockSequence } from '../parse/cst';
3
+ import type { CollectionTag } from '../schema/types';
4
+ import type { ComposeContext, ComposeNode } from './compose-node';
5
+ import type { ComposeErrorHandler } from './composer';
6
6
  export declare function resolveBlockSeq({ composeNode, composeEmptyNode }: ComposeNode, ctx: ComposeContext, bs: BlockSequence, onError: ComposeErrorHandler, tag?: CollectionTag): YAMLSeq.Parsed;
@@ -1,5 +1,5 @@
1
- import type { SourceToken } from '../parse/cst.js';
2
- import type { ComposeErrorHandler } from './composer.js';
1
+ import type { SourceToken } from '../parse/cst';
2
+ import type { ComposeErrorHandler } from './composer';
3
3
  export declare function resolveEnd(end: SourceToken[] | undefined, offset: number, reqSpace: boolean, onError: ComposeErrorHandler): {
4
4
  comment: string;
5
5
  offset: number;
@@ -1,7 +1,7 @@
1
- import { YAMLMap } from '../nodes/YAMLMap.js';
2
- import { YAMLSeq } from '../nodes/YAMLSeq.js';
3
- import type { FlowCollection } from '../parse/cst.js';
4
- import { CollectionTag } from '../schema/types.js';
5
- import type { ComposeContext, ComposeNode } from './compose-node.js';
6
- import type { ComposeErrorHandler } from './composer.js';
7
- export declare function resolveFlowCollection({ composeNode, composeEmptyNode }: ComposeNode, ctx: ComposeContext, fc: FlowCollection, onError: ComposeErrorHandler, tag?: CollectionTag): YAMLMap.Parsed<import("../index.js").ParsedNode, import("../index.js").ParsedNode | null> | YAMLSeq.Parsed<import("../index.js").ParsedNode>;
1
+ import { YAMLMap } from '../nodes/YAMLMap';
2
+ import { YAMLSeq } from '../nodes/YAMLSeq';
3
+ import type { FlowCollection } from '../parse/cst';
4
+ import type { CollectionTag } from '../schema/types';
5
+ import type { ComposeContext, ComposeNode } from './compose-node';
6
+ import type { ComposeErrorHandler } from './composer';
7
+ export declare function resolveFlowCollection({ composeNode, composeEmptyNode }: ComposeNode, ctx: ComposeContext, fc: FlowCollection, onError: ComposeErrorHandler, tag?: CollectionTag): YAMLMap.Parsed<import('../index').ParsedNode, import('../index').ParsedNode | null> | YAMLSeq.Parsed<import('../index').ParsedNode>;
@@ -1,7 +1,7 @@
1
- import { Range } from '../nodes/Node.js';
2
- import { Scalar } from '../nodes/Scalar.js';
3
- import type { FlowScalar } from '../parse/cst.js';
4
- import type { ComposeErrorHandler } from './composer.js';
1
+ import type { Range } from '../nodes/Node';
2
+ import { Scalar } from '../nodes/Scalar';
3
+ import type { FlowScalar } from '../parse/cst';
4
+ import type { ComposeErrorHandler } from './composer';
5
5
  export declare function resolveFlowScalar(scalar: FlowScalar, strict: boolean, onError: ComposeErrorHandler): {
6
6
  value: string;
7
7
  type: Scalar.PLAIN | Scalar.QUOTE_DOUBLE | Scalar.QUOTE_SINGLE | null;
@@ -1,5 +1,5 @@
1
- import type { SourceToken, Token } from '../parse/cst.js';
2
- import type { ComposeErrorHandler } from './composer.js';
1
+ import type { SourceToken, Token } from '../parse/cst';
2
+ import type { ComposeErrorHandler } from './composer';
3
3
  export interface ResolvePropsArg {
4
4
  flow?: 'flow map' | 'flow sequence';
5
5
  indicator: 'doc-start' | 'explicit-key-ind' | 'map-value-ind' | 'seq-item-ind';
@@ -57,7 +57,7 @@ function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIn
57
57
  if (atNewline) {
58
58
  if (comment)
59
59
  comment += token.source;
60
- else
60
+ else if (!found || indicator !== 'seq-item-ind')
61
61
  spaceBefore = true;
62
62
  }
63
63
  else
@@ -1,2 +1,2 @@
1
- import type { Token } from '../parse/cst.js';
1
+ import type { Token } from '../parse/cst';
2
2
  export declare function containsNewline(key: Token | null | undefined): boolean | null;
@@ -1,2 +1,2 @@
1
- import type { Token } from '../parse/cst.js';
1
+ import type { Token } from '../parse/cst';
2
2
  export declare function emptyScalarPosition(offset: number, before: Token[] | undefined, pos: number | null): number;
@@ -1,3 +1,3 @@
1
- import { Token } from '../parse/cst';
2
- import { ComposeErrorHandler } from './composer';
1
+ import type { Token } from '../parse/cst';
2
+ import type { ComposeErrorHandler } from './composer';
3
3
  export declare function flowIndentCheck(indent: number, fc: Token | null | undefined, onError: ComposeErrorHandler): void;
@@ -1,4 +1,4 @@
1
- import type { ParsedNode } from '../nodes/Node.js';
2
- import type { Pair } from '../nodes/Pair.js';
3
- import type { ComposeContext } from './compose-node.js';
1
+ import type { ParsedNode } from '../nodes/Node';
2
+ import type { Pair } from '../nodes/Pair';
3
+ import type { ComposeContext } from './compose-node';
4
4
  export declare function mapIncludes(ctx: ComposeContext, items: Pair<ParsedNode>[], search: ParsedNode): boolean;
@@ -1,14 +1,14 @@
1
- import type { YAMLError, YAMLWarning } from '../errors.js';
2
- import { Alias } from '../nodes/Alias.js';
3
- import { NODE_TYPE } from '../nodes/identity.js';
4
- import type { Node, NodeType, ParsedNode, Range } from '../nodes/Node.js';
5
- import { Pair } from '../nodes/Pair.js';
6
- import type { Scalar } from '../nodes/Scalar.js';
7
- import type { YAMLMap } from '../nodes/YAMLMap.js';
8
- import type { YAMLSeq } from '../nodes/YAMLSeq.js';
9
- import type { CreateNodeOptions, DocumentOptions, ParseOptions, SchemaOptions, ToJSOptions, ToStringOptions } from '../options.js';
10
- import { Schema } from '../schema/Schema.js';
11
- import { Directives } from './directives.js';
1
+ import type { YAMLError, YAMLWarning } from '../errors';
2
+ import { Alias } from '../nodes/Alias';
3
+ import { NODE_TYPE } from '../nodes/identity';
4
+ import type { Node, NodeType, ParsedNode, Range } from '../nodes/Node';
5
+ import { Pair } from '../nodes/Pair';
6
+ import type { Scalar } from '../nodes/Scalar';
7
+ import type { YAMLMap } from '../nodes/YAMLMap';
8
+ import type { YAMLSeq } from '../nodes/YAMLSeq';
9
+ import type { CreateNodeOptions, DocumentOptions, ParseOptions, SchemaOptions, ToJSOptions, ToStringOptions } from '../options';
10
+ import { Schema } from '../schema/Schema';
11
+ import { Directives } from './directives';
12
12
  export type Replacer = any[] | ((key: any, value: any) => unknown);
13
13
  export declare namespace Document {
14
14
  /** @ts-ignore The typing of directives fails in TS <= 4.2 */
@@ -1,5 +1,5 @@
1
- import type { Node } from '../nodes/Node.js';
2
- import type { Document } from './Document.js';
1
+ import type { Node } from '../nodes/Node';
2
+ import type { Document } from './Document';
3
3
  /**
4
4
  * Verify that the input string is a valid anchor.
5
5
  *
@@ -1,7 +1,7 @@
1
- import type { Node } from '../nodes/Node.js';
2
- import type { Schema } from '../schema/Schema.js';
3
- import type { CollectionTag, ScalarTag } from '../schema/types.js';
4
- import type { Replacer } from './Document.js';
1
+ import type { Node } from '../nodes/Node';
2
+ import type { Schema } from '../schema/Schema';
3
+ import type { CollectionTag, ScalarTag } from '../schema/types';
4
+ import type { Replacer } from './Document';
5
5
  export interface CreateNodeContext {
6
6
  aliasDuplicateObjects: boolean;
7
7
  keepUndefined: boolean;
@@ -1,4 +1,4 @@
1
- import type { Document } from './Document.js';
1
+ import type { Document } from './Document';
2
2
  export declare class Directives {
3
3
  static defaultYaml: Directives['yaml'];
4
4
  static defaultTags: Directives['tags'];
package/dist/index.d.ts CHANGED
@@ -1,22 +1,25 @@
1
- export { Composer } from './compose/composer.js';
2
- export { Document } from './doc/Document.js';
3
- export { Schema } from './schema/Schema.js';
4
- export { ErrorCode, YAMLError, YAMLParseError, YAMLWarning } from './errors.js';
5
- export { Alias } from './nodes/Alias.js';
6
- export { isAlias, isCollection, isDocument, isMap, isNode, isPair, isScalar, isSeq } from './nodes/identity.js';
7
- export { Node, ParsedNode, Range } from './nodes/Node.js';
8
- export { Pair } from './nodes/Pair.js';
9
- export { Scalar } from './nodes/Scalar.js';
10
- export { YAMLMap } from './nodes/YAMLMap.js';
11
- export { YAMLSeq } from './nodes/YAMLSeq.js';
12
- export type { CreateNodeOptions, DocumentOptions, ParseOptions, SchemaOptions, ToJSOptions, ToStringOptions } from './options.js';
13
- export * as CST from './parse/cst.js';
14
- export { Lexer } from './parse/lexer.js';
15
- export { LineCounter } from './parse/line-counter.js';
16
- export { Parser } from './parse/parser.js';
17
- export { EmptyStream, parse, parseAllDocuments, parseDocument, stringify } from './public-api.js';
1
+ export { Composer } from './compose/composer';
2
+ export { Document } from './doc/Document';
3
+ export { Schema } from './schema/Schema';
4
+ export type { ErrorCode } from './errors';
5
+ export { YAMLError, YAMLParseError, YAMLWarning } from './errors';
6
+ export { Alias } from './nodes/Alias';
7
+ export { isAlias, isCollection, isDocument, isMap, isNode, isPair, isScalar, isSeq } from './nodes/identity';
8
+ export type { Node, ParsedNode, Range } from './nodes/Node';
9
+ export { Pair } from './nodes/Pair';
10
+ export { Scalar } from './nodes/Scalar';
11
+ export { YAMLMap } from './nodes/YAMLMap';
12
+ export { YAMLSeq } from './nodes/YAMLSeq';
13
+ export type { CreateNodeOptions, DocumentOptions, ParseOptions, SchemaOptions, ToJSOptions, ToStringOptions } from './options';
14
+ export * as CST from './parse/cst';
15
+ export { Lexer } from './parse/lexer';
16
+ export { LineCounter } from './parse/line-counter';
17
+ export { Parser } from './parse/parser';
18
+ export type { EmptyStream } from './public-api';
19
+ export { parse, parseAllDocuments, parseDocument, stringify } from './public-api';
18
20
  export type { TagId, Tags } from './schema/tags';
19
21
  export type { CollectionTag, ScalarTag } from './schema/types';
20
22
  export type { YAMLOMap } from './schema/yaml-1.1/omap';
21
23
  export type { YAMLSet } from './schema/yaml-1.1/set';
22
- export { asyncVisitor, asyncVisitorFn, visit, visitAsync, visitor, visitorFn } from './visit.js';
24
+ export type { asyncVisitor, asyncVisitorFn, visitor, visitorFn } from './visit';
25
+ export { visit, visitAsync } from './visit';
package/dist/log.js CHANGED
@@ -1,13 +1,15 @@
1
1
  'use strict';
2
2
 
3
+ var node_process = require('node:process');
4
+
3
5
  function debug(logLevel, ...messages) {
4
6
  if (logLevel === 'debug')
5
7
  console.log(...messages);
6
8
  }
7
9
  function warn(logLevel, warning) {
8
10
  if (logLevel === 'debug' || logLevel === 'warn') {
9
- if (typeof process !== 'undefined' && process.emitWarning)
10
- process.emitWarning(warning);
11
+ if (typeof node_process.emitWarning === 'function')
12
+ node_process.emitWarning(warning);
11
13
  else
12
14
  console.warn(warning);
13
15
  }
@@ -1,11 +1,12 @@
1
- import type { Document } from '../doc/Document.js';
2
- import type { FlowScalar } from '../parse/cst.js';
3
- import type { StringifyContext } from '../stringify/stringify.js';
4
- import { NodeBase, Range } from './Node.js';
1
+ import type { Document } from '../doc/Document';
2
+ import type { FlowScalar } from '../parse/cst';
3
+ import type { StringifyContext } from '../stringify/stringify';
4
+ import type { Range } from './Node';
5
+ import { NodeBase } from './Node';
5
6
  import type { Scalar } from './Scalar';
6
- import { ToJSContext } from './toJS.js';
7
- import type { YAMLMap } from './YAMLMap.js';
8
- import type { YAMLSeq } from './YAMLSeq.js';
7
+ import type { ToJSContext } from './toJS';
8
+ import type { YAMLMap } from './YAMLMap';
9
+ import type { YAMLSeq } from './YAMLSeq';
9
10
  export declare namespace Alias {
10
11
  interface Parsed extends Alias {
11
12
  range: Range;
@@ -23,6 +24,6 @@ export declare class Alias extends NodeBase {
23
24
  * instance of the `source` anchor before this node.
24
25
  */
25
26
  resolve(doc: Document): Scalar | YAMLMap | YAMLSeq | undefined;
26
- toJSON(_arg?: unknown, ctx?: ToJSContext): {} | null;
27
+ toJSON(_arg?: unknown, ctx?: ToJSContext): unknown;
27
28
  toString(ctx?: StringifyContext, _onComment?: () => void, _onChompKeep?: () => void): string;
28
29
  }
@@ -1,7 +1,7 @@
1
- import type { Schema } from '../schema/Schema.js';
2
- import { NODE_TYPE } from './identity.js';
3
- import { NodeBase } from './Node.js';
4
- export declare function collectionFromPath(schema: Schema, path: unknown[], value: unknown): import("./Node.js").Node;
1
+ import type { Schema } from '../schema/Schema';
2
+ import { NODE_TYPE } from './identity';
3
+ import { NodeBase } from './Node';
4
+ export declare function collectionFromPath(schema: Schema, path: unknown[], value: unknown): import('./Node').Node;
5
5
  export declare const isEmptyPath: (path: Iterable<unknown> | null | undefined) => path is null | undefined;
6
6
  export declare abstract class Collection extends NodeBase {
7
7
  schema: Schema | undefined;
@@ -1,13 +1,13 @@
1
- import type { Document } from '../doc/Document.js';
2
- import type { ToJSOptions } from '../options.js';
3
- import { Token } from '../parse/cst.js';
4
- import type { StringifyContext } from '../stringify/stringify.js';
5
- import type { Alias } from './Alias.js';
6
- import { NODE_TYPE } from './identity.js';
7
- import type { Scalar } from './Scalar.js';
8
- import { ToJSContext } from './toJS.js';
9
- import type { MapLike, YAMLMap } from './YAMLMap.js';
10
- import type { YAMLSeq } from './YAMLSeq.js';
1
+ import type { Document } from '../doc/Document';
2
+ import type { ToJSOptions } from '../options';
3
+ import type { Token } from '../parse/cst';
4
+ import type { StringifyContext } from '../stringify/stringify';
5
+ import type { Alias } from './Alias';
6
+ import { NODE_TYPE } from './identity';
7
+ import type { Scalar } from './Scalar';
8
+ import type { ToJSContext } from './toJS';
9
+ import type { MapLike, YAMLMap } from './YAMLMap';
10
+ import type { YAMLSeq } from './YAMLSeq';
11
11
  export type Node<T = unknown> = Alias | Scalar<T> | YAMLMap<unknown, T> | YAMLSeq<T>;
12
12
  /** Utility type mapper */
13
13
  export type NodeType<T> = T extends string | number | bigint | boolean | null | undefined ? Scalar<T> : T extends Date ? Scalar<string | Date> : T extends Array<any> ? YAMLSeq<NodeType<T[number]>> : T extends {