@tiangong-lca/pcr 0.3.1 → 0.4.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 (1282) hide show
  1. package/README.md +8 -4
  2. package/node_modules/@types/debug/LICENSE +21 -0
  3. package/node_modules/@types/debug/README.md +69 -0
  4. package/node_modules/@types/debug/index.d.ts +50 -0
  5. package/node_modules/@types/debug/package.json +58 -0
  6. package/node_modules/@types/mdast/LICENSE +21 -0
  7. package/node_modules/@types/mdast/README.md +15 -0
  8. package/node_modules/@types/mdast/index.d.ts +1123 -0
  9. package/node_modules/@types/mdast/package.json +47 -0
  10. package/node_modules/@types/ms/LICENSE +21 -0
  11. package/node_modules/@types/ms/README.md +82 -0
  12. package/node_modules/@types/ms/index.d.ts +63 -0
  13. package/node_modules/@types/ms/package.json +26 -0
  14. package/node_modules/@types/unist/LICENSE +21 -0
  15. package/node_modules/@types/unist/README.md +15 -0
  16. package/node_modules/@types/unist/index.d.ts +119 -0
  17. package/node_modules/@types/unist/package.json +60 -0
  18. package/node_modules/bail/index.d.ts +10 -0
  19. package/node_modules/bail/index.js +12 -0
  20. package/node_modules/bail/license +22 -0
  21. package/node_modules/bail/package.json +73 -0
  22. package/node_modules/bail/readme.md +147 -0
  23. package/node_modules/ccount/index.d.ts +11 -0
  24. package/node_modules/ccount/index.js +27 -0
  25. package/node_modules/ccount/license +22 -0
  26. package/node_modules/ccount/package.json +71 -0
  27. package/node_modules/ccount/readme.md +149 -0
  28. package/node_modules/character-entities/index.d.ts +6 -0
  29. package/node_modules/character-entities/index.js +2132 -0
  30. package/node_modules/character-entities/license +22 -0
  31. package/node_modules/character-entities/package.json +78 -0
  32. package/node_modules/character-entities/readme.md +152 -0
  33. package/node_modules/debug/LICENSE +20 -0
  34. package/node_modules/debug/README.md +481 -0
  35. package/node_modules/debug/package.json +64 -0
  36. package/node_modules/debug/src/browser.js +272 -0
  37. package/node_modules/debug/src/common.js +292 -0
  38. package/node_modules/debug/src/index.js +10 -0
  39. package/node_modules/debug/src/node.js +263 -0
  40. package/node_modules/decode-named-character-reference/index.d.ts +13 -0
  41. package/node_modules/decode-named-character-reference/index.d.ts.map +1 -0
  42. package/node_modules/decode-named-character-reference/index.dom.d.ts +6 -0
  43. package/node_modules/decode-named-character-reference/index.dom.d.ts.map +1 -0
  44. package/node_modules/decode-named-character-reference/index.dom.js +32 -0
  45. package/node_modules/decode-named-character-reference/index.js +19 -0
  46. package/node_modules/decode-named-character-reference/license +22 -0
  47. package/node_modules/decode-named-character-reference/package.json +90 -0
  48. package/node_modules/decode-named-character-reference/readme.md +136 -0
  49. package/node_modules/dequal/dist/index.js +86 -0
  50. package/node_modules/dequal/dist/index.min.js +1 -0
  51. package/node_modules/dequal/dist/index.mjs +84 -0
  52. package/node_modules/dequal/index.d.ts +1 -0
  53. package/node_modules/dequal/license +21 -0
  54. package/node_modules/dequal/lite/index.d.ts +1 -0
  55. package/node_modules/dequal/lite/index.js +31 -0
  56. package/node_modules/dequal/lite/index.min.js +1 -0
  57. package/node_modules/dequal/lite/index.mjs +29 -0
  58. package/node_modules/dequal/package.json +57 -0
  59. package/node_modules/dequal/readme.md +112 -0
  60. package/node_modules/devlop/lib/default.js +9 -0
  61. package/node_modules/devlop/lib/development.d.ts +84 -0
  62. package/node_modules/devlop/lib/development.js +238 -0
  63. package/node_modules/devlop/license +22 -0
  64. package/node_modules/devlop/package.json +80 -0
  65. package/node_modules/devlop/readme.md +360 -0
  66. package/node_modules/escape-string-regexp/index.d.ts +16 -0
  67. package/node_modules/escape-string-regexp/index.js +11 -0
  68. package/node_modules/escape-string-regexp/license +9 -0
  69. package/node_modules/escape-string-regexp/package.json +40 -0
  70. package/node_modules/escape-string-regexp/readme.md +34 -0
  71. package/node_modules/extend/.editorconfig +20 -0
  72. package/node_modules/extend/.eslintrc +17 -0
  73. package/node_modules/extend/.jscs.json +175 -0
  74. package/node_modules/extend/.travis.yml +230 -0
  75. package/node_modules/extend/CHANGELOG.md +83 -0
  76. package/node_modules/extend/LICENSE +23 -0
  77. package/node_modules/extend/README.md +81 -0
  78. package/node_modules/extend/component.json +32 -0
  79. package/node_modules/extend/index.js +117 -0
  80. package/node_modules/extend/package.json +42 -0
  81. package/node_modules/is-plain-obj/index.d.ts +35 -0
  82. package/node_modules/is-plain-obj/index.js +8 -0
  83. package/node_modules/is-plain-obj/license +9 -0
  84. package/node_modules/is-plain-obj/package.json +41 -0
  85. package/node_modules/is-plain-obj/readme.md +58 -0
  86. package/node_modules/longest-streak/index.d.ts +11 -0
  87. package/node_modules/longest-streak/index.js +36 -0
  88. package/node_modules/longest-streak/license +22 -0
  89. package/node_modules/longest-streak/package.json +73 -0
  90. package/node_modules/longest-streak/readme.md +150 -0
  91. package/node_modules/markdown-table/index.d.ts +171 -0
  92. package/node_modules/markdown-table/index.d.ts.map +1 -0
  93. package/node_modules/markdown-table/index.js +393 -0
  94. package/node_modules/markdown-table/license +22 -0
  95. package/node_modules/markdown-table/package.json +77 -0
  96. package/node_modules/markdown-table/readme.md +344 -0
  97. package/node_modules/mdast-util-find-and-replace/index.d.ts +9 -0
  98. package/node_modules/mdast-util-find-and-replace/index.d.ts.map +1 -0
  99. package/node_modules/mdast-util-find-and-replace/index.js +11 -0
  100. package/node_modules/mdast-util-find-and-replace/lib/index.d.ts +79 -0
  101. package/node_modules/mdast-util-find-and-replace/lib/index.d.ts.map +1 -0
  102. package/node_modules/mdast-util-find-and-replace/lib/index.js +261 -0
  103. package/node_modules/mdast-util-find-and-replace/license +22 -0
  104. package/node_modules/mdast-util-find-and-replace/package.json +85 -0
  105. package/node_modules/mdast-util-find-and-replace/readme.md +368 -0
  106. package/node_modules/mdast-util-from-markdown/dev/index.d.ts +23 -0
  107. package/node_modules/mdast-util-from-markdown/dev/index.js +2 -0
  108. package/node_modules/mdast-util-from-markdown/dev/lib/index.d.ts +53 -0
  109. package/node_modules/mdast-util-from-markdown/dev/lib/index.d.ts.map +1 -0
  110. package/node_modules/mdast-util-from-markdown/dev/lib/index.js +1348 -0
  111. package/node_modules/mdast-util-from-markdown/dev/lib/types.d.ts +295 -0
  112. package/node_modules/mdast-util-from-markdown/dev/lib/types.js +2 -0
  113. package/node_modules/mdast-util-from-markdown/index.d.ts +23 -0
  114. package/node_modules/mdast-util-from-markdown/index.js +2 -0
  115. package/node_modules/mdast-util-from-markdown/lib/index.d.ts +53 -0
  116. package/node_modules/mdast-util-from-markdown/lib/index.d.ts.map +1 -0
  117. package/node_modules/mdast-util-from-markdown/lib/index.js +1177 -0
  118. package/node_modules/mdast-util-from-markdown/lib/types.d.ts +295 -0
  119. package/node_modules/mdast-util-from-markdown/lib/types.js +2 -0
  120. package/node_modules/mdast-util-from-markdown/license +22 -0
  121. package/node_modules/mdast-util-from-markdown/package.json +99 -0
  122. package/node_modules/mdast-util-from-markdown/readme.md +535 -0
  123. package/node_modules/mdast-util-gfm/index.d.ts +12 -0
  124. package/node_modules/mdast-util-gfm/index.js +2 -0
  125. package/node_modules/mdast-util-gfm/lib/index.d.ts +24 -0
  126. package/node_modules/mdast-util-gfm/lib/index.d.ts.map +1 -0
  127. package/node_modules/mdast-util-gfm/lib/index.js +63 -0
  128. package/node_modules/mdast-util-gfm/license +22 -0
  129. package/node_modules/mdast-util-gfm/package.json +125 -0
  130. package/node_modules/mdast-util-gfm/readme.md +497 -0
  131. package/node_modules/mdast-util-gfm-autolink-literal/index.d.ts +1 -0
  132. package/node_modules/mdast-util-gfm-autolink-literal/index.js +4 -0
  133. package/node_modules/mdast-util-gfm-autolink-literal/lib/index.d.ts +18 -0
  134. package/node_modules/mdast-util-gfm-autolink-literal/lib/index.js +280 -0
  135. package/node_modules/mdast-util-gfm-autolink-literal/license +22 -0
  136. package/node_modules/mdast-util-gfm-autolink-literal/package.json +106 -0
  137. package/node_modules/mdast-util-gfm-autolink-literal/readme.md +334 -0
  138. package/node_modules/mdast-util-gfm-footnote/index.d.ts +34 -0
  139. package/node_modules/mdast-util-gfm-footnote/index.js +2 -0
  140. package/node_modules/mdast-util-gfm-footnote/lib/index.d.ts +22 -0
  141. package/node_modules/mdast-util-gfm-footnote/lib/index.d.ts.map +1 -0
  142. package/node_modules/mdast-util-gfm-footnote/lib/index.js +212 -0
  143. package/node_modules/mdast-util-gfm-footnote/license +22 -0
  144. package/node_modules/mdast-util-gfm-footnote/package.json +111 -0
  145. package/node_modules/mdast-util-gfm-footnote/readme.md +494 -0
  146. package/node_modules/mdast-util-gfm-strikethrough/index.d.ts +19 -0
  147. package/node_modules/mdast-util-gfm-strikethrough/index.js +5 -0
  148. package/node_modules/mdast-util-gfm-strikethrough/lib/index.d.ts +19 -0
  149. package/node_modules/mdast-util-gfm-strikethrough/lib/index.d.ts.map +1 -0
  150. package/node_modules/mdast-util-gfm-strikethrough/lib/index.js +133 -0
  151. package/node_modules/mdast-util-gfm-strikethrough/license +22 -0
  152. package/node_modules/mdast-util-gfm-strikethrough/package.json +84 -0
  153. package/node_modules/mdast-util-gfm-strikethrough/readme.md +350 -0
  154. package/node_modules/mdast-util-gfm-table/index.d.ts +54 -0
  155. package/node_modules/mdast-util-gfm-table/index.js +2 -0
  156. package/node_modules/mdast-util-gfm-table/lib/index.d.ts +51 -0
  157. package/node_modules/mdast-util-gfm-table/lib/index.js +300 -0
  158. package/node_modules/mdast-util-gfm-table/license +22 -0
  159. package/node_modules/mdast-util-gfm-table/package.json +101 -0
  160. package/node_modules/mdast-util-gfm-table/readme.md +605 -0
  161. package/node_modules/mdast-util-gfm-task-list-item/index.d.ts +4 -0
  162. package/node_modules/mdast-util-gfm-task-list-item/index.js +4 -0
  163. package/node_modules/mdast-util-gfm-task-list-item/lib/index.d.ts +23 -0
  164. package/node_modules/mdast-util-gfm-task-list-item/lib/index.js +141 -0
  165. package/node_modules/mdast-util-gfm-task-list-item/license +22 -0
  166. package/node_modules/mdast-util-gfm-task-list-item/package.json +90 -0
  167. package/node_modules/mdast-util-gfm-task-list-item/readme.md +366 -0
  168. package/node_modules/mdast-util-phrasing/index.d.ts +1 -0
  169. package/node_modules/mdast-util-phrasing/index.js +1 -0
  170. package/node_modules/mdast-util-phrasing/lib/index.d.ts +3 -0
  171. package/node_modules/mdast-util-phrasing/lib/index.js +45 -0
  172. package/node_modules/mdast-util-phrasing/license +23 -0
  173. package/node_modules/mdast-util-phrasing/package.json +78 -0
  174. package/node_modules/mdast-util-phrasing/readme.md +200 -0
  175. package/node_modules/mdast-util-to-markdown/index.d.ts +18 -0
  176. package/node_modules/mdast-util-to-markdown/index.js +3 -0
  177. package/node_modules/mdast-util-to-markdown/lib/configure.d.ts +14 -0
  178. package/node_modules/mdast-util-to-markdown/lib/configure.d.ts.map +1 -0
  179. package/node_modules/mdast-util-to-markdown/lib/configure.js +98 -0
  180. package/node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts +24 -0
  181. package/node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts.map +1 -0
  182. package/node_modules/mdast-util-to-markdown/lib/handle/blockquote.js +40 -0
  183. package/node_modules/mdast-util-to-markdown/lib/handle/break.d.ts +20 -0
  184. package/node_modules/mdast-util-to-markdown/lib/handle/break.d.ts.map +1 -0
  185. package/node_modules/mdast-util-to-markdown/lib/handle/break.js +41 -0
  186. package/node_modules/mdast-util-to-markdown/lib/handle/code.d.ts +20 -0
  187. package/node_modules/mdast-util-to-markdown/lib/handle/code.d.ts.map +1 -0
  188. package/node_modules/mdast-util-to-markdown/lib/handle/code.js +86 -0
  189. package/node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts +20 -0
  190. package/node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts.map +1 -0
  191. package/node_modules/mdast-util-to-markdown/lib/handle/definition.js +83 -0
  192. package/node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts +52 -0
  193. package/node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts.map +1 -0
  194. package/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js +67 -0
  195. package/node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts +20 -0
  196. package/node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts.map +1 -0
  197. package/node_modules/mdast-util-to-markdown/lib/handle/heading.js +84 -0
  198. package/node_modules/mdast-util-to-markdown/lib/handle/html.d.ts +22 -0
  199. package/node_modules/mdast-util-to-markdown/lib/handle/html.d.ts.map +1 -0
  200. package/node_modules/mdast-util-to-markdown/lib/handle/html.js +27 -0
  201. package/node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts +31 -0
  202. package/node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts.map +1 -0
  203. package/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js +78 -0
  204. package/node_modules/mdast-util-to-markdown/lib/handle/image.d.ts +31 -0
  205. package/node_modules/mdast-util-to-markdown/lib/handle/image.d.ts.map +1 -0
  206. package/node_modules/mdast-util-to-markdown/lib/handle/image.js +92 -0
  207. package/node_modules/mdast-util-to-markdown/lib/handle/index.d.ts +42 -0
  208. package/node_modules/mdast-util-to-markdown/lib/handle/index.d.ts.map +1 -0
  209. package/node_modules/mdast-util-to-markdown/lib/handle/index.js +45 -0
  210. package/node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts +28 -0
  211. package/node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts.map +1 -0
  212. package/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js +86 -0
  213. package/node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts +31 -0
  214. package/node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts.map +1 -0
  215. package/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js +78 -0
  216. package/node_modules/mdast-util-to-markdown/lib/handle/link.d.ts +37 -0
  217. package/node_modules/mdast-util-to-markdown/lib/handle/link.d.ts.map +1 -0
  218. package/node_modules/mdast-util-to-markdown/lib/handle/link.js +129 -0
  219. package/node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts +20 -0
  220. package/node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts.map +1 -0
  221. package/node_modules/mdast-util-to-markdown/lib/handle/list-item.js +73 -0
  222. package/node_modules/mdast-util-to-markdown/lib/handle/list.d.ts +20 -0
  223. package/node_modules/mdast-util-to-markdown/lib/handle/list.d.ts.map +1 -0
  224. package/node_modules/mdast-util-to-markdown/lib/handle/list.js +107 -0
  225. package/node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts +24 -0
  226. package/node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts.map +1 -0
  227. package/node_modules/mdast-util-to-markdown/lib/handle/paragraph.js +27 -0
  228. package/node_modules/mdast-util-to-markdown/lib/handle/root.d.ts +20 -0
  229. package/node_modules/mdast-util-to-markdown/lib/handle/root.d.ts.map +1 -0
  230. package/node_modules/mdast-util-to-markdown/lib/handle/root.js +34 -0
  231. package/node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts +52 -0
  232. package/node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts.map +1 -0
  233. package/node_modules/mdast-util-to-markdown/lib/handle/strong.js +67 -0
  234. package/node_modules/mdast-util-to-markdown/lib/handle/text.d.ts +24 -0
  235. package/node_modules/mdast-util-to-markdown/lib/handle/text.d.ts.map +1 -0
  236. package/node_modules/mdast-util-to-markdown/lib/handle/text.js +22 -0
  237. package/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts +17 -0
  238. package/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts.map +1 -0
  239. package/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js +27 -0
  240. package/node_modules/mdast-util-to-markdown/lib/index.d.ts +14 -0
  241. package/node_modules/mdast-util-to-markdown/lib/index.d.ts.map +1 -0
  242. package/node_modules/mdast-util-to-markdown/lib/index.js +213 -0
  243. package/node_modules/mdast-util-to-markdown/lib/join.d.ts +4 -0
  244. package/node_modules/mdast-util-to-markdown/lib/join.d.ts.map +1 -0
  245. package/node_modules/mdast-util-to-markdown/lib/join.js +56 -0
  246. package/node_modules/mdast-util-to-markdown/lib/types.d.ts +985 -0
  247. package/node_modules/mdast-util-to-markdown/lib/types.js +2 -0
  248. package/node_modules/mdast-util-to-markdown/lib/unsafe.d.ts +4 -0
  249. package/node_modules/mdast-util-to-markdown/lib/unsafe.d.ts.map +1 -0
  250. package/node_modules/mdast-util-to-markdown/lib/unsafe.js +160 -0
  251. package/node_modules/mdast-util-to-markdown/lib/util/association.d.ts +2 -0
  252. package/node_modules/mdast-util-to-markdown/lib/util/association.d.ts.map +1 -0
  253. package/node_modules/mdast-util-to-markdown/lib/util/association.js +33 -0
  254. package/node_modules/mdast-util-to-markdown/lib/util/character.d.ts +23 -0
  255. package/node_modules/mdast-util-to-markdown/lib/util/character.d.ts.map +1 -0
  256. package/node_modules/mdast-util-to-markdown/lib/util/character.js +32 -0
  257. package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.d.ts +15 -0
  258. package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.d.ts.map +1 -0
  259. package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js +25 -0
  260. package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.d.ts +12 -0
  261. package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.d.ts.map +1 -0
  262. package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js +42 -0
  263. package/node_modules/mdast-util-to-markdown/lib/util/check-bullet.d.ts +15 -0
  264. package/node_modules/mdast-util-to-markdown/lib/util/check-bullet.d.ts.map +1 -0
  265. package/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js +25 -0
  266. package/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.d.ts +15 -0
  267. package/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.d.ts.map +1 -0
  268. package/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js +25 -0
  269. package/node_modules/mdast-util-to-markdown/lib/util/check-fence.d.ts +15 -0
  270. package/node_modules/mdast-util-to-markdown/lib/util/check-fence.d.ts.map +1 -0
  271. package/node_modules/mdast-util-to-markdown/lib/util/check-fence.js +25 -0
  272. package/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.d.ts +15 -0
  273. package/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.d.ts.map +1 -0
  274. package/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js +25 -0
  275. package/node_modules/mdast-util-to-markdown/lib/util/check-quote.d.ts +15 -0
  276. package/node_modules/mdast-util-to-markdown/lib/util/check-quote.d.ts.map +1 -0
  277. package/node_modules/mdast-util-to-markdown/lib/util/check-quote.js +25 -0
  278. package/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.d.ts +15 -0
  279. package/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.d.ts.map +1 -0
  280. package/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js +25 -0
  281. package/node_modules/mdast-util-to-markdown/lib/util/check-rule.d.ts +15 -0
  282. package/node_modules/mdast-util-to-markdown/lib/util/check-rule.d.ts.map +1 -0
  283. package/node_modules/mdast-util-to-markdown/lib/util/check-rule.js +25 -0
  284. package/node_modules/mdast-util-to-markdown/lib/util/check-strong.d.ts +15 -0
  285. package/node_modules/mdast-util-to-markdown/lib/util/check-strong.d.ts.map +1 -0
  286. package/node_modules/mdast-util-to-markdown/lib/util/check-strong.js +25 -0
  287. package/node_modules/mdast-util-to-markdown/lib/util/compile-pattern.d.ts +2 -0
  288. package/node_modules/mdast-util-to-markdown/lib/util/compile-pattern.d.ts.map +1 -0
  289. package/node_modules/mdast-util-to-markdown/lib/util/compile-pattern.js +26 -0
  290. package/node_modules/mdast-util-to-markdown/lib/util/container-flow.d.ts +21 -0
  291. package/node_modules/mdast-util-to-markdown/lib/util/container-flow.d.ts.map +1 -0
  292. package/node_modules/mdast-util-to-markdown/lib/util/container-flow.js +93 -0
  293. package/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.d.ts +110 -0
  294. package/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.d.ts.map +1 -0
  295. package/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js +704 -0
  296. package/node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.d.ts +10 -0
  297. package/node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.d.ts.map +1 -0
  298. package/node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.js +11 -0
  299. package/node_modules/mdast-util-to-markdown/lib/util/encode-info.d.ts +33 -0
  300. package/node_modules/mdast-util-to-markdown/lib/util/encode-info.d.ts.map +1 -0
  301. package/node_modules/mdast-util-to-markdown/lib/util/encode-info.js +82 -0
  302. package/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.d.ts +18 -0
  303. package/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.d.ts.map +1 -0
  304. package/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js +27 -0
  305. package/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.d.ts +14 -0
  306. package/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.d.ts.map +1 -0
  307. package/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js +39 -0
  308. package/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.d.ts +14 -0
  309. package/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.d.ts.map +1 -0
  310. package/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js +39 -0
  311. package/node_modules/mdast-util-to-markdown/lib/util/html-kind.d.ts +31 -0
  312. package/node_modules/mdast-util-to-markdown/lib/util/html-kind.d.ts.map +1 -0
  313. package/node_modules/mdast-util-to-markdown/lib/util/html-kind.js +63 -0
  314. package/node_modules/mdast-util-to-markdown/lib/util/indent-lines.d.ts +2 -0
  315. package/node_modules/mdast-util-to-markdown/lib/util/indent-lines.d.ts.map +1 -0
  316. package/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js +40 -0
  317. package/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.d.ts +17 -0
  318. package/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.d.ts.map +1 -0
  319. package/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js +52 -0
  320. package/node_modules/mdast-util-to-markdown/lib/util/safe.d.ts +29 -0
  321. package/node_modules/mdast-util-to-markdown/lib/util/safe.d.ts.map +1 -0
  322. package/node_modules/mdast-util-to-markdown/lib/util/safe.js +238 -0
  323. package/node_modules/mdast-util-to-markdown/lib/util/track.d.ts +2 -0
  324. package/node_modules/mdast-util-to-markdown/lib/util/track.d.ts.map +1 -0
  325. package/node_modules/mdast-util-to-markdown/lib/util/track.js +55 -0
  326. package/node_modules/mdast-util-to-markdown/license +22 -0
  327. package/node_modules/mdast-util-to-markdown/package.json +88 -0
  328. package/node_modules/mdast-util-to-markdown/readme.md +805 -0
  329. package/node_modules/mdast-util-to-string/index.d.ts +2 -0
  330. package/node_modules/mdast-util-to-string/index.js +5 -0
  331. package/node_modules/mdast-util-to-string/lib/index.d.ts +31 -0
  332. package/node_modules/mdast-util-to-string/lib/index.js +108 -0
  333. package/node_modules/mdast-util-to-string/license +22 -0
  334. package/node_modules/mdast-util-to-string/package.json +78 -0
  335. package/node_modules/mdast-util-to-string/readme.md +218 -0
  336. package/node_modules/micromark/dev/index.d.ts +82 -0
  337. package/node_modules/micromark/dev/index.d.ts.map +1 -0
  338. package/node_modules/micromark/dev/index.js +68 -0
  339. package/node_modules/micromark/dev/lib/compile.d.ts +16 -0
  340. package/node_modules/micromark/dev/lib/compile.d.ts.map +1 -0
  341. package/node_modules/micromark/dev/lib/compile.js +1162 -0
  342. package/node_modules/micromark/dev/lib/constructs.d.ts +73 -0
  343. package/node_modules/micromark/dev/lib/constructs.d.ts.map +1 -0
  344. package/node_modules/micromark/dev/lib/constructs.js +101 -0
  345. package/node_modules/micromark/dev/lib/create-tokenizer.d.ts +46 -0
  346. package/node_modules/micromark/dev/lib/create-tokenizer.d.ts.map +1 -0
  347. package/node_modules/micromark/dev/lib/create-tokenizer.js +718 -0
  348. package/node_modules/micromark/dev/lib/initialize/content.d.ts +4 -0
  349. package/node_modules/micromark/dev/lib/initialize/content.d.ts.map +1 -0
  350. package/node_modules/micromark/dev/lib/initialize/content.js +99 -0
  351. package/node_modules/micromark/dev/lib/initialize/document.d.ts +10 -0
  352. package/node_modules/micromark/dev/lib/initialize/document.d.ts.map +1 -0
  353. package/node_modules/micromark/dev/lib/initialize/document.js +449 -0
  354. package/node_modules/micromark/dev/lib/initialize/flow.d.ts +4 -0
  355. package/node_modules/micromark/dev/lib/initialize/flow.d.ts.map +1 -0
  356. package/node_modules/micromark/dev/lib/initialize/flow.js +86 -0
  357. package/node_modules/micromark/dev/lib/initialize/text.d.ts +8 -0
  358. package/node_modules/micromark/dev/lib/initialize/text.d.ts.map +1 -0
  359. package/node_modules/micromark/dev/lib/initialize/text.js +248 -0
  360. package/node_modules/micromark/dev/lib/parse.d.ts +10 -0
  361. package/node_modules/micromark/dev/lib/parse.d.ts.map +1 -0
  362. package/node_modules/micromark/dev/lib/parse.js +58 -0
  363. package/node_modules/micromark/dev/lib/postprocess.d.ts +9 -0
  364. package/node_modules/micromark/dev/lib/postprocess.d.ts.map +1 -0
  365. package/node_modules/micromark/dev/lib/postprocess.js +19 -0
  366. package/node_modules/micromark/dev/lib/preprocess.d.ts +13 -0
  367. package/node_modules/micromark/dev/lib/preprocess.d.ts.map +1 -0
  368. package/node_modules/micromark/dev/lib/preprocess.js +139 -0
  369. package/node_modules/micromark/dev/stream.d.ts +35 -0
  370. package/node_modules/micromark/dev/stream.d.ts.map +1 -0
  371. package/node_modules/micromark/dev/stream.js +270 -0
  372. package/node_modules/micromark/index.d.ts +82 -0
  373. package/node_modules/micromark/index.d.ts.map +1 -0
  374. package/node_modules/micromark/index.js +60 -0
  375. package/node_modules/micromark/lib/compile.d.ts +16 -0
  376. package/node_modules/micromark/lib/compile.d.ts.map +1 -0
  377. package/node_modules/micromark/lib/compile.js +1068 -0
  378. package/node_modules/micromark/lib/constructs.d.ts +73 -0
  379. package/node_modules/micromark/lib/constructs.d.ts.map +1 -0
  380. package/node_modules/micromark/lib/constructs.js +85 -0
  381. package/node_modules/micromark/lib/create-tokenizer.d.ts +46 -0
  382. package/node_modules/micromark/lib/create-tokenizer.d.ts.map +1 -0
  383. package/node_modules/micromark/lib/create-tokenizer.js +613 -0
  384. package/node_modules/micromark/lib/initialize/content.d.ts +4 -0
  385. package/node_modules/micromark/lib/initialize/content.d.ts.map +1 -0
  386. package/node_modules/micromark/lib/initialize/content.js +79 -0
  387. package/node_modules/micromark/lib/initialize/document.d.ts +10 -0
  388. package/node_modules/micromark/lib/initialize/document.d.ts.map +1 -0
  389. package/node_modules/micromark/lib/initialize/document.js +370 -0
  390. package/node_modules/micromark/lib/initialize/flow.d.ts +4 -0
  391. package/node_modules/micromark/lib/initialize/flow.d.ts.map +1 -0
  392. package/node_modules/micromark/lib/initialize/flow.js +58 -0
  393. package/node_modules/micromark/lib/initialize/text.d.ts +8 -0
  394. package/node_modules/micromark/lib/initialize/text.d.ts.map +1 -0
  395. package/node_modules/micromark/lib/initialize/text.js +216 -0
  396. package/node_modules/micromark/lib/parse.d.ts +10 -0
  397. package/node_modules/micromark/lib/parse.d.ts.map +1 -0
  398. package/node_modules/micromark/lib/parse.js +56 -0
  399. package/node_modules/micromark/lib/postprocess.d.ts +9 -0
  400. package/node_modules/micromark/lib/postprocess.d.ts.map +1 -0
  401. package/node_modules/micromark/lib/postprocess.js +18 -0
  402. package/node_modules/micromark/lib/preprocess.d.ts +13 -0
  403. package/node_modules/micromark/lib/preprocess.d.ts.map +1 -0
  404. package/node_modules/micromark/lib/preprocess.js +112 -0
  405. package/node_modules/micromark/license +22 -0
  406. package/node_modules/micromark/package.json +87 -0
  407. package/node_modules/micromark/readme.md +488 -0
  408. package/node_modules/micromark/stream.d.ts +35 -0
  409. package/node_modules/micromark/stream.d.ts.map +1 -0
  410. package/node_modules/micromark/stream.js +256 -0
  411. package/node_modules/micromark-core-commonmark/dev/index.d.ts +23 -0
  412. package/node_modules/micromark-core-commonmark/dev/index.d.ts.map +1 -0
  413. package/node_modules/micromark-core-commonmark/dev/index.js +22 -0
  414. package/node_modules/micromark-core-commonmark/dev/lib/attention.d.ts +4 -0
  415. package/node_modules/micromark-core-commonmark/dev/lib/attention.d.ts.map +1 -0
  416. package/node_modules/micromark-core-commonmark/dev/lib/attention.js +294 -0
  417. package/node_modules/micromark-core-commonmark/dev/lib/autolink.d.ts +4 -0
  418. package/node_modules/micromark-core-commonmark/dev/lib/autolink.d.ts.map +1 -0
  419. package/node_modules/micromark-core-commonmark/dev/lib/autolink.js +269 -0
  420. package/node_modules/micromark-core-commonmark/dev/lib/blank-line.d.ts +4 -0
  421. package/node_modules/micromark-core-commonmark/dev/lib/blank-line.d.ts.map +1 -0
  422. package/node_modules/micromark-core-commonmark/dev/lib/blank-line.js +62 -0
  423. package/node_modules/micromark-core-commonmark/dev/lib/block-quote.d.ts +4 -0
  424. package/node_modules/micromark-core-commonmark/dev/lib/block-quote.d.ts.map +1 -0
  425. package/node_modules/micromark-core-commonmark/dev/lib/block-quote.js +162 -0
  426. package/node_modules/micromark-core-commonmark/dev/lib/character-escape.d.ts +4 -0
  427. package/node_modules/micromark-core-commonmark/dev/lib/character-escape.d.ts.map +1 -0
  428. package/node_modules/micromark-core-commonmark/dev/lib/character-escape.js +69 -0
  429. package/node_modules/micromark-core-commonmark/dev/lib/character-reference.d.ts +4 -0
  430. package/node_modules/micromark-core-commonmark/dev/lib/character-reference.d.ts.map +1 -0
  431. package/node_modules/micromark-core-commonmark/dev/lib/character-reference.js +166 -0
  432. package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.d.ts +4 -0
  433. package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.d.ts.map +1 -0
  434. package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js +472 -0
  435. package/node_modules/micromark-core-commonmark/dev/lib/code-indented.d.ts +4 -0
  436. package/node_modules/micromark-core-commonmark/dev/lib/code-indented.d.ts.map +1 -0
  437. package/node_modules/micromark-core-commonmark/dev/lib/code-indented.js +178 -0
  438. package/node_modules/micromark-core-commonmark/dev/lib/code-text.d.ts +4 -0
  439. package/node_modules/micromark-core-commonmark/dev/lib/code-text.d.ts.map +1 -0
  440. package/node_modules/micromark-core-commonmark/dev/lib/code-text.js +257 -0
  441. package/node_modules/micromark-core-commonmark/dev/lib/content.d.ts +7 -0
  442. package/node_modules/micromark-core-commonmark/dev/lib/content.d.ts.map +1 -0
  443. package/node_modules/micromark-core-commonmark/dev/lib/content.js +185 -0
  444. package/node_modules/micromark-core-commonmark/dev/lib/definition.d.ts +4 -0
  445. package/node_modules/micromark-core-commonmark/dev/lib/definition.d.ts.map +1 -0
  446. package/node_modules/micromark-core-commonmark/dev/lib/definition.js +295 -0
  447. package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.d.ts +4 -0
  448. package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.d.ts.map +1 -0
  449. package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js +65 -0
  450. package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.d.ts +4 -0
  451. package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.d.ts.map +1 -0
  452. package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js +229 -0
  453. package/node_modules/micromark-core-commonmark/dev/lib/html-flow.d.ts +4 -0
  454. package/node_modules/micromark-core-commonmark/dev/lib/html-flow.d.ts.map +1 -0
  455. package/node_modules/micromark-core-commonmark/dev/lib/html-flow.js +938 -0
  456. package/node_modules/micromark-core-commonmark/dev/lib/html-text.d.ts +4 -0
  457. package/node_modules/micromark-core-commonmark/dev/lib/html-text.d.ts.map +1 -0
  458. package/node_modules/micromark-core-commonmark/dev/lib/html-text.js +783 -0
  459. package/node_modules/micromark-core-commonmark/dev/lib/label-end.d.ts +4 -0
  460. package/node_modules/micromark-core-commonmark/dev/lib/label-end.d.ts.map +1 -0
  461. package/node_modules/micromark-core-commonmark/dev/lib/label-end.js +658 -0
  462. package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.d.ts +4 -0
  463. package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.d.ts.map +1 -0
  464. package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js +119 -0
  465. package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.d.ts +4 -0
  466. package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.d.ts.map +1 -0
  467. package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js +71 -0
  468. package/node_modules/micromark-core-commonmark/dev/lib/line-ending.d.ts +4 -0
  469. package/node_modules/micromark-core-commonmark/dev/lib/line-ending.d.ts.map +1 -0
  470. package/node_modules/micromark-core-commonmark/dev/lib/line-ending.js +34 -0
  471. package/node_modules/micromark-core-commonmark/dev/lib/list.d.ts +4 -0
  472. package/node_modules/micromark-core-commonmark/dev/lib/list.d.ts.map +1 -0
  473. package/node_modules/micromark-core-commonmark/dev/lib/list.js +306 -0
  474. package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.d.ts +4 -0
  475. package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.d.ts.map +1 -0
  476. package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.js +67 -0
  477. package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.d.ts +4 -0
  478. package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.d.ts.map +1 -0
  479. package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js +213 -0
  480. package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.d.ts +4 -0
  481. package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.d.ts.map +1 -0
  482. package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js +120 -0
  483. package/node_modules/micromark-core-commonmark/index.d.ts +23 -0
  484. package/node_modules/micromark-core-commonmark/index.d.ts.map +1 -0
  485. package/node_modules/micromark-core-commonmark/index.js +22 -0
  486. package/node_modules/micromark-core-commonmark/lib/attention.d.ts +4 -0
  487. package/node_modules/micromark-core-commonmark/lib/attention.d.ts.map +1 -0
  488. package/node_modules/micromark-core-commonmark/lib/attention.js +231 -0
  489. package/node_modules/micromark-core-commonmark/lib/autolink.d.ts +4 -0
  490. package/node_modules/micromark-core-commonmark/lib/autolink.d.ts.map +1 -0
  491. package/node_modules/micromark-core-commonmark/lib/autolink.js +233 -0
  492. package/node_modules/micromark-core-commonmark/lib/blank-line.d.ts +4 -0
  493. package/node_modules/micromark-core-commonmark/lib/blank-line.d.ts.map +1 -0
  494. package/node_modules/micromark-core-commonmark/lib/blank-line.js +61 -0
  495. package/node_modules/micromark-core-commonmark/lib/block-quote.d.ts +4 -0
  496. package/node_modules/micromark-core-commonmark/lib/block-quote.d.ts.map +1 -0
  497. package/node_modules/micromark-core-commonmark/lib/block-quote.js +143 -0
  498. package/node_modules/micromark-core-commonmark/lib/character-escape.d.ts +4 -0
  499. package/node_modules/micromark-core-commonmark/lib/character-escape.d.ts.map +1 -0
  500. package/node_modules/micromark-core-commonmark/lib/character-escape.js +64 -0
  501. package/node_modules/micromark-core-commonmark/lib/character-reference.d.ts +4 -0
  502. package/node_modules/micromark-core-commonmark/lib/character-reference.d.ts.map +1 -0
  503. package/node_modules/micromark-core-commonmark/lib/character-reference.js +149 -0
  504. package/node_modules/micromark-core-commonmark/lib/code-fenced.d.ts +4 -0
  505. package/node_modules/micromark-core-commonmark/lib/code-fenced.d.ts.map +1 -0
  506. package/node_modules/micromark-core-commonmark/lib/code-fenced.js +422 -0
  507. package/node_modules/micromark-core-commonmark/lib/code-indented.d.ts +4 -0
  508. package/node_modules/micromark-core-commonmark/lib/code-indented.d.ts.map +1 -0
  509. package/node_modules/micromark-core-commonmark/lib/code-indented.js +159 -0
  510. package/node_modules/micromark-core-commonmark/lib/code-text.d.ts +4 -0
  511. package/node_modules/micromark-core-commonmark/lib/code-text.d.ts.map +1 -0
  512. package/node_modules/micromark-core-commonmark/lib/code-text.js +225 -0
  513. package/node_modules/micromark-core-commonmark/lib/content.d.ts +7 -0
  514. package/node_modules/micromark-core-commonmark/lib/content.d.ts.map +1 -0
  515. package/node_modules/micromark-core-commonmark/lib/content.js +163 -0
  516. package/node_modules/micromark-core-commonmark/lib/definition.d.ts +4 -0
  517. package/node_modules/micromark-core-commonmark/lib/definition.d.ts.map +1 -0
  518. package/node_modules/micromark-core-commonmark/lib/definition.js +254 -0
  519. package/node_modules/micromark-core-commonmark/lib/hard-break-escape.d.ts +4 -0
  520. package/node_modules/micromark-core-commonmark/lib/hard-break-escape.d.ts.map +1 -0
  521. package/node_modules/micromark-core-commonmark/lib/hard-break-escape.js +60 -0
  522. package/node_modules/micromark-core-commonmark/lib/heading-atx.d.ts +4 -0
  523. package/node_modules/micromark-core-commonmark/lib/heading-atx.d.ts.map +1 -0
  524. package/node_modules/micromark-core-commonmark/lib/heading-atx.js +191 -0
  525. package/node_modules/micromark-core-commonmark/lib/html-flow.d.ts +4 -0
  526. package/node_modules/micromark-core-commonmark/lib/html-flow.d.ts.map +1 -0
  527. package/node_modules/micromark-core-commonmark/lib/html-flow.js +827 -0
  528. package/node_modules/micromark-core-commonmark/lib/html-text.d.ts +4 -0
  529. package/node_modules/micromark-core-commonmark/lib/html-text.d.ts.map +1 -0
  530. package/node_modules/micromark-core-commonmark/lib/html-text.js +678 -0
  531. package/node_modules/micromark-core-commonmark/lib/label-end.d.ts +4 -0
  532. package/node_modules/micromark-core-commonmark/lib/label-end.d.ts.map +1 -0
  533. package/node_modules/micromark-core-commonmark/lib/label-end.js +561 -0
  534. package/node_modules/micromark-core-commonmark/lib/label-start-image.d.ts +4 -0
  535. package/node_modules/micromark-core-commonmark/lib/label-start-image.d.ts.map +1 -0
  536. package/node_modules/micromark-core-commonmark/lib/label-start-image.js +110 -0
  537. package/node_modules/micromark-core-commonmark/lib/label-start-link.d.ts +4 -0
  538. package/node_modules/micromark-core-commonmark/lib/label-start-link.d.ts.map +1 -0
  539. package/node_modules/micromark-core-commonmark/lib/label-start-link.js +63 -0
  540. package/node_modules/micromark-core-commonmark/lib/line-ending.d.ts +4 -0
  541. package/node_modules/micromark-core-commonmark/lib/line-ending.d.ts.map +1 -0
  542. package/node_modules/micromark-core-commonmark/lib/line-ending.js +33 -0
  543. package/node_modules/micromark-core-commonmark/lib/list.d.ts +4 -0
  544. package/node_modules/micromark-core-commonmark/lib/list.d.ts.map +1 -0
  545. package/node_modules/micromark-core-commonmark/lib/list.js +213 -0
  546. package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.d.ts +4 -0
  547. package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.d.ts.map +1 -0
  548. package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js +61 -0
  549. package/node_modules/micromark-core-commonmark/lib/setext-underline.d.ts +4 -0
  550. package/node_modules/micromark-core-commonmark/lib/setext-underline.d.ts.map +1 -0
  551. package/node_modules/micromark-core-commonmark/lib/setext-underline.js +187 -0
  552. package/node_modules/micromark-core-commonmark/lib/thematic-break.d.ts +4 -0
  553. package/node_modules/micromark-core-commonmark/lib/thematic-break.d.ts.map +1 -0
  554. package/node_modules/micromark-core-commonmark/lib/thematic-break.js +102 -0
  555. package/node_modules/micromark-core-commonmark/license +22 -0
  556. package/node_modules/micromark-core-commonmark/package.json +62 -0
  557. package/node_modules/micromark-core-commonmark/readme.md +171 -0
  558. package/node_modules/micromark-extension-gfm/index.d.ts +28 -0
  559. package/node_modules/micromark-extension-gfm/index.js +69 -0
  560. package/node_modules/micromark-extension-gfm/license +22 -0
  561. package/node_modules/micromark-extension-gfm/package.json +107 -0
  562. package/node_modules/micromark-extension-gfm/readme.md +433 -0
  563. package/node_modules/micromark-extension-gfm-autolink-literal/dev/index.d.ts +24 -0
  564. package/node_modules/micromark-extension-gfm-autolink-literal/dev/index.js +2 -0
  565. package/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/html.d.ts +10 -0
  566. package/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/html.js +56 -0
  567. package/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.d.ts +10 -0
  568. package/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js +983 -0
  569. package/node_modules/micromark-extension-gfm-autolink-literal/index.d.ts +24 -0
  570. package/node_modules/micromark-extension-gfm-autolink-literal/index.js +2 -0
  571. package/node_modules/micromark-extension-gfm-autolink-literal/lib/html.d.ts +10 -0
  572. package/node_modules/micromark-extension-gfm-autolink-literal/lib/html.js +60 -0
  573. package/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.d.ts +10 -0
  574. package/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js +854 -0
  575. package/node_modules/micromark-extension-gfm-autolink-literal/license +22 -0
  576. package/node_modules/micromark-extension-gfm-autolink-literal/package.json +116 -0
  577. package/node_modules/micromark-extension-gfm-autolink-literal/readme.md +422 -0
  578. package/node_modules/micromark-extension-gfm-footnote/dev/index.d.ts +164 -0
  579. package/node_modules/micromark-extension-gfm-footnote/dev/index.js +3 -0
  580. package/node_modules/micromark-extension-gfm-footnote/dev/lib/html.d.ts +25 -0
  581. package/node_modules/micromark-extension-gfm-footnote/dev/lib/html.js +226 -0
  582. package/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.d.ts +9 -0
  583. package/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js +558 -0
  584. package/node_modules/micromark-extension-gfm-footnote/index.d.ts +164 -0
  585. package/node_modules/micromark-extension-gfm-footnote/index.js +3 -0
  586. package/node_modules/micromark-extension-gfm-footnote/lib/html.d.ts +25 -0
  587. package/node_modules/micromark-extension-gfm-footnote/lib/html.js +154 -0
  588. package/node_modules/micromark-extension-gfm-footnote/lib/syntax.d.ts +9 -0
  589. package/node_modules/micromark-extension-gfm-footnote/lib/syntax.js +485 -0
  590. package/node_modules/micromark-extension-gfm-footnote/license +22 -0
  591. package/node_modules/micromark-extension-gfm-footnote/package.json +132 -0
  592. package/node_modules/micromark-extension-gfm-footnote/readme.md +656 -0
  593. package/node_modules/micromark-extension-gfm-strikethrough/dev/index.d.ts +30 -0
  594. package/node_modules/micromark-extension-gfm-strikethrough/dev/index.js +3 -0
  595. package/node_modules/micromark-extension-gfm-strikethrough/dev/lib/html.d.ts +13 -0
  596. package/node_modules/micromark-extension-gfm-strikethrough/dev/lib/html.js +26 -0
  597. package/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.d.ts +12 -0
  598. package/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js +183 -0
  599. package/node_modules/micromark-extension-gfm-strikethrough/index.d.ts +24 -0
  600. package/node_modules/micromark-extension-gfm-strikethrough/index.js +3 -0
  601. package/node_modules/micromark-extension-gfm-strikethrough/lib/html.d.ts +13 -0
  602. package/node_modules/micromark-extension-gfm-strikethrough/lib/html.js +26 -0
  603. package/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.d.ts +12 -0
  604. package/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js +142 -0
  605. package/node_modules/micromark-extension-gfm-strikethrough/license +22 -0
  606. package/node_modules/micromark-extension-gfm-strikethrough/package.json +129 -0
  607. package/node_modules/micromark-extension-gfm-strikethrough/readme.md +304 -0
  608. package/node_modules/micromark-extension-gfm-table/dev/index.d.ts +55 -0
  609. package/node_modules/micromark-extension-gfm-table/dev/index.js +2 -0
  610. package/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.d.ts +51 -0
  611. package/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.d.ts.map +1 -0
  612. package/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js +231 -0
  613. package/node_modules/micromark-extension-gfm-table/dev/lib/html.d.ts +11 -0
  614. package/node_modules/micromark-extension-gfm-table/dev/lib/html.d.ts.map +1 -0
  615. package/node_modules/micromark-extension-gfm-table/dev/lib/html.js +153 -0
  616. package/node_modules/micromark-extension-gfm-table/dev/lib/infer.d.ts +14 -0
  617. package/node_modules/micromark-extension-gfm-table/dev/lib/infer.d.ts.map +1 -0
  618. package/node_modules/micromark-extension-gfm-table/dev/lib/infer.js +64 -0
  619. package/node_modules/micromark-extension-gfm-table/dev/lib/syntax.d.ts +18 -0
  620. package/node_modules/micromark-extension-gfm-table/dev/lib/syntax.d.ts.map +1 -0
  621. package/node_modules/micromark-extension-gfm-table/dev/lib/syntax.js +964 -0
  622. package/node_modules/micromark-extension-gfm-table/index.d.ts +55 -0
  623. package/node_modules/micromark-extension-gfm-table/index.js +2 -0
  624. package/node_modules/micromark-extension-gfm-table/lib/edit-map.d.ts +51 -0
  625. package/node_modules/micromark-extension-gfm-table/lib/edit-map.d.ts.map +1 -0
  626. package/node_modules/micromark-extension-gfm-table/lib/edit-map.js +222 -0
  627. package/node_modules/micromark-extension-gfm-table/lib/html.d.ts +11 -0
  628. package/node_modules/micromark-extension-gfm-table/lib/html.d.ts.map +1 -0
  629. package/node_modules/micromark-extension-gfm-table/lib/html.js +135 -0
  630. package/node_modules/micromark-extension-gfm-table/lib/infer.d.ts +14 -0
  631. package/node_modules/micromark-extension-gfm-table/lib/infer.d.ts.map +1 -0
  632. package/node_modules/micromark-extension-gfm-table/lib/infer.js +52 -0
  633. package/node_modules/micromark-extension-gfm-table/lib/syntax.d.ts +18 -0
  634. package/node_modules/micromark-extension-gfm-table/lib/syntax.d.ts.map +1 -0
  635. package/node_modules/micromark-extension-gfm-table/lib/syntax.js +846 -0
  636. package/node_modules/micromark-extension-gfm-table/license +22 -0
  637. package/node_modules/micromark-extension-gfm-table/package.json +86 -0
  638. package/node_modules/micromark-extension-gfm-table/readme.md +515 -0
  639. package/node_modules/micromark-extension-gfm-tagfilter/index.d.ts +1 -0
  640. package/node_modules/micromark-extension-gfm-tagfilter/index.js +1 -0
  641. package/node_modules/micromark-extension-gfm-tagfilter/lib/index.d.ts +12 -0
  642. package/node_modules/micromark-extension-gfm-tagfilter/lib/index.js +51 -0
  643. package/node_modules/micromark-extension-gfm-tagfilter/license +22 -0
  644. package/node_modules/micromark-extension-gfm-tagfilter/package.json +82 -0
  645. package/node_modules/micromark-extension-gfm-tagfilter/readme.md +237 -0
  646. package/node_modules/micromark-extension-gfm-task-list-item/dev/index.d.ts +17 -0
  647. package/node_modules/micromark-extension-gfm-task-list-item/dev/index.js +2 -0
  648. package/node_modules/micromark-extension-gfm-task-list-item/dev/lib/html.d.ts +13 -0
  649. package/node_modules/micromark-extension-gfm-task-list-item/dev/lib/html.js +29 -0
  650. package/node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.d.ts +10 -0
  651. package/node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js +166 -0
  652. package/node_modules/micromark-extension-gfm-task-list-item/index.d.ts +17 -0
  653. package/node_modules/micromark-extension-gfm-task-list-item/index.js +2 -0
  654. package/node_modules/micromark-extension-gfm-task-list-item/lib/html.d.ts +13 -0
  655. package/node_modules/micromark-extension-gfm-task-list-item/lib/html.js +29 -0
  656. package/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.d.ts +10 -0
  657. package/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js +158 -0
  658. package/node_modules/micromark-extension-gfm-task-list-item/license +22 -0
  659. package/node_modules/micromark-extension-gfm-task-list-item/package.json +131 -0
  660. package/node_modules/micromark-extension-gfm-task-list-item/readme.md +305 -0
  661. package/node_modules/micromark-factory-destination/dev/index.d.ts +42 -0
  662. package/node_modules/micromark-factory-destination/dev/index.d.ts.map +1 -0
  663. package/node_modules/micromark-factory-destination/dev/index.js +255 -0
  664. package/node_modules/micromark-factory-destination/index.d.ts +42 -0
  665. package/node_modules/micromark-factory-destination/index.d.ts.map +1 -0
  666. package/node_modules/micromark-factory-destination/index.js +206 -0
  667. package/node_modules/micromark-factory-destination/license +22 -0
  668. package/node_modules/micromark-factory-destination/package.json +57 -0
  669. package/node_modules/micromark-factory-destination/readme.md +234 -0
  670. package/node_modules/micromark-factory-label/dev/index.d.ts +37 -0
  671. package/node_modules/micromark-factory-label/dev/index.d.ts.map +1 -0
  672. package/node_modules/micromark-factory-label/dev/index.js +172 -0
  673. package/node_modules/micromark-factory-label/index.d.ts +37 -0
  674. package/node_modules/micromark-factory-label/index.d.ts.map +1 -0
  675. package/node_modules/micromark-factory-label/index.js +148 -0
  676. package/node_modules/micromark-factory-label/license +22 -0
  677. package/node_modules/micromark-factory-label/package.json +60 -0
  678. package/node_modules/micromark-factory-label/readme.md +224 -0
  679. package/node_modules/micromark-factory-space/dev/index.d.ts +60 -0
  680. package/node_modules/micromark-factory-space/dev/index.d.ts.map +1 -0
  681. package/node_modules/micromark-factory-space/dev/index.js +122 -0
  682. package/node_modules/micromark-factory-space/index.d.ts +60 -0
  683. package/node_modules/micromark-factory-space/index.d.ts.map +1 -0
  684. package/node_modules/micromark-factory-space/index.js +116 -0
  685. package/node_modules/micromark-factory-space/license +22 -0
  686. package/node_modules/micromark-factory-space/package.json +46 -0
  687. package/node_modules/micromark-factory-space/readme.md +225 -0
  688. package/node_modules/micromark-factory-title/dev/index.d.ts +36 -0
  689. package/node_modules/micromark-factory-title/dev/index.d.ts.map +1 -0
  690. package/node_modules/micromark-factory-title/dev/index.js +169 -0
  691. package/node_modules/micromark-factory-title/index.d.ts +36 -0
  692. package/node_modules/micromark-factory-title/index.d.ts.map +1 -0
  693. package/node_modules/micromark-factory-title/index.js +158 -0
  694. package/node_modules/micromark-factory-title/license +22 -0
  695. package/node_modules/micromark-factory-title/package.json +58 -0
  696. package/node_modules/micromark-factory-title/readme.md +229 -0
  697. package/node_modules/micromark-factory-whitespace/dev/index.d.ts +22 -0
  698. package/node_modules/micromark-factory-whitespace/dev/index.d.ts.map +1 -0
  699. package/node_modules/micromark-factory-whitespace/dev/index.js +53 -0
  700. package/node_modules/micromark-factory-whitespace/index.d.ts +22 -0
  701. package/node_modules/micromark-factory-whitespace/index.d.ts.map +1 -0
  702. package/node_modules/micromark-factory-whitespace/index.js +44 -0
  703. package/node_modules/micromark-factory-whitespace/license +22 -0
  704. package/node_modules/micromark-factory-whitespace/package.json +57 -0
  705. package/node_modules/micromark-factory-whitespace/readme.md +205 -0
  706. package/node_modules/micromark-util-character/dev/index.d.ts +195 -0
  707. package/node_modules/micromark-util-character/dev/index.d.ts.map +1 -0
  708. package/node_modules/micromark-util-character/dev/index.js +252 -0
  709. package/node_modules/micromark-util-character/index.d.ts +195 -0
  710. package/node_modules/micromark-util-character/index.d.ts.map +1 -0
  711. package/node_modules/micromark-util-character/index.js +246 -0
  712. package/node_modules/micromark-util-character/license +22 -0
  713. package/node_modules/micromark-util-character/package.json +57 -0
  714. package/node_modules/micromark-util-character/readme.md +446 -0
  715. package/node_modules/micromark-util-chunked/dev/index.d.ts +41 -0
  716. package/node_modules/micromark-util-chunked/dev/index.d.ts.map +1 -0
  717. package/node_modules/micromark-util-chunked/dev/index.js +89 -0
  718. package/node_modules/micromark-util-chunked/index.d.ts +41 -0
  719. package/node_modules/micromark-util-chunked/index.d.ts.map +1 -0
  720. package/node_modules/micromark-util-chunked/index.js +81 -0
  721. package/node_modules/micromark-util-chunked/license +22 -0
  722. package/node_modules/micromark-util-chunked/package.json +57 -0
  723. package/node_modules/micromark-util-chunked/readme.md +219 -0
  724. package/node_modules/micromark-util-classify-character/dev/index.d.ts +18 -0
  725. package/node_modules/micromark-util-classify-character/dev/index.d.ts.map +1 -0
  726. package/node_modules/micromark-util-classify-character/dev/index.js +38 -0
  727. package/node_modules/micromark-util-classify-character/index.d.ts +18 -0
  728. package/node_modules/micromark-util-classify-character/index.d.ts.map +1 -0
  729. package/node_modules/micromark-util-classify-character/index.js +27 -0
  730. package/node_modules/micromark-util-classify-character/license +22 -0
  731. package/node_modules/micromark-util-classify-character/package.json +59 -0
  732. package/node_modules/micromark-util-classify-character/readme.md +205 -0
  733. package/node_modules/micromark-util-combine-extensions/index.d.ts +22 -0
  734. package/node_modules/micromark-util-combine-extensions/index.d.ts.map +1 -0
  735. package/node_modules/micromark-util-combine-extensions/index.js +143 -0
  736. package/node_modules/micromark-util-combine-extensions/license +22 -0
  737. package/node_modules/micromark-util-combine-extensions/package.json +52 -0
  738. package/node_modules/micromark-util-combine-extensions/readme.md +201 -0
  739. package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.d.ts +16 -0
  740. package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.d.ts.map +1 -0
  741. package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js +42 -0
  742. package/node_modules/micromark-util-decode-numeric-character-reference/index.d.ts +16 -0
  743. package/node_modules/micromark-util-decode-numeric-character-reference/index.d.ts.map +1 -0
  744. package/node_modules/micromark-util-decode-numeric-character-reference/index.js +32 -0
  745. package/node_modules/micromark-util-decode-numeric-character-reference/license +22 -0
  746. package/node_modules/micromark-util-decode-numeric-character-reference/package.json +59 -0
  747. package/node_modules/micromark-util-decode-numeric-character-reference/readme.md +184 -0
  748. package/node_modules/micromark-util-decode-string/dev/index.d.ts +14 -0
  749. package/node_modules/micromark-util-decode-string/dev/index.d.ts.map +1 -0
  750. package/node_modules/micromark-util-decode-string/dev/index.js +53 -0
  751. package/node_modules/micromark-util-decode-string/index.d.ts +14 -0
  752. package/node_modules/micromark-util-decode-string/index.d.ts.map +1 -0
  753. package/node_modules/micromark-util-decode-string/index.js +45 -0
  754. package/node_modules/micromark-util-decode-string/license +22 -0
  755. package/node_modules/micromark-util-decode-string/package.json +63 -0
  756. package/node_modules/micromark-util-decode-string/readme.md +179 -0
  757. package/node_modules/micromark-util-edit-map/dev/index.d.ts +78 -0
  758. package/node_modules/micromark-util-edit-map/dev/index.d.ts.map +1 -0
  759. package/node_modules/micromark-util-edit-map/dev/index.js +237 -0
  760. package/node_modules/micromark-util-edit-map/index.d.ts +78 -0
  761. package/node_modules/micromark-util-edit-map/index.d.ts.map +1 -0
  762. package/node_modules/micromark-util-edit-map/index.js +225 -0
  763. package/node_modules/micromark-util-edit-map/license +22 -0
  764. package/node_modules/micromark-util-edit-map/package.json +48 -0
  765. package/node_modules/micromark-util-edit-map/readme.md +234 -0
  766. package/node_modules/micromark-util-encode/index.d.ts +14 -0
  767. package/node_modules/micromark-util-encode/index.d.ts.map +1 -0
  768. package/node_modules/micromark-util-encode/index.js +33 -0
  769. package/node_modules/micromark-util-encode/license +22 -0
  770. package/node_modules/micromark-util-encode/package.json +47 -0
  771. package/node_modules/micromark-util-encode/readme.md +176 -0
  772. package/node_modules/micromark-util-html-tag-name/index.d.ts +30 -0
  773. package/node_modules/micromark-util-html-tag-name/index.d.ts.map +1 -0
  774. package/node_modules/micromark-util-html-tag-name/index.js +93 -0
  775. package/node_modules/micromark-util-html-tag-name/license +22 -0
  776. package/node_modules/micromark-util-html-tag-name/package.json +47 -0
  777. package/node_modules/micromark-util-html-tag-name/readme.md +193 -0
  778. package/node_modules/micromark-util-normalize-identifier/dev/index.d.ts +21 -0
  779. package/node_modules/micromark-util-normalize-identifier/dev/index.d.ts.map +1 -0
  780. package/node_modules/micromark-util-normalize-identifier/dev/index.js +38 -0
  781. package/node_modules/micromark-util-normalize-identifier/index.d.ts +21 -0
  782. package/node_modules/micromark-util-normalize-identifier/index.d.ts.map +1 -0
  783. package/node_modules/micromark-util-normalize-identifier/index.js +33 -0
  784. package/node_modules/micromark-util-normalize-identifier/license +22 -0
  785. package/node_modules/micromark-util-normalize-identifier/package.json +58 -0
  786. package/node_modules/micromark-util-normalize-identifier/readme.md +187 -0
  787. package/node_modules/micromark-util-resolve-all/index.d.ts +22 -0
  788. package/node_modules/micromark-util-resolve-all/index.d.ts.map +1 -0
  789. package/node_modules/micromark-util-resolve-all/index.js +32 -0
  790. package/node_modules/micromark-util-resolve-all/license +22 -0
  791. package/node_modules/micromark-util-resolve-all/package.json +48 -0
  792. package/node_modules/micromark-util-resolve-all/readme.md +238 -0
  793. package/node_modules/micromark-util-sanitize-uri/dev/index.d.ts +36 -0
  794. package/node_modules/micromark-util-sanitize-uri/dev/index.d.ts.map +1 -0
  795. package/node_modules/micromark-util-sanitize-uri/dev/index.js +124 -0
  796. package/node_modules/micromark-util-sanitize-uri/index.d.ts +36 -0
  797. package/node_modules/micromark-util-sanitize-uri/index.d.ts.map +1 -0
  798. package/node_modules/micromark-util-sanitize-uri/index.js +107 -0
  799. package/node_modules/micromark-util-sanitize-uri/license +22 -0
  800. package/node_modules/micromark-util-sanitize-uri/package.json +59 -0
  801. package/node_modules/micromark-util-sanitize-uri/readme.md +214 -0
  802. package/node_modules/micromark-util-subtokenize/dev/index.d.ts +12 -0
  803. package/node_modules/micromark-util-subtokenize/dev/index.d.ts.map +1 -0
  804. package/node_modules/micromark-util-subtokenize/dev/index.js +284 -0
  805. package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.d.ts +161 -0
  806. package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.d.ts.map +1 -0
  807. package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js +288 -0
  808. package/node_modules/micromark-util-subtokenize/index.d.ts +12 -0
  809. package/node_modules/micromark-util-subtokenize/index.d.ts.map +1 -0
  810. package/node_modules/micromark-util-subtokenize/index.js +228 -0
  811. package/node_modules/micromark-util-subtokenize/lib/splice-buffer.d.ts +161 -0
  812. package/node_modules/micromark-util-subtokenize/lib/splice-buffer.d.ts.map +1 -0
  813. package/node_modules/micromark-util-subtokenize/lib/splice-buffer.js +251 -0
  814. package/node_modules/micromark-util-subtokenize/license +22 -0
  815. package/node_modules/micromark-util-subtokenize/package.json +60 -0
  816. package/node_modules/micromark-util-subtokenize/readme.md +181 -0
  817. package/node_modules/micromark-util-symbol/lib/codes.d.ts +139 -0
  818. package/node_modules/micromark-util-symbol/lib/codes.d.ts.map +1 -0
  819. package/node_modules/micromark-util-symbol/lib/codes.js +158 -0
  820. package/node_modules/micromark-util-symbol/lib/constants.d.ts +37 -0
  821. package/node_modules/micromark-util-symbol/lib/constants.d.ts.map +1 -0
  822. package/node_modules/micromark-util-symbol/lib/constants.js +44 -0
  823. package/node_modules/micromark-util-symbol/lib/default.d.ts +5 -0
  824. package/node_modules/micromark-util-symbol/lib/default.d.ts.map +1 -0
  825. package/node_modules/micromark-util-symbol/lib/default.js +4 -0
  826. package/node_modules/micromark-util-symbol/lib/types.d.ts +106 -0
  827. package/node_modules/micromark-util-symbol/lib/types.d.ts.map +1 -0
  828. package/node_modules/micromark-util-symbol/lib/types.js +453 -0
  829. package/node_modules/micromark-util-symbol/lib/values.d.ts +102 -0
  830. package/node_modules/micromark-util-symbol/lib/values.d.ts.map +1 -0
  831. package/node_modules/micromark-util-symbol/lib/values.js +109 -0
  832. package/node_modules/micromark-util-symbol/license +22 -0
  833. package/node_modules/micromark-util-symbol/package.json +43 -0
  834. package/node_modules/micromark-util-symbol/readme.md +168 -0
  835. package/node_modules/micromark-util-types/index.d.ts +1315 -0
  836. package/node_modules/micromark-util-types/index.js +2 -0
  837. package/node_modules/micromark-util-types/license +22 -0
  838. package/node_modules/micromark-util-types/package.json +37 -0
  839. package/node_modules/micromark-util-types/readme.md +151 -0
  840. package/node_modules/ms/index.js +162 -0
  841. package/node_modules/ms/license.md +21 -0
  842. package/node_modules/ms/package.json +38 -0
  843. package/node_modules/ms/readme.md +59 -0
  844. package/node_modules/remark-gfm/index.d.ts +13 -0
  845. package/node_modules/remark-gfm/index.js +2 -0
  846. package/node_modules/remark-gfm/lib/index.d.ts +12 -0
  847. package/node_modules/remark-gfm/lib/index.d.ts.map +1 -0
  848. package/node_modules/remark-gfm/lib/index.js +41 -0
  849. package/node_modules/remark-gfm/license +22 -0
  850. package/node_modules/remark-gfm/package.json +125 -0
  851. package/node_modules/remark-gfm/readme.md +518 -0
  852. package/node_modules/remark-parse/index.d.ts +55 -0
  853. package/node_modules/remark-parse/index.js +2 -0
  854. package/node_modules/remark-parse/lib/index.d.ts +26 -0
  855. package/node_modules/remark-parse/lib/index.js +43 -0
  856. package/node_modules/remark-parse/license +21 -0
  857. package/node_modules/remark-parse/package.json +72 -0
  858. package/node_modules/remark-parse/readme.md +428 -0
  859. package/node_modules/remark-stringify/index.d.ts +41 -0
  860. package/node_modules/remark-stringify/index.js +2 -0
  861. package/node_modules/remark-stringify/lib/index.d.ts +26 -0
  862. package/node_modules/remark-stringify/lib/index.js +42 -0
  863. package/node_modules/remark-stringify/license +21 -0
  864. package/node_modules/remark-stringify/package.json +71 -0
  865. package/node_modules/remark-stringify/readme.md +407 -0
  866. package/node_modules/trough/index.d.ts +7 -0
  867. package/node_modules/trough/index.d.ts.map +1 -0
  868. package/node_modules/trough/index.js +9 -0
  869. package/node_modules/trough/lib/index.d.ts +105 -0
  870. package/node_modules/trough/lib/index.d.ts.map +1 -0
  871. package/node_modules/trough/lib/index.js +206 -0
  872. package/node_modules/trough/license +21 -0
  873. package/node_modules/trough/package.json +77 -0
  874. package/node_modules/trough/readme.md +494 -0
  875. package/node_modules/unified/index.d.ts +106 -0
  876. package/node_modules/unified/index.js +2 -0
  877. package/node_modules/unified/lib/callable-instance.d.ts +2 -0
  878. package/node_modules/unified/lib/callable-instance.d.ts.map +1 -0
  879. package/node_modules/unified/lib/callable-instance.js +44 -0
  880. package/node_modules/unified/lib/index.d.ts +1024 -0
  881. package/node_modules/unified/lib/index.d.ts.map +1 -0
  882. package/node_modules/unified/lib/index.js +1323 -0
  883. package/node_modules/unified/license +21 -0
  884. package/node_modules/unified/package.json +120 -0
  885. package/node_modules/unified/readme.md +1835 -0
  886. package/node_modules/unist-util-is/index.d.ts +5 -0
  887. package/node_modules/unist-util-is/index.d.ts.map +1 -0
  888. package/node_modules/unist-util-is/index.js +7 -0
  889. package/node_modules/unist-util-is/lib/index.d.ts +111 -0
  890. package/node_modules/unist-util-is/lib/index.d.ts.map +1 -0
  891. package/node_modules/unist-util-is/lib/index.js +296 -0
  892. package/node_modules/unist-util-is/license +22 -0
  893. package/node_modules/unist-util-is/package.json +103 -0
  894. package/node_modules/unist-util-is/readme.md +351 -0
  895. package/node_modules/unist-util-stringify-position/index.d.ts +1 -0
  896. package/node_modules/unist-util-stringify-position/index.js +1 -0
  897. package/node_modules/unist-util-stringify-position/lib/index.d.ts +61 -0
  898. package/node_modules/unist-util-stringify-position/lib/index.js +84 -0
  899. package/node_modules/unist-util-stringify-position/license +22 -0
  900. package/node_modules/unist-util-stringify-position/package.json +80 -0
  901. package/node_modules/unist-util-stringify-position/readme.md +206 -0
  902. package/node_modules/unist-util-visit/index.d.ts +9 -0
  903. package/node_modules/unist-util-visit/index.js +2 -0
  904. package/node_modules/unist-util-visit/lib/index.d.ts +195 -0
  905. package/node_modules/unist-util-visit/lib/index.d.ts.map +1 -0
  906. package/node_modules/unist-util-visit/lib/index.js +312 -0
  907. package/node_modules/unist-util-visit/license +22 -0
  908. package/node_modules/unist-util-visit/package.json +108 -0
  909. package/node_modules/unist-util-visit/readme.md +313 -0
  910. package/node_modules/unist-util-visit-parents/index.d.ts +14 -0
  911. package/node_modules/unist-util-visit-parents/index.js +2 -0
  912. package/node_modules/unist-util-visit-parents/lib/color.d.ts +6 -0
  913. package/node_modules/unist-util-visit-parents/lib/color.d.ts.map +1 -0
  914. package/node_modules/unist-util-visit-parents/lib/color.js +7 -0
  915. package/node_modules/unist-util-visit-parents/lib/color.node.d.ts +6 -0
  916. package/node_modules/unist-util-visit-parents/lib/color.node.d.ts.map +1 -0
  917. package/node_modules/unist-util-visit-parents/lib/color.node.js +7 -0
  918. package/node_modules/unist-util-visit-parents/lib/index.d.ts +219 -0
  919. package/node_modules/unist-util-visit-parents/lib/index.d.ts.map +1 -0
  920. package/node_modules/unist-util-visit-parents/lib/index.js +399 -0
  921. package/node_modules/unist-util-visit-parents/license +22 -0
  922. package/node_modules/unist-util-visit-parents/package.json +106 -0
  923. package/node_modules/unist-util-visit-parents/readme.md +388 -0
  924. package/node_modules/vfile/index.d.ts +153 -0
  925. package/node_modules/vfile/index.js +2 -0
  926. package/node_modules/vfile/lib/index.d.ts +1465 -0
  927. package/node_modules/vfile/lib/index.d.ts.map +1 -0
  928. package/node_modules/vfile/lib/index.js +643 -0
  929. package/node_modules/vfile/lib/minpath.browser.d.ts +47 -0
  930. package/node_modules/vfile/lib/minpath.browser.d.ts.map +1 -0
  931. package/node_modules/vfile/lib/minpath.browser.js +426 -0
  932. package/node_modules/vfile/lib/minpath.d.ts +2 -0
  933. package/node_modules/vfile/lib/minpath.d.ts.map +1 -0
  934. package/node_modules/vfile/lib/minpath.js +1 -0
  935. package/node_modules/vfile/lib/minproc.browser.d.ts +6 -0
  936. package/node_modules/vfile/lib/minproc.browser.d.ts.map +1 -0
  937. package/node_modules/vfile/lib/minproc.browser.js +8 -0
  938. package/node_modules/vfile/lib/minproc.d.ts +2 -0
  939. package/node_modules/vfile/lib/minproc.d.ts.map +1 -0
  940. package/node_modules/vfile/lib/minproc.js +1 -0
  941. package/node_modules/vfile/lib/minurl.browser.d.ts +9 -0
  942. package/node_modules/vfile/lib/minurl.browser.d.ts.map +1 -0
  943. package/node_modules/vfile/lib/minurl.browser.js +76 -0
  944. package/node_modules/vfile/lib/minurl.d.ts +3 -0
  945. package/node_modules/vfile/lib/minurl.d.ts.map +1 -0
  946. package/node_modules/vfile/lib/minurl.js +2 -0
  947. package/node_modules/vfile/lib/minurl.shared.d.ts +20 -0
  948. package/node_modules/vfile/lib/minurl.shared.d.ts.map +1 -0
  949. package/node_modules/vfile/lib/minurl.shared.js +31 -0
  950. package/node_modules/vfile/license +21 -0
  951. package/node_modules/vfile/package.json +134 -0
  952. package/node_modules/vfile/readme.md +785 -0
  953. package/node_modules/vfile-message/index.d.ts +2 -0
  954. package/node_modules/vfile-message/index.js +5 -0
  955. package/node_modules/vfile-message/lib/index.d.ts +508 -0
  956. package/node_modules/vfile-message/lib/index.js +314 -0
  957. package/node_modules/vfile-message/license +22 -0
  958. package/node_modules/vfile-message/package.json +80 -0
  959. package/node_modules/vfile-message/readme.md +252 -0
  960. package/node_modules/yaml/LICENSE +13 -0
  961. package/node_modules/yaml/README.md +172 -0
  962. package/node_modules/yaml/bin.mjs +11 -0
  963. package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  964. package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  965. package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
  966. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  967. package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  968. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  969. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  970. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  971. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  972. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  973. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +226 -0
  974. package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  975. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  976. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  977. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  978. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  979. package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  980. package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  981. package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  982. package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  983. package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  984. package/node_modules/yaml/browser/dist/errors.js +57 -0
  985. package/node_modules/yaml/browser/dist/index.js +17 -0
  986. package/node_modules/yaml/browser/dist/log.js +11 -0
  987. package/node_modules/yaml/browser/dist/nodes/Alias.js +118 -0
  988. package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  989. package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  990. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  991. package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  992. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  993. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  994. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  995. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  996. package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  997. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  998. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  999. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  1000. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  1001. package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
  1002. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  1003. package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
  1004. package/node_modules/yaml/browser/dist/public-api.js +102 -0
  1005. package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  1006. package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  1007. package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  1008. package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  1009. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  1010. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  1011. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  1012. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  1013. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  1014. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  1015. package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  1016. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  1017. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  1018. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  1019. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  1020. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
  1021. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  1022. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  1023. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  1024. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  1025. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  1026. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  1027. package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
  1028. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
  1029. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  1030. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  1031. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
  1032. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  1033. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  1034. package/node_modules/yaml/browser/dist/util.js +11 -0
  1035. package/node_modules/yaml/browser/dist/visit.js +233 -0
  1036. package/node_modules/yaml/browser/index.js +5 -0
  1037. package/node_modules/yaml/browser/package.json +3 -0
  1038. package/node_modules/yaml/dist/cli.d.ts +8 -0
  1039. package/node_modules/yaml/dist/cli.mjs +201 -0
  1040. package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  1041. package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  1042. package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  1043. package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  1044. package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  1045. package/node_modules/yaml/dist/compose/compose-node.js +112 -0
  1046. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  1047. package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  1048. package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  1049. package/node_modules/yaml/dist/compose/composer.js +224 -0
  1050. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  1051. package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  1052. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  1053. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  1054. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  1055. package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  1056. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  1057. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  1058. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  1059. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  1060. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  1061. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +228 -0
  1062. package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  1063. package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  1064. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  1065. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  1066. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  1067. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  1068. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  1069. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  1070. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  1071. package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  1072. package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  1073. package/node_modules/yaml/dist/doc/Document.js +337 -0
  1074. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  1075. package/node_modules/yaml/dist/doc/anchors.js +76 -0
  1076. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  1077. package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  1078. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  1079. package/node_modules/yaml/dist/doc/createNode.js +90 -0
  1080. package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  1081. package/node_modules/yaml/dist/doc/directives.js +178 -0
  1082. package/node_modules/yaml/dist/errors.d.ts +21 -0
  1083. package/node_modules/yaml/dist/errors.js +62 -0
  1084. package/node_modules/yaml/dist/index.d.ts +25 -0
  1085. package/node_modules/yaml/dist/index.js +50 -0
  1086. package/node_modules/yaml/dist/log.d.ts +3 -0
  1087. package/node_modules/yaml/dist/log.js +19 -0
  1088. package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  1089. package/node_modules/yaml/dist/nodes/Alias.js +120 -0
  1090. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  1091. package/node_modules/yaml/dist/nodes/Collection.js +151 -0
  1092. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  1093. package/node_modules/yaml/dist/nodes/Node.js +40 -0
  1094. package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  1095. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  1096. package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
  1097. package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  1098. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  1099. package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  1100. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  1101. package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  1102. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  1103. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  1104. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  1105. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  1106. package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  1107. package/node_modules/yaml/dist/nodes/toJS.js +39 -0
  1108. package/node_modules/yaml/dist/options.d.ts +350 -0
  1109. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  1110. package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  1111. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  1112. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  1113. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  1114. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  1115. package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  1116. package/node_modules/yaml/dist/parse/cst.js +112 -0
  1117. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  1118. package/node_modules/yaml/dist/parse/lexer.js +723 -0
  1119. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  1120. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  1121. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  1122. package/node_modules/yaml/dist/parse/parser.js +980 -0
  1123. package/node_modules/yaml/dist/public-api.d.ts +44 -0
  1124. package/node_modules/yaml/dist/public-api.js +107 -0
  1125. package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  1126. package/node_modules/yaml/dist/schema/Schema.js +39 -0
  1127. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  1128. package/node_modules/yaml/dist/schema/common/map.js +19 -0
  1129. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  1130. package/node_modules/yaml/dist/schema/common/null.js +17 -0
  1131. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  1132. package/node_modules/yaml/dist/schema/common/seq.js +19 -0
  1133. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  1134. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  1135. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  1136. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  1137. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  1138. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  1139. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  1140. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  1141. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  1142. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  1143. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  1144. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  1145. package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  1146. package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  1147. package/node_modules/yaml/dist/schema/tags.js +99 -0
  1148. package/node_modules/yaml/dist/schema/types.d.ts +92 -0
  1149. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  1150. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  1151. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  1152. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  1153. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  1154. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  1155. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  1156. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  1157. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  1158. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  1159. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  1160. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  1161. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  1162. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  1163. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  1164. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  1165. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  1166. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  1167. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  1168. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  1169. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  1170. package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  1171. package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  1172. package/node_modules/yaml/dist/stringify/stringify.js +132 -0
  1173. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  1174. package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  1175. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  1176. package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  1177. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  1178. package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  1179. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  1180. package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  1181. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  1182. package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  1183. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  1184. package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  1185. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  1186. package/node_modules/yaml/dist/test-events.js +134 -0
  1187. package/node_modules/yaml/dist/util.d.ts +16 -0
  1188. package/node_modules/yaml/dist/util.js +28 -0
  1189. package/node_modules/yaml/dist/visit.d.ts +102 -0
  1190. package/node_modules/yaml/dist/visit.js +236 -0
  1191. package/node_modules/yaml/package.json +97 -0
  1192. package/node_modules/yaml/util.js +2 -0
  1193. package/node_modules/zwitch/index.d.ts +67 -0
  1194. package/node_modules/zwitch/index.js +118 -0
  1195. package/node_modules/zwitch/license +22 -0
  1196. package/node_modules/zwitch/package.json +72 -0
  1197. package/node_modules/zwitch/readme.md +226 -0
  1198. package/package.json +13 -5
  1199. package/packages/pcr-core/schemas/guidance-batch-request.schema.json +12 -0
  1200. package/packages/pcr-core/schemas/guidance-output.schema.json +236 -28
  1201. package/packages/pcr-core/schemas/structured-projection.schema.json +576 -80
  1202. package/packages/pcr-core/src/classification-coverage.js +664 -0
  1203. package/packages/pcr-core/src/classification-coverage.js.map +1 -0
  1204. package/packages/pcr-core/src/compiler/guidance-context.js +135 -0
  1205. package/packages/pcr-core/src/compiler/guidance-context.js.map +1 -0
  1206. package/packages/pcr-core/src/compiler/guidance-envelope.js +78 -0
  1207. package/packages/pcr-core/src/compiler/guidance-envelope.js.map +1 -0
  1208. package/packages/pcr-core/src/compiler/normative-integrity.js +67 -0
  1209. package/packages/pcr-core/src/compiler/normative-integrity.js.map +1 -0
  1210. package/packages/pcr-core/src/compiler/normative-projection.js +276 -0
  1211. package/packages/pcr-core/src/compiler/normative-projection.js.map +1 -0
  1212. package/packages/pcr-core/src/compiler/source-context.js +231 -0
  1213. package/packages/pcr-core/src/compiler/source-context.js.map +1 -0
  1214. package/packages/pcr-core/src/consumption-calculation.js +61 -0
  1215. package/packages/pcr-core/src/consumption-calculation.js.map +1 -0
  1216. package/packages/pcr-core/src/consumption-data.js +99 -0
  1217. package/packages/pcr-core/src/consumption-data.js.map +1 -0
  1218. package/packages/pcr-core/src/consumption-guidance.js +107 -0
  1219. package/packages/pcr-core/src/consumption-guidance.js.map +1 -0
  1220. package/packages/pcr-core/src/consumption-review.js +103 -0
  1221. package/packages/pcr-core/src/consumption-review.js.map +1 -0
  1222. package/packages/pcr-core/src/contracts.js +163 -0
  1223. package/packages/pcr-core/src/contracts.js.map +1 -0
  1224. package/packages/pcr-core/src/generated/controlled-vocabulary.js +39 -0
  1225. package/packages/pcr-core/src/generated/controlled-vocabulary.js.map +1 -0
  1226. package/packages/pcr-core/src/index.js +1824 -0
  1227. package/packages/pcr-core/src/index.js.map +1 -0
  1228. package/packages/pcr-core/src/languages.js +85 -0
  1229. package/packages/pcr-core/src/languages.js.map +1 -0
  1230. package/packages/pcr-core/src/offline-library.js +302 -0
  1231. package/packages/pcr-core/src/offline-library.js.map +1 -0
  1232. package/packages/pcr-core/src/output-semantics.js +122 -0
  1233. package/packages/pcr-core/src/output-semantics.js.map +1 -0
  1234. package/packages/pcr-core/src/pcr-id-aliases.js +898 -0
  1235. package/packages/pcr-core/src/pcr-id-aliases.js.map +1 -0
  1236. package/packages/pcr-core/src/projection-completeness.js +172 -0
  1237. package/packages/pcr-core/src/projection-completeness.js.map +1 -0
  1238. package/packages/pcr-core/src/projection-integrity.js +177 -0
  1239. package/packages/pcr-core/src/projection-integrity.js.map +1 -0
  1240. package/packages/pcr-core/src/read-context.js +421 -0
  1241. package/packages/pcr-core/src/read-context.js.map +1 -0
  1242. package/packages/pcr-core/src/read-session.js +150 -0
  1243. package/packages/pcr-core/src/read-session.js.map +1 -0
  1244. package/packages/pcr-core/src/schema-validation.js +136 -0
  1245. package/packages/pcr-core/src/schema-validation.js.map +1 -0
  1246. package/packages/pcr-core/src/source-context.js +18 -0
  1247. package/packages/pcr-core/src/source-context.js.map +1 -0
  1248. package/packages/pcr-core/src/tidas-inspection.js +201 -0
  1249. package/packages/pcr-core/src/tidas-inspection.js.map +1 -0
  1250. package/packages/pcr-core/src/types.js +12 -0
  1251. package/packages/pcr-core/src/types.js.map +1 -0
  1252. package/packages/pcr-core/src/vocabulary.js +47 -0
  1253. package/packages/pcr-core/src/vocabulary.js.map +1 -0
  1254. package/packages/pcr-core/src/yaml-lite.js +267 -0
  1255. package/packages/pcr-core/src/yaml-lite.js.map +1 -0
  1256. package/packages/tiangong-pcr-cli/bin/tiangong-pcr.js +11 -0
  1257. package/packages/tiangong-pcr-cli/bin/tiangong-pcr.js.map +1 -0
  1258. package/packages/tiangong-pcr-cli/src/commands.js +1662 -0
  1259. package/packages/tiangong-pcr-cli/src/commands.js.map +1 -0
  1260. package/product-release.json +4 -4
  1261. package/skills/tiangong-pcr/SKILL.md +9 -2
  1262. package/packages/pcr-core/src/classification-coverage.mjs +0 -732
  1263. package/packages/pcr-core/src/consumption-calculation.mjs +0 -53
  1264. package/packages/pcr-core/src/consumption-data.mjs +0 -88
  1265. package/packages/pcr-core/src/consumption-guidance.mjs +0 -62
  1266. package/packages/pcr-core/src/consumption-review.mjs +0 -83
  1267. package/packages/pcr-core/src/contracts.mjs +0 -195
  1268. package/packages/pcr-core/src/generated/controlled-vocabulary.mjs +0 -41
  1269. package/packages/pcr-core/src/index.mjs +0 -2101
  1270. package/packages/pcr-core/src/languages.mjs +0 -86
  1271. package/packages/pcr-core/src/offline-library.mjs +0 -121
  1272. package/packages/pcr-core/src/output-semantics.mjs +0 -228
  1273. package/packages/pcr-core/src/pcr-id-aliases.mjs +0 -949
  1274. package/packages/pcr-core/src/projection-completeness.mjs +0 -284
  1275. package/packages/pcr-core/src/projection-integrity.mjs +0 -208
  1276. package/packages/pcr-core/src/read-context.mjs +0 -505
  1277. package/packages/pcr-core/src/schema-validation.mjs +0 -142
  1278. package/packages/pcr-core/src/source-context.mjs +0 -13
  1279. package/packages/pcr-core/src/tidas-inspection.mjs +0 -177
  1280. package/packages/pcr-core/src/yaml-lite.mjs +0 -261
  1281. package/packages/tiangong-pcr-cli/bin/tiangong-pcr.mjs +0 -12
  1282. package/packages/tiangong-pcr-cli/src/commands.mjs +0 -1691
@@ -0,0 +1,1824 @@
1
+ export { withPcrReadSession, PcrReadSessionError, MAX_READ_BATCH } from "./read-session.js";
2
+ import { unknownField } from "./types.js";
3
+ function requiredRoot(root, context) {
4
+ const value = root ?? context?.root;
5
+ if (typeof value !== "string")
6
+ throw new TypeError("PCR reads require a repository root or bound read context.");
7
+ return value;
8
+ }
9
+ function parsedRecord(text, label) {
10
+ const value = parseYaml(text);
11
+ if (!isRecord(value))
12
+ throw new TypeError(`${label} must be a mapping.`);
13
+ return value;
14
+ }
15
+ import { buildCompleteGuidance, deriveSnapshotGuidanceContext } from "./compiler/guidance-envelope.js";
16
+ import { pcrSource } from "./source-context.js";
17
+ import { createHash } from "node:crypto";
18
+ import { closeSync, constants as fsConstants, fstatSync, lstatSync, openSync, readFileSync, realpathSync, readdirSync, } from "node:fs";
19
+ import path from "node:path";
20
+ import { TextDecoder } from "node:util";
21
+ import { PcrClassificationCodeUnknownError, PcrClassificationCoverageSemanticError, readClassificationCoverage, } from "./classification-coverage.js";
22
+ import { assertCoreContract, validateCoreContract } from "./contracts.js";
23
+ import { inspectProjectionIntegrity, projectionNotRequiredState, } from "./projection-integrity.js";
24
+ import { hasDeclaredUnresolvedReferenceProductFlow, materialProjectionCompletenessIssues, } from "./projection-completeness.js";
25
+ import { findPcrIdAlias as findRepositoryPcrIdAlias } from "./pcr-id-aliases.js";
26
+ import { assertPcrReadContextFresh, createPcrReadContext, getPcrReadContextCatalog, observePcrReadContextArtifactRead, pcrReadContextAliasInputFingerprint, withPcrReadContextSession, } from "./read-context.js";
27
+ import { parseYaml } from "./yaml-lite.js";
28
+ import { declaredPcrLanguages, expectedPcrArtifactHashes, LEGACY_PCR_ARTIFACT_HASH_FIELDS, pcrArtifactFiles, } from "./languages.js";
29
+ import { CLASSIFICATION_MAPPING_RELATION_VALUES, CONTENT_MATURITY_VALUES, FEEDBACK_TYPE_VALUES, PCR_STATUS_VALUES, } from "./vocabulary.js";
30
+ export const FEEDBACK_TYPES = FEEDBACK_TYPE_VALUES;
31
+ export { createPcrReadContext, pcrReadContextAliasInputFingerprint, withPcrReadContextSession };
32
+ export { CLASSIFICATION_COVERAGE_STATUSES, PcrClassificationCodeUnknownError, PcrClassificationCoverageNotFoundError, PcrClassificationCoverageSemanticError, PcrClassificationCoverageStatusError, classificationCoveragePath, findClassificationCoverageEntry, getClassificationCoverageSummary, hasClassificationCoverage, listClassificationCoverage, readClassificationCoverage, readClassificationCoverageSnapshot, } from "./classification-coverage.js";
33
+ export const PCR_CATALOG_SCOPES = Object.freeze(["all", "material", "legacy"]);
34
+ export const PCR_RECORD_KINDS = Object.freeze([
35
+ "methodology",
36
+ "legacy_scaffold_reference",
37
+ "invalid_lifecycle_state",
38
+ ]);
39
+ const CLASSIFICATION_MAPPING_RELATIONS = new Set(CLASSIFICATION_MAPPING_RELATION_VALUES);
40
+ const PCR_CATALOG_SCOPE_SET = new Set(PCR_CATALOG_SCOPES);
41
+ const METHODOLOGY_LIFECYCLE_STATUSES = new Set(PCR_STATUS_VALUES.filter((value) => value !== "scaffold"));
42
+ const METHODOLOGY_MATURITIES = new Set(CONTENT_MATURITY_VALUES.filter((value) => value !== "empty_scaffold"));
43
+ const CURRENT_SNAPSHOT_MAX_ATTEMPTS = 3;
44
+ const pcrCatalogCache = new Map();
45
+ const RELEASE_ARTIFACTS = LEGACY_PCR_ARTIFACT_HASH_FIELDS;
46
+ const GUIDANCE_MATURITIES = new Set([
47
+ "authored_methodology",
48
+ "reviewed_methodology",
49
+ "published_methodology",
50
+ ]);
51
+ const REVIEWED_MATURITIES = new Set(["reviewed_methodology", "published_methodology"]);
52
+ const USABLE_LIFECYCLE_STATES = new Map([
53
+ ["candidate", new Set(["authored_methodology"])],
54
+ ["active", new Set(["reviewed_methodology"])],
55
+ ["published", new Set(["published_methodology"])],
56
+ ]);
57
+ const GUIDANCE_LIFECYCLE_STATUSES = new Set(["candidate", "active", "published"]);
58
+ export class PcrUsabilityError extends Error {
59
+ code;
60
+ readiness;
61
+ constructor({ pcrId, operation, readiness }) {
62
+ const blockers = readiness.blockers.map((blocker) => blocker.code).join(", ");
63
+ super(`PCR ${pcrId} is not usable for ${operation}: content_maturity=${readiness.methodology_status}; blockers=${blockers || "unknown"}`);
64
+ this.name = "PcrUsabilityError";
65
+ this.code = `PCR_NOT_USABLE_FOR_${operation.toUpperCase()}`;
66
+ this.readiness = structuredClone(readiness);
67
+ }
68
+ }
69
+ export class PcrClassificationMappingError extends Error {
70
+ code;
71
+ details;
72
+ constructor({ system, version, code, mappingType, issue = null }) {
73
+ super(issue
74
+ ? `Classification mapping ${system}:${version}:${code} is not an accepted current mapping: ${issue}.`
75
+ : `Classification mapping ${system}:${version}:${code} uses unsupported mapping_type ${String(mappingType)}.`);
76
+ this.name = "PcrClassificationMappingError";
77
+ this.code = "PCR_INVALID_CLASSIFICATION_MAPPING";
78
+ this.details = {
79
+ classification: `${system}:${version}:${code}`,
80
+ mapping_type: mappingType ?? null,
81
+ allowed_mapping_types: [...CLASSIFICATION_MAPPING_RELATION_VALUES],
82
+ issue,
83
+ };
84
+ }
85
+ }
86
+ export class PcrLegacyIdRedirectError extends Error {
87
+ code;
88
+ details;
89
+ constructor(alias) {
90
+ const redirect = legacyPcrIdRedirect(alias);
91
+ super(`PCR id ${redirect.source_pcr_id} is a retired legacy identity. ` +
92
+ `Use the redirect target with: ${redirect.next_command}`);
93
+ this.name = "PcrLegacyIdRedirectError";
94
+ this.code = "PCR_LEGACY_ID_REDIRECT";
95
+ this.details = redirect;
96
+ }
97
+ }
98
+ export class PcrClassificationTargetStateError extends Error {
99
+ code;
100
+ details;
101
+ constructor({ system, version, code, pcr }) {
102
+ super(`Classification mapping ${system}:${version}:${code} points to PCR ${pcr.id} with invalid ` +
103
+ `lifecycle identity ${pcr.status}/${pcr.content_maturity}.`);
104
+ this.name = "PcrClassificationTargetStateError";
105
+ this.code = "PCR_INVALID_CLASSIFICATION_TARGET";
106
+ this.details = {
107
+ classification: `${system}:${version}:${code}`,
108
+ pcr_id: pcr.id,
109
+ status: pcr.status,
110
+ content_maturity: pcr.content_maturity,
111
+ record_kind: pcr.record_kind,
112
+ };
113
+ }
114
+ }
115
+ export class PcrCurrentSnapshotInconsistentError extends Error {
116
+ code;
117
+ details;
118
+ constructor({ pcrId, pcrPath, attempts, lastFailure }) {
119
+ super(`PCR ${pcrId} current snapshot could not be read consistently after ${attempts} attempts.`);
120
+ this.name = "PcrCurrentSnapshotInconsistentError";
121
+ this.code = "PCR_CURRENT_SNAPSHOT_INCONSISTENT";
122
+ this.details = {
123
+ pcr_id: pcrId,
124
+ pcr_path: pcrPath,
125
+ attempts,
126
+ last_failure: lastFailure,
127
+ };
128
+ }
129
+ }
130
+ export class PcrDuplicateIdError extends Error {
131
+ code;
132
+ details;
133
+ constructor({ pcrId, paths }) {
134
+ super(`Duplicate canonical PCR id ${pcrId}: ${paths.join(", ")}`);
135
+ this.name = "PcrDuplicateIdError";
136
+ this.code = "PCR_DUPLICATE_ID";
137
+ this.details = { pcr_id: pcrId, paths: [...paths] };
138
+ }
139
+ }
140
+ export class PcrCatalogScopeError extends Error {
141
+ code;
142
+ details;
143
+ constructor(scope) {
144
+ super(`Unsupported PCR catalog scope ${String(scope)}. Expected one of: ${PCR_CATALOG_SCOPES.join(", ")}.`);
145
+ this.name = "PcrCatalogScopeError";
146
+ this.code = "PCR_INVALID_CATALOG_SCOPE";
147
+ this.details = {
148
+ scope: String(scope),
149
+ allowed_scopes: [...PCR_CATALOG_SCOPES],
150
+ };
151
+ }
152
+ }
153
+ function findPcrIdAlias(options) {
154
+ const source = pcrSource(options.root);
155
+ return source ? source.findAlias(options.pcrId) : findRepositoryPcrIdAlias({ root: options.root, pcrId: options.pcrId, context: options.context ?? null });
156
+ }
157
+ export function listPcrs({ root, refresh = false, scope = "all" }) {
158
+ const source = pcrSource(root);
159
+ if (source)
160
+ return source.listPcrs(normalizeCatalogScope(scope));
161
+ const normalizedScope = normalizeCatalogScope(scope);
162
+ const normalizedRoot = path.resolve(root);
163
+ const catalog = getPcrCatalog({ root: normalizedRoot, refresh });
164
+ const candidates = normalizedScope === "all"
165
+ ? catalog
166
+ : catalog.filter((entry) => currentCatalogEntryMatchesScope(normalizedRoot, entry, normalizedScope));
167
+ return candidates
168
+ .map((entry) => currentPcrEntry(normalizedRoot, entry))
169
+ .filter((entry) => recordMatchesScope(entry, normalizedScope));
170
+ }
171
+ /** Apply metadata filters and the page boundary before expensive projection
172
+ * verification. Every returned repository item still uses the full snapshot gate. */
173
+ export function readPcrCatalogPage(options) {
174
+ return options.context ? withPcrReadContextSession({ context: options.context, root: options.root, read: () => readPcrCatalogPageWithinContext(options) }) : readPcrCatalogPageWithinContext(options);
175
+ }
176
+ function readPcrCatalogPageWithinContext({ root, refresh = false, scope = "all", offset = 0, limit = 10, status = null, contentMaturity = null, pathPrefix = null, context = null }) {
177
+ if (!Number.isSafeInteger(offset) || offset < 0 || !Number.isSafeInteger(limit) || limit < 1 || limit > 100)
178
+ throw new RangeError("Catalog pages require a nonnegative offset and limit from 1 to 100.");
179
+ const normalizedScope = normalizeCatalogScope(scope);
180
+ const matches = (record) => {
181
+ const relative = record.path.replace(/^library\/pcrs\/?/u, "");
182
+ return (status === null || record.status === status) && (contentMaturity === null || record.content_maturity === contentMaturity)
183
+ && (pathPrefix === null || relative === pathPrefix || relative.startsWith(`${pathPrefix}/`));
184
+ };
185
+ const source = pcrSource(root);
186
+ if (source) {
187
+ const records = source.listPcrs(normalizedScope).filter(matches);
188
+ return { totalCount: records.length, items: records.slice(offset, offset + limit) };
189
+ }
190
+ const normalizedRoot = path.resolve(root);
191
+ const bindings = [];
192
+ const candidates = [];
193
+ for (const entry of catalogForRead(normalizedRoot, refresh, context)) {
194
+ const captured = readConsistentManifestSnapshot({ root: normalizedRoot, entry });
195
+ bindings.push({ entry, bytes: captured.bytes });
196
+ const kind = recordKindForPcr({ status: optionalString(captured.manifest.status, "unknown", "PCR status"), content_maturity: nullableString(captured.manifest.content_maturity, "PCR maturity") });
197
+ if (normalizedScope !== "all" && kind !== (normalizedScope === "material" ? "methodology" : "legacy_scaffold_reference"))
198
+ continue;
199
+ const identity = pcrFromManifest({ root: normalizedRoot, pcrDir: path.dirname(entry.manifestPath), manifest: captured.manifest });
200
+ if (matches(identity))
201
+ candidates.push(entry);
202
+ }
203
+ const items = candidates.slice(offset, offset + limit).map(entry => currentPcrSnapshot(normalizedRoot, entry, context).pcr);
204
+ for (const binding of bindings) {
205
+ const current = readConsistentManifestSnapshot({ root: normalizedRoot, entry: binding.entry });
206
+ if (!current.bytes.equals(binding.bytes))
207
+ throw new PcrCurrentSnapshotInconsistentError({ pcrId: binding.entry.id, pcrPath: binding.entry.path, attempts: CURRENT_SNAPSHOT_MAX_ATTEMPTS, lastFailure: { code: "catalog_selection_changed", message: "PCR metadata changed while selecting the requested page." } });
208
+ }
209
+ return { totalCount: candidates.length, items };
210
+ }
211
+ function catalogForRead(root, refresh, context) {
212
+ return context ? [...getPcrReadContextCatalog({ context, root, readCatalog: readPcrCatalog }).values()] : getPcrCatalog({ root, refresh });
213
+ }
214
+ function getPcrCatalog({ root, refresh = false }) {
215
+ const normalizedRoot = path.resolve(root);
216
+ if (refresh || !pcrCatalogCache.has(normalizedRoot)) {
217
+ pcrCatalogCache.set(normalizedRoot, readPcrCatalog(normalizedRoot));
218
+ }
219
+ const cached = pcrCatalogCache.get(normalizedRoot);
220
+ if (!cached)
221
+ throw new Error("PCR catalog was not initialized.");
222
+ return cached;
223
+ }
224
+ function readPcrCatalog(root) {
225
+ const pcrRoot = path.join(root, "library/pcrs");
226
+ if (!isCanonicalDirectory(pcrRoot)) {
227
+ throw new Error(`PCR catalog root not found: ${toPosix(path.relative(root, pcrRoot))}`);
228
+ }
229
+ const catalog = findManifestFiles(pcrRoot)
230
+ .map((manifestPath) => {
231
+ const manifest = parsedRecord(readCanonicalFileBytes(manifestPath).toString("utf8"), "PCR manifest");
232
+ if (!manifest.id)
233
+ return null;
234
+ if (typeof manifest.id !== "string")
235
+ throw new TypeError("PCR manifest id must be a string.");
236
+ const pcrDir = path.dirname(manifestPath);
237
+ return {
238
+ id: manifest.id,
239
+ path: toPosix(path.relative(root, pcrDir)),
240
+ manifestPath,
241
+ };
242
+ })
243
+ .filter((entry) => entry !== null);
244
+ const entriesById = new Map();
245
+ for (const entry of catalog) {
246
+ const existing = entriesById.get(entry.id);
247
+ if (existing) {
248
+ throw new PcrDuplicateIdError({
249
+ pcrId: entry.id,
250
+ paths: [existing.path, entry.path].sort(),
251
+ });
252
+ }
253
+ entriesById.set(entry.id, entry);
254
+ }
255
+ return catalog.sort((left, right) => left.id.localeCompare(right.id));
256
+ }
257
+ export function buildPcrTree(options) {
258
+ return options.context ? withPcrReadContextSession({ context: options.context, root: options.root, read: () => buildPcrTreeWithinContext(options) }) : buildPcrTreeWithinContext(options);
259
+ }
260
+ function buildPcrTreeWithinContext({ root, depth = Infinity, scope = "all", context = null }) {
261
+ const normalizedScope = normalizeCatalogScope(scope);
262
+ const source = pcrSource(root);
263
+ if (source)
264
+ return treeFromRecords(source.listPcrs(normalizedScope), depth);
265
+ const normalizedRoot = path.resolve(root);
266
+ const tree = {};
267
+ for (const entry of catalogForRead(normalizedRoot, false, context)) {
268
+ if (normalizedScope !== "all" && !currentCatalogEntryMatchesScope(normalizedRoot, entry, normalizedScope))
269
+ continue;
270
+ const segments = entry.path.replace(/^library\/pcrs\//u, "").split("/");
271
+ let node = tree;
272
+ for (const [index, segment] of segments.entries()) {
273
+ if (index >= depth)
274
+ break;
275
+ const child = (Object.hasOwn(node, segment) ? node[segment] : undefined) ?? { children: {}, pcrs: [] };
276
+ Object.defineProperty(node, segment, { value: child, writable: true, enumerable: true, configurable: true });
277
+ if (index === segments.length - 1) {
278
+ const pcr = currentPcrSnapshot(normalizedRoot, entry, context).pcr;
279
+ if (recordMatchesScope(pcr, normalizedScope))
280
+ child.pcrs.push(pcr);
281
+ }
282
+ node = child.children;
283
+ }
284
+ }
285
+ return tree;
286
+ }
287
+ function treeFromRecords(records, depth) {
288
+ const tree = {};
289
+ for (const pcr of records) {
290
+ const segments = pcr.path.replace(/^library\/pcrs\//u, "").split("/");
291
+ let node = tree;
292
+ for (const [index, segment] of segments.entries()) {
293
+ if (index >= depth)
294
+ break;
295
+ const child = (Object.hasOwn(node, segment) ? node[segment] : undefined) ?? { children: {}, pcrs: [] };
296
+ Object.defineProperty(node, segment, { value: child, writable: true, enumerable: true, configurable: true });
297
+ if (index === segments.length - 1)
298
+ child.pcrs.push(pcr);
299
+ node = child.children;
300
+ }
301
+ }
302
+ return tree;
303
+ }
304
+ export function resolveClassification({ root, system, version, code, context = null }) {
305
+ const normalizedSystem = String(system).toLowerCase();
306
+ const normalizedVersion = String(version);
307
+ const normalizedCode = String(code);
308
+ const coverageIndex = readClassificationCoverage({
309
+ root,
310
+ system: normalizedSystem,
311
+ version: normalizedVersion,
312
+ });
313
+ return resolveClassificationWithCoverage({
314
+ root,
315
+ system: normalizedSystem,
316
+ version: normalizedVersion,
317
+ code: normalizedCode,
318
+ coverageIndex,
319
+ context,
320
+ });
321
+ }
322
+ export function verifyDistributionCoverage({ root, snapshot, context }) {
323
+ const coverageIndex = snapshot.document;
324
+ for (const entry of coverageIndex.entries) {
325
+ if (entry.coverage_status === "mapped" || entry.legacy_reference) {
326
+ resolveClassificationWithCoverage({ root, system: String(coverageIndex.classification_system).toLowerCase(),
327
+ version: String(coverageIndex.classification_version), code: String(entry.code), coverageIndex, context });
328
+ }
329
+ }
330
+ }
331
+ function resolveClassificationWithCoverage({ root, system, version, code, coverageIndex, context = null }) {
332
+ const coverage = coverageIndex.entries.find((candidate) => String(candidate.code) === String(code));
333
+ if (!coverage) {
334
+ throw new PcrClassificationCodeUnknownError({ system, version, code });
335
+ }
336
+ if (coverage.coverage_status === "mapped") {
337
+ const canonical = readCanonicalClassificationMapping({
338
+ root,
339
+ system,
340
+ version,
341
+ code,
342
+ });
343
+ assertCoverageMappingMatchesCanonical({ coverage, canonical, system, version, code });
344
+ const pcr = getPcrById({ root, pcrId: canonical.mapping.pcr_id, context });
345
+ if (pcr.record_kind !== "methodology") {
346
+ throw invalidCoverageResolution({
347
+ system,
348
+ version,
349
+ code,
350
+ issue: `mapped coverage points to non-material PCR ${pcr.id}`,
351
+ });
352
+ }
353
+ return {
354
+ classification_system: canonical.mappingFile.classification_system,
355
+ classification_version: canonical.mappingFile.classification_version,
356
+ mapping: canonical.mapping,
357
+ pcr,
358
+ resolution_status: "mapped",
359
+ coverage_status: coverage.coverage_status,
360
+ coverage,
361
+ };
362
+ }
363
+ if (coverage.legacy_reference) {
364
+ const canonical = readCanonicalClassificationMapping({
365
+ root,
366
+ system,
367
+ version,
368
+ code,
369
+ });
370
+ if (canonical.mapping.pcr_id !== coverage.legacy_reference.pcr_id) {
371
+ throw invalidCoverageResolution({
372
+ system,
373
+ version,
374
+ code,
375
+ issue: `legacy reference ${coverage.legacy_reference.pcr_id} does not match canonical mapping ${canonical.mapping.pcr_id}`,
376
+ });
377
+ }
378
+ const pcr = getPcrById({ root, pcrId: canonical.mapping.pcr_id, context });
379
+ if (pcr.record_kind !== "legacy_scaffold_reference") {
380
+ throw invalidCoverageResolution({
381
+ system,
382
+ version,
383
+ code,
384
+ issue: `legacy reference points to material PCR ${pcr.id}`,
385
+ });
386
+ }
387
+ return {
388
+ classification_system: canonical.mappingFile.classification_system,
389
+ classification_version: canonical.mappingFile.classification_version,
390
+ mapping: canonical.mapping,
391
+ pcr,
392
+ resolution_status: "legacy_scaffold_compatibility",
393
+ coverage_status: coverage.coverage_status,
394
+ coverage,
395
+ };
396
+ }
397
+ return {
398
+ classification_system: String(coverageIndex.classification_system),
399
+ classification_version: String(coverageIndex.classification_version),
400
+ mapping: null,
401
+ pcr: null,
402
+ resolution_status: "unmapped",
403
+ coverage_status: coverage.coverage_status,
404
+ coverage,
405
+ review_candidate: ["manual_review", "unknown"].includes(coverage.coverage_status) && coverage.mapping
406
+ ? structuredClone(coverage.mapping)
407
+ : null,
408
+ };
409
+ }
410
+ function readCanonicalClassificationMapping({ root, system, version, code }) {
411
+ const normalizedRoot = path.resolve(root);
412
+ const mappingPath = path.join(normalizedRoot, "classifications/mappings", `${system}-${version}-to-pcr.yaml`);
413
+ const mappingRelativePath = toPosix(path.relative(normalizedRoot, mappingPath));
414
+ let rawMapping;
415
+ try {
416
+ const mappingBytes = pcrSource(root)?.readFile(mappingRelativePath) ?? readControlledRepositoryFileBytes({
417
+ root: normalizedRoot,
418
+ filePath: mappingPath,
419
+ relativePath: mappingRelativePath,
420
+ label: "classification mapping",
421
+ });
422
+ rawMapping = parseYaml(new TextDecoder("utf-8", { fatal: true }).decode(mappingBytes));
423
+ }
424
+ catch (error) {
425
+ if (error instanceof PcrClassificationMappingError) {
426
+ throw error;
427
+ }
428
+ throw new PcrClassificationMappingError({
429
+ system,
430
+ version,
431
+ code,
432
+ issue: `canonical mapping source ${mappingRelativePath} could not be read safely ` +
433
+ `(${error instanceof Error ? error.message : String(error)})`,
434
+ });
435
+ }
436
+ const mappingFile = checkedMappingDocument(rawMapping, { system, version, code });
437
+ const matches = (mappingFile.mappings ?? []).filter((entry) => String(entry.code) === String(code));
438
+ if (matches.length === 0) {
439
+ throw new Error(`No PCR mapping found for ${system}:${version}:${code}`);
440
+ }
441
+ if (matches.length !== 1) {
442
+ throw new PcrClassificationMappingError({
443
+ system,
444
+ version,
445
+ code,
446
+ issue: `expected one selected edge, found ${matches.length}`,
447
+ });
448
+ }
449
+ const mapping = matches[0];
450
+ if (!mapping)
451
+ throw new Error("Selected mapping disappeared.");
452
+ if (typeof mapping.mapping_type !== "string" || !CLASSIFICATION_MAPPING_RELATIONS.has(mapping.mapping_type)
453
+ || mapping.mapping_type === "manual_review") {
454
+ throw new PcrClassificationMappingError({
455
+ system,
456
+ version,
457
+ code,
458
+ mappingType: mapping.mapping_type,
459
+ });
460
+ }
461
+ assertAcceptedMappingDecision({ mapping, system, version, code });
462
+ if (typeof mapping.pcr_id !== "string")
463
+ throw new PcrClassificationMappingError({ system, version, code, issue: "selected mapping requires a string PCR id" });
464
+ const acceptance = mapping.acceptance;
465
+ if (!isRecord(acceptance))
466
+ throw new PcrClassificationMappingError({ system, version, code, issue: "selected mapping requires acceptance" });
467
+ return { mappingFile, mapping: { ...mapping, pcr_id: mapping.pcr_id, mapping_type: mapping.mapping_type, acceptance } };
468
+ }
469
+ function checkedMappingDocument(value, { system, version, code }) {
470
+ if (!isRecord(value) || value.schema_version !== 2 || value.status !== "current") {
471
+ throw new PcrClassificationMappingError({ system, version, code, issue: `expected schema_version 2 with status current, found ${String(unknownField(value, "schema_version"))}/${String(unknownField(value, "status"))}` });
472
+ }
473
+ if (String(value.classification_system).toLowerCase() !== system.toLowerCase() || String(value.classification_version) !== version || !Array.isArray(value.mappings)) {
474
+ throw new PcrClassificationMappingError({ system, version, code, issue: "mapping document coordinate or mappings array does not match the requested classification" });
475
+ }
476
+ if (!value.mappings.every(isRecord))
477
+ throw new PcrClassificationMappingError({ system, version, code, issue: "mapping entries must be objects" });
478
+ return { ...value, schema_version: 2, status: "current", mappings: value.mappings };
479
+ }
480
+ function assertAcceptedMappingDecision({ mapping, system, version, code }) {
481
+ const acceptance = isRecord(mapping.acceptance) ? mapping.acceptance : null;
482
+ if (acceptance?.status !== "accepted"
483
+ || typeof acceptance?.decided_by !== "string"
484
+ || acceptance.decided_by.trim().length === 0
485
+ || !isRealCanonicalUtcTimestamp(acceptance?.decided_at_utc)
486
+ || typeof acceptance?.decision_ref !== "string"
487
+ || !/^(?:docs|classifications\/migrations)\/[A-Za-z0-9][A-Za-z0-9._/-]*\.(?:md|ya?ml|json)(?:#[A-Za-z0-9][A-Za-z0-9._-]*)?$/u.test(acceptance.decision_ref)) {
488
+ throw new PcrClassificationMappingError({
489
+ system,
490
+ version,
491
+ code,
492
+ mappingType: mapping?.mapping_type,
493
+ issue: "selected edge requires acceptance.status=accepted, decided_by, strict decided_at_utc, and decision_ref",
494
+ });
495
+ }
496
+ }
497
+ function isRealCanonicalUtcTimestamp(value) {
498
+ const match = typeof value === "string"
499
+ ? /^([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(?:\.[0-9]+)?Z$/u.exec(value)
500
+ : null;
501
+ if (!match) {
502
+ return false;
503
+ }
504
+ const year = Number(match[1]), month = Number(match[2]), day = Number(match[3]), hour = Number(match[4]), minute = Number(match[5]), second = Number(match[6]);
505
+ const parsed = new Date(0);
506
+ parsed.setUTCFullYear(year, month - 1, day);
507
+ parsed.setUTCHours(hour, minute, second, 0);
508
+ return (parsed.getUTCFullYear() === year
509
+ && parsed.getUTCMonth() === month - 1
510
+ && parsed.getUTCDate() === day
511
+ && parsed.getUTCHours() === hour
512
+ && parsed.getUTCMinutes() === minute
513
+ && parsed.getUTCSeconds() === second);
514
+ }
515
+ function assertCoverageMappingMatchesCanonical({ coverage, canonical, system, version, code }) {
516
+ const coverageMapping = coverage.mapping;
517
+ const canonicalMapping = canonical.mapping;
518
+ for (const field of ["pcr_id", "mapping_type", "confidence"]) {
519
+ if (String(coverageMapping?.[field]) !== String(canonicalMapping?.[field])) {
520
+ throw invalidCoverageResolution({
521
+ system,
522
+ version,
523
+ code,
524
+ issue: `coverage mapping ${field} ${String(coverageMapping?.[field])} does not match canonical mapping ${String(canonicalMapping?.[field])}`,
525
+ });
526
+ }
527
+ }
528
+ for (const field of ["status", "decided_by", "decided_at_utc", "decision_ref"]) {
529
+ if (String(coverageMapping?.acceptance?.[field])
530
+ !== String(canonicalMapping?.acceptance?.[field])) {
531
+ throw invalidCoverageResolution({
532
+ system,
533
+ version,
534
+ code,
535
+ issue: `coverage mapping acceptance.${field} ${String(coverageMapping?.acceptance?.[field])} ` +
536
+ `does not match canonical mapping ${String(canonicalMapping?.acceptance?.[field])}`,
537
+ });
538
+ }
539
+ }
540
+ }
541
+ function invalidCoverageResolution({ system, version, code, issue }) {
542
+ return new PcrClassificationCoverageSemanticError({
543
+ system,
544
+ version,
545
+ source: `classifications/indexes/${system}-${version}-coverage.json`,
546
+ issues: [`entry ${code}: ${issue}`],
547
+ });
548
+ }
549
+ /**
550
+ * Resolve a PCR identity without silently following a retired id. Alias
551
+ * lookup intentionally happens before catalog lookup, including while the
552
+ * old scaffold directory still exists during a staged migration.
553
+ */
554
+ export function resolvePcrIdentity({ root, pcrId, context = null }) {
555
+ const readRoot = requiredRoot(root, context);
556
+ const normalizedPcrId = String(pcrId);
557
+ const alias = findPcrIdAlias({ root: readRoot, pcrId: normalizedPcrId, context });
558
+ if (alias) {
559
+ return {
560
+ resolution_status: "legacy_id_redirect",
561
+ requested_pcr_id: normalizedPcrId,
562
+ redirect: legacyPcrIdRedirect(alias),
563
+ pcr: null,
564
+ };
565
+ }
566
+ return {
567
+ resolution_status: "canonical",
568
+ requested_pcr_id: normalizedPcrId,
569
+ redirect: null,
570
+ pcr: getCurrentPcrSnapshotUnchecked({ root: readRoot, pcrId: normalizedPcrId, context }).pcr,
571
+ };
572
+ }
573
+ function legacyPcrIdRedirect(alias) {
574
+ return {
575
+ source_pcr_id: alias.source_pcr_id,
576
+ source_pcr_path: alias.source_pcr_path,
577
+ target: structuredClone(alias.target),
578
+ reason: alias.reason,
579
+ decision_ref: alias.decision_ref,
580
+ next_command: nextCommandForLegacyPcrAlias(alias.target),
581
+ };
582
+ }
583
+ function nextCommandForLegacyPcrAlias(target) {
584
+ if (target.kind === "classification_coverage") {
585
+ return ("npm --silent run tiangong-pcr -- resolve --classification " +
586
+ `${target.classification_system}:${target.classification_version}:${target.code} --format json`);
587
+ }
588
+ return ("npm --silent run tiangong-pcr -- resolve --pcr " +
589
+ `${target.pcr_id} --format json`);
590
+ }
591
+ function throwIfLegacyPcrId({ root, pcrId, context = null }) {
592
+ const alias = findPcrIdAlias({ root: requiredRoot(root, context), pcrId: String(pcrId), context });
593
+ if (alias) {
594
+ throw new PcrLegacyIdRedirectError(alias);
595
+ }
596
+ }
597
+ export function getPcrById({ root, pcrId, refresh = false, context = null }) {
598
+ return getCurrentPcrSnapshot({ root: requiredRoot(root, context), pcrId, refresh, context }).pcr;
599
+ }
600
+ export function getPcrReadiness({ root, pcrId, refresh = false, context = null }) {
601
+ return structuredClone(getPcrById({ root: requiredRoot(root, context), pcrId, refresh, context }).readiness);
602
+ }
603
+ export function readPcrMarkdown({ root, pcrId, language = "en-US", context = null }) {
604
+ const readRoot = requiredRoot(root, context);
605
+ const snapshot = getCurrentPcrSnapshot({ root: readRoot, pcrId, context });
606
+ const source = pcrSource(readRoot);
607
+ if (source && !source.languages.includes(language)) {
608
+ throw Object.assign(new Error(`Offline library contains English only; requested ${language}. Use --lang en-US.`), { code: "PCR_LIBRARY_LANGUAGE_UNAVAILABLE" });
609
+ }
610
+ const markdownName = `pcr.${language}.md`;
611
+ const markdownPath = path.join(readRoot, snapshot.pcr.path, markdownName);
612
+ const artifact = snapshot.artifacts[markdownName];
613
+ if (!artifact?.bytes) {
614
+ throw new Error(`PCR Markdown not found: ${toPosix(path.relative(readRoot, markdownPath))}`);
615
+ }
616
+ return artifact.bytes.toString("utf8");
617
+ }
618
+ /** A complete current document, read once through the same integrity boundary as guidance. */
619
+ export function readPcrDocumentBundle({ root, pcrId, context = null }) {
620
+ root = requiredRoot(root, context);
621
+ const snapshot = getCurrentPcrSnapshot({ root, pcrId, context });
622
+ const { pcr, manifest, manifestBytes, structured } = snapshot;
623
+ assertPcrUsable({ pcr, operation: "guidance" });
624
+ const languages = pcrSource(root)?.languages ?? declaredPcrLanguages(manifest);
625
+ if (manifest.schema_version !== 1 && manifest.schema_version !== 2)
626
+ throw new Error(`Unsupported document manifest schema: ${manifest.schema_version}`);
627
+ for (const language of languages) {
628
+ const title = unknownField(manifest.title, language);
629
+ if (typeof title !== "string" || !title.trim())
630
+ throw new Error(`Document requires a nonempty ${language} title.`);
631
+ }
632
+ const artifacts = {};
633
+ const decoder = new TextDecoder("utf-8", { fatal: true });
634
+ for (const name of ["manifest.yaml", ...(pcrSource(root) ? [...languages.map((language) => `pcr.${language}.md`), "structured.yaml"] : pcrArtifactFiles(manifest))]) {
635
+ const bytes = name === "manifest.yaml" ? manifestBytes : snapshot.artifacts[name]?.bytes;
636
+ if (!bytes)
637
+ throw new Error(`PCR document artifact is unavailable: ${pcr.path}/${name}`);
638
+ // A copy prevents consumers from changing a cached snapshot through Buffer aliasing.
639
+ const copy = Buffer.from(bytes);
640
+ const text = decoder.decode(copy);
641
+ if (!text.trim())
642
+ throw new Error(`PCR document artifact is empty: ${pcr.path}/${name}`);
643
+ artifacts[name] = {
644
+ path: `${pcr.path}/${name}`,
645
+ bytes: copy,
646
+ text,
647
+ sha256: exactByteSha256(copy),
648
+ };
649
+ }
650
+ return {
651
+ schema_version: 1,
652
+ workspace: "current",
653
+ pcr: structuredClone(pcr),
654
+ manifest: structuredClone(manifest),
655
+ structured: structuredClone(structured),
656
+ languages,
657
+ artifacts,
658
+ };
659
+ }
660
+ /** Complete referenced legacy module source; scaffold status remains explicit. */
661
+ export function readPcrModuleDocumentBundle({ root, group, moduleId }) {
662
+ for (const value of [group, moduleId])
663
+ if (typeof value !== "string" || !/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(value))
664
+ throw new Error("Invalid PCR module identity.");
665
+ const relativePath = `library/modules/${group}/${moduleId}.md`;
666
+ const filePath = path.join(root, relativePath);
667
+ const read = () => pcrSource(root)?.readFile(relativePath) ?? readControlledRepositoryFileBytes({ root, filePath, relativePath, label: "PCR module" });
668
+ const bytes = read();
669
+ const text = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
670
+ const envelope = /^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/u.exec(text);
671
+ if (!envelope)
672
+ throw new Error(`Module requires frontmatter: ${relativePath}`);
673
+ const frontmatter = parsedRecord(envelope[1] ?? "", "Module frontmatter");
674
+ if (frontmatter.id !== `module.${group}.${moduleId}` || frontmatter.module_type !== group)
675
+ throw new Error(`Module identity mismatch: ${relativePath}`);
676
+ if (!text.slice(envelope[0].length).trim())
677
+ throw new Error(`Module body is empty: ${relativePath}`);
678
+ if (!bytes.equals(read()))
679
+ throw new Error(`Module changed during read: ${relativePath}`);
680
+ return { frontmatter, language: frontmatter.language ?? "en-US", artifact: { path: relativePath, bytes: Buffer.from(bytes), text, sha256: exactByteSha256(bytes) } };
681
+ }
682
+ export function buildGuidance({ root, pcrId, context = null }) {
683
+ return buildGuidanceForOperation({ root: requiredRoot(root, context), pcrId, operation: "guidance", context });
684
+ }
685
+ /** Internal captured source boundary used by synchronous read sessions. */
686
+ export function readVerifiedSnapshotForSession(options) {
687
+ const snapshot = getCurrentPcrSnapshot(options);
688
+ assertPcrUsable({ pcr: snapshot.pcr, operation: "guidance" });
689
+ if (!snapshot.structured)
690
+ throw new Error(`PCR ${options.pcrId} passed readiness without a verified structured projection.`);
691
+ return { ...snapshot, structured: snapshot.structured };
692
+ }
693
+ /** Compose from the captured verified source, never from a second file read. */
694
+ export function projectionFromVerifiedSnapshot(snapshot, root) {
695
+ return { pcr: structuredClone(snapshot.pcr), readiness: structuredClone(snapshot.pcr.readiness),
696
+ source_structured: toPosix(path.relative(root, snapshot.structuredPath)),
697
+ structured: structuredClone(snapshot.structured), ...deriveSnapshotGuidanceContext(snapshot) };
698
+ }
699
+ export function getVerifiedPcrProjection(options) {
700
+ return projectionFromVerifiedSnapshot(readVerifiedSnapshotForSession(options), requiredRoot(options.root, options.context));
701
+ }
702
+ function buildGuidanceForOperation({ root, pcrId, operation, context = null }) {
703
+ root = requiredRoot(root, context);
704
+ const snapshot = getCurrentPcrSnapshot({ root, pcrId, context });
705
+ const { pcr, structured, structuredPath } = snapshot;
706
+ assertPcrUsable({ pcr, operation });
707
+ if (!structured) {
708
+ throw new Error(`PCR ${pcrId} passed readiness without a verified structured projection.`);
709
+ }
710
+ const guidance = buildCompleteGuidance({ ...snapshot, structured }, toPosix(path.relative(root, structuredPath)));
711
+ assertCoreContract("guidance-output.schema.json", guidance, {
712
+ code: "PCR_INTERNAL_CONTRACT_INVALID",
713
+ entityKind: "Agent guidance output",
714
+ source: toPosix(path.relative(root, structuredPath)),
715
+ });
716
+ return guidance;
717
+ }
718
+ export function createFeedbackDraft({ root, pcrId, type, affectedSection = "", processId = "", flowRole = "", summary = "", evidence = "", proposedChange = "", agent = "tiangong-pcr", }) {
719
+ if (!FEEDBACK_TYPES.includes(type)) {
720
+ throw new Error(`Unsupported feedback type: ${type}`);
721
+ }
722
+ const pcr = pcrId ? getPcrById({ root, pcrId }) : null;
723
+ const title = `PCR feedback: ${type}${pcrId ? ` for ${pcrId}` : ""}`;
724
+ const body = `## Summary
725
+
726
+ ${summary || "Describe the PCR issue or improvement."}
727
+
728
+ ## Feedback metadata
729
+
730
+ | Field | Value |
731
+ | --- | --- |
732
+ | PCR id | ${pcrId || ""} |
733
+ | PCR version | ${pcr?.version ?? ""} |
734
+ | Feedback type | ${type} |
735
+ | Affected section | ${affectedSection} |
736
+ | Affected process_id | ${processId} |
737
+ | Affected flow role | ${flowRole} |
738
+ | Generated by | ${agent} |
739
+
740
+ ## Current PCR text or rule excerpt
741
+
742
+
743
+ ## Proposed change
744
+
745
+ ${proposedChange}
746
+
747
+ ## Evidence sources
748
+
749
+ ${evidence}
750
+
751
+ ## Impact on foreground data package construction
752
+
753
+
754
+ ## Maintainer intake checklist
755
+
756
+ - [ ] Classify the feedback as PCR content, classification mapping, UUID identity, translation, source evidence, or CLI/validator behavior.
757
+ - [ ] Verify cited evidence and Tiangong UUID references before changing PCR content.
758
+ - [ ] Update canonical \`pcr.en-US.md\` first when methodology changes.
759
+ - [ ] Align \`pcr.zh-CN.md\` when user-facing text changes.
760
+ - [ ] Run \`npm run pcr:sync-structured -- --pcr <library/pcrs/...>\` when canonical Markdown changes.
761
+ - [ ] Bump or publish the PCR manifest if lifecycle state changes.
762
+ `;
763
+ const draft = { title, body };
764
+ assertCoreContract("feedback-draft-output.schema.json", draft, {
765
+ code: "PCR_INTERNAL_CONTRACT_INVALID",
766
+ entityKind: "PCR feedback issue draft output",
767
+ });
768
+ return draft;
769
+ }
770
+ export function validateModelAgainstGuidance({ root, pcrId, model }) {
771
+ const guidance = buildGuidanceForOperation({ root, pcrId, operation: "validation" });
772
+ const findings = [];
773
+ const accepted = validateCoreContract("model-validation-input.schema.json", model).valid;
774
+ const text = typeof model === "string" ? model : accepted ? JSON.stringify(model) : "";
775
+ const checksPerformed = [];
776
+ const checksSkipped = [];
777
+ if (!accepted) {
778
+ findings.push({
779
+ severity: "error",
780
+ code: "invalid_model_input",
781
+ message: "Model input must be text or a JSON object.",
782
+ });
783
+ }
784
+ const requiredQualifiers = asArray(guidance.reference_flow.required_qualifiers);
785
+ if (accepted && requiredQualifiers.length > 0) {
786
+ checksPerformed.push(performedCheck("required_qualifier_presence", "reference_flow.required_qualifiers", requiredQualifiers.length));
787
+ for (const qualifier of requiredQualifiers) {
788
+ if (!text.toLowerCase().includes(String(qualifier).toLowerCase())) {
789
+ findings.push({
790
+ severity: "warning",
791
+ code: "missing_required_qualifier",
792
+ message: `Model text does not mention required qualifier: ${qualifier}`,
793
+ });
794
+ }
795
+ }
796
+ }
797
+ if (accepted) {
798
+ addSkippedCheck(checksSkipped, "system_boundary_rules", "system_boundary.rules", asArray(guidance.system_boundary?.rules).length);
799
+ addSkippedCheck(checksSkipped, "boundary_abstraction", "boundary_abstraction", topLevelRequirementCount(guidance.boundary_abstraction));
800
+ addSkippedCheck(checksSkipped, "reference_flow_definition", "reference_flow", topLevelRequirementCount(guidance.reference_flow, ["required_qualifiers"]));
801
+ addSkippedCheck(checksSkipped, "measurement_rules", "measurement_rules", asArray(guidance.measurement_rules).length);
802
+ addSkippedCheck(checksSkipped, "process_map", "process_map", asArray(guidance.process_map).length);
803
+ addSkippedCheck(checksSkipped, "process_inventory", "process_inventory", countInventoryRows(guidance.process_inventory));
804
+ addSkippedCheck(checksSkipped, "collection_protocols", "production_guidance.collection_protocols", asArray(guidance.production_guidance.collection_protocols).length);
805
+ addSkippedCheck(checksSkipped, "calculation_rules", "production_guidance.calculation_rules", asArray(guidance.production_guidance.calculation_rules).length);
806
+ addSkippedCheck(checksSkipped, "data_quality_requirements", "production_guidance.data_quality_requirements", asArray(guidance.production_guidance.data_quality_requirements).length);
807
+ addSkippedCheck(checksSkipped, "data_quality_rules", "data_quality_rules", asArray(guidance.data_quality_rules).length);
808
+ addSkippedCheck(checksSkipped, "allocation_rules", "allocation_rules", asArray(guidance.allocation_rules).length);
809
+ addSkippedCheck(checksSkipped, "validation_rules", "validation_rules", asArray(guidance.validation_rules).length);
810
+ addSkippedCheck(checksSkipped, "published_dataset_profile", "published_dataset_profile", topLevelRequirementCount(guidance.published_dataset_profile));
811
+ }
812
+ return buildValidationReport({
813
+ validationKind: "tiangong-pcr-model-validation",
814
+ guidance,
815
+ input: {
816
+ input_kind: "process_or_lifecyclemodel",
817
+ representation: typeof model === "string" ? "text" : Array.isArray(model) ? "array" : typeof model,
818
+ accepted,
819
+ },
820
+ findings,
821
+ checksPerformed,
822
+ checksSkipped,
823
+ });
824
+ }
825
+ export function validateDatasetAgainstGuidance({ root, pcrId, dataset }) {
826
+ const guidance = buildGuidanceForOperation({ root, pcrId, operation: "validation" });
827
+ const findings = [];
828
+ const accepted = validateCoreContract("dataset-validation-input.schema.json", dataset).valid;
829
+ const checksPerformed = [];
830
+ const checksSkipped = [];
831
+ const records = accepted ? collectionRecordArrays(dataset) : [];
832
+ const requiredProtocolIds = asArray(guidance.production_guidance.collection_protocols)
833
+ .map((protocol) => unknownField(protocol, "protocol_id"))
834
+ .filter(Boolean);
835
+ const presentProtocolIds = accepted ? collectCollectionRecordProtocolIds(dataset) : new Set();
836
+ if (!accepted) {
837
+ findings.push({
838
+ severity: "error",
839
+ code: "invalid_dataset_input",
840
+ message: "Foreground data package input must be a JSON object.",
841
+ });
842
+ }
843
+ if (accepted && requiredProtocolIds.length > 0) {
844
+ checksPerformed.push(performedCheck("collection_protocol_presence", "production_guidance.collection_protocols", requiredProtocolIds.length));
845
+ for (const protocolId of requiredProtocolIds) {
846
+ if (!presentProtocolIds.has(String(protocolId))) {
847
+ findings.push({
848
+ severity: "error",
849
+ code: "missing_collection_protocol_record",
850
+ message: `Foreground data package is missing collection record for protocol_id ${protocolId}`,
851
+ });
852
+ }
853
+ }
854
+ }
855
+ if (accepted) {
856
+ addSkippedCheck(checksSkipped, "system_boundary_rules", "system_boundary.rules", asArray(guidance.system_boundary?.rules).length);
857
+ addSkippedCheck(checksSkipped, "boundary_abstraction", "boundary_abstraction", topLevelRequirementCount(guidance.boundary_abstraction));
858
+ addSkippedCheck(checksSkipped, "reference_flow_rules", "reference_flow", topLevelRequirementCount(guidance.reference_flow, ["required_qualifiers"]) +
859
+ asArray(guidance.reference_flow?.required_qualifiers).length);
860
+ addSkippedCheck(checksSkipped, "measurement_rules", "measurement_rules", asArray(guidance.measurement_rules).length);
861
+ addSkippedCheck(checksSkipped, "process_map", "process_map", asArray(guidance.process_map).length);
862
+ addSkippedCheck(checksSkipped, "process_inventory", "process_inventory", countInventoryRows(guidance.process_inventory));
863
+ addSkippedCheck(checksSkipped, "calculation_rules", "production_guidance.calculation_rules", asArray(guidance.production_guidance.calculation_rules).length);
864
+ addSkippedCheck(checksSkipped, "data_quality_requirements", "production_guidance.data_quality_requirements", asArray(guidance.production_guidance.data_quality_requirements).length);
865
+ addSkippedCheck(checksSkipped, "data_quality_rules", "data_quality_rules", asArray(guidance.data_quality_rules).length);
866
+ addSkippedCheck(checksSkipped, "allocation_rules", "allocation_rules", asArray(guidance.allocation_rules).length);
867
+ addSkippedCheck(checksSkipped, "validation_rules", "validation_rules", asArray(guidance.validation_rules).length);
868
+ addSkippedCheck(checksSkipped, "published_dataset_profile", "published_dataset_profile", topLevelRequirementCount(guidance.published_dataset_profile));
869
+ }
870
+ return buildValidationReport({
871
+ validationKind: "tiangong-pcr-dataset-validation",
872
+ guidance,
873
+ input: {
874
+ input_kind: "foreground_data_package",
875
+ representation: Array.isArray(dataset) ? "array" : dataset === null ? "null" : typeof dataset,
876
+ accepted,
877
+ collection_record_count: records.length,
878
+ distinct_protocol_id_count: presentProtocolIds.size,
879
+ },
880
+ findings,
881
+ checksPerformed,
882
+ checksSkipped,
883
+ });
884
+ }
885
+ function collectCollectionRecordProtocolIds(dataset) {
886
+ if (typeof dataset === "string") {
887
+ return new Set();
888
+ }
889
+ const ids = new Set();
890
+ for (const record of collectionRecordArrays(dataset)) {
891
+ const protocolId = unknownField(record, "protocol_id") ?? unknownField(record, "collection_protocol_id");
892
+ if (protocolId) {
893
+ ids.add(String(protocolId));
894
+ }
895
+ }
896
+ return ids;
897
+ }
898
+ function collectionRecordArrays(value) {
899
+ if (!isRecord(value)) {
900
+ return [];
901
+ }
902
+ const records = [];
903
+ for (const key of ["collection_records", "foreground_records", "measurement_records"]) {
904
+ const rows = value[key];
905
+ if (Array.isArray(rows))
906
+ records.push(...rows);
907
+ }
908
+ if (value.data && typeof value.data === "object") {
909
+ records.push(...collectionRecordArrays(value.data));
910
+ }
911
+ return records;
912
+ }
913
+ function currentPcrEntry(root, entry) {
914
+ return currentPcrSnapshot(root, entry).pcr;
915
+ }
916
+ function getCurrentPcrSnapshot({ root, pcrId, refresh = false, context = null }) {
917
+ throwIfLegacyPcrId({ root, pcrId, context });
918
+ return getCurrentPcrSnapshotUnchecked({ root, pcrId, refresh, context });
919
+ }
920
+ export function readPcrDistributionCatalog({ root }) {
921
+ return readPcrCatalog(path.resolve(root));
922
+ }
923
+ // Builder-only: preserves legacy catalog records without following alias redirects.
924
+ export function readPcrDistributionSnapshot(options) {
925
+ return getCurrentPcrSnapshotUnchecked(options);
926
+ }
927
+ function getCurrentPcrSnapshotUnchecked({ root, pcrId, refresh = false, context = null }) {
928
+ root = requiredRoot(root, context);
929
+ const source = pcrSource(root);
930
+ if (source) {
931
+ const entry = source.entry(pcrId);
932
+ if (!entry)
933
+ throw new Error(`PCR not found: ${pcrId}`);
934
+ return currentPcrSnapshot(root, entry);
935
+ }
936
+ const normalizedRoot = path.resolve(root);
937
+ if (context) {
938
+ assertPcrReadContextFresh({ context, root: normalizedRoot });
939
+ }
940
+ const entry = context
941
+ ? getPcrReadContextCatalog({ context, root: normalizedRoot, readCatalog: readPcrCatalog }).get(pcrId)
942
+ : getPcrCatalog({ root: normalizedRoot, refresh }).find(candidate => candidate.id === pcrId);
943
+ if (!entry) {
944
+ throw new Error(`PCR not found: ${pcrId}`);
945
+ }
946
+ return currentPcrSnapshot(normalizedRoot, entry, context);
947
+ }
948
+ function currentPcrSnapshot(root, entry, context = null) {
949
+ const snapshotFiles = pcrSource(root)?.snapshotFiles(entry) ?? readConsistentSnapshotFiles({ root, entry, context });
950
+ const pcr = pcrFromManifest({
951
+ root,
952
+ pcrDir: path.dirname(entry.manifestPath),
953
+ manifest: snapshotFiles.manifest,
954
+ });
955
+ let projection;
956
+ try {
957
+ projection = inspectPcrProjection({
958
+ root,
959
+ pcr,
960
+ manifest: snapshotFiles.manifest,
961
+ artifacts: snapshotFiles.artifacts,
962
+ });
963
+ }
964
+ catch (error) {
965
+ projection = failedProjectionInspection({ root, pcr, error });
966
+ }
967
+ const readiness = assessPcrReadiness({
968
+ pcr,
969
+ projectionFingerprint: projection.fingerprint,
970
+ structuredAvailable: projection.structuredAvailable,
971
+ projectionCompletenessIssues: projection.completenessIssues,
972
+ });
973
+ return {
974
+ pcr: { ...pcr, readiness },
975
+ manifest: snapshotFiles.manifest,
976
+ manifestBytes: snapshotFiles.manifestBytes,
977
+ artifacts: snapshotFiles.artifacts,
978
+ ...projection,
979
+ };
980
+ }
981
+ function readConsistentSnapshotFiles({ root, entry, context = null }) {
982
+ let lastFailure = null;
983
+ for (let attempt = 1; attempt <= CURRENT_SNAPSHOT_MAX_ATTEMPTS; attempt += 1) {
984
+ try {
985
+ const locationA = assertCurrentSnapshotLocation({ root, entry });
986
+ const manifestABytes = readCanonicalFileBytes(locationA.manifestPath);
987
+ const manifest = parsedRecord(manifestABytes.toString("utf8"), "PCR manifest");
988
+ if (manifest.id !== entry.id) {
989
+ throw snapshotAttemptError("manifest_identity_changed", `Expected PCR id ${entry.id}, found ${String(manifest.id)}.`, { expected_pcr_id: entry.id, actual_pcr_id: manifest.id ?? null });
990
+ }
991
+ const managedMarkersA = currentManagedStateMarkers(locationA.pcrDir);
992
+ assertManagedSnapshotHashesDeclared({ manifest, managedMarkers: managedMarkersA });
993
+ const artifacts = Object.fromEntries(pcrArtifactFiles(manifest, { strict: false }).map((filename) => [
994
+ filename,
995
+ readObservedPcrArtifact({ root, context, pcrDir: locationA.pcrDir, filename }),
996
+ ]));
997
+ const releaseFailures = releaseArtifactFailures({ manifest, artifacts });
998
+ const locationB = assertCurrentSnapshotLocation({ root, entry });
999
+ const managedMarkersB = currentManagedStateMarkers(locationB.pcrDir);
1000
+ if (!sameStrings(managedMarkersA, managedMarkersB)) {
1001
+ throw snapshotAttemptError("managed_state_changed_during_read", "PCR managed release state changed while its current snapshot was being read.", {
1002
+ managed_markers_before: managedMarkersA,
1003
+ managed_markers_after: managedMarkersB,
1004
+ });
1005
+ }
1006
+ const manifestBBytes = readCanonicalFileBytes(locationB.manifestPath);
1007
+ if (!manifestABytes.equals(manifestBBytes)) {
1008
+ throw snapshotAttemptError("manifest_changed_during_read", "manifest.yaml changed while its current artifacts were being read.");
1009
+ }
1010
+ if (releaseFailures.length > 0) {
1011
+ throw snapshotAttemptError("release_artifact_hash_mismatch", "Current PCR artifacts do not match manifest.release_artifacts.", { manifest_status: manifest.status ?? null, artifacts: releaseFailures });
1012
+ }
1013
+ return { manifest, manifestBytes: manifestABytes, artifacts };
1014
+ }
1015
+ catch (error) {
1016
+ lastFailure = snapshotFailureDetails(error);
1017
+ }
1018
+ }
1019
+ throw new PcrCurrentSnapshotInconsistentError({
1020
+ pcrId: entry.id,
1021
+ pcrPath: entry.path,
1022
+ attempts: CURRENT_SNAPSHOT_MAX_ATTEMPTS,
1023
+ lastFailure,
1024
+ });
1025
+ }
1026
+ function readObservedPcrArtifact({ root, context, pcrDir, filename }) {
1027
+ const artifactPath = path.join(pcrDir, filename);
1028
+ if (context) {
1029
+ observePcrReadContextArtifactRead({
1030
+ context,
1031
+ root,
1032
+ relativePath: toPosix(path.relative(root, artifactPath)),
1033
+ });
1034
+ }
1035
+ return readOptionalCanonicalFile(artifactPath);
1036
+ }
1037
+ function releaseArtifactFailures({ manifest, artifacts }) {
1038
+ if (!Object.hasOwn(manifest, "release_artifacts")) {
1039
+ return [];
1040
+ }
1041
+ const expectedHashes = expectedPcrArtifactHashes(manifest);
1042
+ const failures = [];
1043
+ for (const [filename, expected] of Object.entries(expectedHashes)) {
1044
+ const hashField = manifest.schema_version === 2 && filename !== "structured.yaml"
1045
+ ? `markdown_sha256.${filename.slice(4, -3)}`
1046
+ : Object.entries(RELEASE_ARTIFACTS).find(([, file]) => file === filename)?.[0];
1047
+ const artifact = artifacts[filename];
1048
+ if (!artifact?.bytes) {
1049
+ failures.push({
1050
+ artifact: filename,
1051
+ hash_field: hashField,
1052
+ expected: typeof expected === "string" ? expected : null,
1053
+ actual: null,
1054
+ reason: `artifact_unreadable:${errorCode(artifact?.error)}`,
1055
+ });
1056
+ continue;
1057
+ }
1058
+ const actual = exactByteSha256(artifact.bytes);
1059
+ if (typeof expected !== "string" || expected !== actual) {
1060
+ failures.push({
1061
+ artifact: filename,
1062
+ hash_field: hashField,
1063
+ expected: typeof expected === "string" ? expected : null,
1064
+ actual,
1065
+ reason: "sha256_mismatch",
1066
+ });
1067
+ }
1068
+ }
1069
+ return failures;
1070
+ }
1071
+ function assertManagedSnapshotHashesDeclared({ manifest, managedMarkers }) {
1072
+ if (managedMarkers.length === 0 || Object.hasOwn(manifest, "release_artifacts")) {
1073
+ return;
1074
+ }
1075
+ throw snapshotAttemptError("managed_release_artifacts_missing", "Managed PCR current state requires manifest.release_artifacts and cannot use legacy snapshot semantics.", {
1076
+ manifest_status: manifest.status ?? null,
1077
+ managed_markers: managedMarkers,
1078
+ required_field: "manifest.release_artifacts",
1079
+ required_hash_fields: Object.keys(RELEASE_ARTIFACTS),
1080
+ });
1081
+ }
1082
+ function currentManagedStateMarkers(pcrDir) {
1083
+ return ["release-history.yaml", "releases"]
1084
+ .filter((name) => pathEntryExists(path.join(pcrDir, name)))
1085
+ .sort((left, right) => left.localeCompare(right));
1086
+ }
1087
+ function pathEntryExists(targetPath) {
1088
+ try {
1089
+ lstatSync(targetPath);
1090
+ return true;
1091
+ }
1092
+ catch (error) {
1093
+ if (errorCode(error) === "ENOENT") {
1094
+ return false;
1095
+ }
1096
+ throw error;
1097
+ }
1098
+ }
1099
+ function sameStrings(left, right) {
1100
+ return left.length === right.length && left.every((value, index) => value === right[index]);
1101
+ }
1102
+ function assertCurrentSnapshotLocation({ root, entry }) {
1103
+ const normalizedRoot = path.resolve(root);
1104
+ const pathSegments = String(entry.path).split("/");
1105
+ if (pathSegments.length !== 5 ||
1106
+ pathSegments[0] !== "library" ||
1107
+ pathSegments[1] !== "pcrs" ||
1108
+ pathSegments.slice(2).some((segment) => !segment || segment === "." || segment === "..")) {
1109
+ throw snapshotAttemptError("canonical_pcr_path_invalid", "Cached PCR path is not a canonical domain/subdomain/leaf path.", {
1110
+ pcr_path: entry.path,
1111
+ reason: "non_canonical_relative_path",
1112
+ });
1113
+ }
1114
+ const directoryPaths = [normalizedRoot];
1115
+ let pcrDir = normalizedRoot;
1116
+ for (const segment of pathSegments) {
1117
+ pcrDir = path.join(pcrDir, segment);
1118
+ directoryPaths.push(pcrDir);
1119
+ }
1120
+ let rootRealPath = null;
1121
+ for (const [index, directoryPath] of directoryPaths.entries()) {
1122
+ const relativePath = toPosix(path.relative(normalizedRoot, directoryPath)) || ".";
1123
+ let stat;
1124
+ try {
1125
+ stat = lstatSync(directoryPath);
1126
+ }
1127
+ catch (error) {
1128
+ throw snapshotAttemptError("canonical_pcr_path_invalid", `Canonical PCR directory is unavailable: ${relativePath}.`, {
1129
+ path_component: relativePath,
1130
+ reason: `directory_unreadable:${errorCode(error)}`,
1131
+ expected_type: "regular_directory",
1132
+ });
1133
+ }
1134
+ if (stat.isSymbolicLink() || !stat.isDirectory()) {
1135
+ throw snapshotAttemptError("canonical_pcr_path_invalid", `Canonical PCR path component is not a regular directory: ${relativePath}.`, {
1136
+ path_component: relativePath,
1137
+ reason: stat.isSymbolicLink() ? "symbolic_link" : "not_a_directory",
1138
+ expected_type: "regular_directory",
1139
+ });
1140
+ }
1141
+ let realPath;
1142
+ try {
1143
+ realPath = realpathSync(directoryPath);
1144
+ }
1145
+ catch (error) {
1146
+ throw snapshotAttemptError("canonical_pcr_path_invalid", `Canonical PCR directory cannot be resolved: ${relativePath}.`, {
1147
+ path_component: relativePath,
1148
+ reason: `realpath_unavailable:${errorCode(error)}`,
1149
+ expected_type: "regular_directory",
1150
+ });
1151
+ }
1152
+ if (index === 0) {
1153
+ rootRealPath = realPath;
1154
+ }
1155
+ else if (rootRealPath === null || !pathIsInside(rootRealPath, realPath)) {
1156
+ throw snapshotAttemptError("canonical_pcr_path_invalid", `Canonical PCR directory resolves outside the repository root: ${relativePath}.`, {
1157
+ path_component: relativePath,
1158
+ reason: "realpath_outside_root",
1159
+ expected_type: "regular_directory_within_root",
1160
+ });
1161
+ }
1162
+ }
1163
+ const manifestPath = path.join(pcrDir, "manifest.yaml");
1164
+ if (path.resolve(entry.manifestPath) !== manifestPath) {
1165
+ throw snapshotAttemptError("canonical_pcr_path_invalid", "Cached manifest path is not the direct manifest.yaml child of its canonical PCR leaf.", {
1166
+ pcr_path: entry.path,
1167
+ reason: "manifest_not_direct_leaf_child",
1168
+ });
1169
+ }
1170
+ return { manifestPath, pcrDir };
1171
+ }
1172
+ function pathIsInside(rootPath, candidatePath) {
1173
+ const relativePath = path.relative(rootPath, candidatePath);
1174
+ return relativePath === "" || (!path.isAbsolute(relativePath) && relativePath !== ".." && !relativePath.startsWith(`..${path.sep}`));
1175
+ }
1176
+ function exactByteSha256(bytes) {
1177
+ return `sha256:${createHash("sha256").update(bytes).digest("hex")}`;
1178
+ }
1179
+ function readOptionalCanonicalFile(filePath) {
1180
+ try {
1181
+ return { bytes: readCanonicalFileBytes(filePath), error: null };
1182
+ }
1183
+ catch (error) {
1184
+ return { bytes: null, error };
1185
+ }
1186
+ }
1187
+ function readControlledRepositoryFileBytes({ root, filePath, relativePath, label }) {
1188
+ const normalizedRoot = path.resolve(root);
1189
+ const normalizedFilePath = path.resolve(filePath);
1190
+ const containedPath = path.relative(normalizedRoot, normalizedFilePath);
1191
+ if (containedPath.length === 0
1192
+ || path.isAbsolute(containedPath)
1193
+ || containedPath === ".."
1194
+ || containedPath.startsWith(`..${path.sep}`)) {
1195
+ throw new Error(`${label} path escapes the repository root: ${relativePath}`);
1196
+ }
1197
+ const expectedRelativePath = toPosix(containedPath);
1198
+ if (expectedRelativePath !== relativePath) {
1199
+ throw new Error(`${label} path is not canonical: ${relativePath}`);
1200
+ }
1201
+ const before = assertControlledRepositoryPath({
1202
+ root: normalizedRoot,
1203
+ containedPath,
1204
+ relativePath,
1205
+ label,
1206
+ });
1207
+ let descriptor;
1208
+ try {
1209
+ descriptor = openSync(normalizedFilePath, fsConstants.O_RDONLY
1210
+ | (fsConstants.O_NOFOLLOW ?? 0)
1211
+ | (fsConstants.O_NONBLOCK ?? 0));
1212
+ const opened = fstatSync(descriptor);
1213
+ if (!opened.isFile()) {
1214
+ throw new Error(`${label} is not a regular file: ${relativePath}`);
1215
+ }
1216
+ const after = assertControlledRepositoryPath({
1217
+ root: normalizedRoot,
1218
+ containedPath,
1219
+ relativePath,
1220
+ label,
1221
+ });
1222
+ if (opened.dev !== before.dev
1223
+ || opened.ino !== before.ino
1224
+ || opened.dev !== after.dev
1225
+ || opened.ino !== after.ino) {
1226
+ throw new Error(`${label} path changed while it was being opened: ${relativePath}`);
1227
+ }
1228
+ return readFileSync(descriptor);
1229
+ }
1230
+ finally {
1231
+ if (descriptor !== undefined) {
1232
+ closeSync(descriptor);
1233
+ }
1234
+ }
1235
+ }
1236
+ function assertControlledRepositoryPath({ root, containedPath, relativePath, label }) {
1237
+ let currentPath = root;
1238
+ let finalStats;
1239
+ const segments = containedPath.split(path.sep);
1240
+ for (const [index, segment] of segments.entries()) {
1241
+ currentPath = path.join(currentPath, segment);
1242
+ const stats = lstatSync(currentPath);
1243
+ if (stats.isSymbolicLink()) {
1244
+ throw new Error(`${label} path contains a symbolic link: ${relativePath}`);
1245
+ }
1246
+ const isLast = index === segments.length - 1;
1247
+ if (isLast ? !stats.isFile() : !stats.isDirectory()) {
1248
+ throw new Error(isLast
1249
+ ? `${label} is not a regular file: ${relativePath}`
1250
+ : `${label} parent is not a directory: ${relativePath}`);
1251
+ }
1252
+ if (isLast) {
1253
+ finalStats = stats;
1254
+ }
1255
+ }
1256
+ const realRoot = realpathSync(root);
1257
+ const realFile = realpathSync(path.join(root, containedPath));
1258
+ if (!pathIsInside(realRoot, realFile) || realRoot === realFile) {
1259
+ throw new Error(`${label} real path escapes the repository root: ${relativePath}`);
1260
+ }
1261
+ if (!finalStats)
1262
+ throw new Error(`${label} path has no file component: ${relativePath}`);
1263
+ return finalStats;
1264
+ }
1265
+ function readCanonicalFileBytes(filePath) {
1266
+ const stat = lstatSync(filePath);
1267
+ if (stat.isSymbolicLink() || !stat.isFile()) {
1268
+ throw Object.assign(new Error(`Canonical PCR artifact is not a regular file: ${filePath}`), { code: stat.isSymbolicLink() ? "PCR_CANONICAL_SYMLINK_REJECTED" : "PCR_CANONICAL_FILE_NOT_REGULAR" });
1269
+ }
1270
+ const descriptor = openSync(filePath, fsConstants.O_RDONLY | (fsConstants.O_NOFOLLOW ?? 0));
1271
+ try {
1272
+ if (!fstatSync(descriptor).isFile()) {
1273
+ throw Object.assign(new Error(`Canonical PCR artifact is not a regular file: ${filePath}`), { code: "PCR_CANONICAL_FILE_NOT_REGULAR" });
1274
+ }
1275
+ return readFileSync(descriptor);
1276
+ }
1277
+ finally {
1278
+ closeSync(descriptor);
1279
+ }
1280
+ }
1281
+ function snapshotAttemptError(code, message, details = {}) {
1282
+ return Object.assign(new Error(message), { snapshotCode: code, snapshotDetails: details });
1283
+ }
1284
+ function snapshotFailureDetails(error) {
1285
+ return {
1286
+ code: unknownField(error, "snapshotCode") ?? errorCode(error),
1287
+ message: error instanceof Error ? error.message : String(error),
1288
+ ...(isRecord(unknownField(error, "snapshotDetails")) ? unknownField(error, "snapshotDetails") : {}),
1289
+ };
1290
+ }
1291
+ function optionalString(value, fallback, label) {
1292
+ if (value === null || value === undefined)
1293
+ return fallback;
1294
+ if (typeof value !== "string")
1295
+ throw new TypeError(`${label} must be a string.`);
1296
+ return value;
1297
+ }
1298
+ function nullableString(value, label) {
1299
+ return value === null || value === undefined ? null : optionalString(value, "", label);
1300
+ }
1301
+ function stringRecord(value, label) {
1302
+ if (value === null || value === undefined)
1303
+ return {};
1304
+ if (!isRecord(value))
1305
+ throw new TypeError(`${label} must be a mapping.`);
1306
+ const entries = [];
1307
+ for (const [key, entry] of Object.entries(value)) {
1308
+ if (typeof entry !== "string")
1309
+ throw new TypeError(`${label}.${key} must be a string.`);
1310
+ entries.push([key, entry]);
1311
+ }
1312
+ return Object.fromEntries(entries);
1313
+ }
1314
+ function titleRecord(value) {
1315
+ if (value === null || value === undefined)
1316
+ return {};
1317
+ if (!isRecord(value))
1318
+ throw new TypeError("PCR title must be a mapping.");
1319
+ const entries = [];
1320
+ for (const [key, title] of Object.entries(value)) {
1321
+ if (title !== null && typeof title !== "string")
1322
+ throw new TypeError(`PCR title.${key} must be a string or null.`);
1323
+ entries.push([key, title]);
1324
+ }
1325
+ return Object.fromEntries(entries);
1326
+ }
1327
+ function pcrFromManifest({ root, pcrDir, manifest }) {
1328
+ if (typeof manifest.id !== "string")
1329
+ throw new TypeError("PCR manifest id must be a string.");
1330
+ const languages = manifest.languages ?? {};
1331
+ if (!isRecord(languages) || (languages.canonical !== undefined && typeof languages.canonical !== "string")
1332
+ || (languages.available !== undefined && (!Array.isArray(languages.available) || !languages.available.every(language => typeof language === "string")))) {
1333
+ throw new TypeError("PCR language metadata must contain string language tags.");
1334
+ }
1335
+ const references = manifest.classification_refs ?? [];
1336
+ if (!Array.isArray(references) || !references.every(isRecord))
1337
+ throw new TypeError("PCR classification references must be objects.");
1338
+ const pcr = {
1339
+ id: manifest.id, path: toPosix(path.relative(root, pcrDir)),
1340
+ title: titleRecord(manifest.title),
1341
+ status: optionalString(manifest.status, "unknown", "PCR status"),
1342
+ version: nullableString(manifest.version, "PCR version"),
1343
+ content_maturity: nullableString(manifest.content_maturity, "PCR maturity"),
1344
+ languages: { ...languages, ...(typeof languages.canonical === "string" ? { canonical: languages.canonical } : {}), ...(Array.isArray(languages.available) ? { available: languages.available.filter((language) => typeof language === "string") } : {}) },
1345
+ translation_status: stringRecord(manifest.translation_status, "PCR translation status"),
1346
+ classification_refs: references,
1347
+ };
1348
+ return { ...pcr, record_kind: recordKindForPcr(pcr) };
1349
+ }
1350
+ function inspectPcrProjection({ root, pcr, manifest, artifacts }) {
1351
+ const pcrDir = path.join(root, pcr.path);
1352
+ const structuredPath = path.join(pcrDir, "structured.yaml");
1353
+ const structuredArtifact = artifacts["structured.yaml"];
1354
+ const markdownArtifact = artifacts["pcr.en-US.md"];
1355
+ if (!isMaterialPcr(pcr)) {
1356
+ return {
1357
+ fingerprint: {
1358
+ ...projectionNotRequiredState(),
1359
+ schema_valid: null,
1360
+ },
1361
+ structured: null,
1362
+ structuredPath,
1363
+ structuredAvailable: Boolean(structuredArtifact?.bytes),
1364
+ completenessIssues: [],
1365
+ };
1366
+ }
1367
+ if (!structuredArtifact?.bytes && errorCode(structuredArtifact?.error) === "ENOENT") {
1368
+ return unavailableProjectionInspection({
1369
+ structuredPath,
1370
+ structuredAvailable: false,
1371
+ fingerprint: missingProjectionState("missing", "structured_projection_missing", "structured.yaml is required for material PCR guidance and validation."),
1372
+ });
1373
+ }
1374
+ if (!markdownArtifact?.bytes && errorCode(markdownArtifact?.error) === "ENOENT") {
1375
+ return unavailableProjectionInspection({
1376
+ structuredPath,
1377
+ structuredAvailable: Boolean(structuredArtifact?.bytes),
1378
+ fingerprint: missingProjectionState("source_missing", "projection_source_missing", "Canonical pcr.en-US.md is required to verify the structured projection."),
1379
+ });
1380
+ }
1381
+ if (!markdownArtifact?.bytes) {
1382
+ return unavailableProjectionInspection({
1383
+ structuredPath,
1384
+ structuredAvailable: Boolean(structuredArtifact?.bytes),
1385
+ fingerprint: invalidProjectionState("projection_source_unreadable", `Canonical pcr.en-US.md could not be read (${errorCode(markdownArtifact?.error)}).`, null),
1386
+ });
1387
+ }
1388
+ if (!structuredArtifact?.bytes) {
1389
+ return unavailableProjectionInspection({
1390
+ structuredPath,
1391
+ structuredAvailable: false,
1392
+ fingerprint: invalidProjectionState("structured_projection_unreadable", `structured.yaml could not be read (${errorCode(structuredArtifact?.error)}).`, false),
1393
+ });
1394
+ }
1395
+ const sourceMarkdown = markdownArtifact.bytes.toString("utf8");
1396
+ const structuredText = structuredArtifact.bytes.toString("utf8");
1397
+ let structured;
1398
+ try {
1399
+ structured = parseYaml(structuredText);
1400
+ }
1401
+ catch (error) {
1402
+ return unavailableProjectionInspection({
1403
+ structuredPath,
1404
+ structuredAvailable: true,
1405
+ fingerprint: invalidProjectionState("structured_projection_parse_error", `structured.yaml could not be parsed (${errorCode(error)}).`, false),
1406
+ });
1407
+ }
1408
+ const schemaResult = validateCoreContract("structured-projection.schema.json", structured, { entityKind: "material structured projection" });
1409
+ const integrity = inspectProjectionIntegrity({
1410
+ sourceMarkdown,
1411
+ structuredText,
1412
+ metadata: unknownField(structured, "projection_metadata"),
1413
+ structuredProjection: structured,
1414
+ });
1415
+ const schemaIssues = schemaResult.valid
1416
+ ? []
1417
+ : [
1418
+ {
1419
+ code: "structured_schema_invalid",
1420
+ message: `structured.yaml violates the material projection schema (${schemaResult.errors.length} issue(s)).`,
1421
+ },
1422
+ ...schemaResult.errors.map((error) => ({
1423
+ code: `structured_schema.${error.keyword}`,
1424
+ message: `${error.instance_path}: ${error.message}`,
1425
+ })),
1426
+ ];
1427
+ const issues = deduplicateMessages([...schemaIssues, ...integrity.issues]);
1428
+ const fingerprint = {
1429
+ ...integrity,
1430
+ status: schemaResult.valid ? integrity.status : "invalid",
1431
+ schema_valid: schemaResult.valid,
1432
+ issues,
1433
+ };
1434
+ return {
1435
+ fingerprint,
1436
+ structured: schemaResult.valid && integrity.status === "current" ? structured : null,
1437
+ structuredPath,
1438
+ structuredAvailable: true,
1439
+ completenessIssues: schemaResult.valid
1440
+ ? materialProjectionCompletenessIssues(structured, {
1441
+ expectedPcrId: pcr.id,
1442
+ allowUnresolvedProductFlowUuid: hasDeclaredUnresolvedReferenceProductFlow(structured, manifest),
1443
+ })
1444
+ : [],
1445
+ };
1446
+ }
1447
+ function unavailableProjectionInspection({ fingerprint, structuredPath, structuredAvailable }) {
1448
+ return {
1449
+ fingerprint,
1450
+ structured: null,
1451
+ structuredPath,
1452
+ structuredAvailable,
1453
+ completenessIssues: [],
1454
+ };
1455
+ }
1456
+ function failedProjectionInspection({ root, pcr, error }) {
1457
+ return unavailableProjectionInspection({
1458
+ structuredPath: path.join(root, pcr.path, "structured.yaml"),
1459
+ structuredAvailable: false,
1460
+ fingerprint: invalidProjectionState("projection_inspection_failed", `Projection integrity inspection failed (${errorCode(error)}).`, false),
1461
+ });
1462
+ }
1463
+ function invalidProjectionState(code, message, schemaValid) {
1464
+ return {
1465
+ required: true,
1466
+ status: "invalid",
1467
+ schema_valid: schemaValid,
1468
+ contract_version: null,
1469
+ source_sha256: null,
1470
+ generated_content_sha256: null,
1471
+ source_hash_valid: null,
1472
+ content_hash_valid: null,
1473
+ issues: [{ code, message }],
1474
+ };
1475
+ }
1476
+ function errorCode(error) {
1477
+ const code = unknownField(error, "code");
1478
+ return typeof code === "string" && code ? code : "unknown_error";
1479
+ }
1480
+ function missingProjectionState(status, code, message) {
1481
+ return {
1482
+ required: true,
1483
+ status,
1484
+ schema_valid: null,
1485
+ contract_version: null,
1486
+ source_sha256: null,
1487
+ generated_content_sha256: null,
1488
+ source_hash_valid: null,
1489
+ content_hash_valid: null,
1490
+ issues: [{ code, message }],
1491
+ };
1492
+ }
1493
+ function isMaterialPcr(pcr) {
1494
+ return recordKindForPcr(pcr) === "methodology";
1495
+ }
1496
+ function normalizeCatalogScope(scope) {
1497
+ const normalized = String(scope);
1498
+ if (!PCR_CATALOG_SCOPE_SET.has(normalized)) {
1499
+ throw new PcrCatalogScopeError(scope);
1500
+ }
1501
+ if (normalized === "all" || normalized === "material" || normalized === "legacy")
1502
+ return normalized;
1503
+ throw new PcrCatalogScopeError(scope);
1504
+ }
1505
+ function recordMatchesScope(pcr, scope) {
1506
+ if (scope === "all") {
1507
+ return true;
1508
+ }
1509
+ return scope === "material"
1510
+ ? pcr.record_kind === "methodology"
1511
+ : pcr.record_kind === "legacy_scaffold_reference";
1512
+ }
1513
+ function currentCatalogEntryMatchesScope(root, entry, scope) {
1514
+ const manifest = readConsistentCurrentManifest({ root, entry });
1515
+ const recordKind = recordKindForPcr({
1516
+ status: optionalString(manifest.status, "unknown", "PCR status"),
1517
+ content_maturity: nullableString(manifest.content_maturity, "PCR maturity"),
1518
+ });
1519
+ return scope === "material"
1520
+ ? recordKind === "methodology"
1521
+ : recordKind === "legacy_scaffold_reference";
1522
+ }
1523
+ function readConsistentCurrentManifest(options) { return readConsistentManifestSnapshot(options).manifest; }
1524
+ function readConsistentManifestSnapshot({ root, entry }) {
1525
+ let lastFailure = null;
1526
+ for (let attempt = 1; attempt <= CURRENT_SNAPSHOT_MAX_ATTEMPTS; attempt += 1) {
1527
+ try {
1528
+ const locationA = assertCurrentSnapshotLocation({ root, entry });
1529
+ const manifestABytes = readCanonicalFileBytes(locationA.manifestPath);
1530
+ const manifest = parsedRecord(manifestABytes.toString("utf8"), "PCR manifest");
1531
+ if (manifest.id !== entry.id) {
1532
+ throw snapshotAttemptError("manifest_identity_changed", `Expected PCR id ${entry.id}, found ${String(manifest.id)}.`, { expected_pcr_id: entry.id, actual_pcr_id: manifest.id ?? null });
1533
+ }
1534
+ const locationB = assertCurrentSnapshotLocation({ root, entry });
1535
+ const manifestBBytes = readCanonicalFileBytes(locationB.manifestPath);
1536
+ if (!manifestABytes.equals(manifestBBytes)) {
1537
+ throw snapshotAttemptError("manifest_changed_during_read", "manifest.yaml changed while its catalog scope was being determined.");
1538
+ }
1539
+ return { manifest, bytes: manifestABytes };
1540
+ }
1541
+ catch (error) {
1542
+ lastFailure = snapshotFailureDetails(error);
1543
+ }
1544
+ }
1545
+ throw new PcrCurrentSnapshotInconsistentError({
1546
+ pcrId: entry.id,
1547
+ pcrPath: entry.path,
1548
+ attempts: CURRENT_SNAPSHOT_MAX_ATTEMPTS,
1549
+ lastFailure,
1550
+ });
1551
+ }
1552
+ function recordKindForPcr(pcr) {
1553
+ if (pcr.status === "scaffold" && pcr.content_maturity === "empty_scaffold") {
1554
+ return "legacy_scaffold_reference";
1555
+ }
1556
+ if (METHODOLOGY_LIFECYCLE_STATUSES.has(pcr.status) &&
1557
+ pcr.content_maturity !== null && METHODOLOGY_MATURITIES.has(pcr.content_maturity)) {
1558
+ return "methodology";
1559
+ }
1560
+ return "invalid_lifecycle_state";
1561
+ }
1562
+ function assessPcrReadiness({ pcr, projectionFingerprint, structuredAvailable, projectionCompletenessIssues = [], }) {
1563
+ const blockers = [];
1564
+ const warnings = [];
1565
+ const methodologyStatus = pcr.content_maturity ?? "unknown";
1566
+ const lifecycleStatus = pcr.status ?? "unknown";
1567
+ const chineseTranslationStatus = pcr.translation_status?.["zh-CN"] ?? "unknown";
1568
+ if (pcr.record_kind === "invalid_lifecycle_state") {
1569
+ blockers.push({
1570
+ code: "invalid_lifecycle_identity",
1571
+ message: `status ${lifecycleStatus} and content_maturity ${methodologyStatus} do not identify either ` +
1572
+ "a legacy scaffold or a material methodology record.",
1573
+ });
1574
+ }
1575
+ if (!GUIDANCE_MATURITIES.has(methodologyStatus)) {
1576
+ blockers.push({
1577
+ code: "methodology_not_authored",
1578
+ message: `content_maturity ${methodologyStatus} is not usable methodology.`,
1579
+ });
1580
+ }
1581
+ if (lifecycleStatus === "scaffold") {
1582
+ blockers.push({
1583
+ code: "scaffold_lifecycle",
1584
+ message: "PCR lifecycle status is scaffold.",
1585
+ });
1586
+ }
1587
+ else if (!GUIDANCE_LIFECYCLE_STATUSES.has(lifecycleStatus)) {
1588
+ blockers.push({
1589
+ code: "lifecycle_not_usable",
1590
+ message: `PCR lifecycle status ${lifecycleStatus} is not available for guidance.`,
1591
+ });
1592
+ }
1593
+ if (lifecycleStatus === "deprecated" || methodologyStatus === "deprecated_methodology") {
1594
+ blockers.push({
1595
+ code: "deprecated_methodology",
1596
+ message: "Deprecated PCR methodology must not guide new work.",
1597
+ });
1598
+ }
1599
+ if (projectionFingerprint.required && (projectionFingerprint.schema_valid !== true || projectionFingerprint.status !== "current")) {
1600
+ blockers.push(...projectionFingerprint.issues);
1601
+ }
1602
+ if (projectionFingerprint.required &&
1603
+ projectionFingerprint.schema_valid === true &&
1604
+ projectionFingerprint.status === "current") {
1605
+ blockers.push(...projectionCompletenessIssues);
1606
+ }
1607
+ if (GUIDANCE_MATURITIES.has(methodologyStatus) &&
1608
+ !USABLE_LIFECYCLE_STATES.get(lifecycleStatus)?.has(methodologyStatus)) {
1609
+ blockers.push({
1610
+ code: "incompatible_lifecycle_state",
1611
+ message: `status ${lifecycleStatus} is incompatible with content_maturity ${methodologyStatus}.`,
1612
+ });
1613
+ }
1614
+ if (lifecycleStatus === "active" &&
1615
+ !["aligned", "reviewed"].includes(chineseTranslationStatus)) {
1616
+ blockers.push({
1617
+ code: "translation_not_aligned",
1618
+ message: `active PCR requires aligned or reviewed zh-CN translation; found ${chineseTranslationStatus}.`,
1619
+ });
1620
+ }
1621
+ if (lifecycleStatus === "published" && chineseTranslationStatus !== "reviewed") {
1622
+ blockers.push({
1623
+ code: "translation_not_reviewed",
1624
+ message: `published PCR requires reviewed zh-CN translation; found ${chineseTranslationStatus}.`,
1625
+ });
1626
+ }
1627
+ if (methodologyStatus === "authored_methodology") {
1628
+ warnings.push({
1629
+ code: "methodology_not_reviewed",
1630
+ message: "Authored methodology is candidate guidance and still requires methodology review.",
1631
+ });
1632
+ }
1633
+ if (lifecycleStatus === "candidate" &&
1634
+ !["aligned", "reviewed"].includes(chineseTranslationStatus)) {
1635
+ warnings.push({
1636
+ code: "translation_not_aligned",
1637
+ message: `Candidate zh-CN translation is ${chineseTranslationStatus}; use canonical en-US guidance for methodology decisions.`,
1638
+ });
1639
+ }
1640
+ const uniqueBlockers = deduplicateMessages(blockers);
1641
+ const uniqueWarnings = deduplicateMessages(warnings);
1642
+ const usable = uniqueBlockers.length === 0;
1643
+ const readiness = {
1644
+ status: usable
1645
+ ? (REVIEWED_MATURITIES.has(methodologyStatus) && lifecycleStatus !== "candidate" ? "ready" : "review_required")
1646
+ : "unavailable",
1647
+ lifecycle_status: lifecycleStatus,
1648
+ methodology_status: methodologyStatus,
1649
+ structured_projection_available: structuredAvailable,
1650
+ projection_fingerprint: structuredClone(projectionFingerprint),
1651
+ usable_for_guidance: usable,
1652
+ usable_for_validation: usable,
1653
+ blockers: uniqueBlockers,
1654
+ warnings: uniqueWarnings,
1655
+ };
1656
+ assertCoreContract("readiness.schema.json", readiness, {
1657
+ code: "PCR_INTERNAL_CONTRACT_INVALID",
1658
+ entityKind: "PCR readiness",
1659
+ });
1660
+ return readiness;
1661
+ }
1662
+ function assertPcrUsable({ pcr, operation }) {
1663
+ const usabilityKey = operation === "validation" ? "usable_for_validation" : "usable_for_guidance";
1664
+ if (!pcr.readiness?.[usabilityKey]) {
1665
+ throw new PcrUsabilityError({ pcrId: pcr.id, operation, readiness: pcr.readiness });
1666
+ }
1667
+ }
1668
+ function buildValidationReport({ validationKind, guidance, input, findings, checksPerformed, checksSkipped, }) {
1669
+ const checkedRequirementCount = checksPerformed.reduce((total, check) => total + check.requirement_count, 0);
1670
+ const skippedRequirementCount = checksSkipped.reduce((total, check) => total + check.requirement_count, 0);
1671
+ const completeness = checksPerformed.length === 0
1672
+ ? "none"
1673
+ : checksSkipped.length > 0
1674
+ ? "partial"
1675
+ : "complete";
1676
+ const findingSummary = countFindingsBySeverity(findings);
1677
+ const validationStatus = findingSummary.error > 0
1678
+ ? "failed"
1679
+ : checksPerformed.length === 0
1680
+ ? "inconclusive"
1681
+ : "passed";
1682
+ const report = {
1683
+ schema_version: 1,
1684
+ validation_kind: validationKind,
1685
+ pcr: guidance.pcr,
1686
+ readiness: structuredClone(guidance.readiness),
1687
+ validation_status: validationStatus,
1688
+ completeness,
1689
+ input,
1690
+ check_coverage: {
1691
+ total_requirement_count: checkedRequirementCount + skippedRequirementCount,
1692
+ checked_requirement_count: checkedRequirementCount,
1693
+ skipped_requirement_count: skippedRequirementCount,
1694
+ checks_performed: checksPerformed,
1695
+ checks_skipped: checksSkipped,
1696
+ },
1697
+ finding_count: findings.length,
1698
+ finding_summary: findingSummary,
1699
+ findings,
1700
+ };
1701
+ assertCoreContract("validation-output.schema.json", report, {
1702
+ code: "PCR_INTERNAL_CONTRACT_INVALID",
1703
+ entityKind: "PCR validation report",
1704
+ });
1705
+ return report;
1706
+ }
1707
+ function performedCheck(checkId, requirementFamily, requirementCount) {
1708
+ return {
1709
+ check_id: checkId,
1710
+ requirement_family: requirementFamily,
1711
+ requirement_count: requirementCount,
1712
+ evaluated_requirement_count: requirementCount,
1713
+ };
1714
+ }
1715
+ function addSkippedCheck(checks, checkId, requirementFamily, requirementCount) {
1716
+ if (requirementCount <= 0) {
1717
+ return;
1718
+ }
1719
+ checks.push({
1720
+ check_id: checkId,
1721
+ requirement_family: requirementFamily,
1722
+ requirement_count: requirementCount,
1723
+ reason: "Validator does not yet implement this requirement family.",
1724
+ });
1725
+ }
1726
+ function countFindingsBySeverity(findings) {
1727
+ const summary = { error: 0, warning: 0, info: 0 };
1728
+ for (const finding of findings) {
1729
+ if (Object.hasOwn(summary, finding.severity)) {
1730
+ summary[finding.severity] += 1;
1731
+ }
1732
+ }
1733
+ return summary;
1734
+ }
1735
+ function deduplicateMessages(entries) {
1736
+ return [
1737
+ ...new Map(entries.map((entry) => [`${entry.code}\0${entry.message}`, entry])).values(),
1738
+ ];
1739
+ }
1740
+ function countInventoryRows(processInventory) {
1741
+ let count = 0;
1742
+ for (const process of asArray(processInventory)) {
1743
+ for (const direction of ["inputs", "outputs"]) {
1744
+ const groups = unknownField(process, direction);
1745
+ if (!isRecord(groups)) {
1746
+ continue;
1747
+ }
1748
+ for (const rows of Object.values(groups)) {
1749
+ count += asArray(rows).length;
1750
+ }
1751
+ }
1752
+ }
1753
+ return count;
1754
+ }
1755
+ function topLevelRequirementCount(value, excludedKeys = []) {
1756
+ if (!isRecord(value)) {
1757
+ return 0;
1758
+ }
1759
+ const excluded = new Set(excludedKeys);
1760
+ return Object.entries(value).filter(([key, requirement]) => !excluded.has(key) && hasRequirementValue(requirement)).length;
1761
+ }
1762
+ function hasRequirementValue(value) {
1763
+ if (Array.isArray(value)) {
1764
+ return value.some(hasRequirementValue);
1765
+ }
1766
+ if (isRecord(value)) {
1767
+ return Object.values(value).some(hasRequirementValue);
1768
+ }
1769
+ return value !== undefined && value !== null && String(value).trim() !== "";
1770
+ }
1771
+ function asArray(value) {
1772
+ return Array.isArray(value) ? value : [];
1773
+ }
1774
+ function isRecord(value) {
1775
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
1776
+ }
1777
+ function findManifestFiles(directory) {
1778
+ const results = [];
1779
+ for (const domainDir of canonicalChildDirectories(directory)) {
1780
+ for (const subdomainDir of canonicalChildDirectories(domainDir)) {
1781
+ for (const pcrDir of canonicalChildDirectories(subdomainDir)) {
1782
+ const manifestPath = path.join(pcrDir, "manifest.yaml");
1783
+ if (isCanonicalFile(manifestPath)) {
1784
+ results.push(manifestPath);
1785
+ }
1786
+ }
1787
+ }
1788
+ }
1789
+ return results;
1790
+ }
1791
+ function canonicalChildDirectories(directory) {
1792
+ return readdirSync(directory)
1793
+ .map((entry) => path.join(directory, entry))
1794
+ .filter(isCanonicalDirectory)
1795
+ .sort((left, right) => left.localeCompare(right));
1796
+ }
1797
+ function isCanonicalDirectory(directory) {
1798
+ try {
1799
+ const stat = lstatSync(directory);
1800
+ return !stat.isSymbolicLink() && stat.isDirectory();
1801
+ }
1802
+ catch (error) {
1803
+ if (errorCode(error) === "ENOENT") {
1804
+ return false;
1805
+ }
1806
+ throw error;
1807
+ }
1808
+ }
1809
+ function isCanonicalFile(filePath) {
1810
+ try {
1811
+ const stat = lstatSync(filePath);
1812
+ return !stat.isSymbolicLink() && stat.isFile();
1813
+ }
1814
+ catch (error) {
1815
+ if (errorCode(error) === "ENOENT") {
1816
+ return false;
1817
+ }
1818
+ throw error;
1819
+ }
1820
+ }
1821
+ function toPosix(value) {
1822
+ return value.split(path.sep).join("/");
1823
+ }
1824
+ //# sourceMappingURL=index.js.map