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
@@ -1,169 +0,0 @@
1
- function findLineStarts(src) {
2
- const ls = [0];
3
- let offset = src.indexOf('\n');
4
-
5
- while (offset !== -1) {
6
- offset += 1;
7
- ls.push(offset);
8
- offset = src.indexOf('\n', offset);
9
- }
10
-
11
- return ls;
12
- }
13
-
14
- function getSrcInfo(cst) {
15
- let lineStarts, src;
16
-
17
- if (typeof cst === 'string') {
18
- lineStarts = findLineStarts(cst);
19
- src = cst;
20
- } else {
21
- if (Array.isArray(cst)) cst = cst[0];
22
-
23
- if (cst && cst.context) {
24
- if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src);
25
- lineStarts = cst.lineStarts;
26
- src = cst.context.src;
27
- }
28
- }
29
-
30
- return {
31
- lineStarts,
32
- src
33
- };
34
- }
35
- /**
36
- * @typedef {Object} LinePos - One-indexed position in the source
37
- * @property {number} line
38
- * @property {number} col
39
- */
40
-
41
- /**
42
- * Determine the line/col position matching a character offset.
43
- *
44
- * Accepts a source string or a CST document as the second parameter. With
45
- * the latter, starting indices for lines are cached in the document as
46
- * `lineStarts: number[]`.
47
- *
48
- * Returns a one-indexed `{ line, col }` location if found, or
49
- * `undefined` otherwise.
50
- *
51
- * @param {number} offset
52
- * @param {string|Document|Document[]} cst
53
- * @returns {?LinePos}
54
- */
55
-
56
-
57
- function getLinePos(offset, cst) {
58
- if (typeof offset !== 'number' || offset < 0) return null;
59
- const {
60
- lineStarts,
61
- src
62
- } = getSrcInfo(cst);
63
- if (!lineStarts || !src || offset > src.length) return null;
64
-
65
- for (let i = 0; i < lineStarts.length; ++i) {
66
- const start = lineStarts[i];
67
-
68
- if (offset < start) {
69
- return {
70
- line: i,
71
- col: offset - lineStarts[i - 1] + 1
72
- };
73
- }
74
-
75
- if (offset === start) return {
76
- line: i + 1,
77
- col: 1
78
- };
79
- }
80
-
81
- const line = lineStarts.length;
82
- return {
83
- line,
84
- col: offset - lineStarts[line - 1] + 1
85
- };
86
- }
87
- /**
88
- * Get a specified line from the source.
89
- *
90
- * Accepts a source string or a CST document as the second parameter. With
91
- * the latter, starting indices for lines are cached in the document as
92
- * `lineStarts: number[]`.
93
- *
94
- * Returns the line as a string if found, or `null` otherwise.
95
- *
96
- * @param {number} line One-indexed line number
97
- * @param {string|Document|Document[]} cst
98
- * @returns {?string}
99
- */
100
-
101
- function getLine(line, cst) {
102
- const {
103
- lineStarts,
104
- src
105
- } = getSrcInfo(cst);
106
- if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null;
107
- const start = lineStarts[line - 1];
108
- let end = lineStarts[line]; // undefined for last line; that's ok for slice()
109
-
110
- while (end && end > start && src[end - 1] === '\n') --end;
111
-
112
- return src.slice(start, end);
113
- }
114
- /**
115
- * Pretty-print the starting line from the source indicated by the range `pos`
116
- *
117
- * Trims output to `maxWidth` chars while keeping the starting column visible,
118
- * using `…` at either end to indicate dropped characters.
119
- *
120
- * Returns a two-line string (or `null`) with `\n` as separator; the second line
121
- * will hold appropriately indented `^` marks indicating the column range.
122
- *
123
- * @param {Object} pos
124
- * @param {LinePos} pos.start
125
- * @param {LinePos} [pos.end]
126
- * @param {string|Document|Document[]*} cst
127
- * @param {number} [maxWidth=80]
128
- * @returns {?string}
129
- */
130
-
131
- function getPrettyContext({
132
- start,
133
- end
134
- }, cst, maxWidth = 80) {
135
- let src = getLine(start.line, cst);
136
- if (!src) return null;
137
- let {
138
- col
139
- } = start;
140
-
141
- if (src.length > maxWidth) {
142
- if (col <= maxWidth - 10) {
143
- src = src.substr(0, maxWidth - 1) + '…';
144
- } else {
145
- const halfWidth = Math.round(maxWidth / 2);
146
- if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…';
147
- col -= src.length - maxWidth;
148
- src = '…' + src.substr(1 - maxWidth);
149
- }
150
- }
151
-
152
- let errLen = 1;
153
- let errEnd = '';
154
-
155
- if (end) {
156
- if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) {
157
- errLen = end.col - start.col;
158
- } else {
159
- errLen = Math.min(src.length + 1, maxWidth) - col;
160
- errEnd = '…';
161
- }
162
- }
163
-
164
- const offset = col > 1 ? ' '.repeat(col - 1) : '';
165
- const err = '^'.repeat(errLen);
166
- return "".concat(src, "\n").concat(offset).concat(err).concat(errEnd);
167
- }
168
-
169
- export { getLine, getLinePos, getPrettyContext };
@@ -1,115 +0,0 @@
1
- import { defineProperty as _defineProperty } from '../_virtual/_rollupPluginBabelHelpers.js';
2
- import { Scalar } from '../ast/Scalar.js';
3
- import { YAMLSeq } from '../ast/YAMLSeq.js';
4
- import { YAMLMap } from '../ast/YAMLMap.js';
5
- import { Alias } from '../ast/Alias.js';
6
- import { Merge } from '../ast/Merge.js';
7
-
8
- class Anchors {
9
- static validAnchorNode(node) {
10
- return node instanceof Scalar || node instanceof YAMLSeq || node instanceof YAMLMap;
11
- }
12
-
13
- constructor(prefix) {
14
- _defineProperty(this, "map", Object.create(null));
15
-
16
- this.prefix = prefix;
17
- }
18
-
19
- createAlias(node, name) {
20
- this.setAnchor(node, name);
21
- return new Alias(node);
22
- }
23
-
24
- createMergePair(...sources) {
25
- const merge = new Merge();
26
- merge.value.items = sources.map(s => {
27
- if (s instanceof Alias) {
28
- if (s.source instanceof YAMLMap) return s;
29
- } else if (s instanceof YAMLMap) {
30
- return this.createAlias(s);
31
- }
32
-
33
- throw new Error('Merge sources must be Map nodes or their Aliases');
34
- });
35
- return merge;
36
- }
37
-
38
- getName(node) {
39
- const {
40
- map
41
- } = this;
42
- return Object.keys(map).find(a => map[a] === node);
43
- }
44
-
45
- getNames() {
46
- return Object.keys(this.map);
47
- }
48
-
49
- getNode(name) {
50
- return this.map[name];
51
- }
52
-
53
- newName(prefix) {
54
- if (!prefix) prefix = this.prefix;
55
- const names = Object.keys(this.map);
56
-
57
- for (let i = 1; true; ++i) {
58
- const name = "".concat(prefix).concat(i);
59
- if (!names.includes(name)) return name;
60
- }
61
- } // During parsing, map & aliases contain CST nodes
62
-
63
-
64
- resolveNodes() {
65
- const {
66
- map,
67
- _cstAliases
68
- } = this;
69
- Object.keys(map).forEach(a => {
70
- map[a] = map[a].resolved;
71
- });
72
-
73
- _cstAliases.forEach(a => {
74
- a.source = a.source.resolved;
75
- });
76
-
77
- delete this._cstAliases;
78
- }
79
-
80
- setAnchor(node, name) {
81
- if (node != null && !Anchors.validAnchorNode(node)) {
82
- throw new Error('Anchors may only be set for Scalar, Seq and Map nodes');
83
- }
84
-
85
- if (name && /[\x00-\x19\s,[\]{}]/.test(name)) {
86
- throw new Error('Anchor names must not contain whitespace or control characters');
87
- }
88
-
89
- const {
90
- map
91
- } = this;
92
- const prev = node && Object.keys(map).find(a => map[a] === node);
93
-
94
- if (prev) {
95
- if (!name) {
96
- return prev;
97
- } else if (prev !== name) {
98
- delete map[prev];
99
- map[name] = node;
100
- }
101
- } else {
102
- if (!name) {
103
- if (!node) return null;
104
- name = this.newName();
105
- }
106
-
107
- map[name] = node;
108
- }
109
-
110
- return name;
111
- }
112
-
113
- }
114
-
115
- export { Anchors };
@@ -1,34 +0,0 @@
1
- import { tags, schemas } from '../tags/index.js';
2
- import { getSchemaTags } from './getSchemaTags.js';
3
-
4
- const sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;
5
-
6
- const coreKnownTags = {
7
- 'tag:yaml.org,2002:binary': tags.binary,
8
- 'tag:yaml.org,2002:omap': tags.omap,
9
- 'tag:yaml.org,2002:pairs': tags.pairs,
10
- 'tag:yaml.org,2002:set': tags.set,
11
- 'tag:yaml.org,2002:timestamp': tags.timestamp
12
- };
13
- class Schema {
14
- constructor({
15
- customTags,
16
- merge,
17
- resolveKnownTags,
18
- schema,
19
- sortMapEntries
20
- }) {
21
- this.merge = !!merge;
22
- this.name = schema;
23
- this.knownTags = resolveKnownTags ? coreKnownTags : {};
24
- this.tags = getSchemaTags(schemas, tags, customTags, schema); // Used by createNode(), to avoid circular dependencies
25
-
26
- this.map = tags.map;
27
- this.seq = tags.seq; // Used by createMap()
28
-
29
- this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null;
30
- }
31
-
32
- }
33
-
34
- export { Schema };
@@ -1,33 +0,0 @@
1
- function getSchemaTags(schemas, knownTags, customTags, schemaId) {
2
- let tags = schemas[schemaId.replace(/\W/g, '')]; // 'yaml-1.1' -> 'yaml11'
3
-
4
- if (!tags) {
5
- const keys = Object.keys(schemas).map(key => JSON.stringify(key)).join(', ');
6
- throw new Error("Unknown schema \"".concat(schemaId, "\"; use one of ").concat(keys));
7
- }
8
-
9
- if (Array.isArray(customTags)) {
10
- for (const tag of customTags) tags = tags.concat(tag);
11
- } else if (typeof customTags === 'function') {
12
- tags = customTags(tags.slice());
13
- }
14
-
15
- for (let i = 0; i < tags.length; ++i) {
16
- const tag = tags[i];
17
-
18
- if (typeof tag === 'string') {
19
- const tagObj = knownTags[tag];
20
-
21
- if (!tagObj) {
22
- const keys = Object.keys(knownTags).map(key => JSON.stringify(key)).join(', ');
23
- throw new Error("Unknown custom tag \"".concat(tag, "\"; use one of ").concat(keys));
24
- }
25
-
26
- tags[i] = tagObj;
27
- }
28
- }
29
-
30
- return tags;
31
- }
32
-
33
- export { getSchemaTags };
@@ -1,27 +0,0 @@
1
- import { Collection } from '../ast/Collection.js';
2
- import { Pair } from '../ast/Pair.js';
3
- import { Scalar } from '../ast/Scalar.js';
4
-
5
- const visit = (node, tags) => {
6
- if (node && typeof node === 'object') {
7
- const {
8
- tag
9
- } = node;
10
-
11
- if (node instanceof Collection) {
12
- if (tag) tags[tag] = true;
13
- node.items.forEach(n => visit(n, tags));
14
- } else if (node instanceof Pair) {
15
- visit(node.key, tags);
16
- visit(node.value, tags);
17
- } else if (node instanceof Scalar) {
18
- if (tag) tags[tag] = true;
19
- }
20
- }
21
-
22
- return tags;
23
- };
24
-
25
- const listTagNames = node => Object.keys(visit(node, {}));
26
-
27
- export { listTagNames };
@@ -1,60 +0,0 @@
1
- import { Type } from '../constants.js';
2
- import { YAMLSyntaxError } from '../errors.js';
3
- import { resolveNode } from '../resolve/resolveNode.js';
4
- import { Collection } from '../ast/Collection.js';
5
-
6
- function parseContents(doc, contents) {
7
- const comments = {
8
- before: [],
9
- after: []
10
- };
11
- let body = undefined;
12
- let spaceBefore = false;
13
-
14
- for (const node of contents) {
15
- if (node.valueRange) {
16
- if (body !== undefined) {
17
- const msg = 'Document contains trailing content not separated by a ... or --- line';
18
- doc.errors.push(new YAMLSyntaxError(node, msg));
19
- break;
20
- }
21
-
22
- const res = resolveNode(doc, node);
23
-
24
- if (spaceBefore) {
25
- res.spaceBefore = true;
26
- spaceBefore = false;
27
- }
28
-
29
- body = res;
30
- } else if (node.comment !== null) {
31
- const cc = body === undefined ? comments.before : comments.after;
32
- cc.push(node.comment);
33
- } else if (node.type === Type.BLANK_LINE) {
34
- spaceBefore = true;
35
-
36
- if (body === undefined && comments.before.length > 0 && !doc.commentBefore) {
37
- // space-separated comments at start are parsed as document comments
38
- doc.commentBefore = comments.before.join('\n');
39
- comments.before = [];
40
- }
41
- }
42
- }
43
-
44
- doc.contents = body || null;
45
-
46
- if (!body) {
47
- doc.comment = comments.before.concat(comments.after).join('\n') || null;
48
- } else {
49
- const cb = comments.before.join('\n');
50
-
51
- if (cb) {
52
- const cbNode = body instanceof Collection && body.items[0] ? body.items[0] : body;
53
- cbNode.commentBefore = cbNode.commentBefore ? "".concat(cb, "\n").concat(cbNode.commentBefore) : cb;
54
- }
55
-
56
- doc.comment = comments.after.join('\n') || null;
57
- }
58
- }
59
-
60
- export { parseContents };
@@ -1,107 +0,0 @@
1
- import { YAMLWarning, YAMLSemanticError } from '../errors.js';
2
- import { documentOptions } from '../options.js';
3
-
4
- function resolveTagDirective({
5
- tagPrefixes
6
- }, directive) {
7
- const [handle, prefix] = directive.parameters;
8
-
9
- if (!handle || !prefix) {
10
- const msg = 'Insufficient parameters given for %TAG directive';
11
- throw new YAMLSemanticError(directive, msg);
12
- }
13
-
14
- if (tagPrefixes.some(p => p.handle === handle)) {
15
- const msg = 'The %TAG directive must only be given at most once per handle in the same document.';
16
- throw new YAMLSemanticError(directive, msg);
17
- }
18
-
19
- return {
20
- handle,
21
- prefix
22
- };
23
- }
24
-
25
- function resolveYamlDirective(doc, directive) {
26
- let [version] = directive.parameters;
27
- if (directive.name === 'YAML:1.0') version = '1.0';
28
-
29
- if (!version) {
30
- const msg = 'Insufficient parameters given for %YAML directive';
31
- throw new YAMLSemanticError(directive, msg);
32
- }
33
-
34
- if (!documentOptions[version]) {
35
- const v0 = doc.version || doc.options.version;
36
- const msg = "Document will be parsed as YAML ".concat(v0, " rather than YAML ").concat(version);
37
- doc.warnings.push(new YAMLWarning(directive, msg));
38
- }
39
-
40
- return version;
41
- }
42
-
43
- function parseDirectives(doc, directives, prevDoc) {
44
- const directiveComments = [];
45
- let hasDirectives = false;
46
-
47
- for (const directive of directives) {
48
- const {
49
- comment,
50
- name
51
- } = directive;
52
-
53
- switch (name) {
54
- case 'TAG':
55
- try {
56
- doc.tagPrefixes.push(resolveTagDirective(doc, directive));
57
- } catch (error) {
58
- doc.errors.push(error);
59
- }
60
-
61
- hasDirectives = true;
62
- break;
63
-
64
- case 'YAML':
65
- case 'YAML:1.0':
66
- if (doc.version) {
67
- const msg = 'The %YAML directive must only be given at most once per document.';
68
- doc.errors.push(new YAMLSemanticError(directive, msg));
69
- }
70
-
71
- try {
72
- doc.version = resolveYamlDirective(doc, directive);
73
- } catch (error) {
74
- doc.errors.push(error);
75
- }
76
-
77
- hasDirectives = true;
78
- break;
79
-
80
- default:
81
- if (name) {
82
- const msg = "YAML only supports %TAG and %YAML directives, and not %".concat(name);
83
- doc.warnings.push(new YAMLWarning(directive, msg));
84
- }
85
-
86
- }
87
-
88
- if (comment) directiveComments.push(comment);
89
- }
90
-
91
- if (prevDoc && !hasDirectives && '1.1' === (doc.version || prevDoc.version || doc.options.version)) {
92
- const copyTagPrefix = ({
93
- handle,
94
- prefix
95
- }) => ({
96
- handle,
97
- prefix
98
- });
99
-
100
- doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix);
101
- doc.version = prevDoc.version;
102
- }
103
-
104
- doc.commentBefore = directiveComments.join('\n') || null;
105
- }
106
-
107
- export { parseDirectives };
@@ -1,86 +0,0 @@
1
- import { YAMLSemanticError } from '../errors.js';
2
- import { Type } from '../constants.js';
3
-
4
- function checkFlowCollectionEnd(errors, cst) {
5
- let char, name;
6
-
7
- switch (cst.type) {
8
- case Type.FLOW_MAP:
9
- char = '}';
10
- name = 'flow map';
11
- break;
12
-
13
- case Type.FLOW_SEQ:
14
- char = ']';
15
- name = 'flow sequence';
16
- break;
17
-
18
- default:
19
- errors.push(new YAMLSemanticError(cst, 'Not a flow collection!?'));
20
- return;
21
- }
22
-
23
- let lastItem;
24
-
25
- for (let i = cst.items.length - 1; i >= 0; --i) {
26
- const item = cst.items[i];
27
-
28
- if (!item || item.type !== Type.COMMENT) {
29
- lastItem = item;
30
- break;
31
- }
32
- }
33
-
34
- if (lastItem && lastItem.char !== char) {
35
- const msg = "Expected ".concat(name, " to end with ").concat(char);
36
- let err;
37
-
38
- if (typeof lastItem.offset === 'number') {
39
- err = new YAMLSemanticError(cst, msg);
40
- err.offset = lastItem.offset + 1;
41
- } else {
42
- err = new YAMLSemanticError(lastItem, msg);
43
- if (lastItem.range && lastItem.range.end) err.offset = lastItem.range.end - lastItem.range.start;
44
- }
45
-
46
- errors.push(err);
47
- }
48
- }
49
- function checkFlowCommentSpace(errors, comment) {
50
- const prev = comment.context.src[comment.range.start - 1];
51
-
52
- if (prev !== '\n' && prev !== '\t' && prev !== ' ') {
53
- const msg = 'Comments must be separated from other tokens by white space characters';
54
- errors.push(new YAMLSemanticError(comment, msg));
55
- }
56
- }
57
- function getLongKeyError(source, key) {
58
- const sk = String(key);
59
- const k = sk.substr(0, 8) + '...' + sk.substr(-8);
60
- return new YAMLSemanticError(source, "The \"".concat(k, "\" key is too long"));
61
- }
62
- function resolveComments(collection, comments) {
63
- for (const {
64
- afterKey,
65
- before,
66
- comment
67
- } of comments) {
68
- let item = collection.items[before];
69
-
70
- if (!item) {
71
- if (comment !== undefined) {
72
- if (collection.comment) collection.comment += '\n' + comment;else collection.comment = comment;
73
- }
74
- } else {
75
- if (afterKey && item.value) item = item.value;
76
-
77
- if (comment === undefined) {
78
- if (afterKey || !item.commentBefore) item.spaceBefore = true;
79
- } else {
80
- if (item.commentBefore) item.commentBefore += '\n' + comment;else item.commentBefore = comment;
81
- }
82
- }
83
- }
84
- }
85
-
86
- export { checkFlowCollectionEnd, checkFlowCommentSpace, getLongKeyError, resolveComments };