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,173 +0,0 @@
1
- 'use strict';
2
-
3
- var errors = require('../errors.js');
4
- var Node = require('./Node.js');
5
- var Range = require('./Range.js');
6
-
7
- class PlainValue extends Node.Node {
8
- static endOfLine(src, start, inFlow) {
9
- let ch = src[start];
10
- let offset = start;
11
-
12
- while (ch && ch !== '\n') {
13
- if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break;
14
- const next = src[offset + 1];
15
- if (ch === ':' && (!next || next === '\n' || next === '\t' || next === ' ' || inFlow && next === ',')) break;
16
- if ((ch === ' ' || ch === '\t') && next === '#') break;
17
- offset += 1;
18
- ch = next;
19
- }
20
-
21
- return offset;
22
- }
23
-
24
- get strValue() {
25
- if (!this.valueRange || !this.context) return null;
26
- let {
27
- start,
28
- end
29
- } = this.valueRange;
30
- const {
31
- src
32
- } = this.context;
33
- let ch = src[end - 1];
34
-
35
- while (start < end && (ch === '\n' || ch === '\t' || ch === ' ')) ch = src[--end - 1];
36
-
37
- let str = '';
38
-
39
- for (let i = start; i < end; ++i) {
40
- const ch = src[i];
41
-
42
- if (ch === '\n') {
43
- const {
44
- fold,
45
- offset
46
- } = Node.Node.foldNewline(src, i, -1);
47
- str += fold;
48
- i = offset;
49
- } else if (ch === ' ' || ch === '\t') {
50
- // trim trailing whitespace
51
- const wsStart = i;
52
- let next = src[i + 1];
53
-
54
- while (i < end && (next === ' ' || next === '\t')) {
55
- i += 1;
56
- next = src[i + 1];
57
- }
58
-
59
- if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
60
- } else {
61
- str += ch;
62
- }
63
- }
64
-
65
- const ch0 = src[start];
66
-
67
- switch (ch0) {
68
- case '\t':
69
- {
70
- const msg = 'Plain value cannot start with a tab character';
71
- const errors$1 = [new errors.YAMLSemanticError(this, msg)];
72
- return {
73
- errors: errors$1,
74
- str
75
- };
76
- }
77
-
78
- case '@':
79
- case '`':
80
- {
81
- const msg = `Plain value cannot start with reserved character ${ch0}`;
82
- const errors$1 = [new errors.YAMLSemanticError(this, msg)];
83
- return {
84
- errors: errors$1,
85
- str
86
- };
87
- }
88
-
89
- default:
90
- return str;
91
- }
92
- }
93
-
94
- parseBlockValue(start) {
95
- const {
96
- indent,
97
- inFlow,
98
- src
99
- } = this.context;
100
- let offset = start;
101
- let valueEnd = start;
102
-
103
- for (let ch = src[offset]; ch === '\n'; ch = src[offset]) {
104
- if (Node.Node.atDocumentBoundary(src, offset + 1)) break;
105
- const end = Node.Node.endOfBlockIndent(src, indent, offset + 1);
106
- if (end === null || src[end] === '#') break;
107
-
108
- if (src[end] === '\n') {
109
- offset = end;
110
- } else {
111
- valueEnd = PlainValue.endOfLine(src, end, inFlow);
112
- offset = valueEnd;
113
- }
114
- }
115
-
116
- if (this.valueRange.isEmpty()) this.valueRange.start = start;
117
- this.valueRange.end = valueEnd;
118
- return valueEnd;
119
- }
120
- /**
121
- * Parses a plain value from the source
122
- *
123
- * Accepted forms are:
124
- * ```
125
- * #comment
126
- *
127
- * first line
128
- *
129
- * first line #comment
130
- *
131
- * first line
132
- * block
133
- * lines
134
- *
135
- * #comment
136
- * block
137
- * lines
138
- * ```
139
- * where block lines are empty or have an indent level greater than `indent`.
140
- *
141
- * @param {ParseContext} context
142
- * @param {number} start - Index of first character
143
- * @returns {number} - Index of the character after this scalar, may be `\n`
144
- */
145
-
146
-
147
- parse(context, start) {
148
- this.context = context;
149
- const {
150
- inFlow,
151
- src
152
- } = context;
153
- let offset = start;
154
- const ch = src[offset];
155
-
156
- if (ch && ch !== '#' && ch !== '\n') {
157
- offset = PlainValue.endOfLine(src, start, inFlow);
158
- }
159
-
160
- this.valueRange = new Range.Range(start, offset);
161
- offset = Node.Node.endOfWhiteSpace(src, offset);
162
- offset = this.parseComment(offset);
163
-
164
- if (!this.hasComment || this.valueRange.isEmpty()) {
165
- offset = this.parseBlockValue(offset);
166
- }
167
-
168
- return offset;
169
- }
170
-
171
- }
172
-
173
- exports.PlainValue = PlainValue;
@@ -1,226 +0,0 @@
1
- 'use strict';
2
-
3
- var errors = require('../errors.js');
4
- var Node = require('./Node.js');
5
- var Range = require('./Range.js');
6
-
7
- class QuoteDouble extends Node.Node {
8
- static endOfQuote(src, offset) {
9
- let ch = src[offset];
10
-
11
- while (ch && ch !== '"') {
12
- offset += ch === '\\' ? 2 : 1;
13
- ch = src[offset];
14
- }
15
-
16
- return offset + 1;
17
- }
18
- /**
19
- * @returns {string | { str: string, errors: YAMLSyntaxError[] }}
20
- */
21
-
22
-
23
- get strValue() {
24
- if (!this.valueRange || !this.context) return null;
25
- const errors$1 = [];
26
- const {
27
- start,
28
- end
29
- } = this.valueRange;
30
- const {
31
- indent,
32
- src
33
- } = this.context;
34
- if (src[end - 1] !== '"') errors$1.push(new errors.YAMLSyntaxError(this, 'Missing closing "quote')); // Using String#replace is too painful with escaped newlines preceded by
35
- // escaped backslashes; also, this should be faster.
36
-
37
- let str = '';
38
-
39
- for (let i = start + 1; i < end - 1; ++i) {
40
- const ch = src[i];
41
-
42
- if (ch === '\n') {
43
- if (Node.Node.atDocumentBoundary(src, i + 1)) errors$1.push(new errors.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));
44
- const {
45
- fold,
46
- offset,
47
- error
48
- } = Node.Node.foldNewline(src, i, indent);
49
- str += fold;
50
- i = offset;
51
- if (error) errors$1.push(new errors.YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented'));
52
- } else if (ch === '\\') {
53
- i += 1;
54
-
55
- switch (src[i]) {
56
- case '0':
57
- str += '\0';
58
- break;
59
- // null character
60
-
61
- case 'a':
62
- str += '\x07';
63
- break;
64
- // bell character
65
-
66
- case 'b':
67
- str += '\b';
68
- break;
69
- // backspace
70
-
71
- case 'e':
72
- str += '\x1b';
73
- break;
74
- // escape character
75
-
76
- case 'f':
77
- str += '\f';
78
- break;
79
- // form feed
80
-
81
- case 'n':
82
- str += '\n';
83
- break;
84
- // line feed
85
-
86
- case 'r':
87
- str += '\r';
88
- break;
89
- // carriage return
90
-
91
- case 't':
92
- str += '\t';
93
- break;
94
- // horizontal tab
95
-
96
- case 'v':
97
- str += '\v';
98
- break;
99
- // vertical tab
100
-
101
- case 'N':
102
- str += '\u0085';
103
- break;
104
- // Unicode next line
105
-
106
- case '_':
107
- str += '\u00a0';
108
- break;
109
- // Unicode non-breaking space
110
-
111
- case 'L':
112
- str += '\u2028';
113
- break;
114
- // Unicode line separator
115
-
116
- case 'P':
117
- str += '\u2029';
118
- break;
119
- // Unicode paragraph separator
120
-
121
- case ' ':
122
- str += ' ';
123
- break;
124
-
125
- case '"':
126
- str += '"';
127
- break;
128
-
129
- case '/':
130
- str += '/';
131
- break;
132
-
133
- case '\\':
134
- str += '\\';
135
- break;
136
-
137
- case '\t':
138
- str += '\t';
139
- break;
140
-
141
- case 'x':
142
- str += this.parseCharCode(i + 1, 2, errors$1);
143
- i += 2;
144
- break;
145
-
146
- case 'u':
147
- str += this.parseCharCode(i + 1, 4, errors$1);
148
- i += 4;
149
- break;
150
-
151
- case 'U':
152
- str += this.parseCharCode(i + 1, 8, errors$1);
153
- i += 8;
154
- break;
155
-
156
- case '\n':
157
- // skip escaped newlines, but still trim the following line
158
- while (src[i + 1] === ' ' || src[i + 1] === '\t') i += 1;
159
-
160
- break;
161
-
162
- default:
163
- errors$1.push(new errors.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`));
164
- str += '\\' + src[i];
165
- }
166
- } else if (ch === ' ' || ch === '\t') {
167
- // trim trailing whitespace
168
- const wsStart = i;
169
- let next = src[i + 1];
170
-
171
- while (next === ' ' || next === '\t') {
172
- i += 1;
173
- next = src[i + 1];
174
- }
175
-
176
- if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
177
- } else {
178
- str += ch;
179
- }
180
- }
181
-
182
- return errors$1.length > 0 ? {
183
- errors: errors$1,
184
- str
185
- } : str;
186
- }
187
-
188
- parseCharCode(offset, length, errors$1) {
189
- const {
190
- src
191
- } = this.context;
192
- const cc = src.substr(offset, length);
193
- const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);
194
- const code = ok ? parseInt(cc, 16) : NaN;
195
-
196
- if (isNaN(code)) {
197
- errors$1.push(new errors.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`));
198
- return src.substr(offset - 2, length + 2);
199
- }
200
-
201
- return String.fromCodePoint(code);
202
- }
203
- /**
204
- * Parses a "double quoted" value from the source
205
- *
206
- * @param {ParseContext} context
207
- * @param {number} start - Index of first character
208
- * @returns {number} - Index of the character after this scalar
209
- */
210
-
211
-
212
- parse(context, start) {
213
- this.context = context;
214
- const {
215
- src
216
- } = context;
217
- let offset = QuoteDouble.endOfQuote(src, start + 1);
218
- this.valueRange = new Range.Range(start, offset);
219
- offset = Node.Node.endOfWhiteSpace(src, offset);
220
- offset = this.parseComment(offset);
221
- return offset;
222
- }
223
-
224
- }
225
-
226
- exports.QuoteDouble = QuoteDouble;
@@ -1,102 +0,0 @@
1
- 'use strict';
2
-
3
- var errors = require('../errors.js');
4
- var Node = require('./Node.js');
5
- var Range = require('./Range.js');
6
-
7
- class QuoteSingle extends Node.Node {
8
- static endOfQuote(src, offset) {
9
- let ch = src[offset];
10
-
11
- while (ch) {
12
- if (ch === "'") {
13
- if (src[offset + 1] !== "'") break;
14
- ch = src[offset += 2];
15
- } else {
16
- ch = src[offset += 1];
17
- }
18
- }
19
-
20
- return offset + 1;
21
- }
22
- /**
23
- * @returns {string | { str: string, errors: YAMLSyntaxError[] }}
24
- */
25
-
26
-
27
- get strValue() {
28
- if (!this.valueRange || !this.context) return null;
29
- const errors$1 = [];
30
- const {
31
- start,
32
- end
33
- } = this.valueRange;
34
- const {
35
- indent,
36
- src
37
- } = this.context;
38
- if (src[end - 1] !== "'") errors$1.push(new errors.YAMLSyntaxError(this, "Missing closing 'quote"));
39
- let str = '';
40
-
41
- for (let i = start + 1; i < end - 1; ++i) {
42
- const ch = src[i];
43
-
44
- if (ch === '\n') {
45
- if (Node.Node.atDocumentBoundary(src, i + 1)) errors$1.push(new errors.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));
46
- const {
47
- fold,
48
- offset,
49
- error
50
- } = Node.Node.foldNewline(src, i, indent);
51
- str += fold;
52
- i = offset;
53
- if (error) errors$1.push(new errors.YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented'));
54
- } else if (ch === "'") {
55
- str += ch;
56
- i += 1;
57
- if (src[i] !== "'") errors$1.push(new errors.YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.'));
58
- } else if (ch === ' ' || ch === '\t') {
59
- // trim trailing whitespace
60
- const wsStart = i;
61
- let next = src[i + 1];
62
-
63
- while (next === ' ' || next === '\t') {
64
- i += 1;
65
- next = src[i + 1];
66
- }
67
-
68
- if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
69
- } else {
70
- str += ch;
71
- }
72
- }
73
-
74
- return errors$1.length > 0 ? {
75
- errors: errors$1,
76
- str
77
- } : str;
78
- }
79
- /**
80
- * Parses a 'single quoted' value from the source
81
- *
82
- * @param {ParseContext} context
83
- * @param {number} start - Index of first character
84
- * @returns {number} - Index of the character after this scalar
85
- */
86
-
87
-
88
- parse(context, start) {
89
- this.context = context;
90
- const {
91
- src
92
- } = context;
93
- let offset = QuoteSingle.endOfQuote(src, start + 1);
94
- this.valueRange = new Range.Range(start, offset);
95
- offset = Node.Node.endOfWhiteSpace(src, offset);
96
- offset = this.parseComment(offset);
97
- return offset;
98
- }
99
-
100
- }
101
-
102
- exports.QuoteSingle = QuoteSingle;
package/dist/cst/Range.js DELETED
@@ -1,58 +0,0 @@
1
- 'use strict';
2
-
3
- class Range {
4
- static copy(orig) {
5
- return new Range(orig.start, orig.end);
6
- }
7
-
8
- constructor(start, end) {
9
- this.start = start;
10
- this.end = end || start;
11
- }
12
-
13
- isEmpty() {
14
- return typeof this.start !== 'number' || !this.end || this.end <= this.start;
15
- }
16
- /**
17
- * Set `origStart` and `origEnd` to point to the original source range for
18
- * this node, which may differ due to dropped CR characters.
19
- *
20
- * @param {number[]} cr - Positions of dropped CR characters
21
- * @param {number} offset - Starting index of `cr` from the last call
22
- * @returns {number} - The next offset, matching the one found for `origStart`
23
- */
24
-
25
-
26
- setOrigRange(cr, offset) {
27
- const {
28
- start,
29
- end
30
- } = this;
31
-
32
- if (cr.length === 0 || end <= cr[0]) {
33
- this.origStart = start;
34
- this.origEnd = end;
35
- return offset;
36
- }
37
-
38
- let i = offset;
39
-
40
- while (i < cr.length) {
41
- if (cr[i] > start) break;else ++i;
42
- }
43
-
44
- this.origStart = start + i;
45
- const nextOffset = i;
46
-
47
- while (i < cr.length) {
48
- // if end was at \n, it should now be at \r
49
- if (cr[i] >= end) break;else ++i;
50
- }
51
-
52
- this.origEnd = end + i;
53
- return nextOffset;
54
- }
55
-
56
- }
57
-
58
- exports.Range = Range;
package/dist/cst/parse.js DELETED
@@ -1,48 +0,0 @@
1
- 'use strict';
2
-
3
- var Document = require('./Document.js');
4
- var ParseContext = require('./ParseContext.js');
5
-
6
- function parse(src) {
7
- const cr = [];
8
-
9
- if (src.indexOf('\r') !== -1) {
10
- src = src.replace(/\r\n?/g, (match, offset) => {
11
- if (match.length > 1) cr.push(offset);
12
- return '\n';
13
- });
14
- }
15
-
16
- const documents = [];
17
- let offset = 0;
18
-
19
- do {
20
- const doc = new Document.Document();
21
- const context = new ParseContext.ParseContext({
22
- src
23
- });
24
- offset = doc.parse(context, offset);
25
- documents.push(doc);
26
- } while (offset < src.length);
27
-
28
- documents.setOrigRanges = () => {
29
- if (cr.length === 0) return false;
30
-
31
- for (let i = 1; i < cr.length; ++i) cr[i] -= i;
32
-
33
- let crOffset = 0;
34
-
35
- for (let i = 0; i < documents.length; ++i) {
36
- crOffset = documents[i].setOrigRanges(cr, crOffset);
37
- }
38
-
39
- cr.splice(0, cr.length);
40
- return true;
41
- };
42
-
43
- documents.toString = () => documents.join('...\n');
44
-
45
- return documents;
46
- }
47
-
48
- exports.parse = parse;