@quilted/create 0.2.44 → 0.2.45

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 (278) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/esm/_virtual/index3.mjs +1 -1
  3. package/build/esm/_virtual/index7.mjs +2 -2
  4. package/build/esm/_virtual/index8.mjs +2 -2
  5. package/build/esm/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/index.mjs +2 -2
  6. package/build/esm/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/compile.mjs +12 -10
  7. package/build/esm/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/constants.mjs +1 -2
  8. package/build/esm/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/expand.mjs +9 -9
  9. package/build/esm/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/parse.mjs +14 -14
  10. package/build/esm/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/stringify.mjs +4 -4
  11. package/build/esm/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/utils.mjs +9 -3
  12. package/build/esm/node_modules/.pnpm/dir-glob@3.0.1/node_modules/dir-glob/index.mjs +1 -3
  13. package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/index.mjs +39 -8
  14. package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/managers/tasks.mjs +40 -10
  15. package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/filters/deep.mjs +2 -2
  16. package/build/esm/node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/filters/entry.mjs +101 -0
  17. package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/matchers/matcher.mjs +1 -6
  18. package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/matchers/partial.mjs +6 -6
  19. package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/settings.mjs +7 -5
  20. package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/index.mjs +1 -1
  21. package/build/esm/node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/path.mjs +79 -0
  22. package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/pattern.mjs +69 -29
  23. package/build/esm/node_modules/.pnpm/{fill-range@7.0.1 → fill-range@7.1.1}/node_modules/fill-range/index.mjs +4 -4
  24. package/build/esm/node_modules/.pnpm/glob-parent@5.1.2/node_modules/glob-parent/index.mjs +2 -2
  25. package/build/esm/node_modules/.pnpm/{globby@13.1.1 → globby@13.2.2}/node_modules/globby/ignore.mjs +9 -3
  26. package/build/esm/node_modules/.pnpm/{globby@13.1.1 → globby@13.2.2}/node_modules/globby/index.mjs +3 -5
  27. package/build/esm/node_modules/.pnpm/{micromatch@4.0.5 → micromatch@4.0.8}/node_modules/micromatch/index.mjs +9 -3
  28. package/build/esm/node_modules/.pnpm/{prettier@3.0.0 → prettier@3.5.1}/node_modules/prettier/plugins/babel.mjs +2448 -3000
  29. package/build/esm/node_modules/.pnpm/prettier@3.5.1/node_modules/prettier/plugins/estree.mjs +6611 -0
  30. package/build/esm/node_modules/.pnpm/prettier@3.5.1/node_modules/prettier/plugins/typescript.mjs +22 -0
  31. package/build/esm/node_modules/.pnpm/{prettier@3.0.0 → prettier@3.5.1}/node_modules/prettier/plugins/yaml.mjs +1008 -1007
  32. package/build/esm/node_modules/.pnpm/prettier@3.5.1/node_modules/prettier/standalone.mjs +3878 -0
  33. package/build/esm/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/date.mjs +0 -1
  34. package/build/esm/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/prompts.mjs +1 -1
  35. package/build/esm/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/date.mjs +0 -1
  36. package/build/esm/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/prompts.mjs +1 -1
  37. package/build/esm/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/compose/compose-collection.mjs +67 -0
  38. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/compose-doc.mjs +3 -0
  39. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/compose-node.mjs +13 -3
  40. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/compose-scalar.mjs +8 -4
  41. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/composer.mjs +1 -1
  42. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-block-map.mjs +12 -5
  43. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-block-scalar.mjs +6 -2
  44. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-block-seq.mjs +10 -7
  45. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-flow-collection.mjs +11 -3
  46. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.mjs +14 -1
  47. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-props.mjs +20 -7
  48. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/util-map-includes.mjs +2 -2
  49. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/doc/Document.mjs +13 -10
  50. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/doc/anchors.mjs +1 -1
  51. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/doc/applyReviver.mjs +1 -0
  52. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/doc/createNode.mjs +4 -4
  53. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/doc/directives.mjs +10 -3
  54. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/errors.mjs +1 -1
  55. package/build/esm/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/log.mjs +7 -0
  56. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/Alias.mjs +9 -2
  57. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/Collection.mjs +2 -2
  58. package/build/esm/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/nodes/Node.mjs +44 -0
  59. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/Pair.mjs +1 -1
  60. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/Scalar.mjs +2 -1
  61. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/YAMLMap.mjs +28 -4
  62. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/YAMLSeq.mjs +22 -4
  63. package/build/esm/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/nodes/addPairToJSMap.mjs +53 -0
  64. package/build/esm/node_modules/.pnpm/{yaml@2.1.1/node_modules/yaml/browser/dist/nodes/Node.mjs → yaml@2.7.0/node_modules/yaml/browser/dist/nodes/identity.mjs} +1 -14
  65. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/toJS.mjs +1 -1
  66. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/parse/cst.mjs +1 -0
  67. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/parse/lexer.mjs +34 -21
  68. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/parse/parser.mjs +16 -9
  69. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/public-api.mjs +2 -0
  70. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/Schema.mjs +2 -3
  71. package/build/esm/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/schema/common/map.mjs +16 -0
  72. package/build/esm/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/schema/common/seq.mjs +16 -0
  73. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/core/float.mjs +1 -1
  74. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/json/schema.mjs +1 -1
  75. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/tags.mjs +20 -9
  76. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.mjs +3 -6
  77. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.mjs +1 -1
  78. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/float.mjs +1 -1
  79. package/build/esm/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.mjs +48 -0
  80. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.mjs +10 -9
  81. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.mjs +4 -2
  82. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.mjs +2 -1
  83. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/set.mjs +15 -14
  84. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.mjs +2 -4
  85. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/foldFlowLines.mjs +19 -10
  86. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringify.mjs +8 -2
  87. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyCollection.mjs +9 -17
  88. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyDocument.mjs +1 -1
  89. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyPair.mjs +40 -17
  90. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyString.mjs +40 -20
  91. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/visit.mjs +1 -1
  92. package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/index.mjs +2 -1
  93. package/build/esm/package.mjs +1 -1
  94. package/build/esm/shared/package-manager.mjs +1 -2
  95. package/build/esm/shared.mjs +1 -3
  96. package/build/esnext/_virtual/index3.esnext +1 -1
  97. package/build/esnext/node_modules/.pnpm/@nodelib_fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.esnext +1 -1
  98. package/build/esnext/node_modules/.pnpm/@nodelib_fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/sync.esnext +1 -1
  99. package/build/esnext/node_modules/.pnpm/@nodelib_fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.esnext +1 -1
  100. package/build/esnext/node_modules/.pnpm/@nodelib_fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.esnext +1 -1
  101. package/build/esnext/node_modules/.pnpm/@nodelib_fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/sync.esnext +1 -1
  102. package/build/esnext/node_modules/.pnpm/@nodelib_fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.esnext +1 -1
  103. package/build/esnext/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/index.esnext +2 -2
  104. package/build/esnext/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/compile.esnext +10 -9
  105. package/build/esnext/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/constants.esnext +1 -1
  106. package/build/esnext/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/expand.esnext +9 -9
  107. package/build/esnext/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/parse.esnext +14 -14
  108. package/build/esnext/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/stringify.esnext +4 -4
  109. package/build/esnext/node_modules/.pnpm/{braces@3.0.2 → braces@3.0.3}/node_modules/braces/lib/utils.esnext +9 -3
  110. package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/index.esnext +35 -4
  111. package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/managers/tasks.esnext +14 -2
  112. package/build/esnext/node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/filters/entry.esnext +92 -0
  113. package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/matchers/matcher.esnext +1 -2
  114. package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/settings.esnext +3 -2
  115. package/build/esnext/node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/path.esnext +58 -0
  116. package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/pattern.esnext +27 -6
  117. package/build/esnext/node_modules/.pnpm/{fill-range@7.0.1 → fill-range@7.1.1}/node_modules/fill-range/index.esnext +4 -4
  118. package/build/esnext/node_modules/.pnpm/glob-parent@5.1.2/node_modules/glob-parent/index.esnext +2 -2
  119. package/build/esnext/node_modules/.pnpm/{globby@13.1.1 → globby@13.2.2}/node_modules/globby/ignore.esnext +6 -4
  120. package/build/esnext/node_modules/.pnpm/{globby@13.1.1 → globby@13.2.2}/node_modules/globby/index.esnext +3 -3
  121. package/build/esnext/node_modules/.pnpm/{micromatch@4.0.5 → micromatch@4.0.8}/node_modules/micromatch/index.esnext +8 -3
  122. package/build/esnext/node_modules/.pnpm/prettier@3.5.1/node_modules/prettier/plugins/babel.esnext +6956 -0
  123. package/build/esnext/node_modules/.pnpm/prettier@3.5.1/node_modules/prettier/plugins/estree.esnext +4320 -0
  124. package/build/esnext/node_modules/.pnpm/prettier@3.5.1/node_modules/prettier/plugins/typescript.esnext +12888 -0
  125. package/build/esnext/node_modules/.pnpm/prettier@3.5.1/node_modules/prettier/plugins/yaml.esnext +4156 -0
  126. package/build/esnext/node_modules/.pnpm/prettier@3.5.1/node_modules/prettier/standalone.esnext +2369 -0
  127. package/build/esnext/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/compose/compose-collection.esnext +60 -0
  128. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/compose-doc.esnext +2 -0
  129. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/compose-node.esnext +11 -3
  130. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/compose-scalar.esnext +13 -5
  131. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/composer.esnext +1 -1
  132. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-block-map.esnext +13 -4
  133. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-block-scalar.esnext +6 -2
  134. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-block-seq.esnext +11 -6
  135. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-flow-collection.esnext +12 -3
  136. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.esnext +14 -1
  137. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-props.esnext +20 -9
  138. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/util-map-includes.esnext +2 -2
  139. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/doc/Document.esnext +8 -13
  140. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/doc/anchors.esnext +1 -1
  141. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/doc/createNode.esnext +5 -3
  142. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/doc/directives.esnext +10 -4
  143. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/errors.esnext +1 -1
  144. package/build/esnext/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/log.esnext +7 -0
  145. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/Alias.esnext +8 -2
  146. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/Collection.esnext +2 -2
  147. package/build/esnext/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/nodes/Node.esnext +36 -0
  148. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/Pair.esnext +1 -1
  149. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/Scalar.esnext +2 -1
  150. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/YAMLMap.esnext +31 -4
  151. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/YAMLSeq.esnext +20 -4
  152. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/addPairToJSMap.esnext +8 -38
  153. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1/node_modules/yaml/browser/dist/nodes/Node.esnext → yaml@2.7.0/node_modules/yaml/browser/dist/nodes/identity.esnext} +1 -13
  154. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/nodes/toJS.esnext +1 -1
  155. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/parse/cst.esnext +1 -0
  156. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/parse/lexer.esnext +45 -33
  157. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/parse/parser.esnext +12 -9
  158. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/public-api.esnext +3 -0
  159. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/Schema.esnext +2 -3
  160. package/build/esnext/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/schema/common/map.esnext +17 -0
  161. package/build/esnext/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/schema/common/seq.esnext +17 -0
  162. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/core/float.esnext +1 -1
  163. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/json/schema.esnext +1 -1
  164. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/tags.esnext +22 -11
  165. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.esnext +3 -6
  166. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.esnext +1 -1
  167. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/float.esnext +1 -1
  168. package/build/esnext/node_modules/.pnpm/yaml@2.7.0/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.esnext +50 -0
  169. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.esnext +10 -9
  170. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.esnext +4 -3
  171. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.esnext +2 -0
  172. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/set.esnext +15 -14
  173. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.esnext +2 -2
  174. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/foldFlowLines.esnext +20 -10
  175. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringify.esnext +9 -2
  176. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyCollection.esnext +20 -28
  177. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyDocument.esnext +1 -1
  178. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyPair.esnext +44 -23
  179. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyString.esnext +38 -20
  180. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/visit.esnext +1 -1
  181. package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/index.esnext +2 -1
  182. package/build/esnext/package.esnext +1 -1
  183. package/build/esnext/shared/package-manager.esnext +1 -1
  184. package/build/esnext/shared.esnext +5 -6
  185. package/build/tsconfig.tsbuildinfo +1 -1
  186. package/build/typescript/shared/package-manager.d.ts.map +1 -1
  187. package/build/typescript/shared.d.ts.map +1 -1
  188. package/package.json +7 -7
  189. package/source/shared/package-manager.ts +0 -1
  190. package/source/shared.ts +1 -2
  191. package/templates/workspace/_nvmrc +1 -1
  192. package/build/esm/_virtual/patterns.mjs +0 -3
  193. package/build/esm/node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/managers/patterns.mjs +0 -32
  194. package/build/esm/node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/providers/filters/entry.mjs +0 -76
  195. package/build/esm/node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/utils/path.mjs +0 -45
  196. package/build/esm/node_modules/.pnpm/prettier@3.0.0/node_modules/prettier/plugins/estree.mjs +0 -6172
  197. package/build/esm/node_modules/.pnpm/prettier@3.0.0/node_modules/prettier/plugins/typescript.mjs +0 -29
  198. package/build/esm/node_modules/.pnpm/prettier@3.0.0/node_modules/prettier/standalone.mjs +0 -4076
  199. package/build/esm/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/compose/compose-collection.mjs +0 -58
  200. package/build/esm/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/log.mjs +0 -7
  201. package/build/esm/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/nodes/addPairToJSMap.mjs +0 -83
  202. package/build/esm/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/schema/common/map.mjs +0 -37
  203. package/build/esm/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/schema/common/seq.mjs +0 -34
  204. package/build/esnext/_virtual/patterns.esnext +0 -3
  205. package/build/esnext/node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/managers/patterns.esnext +0 -21
  206. package/build/esnext/node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/providers/filters/entry.esnext +0 -71
  207. package/build/esnext/node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/utils/path.esnext +0 -38
  208. package/build/esnext/node_modules/.pnpm/prettier@3.0.0/node_modules/prettier/plugins/babel.esnext +0 -18
  209. package/build/esnext/node_modules/.pnpm/prettier@3.0.0/node_modules/prettier/plugins/estree.esnext +0 -37
  210. package/build/esnext/node_modules/.pnpm/prettier@3.0.0/node_modules/prettier/plugins/typescript.esnext +0 -29
  211. package/build/esnext/node_modules/.pnpm/prettier@3.0.0/node_modules/prettier/plugins/yaml.esnext +0 -163
  212. package/build/esnext/node_modules/.pnpm/prettier@3.0.0/node_modules/prettier/standalone.esnext +0 -36
  213. package/build/esnext/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/compose/compose-collection.esnext +0 -55
  214. package/build/esnext/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/log.esnext +0 -10
  215. package/build/esnext/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/schema/common/map.esnext +0 -41
  216. package/build/esnext/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/schema/common/seq.esnext +0 -33
  217. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/async.mjs +0 -0
  218. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/filters/error.mjs +0 -0
  219. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/provider.mjs +0 -0
  220. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/stream.mjs +0 -0
  221. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/sync.mjs +0 -0
  222. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/transformers/entry.mjs +0 -0
  223. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/readers/async.mjs +0 -0
  224. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/readers/reader.mjs +0 -0
  225. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/readers/stream.mjs +0 -0
  226. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/readers/sync.mjs +0 -0
  227. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/array.mjs +0 -0
  228. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/errno.mjs +0 -0
  229. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/fs.mjs +0 -0
  230. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/stream.mjs +0 -0
  231. /package/build/esm/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/string.mjs +0 -0
  232. /package/build/esm/node_modules/.pnpm/{globby@13.1.1 → globby@13.2.2}/node_modules/globby/utilities.mjs +0 -0
  233. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-end.mjs +0 -0
  234. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/util-contains-newline.mjs +0 -0
  235. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.mjs +0 -0
  236. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/util-flow-indent-check.mjs +0 -0
  237. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/parse/line-counter.mjs +0 -0
  238. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/common/null.mjs +0 -0
  239. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/common/string.mjs +0 -0
  240. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/core/bool.mjs +0 -0
  241. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/core/int.mjs +0 -0
  242. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/core/schema.mjs +0 -0
  243. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/int.mjs +0 -0
  244. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyComment.mjs +0 -0
  245. /package/build/esm/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyNumber.mjs +0 -0
  246. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/async.esnext +0 -0
  247. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/filters/deep.esnext +0 -0
  248. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/filters/error.esnext +0 -0
  249. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/matchers/partial.esnext +0 -0
  250. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/provider.esnext +0 -0
  251. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/stream.esnext +0 -0
  252. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/sync.esnext +0 -0
  253. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/providers/transformers/entry.esnext +0 -0
  254. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/readers/async.esnext +0 -0
  255. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/readers/reader.esnext +0 -0
  256. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/readers/stream.esnext +0 -0
  257. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/readers/sync.esnext +0 -0
  258. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/array.esnext +0 -0
  259. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/errno.esnext +0 -0
  260. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/fs.esnext +0 -0
  261. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/index.esnext +0 -0
  262. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/stream.esnext +0 -0
  263. /package/build/esnext/node_modules/.pnpm/{fast-glob@3.2.12 → fast-glob@3.3.3}/node_modules/fast-glob/out/utils/string.esnext +0 -0
  264. /package/build/esnext/node_modules/.pnpm/{globby@13.1.1 → globby@13.2.2}/node_modules/globby/utilities.esnext +0 -0
  265. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/resolve-end.esnext +0 -0
  266. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/util-contains-newline.esnext +0 -0
  267. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.esnext +0 -0
  268. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/compose/util-flow-indent-check.esnext +0 -0
  269. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/doc/applyReviver.esnext +0 -0
  270. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/parse/line-counter.esnext +0 -0
  271. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/common/null.esnext +0 -0
  272. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/common/string.esnext +0 -0
  273. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/core/bool.esnext +0 -0
  274. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/core/int.esnext +0 -0
  275. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/core/schema.esnext +0 -0
  276. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/schema/yaml-1.1/int.esnext +0 -0
  277. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyComment.esnext +0 -0
  278. /package/build/esnext/node_modules/.pnpm/{yaml@2.1.1 → yaml@2.7.0}/node_modules/yaml/browser/dist/stringify/stringifyNumber.esnext +0 -0
@@ -5,7 +5,7 @@ const floatNaN = {
5
5
  identify: value => typeof value === 'number',
6
6
  default: true,
7
7
  tag: 'tag:yaml.org,2002:float',
8
- test: /^(?:[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN))$/,
8
+ test: /^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,
9
9
  resolve: str => str.slice(-3).toLowerCase() === 'nan' ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
10
10
  stringify: stringifyNumber
11
11
  };
@@ -26,7 +26,7 @@ const jsonScalars = [{
26
26
  identify: value => typeof value === 'boolean',
27
27
  default: true,
28
28
  tag: 'tag:yaml.org,2002:bool',
29
- test: /^true|false$/,
29
+ test: /^true$|^false$/,
30
30
  resolve: str => str === 'true',
31
31
  stringify: stringifyJSON
32
32
  }, {
@@ -8,6 +8,7 @@ import { intOct, intHex, int } from './core/int.mjs';
8
8
  import { schema } from './core/schema.mjs';
9
9
  import { schema as schema$1 } from './json/schema.mjs';
10
10
  import { binary } from './yaml-1.1/binary.mjs';
11
+ import { merge } from './yaml-1.1/merge.mjs';
11
12
  import { omap } from './yaml-1.1/omap.mjs';
12
13
  import { pairs } from './yaml-1.1/pairs.mjs';
13
14
  import { schema as schema$2 } from './yaml-1.1/schema.mjs';
@@ -27,6 +28,7 @@ const tagsByName = {
27
28
  intOct,
28
29
  intTime,
29
30
  map,
31
+ merge,
30
32
  null: nullTag,
31
33
  omap,
32
34
  pairs,
@@ -36,13 +38,18 @@ const tagsByName = {
36
38
  };
37
39
  const coreKnownTags = {
38
40
  'tag:yaml.org,2002:binary': binary,
41
+ 'tag:yaml.org,2002:merge': merge,
39
42
  'tag:yaml.org,2002:omap': omap,
40
43
  'tag:yaml.org,2002:pairs': pairs,
41
44
  'tag:yaml.org,2002:set': set,
42
45
  'tag:yaml.org,2002:timestamp': timestamp
43
46
  };
44
- function getTags(customTags, schemaName) {
45
- let tags = schemas.get(schemaName);
47
+ function getTags(customTags, schemaName, addMergeTag) {
48
+ const schemaTags = schemas.get(schemaName);
49
+ if (schemaTags && !customTags) {
50
+ return addMergeTag && !schemaTags.includes(merge) ? schemaTags.concat(merge) : schemaTags.slice();
51
+ }
52
+ let tags = schemaTags;
46
53
  if (!tags) {
47
54
  if (Array.isArray(customTags)) tags = [];else {
48
55
  const keys = Array.from(schemas.keys()).filter(key => key !== 'yaml11').map(key => JSON.stringify(key)).join(', ');
@@ -54,13 +61,17 @@ function getTags(customTags, schemaName) {
54
61
  } else if (typeof customTags === 'function') {
55
62
  tags = customTags(tags.slice());
56
63
  }
57
- return tags.map(tag => {
58
- if (typeof tag !== 'string') return tag;
59
- const tagObj = tagsByName[tag];
60
- if (tagObj) return tagObj;
61
- const keys = Object.keys(tagsByName).map(key => JSON.stringify(key)).join(', ');
62
- throw new Error(`Unknown custom tag "${tag}"; use one of ${keys}`);
63
- });
64
+ if (addMergeTag) tags = tags.concat(merge);
65
+ return tags.reduce((tags, tag) => {
66
+ const tagObj = typeof tag === 'string' ? tagsByName[tag] : tag;
67
+ if (!tagObj) {
68
+ const tagName = JSON.stringify(tag);
69
+ const keys = Object.keys(tagsByName).map(key => JSON.stringify(key)).join(', ');
70
+ throw new Error(`Unknown custom tag ${tagName}; use one of ${keys}`);
71
+ }
72
+ if (!tags.includes(tagObj)) tags.push(tagObj);
73
+ return tags;
74
+ }, []);
64
75
  }
65
76
 
66
77
  export { coreKnownTags, getTags };
@@ -3,6 +3,7 @@ import { stringifyString } from '../../stringify/stringifyString.mjs';
3
3
 
4
4
  const binary = {
5
5
  identify: value => value instanceof Uint8Array,
6
+ // Buffer inherits from Uint8Array
6
7
  default: false,
7
8
  tag: 'tag:yaml.org,2002:binary',
8
9
  /**
@@ -14,9 +15,7 @@ const binary = {
14
15
  * document.querySelector('#photo').src = URL.createObjectURL(blob)
15
16
  */
16
17
  resolve(src, onError) {
17
- if (typeof Buffer === 'function') {
18
- return Buffer.from(src, 'base64');
19
- } else if (typeof atob === 'function') {
18
+ if (typeof atob === 'function') {
20
19
  // On IE 11, atob() can't handle newlines
21
20
  const str = atob(src.replace(/[\n\r]/g, ''));
22
21
  const buffer = new Uint8Array(str.length);
@@ -34,9 +33,7 @@ const binary = {
34
33
  }, ctx, onComment, onChompKeep) {
35
34
  const buf = value; // checked earlier by binary.identify()
36
35
  let str;
37
- if (typeof Buffer === 'function') {
38
- str = buf instanceof Buffer ? buf.toString('base64') : Buffer.from(buf.buffer).toString('base64');
39
- } else if (typeof btoa === 'function') {
36
+ if (typeof btoa === 'function') {
40
37
  let s = '';
41
38
  for (let i = 0; i < buf.length; ++i) s += String.fromCharCode(buf[i]);
42
39
  str = btoa(s);
@@ -20,7 +20,7 @@ const falseTag = {
20
20
  identify: value => value === false,
21
21
  default: true,
22
22
  tag: 'tag:yaml.org,2002:bool',
23
- test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,
23
+ test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,
24
24
  resolve: () => new Scalar(false),
25
25
  stringify: boolStringify
26
26
  };
@@ -5,7 +5,7 @@ const floatNaN = {
5
5
  identify: value => typeof value === 'number',
6
6
  default: true,
7
7
  tag: 'tag:yaml.org,2002:float',
8
- test: /^[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN)$/,
8
+ test: /^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,
9
9
  resolve: str => str.slice(-3).toLowerCase() === 'nan' ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
10
10
  stringify: stringifyNumber
11
11
  };
@@ -0,0 +1,48 @@
1
+ import { isScalar, isAlias, isSeq, isMap } from '../../nodes/identity.mjs';
2
+ import { Scalar } from '../../nodes/Scalar.mjs';
3
+
4
+ // If the value associated with a merge key is a single mapping node, each of
5
+ // its key/value pairs is inserted into the current mapping, unless the key
6
+ // already exists in it. If the value associated with the merge key is a
7
+ // sequence, then this sequence is expected to contain mapping nodes and each
8
+ // of these nodes is merged in turn according to its order in the sequence.
9
+ // Keys in mapping nodes earlier in the sequence override keys specified in
10
+ // later mapping nodes. -- http://yaml.org/type/merge.html
11
+ const MERGE_KEY = '<<';
12
+ const merge = {
13
+ identify: value => value === MERGE_KEY || typeof value === 'symbol' && value.description === MERGE_KEY,
14
+ default: 'key',
15
+ tag: 'tag:yaml.org,2002:merge',
16
+ test: /^<<$/,
17
+ resolve: () => Object.assign(new Scalar(Symbol(MERGE_KEY)), {
18
+ addToJSMap: addMergeToJSMap
19
+ }),
20
+ stringify: () => MERGE_KEY
21
+ };
22
+ const isMergeKey = (ctx, key) => (merge.identify(key) || isScalar(key) && (!key.type || key.type === Scalar.PLAIN) && merge.identify(key.value)) && ctx?.doc.schema.tags.some(tag => tag.tag === merge.tag && tag.default);
23
+ function addMergeToJSMap(ctx, map, value) {
24
+ value = ctx && isAlias(value) ? value.resolve(ctx.doc) : value;
25
+ if (isSeq(value)) for (const it of value.items) mergeValue(ctx, map, it);else if (Array.isArray(value)) for (const it of value) mergeValue(ctx, map, it);else mergeValue(ctx, map, value);
26
+ }
27
+ function mergeValue(ctx, map, value) {
28
+ const source = ctx && isAlias(value) ? value.resolve(ctx.doc) : value;
29
+ if (!isMap(source)) throw new Error('Merge sources must be maps or map aliases');
30
+ const srcMap = source.toJSON(null, ctx, Map);
31
+ for (const [key, value] of srcMap) {
32
+ if (map instanceof Map) {
33
+ if (!map.has(key)) map.set(key, value);
34
+ } else if (map instanceof Set) {
35
+ map.add(key);
36
+ } else if (!Object.prototype.hasOwnProperty.call(map, key)) {
37
+ Object.defineProperty(map, key, {
38
+ value,
39
+ writable: true,
40
+ enumerable: true,
41
+ configurable: true
42
+ });
43
+ }
44
+ }
45
+ return map;
46
+ }
47
+
48
+ export { addMergeToJSMap, isMergeKey, merge };
@@ -1,8 +1,8 @@
1
- import { YAMLSeq } from '../../nodes/YAMLSeq.mjs';
1
+ import { isScalar, isPair } from '../../nodes/identity.mjs';
2
2
  import { toJS } from '../../nodes/toJS.mjs';
3
- import { isScalar, isPair } from '../../nodes/Node.mjs';
4
3
  import { YAMLMap } from '../../nodes/YAMLMap.mjs';
5
- import { createPairs, resolvePairs } from './pairs.mjs';
4
+ import { YAMLSeq } from '../../nodes/YAMLSeq.mjs';
5
+ import { resolvePairs, createPairs } from './pairs.mjs';
6
6
 
7
7
  class YAMLOMap extends YAMLSeq {
8
8
  constructor() {
@@ -35,6 +35,12 @@ class YAMLOMap extends YAMLSeq {
35
35
  }
36
36
  return map;
37
37
  }
38
+ static from(schema, iterable, ctx) {
39
+ const pairs = createPairs(schema, iterable, ctx);
40
+ const omap = new this();
41
+ omap.items = pairs.items;
42
+ return omap;
43
+ }
38
44
  }
39
45
  YAMLOMap.tag = 'tag:yaml.org,2002:omap';
40
46
  const omap = {
@@ -59,12 +65,7 @@ const omap = {
59
65
  }
60
66
  return Object.assign(new YAMLOMap(), pairs);
61
67
  },
62
- createNode(schema, iterable, ctx) {
63
- const pairs = createPairs(schema, iterable, ctx);
64
- const omap = new YAMLOMap();
65
- omap.items = pairs.items;
66
- return omap;
67
- }
68
+ createNode: (schema, iterable, ctx) => YAMLOMap.from(schema, iterable, ctx)
68
69
  };
69
70
 
70
71
  export { YAMLOMap, omap };
@@ -1,4 +1,4 @@
1
- import { isSeq, isPair, isMap } from '../../nodes/Node.mjs';
1
+ import { isSeq, isPair, isMap } from '../../nodes/identity.mjs';
2
2
  import { createPair, Pair } from '../../nodes/Pair.mjs';
3
3
  import { Scalar } from '../../nodes/Scalar.mjs';
4
4
  import { YAMLSeq } from '../../nodes/YAMLSeq.mjs';
@@ -42,7 +42,9 @@ function createPairs(schema, iterable, ctx) {
42
42
  if (keys.length === 1) {
43
43
  key = keys[0];
44
44
  value = it[key];
45
- } else throw new TypeError(`Expected { key: value } tuple: ${it}`);
45
+ } else {
46
+ throw new TypeError(`Expected tuple with one key, not ${keys.length} keys`);
47
+ }
46
48
  } else {
47
49
  key = it;
48
50
  }
@@ -6,11 +6,12 @@ import { binary } from './binary.mjs';
6
6
  import { trueTag, falseTag } from './bool.mjs';
7
7
  import { floatNaN, floatExp, float } from './float.mjs';
8
8
  import { intBin, intOct, int, intHex } from './int.mjs';
9
+ import { merge } from './merge.mjs';
9
10
  import { omap } from './omap.mjs';
10
11
  import { pairs } from './pairs.mjs';
11
12
  import { set } from './set.mjs';
12
13
  import { intTime, floatTime, timestamp } from './timestamp.mjs';
13
14
 
14
- const schema = [map, seq, string, nullTag, trueTag, falseTag, intBin, intOct, int, intHex, floatNaN, floatExp, float, binary, omap, pairs, set, intTime, floatTime, timestamp];
15
+ const schema = [map, seq, string, nullTag, trueTag, falseTag, intBin, intOct, int, intHex, floatNaN, floatExp, float, binary, merge, omap, pairs, set, intTime, floatTime, timestamp];
15
16
 
16
17
  export { schema };
@@ -1,5 +1,5 @@
1
- import { isMap, isPair, isScalar } from '../../nodes/Node.mjs';
2
- import { createPair, Pair } from '../../nodes/Pair.mjs';
1
+ import { isMap, isPair, isScalar } from '../../nodes/identity.mjs';
2
+ import { Pair, createPair } from '../../nodes/Pair.mjs';
3
3
  import { YAMLMap, findPair } from '../../nodes/YAMLMap.mjs';
4
4
 
5
5
  class YAMLSet extends YAMLMap {
@@ -9,7 +9,7 @@ class YAMLSet extends YAMLMap {
9
9
  }
10
10
  add(key) {
11
11
  let pair;
12
- if (isPair(key)) pair = key;else if (typeof key === 'object' && 'key' in key && 'value' in key && key.value === null) pair = new Pair(key.key, null);else pair = new Pair(key, null);
12
+ if (isPair(key)) pair = key;else if (key && typeof key === 'object' && 'key' in key && 'value' in key && key.value === null) pair = new Pair(key.key, null);else pair = new Pair(key, null);
13
13
  const prev = findPair(this.items, pair.key);
14
14
  if (!prev) this.items.push(pair);
15
15
  }
@@ -39,6 +39,17 @@ class YAMLSet extends YAMLMap {
39
39
  allNullValues: true
40
40
  }), onComment, onChompKeep);else throw new Error('Set items must all have null values');
41
41
  }
42
+ static from(schema, iterable, ctx) {
43
+ const {
44
+ replacer
45
+ } = ctx;
46
+ const set = new this(schema);
47
+ if (iterable && Symbol.iterator in Object(iterable)) for (let value of iterable) {
48
+ if (typeof replacer === 'function') value = replacer.call(iterable, value, value);
49
+ set.items.push(createPair(value, null, ctx));
50
+ }
51
+ return set;
52
+ }
42
53
  }
43
54
  YAMLSet.tag = 'tag:yaml.org,2002:set';
44
55
  const set = {
@@ -47,22 +58,12 @@ const set = {
47
58
  nodeClass: YAMLSet,
48
59
  default: false,
49
60
  tag: 'tag:yaml.org,2002:set',
61
+ createNode: (schema, iterable, ctx) => YAMLSet.from(schema, iterable, ctx),
50
62
  resolve(map, onError) {
51
63
  if (isMap(map)) {
52
64
  if (map.hasAllNullValues(true)) return Object.assign(new YAMLSet(), map);else onError('Set items must all have null values');
53
65
  } else onError('Expected a mapping for this tag');
54
66
  return map;
55
- },
56
- createNode(schema, iterable, ctx) {
57
- const {
58
- replacer
59
- } = ctx;
60
- const set = new YAMLSet(schema);
61
- if (iterable && Symbol.iterator in Object(iterable)) for (let value of iterable) {
62
- if (typeof replacer === 'function') value = replacer.call(iterable, value, value);
63
- set.items.push(createPair(value, null, ctx));
64
- }
65
- return set;
66
67
  }
67
68
  };
68
69
 
@@ -36,11 +36,9 @@ function stringifySexagesimal(node) {
36
36
  parts.unshift(value); // hours
37
37
  }
38
38
  }
39
-
40
- return sign + parts.map(n => n < 10 ? '0' + String(n) : String(n)).join(':').replace(/000000\d*$/, '') // % 60 may introduce error
39
+ return sign + parts.map(n => String(n).padStart(2, '0')).join(':').replace(/000000\d*$/, '') // % 60 may introduce error
41
40
  ;
42
41
  }
43
-
44
42
  const intTime = {
45
43
  identify: value => typeof value === 'bigint' || Number.isInteger(value),
46
44
  default: true,
@@ -95,7 +93,7 @@ const timestamp = {
95
93
  },
96
94
  stringify: ({
97
95
  value
98
- }) => value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, '')
96
+ }) => value.toISOString().replace(/(T00:00:00)?\.000Z$/, '')
99
97
  };
100
98
 
101
99
  export { floatTime, intTime, timestamp };
@@ -14,6 +14,7 @@ function foldFlowLines(text, indent, mode = 'flow', {
14
14
  onOverflow
15
15
  } = {}) {
16
16
  if (!lineWidth || lineWidth < 0) return text;
17
+ if (lineWidth < minContentWidth) minContentWidth = 0;
17
18
  const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);
18
19
  if (text.length <= endStep) return text;
19
20
  const folds = [];
@@ -29,7 +30,7 @@ function foldFlowLines(text, indent, mode = 'flow', {
29
30
  let escStart = -1;
30
31
  let escEnd = -1;
31
32
  if (mode === FOLD_BLOCK) {
32
- i = consumeMoreIndentedLines(text, i);
33
+ i = consumeMoreIndentedLines(text, i, indent.length);
33
34
  if (i !== -1) end = i + endStep;
34
35
  }
35
36
  for (let ch; ch = text[i += 1];) {
@@ -51,8 +52,8 @@ function foldFlowLines(text, indent, mode = 'flow', {
51
52
  escEnd = i;
52
53
  }
53
54
  if (ch === '\n') {
54
- if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i);
55
- end = i + endStep;
55
+ if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i, indent.length);
56
+ end = i + indent.length + endStep;
56
57
  split = undefined;
57
58
  } else {
58
59
  if (ch === ' ' && prev && prev !== ' ' && prev !== '\n' && prev !== '\t') {
@@ -105,15 +106,23 @@ function foldFlowLines(text, indent, mode = 'flow', {
105
106
  * Presumes `i + 1` is at the start of a line
106
107
  * @returns index of last newline in more-indented block
107
108
  */
108
- function consumeMoreIndentedLines(text, i) {
109
- let ch = text[i + 1];
109
+ function consumeMoreIndentedLines(text, i, indent) {
110
+ let end = i;
111
+ let start = i + 1;
112
+ let ch = text[start];
110
113
  while (ch === ' ' || ch === '\t') {
111
- do {
112
- ch = text[i += 1];
113
- } while (ch && ch !== '\n');
114
- ch = text[i + 1];
114
+ if (i < start + indent) {
115
+ ch = text[++i];
116
+ } else {
117
+ do {
118
+ ch = text[++i];
119
+ } while (ch && ch !== '\n');
120
+ end = i;
121
+ start = i + 1;
122
+ ch = text[start];
123
+ }
115
124
  }
116
- return i;
125
+ return end;
117
126
  }
118
127
 
119
128
  export { FOLD_BLOCK, FOLD_FLOW, FOLD_QUOTED, foldFlowLines };
@@ -1,5 +1,5 @@
1
1
  import { anchorIsValid } from '../doc/anchors.mjs';
2
- import { isPair, isAlias, isNode, isScalar, isCollection } from '../nodes/Node.mjs';
2
+ import { isPair, isAlias, isNode, isScalar, isCollection } from '../nodes/identity.mjs';
3
3
  import { stringifyComment } from './stringifyComment.mjs';
4
4
  import { stringifyString } from './stringifyString.mjs';
5
5
 
@@ -13,6 +13,7 @@ function createStringifyContext(doc, options) {
13
13
  doubleQuotedAsJSON: false,
14
14
  doubleQuotedMinMultiLineLength: 40,
15
15
  falseStr: 'false',
16
+ flowCollectionPadding: true,
16
17
  indentSeq: true,
17
18
  lineWidth: 80,
18
19
  minContentWidth: 20,
@@ -36,6 +37,7 @@ function createStringifyContext(doc, options) {
36
37
  return {
37
38
  anchors: new Set(),
38
39
  doc,
40
+ flowCollectionPadding: opt.flowCollectionPadding ? ' ' : '',
39
41
  indent: '',
40
42
  indentStep: typeof opt.indent === 'number' ? ' '.repeat(opt.indent) : ' ',
41
43
  inFlow,
@@ -51,7 +53,11 @@ function getTagObject(tags, item) {
51
53
  let obj;
52
54
  if (isScalar(item)) {
53
55
  obj = item.value;
54
- const match = tags.filter(t => t.identify?.(obj));
56
+ let match = tags.filter(t => t.identify?.(obj));
57
+ if (match.length > 1) {
58
+ const testMatch = match.filter(t => t.test);
59
+ if (testMatch.length > 0) match = testMatch;
60
+ }
55
61
  tagObj = match.find(t => t.format === item.format) ?? match.find(t => !t.format);
56
62
  } else {
57
63
  obj = item;
@@ -1,5 +1,4 @@
1
- import { Collection } from '../nodes/Collection.mjs';
2
- import { isNode, isPair } from '../nodes/Node.mjs';
1
+ import { isNode, isPair } from '../nodes/identity.mjs';
3
2
  import { stringify } from './stringify.mjs';
4
3
  import { lineComment, indentComment } from './stringifyComment.mjs';
5
4
 
@@ -67,16 +66,15 @@ function stringifyBlockCollection({
67
66
  return str;
68
67
  }
69
68
  function stringifyFlowCollection({
70
- comment,
71
69
  items
72
70
  }, ctx, {
73
71
  flowChars,
74
- itemIndent,
75
- onComment
72
+ itemIndent
76
73
  }) {
77
74
  const {
78
75
  indent,
79
76
  indentStep,
77
+ flowCollectionPadding: fcPadding,
80
78
  options: {
81
79
  commentString
82
80
  }
@@ -108,7 +106,7 @@ function stringifyFlowCollection({
108
106
  if (iv) {
109
107
  if (iv.comment) comment = iv.comment;
110
108
  if (iv.commentBefore) reqNewline = true;
111
- } else if (item.value == null && ik && ik.comment) {
109
+ } else if (item.value == null && ik?.comment) {
112
110
  comment = ik.comment;
113
111
  }
114
112
  }
@@ -120,31 +118,25 @@ function stringifyFlowCollection({
120
118
  lines.push(str);
121
119
  linesAtValue = lines.length;
122
120
  }
123
- let str;
124
121
  const {
125
122
  start,
126
123
  end
127
124
  } = flowChars;
128
125
  if (lines.length === 0) {
129
- str = start + end;
126
+ return start + end;
130
127
  } else {
131
128
  if (!reqNewline) {
132
129
  const len = lines.reduce((sum, line) => sum + line.length + 2, 2);
133
- reqNewline = len > Collection.maxFlowStringSingleLineLength;
130
+ reqNewline = ctx.options.lineWidth > 0 && len > ctx.options.lineWidth;
134
131
  }
135
132
  if (reqNewline) {
136
- str = start;
133
+ let str = start;
137
134
  for (const line of lines) str += line ? `\n${indentStep}${indent}${line}` : '\n';
138
- str += `\n${indent}${end}`;
135
+ return `${str}\n${indent}${end}`;
139
136
  } else {
140
- str = `${start} ${lines.join(' ')} ${end}`;
137
+ return `${start}${fcPadding}${lines.join(' ')}${fcPadding}${end}`;
141
138
  }
142
139
  }
143
- if (comment) {
144
- str += lineComment(str, commentString(comment), indent);
145
- if (onComment) onComment();
146
- }
147
- return str;
148
140
  }
149
141
  function addCommentBefore({
150
142
  indent,
@@ -1,4 +1,4 @@
1
- import { isNode } from '../nodes/Node.mjs';
1
+ import { isNode } from '../nodes/identity.mjs';
2
2
  import { createStringifyContext, stringify } from './stringify.mjs';
3
3
  import { indentComment, lineComment } from './stringifyComment.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { isNode, isCollection, isScalar, isSeq } from '../nodes/Node.mjs';
1
+ import { isNode, isCollection, isScalar, isSeq } from '../nodes/identity.mjs';
2
2
  import { Scalar } from '../nodes/Scalar.mjs';
3
3
  import { stringify } from './stringify.mjs';
4
4
  import { lineComment, indentComment } from './stringifyComment.mjs';
@@ -23,7 +23,7 @@ function stringifyPair({
23
23
  if (keyComment) {
24
24
  throw new Error('With simple keys, key nodes cannot have comments');
25
25
  }
26
- if (isCollection(key)) {
26
+ if (isCollection(key) || !isNode(key) && typeof key === 'object') {
27
27
  const msg = 'With simple keys, collection cannot be used as a key value';
28
28
  throw new Error(msg);
29
29
  }
@@ -61,34 +61,57 @@ function stringifyPair({
61
61
  str = `${str}:`;
62
62
  if (keyComment) str += lineComment(str, ctx.indent, commentString(keyComment));
63
63
  }
64
- let vcb = '';
65
- let valueComment = null;
64
+ let vsb, vcb, valueComment;
66
65
  if (isNode(value)) {
67
- if (value.spaceBefore) vcb = '\n';
68
- if (value.commentBefore) {
69
- const cs = commentString(value.commentBefore);
70
- vcb += `\n${indentComment(cs, ctx.indent)}`;
71
- }
66
+ vsb = !!value.spaceBefore;
67
+ vcb = value.commentBefore;
72
68
  valueComment = value.comment;
73
- } else if (value && typeof value === 'object') {
74
- value = doc.createNode(value);
69
+ } else {
70
+ vsb = false;
71
+ vcb = null;
72
+ valueComment = null;
73
+ if (value && typeof value === 'object') value = doc.createNode(value);
75
74
  }
76
75
  ctx.implicitKey = false;
77
76
  if (!explicitKey && !keyComment && isScalar(value)) ctx.indentAtStart = str.length + 1;
78
77
  chompKeep = false;
79
78
  if (!indentSeq && indentStep.length >= 2 && !ctx.inFlow && !explicitKey && isSeq(value) && !value.flow && !value.tag && !value.anchor) {
80
79
  // If indentSeq === false, consider '- ' as part of indentation where possible
81
- ctx.indent = ctx.indent.substr(2);
80
+ ctx.indent = ctx.indent.substring(2);
82
81
  }
83
82
  let valueCommentDone = false;
84
83
  const valueStr = stringify(value, ctx, () => valueCommentDone = true, () => chompKeep = true);
85
84
  let ws = ' ';
86
- if (vcb || keyComment) {
87
- if (valueStr === '' && !ctx.inFlow) ws = vcb === '\n' ? '\n\n' : vcb;else ws = `${vcb}\n${ctx.indent}`;
85
+ if (keyComment || vsb || vcb) {
86
+ ws = vsb ? '\n' : '';
87
+ if (vcb) {
88
+ const cs = commentString(vcb);
89
+ ws += `\n${indentComment(cs, ctx.indent)}`;
90
+ }
91
+ if (valueStr === '' && !ctx.inFlow) {
92
+ if (ws === '\n') ws = '\n\n';
93
+ } else {
94
+ ws += `\n${ctx.indent}`;
95
+ }
88
96
  } else if (!explicitKey && isCollection(value)) {
89
- const flow = valueStr[0] === '[' || valueStr[0] === '{';
90
- if (!flow || valueStr.includes('\n')) ws = `\n${ctx.indent}`;
91
- } else if (valueStr === '' || valueStr[0] === '\n') ws = '';
97
+ const vs0 = valueStr[0];
98
+ const nl0 = valueStr.indexOf('\n');
99
+ const hasNewline = nl0 !== -1;
100
+ const flow = ctx.inFlow ?? value.flow ?? value.items.length === 0;
101
+ if (hasNewline || !flow) {
102
+ let hasPropsLine = false;
103
+ if (hasNewline && (vs0 === '&' || vs0 === '!')) {
104
+ let sp0 = valueStr.indexOf(' ');
105
+ if (vs0 === '&' && sp0 !== -1 && sp0 < nl0 && valueStr[sp0 + 1] === '!') {
106
+ sp0 = valueStr.indexOf(' ', sp0 + 1);
107
+ }
108
+ if (sp0 === -1 || nl0 < sp0) hasPropsLine = true;
109
+ }
110
+ if (!hasPropsLine) ws = `\n${ctx.indent}`;
111
+ }
112
+ } else if (valueStr === '' || valueStr[0] === '\n') {
113
+ ws = '';
114
+ }
92
115
  str += ws + valueStr;
93
116
  if (ctx.inFlow) {
94
117
  if (valueCommentDone && onComment) onComment();