@feiyoug/skill-lab 0.0.0 → 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 +73 -0
- 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,31 @@
|
|
|
1
|
+
import { Parser, Query, Tree } from "web-tree-sitter";
|
|
2
|
+
import type { TreesitterGrammar } from "./registry.js";
|
|
3
|
+
import type { AnalyzerLogger } from "../types.js";
|
|
4
|
+
export declare class TreesitterClient {
|
|
5
|
+
private readonly logger;
|
|
6
|
+
private readonly showProgressBar;
|
|
7
|
+
private PARSER_BY_GRAMMAR;
|
|
8
|
+
private LANG_BY_GRAMMAR;
|
|
9
|
+
private QUERY_CACHE;
|
|
10
|
+
private ROOT_NODE_CACHE_BY_CONTENT;
|
|
11
|
+
/** Parser.init() is idempotent but we avoid re-calling it. */
|
|
12
|
+
private parserInitialized;
|
|
13
|
+
constructor(logger?: AnalyzerLogger, showProgressBar?: boolean);
|
|
14
|
+
private ensureParserInit;
|
|
15
|
+
getParser(grammar: TreesitterGrammar): Promise<Parser>;
|
|
16
|
+
/**
|
|
17
|
+
* Creates (and caches) a tree-sitter Query for the given grammar and S-expression query string.
|
|
18
|
+
*/
|
|
19
|
+
createQuery(grammar: TreesitterGrammar, queryString: string): Promise<Query>;
|
|
20
|
+
/**
|
|
21
|
+
* Parses content into a tree-sitter Tree with memoization.
|
|
22
|
+
*
|
|
23
|
+
* Cache key strategy:
|
|
24
|
+
* - first level: content length
|
|
25
|
+
* - second level: fast non-cryptographic hash of content
|
|
26
|
+
*/
|
|
27
|
+
parse(grammar: TreesitterGrammar, content: string): Promise<Tree>;
|
|
28
|
+
private getTreeCache;
|
|
29
|
+
private hashContent;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/analyzer/treesitter/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,qBAAa,gBAAgB;IAYrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAZpC,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,eAAe,CAAoD;IAC3E,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,0BAA0B,CAG3B;IACP,8DAA8D;IAC9D,OAAO,CAAC,iBAAiB,CAAkB;gBAGtB,MAAM,GAAE,cAA6B,EACrC,eAAe,GAAE,OAAe;YAGvC,gBAAgB;IAOjB,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBnE;;OAEG;IACU,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAazF;;;;;;OAMG;IACU,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB9E,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,WAAW;CAStB"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TreesitterClient = void 0;
|
|
4
|
+
const web_tree_sitter_1 = require("web-tree-sitter");
|
|
5
|
+
const registry_js_1 = require("./registry.js");
|
|
6
|
+
const logging_js_1 = require("../logging.js");
|
|
7
|
+
class TreesitterClient {
|
|
8
|
+
constructor(logger = logging_js_1.NO_OP_LOGGER, showProgressBar = false) {
|
|
9
|
+
Object.defineProperty(this, "logger", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: logger
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "showProgressBar", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: showProgressBar
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(this, "PARSER_BY_GRAMMAR", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
writable: true,
|
|
25
|
+
value: {}
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(this, "LANG_BY_GRAMMAR", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
configurable: true,
|
|
30
|
+
writable: true,
|
|
31
|
+
value: {}
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(this, "QUERY_CACHE", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
value: new Map()
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(this, "ROOT_NODE_CACHE_BY_CONTENT", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
configurable: true,
|
|
42
|
+
writable: true,
|
|
43
|
+
value: {}
|
|
44
|
+
});
|
|
45
|
+
/** Parser.init() is idempotent but we avoid re-calling it. */
|
|
46
|
+
Object.defineProperty(this, "parserInitialized", {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
writable: true,
|
|
50
|
+
value: false
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async ensureParserInit() {
|
|
54
|
+
if (this.parserInitialized)
|
|
55
|
+
return;
|
|
56
|
+
await web_tree_sitter_1.Parser.init();
|
|
57
|
+
this.parserInitialized = true;
|
|
58
|
+
}
|
|
59
|
+
async getParser(grammar) {
|
|
60
|
+
if (this.PARSER_BY_GRAMMAR[grammar]) {
|
|
61
|
+
return this.PARSER_BY_GRAMMAR[grammar];
|
|
62
|
+
}
|
|
63
|
+
await this.ensureParserInit();
|
|
64
|
+
let lang = this.LANG_BY_GRAMMAR[grammar];
|
|
65
|
+
if (!lang) {
|
|
66
|
+
const wasmPath = await (0, registry_js_1.ensureGrammar)(grammar, {
|
|
67
|
+
logger: this.logger,
|
|
68
|
+
showProgressBar: this.showProgressBar,
|
|
69
|
+
});
|
|
70
|
+
lang = await web_tree_sitter_1.Language.load(wasmPath);
|
|
71
|
+
this.LANG_BY_GRAMMAR[grammar] = lang;
|
|
72
|
+
}
|
|
73
|
+
const parser = new web_tree_sitter_1.Parser();
|
|
74
|
+
parser.setLanguage(lang);
|
|
75
|
+
this.PARSER_BY_GRAMMAR[grammar] = parser;
|
|
76
|
+
return parser;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Creates (and caches) a tree-sitter Query for the given grammar and S-expression query string.
|
|
80
|
+
*/
|
|
81
|
+
async createQuery(grammar, queryString) {
|
|
82
|
+
const cacheKey = `${grammar}:${queryString}`;
|
|
83
|
+
if (this.QUERY_CACHE.has(cacheKey)) {
|
|
84
|
+
return this.QUERY_CACHE.get(cacheKey);
|
|
85
|
+
}
|
|
86
|
+
await this.getParser(grammar); // ensures LANG_BY_GRAMMAR[grammar] is populated
|
|
87
|
+
const lang = this.LANG_BY_GRAMMAR[grammar];
|
|
88
|
+
const query = new web_tree_sitter_1.Query(lang, queryString);
|
|
89
|
+
this.QUERY_CACHE.set(cacheKey, query);
|
|
90
|
+
return query;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Parses content into a tree-sitter Tree with memoization.
|
|
94
|
+
*
|
|
95
|
+
* Cache key strategy:
|
|
96
|
+
* - first level: content length
|
|
97
|
+
* - second level: fast non-cryptographic hash of content
|
|
98
|
+
*/
|
|
99
|
+
async parse(grammar, content) {
|
|
100
|
+
const treeCacheByLen = this.getTreeCache(grammar);
|
|
101
|
+
const len = content.length;
|
|
102
|
+
const treeCacheByHash = treeCacheByLen.get(len);
|
|
103
|
+
if (treeCacheByHash) {
|
|
104
|
+
const hash = this.hashContent(content);
|
|
105
|
+
const cached = treeCacheByHash.get(hash);
|
|
106
|
+
if (cached)
|
|
107
|
+
return cached;
|
|
108
|
+
}
|
|
109
|
+
const parser = await this.getParser(grammar);
|
|
110
|
+
const tree = parser.parse(content);
|
|
111
|
+
if (!tree) {
|
|
112
|
+
throw new Error(`Failed to parse ${grammar} content`);
|
|
113
|
+
}
|
|
114
|
+
const hash = this.hashContent(content);
|
|
115
|
+
const bucket = treeCacheByLen.get(len) ?? new Map();
|
|
116
|
+
bucket.set(hash, tree);
|
|
117
|
+
treeCacheByLen.set(len, bucket);
|
|
118
|
+
return tree;
|
|
119
|
+
}
|
|
120
|
+
getTreeCache(grammar) {
|
|
121
|
+
if (!this.ROOT_NODE_CACHE_BY_CONTENT[grammar]) {
|
|
122
|
+
this.ROOT_NODE_CACHE_BY_CONTENT[grammar] = new Map();
|
|
123
|
+
}
|
|
124
|
+
return this.ROOT_NODE_CACHE_BY_CONTENT[grammar];
|
|
125
|
+
}
|
|
126
|
+
hashContent(content) {
|
|
127
|
+
// FNV-1a 32-bit (fast, non-cryptographic)
|
|
128
|
+
let hash = 0x811c9dc5;
|
|
129
|
+
for (let i = 0; i < content.length; i++) {
|
|
130
|
+
hash ^= content.charCodeAt(i);
|
|
131
|
+
hash = Math.imul(hash, 0x01000193);
|
|
132
|
+
}
|
|
133
|
+
return hash >>> 0;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.TreesitterClient = TreesitterClient;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { AnalyzerLogger } from "../types.js";
|
|
2
|
+
export type GrammarSpec = {
|
|
3
|
+
/** Local filename used in the cache directory. */
|
|
4
|
+
filename: string;
|
|
5
|
+
/** Exact, version-pinned URL to download the grammar .wasm from. */
|
|
6
|
+
url: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Grammar specifications. All URLs are exact version-pinned to ensure
|
|
10
|
+
* ABI compatibility with web-tree-sitter@0.25.4.
|
|
11
|
+
*
|
|
12
|
+
* Grammar .wasm files are compiled by the tree-sitter CLI against a specific
|
|
13
|
+
* WASM ABI. Mixing grammar versions with a different web-tree-sitter version
|
|
14
|
+
* causes silent parse failures, so both must be pinned together.
|
|
15
|
+
*/
|
|
16
|
+
export declare const GRAMMAR_SPECS: {
|
|
17
|
+
bash: {
|
|
18
|
+
filename: string;
|
|
19
|
+
url: string;
|
|
20
|
+
};
|
|
21
|
+
javascript: {
|
|
22
|
+
filename: string;
|
|
23
|
+
url: string;
|
|
24
|
+
};
|
|
25
|
+
python: {
|
|
26
|
+
filename: string;
|
|
27
|
+
url: string;
|
|
28
|
+
};
|
|
29
|
+
typescript: {
|
|
30
|
+
filename: string;
|
|
31
|
+
url: string;
|
|
32
|
+
};
|
|
33
|
+
tsx: {
|
|
34
|
+
filename: string;
|
|
35
|
+
url: string;
|
|
36
|
+
};
|
|
37
|
+
markdown: {
|
|
38
|
+
filename: string;
|
|
39
|
+
url: string;
|
|
40
|
+
};
|
|
41
|
+
"markdown-inline": {
|
|
42
|
+
filename: string;
|
|
43
|
+
url: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
/** Available languages for tree-sitter grammars. */
|
|
47
|
+
export type TreesitterGrammar = keyof typeof GRAMMAR_SPECS;
|
|
48
|
+
/**
|
|
49
|
+
* Returns the skill-lab cache directory, following XDG conventions.
|
|
50
|
+
*
|
|
51
|
+
* Priority:
|
|
52
|
+
* 1. $SKILL_LAB_CACHE_DIR — explicit override
|
|
53
|
+
* 2. $XDG_CACHE_HOME/skill-lab — if XDG_CACHE_HOME is set
|
|
54
|
+
* 3. Platform default:
|
|
55
|
+
* Linux/macOS: ~/.cache/skill-lab
|
|
56
|
+
* Windows: %LOCALAPPDATA%\skill-lab\Cache
|
|
57
|
+
*/
|
|
58
|
+
export declare function getCacheDir(): string;
|
|
59
|
+
/**
|
|
60
|
+
* Ensures a grammar .wasm file is present in the local cache.
|
|
61
|
+
*
|
|
62
|
+
* On first call for a given language, downloads the file from the pinned URL
|
|
63
|
+
* in GRAMMAR_SPECS. Subsequent calls return immediately from cache.
|
|
64
|
+
*
|
|
65
|
+
* @param lang - Language key (e.g. "bash", "typescript", "markdown-inline")
|
|
66
|
+
* @param opts.logger - Optional logger for download events
|
|
67
|
+
* @returns Absolute path to the cached .wasm file
|
|
68
|
+
*/
|
|
69
|
+
export declare function ensureGrammar(lang: string, opts?: {
|
|
70
|
+
logger?: AnalyzerLogger;
|
|
71
|
+
showProgressBar?: boolean;
|
|
72
|
+
}): Promise<string>;
|
|
73
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/analyzer/treesitter/registry.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,MAAM,MAAM,WAAW,GAAG;IACtB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Ba,CAAC;AAExC,oDAAoD;AACpD,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,aAAa,CAAC;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAgBpC;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B,GACF,OAAO,CAAC,MAAM,CAAC,CAgFjB"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.GRAMMAR_SPECS = void 0;
|
|
40
|
+
exports.getCacheDir = getCacheDir;
|
|
41
|
+
exports.ensureGrammar = ensureGrammar;
|
|
42
|
+
/**
|
|
43
|
+
* Shared grammar registry for web-tree-sitter WASM grammars.
|
|
44
|
+
*
|
|
45
|
+
* Used by both AstGrepClient and TreesitterClient. Grammar .wasm files are
|
|
46
|
+
* downloaded from GitHub Releases on first use and cached locally following
|
|
47
|
+
* the XDG cache directory convention.
|
|
48
|
+
*
|
|
49
|
+
* Cache location (in priority order):
|
|
50
|
+
* 1. $SKILL_LAB_CACHE_DIR
|
|
51
|
+
* 2. $XDG_CACHE_HOME/skill-lab
|
|
52
|
+
* 3. ~/.cache/skill-lab (Linux/macOS)
|
|
53
|
+
* %LOCALAPPDATA%\skill-lab\Cache (Windows)
|
|
54
|
+
*/
|
|
55
|
+
const dntShim = __importStar(require("../../_dnt.shims.js"));
|
|
56
|
+
const mod_js_1 = require("../../deps/jsr.io/@std/path/1.1.4/mod.js");
|
|
57
|
+
const mod_js_2 = __importDefault(require("../../deps/jsr.io/@deno-library/progress/1.5.1/mod.js"));
|
|
58
|
+
const TREESITTER_GRAMMER_SUBDIR = "treesitter/grammars";
|
|
59
|
+
const ANSI_CLEAR_LINE = "\r\x1b[K";
|
|
60
|
+
const ENCODER = new TextEncoder();
|
|
61
|
+
/**
|
|
62
|
+
* Grammar specifications. All URLs are exact version-pinned to ensure
|
|
63
|
+
* ABI compatibility with web-tree-sitter@0.25.4.
|
|
64
|
+
*
|
|
65
|
+
* Grammar .wasm files are compiled by the tree-sitter CLI against a specific
|
|
66
|
+
* WASM ABI. Mixing grammar versions with a different web-tree-sitter version
|
|
67
|
+
* causes silent parse failures, so both must be pinned together.
|
|
68
|
+
*/
|
|
69
|
+
exports.GRAMMAR_SPECS = {
|
|
70
|
+
bash: {
|
|
71
|
+
filename: "bash.wasm",
|
|
72
|
+
url: "https://github.com/tree-sitter/tree-sitter-bash/releases/download/v0.25.1/tree-sitter-bash.wasm",
|
|
73
|
+
},
|
|
74
|
+
javascript: {
|
|
75
|
+
filename: "javascript.wasm",
|
|
76
|
+
url: "https://github.com/tree-sitter/tree-sitter-javascript/releases/download/v0.25.0/tree-sitter-javascript.wasm",
|
|
77
|
+
},
|
|
78
|
+
python: {
|
|
79
|
+
filename: "python.wasm",
|
|
80
|
+
url: "https://github.com/tree-sitter/tree-sitter-python/releases/download/v0.25.0/tree-sitter-python.wasm",
|
|
81
|
+
},
|
|
82
|
+
typescript: {
|
|
83
|
+
filename: "typescript.wasm",
|
|
84
|
+
url: "https://github.com/tree-sitter/tree-sitter-typescript/releases/download/v0.23.2/tree-sitter-typescript.wasm",
|
|
85
|
+
},
|
|
86
|
+
tsx: {
|
|
87
|
+
filename: "tsx.wasm",
|
|
88
|
+
url: "https://github.com/tree-sitter/tree-sitter-typescript/releases/download/v0.23.2/tree-sitter-tsx.wasm",
|
|
89
|
+
},
|
|
90
|
+
markdown: {
|
|
91
|
+
filename: "markdown.wasm",
|
|
92
|
+
url: "https://github.com/tree-sitter-grammars/tree-sitter-markdown/releases/download/v0.5.2/tree-sitter-markdown.wasm",
|
|
93
|
+
},
|
|
94
|
+
"markdown-inline": {
|
|
95
|
+
filename: "markdown_inline.wasm",
|
|
96
|
+
url: "https://github.com/tree-sitter-grammars/tree-sitter-markdown/releases/download/v0.5.2/tree-sitter-markdown_inline.wasm",
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Returns the skill-lab cache directory, following XDG conventions.
|
|
101
|
+
*
|
|
102
|
+
* Priority:
|
|
103
|
+
* 1. $SKILL_LAB_CACHE_DIR — explicit override
|
|
104
|
+
* 2. $XDG_CACHE_HOME/skill-lab — if XDG_CACHE_HOME is set
|
|
105
|
+
* 3. Platform default:
|
|
106
|
+
* Linux/macOS: ~/.cache/skill-lab
|
|
107
|
+
* Windows: %LOCALAPPDATA%\skill-lab\Cache
|
|
108
|
+
*/
|
|
109
|
+
function getCacheDir() {
|
|
110
|
+
const explicit = dntShim.Deno.env.get("SKILL_LAB_CACHE_DIR");
|
|
111
|
+
if (explicit)
|
|
112
|
+
return explicit;
|
|
113
|
+
const xdgCache = dntShim.Deno.env.get("XDG_CACHE_HOME");
|
|
114
|
+
if (xdgCache)
|
|
115
|
+
return (0, mod_js_1.join)(xdgCache, "skill-lab");
|
|
116
|
+
if (dntShim.Deno.build.os === "windows") {
|
|
117
|
+
const localAppData = dntShim.Deno.env.get("LOCALAPPDATA");
|
|
118
|
+
if (localAppData)
|
|
119
|
+
return (0, mod_js_1.join)(localAppData, "skill-lab", "Cache");
|
|
120
|
+
const userProfile = dntShim.Deno.env.get("USERPROFILE") ?? "~";
|
|
121
|
+
return (0, mod_js_1.join)(userProfile, "AppData", "Local", "skill-lab", "Cache");
|
|
122
|
+
}
|
|
123
|
+
const home = dntShim.Deno.env.get("HOME") ?? "~";
|
|
124
|
+
return (0, mod_js_1.join)(home, ".cache", "skill-lab");
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Ensures a grammar .wasm file is present in the local cache.
|
|
128
|
+
*
|
|
129
|
+
* On first call for a given language, downloads the file from the pinned URL
|
|
130
|
+
* in GRAMMAR_SPECS. Subsequent calls return immediately from cache.
|
|
131
|
+
*
|
|
132
|
+
* @param lang - Language key (e.g. "bash", "typescript", "markdown-inline")
|
|
133
|
+
* @param opts.logger - Optional logger for download events
|
|
134
|
+
* @returns Absolute path to the cached .wasm file
|
|
135
|
+
*/
|
|
136
|
+
async function ensureGrammar(lang, opts) {
|
|
137
|
+
if (!(lang in exports.GRAMMAR_SPECS)) {
|
|
138
|
+
throw new Error(`No grammar spec for language: "${lang}". Available: ${Object.keys(exports.GRAMMAR_SPECS).join(", ")}`);
|
|
139
|
+
}
|
|
140
|
+
const spec = exports.GRAMMAR_SPECS[lang];
|
|
141
|
+
const cacheDir = (0, mod_js_1.join)(getCacheDir(), TREESITTER_GRAMMER_SUBDIR);
|
|
142
|
+
const cachedPath = (0, mod_js_1.join)(cacheDir, spec.filename);
|
|
143
|
+
// Return immediately if already cached
|
|
144
|
+
try {
|
|
145
|
+
const stat = await dntShim.Deno.stat(cachedPath);
|
|
146
|
+
if (stat.isFile)
|
|
147
|
+
return cachedPath;
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
// Not cached yet — fall through to download
|
|
151
|
+
}
|
|
152
|
+
// Download and write to cache
|
|
153
|
+
await dntShim.Deno.mkdir(cacheDir, { recursive: true });
|
|
154
|
+
if (dntShim.Deno.stderr.isTerminal()) {
|
|
155
|
+
dntShim.Deno.stderr.writeSync(ENCODER.encode(ANSI_CLEAR_LINE));
|
|
156
|
+
}
|
|
157
|
+
const resp = await fetch(spec.url);
|
|
158
|
+
if (!resp.ok) {
|
|
159
|
+
throw new Error(`Failed to download grammar ${spec.filename}: HTTP ${resp.status} from ${spec.url}`);
|
|
160
|
+
}
|
|
161
|
+
const shouldRenderProgress = (opts?.showProgressBar ?? false) && dntShim.Deno.stdout.isTerminal();
|
|
162
|
+
const contentLenHeader = resp.headers.get("content-length");
|
|
163
|
+
const contentLen = parseInt(contentLenHeader);
|
|
164
|
+
const scanBar = shouldRenderProgress
|
|
165
|
+
? new mod_js_2.default({
|
|
166
|
+
total: contentLen,
|
|
167
|
+
clear: true,
|
|
168
|
+
output: dntShim.Deno.stderr,
|
|
169
|
+
complete: "=",
|
|
170
|
+
incomplete: "-",
|
|
171
|
+
display: `Installing ${lang} grammar [:bar] :percent ETA :eta`,
|
|
172
|
+
})
|
|
173
|
+
: null;
|
|
174
|
+
let bytes;
|
|
175
|
+
try {
|
|
176
|
+
if (!resp.body) {
|
|
177
|
+
bytes = new Uint8Array(await resp.arrayBuffer());
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
const reader = resp.body.getReader();
|
|
181
|
+
const chunks = [];
|
|
182
|
+
let received = 0;
|
|
183
|
+
while (true) {
|
|
184
|
+
const { value, done } = await reader.read();
|
|
185
|
+
if (done)
|
|
186
|
+
break;
|
|
187
|
+
if (!value)
|
|
188
|
+
continue;
|
|
189
|
+
chunks.push(value);
|
|
190
|
+
received += value.byteLength;
|
|
191
|
+
scanBar?.render(received);
|
|
192
|
+
}
|
|
193
|
+
bytes = new Uint8Array(received);
|
|
194
|
+
let offset = 0;
|
|
195
|
+
for (const chunk of chunks) {
|
|
196
|
+
bytes.set(chunk, offset);
|
|
197
|
+
offset += chunk.byteLength;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
finally {
|
|
202
|
+
scanBar?.end();
|
|
203
|
+
}
|
|
204
|
+
await dntShim.Deno.writeFile(cachedPath, bytes);
|
|
205
|
+
return cachedPath;
|
|
206
|
+
}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { SkillFile, SkillReader } from "../skillreader/mod.js";
|
|
2
2
|
import type { FileRefDiscoveryMethod, FileReference, FileType, Finding, Frontmatter, Permission, Reference, ReferenceType, Risk } from "../shared/mod.js";
|
|
3
3
|
import { AstGrepClient } from "./astgrep/client.js";
|
|
4
|
-
import { TreesitterClient } from "./
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
import { TreesitterClient } from "./treesitter/client.js";
|
|
5
|
+
import type { AnalyzerConfig, ScanConfig } from "./config/mod.js";
|
|
6
|
+
export type { AnalyzerConfig, ScanConfig };
|
|
7
|
+
export type AnalyzerLogger = {
|
|
8
|
+
debug: (template: string, props?: Record<string, unknown>) => void;
|
|
9
|
+
info: (template: string, props?: Record<string, unknown>) => void;
|
|
10
|
+
warn: (template: string, props?: Record<string, unknown>) => void;
|
|
11
|
+
error: (template: string, props?: Record<string, unknown>) => void;
|
|
9
12
|
};
|
|
10
13
|
export type AnalyzerState = {
|
|
11
14
|
skillId: string;
|
|
@@ -18,41 +21,24 @@ export type AnalyzerState = {
|
|
|
18
21
|
risks: Risk[];
|
|
19
22
|
warnings: string[];
|
|
20
23
|
metadata: {
|
|
21
|
-
scannedFiles: string
|
|
24
|
+
scannedFiles: Set<string>;
|
|
22
25
|
skippedFiles: Array<{
|
|
23
26
|
path: string;
|
|
24
27
|
reason: string;
|
|
25
28
|
referenceBy?: Reference;
|
|
26
29
|
}>;
|
|
27
30
|
rulesUsed: string[];
|
|
28
|
-
config:
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
export type AnalyzerResult = {
|
|
32
|
-
analyzedAt: string;
|
|
33
|
-
skillId: string;
|
|
34
|
-
skillVersionId: string;
|
|
35
|
-
permissions: Permission[];
|
|
36
|
-
risks: Risk[];
|
|
37
|
-
score: number;
|
|
38
|
-
riskLevel: "safe" | "caution" | "attention" | "risky" | "avoid";
|
|
39
|
-
summary: string;
|
|
40
|
-
warnings: string[];
|
|
41
|
-
metadata: {
|
|
42
|
-
scannedFiles: string[];
|
|
43
|
-
skippedFiles: Array<{
|
|
44
|
-
path: string;
|
|
45
|
-
reason: string;
|
|
46
|
-
}>;
|
|
47
|
-
rulesUsed: string[];
|
|
48
|
-
frontmatterRangeEnd?: number;
|
|
49
|
-
config: AnalyzerConfig;
|
|
31
|
+
config: ScanConfig;
|
|
50
32
|
};
|
|
51
33
|
};
|
|
52
34
|
export type AnalyzerContext = {
|
|
53
35
|
skillReader: SkillReader;
|
|
54
36
|
treesitterClient: TreesitterClient;
|
|
55
37
|
astgrepClient: AstGrepClient;
|
|
38
|
+
logger?: AnalyzerLogger;
|
|
39
|
+
showProgressBar?: boolean;
|
|
40
|
+
/** Resolved (defaults-merged) user config. */
|
|
41
|
+
config: AnalyzerConfig;
|
|
56
42
|
};
|
|
57
43
|
/** A file path or package reference discovered in source content. */
|
|
58
44
|
export type FileRefDiscovery = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/analyzer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EACR,sBAAsB,EACtB,aAAa,EACb,QAAQ,EACR,OAAO,EACP,WAAW,EACX,UAAU,EACV,SAAS,EACT,aAAa,EACb,IAAI,EACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/analyzer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EACR,sBAAsB,EACtB,aAAa,EACb,QAAQ,EACR,OAAO,EACP,WAAW,EACX,UAAU,EACV,SAAS,EACT,aAAa,EACb,IAAI,EACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE;QACN,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,YAAY,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,SAAS,CAAA;SAAE,CAAC,CAAC;QAC/E,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,UAAU,CAAC;KACtB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,MAAM,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,sBAAsB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,iBAAiB,CAAC,EAAE,CAChB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,MAAM,KACd,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1B,eAAe,CAAC,EAAE,CACd,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,MAAM,KACd,gBAAgB,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACtD,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAC;CACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@deno-library/progress/1.5.1/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writeAll = exports.stripAnsiCode = exports.bgWhite = exports.bgGreen = void 0;
|
|
4
|
+
var colors_js_1 = require("../../../@std/fmt/1.0.3/colors.js");
|
|
5
|
+
Object.defineProperty(exports, "bgGreen", { enumerable: true, get: function () { return colors_js_1.bgGreen; } });
|
|
6
|
+
Object.defineProperty(exports, "bgWhite", { enumerable: true, get: function () { return colors_js_1.bgWhite; } });
|
|
7
|
+
Object.defineProperty(exports, "stripAnsiCode", { enumerable: true, get: function () { return colors_js_1.stripAnsiCode; } });
|
|
8
|
+
var write_all_js_1 = require("../../../@std/io/0.225.0/write_all.js");
|
|
9
|
+
Object.defineProperty(exports, "writeAll", { enumerable: true, get: function () { return write_all_js_1.writeAll; } });
|
|
10
|
+
// export type { Writer } from "jsr:@std/io@0.225.0/types";
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import * as dntShim from "../../../../../_dnt.shims.js";
|
|
2
|
+
import { type prettyTimeOptions } from "./time.js";
|
|
3
|
+
export { MultiProgressBar } from "./multi.js";
|
|
4
|
+
interface constructorOptions {
|
|
5
|
+
title?: string;
|
|
6
|
+
total?: number;
|
|
7
|
+
width?: number;
|
|
8
|
+
complete?: string;
|
|
9
|
+
preciseBar?: string[];
|
|
10
|
+
incomplete?: string;
|
|
11
|
+
clear?: boolean;
|
|
12
|
+
interval?: number;
|
|
13
|
+
display?: string;
|
|
14
|
+
prettyTime?: boolean;
|
|
15
|
+
output?: typeof dntShim.Deno.stdout | typeof dntShim.Deno.stderr;
|
|
16
|
+
}
|
|
17
|
+
interface renderOptions {
|
|
18
|
+
title?: string;
|
|
19
|
+
total?: number;
|
|
20
|
+
text?: string;
|
|
21
|
+
complete?: string;
|
|
22
|
+
preciseBar?: string[];
|
|
23
|
+
incomplete?: string;
|
|
24
|
+
prettyTimeOptions?: prettyTimeOptions;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* ProgressBar single progress bar.
|
|
28
|
+
*/
|
|
29
|
+
export default class ProgressBar {
|
|
30
|
+
#private;
|
|
31
|
+
title: string;
|
|
32
|
+
total?: number;
|
|
33
|
+
width: number;
|
|
34
|
+
complete: string;
|
|
35
|
+
preciseBar: string[];
|
|
36
|
+
incomplete: string;
|
|
37
|
+
clear: boolean;
|
|
38
|
+
interval: number;
|
|
39
|
+
display: string;
|
|
40
|
+
prettyTime: boolean;
|
|
41
|
+
private lastStr;
|
|
42
|
+
private lastStrLen;
|
|
43
|
+
private start;
|
|
44
|
+
private lastRenderTime;
|
|
45
|
+
private encoder;
|
|
46
|
+
private writer;
|
|
47
|
+
/**
|
|
48
|
+
* Title, total, complete, incomplete, can also be set or changed in the render method
|
|
49
|
+
*
|
|
50
|
+
* - title Progress bar title, default: ''
|
|
51
|
+
* - total total number of ticks to complete,
|
|
52
|
+
* - width the displayed width of the progress, default: 50
|
|
53
|
+
* - complete completion character, default: colors.bgGreen(' '), can use any string
|
|
54
|
+
* - incomplete incomplete character, default: colors.bgWhite(' '), can use any string
|
|
55
|
+
* - clear clear the bar on completion, default: false
|
|
56
|
+
* - interval minimum time between updates in milliseconds, default: 16
|
|
57
|
+
* - display What is displayed and display order, default: ':title :percent :bar :time :completed/:total'
|
|
58
|
+
* - prettyTime Whether to pretty print time and eta
|
|
59
|
+
* - output Output stream, can be Deno.stdout or Deno.stderr, default is Deno.stdout
|
|
60
|
+
*/
|
|
61
|
+
constructor({ title, total, width, complete, preciseBar, incomplete, clear, interval, display, prettyTime, output, }?: constructorOptions);
|
|
62
|
+
/**
|
|
63
|
+
* "render" the progress bar
|
|
64
|
+
*
|
|
65
|
+
* - `completed` completed value
|
|
66
|
+
* - `options` optional parameters
|
|
67
|
+
* - `title` progress bar title
|
|
68
|
+
* - `total` total number of ticks to complete
|
|
69
|
+
* - `text` optional, custom text, default: ''
|
|
70
|
+
* - `complete` completion character, If you want to change at a certain moment. For example, it turns red at 20%
|
|
71
|
+
* - `incomplete` incomplete character, If you want to change at a certain moment. For example, it turns red at 20%
|
|
72
|
+
* - `prettyTimeOptions` prettyTime options
|
|
73
|
+
*/
|
|
74
|
+
render(completed: number, options?: renderOptions): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* end: end a progress bar.
|
|
77
|
+
* No need to call in most cases, unless you want to end before 100%
|
|
78
|
+
*/
|
|
79
|
+
end(): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* interrupt the progress bar and write a message above it
|
|
82
|
+
*
|
|
83
|
+
* @param message The message to write
|
|
84
|
+
*/
|
|
85
|
+
console(message: string | number): Promise<void>;
|
|
86
|
+
private write;
|
|
87
|
+
private get ttyColumns();
|
|
88
|
+
private breakLine;
|
|
89
|
+
private stdoutWrite;
|
|
90
|
+
private clearLine;
|
|
91
|
+
private showCursor;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@deno-library/progress/1.5.1/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AAIxD,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAU9C,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;CAClE;AAED,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IAGpB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,OAAO,CAAqB;IAGpC,OAAO,CAAC,MAAM,CAA0D;IAExE;;;;;;;;;;;;;OAaG;gBACS,EACV,KAAU,EACV,KAAK,EACL,KAAU,EACV,QAAuB,EACvB,UAAe,EACf,UAAyB,EACzB,KAAa,EACb,QAAa,EACb,OAAO,EACP,UAAkB,EAClB,MAA4B,GAC7B,GAAE,kBAAuB;IAgB1B;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqF3E;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAa1B;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtD,OAAO,CAAC,KAAK;IAIb,OAAO,KAAK,UAAU,GAGrB;IAED,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;CAGnB"}
|