yaml 2.0.0-2 → 2.0.0-6

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 (347) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +46 -26
  3. package/browser/dist/compose/compose-collection.js +59 -0
  4. package/browser/dist/compose/compose-doc.js +39 -0
  5. package/browser/dist/compose/compose-node.js +72 -0
  6. package/browser/dist/compose/compose-scalar.js +74 -0
  7. package/browser/dist/compose/composer.js +218 -0
  8. package/browser/dist/compose/resolve-block-map.js +93 -0
  9. package/browser/dist/compose/resolve-block-scalar.js +185 -0
  10. package/browser/dist/compose/resolve-block-seq.js +40 -0
  11. package/browser/dist/compose/resolve-end.js +37 -0
  12. package/browser/dist/compose/resolve-flow-collection.js +189 -0
  13. package/browser/dist/compose/resolve-flow-scalar.js +211 -0
  14. package/browser/dist/compose/resolve-props.js +126 -0
  15. package/browser/dist/compose/util-contains-newline.js +34 -0
  16. package/browser/dist/compose/util-empty-scalar-position.js +27 -0
  17. package/browser/dist/compose/util-map-includes.js +17 -0
  18. package/browser/dist/doc/Document.js +251 -348
  19. package/browser/dist/doc/anchors.js +72 -0
  20. package/browser/dist/doc/applyReviver.js +41 -28
  21. package/browser/dist/doc/createNode.js +71 -55
  22. package/browser/dist/doc/directives.js +161 -0
  23. package/browser/dist/errors.js +50 -72
  24. package/browser/dist/index.js +17 -73
  25. package/browser/dist/log.js +11 -7
  26. package/browser/dist/nodes/Alias.js +94 -0
  27. package/browser/dist/nodes/Collection.js +133 -0
  28. package/browser/dist/nodes/Node.js +41 -0
  29. package/browser/dist/nodes/Pair.js +28 -0
  30. package/browser/dist/nodes/Scalar.js +23 -0
  31. package/browser/dist/nodes/YAMLMap.js +116 -0
  32. package/browser/dist/nodes/YAMLSeq.js +105 -0
  33. package/browser/dist/nodes/addPairToJSMap.js +103 -0
  34. package/browser/dist/nodes/toJS.js +35 -0
  35. package/browser/dist/options.js +14 -95
  36. package/browser/dist/parse/cst-scalar.js +219 -0
  37. package/browser/dist/parse/cst-stringify.js +61 -0
  38. package/browser/dist/parse/cst-visit.js +97 -0
  39. package/browser/dist/parse/cst.js +98 -0
  40. package/browser/dist/parse/lexer.js +656 -0
  41. package/browser/dist/parse/line-counter.js +39 -0
  42. package/browser/dist/parse/parser.js +876 -0
  43. package/browser/dist/public-api.js +101 -0
  44. package/browser/dist/schema/Schema.js +23 -0
  45. package/browser/dist/schema/common/map.js +42 -0
  46. package/browser/dist/schema/common/null.js +13 -0
  47. package/browser/dist/schema/common/seq.js +33 -0
  48. package/browser/dist/schema/common/string.js +14 -0
  49. package/browser/dist/schema/core/bool.js +19 -0
  50. package/browser/dist/schema/core/float.js +40 -0
  51. package/browser/dist/schema/core/int.js +38 -0
  52. package/browser/dist/schema/core/schema.js +23 -0
  53. package/browser/dist/schema/json/schema.js +62 -0
  54. package/browser/dist/schema/tags.js +79 -0
  55. package/browser/dist/schema/yaml-1.1/binary.js +66 -0
  56. package/browser/dist/schema/yaml-1.1/bool.js +26 -0
  57. package/browser/dist/schema/yaml-1.1/float.js +43 -0
  58. package/browser/dist/schema/yaml-1.1/int.js +71 -0
  59. package/browser/dist/schema/yaml-1.1/omap.js +73 -0
  60. package/browser/dist/schema/yaml-1.1/pairs.js +77 -0
  61. package/browser/dist/schema/yaml-1.1/schema.js +37 -0
  62. package/browser/dist/schema/yaml-1.1/set.js +87 -0
  63. package/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  64. package/browser/dist/stringify/foldFlowLines.js +121 -139
  65. package/browser/dist/stringify/stringify.js +87 -72
  66. package/browser/dist/stringify/stringifyCollection.js +122 -0
  67. package/browser/dist/stringify/stringifyComment.js +14 -0
  68. package/browser/dist/stringify/stringifyDocument.js +64 -0
  69. package/browser/dist/stringify/stringifyNumber.js +20 -23
  70. package/browser/dist/stringify/stringifyPair.js +111 -0
  71. package/browser/dist/stringify/stringifyString.js +295 -322
  72. package/browser/dist/util.js +4 -4
  73. package/browser/dist/visit.js +146 -0
  74. package/browser/index.js +4 -1
  75. package/dist/compose/compose-collection.d.ts +5 -0
  76. package/dist/compose/compose-collection.js +61 -0
  77. package/dist/compose/compose-doc.d.ts +6 -0
  78. package/dist/compose/compose-doc.js +41 -0
  79. package/dist/compose/compose-node.d.ts +25 -0
  80. package/dist/compose/compose-node.js +75 -0
  81. package/dist/compose/compose-scalar.d.ts +5 -0
  82. package/dist/compose/compose-scalar.js +76 -0
  83. package/dist/compose/composer.d.ts +62 -0
  84. package/dist/compose/composer.js +222 -0
  85. package/dist/compose/resolve-block-map.d.ts +6 -0
  86. package/dist/compose/resolve-block-map.js +95 -0
  87. package/dist/compose/resolve-block-scalar.d.ts +10 -0
  88. package/dist/compose/resolve-block-scalar.js +187 -0
  89. package/dist/compose/resolve-block-seq.d.ts +5 -0
  90. package/dist/compose/resolve-block-seq.js +42 -0
  91. package/dist/compose/resolve-end.d.ts +6 -0
  92. package/dist/compose/resolve-end.js +39 -0
  93. package/dist/compose/resolve-flow-collection.d.ts +6 -0
  94. package/dist/compose/resolve-flow-collection.js +191 -0
  95. package/dist/compose/resolve-flow-scalar.d.ts +10 -0
  96. package/dist/compose/resolve-flow-scalar.js +213 -0
  97. package/dist/compose/resolve-props.d.ts +21 -0
  98. package/dist/compose/resolve-props.js +128 -0
  99. package/dist/compose/util-contains-newline.d.ts +2 -0
  100. package/dist/compose/util-contains-newline.js +36 -0
  101. package/dist/compose/util-empty-scalar-position.d.ts +2 -0
  102. package/dist/compose/util-empty-scalar-position.js +29 -0
  103. package/dist/compose/util-map-includes.d.ts +4 -0
  104. package/dist/compose/util-map-includes.js +19 -0
  105. package/dist/doc/Document.d.ts +130 -0
  106. package/dist/doc/Document.js +250 -347
  107. package/dist/doc/anchors.d.ts +24 -0
  108. package/dist/doc/anchors.js +77 -0
  109. package/dist/doc/applyReviver.d.ts +9 -0
  110. package/dist/doc/applyReviver.js +41 -28
  111. package/dist/doc/createNode.d.ts +16 -0
  112. package/dist/doc/createNode.js +71 -55
  113. package/dist/doc/directives.d.ts +46 -0
  114. package/dist/doc/directives.js +163 -0
  115. package/dist/errors.d.ts +21 -0
  116. package/dist/errors.js +51 -74
  117. package/dist/index.d.ts +19 -0
  118. package/dist/index.js +40 -71
  119. package/dist/log.d.ts +3 -0
  120. package/dist/log.js +11 -6
  121. package/dist/nodes/Alias.d.ts +24 -0
  122. package/dist/nodes/Alias.js +96 -0
  123. package/dist/nodes/Collection.d.ts +67 -0
  124. package/dist/nodes/Collection.js +137 -0
  125. package/dist/nodes/Node.d.ts +48 -0
  126. package/dist/nodes/Node.js +59 -0
  127. package/dist/nodes/Pair.d.ts +16 -0
  128. package/dist/nodes/Pair.js +31 -0
  129. package/dist/nodes/Scalar.d.ts +40 -0
  130. package/dist/nodes/Scalar.js +26 -0
  131. package/dist/nodes/YAMLMap.d.ts +39 -0
  132. package/dist/nodes/YAMLMap.js +119 -0
  133. package/dist/nodes/YAMLSeq.d.ts +53 -0
  134. package/dist/nodes/YAMLSeq.js +107 -0
  135. package/dist/nodes/addPairToJSMap.d.ts +3 -0
  136. package/dist/nodes/addPairToJSMap.js +105 -0
  137. package/dist/nodes/toJS.d.ts +30 -0
  138. package/dist/nodes/toJS.js +37 -0
  139. package/dist/options.d.ts +278 -0
  140. package/dist/options.js +13 -96
  141. package/dist/parse/cst-scalar.d.ts +58 -0
  142. package/dist/parse/cst-scalar.js +223 -0
  143. package/dist/parse/cst-stringify.d.ts +8 -0
  144. package/dist/parse/cst-stringify.js +63 -0
  145. package/dist/parse/cst-visit.d.ts +39 -0
  146. package/dist/parse/cst-visit.js +99 -0
  147. package/dist/parse/cst.d.ts +106 -0
  148. package/dist/parse/cst.js +112 -0
  149. package/dist/parse/lexer.d.ts +85 -0
  150. package/dist/parse/lexer.js +658 -0
  151. package/dist/parse/line-counter.d.ts +22 -0
  152. package/dist/parse/line-counter.js +41 -0
  153. package/dist/parse/parser.d.ts +84 -0
  154. package/dist/parse/parser.js +880 -0
  155. package/dist/public-api.d.ts +43 -0
  156. package/dist/public-api.js +106 -0
  157. package/dist/schema/Schema.d.ts +16 -0
  158. package/dist/schema/Schema.js +25 -0
  159. package/dist/schema/common/map.d.ts +2 -0
  160. package/dist/schema/common/map.js +44 -0
  161. package/dist/schema/common/null.d.ts +4 -0
  162. package/dist/schema/common/null.js +15 -0
  163. package/dist/schema/common/seq.d.ts +2 -0
  164. package/dist/schema/common/seq.js +35 -0
  165. package/dist/schema/common/string.d.ts +2 -0
  166. package/dist/schema/common/string.js +16 -0
  167. package/dist/schema/core/bool.d.ts +4 -0
  168. package/dist/schema/core/bool.js +21 -0
  169. package/dist/schema/core/float.d.ts +4 -0
  170. package/dist/schema/core/float.js +44 -0
  171. package/dist/schema/core/int.d.ts +4 -0
  172. package/dist/schema/core/int.js +42 -0
  173. package/dist/schema/core/schema.d.ts +1 -0
  174. package/dist/schema/core/schema.js +25 -0
  175. package/dist/schema/json/schema.d.ts +2 -0
  176. package/dist/schema/json/schema.js +64 -0
  177. package/dist/schema/tags.d.ts +41 -0
  178. package/dist/schema/tags.js +82 -0
  179. package/dist/schema/types.d.ts +82 -0
  180. package/dist/schema/yaml-1.1/binary.d.ts +2 -0
  181. package/dist/schema/yaml-1.1/binary.js +68 -0
  182. package/dist/schema/yaml-1.1/bool.d.ts +7 -0
  183. package/dist/schema/yaml-1.1/bool.js +29 -0
  184. package/dist/schema/yaml-1.1/float.d.ts +4 -0
  185. package/dist/schema/yaml-1.1/float.js +47 -0
  186. package/dist/schema/yaml-1.1/int.d.ts +5 -0
  187. package/dist/schema/yaml-1.1/int.js +76 -0
  188. package/dist/schema/yaml-1.1/omap.d.ts +21 -0
  189. package/dist/schema/yaml-1.1/omap.js +76 -0
  190. package/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  191. package/dist/schema/yaml-1.1/pairs.js +81 -0
  192. package/dist/schema/yaml-1.1/schema.d.ts +1 -0
  193. package/dist/schema/yaml-1.1/schema.js +39 -0
  194. package/dist/schema/yaml-1.1/set.d.ts +22 -0
  195. package/dist/schema/yaml-1.1/set.js +90 -0
  196. package/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  197. package/dist/schema/yaml-1.1/timestamp.js +105 -0
  198. package/dist/stringify/foldFlowLines.d.ts +34 -0
  199. package/dist/stringify/foldFlowLines.js +121 -139
  200. package/dist/stringify/stringify.d.ts +18 -0
  201. package/dist/stringify/stringify.js +87 -71
  202. package/dist/stringify/stringifyCollection.d.ts +21 -0
  203. package/dist/stringify/stringifyCollection.js +124 -0
  204. package/dist/stringify/stringifyComment.d.ts +2 -0
  205. package/dist/stringify/stringifyComment.js +17 -0
  206. package/dist/stringify/stringifyDocument.d.ts +3 -0
  207. package/dist/stringify/stringifyDocument.js +66 -0
  208. package/dist/stringify/stringifyNumber.d.ts +2 -0
  209. package/dist/stringify/stringifyNumber.js +20 -23
  210. package/dist/stringify/stringifyPair.d.ts +3 -0
  211. package/dist/stringify/stringifyPair.js +113 -0
  212. package/dist/stringify/stringifyString.d.ts +3 -0
  213. package/dist/stringify/stringifyString.js +295 -322
  214. package/dist/test-events.d.ts +4 -0
  215. package/dist/test-events.js +124 -148
  216. package/dist/util.d.ts +6 -0
  217. package/dist/util.js +9 -12
  218. package/dist/visit.d.ts +63 -0
  219. package/dist/visit.js +148 -0
  220. package/package.json +31 -39
  221. package/util.js +2 -14
  222. package/browser/dist/_virtual/_rollupPluginBabelHelpers.js +0 -16
  223. package/browser/dist/ast/Alias.js +0 -95
  224. package/browser/dist/ast/Collection.js +0 -192
  225. package/browser/dist/ast/Merge.js +0 -71
  226. package/browser/dist/ast/Node.js +0 -3
  227. package/browser/dist/ast/Pair.js +0 -200
  228. package/browser/dist/ast/Scalar.js +0 -21
  229. package/browser/dist/ast/YAMLMap.js +0 -91
  230. package/browser/dist/ast/YAMLSeq.js +0 -67
  231. package/browser/dist/ast/toJS.js +0 -29
  232. package/browser/dist/ast/visit.js +0 -83
  233. package/browser/dist/constants.js +0 -40
  234. package/browser/dist/cst/Alias.js +0 -26
  235. package/browser/dist/cst/BlankLine.js +0 -34
  236. package/browser/dist/cst/BlockValue.js +0 -240
  237. package/browser/dist/cst/Collection.js +0 -259
  238. package/browser/dist/cst/CollectionItem.js +0 -123
  239. package/browser/dist/cst/Comment.js +0 -27
  240. package/browser/dist/cst/Directive.js +0 -53
  241. package/browser/dist/cst/Document.js +0 -262
  242. package/browser/dist/cst/FlowCollection.js +0 -201
  243. package/browser/dist/cst/Node.js +0 -355
  244. package/browser/dist/cst/ParseContext.js +0 -234
  245. package/browser/dist/cst/PlainValue.js +0 -171
  246. package/browser/dist/cst/QuoteDouble.js +0 -224
  247. package/browser/dist/cst/QuoteSingle.js +0 -100
  248. package/browser/dist/cst/Range.js +0 -56
  249. package/browser/dist/cst/parse.js +0 -46
  250. package/browser/dist/cst/source-utils.js +0 -169
  251. package/browser/dist/doc/Anchors.js +0 -115
  252. package/browser/dist/doc/Schema.js +0 -34
  253. package/browser/dist/doc/getSchemaTags.js +0 -33
  254. package/browser/dist/doc/listTagNames.js +0 -27
  255. package/browser/dist/doc/parseContents.js +0 -60
  256. package/browser/dist/doc/parseDirectives.js +0 -107
  257. package/browser/dist/resolve/collection-utils.js +0 -86
  258. package/browser/dist/resolve/resolveMap.js +0 -315
  259. package/browser/dist/resolve/resolveNode.js +0 -173
  260. package/browser/dist/resolve/resolveScalar.js +0 -20
  261. package/browser/dist/resolve/resolveSeq.js +0 -170
  262. package/browser/dist/resolve/resolveTag.js +0 -107
  263. package/browser/dist/resolve/resolveTagName.js +0 -87
  264. package/browser/dist/stringify/addComment.js +0 -10
  265. package/browser/dist/stringify/stringifyTag.js +0 -28
  266. package/browser/dist/tags/core.js +0 -128
  267. package/browser/dist/tags/failsafe/index.js +0 -7
  268. package/browser/dist/tags/failsafe/map.js +0 -37
  269. package/browser/dist/tags/failsafe/seq.js +0 -34
  270. package/browser/dist/tags/failsafe/string.js +0 -20
  271. package/browser/dist/tags/index.js +0 -39
  272. package/browser/dist/tags/json.js +0 -62
  273. package/browser/dist/tags/options.js +0 -31
  274. package/browser/dist/tags/yaml-1.1/binary.js +0 -83
  275. package/browser/dist/tags/yaml-1.1/index.js +0 -174
  276. package/browser/dist/tags/yaml-1.1/omap.js +0 -86
  277. package/browser/dist/tags/yaml-1.1/pairs.js +0 -62
  278. package/browser/dist/tags/yaml-1.1/set.js +0 -78
  279. package/browser/dist/tags/yaml-1.1/timestamp.js +0 -101
  280. package/browser/dist/types.js +0 -10
  281. package/cst.d.ts +0 -185
  282. package/dist/_virtual/_rollupPluginBabelHelpers.js +0 -18
  283. package/dist/ast/Alias.js +0 -97
  284. package/dist/ast/Collection.js +0 -196
  285. package/dist/ast/Merge.js +0 -74
  286. package/dist/ast/Node.js +0 -5
  287. package/dist/ast/Pair.js +0 -203
  288. package/dist/ast/Scalar.js +0 -24
  289. package/dist/ast/YAMLMap.js +0 -94
  290. package/dist/ast/YAMLSeq.js +0 -69
  291. package/dist/ast/toJS.js +0 -31
  292. package/dist/ast/visit.js +0 -85
  293. package/dist/constants.js +0 -46
  294. package/dist/cst/Alias.js +0 -28
  295. package/dist/cst/BlankLine.js +0 -36
  296. package/dist/cst/BlockValue.js +0 -243
  297. package/dist/cst/Collection.js +0 -262
  298. package/dist/cst/CollectionItem.js +0 -125
  299. package/dist/cst/Comment.js +0 -29
  300. package/dist/cst/Directive.js +0 -55
  301. package/dist/cst/Document.js +0 -264
  302. package/dist/cst/FlowCollection.js +0 -203
  303. package/dist/cst/Node.js +0 -357
  304. package/dist/cst/ParseContext.js +0 -236
  305. package/dist/cst/PlainValue.js +0 -173
  306. package/dist/cst/QuoteDouble.js +0 -226
  307. package/dist/cst/QuoteSingle.js +0 -102
  308. package/dist/cst/Range.js +0 -58
  309. package/dist/cst/parse.js +0 -48
  310. package/dist/cst/source-utils.js +0 -173
  311. package/dist/doc/Anchors.js +0 -117
  312. package/dist/doc/Schema.js +0 -36
  313. package/dist/doc/getSchemaTags.js +0 -35
  314. package/dist/doc/listTagNames.js +0 -29
  315. package/dist/doc/parseContents.js +0 -62
  316. package/dist/doc/parseDirectives.js +0 -109
  317. package/dist/resolve/collection-utils.js +0 -91
  318. package/dist/resolve/resolveMap.js +0 -317
  319. package/dist/resolve/resolveNode.js +0 -175
  320. package/dist/resolve/resolveScalar.js +0 -22
  321. package/dist/resolve/resolveSeq.js +0 -172
  322. package/dist/resolve/resolveTag.js +0 -109
  323. package/dist/resolve/resolveTagName.js +0 -89
  324. package/dist/stringify/addComment.js +0 -13
  325. package/dist/stringify/stringifyTag.js +0 -30
  326. package/dist/tags/core.js +0 -138
  327. package/dist/tags/failsafe/index.js +0 -9
  328. package/dist/tags/failsafe/map.js +0 -39
  329. package/dist/tags/failsafe/seq.js +0 -36
  330. package/dist/tags/failsafe/string.js +0 -22
  331. package/dist/tags/index.js +0 -42
  332. package/dist/tags/json.js +0 -64
  333. package/dist/tags/options.js +0 -37
  334. package/dist/tags/yaml-1.1/binary.js +0 -85
  335. package/dist/tags/yaml-1.1/index.js +0 -176
  336. package/dist/tags/yaml-1.1/omap.js +0 -89
  337. package/dist/tags/yaml-1.1/pairs.js +0 -66
  338. package/dist/tags/yaml-1.1/set.js +0 -81
  339. package/dist/tags/yaml-1.1/timestamp.js +0 -105
  340. package/dist/types.js +0 -29
  341. package/index.d.ts +0 -519
  342. package/index.js +0 -1
  343. package/types.d.ts +0 -379
  344. package/types.js +0 -17
  345. package/types.mjs +0 -17
  346. package/util.d.ts +0 -76
  347. package/util.mjs +0 -15
@@ -0,0 +1,43 @@
1
+ import { Composer } from './compose/composer.js';
2
+ import type { Reviver } from './doc/applyReviver.js';
3
+ import { Document, Replacer } from './doc/Document.js';
4
+ import type { ParsedNode } from './nodes/Node.js';
5
+ import type { CreateNodeOptions, DocumentOptions, ParseOptions, SchemaOptions, ToJSOptions, ToStringOptions } from './options.js';
6
+ export interface EmptyStream extends Array<Document.Parsed>, ReturnType<Composer['streamInfo']> {
7
+ empty: true;
8
+ }
9
+ /**
10
+ * Parse the input as a stream of YAML documents.
11
+ *
12
+ * Documents should be separated from each other by `...` or `---` marker lines.
13
+ *
14
+ * @returns If an empty `docs` array is returned, it will be of type
15
+ * EmptyStream and contain additional stream information. In
16
+ * TypeScript, you should use `'empty' in docs` as a type guard for it.
17
+ */
18
+ export declare function parseAllDocuments<T extends ParsedNode = ParsedNode>(source: string, options?: ParseOptions & DocumentOptions & SchemaOptions): Document.Parsed<T>[] | EmptyStream;
19
+ /** Parse an input string into a single YAML.Document */
20
+ export declare function parseDocument<T extends ParsedNode = ParsedNode>(source: string, options?: ParseOptions & DocumentOptions & SchemaOptions): Document.Parsed<T>;
21
+ /**
22
+ * Parse an input string into JavaScript.
23
+ *
24
+ * Only supports input consisting of a single YAML document; for multi-document
25
+ * support you should use `YAML.parseAllDocuments`. May throw on error, and may
26
+ * log warnings using `console.warn`.
27
+ *
28
+ * @param str - A string with YAML formatting.
29
+ * @param reviver - A reviver function, as in `JSON.parse()`
30
+ * @returns The value will match the type of the root value of the parsed YAML
31
+ * document, so Maps become objects, Sequences arrays, and scalars result in
32
+ * nulls, booleans, numbers and strings.
33
+ */
34
+ export declare function parse(src: string, options?: ParseOptions & DocumentOptions & SchemaOptions & ToJSOptions): any;
35
+ export declare function parse(src: string, reviver: Reviver, options?: ParseOptions & DocumentOptions & SchemaOptions & ToJSOptions): any;
36
+ /**
37
+ * Stringify a value as a YAML document.
38
+ *
39
+ * @param replacer - A replacer array or function, as in `JSON.stringify()`
40
+ * @returns Will always include `\n` as the last character, as is expected of YAML documents.
41
+ */
42
+ export declare function stringify(value: any, options?: DocumentOptions & SchemaOptions & ParseOptions & CreateNodeOptions & ToStringOptions): string;
43
+ export declare function stringify(value: any, replacer?: Replacer | null, options?: string | number | (DocumentOptions & SchemaOptions & ParseOptions & CreateNodeOptions & ToStringOptions)): string;
@@ -0,0 +1,106 @@
1
+ 'use strict';
2
+
3
+ var composer = require('./compose/composer.js');
4
+ var Document = require('./doc/Document.js');
5
+ var errors = require('./errors.js');
6
+ var log = require('./log.js');
7
+ var lineCounter = require('./parse/line-counter.js');
8
+ var parser = require('./parse/parser.js');
9
+
10
+ function parseOptions(options) {
11
+ const prettyErrors = !options || options.prettyErrors !== false;
12
+ const lineCounter$1 = (options && options.lineCounter) ||
13
+ (prettyErrors && new lineCounter.LineCounter()) ||
14
+ null;
15
+ return { lineCounter: lineCounter$1, prettyErrors };
16
+ }
17
+ /**
18
+ * Parse the input as a stream of YAML documents.
19
+ *
20
+ * Documents should be separated from each other by `...` or `---` marker lines.
21
+ *
22
+ * @returns If an empty `docs` array is returned, it will be of type
23
+ * EmptyStream and contain additional stream information. In
24
+ * TypeScript, you should use `'empty' in docs` as a type guard for it.
25
+ */
26
+ function parseAllDocuments(source, options = {}) {
27
+ const { lineCounter, prettyErrors } = parseOptions(options);
28
+ const parser$1 = new parser.Parser(lineCounter === null || lineCounter === void 0 ? void 0 : lineCounter.addNewLine);
29
+ const composer$1 = new composer.Composer(options);
30
+ const docs = Array.from(composer$1.compose(parser$1.parse(source)));
31
+ if (prettyErrors && lineCounter)
32
+ for (const doc of docs) {
33
+ doc.errors.forEach(errors.prettifyError(source, lineCounter));
34
+ doc.warnings.forEach(errors.prettifyError(source, lineCounter));
35
+ }
36
+ if (docs.length > 0)
37
+ return docs;
38
+ return Object.assign([], { empty: true }, composer$1.streamInfo());
39
+ }
40
+ /** Parse an input string into a single YAML.Document */
41
+ function parseDocument(source, options = {}) {
42
+ const { lineCounter, prettyErrors } = parseOptions(options);
43
+ const parser$1 = new parser.Parser(lineCounter === null || lineCounter === void 0 ? void 0 : lineCounter.addNewLine);
44
+ const composer$1 = new composer.Composer(options);
45
+ // `doc` is always set by compose.end(true) at the very latest
46
+ let doc = null;
47
+ for (const _doc of composer$1.compose(parser$1.parse(source), true, source.length)) {
48
+ if (!doc)
49
+ doc = _doc;
50
+ else if (doc.options.logLevel !== 'silent') {
51
+ doc.errors.push(new errors.YAMLParseError(_doc.range.slice(0, 2), 'MULTIPLE_DOCS', 'Source contains multiple documents; please use YAML.parseAllDocuments()'));
52
+ break;
53
+ }
54
+ }
55
+ if (prettyErrors && lineCounter) {
56
+ doc.errors.forEach(errors.prettifyError(source, lineCounter));
57
+ doc.warnings.forEach(errors.prettifyError(source, lineCounter));
58
+ }
59
+ return doc;
60
+ }
61
+ function parse(src, reviver, options) {
62
+ let _reviver = undefined;
63
+ if (typeof reviver === 'function') {
64
+ _reviver = reviver;
65
+ }
66
+ else if (options === undefined && reviver && typeof reviver === 'object') {
67
+ options = reviver;
68
+ }
69
+ const doc = parseDocument(src, options);
70
+ if (!doc)
71
+ return null;
72
+ doc.warnings.forEach(warning => log.warn(doc.options.logLevel, warning));
73
+ if (doc.errors.length > 0) {
74
+ if (doc.options.logLevel !== 'silent')
75
+ throw doc.errors[0];
76
+ else
77
+ doc.errors = [];
78
+ }
79
+ return doc.toJS(Object.assign({ reviver: _reviver }, options));
80
+ }
81
+ function stringify(value, replacer, options) {
82
+ let _replacer = null;
83
+ if (typeof replacer === 'function' || Array.isArray(replacer)) {
84
+ _replacer = replacer;
85
+ }
86
+ else if (options === undefined && replacer) {
87
+ options = replacer;
88
+ }
89
+ if (typeof options === 'string')
90
+ options = options.length;
91
+ if (typeof options === 'number') {
92
+ const indent = Math.round(options);
93
+ options = indent < 1 ? undefined : indent > 8 ? { indent: 8 } : { indent };
94
+ }
95
+ if (value === undefined) {
96
+ const { keepUndefined } = options || replacer || {};
97
+ if (!keepUndefined)
98
+ return undefined;
99
+ }
100
+ return new Document.Document(value, _replacer, options).toString(options);
101
+ }
102
+
103
+ exports.parse = parse;
104
+ exports.parseAllDocuments = parseAllDocuments;
105
+ exports.parseDocument = parseDocument;
106
+ exports.stringify = stringify;
@@ -0,0 +1,16 @@
1
+ import { MAP, SCALAR, SEQ } from '../nodes/Node.js';
2
+ import type { Pair } from '../nodes/Pair.js';
3
+ import type { SchemaOptions } from '../options.js';
4
+ import type { CollectionTag, ScalarTag } from './types.js';
5
+ export declare type SchemaName = 'core' | 'failsafe' | 'json' | 'yaml-1.1';
6
+ export declare class Schema {
7
+ knownTags: Record<string, CollectionTag | ScalarTag>;
8
+ merge: boolean;
9
+ name: SchemaName;
10
+ sortMapEntries: ((a: Pair, b: Pair) => number) | null;
11
+ tags: Array<CollectionTag | ScalarTag>;
12
+ [MAP]: CollectionTag;
13
+ [SCALAR]: ScalarTag;
14
+ [SEQ]: CollectionTag;
15
+ constructor({ customTags, merge, resolveKnownTags, schema, sortMapEntries }: SchemaOptions);
16
+ }
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var Node = require('../nodes/Node.js');
4
+ var map = require('./common/map.js');
5
+ var seq = require('./common/seq.js');
6
+ var string = require('./common/string.js');
7
+ var tags = require('./tags.js');
8
+
9
+ const sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;
10
+ class Schema {
11
+ constructor({ customTags, merge, resolveKnownTags, schema, sortMapEntries }) {
12
+ this.merge = !!merge;
13
+ this.name = schema || 'core';
14
+ this.knownTags = resolveKnownTags ? tags.coreKnownTags : {};
15
+ this.tags = tags.getTags(customTags, this.name);
16
+ Object.defineProperty(this, Node.MAP, { value: map.map });
17
+ Object.defineProperty(this, Node.SCALAR, { value: string.string });
18
+ Object.defineProperty(this, Node.SEQ, { value: seq.seq });
19
+ // Used by createMap()
20
+ this.sortMapEntries =
21
+ sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null;
22
+ }
23
+ }
24
+
25
+ exports.Schema = Schema;
@@ -0,0 +1,2 @@
1
+ import type { CollectionTag } from '../types.js';
2
+ export declare const map: CollectionTag;
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var Node = require('../../nodes/Node.js');
4
+ var Pair = require('../../nodes/Pair.js');
5
+ var YAMLMap = require('../../nodes/YAMLMap.js');
6
+
7
+ function createMap(schema, obj, ctx) {
8
+ const { keepUndefined, replacer } = ctx;
9
+ const map = new YAMLMap.YAMLMap(schema);
10
+ const add = (key, value) => {
11
+ if (typeof replacer === 'function')
12
+ value = replacer.call(obj, key, value);
13
+ else if (Array.isArray(replacer) && !replacer.includes(key))
14
+ return;
15
+ if (value !== undefined || keepUndefined)
16
+ map.items.push(Pair.createPair(key, value, ctx));
17
+ };
18
+ if (obj instanceof Map) {
19
+ for (const [key, value] of obj)
20
+ add(key, value);
21
+ }
22
+ else if (obj && typeof obj === 'object') {
23
+ for (const key of Object.keys(obj))
24
+ add(key, obj[key]);
25
+ }
26
+ if (typeof schema.sortMapEntries === 'function') {
27
+ map.items.sort(schema.sortMapEntries);
28
+ }
29
+ return map;
30
+ }
31
+ const map = {
32
+ collection: 'map',
33
+ createNode: createMap,
34
+ default: true,
35
+ nodeClass: YAMLMap.YAMLMap,
36
+ tag: 'tag:yaml.org,2002:map',
37
+ resolve(map, onError) {
38
+ if (!Node.isMap(map))
39
+ onError('Expected a mapping for this tag');
40
+ return map;
41
+ }
42
+ };
43
+
44
+ exports.map = map;
@@ -0,0 +1,4 @@
1
+ import type { ScalarTag } from '../types.js';
2
+ export declare const nullTag: ScalarTag & {
3
+ test: RegExp;
4
+ };
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var Scalar = require('../../nodes/Scalar.js');
4
+
5
+ const nullTag = {
6
+ identify: value => value == null,
7
+ createNode: () => new Scalar.Scalar(null),
8
+ default: true,
9
+ tag: 'tag:yaml.org,2002:null',
10
+ test: /^(?:~|[Nn]ull|NULL)?$/,
11
+ resolve: () => new Scalar.Scalar(null),
12
+ stringify: ({ source }, ctx) => source && nullTag.test.test(source) ? source : ctx.options.nullStr
13
+ };
14
+
15
+ exports.nullTag = nullTag;
@@ -0,0 +1,2 @@
1
+ import type { CollectionTag } from '../types.js';
2
+ export declare const seq: CollectionTag;
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var createNode = require('../../doc/createNode.js');
4
+ var Node = require('../../nodes/Node.js');
5
+ var YAMLSeq = require('../../nodes/YAMLSeq.js');
6
+
7
+ function createSeq(schema, obj, ctx) {
8
+ const { replacer } = ctx;
9
+ const seq = new YAMLSeq.YAMLSeq(schema);
10
+ if (obj && Symbol.iterator in Object(obj)) {
11
+ let i = 0;
12
+ for (let it of obj) {
13
+ if (typeof replacer === 'function') {
14
+ const key = obj instanceof Set ? it : String(i++);
15
+ it = replacer.call(obj, key, it);
16
+ }
17
+ seq.items.push(createNode.createNode(it, undefined, ctx));
18
+ }
19
+ }
20
+ return seq;
21
+ }
22
+ const seq = {
23
+ collection: 'seq',
24
+ createNode: createSeq,
25
+ default: true,
26
+ nodeClass: YAMLSeq.YAMLSeq,
27
+ tag: 'tag:yaml.org,2002:seq',
28
+ resolve(seq, onError) {
29
+ if (!Node.isSeq(seq))
30
+ onError('Expected a sequence for this tag');
31
+ return seq;
32
+ }
33
+ };
34
+
35
+ exports.seq = seq;
@@ -0,0 +1,2 @@
1
+ import type { ScalarTag } from '../types.js';
2
+ export declare const string: ScalarTag;
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var stringifyString = require('../../stringify/stringifyString.js');
4
+
5
+ const string = {
6
+ identify: value => typeof value === 'string',
7
+ default: true,
8
+ tag: 'tag:yaml.org,2002:str',
9
+ resolve: str => str,
10
+ stringify(item, ctx, onComment, onChompKeep) {
11
+ ctx = Object.assign({ actualString: true }, ctx);
12
+ return stringifyString.stringifyString(item, ctx, onComment, onChompKeep);
13
+ }
14
+ };
15
+
16
+ exports.string = string;
@@ -0,0 +1,4 @@
1
+ import type { ScalarTag } from '../types.js';
2
+ export declare const boolTag: ScalarTag & {
3
+ test: RegExp;
4
+ };
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var Scalar = require('../../nodes/Scalar.js');
4
+
5
+ const boolTag = {
6
+ identify: value => typeof value === 'boolean',
7
+ default: true,
8
+ tag: 'tag:yaml.org,2002:bool',
9
+ test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
10
+ resolve: str => new Scalar.Scalar(str[0] === 't' || str[0] === 'T'),
11
+ stringify({ source, value }, ctx) {
12
+ if (source && boolTag.test.test(source)) {
13
+ const sv = source[0] === 't' || source[0] === 'T';
14
+ if (value === sv)
15
+ return source;
16
+ }
17
+ return value ? ctx.options.trueStr : ctx.options.falseStr;
18
+ }
19
+ };
20
+
21
+ exports.boolTag = boolTag;
@@ -0,0 +1,4 @@
1
+ import type { ScalarTag } from '../types.js';
2
+ export declare const floatNaN: ScalarTag;
3
+ export declare const floatExp: ScalarTag;
4
+ export declare const float: ScalarTag;
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var Scalar = require('../../nodes/Scalar.js');
4
+ var stringifyNumber = require('../../stringify/stringifyNumber.js');
5
+
6
+ const floatNaN = {
7
+ identify: value => typeof value === 'number',
8
+ default: true,
9
+ tag: 'tag:yaml.org,2002:float',
10
+ test: /^(?:[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN))$/,
11
+ resolve: str => str.slice(-3).toLowerCase() === 'nan'
12
+ ? NaN
13
+ : str[0] === '-'
14
+ ? Number.NEGATIVE_INFINITY
15
+ : Number.POSITIVE_INFINITY,
16
+ stringify: stringifyNumber.stringifyNumber
17
+ };
18
+ const floatExp = {
19
+ identify: value => typeof value === 'number',
20
+ default: true,
21
+ tag: 'tag:yaml.org,2002:float',
22
+ format: 'EXP',
23
+ test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,
24
+ resolve: str => parseFloat(str),
25
+ stringify: ({ value }) => Number(value).toExponential()
26
+ };
27
+ const float = {
28
+ identify: value => typeof value === 'number',
29
+ default: true,
30
+ tag: 'tag:yaml.org,2002:float',
31
+ test: /^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,
32
+ resolve(str) {
33
+ const node = new Scalar.Scalar(parseFloat(str));
34
+ const dot = str.indexOf('.');
35
+ if (dot !== -1 && str[str.length - 1] === '0')
36
+ node.minFractionDigits = str.length - dot - 1;
37
+ return node;
38
+ },
39
+ stringify: stringifyNumber.stringifyNumber
40
+ };
41
+
42
+ exports.float = float;
43
+ exports.floatExp = floatExp;
44
+ exports.floatNaN = floatNaN;
@@ -0,0 +1,4 @@
1
+ import type { ScalarTag } from '../types.js';
2
+ export declare const intOct: ScalarTag;
3
+ export declare const int: ScalarTag;
4
+ export declare const intHex: ScalarTag;
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ var stringifyNumber = require('../../stringify/stringifyNumber.js');
4
+
5
+ const intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);
6
+ const intResolve = (str, offset, radix, { intAsBigInt }) => (intAsBigInt ? BigInt(str) : parseInt(str.substring(offset), radix));
7
+ function intStringify(node, radix, prefix) {
8
+ const { value } = node;
9
+ if (intIdentify(value) && value >= 0)
10
+ return prefix + value.toString(radix);
11
+ return stringifyNumber.stringifyNumber(node);
12
+ }
13
+ const intOct = {
14
+ identify: value => intIdentify(value) && value >= 0,
15
+ default: true,
16
+ tag: 'tag:yaml.org,2002:int',
17
+ format: 'OCT',
18
+ test: /^0o[0-7]+$/,
19
+ resolve: (str, _onError, opt) => intResolve(str, 2, 8, opt),
20
+ stringify: node => intStringify(node, 8, '0o')
21
+ };
22
+ const int = {
23
+ identify: intIdentify,
24
+ default: true,
25
+ tag: 'tag:yaml.org,2002:int',
26
+ test: /^[-+]?[0-9]+$/,
27
+ resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),
28
+ stringify: stringifyNumber.stringifyNumber
29
+ };
30
+ const intHex = {
31
+ identify: value => intIdentify(value) && value >= 0,
32
+ default: true,
33
+ tag: 'tag:yaml.org,2002:int',
34
+ format: 'HEX',
35
+ test: /^0x[0-9a-fA-F]+$/,
36
+ resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),
37
+ stringify: node => intStringify(node, 16, '0x')
38
+ };
39
+
40
+ exports.int = int;
41
+ exports.intHex = intHex;
42
+ exports.intOct = intOct;
@@ -0,0 +1 @@
1
+ export declare const schema: (import("../types.js").ScalarTag | import("../types.js").CollectionTag)[];
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var map = require('../common/map.js');
4
+ var _null = require('../common/null.js');
5
+ var seq = require('../common/seq.js');
6
+ var string = require('../common/string.js');
7
+ var bool = require('./bool.js');
8
+ var float = require('./float.js');
9
+ var int = require('./int.js');
10
+
11
+ const schema = [
12
+ map.map,
13
+ seq.seq,
14
+ string.string,
15
+ _null.nullTag,
16
+ bool.boolTag,
17
+ int.intOct,
18
+ int.int,
19
+ int.intHex,
20
+ float.floatNaN,
21
+ float.floatExp,
22
+ float.float
23
+ ];
24
+
25
+ exports.schema = schema;
@@ -0,0 +1,2 @@
1
+ import { CollectionTag, ScalarTag } from '../types.js';
2
+ export declare const schema: (ScalarTag | CollectionTag)[];
@@ -0,0 +1,64 @@
1
+ 'use strict';
2
+
3
+ var Scalar = require('../../nodes/Scalar.js');
4
+ var map = require('../common/map.js');
5
+ var seq = require('../common/seq.js');
6
+
7
+ function intIdentify(value) {
8
+ return typeof value === 'bigint' || Number.isInteger(value);
9
+ }
10
+ const stringifyJSON = ({ value }) => JSON.stringify(value);
11
+ const jsonScalars = [
12
+ {
13
+ identify: value => typeof value === 'string',
14
+ default: true,
15
+ tag: 'tag:yaml.org,2002:str',
16
+ resolve: str => str,
17
+ stringify: stringifyJSON
18
+ },
19
+ {
20
+ identify: value => value == null,
21
+ createNode: () => new Scalar.Scalar(null),
22
+ default: true,
23
+ tag: 'tag:yaml.org,2002:null',
24
+ test: /^null$/,
25
+ resolve: () => null,
26
+ stringify: stringifyJSON
27
+ },
28
+ {
29
+ identify: value => typeof value === 'boolean',
30
+ default: true,
31
+ tag: 'tag:yaml.org,2002:bool',
32
+ test: /^true|false$/,
33
+ resolve: str => str === 'true',
34
+ stringify: stringifyJSON
35
+ },
36
+ {
37
+ identify: intIdentify,
38
+ default: true,
39
+ tag: 'tag:yaml.org,2002:int',
40
+ test: /^-?(?:0|[1-9][0-9]*)$/,
41
+ resolve: (str, _onError, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str, 10),
42
+ stringify: ({ value }) => intIdentify(value) ? value.toString() : JSON.stringify(value)
43
+ },
44
+ {
45
+ identify: value => typeof value === 'number',
46
+ default: true,
47
+ tag: 'tag:yaml.org,2002:float',
48
+ test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,
49
+ resolve: str => parseFloat(str),
50
+ stringify: stringifyJSON
51
+ }
52
+ ];
53
+ const jsonError = {
54
+ default: true,
55
+ tag: '',
56
+ test: /^/,
57
+ resolve(str, onError) {
58
+ onError(`Unresolved plain scalar ${JSON.stringify(str)}`);
59
+ return str;
60
+ }
61
+ };
62
+ const schema = [map.map, seq.seq].concat(jsonScalars, jsonError);
63
+
64
+ exports.schema = schema;
@@ -0,0 +1,41 @@
1
+ import { SchemaOptions } from '../options.js';
2
+ import type { SchemaName } from './Schema.js';
3
+ import type { CollectionTag, ScalarTag } from './types.js';
4
+ declare const tagsByName: {
5
+ binary: ScalarTag;
6
+ bool: ScalarTag & {
7
+ test: RegExp;
8
+ };
9
+ float: ScalarTag;
10
+ floatExp: ScalarTag;
11
+ floatNaN: ScalarTag;
12
+ floatTime: ScalarTag;
13
+ int: ScalarTag;
14
+ intHex: ScalarTag;
15
+ intOct: ScalarTag;
16
+ intTime: ScalarTag;
17
+ map: CollectionTag;
18
+ null: ScalarTag & {
19
+ test: RegExp;
20
+ };
21
+ omap: CollectionTag;
22
+ pairs: CollectionTag;
23
+ seq: CollectionTag;
24
+ set: CollectionTag;
25
+ timestamp: ScalarTag & {
26
+ test: RegExp;
27
+ };
28
+ };
29
+ export declare type TagId = keyof typeof tagsByName;
30
+ export declare type Tags = Array<ScalarTag | CollectionTag | TagId>;
31
+ export declare const coreKnownTags: {
32
+ 'tag:yaml.org,2002:binary': ScalarTag;
33
+ 'tag:yaml.org,2002:omap': CollectionTag;
34
+ 'tag:yaml.org,2002:pairs': CollectionTag;
35
+ 'tag:yaml.org,2002:set': CollectionTag;
36
+ 'tag:yaml.org,2002:timestamp': ScalarTag & {
37
+ test: RegExp;
38
+ };
39
+ };
40
+ export declare function getTags(customTags: SchemaOptions['customTags'] | undefined, schemaName: SchemaName): (ScalarTag | CollectionTag)[];
41
+ export {};