yaml 1.9.2 → 1.10.0

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 (160) hide show
  1. package/README.md +4 -4
  2. package/browser/dist/PlainValue-ff5147c6.js +1277 -0
  3. package/browser/dist/Schema-2bf2c74e.js +679 -0
  4. package/browser/dist/index.js +869 -34
  5. package/browser/dist/legacy-exports.js +3 -0
  6. package/browser/dist/parse-cst.js +1904 -0
  7. package/browser/dist/resolveSeq-04825f30.js +2373 -0
  8. package/browser/dist/types.js +4 -0
  9. package/browser/dist/util.js +2 -0
  10. package/browser/dist/warnings-0e4b70d3.js +499 -0
  11. package/browser/index.js +1 -1
  12. package/browser/map.js +2 -4
  13. package/browser/pair.js +2 -4
  14. package/browser/parse-cst.js +1 -1
  15. package/browser/scalar.js +2 -4
  16. package/browser/schema.js +7 -10
  17. package/browser/seq.js +2 -4
  18. package/browser/types/binary.js +7 -5
  19. package/browser/types/omap.js +3 -4
  20. package/browser/types/pairs.js +3 -4
  21. package/browser/types/set.js +3 -4
  22. package/browser/types/timestamp.js +9 -5
  23. package/browser/types.js +1 -13
  24. package/browser/util.js +1 -18
  25. package/dist/Document-2cf6b08c.js +757 -0
  26. package/dist/PlainValue-ec8e588e.js +876 -0
  27. package/dist/Schema-42e9705c.js +522 -0
  28. package/dist/index.js +20 -84
  29. package/dist/legacy-exports.js +16 -0
  30. package/dist/parse-cst.js +1747 -0
  31. package/dist/resolveSeq-4a68b39b.js +2115 -0
  32. package/dist/test-events.js +11 -9
  33. package/dist/types.js +23 -0
  34. package/dist/util.js +19 -0
  35. package/dist/warnings-39684f17.js +416 -0
  36. package/index.d.ts +22 -8
  37. package/map.js +2 -2
  38. package/package.json +22 -39
  39. package/pair.js +2 -2
  40. package/parse-cst.js +1 -1
  41. package/scalar.js +2 -2
  42. package/schema.js +8 -6
  43. package/seq.js +2 -2
  44. package/types/binary.js +3 -2
  45. package/types/omap.js +3 -2
  46. package/types/pairs.js +3 -2
  47. package/types/set.js +3 -2
  48. package/types/timestamp.js +6 -6
  49. package/types.d.ts +113 -99
  50. package/types.js +16 -11
  51. package/types.mjs +15 -19
  52. package/util.js +14 -14
  53. package/util.mjs +13 -20
  54. package/browser/dist/Anchors.js +0 -130
  55. package/browser/dist/Document.js +0 -824
  56. package/browser/dist/addComment.js +0 -8
  57. package/browser/dist/constants.js +0 -26
  58. package/browser/dist/cst/Alias.js +0 -46
  59. package/browser/dist/cst/BlankLine.js +0 -52
  60. package/browser/dist/cst/BlockValue.js +0 -251
  61. package/browser/dist/cst/Collection.js +0 -278
  62. package/browser/dist/cst/CollectionItem.js +0 -140
  63. package/browser/dist/cst/Comment.js +0 -44
  64. package/browser/dist/cst/Directive.js +0 -76
  65. package/browser/dist/cst/Document.js +0 -286
  66. package/browser/dist/cst/FlowCollection.js +0 -220
  67. package/browser/dist/cst/Node.js +0 -386
  68. package/browser/dist/cst/ParseContext.js +0 -246
  69. package/browser/dist/cst/PlainValue.js +0 -170
  70. package/browser/dist/cst/QuoteDouble.js +0 -245
  71. package/browser/dist/cst/QuoteSingle.js +0 -120
  72. package/browser/dist/cst/Range.js +0 -64
  73. package/browser/dist/cst/parse.js +0 -48
  74. package/browser/dist/cst/source-utils.js +0 -168
  75. package/browser/dist/errors.js +0 -127
  76. package/browser/dist/foldFlowLines.js +0 -138
  77. package/browser/dist/listTagNames.js +0 -28
  78. package/browser/dist/schema/Alias.js +0 -135
  79. package/browser/dist/schema/Collection.js +0 -260
  80. package/browser/dist/schema/Map.js +0 -161
  81. package/browser/dist/schema/Merge.js +0 -118
  82. package/browser/dist/schema/Node.js +0 -4
  83. package/browser/dist/schema/Pair.js +0 -194
  84. package/browser/dist/schema/Scalar.js +0 -42
  85. package/browser/dist/schema/Seq.js +0 -116
  86. package/browser/dist/schema/index.js +0 -368
  87. package/browser/dist/schema/parseMap.js +0 -312
  88. package/browser/dist/schema/parseSeq.js +0 -168
  89. package/browser/dist/schema/parseUtils.js +0 -106
  90. package/browser/dist/stringify.js +0 -332
  91. package/browser/dist/tags/core.js +0 -141
  92. package/browser/dist/tags/failsafe/index.js +0 -4
  93. package/browser/dist/tags/failsafe/map.js +0 -53
  94. package/browser/dist/tags/failsafe/seq.js +0 -39
  95. package/browser/dist/tags/failsafe/string.js +0 -28
  96. package/browser/dist/tags/index.js +0 -36
  97. package/browser/dist/tags/json.js +0 -77
  98. package/browser/dist/tags/options.js +0 -26
  99. package/browser/dist/tags/yaml-1.1/binary.js +0 -87
  100. package/browser/dist/tags/yaml-1.1/index.js +0 -189
  101. package/browser/dist/tags/yaml-1.1/omap.js +0 -137
  102. package/browser/dist/tags/yaml-1.1/pairs.js +0 -78
  103. package/browser/dist/tags/yaml-1.1/set.js +0 -118
  104. package/browser/dist/tags/yaml-1.1/timestamp.js +0 -97
  105. package/browser/dist/test-events.js +0 -163
  106. package/browser/dist/toJSON.js +0 -19
  107. package/browser/dist/warnings.js +0 -39
  108. package/dist/Anchors.js +0 -120
  109. package/dist/Document.js +0 -714
  110. package/dist/addComment.js +0 -14
  111. package/dist/constants.js +0 -31
  112. package/dist/cst/Alias.js +0 -33
  113. package/dist/cst/BlankLine.js +0 -40
  114. package/dist/cst/BlockValue.js +0 -243
  115. package/dist/cst/Collection.js +0 -266
  116. package/dist/cst/CollectionItem.js +0 -135
  117. package/dist/cst/Comment.js +0 -33
  118. package/dist/cst/Directive.js +0 -59
  119. package/dist/cst/Document.js +0 -276
  120. package/dist/cst/FlowCollection.js +0 -213
  121. package/dist/cst/Node.js +0 -360
  122. package/dist/cst/ParseContext.js +0 -253
  123. package/dist/cst/PlainValue.js +0 -156
  124. package/dist/cst/QuoteDouble.js +0 -232
  125. package/dist/cst/QuoteSingle.js +0 -108
  126. package/dist/cst/Range.js +0 -60
  127. package/dist/cst/parse.js +0 -50
  128. package/dist/cst/source-utils.js +0 -175
  129. package/dist/errors.js +0 -97
  130. package/dist/foldFlowLines.js +0 -143
  131. package/dist/listTagNames.js +0 -33
  132. package/dist/schema/Alias.js +0 -105
  133. package/dist/schema/Collection.js +0 -184
  134. package/dist/schema/Map.js +0 -98
  135. package/dist/schema/Merge.js +0 -75
  136. package/dist/schema/Node.js +0 -7
  137. package/dist/schema/Pair.js +0 -174
  138. package/dist/schema/Scalar.js +0 -26
  139. package/dist/schema/Seq.js +0 -73
  140. package/dist/schema/index.js +0 -310
  141. package/dist/schema/parseMap.js +0 -334
  142. package/dist/schema/parseSeq.js +0 -175
  143. package/dist/schema/parseUtils.js +0 -101
  144. package/dist/stringify.js +0 -352
  145. package/dist/tags/core.js +0 -121
  146. package/dist/tags/failsafe/index.js +0 -12
  147. package/dist/tags/failsafe/map.js +0 -32
  148. package/dist/tags/failsafe/seq.js +0 -29
  149. package/dist/tags/failsafe/string.js +0 -37
  150. package/dist/tags/index.js +0 -53
  151. package/dist/tags/json.js +0 -64
  152. package/dist/tags/options.js +0 -36
  153. package/dist/tags/yaml-1.1/binary.js +0 -94
  154. package/dist/tags/yaml-1.1/index.js +0 -162
  155. package/dist/tags/yaml-1.1/omap.js +0 -100
  156. package/dist/tags/yaml-1.1/pairs.js +0 -75
  157. package/dist/tags/yaml-1.1/set.js +0 -82
  158. package/dist/tags/yaml-1.1/timestamp.js +0 -90
  159. package/dist/toJSON.js +0 -21
  160. package/dist/warnings.js +0 -48
package/dist/tags/core.js DELETED
@@ -1,121 +0,0 @@
1
- "use strict";
2
-
3
- exports.core = exports.floatObj = exports.expObj = exports.nanObj = exports.hexObj = exports.intObj = exports.octObj = exports.boolObj = exports.nullObj = void 0;
4
-
5
- var _Scalar = require("../schema/Scalar");
6
-
7
- var _stringify = require("../stringify");
8
-
9
- var _failsafe = require("./failsafe");
10
-
11
- var _options = require("./options");
12
-
13
- /* global BigInt */
14
- const intIdentify = value => typeof value === 'bigint' || Number.isInteger(value);
15
-
16
- const intResolve = (src, part, radix) => _options.intOptions.asBigInt ? BigInt(src) : parseInt(part, radix);
17
-
18
- function intStringify(node, radix, prefix) {
19
- const {
20
- value
21
- } = node;
22
- if (intIdentify(value) && value >= 0) return prefix + value.toString(radix);
23
- return (0, _stringify.stringifyNumber)(node);
24
- }
25
-
26
- const nullObj = {
27
- identify: value => value == null,
28
- createNode: (schema, value, ctx) => ctx.wrapScalars ? new _Scalar.Scalar(null) : null,
29
- default: true,
30
- tag: 'tag:yaml.org,2002:null',
31
- test: /^(?:~|[Nn]ull|NULL)?$/,
32
- resolve: () => null,
33
- options: _options.nullOptions,
34
- stringify: () => _options.nullOptions.nullStr
35
- };
36
- exports.nullObj = nullObj;
37
- const boolObj = {
38
- identify: value => typeof value === 'boolean',
39
- default: true,
40
- tag: 'tag:yaml.org,2002:bool',
41
- test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
42
- resolve: str => str[0] === 't' || str[0] === 'T',
43
- options: _options.boolOptions,
44
- stringify: ({
45
- value
46
- }) => value ? _options.boolOptions.trueStr : _options.boolOptions.falseStr
47
- };
48
- exports.boolObj = boolObj;
49
- const octObj = {
50
- identify: value => intIdentify(value) && value >= 0,
51
- default: true,
52
- tag: 'tag:yaml.org,2002:int',
53
- format: 'OCT',
54
- test: /^0o([0-7]+)$/,
55
- resolve: (str, oct) => intResolve(str, oct, 8),
56
- options: _options.intOptions,
57
- stringify: node => intStringify(node, 8, '0o')
58
- };
59
- exports.octObj = octObj;
60
- const intObj = {
61
- identify: intIdentify,
62
- default: true,
63
- tag: 'tag:yaml.org,2002:int',
64
- test: /^[-+]?[0-9]+$/,
65
- resolve: str => intResolve(str, str, 10),
66
- options: _options.intOptions,
67
- stringify: _stringify.stringifyNumber
68
- };
69
- exports.intObj = intObj;
70
- const hexObj = {
71
- identify: value => intIdentify(value) && value >= 0,
72
- default: true,
73
- tag: 'tag:yaml.org,2002:int',
74
- format: 'HEX',
75
- test: /^0x([0-9a-fA-F]+)$/,
76
- resolve: (str, hex) => intResolve(str, hex, 16),
77
- options: _options.intOptions,
78
- stringify: node => intStringify(node, 16, '0x')
79
- };
80
- exports.hexObj = hexObj;
81
- const nanObj = {
82
- identify: value => typeof value === 'number',
83
- default: true,
84
- tag: 'tag:yaml.org,2002:float',
85
- test: /^(?:[-+]?\.inf|(\.nan))$/i,
86
- resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
87
- stringify: _stringify.stringifyNumber
88
- };
89
- exports.nanObj = nanObj;
90
- const expObj = {
91
- identify: value => typeof value === 'number',
92
- default: true,
93
- tag: 'tag:yaml.org,2002:float',
94
- format: 'EXP',
95
- test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,
96
- resolve: str => parseFloat(str),
97
- stringify: ({
98
- value
99
- }) => Number(value).toExponential()
100
- };
101
- exports.expObj = expObj;
102
- const floatObj = {
103
- identify: value => typeof value === 'number',
104
- default: true,
105
- tag: 'tag:yaml.org,2002:float',
106
- test: /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/,
107
-
108
- resolve(str, frac1, frac2) {
109
- const frac = frac1 || frac2;
110
- const node = new _Scalar.Scalar(parseFloat(str));
111
- if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length;
112
- return node;
113
- },
114
-
115
- stringify: _stringify.stringifyNumber
116
- };
117
- exports.floatObj = floatObj;
118
-
119
- const core = _failsafe.failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);
120
-
121
- exports.core = core;
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- exports.failsafe = void 0;
4
-
5
- var _map = require("./map");
6
-
7
- var _seq = require("./seq");
8
-
9
- var _string = require("./string");
10
-
11
- const failsafe = [_map.map, _seq.seq, _string.string];
12
- exports.failsafe = failsafe;
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- exports.map = void 0;
4
-
5
- var _Map = require("../../schema/Map");
6
-
7
- var _parseMap = require("../../schema/parseMap");
8
-
9
- function createMap(schema, obj, ctx) {
10
- const map = new _Map.YAMLMap(schema);
11
-
12
- if (obj instanceof Map) {
13
- for (const [key, value] of obj) map.items.push(schema.createPair(key, value, ctx));
14
- } else if (obj && typeof obj === 'object') {
15
- for (const key of Object.keys(obj)) map.items.push(schema.createPair(key, obj[key], ctx));
16
- }
17
-
18
- if (typeof schema.sortMapEntries === 'function') {
19
- map.items.sort(schema.sortMapEntries);
20
- }
21
-
22
- return map;
23
- }
24
-
25
- const map = {
26
- createNode: createMap,
27
- default: true,
28
- nodeClass: _Map.YAMLMap,
29
- tag: 'tag:yaml.org,2002:map',
30
- resolve: _parseMap.parseMap
31
- };
32
- exports.map = map;
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- exports.seq = void 0;
4
-
5
- var _parseSeq = require("../../schema/parseSeq");
6
-
7
- var _Seq = require("../../schema/Seq");
8
-
9
- function createSeq(schema, obj, ctx) {
10
- const seq = new _Seq.YAMLSeq(schema);
11
-
12
- if (obj && obj[Symbol.iterator]) {
13
- for (const it of obj) {
14
- const v = schema.createNode(it, ctx.wrapScalars, null, ctx);
15
- seq.items.push(v);
16
- }
17
- }
18
-
19
- return seq;
20
- }
21
-
22
- const seq = {
23
- createNode: createSeq,
24
- default: true,
25
- nodeClass: _Seq.YAMLSeq,
26
- tag: 'tag:yaml.org,2002:seq',
27
- resolve: _parseSeq.parseSeq
28
- };
29
- exports.seq = seq;
@@ -1,37 +0,0 @@
1
- "use strict";
2
-
3
- exports.string = exports.resolveString = void 0;
4
-
5
- var _stringify = require("../../stringify");
6
-
7
- var _options = require("../options");
8
-
9
- const resolveString = (doc, node) => {
10
- // on error, will return { str: string, errors: Error[] }
11
- const res = node.strValue;
12
- if (!res) return '';
13
- if (typeof res === 'string') return res;
14
- res.errors.forEach(error => {
15
- if (!error.source) error.source = node;
16
- doc.errors.push(error);
17
- });
18
- return res.str;
19
- };
20
-
21
- exports.resolveString = resolveString;
22
- const string = {
23
- identify: value => typeof value === 'string',
24
- default: true,
25
- tag: 'tag:yaml.org,2002:str',
26
- resolve: resolveString,
27
-
28
- stringify(item, ctx, onComment, onChompKeep) {
29
- ctx = Object.assign({
30
- actualString: true
31
- }, ctx);
32
- return (0, _stringify.stringifyString)(item, ctx, onComment, onChompKeep);
33
- },
34
-
35
- options: _options.strOptions
36
- };
37
- exports.string = string;
@@ -1,53 +0,0 @@
1
- "use strict";
2
-
3
- exports.tags = exports.schemas = void 0;
4
-
5
- var _core = require("./core");
6
-
7
- var _failsafe = require("./failsafe");
8
-
9
- var _json = require("./json");
10
-
11
- var _yaml = require("./yaml-1.1");
12
-
13
- var _map = require("./failsafe/map");
14
-
15
- var _seq = require("./failsafe/seq");
16
-
17
- var _binary = require("./yaml-1.1/binary");
18
-
19
- var _omap = require("./yaml-1.1/omap");
20
-
21
- var _pairs = require("./yaml-1.1/pairs");
22
-
23
- var _set = require("./yaml-1.1/set");
24
-
25
- var _timestamp = require("./yaml-1.1/timestamp");
26
-
27
- const schemas = {
28
- core: _core.core,
29
- failsafe: _failsafe.failsafe,
30
- json: _json.json,
31
- yaml11: _yaml.yaml11
32
- };
33
- exports.schemas = schemas;
34
- const tags = {
35
- binary: _binary.binary,
36
- bool: _core.boolObj,
37
- float: _core.floatObj,
38
- floatExp: _core.expObj,
39
- floatNaN: _core.nanObj,
40
- floatTime: _timestamp.floatTime,
41
- int: _core.intObj,
42
- intHex: _core.hexObj,
43
- intOct: _core.octObj,
44
- intTime: _timestamp.intTime,
45
- map: _map.map,
46
- null: _core.nullObj,
47
- omap: _omap.omap,
48
- pairs: _pairs.pairs,
49
- seq: _seq.seq,
50
- set: _set.set,
51
- timestamp: _timestamp.timestamp
52
- };
53
- exports.tags = tags;
package/dist/tags/json.js DELETED
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- exports.json = void 0;
4
-
5
- var _map = require("./failsafe/map");
6
-
7
- var _seq = require("./failsafe/seq");
8
-
9
- var _Scalar = require("../schema/Scalar");
10
-
11
- var _string = require("./failsafe/string");
12
-
13
- var _options = require("./options");
14
-
15
- /* global BigInt */
16
- const intIdentify = value => typeof value === 'bigint' || Number.isInteger(value);
17
-
18
- const stringifyJSON = ({
19
- value
20
- }) => JSON.stringify(value);
21
-
22
- const json = [_map.map, _seq.seq, {
23
- identify: value => typeof value === 'string',
24
- default: true,
25
- tag: 'tag:yaml.org,2002:str',
26
- resolve: _string.resolveString,
27
- stringify: stringifyJSON
28
- }, {
29
- identify: value => value == null,
30
- createNode: (schema, value, ctx) => ctx.wrapScalars ? new _Scalar.Scalar(null) : null,
31
- default: true,
32
- tag: 'tag:yaml.org,2002:null',
33
- test: /^null$/,
34
- resolve: () => null,
35
- stringify: stringifyJSON
36
- }, {
37
- identify: value => typeof value === 'boolean',
38
- default: true,
39
- tag: 'tag:yaml.org,2002:bool',
40
- test: /^true|false$/,
41
- resolve: str => str === 'true',
42
- stringify: stringifyJSON
43
- }, {
44
- identify: intIdentify,
45
- default: true,
46
- tag: 'tag:yaml.org,2002:int',
47
- test: /^-?(?:0|[1-9][0-9]*)$/,
48
- resolve: str => _options.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10),
49
- stringify: ({
50
- value
51
- }) => intIdentify(value) ? value.toString() : JSON.stringify(value)
52
- }, {
53
- identify: value => typeof value === 'number',
54
- default: true,
55
- tag: 'tag:yaml.org,2002:float',
56
- test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,
57
- resolve: str => parseFloat(str),
58
- stringify: stringifyJSON
59
- }];
60
- exports.json = json;
61
-
62
- json.scalarFallback = str => {
63
- throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(str)}`);
64
- };
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- exports.strOptions = exports.nullOptions = exports.intOptions = exports.boolOptions = exports.binaryOptions = void 0;
4
-
5
- var _constants = require("../constants");
6
-
7
- const binaryOptions = {
8
- defaultType: _constants.Type.BLOCK_LITERAL,
9
- lineWidth: 76
10
- };
11
- exports.binaryOptions = binaryOptions;
12
- const boolOptions = {
13
- trueStr: 'true',
14
- falseStr: 'false'
15
- };
16
- exports.boolOptions = boolOptions;
17
- const intOptions = {
18
- asBigInt: false
19
- };
20
- exports.intOptions = intOptions;
21
- const nullOptions = {
22
- nullStr: 'null'
23
- };
24
- exports.nullOptions = nullOptions;
25
- const strOptions = {
26
- defaultType: _constants.Type.PLAIN,
27
- doubleQuoted: {
28
- jsonEncoding: false,
29
- minMultiLineLength: 40
30
- },
31
- fold: {
32
- lineWidth: 80,
33
- minContentWidth: 20
34
- }
35
- };
36
- exports.strOptions = strOptions;
@@ -1,94 +0,0 @@
1
- "use strict";
2
-
3
- exports.binary = void 0;
4
-
5
- var _constants = require("../../constants");
6
-
7
- var _errors = require("../../errors");
8
-
9
- var _stringify = require("../../stringify");
10
-
11
- var _string = require("../failsafe/string");
12
-
13
- var _options = require("../options");
14
-
15
- /* global atob, btoa, Buffer */
16
- const binary = {
17
- identify: value => value instanceof Uint8Array,
18
- // Buffer inherits from Uint8Array
19
- default: false,
20
- tag: 'tag:yaml.org,2002:binary',
21
-
22
- /**
23
- * Returns a Buffer in node and an Uint8Array in browsers
24
- *
25
- * To use the resulting buffer as an image, you'll want to do something like:
26
- *
27
- * const blob = new Blob([buffer], { type: 'image/jpeg' })
28
- * document.querySelector('#photo').src = URL.createObjectURL(blob)
29
- */
30
- resolve: (doc, node) => {
31
- const src = (0, _string.resolveString)(doc, node);
32
-
33
- if (typeof Buffer === 'function') {
34
- return Buffer.from(src, 'base64');
35
- } else if (typeof atob === 'function') {
36
- // On IE 11, atob() can't handle newlines
37
- const str = atob(src.replace(/[\n\r]/g, ''));
38
- const buffer = new Uint8Array(str.length);
39
-
40
- for (let i = 0; i < str.length; ++i) buffer[i] = str.charCodeAt(i);
41
-
42
- return buffer;
43
- } else {
44
- const msg = 'This environment does not support reading binary tags; either Buffer or atob is required';
45
- doc.errors.push(new _errors.YAMLReferenceError(node, msg));
46
- return null;
47
- }
48
- },
49
- options: _options.binaryOptions,
50
- stringify: ({
51
- comment,
52
- type,
53
- value
54
- }, ctx, onComment, onChompKeep) => {
55
- let src;
56
-
57
- if (typeof Buffer === 'function') {
58
- src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64');
59
- } else if (typeof btoa === 'function') {
60
- let s = '';
61
-
62
- for (let i = 0; i < value.length; ++i) s += String.fromCharCode(value[i]);
63
-
64
- src = btoa(s);
65
- } else {
66
- throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');
67
- }
68
-
69
- if (!type) type = _options.binaryOptions.defaultType;
70
-
71
- if (type === _constants.Type.QUOTE_DOUBLE) {
72
- value = src;
73
- } else {
74
- const {
75
- lineWidth
76
- } = _options.binaryOptions;
77
- const n = Math.ceil(src.length / lineWidth);
78
- const lines = new Array(n);
79
-
80
- for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {
81
- lines[i] = src.substr(o, lineWidth);
82
- }
83
-
84
- value = lines.join(type === _constants.Type.BLOCK_LITERAL ? '\n' : ' ');
85
- }
86
-
87
- return (0, _stringify.stringifyString)({
88
- comment,
89
- type,
90
- value
91
- }, ctx, onComment, onChompKeep);
92
- }
93
- };
94
- exports.binary = binary;
@@ -1,162 +0,0 @@
1
- "use strict";
2
-
3
- exports.yaml11 = void 0;
4
-
5
- var _Scalar = require("../../schema/Scalar");
6
-
7
- var _stringify = require("../../stringify");
8
-
9
- var _failsafe = require("../failsafe");
10
-
11
- var _options = require("../options");
12
-
13
- var _binary = require("./binary");
14
-
15
- var _omap = require("./omap");
16
-
17
- var _pairs = require("./pairs");
18
-
19
- var _set = require("./set");
20
-
21
- var _timestamp = require("./timestamp");
22
-
23
- /* global BigInt */
24
- const boolStringify = ({
25
- value
26
- }) => value ? _options.boolOptions.trueStr : _options.boolOptions.falseStr;
27
-
28
- const intIdentify = value => typeof value === 'bigint' || Number.isInteger(value);
29
-
30
- function intResolve(sign, src, radix) {
31
- let str = src.replace(/_/g, '');
32
-
33
- if (_options.intOptions.asBigInt) {
34
- switch (radix) {
35
- case 2:
36
- str = `0b${str}`;
37
- break;
38
-
39
- case 8:
40
- str = `0o${str}`;
41
- break;
42
-
43
- case 16:
44
- str = `0x${str}`;
45
- break;
46
- }
47
-
48
- const n = BigInt(str);
49
- return sign === '-' ? BigInt(-1) * n : n;
50
- }
51
-
52
- const n = parseInt(str, radix);
53
- return sign === '-' ? -1 * n : n;
54
- }
55
-
56
- function intStringify(node, radix, prefix) {
57
- const {
58
- value
59
- } = node;
60
-
61
- if (intIdentify(value)) {
62
- const str = value.toString(radix);
63
- return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;
64
- }
65
-
66
- return (0, _stringify.stringifyNumber)(node);
67
- }
68
-
69
- const yaml11 = _failsafe.failsafe.concat([{
70
- identify: value => value == null,
71
- createNode: (schema, value, ctx) => ctx.wrapScalars ? new _Scalar.Scalar(null) : null,
72
- default: true,
73
- tag: 'tag:yaml.org,2002:null',
74
- test: /^(?:~|[Nn]ull|NULL)?$/,
75
- resolve: () => null,
76
- options: _options.nullOptions,
77
- stringify: () => _options.nullOptions.nullStr
78
- }, {
79
- identify: value => typeof value === 'boolean',
80
- default: true,
81
- tag: 'tag:yaml.org,2002:bool',
82
- test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,
83
- resolve: () => true,
84
- options: _options.boolOptions,
85
- stringify: boolStringify
86
- }, {
87
- identify: value => typeof value === 'boolean',
88
- default: true,
89
- tag: 'tag:yaml.org,2002:bool',
90
- test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,
91
- resolve: () => false,
92
- options: _options.boolOptions,
93
- stringify: boolStringify
94
- }, {
95
- identify: intIdentify,
96
- default: true,
97
- tag: 'tag:yaml.org,2002:int',
98
- format: 'BIN',
99
- test: /^([-+]?)0b([0-1_]+)$/,
100
- resolve: (str, sign, bin) => intResolve(sign, bin, 2),
101
- stringify: node => intStringify(node, 2, '0b')
102
- }, {
103
- identify: intIdentify,
104
- default: true,
105
- tag: 'tag:yaml.org,2002:int',
106
- format: 'OCT',
107
- test: /^([-+]?)0([0-7_]+)$/,
108
- resolve: (str, sign, oct) => intResolve(sign, oct, 8),
109
- stringify: node => intStringify(node, 8, '0')
110
- }, {
111
- identify: intIdentify,
112
- default: true,
113
- tag: 'tag:yaml.org,2002:int',
114
- test: /^([-+]?)([0-9][0-9_]*)$/,
115
- resolve: (str, sign, abs) => intResolve(sign, abs, 10),
116
- stringify: _stringify.stringifyNumber
117
- }, {
118
- identify: intIdentify,
119
- default: true,
120
- tag: 'tag:yaml.org,2002:int',
121
- format: 'HEX',
122
- test: /^([-+]?)0x([0-9a-fA-F_]+)$/,
123
- resolve: (str, sign, hex) => intResolve(sign, hex, 16),
124
- stringify: node => intStringify(node, 16, '0x')
125
- }, {
126
- identify: value => typeof value === 'number',
127
- default: true,
128
- tag: 'tag:yaml.org,2002:float',
129
- test: /^(?:[-+]?\.inf|(\.nan))$/i,
130
- resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
131
- stringify: _stringify.stringifyNumber
132
- }, {
133
- identify: value => typeof value === 'number',
134
- default: true,
135
- tag: 'tag:yaml.org,2002:float',
136
- format: 'EXP',
137
- test: /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/,
138
- resolve: str => parseFloat(str.replace(/_/g, '')),
139
- stringify: ({
140
- value
141
- }) => Number(value).toExponential()
142
- }, {
143
- identify: value => typeof value === 'number',
144
- default: true,
145
- tag: 'tag:yaml.org,2002:float',
146
- test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/,
147
-
148
- resolve(str, frac) {
149
- const node = new _Scalar.Scalar(parseFloat(str.replace(/_/g, '')));
150
-
151
- if (frac) {
152
- const f = frac.replace(/_/g, '');
153
- if (f[f.length - 1] === '0') node.minFractionDigits = f.length;
154
- }
155
-
156
- return node;
157
- },
158
-
159
- stringify: _stringify.stringifyNumber
160
- }], _binary.binary, _omap.omap, _pairs.pairs, _set.set, _timestamp.intTime, _timestamp.floatTime, _timestamp.timestamp);
161
-
162
- exports.yaml11 = yaml11;