@feiyoug/skill-lab 0.0.1 → 0.0.2
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 +20 -21
- package/esm/analyzer/astgrep/client.d.ts +20 -8
- package/esm/analyzer/astgrep/client.d.ts.map +1 -1
- package/esm/analyzer/astgrep/client.js +58 -31
- package/esm/analyzer/config/default.d.ts +8 -0
- package/esm/analyzer/config/default.d.ts.map +1 -0
- package/esm/analyzer/config/default.js +91 -0
- package/esm/analyzer/config/helpers.d.ts +8 -0
- package/esm/analyzer/config/helpers.d.ts.map +1 -0
- package/esm/analyzer/config/helpers.js +72 -0
- package/esm/analyzer/config/mod.d.ts +4 -0
- package/esm/analyzer/config/mod.d.ts.map +1 -0
- package/esm/analyzer/config/mod.js +3 -0
- package/esm/analyzer/config/types.d.ts +58 -0
- package/esm/analyzer/config/types.d.ts.map +1 -0
- package/esm/analyzer/{config.js → config/types.js} +0 -28
- package/esm/analyzer/logging.d.ts +3 -0
- package/esm/analyzer/logging.d.ts.map +1 -0
- package/esm/analyzer/logging.js +6 -0
- package/esm/analyzer/mod.d.ts +12 -5
- package/esm/analyzer/mod.d.ts.map +1 -1
- package/esm/analyzer/mod.js +25 -12
- package/esm/analyzer/result.d.ts +35 -0
- package/esm/analyzer/result.d.ts.map +1 -0
- package/esm/analyzer/result.js +311 -0
- package/esm/analyzer/rules/bash/commands/mod.d.ts +1 -0
- package/esm/analyzer/rules/bash/commands/mod.d.ts.map +1 -1
- package/esm/analyzer/rules/bash/commands/mod.js +3 -0
- package/esm/analyzer/rules/bash/commands/pip.d.ts +3 -0
- package/esm/analyzer/rules/bash/commands/pip.d.ts.map +1 -0
- package/esm/analyzer/rules/bash/commands/pip.js +14 -0
- package/esm/analyzer/rules/bash/extractFileRefs.d.ts +1 -1
- package/esm/analyzer/rules/bash/extractFileRefs.d.ts.map +1 -1
- package/esm/analyzer/rules/bash/extractFileRefs.js +2 -2
- package/esm/analyzer/rules/bash/inline-command-classifier.d.ts +1 -1
- package/esm/analyzer/rules/bash/inline-command-classifier.d.ts.map +1 -1
- package/esm/analyzer/rules/bash/inline-command-classifier.js +4 -4
- package/esm/analyzer/rules/javascript/extractFileRefs.d.ts +3 -4
- package/esm/analyzer/rules/javascript/extractFileRefs.d.ts.map +1 -1
- package/esm/analyzer/rules/javascript/extractFileRefs.js +3 -4
- package/esm/analyzer/rules/markdown/extractCodeBlocks.d.ts.map +1 -1
- package/esm/analyzer/rules/markdown/extractCodeBlocks.js +6 -3
- package/esm/analyzer/rules/markdown/extractFileRefs.d.ts.map +1 -1
- package/esm/analyzer/rules/markdown/extractFileRefs.js +2 -0
- package/esm/analyzer/rules/python/extractFileRefs.d.ts +1 -1
- package/esm/analyzer/rules/python/extractFileRefs.d.ts.map +1 -1
- package/esm/analyzer/rules/python/extractFileRefs.js +2 -2
- package/esm/analyzer/steps/001-discovery/discover-files.d.ts +4 -0
- package/esm/analyzer/steps/001-discovery/discover-files.d.ts.map +1 -1
- package/esm/analyzer/steps/001-discovery/discover-files.js +18 -2
- package/esm/analyzer/steps/001-discovery/mod.d.ts.map +1 -1
- package/esm/analyzer/steps/001-discovery/mod.js +39 -9
- package/esm/analyzer/steps/002-permissions/mod.d.ts.map +1 -1
- package/esm/analyzer/steps/002-permissions/mod.js +156 -73
- package/esm/analyzer/steps/002-permissions/scan-file.d.ts +1 -1
- package/esm/analyzer/steps/002-permissions/scan-file.d.ts.map +1 -1
- package/esm/analyzer/steps/002-permissions/scan-file.js +40 -5
- package/esm/analyzer/steps/002-permissions/seed-frontmatter.js +2 -2
- package/esm/analyzer/steps/003-risks/dep-risks.d.ts +3 -0
- package/esm/analyzer/steps/003-risks/dep-risks.d.ts.map +1 -0
- package/esm/analyzer/steps/003-risks/dep-risks.js +74 -0
- package/esm/analyzer/steps/003-risks/helpers.d.ts +1 -0
- package/esm/analyzer/steps/003-risks/helpers.d.ts.map +1 -1
- package/esm/analyzer/steps/003-risks/helpers.js +1 -0
- package/esm/analyzer/steps/003-risks/mod.d.ts +3 -2
- package/esm/analyzer/steps/003-risks/mod.d.ts.map +1 -1
- package/esm/analyzer/steps/003-risks/mod.js +41 -4
- package/esm/analyzer/steps/003-risks/policy.d.ts +7 -0
- package/esm/analyzer/steps/003-risks/policy.d.ts.map +1 -0
- package/esm/analyzer/steps/003-risks/policy.js +23 -0
- package/esm/analyzer/steps/003-risks/rule-mapped.d.ts +2 -2
- package/esm/analyzer/steps/003-risks/rule-mapped.d.ts.map +1 -1
- package/esm/analyzer/steps/003-risks/rule-mapped.js +83 -2
- package/esm/analyzer/steps/003-risks/scoring.d.ts +9 -1
- package/esm/analyzer/steps/003-risks/scoring.d.ts.map +1 -1
- package/esm/analyzer/steps/003-risks/scoring.js +55 -42
- package/esm/analyzer/treesitter/client.d.ts +31 -0
- package/esm/analyzer/treesitter/client.d.ts.map +1 -0
- package/esm/analyzer/{treesiter → treesitter}/client.js +43 -39
- package/esm/analyzer/treesitter/registry.d.ts +73 -0
- package/esm/analyzer/treesitter/registry.d.ts.map +1 -0
- package/esm/analyzer/treesitter/registry.js +165 -0
- package/esm/analyzer/types.d.ts +14 -28
- package/esm/analyzer/types.d.ts.map +1 -1
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/deps.d.ts +3 -0
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/deps.d.ts.map +1 -0
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/deps.js +3 -0
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/mod.d.ts +93 -0
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/mod.d.ts.map +1 -0
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/mod.js +297 -0
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/multi.d.ts +84 -0
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/multi.d.ts.map +1 -0
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/multi.js +268 -0
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/time.d.ts +18 -0
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/time.d.ts.map +1 -0
- package/esm/deps/jsr.io/@deno-library/progress/1.5.1/time.js +45 -0
- package/esm/deps/jsr.io/@std/fmt/1.0.3/colors.d.ts +700 -0
- package/esm/deps/jsr.io/@std/fmt/1.0.3/colors.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fmt/1.0.3/colors.js +903 -0
- package/esm/deps/jsr.io/@std/io/0.225.0/types.d.ts +146 -0
- package/esm/deps/jsr.io/@std/io/0.225.0/types.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.0/types.js +15 -0
- package/esm/deps/jsr.io/@std/io/0.225.0/write_all.d.ts +51 -0
- package/esm/deps/jsr.io/@std/io/0.225.0/write_all.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.0/write_all.js +61 -0
- package/esm/shared/deep_merge.d.ts +12 -0
- package/esm/shared/deep_merge.d.ts.map +1 -0
- package/esm/shared/deep_merge.js +49 -0
- package/esm/shared/mod.d.ts +1 -0
- package/esm/shared/mod.d.ts.map +1 -1
- package/esm/shared/mod.js +1 -0
- package/esm/shared/types/filetypes.d.ts +2 -2
- package/esm/shared/types/filetypes.d.ts.map +1 -1
- package/esm/shared/types/permissions.d.ts +1 -1
- package/esm/shared/types/permissions.d.ts.map +1 -1
- package/esm/shared/types/risks.d.ts +4 -1
- package/esm/shared/types/risks.d.ts.map +1 -1
- package/esm/skillreader/types.d.ts +2 -2
- package/esm/skillreader/types.d.ts.map +1 -1
- package/esm/skillreader/types.js +2 -2
- package/package.json +1 -1
- package/script/analyzer/astgrep/client.d.ts +20 -8
- package/script/analyzer/astgrep/client.d.ts.map +1 -1
- package/script/analyzer/astgrep/client.js +58 -64
- package/script/analyzer/config/default.d.ts +8 -0
- package/script/analyzer/config/default.d.ts.map +1 -0
- package/script/analyzer/config/default.js +94 -0
- package/script/analyzer/config/helpers.d.ts +8 -0
- package/script/analyzer/config/helpers.d.ts.map +1 -0
- package/script/analyzer/config/helpers.js +76 -0
- package/script/analyzer/config/mod.d.ts +4 -0
- package/script/analyzer/config/mod.d.ts.map +1 -0
- package/script/analyzer/config/mod.js +21 -0
- package/script/analyzer/config/types.d.ts +58 -0
- package/script/analyzer/config/types.d.ts.map +1 -0
- package/script/analyzer/{config.js → config/types.js} +1 -29
- package/script/analyzer/logging.d.ts +3 -0
- package/script/analyzer/logging.d.ts.map +1 -0
- package/script/analyzer/logging.js +9 -0
- package/script/analyzer/mod.d.ts +12 -5
- package/script/analyzer/mod.d.ts.map +1 -1
- package/script/analyzer/mod.js +35 -20
- package/script/analyzer/result.d.ts +35 -0
- package/script/analyzer/result.d.ts.map +1 -0
- package/script/analyzer/result.js +315 -0
- package/script/analyzer/rules/bash/commands/mod.d.ts +1 -0
- package/script/analyzer/rules/bash/commands/mod.d.ts.map +1 -1
- package/script/analyzer/rules/bash/commands/mod.js +3 -0
- package/script/analyzer/rules/bash/commands/pip.d.ts +3 -0
- package/script/analyzer/rules/bash/commands/pip.d.ts.map +1 -0
- package/script/analyzer/rules/bash/commands/pip.js +17 -0
- package/script/analyzer/rules/bash/extractFileRefs.d.ts +1 -1
- package/script/analyzer/rules/bash/extractFileRefs.d.ts.map +1 -1
- package/script/analyzer/rules/bash/extractFileRefs.js +2 -2
- package/script/analyzer/rules/bash/inline-command-classifier.d.ts +1 -1
- package/script/analyzer/rules/bash/inline-command-classifier.d.ts.map +1 -1
- package/script/analyzer/rules/bash/inline-command-classifier.js +4 -4
- package/script/analyzer/rules/javascript/extractFileRefs.d.ts +3 -4
- package/script/analyzer/rules/javascript/extractFileRefs.d.ts.map +1 -1
- package/script/analyzer/rules/javascript/extractFileRefs.js +3 -4
- package/script/analyzer/rules/markdown/extractCodeBlocks.d.ts.map +1 -1
- package/script/analyzer/rules/markdown/extractCodeBlocks.js +6 -3
- package/script/analyzer/rules/markdown/extractFileRefs.d.ts.map +1 -1
- package/script/analyzer/rules/markdown/extractFileRefs.js +2 -0
- package/script/analyzer/rules/python/extractFileRefs.d.ts +1 -1
- package/script/analyzer/rules/python/extractFileRefs.d.ts.map +1 -1
- package/script/analyzer/rules/python/extractFileRefs.js +2 -2
- package/script/analyzer/steps/001-discovery/discover-files.d.ts +4 -0
- package/script/analyzer/steps/001-discovery/discover-files.d.ts.map +1 -1
- package/script/analyzer/steps/001-discovery/discover-files.js +18 -2
- package/script/analyzer/steps/001-discovery/mod.d.ts.map +1 -1
- package/script/analyzer/steps/001-discovery/mod.js +77 -11
- package/script/analyzer/steps/002-permissions/mod.d.ts.map +1 -1
- package/script/analyzer/steps/002-permissions/mod.js +194 -75
- package/script/analyzer/steps/002-permissions/scan-file.d.ts +1 -1
- package/script/analyzer/steps/002-permissions/scan-file.d.ts.map +1 -1
- package/script/analyzer/steps/002-permissions/scan-file.js +40 -5
- package/script/analyzer/steps/002-permissions/seed-frontmatter.js +3 -3
- package/script/analyzer/steps/003-risks/dep-risks.d.ts +3 -0
- package/script/analyzer/steps/003-risks/dep-risks.d.ts.map +1 -0
- package/script/analyzer/steps/003-risks/dep-risks.js +77 -0
- package/script/analyzer/steps/003-risks/helpers.d.ts +1 -0
- package/script/analyzer/steps/003-risks/helpers.d.ts.map +1 -1
- package/script/analyzer/steps/003-risks/helpers.js +1 -0
- package/script/analyzer/steps/003-risks/mod.d.ts +3 -2
- package/script/analyzer/steps/003-risks/mod.d.ts.map +1 -1
- package/script/analyzer/steps/003-risks/mod.js +77 -4
- package/script/analyzer/steps/003-risks/policy.d.ts +7 -0
- package/script/analyzer/steps/003-risks/policy.d.ts.map +1 -0
- package/script/analyzer/steps/003-risks/policy.js +29 -0
- package/script/analyzer/steps/003-risks/rule-mapped.d.ts +2 -2
- package/script/analyzer/steps/003-risks/rule-mapped.d.ts.map +1 -1
- package/script/analyzer/steps/003-risks/rule-mapped.js +83 -2
- package/script/analyzer/steps/003-risks/scoring.d.ts +9 -1
- package/script/analyzer/steps/003-risks/scoring.d.ts.map +1 -1
- package/script/analyzer/steps/003-risks/scoring.js +55 -42
- package/script/analyzer/treesitter/client.d.ts +31 -0
- package/script/analyzer/treesitter/client.d.ts.map +1 -0
- package/script/analyzer/treesitter/client.js +136 -0
- package/script/analyzer/treesitter/registry.d.ts +73 -0
- package/script/analyzer/treesitter/registry.d.ts.map +1 -0
- package/script/analyzer/treesitter/registry.js +206 -0
- package/script/analyzer/types.d.ts +14 -28
- package/script/analyzer/types.d.ts.map +1 -1
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/deps.d.ts +3 -0
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/deps.d.ts.map +1 -0
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/deps.js +10 -0
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/mod.d.ts +93 -0
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/mod.d.ts.map +1 -0
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/mod.js +334 -0
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/multi.d.ts +84 -0
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/multi.d.ts.map +1 -0
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/multi.js +305 -0
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/time.d.ts +18 -0
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/time.d.ts.map +1 -0
- package/script/deps/jsr.io/@deno-library/progress/1.5.1/time.js +48 -0
- package/script/deps/jsr.io/@std/fmt/1.0.3/colors.d.ts +700 -0
- package/script/deps/jsr.io/@std/fmt/1.0.3/colors.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fmt/1.0.3/colors.js +986 -0
- package/script/deps/jsr.io/@std/io/0.225.0/types.d.ts +146 -0
- package/script/deps/jsr.io/@std/io/0.225.0/types.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.0/types.js +18 -0
- package/script/deps/jsr.io/@std/io/0.225.0/write_all.d.ts +51 -0
- package/script/deps/jsr.io/@std/io/0.225.0/write_all.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.0/write_all.js +65 -0
- package/script/shared/deep_merge.d.ts +12 -0
- package/script/shared/deep_merge.d.ts.map +1 -0
- package/script/shared/deep_merge.js +53 -0
- package/script/shared/mod.d.ts +1 -0
- package/script/shared/mod.d.ts.map +1 -1
- package/script/shared/mod.js +1 -0
- package/script/shared/types/filetypes.d.ts +2 -2
- package/script/shared/types/filetypes.d.ts.map +1 -1
- package/script/shared/types/permissions.d.ts +1 -1
- package/script/shared/types/permissions.d.ts.map +1 -1
- package/script/shared/types/risks.d.ts +4 -1
- package/script/shared/types/risks.d.ts.map +1 -1
- package/script/skillreader/types.d.ts +2 -2
- package/script/skillreader/types.d.ts.map +1 -1
- package/script/skillreader/types.js +2 -2
- package/src/_dnt.polyfills.ts +27 -0
- package/src/_dnt.shims.ts +64 -0
- package/src/analyzer/astgrep/client.ts +184 -0
- package/src/analyzer/astgrep/mod.ts +2 -0
- package/src/analyzer/config/default.ts +98 -0
- package/src/analyzer/config/helpers.ts +107 -0
- package/src/analyzer/config/mod.ts +3 -0
- package/src/analyzer/config/types.ts +103 -0
- package/src/analyzer/logging.ts +8 -0
- package/src/analyzer/mod.ts +118 -0
- package/src/analyzer/result.ts +393 -0
- package/src/analyzer/rules/bash/astTypes.ts +5 -0
- package/src/analyzer/rules/bash/commands/bd.ts +23 -0
- package/src/analyzer/rules/bash/commands/cron.ts +21 -0
- package/src/analyzer/rules/bash/commands/docker.ts +37 -0
- package/src/analyzer/rules/bash/commands/eval.ts +52 -0
- package/src/analyzer/rules/bash/commands/generic.ts +16 -0
- package/src/analyzer/rules/bash/commands/gh.ts +21 -0
- package/src/analyzer/rules/bash/commands/git.ts +28 -0
- package/src/analyzer/rules/bash/commands/mod.ts +38 -0
- package/src/analyzer/rules/bash/commands/node.ts +64 -0
- package/src/analyzer/rules/bash/commands/openspec.ts +16 -0
- package/src/analyzer/rules/bash/commands/pip.ts +16 -0
- package/src/analyzer/rules/bash/commands/sudo.ts +21 -0
- package/src/analyzer/rules/bash/destructive.ts +28 -0
- package/src/analyzer/rules/bash/extractFileRefs.ts +101 -0
- package/src/analyzer/rules/bash/filesystem.ts +50 -0
- package/src/analyzer/rules/bash/injection.ts +21 -0
- package/src/analyzer/rules/bash/inline-command-classifier.ts +94 -0
- package/src/analyzer/rules/bash/mod.ts +23 -0
- package/src/analyzer/rules/bash/network.ts +64 -0
- package/src/analyzer/rules/bash/secret-detection.ts +43 -0
- package/src/analyzer/rules/javascript/astTypes.ts +8 -0
- package/src/analyzer/rules/javascript/extractFileRefs.ts +131 -0
- package/src/analyzer/rules/javascript/filesystem.ts +28 -0
- package/src/analyzer/rules/javascript/injection.ts +21 -0
- package/src/analyzer/rules/javascript/mod.ts +26 -0
- package/src/analyzer/rules/javascript/network.ts +27 -0
- package/src/analyzer/rules/javascript/secret-detection.ts +68 -0
- package/src/analyzer/rules/javascript/subprocess.ts +16 -0
- package/src/analyzer/rules/markdown/astTypes.ts +35 -0
- package/src/analyzer/rules/markdown/extractCodeBlocks.ts +101 -0
- package/src/analyzer/rules/markdown/extractFileRefs.ts +179 -0
- package/src/analyzer/rules/markdown/mod.ts +12 -0
- package/src/analyzer/rules/mod.ts +77 -0
- package/src/analyzer/rules/python/astTypes.ts +9 -0
- package/src/analyzer/rules/python/extractFileRefs.ts +92 -0
- package/src/analyzer/rules/python/mod.ts +15 -0
- package/src/analyzer/rules/python/network.ts +26 -0
- package/src/analyzer/rules/python/secret-detection.ts +30 -0
- package/src/analyzer/rules/shared/file-refs.ts +38 -0
- package/src/analyzer/rules/shared/network-evaluators.ts +107 -0
- package/src/analyzer/rules/shared/prompt-injection.ts +48 -0
- package/src/analyzer/rules/shared/secret-evaluators.ts +13 -0
- package/src/analyzer/rules/text/mod.ts +12 -0
- package/src/analyzer/rules/typescript/mod.ts +7 -0
- package/src/analyzer/steps/001-discovery/discover-files.ts +211 -0
- package/src/analyzer/steps/001-discovery/filter-files.ts +72 -0
- package/src/analyzer/steps/001-discovery/mod.ts +103 -0
- package/src/analyzer/steps/002-permissions/mod.ts +329 -0
- package/src/analyzer/steps/002-permissions/scan-file.ts +258 -0
- package/src/analyzer/steps/002-permissions/seed-frontmatter.ts +66 -0
- package/src/analyzer/steps/002-permissions/synthesize.ts +42 -0
- package/src/analyzer/steps/003-risks/dep-risks.ts +89 -0
- package/src/analyzer/steps/003-risks/helpers.ts +41 -0
- package/src/analyzer/steps/003-risks/mod.ts +86 -0
- package/src/analyzer/steps/003-risks/policy.ts +38 -0
- package/src/analyzer/steps/003-risks/rule-mapped.ts +206 -0
- package/src/analyzer/steps/003-risks/scoring.ts +117 -0
- package/src/analyzer/steps/mod.ts +3 -0
- package/src/analyzer/treesitter/client.ts +120 -0
- package/src/analyzer/treesitter/registry.ts +198 -0
- package/src/analyzer/types.ts +78 -0
- package/src/analyzer/utils/code-block-path.ts +33 -0
- package/src/analyzer/utils/id-generator.ts +59 -0
- package/src/analyzer/utils/secret-validator.ts +29 -0
- package/src/analyzer/utils/url-parser.ts +25 -0
- package/src/deps/jsr.io/@deno-library/progress/1.5.1/deps.ts +3 -0
- package/src/deps/jsr.io/@deno-library/progress/1.5.1/mod.ts +265 -0
- package/src/deps/jsr.io/@deno-library/progress/1.5.1/multi.ts +250 -0
- package/src/deps/jsr.io/@deno-library/progress/1.5.1/time.ts +69 -0
- package/src/deps/jsr.io/@std/fmt/1.0.3/colors.ts +1004 -0
- package/src/deps/jsr.io/@std/internal/1.0.12/_os.ts +15 -0
- package/src/deps/jsr.io/@std/internal/1.0.12/os.ts +7 -0
- package/src/deps/jsr.io/@std/io/0.225.0/types.ts +157 -0
- package/src/deps/jsr.io/@std/io/0.225.0/write_all.ts +65 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/assert_path.ts +10 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/basename.ts +53 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/common.ts +26 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/constants.ts +49 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/dirname.ts +9 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/format.ts +25 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/from_file_url.ts +12 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/glob_to_reg_exp.ts +295 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/normalize.ts +9 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/normalize_string.ts +74 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/relative.ts +10 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/strip_trailing_separators.ts +25 -0
- package/src/deps/jsr.io/@std/path/1.1.4/_common/to_file_url.ts +17 -0
- package/src/deps/jsr.io/@std/path/1.1.4/basename.ts +37 -0
- package/src/deps/jsr.io/@std/path/1.1.4/common.ts +35 -0
- package/src/deps/jsr.io/@std/path/1.1.4/constants.ts +18 -0
- package/src/deps/jsr.io/@std/path/1.1.4/dirname.ts +30 -0
- package/src/deps/jsr.io/@std/path/1.1.4/extname.ts +29 -0
- package/src/deps/jsr.io/@std/path/1.1.4/format.ts +30 -0
- package/src/deps/jsr.io/@std/path/1.1.4/from_file_url.ts +30 -0
- package/src/deps/jsr.io/@std/path/1.1.4/glob_to_regexp.ts +94 -0
- package/src/deps/jsr.io/@std/path/1.1.4/is_absolute.ts +30 -0
- package/src/deps/jsr.io/@std/path/1.1.4/is_glob.ts +49 -0
- package/src/deps/jsr.io/@std/path/1.1.4/join.ts +31 -0
- package/src/deps/jsr.io/@std/path/1.1.4/join_globs.ts +42 -0
- package/src/deps/jsr.io/@std/path/1.1.4/mod.ts +217 -0
- package/src/deps/jsr.io/@std/path/1.1.4/normalize.ts +33 -0
- package/src/deps/jsr.io/@std/path/1.1.4/normalize_glob.ts +45 -0
- package/src/deps/jsr.io/@std/path/1.1.4/parse.ts +44 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/_util.ts +10 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/basename.ts +62 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/constants.ts +15 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/dirname.ts +72 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/extname.ts +96 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/format.ts +31 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/from_file_url.ts +25 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/glob_to_regexp.ts +94 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/is_absolute.ts +25 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/join.ts +46 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/join_globs.ts +45 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/normalize.ts +63 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/normalize_glob.ts +43 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/parse.ts +121 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/relative.ts +103 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/resolve.ts +71 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/to_file_url.ts +32 -0
- package/src/deps/jsr.io/@std/path/1.1.4/posix/to_namespaced_path.ts +21 -0
- package/src/deps/jsr.io/@std/path/1.1.4/relative.ts +32 -0
- package/src/deps/jsr.io/@std/path/1.1.4/resolve.ts +32 -0
- package/src/deps/jsr.io/@std/path/1.1.4/to_file_url.ts +30 -0
- package/src/deps/jsr.io/@std/path/1.1.4/to_namespaced_path.ts +31 -0
- package/src/deps/jsr.io/@std/path/1.1.4/types.ts +40 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/_util.ts +28 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/basename.ts +54 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/constants.ts +15 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/dirname.ts +118 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/extname.ts +90 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/format.ts +31 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/from_file_url.ts +34 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/glob_to_regexp.ts +92 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/is_absolute.ts +40 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/join.ts +78 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/join_globs.ts +46 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/normalize.ts +136 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/normalize_glob.ts +43 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/parse.ts +184 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/relative.ts +128 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/resolve.ts +178 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/to_file_url.ts +38 -0
- package/src/deps/jsr.io/@std/path/1.1.4/windows/to_namespaced_path.ts +60 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_chars.ts +55 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_dumper_state.ts +841 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_loader_state.ts +1780 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_schema.ts +183 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/binary.ts +127 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/bool.ts +37 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/float.ts +112 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/int.ts +174 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/map.ts +17 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/merge.ts +13 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/nil.ts +27 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/omap.ts +30 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/pairs.ts +22 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/regexp.ts +33 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/seq.ts +13 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/set.ts +17 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/str.ts +12 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/timestamp.ts +101 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type/undefined.ts +23 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_type.ts +49 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/_utils.ts +16 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/mod.ts +54 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/parse.ts +128 -0
- package/src/deps/jsr.io/@std/yaml/1.0.11/stringify.ts +118 -0
- package/src/shared/deep_merge.ts +73 -0
- package/src/shared/mod.ts +2 -0
- package/src/shared/types/filetypes.ts +101 -0
- package/src/shared/types/findings.ts +7 -0
- package/src/shared/types/mod.ts +6 -0
- package/src/shared/types/permissions.ts +17 -0
- package/src/shared/types/references.ts +62 -0
- package/src/shared/types/risks.ts +72 -0
- package/src/shared/types/syntaxNode.ts +7 -0
- package/src/skillreader/cloudStorage/mod.ts +170 -0
- package/src/skillreader/factory.ts +71 -0
- package/src/skillreader/fs/git.ts +153 -0
- package/src/skillreader/fs/mod.ts +84 -0
- package/src/skillreader/github/base.ts +162 -0
- package/src/skillreader/github/githubApi.ts +40 -0
- package/src/skillreader/github/githubRaw.ts +24 -0
- package/src/skillreader/github/mod.ts +45 -0
- package/src/skillreader/github/utils.ts +40 -0
- package/src/skillreader/manifest.ts +67 -0
- package/src/skillreader/mod.ts +26 -0
- package/src/skillreader/types.ts +150 -0
- package/src/skillreader/utils/frontmatter-parser.ts +72 -0
- package/src/skillreader/utils/http-range.ts +38 -0
- package/src/skillreader/utils/mod.ts +12 -0
- package/esm/analyzer/astgrep/registry.d.ts +0 -18
- package/esm/analyzer/astgrep/registry.d.ts.map +0 -1
- package/esm/analyzer/astgrep/registry.js +0 -71
- package/esm/analyzer/config.d.ts +0 -27
- package/esm/analyzer/config.d.ts.map +0 -1
- package/esm/analyzer/steps/003-risks/output.d.ts +0 -3
- package/esm/analyzer/steps/003-risks/output.d.ts.map +0 -1
- package/esm/analyzer/steps/003-risks/output.js +0 -16
- package/esm/analyzer/treesiter/client.d.ts +0 -26
- package/esm/analyzer/treesiter/client.d.ts.map +0 -1
- package/script/analyzer/astgrep/registry.d.ts +0 -18
- package/script/analyzer/astgrep/registry.d.ts.map +0 -1
- package/script/analyzer/astgrep/registry.js +0 -109
- package/script/analyzer/config.d.ts +0 -27
- package/script/analyzer/config.d.ts.map +0 -1
- package/script/analyzer/steps/003-risks/output.d.ts +0 -3
- package/script/analyzer/steps/003-risks/output.d.ts.map +0 -1
- package/script/analyzer/steps/003-risks/output.js +0 -19
- package/script/analyzer/treesiter/client.d.ts +0 -26
- package/script/analyzer/treesiter/client.d.ts.map +0 -1
- package/script/analyzer/treesiter/client.js +0 -165
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
// Ported from js-yaml v3.13.1:
|
|
2
|
+
// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
|
|
3
|
+
// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
|
|
4
|
+
// Copyright 2018-2026 the Deno authors. MIT license.
|
|
5
|
+
// This module is browser compatible.
|
|
6
|
+
|
|
7
|
+
import type { KindType, Type } from "./_type.js";
|
|
8
|
+
import { binary } from "./_type/binary.js";
|
|
9
|
+
import { bool } from "./_type/bool.js";
|
|
10
|
+
import { float } from "./_type/float.js";
|
|
11
|
+
import { int } from "./_type/int.js";
|
|
12
|
+
import { map } from "./_type/map.js";
|
|
13
|
+
import { merge } from "./_type/merge.js";
|
|
14
|
+
import { nil } from "./_type/nil.js";
|
|
15
|
+
import { omap } from "./_type/omap.js";
|
|
16
|
+
import { pairs } from "./_type/pairs.js";
|
|
17
|
+
import { regexp } from "./_type/regexp.js";
|
|
18
|
+
import { seq } from "./_type/seq.js";
|
|
19
|
+
import { set } from "./_type/set.js";
|
|
20
|
+
import { str } from "./_type/str.js";
|
|
21
|
+
import { timestamp } from "./_type/timestamp.js";
|
|
22
|
+
import { undefinedType } from "./_type/undefined.js";
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Name of the schema to use.
|
|
26
|
+
*
|
|
27
|
+
* > [!NOTE]
|
|
28
|
+
* > It is recommended to use the schema that is most appropriate for your use
|
|
29
|
+
* > case. Doing so will avoid any unnecessary processing and benefit
|
|
30
|
+
* > performance.
|
|
31
|
+
*
|
|
32
|
+
* Options include:
|
|
33
|
+
* - `failsafe`: supports generic mappings, generic sequences and generic
|
|
34
|
+
* strings.
|
|
35
|
+
* - `json`: extends `failsafe` schema by also supporting nulls, booleans,
|
|
36
|
+
* integers and floats.
|
|
37
|
+
* - `core`: functionally the same as `json` schema.
|
|
38
|
+
* - `default`: extends `core` schema by also supporting binary, omap, pairs and
|
|
39
|
+
* set types.
|
|
40
|
+
* - `extended`: extends `default` schema by also supporting regular
|
|
41
|
+
* expressions and undefined values.
|
|
42
|
+
*
|
|
43
|
+
* See
|
|
44
|
+
* {@link https://yaml.org/spec/1.2.2/#chapter-10-recommended-schemas | YAML 1.2 spec}
|
|
45
|
+
* for more details on the `failsafe`, `json` and `core` schemas.
|
|
46
|
+
*/
|
|
47
|
+
export type SchemaType = "failsafe" | "json" | "core" | "default" | "extended";
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* A type that can be implicitly resolved (i.e. without using a tag) when
|
|
51
|
+
* loading a YAML document.
|
|
52
|
+
*/
|
|
53
|
+
export type ImplicitType = Type<"scalar">;
|
|
54
|
+
export type ExplicitType = Type<KindType>;
|
|
55
|
+
|
|
56
|
+
export type TypeMap = Record<
|
|
57
|
+
KindType | "fallback",
|
|
58
|
+
Map<string, ExplicitType>
|
|
59
|
+
>;
|
|
60
|
+
|
|
61
|
+
function createTypeMap(
|
|
62
|
+
implicitTypes: ImplicitType[],
|
|
63
|
+
explicitTypes: ExplicitType[],
|
|
64
|
+
): TypeMap {
|
|
65
|
+
const result: TypeMap = {
|
|
66
|
+
fallback: new Map(),
|
|
67
|
+
mapping: new Map(),
|
|
68
|
+
scalar: new Map(),
|
|
69
|
+
sequence: new Map(),
|
|
70
|
+
};
|
|
71
|
+
const fallbackMap = result.fallback;
|
|
72
|
+
for (const type of [...implicitTypes, ...explicitTypes]) {
|
|
73
|
+
const map = result[type.kind];
|
|
74
|
+
map.set(type.tag, type);
|
|
75
|
+
fallbackMap.set(type.tag, type);
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface Schema {
|
|
81
|
+
implicitTypes: ImplicitType[];
|
|
82
|
+
explicitTypes: ExplicitType[];
|
|
83
|
+
typeMap: TypeMap;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function createSchema({ explicitTypes = [], implicitTypes = [], include }: {
|
|
87
|
+
implicitTypes?: ImplicitType[];
|
|
88
|
+
explicitTypes?: ExplicitType[];
|
|
89
|
+
include?: Schema;
|
|
90
|
+
}): Schema {
|
|
91
|
+
if (include) {
|
|
92
|
+
implicitTypes.push(...include.implicitTypes);
|
|
93
|
+
explicitTypes.push(...include.explicitTypes);
|
|
94
|
+
}
|
|
95
|
+
const typeMap = createTypeMap(implicitTypes, explicitTypes);
|
|
96
|
+
return { implicitTypes, explicitTypes, typeMap };
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Standard YAML's failsafe schema.
|
|
101
|
+
*
|
|
102
|
+
* @see {@link http://www.yaml.org/spec/1.2/spec.html#id2802346}
|
|
103
|
+
*/
|
|
104
|
+
const FAILSAFE_SCHEMA = createSchema({
|
|
105
|
+
explicitTypes: [str, seq, map],
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Standard YAML's JSON schema.
|
|
110
|
+
*
|
|
111
|
+
* @see {@link http://www.yaml.org/spec/1.2/spec.html#id2803231}
|
|
112
|
+
*/
|
|
113
|
+
const JSON_SCHEMA = createSchema({
|
|
114
|
+
implicitTypes: [nil, bool, int, float],
|
|
115
|
+
include: FAILSAFE_SCHEMA,
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Standard YAML's core schema.
|
|
120
|
+
*
|
|
121
|
+
* @see {@link http://www.yaml.org/spec/1.2/spec.html#id2804923}
|
|
122
|
+
*/
|
|
123
|
+
const CORE_SCHEMA = createSchema({
|
|
124
|
+
include: JSON_SCHEMA,
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Default YAML schema. It is not described in the YAML specification.
|
|
129
|
+
*/
|
|
130
|
+
export const DEFAULT_SCHEMA = createSchema({
|
|
131
|
+
explicitTypes: [binary, omap, pairs, set],
|
|
132
|
+
implicitTypes: [timestamp, merge],
|
|
133
|
+
include: CORE_SCHEMA,
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
/***
|
|
137
|
+
* Extends JS-YAML default schema with additional JavaScript types
|
|
138
|
+
* It is not described in the YAML specification.
|
|
139
|
+
* Functions are no longer supported for security reasons.
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```ts
|
|
143
|
+
* import { parse } from "@std/yaml";
|
|
144
|
+
*
|
|
145
|
+
* const data = parse(
|
|
146
|
+
* `
|
|
147
|
+
* regexp:
|
|
148
|
+
* simple: !!js/regexp foobar
|
|
149
|
+
* modifiers: !!js/regexp /foobar/mi
|
|
150
|
+
* undefined: !!js/undefined ~
|
|
151
|
+
* `,
|
|
152
|
+
* { schema: "extended" },
|
|
153
|
+
* );
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
const EXTENDED_SCHEMA = createSchema({
|
|
157
|
+
explicitTypes: [regexp, undefinedType],
|
|
158
|
+
include: DEFAULT_SCHEMA,
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
export const SCHEMA_MAP = new Map<SchemaType, Schema>([
|
|
162
|
+
["core", CORE_SCHEMA],
|
|
163
|
+
["default", DEFAULT_SCHEMA],
|
|
164
|
+
["failsafe", FAILSAFE_SCHEMA],
|
|
165
|
+
["json", JSON_SCHEMA],
|
|
166
|
+
["extended", EXTENDED_SCHEMA],
|
|
167
|
+
]);
|
|
168
|
+
|
|
169
|
+
export function getSchema(
|
|
170
|
+
schema: SchemaType = "default",
|
|
171
|
+
types?: ImplicitType[],
|
|
172
|
+
): Schema {
|
|
173
|
+
const schemaObj = SCHEMA_MAP.get(schema)!;
|
|
174
|
+
|
|
175
|
+
if (!types) {
|
|
176
|
+
return schemaObj;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return createSchema({
|
|
180
|
+
implicitTypes: [...types, ...schemaObj.implicitTypes],
|
|
181
|
+
explicitTypes: [...schemaObj.explicitTypes],
|
|
182
|
+
});
|
|
183
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// Ported from js-yaml v3.13.1:
|
|
2
|
+
// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
|
|
3
|
+
// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
|
|
4
|
+
// Copyright 2018-2026 the Deno authors. MIT license.
|
|
5
|
+
import type { Type } from "../_type.js";
|
|
6
|
+
|
|
7
|
+
// [ 64, 65, 66 ] -> [ padding, CR, LF ]
|
|
8
|
+
const BASE64_MAP =
|
|
9
|
+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";
|
|
10
|
+
|
|
11
|
+
function resolveYamlBinary(data: string): boolean {
|
|
12
|
+
if (data === null) return false;
|
|
13
|
+
|
|
14
|
+
let code: number;
|
|
15
|
+
let bitlen = 0;
|
|
16
|
+
const max = data.length;
|
|
17
|
+
const map = BASE64_MAP;
|
|
18
|
+
|
|
19
|
+
// Convert one by one.
|
|
20
|
+
for (let idx = 0; idx < max; idx++) {
|
|
21
|
+
code = map.indexOf(data.charAt(idx));
|
|
22
|
+
|
|
23
|
+
// Skip CR/LF
|
|
24
|
+
if (code > 64) continue;
|
|
25
|
+
|
|
26
|
+
// Fail on illegal characters
|
|
27
|
+
if (code < 0) return false;
|
|
28
|
+
|
|
29
|
+
bitlen += 6;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// If there are any bits left, source was corrupted
|
|
33
|
+
return bitlen % 8 === 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function constructYamlBinary(data: string): Uint8Array {
|
|
37
|
+
// remove CR/LF & padding to simplify scan
|
|
38
|
+
const input = data.replace(/[\r\n=]/g, "");
|
|
39
|
+
const max = input.length;
|
|
40
|
+
const map = BASE64_MAP;
|
|
41
|
+
|
|
42
|
+
// Collect by 6*4 bits (3 bytes)
|
|
43
|
+
|
|
44
|
+
const result = [];
|
|
45
|
+
let bits = 0;
|
|
46
|
+
for (let idx = 0; idx < max; idx++) {
|
|
47
|
+
if (idx % 4 === 0 && idx) {
|
|
48
|
+
result.push((bits >> 16) & 0xff);
|
|
49
|
+
result.push((bits >> 8) & 0xff);
|
|
50
|
+
result.push(bits & 0xff);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
bits = (bits << 6) | map.indexOf(input.charAt(idx));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Dump tail
|
|
57
|
+
|
|
58
|
+
const tailbits = (max % 4) * 6;
|
|
59
|
+
|
|
60
|
+
if (tailbits === 0) {
|
|
61
|
+
result.push((bits >> 16) & 0xff);
|
|
62
|
+
result.push((bits >> 8) & 0xff);
|
|
63
|
+
result.push(bits & 0xff);
|
|
64
|
+
} else if (tailbits === 18) {
|
|
65
|
+
result.push((bits >> 10) & 0xff);
|
|
66
|
+
result.push((bits >> 2) & 0xff);
|
|
67
|
+
} else if (tailbits === 12) {
|
|
68
|
+
result.push((bits >> 4) & 0xff);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return new Uint8Array(result);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function representYamlBinary(object: Uint8Array): string {
|
|
75
|
+
const max = object.length;
|
|
76
|
+
const map = BASE64_MAP;
|
|
77
|
+
|
|
78
|
+
// Convert every three bytes to 4 ASCII characters.
|
|
79
|
+
|
|
80
|
+
let result = "";
|
|
81
|
+
let bits = 0;
|
|
82
|
+
for (let idx = 0; idx < max; idx++) {
|
|
83
|
+
if (idx % 3 === 0 && idx) {
|
|
84
|
+
result += map[(bits >> 18) & 0x3f];
|
|
85
|
+
result += map[(bits >> 12) & 0x3f];
|
|
86
|
+
result += map[(bits >> 6) & 0x3f];
|
|
87
|
+
result += map[bits & 0x3f];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
bits = (bits << 8) + object[idx]!;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Dump tail
|
|
94
|
+
|
|
95
|
+
const tail = max % 3;
|
|
96
|
+
|
|
97
|
+
if (tail === 0) {
|
|
98
|
+
result += map[(bits >> 18) & 0x3f];
|
|
99
|
+
result += map[(bits >> 12) & 0x3f];
|
|
100
|
+
result += map[(bits >> 6) & 0x3f];
|
|
101
|
+
result += map[bits & 0x3f];
|
|
102
|
+
} else if (tail === 2) {
|
|
103
|
+
result += map[(bits >> 10) & 0x3f];
|
|
104
|
+
result += map[(bits >> 4) & 0x3f];
|
|
105
|
+
result += map[(bits << 2) & 0x3f];
|
|
106
|
+
result += map[64];
|
|
107
|
+
} else if (tail === 1) {
|
|
108
|
+
result += map[(bits >> 2) & 0x3f];
|
|
109
|
+
result += map[(bits << 4) & 0x3f];
|
|
110
|
+
result += map[64];
|
|
111
|
+
result += map[64];
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
function isBinary(obj: unknown): obj is Uint8Array {
|
|
117
|
+
return obj instanceof Uint8Array;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export const binary: Type<"scalar", Uint8Array> = {
|
|
121
|
+
tag: "tag:yaml.org,2002:binary",
|
|
122
|
+
construct: constructYamlBinary,
|
|
123
|
+
kind: "scalar",
|
|
124
|
+
predicate: isBinary,
|
|
125
|
+
represent: representYamlBinary,
|
|
126
|
+
resolve: resolveYamlBinary,
|
|
127
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Ported from js-yaml v3.13.1:
|
|
2
|
+
// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
|
|
3
|
+
// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
|
|
4
|
+
// Copyright 2018-2026 the Deno authors. MIT license.
|
|
5
|
+
|
|
6
|
+
import type { Type } from "../_type.js";
|
|
7
|
+
|
|
8
|
+
const YAML_TRUE_BOOLEANS = ["true", "True", "TRUE"];
|
|
9
|
+
const YAML_FALSE_BOOLEANS = ["false", "False", "FALSE"];
|
|
10
|
+
const YAML_BOOLEANS = [...YAML_TRUE_BOOLEANS, ...YAML_FALSE_BOOLEANS];
|
|
11
|
+
|
|
12
|
+
export const bool: Type<"scalar", boolean> = {
|
|
13
|
+
tag: "tag:yaml.org,2002:bool",
|
|
14
|
+
kind: "scalar",
|
|
15
|
+
defaultStyle: "lowercase",
|
|
16
|
+
predicate: (value: unknown): value is boolean =>
|
|
17
|
+
typeof value === "boolean" || value instanceof Boolean,
|
|
18
|
+
construct: (data: string): boolean => YAML_TRUE_BOOLEANS.includes(data),
|
|
19
|
+
resolve: (data: string): boolean => YAML_BOOLEANS.includes(data),
|
|
20
|
+
represent: {
|
|
21
|
+
// deno-lint-ignore ban-types
|
|
22
|
+
lowercase: (object: boolean | Boolean): string => {
|
|
23
|
+
const value = object instanceof Boolean ? object.valueOf() : object;
|
|
24
|
+
return value ? "true" : "false";
|
|
25
|
+
},
|
|
26
|
+
// deno-lint-ignore ban-types
|
|
27
|
+
uppercase: (object: boolean | Boolean): string => {
|
|
28
|
+
const value = object instanceof Boolean ? object.valueOf() : object;
|
|
29
|
+
return value ? "TRUE" : "FALSE";
|
|
30
|
+
},
|
|
31
|
+
// deno-lint-ignore ban-types
|
|
32
|
+
camelcase: (object: boolean | Boolean): string => {
|
|
33
|
+
const value = object instanceof Boolean ? object.valueOf() : object;
|
|
34
|
+
return value ? "True" : "False";
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// Ported from js-yaml v3.13.1:
|
|
2
|
+
// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
|
|
3
|
+
// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
|
|
4
|
+
// Copyright 2018-2026 the Deno authors. MIT license.
|
|
5
|
+
|
|
6
|
+
import type { StyleVariant, Type } from "../_type.js";
|
|
7
|
+
import { isNegativeZero } from "../_utils.js";
|
|
8
|
+
|
|
9
|
+
const YAML_FLOAT_PATTERN = new RegExp(
|
|
10
|
+
// 2.5e4, 2.5 and integers
|
|
11
|
+
"^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?" +
|
|
12
|
+
// .2e4, .2
|
|
13
|
+
// special case, seems not from spec
|
|
14
|
+
"|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?" +
|
|
15
|
+
// .inf
|
|
16
|
+
"|[-+]?\\.(?:inf|Inf|INF)" +
|
|
17
|
+
// .nan
|
|
18
|
+
"|\\.(?:nan|NaN|NAN))$",
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
function resolveYamlFloat(data: string): boolean {
|
|
22
|
+
if (
|
|
23
|
+
!YAML_FLOAT_PATTERN.test(data) ||
|
|
24
|
+
// Quick hack to not allow integers end with `_`
|
|
25
|
+
// Probably should update regexp & check speed
|
|
26
|
+
data[data.length - 1] === "_"
|
|
27
|
+
) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function constructYamlFloat(data: string): number {
|
|
35
|
+
let value = data.replace(/_/g, "").toLowerCase();
|
|
36
|
+
const sign = value[0] === "-" ? -1 : 1;
|
|
37
|
+
|
|
38
|
+
if (value[0] && "+-".includes(value[0])) {
|
|
39
|
+
value = value.slice(1);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (value === ".inf") {
|
|
43
|
+
return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
|
|
44
|
+
}
|
|
45
|
+
if (value === ".nan") {
|
|
46
|
+
return NaN;
|
|
47
|
+
}
|
|
48
|
+
return sign * parseFloat(value);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
|
|
52
|
+
|
|
53
|
+
function representYamlFloat(
|
|
54
|
+
// deno-lint-ignore ban-types
|
|
55
|
+
object: number | Number,
|
|
56
|
+
style?: StyleVariant,
|
|
57
|
+
): string {
|
|
58
|
+
const value = object instanceof Number ? object.valueOf() : object;
|
|
59
|
+
if (isNaN(value)) {
|
|
60
|
+
switch (style) {
|
|
61
|
+
case "lowercase":
|
|
62
|
+
return ".nan";
|
|
63
|
+
case "uppercase":
|
|
64
|
+
return ".NAN";
|
|
65
|
+
case "camelcase":
|
|
66
|
+
return ".NaN";
|
|
67
|
+
}
|
|
68
|
+
} else if (Number.POSITIVE_INFINITY === value) {
|
|
69
|
+
switch (style) {
|
|
70
|
+
case "lowercase":
|
|
71
|
+
return ".inf";
|
|
72
|
+
case "uppercase":
|
|
73
|
+
return ".INF";
|
|
74
|
+
case "camelcase":
|
|
75
|
+
return ".Inf";
|
|
76
|
+
}
|
|
77
|
+
} else if (Number.NEGATIVE_INFINITY === value) {
|
|
78
|
+
switch (style) {
|
|
79
|
+
case "lowercase":
|
|
80
|
+
return "-.inf";
|
|
81
|
+
case "uppercase":
|
|
82
|
+
return "-.INF";
|
|
83
|
+
case "camelcase":
|
|
84
|
+
return "-.Inf";
|
|
85
|
+
}
|
|
86
|
+
} else if (isNegativeZero(value)) {
|
|
87
|
+
return "-0.0";
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const res = value.toString(10);
|
|
91
|
+
|
|
92
|
+
// JS stringifier can build scientific format without dots: 5e-100,
|
|
93
|
+
// while YAML requires dot: 5.e-100. Fix it with simple hack
|
|
94
|
+
|
|
95
|
+
return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function isFloat(object: unknown): object is number {
|
|
99
|
+
if (object instanceof Number) object = object.valueOf();
|
|
100
|
+
return typeof object === "number" &&
|
|
101
|
+
(object % 1 !== 0 || isNegativeZero(object));
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export const float: Type<"scalar", number> = {
|
|
105
|
+
tag: "tag:yaml.org,2002:float",
|
|
106
|
+
construct: constructYamlFloat,
|
|
107
|
+
defaultStyle: "lowercase",
|
|
108
|
+
kind: "scalar",
|
|
109
|
+
predicate: isFloat,
|
|
110
|
+
represent: representYamlFloat,
|
|
111
|
+
resolve: resolveYamlFloat,
|
|
112
|
+
};
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
// Ported from js-yaml v3.13.1:
|
|
2
|
+
// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
|
|
3
|
+
// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
|
|
4
|
+
// Copyright 2018-2026 the Deno authors. MIT license.
|
|
5
|
+
|
|
6
|
+
import type { Type } from "../_type.js";
|
|
7
|
+
import { isNegativeZero } from "../_utils.js";
|
|
8
|
+
|
|
9
|
+
function isCharCodeInRange(c: number, lower: number, upper: number): boolean {
|
|
10
|
+
return lower <= c && c <= upper;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function isHexCode(c: number): boolean {
|
|
14
|
+
return (
|
|
15
|
+
isCharCodeInRange(c, 0x30, 0x39) || // 0-9
|
|
16
|
+
isCharCodeInRange(c, 0x41, 0x46) || // A-F
|
|
17
|
+
isCharCodeInRange(c, 0x61, 0x66) // a-f
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function isOctCode(c: number): boolean {
|
|
22
|
+
return isCharCodeInRange(c, 0x30, 0x37); // 0-7
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function isDecCode(c: number): boolean {
|
|
26
|
+
return isCharCodeInRange(c, 0x30, 0x39); // 0-9
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function resolveYamlInteger(data: string): boolean {
|
|
30
|
+
const max = data.length;
|
|
31
|
+
let index = 0;
|
|
32
|
+
let hasDigits = false;
|
|
33
|
+
|
|
34
|
+
if (!max) return false;
|
|
35
|
+
|
|
36
|
+
let ch = data[index];
|
|
37
|
+
|
|
38
|
+
// sign
|
|
39
|
+
if (ch === "-" || ch === "+") {
|
|
40
|
+
ch = data[++index];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (ch === "0") {
|
|
44
|
+
// 0
|
|
45
|
+
if (index + 1 === max) return true;
|
|
46
|
+
ch = data[++index];
|
|
47
|
+
|
|
48
|
+
// base 2, base 8, base 16
|
|
49
|
+
|
|
50
|
+
if (ch === "b") {
|
|
51
|
+
// base 2
|
|
52
|
+
index++;
|
|
53
|
+
|
|
54
|
+
for (; index < max; index++) {
|
|
55
|
+
ch = data[index];
|
|
56
|
+
if (ch === "_") continue;
|
|
57
|
+
if (ch !== "0" && ch !== "1") return false;
|
|
58
|
+
hasDigits = true;
|
|
59
|
+
}
|
|
60
|
+
return hasDigits && ch !== "_";
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (ch === "x") {
|
|
64
|
+
// base 16
|
|
65
|
+
index++;
|
|
66
|
+
|
|
67
|
+
for (; index < max; index++) {
|
|
68
|
+
ch = data[index];
|
|
69
|
+
if (ch === "_") continue;
|
|
70
|
+
if (!isHexCode(data.charCodeAt(index))) return false;
|
|
71
|
+
hasDigits = true;
|
|
72
|
+
}
|
|
73
|
+
return hasDigits && ch !== "_";
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// base 8
|
|
77
|
+
for (; index < max; index++) {
|
|
78
|
+
ch = data[index];
|
|
79
|
+
if (ch === "_") continue;
|
|
80
|
+
if (!isOctCode(data.charCodeAt(index))) return false;
|
|
81
|
+
hasDigits = true;
|
|
82
|
+
}
|
|
83
|
+
return hasDigits && ch !== "_";
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// base 10 (except 0) or base 60
|
|
87
|
+
|
|
88
|
+
// value should not start with `_`;
|
|
89
|
+
if (ch === "_") return false;
|
|
90
|
+
|
|
91
|
+
for (; index < max; index++) {
|
|
92
|
+
ch = data[index];
|
|
93
|
+
if (ch === "_") continue;
|
|
94
|
+
if (!isDecCode(data.charCodeAt(index))) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
hasDigits = true;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Should have digits and should not end with `_`
|
|
101
|
+
if (!hasDigits || ch === "_") return false;
|
|
102
|
+
|
|
103
|
+
// base60 almost not used, no needs to optimize
|
|
104
|
+
return /^(:[0-5]?[0-9])+$/.test(data.slice(index));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function constructYamlInteger(data: string): number {
|
|
108
|
+
let value = data;
|
|
109
|
+
|
|
110
|
+
if (value.includes("_")) {
|
|
111
|
+
value = value.replace(/_/g, "");
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
let sign = 1;
|
|
115
|
+
let ch = value[0];
|
|
116
|
+
if (ch === "-" || ch === "+") {
|
|
117
|
+
if (ch === "-") sign = -1;
|
|
118
|
+
value = value.slice(1);
|
|
119
|
+
ch = value[0];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (value === "0") return 0;
|
|
123
|
+
|
|
124
|
+
if (ch === "0") {
|
|
125
|
+
if (value[1] === "b") return sign * parseInt(value.slice(2), 2);
|
|
126
|
+
if (value[1] === "x") return sign * parseInt(value, 16);
|
|
127
|
+
return sign * parseInt(value, 8);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return sign * parseInt(value, 10);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function isInteger(object: unknown): object is number {
|
|
134
|
+
if (object instanceof Number) object = object.valueOf();
|
|
135
|
+
return typeof object === "number" && object % 1 === 0 &&
|
|
136
|
+
!isNegativeZero(object);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export const int: Type<"scalar", number> = {
|
|
140
|
+
tag: "tag:yaml.org,2002:int",
|
|
141
|
+
construct: constructYamlInteger,
|
|
142
|
+
defaultStyle: "decimal",
|
|
143
|
+
kind: "scalar",
|
|
144
|
+
predicate: isInteger,
|
|
145
|
+
represent: {
|
|
146
|
+
// deno-lint-ignore ban-types
|
|
147
|
+
binary(object: number | Number): string {
|
|
148
|
+
const value = object instanceof Number ? object.valueOf() : object;
|
|
149
|
+
return value >= 0
|
|
150
|
+
? `0b${value.toString(2)}`
|
|
151
|
+
: `-0b${value.toString(2).slice(1)}`;
|
|
152
|
+
},
|
|
153
|
+
// deno-lint-ignore ban-types
|
|
154
|
+
octal(object: number | Number): string {
|
|
155
|
+
const value = object instanceof Number ? object.valueOf() : object;
|
|
156
|
+
return value >= 0
|
|
157
|
+
? `0${value.toString(8)}`
|
|
158
|
+
: `-0${value.toString(8).slice(1)}`;
|
|
159
|
+
},
|
|
160
|
+
// deno-lint-ignore ban-types
|
|
161
|
+
decimal(object: number | Number): string {
|
|
162
|
+
const value = object instanceof Number ? object.valueOf() : object;
|
|
163
|
+
return value.toString(10);
|
|
164
|
+
},
|
|
165
|
+
// deno-lint-ignore ban-types
|
|
166
|
+
hexadecimal(object: number | Number): string {
|
|
167
|
+
const value = object instanceof Number ? object.valueOf() : object;
|
|
168
|
+
return value >= 0
|
|
169
|
+
? `0x${value.toString(16).toUpperCase()}`
|
|
170
|
+
: `-0x${value.toString(16).toUpperCase().slice(1)}`;
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
resolve: resolveYamlInteger,
|
|
174
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Ported from js-yaml v3.13.1:
|
|
2
|
+
// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
|
|
3
|
+
// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
|
|
4
|
+
// Copyright 2018-2026 the Deno authors. MIT license.
|
|
5
|
+
|
|
6
|
+
import type { Type } from "../_type.js";
|
|
7
|
+
|
|
8
|
+
export const map: Type<"mapping", unknown> = {
|
|
9
|
+
tag: "tag:yaml.org,2002:map",
|
|
10
|
+
resolve() {
|
|
11
|
+
return true;
|
|
12
|
+
},
|
|
13
|
+
construct(data) {
|
|
14
|
+
return data !== null ? data : {};
|
|
15
|
+
},
|
|
16
|
+
kind: "mapping",
|
|
17
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Ported from js-yaml v3.13.1:
|
|
2
|
+
// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
|
|
3
|
+
// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
|
|
4
|
+
// Copyright 2018-2026 the Deno authors. MIT license.
|
|
5
|
+
|
|
6
|
+
import type { Type } from "../_type.js";
|
|
7
|
+
|
|
8
|
+
export const merge: Type<"scalar", unknown> = {
|
|
9
|
+
tag: "tag:yaml.org,2002:merge",
|
|
10
|
+
kind: "scalar",
|
|
11
|
+
resolve: (data: unknown): boolean => data === "<<" || data === null,
|
|
12
|
+
construct: (data: unknown): unknown => data,
|
|
13
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Ported from js-yaml v3.13.1:
|
|
2
|
+
// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
|
|
3
|
+
// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
|
|
4
|
+
// Copyright 2018-2026 the Deno authors. MIT license.
|
|
5
|
+
|
|
6
|
+
import type { Type } from "../_type.js";
|
|
7
|
+
|
|
8
|
+
export const nil: Type<"scalar", null> = {
|
|
9
|
+
tag: "tag:yaml.org,2002:null",
|
|
10
|
+
kind: "scalar",
|
|
11
|
+
defaultStyle: "lowercase",
|
|
12
|
+
predicate: (object: unknown): object is null => object === null,
|
|
13
|
+
construct: () => null,
|
|
14
|
+
resolve: (data: string): boolean => {
|
|
15
|
+
return (
|
|
16
|
+
data === "~" ||
|
|
17
|
+
data === "null" ||
|
|
18
|
+
data === "Null" ||
|
|
19
|
+
data === "NULL"
|
|
20
|
+
);
|
|
21
|
+
},
|
|
22
|
+
represent: {
|
|
23
|
+
lowercase: (): string => "null",
|
|
24
|
+
uppercase: (): string => "NULL",
|
|
25
|
+
camelcase: (): string => "Null",
|
|
26
|
+
},
|
|
27
|
+
};
|