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,107 +0,0 @@
1
- import { Collection } from '../ast/Collection.js';
2
- import { Scalar } from '../ast/Scalar.js';
3
- import { Type, defaultTags } from '../constants.js';
4
- import { YAMLSemanticError, YAMLWarning, YAMLReferenceError } from '../errors.js';
5
- import { resolveMap } from './resolveMap.js';
6
- import { resolveScalar } from './resolveScalar.js';
7
- import { resolveSeq } from './resolveSeq.js';
8
-
9
- function resolveByTagName({
10
- knownTags,
11
- tags
12
- }, tagName, value, onError) {
13
- const matchWithTest = [];
14
-
15
- for (const tag of tags) {
16
- if (tag.tag === tagName) {
17
- if (tag.test) {
18
- if (typeof value === 'string') matchWithTest.push(tag);else onError("The tag ".concat(tagName, " cannot be applied to a collection"));
19
- } else {
20
- const res = tag.resolve(value, onError);
21
- return res instanceof Collection ? res : new Scalar(res);
22
- }
23
- }
24
- }
25
-
26
- if (matchWithTest.length > 0) return resolveScalar(value, matchWithTest);
27
- const kt = knownTags[tagName];
28
-
29
- if (kt) {
30
- tags.push(Object.assign({}, kt, {
31
- default: false,
32
- test: undefined
33
- }));
34
- const res = kt.resolve(value, onError);
35
- return res instanceof Collection ? res : new Scalar(res);
36
- }
37
-
38
- return null;
39
- }
40
-
41
- function resolveTag(doc, node, tagName) {
42
- const {
43
- MAP,
44
- SEQ,
45
- STR
46
- } = defaultTags;
47
- let value, fallback;
48
-
49
- const onError = message => doc.errors.push(new YAMLSemanticError(node, message));
50
-
51
- try {
52
- switch (node.type) {
53
- case Type.FLOW_MAP:
54
- case Type.MAP:
55
- value = resolveMap(doc, node);
56
- fallback = MAP;
57
- if (tagName === SEQ || tagName === STR) onError("The tag ".concat(tagName, " cannot be applied to a mapping"));
58
- break;
59
-
60
- case Type.FLOW_SEQ:
61
- case Type.SEQ:
62
- value = resolveSeq(doc, node);
63
- fallback = SEQ;
64
- if (tagName === MAP || tagName === STR) onError("The tag ".concat(tagName, " cannot be applied to a sequence"));
65
- break;
66
-
67
- default:
68
- value = node.strValue || '';
69
-
70
- if (typeof value !== 'string') {
71
- value.errors.forEach(error => doc.errors.push(error));
72
- value = value.str;
73
- }
74
-
75
- if (tagName === MAP || tagName === SEQ) onError("The tag ".concat(tagName, " cannot be applied to a scalar"));
76
- fallback = STR;
77
- }
78
-
79
- const res = resolveByTagName(doc.schema, tagName, value, onError);
80
-
81
- if (res) {
82
- if (tagName && node.tag) res.tag = tagName;
83
- return res;
84
- }
85
- } catch (error) {
86
- /* istanbul ignore if */
87
- if (!error.source) error.source = node;
88
- doc.errors.push(error);
89
- return null;
90
- }
91
-
92
- try {
93
- if (!fallback) throw new Error("The tag ".concat(tagName, " is unavailable"));
94
- const msg = "The tag ".concat(tagName, " is unavailable, falling back to ").concat(fallback);
95
- doc.warnings.push(new YAMLWarning(node, msg));
96
- const res = resolveByTagName(doc.schema, fallback, value, onError);
97
- res.tag = tagName;
98
- return res;
99
- } catch (error) {
100
- const refError = new YAMLReferenceError(node, error.message);
101
- refError.stack = error.stack;
102
- doc.errors.push(refError);
103
- return null;
104
- }
105
- }
106
-
107
- export { resolveTag };
@@ -1,87 +0,0 @@
1
- import { Type, defaultTags } from '../constants.js';
2
- import { YAMLSemanticError, YAMLWarning } from '../errors.js';
3
-
4
- function resolveTagHandle(doc, node) {
5
- const {
6
- handle,
7
- suffix
8
- } = node.tag;
9
- let prefix = doc.tagPrefixes.find(p => p.handle === handle);
10
-
11
- if (!prefix) {
12
- const dtp = doc.getDefaults().tagPrefixes;
13
- if (dtp) prefix = dtp.find(p => p.handle === handle);
14
- if (!prefix) throw new YAMLSemanticError(node, "The ".concat(handle, " tag handle is non-default and was not declared."));
15
- }
16
-
17
- if (!suffix) throw new YAMLSemanticError(node, "The ".concat(handle, " tag has no suffix."));
18
-
19
- if (handle === '!' && (doc.version || doc.options.version) === '1.0') {
20
- if (suffix[0] === '^') {
21
- doc.warnings.push(new YAMLWarning(node, 'YAML 1.0 ^ tag expansion is not supported'));
22
- return suffix;
23
- }
24
-
25
- if (/[:/]/.test(suffix)) {
26
- // word/foo -> tag:word.yaml.org,2002:foo
27
- const vocab = suffix.match(/^([a-z0-9-]+)\/(.*)/i);
28
- return vocab ? "tag:".concat(vocab[1], ".yaml.org,2002:").concat(vocab[2]) : "tag:".concat(suffix);
29
- }
30
- }
31
-
32
- return prefix.prefix + decodeURIComponent(suffix);
33
- }
34
-
35
- function resolveTagName(doc, node) {
36
- const {
37
- tag,
38
- type
39
- } = node;
40
- let nonSpecific = false;
41
-
42
- if (tag) {
43
- const {
44
- handle,
45
- suffix,
46
- verbatim
47
- } = tag;
48
-
49
- if (verbatim) {
50
- if (verbatim !== '!' && verbatim !== '!!') return verbatim;
51
- const msg = "Verbatim tags aren't resolved, so ".concat(verbatim, " is invalid.");
52
- doc.errors.push(new YAMLSemanticError(node, msg));
53
- } else if (handle === '!' && !suffix) {
54
- nonSpecific = true;
55
- } else {
56
- try {
57
- return resolveTagHandle(doc, node);
58
- } catch (error) {
59
- doc.errors.push(error);
60
- }
61
- }
62
- }
63
-
64
- switch (type) {
65
- case Type.BLOCK_FOLDED:
66
- case Type.BLOCK_LITERAL:
67
- case Type.QUOTE_DOUBLE:
68
- case Type.QUOTE_SINGLE:
69
- return defaultTags.STR;
70
-
71
- case Type.FLOW_MAP:
72
- case Type.MAP:
73
- return defaultTags.MAP;
74
-
75
- case Type.FLOW_SEQ:
76
- case Type.SEQ:
77
- return defaultTags.SEQ;
78
-
79
- case Type.PLAIN:
80
- return nonSpecific ? defaultTags.STR : null;
81
-
82
- default:
83
- return null;
84
- }
85
- }
86
-
87
- export { resolveTagName };
@@ -1,10 +0,0 @@
1
- function addCommentBefore(str, indent, comment) {
2
- if (!comment) return str;
3
- const cc = comment.replace(/[\s\S]^/gm, "$&".concat(indent, "#"));
4
- return "#".concat(cc, "\n").concat(indent).concat(str);
5
- }
6
- function addComment(str, indent, comment) {
7
- return !comment ? str : comment.indexOf('\n') === -1 ? "".concat(str, " #").concat(comment) : "".concat(str, "\n") + comment.replace(/^/gm, "".concat(indent || '', "#"));
8
- }
9
-
10
- export { addComment, addCommentBefore };
@@ -1,28 +0,0 @@
1
- function stringifyTag(doc, tag) {
2
- if ((doc.version || doc.options.version) === '1.0') {
3
- const priv = tag.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/);
4
- if (priv) return '!' + priv[1];
5
- const vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/);
6
- return vocab ? "!".concat(vocab[1], "/").concat(vocab[2]) : "!".concat(tag.replace(/^tag:/, ''));
7
- }
8
-
9
- let p = doc.tagPrefixes.find(p => tag.indexOf(p.prefix) === 0);
10
-
11
- if (!p) {
12
- const dtp = doc.getDefaults().tagPrefixes;
13
- p = dtp && dtp.find(p => tag.indexOf(p.prefix) === 0);
14
- }
15
-
16
- if (!p) return tag[0] === '!' ? tag : "!<".concat(tag, ">");
17
- const suffix = tag.substr(p.prefix.length).replace(/[!,[\]{}]/g, ch => ({
18
- '!': '%21',
19
- ',': '%2C',
20
- '[': '%5B',
21
- ']': '%5D',
22
- '{': '%7B',
23
- '}': '%7D'
24
- })[ch]);
25
- return p.handle + suffix;
26
- }
27
-
28
- export { stringifyTag };
@@ -1,128 +0,0 @@
1
- import { Scalar } from '../ast/Scalar.js';
2
- import { stringifyNumber } from '../stringify/stringifyNumber.js';
3
- import { failsafe } from './failsafe/index.js';
4
- import { nullOptions, boolOptions, intOptions } from './options.js';
5
-
6
- /* global BigInt */
7
-
8
- const intIdentify = value => typeof value === 'bigint' || Number.isInteger(value);
9
-
10
- const intResolve = (src, offset, radix) => intOptions.asBigInt ? BigInt(src) : parseInt(src.substring(offset), radix);
11
-
12
- function intStringify(node, radix, prefix) {
13
- const {
14
- value
15
- } = node;
16
- if (intIdentify(value) && value >= 0) return prefix + value.toString(radix);
17
- return stringifyNumber(node);
18
- }
19
-
20
- function stringifyBool(node) {
21
- const {
22
- value,
23
- sourceStr
24
- } = node;
25
-
26
- if (sourceStr) {
27
- const match = boolObj.test.test(sourceStr);
28
- if (match && value === (sourceStr[0] === 't' || sourceStr[0] === 'T')) return sourceStr;
29
- }
30
-
31
- return value ? boolOptions.trueStr : boolOptions.falseStr;
32
- }
33
-
34
- const nullObj = {
35
- identify: value => value == null,
36
- createNode: (schema, value, ctx) => ctx.wrapScalars ? new Scalar(null) : null,
37
- default: true,
38
- tag: 'tag:yaml.org,2002:null',
39
- test: /^(?:~|[Nn]ull|NULL)?$/,
40
- resolve: str => {
41
- const node = new Scalar(null);
42
- node.sourceStr = str;
43
- return node;
44
- },
45
- options: nullOptions,
46
- stringify: ({
47
- sourceStr
48
- }) => sourceStr !== null && sourceStr !== void 0 ? sourceStr : nullOptions.nullStr
49
- };
50
- const boolObj = {
51
- identify: value => typeof value === 'boolean',
52
- default: true,
53
- tag: 'tag:yaml.org,2002:bool',
54
- test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
55
- resolve: str => {
56
- const node = new Scalar(str[0] === 't' || str[0] === 'T');
57
- node.sourceStr = str;
58
- return node;
59
- },
60
- options: boolOptions,
61
- stringify: stringifyBool
62
- };
63
- const octObj = {
64
- identify: value => intIdentify(value) && value >= 0,
65
- default: true,
66
- tag: 'tag:yaml.org,2002:int',
67
- format: 'OCT',
68
- test: /^0o[0-7]+$/,
69
- resolve: str => intResolve(str, 2, 8),
70
- options: intOptions,
71
- stringify: node => intStringify(node, 8, '0o')
72
- };
73
- const intObj = {
74
- identify: intIdentify,
75
- default: true,
76
- tag: 'tag:yaml.org,2002:int',
77
- test: /^[-+]?[0-9]+$/,
78
- resolve: str => intResolve(str, 0, 10),
79
- options: intOptions,
80
- stringify: stringifyNumber
81
- };
82
- const hexObj = {
83
- identify: value => intIdentify(value) && value >= 0,
84
- default: true,
85
- tag: 'tag:yaml.org,2002:int',
86
- format: 'HEX',
87
- test: /^0x[0-9a-fA-F]+$/,
88
- resolve: str => intResolve(str, 2, 16),
89
- options: intOptions,
90
- stringify: node => intStringify(node, 16, '0x')
91
- };
92
- const nanObj = {
93
- identify: value => typeof value === 'number',
94
- default: true,
95
- tag: 'tag:yaml.org,2002:float',
96
- test: /^(?:[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN))$/,
97
- resolve: str => str.slice(-3).toLowerCase() === 'nan' ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
98
- stringify: stringifyNumber
99
- };
100
- const expObj = {
101
- identify: value => typeof value === 'number',
102
- default: true,
103
- tag: 'tag:yaml.org,2002:float',
104
- format: 'EXP',
105
- test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,
106
- resolve: str => parseFloat(str),
107
- stringify: ({
108
- value
109
- }) => Number(value).toExponential()
110
- };
111
- const floatObj = {
112
- identify: value => typeof value === 'number',
113
- default: true,
114
- tag: 'tag:yaml.org,2002:float',
115
- test: /^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,
116
-
117
- resolve(str) {
118
- const node = new Scalar(parseFloat(str));
119
- const dot = str.indexOf('.');
120
- if (dot !== -1 && str[str.length - 1] === '0') node.minFractionDigits = str.length - dot - 1;
121
- return node;
122
- },
123
-
124
- stringify: stringifyNumber
125
- };
126
- const core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);
127
-
128
- export { boolObj, core, expObj, floatObj, hexObj, intObj, nanObj, nullObj, octObj };
@@ -1,7 +0,0 @@
1
- import { map } from './map.js';
2
- import { seq } from './seq.js';
3
- import { string } from './string.js';
4
-
5
- const failsafe = [map, seq, string];
6
-
7
- export { failsafe };
@@ -1,37 +0,0 @@
1
- import { createPair } from '../../ast/Pair.js';
2
- import { YAMLMap } from '../../ast/YAMLMap.js';
3
-
4
- function createMap(schema, obj, ctx) {
5
- const {
6
- keepUndefined,
7
- replacer
8
- } = ctx;
9
- const map = new YAMLMap(schema);
10
-
11
- const add = (key, value) => {
12
- if (typeof replacer === 'function') value = replacer.call(obj, key, value);else if (Array.isArray(replacer) && !replacer.includes(key)) return;
13
- if (value !== undefined || keepUndefined) map.items.push(createPair(key, value, ctx));
14
- };
15
-
16
- if (obj instanceof Map) {
17
- for (const [key, value] of obj) add(key, value);
18
- } else if (obj && typeof obj === 'object') {
19
- for (const key of Object.keys(obj)) add(key, obj[key]);
20
- }
21
-
22
- if (typeof schema.sortMapEntries === 'function') {
23
- map.items.sort(schema.sortMapEntries);
24
- }
25
-
26
- return map;
27
- }
28
-
29
- const map = {
30
- createNode: createMap,
31
- default: true,
32
- nodeClass: YAMLMap,
33
- tag: 'tag:yaml.org,2002:map',
34
- resolve: map => map
35
- };
36
-
37
- export { map };
@@ -1,34 +0,0 @@
1
- import { YAMLSeq } from '../../ast/YAMLSeq.js';
2
- import { createNode } from '../../doc/createNode.js';
3
-
4
- function createSeq(schema, obj, ctx) {
5
- const {
6
- replacer
7
- } = ctx;
8
- const seq = new YAMLSeq(schema);
9
-
10
- if (obj && obj[Symbol.iterator]) {
11
- let i = 0;
12
-
13
- for (let it of obj) {
14
- if (typeof replacer === 'function') {
15
- const key = obj instanceof Set ? it : String(i++);
16
- it = replacer.call(obj, key, it);
17
- }
18
-
19
- seq.items.push(createNode(it, null, ctx));
20
- }
21
- }
22
-
23
- return seq;
24
- }
25
-
26
- const seq = {
27
- createNode: createSeq,
28
- default: true,
29
- nodeClass: YAMLSeq,
30
- tag: 'tag:yaml.org,2002:seq',
31
- resolve: seq => seq
32
- };
33
-
34
- export { seq };
@@ -1,20 +0,0 @@
1
- import { stringifyString } from '../../stringify/stringifyString.js';
2
- import { strOptions } from '../options.js';
3
-
4
- const string = {
5
- identify: value => typeof value === 'string',
6
- default: true,
7
- tag: 'tag:yaml.org,2002:str',
8
- resolve: str => str,
9
-
10
- stringify(item, ctx, onComment, onChompKeep) {
11
- ctx = Object.assign({
12
- actualString: true
13
- }, ctx);
14
- return stringifyString(item, ctx, onComment, onChompKeep);
15
- },
16
-
17
- options: strOptions
18
- };
19
-
20
- export { string };
@@ -1,39 +0,0 @@
1
- import { boolObj, floatObj, expObj, nanObj, intObj, hexObj, octObj, nullObj, core } from './core.js';
2
- import { failsafe } from './failsafe/index.js';
3
- import { json } from './json.js';
4
- import { yaml11 } from './yaml-1.1/index.js';
5
- import { map } from './failsafe/map.js';
6
- import { seq } from './failsafe/seq.js';
7
- import { binary } from './yaml-1.1/binary.js';
8
- import { omap } from './yaml-1.1/omap.js';
9
- import { pairs } from './yaml-1.1/pairs.js';
10
- import { set } from './yaml-1.1/set.js';
11
- import { floatTime, intTime, timestamp } from './yaml-1.1/timestamp.js';
12
-
13
- const schemas = {
14
- core,
15
- failsafe,
16
- json,
17
- yaml11
18
- };
19
- const tags = {
20
- binary,
21
- bool: boolObj,
22
- float: floatObj,
23
- floatExp: expObj,
24
- floatNaN: nanObj,
25
- floatTime,
26
- int: intObj,
27
- intHex: hexObj,
28
- intOct: octObj,
29
- intTime,
30
- map,
31
- null: nullObj,
32
- omap,
33
- pairs,
34
- seq,
35
- set,
36
- timestamp
37
- };
38
-
39
- export { schemas, tags };
@@ -1,62 +0,0 @@
1
- import { Scalar } from '../ast/Scalar.js';
2
- import { map } from './failsafe/map.js';
3
- import { seq } from './failsafe/seq.js';
4
- import { intOptions } from './options.js';
5
-
6
- /* global BigInt */
7
-
8
- const intIdentify = value => typeof value === 'bigint' || Number.isInteger(value);
9
-
10
- const stringifyJSON = ({
11
- value
12
- }) => JSON.stringify(value);
13
-
14
- const json = [map, seq, {
15
- identify: value => typeof value === 'string',
16
- default: true,
17
- tag: 'tag:yaml.org,2002:str',
18
- resolve: str => str,
19
- stringify: stringifyJSON
20
- }, {
21
- identify: value => value == null,
22
- createNode: (schema, value, ctx) => ctx.wrapScalars ? new Scalar(null) : null,
23
- default: true,
24
- tag: 'tag:yaml.org,2002:null',
25
- test: /^null$/,
26
- resolve: () => null,
27
- stringify: stringifyJSON
28
- }, {
29
- identify: value => typeof value === 'boolean',
30
- default: true,
31
- tag: 'tag:yaml.org,2002:bool',
32
- test: /^true|false$/,
33
- resolve: str => str === 'true',
34
- stringify: stringifyJSON
35
- }, {
36
- identify: intIdentify,
37
- default: true,
38
- tag: 'tag:yaml.org,2002:int',
39
- test: /^-?(?:0|[1-9][0-9]*)$/,
40
- resolve: str => intOptions.asBigInt ? BigInt(str) : parseInt(str, 10),
41
- stringify: ({
42
- value
43
- }) => intIdentify(value) ? value.toString() : JSON.stringify(value)
44
- }, {
45
- identify: value => typeof value === 'number',
46
- default: true,
47
- tag: 'tag:yaml.org,2002:float',
48
- test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,
49
- resolve: str => parseFloat(str),
50
- stringify: stringifyJSON
51
- }, {
52
- default: true,
53
- test: /^/,
54
-
55
- resolve(str, onError) {
56
- onError("Unresolved plain scalar ".concat(JSON.stringify(str)));
57
- return str;
58
- }
59
-
60
- }];
61
-
62
- export { json };
@@ -1,31 +0,0 @@
1
- import { Type } from '../constants.js';
2
-
3
- const binaryOptions = {
4
- defaultType: Type.BLOCK_LITERAL,
5
- lineWidth: 76
6
- };
7
- const boolOptions = {
8
- trueStr: 'true',
9
- falseStr: 'false'
10
- };
11
- const intOptions = {
12
- asBigInt: false
13
- };
14
- const nullOptions = {
15
- nullStr: 'null'
16
- };
17
- const strOptions = {
18
- defaultType: Type.PLAIN,
19
- defaultKeyType: Type.PLAIN,
20
- defaultQuoteSingle: false,
21
- doubleQuoted: {
22
- jsonEncoding: false,
23
- minMultiLineLength: 40
24
- },
25
- fold: {
26
- lineWidth: 80,
27
- minContentWidth: 20
28
- }
29
- };
30
-
31
- export { binaryOptions, boolOptions, intOptions, nullOptions, strOptions };
@@ -1,83 +0,0 @@
1
- import { Type } from '../../constants.js';
2
- import { stringifyString } from '../../stringify/stringifyString.js';
3
- import { binaryOptions } from '../options.js';
4
-
5
- /* global atob, btoa, Buffer */
6
- const binary = {
7
- identify: value => value instanceof Uint8Array,
8
- // Buffer inherits from Uint8Array
9
- default: false,
10
- tag: 'tag:yaml.org,2002:binary',
11
-
12
- /**
13
- * Returns a Buffer in node and an Uint8Array in browsers
14
- *
15
- * To use the resulting buffer as an image, you'll want to do something like:
16
- *
17
- * const blob = new Blob([buffer], { type: 'image/jpeg' })
18
- * document.querySelector('#photo').src = URL.createObjectURL(blob)
19
- */
20
- resolve(src, onError) {
21
- if (typeof Buffer === 'function') {
22
- return Buffer.from(src, 'base64');
23
- } else if (typeof atob === 'function') {
24
- // On IE 11, atob() can't handle newlines
25
- const str = atob(src.replace(/[\n\r]/g, ''));
26
- const buffer = new Uint8Array(str.length);
27
-
28
- for (let i = 0; i < str.length; ++i) buffer[i] = str.charCodeAt(i);
29
-
30
- return buffer;
31
- } else {
32
- onError('This environment does not support reading binary tags; either Buffer or atob is required');
33
- return src;
34
- }
35
- },
36
-
37
- options: binaryOptions,
38
- stringify: ({
39
- comment,
40
- type,
41
- value
42
- }, ctx, onComment, onChompKeep) => {
43
- let src;
44
-
45
- if (typeof Buffer === 'function') {
46
- src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64');
47
- } else if (typeof btoa === 'function') {
48
- let s = '';
49
-
50
- for (let i = 0; i < value.length; ++i) s += String.fromCharCode(value[i]);
51
-
52
- src = btoa(s);
53
- } else {
54
- throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');
55
- }
56
-
57
- if (!type) type = binaryOptions.defaultType;
58
-
59
- if (type === Type.QUOTE_DOUBLE) {
60
- value = src;
61
- } else {
62
- const {
63
- lineWidth
64
- } = binaryOptions;
65
- const n = Math.ceil(src.length / lineWidth);
66
- const lines = new Array(n);
67
-
68
- for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {
69
- lines[i] = src.substr(o, lineWidth);
70
- }
71
-
72
- value = lines.join(type === Type.BLOCK_LITERAL ? '\n' : ' ');
73
- }
74
-
75
- return stringifyString({
76
- comment,
77
- type,
78
- value
79
- }, ctx, onComment, onChompKeep);
80
- }
81
- };
82
-
83
- export { binary };