@windrun-huaiin/dev-scripts 14.0.0 → 14.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +7 -0
  2. package/dist/_virtual/_commonjsHelpers.mjs +5 -0
  3. package/dist/_virtual/index.js +11 -0
  4. package/dist/_virtual/index.mjs +7 -0
  5. package/dist/_virtual/re.js +5 -0
  6. package/dist/_virtual/re.mjs +3 -0
  7. package/dist/cli.js +33 -1
  8. package/dist/cli.mjs +33 -1
  9. package/dist/commands/diaomao-update.d.ts +3 -0
  10. package/dist/commands/diaomao-update.d.ts.map +1 -0
  11. package/dist/commands/diaomao-update.js +304 -0
  12. package/dist/commands/diaomao-update.mjs +302 -0
  13. package/dist/config/index.d.ts.map +1 -1
  14. package/dist/config/index.js +9 -0
  15. package/dist/config/index.mjs +9 -0
  16. package/dist/config/schema.d.ts +5 -0
  17. package/dist/config/schema.d.ts.map +1 -1
  18. package/dist/config/schema.js +5 -0
  19. package/dist/config/schema.mjs +5 -0
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2 -0
  23. package/dist/index.mjs +1 -0
  24. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/comparator.js +161 -0
  25. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/comparator.mjs +159 -0
  26. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/range.js +576 -0
  27. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/range.mjs +574 -0
  28. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/semver.js +350 -0
  29. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/semver.mjs +348 -0
  30. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/clean.js +21 -0
  31. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/clean.mjs +19 -0
  32. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/cmp.js +72 -0
  33. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/cmp.mjs +70 -0
  34. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/coerce.js +77 -0
  35. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/coerce.mjs +75 -0
  36. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-build.js +22 -0
  37. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-build.mjs +20 -0
  38. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-loose.js +18 -0
  39. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-loose.mjs +16 -0
  40. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare.js +20 -0
  41. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare.mjs +18 -0
  42. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/diff.js +73 -0
  43. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/diff.mjs +71 -0
  44. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/eq.js +18 -0
  45. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/eq.mjs +16 -0
  46. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gt.js +18 -0
  47. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gt.mjs +16 -0
  48. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gte.js +18 -0
  49. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gte.mjs +16 -0
  50. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/inc.js +34 -0
  51. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/inc.mjs +32 -0
  52. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lt.js +18 -0
  53. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lt.mjs +16 -0
  54. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lte.js +18 -0
  55. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lte.mjs +16 -0
  56. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/major.js +18 -0
  57. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/major.mjs +16 -0
  58. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/minor.js +18 -0
  59. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/minor.mjs +16 -0
  60. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/neq.js +18 -0
  61. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/neq.mjs +16 -0
  62. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/parse.js +31 -0
  63. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/parse.mjs +29 -0
  64. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/patch.js +18 -0
  65. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/patch.mjs +16 -0
  66. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/prerelease.js +21 -0
  67. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/prerelease.mjs +19 -0
  68. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rcompare.js +18 -0
  69. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rcompare.mjs +16 -0
  70. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rsort.js +18 -0
  71. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rsort.mjs +16 -0
  72. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/satisfies.js +25 -0
  73. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/satisfies.mjs +23 -0
  74. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/sort.js +18 -0
  75. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/sort.mjs +16 -0
  76. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/valid.js +21 -0
  77. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/valid.mjs +19 -0
  78. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/index.js +144 -0
  79. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/index.mjs +142 -0
  80. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.js +48 -0
  81. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.mjs +46 -0
  82. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/debug.js +22 -0
  83. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/debug.mjs +20 -0
  84. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/identifiers.js +40 -0
  85. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/identifiers.mjs +38 -0
  86. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/lrucache.js +53 -0
  87. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/lrucache.mjs +51 -0
  88. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/parse-options.js +28 -0
  89. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/parse-options.mjs +26 -0
  90. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/re.js +239 -0
  91. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/re.mjs +237 -0
  92. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/gtr.js +19 -0
  93. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/gtr.mjs +17 -0
  94. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/intersects.js +22 -0
  95. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/intersects.mjs +20 -0
  96. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/ltr.js +19 -0
  97. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/ltr.mjs +17 -0
  98. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/max-satisfying.js +41 -0
  99. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/max-satisfying.mjs +39 -0
  100. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-satisfying.js +40 -0
  101. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-satisfying.mjs +38 -0
  102. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-version.js +78 -0
  103. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-version.mjs +76 -0
  104. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/outside.js +102 -0
  105. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/outside.mjs +100 -0
  106. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/simplify.js +63 -0
  107. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/simplify.mjs +61 -0
  108. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/subset.js +265 -0
  109. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/subset.mjs +263 -0
  110. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/to-comparators.js +23 -0
  111. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/to-comparators.mjs +21 -0
  112. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/valid.js +26 -0
  113. package/dist/node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/valid.mjs +24 -0
  114. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/compose-collection.js +90 -0
  115. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/compose-collection.mjs +88 -0
  116. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/compose-doc.js +45 -0
  117. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/compose-doc.mjs +43 -0
  118. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/compose-node.js +105 -0
  119. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/compose-node.mjs +102 -0
  120. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/compose-scalar.js +88 -0
  121. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/compose-scalar.mjs +86 -0
  122. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  123. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/composer.mjs +217 -0
  124. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-block-map.js +117 -0
  125. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-block-map.mjs +115 -0
  126. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +200 -0
  127. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-block-scalar.mjs +198 -0
  128. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +51 -0
  129. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-block-seq.mjs +49 -0
  130. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-end.js +39 -0
  131. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-end.mjs +37 -0
  132. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +209 -0
  133. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-flow-collection.mjs +207 -0
  134. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
  135. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.mjs +223 -0
  136. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-props.js +148 -0
  137. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/resolve-props.mjs +146 -0
  138. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/util-contains-newline.js +36 -0
  139. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/util-contains-newline.mjs +34 -0
  140. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +28 -0
  141. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.mjs +26 -0
  142. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +17 -0
  143. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/util-flow-indent-check.mjs +15 -0
  144. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/util-map-includes.js +15 -0
  145. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/compose/util-map-includes.mjs +13 -0
  146. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/doc/Document.js +337 -0
  147. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/doc/Document.mjs +335 -0
  148. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/doc/anchors.js +76 -0
  149. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/doc/anchors.mjs +71 -0
  150. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/doc/applyReviver.js +57 -0
  151. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/doc/applyReviver.mjs +55 -0
  152. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/doc/createNode.js +90 -0
  153. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/doc/createNode.mjs +88 -0
  154. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/doc/directives.js +178 -0
  155. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/doc/directives.mjs +176 -0
  156. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/errors.js +62 -0
  157. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/errors.mjs +57 -0
  158. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/log.js +9 -0
  159. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/log.mjs +7 -0
  160. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
  161. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/Alias.mjs +114 -0
  162. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/Collection.js +151 -0
  163. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/Collection.mjs +147 -0
  164. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/Node.js +40 -0
  165. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/Node.mjs +38 -0
  166. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/Pair.js +39 -0
  167. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/Pair.mjs +36 -0
  168. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/Scalar.js +27 -0
  169. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/Scalar.mjs +24 -0
  170. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/YAMLMap.js +147 -0
  171. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/YAMLMap.mjs +144 -0
  172. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +115 -0
  173. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/YAMLSeq.mjs +113 -0
  174. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +65 -0
  175. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/addPairToJSMap.mjs +63 -0
  176. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/identity.js +53 -0
  177. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/identity.mjs +36 -0
  178. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/toJS.js +39 -0
  179. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/nodes/toJS.mjs +37 -0
  180. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/parse/cst.js +79 -0
  181. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/parse/cst.mjs +73 -0
  182. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/parse/lexer.js +719 -0
  183. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/parse/lexer.mjs +717 -0
  184. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/parse/line-counter.js +41 -0
  185. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/parse/line-counter.mjs +39 -0
  186. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/parse/parser.js +969 -0
  187. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/parse/parser.mjs +967 -0
  188. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/public-api.js +68 -0
  189. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/public-api.mjs +64 -0
  190. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/Schema.js +39 -0
  191. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/Schema.mjs +37 -0
  192. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/common/map.js +19 -0
  193. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/common/map.mjs +17 -0
  194. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/common/null.js +17 -0
  195. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/common/null.mjs +15 -0
  196. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/common/seq.js +19 -0
  197. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/common/seq.mjs +17 -0
  198. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/common/string.js +16 -0
  199. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/common/string.mjs +14 -0
  200. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/core/bool.js +21 -0
  201. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/core/bool.mjs +19 -0
  202. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/core/float.js +47 -0
  203. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/core/float.mjs +43 -0
  204. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/core/int.js +42 -0
  205. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/core/int.mjs +38 -0
  206. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/core/schema.js +25 -0
  207. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/core/schema.mjs +23 -0
  208. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/json/schema.js +64 -0
  209. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/json/schema.mjs +62 -0
  210. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/tags.js +99 -0
  211. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/tags.mjs +96 -0
  212. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +60 -0
  213. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.mjs +58 -0
  214. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +29 -0
  215. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.mjs +26 -0
  216. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +50 -0
  217. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/float.mjs +46 -0
  218. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +76 -0
  219. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/int.mjs +71 -0
  220. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +68 -0
  221. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.mjs +64 -0
  222. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +77 -0
  223. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.mjs +74 -0
  224. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +82 -0
  225. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.mjs +78 -0
  226. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +41 -0
  227. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.mjs +39 -0
  228. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +96 -0
  229. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/set.mjs +93 -0
  230. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +105 -0
  231. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.mjs +101 -0
  232. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +151 -0
  233. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/foldFlowLines.mjs +146 -0
  234. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringify.js +131 -0
  235. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringify.mjs +128 -0
  236. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +145 -0
  237. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyCollection.mjs +143 -0
  238. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyComment.js +24 -0
  239. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyComment.mjs +20 -0
  240. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +87 -0
  241. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyDocument.mjs +85 -0
  242. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +26 -0
  243. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyNumber.mjs +24 -0
  244. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyPair.js +152 -0
  245. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyPair.mjs +150 -0
  246. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyString.js +338 -0
  247. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/stringify/stringifyString.mjs +336 -0
  248. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/visit.js +148 -0
  249. package/dist/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/browser/dist/visit.mjs +146 -0
  250. package/package.json +6 -4
@@ -0,0 +1,209 @@
1
+ 'use strict';
2
+
3
+ var identity = require('../nodes/identity.js');
4
+ var Pair = require('../nodes/Pair.js');
5
+ var YAMLMap = require('../nodes/YAMLMap.js');
6
+ var YAMLSeq = require('../nodes/YAMLSeq.js');
7
+ var resolveEnd = require('./resolve-end.js');
8
+ var resolveProps = require('./resolve-props.js');
9
+ var utilContainsNewline = require('./util-contains-newline.js');
10
+ var utilMapIncludes = require('./util-map-includes.js');
11
+
12
+ const blockMsg = 'Block collections are not allowed within flow collections';
13
+ const isBlock = (token) => token && (token.type === 'block-map' || token.type === 'block-seq');
14
+ function resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onError, tag) {
15
+ const isMap = fc.start.source === '{';
16
+ const fcName = isMap ? 'flow map' : 'flow sequence';
17
+ const NodeClass = (tag?.nodeClass ?? (isMap ? YAMLMap.YAMLMap : YAMLSeq.YAMLSeq));
18
+ const coll = new NodeClass(ctx.schema);
19
+ coll.flow = true;
20
+ const atRoot = ctx.atRoot;
21
+ if (atRoot)
22
+ ctx.atRoot = false;
23
+ if (ctx.atKey)
24
+ ctx.atKey = false;
25
+ let offset = fc.offset + fc.start.source.length;
26
+ for (let i = 0; i < fc.items.length; ++i) {
27
+ const collItem = fc.items[i];
28
+ const { start, key, sep, value } = collItem;
29
+ const props = resolveProps.resolveProps(start, {
30
+ flow: fcName,
31
+ indicator: 'explicit-key-ind',
32
+ next: key ?? sep?.[0],
33
+ offset,
34
+ onError,
35
+ parentIndent: fc.indent,
36
+ startOnNewline: false
37
+ });
38
+ if (!props.found) {
39
+ if (!props.anchor && !props.tag && !sep && !value) {
40
+ if (i === 0 && props.comma)
41
+ onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);
42
+ else if (i < fc.items.length - 1)
43
+ onError(props.start, 'UNEXPECTED_TOKEN', `Unexpected empty item in ${fcName}`);
44
+ if (props.comment) {
45
+ if (coll.comment)
46
+ coll.comment += '\n' + props.comment;
47
+ else
48
+ coll.comment = props.comment;
49
+ }
50
+ offset = props.end;
51
+ continue;
52
+ }
53
+ if (!isMap && ctx.options.strict && utilContainsNewline.containsNewline(key))
54
+ onError(key, // checked by containsNewline()
55
+ 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');
56
+ }
57
+ if (i === 0) {
58
+ if (props.comma)
59
+ onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);
60
+ }
61
+ else {
62
+ if (!props.comma)
63
+ onError(props.start, 'MISSING_CHAR', `Missing , between ${fcName} items`);
64
+ if (props.comment) {
65
+ let prevItemComment = '';
66
+ loop: for (const st of start) {
67
+ switch (st.type) {
68
+ case 'comma':
69
+ case 'space':
70
+ break;
71
+ case 'comment':
72
+ prevItemComment = st.source.substring(1);
73
+ break loop;
74
+ default:
75
+ break loop;
76
+ }
77
+ }
78
+ if (prevItemComment) {
79
+ let prev = coll.items[coll.items.length - 1];
80
+ if (identity.isPair(prev))
81
+ prev = prev.value ?? prev.key;
82
+ if (prev.comment)
83
+ prev.comment += '\n' + prevItemComment;
84
+ else
85
+ prev.comment = prevItemComment;
86
+ props.comment = props.comment.substring(prevItemComment.length + 1);
87
+ }
88
+ }
89
+ }
90
+ if (!isMap && !sep && !props.found) {
91
+ // item is a value in a seq
92
+ // → key & sep are empty, start does not include ? or :
93
+ const valueNode = value
94
+ ? composeNode(ctx, value, props, onError)
95
+ : composeEmptyNode(ctx, props.end, sep, null, props, onError);
96
+ coll.items.push(valueNode);
97
+ offset = valueNode.range[2];
98
+ if (isBlock(value))
99
+ onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);
100
+ }
101
+ else {
102
+ // item is a key+value pair
103
+ // key value
104
+ ctx.atKey = true;
105
+ const keyStart = props.end;
106
+ const keyNode = key
107
+ ? composeNode(ctx, key, props, onError)
108
+ : composeEmptyNode(ctx, keyStart, start, null, props, onError);
109
+ if (isBlock(key))
110
+ onError(keyNode.range, 'BLOCK_IN_FLOW', blockMsg);
111
+ ctx.atKey = false;
112
+ // value properties
113
+ const valueProps = resolveProps.resolveProps(sep ?? [], {
114
+ flow: fcName,
115
+ indicator: 'map-value-ind',
116
+ next: value,
117
+ offset: keyNode.range[2],
118
+ onError,
119
+ parentIndent: fc.indent,
120
+ startOnNewline: false
121
+ });
122
+ if (valueProps.found) {
123
+ if (!isMap && !props.found && ctx.options.strict) {
124
+ if (sep)
125
+ for (const st of sep) {
126
+ if (st === valueProps.found)
127
+ break;
128
+ if (st.type === 'newline') {
129
+ onError(st, 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');
130
+ break;
131
+ }
132
+ }
133
+ if (props.start < valueProps.found.offset - 1024)
134
+ onError(valueProps.found, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit flow sequence key');
135
+ }
136
+ }
137
+ else if (value) {
138
+ if ('source' in value && value.source?.[0] === ':')
139
+ onError(value, 'MISSING_CHAR', `Missing space after : in ${fcName}`);
140
+ else
141
+ onError(valueProps.start, 'MISSING_CHAR', `Missing , or : between ${fcName} items`);
142
+ }
143
+ // value value
144
+ const valueNode = value
145
+ ? composeNode(ctx, value, valueProps, onError)
146
+ : valueProps.found
147
+ ? composeEmptyNode(ctx, valueProps.end, sep, null, valueProps, onError)
148
+ : null;
149
+ if (valueNode) {
150
+ if (isBlock(value))
151
+ onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);
152
+ }
153
+ else if (valueProps.comment) {
154
+ if (keyNode.comment)
155
+ keyNode.comment += '\n' + valueProps.comment;
156
+ else
157
+ keyNode.comment = valueProps.comment;
158
+ }
159
+ const pair = new Pair.Pair(keyNode, valueNode);
160
+ if (ctx.options.keepSourceTokens)
161
+ pair.srcToken = collItem;
162
+ if (isMap) {
163
+ const map = coll;
164
+ if (utilMapIncludes.mapIncludes(ctx, map.items, keyNode))
165
+ onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');
166
+ map.items.push(pair);
167
+ }
168
+ else {
169
+ const map = new YAMLMap.YAMLMap(ctx.schema);
170
+ map.flow = true;
171
+ map.items.push(pair);
172
+ const endRange = (valueNode ?? keyNode).range;
173
+ map.range = [keyNode.range[0], endRange[1], endRange[2]];
174
+ coll.items.push(map);
175
+ }
176
+ offset = valueNode ? valueNode.range[2] : valueProps.end;
177
+ }
178
+ }
179
+ const expectedEnd = isMap ? '}' : ']';
180
+ const [ce, ...ee] = fc.end;
181
+ let cePos = offset;
182
+ if (ce?.source === expectedEnd)
183
+ cePos = ce.offset + ce.source.length;
184
+ else {
185
+ const name = fcName[0].toUpperCase() + fcName.substring(1);
186
+ const msg = atRoot
187
+ ? `${name} must end with a ${expectedEnd}`
188
+ : `${name} in block collection must be sufficiently indented and end with a ${expectedEnd}`;
189
+ onError(offset, atRoot ? 'MISSING_CHAR' : 'BAD_INDENT', msg);
190
+ if (ce && ce.source.length !== 1)
191
+ ee.unshift(ce);
192
+ }
193
+ if (ee.length > 0) {
194
+ const end = resolveEnd.resolveEnd(ee, cePos, ctx.options.strict, onError);
195
+ if (end.comment) {
196
+ if (coll.comment)
197
+ coll.comment += '\n' + end.comment;
198
+ else
199
+ coll.comment = end.comment;
200
+ }
201
+ coll.range = [fc.offset, cePos, end.offset];
202
+ }
203
+ else {
204
+ coll.range = [fc.offset, cePos, cePos];
205
+ }
206
+ return coll;
207
+ }
208
+
209
+ exports.resolveFlowCollection = resolveFlowCollection;
@@ -0,0 +1,207 @@
1
+ import { isPair } from '../nodes/identity.mjs';
2
+ import { Pair } from '../nodes/Pair.mjs';
3
+ import { YAMLMap } from '../nodes/YAMLMap.mjs';
4
+ import { YAMLSeq } from '../nodes/YAMLSeq.mjs';
5
+ import { resolveEnd } from './resolve-end.mjs';
6
+ import { resolveProps } from './resolve-props.mjs';
7
+ import { containsNewline } from './util-contains-newline.mjs';
8
+ import { mapIncludes } from './util-map-includes.mjs';
9
+
10
+ const blockMsg = 'Block collections are not allowed within flow collections';
11
+ const isBlock = (token) => token && (token.type === 'block-map' || token.type === 'block-seq');
12
+ function resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onError, tag) {
13
+ const isMap = fc.start.source === '{';
14
+ const fcName = isMap ? 'flow map' : 'flow sequence';
15
+ const NodeClass = (tag?.nodeClass ?? (isMap ? YAMLMap : YAMLSeq));
16
+ const coll = new NodeClass(ctx.schema);
17
+ coll.flow = true;
18
+ const atRoot = ctx.atRoot;
19
+ if (atRoot)
20
+ ctx.atRoot = false;
21
+ if (ctx.atKey)
22
+ ctx.atKey = false;
23
+ let offset = fc.offset + fc.start.source.length;
24
+ for (let i = 0; i < fc.items.length; ++i) {
25
+ const collItem = fc.items[i];
26
+ const { start, key, sep, value } = collItem;
27
+ const props = resolveProps(start, {
28
+ flow: fcName,
29
+ indicator: 'explicit-key-ind',
30
+ next: key ?? sep?.[0],
31
+ offset,
32
+ onError,
33
+ parentIndent: fc.indent,
34
+ startOnNewline: false
35
+ });
36
+ if (!props.found) {
37
+ if (!props.anchor && !props.tag && !sep && !value) {
38
+ if (i === 0 && props.comma)
39
+ onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);
40
+ else if (i < fc.items.length - 1)
41
+ onError(props.start, 'UNEXPECTED_TOKEN', `Unexpected empty item in ${fcName}`);
42
+ if (props.comment) {
43
+ if (coll.comment)
44
+ coll.comment += '\n' + props.comment;
45
+ else
46
+ coll.comment = props.comment;
47
+ }
48
+ offset = props.end;
49
+ continue;
50
+ }
51
+ if (!isMap && ctx.options.strict && containsNewline(key))
52
+ onError(key, // checked by containsNewline()
53
+ 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');
54
+ }
55
+ if (i === 0) {
56
+ if (props.comma)
57
+ onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);
58
+ }
59
+ else {
60
+ if (!props.comma)
61
+ onError(props.start, 'MISSING_CHAR', `Missing , between ${fcName} items`);
62
+ if (props.comment) {
63
+ let prevItemComment = '';
64
+ loop: for (const st of start) {
65
+ switch (st.type) {
66
+ case 'comma':
67
+ case 'space':
68
+ break;
69
+ case 'comment':
70
+ prevItemComment = st.source.substring(1);
71
+ break loop;
72
+ default:
73
+ break loop;
74
+ }
75
+ }
76
+ if (prevItemComment) {
77
+ let prev = coll.items[coll.items.length - 1];
78
+ if (isPair(prev))
79
+ prev = prev.value ?? prev.key;
80
+ if (prev.comment)
81
+ prev.comment += '\n' + prevItemComment;
82
+ else
83
+ prev.comment = prevItemComment;
84
+ props.comment = props.comment.substring(prevItemComment.length + 1);
85
+ }
86
+ }
87
+ }
88
+ if (!isMap && !sep && !props.found) {
89
+ // item is a value in a seq
90
+ // → key & sep are empty, start does not include ? or :
91
+ const valueNode = value
92
+ ? composeNode(ctx, value, props, onError)
93
+ : composeEmptyNode(ctx, props.end, sep, null, props, onError);
94
+ coll.items.push(valueNode);
95
+ offset = valueNode.range[2];
96
+ if (isBlock(value))
97
+ onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);
98
+ }
99
+ else {
100
+ // item is a key+value pair
101
+ // key value
102
+ ctx.atKey = true;
103
+ const keyStart = props.end;
104
+ const keyNode = key
105
+ ? composeNode(ctx, key, props, onError)
106
+ : composeEmptyNode(ctx, keyStart, start, null, props, onError);
107
+ if (isBlock(key))
108
+ onError(keyNode.range, 'BLOCK_IN_FLOW', blockMsg);
109
+ ctx.atKey = false;
110
+ // value properties
111
+ const valueProps = resolveProps(sep ?? [], {
112
+ flow: fcName,
113
+ indicator: 'map-value-ind',
114
+ next: value,
115
+ offset: keyNode.range[2],
116
+ onError,
117
+ parentIndent: fc.indent,
118
+ startOnNewline: false
119
+ });
120
+ if (valueProps.found) {
121
+ if (!isMap && !props.found && ctx.options.strict) {
122
+ if (sep)
123
+ for (const st of sep) {
124
+ if (st === valueProps.found)
125
+ break;
126
+ if (st.type === 'newline') {
127
+ onError(st, 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');
128
+ break;
129
+ }
130
+ }
131
+ if (props.start < valueProps.found.offset - 1024)
132
+ onError(valueProps.found, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit flow sequence key');
133
+ }
134
+ }
135
+ else if (value) {
136
+ if ('source' in value && value.source?.[0] === ':')
137
+ onError(value, 'MISSING_CHAR', `Missing space after : in ${fcName}`);
138
+ else
139
+ onError(valueProps.start, 'MISSING_CHAR', `Missing , or : between ${fcName} items`);
140
+ }
141
+ // value value
142
+ const valueNode = value
143
+ ? composeNode(ctx, value, valueProps, onError)
144
+ : valueProps.found
145
+ ? composeEmptyNode(ctx, valueProps.end, sep, null, valueProps, onError)
146
+ : null;
147
+ if (valueNode) {
148
+ if (isBlock(value))
149
+ onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);
150
+ }
151
+ else if (valueProps.comment) {
152
+ if (keyNode.comment)
153
+ keyNode.comment += '\n' + valueProps.comment;
154
+ else
155
+ keyNode.comment = valueProps.comment;
156
+ }
157
+ const pair = new Pair(keyNode, valueNode);
158
+ if (ctx.options.keepSourceTokens)
159
+ pair.srcToken = collItem;
160
+ if (isMap) {
161
+ const map = coll;
162
+ if (mapIncludes(ctx, map.items, keyNode))
163
+ onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');
164
+ map.items.push(pair);
165
+ }
166
+ else {
167
+ const map = new YAMLMap(ctx.schema);
168
+ map.flow = true;
169
+ map.items.push(pair);
170
+ const endRange = (valueNode ?? keyNode).range;
171
+ map.range = [keyNode.range[0], endRange[1], endRange[2]];
172
+ coll.items.push(map);
173
+ }
174
+ offset = valueNode ? valueNode.range[2] : valueProps.end;
175
+ }
176
+ }
177
+ const expectedEnd = isMap ? '}' : ']';
178
+ const [ce, ...ee] = fc.end;
179
+ let cePos = offset;
180
+ if (ce?.source === expectedEnd)
181
+ cePos = ce.offset + ce.source.length;
182
+ else {
183
+ const name = fcName[0].toUpperCase() + fcName.substring(1);
184
+ const msg = atRoot
185
+ ? `${name} must end with a ${expectedEnd}`
186
+ : `${name} in block collection must be sufficiently indented and end with a ${expectedEnd}`;
187
+ onError(offset, atRoot ? 'MISSING_CHAR' : 'BAD_INDENT', msg);
188
+ if (ce && ce.source.length !== 1)
189
+ ee.unshift(ce);
190
+ }
191
+ if (ee.length > 0) {
192
+ const end = resolveEnd(ee, cePos, ctx.options.strict, onError);
193
+ if (end.comment) {
194
+ if (coll.comment)
195
+ coll.comment += '\n' + end.comment;
196
+ else
197
+ coll.comment = end.comment;
198
+ }
199
+ coll.range = [fc.offset, cePos, end.offset];
200
+ }
201
+ else {
202
+ coll.range = [fc.offset, cePos, cePos];
203
+ }
204
+ return coll;
205
+ }
206
+
207
+ export { resolveFlowCollection };
@@ -0,0 +1,225 @@
1
+ 'use strict';
2
+
3
+ var Scalar = require('../nodes/Scalar.js');
4
+ var resolveEnd = require('./resolve-end.js');
5
+
6
+ function resolveFlowScalar(scalar, strict, onError) {
7
+ const { offset, type, source, end } = scalar;
8
+ let _type;
9
+ let value;
10
+ const _onError = (rel, code, msg) => onError(offset + rel, code, msg);
11
+ switch (type) {
12
+ case 'scalar':
13
+ _type = Scalar.Scalar.PLAIN;
14
+ value = plainValue(source, _onError);
15
+ break;
16
+ case 'single-quoted-scalar':
17
+ _type = Scalar.Scalar.QUOTE_SINGLE;
18
+ value = singleQuotedValue(source, _onError);
19
+ break;
20
+ case 'double-quoted-scalar':
21
+ _type = Scalar.Scalar.QUOTE_DOUBLE;
22
+ value = doubleQuotedValue(source, _onError);
23
+ break;
24
+ /* istanbul ignore next should not happen */
25
+ default:
26
+ onError(scalar, 'UNEXPECTED_TOKEN', `Expected a flow scalar value, but found: ${type}`);
27
+ return {
28
+ value: '',
29
+ type: null,
30
+ comment: '',
31
+ range: [offset, offset + source.length, offset + source.length]
32
+ };
33
+ }
34
+ const valueEnd = offset + source.length;
35
+ const re = resolveEnd.resolveEnd(end, valueEnd, strict, onError);
36
+ return {
37
+ value,
38
+ type: _type,
39
+ comment: re.comment,
40
+ range: [offset, valueEnd, re.offset]
41
+ };
42
+ }
43
+ function plainValue(source, onError) {
44
+ let badChar = '';
45
+ switch (source[0]) {
46
+ /* istanbul ignore next should not happen */
47
+ case '\t':
48
+ badChar = 'a tab character';
49
+ break;
50
+ case ',':
51
+ badChar = 'flow indicator character ,';
52
+ break;
53
+ case '%':
54
+ badChar = 'directive indicator character %';
55
+ break;
56
+ case '|':
57
+ case '>': {
58
+ badChar = `block scalar indicator ${source[0]}`;
59
+ break;
60
+ }
61
+ case '@':
62
+ case '`': {
63
+ badChar = `reserved character ${source[0]}`;
64
+ break;
65
+ }
66
+ }
67
+ if (badChar)
68
+ onError(0, 'BAD_SCALAR_START', `Plain value cannot start with ${badChar}`);
69
+ return foldLines(source);
70
+ }
71
+ function singleQuotedValue(source, onError) {
72
+ if (source[source.length - 1] !== "'" || source.length === 1)
73
+ onError(source.length, 'MISSING_CHAR', "Missing closing 'quote");
74
+ return foldLines(source.slice(1, -1)).replace(/''/g, "'");
75
+ }
76
+ function foldLines(source) {
77
+ /**
78
+ * The negative lookbehind here and in the `re` RegExp is to
79
+ * prevent causing a polynomial search time in certain cases.
80
+ *
81
+ * The try-catch is for Safari, which doesn't support this yet:
82
+ * https://caniuse.com/js-regexp-lookbehind
83
+ */
84
+ let first, line;
85
+ try {
86
+ first = new RegExp('(.*?)(?<![ \t])[ \t]*\r?\n', 'sy');
87
+ line = new RegExp('[ \t]*(.*?)(?:(?<![ \t])[ \t]*)?\r?\n', 'sy');
88
+ }
89
+ catch {
90
+ first = /(.*?)[ \t]*\r?\n/sy;
91
+ line = /[ \t]*(.*?)[ \t]*\r?\n/sy;
92
+ }
93
+ let match = first.exec(source);
94
+ if (!match)
95
+ return source;
96
+ let res = match[1];
97
+ let sep = ' ';
98
+ let pos = first.lastIndex;
99
+ line.lastIndex = pos;
100
+ while ((match = line.exec(source))) {
101
+ if (match[1] === '') {
102
+ if (sep === '\n')
103
+ res += sep;
104
+ else
105
+ sep = '\n';
106
+ }
107
+ else {
108
+ res += sep + match[1];
109
+ sep = ' ';
110
+ }
111
+ pos = line.lastIndex;
112
+ }
113
+ const last = /[ \t]*(.*)/sy;
114
+ last.lastIndex = pos;
115
+ match = last.exec(source);
116
+ return res + sep + (match?.[1] ?? '');
117
+ }
118
+ function doubleQuotedValue(source, onError) {
119
+ let res = '';
120
+ for (let i = 1; i < source.length - 1; ++i) {
121
+ const ch = source[i];
122
+ if (ch === '\r' && source[i + 1] === '\n')
123
+ continue;
124
+ if (ch === '\n') {
125
+ const { fold, offset } = foldNewline(source, i);
126
+ res += fold;
127
+ i = offset;
128
+ }
129
+ else if (ch === '\\') {
130
+ let next = source[++i];
131
+ const cc = escapeCodes[next];
132
+ if (cc)
133
+ res += cc;
134
+ else if (next === '\n') {
135
+ // skip escaped newlines, but still trim the following line
136
+ next = source[i + 1];
137
+ while (next === ' ' || next === '\t')
138
+ next = source[++i + 1];
139
+ }
140
+ else if (next === '\r' && source[i + 1] === '\n') {
141
+ // skip escaped CRLF newlines, but still trim the following line
142
+ next = source[++i + 1];
143
+ while (next === ' ' || next === '\t')
144
+ next = source[++i + 1];
145
+ }
146
+ else if (next === 'x' || next === 'u' || next === 'U') {
147
+ const length = { x: 2, u: 4, U: 8 }[next];
148
+ res += parseCharCode(source, i + 1, length, onError);
149
+ i += length;
150
+ }
151
+ else {
152
+ const raw = source.substr(i - 1, 2);
153
+ onError(i - 1, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);
154
+ res += raw;
155
+ }
156
+ }
157
+ else if (ch === ' ' || ch === '\t') {
158
+ // trim trailing whitespace
159
+ const wsStart = i;
160
+ let next = source[i + 1];
161
+ while (next === ' ' || next === '\t')
162
+ next = source[++i + 1];
163
+ if (next !== '\n' && !(next === '\r' && source[i + 2] === '\n'))
164
+ res += i > wsStart ? source.slice(wsStart, i + 1) : ch;
165
+ }
166
+ else {
167
+ res += ch;
168
+ }
169
+ }
170
+ if (source[source.length - 1] !== '"' || source.length === 1)
171
+ onError(source.length, 'MISSING_CHAR', 'Missing closing "quote');
172
+ return res;
173
+ }
174
+ /**
175
+ * Fold a single newline into a space, multiple newlines to N - 1 newlines.
176
+ * Presumes `source[offset] === '\n'`
177
+ */
178
+ function foldNewline(source, offset) {
179
+ let fold = '';
180
+ let ch = source[offset + 1];
181
+ while (ch === ' ' || ch === '\t' || ch === '\n' || ch === '\r') {
182
+ if (ch === '\r' && source[offset + 2] !== '\n')
183
+ break;
184
+ if (ch === '\n')
185
+ fold += '\n';
186
+ offset += 1;
187
+ ch = source[offset + 1];
188
+ }
189
+ if (!fold)
190
+ fold = ' ';
191
+ return { fold, offset };
192
+ }
193
+ const escapeCodes = {
194
+ '0': '\0', // null character
195
+ a: '\x07', // bell character
196
+ b: '\b', // backspace
197
+ e: '\x1b', // escape character
198
+ f: '\f', // form feed
199
+ n: '\n', // line feed
200
+ r: '\r', // carriage return
201
+ t: '\t', // horizontal tab
202
+ v: '\v', // vertical tab
203
+ N: '\u0085', // Unicode next line
204
+ _: '\u00a0', // Unicode non-breaking space
205
+ L: '\u2028', // Unicode line separator
206
+ P: '\u2029', // Unicode paragraph separator
207
+ ' ': ' ',
208
+ '"': '"',
209
+ '/': '/',
210
+ '\\': '\\',
211
+ '\t': '\t'
212
+ };
213
+ function parseCharCode(source, offset, length, onError) {
214
+ const cc = source.substr(offset, length);
215
+ const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);
216
+ const code = ok ? parseInt(cc, 16) : NaN;
217
+ if (isNaN(code)) {
218
+ const raw = source.substr(offset - 2, length + 2);
219
+ onError(offset - 2, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);
220
+ return raw;
221
+ }
222
+ return String.fromCodePoint(code);
223
+ }
224
+
225
+ exports.resolveFlowScalar = resolveFlowScalar;