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
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ var map = require('./common/map.js');
4
+ var _null = require('./common/null.js');
5
+ var seq = require('./common/seq.js');
6
+ var string = require('./common/string.js');
7
+ var bool = require('./core/bool.js');
8
+ var float = require('./core/float.js');
9
+ var int = require('./core/int.js');
10
+ var schema = require('./core/schema.js');
11
+ var schema$1 = require('./json/schema.js');
12
+ var binary = require('./yaml-1.1/binary.js');
13
+ var omap = require('./yaml-1.1/omap.js');
14
+ var pairs = require('./yaml-1.1/pairs.js');
15
+ var schema$2 = require('./yaml-1.1/schema.js');
16
+ var set = require('./yaml-1.1/set.js');
17
+ var timestamp = require('./yaml-1.1/timestamp.js');
18
+
19
+ const schemas = {
20
+ core: schema.schema,
21
+ failsafe: [map.map, seq.seq, string.string],
22
+ json: schema$1.schema,
23
+ yaml11: schema$2.schema,
24
+ 'yaml-1.1': schema$2.schema
25
+ };
26
+ const tagsByName = {
27
+ binary: binary.binary,
28
+ bool: bool.boolTag,
29
+ float: float.float,
30
+ floatExp: float.floatExp,
31
+ floatNaN: float.floatNaN,
32
+ floatTime: timestamp.floatTime,
33
+ int: int.int,
34
+ intHex: int.intHex,
35
+ intOct: int.intOct,
36
+ intTime: timestamp.intTime,
37
+ map: map.map,
38
+ null: _null.nullTag,
39
+ omap: omap.omap,
40
+ pairs: pairs.pairs,
41
+ seq: seq.seq,
42
+ set: set.set,
43
+ timestamp: timestamp.timestamp
44
+ };
45
+ const coreKnownTags = {
46
+ 'tag:yaml.org,2002:binary': binary.binary,
47
+ 'tag:yaml.org,2002:omap': omap.omap,
48
+ 'tag:yaml.org,2002:pairs': pairs.pairs,
49
+ 'tag:yaml.org,2002:set': set.set,
50
+ 'tag:yaml.org,2002:timestamp': timestamp.timestamp
51
+ };
52
+ function getTags(customTags, schemaName) {
53
+ let tags = schemas[schemaName];
54
+ if (!tags) {
55
+ const keys = Object.keys(schemas)
56
+ .filter(key => key !== 'yaml11')
57
+ .map(key => JSON.stringify(key))
58
+ .join(', ');
59
+ throw new Error(`Unknown schema "${schemaName}"; use one of ${keys}`);
60
+ }
61
+ if (Array.isArray(customTags)) {
62
+ for (const tag of customTags)
63
+ tags = tags.concat(tag);
64
+ }
65
+ else if (typeof customTags === 'function') {
66
+ tags = customTags(tags.slice());
67
+ }
68
+ return tags.map(tag => {
69
+ if (typeof tag !== 'string')
70
+ return tag;
71
+ const tagObj = tagsByName[tag];
72
+ if (tagObj)
73
+ return tagObj;
74
+ const keys = Object.keys(tagsByName)
75
+ .map(key => JSON.stringify(key))
76
+ .join(', ');
77
+ throw new Error(`Unknown custom tag "${tag}"; use one of ${keys}`);
78
+ });
79
+ }
80
+
81
+ exports.coreKnownTags = coreKnownTags;
82
+ exports.getTags = getTags;
@@ -0,0 +1,82 @@
1
+ import type { CreateNodeContext } from '../doc/createNode.js';
2
+ import type { Schema } from './Schema.js';
3
+ import type { Node } from '../nodes/Node.js';
4
+ import type { Scalar } from '../nodes/Scalar.js';
5
+ import type { YAMLMap } from '../nodes/YAMLMap.js';
6
+ import type { YAMLSeq } from '../nodes/YAMLSeq.js';
7
+ import type { ParseOptions } from '../options.js';
8
+ import type { StringifyContext } from '../stringify/stringify.js';
9
+ interface TagBase {
10
+ /**
11
+ * An optional factory function, used e.g. by collections when wrapping JS objects as AST nodes.
12
+ */
13
+ createNode?: (schema: Schema, value: unknown, ctx: CreateNodeContext) => Node;
14
+ /**
15
+ * If `true`, together with `test` allows for values to be stringified without
16
+ * an explicit tag. For most cases, it's unlikely that you'll actually want to
17
+ * use this, even if you first think you do.
18
+ */
19
+ default: boolean;
20
+ /**
21
+ * If a tag has multiple forms that should be parsed and/or stringified
22
+ * differently, use `format` to identify them.
23
+ */
24
+ format?: string;
25
+ /**
26
+ * Used by `YAML.createNode` to detect your data type, e.g. using `typeof` or
27
+ * `instanceof`.
28
+ */
29
+ identify?: (value: unknown) => boolean;
30
+ /**
31
+ * The identifier for your data type, with which its stringified form will be
32
+ * prefixed. Should either be a !-prefixed local `!tag`, or a fully qualified
33
+ * `tag:domain,date:foo`.
34
+ */
35
+ tag: string;
36
+ }
37
+ export interface ScalarTag extends TagBase {
38
+ collection?: never;
39
+ nodeClass?: never;
40
+ /**
41
+ * Turns a value into an AST node.
42
+ * If returning a non-`Node` value, the output will be wrapped as a `Scalar`.
43
+ */
44
+ resolve(value: string, onError: (message: string) => void, options: ParseOptions): unknown;
45
+ /**
46
+ * Optional function stringifying a Scalar node. If your data includes a
47
+ * suitable `.toString()` method, you can probably leave this undefined and
48
+ * use the default stringifier.
49
+ *
50
+ * @param item The node being stringified.
51
+ * @param ctx Contains the stringifying context variables.
52
+ * @param onComment Callback to signal that the stringifier includes the
53
+ * item's comment in its output.
54
+ * @param onChompKeep Callback to signal that the output uses a block scalar
55
+ * type with the `+` chomping indicator.
56
+ */
57
+ stringify?: (item: Scalar, ctx: StringifyContext, onComment?: () => void, onChompKeep?: () => void) => string;
58
+ /**
59
+ * Together with `default` allows for values to be stringified without an
60
+ * explicit tag and detected using a regular expression. For most cases, it's
61
+ * unlikely that you'll actually want to use these, even if you first think
62
+ * you do.
63
+ */
64
+ test?: RegExp;
65
+ }
66
+ export interface CollectionTag extends TagBase {
67
+ stringify?: never;
68
+ test?: never;
69
+ /** The source collection type supported by this tag. */
70
+ collection: 'map' | 'seq';
71
+ /**
72
+ * The `Node` child class that implements this tag.
73
+ * If set, used to select this tag when stringifying.
74
+ */
75
+ nodeClass?: new () => Node;
76
+ /**
77
+ * Turns a value into an AST node.
78
+ * If returning a non-`Node` value, the output will be wrapped as a `Scalar`.
79
+ */
80
+ resolve(value: YAMLMap.Parsed | YAMLSeq.Parsed, onError: (message: string) => void, options: ParseOptions): unknown;
81
+ }
82
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { ScalarTag } from '../types.js';
2
+ export declare const binary: ScalarTag;
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ var Scalar = require('../../nodes/Scalar.js');
4
+ var stringifyString = require('../../stringify/stringifyString.js');
5
+
6
+ const binary = {
7
+ identify: value => value instanceof Uint8Array,
8
+ default: false,
9
+ tag: 'tag:yaml.org,2002:binary',
10
+ /**
11
+ * Returns a Buffer in node and an Uint8Array in browsers
12
+ *
13
+ * To use the resulting buffer as an image, you'll want to do something like:
14
+ *
15
+ * const blob = new Blob([buffer], { type: 'image/jpeg' })
16
+ * document.querySelector('#photo').src = URL.createObjectURL(blob)
17
+ */
18
+ resolve(src, onError) {
19
+ if (typeof Buffer === 'function') {
20
+ return Buffer.from(src, 'base64');
21
+ }
22
+ else if (typeof atob === 'function') {
23
+ // On IE 11, atob() can't handle newlines
24
+ const str = atob(src.replace(/[\n\r]/g, ''));
25
+ const buffer = new Uint8Array(str.length);
26
+ for (let i = 0; i < str.length; ++i)
27
+ buffer[i] = str.charCodeAt(i);
28
+ return buffer;
29
+ }
30
+ else {
31
+ onError('This environment does not support reading binary tags; either Buffer or atob is required');
32
+ return src;
33
+ }
34
+ },
35
+ stringify({ comment, type, value }, ctx, onComment, onChompKeep) {
36
+ const buf = value; // checked earlier by binary.identify()
37
+ let str;
38
+ if (typeof Buffer === 'function') {
39
+ str =
40
+ buf instanceof Buffer
41
+ ? buf.toString('base64')
42
+ : Buffer.from(buf.buffer).toString('base64');
43
+ }
44
+ else if (typeof btoa === 'function') {
45
+ let s = '';
46
+ for (let i = 0; i < buf.length; ++i)
47
+ s += String.fromCharCode(buf[i]);
48
+ str = btoa(s);
49
+ }
50
+ else {
51
+ throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');
52
+ }
53
+ if (!type)
54
+ type = Scalar.Scalar.BLOCK_LITERAL;
55
+ if (type !== Scalar.Scalar.QUOTE_DOUBLE) {
56
+ const lineWidth = Math.max(ctx.options.lineWidth - ctx.indent.length, ctx.options.minContentWidth);
57
+ const n = Math.ceil(str.length / lineWidth);
58
+ const lines = new Array(n);
59
+ for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {
60
+ lines[i] = str.substr(o, lineWidth);
61
+ }
62
+ str = lines.join(type === Scalar.Scalar.BLOCK_LITERAL ? '\n' : ' ');
63
+ }
64
+ return stringifyString.stringifyString({ comment, type, value: str }, ctx, onComment, onChompKeep);
65
+ }
66
+ };
67
+
68
+ exports.binary = binary;
@@ -0,0 +1,7 @@
1
+ import type { ScalarTag } from '../types.js';
2
+ export declare const trueTag: ScalarTag & {
3
+ test: RegExp;
4
+ };
5
+ export declare const falseTag: ScalarTag & {
6
+ test: RegExp;
7
+ };
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var Scalar = require('../../nodes/Scalar.js');
4
+
5
+ function boolStringify({ value, source }, ctx) {
6
+ const boolObj = value ? trueTag : falseTag;
7
+ if (source && boolObj.test.test(source))
8
+ return source;
9
+ return value ? ctx.options.trueStr : ctx.options.falseStr;
10
+ }
11
+ const trueTag = {
12
+ identify: value => value === true,
13
+ default: true,
14
+ tag: 'tag:yaml.org,2002:bool',
15
+ test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,
16
+ resolve: () => new Scalar.Scalar(true),
17
+ stringify: boolStringify
18
+ };
19
+ const falseTag = {
20
+ identify: value => value === false,
21
+ default: true,
22
+ tag: 'tag:yaml.org,2002:bool',
23
+ test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,
24
+ resolve: () => new Scalar.Scalar(false),
25
+ stringify: boolStringify
26
+ };
27
+
28
+ exports.falseTag = falseTag;
29
+ exports.trueTag = trueTag;
@@ -0,0 +1,4 @@
1
+ import type { ScalarTag } from '../types.js';
2
+ export declare const floatNaN: ScalarTag;
3
+ export declare const floatExp: ScalarTag;
4
+ export declare const float: ScalarTag;
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var Scalar = require('../../nodes/Scalar.js');
4
+ var stringifyNumber = require('../../stringify/stringifyNumber.js');
5
+
6
+ const floatNaN = {
7
+ identify: value => typeof value === 'number',
8
+ default: true,
9
+ tag: 'tag:yaml.org,2002:float',
10
+ test: /^[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN)$/,
11
+ resolve: (str) => str.slice(-3).toLowerCase() === 'nan'
12
+ ? NaN
13
+ : str[0] === '-'
14
+ ? Number.NEGATIVE_INFINITY
15
+ : Number.POSITIVE_INFINITY,
16
+ stringify: stringifyNumber.stringifyNumber
17
+ };
18
+ const floatExp = {
19
+ identify: value => typeof value === 'number',
20
+ default: true,
21
+ tag: 'tag:yaml.org,2002:float',
22
+ format: 'EXP',
23
+ test: /^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,
24
+ resolve: (str) => parseFloat(str.replace(/_/g, '')),
25
+ stringify: ({ value }) => Number(value).toExponential()
26
+ };
27
+ const float = {
28
+ identify: value => typeof value === 'number',
29
+ default: true,
30
+ tag: 'tag:yaml.org,2002:float',
31
+ test: /^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,
32
+ resolve(str) {
33
+ const node = new Scalar.Scalar(parseFloat(str.replace(/_/g, '')));
34
+ const dot = str.indexOf('.');
35
+ if (dot !== -1) {
36
+ const f = str.substring(dot + 1).replace(/_/g, '');
37
+ if (f[f.length - 1] === '0')
38
+ node.minFractionDigits = f.length;
39
+ }
40
+ return node;
41
+ },
42
+ stringify: stringifyNumber.stringifyNumber
43
+ };
44
+
45
+ exports.float = float;
46
+ exports.floatExp = floatExp;
47
+ exports.floatNaN = floatNaN;
@@ -0,0 +1,5 @@
1
+ import type { ScalarTag } from '../types.js';
2
+ export declare const intBin: ScalarTag;
3
+ export declare const intOct: ScalarTag;
4
+ export declare const int: ScalarTag;
5
+ export declare const intHex: ScalarTag;
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var stringifyNumber = require('../../stringify/stringifyNumber.js');
4
+
5
+ const intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);
6
+ function intResolve(str, offset, radix, { intAsBigInt }) {
7
+ const sign = str[0];
8
+ if (sign === '-' || sign === '+')
9
+ offset += 1;
10
+ str = str.substring(offset).replace(/_/g, '');
11
+ if (intAsBigInt) {
12
+ switch (radix) {
13
+ case 2:
14
+ str = `0b${str}`;
15
+ break;
16
+ case 8:
17
+ str = `0o${str}`;
18
+ break;
19
+ case 16:
20
+ str = `0x${str}`;
21
+ break;
22
+ }
23
+ const n = BigInt(str);
24
+ return sign === '-' ? BigInt(-1) * n : n;
25
+ }
26
+ const n = parseInt(str, radix);
27
+ return sign === '-' ? -1 * n : n;
28
+ }
29
+ function intStringify(node, radix, prefix) {
30
+ const { value } = node;
31
+ if (intIdentify(value)) {
32
+ const str = value.toString(radix);
33
+ return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;
34
+ }
35
+ return stringifyNumber.stringifyNumber(node);
36
+ }
37
+ const intBin = {
38
+ identify: intIdentify,
39
+ default: true,
40
+ tag: 'tag:yaml.org,2002:int',
41
+ format: 'BIN',
42
+ test: /^[-+]?0b[0-1_]+$/,
43
+ resolve: (str, _onError, opt) => intResolve(str, 2, 2, opt),
44
+ stringify: node => intStringify(node, 2, '0b')
45
+ };
46
+ const intOct = {
47
+ identify: intIdentify,
48
+ default: true,
49
+ tag: 'tag:yaml.org,2002:int',
50
+ format: 'OCT',
51
+ test: /^[-+]?0[0-7_]+$/,
52
+ resolve: (str, _onError, opt) => intResolve(str, 1, 8, opt),
53
+ stringify: node => intStringify(node, 8, '0')
54
+ };
55
+ const int = {
56
+ identify: intIdentify,
57
+ default: true,
58
+ tag: 'tag:yaml.org,2002:int',
59
+ test: /^[-+]?[0-9][0-9_]*$/,
60
+ resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),
61
+ stringify: stringifyNumber.stringifyNumber
62
+ };
63
+ const intHex = {
64
+ identify: intIdentify,
65
+ default: true,
66
+ tag: 'tag:yaml.org,2002:int',
67
+ format: 'HEX',
68
+ test: /^[-+]?0x[0-9a-fA-F_]+$/,
69
+ resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),
70
+ stringify: node => intStringify(node, 16, '0x')
71
+ };
72
+
73
+ exports.int = int;
74
+ exports.intBin = intBin;
75
+ exports.intHex = intHex;
76
+ exports.intOct = intOct;
@@ -0,0 +1,21 @@
1
+ import { YAMLSeq } from '../../nodes/YAMLSeq.js';
2
+ import { ToJSContext } from '../../nodes/toJS.js';
3
+ import { CollectionTag } from '../types.js';
4
+ export declare class YAMLOMap extends YAMLSeq {
5
+ static tag: string;
6
+ constructor();
7
+ add: (pair: import("../../index.js").Pair<any, any> | {
8
+ key: any;
9
+ value: any;
10
+ }, overwrite?: boolean | undefined) => void;
11
+ delete: (key: any) => boolean;
12
+ get: (key: any, keepScalar?: boolean | undefined) => unknown;
13
+ has: (key: any) => boolean;
14
+ set: (key: any, value: any) => void;
15
+ /**
16
+ * If `ctx` is given, the return type is actually `Map<unknown, unknown>`,
17
+ * but TypeScript won't allow widening the signature of a child method.
18
+ */
19
+ toJSON(_?: unknown, ctx?: ToJSContext): unknown[];
20
+ }
21
+ export declare const omap: CollectionTag;
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var YAMLSeq = require('../../nodes/YAMLSeq.js');
4
+ var toJS = require('../../nodes/toJS.js');
5
+ var Node = require('../../nodes/Node.js');
6
+ var YAMLMap = require('../../nodes/YAMLMap.js');
7
+ var pairs = require('./pairs.js');
8
+
9
+ class YAMLOMap extends YAMLSeq.YAMLSeq {
10
+ constructor() {
11
+ super();
12
+ this.add = YAMLMap.YAMLMap.prototype.add.bind(this);
13
+ this.delete = YAMLMap.YAMLMap.prototype.delete.bind(this);
14
+ this.get = YAMLMap.YAMLMap.prototype.get.bind(this);
15
+ this.has = YAMLMap.YAMLMap.prototype.has.bind(this);
16
+ this.set = YAMLMap.YAMLMap.prototype.set.bind(this);
17
+ this.tag = YAMLOMap.tag;
18
+ }
19
+ /**
20
+ * If `ctx` is given, the return type is actually `Map<unknown, unknown>`,
21
+ * but TypeScript won't allow widening the signature of a child method.
22
+ */
23
+ toJSON(_, ctx) {
24
+ if (!ctx)
25
+ return super.toJSON(_);
26
+ const map = new Map();
27
+ if (ctx && ctx.onCreate)
28
+ ctx.onCreate(map);
29
+ for (const pair of this.items) {
30
+ let key, value;
31
+ if (Node.isPair(pair)) {
32
+ key = toJS.toJS(pair.key, '', ctx);
33
+ value = toJS.toJS(pair.value, key, ctx);
34
+ }
35
+ else {
36
+ key = toJS.toJS(pair, '', ctx);
37
+ }
38
+ if (map.has(key))
39
+ throw new Error('Ordered maps must not include duplicate keys');
40
+ map.set(key, value);
41
+ }
42
+ return map;
43
+ }
44
+ }
45
+ YAMLOMap.tag = 'tag:yaml.org,2002:omap';
46
+ const omap = {
47
+ collection: 'seq',
48
+ identify: value => value instanceof Map,
49
+ nodeClass: YAMLOMap,
50
+ default: false,
51
+ tag: 'tag:yaml.org,2002:omap',
52
+ resolve(seq, onError) {
53
+ const pairs$1 = pairs.resolvePairs(seq, onError);
54
+ const seenKeys = [];
55
+ for (const { key } of pairs$1.items) {
56
+ if (Node.isScalar(key)) {
57
+ if (seenKeys.includes(key.value)) {
58
+ onError(`Ordered maps must not include duplicate keys: ${key.value}`);
59
+ }
60
+ else {
61
+ seenKeys.push(key.value);
62
+ }
63
+ }
64
+ }
65
+ return Object.assign(new YAMLOMap(), pairs$1);
66
+ },
67
+ createNode(schema, iterable, ctx) {
68
+ const pairs$1 = pairs.createPairs(schema, iterable, ctx);
69
+ const omap = new YAMLOMap();
70
+ omap.items = pairs$1.items;
71
+ return omap;
72
+ }
73
+ };
74
+
75
+ exports.YAMLOMap = YAMLOMap;
76
+ exports.omap = omap;
@@ -0,0 +1,10 @@
1
+ import type { CreateNodeContext } from '../../doc/createNode.js';
2
+ import { ParsedNode } from '../../nodes/Node.js';
3
+ import { Pair } from '../../nodes/Pair.js';
4
+ import { YAMLMap } from '../../nodes/YAMLMap.js';
5
+ import { YAMLSeq } from '../../nodes/YAMLSeq.js';
6
+ import type { Schema } from '../../schema/Schema.js';
7
+ import type { CollectionTag } from '../types.js';
8
+ export declare function resolvePairs(seq: YAMLSeq.Parsed<ParsedNode | Pair<ParsedNode, ParsedNode | null>> | YAMLMap.Parsed, onError: (message: string) => void): YAMLSeq.Parsed<Pair<ParsedNode, ParsedNode | null>>;
9
+ export declare function createPairs(schema: Schema, iterable: unknown, ctx: CreateNodeContext): YAMLSeq<unknown>;
10
+ export declare const pairs: CollectionTag;
@@ -0,0 +1,81 @@
1
+ 'use strict';
2
+
3
+ var Node = require('../../nodes/Node.js');
4
+ var Pair = require('../../nodes/Pair.js');
5
+ var Scalar = require('../../nodes/Scalar.js');
6
+ var YAMLSeq = require('../../nodes/YAMLSeq.js');
7
+
8
+ function resolvePairs(seq, onError) {
9
+ if (Node.isSeq(seq)) {
10
+ for (let i = 0; i < seq.items.length; ++i) {
11
+ let item = seq.items[i];
12
+ if (Node.isPair(item))
13
+ continue;
14
+ else if (Node.isMap(item)) {
15
+ if (item.items.length > 1)
16
+ onError('Each pair must have its own sequence indicator');
17
+ const pair = item.items[0] || new Pair.Pair(new Scalar.Scalar(null));
18
+ if (item.commentBefore)
19
+ pair.key.commentBefore = pair.key.commentBefore
20
+ ? `${item.commentBefore}\n${pair.key.commentBefore}`
21
+ : item.commentBefore;
22
+ if (item.comment) {
23
+ const cn = pair.value || pair.key;
24
+ cn.comment = cn.comment
25
+ ? `${item.comment}\n${cn.comment}`
26
+ : item.comment;
27
+ }
28
+ item = pair;
29
+ }
30
+ seq.items[i] = Node.isPair(item) ? item : new Pair.Pair(item);
31
+ }
32
+ }
33
+ else
34
+ onError('Expected a sequence for this tag');
35
+ return seq;
36
+ }
37
+ function createPairs(schema, iterable, ctx) {
38
+ const { replacer } = ctx;
39
+ const pairs = new YAMLSeq.YAMLSeq(schema);
40
+ pairs.tag = 'tag:yaml.org,2002:pairs';
41
+ let i = 0;
42
+ if (iterable && Symbol.iterator in Object(iterable))
43
+ for (let it of iterable) {
44
+ if (typeof replacer === 'function')
45
+ it = replacer.call(iterable, String(i++), it);
46
+ let key, value;
47
+ if (Array.isArray(it)) {
48
+ if (it.length === 2) {
49
+ key = it[0];
50
+ value = it[1];
51
+ }
52
+ else
53
+ throw new TypeError(`Expected [key, value] tuple: ${it}`);
54
+ }
55
+ else if (it && it instanceof Object) {
56
+ const keys = Object.keys(it);
57
+ if (keys.length === 1) {
58
+ key = keys[0];
59
+ value = it[key];
60
+ }
61
+ else
62
+ throw new TypeError(`Expected { key: value } tuple: ${it}`);
63
+ }
64
+ else {
65
+ key = it;
66
+ }
67
+ pairs.items.push(Pair.createPair(key, value, ctx));
68
+ }
69
+ return pairs;
70
+ }
71
+ const pairs = {
72
+ collection: 'seq',
73
+ default: false,
74
+ tag: 'tag:yaml.org,2002:pairs',
75
+ resolve: resolvePairs,
76
+ createNode: createPairs
77
+ };
78
+
79
+ exports.createPairs = createPairs;
80
+ exports.pairs = pairs;
81
+ exports.resolvePairs = resolvePairs;
@@ -0,0 +1 @@
1
+ export declare const schema: (import("../types.js").ScalarTag | import("../types.js").CollectionTag)[];
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ var map = require('../common/map.js');
4
+ var _null = require('../common/null.js');
5
+ var seq = require('../common/seq.js');
6
+ var string = require('../common/string.js');
7
+ var binary = require('./binary.js');
8
+ var bool = require('./bool.js');
9
+ var float = require('./float.js');
10
+ var int = require('./int.js');
11
+ var omap = require('./omap.js');
12
+ var pairs = require('./pairs.js');
13
+ var set = require('./set.js');
14
+ var timestamp = require('./timestamp.js');
15
+
16
+ const schema = [
17
+ map.map,
18
+ seq.seq,
19
+ string.string,
20
+ _null.nullTag,
21
+ bool.trueTag,
22
+ bool.falseTag,
23
+ int.intBin,
24
+ int.intOct,
25
+ int.int,
26
+ int.intHex,
27
+ float.floatNaN,
28
+ float.floatExp,
29
+ float.float,
30
+ binary.binary,
31
+ omap.omap,
32
+ pairs.pairs,
33
+ set.set,
34
+ timestamp.intTime,
35
+ timestamp.floatTime,
36
+ timestamp.timestamp
37
+ ];
38
+
39
+ exports.schema = schema;
@@ -0,0 +1,22 @@
1
+ import type { Schema } from '../../schema/Schema.js';
2
+ import { Pair } from '../../nodes/Pair.js';
3
+ import { Scalar } from '../../nodes/Scalar.js';
4
+ import { ToJSContext } from '../../nodes/toJS.js';
5
+ import { YAMLMap } from '../../nodes/YAMLMap.js';
6
+ import type { StringifyContext } from '../../stringify/stringify.js';
7
+ import type { CollectionTag } from '../types.js';
8
+ export declare class YAMLSet<T = unknown> extends YAMLMap<T, Scalar<null> | null> {
9
+ static tag: string;
10
+ constructor(schema?: Schema);
11
+ add(key: T | Pair<T, Scalar<null> | null> | {
12
+ key: T;
13
+ value: Scalar<null> | null;
14
+ }): void;
15
+ get(key?: T, keepPair?: boolean): unknown;
16
+ set(key: T, value: boolean): void;
17
+ /** Will throw; `value` must be boolean */
18
+ set(key: T, value: null): void;
19
+ toJSON(_?: unknown, ctx?: ToJSContext): any;
20
+ toString(ctx?: StringifyContext, onComment?: () => void, onChompKeep?: () => void): string;
21
+ }
22
+ export declare const set: CollectionTag;