yaml 2.0.0-3 → 2.0.0-7

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 (345) 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 +79 -0
  6. package/browser/dist/compose/compose-scalar.js +74 -0
  7. package/browser/dist/compose/composer.js +219 -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 +217 -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 +75 -55
  22. package/browser/dist/doc/directives.js +161 -0
  23. package/browser/dist/errors.js +50 -72
  24. package/browser/dist/index.js +16 -72
  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 +674 -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 +134 -71
  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 +82 -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 +223 -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 +219 -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 +75 -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 +39 -70
  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 +676 -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 +134 -71
  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/constants.js +0 -40
  233. package/browser/dist/cst/Alias.js +0 -26
  234. package/browser/dist/cst/BlankLine.js +0 -34
  235. package/browser/dist/cst/BlockValue.js +0 -240
  236. package/browser/dist/cst/Collection.js +0 -259
  237. package/browser/dist/cst/CollectionItem.js +0 -123
  238. package/browser/dist/cst/Comment.js +0 -27
  239. package/browser/dist/cst/Directive.js +0 -53
  240. package/browser/dist/cst/Document.js +0 -262
  241. package/browser/dist/cst/FlowCollection.js +0 -201
  242. package/browser/dist/cst/Node.js +0 -355
  243. package/browser/dist/cst/ParseContext.js +0 -234
  244. package/browser/dist/cst/PlainValue.js +0 -171
  245. package/browser/dist/cst/QuoteDouble.js +0 -224
  246. package/browser/dist/cst/QuoteSingle.js +0 -100
  247. package/browser/dist/cst/Range.js +0 -56
  248. package/browser/dist/cst/parse.js +0 -46
  249. package/browser/dist/cst/source-utils.js +0 -169
  250. package/browser/dist/doc/Anchors.js +0 -115
  251. package/browser/dist/doc/Schema.js +0 -34
  252. package/browser/dist/doc/getSchemaTags.js +0 -33
  253. package/browser/dist/doc/listTagNames.js +0 -27
  254. package/browser/dist/doc/parseContents.js +0 -60
  255. package/browser/dist/doc/parseDirectives.js +0 -107
  256. package/browser/dist/resolve/collection-utils.js +0 -86
  257. package/browser/dist/resolve/resolveMap.js +0 -315
  258. package/browser/dist/resolve/resolveNode.js +0 -173
  259. package/browser/dist/resolve/resolveScalar.js +0 -20
  260. package/browser/dist/resolve/resolveSeq.js +0 -170
  261. package/browser/dist/resolve/resolveTag.js +0 -107
  262. package/browser/dist/resolve/resolveTagName.js +0 -87
  263. package/browser/dist/stringify/addComment.js +0 -10
  264. package/browser/dist/stringify/stringifyTag.js +0 -28
  265. package/browser/dist/tags/core.js +0 -128
  266. package/browser/dist/tags/failsafe/index.js +0 -7
  267. package/browser/dist/tags/failsafe/map.js +0 -37
  268. package/browser/dist/tags/failsafe/seq.js +0 -34
  269. package/browser/dist/tags/failsafe/string.js +0 -20
  270. package/browser/dist/tags/index.js +0 -39
  271. package/browser/dist/tags/json.js +0 -62
  272. package/browser/dist/tags/options.js +0 -31
  273. package/browser/dist/tags/yaml-1.1/binary.js +0 -83
  274. package/browser/dist/tags/yaml-1.1/index.js +0 -174
  275. package/browser/dist/tags/yaml-1.1/omap.js +0 -86
  276. package/browser/dist/tags/yaml-1.1/pairs.js +0 -62
  277. package/browser/dist/tags/yaml-1.1/set.js +0 -78
  278. package/browser/dist/tags/yaml-1.1/timestamp.js +0 -101
  279. package/browser/dist/types.js +0 -10
  280. package/cst.d.ts +0 -185
  281. package/dist/_virtual/_rollupPluginBabelHelpers.js +0 -18
  282. package/dist/ast/Alias.js +0 -97
  283. package/dist/ast/Collection.js +0 -196
  284. package/dist/ast/Merge.js +0 -74
  285. package/dist/ast/Node.js +0 -5
  286. package/dist/ast/Pair.js +0 -203
  287. package/dist/ast/Scalar.js +0 -24
  288. package/dist/ast/YAMLMap.js +0 -94
  289. package/dist/ast/YAMLSeq.js +0 -69
  290. package/dist/ast/toJS.js +0 -31
  291. package/dist/constants.js +0 -46
  292. package/dist/cst/Alias.js +0 -28
  293. package/dist/cst/BlankLine.js +0 -36
  294. package/dist/cst/BlockValue.js +0 -243
  295. package/dist/cst/Collection.js +0 -262
  296. package/dist/cst/CollectionItem.js +0 -125
  297. package/dist/cst/Comment.js +0 -29
  298. package/dist/cst/Directive.js +0 -55
  299. package/dist/cst/Document.js +0 -264
  300. package/dist/cst/FlowCollection.js +0 -203
  301. package/dist/cst/Node.js +0 -357
  302. package/dist/cst/ParseContext.js +0 -236
  303. package/dist/cst/PlainValue.js +0 -173
  304. package/dist/cst/QuoteDouble.js +0 -226
  305. package/dist/cst/QuoteSingle.js +0 -102
  306. package/dist/cst/Range.js +0 -58
  307. package/dist/cst/parse.js +0 -48
  308. package/dist/cst/source-utils.js +0 -173
  309. package/dist/doc/Anchors.js +0 -117
  310. package/dist/doc/Schema.js +0 -36
  311. package/dist/doc/getSchemaTags.js +0 -35
  312. package/dist/doc/listTagNames.js +0 -29
  313. package/dist/doc/parseContents.js +0 -62
  314. package/dist/doc/parseDirectives.js +0 -109
  315. package/dist/resolve/collection-utils.js +0 -91
  316. package/dist/resolve/resolveMap.js +0 -317
  317. package/dist/resolve/resolveNode.js +0 -175
  318. package/dist/resolve/resolveScalar.js +0 -22
  319. package/dist/resolve/resolveSeq.js +0 -172
  320. package/dist/resolve/resolveTag.js +0 -109
  321. package/dist/resolve/resolveTagName.js +0 -89
  322. package/dist/stringify/addComment.js +0 -13
  323. package/dist/stringify/stringifyTag.js +0 -30
  324. package/dist/tags/core.js +0 -138
  325. package/dist/tags/failsafe/index.js +0 -9
  326. package/dist/tags/failsafe/map.js +0 -39
  327. package/dist/tags/failsafe/seq.js +0 -36
  328. package/dist/tags/failsafe/string.js +0 -22
  329. package/dist/tags/index.js +0 -42
  330. package/dist/tags/json.js +0 -64
  331. package/dist/tags/options.js +0 -37
  332. package/dist/tags/yaml-1.1/binary.js +0 -85
  333. package/dist/tags/yaml-1.1/index.js +0 -176
  334. package/dist/tags/yaml-1.1/omap.js +0 -89
  335. package/dist/tags/yaml-1.1/pairs.js +0 -66
  336. package/dist/tags/yaml-1.1/set.js +0 -81
  337. package/dist/tags/yaml-1.1/timestamp.js +0 -105
  338. package/dist/types.js +0 -29
  339. package/index.d.ts +0 -519
  340. package/index.js +0 -1
  341. package/types.d.ts +0 -379
  342. package/types.js +0 -17
  343. package/types.mjs +0 -17
  344. package/util.d.ts +0 -76
  345. package/util.mjs +0 -15
package/dist/cst/Node.js DELETED
@@ -1,357 +0,0 @@
1
- 'use strict';
2
-
3
- var constants = require('../constants.js');
4
- var sourceUtils = require('./source-utils.js');
5
- var Range = require('./Range.js');
6
-
7
- /** Root class of all nodes */
8
-
9
- class Node {
10
- static addStringTerminator(src, offset, str) {
11
- if (str[str.length - 1] === '\n') return str;
12
- const next = Node.endOfWhiteSpace(src, offset);
13
- return next >= src.length || src[next] === '\n' ? str + '\n' : str;
14
- } // ^(---|...)
15
-
16
-
17
- static atDocumentBoundary(src, offset, sep) {
18
- const ch0 = src[offset];
19
- if (!ch0) return true;
20
- const prev = src[offset - 1];
21
- if (prev && prev !== '\n') return false;
22
-
23
- if (sep) {
24
- if (ch0 !== sep) return false;
25
- } else {
26
- if (ch0 !== constants.Char.DIRECTIVES_END && ch0 !== constants.Char.DOCUMENT_END) return false;
27
- }
28
-
29
- const ch1 = src[offset + 1];
30
- const ch2 = src[offset + 2];
31
- if (ch1 !== ch0 || ch2 !== ch0) return false;
32
- const ch3 = src[offset + 3];
33
- return !ch3 || ch3 === '\n' || ch3 === '\t' || ch3 === ' ';
34
- }
35
-
36
- static endOfIdentifier(src, offset) {
37
- let ch = src[offset];
38
- const isVerbatim = ch === '<';
39
- const notOk = isVerbatim ? ['\n', '\t', ' ', '>'] : ['\n', '\t', ' ', '[', ']', '{', '}', ','];
40
-
41
- while (ch && notOk.indexOf(ch) === -1) ch = src[offset += 1];
42
-
43
- if (isVerbatim && ch === '>') offset += 1;
44
- return offset;
45
- }
46
-
47
- static endOfIndent(src, offset) {
48
- let ch = src[offset];
49
-
50
- while (ch === ' ') ch = src[offset += 1];
51
-
52
- return offset;
53
- }
54
-
55
- static endOfLine(src, offset) {
56
- let ch = src[offset];
57
-
58
- while (ch && ch !== '\n') ch = src[offset += 1];
59
-
60
- return offset;
61
- }
62
-
63
- static endOfWhiteSpace(src, offset) {
64
- let ch = src[offset];
65
-
66
- while (ch === '\t' || ch === ' ') ch = src[offset += 1];
67
-
68
- return offset;
69
- }
70
-
71
- static startOfLine(src, offset) {
72
- let ch = src[offset - 1];
73
- if (ch === '\n') return offset;
74
-
75
- while (ch && ch !== '\n') ch = src[offset -= 1];
76
-
77
- return offset + 1;
78
- }
79
- /**
80
- * End of indentation, or null if the line's indent level is not more
81
- * than `indent`
82
- *
83
- * @param {string} src
84
- * @param {number} indent
85
- * @param {number} lineStart
86
- * @returns {?number}
87
- */
88
-
89
-
90
- static endOfBlockIndent(src, indent, lineStart) {
91
- const inEnd = Node.endOfIndent(src, lineStart);
92
-
93
- if (inEnd > lineStart + indent) {
94
- return inEnd;
95
- } else {
96
- const wsEnd = Node.endOfWhiteSpace(src, inEnd);
97
- const ch = src[wsEnd];
98
- if (!ch || ch === '\n') return wsEnd;
99
- }
100
-
101
- return null;
102
- }
103
-
104
- static atBlank(src, offset, endAsBlank) {
105
- const ch = src[offset];
106
- return ch === '\n' || ch === '\t' || ch === ' ' || endAsBlank && !ch;
107
- }
108
-
109
- static nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) {
110
- if (!ch || indentDiff < 0) return false;
111
- if (indentDiff > 0) return true;
112
- return indicatorAsIndent && ch === '-';
113
- } // should be at line or string end, or at next non-whitespace char
114
-
115
-
116
- static normalizeOffset(src, offset) {
117
- const ch = src[offset];
118
- return !ch ? offset : ch !== '\n' && src[offset - 1] === '\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset);
119
- } // fold single newline into space, multiple newlines to N - 1 newlines
120
- // presumes src[offset] === '\n'
121
-
122
-
123
- static foldNewline(src, offset, indent) {
124
- let inCount = 0;
125
- let error = false;
126
- let fold = '';
127
- let ch = src[offset + 1];
128
-
129
- while (ch === ' ' || ch === '\t' || ch === '\n') {
130
- switch (ch) {
131
- case '\n':
132
- inCount = 0;
133
- offset += 1;
134
- fold += '\n';
135
- break;
136
-
137
- case '\t':
138
- if (inCount <= indent) error = true;
139
- offset = Node.endOfWhiteSpace(src, offset + 2) - 1;
140
- break;
141
-
142
- case ' ':
143
- inCount += 1;
144
- offset += 1;
145
- break;
146
- }
147
-
148
- ch = src[offset + 1];
149
- }
150
-
151
- if (!fold) fold = ' ';
152
- if (ch && inCount <= indent) error = true;
153
- return {
154
- fold,
155
- offset,
156
- error
157
- };
158
- }
159
-
160
- constructor(type, props, context) {
161
- Object.defineProperty(this, 'context', {
162
- value: context || null,
163
- writable: true
164
- });
165
- this.error = null;
166
- this.range = null;
167
- this.valueRange = null;
168
- this.props = props || [];
169
- this.type = type;
170
- this.value = null;
171
- }
172
-
173
- getPropValue(idx, key, skipKey) {
174
- if (!this.context) return null;
175
- const {
176
- src
177
- } = this.context;
178
- const prop = this.props[idx];
179
- return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null;
180
- }
181
-
182
- get anchor() {
183
- for (let i = 0; i < this.props.length; ++i) {
184
- const anchor = this.getPropValue(i, constants.Char.ANCHOR, true);
185
- if (anchor != null) return anchor;
186
- }
187
-
188
- return null;
189
- }
190
-
191
- get comment() {
192
- const comments = [];
193
-
194
- for (let i = 0; i < this.props.length; ++i) {
195
- const comment = this.getPropValue(i, constants.Char.COMMENT, true);
196
- if (comment != null) comments.push(comment);
197
- }
198
-
199
- return comments.length > 0 ? comments.join('\n') : null;
200
- }
201
-
202
- commentHasRequiredWhitespace(start) {
203
- const {
204
- src
205
- } = this.context;
206
- if (this.header && start === this.header.end) return false;
207
- if (!this.valueRange) return false;
208
- const {
209
- end
210
- } = this.valueRange;
211
- return start !== end || Node.atBlank(src, end - 1);
212
- }
213
-
214
- get hasComment() {
215
- if (this.context) {
216
- const {
217
- src
218
- } = this.context;
219
-
220
- for (let i = 0; i < this.props.length; ++i) {
221
- if (src[this.props[i].start] === constants.Char.COMMENT) return true;
222
- }
223
- }
224
-
225
- return false;
226
- }
227
-
228
- get hasProps() {
229
- if (this.context) {
230
- const {
231
- src
232
- } = this.context;
233
-
234
- for (let i = 0; i < this.props.length; ++i) {
235
- if (src[this.props[i].start] !== constants.Char.COMMENT) return true;
236
- }
237
- }
238
-
239
- return false;
240
- }
241
-
242
- get includesTrailingLines() {
243
- return false;
244
- }
245
-
246
- get jsonLike() {
247
- const jsonLikeTypes = [constants.Type.FLOW_MAP, constants.Type.FLOW_SEQ, constants.Type.QUOTE_DOUBLE, constants.Type.QUOTE_SINGLE];
248
- return jsonLikeTypes.indexOf(this.type) !== -1;
249
- }
250
-
251
- get rangeAsLinePos() {
252
- if (!this.range || !this.context) return undefined;
253
- const start = sourceUtils.getLinePos(this.range.start, this.context.root);
254
- if (!start) return undefined;
255
- const end = sourceUtils.getLinePos(this.range.end, this.context.root);
256
- return {
257
- start,
258
- end
259
- };
260
- }
261
-
262
- get rawValue() {
263
- if (!this.valueRange || !this.context) return null;
264
- const {
265
- start,
266
- end
267
- } = this.valueRange;
268
- return this.context.src.slice(start, end);
269
- }
270
-
271
- get tag() {
272
- for (let i = 0; i < this.props.length; ++i) {
273
- const tag = this.getPropValue(i, constants.Char.TAG, false);
274
-
275
- if (tag != null) {
276
- if (tag[1] === '<') {
277
- return {
278
- verbatim: tag.slice(2, -1)
279
- };
280
- } else {
281
- // eslint-disable-next-line no-unused-vars
282
- const [_, handle, suffix] = tag.match(/^(.*!)([^!]*)$/);
283
- return {
284
- handle,
285
- suffix
286
- };
287
- }
288
- }
289
- }
290
-
291
- return null;
292
- }
293
-
294
- get valueRangeContainsNewline() {
295
- if (!this.valueRange || !this.context) return false;
296
- const {
297
- start,
298
- end
299
- } = this.valueRange;
300
- const {
301
- src
302
- } = this.context;
303
-
304
- for (let i = start; i < end; ++i) {
305
- if (src[i] === '\n') return true;
306
- }
307
-
308
- return false;
309
- }
310
-
311
- parseComment(start) {
312
- const {
313
- src
314
- } = this.context;
315
-
316
- if (src[start] === constants.Char.COMMENT) {
317
- const end = Node.endOfLine(src, start + 1);
318
- const commentRange = new Range.Range(start, end);
319
- this.props.push(commentRange);
320
- return end;
321
- }
322
-
323
- return start;
324
- }
325
- /**
326
- * Populates the `origStart` and `origEnd` values of all ranges for this
327
- * node. Extended by child classes to handle descendant nodes.
328
- *
329
- * @param {number[]} cr - Positions of dropped CR characters
330
- * @param {number} offset - Starting index of `cr` from the last call
331
- * @returns {number} - The next offset, matching the one found for `origStart`
332
- */
333
-
334
-
335
- setOrigRanges(cr, offset) {
336
- if (this.range) offset = this.range.setOrigRange(cr, offset);
337
- if (this.valueRange) this.valueRange.setOrigRange(cr, offset);
338
- this.props.forEach(prop => prop.setOrigRange(cr, offset));
339
- return offset;
340
- }
341
-
342
- toString() {
343
- const {
344
- context: {
345
- src
346
- },
347
- range,
348
- value
349
- } = this;
350
- if (value != null) return value;
351
- const str = src.slice(range.start, range.end);
352
- return Node.addStringTerminator(src, range.end, str);
353
- }
354
-
355
- }
356
-
357
- exports.Node = Node;
@@ -1,236 +0,0 @@
1
- 'use strict';
2
-
3
- var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
4
- var constants = require('../constants.js');
5
- var errors = require('../errors.js');
6
- var Alias = require('./Alias.js');
7
- var BlockValue = require('./BlockValue.js');
8
- var Collection = require('./Collection.js');
9
- var CollectionItem = require('./CollectionItem.js');
10
- var FlowCollection = require('./FlowCollection.js');
11
- var Node = require('./Node.js');
12
- var PlainValue = require('./PlainValue.js');
13
- var QuoteDouble = require('./QuoteDouble.js');
14
- var QuoteSingle = require('./QuoteSingle.js');
15
- var Range = require('./Range.js');
16
-
17
- function createNewNode(type, props) {
18
- switch (type) {
19
- case constants.Type.ALIAS:
20
- return new Alias.Alias(type, props);
21
-
22
- case constants.Type.BLOCK_FOLDED:
23
- case constants.Type.BLOCK_LITERAL:
24
- return new BlockValue.BlockValue(type, props);
25
-
26
- case constants.Type.FLOW_MAP:
27
- case constants.Type.FLOW_SEQ:
28
- return new FlowCollection.FlowCollection(type, props);
29
-
30
- case constants.Type.MAP_KEY:
31
- case constants.Type.MAP_VALUE:
32
- case constants.Type.SEQ_ITEM:
33
- return new CollectionItem.CollectionItem(type, props);
34
-
35
- case constants.Type.COMMENT:
36
- case constants.Type.PLAIN:
37
- return new PlainValue.PlainValue(type, props);
38
-
39
- case constants.Type.QUOTE_DOUBLE:
40
- return new QuoteDouble.QuoteDouble(type, props);
41
-
42
- case constants.Type.QUOTE_SINGLE:
43
- return new QuoteSingle.QuoteSingle(type, props);
44
-
45
- /* istanbul ignore next */
46
-
47
- default:
48
- return null;
49
- // should never happen
50
- }
51
- }
52
- /**
53
- * @param {boolean} atLineStart - Node starts at beginning of line
54
- * @param {boolean} inFlow - true if currently in a flow context
55
- * @param {boolean} inCollection - true if currently in a collection context
56
- * @param {number} indent - Current level of indentation
57
- * @param {number} lineStart - Start of the current line
58
- * @param {Node} parent - The parent of the node
59
- * @param {string} src - Source of the YAML document
60
- */
61
-
62
-
63
- class ParseContext {
64
- static parseType(src, offset, inFlow) {
65
- switch (src[offset]) {
66
- case '*':
67
- return constants.Type.ALIAS;
68
-
69
- case '>':
70
- return constants.Type.BLOCK_FOLDED;
71
-
72
- case '|':
73
- return constants.Type.BLOCK_LITERAL;
74
-
75
- case '{':
76
- return constants.Type.FLOW_MAP;
77
-
78
- case '[':
79
- return constants.Type.FLOW_SEQ;
80
-
81
- case '?':
82
- return !inFlow && Node.Node.atBlank(src, offset + 1, true) ? constants.Type.MAP_KEY : constants.Type.PLAIN;
83
-
84
- case ':':
85
- return !inFlow && Node.Node.atBlank(src, offset + 1, true) ? constants.Type.MAP_VALUE : constants.Type.PLAIN;
86
-
87
- case '-':
88
- return !inFlow && Node.Node.atBlank(src, offset + 1, true) ? constants.Type.SEQ_ITEM : constants.Type.PLAIN;
89
-
90
- case '"':
91
- return constants.Type.QUOTE_DOUBLE;
92
-
93
- case "'":
94
- return constants.Type.QUOTE_SINGLE;
95
-
96
- default:
97
- return constants.Type.PLAIN;
98
- }
99
- }
100
-
101
- constructor(orig = {}, {
102
- atLineStart,
103
- inCollection,
104
- inFlow,
105
- indent,
106
- lineStart,
107
- parent
108
- } = {}) {
109
- _rollupPluginBabelHelpers.defineProperty(this, "parseNode", (overlay, start) => {
110
- if (Node.Node.atDocumentBoundary(this.src, start)) return null;
111
- const context = new ParseContext(this, overlay);
112
- const {
113
- props,
114
- type,
115
- valueStart
116
- } = context.parseProps(start);
117
- const node = createNewNode(type, props);
118
- let offset = node.parse(context, valueStart);
119
- node.range = new Range.Range(start, offset);
120
- /* istanbul ignore if */
121
-
122
- if (offset <= start) {
123
- // This should never happen, but if it does, let's make sure to at least
124
- // step one character forward to avoid a busy loop.
125
- node.error = new Error(`Node#parse consumed no characters`);
126
- node.error.parseEnd = offset;
127
- node.error.source = node;
128
- node.range.end = start + 1;
129
- }
130
-
131
- if (context.nodeStartsCollection(node)) {
132
- if (!node.error && !context.atLineStart && context.parent.type === constants.Type.DOCUMENT) {
133
- node.error = new errors.YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)');
134
- }
135
-
136
- const collection = new Collection.Collection(node);
137
- offset = collection.parse(new ParseContext(context), offset);
138
- collection.range = new Range.Range(start, offset);
139
- return collection;
140
- }
141
-
142
- return node;
143
- });
144
-
145
- this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false;
146
- this.inCollection = inCollection != null ? inCollection : orig.inCollection || false;
147
- this.inFlow = inFlow != null ? inFlow : orig.inFlow || false;
148
- this.indent = indent != null ? indent : orig.indent;
149
- this.lineStart = lineStart != null ? lineStart : orig.lineStart;
150
- this.parent = parent != null ? parent : orig.parent || {};
151
- this.root = orig.root;
152
- this.src = orig.src;
153
- }
154
-
155
- nodeStartsCollection(node) {
156
- const {
157
- inCollection,
158
- inFlow,
159
- src
160
- } = this;
161
- if (inCollection || inFlow) return false;
162
- if (node instanceof CollectionItem.CollectionItem) return true; // check for implicit key
163
-
164
- let offset = node.range.end;
165
- if (src[offset] === '\n' || src[offset - 1] === '\n') return false;
166
- offset = Node.Node.endOfWhiteSpace(src, offset);
167
- return src[offset] === ':';
168
- } // Anchor and tag are before type, which determines the node implementation
169
- // class; hence this intermediate step.
170
-
171
-
172
- parseProps(offset) {
173
- const {
174
- inFlow,
175
- parent,
176
- src
177
- } = this;
178
- const props = [];
179
- let lineHasProps = false;
180
- offset = this.atLineStart ? Node.Node.endOfIndent(src, offset) : Node.Node.endOfWhiteSpace(src, offset);
181
- let ch = src[offset];
182
-
183
- while (ch === constants.Char.ANCHOR || ch === constants.Char.COMMENT || ch === constants.Char.TAG || ch === '\n') {
184
- if (ch === '\n') {
185
- const lineStart = offset + 1;
186
- const inEnd = Node.Node.endOfIndent(src, lineStart);
187
- const indentDiff = inEnd - (lineStart + this.indent);
188
- const noIndicatorAsIndent = parent.type === constants.Type.SEQ_ITEM && parent.context.atLineStart;
189
- if (!Node.Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break;
190
- this.atLineStart = true;
191
- this.lineStart = lineStart;
192
- lineHasProps = false;
193
- offset = inEnd;
194
- } else if (ch === constants.Char.COMMENT) {
195
- const end = Node.Node.endOfLine(src, offset + 1);
196
- props.push(new Range.Range(offset, end));
197
- offset = end;
198
- } else {
199
- let end = Node.Node.endOfIdentifier(src, offset + 1);
200
-
201
- if (ch === constants.Char.TAG && src[end] === ',' && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(src.slice(offset + 1, end + 13))) {
202
- // Let's presume we're dealing with a YAML 1.0 domain tag here, rather
203
- // than an empty but 'foo.bar' private-tagged node in a flow collection
204
- // followed without whitespace by a plain string starting with a year
205
- // or date divided by something.
206
- end = Node.Node.endOfIdentifier(src, end + 5);
207
- }
208
-
209
- props.push(new Range.Range(offset, end));
210
- lineHasProps = true;
211
- offset = Node.Node.endOfWhiteSpace(src, end);
212
- }
213
-
214
- ch = src[offset];
215
- } // '- &a : b' has an anchor on an empty node
216
-
217
-
218
- if (lineHasProps && ch === ':' && Node.Node.atBlank(src, offset + 1, true)) offset -= 1;
219
- const type = ParseContext.parseType(src, offset, inFlow);
220
- return {
221
- props,
222
- type,
223
- valueStart: offset
224
- };
225
- }
226
- /**
227
- * Parses a node from the source
228
- * @param {ParseContext} overlay
229
- * @param {number} start - Index of first non-whitespace character for the node
230
- * @returns {?Node} - null if at a document boundary
231
- */
232
-
233
-
234
- }
235
-
236
- exports.ParseContext = ParseContext;