@tiangong-lca/pcr 0.3.1 → 0.4.1
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.
- package/README.md +8 -4
- package/node_modules/@types/debug/LICENSE +21 -0
- package/node_modules/@types/debug/README.md +69 -0
- package/node_modules/@types/debug/index.d.ts +50 -0
- package/node_modules/@types/debug/package.json +58 -0
- package/node_modules/@types/mdast/LICENSE +21 -0
- package/node_modules/@types/mdast/README.md +15 -0
- package/node_modules/@types/mdast/index.d.ts +1123 -0
- package/node_modules/@types/mdast/package.json +47 -0
- package/node_modules/@types/ms/LICENSE +21 -0
- package/node_modules/@types/ms/README.md +82 -0
- package/node_modules/@types/ms/index.d.ts +63 -0
- package/node_modules/@types/ms/package.json +26 -0
- package/node_modules/@types/unist/LICENSE +21 -0
- package/node_modules/@types/unist/README.md +15 -0
- package/node_modules/@types/unist/index.d.ts +119 -0
- package/node_modules/@types/unist/package.json +60 -0
- package/node_modules/bail/index.d.ts +10 -0
- package/node_modules/bail/index.js +12 -0
- package/node_modules/bail/license +22 -0
- package/node_modules/bail/package.json +73 -0
- package/node_modules/bail/readme.md +147 -0
- package/node_modules/ccount/index.d.ts +11 -0
- package/node_modules/ccount/index.js +27 -0
- package/node_modules/ccount/license +22 -0
- package/node_modules/ccount/package.json +71 -0
- package/node_modules/ccount/readme.md +149 -0
- package/node_modules/character-entities/index.d.ts +6 -0
- package/node_modules/character-entities/index.js +2132 -0
- package/node_modules/character-entities/license +22 -0
- package/node_modules/character-entities/package.json +78 -0
- package/node_modules/character-entities/readme.md +152 -0
- package/node_modules/debug/LICENSE +20 -0
- package/node_modules/debug/README.md +481 -0
- package/node_modules/debug/package.json +64 -0
- package/node_modules/debug/src/browser.js +272 -0
- package/node_modules/debug/src/common.js +292 -0
- package/node_modules/debug/src/index.js +10 -0
- package/node_modules/debug/src/node.js +263 -0
- package/node_modules/decode-named-character-reference/index.d.ts +13 -0
- package/node_modules/decode-named-character-reference/index.d.ts.map +1 -0
- package/node_modules/decode-named-character-reference/index.dom.d.ts +6 -0
- package/node_modules/decode-named-character-reference/index.dom.d.ts.map +1 -0
- package/node_modules/decode-named-character-reference/index.dom.js +32 -0
- package/node_modules/decode-named-character-reference/index.js +19 -0
- package/node_modules/decode-named-character-reference/license +22 -0
- package/node_modules/decode-named-character-reference/package.json +90 -0
- package/node_modules/decode-named-character-reference/readme.md +136 -0
- package/node_modules/dequal/dist/index.js +86 -0
- package/node_modules/dequal/dist/index.min.js +1 -0
- package/node_modules/dequal/dist/index.mjs +84 -0
- package/node_modules/dequal/index.d.ts +1 -0
- package/node_modules/dequal/license +21 -0
- package/node_modules/dequal/lite/index.d.ts +1 -0
- package/node_modules/dequal/lite/index.js +31 -0
- package/node_modules/dequal/lite/index.min.js +1 -0
- package/node_modules/dequal/lite/index.mjs +29 -0
- package/node_modules/dequal/package.json +57 -0
- package/node_modules/dequal/readme.md +112 -0
- package/node_modules/devlop/lib/default.js +9 -0
- package/node_modules/devlop/lib/development.d.ts +84 -0
- package/node_modules/devlop/lib/development.js +238 -0
- package/node_modules/devlop/license +22 -0
- package/node_modules/devlop/package.json +80 -0
- package/node_modules/devlop/readme.md +360 -0
- package/node_modules/escape-string-regexp/index.d.ts +16 -0
- package/node_modules/escape-string-regexp/index.js +11 -0
- package/node_modules/escape-string-regexp/license +9 -0
- package/node_modules/escape-string-regexp/package.json +40 -0
- package/node_modules/escape-string-regexp/readme.md +34 -0
- package/node_modules/extend/.editorconfig +20 -0
- package/node_modules/extend/.eslintrc +17 -0
- package/node_modules/extend/.jscs.json +175 -0
- package/node_modules/extend/.travis.yml +230 -0
- package/node_modules/extend/CHANGELOG.md +83 -0
- package/node_modules/extend/LICENSE +23 -0
- package/node_modules/extend/README.md +81 -0
- package/node_modules/extend/component.json +32 -0
- package/node_modules/extend/index.js +117 -0
- package/node_modules/extend/package.json +42 -0
- package/node_modules/is-plain-obj/index.d.ts +35 -0
- package/node_modules/is-plain-obj/index.js +8 -0
- package/node_modules/is-plain-obj/license +9 -0
- package/node_modules/is-plain-obj/package.json +41 -0
- package/node_modules/is-plain-obj/readme.md +58 -0
- package/node_modules/longest-streak/index.d.ts +11 -0
- package/node_modules/longest-streak/index.js +36 -0
- package/node_modules/longest-streak/license +22 -0
- package/node_modules/longest-streak/package.json +73 -0
- package/node_modules/longest-streak/readme.md +150 -0
- package/node_modules/markdown-table/index.d.ts +171 -0
- package/node_modules/markdown-table/index.d.ts.map +1 -0
- package/node_modules/markdown-table/index.js +393 -0
- package/node_modules/markdown-table/license +22 -0
- package/node_modules/markdown-table/package.json +77 -0
- package/node_modules/markdown-table/readme.md +344 -0
- package/node_modules/mdast-util-find-and-replace/index.d.ts +9 -0
- package/node_modules/mdast-util-find-and-replace/index.d.ts.map +1 -0
- package/node_modules/mdast-util-find-and-replace/index.js +11 -0
- package/node_modules/mdast-util-find-and-replace/lib/index.d.ts +79 -0
- package/node_modules/mdast-util-find-and-replace/lib/index.d.ts.map +1 -0
- package/node_modules/mdast-util-find-and-replace/lib/index.js +261 -0
- package/node_modules/mdast-util-find-and-replace/license +22 -0
- package/node_modules/mdast-util-find-and-replace/package.json +85 -0
- package/node_modules/mdast-util-find-and-replace/readme.md +368 -0
- package/node_modules/mdast-util-from-markdown/dev/index.d.ts +23 -0
- package/node_modules/mdast-util-from-markdown/dev/index.js +2 -0
- package/node_modules/mdast-util-from-markdown/dev/lib/index.d.ts +53 -0
- package/node_modules/mdast-util-from-markdown/dev/lib/index.d.ts.map +1 -0
- package/node_modules/mdast-util-from-markdown/dev/lib/index.js +1348 -0
- package/node_modules/mdast-util-from-markdown/dev/lib/types.d.ts +295 -0
- package/node_modules/mdast-util-from-markdown/dev/lib/types.js +2 -0
- package/node_modules/mdast-util-from-markdown/index.d.ts +23 -0
- package/node_modules/mdast-util-from-markdown/index.js +2 -0
- package/node_modules/mdast-util-from-markdown/lib/index.d.ts +53 -0
- package/node_modules/mdast-util-from-markdown/lib/index.d.ts.map +1 -0
- package/node_modules/mdast-util-from-markdown/lib/index.js +1177 -0
- package/node_modules/mdast-util-from-markdown/lib/types.d.ts +295 -0
- package/node_modules/mdast-util-from-markdown/lib/types.js +2 -0
- package/node_modules/mdast-util-from-markdown/license +22 -0
- package/node_modules/mdast-util-from-markdown/package.json +99 -0
- package/node_modules/mdast-util-from-markdown/readme.md +535 -0
- package/node_modules/mdast-util-gfm/index.d.ts +12 -0
- package/node_modules/mdast-util-gfm/index.js +2 -0
- package/node_modules/mdast-util-gfm/lib/index.d.ts +24 -0
- package/node_modules/mdast-util-gfm/lib/index.d.ts.map +1 -0
- package/node_modules/mdast-util-gfm/lib/index.js +63 -0
- package/node_modules/mdast-util-gfm/license +22 -0
- package/node_modules/mdast-util-gfm/package.json +125 -0
- package/node_modules/mdast-util-gfm/readme.md +497 -0
- package/node_modules/mdast-util-gfm-autolink-literal/index.d.ts +1 -0
- package/node_modules/mdast-util-gfm-autolink-literal/index.js +4 -0
- package/node_modules/mdast-util-gfm-autolink-literal/lib/index.d.ts +18 -0
- package/node_modules/mdast-util-gfm-autolink-literal/lib/index.js +280 -0
- package/node_modules/mdast-util-gfm-autolink-literal/license +22 -0
- package/node_modules/mdast-util-gfm-autolink-literal/package.json +106 -0
- package/node_modules/mdast-util-gfm-autolink-literal/readme.md +334 -0
- package/node_modules/mdast-util-gfm-footnote/index.d.ts +34 -0
- package/node_modules/mdast-util-gfm-footnote/index.js +2 -0
- package/node_modules/mdast-util-gfm-footnote/lib/index.d.ts +22 -0
- package/node_modules/mdast-util-gfm-footnote/lib/index.d.ts.map +1 -0
- package/node_modules/mdast-util-gfm-footnote/lib/index.js +212 -0
- package/node_modules/mdast-util-gfm-footnote/license +22 -0
- package/node_modules/mdast-util-gfm-footnote/package.json +111 -0
- package/node_modules/mdast-util-gfm-footnote/readme.md +494 -0
- package/node_modules/mdast-util-gfm-strikethrough/index.d.ts +19 -0
- package/node_modules/mdast-util-gfm-strikethrough/index.js +5 -0
- package/node_modules/mdast-util-gfm-strikethrough/lib/index.d.ts +19 -0
- package/node_modules/mdast-util-gfm-strikethrough/lib/index.d.ts.map +1 -0
- package/node_modules/mdast-util-gfm-strikethrough/lib/index.js +133 -0
- package/node_modules/mdast-util-gfm-strikethrough/license +22 -0
- package/node_modules/mdast-util-gfm-strikethrough/package.json +84 -0
- package/node_modules/mdast-util-gfm-strikethrough/readme.md +350 -0
- package/node_modules/mdast-util-gfm-table/index.d.ts +54 -0
- package/node_modules/mdast-util-gfm-table/index.js +2 -0
- package/node_modules/mdast-util-gfm-table/lib/index.d.ts +51 -0
- package/node_modules/mdast-util-gfm-table/lib/index.js +300 -0
- package/node_modules/mdast-util-gfm-table/license +22 -0
- package/node_modules/mdast-util-gfm-table/package.json +101 -0
- package/node_modules/mdast-util-gfm-table/readme.md +605 -0
- package/node_modules/mdast-util-gfm-task-list-item/index.d.ts +4 -0
- package/node_modules/mdast-util-gfm-task-list-item/index.js +4 -0
- package/node_modules/mdast-util-gfm-task-list-item/lib/index.d.ts +23 -0
- package/node_modules/mdast-util-gfm-task-list-item/lib/index.js +141 -0
- package/node_modules/mdast-util-gfm-task-list-item/license +22 -0
- package/node_modules/mdast-util-gfm-task-list-item/package.json +90 -0
- package/node_modules/mdast-util-gfm-task-list-item/readme.md +366 -0
- package/node_modules/mdast-util-phrasing/index.d.ts +1 -0
- package/node_modules/mdast-util-phrasing/index.js +1 -0
- package/node_modules/mdast-util-phrasing/lib/index.d.ts +3 -0
- package/node_modules/mdast-util-phrasing/lib/index.js +45 -0
- package/node_modules/mdast-util-phrasing/license +23 -0
- package/node_modules/mdast-util-phrasing/package.json +78 -0
- package/node_modules/mdast-util-phrasing/readme.md +200 -0
- package/node_modules/mdast-util-to-markdown/index.d.ts +18 -0
- package/node_modules/mdast-util-to-markdown/index.js +3 -0
- package/node_modules/mdast-util-to-markdown/lib/configure.d.ts +14 -0
- package/node_modules/mdast-util-to-markdown/lib/configure.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/configure.js +98 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts +24 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/blockquote.js +40 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/break.d.ts +20 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/break.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/break.js +41 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/code.d.ts +20 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/code.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/code.js +86 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts +20 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/definition.js +83 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts +52 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js +67 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts +20 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/heading.js +84 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/html.d.ts +22 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/html.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/html.js +27 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts +31 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js +78 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/image.d.ts +31 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/image.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/image.js +92 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/index.d.ts +42 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/index.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/index.js +45 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts +28 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js +86 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts +31 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js +78 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/link.d.ts +37 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/link.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/link.js +129 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts +20 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/list-item.js +73 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/list.d.ts +20 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/list.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/list.js +107 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts +24 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/paragraph.js +27 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/root.d.ts +20 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/root.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/root.js +34 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts +52 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/strong.js +67 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/text.d.ts +24 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/text.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/text.js +22 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts +17 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js +27 -0
- package/node_modules/mdast-util-to-markdown/lib/index.d.ts +14 -0
- package/node_modules/mdast-util-to-markdown/lib/index.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/index.js +213 -0
- package/node_modules/mdast-util-to-markdown/lib/join.d.ts +4 -0
- package/node_modules/mdast-util-to-markdown/lib/join.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/join.js +56 -0
- package/node_modules/mdast-util-to-markdown/lib/types.d.ts +985 -0
- package/node_modules/mdast-util-to-markdown/lib/types.js +2 -0
- package/node_modules/mdast-util-to-markdown/lib/unsafe.d.ts +4 -0
- package/node_modules/mdast-util-to-markdown/lib/unsafe.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/unsafe.js +160 -0
- package/node_modules/mdast-util-to-markdown/lib/util/association.d.ts +2 -0
- package/node_modules/mdast-util-to-markdown/lib/util/association.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/association.js +33 -0
- package/node_modules/mdast-util-to-markdown/lib/util/character.d.ts +23 -0
- package/node_modules/mdast-util-to-markdown/lib/util/character.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/character.js +32 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.d.ts +15 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js +25 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.d.ts +12 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js +42 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-bullet.d.ts +15 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-bullet.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js +25 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.d.ts +15 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js +25 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-fence.d.ts +15 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-fence.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-fence.js +25 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.d.ts +15 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js +25 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-quote.d.ts +15 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-quote.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-quote.js +25 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.d.ts +15 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js +25 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-rule.d.ts +15 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-rule.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-rule.js +25 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-strong.d.ts +15 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-strong.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/check-strong.js +25 -0
- package/node_modules/mdast-util-to-markdown/lib/util/compile-pattern.d.ts +2 -0
- package/node_modules/mdast-util-to-markdown/lib/util/compile-pattern.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/compile-pattern.js +26 -0
- package/node_modules/mdast-util-to-markdown/lib/util/container-flow.d.ts +21 -0
- package/node_modules/mdast-util-to-markdown/lib/util/container-flow.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/container-flow.js +93 -0
- package/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.d.ts +110 -0
- package/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js +704 -0
- package/node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.d.ts +10 -0
- package/node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.js +11 -0
- package/node_modules/mdast-util-to-markdown/lib/util/encode-info.d.ts +33 -0
- package/node_modules/mdast-util-to-markdown/lib/util/encode-info.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/encode-info.js +82 -0
- package/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.d.ts +18 -0
- package/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js +27 -0
- package/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.d.ts +14 -0
- package/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js +39 -0
- package/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.d.ts +14 -0
- package/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js +39 -0
- package/node_modules/mdast-util-to-markdown/lib/util/html-kind.d.ts +31 -0
- package/node_modules/mdast-util-to-markdown/lib/util/html-kind.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/html-kind.js +63 -0
- package/node_modules/mdast-util-to-markdown/lib/util/indent-lines.d.ts +2 -0
- package/node_modules/mdast-util-to-markdown/lib/util/indent-lines.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js +40 -0
- package/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.d.ts +17 -0
- package/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js +52 -0
- package/node_modules/mdast-util-to-markdown/lib/util/safe.d.ts +29 -0
- package/node_modules/mdast-util-to-markdown/lib/util/safe.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/safe.js +238 -0
- package/node_modules/mdast-util-to-markdown/lib/util/track.d.ts +2 -0
- package/node_modules/mdast-util-to-markdown/lib/util/track.d.ts.map +1 -0
- package/node_modules/mdast-util-to-markdown/lib/util/track.js +55 -0
- package/node_modules/mdast-util-to-markdown/license +22 -0
- package/node_modules/mdast-util-to-markdown/package.json +88 -0
- package/node_modules/mdast-util-to-markdown/readme.md +805 -0
- package/node_modules/mdast-util-to-string/index.d.ts +2 -0
- package/node_modules/mdast-util-to-string/index.js +5 -0
- package/node_modules/mdast-util-to-string/lib/index.d.ts +31 -0
- package/node_modules/mdast-util-to-string/lib/index.js +108 -0
- package/node_modules/mdast-util-to-string/license +22 -0
- package/node_modules/mdast-util-to-string/package.json +78 -0
- package/node_modules/mdast-util-to-string/readme.md +218 -0
- package/node_modules/micromark/dev/index.d.ts +82 -0
- package/node_modules/micromark/dev/index.d.ts.map +1 -0
- package/node_modules/micromark/dev/index.js +68 -0
- package/node_modules/micromark/dev/lib/compile.d.ts +16 -0
- package/node_modules/micromark/dev/lib/compile.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/compile.js +1162 -0
- package/node_modules/micromark/dev/lib/constructs.d.ts +73 -0
- package/node_modules/micromark/dev/lib/constructs.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/constructs.js +101 -0
- package/node_modules/micromark/dev/lib/create-tokenizer.d.ts +46 -0
- package/node_modules/micromark/dev/lib/create-tokenizer.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/create-tokenizer.js +718 -0
- package/node_modules/micromark/dev/lib/initialize/content.d.ts +4 -0
- package/node_modules/micromark/dev/lib/initialize/content.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/initialize/content.js +99 -0
- package/node_modules/micromark/dev/lib/initialize/document.d.ts +10 -0
- package/node_modules/micromark/dev/lib/initialize/document.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/initialize/document.js +449 -0
- package/node_modules/micromark/dev/lib/initialize/flow.d.ts +4 -0
- package/node_modules/micromark/dev/lib/initialize/flow.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/initialize/flow.js +86 -0
- package/node_modules/micromark/dev/lib/initialize/text.d.ts +8 -0
- package/node_modules/micromark/dev/lib/initialize/text.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/initialize/text.js +248 -0
- package/node_modules/micromark/dev/lib/parse.d.ts +10 -0
- package/node_modules/micromark/dev/lib/parse.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/parse.js +58 -0
- package/node_modules/micromark/dev/lib/postprocess.d.ts +9 -0
- package/node_modules/micromark/dev/lib/postprocess.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/postprocess.js +19 -0
- package/node_modules/micromark/dev/lib/preprocess.d.ts +13 -0
- package/node_modules/micromark/dev/lib/preprocess.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/preprocess.js +139 -0
- package/node_modules/micromark/dev/stream.d.ts +35 -0
- package/node_modules/micromark/dev/stream.d.ts.map +1 -0
- package/node_modules/micromark/dev/stream.js +270 -0
- package/node_modules/micromark/index.d.ts +82 -0
- package/node_modules/micromark/index.d.ts.map +1 -0
- package/node_modules/micromark/index.js +60 -0
- package/node_modules/micromark/lib/compile.d.ts +16 -0
- package/node_modules/micromark/lib/compile.d.ts.map +1 -0
- package/node_modules/micromark/lib/compile.js +1068 -0
- package/node_modules/micromark/lib/constructs.d.ts +73 -0
- package/node_modules/micromark/lib/constructs.d.ts.map +1 -0
- package/node_modules/micromark/lib/constructs.js +85 -0
- package/node_modules/micromark/lib/create-tokenizer.d.ts +46 -0
- package/node_modules/micromark/lib/create-tokenizer.d.ts.map +1 -0
- package/node_modules/micromark/lib/create-tokenizer.js +613 -0
- package/node_modules/micromark/lib/initialize/content.d.ts +4 -0
- package/node_modules/micromark/lib/initialize/content.d.ts.map +1 -0
- package/node_modules/micromark/lib/initialize/content.js +79 -0
- package/node_modules/micromark/lib/initialize/document.d.ts +10 -0
- package/node_modules/micromark/lib/initialize/document.d.ts.map +1 -0
- package/node_modules/micromark/lib/initialize/document.js +370 -0
- package/node_modules/micromark/lib/initialize/flow.d.ts +4 -0
- package/node_modules/micromark/lib/initialize/flow.d.ts.map +1 -0
- package/node_modules/micromark/lib/initialize/flow.js +58 -0
- package/node_modules/micromark/lib/initialize/text.d.ts +8 -0
- package/node_modules/micromark/lib/initialize/text.d.ts.map +1 -0
- package/node_modules/micromark/lib/initialize/text.js +216 -0
- package/node_modules/micromark/lib/parse.d.ts +10 -0
- package/node_modules/micromark/lib/parse.d.ts.map +1 -0
- package/node_modules/micromark/lib/parse.js +56 -0
- package/node_modules/micromark/lib/postprocess.d.ts +9 -0
- package/node_modules/micromark/lib/postprocess.d.ts.map +1 -0
- package/node_modules/micromark/lib/postprocess.js +18 -0
- package/node_modules/micromark/lib/preprocess.d.ts +13 -0
- package/node_modules/micromark/lib/preprocess.d.ts.map +1 -0
- package/node_modules/micromark/lib/preprocess.js +112 -0
- package/node_modules/micromark/license +22 -0
- package/node_modules/micromark/package.json +87 -0
- package/node_modules/micromark/readme.md +488 -0
- package/node_modules/micromark/stream.d.ts +35 -0
- package/node_modules/micromark/stream.d.ts.map +1 -0
- package/node_modules/micromark/stream.js +256 -0
- package/node_modules/micromark-core-commonmark/dev/index.d.ts +23 -0
- package/node_modules/micromark-core-commonmark/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/index.js +22 -0
- package/node_modules/micromark-core-commonmark/dev/lib/attention.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/attention.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/attention.js +294 -0
- package/node_modules/micromark-core-commonmark/dev/lib/autolink.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/autolink.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/autolink.js +269 -0
- package/node_modules/micromark-core-commonmark/dev/lib/blank-line.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/blank-line.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/blank-line.js +62 -0
- package/node_modules/micromark-core-commonmark/dev/lib/block-quote.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/block-quote.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/block-quote.js +162 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-escape.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-escape.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-escape.js +69 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-reference.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-reference.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-reference.js +166 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js +472 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-indented.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-indented.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-indented.js +178 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-text.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-text.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-text.js +257 -0
- package/node_modules/micromark-core-commonmark/dev/lib/content.d.ts +7 -0
- package/node_modules/micromark-core-commonmark/dev/lib/content.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/content.js +185 -0
- package/node_modules/micromark-core-commonmark/dev/lib/definition.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/definition.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/definition.js +295 -0
- package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js +65 -0
- package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js +229 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-flow.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-flow.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-flow.js +938 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-text.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-text.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-text.js +783 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-end.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-end.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-end.js +658 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js +119 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js +71 -0
- package/node_modules/micromark-core-commonmark/dev/lib/line-ending.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/line-ending.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/line-ending.js +34 -0
- package/node_modules/micromark-core-commonmark/dev/lib/list.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/list.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/list.js +306 -0
- package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.js +67 -0
- package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js +213 -0
- package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js +120 -0
- package/node_modules/micromark-core-commonmark/index.d.ts +23 -0
- package/node_modules/micromark-core-commonmark/index.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/index.js +22 -0
- package/node_modules/micromark-core-commonmark/lib/attention.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/attention.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/attention.js +231 -0
- package/node_modules/micromark-core-commonmark/lib/autolink.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/autolink.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/autolink.js +233 -0
- package/node_modules/micromark-core-commonmark/lib/blank-line.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/blank-line.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/blank-line.js +61 -0
- package/node_modules/micromark-core-commonmark/lib/block-quote.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/block-quote.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/block-quote.js +143 -0
- package/node_modules/micromark-core-commonmark/lib/character-escape.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/character-escape.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/character-escape.js +64 -0
- package/node_modules/micromark-core-commonmark/lib/character-reference.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/character-reference.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/character-reference.js +149 -0
- package/node_modules/micromark-core-commonmark/lib/code-fenced.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/code-fenced.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/code-fenced.js +422 -0
- package/node_modules/micromark-core-commonmark/lib/code-indented.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/code-indented.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/code-indented.js +159 -0
- package/node_modules/micromark-core-commonmark/lib/code-text.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/code-text.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/code-text.js +225 -0
- package/node_modules/micromark-core-commonmark/lib/content.d.ts +7 -0
- package/node_modules/micromark-core-commonmark/lib/content.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/content.js +163 -0
- package/node_modules/micromark-core-commonmark/lib/definition.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/definition.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/definition.js +254 -0
- package/node_modules/micromark-core-commonmark/lib/hard-break-escape.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/hard-break-escape.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/hard-break-escape.js +60 -0
- package/node_modules/micromark-core-commonmark/lib/heading-atx.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/heading-atx.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/heading-atx.js +191 -0
- package/node_modules/micromark-core-commonmark/lib/html-flow.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/html-flow.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/html-flow.js +827 -0
- package/node_modules/micromark-core-commonmark/lib/html-text.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/html-text.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/html-text.js +678 -0
- package/node_modules/micromark-core-commonmark/lib/label-end.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/label-end.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/label-end.js +561 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-image.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-image.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-image.js +110 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-link.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-link.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-link.js +63 -0
- package/node_modules/micromark-core-commonmark/lib/line-ending.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/line-ending.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/line-ending.js +33 -0
- package/node_modules/micromark-core-commonmark/lib/list.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/list.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/list.js +213 -0
- package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js +61 -0
- package/node_modules/micromark-core-commonmark/lib/setext-underline.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/setext-underline.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/setext-underline.js +187 -0
- package/node_modules/micromark-core-commonmark/lib/thematic-break.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/thematic-break.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/thematic-break.js +102 -0
- package/node_modules/micromark-core-commonmark/license +22 -0
- package/node_modules/micromark-core-commonmark/package.json +62 -0
- package/node_modules/micromark-core-commonmark/readme.md +171 -0
- package/node_modules/micromark-extension-gfm/index.d.ts +28 -0
- package/node_modules/micromark-extension-gfm/index.js +69 -0
- package/node_modules/micromark-extension-gfm/license +22 -0
- package/node_modules/micromark-extension-gfm/package.json +107 -0
- package/node_modules/micromark-extension-gfm/readme.md +433 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/dev/index.d.ts +24 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/dev/index.js +2 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/html.d.ts +10 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/html.js +56 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.d.ts +10 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js +983 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/index.d.ts +24 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/index.js +2 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/lib/html.d.ts +10 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/lib/html.js +60 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.d.ts +10 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js +854 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/license +22 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/package.json +116 -0
- package/node_modules/micromark-extension-gfm-autolink-literal/readme.md +422 -0
- package/node_modules/micromark-extension-gfm-footnote/dev/index.d.ts +164 -0
- package/node_modules/micromark-extension-gfm-footnote/dev/index.js +3 -0
- package/node_modules/micromark-extension-gfm-footnote/dev/lib/html.d.ts +25 -0
- package/node_modules/micromark-extension-gfm-footnote/dev/lib/html.js +226 -0
- package/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.d.ts +9 -0
- package/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js +558 -0
- package/node_modules/micromark-extension-gfm-footnote/index.d.ts +164 -0
- package/node_modules/micromark-extension-gfm-footnote/index.js +3 -0
- package/node_modules/micromark-extension-gfm-footnote/lib/html.d.ts +25 -0
- package/node_modules/micromark-extension-gfm-footnote/lib/html.js +154 -0
- package/node_modules/micromark-extension-gfm-footnote/lib/syntax.d.ts +9 -0
- package/node_modules/micromark-extension-gfm-footnote/lib/syntax.js +485 -0
- package/node_modules/micromark-extension-gfm-footnote/license +22 -0
- package/node_modules/micromark-extension-gfm-footnote/package.json +132 -0
- package/node_modules/micromark-extension-gfm-footnote/readme.md +656 -0
- package/node_modules/micromark-extension-gfm-strikethrough/dev/index.d.ts +30 -0
- package/node_modules/micromark-extension-gfm-strikethrough/dev/index.js +3 -0
- package/node_modules/micromark-extension-gfm-strikethrough/dev/lib/html.d.ts +13 -0
- package/node_modules/micromark-extension-gfm-strikethrough/dev/lib/html.js +26 -0
- package/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.d.ts +12 -0
- package/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js +183 -0
- package/node_modules/micromark-extension-gfm-strikethrough/index.d.ts +24 -0
- package/node_modules/micromark-extension-gfm-strikethrough/index.js +3 -0
- package/node_modules/micromark-extension-gfm-strikethrough/lib/html.d.ts +13 -0
- package/node_modules/micromark-extension-gfm-strikethrough/lib/html.js +26 -0
- package/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.d.ts +12 -0
- package/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js +142 -0
- package/node_modules/micromark-extension-gfm-strikethrough/license +22 -0
- package/node_modules/micromark-extension-gfm-strikethrough/package.json +129 -0
- package/node_modules/micromark-extension-gfm-strikethrough/readme.md +304 -0
- package/node_modules/micromark-extension-gfm-table/dev/index.d.ts +55 -0
- package/node_modules/micromark-extension-gfm-table/dev/index.js +2 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.d.ts +51 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.d.ts.map +1 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js +231 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/html.d.ts +11 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/html.d.ts.map +1 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/html.js +153 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/infer.d.ts +14 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/infer.d.ts.map +1 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/infer.js +64 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/syntax.d.ts +18 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/syntax.d.ts.map +1 -0
- package/node_modules/micromark-extension-gfm-table/dev/lib/syntax.js +964 -0
- package/node_modules/micromark-extension-gfm-table/index.d.ts +55 -0
- package/node_modules/micromark-extension-gfm-table/index.js +2 -0
- package/node_modules/micromark-extension-gfm-table/lib/edit-map.d.ts +51 -0
- package/node_modules/micromark-extension-gfm-table/lib/edit-map.d.ts.map +1 -0
- package/node_modules/micromark-extension-gfm-table/lib/edit-map.js +222 -0
- package/node_modules/micromark-extension-gfm-table/lib/html.d.ts +11 -0
- package/node_modules/micromark-extension-gfm-table/lib/html.d.ts.map +1 -0
- package/node_modules/micromark-extension-gfm-table/lib/html.js +135 -0
- package/node_modules/micromark-extension-gfm-table/lib/infer.d.ts +14 -0
- package/node_modules/micromark-extension-gfm-table/lib/infer.d.ts.map +1 -0
- package/node_modules/micromark-extension-gfm-table/lib/infer.js +52 -0
- package/node_modules/micromark-extension-gfm-table/lib/syntax.d.ts +18 -0
- package/node_modules/micromark-extension-gfm-table/lib/syntax.d.ts.map +1 -0
- package/node_modules/micromark-extension-gfm-table/lib/syntax.js +846 -0
- package/node_modules/micromark-extension-gfm-table/license +22 -0
- package/node_modules/micromark-extension-gfm-table/package.json +86 -0
- package/node_modules/micromark-extension-gfm-table/readme.md +515 -0
- package/node_modules/micromark-extension-gfm-tagfilter/index.d.ts +1 -0
- package/node_modules/micromark-extension-gfm-tagfilter/index.js +1 -0
- package/node_modules/micromark-extension-gfm-tagfilter/lib/index.d.ts +12 -0
- package/node_modules/micromark-extension-gfm-tagfilter/lib/index.js +51 -0
- package/node_modules/micromark-extension-gfm-tagfilter/license +22 -0
- package/node_modules/micromark-extension-gfm-tagfilter/package.json +82 -0
- package/node_modules/micromark-extension-gfm-tagfilter/readme.md +237 -0
- package/node_modules/micromark-extension-gfm-task-list-item/dev/index.d.ts +17 -0
- package/node_modules/micromark-extension-gfm-task-list-item/dev/index.js +2 -0
- package/node_modules/micromark-extension-gfm-task-list-item/dev/lib/html.d.ts +13 -0
- package/node_modules/micromark-extension-gfm-task-list-item/dev/lib/html.js +29 -0
- package/node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.d.ts +10 -0
- package/node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js +166 -0
- package/node_modules/micromark-extension-gfm-task-list-item/index.d.ts +17 -0
- package/node_modules/micromark-extension-gfm-task-list-item/index.js +2 -0
- package/node_modules/micromark-extension-gfm-task-list-item/lib/html.d.ts +13 -0
- package/node_modules/micromark-extension-gfm-task-list-item/lib/html.js +29 -0
- package/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.d.ts +10 -0
- package/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js +158 -0
- package/node_modules/micromark-extension-gfm-task-list-item/license +22 -0
- package/node_modules/micromark-extension-gfm-task-list-item/package.json +131 -0
- package/node_modules/micromark-extension-gfm-task-list-item/readme.md +305 -0
- package/node_modules/micromark-factory-destination/dev/index.d.ts +42 -0
- package/node_modules/micromark-factory-destination/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-destination/dev/index.js +255 -0
- package/node_modules/micromark-factory-destination/index.d.ts +42 -0
- package/node_modules/micromark-factory-destination/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-destination/index.js +206 -0
- package/node_modules/micromark-factory-destination/license +22 -0
- package/node_modules/micromark-factory-destination/package.json +57 -0
- package/node_modules/micromark-factory-destination/readme.md +234 -0
- package/node_modules/micromark-factory-label/dev/index.d.ts +37 -0
- package/node_modules/micromark-factory-label/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-label/dev/index.js +172 -0
- package/node_modules/micromark-factory-label/index.d.ts +37 -0
- package/node_modules/micromark-factory-label/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-label/index.js +148 -0
- package/node_modules/micromark-factory-label/license +22 -0
- package/node_modules/micromark-factory-label/package.json +60 -0
- package/node_modules/micromark-factory-label/readme.md +224 -0
- package/node_modules/micromark-factory-space/dev/index.d.ts +60 -0
- package/node_modules/micromark-factory-space/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-space/dev/index.js +122 -0
- package/node_modules/micromark-factory-space/index.d.ts +60 -0
- package/node_modules/micromark-factory-space/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-space/index.js +116 -0
- package/node_modules/micromark-factory-space/license +22 -0
- package/node_modules/micromark-factory-space/package.json +46 -0
- package/node_modules/micromark-factory-space/readme.md +225 -0
- package/node_modules/micromark-factory-title/dev/index.d.ts +36 -0
- package/node_modules/micromark-factory-title/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-title/dev/index.js +169 -0
- package/node_modules/micromark-factory-title/index.d.ts +36 -0
- package/node_modules/micromark-factory-title/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-title/index.js +158 -0
- package/node_modules/micromark-factory-title/license +22 -0
- package/node_modules/micromark-factory-title/package.json +58 -0
- package/node_modules/micromark-factory-title/readme.md +229 -0
- package/node_modules/micromark-factory-whitespace/dev/index.d.ts +22 -0
- package/node_modules/micromark-factory-whitespace/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-whitespace/dev/index.js +53 -0
- package/node_modules/micromark-factory-whitespace/index.d.ts +22 -0
- package/node_modules/micromark-factory-whitespace/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-whitespace/index.js +44 -0
- package/node_modules/micromark-factory-whitespace/license +22 -0
- package/node_modules/micromark-factory-whitespace/package.json +57 -0
- package/node_modules/micromark-factory-whitespace/readme.md +205 -0
- package/node_modules/micromark-util-character/dev/index.d.ts +195 -0
- package/node_modules/micromark-util-character/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-character/dev/index.js +252 -0
- package/node_modules/micromark-util-character/index.d.ts +195 -0
- package/node_modules/micromark-util-character/index.d.ts.map +1 -0
- package/node_modules/micromark-util-character/index.js +246 -0
- package/node_modules/micromark-util-character/license +22 -0
- package/node_modules/micromark-util-character/package.json +57 -0
- package/node_modules/micromark-util-character/readme.md +446 -0
- package/node_modules/micromark-util-chunked/dev/index.d.ts +41 -0
- package/node_modules/micromark-util-chunked/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-chunked/dev/index.js +89 -0
- package/node_modules/micromark-util-chunked/index.d.ts +41 -0
- package/node_modules/micromark-util-chunked/index.d.ts.map +1 -0
- package/node_modules/micromark-util-chunked/index.js +81 -0
- package/node_modules/micromark-util-chunked/license +22 -0
- package/node_modules/micromark-util-chunked/package.json +57 -0
- package/node_modules/micromark-util-chunked/readme.md +219 -0
- package/node_modules/micromark-util-classify-character/dev/index.d.ts +18 -0
- package/node_modules/micromark-util-classify-character/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-classify-character/dev/index.js +38 -0
- package/node_modules/micromark-util-classify-character/index.d.ts +18 -0
- package/node_modules/micromark-util-classify-character/index.d.ts.map +1 -0
- package/node_modules/micromark-util-classify-character/index.js +27 -0
- package/node_modules/micromark-util-classify-character/license +22 -0
- package/node_modules/micromark-util-classify-character/package.json +59 -0
- package/node_modules/micromark-util-classify-character/readme.md +205 -0
- package/node_modules/micromark-util-combine-extensions/index.d.ts +22 -0
- package/node_modules/micromark-util-combine-extensions/index.d.ts.map +1 -0
- package/node_modules/micromark-util-combine-extensions/index.js +143 -0
- package/node_modules/micromark-util-combine-extensions/license +22 -0
- package/node_modules/micromark-util-combine-extensions/package.json +52 -0
- package/node_modules/micromark-util-combine-extensions/readme.md +201 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.d.ts +16 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js +42 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/index.d.ts +16 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/index.d.ts.map +1 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/index.js +32 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/license +22 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/package.json +59 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/readme.md +184 -0
- package/node_modules/micromark-util-decode-string/dev/index.d.ts +14 -0
- package/node_modules/micromark-util-decode-string/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-decode-string/dev/index.js +53 -0
- package/node_modules/micromark-util-decode-string/index.d.ts +14 -0
- package/node_modules/micromark-util-decode-string/index.d.ts.map +1 -0
- package/node_modules/micromark-util-decode-string/index.js +45 -0
- package/node_modules/micromark-util-decode-string/license +22 -0
- package/node_modules/micromark-util-decode-string/package.json +63 -0
- package/node_modules/micromark-util-decode-string/readme.md +179 -0
- package/node_modules/micromark-util-edit-map/dev/index.d.ts +78 -0
- package/node_modules/micromark-util-edit-map/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-edit-map/dev/index.js +237 -0
- package/node_modules/micromark-util-edit-map/index.d.ts +78 -0
- package/node_modules/micromark-util-edit-map/index.d.ts.map +1 -0
- package/node_modules/micromark-util-edit-map/index.js +225 -0
- package/node_modules/micromark-util-edit-map/license +22 -0
- package/node_modules/micromark-util-edit-map/package.json +48 -0
- package/node_modules/micromark-util-edit-map/readme.md +234 -0
- package/node_modules/micromark-util-encode/index.d.ts +14 -0
- package/node_modules/micromark-util-encode/index.d.ts.map +1 -0
- package/node_modules/micromark-util-encode/index.js +33 -0
- package/node_modules/micromark-util-encode/license +22 -0
- package/node_modules/micromark-util-encode/package.json +47 -0
- package/node_modules/micromark-util-encode/readme.md +176 -0
- package/node_modules/micromark-util-html-tag-name/index.d.ts +30 -0
- package/node_modules/micromark-util-html-tag-name/index.d.ts.map +1 -0
- package/node_modules/micromark-util-html-tag-name/index.js +93 -0
- package/node_modules/micromark-util-html-tag-name/license +22 -0
- package/node_modules/micromark-util-html-tag-name/package.json +47 -0
- package/node_modules/micromark-util-html-tag-name/readme.md +193 -0
- package/node_modules/micromark-util-normalize-identifier/dev/index.d.ts +21 -0
- package/node_modules/micromark-util-normalize-identifier/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-normalize-identifier/dev/index.js +38 -0
- package/node_modules/micromark-util-normalize-identifier/index.d.ts +21 -0
- package/node_modules/micromark-util-normalize-identifier/index.d.ts.map +1 -0
- package/node_modules/micromark-util-normalize-identifier/index.js +33 -0
- package/node_modules/micromark-util-normalize-identifier/license +22 -0
- package/node_modules/micromark-util-normalize-identifier/package.json +58 -0
- package/node_modules/micromark-util-normalize-identifier/readme.md +187 -0
- package/node_modules/micromark-util-resolve-all/index.d.ts +22 -0
- package/node_modules/micromark-util-resolve-all/index.d.ts.map +1 -0
- package/node_modules/micromark-util-resolve-all/index.js +32 -0
- package/node_modules/micromark-util-resolve-all/license +22 -0
- package/node_modules/micromark-util-resolve-all/package.json +48 -0
- package/node_modules/micromark-util-resolve-all/readme.md +238 -0
- package/node_modules/micromark-util-sanitize-uri/dev/index.d.ts +36 -0
- package/node_modules/micromark-util-sanitize-uri/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-sanitize-uri/dev/index.js +124 -0
- package/node_modules/micromark-util-sanitize-uri/index.d.ts +36 -0
- package/node_modules/micromark-util-sanitize-uri/index.d.ts.map +1 -0
- package/node_modules/micromark-util-sanitize-uri/index.js +107 -0
- package/node_modules/micromark-util-sanitize-uri/license +22 -0
- package/node_modules/micromark-util-sanitize-uri/package.json +59 -0
- package/node_modules/micromark-util-sanitize-uri/readme.md +214 -0
- package/node_modules/micromark-util-subtokenize/dev/index.d.ts +12 -0
- package/node_modules/micromark-util-subtokenize/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-subtokenize/dev/index.js +284 -0
- package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.d.ts +161 -0
- package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.d.ts.map +1 -0
- package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js +288 -0
- package/node_modules/micromark-util-subtokenize/index.d.ts +12 -0
- package/node_modules/micromark-util-subtokenize/index.d.ts.map +1 -0
- package/node_modules/micromark-util-subtokenize/index.js +228 -0
- package/node_modules/micromark-util-subtokenize/lib/splice-buffer.d.ts +161 -0
- package/node_modules/micromark-util-subtokenize/lib/splice-buffer.d.ts.map +1 -0
- package/node_modules/micromark-util-subtokenize/lib/splice-buffer.js +251 -0
- package/node_modules/micromark-util-subtokenize/license +22 -0
- package/node_modules/micromark-util-subtokenize/package.json +60 -0
- package/node_modules/micromark-util-subtokenize/readme.md +181 -0
- package/node_modules/micromark-util-symbol/lib/codes.d.ts +139 -0
- package/node_modules/micromark-util-symbol/lib/codes.d.ts.map +1 -0
- package/node_modules/micromark-util-symbol/lib/codes.js +158 -0
- package/node_modules/micromark-util-symbol/lib/constants.d.ts +37 -0
- package/node_modules/micromark-util-symbol/lib/constants.d.ts.map +1 -0
- package/node_modules/micromark-util-symbol/lib/constants.js +44 -0
- package/node_modules/micromark-util-symbol/lib/default.d.ts +5 -0
- package/node_modules/micromark-util-symbol/lib/default.d.ts.map +1 -0
- package/node_modules/micromark-util-symbol/lib/default.js +4 -0
- package/node_modules/micromark-util-symbol/lib/types.d.ts +106 -0
- package/node_modules/micromark-util-symbol/lib/types.d.ts.map +1 -0
- package/node_modules/micromark-util-symbol/lib/types.js +453 -0
- package/node_modules/micromark-util-symbol/lib/values.d.ts +102 -0
- package/node_modules/micromark-util-symbol/lib/values.d.ts.map +1 -0
- package/node_modules/micromark-util-symbol/lib/values.js +109 -0
- package/node_modules/micromark-util-symbol/license +22 -0
- package/node_modules/micromark-util-symbol/package.json +43 -0
- package/node_modules/micromark-util-symbol/readme.md +168 -0
- package/node_modules/micromark-util-types/index.d.ts +1315 -0
- package/node_modules/micromark-util-types/index.js +2 -0
- package/node_modules/micromark-util-types/license +22 -0
- package/node_modules/micromark-util-types/package.json +37 -0
- package/node_modules/micromark-util-types/readme.md +151 -0
- package/node_modules/ms/index.js +162 -0
- package/node_modules/ms/license.md +21 -0
- package/node_modules/ms/package.json +38 -0
- package/node_modules/ms/readme.md +59 -0
- package/node_modules/remark-gfm/index.d.ts +13 -0
- package/node_modules/remark-gfm/index.js +2 -0
- package/node_modules/remark-gfm/lib/index.d.ts +12 -0
- package/node_modules/remark-gfm/lib/index.d.ts.map +1 -0
- package/node_modules/remark-gfm/lib/index.js +41 -0
- package/node_modules/remark-gfm/license +22 -0
- package/node_modules/remark-gfm/package.json +125 -0
- package/node_modules/remark-gfm/readme.md +518 -0
- package/node_modules/remark-parse/index.d.ts +55 -0
- package/node_modules/remark-parse/index.js +2 -0
- package/node_modules/remark-parse/lib/index.d.ts +26 -0
- package/node_modules/remark-parse/lib/index.js +43 -0
- package/node_modules/remark-parse/license +21 -0
- package/node_modules/remark-parse/package.json +72 -0
- package/node_modules/remark-parse/readme.md +428 -0
- package/node_modules/remark-stringify/index.d.ts +41 -0
- package/node_modules/remark-stringify/index.js +2 -0
- package/node_modules/remark-stringify/lib/index.d.ts +26 -0
- package/node_modules/remark-stringify/lib/index.js +42 -0
- package/node_modules/remark-stringify/license +21 -0
- package/node_modules/remark-stringify/package.json +71 -0
- package/node_modules/remark-stringify/readme.md +407 -0
- package/node_modules/trough/index.d.ts +7 -0
- package/node_modules/trough/index.d.ts.map +1 -0
- package/node_modules/trough/index.js +9 -0
- package/node_modules/trough/lib/index.d.ts +105 -0
- package/node_modules/trough/lib/index.d.ts.map +1 -0
- package/node_modules/trough/lib/index.js +206 -0
- package/node_modules/trough/license +21 -0
- package/node_modules/trough/package.json +77 -0
- package/node_modules/trough/readme.md +494 -0
- package/node_modules/unified/index.d.ts +106 -0
- package/node_modules/unified/index.js +2 -0
- package/node_modules/unified/lib/callable-instance.d.ts +2 -0
- package/node_modules/unified/lib/callable-instance.d.ts.map +1 -0
- package/node_modules/unified/lib/callable-instance.js +44 -0
- package/node_modules/unified/lib/index.d.ts +1024 -0
- package/node_modules/unified/lib/index.d.ts.map +1 -0
- package/node_modules/unified/lib/index.js +1323 -0
- package/node_modules/unified/license +21 -0
- package/node_modules/unified/package.json +120 -0
- package/node_modules/unified/readme.md +1835 -0
- package/node_modules/unist-util-is/index.d.ts +5 -0
- package/node_modules/unist-util-is/index.d.ts.map +1 -0
- package/node_modules/unist-util-is/index.js +7 -0
- package/node_modules/unist-util-is/lib/index.d.ts +111 -0
- package/node_modules/unist-util-is/lib/index.d.ts.map +1 -0
- package/node_modules/unist-util-is/lib/index.js +296 -0
- package/node_modules/unist-util-is/license +22 -0
- package/node_modules/unist-util-is/package.json +103 -0
- package/node_modules/unist-util-is/readme.md +351 -0
- package/node_modules/unist-util-stringify-position/index.d.ts +1 -0
- package/node_modules/unist-util-stringify-position/index.js +1 -0
- package/node_modules/unist-util-stringify-position/lib/index.d.ts +61 -0
- package/node_modules/unist-util-stringify-position/lib/index.js +84 -0
- package/node_modules/unist-util-stringify-position/license +22 -0
- package/node_modules/unist-util-stringify-position/package.json +80 -0
- package/node_modules/unist-util-stringify-position/readme.md +206 -0
- package/node_modules/unist-util-visit/index.d.ts +9 -0
- package/node_modules/unist-util-visit/index.js +2 -0
- package/node_modules/unist-util-visit/lib/index.d.ts +195 -0
- package/node_modules/unist-util-visit/lib/index.d.ts.map +1 -0
- package/node_modules/unist-util-visit/lib/index.js +312 -0
- package/node_modules/unist-util-visit/license +22 -0
- package/node_modules/unist-util-visit/package.json +108 -0
- package/node_modules/unist-util-visit/readme.md +313 -0
- package/node_modules/unist-util-visit-parents/index.d.ts +14 -0
- package/node_modules/unist-util-visit-parents/index.js +2 -0
- package/node_modules/unist-util-visit-parents/lib/color.d.ts +6 -0
- package/node_modules/unist-util-visit-parents/lib/color.d.ts.map +1 -0
- package/node_modules/unist-util-visit-parents/lib/color.js +7 -0
- package/node_modules/unist-util-visit-parents/lib/color.node.d.ts +6 -0
- package/node_modules/unist-util-visit-parents/lib/color.node.d.ts.map +1 -0
- package/node_modules/unist-util-visit-parents/lib/color.node.js +7 -0
- package/node_modules/unist-util-visit-parents/lib/index.d.ts +219 -0
- package/node_modules/unist-util-visit-parents/lib/index.d.ts.map +1 -0
- package/node_modules/unist-util-visit-parents/lib/index.js +399 -0
- package/node_modules/unist-util-visit-parents/license +22 -0
- package/node_modules/unist-util-visit-parents/package.json +106 -0
- package/node_modules/unist-util-visit-parents/readme.md +388 -0
- package/node_modules/vfile/index.d.ts +153 -0
- package/node_modules/vfile/index.js +2 -0
- package/node_modules/vfile/lib/index.d.ts +1465 -0
- package/node_modules/vfile/lib/index.d.ts.map +1 -0
- package/node_modules/vfile/lib/index.js +643 -0
- package/node_modules/vfile/lib/minpath.browser.d.ts +47 -0
- package/node_modules/vfile/lib/minpath.browser.d.ts.map +1 -0
- package/node_modules/vfile/lib/minpath.browser.js +426 -0
- package/node_modules/vfile/lib/minpath.d.ts +2 -0
- package/node_modules/vfile/lib/minpath.d.ts.map +1 -0
- package/node_modules/vfile/lib/minpath.js +1 -0
- package/node_modules/vfile/lib/minproc.browser.d.ts +6 -0
- package/node_modules/vfile/lib/minproc.browser.d.ts.map +1 -0
- package/node_modules/vfile/lib/minproc.browser.js +8 -0
- package/node_modules/vfile/lib/minproc.d.ts +2 -0
- package/node_modules/vfile/lib/minproc.d.ts.map +1 -0
- package/node_modules/vfile/lib/minproc.js +1 -0
- package/node_modules/vfile/lib/minurl.browser.d.ts +9 -0
- package/node_modules/vfile/lib/minurl.browser.d.ts.map +1 -0
- package/node_modules/vfile/lib/minurl.browser.js +76 -0
- package/node_modules/vfile/lib/minurl.d.ts +3 -0
- package/node_modules/vfile/lib/minurl.d.ts.map +1 -0
- package/node_modules/vfile/lib/minurl.js +2 -0
- package/node_modules/vfile/lib/minurl.shared.d.ts +20 -0
- package/node_modules/vfile/lib/minurl.shared.d.ts.map +1 -0
- package/node_modules/vfile/lib/minurl.shared.js +31 -0
- package/node_modules/vfile/license +21 -0
- package/node_modules/vfile/package.json +134 -0
- package/node_modules/vfile/readme.md +785 -0
- package/node_modules/vfile-message/index.d.ts +2 -0
- package/node_modules/vfile-message/index.js +5 -0
- package/node_modules/vfile-message/lib/index.d.ts +508 -0
- package/node_modules/vfile-message/lib/index.js +314 -0
- package/node_modules/vfile-message/license +22 -0
- package/node_modules/vfile-message/package.json +80 -0
- package/node_modules/vfile-message/readme.md +252 -0
- package/node_modules/yaml/LICENSE +13 -0
- package/node_modules/yaml/README.md +172 -0
- package/node_modules/yaml/bin.mjs +11 -0
- package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
- package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
- package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
- package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
- package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
- package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +226 -0
- package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
- package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
- package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
- package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
- package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
- package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
- package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
- package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
- package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
- package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
- package/node_modules/yaml/browser/dist/errors.js +57 -0
- package/node_modules/yaml/browser/dist/index.js +17 -0
- package/node_modules/yaml/browser/dist/log.js +11 -0
- package/node_modules/yaml/browser/dist/nodes/Alias.js +118 -0
- package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
- package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
- package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
- package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
- package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
- package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
- package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
- package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
- package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
- package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
- package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
- package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
- package/node_modules/yaml/browser/dist/public-api.js +102 -0
- package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
- package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
- package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
- package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
- package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
- package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
- package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
- package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
- package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
- package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
- package/node_modules/yaml/browser/dist/util.js +11 -0
- package/node_modules/yaml/browser/dist/visit.js +233 -0
- package/node_modules/yaml/browser/index.js +5 -0
- package/node_modules/yaml/browser/package.json +3 -0
- package/node_modules/yaml/dist/cli.d.ts +8 -0
- package/node_modules/yaml/dist/cli.mjs +201 -0
- package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
- package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
- package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
- package/node_modules/yaml/dist/compose/compose-node.js +112 -0
- package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
- package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
- package/node_modules/yaml/dist/compose/composer.js +224 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +228 -0
- package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
- package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
- package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
- package/node_modules/yaml/dist/doc/Document.js +337 -0
- package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
- package/node_modules/yaml/dist/doc/anchors.js +76 -0
- package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
- package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
- package/node_modules/yaml/dist/doc/createNode.js +90 -0
- package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
- package/node_modules/yaml/dist/doc/directives.js +178 -0
- package/node_modules/yaml/dist/errors.d.ts +21 -0
- package/node_modules/yaml/dist/errors.js +62 -0
- package/node_modules/yaml/dist/index.d.ts +25 -0
- package/node_modules/yaml/dist/index.js +50 -0
- package/node_modules/yaml/dist/log.d.ts +3 -0
- package/node_modules/yaml/dist/log.js +19 -0
- package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/Alias.js +120 -0
- package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
- package/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
- package/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
- package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
- package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
- package/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/node_modules/yaml/dist/options.d.ts +350 -0
- package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
- package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
- package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
- package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
- package/node_modules/yaml/dist/parse/cst.js +112 -0
- package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
- package/node_modules/yaml/dist/parse/lexer.js +723 -0
- package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
- package/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
- package/node_modules/yaml/dist/parse/parser.js +980 -0
- package/node_modules/yaml/dist/public-api.d.ts +44 -0
- package/node_modules/yaml/dist/public-api.js +107 -0
- package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
- package/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
- package/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
- package/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
- package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
- package/node_modules/yaml/dist/schema/tags.js +99 -0
- package/node_modules/yaml/dist/schema/types.d.ts +92 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
- package/node_modules/yaml/dist/stringify/stringify.js +132 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
- package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
- package/node_modules/yaml/dist/test-events.d.ts +4 -0
- package/node_modules/yaml/dist/test-events.js +134 -0
- package/node_modules/yaml/dist/util.d.ts +16 -0
- package/node_modules/yaml/dist/util.js +28 -0
- package/node_modules/yaml/dist/visit.d.ts +102 -0
- package/node_modules/yaml/dist/visit.js +236 -0
- package/node_modules/yaml/package.json +97 -0
- package/node_modules/yaml/util.js +2 -0
- package/node_modules/zwitch/index.d.ts +67 -0
- package/node_modules/zwitch/index.js +118 -0
- package/node_modules/zwitch/license +22 -0
- package/node_modules/zwitch/package.json +72 -0
- package/node_modules/zwitch/readme.md +226 -0
- package/package.json +13 -5
- package/packages/pcr-core/schemas/guidance-batch-request.schema.json +12 -0
- package/packages/pcr-core/schemas/guidance-output.schema.json +236 -28
- package/packages/pcr-core/schemas/structured-projection.schema.json +576 -80
- package/packages/pcr-core/src/classification-coverage.js +664 -0
- package/packages/pcr-core/src/classification-coverage.js.map +1 -0
- package/packages/pcr-core/src/compiler/guidance-context.js +135 -0
- package/packages/pcr-core/src/compiler/guidance-context.js.map +1 -0
- package/packages/pcr-core/src/compiler/guidance-envelope.js +78 -0
- package/packages/pcr-core/src/compiler/guidance-envelope.js.map +1 -0
- package/packages/pcr-core/src/compiler/normative-integrity.js +67 -0
- package/packages/pcr-core/src/compiler/normative-integrity.js.map +1 -0
- package/packages/pcr-core/src/compiler/normative-projection.js +276 -0
- package/packages/pcr-core/src/compiler/normative-projection.js.map +1 -0
- package/packages/pcr-core/src/compiler/source-context.js +231 -0
- package/packages/pcr-core/src/compiler/source-context.js.map +1 -0
- package/packages/pcr-core/src/consumption-calculation.js +61 -0
- package/packages/pcr-core/src/consumption-calculation.js.map +1 -0
- package/packages/pcr-core/src/consumption-data.js +99 -0
- package/packages/pcr-core/src/consumption-data.js.map +1 -0
- package/packages/pcr-core/src/consumption-guidance.js +107 -0
- package/packages/pcr-core/src/consumption-guidance.js.map +1 -0
- package/packages/pcr-core/src/consumption-review.js +103 -0
- package/packages/pcr-core/src/consumption-review.js.map +1 -0
- package/packages/pcr-core/src/contracts.js +163 -0
- package/packages/pcr-core/src/contracts.js.map +1 -0
- package/packages/pcr-core/src/generated/controlled-vocabulary.js +39 -0
- package/packages/pcr-core/src/generated/controlled-vocabulary.js.map +1 -0
- package/packages/pcr-core/src/index.js +1824 -0
- package/packages/pcr-core/src/index.js.map +1 -0
- package/packages/pcr-core/src/languages.js +85 -0
- package/packages/pcr-core/src/languages.js.map +1 -0
- package/packages/pcr-core/src/offline-library.js +302 -0
- package/packages/pcr-core/src/offline-library.js.map +1 -0
- package/packages/pcr-core/src/output-semantics.js +122 -0
- package/packages/pcr-core/src/output-semantics.js.map +1 -0
- package/packages/pcr-core/src/pcr-id-aliases.js +898 -0
- package/packages/pcr-core/src/pcr-id-aliases.js.map +1 -0
- package/packages/pcr-core/src/projection-completeness.js +172 -0
- package/packages/pcr-core/src/projection-completeness.js.map +1 -0
- package/packages/pcr-core/src/projection-integrity.js +177 -0
- package/packages/pcr-core/src/projection-integrity.js.map +1 -0
- package/packages/pcr-core/src/read-context.js +421 -0
- package/packages/pcr-core/src/read-context.js.map +1 -0
- package/packages/pcr-core/src/read-session.js +150 -0
- package/packages/pcr-core/src/read-session.js.map +1 -0
- package/packages/pcr-core/src/schema-validation.js +136 -0
- package/packages/pcr-core/src/schema-validation.js.map +1 -0
- package/packages/pcr-core/src/source-context.js +18 -0
- package/packages/pcr-core/src/source-context.js.map +1 -0
- package/packages/pcr-core/src/tidas-inspection.js +201 -0
- package/packages/pcr-core/src/tidas-inspection.js.map +1 -0
- package/packages/pcr-core/src/types.js +12 -0
- package/packages/pcr-core/src/types.js.map +1 -0
- package/packages/pcr-core/src/vocabulary.js +47 -0
- package/packages/pcr-core/src/vocabulary.js.map +1 -0
- package/packages/pcr-core/src/yaml-lite.js +267 -0
- package/packages/pcr-core/src/yaml-lite.js.map +1 -0
- package/packages/tiangong-pcr-cli/bin/tiangong-pcr.js +11 -0
- package/packages/tiangong-pcr-cli/bin/tiangong-pcr.js.map +1 -0
- package/packages/tiangong-pcr-cli/src/commands.js +1662 -0
- package/packages/tiangong-pcr-cli/src/commands.js.map +1 -0
- package/product-release.json +4 -4
- package/skills/tiangong-pcr/SKILL.md +9 -2
- package/packages/pcr-core/src/classification-coverage.mjs +0 -732
- package/packages/pcr-core/src/consumption-calculation.mjs +0 -53
- package/packages/pcr-core/src/consumption-data.mjs +0 -88
- package/packages/pcr-core/src/consumption-guidance.mjs +0 -62
- package/packages/pcr-core/src/consumption-review.mjs +0 -83
- package/packages/pcr-core/src/contracts.mjs +0 -195
- package/packages/pcr-core/src/generated/controlled-vocabulary.mjs +0 -41
- package/packages/pcr-core/src/index.mjs +0 -2101
- package/packages/pcr-core/src/languages.mjs +0 -86
- package/packages/pcr-core/src/offline-library.mjs +0 -121
- package/packages/pcr-core/src/output-semantics.mjs +0 -228
- package/packages/pcr-core/src/pcr-id-aliases.mjs +0 -949
- package/packages/pcr-core/src/projection-completeness.mjs +0 -284
- package/packages/pcr-core/src/projection-integrity.mjs +0 -208
- package/packages/pcr-core/src/read-context.mjs +0 -505
- package/packages/pcr-core/src/schema-validation.mjs +0 -142
- package/packages/pcr-core/src/source-context.mjs +0 -13
- package/packages/pcr-core/src/tidas-inspection.mjs +0 -177
- package/packages/pcr-core/src/yaml-lite.mjs +0 -261
- package/packages/tiangong-pcr-cli/bin/tiangong-pcr.mjs +0 -12
- package/packages/tiangong-pcr-cli/src/commands.mjs +0 -1691
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-session.js","sourceRoot":"pcr://source/","sources":["packages/pcr-core/src/read-session.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from 'node:crypto';\nimport { OfflineLibrary } from './offline-library.ts';\nimport { createPcrReadContext, withPcrReadContextSession } from './read-context.ts';\nimport { withPcrSource, withRepositoryPcrSource } from './source-context.ts';\nimport { projectionFromVerifiedSnapshot, readVerifiedSnapshotForSession } from './index.ts';\nimport { buildGuidanceFromProjection } from './compiler/guidance-envelope.ts';\nimport type { CompleteGuidance, CurrentPcrSnapshot, VerifiedPcrProjection } from './types.ts';\n\nexport const MAX_READ_BATCH = 100;\nexport type PcrReadSource = { kind: 'repository'; root: string } | { kind: 'library'; filename: string; expectedSha256?: string; verify?: boolean };\nexport type PcrReadSourceIdentity = Readonly<{ kind: 'repository'; root: string } | { kind: 'library'; filename: string; content_version: string; source_commit: string; sha256: string; verified: boolean }>;\nexport interface PcrReadSessionStats { records_loaded: number; cache_hits: number; final_verifications: number; alias_validations: number }\nexport interface PcrReadSession {\n readonly source: PcrReadSourceIdentity;\n guidance(pcrId: string): CompleteGuidance;\n projection(pcrId: string): VerifiedPcrProjection;\n guidanceMany(pcrIds: readonly string[]): CompleteGuidance[];\n projectionMany(pcrIds: readonly string[]): VerifiedPcrProjection[];\n stats(): Readonly<PcrReadSessionStats>;\n}\nexport class PcrReadSessionError extends Error {\n readonly code: string;\n readonly details: Readonly<Record<string, unknown>>;\n constructor(code: string, message: string, details: Record<string, unknown> = {}) {\n super(message); this.name = 'PcrReadSessionError'; this.code = code; this.details = details;\n }\n}\nfunction validateIds(ids: readonly string[]): string[] {\n if (!Array.isArray(ids) || ids.length > MAX_READ_BATCH || ids.some(id => typeof id !== 'string' || !id.trim())) {\n throw new PcrReadSessionError('PCR_READ_BATCH_INVALID', `Provide at most ${MAX_READ_BATCH} nonempty PCR IDs; no partial batch is returned.`);\n }\n return [...ids];\n}\nfunction fingerprint(snapshot: CurrentPcrSnapshot): string {\n const digest = (bytes: Uint8Array) => createHash('sha256').update(bytes).digest('hex');\n const entries: [string, string][] = [['manifest.yaml', digest(snapshot.manifestBytes)]];\n for (const name of Object.keys(snapshot.artifacts).sort()) {\n const artifact = snapshot.artifacts[name];\n const error: unknown = artifact?.error;\n const code: unknown = error !== null && typeof error === 'object' ? Reflect.get(error, 'code') : undefined;\n entries.push([name, artifact?.bytes ? digest(artifact.bytes) : `unavailable:${String(code ?? 'unknown_error')}`]);\n }\n return digest(Buffer.from(JSON.stringify(entries)));\n}\nfunction synchronous<T>(read: () => T): T {\n const result = read();\n if (result !== null && (typeof result === 'object' || typeof result === 'function')) {\n const then: unknown = Reflect.get(result, 'then');\n if (typeof then === 'function') {\n void Promise.resolve(result).catch(() => {});\n throw new PcrReadSessionError('PCR_READ_SESSION_ASYNC', 'PCR read sessions require a synchronous callback.');\n }\n }\n return result;\n}\n\n/** One owned, synchronous source scope. Each selected repository record is bound\n * by exact captured bytes and rechecked before return. SQLite already opens one\n * read-only transaction in OfflineLibrary; this function owns its lifetime. */\nexport function withPcrReadSession<T>(source: PcrReadSource, read: (session: PcrReadSession) => T): T {\n if (typeof read !== 'function' || !source || (source.kind !== 'repository' && source.kind !== 'library')) {\n throw new PcrReadSessionError('PCR_READ_SOURCE_INVALID', 'Select a repository root or a fixed SQLite library.');\n }\n if (source.kind === 'repository' ? typeof source.root !== 'string' || !source.root : typeof source.filename !== 'string' || !source.filename) {\n throw new PcrReadSessionError('PCR_READ_SOURCE_INVALID', 'The selected source requires a nonempty path.');\n }\n if (source.kind === 'library' && ((source.verify !== undefined && typeof source.verify !== 'boolean')\n || (source.expectedSha256 !== undefined && (typeof source.expectedSha256 !== 'string' || !/^sha256:[a-f0-9]{64}$/u.test(source.expectedSha256))))) {\n throw new PcrReadSessionError('PCR_READ_SOURCE_INVALID', 'Library verification must be a boolean and its optional pin a sha256 digest.');\n }\n let library: OfflineLibrary | undefined;\n const stats: PcrReadSessionStats = { records_loaded: 0, cache_hits: 0, final_verifications: 0, alias_validations: 0 };\n let active = true;\n try {\n const context = source.kind === 'repository' ? withRepositoryPcrSource(source.root, () => createPcrReadContext({ root: source.root, onAliasValidation: () => { stats.alias_validations += 1; } })) : undefined;\n if (source.kind === 'library') library = new OfflineLibrary(source.filename, { expectedSha256: source.expectedSha256 ?? null, verify: source.verify ?? true });\n const selectedRoot = context?.root ?? library?.root;\n if (!selectedRoot) throw new PcrReadSessionError('PCR_READ_SOURCE_INVALID', 'Source initialization failed.');\n const root: string = selectedRoot;\n const adapter = library;\n const scope = <R>(operation: () => R): R => adapter ? withPcrSource(root, adapter, operation) : withRepositoryPcrSource(root, operation);\n const identity: PcrReadSourceIdentity = Object.freeze(adapter ? {\n kind: 'library' as const, filename: adapter.filename, content_version: adapter.manifest.snapshot.content_version,\n source_commit: adapter.manifest.snapshot.source_commit, sha256: adapter.manifest.sha256,\n verified: source.kind === 'library' && ((source.verify ?? true) || source.expectedSha256 !== undefined),\n } : { kind: 'repository' as const, root });\n const bindings = new Map<string, string>();\n const cache = new Map<string, VerifiedPcrProjection>();\n function requireActive(): void { if (!active) throw new PcrReadSessionError('PCR_READ_SESSION_CLOSED', 'PCR read session has ended.'); }\n function capture(pcrId: string) {\n return scope(() => readVerifiedSnapshotForSession({ root, pcrId, ...(context ? { context } : {}) }));\n }\n function load(pcrId: string): VerifiedPcrProjection {\n requireActive(); validateIds([pcrId]);\n const cached = cache.get(pcrId);\n if (cached) { stats.cache_hits += 1; cache.delete(pcrId); cache.set(pcrId, cached); return cached; }\n const snapshot = capture(pcrId);\n const binding = fingerprint(snapshot);\n const previous = bindings.get(pcrId);\n if (previous !== undefined && previous !== binding) throw new PcrReadSessionError('PCR_READ_SESSION_STALE', 'Selected PCR source changed during the session.', { pcr_id: pcrId });\n bindings.set(pcrId, binding);\n const value = projectionFromVerifiedSnapshot(snapshot, root);\n stats.records_loaded += 1; cache.set(pcrId, value);\n if (cache.size > MAX_READ_BATCH) { const oldest = cache.keys().next().value; if (oldest !== undefined) cache.delete(oldest); }\n return value;\n }\n const session: PcrReadSession = Object.freeze({\n source: identity,\n guidance: (pcrId: string) => structuredClone(buildGuidanceFromProjection(load(pcrId))),\n projection: (pcrId: string) => structuredClone(load(pcrId)),\n guidanceMany: (ids: readonly string[]) => { requireActive(); return validateIds(ids).map(id => structuredClone(buildGuidanceFromProjection(load(id)))); },\n projectionMany: (ids: readonly string[]) => { requireActive(); return validateIds(ids).map(id => structuredClone(load(id))); },\n stats: () => Object.freeze({ ...stats }),\n });\n const operation = () => {\n try {\n const result = synchronous(() => scope(() => read(session)));\n if (context) {\n for (const [pcrId, expected] of bindings) {\n let snapshot: ReturnType<typeof capture>;\n try { snapshot = capture(pcrId); }\n catch (error: unknown) { throw new PcrReadSessionError('PCR_READ_SESSION_STALE', 'Selected PCR can no longer be verified.', { pcr_id: pcrId, reason: error instanceof Error ? error.message : String(error) }); }\n stats.final_verifications += 1;\n if (fingerprint(snapshot) !== expected) throw new PcrReadSessionError('PCR_READ_SESSION_STALE', 'Selected PCR source changed during the session.', { pcr_id: pcrId });\n }\n }\n return result;\n } finally { active = false; cache.clear(); }\n };\n return context ? withPcrReadContextSession({ context, root, read: operation }) : operation();\n } finally { active = false; library?.close(); }\n}\n"]}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { Ajv2020 } from "ajv/dist/2020.js";
|
|
2
|
+
import { isUnknownRecord, unknownField } from './types.js';
|
|
3
|
+
export class ContractSchemaError extends Error {
|
|
4
|
+
code;
|
|
5
|
+
contract;
|
|
6
|
+
entity_kind;
|
|
7
|
+
schema_id;
|
|
8
|
+
source;
|
|
9
|
+
issues;
|
|
10
|
+
errors;
|
|
11
|
+
constructor({ code = "PCR_SCHEMA_INVALID", contract, entityKind, source = null, issues }) {
|
|
12
|
+
const location = source ? ` at ${source}` : "";
|
|
13
|
+
const details = issues.map((issue) => `${issue.instance_path}: ${issue.message}`).join("; ");
|
|
14
|
+
super(`${entityKind} schema validation failed${location}: ${details}`);
|
|
15
|
+
this.name = "ContractSchemaError";
|
|
16
|
+
this.code = code;
|
|
17
|
+
this.contract = contract;
|
|
18
|
+
this.entity_kind = entityKind;
|
|
19
|
+
this.schema_id = contract;
|
|
20
|
+
this.source = source;
|
|
21
|
+
this.issues = structuredClone([...issues]);
|
|
22
|
+
this.errors = structuredClone([...issues]);
|
|
23
|
+
}
|
|
24
|
+
toJSON() {
|
|
25
|
+
return {
|
|
26
|
+
code: this.code,
|
|
27
|
+
entity_kind: this.entity_kind,
|
|
28
|
+
schema_id: this.schema_id,
|
|
29
|
+
source: this.source,
|
|
30
|
+
errors: structuredClone(this.errors),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function createSchemaRegistry(schemas, entityKinds = {}) {
|
|
35
|
+
const ajv = new Ajv2020({
|
|
36
|
+
allErrors: true,
|
|
37
|
+
coerceTypes: false,
|
|
38
|
+
removeAdditional: false,
|
|
39
|
+
strict: true,
|
|
40
|
+
useDefaults: false,
|
|
41
|
+
validateSchema: true,
|
|
42
|
+
});
|
|
43
|
+
for (const schema of schemas) {
|
|
44
|
+
if (!isUnknownRecord(schema) || typeof schema.$id !== "string" || !schema.$id) {
|
|
45
|
+
throw new Error("Every registered JSON Schema requires a stable $id.");
|
|
46
|
+
}
|
|
47
|
+
ajv.addSchema(schema);
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
assert(contract, value, options = {}) {
|
|
51
|
+
const entityKind = options.entityKind ?? entityKinds[contract] ?? contract;
|
|
52
|
+
const result = validateRegisteredSchema(ajv, contract, value, entityKind);
|
|
53
|
+
if (!result.valid) {
|
|
54
|
+
throw new ContractSchemaError({
|
|
55
|
+
code: options.code,
|
|
56
|
+
contract,
|
|
57
|
+
entityKind,
|
|
58
|
+
source: options.source,
|
|
59
|
+
issues: result.errors,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return value;
|
|
63
|
+
},
|
|
64
|
+
validate(contract, value, options = {}) {
|
|
65
|
+
return validateRegisteredSchema(ajv, contract, value, options.entityKind ?? entityKinds[contract] ?? contract);
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export function formatContractIssues(issues) {
|
|
70
|
+
return issues.map((issue) => `${issue.instance_path}: ${issue.message}`);
|
|
71
|
+
}
|
|
72
|
+
export function normalizeSchemaErrors(errors) {
|
|
73
|
+
return errors
|
|
74
|
+
.map((error) => {
|
|
75
|
+
const instancePath = issuePath(error);
|
|
76
|
+
return {
|
|
77
|
+
code: `schema.${error.keyword}`,
|
|
78
|
+
instance_path: instancePath,
|
|
79
|
+
schema_path: error.schemaPath,
|
|
80
|
+
keyword: error.keyword,
|
|
81
|
+
message: error.message ?? "is invalid",
|
|
82
|
+
params: stableParams(error.params),
|
|
83
|
+
};
|
|
84
|
+
})
|
|
85
|
+
.sort(compareSchemaErrors);
|
|
86
|
+
}
|
|
87
|
+
function validateRegisteredSchema(ajv, contract, value, entityKind) {
|
|
88
|
+
const validate = ajv.getSchema(contract);
|
|
89
|
+
if (!validate) {
|
|
90
|
+
throw new Error(`JSON Schema contract is not registered: ${contract}`);
|
|
91
|
+
}
|
|
92
|
+
const valid = validate(value) === true;
|
|
93
|
+
const errors = valid ? [] : normalizeSchemaErrors(validate.errors ?? []);
|
|
94
|
+
return {
|
|
95
|
+
valid,
|
|
96
|
+
code: valid ? null : "PCR_SCHEMA_INVALID",
|
|
97
|
+
entity_kind: entityKind,
|
|
98
|
+
schema_id: contract,
|
|
99
|
+
errors,
|
|
100
|
+
// Backward-compatible alias for the earlier internal registry API.
|
|
101
|
+
issues: errors,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function compareSchemaErrors(left, right) {
|
|
105
|
+
return (left.instance_path.localeCompare(right.instance_path) ||
|
|
106
|
+
left.keyword.localeCompare(right.keyword) ||
|
|
107
|
+
left.schema_path.localeCompare(right.schema_path) ||
|
|
108
|
+
left.message.localeCompare(right.message) ||
|
|
109
|
+
JSON.stringify(left.params).localeCompare(JSON.stringify(right.params)));
|
|
110
|
+
}
|
|
111
|
+
function issuePath(error) {
|
|
112
|
+
const missingProperty = unknownField(error.params, "missingProperty");
|
|
113
|
+
if (error.keyword === "required" && missingProperty) {
|
|
114
|
+
const escaped = String(missingProperty)
|
|
115
|
+
.replaceAll("~", "~0")
|
|
116
|
+
.replaceAll("/", "~1");
|
|
117
|
+
return `${error.instancePath}/${escaped}` || "/";
|
|
118
|
+
}
|
|
119
|
+
return error.instancePath || "/";
|
|
120
|
+
}
|
|
121
|
+
function stableClone(value) {
|
|
122
|
+
if (Array.isArray(value)) {
|
|
123
|
+
return value.map(stableClone);
|
|
124
|
+
}
|
|
125
|
+
if (!value || typeof value !== "object") {
|
|
126
|
+
return value;
|
|
127
|
+
}
|
|
128
|
+
return Object.fromEntries(Object.keys(value)
|
|
129
|
+
.sort()
|
|
130
|
+
.map((key) => [key, stableClone(unknownField(value, key))]));
|
|
131
|
+
}
|
|
132
|
+
function stableParams(value) {
|
|
133
|
+
const cloned = stableClone(value ?? {});
|
|
134
|
+
return isUnknownRecord(cloned) ? cloned : {};
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=schema-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validation.js","sourceRoot":"pcr://source/","sources":["packages/pcr-core/src/schema-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0C,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,YAAY,EAA8F,MAAM,YAAY,CAAC;AAEvJ,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,CAAS;IACb,QAAQ,CAAS;IACjB,WAAW,CAAS;IACpB,SAAS,CAAS;IAClB,MAAM,CAAgB;IACtB,MAAM,CAAgB;IACtB,MAAM,CAAgB;IAC/B,YAAY,EAAE,IAAI,GAAG,oBAAoB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAErF;QACC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7F,KAAK,CAAC,GAAG,UAAU,4BAA4B,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;SACrC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,OAA2B,EAAE,WAAW,GAAqC,EAAE;IAClH,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC;QACtB,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,KAAK;QAClB,gBAAgB,EAAE,KAAK;QACvB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,MAAyB,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO;QACL,MAAM,CAAI,QAAgB,EAAE,KAAQ,EAAE,OAAO,GAAoB,EAAE;YACjE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;YAC3E,MAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAC1E,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,IAAI,mBAAmB,CAAC;oBAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,QAAQ;oBACR,UAAU;oBACV,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,QAAQ,CAAC,QAAgB,EAAE,KAAc,EAAE,OAAO,GAAoB,EAAE;YACtE,OAAO,wBAAwB,CAC7B,GAAG,EACH,QAAQ,EACR,KAAK,EACL,OAAO,CAAC,UAAU,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,QAAQ,CACxD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAA8B;IACjE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO;YACL,IAAI,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE;YAC/B,aAAa,EAAE,YAAY;YAC3B,WAAW,EAAE,KAAK,CAAC,UAAU;YAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,YAAY;YACtC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;SACnC,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAY,EAAE,QAAgB,EAAE,KAAc,EAAE,UAAkB;IAClG,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO;QACL,KAAK;QACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB;QACzC,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,QAAQ;QACnB,MAAM;QACN,mEAAmE;QACnE,MAAM,EAAE,MAAM;KACf,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAiB,EAAE,KAAkB;IAChE,OAAO,CACL,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CACxE,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAkB;IACnC,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,IAAI,eAAe,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;aACpC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC;aACrB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,GAAG,KAAK,CAAC,YAAY,IAAI,OAAO,EAAE,IAAI,GAAG,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC,YAAY,IAAI,GAAG,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACf,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACxC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,CAAC","sourcesContent":["import { Ajv2020, type AnySchemaObject, type ErrorObject } from \"ajv/dist/2020.js\";\nimport { isUnknownRecord, unknownField, type ContractOptions, type SchemaIssue, type SchemaRegistry, type ContractValidationResult } from './types.ts';\n\nexport class ContractSchemaError extends Error {\n readonly code: string;\n readonly contract: string;\n readonly entity_kind: string;\n readonly schema_id: string;\n readonly source: string | null;\n readonly issues: SchemaIssue[];\n readonly errors: SchemaIssue[];\n constructor({ code = \"PCR_SCHEMA_INVALID\", contract, entityKind, source = null, issues }: {\n code?: string | undefined; contract: string; entityKind: string; source?: string | null | undefined; issues: readonly SchemaIssue[];\n }) {\n const location = source ? ` at ${source}` : \"\";\n const details = issues.map((issue) => `${issue.instance_path}: ${issue.message}`).join(\"; \");\n super(`${entityKind} schema validation failed${location}: ${details}`);\n this.name = \"ContractSchemaError\";\n this.code = code;\n this.contract = contract;\n this.entity_kind = entityKind;\n this.schema_id = contract;\n this.source = source;\n this.issues = structuredClone([...issues]);\n this.errors = structuredClone([...issues]);\n }\n\n toJSON() {\n return {\n code: this.code,\n entity_kind: this.entity_kind,\n schema_id: this.schema_id,\n source: this.source,\n errors: structuredClone(this.errors),\n };\n }\n}\n\nexport function createSchemaRegistry(schemas: readonly unknown[], entityKinds: Readonly<Record<string, string>> = {}): SchemaRegistry {\n const ajv = new Ajv2020({\n allErrors: true,\n coerceTypes: false,\n removeAdditional: false,\n strict: true,\n useDefaults: false,\n validateSchema: true,\n });\n\n for (const schema of schemas) {\n if (!isUnknownRecord(schema) || typeof schema.$id !== \"string\" || !schema.$id) {\n throw new Error(\"Every registered JSON Schema requires a stable $id.\");\n }\n ajv.addSchema(schema as AnySchemaObject);\n }\n\n return {\n assert<T>(contract: string, value: T, options: ContractOptions = {}): T {\n const entityKind = options.entityKind ?? entityKinds[contract] ?? contract;\n const result = validateRegisteredSchema(ajv, contract, value, entityKind);\n if (!result.valid) {\n throw new ContractSchemaError({\n code: options.code,\n contract,\n entityKind,\n source: options.source,\n issues: result.errors,\n });\n }\n return value;\n },\n validate(contract: string, value: unknown, options: ContractOptions = {}): ContractValidationResult {\n return validateRegisteredSchema(\n ajv,\n contract,\n value,\n options.entityKind ?? entityKinds[contract] ?? contract,\n );\n },\n };\n}\n\nexport function formatContractIssues(issues: readonly SchemaIssue[]): string[] {\n return issues.map((issue) => `${issue.instance_path}: ${issue.message}`);\n}\n\nexport function normalizeSchemaErrors(errors: readonly ErrorObject[]): SchemaIssue[] {\n return errors\n .map((error) => {\n const instancePath = issuePath(error);\n return {\n code: `schema.${error.keyword}`,\n instance_path: instancePath,\n schema_path: error.schemaPath,\n keyword: error.keyword,\n message: error.message ?? \"is invalid\",\n params: stableParams(error.params),\n };\n })\n .sort(compareSchemaErrors);\n}\n\nfunction validateRegisteredSchema(ajv: Ajv2020, contract: string, value: unknown, entityKind: string): ContractValidationResult {\n const validate = ajv.getSchema(contract);\n if (!validate) {\n throw new Error(`JSON Schema contract is not registered: ${contract}`);\n }\n const valid = validate(value) === true;\n const errors = valid ? [] : normalizeSchemaErrors(validate.errors ?? []);\n return {\n valid,\n code: valid ? null : \"PCR_SCHEMA_INVALID\",\n entity_kind: entityKind,\n schema_id: contract,\n errors,\n // Backward-compatible alias for the earlier internal registry API.\n issues: errors,\n };\n}\n\nfunction compareSchemaErrors(left: SchemaIssue, right: SchemaIssue): number {\n return (\n left.instance_path.localeCompare(right.instance_path) ||\n left.keyword.localeCompare(right.keyword) ||\n left.schema_path.localeCompare(right.schema_path) ||\n left.message.localeCompare(right.message) ||\n JSON.stringify(left.params).localeCompare(JSON.stringify(right.params))\n );\n}\n\nfunction issuePath(error: ErrorObject): string {\n const missingProperty = unknownField(error.params, \"missingProperty\");\n if (error.keyword === \"required\" && missingProperty) {\n const escaped = String(missingProperty)\n .replaceAll(\"~\", \"~0\")\n .replaceAll(\"/\", \"~1\");\n return `${error.instancePath}/${escaped}` || \"/\";\n }\n return error.instancePath || \"/\";\n}\n\nfunction stableClone(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(stableClone);\n }\n if (!value || typeof value !== \"object\") {\n return value;\n }\n return Object.fromEntries(\n Object.keys(value)\n .sort()\n .map((key) => [key, stableClone(unknownField(value, key))]),\n );\n}\n\nfunction stableParams(value: unknown): Record<string, unknown> {\n const cloned = stableClone(value ?? {});\n return isUnknownRecord(cloned) ? cloned : {};\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
// Scope a storage adapter to one consumption request. Repository readers remain
|
|
4
|
+
// authoritative by default; adapters do not become a process-global root cache.
|
|
5
|
+
const sources = new AsyncLocalStorage();
|
|
6
|
+
export function withPcrSource(root, source, callback) {
|
|
7
|
+
return sources.run({ root: path.resolve(root), source }, callback);
|
|
8
|
+
}
|
|
9
|
+
/** Explicit repository selection shadows an enclosing library adapter even when
|
|
10
|
+
* both resolve to the same root. Normal ALS nesting restores the prior binding. */
|
|
11
|
+
export function withRepositoryPcrSource(root, callback) {
|
|
12
|
+
return sources.run({ root: path.resolve(root), source: null }, callback);
|
|
13
|
+
}
|
|
14
|
+
export function pcrSource(root) {
|
|
15
|
+
const current = sources.getStore();
|
|
16
|
+
return current && path.resolve(root) === current.root ? current.source : null;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=source-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-context.js","sourceRoot":"pcr://source/","sources":["packages/pcr-core/src/source-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,gFAAgF;AAChF,gFAAgF;AAChF,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAgE,CAAC;AACtG,MAAM,UAAU,aAAa,CAAI,IAAY,EAAE,MAAiB,EAAE,QAAiB;IACjF,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC;AACD;mFACmF;AACnF,MAAM,UAAU,uBAAuB,CAAI,IAAY,EAAE,QAAiB;IACxE,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC3E,CAAC;AACD,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnC,OAAO,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAChF,CAAC","sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks';\nimport path from 'node:path';\nimport type { PcrSource } from './types.ts';\n\n// Scope a storage adapter to one consumption request. Repository readers remain\n// authoritative by default; adapters do not become a process-global root cache.\nconst sources = new AsyncLocalStorage<{ readonly root: string; readonly source: PcrSource | null }>();\nexport function withPcrSource<T>(root: string, source: PcrSource, callback: () => T): T {\n return sources.run({ root: path.resolve(root), source }, callback);\n}\n/** Explicit repository selection shadows an enclosing library adapter even when\n * both resolve to the same root. Normal ALS nesting restores the prior binding. */\nexport function withRepositoryPcrSource<T>(root: string, callback: () => T): T {\n return sources.run({ root: path.resolve(root), source: null }, callback);\n}\nexport function pcrSource(root: string): PcrSource | null {\n const current = sources.getStore();\n return current && path.resolve(root) === current.root ? current.source : null;\n}\n"]}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { readdirSync, realpathSync, statSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { ConsumptionError, atPointer, entriesAt, object, paginate, pointerToken, preview, readJsonDocument } from "./consumption-data.js";
|
|
4
|
+
import { unknownField, errorMessage, errorCode } from "./types.js";
|
|
5
|
+
// Field paths, not a second TIDAS schema or consumer validation policy.
|
|
6
|
+
// Basis: public-spec candidate 0.2.3, revision f118660dbcbfbf736be74837cce0bf26cd177245.
|
|
7
|
+
const DATASETS = [
|
|
8
|
+
["process", "processDataSet", "processInformation", "process data set"],
|
|
9
|
+
["lifecyclemodel", "lifeCycleModelDataSet", "lifeCycleModelInformation", "life cycle model data set"],
|
|
10
|
+
["flow", "flowDataSet", "flowInformation", "flow data set"],
|
|
11
|
+
["flowproperty", "flowPropertyDataSet", "flowPropertiesInformation", "flow property data set"],
|
|
12
|
+
["unitgroup", "unitGroupDataSet", "unitGroupInformation", "unit group data set"],
|
|
13
|
+
["source", "sourceDataSet", "sourceInformation", "source data set"],
|
|
14
|
+
["contact", "contactDataSet", "contactInformation", "contact data set"],
|
|
15
|
+
["lciamethod", "LCIAMethodDataSet", "LCIAMethodInformation", "LCIA method data set"],
|
|
16
|
+
];
|
|
17
|
+
export const INSPECTION_SECTIONS = ["summary", "exchanges", "instances", "references", "documents"];
|
|
18
|
+
const MAX_DOCUMENTS = 200;
|
|
19
|
+
const MAX_BYTES = 64 * 1024 * 1024;
|
|
20
|
+
function identify(document, required = true) {
|
|
21
|
+
const value = document.value;
|
|
22
|
+
const matches = DATASETS.filter(([, root]) => object(value) && Object.hasOwn(value, root));
|
|
23
|
+
const matched = matches[0];
|
|
24
|
+
const body = matched ? unknownField(value, matched[1]) : undefined;
|
|
25
|
+
if (matches.length !== 1 || !matched || !object(value) || !object(body)) {
|
|
26
|
+
if (!required && matches.length === 0)
|
|
27
|
+
return null;
|
|
28
|
+
throw new ConsumptionError('PCR_TIDAS_SHAPE', `Expected one native TIDAS dataset root in ${document.file}. Wrapped database rows must be exported as native dataset JSON first.`, { roots: DATASETS.map(([, root]) => root) });
|
|
29
|
+
}
|
|
30
|
+
const [kind, root, informationKey, referenceType] = matched;
|
|
31
|
+
const info = body[informationKey];
|
|
32
|
+
const uuid = unknownField(unknownField(info, 'dataSetInformation'), 'common:UUID') ?? null;
|
|
33
|
+
const version = unknownField(unknownField(body.administrativeInformation, 'publicationAndOwnership'), 'common:dataSetVersion') ?? null;
|
|
34
|
+
if ((uuid !== null && typeof uuid !== 'string') || (version !== null && typeof version !== 'string')) {
|
|
35
|
+
throw new ConsumptionError('PCR_TIDAS_IDENTITY', `Dataset UUID/version must be strings when supplied in ${document.file}. Inspect the native identity fields or run the TIDAS format validator.`, {
|
|
36
|
+
uuid_pointer: `/${root}/${informationKey}/dataSetInformation/common:UUID`,
|
|
37
|
+
version_pointer: `/${root}/administrativeInformation/publicationAndOwnership/common:dataSetVersion`,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return { ...document, value, kind, root, informationKey, referenceType, uuid, version };
|
|
41
|
+
}
|
|
42
|
+
export function documentIdentity(doc) {
|
|
43
|
+
return { file: doc.file, sha256: doc.sha256, kind: doc.kind, uuid: doc.uuid, version: doc.version };
|
|
44
|
+
}
|
|
45
|
+
function relatedFiles(directory) {
|
|
46
|
+
const base = path.resolve(directory);
|
|
47
|
+
const files = [];
|
|
48
|
+
try {
|
|
49
|
+
if (!statSync(base).isDirectory())
|
|
50
|
+
throw new Error("not a directory");
|
|
51
|
+
let visited = 0;
|
|
52
|
+
function visit(current, depth) {
|
|
53
|
+
if (depth > 12)
|
|
54
|
+
throw new ConsumptionError("PCR_RELATED_LIMIT", "Related directory nesting exceeds 12 levels. Select a smaller local package.");
|
|
55
|
+
for (const entry of readdirSync(current, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name, "en"))) {
|
|
56
|
+
if (++visited > 5000)
|
|
57
|
+
throw new ConsumptionError("PCR_RELATED_LIMIT", "Related directory exceeds 5000 entries. Select a smaller local package.");
|
|
58
|
+
const file = path.join(current, entry.name);
|
|
59
|
+
if (entry.isSymbolicLink())
|
|
60
|
+
throw new ConsumptionError("PCR_RELATED_SYMLINK", `Related packages must contain ordinary files/directories, not symlinks: ${file}`);
|
|
61
|
+
if (entry.isDirectory())
|
|
62
|
+
visit(file, depth + 1);
|
|
63
|
+
else if (entry.isFile() && entry.name.endsWith(".json")) {
|
|
64
|
+
files.push(file);
|
|
65
|
+
if (files.length > MAX_DOCUMENTS)
|
|
66
|
+
throw new ConsumptionError("PCR_RELATED_LIMIT", `More than ${MAX_DOCUMENTS} JSON files. Select a smaller related package.`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
visit(base, 0);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (error instanceof ConsumptionError)
|
|
74
|
+
throw error;
|
|
75
|
+
throw new ConsumptionError("PCR_RELATED_READ", `Cannot inspect --related directory ${base}: ${errorMessage(error)}`);
|
|
76
|
+
}
|
|
77
|
+
return files;
|
|
78
|
+
}
|
|
79
|
+
export function loadTidasContext({ input, related = null }) {
|
|
80
|
+
const primary = identify(readJsonDocument(input));
|
|
81
|
+
const documents = [primary];
|
|
82
|
+
const ignoredFiles = [];
|
|
83
|
+
let totalBytes = primary.bytes;
|
|
84
|
+
const primaryRealPath = realpathSync(primary.file);
|
|
85
|
+
for (const file of related ? relatedFiles(related) : []) {
|
|
86
|
+
if (realpathSync(file) === primaryRealPath)
|
|
87
|
+
continue;
|
|
88
|
+
const raw = readJsonDocument(file);
|
|
89
|
+
totalBytes += raw.bytes;
|
|
90
|
+
if (totalBytes > MAX_BYTES)
|
|
91
|
+
throw new ConsumptionError("PCR_RELATED_LIMIT", `Related input exceeds ${MAX_BYTES} bytes. Select a smaller local package.`);
|
|
92
|
+
const doc = identify(raw, false);
|
|
93
|
+
if (doc)
|
|
94
|
+
documents.push(doc);
|
|
95
|
+
else
|
|
96
|
+
ignoredFiles.push({ file: raw.file, sha256: raw.sha256, reason: "No recognized native TIDAS dataset root." });
|
|
97
|
+
}
|
|
98
|
+
return { primary, documents, ignoredFiles, related: related ? path.resolve(related) : null };
|
|
99
|
+
}
|
|
100
|
+
export function inputEvidence(doc, pointer) {
|
|
101
|
+
return { file: doc.file, sha256: doc.sha256, pointer };
|
|
102
|
+
}
|
|
103
|
+
export function extractReferences(context) {
|
|
104
|
+
const references = [];
|
|
105
|
+
for (const doc of context.documents) {
|
|
106
|
+
const stack = [{ value: doc.value, pointer: "" }];
|
|
107
|
+
while (stack.length) {
|
|
108
|
+
const current = stack.pop();
|
|
109
|
+
if (!current)
|
|
110
|
+
break;
|
|
111
|
+
const { value, pointer } = current;
|
|
112
|
+
if (value === null || typeof value !== "object")
|
|
113
|
+
continue;
|
|
114
|
+
if (object(value) && (Object.hasOwn(value, "@refObjectId") || (Object.hasOwn(value, "@type") && Object.hasOwn(value, "@uri")))) {
|
|
115
|
+
const uuid = value["@refObjectId"] ?? null;
|
|
116
|
+
const version = value["@version"] ?? null;
|
|
117
|
+
const type = value["@type"] ?? null;
|
|
118
|
+
const kind = DATASETS.find((entry) => entry[3] === type)?.[0];
|
|
119
|
+
const usableIdentity = typeof uuid === "string" && uuid.length > 0 && kind !== undefined
|
|
120
|
+
&& (!Object.hasOwn(value, "@version") || (typeof version === "string" && version.length > 0));
|
|
121
|
+
const sameIdentity = usableIdentity ? context.documents.filter((candidate) => candidate.kind === kind && candidate.uuid === uuid) : [];
|
|
122
|
+
const candidates = sameIdentity.filter((candidate) => version === null || candidate.version === version);
|
|
123
|
+
const status = !usableIdentity ? "unresolved_identity" : candidates.length > 1 ? "ambiguous"
|
|
124
|
+
: candidates.length === 1 ? "resolved" : sameIdentity.length ? "version_mismatch" : "missing";
|
|
125
|
+
references.push({
|
|
126
|
+
source: inputEvidence(doc, pointer), uuid, version, type, uri: value["@uri"] ?? null,
|
|
127
|
+
status, version_selection: version === null ? "unspecified" : "exact",
|
|
128
|
+
candidates: (candidates.length ? candidates : sameIdentity).map(documentIdentity),
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
const entries = Object.entries(value);
|
|
132
|
+
for (let index = entries.length - 1; index >= 0; index -= 1) {
|
|
133
|
+
const entry = entries[index];
|
|
134
|
+
if (!entry)
|
|
135
|
+
continue;
|
|
136
|
+
const [key, child] = entry;
|
|
137
|
+
if (child !== null && typeof child === "object")
|
|
138
|
+
stack.push({ value: child, pointer: `${pointer}/${pointerToken(key)}` });
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return references;
|
|
143
|
+
}
|
|
144
|
+
export function inspectTidas({ input, related, section = "summary", pointer, page = 1, pageSize = 10 }) {
|
|
145
|
+
const context = loadTidasContext({ input, related });
|
|
146
|
+
const { primary } = context;
|
|
147
|
+
const references = extractReferences(context);
|
|
148
|
+
const report = {
|
|
149
|
+
schema_version: 1, inspection_kind: "tiangong-pcr-tidas-inspection",
|
|
150
|
+
primary: documentIdentity(primary), related_directory: context.related,
|
|
151
|
+
schema_validation: "not_performed",
|
|
152
|
+
scope: "Only explicitly supplied local JSON datasets; no URI is fetched or followed.",
|
|
153
|
+
counts: {
|
|
154
|
+
documents: context.documents.length, ignored_json_files: context.ignoredFiles.length,
|
|
155
|
+
references: references.length, resolved: references.filter((ref) => ref.status === "resolved").length,
|
|
156
|
+
unresolved: references.filter((ref) => ref.status !== "resolved").length,
|
|
157
|
+
},
|
|
158
|
+
limitations: [
|
|
159
|
+
"Inspection exposes fields and local references; it does not establish TIDAS validity or PCR compliance.",
|
|
160
|
+
"Missing local evidence is not proof that a lifecycle operation or upstream dataset does not exist.",
|
|
161
|
+
"Exchange units require flow, flow-property and unit-group evidence; names or amounts alone do not establish units.",
|
|
162
|
+
],
|
|
163
|
+
};
|
|
164
|
+
if (pointer !== undefined) {
|
|
165
|
+
return { ...report, section: "pointer", source: inputEvidence(primary, pointer), value: atPointer(primary.value, pointer) };
|
|
166
|
+
}
|
|
167
|
+
if (!INSPECTION_SECTIONS.includes(section))
|
|
168
|
+
throw new ConsumptionError("PCR_INSPECT_SECTION", `Use --section ${INSPECTION_SECTIONS.join("|")}.`);
|
|
169
|
+
if (section === "summary") {
|
|
170
|
+
const infoPath = `/${primary.root}/${primary.informationKey}`;
|
|
171
|
+
const info = unknownField(primary.value[primary.root], primary.informationKey) ?? {};
|
|
172
|
+
const fields = ["dataSetInformation", "quantitativeReference", "time", "geography", "technology"]
|
|
173
|
+
.filter((key) => object(info) && Object.hasOwn(info, key))
|
|
174
|
+
.map((key) => ({ name: key, source: inputEvidence(primary, `${infoPath}/${key}`), ...preview(unknownField(info, key)) }));
|
|
175
|
+
return { ...report, section, fields, ignored_files: context.ignoredFiles.slice(0, 10), ignored_files_truncated: context.ignoredFiles.length > 10 };
|
|
176
|
+
}
|
|
177
|
+
if (section === 'documents')
|
|
178
|
+
return { ...report, section, ...paginate(context.documents.map(documentIdentity), page, pageSize) };
|
|
179
|
+
if (section === 'references')
|
|
180
|
+
return { ...report, section, ...paginate(references, page, pageSize) };
|
|
181
|
+
if (section !== 'exchanges' && section !== 'instances')
|
|
182
|
+
throw new ConsumptionError('PCR_INSPECT_SECTION', `Use --section ${INSPECTION_SECTIONS.join('|')}.`);
|
|
183
|
+
{
|
|
184
|
+
const expectedKind = section === "exchanges" ? "process" : "lifecyclemodel";
|
|
185
|
+
if (primary.kind !== expectedKind)
|
|
186
|
+
throw new ConsumptionError("PCR_INSPECT_SECTION", `${section} requires a ${expectedKind} input. Use --section summary or --pointer for this ${primary.kind}.`);
|
|
187
|
+
const pointer = section === "exchanges" ? "/processDataSet/exchanges/exchange"
|
|
188
|
+
: "/lifeCycleModelDataSet/lifeCycleModelInformation/technology/processes/processInstance";
|
|
189
|
+
let value;
|
|
190
|
+
try {
|
|
191
|
+
value = atPointer(primary.value, pointer);
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (errorCode(error) !== "PCR_POINTER_NOT_FOUND")
|
|
195
|
+
throw error;
|
|
196
|
+
}
|
|
197
|
+
const items = entriesAt(value, pointer).map((entry) => ({ source: inputEvidence(primary, entry.pointer), ...preview(entry.value) }));
|
|
198
|
+
return { ...report, section, ...paginate(items, page, pageSize) };
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=tidas-inspection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tidas-inspection.js","sourceRoot":"pcr://source/","sources":["packages/pcr-core/src/tidas-inspection.ts"],"names":[],"mappings":"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","sourcesContent":["import { readdirSync, realpathSync, statSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { ConsumptionError, atPointer, entriesAt, object, paginate, pointerToken, preview, readJsonDocument } from \"./consumption-data.ts\";\nimport type { JsonDocument, Preview, Pagination } from \"./consumption-data.ts\";\nimport { unknownField, errorMessage, errorCode, type UnknownRecord } from \"./types.ts\";\n\n// Field paths, not a second TIDAS schema or consumer validation policy.\n// Basis: public-spec candidate 0.2.3, revision f118660dbcbfbf736be74837cce0bf26cd177245.\nconst DATASETS = [\n [\"process\", \"processDataSet\", \"processInformation\", \"process data set\"],\n [\"lifecyclemodel\", \"lifeCycleModelDataSet\", \"lifeCycleModelInformation\", \"life cycle model data set\"],\n [\"flow\", \"flowDataSet\", \"flowInformation\", \"flow data set\"],\n [\"flowproperty\", \"flowPropertyDataSet\", \"flowPropertiesInformation\", \"flow property data set\"],\n [\"unitgroup\", \"unitGroupDataSet\", \"unitGroupInformation\", \"unit group data set\"],\n [\"source\", \"sourceDataSet\", \"sourceInformation\", \"source data set\"],\n [\"contact\", \"contactDataSet\", \"contactInformation\", \"contact data set\"],\n [\"lciamethod\", \"LCIAMethodDataSet\", \"LCIAMethodInformation\", \"LCIA method data set\"],\n] as const;\nexport const INSPECTION_SECTIONS = [\"summary\", \"exchanges\", \"instances\", \"references\", \"documents\"];\nconst MAX_DOCUMENTS = 200;\nconst MAX_BYTES = 64 * 1024 * 1024;\n\nexport type TidasKind = typeof DATASETS[number][0];\nexport interface InspectedDocument extends JsonDocument {\n readonly value: UnknownRecord;\n readonly kind: TidasKind;\n readonly root: string;\n readonly informationKey: string;\n readonly referenceType: string;\n readonly uuid: string | null;\n readonly version: string | null;\n}\nexport interface DocumentIdentity { readonly file: string; readonly sha256: string; readonly kind: TidasKind; readonly uuid: string | null; readonly version: string | null }\nexport interface InputEvidence { readonly file: string; readonly sha256: string; readonly pointer: string }\nexport interface TidasContext {\n readonly primary: InspectedDocument;\n readonly documents: InspectedDocument[];\n readonly ignoredFiles: { file: string; sha256: string; reason: string }[];\n readonly related: string | null;\n}\nexport interface TidasReference {\n readonly source: InputEvidence;\n readonly uuid: unknown;\n readonly version: unknown;\n readonly type: unknown;\n readonly uri: unknown;\n readonly status: 'unresolved_identity' | 'ambiguous' | 'resolved' | 'version_mismatch' | 'missing';\n readonly version_selection: 'unspecified' | 'exact';\n readonly candidates: DocumentIdentity[];\n}\nfunction identify(document: JsonDocument, required?: true): InspectedDocument;\nfunction identify(document: JsonDocument, required: false): InspectedDocument | null;\nfunction identify(document: JsonDocument, required = true): InspectedDocument | null {\n const value = document.value;\n const matches = DATASETS.filter(([, root]) => object(value) && Object.hasOwn(value, root));\n const matched = matches[0];\n const body = matched ? unknownField(value, matched[1]) : undefined;\n if (matches.length !== 1 || !matched || !object(value) || !object(body)) {\n if (!required && matches.length === 0) return null;\n throw new ConsumptionError('PCR_TIDAS_SHAPE', `Expected one native TIDAS dataset root in ${document.file}. Wrapped database rows must be exported as native dataset JSON first.`, { roots: DATASETS.map(([, root]) => root) });\n }\n const [kind, root, informationKey, referenceType] = matched;\n const info = body[informationKey];\n const uuid = unknownField(unknownField(info, 'dataSetInformation'), 'common:UUID') ?? null;\n const version = unknownField(unknownField(body.administrativeInformation, 'publicationAndOwnership'), 'common:dataSetVersion') ?? null;\n if ((uuid !== null && typeof uuid !== 'string') || (version !== null && typeof version !== 'string')) {\n throw new ConsumptionError('PCR_TIDAS_IDENTITY', `Dataset UUID/version must be strings when supplied in ${document.file}. Inspect the native identity fields or run the TIDAS format validator.`, {\n uuid_pointer: `/${root}/${informationKey}/dataSetInformation/common:UUID`,\n version_pointer: `/${root}/administrativeInformation/publicationAndOwnership/common:dataSetVersion`,\n });\n }\n return { ...document, value, kind, root, informationKey, referenceType, uuid, version };\n}\n\nexport function documentIdentity(doc: InspectedDocument): DocumentIdentity {\n return { file: doc.file, sha256: doc.sha256, kind: doc.kind, uuid: doc.uuid, version: doc.version };\n}\n\nfunction relatedFiles(directory: string): string[] {\n const base = path.resolve(directory);\n const files: string[] = [];\n try {\n if (!statSync(base).isDirectory()) throw new Error(\"not a directory\");\n let visited = 0;\n function visit(current: string, depth: number): void {\n if (depth > 12) throw new ConsumptionError(\"PCR_RELATED_LIMIT\", \"Related directory nesting exceeds 12 levels. Select a smaller local package.\");\n for (const entry of readdirSync(current, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name, \"en\"))) {\n if (++visited > 5000) throw new ConsumptionError(\"PCR_RELATED_LIMIT\", \"Related directory exceeds 5000 entries. Select a smaller local package.\");\n const file = path.join(current, entry.name);\n if (entry.isSymbolicLink()) throw new ConsumptionError(\"PCR_RELATED_SYMLINK\", `Related packages must contain ordinary files/directories, not symlinks: ${file}`);\n if (entry.isDirectory()) visit(file, depth + 1);\n else if (entry.isFile() && entry.name.endsWith(\".json\")) {\n files.push(file);\n if (files.length > MAX_DOCUMENTS) throw new ConsumptionError(\"PCR_RELATED_LIMIT\", `More than ${MAX_DOCUMENTS} JSON files. Select a smaller related package.`);\n }\n }\n }\n visit(base, 0);\n } catch (error: unknown) {\n if (error instanceof ConsumptionError) throw error;\n throw new ConsumptionError(\"PCR_RELATED_READ\", `Cannot inspect --related directory ${base}: ${errorMessage(error)}`);\n }\n return files;\n}\n\nexport function loadTidasContext({ input, related = null }: { input: string; related?: string | null | undefined }): TidasContext {\n const primary = identify(readJsonDocument(input));\n const documents = [primary];\n const ignoredFiles: TidasContext[\"ignoredFiles\"] = [];\n let totalBytes = primary.bytes;\n const primaryRealPath = realpathSync(primary.file);\n for (const file of related ? relatedFiles(related) : []) {\n if (realpathSync(file) === primaryRealPath) continue;\n const raw = readJsonDocument(file);\n totalBytes += raw.bytes;\n if (totalBytes > MAX_BYTES) throw new ConsumptionError(\"PCR_RELATED_LIMIT\", `Related input exceeds ${MAX_BYTES} bytes. Select a smaller local package.`);\n const doc = identify(raw, false);\n if (doc) documents.push(doc);\n else ignoredFiles.push({ file: raw.file, sha256: raw.sha256, reason: \"No recognized native TIDAS dataset root.\" });\n }\n return { primary, documents, ignoredFiles, related: related ? path.resolve(related) : null };\n}\n\nexport function inputEvidence(doc: Pick<InspectedDocument, \"file\" | \"sha256\">, pointer: string): InputEvidence {\n return { file: doc.file, sha256: doc.sha256, pointer };\n}\n\nexport function extractReferences(context: TidasContext): TidasReference[] {\n const references: TidasReference[] = [];\n for (const doc of context.documents) {\n const stack: { value: unknown; pointer: string }[] = [{ value: doc.value, pointer: \"\" }];\n while (stack.length) {\n const current = stack.pop();\n if (!current) break;\n const { value, pointer } = current;\n if (value === null || typeof value !== \"object\") continue;\n if (object(value) && (Object.hasOwn(value, \"@refObjectId\") || (Object.hasOwn(value, \"@type\") && Object.hasOwn(value, \"@uri\")))) {\n const uuid = value[\"@refObjectId\"] ?? null;\n const version = value[\"@version\"] ?? null;\n const type = value[\"@type\"] ?? null;\n const kind = DATASETS.find((entry) => entry[3] === type)?.[0];\n const usableIdentity = typeof uuid === \"string\" && uuid.length > 0 && kind !== undefined\n && (!Object.hasOwn(value, \"@version\") || (typeof version === \"string\" && version.length > 0));\n const sameIdentity = usableIdentity ? context.documents.filter((candidate) => candidate.kind === kind && candidate.uuid === uuid) : [];\n const candidates = sameIdentity.filter((candidate) => version === null || candidate.version === version);\n const status = !usableIdentity ? \"unresolved_identity\" : candidates.length > 1 ? \"ambiguous\"\n : candidates.length === 1 ? \"resolved\" : sameIdentity.length ? \"version_mismatch\" : \"missing\";\n references.push({\n source: inputEvidence(doc, pointer), uuid, version, type, uri: value[\"@uri\"] ?? null,\n status, version_selection: version === null ? \"unspecified\" : \"exact\",\n candidates: (candidates.length ? candidates : sameIdentity).map(documentIdentity),\n });\n }\n const entries = Object.entries(value);\n for (let index = entries.length - 1; index >= 0; index -= 1) {\n const entry = entries[index];\n if (!entry) continue;\n const [key, child]: [string, unknown] = entry;\n if (child !== null && typeof child === \"object\") stack.push({ value: child, pointer: `${pointer}/${pointerToken(key)}` });\n }\n }\n }\n return references;\n}\n\nexport interface InspectionOptions { input: string; related?: string | null; section?: string; pointer?: string; page?: unknown; pageSize?: unknown }\nexport interface InspectionBase {\n schema_version: 1;\n inspection_kind: 'tiangong-pcr-tidas-inspection';\n primary: DocumentIdentity;\n related_directory: string | null;\n schema_validation: 'not_performed';\n scope: string;\n counts: { documents: number; ignored_json_files: number; references: number; resolved: number; unresolved: number };\n limitations: string[];\n}\nexport interface PointerInspection extends InspectionBase { section: 'pointer'; source: InputEvidence; value: unknown }\nexport interface SummaryInspection extends InspectionBase {\n section: 'summary'; fields: ({ name: string; source: InputEvidence } & Preview<unknown>)[];\n ignored_files: TidasContext['ignoredFiles']; ignored_files_truncated: boolean;\n}\nexport type PagedInspection<T, S extends string> = InspectionBase & { section: S; items: T[]; pagination: Pagination };\nexport type SelectedItem = { source: InputEvidence } & Preview<unknown>;\nexport type TidasInspection = PointerInspection | SummaryInspection | PagedInspection<DocumentIdentity, 'documents'>\n | PagedInspection<TidasReference, 'references'> | PagedInspection<SelectedItem, 'exchanges' | 'instances'>;\nexport function inspectTidas(options: InspectionOptions & { pointer: string }): PointerInspection;\nexport function inspectTidas(options: InspectionOptions & { section: 'documents'; pointer?: never }): PagedInspection<DocumentIdentity, 'documents'>;\nexport function inspectTidas(options: InspectionOptions & { section: 'references'; pointer?: never }): PagedInspection<TidasReference, 'references'>;\nexport function inspectTidas(options: InspectionOptions & { section: 'exchanges' | 'instances'; pointer?: never }): PagedInspection<SelectedItem, 'exchanges' | 'instances'>;\nexport function inspectTidas(options: InspectionOptions & { section?: 'summary'; pointer?: never }): SummaryInspection;\nexport function inspectTidas(options: InspectionOptions): TidasInspection;\nexport function inspectTidas({ input, related, section = \"summary\", pointer, page = 1, pageSize = 10 }: InspectionOptions): TidasInspection {\n const context = loadTidasContext({ input, related });\n const { primary } = context;\n const references = extractReferences(context);\n const report: InspectionBase = {\n schema_version: 1, inspection_kind: \"tiangong-pcr-tidas-inspection\",\n primary: documentIdentity(primary), related_directory: context.related,\n schema_validation: \"not_performed\",\n scope: \"Only explicitly supplied local JSON datasets; no URI is fetched or followed.\",\n counts: {\n documents: context.documents.length, ignored_json_files: context.ignoredFiles.length,\n references: references.length, resolved: references.filter((ref) => ref.status === \"resolved\").length,\n unresolved: references.filter((ref) => ref.status !== \"resolved\").length,\n },\n limitations: [\n \"Inspection exposes fields and local references; it does not establish TIDAS validity or PCR compliance.\",\n \"Missing local evidence is not proof that a lifecycle operation or upstream dataset does not exist.\",\n \"Exchange units require flow, flow-property and unit-group evidence; names or amounts alone do not establish units.\",\n ],\n };\n if (pointer !== undefined) {\n return { ...report, section: \"pointer\", source: inputEvidence(primary, pointer), value: atPointer(primary.value, pointer) };\n }\n if (!INSPECTION_SECTIONS.includes(section)) throw new ConsumptionError(\"PCR_INSPECT_SECTION\", `Use --section ${INSPECTION_SECTIONS.join(\"|\")}.`);\n if (section === \"summary\") {\n const infoPath = `/${primary.root}/${primary.informationKey}`;\n const info = unknownField(primary.value[primary.root], primary.informationKey) ?? {};\n const fields = [\"dataSetInformation\", \"quantitativeReference\", \"time\", \"geography\", \"technology\"]\n .filter((key) => object(info) && Object.hasOwn(info, key))\n .map((key) => ({ name: key, source: inputEvidence(primary, `${infoPath}/${key}`), ...preview(unknownField(info, key)) }));\n return { ...report, section, fields, ignored_files: context.ignoredFiles.slice(0, 10), ignored_files_truncated: context.ignoredFiles.length > 10 };\n }\n if (section === 'documents') return { ...report, section, ...paginate(context.documents.map(documentIdentity), page, pageSize) };\n if (section === 'references') return { ...report, section, ...paginate(references, page, pageSize) };\n if (section !== 'exchanges' && section !== 'instances') throw new ConsumptionError('PCR_INSPECT_SECTION', `Use --section ${INSPECTION_SECTIONS.join('|')}.`);\n {\n const expectedKind = section === \"exchanges\" ? \"process\" : \"lifecyclemodel\";\n if (primary.kind !== expectedKind) throw new ConsumptionError(\"PCR_INSPECT_SECTION\", `${section} requires a ${expectedKind} input. Use --section summary or --pointer for this ${primary.kind}.`);\n const pointer = section === \"exchanges\" ? \"/processDataSet/exchanges/exchange\"\n : \"/lifeCycleModelDataSet/lifeCycleModelInformation/technology/processes/processInstance\";\n let value;\n try { value = atPointer(primary.value, pointer); }\n catch (error: unknown) { if (errorCode(error) !== \"PCR_POINTER_NOT_FOUND\") throw error; }\n const items = entriesAt(value, pointer).map((entry) => ({ source: inputEvidence(primary, entry.pointer), ...preview(entry.value) }));\n return { ...report, section, ...paginate(items, page, pageSize) };\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function isUnknownRecord(value) {
|
|
2
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
3
|
+
}
|
|
4
|
+
export function unknownField(value, key) {
|
|
5
|
+
return value !== null && typeof value === 'object' ? value[key] : undefined;
|
|
6
|
+
}
|
|
7
|
+
export function errorMessage(error) { return error instanceof Error ? error.message : String(error); }
|
|
8
|
+
export function errorCode(error) {
|
|
9
|
+
const code = unknownField(error, 'code');
|
|
10
|
+
return typeof code === 'string' ? code : 'UNKNOWN';
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"pcr://source/","sources":["packages/pcr-core/src/types.ts"],"names":[],"mappings":"AAuLA,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,GAAW;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjG,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,KAAc,IAAY,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/F,CAAC","sourcesContent":["import type { ProjectionIntegrityState, ProjectionIntegrityStatus } from './projection-integrity.ts';\nimport type { NormativeProjectionContext, NormativeRule } from './compiler/normative-projection.ts';\nimport type { GuidanceContextEnvelope } from './compiler/guidance-context.ts';\nimport type { PcrIdAlias } from './pcr-id-aliases.ts';\nimport type { CoverageSnapshot } from './classification-coverage.ts';\nexport type { PcrIdAlias } from './pcr-id-aliases.ts';\nexport type { CoverageSnapshot } from './classification-coverage.ts';\n\n/** Open object fields remain unknown where the public schema promises only an\n * object. These DTOs describe validated outputs, never unchecked JSON/TIDAS data. */\nexport type UnknownRecord = Record<string, unknown>;\nexport interface ContractIssue { code: string; message: string }\nexport interface SchemaIssue extends ContractIssue {\n instance_path: string;\n schema_path: string;\n keyword: string;\n params: UnknownRecord;\n}\nexport interface ContractOptions { code?: string; entityKind?: string; source?: string | null }\nexport interface ContractValidationResult {\n valid: boolean;\n code: string | null;\n entity_kind: string;\n schema_id: string;\n errors: SchemaIssue[];\n issues: SchemaIssue[];\n}\nexport interface SchemaRegistry {\n assert<T>(contract: string, value: T, options?: ContractOptions): T;\n validate(contract: string, value: unknown, options?: ContractOptions): ContractValidationResult;\n}\nexport interface ReadinessFingerprint extends Omit<ProjectionIntegrityState, 'status'> {\n status: ProjectionIntegrityStatus | 'source_missing';\n schema_valid: boolean | null;\n}\nexport interface Readiness {\n status: 'ready' | 'review_required' | 'unavailable';\n lifecycle_status: string;\n methodology_status: string;\n structured_projection_available: boolean;\n projection_fingerprint: ReadinessFingerprint;\n usable_for_guidance: boolean;\n usable_for_validation: boolean;\n blockers: ContractIssue[];\n warnings: ContractIssue[];\n}\nexport interface PcrLanguages { canonical?: string; available?: string[] }\n/** Manifest metadata is an external authoring document; callers validate/narrow\n * each required field rather than silently assigning it the consumer DTO. */\nexport type PcrManifest = UnknownRecord;\nexport type PcrCatalogScope = 'material' | 'legacy' | 'all';\nexport type PcrRecordKind = 'methodology' | 'legacy_scaffold_reference' | 'invalid_lifecycle_state';\nexport interface PcrRecord {\n id: string;\n path: string;\n title: Record<string, string | null>;\n status: string;\n version: string | null;\n content_maturity: string | null;\n languages: PcrLanguages;\n translation_status: Record<string, string>;\n classification_refs: UnknownRecord[];\n record_kind: PcrRecordKind;\n readiness: Readiness;\n}\nexport interface CatalogEntry { id: string; path: string; manifestPath: string }\nexport interface CapturedArtifact { bytes: Buffer | null; error?: unknown }\nexport interface CapturedPcrSnapshot {\n manifest: PcrManifest;\n manifestBytes: Buffer;\n artifacts: Record<string, CapturedArtifact>;\n}\nexport interface ProjectionMetadata {\n contract_version: '1' | '2';\n generator: string;\n canonical_markdown: { path: string; normalization: string; hash_algorithm: string; sha256: string };\n generated_content_sha256: string;\n}\nexport interface ProjectionFields {\n generated_from: string;\n source_markdown: string;\n product_category_identity: UnknownRecord;\n functional_unit: UnknownRecord;\n system_boundary: { rules: NormativeRule[] };\n boundary_abstraction: UnknownRecord;\n reference_flow_definition: UnknownRecord;\n measurement_rules: UnknownRecord[];\n process_map: UnknownRecord[];\n process_inventory: UnknownRecord[];\n dataset_production: { collection_protocols: UnknownRecord[]; calculation_rules: UnknownRecord[]; data_quality_requirements: UnknownRecord[] };\n published_dataset_profile: UnknownRecord;\n allocation_rules: NormativeRule[];\n validation_rules: NormativeRule[];\n data_sources: UnknownRecord[];\n data_quality_rules?: UnknownRecord[];\n unit_conventions?: UnknownRecord[];\n projection_metadata: ProjectionMetadata;\n}\nexport type StructuredProjection = ProjectionFields & (\n | { schema_version: 1; normative_context?: never }\n | { schema_version: 2; normative_context: NormativeProjectionContext }\n);\nexport interface CurrentPcrSnapshot extends CapturedPcrSnapshot {\n pcr: PcrRecord;\n fingerprint: ReadinessFingerprint;\n structured: StructuredProjection | null;\n structuredPath: string;\n structuredAvailable: boolean;\n completenessIssues: ContractIssue[];\n}\nexport interface VerifiedPcrProjection extends GuidanceContextEnvelope {\n pcr: PcrRecord;\n readiness: Readiness;\n source_structured: string;\n structured: StructuredProjection;\n}\nexport interface CompleteGuidance extends GuidanceContextEnvelope {\n schema_version: 2;\n guidance_kind: 'tiangong-pcr-agent-guidance';\n pcr: PcrRecord;\n readiness: Readiness;\n source_structured: string;\n system_boundary: { rules: NormativeRule[] };\n reference_flow: UnknownRecord;\n boundary_abstraction: UnknownRecord;\n measurement_rules: UnknownRecord[];\n process_map: UnknownRecord[];\n process_inventory: UnknownRecord[];\n production_guidance: { collection_protocols: UnknownRecord[]; calculation_rules: UnknownRecord[]; data_quality_requirements: UnknownRecord[] };\n published_dataset_profile: UnknownRecord;\n allocation_rules: NormativeRule[];\n data_quality_rules: UnknownRecord[];\n validation_rules: NormativeRule[];\n data_sources: UnknownRecord[];\n validation_notes: string[];\n}\nexport type FindingSeverity = 'error' | 'warning' | 'info';\nexport interface ValidationFinding extends ContractIssue { severity: FindingSeverity }\nexport interface PerformedCheck { check_id: string; requirement_family: string; requirement_count: number; evaluated_requirement_count: number }\nexport interface SkippedCheck { check_id: string; requirement_family: string; requirement_count: number; reason: string }\nexport interface ValidationReport {\n schema_version: 1;\n validation_kind: 'tiangong-pcr-model-validation' | 'tiangong-pcr-dataset-validation';\n pcr: UnknownRecord | PcrRecord;\n readiness: Readiness;\n validation_status: 'passed' | 'failed' | 'inconclusive';\n completeness: 'none' | 'partial' | 'complete';\n input: { input_kind: string; representation: string; accepted: boolean; collection_record_count?: number; distinct_protocol_id_count?: number };\n check_coverage: { total_requirement_count: number; checked_requirement_count: number; skipped_requirement_count: number; checks_performed: PerformedCheck[]; checks_skipped: SkippedCheck[] };\n finding_count: number;\n finding_summary: Record<FindingSeverity, number>;\n findings: ValidationFinding[];\n}\nexport interface OfflineSnapshot {\n available_languages: string[];\n content_version: string;\n source_commit: string;\n source_sha256: string;\n records: number;\n material_records: number;\n aliases: number;\n original_bytes: number;\n}\nexport interface OfflineManifest {\n kind: 'tiangong-pcr-library';\n format_version: 1;\n snapshot: OfflineSnapshot;\n bytes: number;\n sha256: string;\n index_sha256: Record<'records' | 'aliases' | 'coverage' | 'files', string>;\n}\n/** Storage-only interface; repository consistency and library integrity remain\n * enforced by their owning implementations and the current snapshot reader. */\nexport interface PcrSource {\n readonly root: string;\n readonly languages: readonly string[];\n listPcrs(scope: PcrCatalogScope): PcrRecord[];\n entry(id: unknown): CatalogEntry | null;\n findAlias(id: unknown): PcrIdAlias | null;\n readFile(key: string): Buffer;\n snapshotFiles(entry: CatalogEntry): CapturedPcrSnapshot;\n coverageSnapshot(system: unknown, version: unknown): CoverageSnapshot;\n}\nexport function isUnknownRecord(value: unknown): value is UnknownRecord {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\nexport function unknownField(value: unknown, key: string): unknown {\n return value !== null && typeof value === 'object' ? (value as UnknownRecord)[key] : undefined;\n}\nexport function errorMessage(error: unknown): string { return error instanceof Error ? error.message : String(error); }\nexport function errorCode(error: unknown): string {\n const code = unknownField(error, 'code'); return typeof code === 'string' ? code : 'UNKNOWN';\n}\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { isUnknownRecord, unknownField } from './types.js';
|
|
3
|
+
// The generated schema and generated JS derive from the same authored YAML.
|
|
4
|
+
// Read the typed data boundary directly; no hand-copied tokens or declaration
|
|
5
|
+
// file can pretend that an unchecked generated module has a verified type.
|
|
6
|
+
const schema = JSON.parse(readFileSync(new URL('../schemas/controlled-vocabulary.schema.json', import.meta.url), 'utf8'));
|
|
7
|
+
const definitions = unknownField(schema, '$defs');
|
|
8
|
+
if (!isUnknownRecord(definitions))
|
|
9
|
+
throw new Error('Invalid generated controlled vocabulary definitions.');
|
|
10
|
+
function values(key) {
|
|
11
|
+
const entries = unknownField(unknownField(definitions, key), 'enum');
|
|
12
|
+
if (!Array.isArray(entries) || entries.length === 0 || !entries.every((entry) => typeof entry === 'string' && entry.length > 0)) {
|
|
13
|
+
throw new Error(`Invalid generated controlled vocabulary definition: ${key}.`);
|
|
14
|
+
}
|
|
15
|
+
const strings = entries;
|
|
16
|
+
if (new Set(strings).size !== strings.length)
|
|
17
|
+
throw new Error(`Duplicate generated controlled vocabulary token: ${key}.`);
|
|
18
|
+
return Object.freeze([...strings]);
|
|
19
|
+
}
|
|
20
|
+
export const AMOUNT_RANGE_ROLE_VALUES = values('amount_range_role');
|
|
21
|
+
export const AMOUNT_SPECIFICITY_VALUES = values('amount_specificity');
|
|
22
|
+
export const AMOUNT_VALUE_MODE_VALUES = values('amount_value_mode');
|
|
23
|
+
export const BASIS_KIND_VALUES = values('basis_kind');
|
|
24
|
+
export const CLASSIFICATION_COVERAGE_STATUS_VALUES = values('classification_coverage_status');
|
|
25
|
+
export const CLASSIFICATION_MAPPING_RELATION_VALUES = values('classification_mapping_relation');
|
|
26
|
+
export const CONTENT_MATURITY_VALUES = values('content_maturity');
|
|
27
|
+
export const EVIDENCE_KIND_VALUES = values('evidence_kind');
|
|
28
|
+
export const FEEDBACK_CONFIDENCE_VALUES = values('feedback_confidence');
|
|
29
|
+
export const FEEDBACK_TYPE_VALUES = values('feedback_type');
|
|
30
|
+
export const FLOW_DIRECTION_VALUES = values('flow_direction');
|
|
31
|
+
export const FLOW_TYPE_VALUES = values('flow_type');
|
|
32
|
+
export const PCR_STATUS_VALUES = values('pcr_status');
|
|
33
|
+
export const PROCESS_INCLUSION_VALUES = values('process_inclusion');
|
|
34
|
+
export const SOURCE_TYPE_VALUES = values('source_type');
|
|
35
|
+
export const TARGET_ENTITY_VALUES = values('target_entity');
|
|
36
|
+
export const TRANSLATION_STATUS_VALUES = values('translation_status');
|
|
37
|
+
export const CONTROLLED_VOCABULARY = Object.freeze({
|
|
38
|
+
amount_range_role: AMOUNT_RANGE_ROLE_VALUES, amount_specificity: AMOUNT_SPECIFICITY_VALUES,
|
|
39
|
+
amount_value_mode: AMOUNT_VALUE_MODE_VALUES, basis_kind: BASIS_KIND_VALUES,
|
|
40
|
+
classification_coverage_status: CLASSIFICATION_COVERAGE_STATUS_VALUES,
|
|
41
|
+
classification_mapping_relation: CLASSIFICATION_MAPPING_RELATION_VALUES, content_maturity: CONTENT_MATURITY_VALUES,
|
|
42
|
+
evidence_kind: EVIDENCE_KIND_VALUES, feedback_confidence: FEEDBACK_CONFIDENCE_VALUES, feedback_type: FEEDBACK_TYPE_VALUES,
|
|
43
|
+
flow_direction: FLOW_DIRECTION_VALUES, flow_type: FLOW_TYPE_VALUES, pcr_status: PCR_STATUS_VALUES,
|
|
44
|
+
process_inclusion: PROCESS_INCLUSION_VALUES, source_type: SOURCE_TYPE_VALUES, target_entity: TARGET_ENTITY_VALUES,
|
|
45
|
+
translation_status: TRANSLATION_STATUS_VALUES,
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=vocabulary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vocabulary.js","sourceRoot":"pcr://source/","sources":["packages/pcr-core/src/vocabulary.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFileSync } from 'node:fs';\nimport { isUnknownRecord, unknownField } from './types.ts';\n\n// The generated schema and generated JS derive from the same authored YAML.\n// Read the typed data boundary directly; no hand-copied tokens or declaration\n// file can pretend that an unchecked generated module has a verified type.\nconst schema: unknown = JSON.parse(readFileSync(new URL('../schemas/controlled-vocabulary.schema.json', import.meta.url), 'utf8'));\nconst definitions = unknownField(schema, '$defs');\nif (!isUnknownRecord(definitions)) throw new Error('Invalid generated controlled vocabulary definitions.');\nfunction values(key: string): readonly string[] {\n const entries: unknown = unknownField(unknownField(definitions, key), 'enum');\n if (!Array.isArray(entries) || entries.length === 0 || !entries.every((entry: unknown) => typeof entry === 'string' && entry.length > 0)) {\n throw new Error(`Invalid generated controlled vocabulary definition: ${key}.`);\n }\n const strings = entries as string[];\n if (new Set(strings).size !== strings.length) throw new Error(`Duplicate generated controlled vocabulary token: ${key}.`);\n return Object.freeze([...strings]);\n}\nexport const AMOUNT_RANGE_ROLE_VALUES = values('amount_range_role');\nexport const AMOUNT_SPECIFICITY_VALUES = values('amount_specificity');\nexport const AMOUNT_VALUE_MODE_VALUES = values('amount_value_mode');\nexport const BASIS_KIND_VALUES = values('basis_kind');\nexport const CLASSIFICATION_COVERAGE_STATUS_VALUES = values('classification_coverage_status');\nexport const CLASSIFICATION_MAPPING_RELATION_VALUES = values('classification_mapping_relation');\nexport const CONTENT_MATURITY_VALUES = values('content_maturity');\nexport const EVIDENCE_KIND_VALUES = values('evidence_kind');\nexport const FEEDBACK_CONFIDENCE_VALUES = values('feedback_confidence');\nexport const FEEDBACK_TYPE_VALUES = values('feedback_type');\nexport const FLOW_DIRECTION_VALUES = values('flow_direction');\nexport const FLOW_TYPE_VALUES = values('flow_type');\nexport const PCR_STATUS_VALUES = values('pcr_status');\nexport const PROCESS_INCLUSION_VALUES = values('process_inclusion');\nexport const SOURCE_TYPE_VALUES = values('source_type');\nexport const TARGET_ENTITY_VALUES = values('target_entity');\nexport const TRANSLATION_STATUS_VALUES = values('translation_status');\nexport const CONTROLLED_VOCABULARY = Object.freeze({\n amount_range_role: AMOUNT_RANGE_ROLE_VALUES, amount_specificity: AMOUNT_SPECIFICITY_VALUES,\n amount_value_mode: AMOUNT_VALUE_MODE_VALUES, basis_kind: BASIS_KIND_VALUES,\n classification_coverage_status: CLASSIFICATION_COVERAGE_STATUS_VALUES,\n classification_mapping_relation: CLASSIFICATION_MAPPING_RELATION_VALUES, content_maturity: CONTENT_MATURITY_VALUES,\n evidence_kind: EVIDENCE_KIND_VALUES, feedback_confidence: FEEDBACK_CONFIDENCE_VALUES, feedback_type: FEEDBACK_TYPE_VALUES,\n flow_direction: FLOW_DIRECTION_VALUES, flow_type: FLOW_TYPE_VALUES, pcr_status: PCR_STATUS_VALUES,\n process_inclusion: PROCESS_INCLUSION_VALUES, source_type: SOURCE_TYPE_VALUES, target_entity: TARGET_ENTITY_VALUES,\n translation_status: TRANSLATION_STATUS_VALUES,\n});\n"]}
|