phantom-pr 0.2.2 → 0.2.5

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 (243) hide show
  1. package/bin/phantom-pr.cjs +20 -0
  2. package/dist/cli.js +7 -0
  3. package/dist/cli.js.map +1 -1
  4. package/node_modules/ignore/LICENSE-MIT +21 -0
  5. package/node_modules/ignore/README.md +452 -0
  6. package/node_modules/ignore/index.d.ts +81 -0
  7. package/node_modules/ignore/index.js +784 -0
  8. package/node_modules/ignore/legacy.js +681 -0
  9. package/node_modules/ignore/package.json +87 -0
  10. package/node_modules/yaml/LICENSE +13 -0
  11. package/node_modules/yaml/README.md +172 -0
  12. package/node_modules/yaml/bin.mjs +11 -0
  13. package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  14. package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  15. package/node_modules/yaml/browser/dist/compose/compose-node.js +102 -0
  16. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  17. package/node_modules/yaml/browser/dist/compose/composer.js +217 -0
  18. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  19. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  20. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  21. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  22. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  23. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +223 -0
  24. package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  25. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  26. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  27. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  28. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  29. package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  30. package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  31. package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  32. package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  33. package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  34. package/node_modules/yaml/browser/dist/errors.js +57 -0
  35. package/node_modules/yaml/browser/dist/index.js +17 -0
  36. package/node_modules/yaml/browser/dist/log.js +11 -0
  37. package/node_modules/yaml/browser/dist/nodes/Alias.js +114 -0
  38. package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  39. package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  40. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  41. package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  42. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  43. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  44. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  45. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  46. package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  47. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  48. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  49. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  50. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  51. package/node_modules/yaml/browser/dist/parse/lexer.js +717 -0
  52. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  53. package/node_modules/yaml/browser/dist/parse/parser.js +967 -0
  54. package/node_modules/yaml/browser/dist/public-api.js +102 -0
  55. package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  56. package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  57. package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  58. package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  59. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  60. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  61. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  62. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  63. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  64. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  65. package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  66. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  67. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  68. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  69. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  70. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +64 -0
  71. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  72. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  73. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  74. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  75. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  76. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  77. package/node_modules/yaml/browser/dist/stringify/stringify.js +128 -0
  78. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +143 -0
  79. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  80. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  81. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +24 -0
  82. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  83. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  84. package/node_modules/yaml/browser/dist/util.js +11 -0
  85. package/node_modules/yaml/browser/dist/visit.js +233 -0
  86. package/node_modules/yaml/browser/index.js +5 -0
  87. package/node_modules/yaml/browser/package.json +3 -0
  88. package/node_modules/yaml/dist/cli.d.ts +8 -0
  89. package/node_modules/yaml/dist/cli.mjs +201 -0
  90. package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  91. package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  92. package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  93. package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  94. package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  95. package/node_modules/yaml/dist/compose/compose-node.js +105 -0
  96. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  97. package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  98. package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  99. package/node_modules/yaml/dist/compose/composer.js +222 -0
  100. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  101. package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  102. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  103. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  104. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  105. package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  106. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  107. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  108. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  109. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  110. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  111. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +225 -0
  112. package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  113. package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  114. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  115. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  116. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  117. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  118. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  119. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  120. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  121. package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  122. package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  123. package/node_modules/yaml/dist/doc/Document.js +337 -0
  124. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  125. package/node_modules/yaml/dist/doc/anchors.js +76 -0
  126. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  127. package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  128. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  129. package/node_modules/yaml/dist/doc/createNode.js +90 -0
  130. package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  131. package/node_modules/yaml/dist/doc/directives.js +178 -0
  132. package/node_modules/yaml/dist/errors.d.ts +21 -0
  133. package/node_modules/yaml/dist/errors.js +62 -0
  134. package/node_modules/yaml/dist/index.d.ts +25 -0
  135. package/node_modules/yaml/dist/index.js +50 -0
  136. package/node_modules/yaml/dist/log.d.ts +3 -0
  137. package/node_modules/yaml/dist/log.js +19 -0
  138. package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  139. package/node_modules/yaml/dist/nodes/Alias.js +116 -0
  140. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  141. package/node_modules/yaml/dist/nodes/Collection.js +151 -0
  142. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  143. package/node_modules/yaml/dist/nodes/Node.js +40 -0
  144. package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  145. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  146. package/node_modules/yaml/dist/nodes/Scalar.d.ts +43 -0
  147. package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  148. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  149. package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  150. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  151. package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  152. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  153. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  154. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  155. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  156. package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  157. package/node_modules/yaml/dist/nodes/toJS.js +39 -0
  158. package/node_modules/yaml/dist/options.d.ts +344 -0
  159. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  160. package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  161. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  162. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  163. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  164. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  165. package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  166. package/node_modules/yaml/dist/parse/cst.js +112 -0
  167. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  168. package/node_modules/yaml/dist/parse/lexer.js +719 -0
  169. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  170. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  171. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  172. package/node_modules/yaml/dist/parse/parser.js +972 -0
  173. package/node_modules/yaml/dist/public-api.d.ts +44 -0
  174. package/node_modules/yaml/dist/public-api.js +107 -0
  175. package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  176. package/node_modules/yaml/dist/schema/Schema.js +39 -0
  177. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  178. package/node_modules/yaml/dist/schema/common/map.js +19 -0
  179. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  180. package/node_modules/yaml/dist/schema/common/null.js +17 -0
  181. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  182. package/node_modules/yaml/dist/schema/common/seq.js +19 -0
  183. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  184. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  185. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  186. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  187. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  188. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  189. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  190. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  191. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  192. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  193. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  194. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  195. package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  196. package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  197. package/node_modules/yaml/dist/schema/tags.js +99 -0
  198. package/node_modules/yaml/dist/schema/types.d.ts +92 -0
  199. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  200. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  201. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  202. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  203. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  204. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  205. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  206. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  207. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  208. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +68 -0
  209. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  210. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  211. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  212. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  213. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  214. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  215. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  216. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  217. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  218. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  219. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  220. package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  221. package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  222. package/node_modules/yaml/dist/stringify/stringify.js +131 -0
  223. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  224. package/node_modules/yaml/dist/stringify/stringifyCollection.js +145 -0
  225. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  226. package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  227. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  228. package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  229. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  230. package/node_modules/yaml/dist/stringify/stringifyNumber.js +26 -0
  231. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  232. package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  233. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  234. package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  235. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  236. package/node_modules/yaml/dist/test-events.js +134 -0
  237. package/node_modules/yaml/dist/util.d.ts +16 -0
  238. package/node_modules/yaml/dist/util.js +28 -0
  239. package/node_modules/yaml/dist/visit.d.ts +102 -0
  240. package/node_modules/yaml/dist/visit.js +236 -0
  241. package/node_modules/yaml/package.json +97 -0
  242. package/node_modules/yaml/util.js +2 -0
  243. package/package.json +7 -3
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ var identity = require('../../nodes/identity.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 (identity.isSeq(seq)) {
10
+ for (let i = 0; i < seq.items.length; ++i) {
11
+ let item = seq.items[i];
12
+ if (identity.isPair(item))
13
+ continue;
14
+ else if (identity.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] = identity.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 tuple with one key, not ${keys.length} keys`);
63
+ }
64
+ }
65
+ else {
66
+ key = it;
67
+ }
68
+ pairs.items.push(Pair.createPair(key, value, ctx));
69
+ }
70
+ return pairs;
71
+ }
72
+ const pairs = {
73
+ collection: 'seq',
74
+ default: false,
75
+ tag: 'tag:yaml.org,2002:pairs',
76
+ resolve: resolvePairs,
77
+ createNode: createPairs
78
+ };
79
+
80
+ exports.createPairs = createPairs;
81
+ exports.pairs = pairs;
82
+ exports.resolvePairs = resolvePairs;
@@ -0,0 +1 @@
1
+ export declare const schema: (import('../types').CollectionTag | import('../types').ScalarTag)[];
@@ -0,0 +1,41 @@
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 merge = require('./merge.js');
12
+ var omap = require('./omap.js');
13
+ var pairs = require('./pairs.js');
14
+ var set = require('./set.js');
15
+ var timestamp = require('./timestamp.js');
16
+
17
+ const schema = [
18
+ map.map,
19
+ seq.seq,
20
+ string.string,
21
+ _null.nullTag,
22
+ bool.trueTag,
23
+ bool.falseTag,
24
+ int.intBin,
25
+ int.intOct,
26
+ int.int,
27
+ int.intHex,
28
+ float.floatNaN,
29
+ float.floatExp,
30
+ float.float,
31
+ binary.binary,
32
+ merge.merge,
33
+ omap.omap,
34
+ pairs.pairs,
35
+ set.set,
36
+ timestamp.intTime,
37
+ timestamp.floatTime,
38
+ timestamp.timestamp
39
+ ];
40
+
41
+ exports.schema = schema;
@@ -0,0 +1,28 @@
1
+ import { Pair } from '../../nodes/Pair';
2
+ import type { Scalar } from '../../nodes/Scalar';
3
+ import type { ToJSContext } from '../../nodes/toJS';
4
+ import { YAMLMap } from '../../nodes/YAMLMap';
5
+ import type { Schema } from '../../schema/Schema';
6
+ import type { StringifyContext } from '../../stringify/stringify';
7
+ import type { CreateNodeContext } from '../../util';
8
+ import type { CollectionTag } from '../types';
9
+ export declare class YAMLSet<T = unknown> extends YAMLMap<T, Scalar<null> | null> {
10
+ static tag: string;
11
+ constructor(schema?: Schema);
12
+ add(key: T | Pair<T, Scalar<null> | null> | {
13
+ key: T;
14
+ value: Scalar<null> | null;
15
+ }): void;
16
+ /**
17
+ * If `keepPair` is `true`, returns the Pair matching `key`.
18
+ * Otherwise, returns the value of that Pair's key.
19
+ */
20
+ get(key: unknown, keepPair?: boolean): any;
21
+ set(key: T, value: boolean): void;
22
+ /** @deprecated Will throw; `value` must be boolean */
23
+ set(key: T, value: null): void;
24
+ toJSON(_?: unknown, ctx?: ToJSContext): any;
25
+ toString(ctx?: StringifyContext, onComment?: () => void, onChompKeep?: () => void): string;
26
+ static from(schema: Schema, iterable: unknown, ctx: CreateNodeContext): YAMLSet;
27
+ }
28
+ export declare const set: CollectionTag;
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ var identity = require('../../nodes/identity.js');
4
+ var Pair = require('../../nodes/Pair.js');
5
+ var YAMLMap = require('../../nodes/YAMLMap.js');
6
+
7
+ class YAMLSet extends YAMLMap.YAMLMap {
8
+ constructor(schema) {
9
+ super(schema);
10
+ this.tag = YAMLSet.tag;
11
+ }
12
+ add(key) {
13
+ let pair;
14
+ if (identity.isPair(key))
15
+ pair = key;
16
+ else if (key &&
17
+ typeof key === 'object' &&
18
+ 'key' in key &&
19
+ 'value' in key &&
20
+ key.value === null)
21
+ pair = new Pair.Pair(key.key, null);
22
+ else
23
+ pair = new Pair.Pair(key, null);
24
+ const prev = YAMLMap.findPair(this.items, pair.key);
25
+ if (!prev)
26
+ this.items.push(pair);
27
+ }
28
+ /**
29
+ * If `keepPair` is `true`, returns the Pair matching `key`.
30
+ * Otherwise, returns the value of that Pair's key.
31
+ */
32
+ get(key, keepPair) {
33
+ const pair = YAMLMap.findPair(this.items, key);
34
+ return !keepPair && identity.isPair(pair)
35
+ ? identity.isScalar(pair.key)
36
+ ? pair.key.value
37
+ : pair.key
38
+ : pair;
39
+ }
40
+ set(key, value) {
41
+ if (typeof value !== 'boolean')
42
+ throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);
43
+ const prev = YAMLMap.findPair(this.items, key);
44
+ if (prev && !value) {
45
+ this.items.splice(this.items.indexOf(prev), 1);
46
+ }
47
+ else if (!prev && value) {
48
+ this.items.push(new Pair.Pair(key));
49
+ }
50
+ }
51
+ toJSON(_, ctx) {
52
+ return super.toJSON(_, ctx, Set);
53
+ }
54
+ toString(ctx, onComment, onChompKeep) {
55
+ if (!ctx)
56
+ return JSON.stringify(this);
57
+ if (this.hasAllNullValues(true))
58
+ return super.toString(Object.assign({}, ctx, { allNullValues: true }), onComment, onChompKeep);
59
+ else
60
+ throw new Error('Set items must all have null values');
61
+ }
62
+ static from(schema, iterable, ctx) {
63
+ const { replacer } = ctx;
64
+ const set = new this(schema);
65
+ if (iterable && Symbol.iterator in Object(iterable))
66
+ for (let value of iterable) {
67
+ if (typeof replacer === 'function')
68
+ value = replacer.call(iterable, value, value);
69
+ set.items.push(Pair.createPair(value, null, ctx));
70
+ }
71
+ return set;
72
+ }
73
+ }
74
+ YAMLSet.tag = 'tag:yaml.org,2002:set';
75
+ const set = {
76
+ collection: 'map',
77
+ identify: value => value instanceof Set,
78
+ nodeClass: YAMLSet,
79
+ default: false,
80
+ tag: 'tag:yaml.org,2002:set',
81
+ createNode: (schema, iterable, ctx) => YAMLSet.from(schema, iterable, ctx),
82
+ resolve(map, onError) {
83
+ if (identity.isMap(map)) {
84
+ if (map.hasAllNullValues(true))
85
+ return Object.assign(new YAMLSet(), map);
86
+ else
87
+ onError('Set items must all have null values');
88
+ }
89
+ else
90
+ onError('Expected a mapping for this tag');
91
+ return map;
92
+ }
93
+ };
94
+
95
+ exports.YAMLSet = YAMLSet;
96
+ exports.set = set;
@@ -0,0 +1,6 @@
1
+ import type { ScalarTag } from '../types';
2
+ export declare const intTime: ScalarTag;
3
+ export declare const floatTime: ScalarTag;
4
+ export declare const timestamp: ScalarTag & {
5
+ test: RegExp;
6
+ };
@@ -0,0 +1,105 @@
1
+ 'use strict';
2
+
3
+ var stringifyNumber = require('../../stringify/stringifyNumber.js');
4
+
5
+ /** Internal types handle bigint as number, because TS can't figure it out. */
6
+ function parseSexagesimal(str, asBigInt) {
7
+ const sign = str[0];
8
+ const parts = sign === '-' || sign === '+' ? str.substring(1) : str;
9
+ const num = (n) => asBigInt ? BigInt(n) : Number(n);
10
+ const res = parts
11
+ .replace(/_/g, '')
12
+ .split(':')
13
+ .reduce((res, p) => res * num(60) + num(p), num(0));
14
+ return (sign === '-' ? num(-1) * res : res);
15
+ }
16
+ /**
17
+ * hhhh:mm:ss.sss
18
+ *
19
+ * Internal types handle bigint as number, because TS can't figure it out.
20
+ */
21
+ function stringifySexagesimal(node) {
22
+ let { value } = node;
23
+ let num = (n) => n;
24
+ if (typeof value === 'bigint')
25
+ num = n => BigInt(n);
26
+ else if (isNaN(value) || !isFinite(value))
27
+ return stringifyNumber.stringifyNumber(node);
28
+ let sign = '';
29
+ if (value < 0) {
30
+ sign = '-';
31
+ value *= num(-1);
32
+ }
33
+ const _60 = num(60);
34
+ const parts = [value % _60]; // seconds, including ms
35
+ if (value < 60) {
36
+ parts.unshift(0); // at least one : is required
37
+ }
38
+ else {
39
+ value = (value - parts[0]) / _60;
40
+ parts.unshift(value % _60); // minutes
41
+ if (value >= 60) {
42
+ value = (value - parts[0]) / _60;
43
+ parts.unshift(value); // hours
44
+ }
45
+ }
46
+ return (sign +
47
+ parts
48
+ .map(n => String(n).padStart(2, '0'))
49
+ .join(':')
50
+ .replace(/000000\d*$/, '') // % 60 may introduce error
51
+ );
52
+ }
53
+ const intTime = {
54
+ identify: value => typeof value === 'bigint' || Number.isInteger(value),
55
+ default: true,
56
+ tag: 'tag:yaml.org,2002:int',
57
+ format: 'TIME',
58
+ test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,
59
+ resolve: (str, _onError, { intAsBigInt }) => parseSexagesimal(str, intAsBigInt),
60
+ stringify: stringifySexagesimal
61
+ };
62
+ const floatTime = {
63
+ identify: value => typeof value === 'number',
64
+ default: true,
65
+ tag: 'tag:yaml.org,2002:float',
66
+ format: 'TIME',
67
+ test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,
68
+ resolve: str => parseSexagesimal(str, false),
69
+ stringify: stringifySexagesimal
70
+ };
71
+ const timestamp = {
72
+ identify: value => value instanceof Date,
73
+ default: true,
74
+ tag: 'tag:yaml.org,2002:timestamp',
75
+ // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part
76
+ // may be omitted altogether, resulting in a date format. In such a case, the time part is
77
+ // assumed to be 00:00:00Z (start of day, UTC).
78
+ test: RegExp('^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd
79
+ '(?:' + // time is optional
80
+ '(?:t|T|[ \\t]+)' + // t | T | whitespace
81
+ '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?
82
+ '(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30
83
+ ')?$'),
84
+ resolve(str) {
85
+ const match = str.match(timestamp.test);
86
+ if (!match)
87
+ throw new Error('!!timestamp expects a date, starting with yyyy-mm-dd');
88
+ const [, year, month, day, hour, minute, second] = match.map(Number);
89
+ const millisec = match[7] ? Number((match[7] + '00').substr(1, 3)) : 0;
90
+ let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec);
91
+ const tz = match[8];
92
+ if (tz && tz !== 'Z') {
93
+ let d = parseSexagesimal(tz, false);
94
+ if (Math.abs(d) < 30)
95
+ d *= 60;
96
+ date -= 60000 * d;
97
+ }
98
+ return new Date(date);
99
+ },
100
+ stringify: ({ value }) => value?.toISOString().replace(/(T00:00:00)?\.000Z$/, '') ?? ''
101
+ };
102
+
103
+ exports.floatTime = floatTime;
104
+ exports.intTime = intTime;
105
+ exports.timestamp = timestamp;
@@ -0,0 +1,34 @@
1
+ export declare const FOLD_FLOW = "flow";
2
+ export declare const FOLD_BLOCK = "block";
3
+ export declare const FOLD_QUOTED = "quoted";
4
+ /**
5
+ * `'block'` prevents more-indented lines from being folded;
6
+ * `'quoted'` allows for `\` escapes, including escaped newlines
7
+ */
8
+ export type FoldMode = 'flow' | 'block' | 'quoted';
9
+ export interface FoldOptions {
10
+ /**
11
+ * Accounts for leading contents on the first line, defaulting to
12
+ * `indent.length`
13
+ */
14
+ indentAtStart?: number;
15
+ /** Default: `80` */
16
+ lineWidth?: number;
17
+ /**
18
+ * Allow highly indented lines to stretch the line width or indent content
19
+ * from the start.
20
+ *
21
+ * Default: `20`
22
+ */
23
+ minContentWidth?: number;
24
+ /** Called once if the text is folded */
25
+ onFold?: () => void;
26
+ /** Called once if any line of text exceeds lineWidth characters */
27
+ onOverflow?: () => void;
28
+ }
29
+ /**
30
+ * Tries to keep input at up to `lineWidth` characters, splitting only on spaces
31
+ * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are
32
+ * terminated with `\n` and started with `indent`.
33
+ */
34
+ export declare function foldFlowLines(text: string, indent: string, mode?: FoldMode, { indentAtStart, lineWidth, minContentWidth, onFold, onOverflow }?: FoldOptions): string;
@@ -0,0 +1,151 @@
1
+ 'use strict';
2
+
3
+ const FOLD_FLOW = 'flow';
4
+ const FOLD_BLOCK = 'block';
5
+ const FOLD_QUOTED = 'quoted';
6
+ /**
7
+ * Tries to keep input at up to `lineWidth` characters, splitting only on spaces
8
+ * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are
9
+ * terminated with `\n` and started with `indent`.
10
+ */
11
+ function foldFlowLines(text, indent, mode = 'flow', { indentAtStart, lineWidth = 80, minContentWidth = 20, onFold, onOverflow } = {}) {
12
+ if (!lineWidth || lineWidth < 0)
13
+ return text;
14
+ if (lineWidth < minContentWidth)
15
+ minContentWidth = 0;
16
+ const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);
17
+ if (text.length <= endStep)
18
+ return text;
19
+ const folds = [];
20
+ const escapedFolds = {};
21
+ let end = lineWidth - indent.length;
22
+ if (typeof indentAtStart === 'number') {
23
+ if (indentAtStart > lineWidth - Math.max(2, minContentWidth))
24
+ folds.push(0);
25
+ else
26
+ end = lineWidth - indentAtStart;
27
+ }
28
+ let split = undefined;
29
+ let prev = undefined;
30
+ let overflow = false;
31
+ let i = -1;
32
+ let escStart = -1;
33
+ let escEnd = -1;
34
+ if (mode === FOLD_BLOCK) {
35
+ i = consumeMoreIndentedLines(text, i, indent.length);
36
+ if (i !== -1)
37
+ end = i + endStep;
38
+ }
39
+ for (let ch; (ch = text[(i += 1)]);) {
40
+ if (mode === FOLD_QUOTED && ch === '\\') {
41
+ escStart = i;
42
+ switch (text[i + 1]) {
43
+ case 'x':
44
+ i += 3;
45
+ break;
46
+ case 'u':
47
+ i += 5;
48
+ break;
49
+ case 'U':
50
+ i += 9;
51
+ break;
52
+ default:
53
+ i += 1;
54
+ }
55
+ escEnd = i;
56
+ }
57
+ if (ch === '\n') {
58
+ if (mode === FOLD_BLOCK)
59
+ i = consumeMoreIndentedLines(text, i, indent.length);
60
+ end = i + indent.length + endStep;
61
+ split = undefined;
62
+ }
63
+ else {
64
+ if (ch === ' ' &&
65
+ prev &&
66
+ prev !== ' ' &&
67
+ prev !== '\n' &&
68
+ prev !== '\t') {
69
+ // space surrounded by non-space can be replaced with newline + indent
70
+ const next = text[i + 1];
71
+ if (next && next !== ' ' && next !== '\n' && next !== '\t')
72
+ split = i;
73
+ }
74
+ if (i >= end) {
75
+ if (split) {
76
+ folds.push(split);
77
+ end = split + endStep;
78
+ split = undefined;
79
+ }
80
+ else if (mode === FOLD_QUOTED) {
81
+ // white-space collected at end may stretch past lineWidth
82
+ while (prev === ' ' || prev === '\t') {
83
+ prev = ch;
84
+ ch = text[(i += 1)];
85
+ overflow = true;
86
+ }
87
+ // Account for newline escape, but don't break preceding escape
88
+ const j = i > escEnd + 1 ? i - 2 : escStart - 1;
89
+ // Bail out if lineWidth & minContentWidth are shorter than an escape string
90
+ if (escapedFolds[j])
91
+ return text;
92
+ folds.push(j);
93
+ escapedFolds[j] = true;
94
+ end = j + endStep;
95
+ split = undefined;
96
+ }
97
+ else {
98
+ overflow = true;
99
+ }
100
+ }
101
+ }
102
+ prev = ch;
103
+ }
104
+ if (overflow && onOverflow)
105
+ onOverflow();
106
+ if (folds.length === 0)
107
+ return text;
108
+ if (onFold)
109
+ onFold();
110
+ let res = text.slice(0, folds[0]);
111
+ for (let i = 0; i < folds.length; ++i) {
112
+ const fold = folds[i];
113
+ const end = folds[i + 1] || text.length;
114
+ if (fold === 0)
115
+ res = `\n${indent}${text.slice(0, end)}`;
116
+ else {
117
+ if (mode === FOLD_QUOTED && escapedFolds[fold])
118
+ res += `${text[fold]}\\`;
119
+ res += `\n${indent}${text.slice(fold + 1, end)}`;
120
+ }
121
+ }
122
+ return res;
123
+ }
124
+ /**
125
+ * Presumes `i + 1` is at the start of a line
126
+ * @returns index of last newline in more-indented block
127
+ */
128
+ function consumeMoreIndentedLines(text, i, indent) {
129
+ let end = i;
130
+ let start = i + 1;
131
+ let ch = text[start];
132
+ while (ch === ' ' || ch === '\t') {
133
+ if (i < start + indent) {
134
+ ch = text[++i];
135
+ }
136
+ else {
137
+ do {
138
+ ch = text[++i];
139
+ } while (ch && ch !== '\n');
140
+ end = i;
141
+ start = i + 1;
142
+ ch = text[start];
143
+ }
144
+ }
145
+ return end;
146
+ }
147
+
148
+ exports.FOLD_BLOCK = FOLD_BLOCK;
149
+ exports.FOLD_FLOW = FOLD_FLOW;
150
+ exports.FOLD_QUOTED = FOLD_QUOTED;
151
+ exports.foldFlowLines = foldFlowLines;
@@ -0,0 +1,21 @@
1
+ import type { Document } from '../doc/Document';
2
+ import type { Alias } from '../nodes/Alias';
3
+ import type { ToStringOptions } from '../options';
4
+ export type StringifyContext = {
5
+ actualString?: boolean;
6
+ allNullValues?: boolean;
7
+ anchors: Set<string>;
8
+ doc: Document;
9
+ forceBlockIndent?: boolean;
10
+ implicitKey?: boolean;
11
+ indent: string;
12
+ indentStep: string;
13
+ indentAtStart?: number;
14
+ inFlow: boolean | null;
15
+ inStringifyKey?: boolean;
16
+ flowCollectionPadding: string;
17
+ options: Readonly<Required<Omit<ToStringOptions, 'collectionStyle' | 'indent'>>>;
18
+ resolvedAliases?: Set<Alias>;
19
+ };
20
+ export declare function createStringifyContext(doc: Document, options: ToStringOptions): StringifyContext;
21
+ export declare function stringify(item: unknown, ctx: StringifyContext, onComment?: () => void, onChompKeep?: () => void): string;