yaml 1.9.1 → 1.10.2

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 (162) hide show
  1. package/README.md +25 -25
  2. package/browser/dist/PlainValue-b8036b75.js +1275 -0
  3. package/browser/dist/Schema-e94716c8.js +682 -0
  4. package/browser/dist/index.js +860 -27
  5. package/browser/dist/legacy-exports.js +3 -0
  6. package/browser/dist/package.json +1 -0
  7. package/browser/dist/parse-cst.js +1904 -0
  8. package/browser/dist/resolveSeq-492ab440.js +2419 -0
  9. package/browser/dist/types.js +4 -0
  10. package/browser/dist/util.js +2 -0
  11. package/browser/dist/warnings-df54cb69.js +499 -0
  12. package/browser/index.js +1 -1
  13. package/browser/map.js +2 -4
  14. package/browser/pair.js +2 -4
  15. package/browser/parse-cst.js +1 -1
  16. package/browser/scalar.js +2 -4
  17. package/browser/schema.js +7 -10
  18. package/browser/seq.js +2 -4
  19. package/browser/types/binary.js +7 -5
  20. package/browser/types/omap.js +3 -4
  21. package/browser/types/pairs.js +3 -4
  22. package/browser/types/set.js +3 -4
  23. package/browser/types/timestamp.js +9 -5
  24. package/browser/types.js +1 -13
  25. package/browser/util.js +1 -18
  26. package/dist/Document-9b4560a1.js +757 -0
  27. package/dist/PlainValue-ec8e588e.js +876 -0
  28. package/dist/Schema-88e323a7.js +525 -0
  29. package/dist/index.js +20 -84
  30. package/dist/legacy-exports.js +16 -0
  31. package/dist/parse-cst.js +1753 -0
  32. package/dist/resolveSeq-d03cb037.js +2161 -0
  33. package/dist/test-events.js +11 -9
  34. package/dist/types.js +23 -0
  35. package/dist/util.js +19 -0
  36. package/dist/warnings-1000a372.js +416 -0
  37. package/index.d.ts +23 -9
  38. package/map.js +2 -2
  39. package/package.json +27 -42
  40. package/pair.js +2 -2
  41. package/parse-cst.d.ts +4 -0
  42. package/parse-cst.js +1 -1
  43. package/scalar.js +2 -2
  44. package/schema.js +8 -6
  45. package/seq.js +2 -2
  46. package/types/binary.js +3 -2
  47. package/types/omap.js +3 -2
  48. package/types/pairs.js +3 -2
  49. package/types/set.js +3 -2
  50. package/types/timestamp.js +6 -6
  51. package/types.d.ts +113 -98
  52. package/types.js +16 -11
  53. package/types.mjs +15 -19
  54. package/util.js +14 -14
  55. package/util.mjs +13 -20
  56. package/browser/dist/Anchors.js +0 -130
  57. package/browser/dist/Document.js +0 -824
  58. package/browser/dist/addComment.js +0 -8
  59. package/browser/dist/constants.js +0 -26
  60. package/browser/dist/cst/Alias.js +0 -46
  61. package/browser/dist/cst/BlankLine.js +0 -52
  62. package/browser/dist/cst/BlockValue.js +0 -251
  63. package/browser/dist/cst/Collection.js +0 -278
  64. package/browser/dist/cst/CollectionItem.js +0 -140
  65. package/browser/dist/cst/Comment.js +0 -44
  66. package/browser/dist/cst/Directive.js +0 -76
  67. package/browser/dist/cst/Document.js +0 -286
  68. package/browser/dist/cst/FlowCollection.js +0 -220
  69. package/browser/dist/cst/Node.js +0 -386
  70. package/browser/dist/cst/ParseContext.js +0 -246
  71. package/browser/dist/cst/PlainValue.js +0 -170
  72. package/browser/dist/cst/QuoteDouble.js +0 -245
  73. package/browser/dist/cst/QuoteSingle.js +0 -120
  74. package/browser/dist/cst/Range.js +0 -64
  75. package/browser/dist/cst/parse.js +0 -48
  76. package/browser/dist/cst/source-utils.js +0 -168
  77. package/browser/dist/errors.js +0 -127
  78. package/browser/dist/foldFlowLines.js +0 -138
  79. package/browser/dist/listTagNames.js +0 -28
  80. package/browser/dist/schema/Alias.js +0 -135
  81. package/browser/dist/schema/Collection.js +0 -260
  82. package/browser/dist/schema/Map.js +0 -161
  83. package/browser/dist/schema/Merge.js +0 -118
  84. package/browser/dist/schema/Node.js +0 -4
  85. package/browser/dist/schema/Pair.js +0 -194
  86. package/browser/dist/schema/Scalar.js +0 -42
  87. package/browser/dist/schema/Seq.js +0 -116
  88. package/browser/dist/schema/index.js +0 -368
  89. package/browser/dist/schema/parseMap.js +0 -312
  90. package/browser/dist/schema/parseSeq.js +0 -168
  91. package/browser/dist/schema/parseUtils.js +0 -106
  92. package/browser/dist/stringify.js +0 -332
  93. package/browser/dist/tags/core.js +0 -141
  94. package/browser/dist/tags/failsafe/index.js +0 -4
  95. package/browser/dist/tags/failsafe/map.js +0 -53
  96. package/browser/dist/tags/failsafe/seq.js +0 -39
  97. package/browser/dist/tags/failsafe/string.js +0 -28
  98. package/browser/dist/tags/index.js +0 -36
  99. package/browser/dist/tags/json.js +0 -77
  100. package/browser/dist/tags/options.js +0 -26
  101. package/browser/dist/tags/yaml-1.1/binary.js +0 -87
  102. package/browser/dist/tags/yaml-1.1/index.js +0 -189
  103. package/browser/dist/tags/yaml-1.1/omap.js +0 -137
  104. package/browser/dist/tags/yaml-1.1/pairs.js +0 -78
  105. package/browser/dist/tags/yaml-1.1/set.js +0 -118
  106. package/browser/dist/tags/yaml-1.1/timestamp.js +0 -97
  107. package/browser/dist/test-events.js +0 -163
  108. package/browser/dist/toJSON.js +0 -19
  109. package/browser/dist/warnings.js +0 -39
  110. package/dist/Anchors.js +0 -120
  111. package/dist/Document.js +0 -714
  112. package/dist/addComment.js +0 -14
  113. package/dist/constants.js +0 -31
  114. package/dist/cst/Alias.js +0 -33
  115. package/dist/cst/BlankLine.js +0 -40
  116. package/dist/cst/BlockValue.js +0 -243
  117. package/dist/cst/Collection.js +0 -266
  118. package/dist/cst/CollectionItem.js +0 -135
  119. package/dist/cst/Comment.js +0 -33
  120. package/dist/cst/Directive.js +0 -59
  121. package/dist/cst/Document.js +0 -276
  122. package/dist/cst/FlowCollection.js +0 -213
  123. package/dist/cst/Node.js +0 -360
  124. package/dist/cst/ParseContext.js +0 -253
  125. package/dist/cst/PlainValue.js +0 -156
  126. package/dist/cst/QuoteDouble.js +0 -232
  127. package/dist/cst/QuoteSingle.js +0 -108
  128. package/dist/cst/Range.js +0 -60
  129. package/dist/cst/parse.js +0 -50
  130. package/dist/cst/source-utils.js +0 -175
  131. package/dist/errors.js +0 -97
  132. package/dist/foldFlowLines.js +0 -143
  133. package/dist/listTagNames.js +0 -33
  134. package/dist/schema/Alias.js +0 -105
  135. package/dist/schema/Collection.js +0 -184
  136. package/dist/schema/Map.js +0 -98
  137. package/dist/schema/Merge.js +0 -75
  138. package/dist/schema/Node.js +0 -7
  139. package/dist/schema/Pair.js +0 -174
  140. package/dist/schema/Scalar.js +0 -26
  141. package/dist/schema/Seq.js +0 -73
  142. package/dist/schema/index.js +0 -310
  143. package/dist/schema/parseMap.js +0 -334
  144. package/dist/schema/parseSeq.js +0 -175
  145. package/dist/schema/parseUtils.js +0 -101
  146. package/dist/stringify.js +0 -352
  147. package/dist/tags/core.js +0 -121
  148. package/dist/tags/failsafe/index.js +0 -12
  149. package/dist/tags/failsafe/map.js +0 -32
  150. package/dist/tags/failsafe/seq.js +0 -29
  151. package/dist/tags/failsafe/string.js +0 -37
  152. package/dist/tags/index.js +0 -53
  153. package/dist/tags/json.js +0 -64
  154. package/dist/tags/options.js +0 -36
  155. package/dist/tags/yaml-1.1/binary.js +0 -94
  156. package/dist/tags/yaml-1.1/index.js +0 -162
  157. package/dist/tags/yaml-1.1/omap.js +0 -100
  158. package/dist/tags/yaml-1.1/pairs.js +0 -75
  159. package/dist/tags/yaml-1.1/set.js +0 -82
  160. package/dist/tags/yaml-1.1/timestamp.js +0 -90
  161. package/dist/toJSON.js +0 -21
  162. 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;