phantom-pr 0.2.5 → 0.2.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 (242) hide show
  1. package/dist/core/index/indexer.js +3 -1
  2. package/dist/core/index/indexer.js.map +1 -1
  3. package/package.json +3 -7
  4. package/node_modules/ignore/LICENSE-MIT +0 -21
  5. package/node_modules/ignore/README.md +0 -452
  6. package/node_modules/ignore/index.d.ts +0 -81
  7. package/node_modules/ignore/index.js +0 -784
  8. package/node_modules/ignore/legacy.js +0 -681
  9. package/node_modules/ignore/package.json +0 -87
  10. package/node_modules/yaml/LICENSE +0 -13
  11. package/node_modules/yaml/README.md +0 -172
  12. package/node_modules/yaml/bin.mjs +0 -11
  13. package/node_modules/yaml/browser/dist/compose/compose-collection.js +0 -88
  14. package/node_modules/yaml/browser/dist/compose/compose-doc.js +0 -43
  15. package/node_modules/yaml/browser/dist/compose/compose-node.js +0 -102
  16. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +0 -86
  17. package/node_modules/yaml/browser/dist/compose/composer.js +0 -217
  18. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +0 -115
  19. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +0 -198
  20. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +0 -49
  21. package/node_modules/yaml/browser/dist/compose/resolve-end.js +0 -37
  22. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +0 -207
  23. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +0 -223
  24. package/node_modules/yaml/browser/dist/compose/resolve-props.js +0 -146
  25. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +0 -34
  26. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +0 -26
  27. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +0 -15
  28. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +0 -13
  29. package/node_modules/yaml/browser/dist/doc/Document.js +0 -335
  30. package/node_modules/yaml/browser/dist/doc/anchors.js +0 -71
  31. package/node_modules/yaml/browser/dist/doc/applyReviver.js +0 -55
  32. package/node_modules/yaml/browser/dist/doc/createNode.js +0 -88
  33. package/node_modules/yaml/browser/dist/doc/directives.js +0 -176
  34. package/node_modules/yaml/browser/dist/errors.js +0 -57
  35. package/node_modules/yaml/browser/dist/index.js +0 -17
  36. package/node_modules/yaml/browser/dist/log.js +0 -11
  37. package/node_modules/yaml/browser/dist/nodes/Alias.js +0 -114
  38. package/node_modules/yaml/browser/dist/nodes/Collection.js +0 -147
  39. package/node_modules/yaml/browser/dist/nodes/Node.js +0 -38
  40. package/node_modules/yaml/browser/dist/nodes/Pair.js +0 -36
  41. package/node_modules/yaml/browser/dist/nodes/Scalar.js +0 -24
  42. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +0 -144
  43. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +0 -113
  44. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +0 -63
  45. package/node_modules/yaml/browser/dist/nodes/identity.js +0 -36
  46. package/node_modules/yaml/browser/dist/nodes/toJS.js +0 -37
  47. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +0 -214
  48. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +0 -61
  49. package/node_modules/yaml/browser/dist/parse/cst-visit.js +0 -97
  50. package/node_modules/yaml/browser/dist/parse/cst.js +0 -98
  51. package/node_modules/yaml/browser/dist/parse/lexer.js +0 -717
  52. package/node_modules/yaml/browser/dist/parse/line-counter.js +0 -39
  53. package/node_modules/yaml/browser/dist/parse/parser.js +0 -967
  54. package/node_modules/yaml/browser/dist/public-api.js +0 -102
  55. package/node_modules/yaml/browser/dist/schema/Schema.js +0 -37
  56. package/node_modules/yaml/browser/dist/schema/common/map.js +0 -17
  57. package/node_modules/yaml/browser/dist/schema/common/null.js +0 -15
  58. package/node_modules/yaml/browser/dist/schema/common/seq.js +0 -17
  59. package/node_modules/yaml/browser/dist/schema/common/string.js +0 -14
  60. package/node_modules/yaml/browser/dist/schema/core/bool.js +0 -19
  61. package/node_modules/yaml/browser/dist/schema/core/float.js +0 -43
  62. package/node_modules/yaml/browser/dist/schema/core/int.js +0 -38
  63. package/node_modules/yaml/browser/dist/schema/core/schema.js +0 -23
  64. package/node_modules/yaml/browser/dist/schema/json/schema.js +0 -62
  65. package/node_modules/yaml/browser/dist/schema/tags.js +0 -96
  66. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +0 -58
  67. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +0 -26
  68. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +0 -46
  69. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +0 -71
  70. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +0 -64
  71. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +0 -74
  72. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +0 -78
  73. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +0 -39
  74. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +0 -93
  75. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +0 -101
  76. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +0 -146
  77. package/node_modules/yaml/browser/dist/stringify/stringify.js +0 -128
  78. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +0 -143
  79. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +0 -20
  80. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +0 -85
  81. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +0 -24
  82. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +0 -150
  83. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +0 -336
  84. package/node_modules/yaml/browser/dist/util.js +0 -11
  85. package/node_modules/yaml/browser/dist/visit.js +0 -233
  86. package/node_modules/yaml/browser/index.js +0 -5
  87. package/node_modules/yaml/browser/package.json +0 -3
  88. package/node_modules/yaml/dist/cli.d.ts +0 -8
  89. package/node_modules/yaml/dist/cli.mjs +0 -201
  90. package/node_modules/yaml/dist/compose/compose-collection.d.ts +0 -11
  91. package/node_modules/yaml/dist/compose/compose-collection.js +0 -90
  92. package/node_modules/yaml/dist/compose/compose-doc.d.ts +0 -7
  93. package/node_modules/yaml/dist/compose/compose-doc.js +0 -45
  94. package/node_modules/yaml/dist/compose/compose-node.d.ts +0 -29
  95. package/node_modules/yaml/dist/compose/compose-node.js +0 -105
  96. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +0 -5
  97. package/node_modules/yaml/dist/compose/compose-scalar.js +0 -88
  98. package/node_modules/yaml/dist/compose/composer.d.ts +0 -63
  99. package/node_modules/yaml/dist/compose/composer.js +0 -222
  100. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +0 -6
  101. package/node_modules/yaml/dist/compose/resolve-block-map.js +0 -117
  102. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +0 -11
  103. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +0 -200
  104. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +0 -6
  105. package/node_modules/yaml/dist/compose/resolve-block-seq.js +0 -51
  106. package/node_modules/yaml/dist/compose/resolve-end.d.ts +0 -6
  107. package/node_modules/yaml/dist/compose/resolve-end.js +0 -39
  108. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +0 -7
  109. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +0 -209
  110. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +0 -10
  111. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +0 -225
  112. package/node_modules/yaml/dist/compose/resolve-props.d.ts +0 -23
  113. package/node_modules/yaml/dist/compose/resolve-props.js +0 -148
  114. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +0 -2
  115. package/node_modules/yaml/dist/compose/util-contains-newline.js +0 -36
  116. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +0 -2
  117. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +0 -28
  118. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +0 -3
  119. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +0 -17
  120. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +0 -4
  121. package/node_modules/yaml/dist/compose/util-map-includes.js +0 -15
  122. package/node_modules/yaml/dist/doc/Document.d.ts +0 -141
  123. package/node_modules/yaml/dist/doc/Document.js +0 -337
  124. package/node_modules/yaml/dist/doc/anchors.d.ts +0 -24
  125. package/node_modules/yaml/dist/doc/anchors.js +0 -76
  126. package/node_modules/yaml/dist/doc/applyReviver.d.ts +0 -9
  127. package/node_modules/yaml/dist/doc/applyReviver.js +0 -57
  128. package/node_modules/yaml/dist/doc/createNode.d.ts +0 -17
  129. package/node_modules/yaml/dist/doc/createNode.js +0 -90
  130. package/node_modules/yaml/dist/doc/directives.d.ts +0 -49
  131. package/node_modules/yaml/dist/doc/directives.js +0 -178
  132. package/node_modules/yaml/dist/errors.d.ts +0 -21
  133. package/node_modules/yaml/dist/errors.js +0 -62
  134. package/node_modules/yaml/dist/index.d.ts +0 -25
  135. package/node_modules/yaml/dist/index.js +0 -50
  136. package/node_modules/yaml/dist/log.d.ts +0 -3
  137. package/node_modules/yaml/dist/log.js +0 -19
  138. package/node_modules/yaml/dist/nodes/Alias.d.ts +0 -29
  139. package/node_modules/yaml/dist/nodes/Alias.js +0 -116
  140. package/node_modules/yaml/dist/nodes/Collection.d.ts +0 -73
  141. package/node_modules/yaml/dist/nodes/Collection.js +0 -151
  142. package/node_modules/yaml/dist/nodes/Node.d.ts +0 -53
  143. package/node_modules/yaml/dist/nodes/Node.js +0 -40
  144. package/node_modules/yaml/dist/nodes/Pair.d.ts +0 -22
  145. package/node_modules/yaml/dist/nodes/Pair.js +0 -39
  146. package/node_modules/yaml/dist/nodes/Scalar.d.ts +0 -43
  147. package/node_modules/yaml/dist/nodes/Scalar.js +0 -27
  148. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +0 -53
  149. package/node_modules/yaml/dist/nodes/YAMLMap.js +0 -147
  150. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +0 -60
  151. package/node_modules/yaml/dist/nodes/YAMLSeq.js +0 -115
  152. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +0 -4
  153. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +0 -65
  154. package/node_modules/yaml/dist/nodes/identity.d.ts +0 -23
  155. package/node_modules/yaml/dist/nodes/identity.js +0 -53
  156. package/node_modules/yaml/dist/nodes/toJS.d.ts +0 -29
  157. package/node_modules/yaml/dist/nodes/toJS.js +0 -39
  158. package/node_modules/yaml/dist/options.d.ts +0 -344
  159. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +0 -64
  160. package/node_modules/yaml/dist/parse/cst-scalar.js +0 -218
  161. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +0 -8
  162. package/node_modules/yaml/dist/parse/cst-stringify.js +0 -63
  163. package/node_modules/yaml/dist/parse/cst-visit.d.ts +0 -39
  164. package/node_modules/yaml/dist/parse/cst-visit.js +0 -99
  165. package/node_modules/yaml/dist/parse/cst.d.ts +0 -109
  166. package/node_modules/yaml/dist/parse/cst.js +0 -112
  167. package/node_modules/yaml/dist/parse/lexer.d.ts +0 -87
  168. package/node_modules/yaml/dist/parse/lexer.js +0 -719
  169. package/node_modules/yaml/dist/parse/line-counter.d.ts +0 -22
  170. package/node_modules/yaml/dist/parse/line-counter.js +0 -41
  171. package/node_modules/yaml/dist/parse/parser.d.ts +0 -84
  172. package/node_modules/yaml/dist/parse/parser.js +0 -972
  173. package/node_modules/yaml/dist/public-api.d.ts +0 -44
  174. package/node_modules/yaml/dist/public-api.js +0 -107
  175. package/node_modules/yaml/dist/schema/Schema.d.ts +0 -17
  176. package/node_modules/yaml/dist/schema/Schema.js +0 -39
  177. package/node_modules/yaml/dist/schema/common/map.d.ts +0 -2
  178. package/node_modules/yaml/dist/schema/common/map.js +0 -19
  179. package/node_modules/yaml/dist/schema/common/null.d.ts +0 -4
  180. package/node_modules/yaml/dist/schema/common/null.js +0 -17
  181. package/node_modules/yaml/dist/schema/common/seq.d.ts +0 -2
  182. package/node_modules/yaml/dist/schema/common/seq.js +0 -19
  183. package/node_modules/yaml/dist/schema/common/string.d.ts +0 -2
  184. package/node_modules/yaml/dist/schema/common/string.js +0 -16
  185. package/node_modules/yaml/dist/schema/core/bool.d.ts +0 -4
  186. package/node_modules/yaml/dist/schema/core/bool.js +0 -21
  187. package/node_modules/yaml/dist/schema/core/float.d.ts +0 -4
  188. package/node_modules/yaml/dist/schema/core/float.js +0 -47
  189. package/node_modules/yaml/dist/schema/core/int.d.ts +0 -4
  190. package/node_modules/yaml/dist/schema/core/int.js +0 -42
  191. package/node_modules/yaml/dist/schema/core/schema.d.ts +0 -1
  192. package/node_modules/yaml/dist/schema/core/schema.js +0 -25
  193. package/node_modules/yaml/dist/schema/json/schema.d.ts +0 -2
  194. package/node_modules/yaml/dist/schema/json/schema.js +0 -64
  195. package/node_modules/yaml/dist/schema/json-schema.d.ts +0 -69
  196. package/node_modules/yaml/dist/schema/tags.d.ts +0 -48
  197. package/node_modules/yaml/dist/schema/tags.js +0 -99
  198. package/node_modules/yaml/dist/schema/types.d.ts +0 -92
  199. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +0 -2
  200. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +0 -70
  201. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +0 -7
  202. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +0 -29
  203. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +0 -4
  204. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +0 -50
  205. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +0 -5
  206. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +0 -76
  207. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +0 -9
  208. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +0 -68
  209. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +0 -22
  210. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +0 -77
  211. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +0 -10
  212. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +0 -82
  213. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +0 -1
  214. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +0 -41
  215. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +0 -28
  216. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +0 -96
  217. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +0 -6
  218. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +0 -105
  219. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +0 -34
  220. package/node_modules/yaml/dist/stringify/foldFlowLines.js +0 -151
  221. package/node_modules/yaml/dist/stringify/stringify.d.ts +0 -21
  222. package/node_modules/yaml/dist/stringify/stringify.js +0 -131
  223. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +0 -17
  224. package/node_modules/yaml/dist/stringify/stringifyCollection.js +0 -145
  225. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +0 -10
  226. package/node_modules/yaml/dist/stringify/stringifyComment.js +0 -24
  227. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +0 -4
  228. package/node_modules/yaml/dist/stringify/stringifyDocument.js +0 -87
  229. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +0 -2
  230. package/node_modules/yaml/dist/stringify/stringifyNumber.js +0 -26
  231. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +0 -3
  232. package/node_modules/yaml/dist/stringify/stringifyPair.js +0 -152
  233. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +0 -9
  234. package/node_modules/yaml/dist/stringify/stringifyString.js +0 -338
  235. package/node_modules/yaml/dist/test-events.d.ts +0 -4
  236. package/node_modules/yaml/dist/test-events.js +0 -134
  237. package/node_modules/yaml/dist/util.d.ts +0 -16
  238. package/node_modules/yaml/dist/util.js +0 -28
  239. package/node_modules/yaml/dist/visit.d.ts +0 -102
  240. package/node_modules/yaml/dist/visit.js +0 -236
  241. package/node_modules/yaml/package.json +0 -97
  242. package/node_modules/yaml/util.js +0 -2
@@ -1,128 +0,0 @@
1
- import { anchorIsValid } from '../doc/anchors.js';
2
- import { isPair, isAlias, isNode, isScalar, isCollection } from '../nodes/identity.js';
3
- import { stringifyComment } from './stringifyComment.js';
4
- import { stringifyString } from './stringifyString.js';
5
-
6
- function createStringifyContext(doc, options) {
7
- const opt = Object.assign({
8
- blockQuote: true,
9
- commentString: stringifyComment,
10
- defaultKeyType: null,
11
- defaultStringType: 'PLAIN',
12
- directives: null,
13
- doubleQuotedAsJSON: false,
14
- doubleQuotedMinMultiLineLength: 40,
15
- falseStr: 'false',
16
- flowCollectionPadding: true,
17
- indentSeq: true,
18
- lineWidth: 80,
19
- minContentWidth: 20,
20
- nullStr: 'null',
21
- simpleKeys: false,
22
- singleQuote: null,
23
- trueStr: 'true',
24
- verifyAliasOrder: true
25
- }, doc.schema.toStringOptions, options);
26
- let inFlow;
27
- switch (opt.collectionStyle) {
28
- case 'block':
29
- inFlow = false;
30
- break;
31
- case 'flow':
32
- inFlow = true;
33
- break;
34
- default:
35
- inFlow = null;
36
- }
37
- return {
38
- anchors: new Set(),
39
- doc,
40
- flowCollectionPadding: opt.flowCollectionPadding ? ' ' : '',
41
- indent: '',
42
- indentStep: typeof opt.indent === 'number' ? ' '.repeat(opt.indent) : ' ',
43
- inFlow,
44
- options: opt
45
- };
46
- }
47
- function getTagObject(tags, item) {
48
- if (item.tag) {
49
- const match = tags.filter(t => t.tag === item.tag);
50
- if (match.length > 0)
51
- return match.find(t => t.format === item.format) ?? match[0];
52
- }
53
- let tagObj = undefined;
54
- let obj;
55
- if (isScalar(item)) {
56
- obj = item.value;
57
- let match = tags.filter(t => t.identify?.(obj));
58
- if (match.length > 1) {
59
- const testMatch = match.filter(t => t.test);
60
- if (testMatch.length > 0)
61
- match = testMatch;
62
- }
63
- tagObj =
64
- match.find(t => t.format === item.format) ?? match.find(t => !t.format);
65
- }
66
- else {
67
- obj = item;
68
- tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);
69
- }
70
- if (!tagObj) {
71
- const name = obj?.constructor?.name ?? (obj === null ? 'null' : typeof obj);
72
- throw new Error(`Tag not resolved for ${name} value`);
73
- }
74
- return tagObj;
75
- }
76
- // needs to be called before value stringifier to allow for circular anchor refs
77
- function stringifyProps(node, tagObj, { anchors, doc }) {
78
- if (!doc.directives)
79
- return '';
80
- const props = [];
81
- const anchor = (isScalar(node) || isCollection(node)) && node.anchor;
82
- if (anchor && anchorIsValid(anchor)) {
83
- anchors.add(anchor);
84
- props.push(`&${anchor}`);
85
- }
86
- const tag = node.tag ?? (tagObj.default ? null : tagObj.tag);
87
- if (tag)
88
- props.push(doc.directives.tagString(tag));
89
- return props.join(' ');
90
- }
91
- function stringify(item, ctx, onComment, onChompKeep) {
92
- if (isPair(item))
93
- return item.toString(ctx, onComment, onChompKeep);
94
- if (isAlias(item)) {
95
- if (ctx.doc.directives)
96
- return item.toString(ctx);
97
- if (ctx.resolvedAliases?.has(item)) {
98
- throw new TypeError(`Cannot stringify circular structure without alias nodes`);
99
- }
100
- else {
101
- if (ctx.resolvedAliases)
102
- ctx.resolvedAliases.add(item);
103
- else
104
- ctx.resolvedAliases = new Set([item]);
105
- item = item.resolve(ctx.doc);
106
- }
107
- }
108
- let tagObj = undefined;
109
- const node = isNode(item)
110
- ? item
111
- : ctx.doc.createNode(item, { onTagObj: o => (tagObj = o) });
112
- tagObj ?? (tagObj = getTagObject(ctx.doc.schema.tags, node));
113
- const props = stringifyProps(node, tagObj, ctx);
114
- if (props.length > 0)
115
- ctx.indentAtStart = (ctx.indentAtStart ?? 0) + props.length + 1;
116
- const str = typeof tagObj.stringify === 'function'
117
- ? tagObj.stringify(node, ctx, onComment, onChompKeep)
118
- : isScalar(node)
119
- ? stringifyString(node, ctx, onComment, onChompKeep)
120
- : node.toString(ctx, onComment, onChompKeep);
121
- if (!props)
122
- return str;
123
- return isScalar(node) || str[0] === '{' || str[0] === '['
124
- ? `${props} ${str}`
125
- : `${props}\n${ctx.indent}${str}`;
126
- }
127
-
128
- export { createStringifyContext, stringify };
@@ -1,143 +0,0 @@
1
- import { isNode, isPair } from '../nodes/identity.js';
2
- import { stringify } from './stringify.js';
3
- import { lineComment, indentComment } from './stringifyComment.js';
4
-
5
- function stringifyCollection(collection, ctx, options) {
6
- const flow = ctx.inFlow ?? collection.flow;
7
- const stringify = flow ? stringifyFlowCollection : stringifyBlockCollection;
8
- return stringify(collection, ctx, options);
9
- }
10
- function stringifyBlockCollection({ comment, items }, ctx, { blockItemPrefix, flowChars, itemIndent, onChompKeep, onComment }) {
11
- const { indent, options: { commentString } } = ctx;
12
- const itemCtx = Object.assign({}, ctx, { indent: itemIndent, type: null });
13
- let chompKeep = false; // flag for the preceding node's status
14
- const lines = [];
15
- for (let i = 0; i < items.length; ++i) {
16
- const item = items[i];
17
- let comment = null;
18
- if (isNode(item)) {
19
- if (!chompKeep && item.spaceBefore)
20
- lines.push('');
21
- addCommentBefore(ctx, lines, item.commentBefore, chompKeep);
22
- if (item.comment)
23
- comment = item.comment;
24
- }
25
- else if (isPair(item)) {
26
- const ik = isNode(item.key) ? item.key : null;
27
- if (ik) {
28
- if (!chompKeep && ik.spaceBefore)
29
- lines.push('');
30
- addCommentBefore(ctx, lines, ik.commentBefore, chompKeep);
31
- }
32
- }
33
- chompKeep = false;
34
- let str = stringify(item, itemCtx, () => (comment = null), () => (chompKeep = true));
35
- if (comment)
36
- str += lineComment(str, itemIndent, commentString(comment));
37
- if (chompKeep && comment)
38
- chompKeep = false;
39
- lines.push(blockItemPrefix + str);
40
- }
41
- let str;
42
- if (lines.length === 0) {
43
- str = flowChars.start + flowChars.end;
44
- }
45
- else {
46
- str = lines[0];
47
- for (let i = 1; i < lines.length; ++i) {
48
- const line = lines[i];
49
- str += line ? `\n${indent}${line}` : '\n';
50
- }
51
- }
52
- if (comment) {
53
- str += '\n' + indentComment(commentString(comment), indent);
54
- if (onComment)
55
- onComment();
56
- }
57
- else if (chompKeep && onChompKeep)
58
- onChompKeep();
59
- return str;
60
- }
61
- function stringifyFlowCollection({ items }, ctx, { flowChars, itemIndent }) {
62
- const { indent, indentStep, flowCollectionPadding: fcPadding, options: { commentString } } = ctx;
63
- itemIndent += indentStep;
64
- const itemCtx = Object.assign({}, ctx, {
65
- indent: itemIndent,
66
- inFlow: true,
67
- type: null
68
- });
69
- let reqNewline = false;
70
- let linesAtValue = 0;
71
- const lines = [];
72
- for (let i = 0; i < items.length; ++i) {
73
- const item = items[i];
74
- let comment = null;
75
- if (isNode(item)) {
76
- if (item.spaceBefore)
77
- lines.push('');
78
- addCommentBefore(ctx, lines, item.commentBefore, false);
79
- if (item.comment)
80
- comment = item.comment;
81
- }
82
- else if (isPair(item)) {
83
- const ik = isNode(item.key) ? item.key : null;
84
- if (ik) {
85
- if (ik.spaceBefore)
86
- lines.push('');
87
- addCommentBefore(ctx, lines, ik.commentBefore, false);
88
- if (ik.comment)
89
- reqNewline = true;
90
- }
91
- const iv = isNode(item.value) ? item.value : null;
92
- if (iv) {
93
- if (iv.comment)
94
- comment = iv.comment;
95
- if (iv.commentBefore)
96
- reqNewline = true;
97
- }
98
- else if (item.value == null && ik?.comment) {
99
- comment = ik.comment;
100
- }
101
- }
102
- if (comment)
103
- reqNewline = true;
104
- let str = stringify(item, itemCtx, () => (comment = null));
105
- if (i < items.length - 1)
106
- str += ',';
107
- if (comment)
108
- str += lineComment(str, itemIndent, commentString(comment));
109
- if (!reqNewline && (lines.length > linesAtValue || str.includes('\n')))
110
- reqNewline = true;
111
- lines.push(str);
112
- linesAtValue = lines.length;
113
- }
114
- const { start, end } = flowChars;
115
- if (lines.length === 0) {
116
- return start + end;
117
- }
118
- else {
119
- if (!reqNewline) {
120
- const len = lines.reduce((sum, line) => sum + line.length + 2, 2);
121
- reqNewline = ctx.options.lineWidth > 0 && len > ctx.options.lineWidth;
122
- }
123
- if (reqNewline) {
124
- let str = start;
125
- for (const line of lines)
126
- str += line ? `\n${indentStep}${indent}${line}` : '\n';
127
- return `${str}\n${indent}${end}`;
128
- }
129
- else {
130
- return `${start}${fcPadding}${lines.join(' ')}${fcPadding}${end}`;
131
- }
132
- }
133
- }
134
- function addCommentBefore({ indent, options: { commentString } }, lines, comment, chompKeep) {
135
- if (comment && chompKeep)
136
- comment = comment.replace(/^\n+/, '');
137
- if (comment) {
138
- const ic = indentComment(commentString(comment), indent);
139
- lines.push(ic.trimStart()); // Avoid double indent on first line
140
- }
141
- }
142
-
143
- export { stringifyCollection };
@@ -1,20 +0,0 @@
1
- /**
2
- * Stringifies a comment.
3
- *
4
- * Empty comment lines are left empty,
5
- * lines consisting of a single space are replaced by `#`,
6
- * and all other lines are prefixed with a `#`.
7
- */
8
- const stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, '#');
9
- function indentComment(comment, indent) {
10
- if (/^\n+$/.test(comment))
11
- return comment.substring(1);
12
- return indent ? comment.replace(/^(?! *$)/gm, indent) : comment;
13
- }
14
- const lineComment = (str, indent, comment) => str.endsWith('\n')
15
- ? indentComment(comment, indent)
16
- : comment.includes('\n')
17
- ? '\n' + indentComment(comment, indent)
18
- : (str.endsWith(' ') ? '' : ' ') + comment;
19
-
20
- export { indentComment, lineComment, stringifyComment };
@@ -1,85 +0,0 @@
1
- import { isNode } from '../nodes/identity.js';
2
- import { createStringifyContext, stringify } from './stringify.js';
3
- import { indentComment, lineComment } from './stringifyComment.js';
4
-
5
- function stringifyDocument(doc, options) {
6
- const lines = [];
7
- let hasDirectives = options.directives === true;
8
- if (options.directives !== false && doc.directives) {
9
- const dir = doc.directives.toString(doc);
10
- if (dir) {
11
- lines.push(dir);
12
- hasDirectives = true;
13
- }
14
- else if (doc.directives.docStart)
15
- hasDirectives = true;
16
- }
17
- if (hasDirectives)
18
- lines.push('---');
19
- const ctx = createStringifyContext(doc, options);
20
- const { commentString } = ctx.options;
21
- if (doc.commentBefore) {
22
- if (lines.length !== 1)
23
- lines.unshift('');
24
- const cs = commentString(doc.commentBefore);
25
- lines.unshift(indentComment(cs, ''));
26
- }
27
- let chompKeep = false;
28
- let contentComment = null;
29
- if (doc.contents) {
30
- if (isNode(doc.contents)) {
31
- if (doc.contents.spaceBefore && hasDirectives)
32
- lines.push('');
33
- if (doc.contents.commentBefore) {
34
- const cs = commentString(doc.contents.commentBefore);
35
- lines.push(indentComment(cs, ''));
36
- }
37
- // top-level block scalars need to be indented if followed by a comment
38
- ctx.forceBlockIndent = !!doc.comment;
39
- contentComment = doc.contents.comment;
40
- }
41
- const onChompKeep = contentComment ? undefined : () => (chompKeep = true);
42
- let body = stringify(doc.contents, ctx, () => (contentComment = null), onChompKeep);
43
- if (contentComment)
44
- body += lineComment(body, '', commentString(contentComment));
45
- if ((body[0] === '|' || body[0] === '>') &&
46
- lines[lines.length - 1] === '---') {
47
- // Top-level block scalars with a preceding doc marker ought to use the
48
- // same line for their header.
49
- lines[lines.length - 1] = `--- ${body}`;
50
- }
51
- else
52
- lines.push(body);
53
- }
54
- else {
55
- lines.push(stringify(doc.contents, ctx));
56
- }
57
- if (doc.directives?.docEnd) {
58
- if (doc.comment) {
59
- const cs = commentString(doc.comment);
60
- if (cs.includes('\n')) {
61
- lines.push('...');
62
- lines.push(indentComment(cs, ''));
63
- }
64
- else {
65
- lines.push(`... ${cs}`);
66
- }
67
- }
68
- else {
69
- lines.push('...');
70
- }
71
- }
72
- else {
73
- let dc = doc.comment;
74
- if (dc && chompKeep)
75
- dc = dc.replace(/^\n+/, '');
76
- if (dc) {
77
- if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '')
78
- lines.push('');
79
- lines.push(indentComment(commentString(dc), ''));
80
- }
81
- }
82
- return lines.join('\n') + '\n';
83
- }
84
-
85
- export { stringifyDocument };
@@ -1,24 +0,0 @@
1
- function stringifyNumber({ format, minFractionDigits, tag, value }) {
2
- if (typeof value === 'bigint')
3
- return String(value);
4
- const num = typeof value === 'number' ? value : Number(value);
5
- if (!isFinite(num))
6
- return isNaN(num) ? '.nan' : num < 0 ? '-.inf' : '.inf';
7
- let n = Object.is(value, -0) ? '-0' : JSON.stringify(value);
8
- if (!format &&
9
- minFractionDigits &&
10
- (!tag || tag === 'tag:yaml.org,2002:float') &&
11
- /^\d/.test(n)) {
12
- let i = n.indexOf('.');
13
- if (i < 0) {
14
- i = n.length;
15
- n += '.';
16
- }
17
- let d = minFractionDigits - (n.length - i - 1);
18
- while (d-- > 0)
19
- n += '0';
20
- }
21
- return n;
22
- }
23
-
24
- export { stringifyNumber };
@@ -1,150 +0,0 @@
1
- import { isCollection, isNode, isScalar, isSeq } from '../nodes/identity.js';
2
- import { Scalar } from '../nodes/Scalar.js';
3
- import { stringify } from './stringify.js';
4
- import { lineComment, indentComment } from './stringifyComment.js';
5
-
6
- function stringifyPair({ key, value }, ctx, onComment, onChompKeep) {
7
- const { allNullValues, doc, indent, indentStep, options: { commentString, indentSeq, simpleKeys } } = ctx;
8
- let keyComment = (isNode(key) && key.comment) || null;
9
- if (simpleKeys) {
10
- if (keyComment) {
11
- throw new Error('With simple keys, key nodes cannot have comments');
12
- }
13
- if (isCollection(key) || (!isNode(key) && typeof key === 'object')) {
14
- const msg = 'With simple keys, collection cannot be used as a key value';
15
- throw new Error(msg);
16
- }
17
- }
18
- let explicitKey = !simpleKeys &&
19
- (!key ||
20
- (keyComment && value == null && !ctx.inFlow) ||
21
- isCollection(key) ||
22
- (isScalar(key)
23
- ? key.type === Scalar.BLOCK_FOLDED || key.type === Scalar.BLOCK_LITERAL
24
- : typeof key === 'object'));
25
- ctx = Object.assign({}, ctx, {
26
- allNullValues: false,
27
- implicitKey: !explicitKey && (simpleKeys || !allNullValues),
28
- indent: indent + indentStep
29
- });
30
- let keyCommentDone = false;
31
- let chompKeep = false;
32
- let str = stringify(key, ctx, () => (keyCommentDone = true), () => (chompKeep = true));
33
- if (!explicitKey && !ctx.inFlow && str.length > 1024) {
34
- if (simpleKeys)
35
- throw new Error('With simple keys, single line scalar must not span more than 1024 characters');
36
- explicitKey = true;
37
- }
38
- if (ctx.inFlow) {
39
- if (allNullValues || value == null) {
40
- if (keyCommentDone && onComment)
41
- onComment();
42
- return str === '' ? '?' : explicitKey ? `? ${str}` : str;
43
- }
44
- }
45
- else if ((allNullValues && !simpleKeys) || (value == null && explicitKey)) {
46
- str = `? ${str}`;
47
- if (keyComment && !keyCommentDone) {
48
- str += lineComment(str, ctx.indent, commentString(keyComment));
49
- }
50
- else if (chompKeep && onChompKeep)
51
- onChompKeep();
52
- return str;
53
- }
54
- if (keyCommentDone)
55
- keyComment = null;
56
- if (explicitKey) {
57
- if (keyComment)
58
- str += lineComment(str, ctx.indent, commentString(keyComment));
59
- str = `? ${str}\n${indent}:`;
60
- }
61
- else {
62
- str = `${str}:`;
63
- if (keyComment)
64
- str += lineComment(str, ctx.indent, commentString(keyComment));
65
- }
66
- let vsb, vcb, valueComment;
67
- if (isNode(value)) {
68
- vsb = !!value.spaceBefore;
69
- vcb = value.commentBefore;
70
- valueComment = value.comment;
71
- }
72
- else {
73
- vsb = false;
74
- vcb = null;
75
- valueComment = null;
76
- if (value && typeof value === 'object')
77
- value = doc.createNode(value);
78
- }
79
- ctx.implicitKey = false;
80
- if (!explicitKey && !keyComment && isScalar(value))
81
- ctx.indentAtStart = str.length + 1;
82
- chompKeep = false;
83
- if (!indentSeq &&
84
- indentStep.length >= 2 &&
85
- !ctx.inFlow &&
86
- !explicitKey &&
87
- isSeq(value) &&
88
- !value.flow &&
89
- !value.tag &&
90
- !value.anchor) {
91
- // If indentSeq === false, consider '- ' as part of indentation where possible
92
- ctx.indent = ctx.indent.substring(2);
93
- }
94
- let valueCommentDone = false;
95
- const valueStr = stringify(value, ctx, () => (valueCommentDone = true), () => (chompKeep = true));
96
- let ws = ' ';
97
- if (keyComment || vsb || vcb) {
98
- ws = vsb ? '\n' : '';
99
- if (vcb) {
100
- const cs = commentString(vcb);
101
- ws += `\n${indentComment(cs, ctx.indent)}`;
102
- }
103
- if (valueStr === '' && !ctx.inFlow) {
104
- if (ws === '\n' && valueComment)
105
- ws = '\n\n';
106
- }
107
- else {
108
- ws += `\n${ctx.indent}`;
109
- }
110
- }
111
- else if (!explicitKey && isCollection(value)) {
112
- const vs0 = valueStr[0];
113
- const nl0 = valueStr.indexOf('\n');
114
- const hasNewline = nl0 !== -1;
115
- const flow = ctx.inFlow ?? value.flow ?? value.items.length === 0;
116
- if (hasNewline || !flow) {
117
- let hasPropsLine = false;
118
- if (hasNewline && (vs0 === '&' || vs0 === '!')) {
119
- let sp0 = valueStr.indexOf(' ');
120
- if (vs0 === '&' &&
121
- sp0 !== -1 &&
122
- sp0 < nl0 &&
123
- valueStr[sp0 + 1] === '!') {
124
- sp0 = valueStr.indexOf(' ', sp0 + 1);
125
- }
126
- if (sp0 === -1 || nl0 < sp0)
127
- hasPropsLine = true;
128
- }
129
- if (!hasPropsLine)
130
- ws = `\n${ctx.indent}`;
131
- }
132
- }
133
- else if (valueStr === '' || valueStr[0] === '\n') {
134
- ws = '';
135
- }
136
- str += ws + valueStr;
137
- if (ctx.inFlow) {
138
- if (valueCommentDone && onComment)
139
- onComment();
140
- }
141
- else if (valueComment && !valueCommentDone) {
142
- str += lineComment(str, ctx.indent, commentString(valueComment));
143
- }
144
- else if (chompKeep && onChompKeep) {
145
- onChompKeep();
146
- }
147
- return str;
148
- }
149
-
150
- export { stringifyPair };