projen 0.51.7 → 0.51.8

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 (385) hide show
  1. package/.jsii +42 -6
  2. package/API.md +10 -0
  3. package/changelog.md +1 -6
  4. package/lib/awscdk/auto-discover.js +1 -1
  5. package/lib/awscdk/awscdk-app-java.js +1 -1
  6. package/lib/awscdk/awscdk-app-ts.js +1 -1
  7. package/lib/awscdk/awscdk-construct.js +2 -2
  8. package/lib/awscdk/awscdk-deps-java.js +1 -1
  9. package/lib/awscdk/awscdk-deps-js.js +1 -1
  10. package/lib/awscdk/awscdk-deps.js +1 -1
  11. package/lib/awscdk/cdk-config.js +1 -1
  12. package/lib/awscdk/cdk-tasks.js +1 -1
  13. package/lib/awscdk/integration-test.js +1 -1
  14. package/lib/awscdk/lambda-function.js +2 -2
  15. package/lib/build/build-workflow.js +1 -1
  16. package/lib/cdk/construct-lib.js +1 -1
  17. package/lib/cdk/jsii-docgen.js +1 -1
  18. package/lib/cdk/jsii-project.js +1 -1
  19. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  20. package/lib/cdk8s/cdk8s-construct.js +1 -1
  21. package/lib/cdktf/cdktf-construct.js +1 -1
  22. package/lib/component.js +1 -1
  23. package/lib/dependencies.js +1 -1
  24. package/lib/dev-env.js +1 -1
  25. package/lib/docker-compose.js +2 -2
  26. package/lib/file.js +1 -1
  27. package/lib/gitattributes.js +1 -1
  28. package/lib/github/auto-approve.js +1 -1
  29. package/lib/github/auto-merge.js +1 -1
  30. package/lib/github/dependabot.js +1 -1
  31. package/lib/github/github-project.js +1 -1
  32. package/lib/github/github.js +1 -1
  33. package/lib/github/mergify.js +1 -1
  34. package/lib/github/pr-template.js +1 -1
  35. package/lib/github/pull-request-lint.js +1 -1
  36. package/lib/github/stale.js +1 -1
  37. package/lib/github/task-workflow.js +1 -1
  38. package/lib/github/workflows.js +1 -1
  39. package/lib/gitlab/configuration.js +1 -1
  40. package/lib/gitlab/gitlab-configuration.js +1 -1
  41. package/lib/gitlab/nested-configuration.js +1 -1
  42. package/lib/gitpod.js +1 -1
  43. package/lib/ignore-file.js +1 -1
  44. package/lib/ini.js +1 -1
  45. package/lib/java/java-project.js +1 -1
  46. package/lib/java/junit.js +1 -1
  47. package/lib/java/maven-compile.js +1 -1
  48. package/lib/java/maven-packaging.js +1 -1
  49. package/lib/java/maven-sample.js +1 -1
  50. package/lib/java/pom.js +1 -1
  51. package/lib/java/projenrc.js +1 -1
  52. package/lib/javascript/bundler.js +1 -1
  53. package/lib/javascript/eslint.js +1 -1
  54. package/lib/javascript/jest.js +1 -1
  55. package/lib/javascript/node-package.js +1 -1
  56. package/lib/javascript/node-project.js +1 -1
  57. package/lib/javascript/npm-config.js +1 -1
  58. package/lib/javascript/prettier.js +1 -1
  59. package/lib/javascript/projenrc.js +1 -1
  60. package/lib/javascript/typescript-config.js +1 -1
  61. package/lib/javascript/upgrade-dependencies.js +2 -2
  62. package/lib/json.js +1 -1
  63. package/lib/license.js +1 -1
  64. package/lib/logger.js +1 -1
  65. package/lib/makefile.js +1 -1
  66. package/lib/object-file.js +1 -1
  67. package/lib/project-build.js +1 -1
  68. package/lib/project.js +1 -1
  69. package/lib/projects.js +1 -1
  70. package/lib/projenrc-json.js +1 -1
  71. package/lib/python/pip.js +1 -1
  72. package/lib/python/poetry.js +2 -2
  73. package/lib/python/projenrc.js +1 -1
  74. package/lib/python/pytest.js +1 -1
  75. package/lib/python/python-project.js +1 -1
  76. package/lib/python/python-sample.js +1 -1
  77. package/lib/python/requirements-file.js +1 -1
  78. package/lib/python/setuppy.js +1 -1
  79. package/lib/python/setuptools.js +1 -1
  80. package/lib/python/venv.js +1 -1
  81. package/lib/readme.js +1 -1
  82. package/lib/release/publisher.js +1 -1
  83. package/lib/release/release-trigger.js +1 -1
  84. package/lib/release/release.js +1 -1
  85. package/lib/sample-file.js +2 -2
  86. package/lib/semver.js +1 -1
  87. package/lib/source-code.js +1 -1
  88. package/lib/task-runtime.js +1 -1
  89. package/lib/task.js +1 -1
  90. package/lib/tasks.js +1 -1
  91. package/lib/testing.js +1 -1
  92. package/lib/textfile.js +1 -1
  93. package/lib/toml.js +1 -1
  94. package/lib/typescript/projenrc.js +1 -1
  95. package/lib/typescript/typescript-typedoc.js +1 -1
  96. package/lib/typescript/typescript.js +3 -3
  97. package/lib/version.js +1 -1
  98. package/lib/vscode/devcontainer.js +1 -1
  99. package/lib/vscode/launch-config.js +1 -1
  100. package/lib/vscode/vscode.js +1 -1
  101. package/lib/web/next.js +3 -3
  102. package/lib/web/postcss.js +1 -1
  103. package/lib/web/react.js +4 -4
  104. package/lib/web/tailwind.js +1 -1
  105. package/lib/xmlfile.js +1 -1
  106. package/lib/yaml.d.ts +13 -0
  107. package/lib/yaml.js +8 -3
  108. package/node_modules/yaml/LICENSE +1 -1
  109. package/node_modules/yaml/README.md +57 -41
  110. package/node_modules/yaml/browser/dist/compose/compose-collection.js +59 -0
  111. package/node_modules/yaml/browser/dist/compose/compose-doc.js +40 -0
  112. package/node_modules/yaml/browser/dist/compose/compose-node.js +81 -0
  113. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +81 -0
  114. package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  115. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +107 -0
  116. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +185 -0
  117. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +45 -0
  118. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  119. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +200 -0
  120. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +223 -0
  121. package/node_modules/yaml/browser/dist/compose/resolve-props.js +128 -0
  122. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  123. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +27 -0
  124. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  125. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +17 -0
  126. package/node_modules/yaml/browser/dist/doc/Document.js +321 -0
  127. package/node_modules/yaml/browser/dist/doc/anchors.js +72 -0
  128. package/node_modules/yaml/browser/dist/doc/applyReviver.js +54 -0
  129. package/node_modules/yaml/browser/dist/doc/createNode.js +84 -0
  130. package/node_modules/yaml/browser/dist/doc/directives.js +166 -0
  131. package/node_modules/yaml/browser/dist/errors.js +57 -0
  132. package/node_modules/yaml/browser/dist/index.js +18 -1002
  133. package/node_modules/yaml/browser/dist/log.js +14 -0
  134. package/node_modules/yaml/browser/dist/node_modules/tslib/tslib.es6.js +164 -0
  135. package/node_modules/yaml/browser/dist/nodes/Alias.js +94 -0
  136. package/node_modules/yaml/browser/dist/nodes/Collection.js +146 -0
  137. package/node_modules/yaml/browser/dist/nodes/Node.js +48 -0
  138. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  139. package/node_modules/yaml/browser/dist/nodes/Scalar.js +23 -0
  140. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +116 -0
  141. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +105 -0
  142. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +104 -0
  143. package/node_modules/yaml/browser/dist/nodes/toJS.js +35 -0
  144. package/node_modules/yaml/browser/dist/options.js +18 -0
  145. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +215 -0
  146. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  147. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  148. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  149. package/node_modules/yaml/browser/dist/parse/lexer.js +692 -0
  150. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  151. package/node_modules/yaml/browser/dist/parse/parser.js +882 -0
  152. package/node_modules/yaml/browser/dist/public-api.js +99 -0
  153. package/node_modules/yaml/browser/dist/schema/Schema.js +34 -0
  154. package/node_modules/yaml/browser/dist/schema/common/map.js +42 -0
  155. package/node_modules/yaml/browser/dist/schema/common/null.js +13 -0
  156. package/node_modules/yaml/browser/dist/schema/common/seq.js +33 -0
  157. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  158. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  159. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  160. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  161. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  162. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  163. package/node_modules/yaml/browser/dist/schema/tags.js +83 -0
  164. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +66 -0
  165. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  166. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  167. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  168. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +73 -0
  169. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +77 -0
  170. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +37 -0
  171. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +87 -0
  172. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  173. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +135 -0
  174. package/node_modules/yaml/browser/dist/stringify/stringify.js +124 -0
  175. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +152 -0
  176. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +18 -0
  177. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +68 -0
  178. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +24 -0
  179. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +122 -0
  180. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +314 -0
  181. package/node_modules/yaml/browser/dist/util.js +9 -2
  182. package/node_modules/yaml/browser/dist/visit.js +146 -0
  183. package/node_modules/yaml/browser/index.js +5 -1
  184. package/node_modules/yaml/browser/package.json +3 -0
  185. package/node_modules/yaml/dist/compose/compose-collection.d.ts +5 -0
  186. package/node_modules/yaml/dist/compose/compose-collection.js +61 -0
  187. package/node_modules/yaml/dist/compose/compose-doc.d.ts +6 -0
  188. package/node_modules/yaml/dist/compose/compose-doc.js +42 -0
  189. package/node_modules/yaml/dist/compose/compose-node.d.ts +26 -0
  190. package/node_modules/yaml/dist/compose/compose-node.js +84 -0
  191. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  192. package/node_modules/yaml/dist/compose/compose-scalar.js +83 -0
  193. package/node_modules/yaml/dist/compose/composer.d.ts +62 -0
  194. package/node_modules/yaml/dist/compose/composer.js +223 -0
  195. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  196. package/node_modules/yaml/dist/compose/resolve-block-map.js +109 -0
  197. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +10 -0
  198. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +187 -0
  199. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +5 -0
  200. package/node_modules/yaml/dist/compose/resolve-block-seq.js +47 -0
  201. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  202. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  203. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +6 -0
  204. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +202 -0
  205. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  206. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +225 -0
  207. package/node_modules/yaml/dist/compose/resolve-props.d.ts +21 -0
  208. package/node_modules/yaml/dist/compose/resolve-props.js +130 -0
  209. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  210. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  211. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  212. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +29 -0
  213. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  214. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  215. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  216. package/node_modules/yaml/dist/compose/util-map-includes.js +19 -0
  217. package/node_modules/yaml/dist/doc/Document.d.ts +139 -0
  218. package/node_modules/yaml/dist/doc/Document.js +323 -0
  219. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  220. package/node_modules/yaml/dist/doc/anchors.js +77 -0
  221. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  222. package/node_modules/yaml/dist/doc/applyReviver.js +56 -0
  223. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  224. package/node_modules/yaml/dist/doc/createNode.js +86 -0
  225. package/node_modules/yaml/dist/doc/directives.d.ts +47 -0
  226. package/node_modules/yaml/dist/doc/directives.js +168 -0
  227. package/node_modules/yaml/dist/errors.d.ts +21 -0
  228. package/node_modules/yaml/dist/errors.js +62 -0
  229. package/node_modules/yaml/dist/index.d.ts +19 -0
  230. package/node_modules/yaml/dist/index.js +49 -77
  231. package/node_modules/yaml/dist/log.d.ts +3 -0
  232. package/node_modules/yaml/dist/log.js +17 -0
  233. package/node_modules/yaml/dist/node_modules/tslib/tslib.es6.js +76 -0
  234. package/node_modules/yaml/dist/nodes/Alias.d.ts +28 -0
  235. package/node_modules/yaml/dist/nodes/Alias.js +96 -0
  236. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  237. package/node_modules/yaml/dist/nodes/Collection.js +150 -0
  238. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  239. package/node_modules/yaml/dist/nodes/Node.js +66 -0
  240. package/node_modules/yaml/dist/nodes/Pair.d.ts +21 -0
  241. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  242. package/node_modules/yaml/dist/nodes/Scalar.d.ts +42 -0
  243. package/node_modules/yaml/dist/nodes/Scalar.js +26 -0
  244. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +41 -0
  245. package/node_modules/yaml/dist/nodes/YAMLMap.js +119 -0
  246. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +55 -0
  247. package/node_modules/yaml/dist/nodes/YAMLSeq.js +107 -0
  248. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +3 -0
  249. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +106 -0
  250. package/node_modules/yaml/dist/nodes/toJS.d.ts +30 -0
  251. package/node_modules/yaml/dist/nodes/toJS.js +37 -0
  252. package/node_modules/yaml/dist/options.d.ts +338 -0
  253. package/node_modules/yaml/dist/options.js +20 -0
  254. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  255. package/node_modules/yaml/dist/parse/cst-scalar.js +219 -0
  256. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  257. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  258. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  259. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  260. package/node_modules/yaml/dist/parse/cst.d.ts +106 -0
  261. package/node_modules/yaml/dist/parse/cst.js +112 -0
  262. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  263. package/node_modules/yaml/dist/parse/lexer.js +694 -0
  264. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  265. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  266. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  267. package/node_modules/yaml/dist/parse/parser.js +886 -0
  268. package/node_modules/yaml/dist/public-api.d.ts +43 -0
  269. package/node_modules/yaml/dist/public-api.js +104 -0
  270. package/node_modules/yaml/dist/schema/Schema.d.ts +18 -0
  271. package/node_modules/yaml/dist/schema/Schema.js +36 -0
  272. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  273. package/node_modules/yaml/dist/schema/common/map.js +44 -0
  274. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  275. package/node_modules/yaml/dist/schema/common/null.js +15 -0
  276. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  277. package/node_modules/yaml/dist/schema/common/seq.js +35 -0
  278. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  279. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  280. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  281. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  282. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  283. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  284. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  285. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  286. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  287. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  288. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  289. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  290. package/node_modules/yaml/dist/schema/tags.d.ts +40 -0
  291. package/node_modules/yaml/dist/schema/tags.js +86 -0
  292. package/node_modules/yaml/dist/schema/types.d.ts +82 -0
  293. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  294. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +68 -0
  295. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  296. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  297. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  298. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  299. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  300. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  301. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +21 -0
  302. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +76 -0
  303. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  304. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +81 -0
  305. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  306. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +39 -0
  307. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +22 -0
  308. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +90 -0
  309. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  310. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  311. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  312. package/node_modules/yaml/dist/stringify/foldFlowLines.js +140 -0
  313. package/node_modules/yaml/dist/stringify/stringify.d.ts +20 -0
  314. package/node_modules/yaml/dist/stringify/stringify.js +127 -0
  315. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  316. package/node_modules/yaml/dist/stringify/stringifyCollection.js +154 -0
  317. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  318. package/node_modules/yaml/dist/stringify/stringifyComment.js +22 -0
  319. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +3 -0
  320. package/node_modules/yaml/dist/stringify/stringifyDocument.js +70 -0
  321. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  322. package/node_modules/yaml/dist/stringify/stringifyNumber.js +26 -0
  323. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  324. package/node_modules/yaml/dist/stringify/stringifyPair.js +124 -0
  325. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +3 -0
  326. package/node_modules/yaml/dist/stringify/stringifyString.js +316 -0
  327. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  328. package/node_modules/yaml/dist/test-events.js +126 -152
  329. package/node_modules/yaml/dist/util.d.ts +9 -0
  330. package/node_modules/yaml/dist/util.js +19 -14
  331. package/node_modules/yaml/dist/visit.d.ts +63 -0
  332. package/node_modules/yaml/dist/visit.js +148 -0
  333. package/node_modules/yaml/package.json +43 -55
  334. package/node_modules/yaml/util.d.ts +3 -86
  335. package/node_modules/yaml/util.js +2 -16
  336. package/package.json +2 -2
  337. package/releasetag.txt +1 -1
  338. package/version.txt +1 -1
  339. package/node_modules/yaml/browser/dist/PlainValue-b8036b75.js +0 -1275
  340. package/node_modules/yaml/browser/dist/Schema-e94716c8.js +0 -682
  341. package/node_modules/yaml/browser/dist/legacy-exports.js +0 -3
  342. package/node_modules/yaml/browser/dist/package.json +0 -1
  343. package/node_modules/yaml/browser/dist/parse-cst.js +0 -1904
  344. package/node_modules/yaml/browser/dist/resolveSeq-492ab440.js +0 -2419
  345. package/node_modules/yaml/browser/dist/types.js +0 -4
  346. package/node_modules/yaml/browser/dist/warnings-df54cb69.js +0 -499
  347. package/node_modules/yaml/browser/map.js +0 -2
  348. package/node_modules/yaml/browser/pair.js +0 -2
  349. package/node_modules/yaml/browser/parse-cst.js +0 -1
  350. package/node_modules/yaml/browser/scalar.js +0 -2
  351. package/node_modules/yaml/browser/schema.js +0 -9
  352. package/node_modules/yaml/browser/seq.js +0 -2
  353. package/node_modules/yaml/browser/types/binary.js +0 -8
  354. package/node_modules/yaml/browser/types/omap.js +0 -3
  355. package/node_modules/yaml/browser/types/pairs.js +0 -3
  356. package/node_modules/yaml/browser/types/set.js +0 -3
  357. package/node_modules/yaml/browser/types/timestamp.js +0 -10
  358. package/node_modules/yaml/browser/types.js +0 -1
  359. package/node_modules/yaml/browser/util.js +0 -1
  360. package/node_modules/yaml/dist/Document-9b4560a1.js +0 -757
  361. package/node_modules/yaml/dist/PlainValue-ec8e588e.js +0 -876
  362. package/node_modules/yaml/dist/Schema-88e323a7.js +0 -525
  363. package/node_modules/yaml/dist/legacy-exports.js +0 -16
  364. package/node_modules/yaml/dist/parse-cst.js +0 -1753
  365. package/node_modules/yaml/dist/resolveSeq-d03cb037.js +0 -2161
  366. package/node_modules/yaml/dist/types.js +0 -23
  367. package/node_modules/yaml/dist/warnings-1000a372.js +0 -416
  368. package/node_modules/yaml/index.d.ts +0 -372
  369. package/node_modules/yaml/index.js +0 -1
  370. package/node_modules/yaml/map.js +0 -2
  371. package/node_modules/yaml/pair.js +0 -2
  372. package/node_modules/yaml/parse-cst.d.ts +0 -191
  373. package/node_modules/yaml/parse-cst.js +0 -1
  374. package/node_modules/yaml/scalar.js +0 -2
  375. package/node_modules/yaml/schema.js +0 -9
  376. package/node_modules/yaml/seq.js +0 -2
  377. package/node_modules/yaml/types/binary.js +0 -8
  378. package/node_modules/yaml/types/omap.js +0 -3
  379. package/node_modules/yaml/types/pairs.js +0 -3
  380. package/node_modules/yaml/types/set.js +0 -3
  381. package/node_modules/yaml/types/timestamp.js +0 -10
  382. package/node_modules/yaml/types.d.ts +0 -407
  383. package/node_modules/yaml/types.js +0 -17
  384. package/node_modules/yaml/types.mjs +0 -17
  385. package/node_modules/yaml/util.mjs +0 -18
@@ -0,0 +1,81 @@
1
+ import { SCALAR, isScalar } from '../nodes/Node.js';
2
+ import { Scalar } from '../nodes/Scalar.js';
3
+ import { resolveBlockScalar } from './resolve-block-scalar.js';
4
+ import { resolveFlowScalar } from './resolve-flow-scalar.js';
5
+
6
+ function composeScalar(ctx, token, tagToken, onError) {
7
+ const { value, type, comment, range } = token.type === 'block-scalar'
8
+ ? resolveBlockScalar(token, ctx.options.strict, onError)
9
+ : resolveFlowScalar(token, ctx.options.strict, onError);
10
+ const tagName = tagToken
11
+ ? ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg))
12
+ : null;
13
+ const tag = tagToken && tagName
14
+ ? findScalarTagByName(ctx.schema, value, tagName, tagToken, onError)
15
+ : token.type === 'scalar'
16
+ ? findScalarTagByTest(ctx, value, token, onError)
17
+ : ctx.schema[SCALAR];
18
+ let scalar;
19
+ try {
20
+ const res = tag.resolve(value, msg => onError(tagToken || token, 'TAG_RESOLVE_FAILED', msg), ctx.options);
21
+ scalar = isScalar(res) ? res : new Scalar(res);
22
+ }
23
+ catch (error) {
24
+ const msg = error instanceof Error ? error.message : String(error);
25
+ onError(tagToken || token, 'TAG_RESOLVE_FAILED', msg);
26
+ scalar = new Scalar(value);
27
+ }
28
+ scalar.range = range;
29
+ scalar.source = value;
30
+ if (type)
31
+ scalar.type = type;
32
+ if (tagName)
33
+ scalar.tag = tagName;
34
+ if (tag.format)
35
+ scalar.format = tag.format;
36
+ if (comment)
37
+ scalar.comment = comment;
38
+ return scalar;
39
+ }
40
+ function findScalarTagByName(schema, value, tagName, tagToken, onError) {
41
+ var _a;
42
+ if (tagName === '!')
43
+ return schema[SCALAR]; // non-specific tag
44
+ const matchWithTest = [];
45
+ for (const tag of schema.tags) {
46
+ if (!tag.collection && tag.tag === tagName) {
47
+ if (tag.default && tag.test)
48
+ matchWithTest.push(tag);
49
+ else
50
+ return tag;
51
+ }
52
+ }
53
+ for (const tag of matchWithTest)
54
+ if ((_a = tag.test) === null || _a === void 0 ? void 0 : _a.test(value))
55
+ return tag;
56
+ const kt = schema.knownTags[tagName];
57
+ if (kt && !kt.collection) {
58
+ // Ensure that the known tag is available for stringifying,
59
+ // but does not get used by default.
60
+ schema.tags.push(Object.assign({}, kt, { default: false, test: undefined }));
61
+ return kt;
62
+ }
63
+ onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, tagName !== 'tag:yaml.org,2002:str');
64
+ return schema[SCALAR];
65
+ }
66
+ function findScalarTagByTest({ directives, schema }, value, token, onError) {
67
+ const tag = schema.tags.find(tag => { var _a; return tag.default && ((_a = tag.test) === null || _a === void 0 ? void 0 : _a.test(value)); }) || schema[SCALAR];
68
+ if (schema.compat) {
69
+ const compat = schema.compat.find(tag => { var _a; return tag.default && ((_a = tag.test) === null || _a === void 0 ? void 0 : _a.test(value)); }) ||
70
+ schema[SCALAR];
71
+ if (tag.tag !== compat.tag) {
72
+ const ts = directives.tagString(tag.tag);
73
+ const cs = directives.tagString(compat.tag);
74
+ const msg = `Value may be parsed as either ${ts} or ${cs}`;
75
+ onError(token, 'TAG_RESOLVE_FAILED', msg, true);
76
+ }
77
+ }
78
+ return tag;
79
+ }
80
+
81
+ export { composeScalar };
@@ -0,0 +1,219 @@
1
+ import { Directives } from '../doc/directives.js';
2
+ import { Document } from '../doc/Document.js';
3
+ import { YAMLWarning, YAMLParseError } from '../errors.js';
4
+ import { isCollection, isPair } from '../nodes/Node.js';
5
+ import { defaultOptions } from '../options.js';
6
+ import { composeDoc } from './compose-doc.js';
7
+ import { resolveEnd } from './resolve-end.js';
8
+
9
+ function getErrorPos(src) {
10
+ if (typeof src === 'number')
11
+ return [src, src + 1];
12
+ if (Array.isArray(src))
13
+ return src.length === 2 ? src : [src[0], src[1]];
14
+ const { offset, source } = src;
15
+ return [offset, offset + (typeof source === 'string' ? source.length : 1)];
16
+ }
17
+ function parsePrelude(prelude) {
18
+ var _a;
19
+ let comment = '';
20
+ let atComment = false;
21
+ let afterEmptyLine = false;
22
+ for (let i = 0; i < prelude.length; ++i) {
23
+ const source = prelude[i];
24
+ switch (source[0]) {
25
+ case '#':
26
+ comment +=
27
+ (comment === '' ? '' : afterEmptyLine ? '\n\n' : '\n') +
28
+ (source.substring(1) || ' ');
29
+ atComment = true;
30
+ afterEmptyLine = false;
31
+ break;
32
+ case '%':
33
+ if (((_a = prelude[i + 1]) === null || _a === void 0 ? void 0 : _a[0]) !== '#')
34
+ i += 1;
35
+ atComment = false;
36
+ break;
37
+ default:
38
+ // This may be wrong after doc-end, but in that case it doesn't matter
39
+ if (!atComment)
40
+ afterEmptyLine = true;
41
+ atComment = false;
42
+ }
43
+ }
44
+ return { comment, afterEmptyLine };
45
+ }
46
+ /**
47
+ * Compose a stream of CST nodes into a stream of YAML Documents.
48
+ *
49
+ * ```ts
50
+ * import { Composer, Parser } from 'yaml'
51
+ *
52
+ * const src: string = ...
53
+ * const tokens = new Parser().parse(src)
54
+ * const docs = new Composer().compose(tokens)
55
+ * ```
56
+ */
57
+ class Composer {
58
+ constructor(options = {}) {
59
+ this.doc = null;
60
+ this.atDirectives = false;
61
+ this.prelude = [];
62
+ this.errors = [];
63
+ this.warnings = [];
64
+ this.onError = (source, code, message, warning) => {
65
+ const pos = getErrorPos(source);
66
+ if (warning)
67
+ this.warnings.push(new YAMLWarning(pos, code, message));
68
+ else
69
+ this.errors.push(new YAMLParseError(pos, code, message));
70
+ };
71
+ this.directives = new Directives({
72
+ version: options.version || defaultOptions.version
73
+ });
74
+ this.options = options;
75
+ }
76
+ decorate(doc, afterDoc) {
77
+ const { comment, afterEmptyLine } = parsePrelude(this.prelude);
78
+ //console.log({ dc: doc.comment, prelude, comment })
79
+ if (comment) {
80
+ const dc = doc.contents;
81
+ if (afterDoc) {
82
+ doc.comment = doc.comment ? `${doc.comment}\n${comment}` : comment;
83
+ }
84
+ else if (afterEmptyLine || doc.directives.marker || !dc) {
85
+ doc.commentBefore = comment;
86
+ }
87
+ else if (isCollection(dc) && !dc.flow && dc.items.length > 0) {
88
+ let it = dc.items[0];
89
+ if (isPair(it))
90
+ it = it.key;
91
+ const cb = it.commentBefore;
92
+ it.commentBefore = cb ? `${comment}\n${cb}` : comment;
93
+ }
94
+ else {
95
+ const cb = dc.commentBefore;
96
+ dc.commentBefore = cb ? `${comment}\n${cb}` : comment;
97
+ }
98
+ }
99
+ if (afterDoc) {
100
+ Array.prototype.push.apply(doc.errors, this.errors);
101
+ Array.prototype.push.apply(doc.warnings, this.warnings);
102
+ }
103
+ else {
104
+ doc.errors = this.errors;
105
+ doc.warnings = this.warnings;
106
+ }
107
+ this.prelude = [];
108
+ this.errors = [];
109
+ this.warnings = [];
110
+ }
111
+ /**
112
+ * Current stream status information.
113
+ *
114
+ * Mostly useful at the end of input for an empty stream.
115
+ */
116
+ streamInfo() {
117
+ return {
118
+ comment: parsePrelude(this.prelude).comment,
119
+ directives: this.directives,
120
+ errors: this.errors,
121
+ warnings: this.warnings
122
+ };
123
+ }
124
+ /**
125
+ * Compose tokens into documents.
126
+ *
127
+ * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.
128
+ * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.
129
+ */
130
+ *compose(tokens, forceDoc = false, endOffset = -1) {
131
+ for (const token of tokens)
132
+ yield* this.next(token);
133
+ yield* this.end(forceDoc, endOffset);
134
+ }
135
+ /** Advance the composer by one CST token. */
136
+ *next(token) {
137
+ switch (token.type) {
138
+ case 'directive':
139
+ this.directives.add(token.source, (offset, message, warning) => {
140
+ const pos = getErrorPos(token);
141
+ pos[0] += offset;
142
+ this.onError(pos, 'BAD_DIRECTIVE', message, warning);
143
+ });
144
+ this.prelude.push(token.source);
145
+ this.atDirectives = true;
146
+ break;
147
+ case 'document': {
148
+ const doc = composeDoc(this.options, this.directives, token, this.onError);
149
+ if (this.atDirectives && !doc.directives.marker)
150
+ this.onError(token, 'MISSING_CHAR', 'Missing directives-end indicator line');
151
+ this.decorate(doc, false);
152
+ if (this.doc)
153
+ yield this.doc;
154
+ this.doc = doc;
155
+ this.atDirectives = false;
156
+ break;
157
+ }
158
+ case 'byte-order-mark':
159
+ case 'space':
160
+ break;
161
+ case 'comment':
162
+ case 'newline':
163
+ this.prelude.push(token.source);
164
+ break;
165
+ case 'error': {
166
+ const msg = token.source
167
+ ? `${token.message}: ${JSON.stringify(token.source)}`
168
+ : token.message;
169
+ const error = new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg);
170
+ if (this.atDirectives || !this.doc)
171
+ this.errors.push(error);
172
+ else
173
+ this.doc.errors.push(error);
174
+ break;
175
+ }
176
+ case 'doc-end': {
177
+ if (!this.doc) {
178
+ const msg = 'Unexpected doc-end without preceding document';
179
+ this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg));
180
+ break;
181
+ }
182
+ const end = resolveEnd(token.end, token.offset + token.source.length, this.doc.options.strict, this.onError);
183
+ this.decorate(this.doc, true);
184
+ if (end.comment) {
185
+ const dc = this.doc.comment;
186
+ this.doc.comment = dc ? `${dc}\n${end.comment}` : end.comment;
187
+ }
188
+ this.doc.range[2] = end.offset;
189
+ break;
190
+ }
191
+ default:
192
+ this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', `Unsupported token ${token.type}`));
193
+ }
194
+ }
195
+ /**
196
+ * Call at end of input to yield any remaining document.
197
+ *
198
+ * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.
199
+ * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.
200
+ */
201
+ *end(forceDoc = false, endOffset = -1) {
202
+ if (this.doc) {
203
+ this.decorate(this.doc, true);
204
+ yield this.doc;
205
+ this.doc = null;
206
+ }
207
+ else if (forceDoc) {
208
+ const opts = Object.assign({ directives: this.directives }, this.options);
209
+ const doc = new Document(undefined, opts);
210
+ if (this.atDirectives)
211
+ this.onError(endOffset, 'MISSING_CHAR', 'Missing directives-end indicator line');
212
+ doc.range = [0, endOffset, endOffset];
213
+ this.decorate(doc, false);
214
+ yield doc;
215
+ }
216
+ }
217
+ }
218
+
219
+ export { Composer };
@@ -0,0 +1,107 @@
1
+ import { Pair } from '../nodes/Pair.js';
2
+ import { YAMLMap } from '../nodes/YAMLMap.js';
3
+ import { resolveProps } from './resolve-props.js';
4
+ import { containsNewline } from './util-contains-newline.js';
5
+ import { flowIndentCheck } from './util-flow-indent-check.js';
6
+ import { mapIncludes } from './util-map-includes.js';
7
+
8
+ const startColMsg = 'All mapping items must start at the same column';
9
+ function resolveBlockMap({ composeNode, composeEmptyNode }, ctx, bm, onError) {
10
+ var _a;
11
+ const map = new YAMLMap(ctx.schema);
12
+ if (ctx.atRoot)
13
+ ctx.atRoot = false;
14
+ let offset = bm.offset;
15
+ for (const collItem of bm.items) {
16
+ const { start, key, sep, value } = collItem;
17
+ // key properties
18
+ const keyProps = resolveProps(start, {
19
+ indicator: 'explicit-key-ind',
20
+ next: key || (sep === null || sep === void 0 ? void 0 : sep[0]),
21
+ offset,
22
+ onError,
23
+ startOnNewline: true
24
+ });
25
+ const implicitKey = !keyProps.found;
26
+ if (implicitKey) {
27
+ if (key) {
28
+ if (key.type === 'block-seq')
29
+ onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'A block sequence may not be used as an implicit map key');
30
+ else if ('indent' in key && key.indent !== bm.indent)
31
+ onError(offset, 'BAD_INDENT', startColMsg);
32
+ }
33
+ if (!keyProps.anchor && !keyProps.tag && !sep) {
34
+ // TODO: assert being at last item?
35
+ if (keyProps.comment) {
36
+ if (map.comment)
37
+ map.comment += '\n' + keyProps.comment;
38
+ else
39
+ map.comment = keyProps.comment;
40
+ }
41
+ continue;
42
+ }
43
+ }
44
+ else if (((_a = keyProps.found) === null || _a === void 0 ? void 0 : _a.indent) !== bm.indent)
45
+ onError(offset, 'BAD_INDENT', startColMsg);
46
+ if (implicitKey && containsNewline(key))
47
+ onError(key, // checked by containsNewline()
48
+ 'MULTILINE_IMPLICIT_KEY', 'Implicit keys need to be on a single line');
49
+ // key value
50
+ const keyStart = keyProps.end;
51
+ const keyNode = key
52
+ ? composeNode(ctx, key, keyProps, onError)
53
+ : composeEmptyNode(ctx, keyStart, start, null, keyProps, onError);
54
+ if (ctx.schema.compat)
55
+ flowIndentCheck(bm.indent, key, onError);
56
+ if (mapIncludes(ctx, map.items, keyNode))
57
+ onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');
58
+ // value properties
59
+ const valueProps = resolveProps(sep || [], {
60
+ indicator: 'map-value-ind',
61
+ next: value,
62
+ offset: keyNode.range[2],
63
+ onError,
64
+ startOnNewline: !key || key.type === 'block-scalar'
65
+ });
66
+ offset = valueProps.end;
67
+ if (valueProps.found) {
68
+ if (implicitKey) {
69
+ if ((value === null || value === void 0 ? void 0 : value.type) === 'block-map' && !valueProps.hasNewline)
70
+ onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'Nested mappings are not allowed in compact mappings');
71
+ if (ctx.options.strict &&
72
+ keyProps.start < valueProps.found.offset - 1024)
73
+ onError(keyNode.range, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit block mapping key');
74
+ }
75
+ // value value
76
+ const valueNode = value
77
+ ? composeNode(ctx, value, valueProps, onError)
78
+ : composeEmptyNode(ctx, offset, sep, null, valueProps, onError);
79
+ if (ctx.schema.compat)
80
+ flowIndentCheck(bm.indent, value, onError);
81
+ offset = valueNode.range[2];
82
+ const pair = new Pair(keyNode, valueNode);
83
+ if (ctx.options.keepSourceTokens)
84
+ pair.srcToken = collItem;
85
+ map.items.push(pair);
86
+ }
87
+ else {
88
+ // key with no value
89
+ if (implicitKey)
90
+ onError(keyNode.range, 'MISSING_CHAR', 'Implicit map keys need to be followed by map values');
91
+ if (valueProps.comment) {
92
+ if (keyNode.comment)
93
+ keyNode.comment += '\n' + valueProps.comment;
94
+ else
95
+ keyNode.comment = valueProps.comment;
96
+ }
97
+ const pair = new Pair(keyNode);
98
+ if (ctx.options.keepSourceTokens)
99
+ pair.srcToken = collItem;
100
+ map.items.push(pair);
101
+ }
102
+ }
103
+ map.range = [bm.offset, offset, offset];
104
+ return map;
105
+ }
106
+
107
+ export { resolveBlockMap };
@@ -0,0 +1,185 @@
1
+ import { Scalar } from '../nodes/Scalar.js';
2
+
3
+ function resolveBlockScalar(scalar, strict, onError) {
4
+ const start = scalar.offset;
5
+ const header = parseBlockScalarHeader(scalar, strict, onError);
6
+ if (!header)
7
+ return { value: '', type: null, comment: '', range: [start, start, start] };
8
+ const type = header.mode === '>' ? Scalar.BLOCK_FOLDED : Scalar.BLOCK_LITERAL;
9
+ const lines = scalar.source ? splitLines(scalar.source) : [];
10
+ // determine the end of content & start of chomping
11
+ let chompStart = lines.length;
12
+ for (let i = lines.length - 1; i >= 0; --i) {
13
+ const content = lines[i][1];
14
+ if (content === '' || content === '\r')
15
+ chompStart = i;
16
+ else
17
+ break;
18
+ }
19
+ // shortcut for empty contents
20
+ if (!scalar.source || chompStart === 0) {
21
+ const value = header.chomp === '+' ? '\n'.repeat(Math.max(0, lines.length - 1)) : '';
22
+ let end = start + header.length;
23
+ if (scalar.source)
24
+ end += scalar.source.length;
25
+ return { value, type, comment: header.comment, range: [start, end, end] };
26
+ }
27
+ // find the indentation level to trim from start
28
+ let trimIndent = scalar.indent + header.indent;
29
+ let offset = scalar.offset + header.length;
30
+ let contentStart = 0;
31
+ for (let i = 0; i < chompStart; ++i) {
32
+ const [indent, content] = lines[i];
33
+ if (content === '' || content === '\r') {
34
+ if (header.indent === 0 && indent.length > trimIndent)
35
+ trimIndent = indent.length;
36
+ }
37
+ else {
38
+ if (indent.length < trimIndent) {
39
+ const message = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';
40
+ onError(offset + indent.length, 'MISSING_CHAR', message);
41
+ }
42
+ if (header.indent === 0)
43
+ trimIndent = indent.length;
44
+ contentStart = i;
45
+ break;
46
+ }
47
+ offset += indent.length + content.length + 1;
48
+ }
49
+ let value = '';
50
+ let sep = '';
51
+ let prevMoreIndented = false;
52
+ // leading whitespace is kept intact
53
+ for (let i = 0; i < contentStart; ++i)
54
+ value += lines[i][0].slice(trimIndent) + '\n';
55
+ for (let i = contentStart; i < chompStart; ++i) {
56
+ let [indent, content] = lines[i];
57
+ offset += indent.length + content.length + 1;
58
+ const crlf = content[content.length - 1] === '\r';
59
+ if (crlf)
60
+ content = content.slice(0, -1);
61
+ /* istanbul ignore if already caught in lexer */
62
+ if (content && indent.length < trimIndent) {
63
+ const src = header.indent
64
+ ? 'explicit indentation indicator'
65
+ : 'first line';
66
+ const message = `Block scalar lines must not be less indented than their ${src}`;
67
+ onError(offset - content.length - (crlf ? 2 : 1), 'BAD_INDENT', message);
68
+ indent = '';
69
+ }
70
+ if (type === Scalar.BLOCK_LITERAL) {
71
+ value += sep + indent.slice(trimIndent) + content;
72
+ sep = '\n';
73
+ }
74
+ else if (indent.length > trimIndent || content[0] === '\t') {
75
+ // more-indented content within a folded block
76
+ if (sep === ' ')
77
+ sep = '\n';
78
+ else if (!prevMoreIndented && sep === '\n')
79
+ sep = '\n\n';
80
+ value += sep + indent.slice(trimIndent) + content;
81
+ sep = '\n';
82
+ prevMoreIndented = true;
83
+ }
84
+ else if (content === '') {
85
+ // empty line
86
+ if (sep === '\n')
87
+ value += '\n';
88
+ else
89
+ sep = '\n';
90
+ }
91
+ else {
92
+ value += sep + content;
93
+ sep = ' ';
94
+ prevMoreIndented = false;
95
+ }
96
+ }
97
+ switch (header.chomp) {
98
+ case '-':
99
+ break;
100
+ case '+':
101
+ for (let i = chompStart; i < lines.length; ++i)
102
+ value += '\n' + lines[i][0].slice(trimIndent);
103
+ if (value[value.length - 1] !== '\n')
104
+ value += '\n';
105
+ break;
106
+ default:
107
+ value += '\n';
108
+ }
109
+ const end = start + header.length + scalar.source.length;
110
+ return { value, type, comment: header.comment, range: [start, end, end] };
111
+ }
112
+ function parseBlockScalarHeader({ offset, props }, strict, onError) {
113
+ /* istanbul ignore if should not happen */
114
+ if (props[0].type !== 'block-scalar-header') {
115
+ onError(props[0], 'IMPOSSIBLE', 'Block scalar header not found');
116
+ return null;
117
+ }
118
+ const { source } = props[0];
119
+ const mode = source[0];
120
+ let indent = 0;
121
+ let chomp = '';
122
+ let error = -1;
123
+ for (let i = 1; i < source.length; ++i) {
124
+ const ch = source[i];
125
+ if (!chomp && (ch === '-' || ch === '+'))
126
+ chomp = ch;
127
+ else {
128
+ const n = Number(ch);
129
+ if (!indent && n)
130
+ indent = n;
131
+ else if (error === -1)
132
+ error = offset + i;
133
+ }
134
+ }
135
+ if (error !== -1)
136
+ onError(error, 'UNEXPECTED_TOKEN', `Block scalar header includes extra characters: ${source}`);
137
+ let hasSpace = false;
138
+ let comment = '';
139
+ let length = source.length;
140
+ for (let i = 1; i < props.length; ++i) {
141
+ const token = props[i];
142
+ switch (token.type) {
143
+ case 'space':
144
+ hasSpace = true;
145
+ // fallthrough
146
+ case 'newline':
147
+ length += token.source.length;
148
+ break;
149
+ case 'comment':
150
+ if (strict && !hasSpace) {
151
+ const message = 'Comments must be separated from other tokens by white space characters';
152
+ onError(token, 'MISSING_CHAR', message);
153
+ }
154
+ length += token.source.length;
155
+ comment = token.source.substring(1);
156
+ break;
157
+ case 'error':
158
+ onError(token, 'UNEXPECTED_TOKEN', token.message);
159
+ length += token.source.length;
160
+ break;
161
+ /* istanbul ignore next should not happen */
162
+ default: {
163
+ const message = `Unexpected token in block scalar header: ${token.type}`;
164
+ onError(token, 'UNEXPECTED_TOKEN', message);
165
+ const ts = token.source;
166
+ if (ts && typeof ts === 'string')
167
+ length += ts.length;
168
+ }
169
+ }
170
+ }
171
+ return { mode, indent, chomp, comment, length };
172
+ }
173
+ /** @returns Array of lines split up as `[indent, content]` */
174
+ function splitLines(source) {
175
+ const split = source.split(/\n( *)/);
176
+ const first = split[0];
177
+ const m = first.match(/^( *)/);
178
+ const line0 = m && m[1] ? [m[1], first.slice(m[1].length)] : ['', first];
179
+ const lines = [line0];
180
+ for (let i = 1; i < split.length; i += 2)
181
+ lines.push([split[i], split[i + 1]]);
182
+ return lines;
183
+ }
184
+
185
+ export { resolveBlockScalar };
@@ -0,0 +1,45 @@
1
+ import { YAMLSeq } from '../nodes/YAMLSeq.js';
2
+ import { resolveProps } from './resolve-props.js';
3
+ import { flowIndentCheck } from './util-flow-indent-check.js';
4
+
5
+ function resolveBlockSeq({ composeNode, composeEmptyNode }, ctx, bs, onError) {
6
+ const seq = new YAMLSeq(ctx.schema);
7
+ if (ctx.atRoot)
8
+ ctx.atRoot = false;
9
+ let offset = bs.offset;
10
+ for (const { start, value } of bs.items) {
11
+ const props = resolveProps(start, {
12
+ indicator: 'seq-item-ind',
13
+ next: value,
14
+ offset,
15
+ onError,
16
+ startOnNewline: true
17
+ });
18
+ offset = props.end;
19
+ if (!props.found) {
20
+ if (props.anchor || props.tag || value) {
21
+ if (value && value.type === 'block-seq')
22
+ onError(offset, 'BAD_INDENT', 'All sequence items must start at the same column');
23
+ else
24
+ onError(offset, 'MISSING_CHAR', 'Sequence item without - indicator');
25
+ }
26
+ else {
27
+ // TODO: assert being at last item?
28
+ if (props.comment)
29
+ seq.comment = props.comment;
30
+ continue;
31
+ }
32
+ }
33
+ const node = value
34
+ ? composeNode(ctx, value, props, onError)
35
+ : composeEmptyNode(ctx, offset, start, null, props, onError);
36
+ if (ctx.schema.compat)
37
+ flowIndentCheck(bs.indent, value, onError);
38
+ offset = node.range[2];
39
+ seq.items.push(node);
40
+ }
41
+ seq.range = [bs.offset, offset, offset];
42
+ return seq;
43
+ }
44
+
45
+ export { resolveBlockSeq };
@@ -0,0 +1,37 @@
1
+ function resolveEnd(end, offset, reqSpace, onError) {
2
+ let comment = '';
3
+ if (end) {
4
+ let hasSpace = false;
5
+ let sep = '';
6
+ for (const token of end) {
7
+ const { source, type } = token;
8
+ switch (type) {
9
+ case 'space':
10
+ hasSpace = true;
11
+ break;
12
+ case 'comment': {
13
+ if (reqSpace && !hasSpace)
14
+ onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');
15
+ const cb = source.substring(1) || ' ';
16
+ if (!comment)
17
+ comment = cb;
18
+ else
19
+ comment += sep + cb;
20
+ sep = '';
21
+ break;
22
+ }
23
+ case 'newline':
24
+ if (comment)
25
+ sep += source;
26
+ hasSpace = true;
27
+ break;
28
+ default:
29
+ onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${type} at node end`);
30
+ }
31
+ offset += source.length;
32
+ }
33
+ }
34
+ return { comment, offset };
35
+ }
36
+
37
+ export { resolveEnd };