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
@@ -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;