@socketsecurity/lib 5.28.0 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +135 -37
- package/README.md +26 -17
- package/dist/abort/signal.d.ts +28 -0
- package/dist/{abort.js → abort/signal.js} +12 -10
- package/dist/ai/discover.d.mts +50 -0
- package/dist/ai/discover.js +128 -0
- package/dist/ai/profiles.d.mts +39 -0
- package/dist/ai/profiles.js +61 -0
- package/dist/ai/spawn.d.mts +49 -0
- package/dist/ai/spawn.js +207 -0
- package/dist/ai/types.d.mts +117 -0
- package/dist/ai/types.js +18 -0
- package/dist/ai/worktree.d.mts +104 -0
- package/dist/ai/worktree.js +200 -0
- package/dist/ansi/constants.d.ts +10 -0
- package/dist/ansi/constants.js +45 -0
- package/dist/ansi/strip.d.ts +33 -0
- package/dist/{ansi.js → ansi/strip.js} +7 -24
- package/dist/archives/_internal.d.ts +39 -0
- package/dist/archives/_internal.js +87 -0
- package/dist/archives/detect.d.ts +19 -0
- package/dist/archives/detect.js +46 -0
- package/dist/archives/extract.d.ts +22 -0
- package/dist/archives/extract.js +53 -0
- package/dist/archives/tar.d.ts +42 -0
- package/dist/archives/tar.js +233 -0
- package/dist/archives/types.d.ts +34 -0
- package/dist/archives/types.js +18 -0
- package/dist/archives/zip.d.ts +20 -0
- package/dist/archives/zip.js +124 -0
- package/dist/argv/flag-predicates.d.ts +179 -0
- package/dist/argv/flag-predicates.js +118 -0
- package/dist/argv/flag-types.d.ts +123 -0
- package/dist/argv/flag-types.js +116 -0
- package/dist/argv/parse-args-string.d.ts +30 -0
- package/dist/argv/parse-args-string.js +42 -0
- package/dist/argv/parse.d.ts +34 -33
- package/dist/argv/parse.js +6 -4
- package/dist/arrays/_internal.d.ts +43 -0
- package/dist/{arrays.js → arrays/_internal.js} +8 -41
- package/dist/arrays/chunk.d.ts +37 -0
- package/dist/arrays/chunk.js +43 -0
- package/dist/arrays/join.d.ts +76 -0
- package/dist/{env/helpers.js → arrays/join.js} +12 -18
- package/dist/arrays/predicates.d.ts +40 -0
- package/dist/arrays/predicates.js +30 -0
- package/dist/arrays/unique.d.ts +36 -0
- package/dist/arrays/unique.js +34 -0
- package/dist/bin/_internal.d.ts +22 -0
- package/dist/bin/_internal.js +43 -0
- package/dist/bin/check-primordials.d.ts +41 -15
- package/dist/bin/check-primordials.js +49 -28
- package/dist/bin/check.d.ts +7 -12
- package/dist/bin/check.js +6 -2
- package/dist/bin/exec.d.ts +37 -0
- package/dist/bin/exec.js +79 -0
- package/dist/bin/find.d.ts +58 -0
- package/dist/bin/find.js +143 -0
- package/dist/bin/resolve.d.ts +30 -0
- package/dist/bin/resolve.js +249 -0
- package/dist/bin/shadow.d.ts +16 -0
- package/dist/bin/shadow.js +36 -0
- package/dist/bin/socket-lib.d.ts +10 -14
- package/dist/bin/socket-lib.js +19 -4
- package/dist/bin/types.d.ts +34 -0
- package/dist/bin/types.js +18 -0
- package/dist/bin/which.d.ts +111 -0
- package/dist/bin/which.js +155 -0
- package/dist/cacache/_internal.d.ts +15 -0
- package/dist/cacache/_internal.js +43 -0
- package/dist/cacache/clear.d.ts +43 -0
- package/dist/cacache/clear.js +77 -0
- package/dist/cacache/read.d.ts +31 -0
- package/dist/cacache/read.js +51 -0
- package/dist/cacache/tmp.d.ts +18 -0
- package/dist/cacache/tmp.js +39 -0
- package/dist/cacache/types.d.ts +37 -0
- package/dist/cacache/types.js +18 -0
- package/dist/cacache/write.d.ts +31 -0
- package/dist/cacache/write.js +53 -0
- package/dist/cache/ttl/store.d.ts +29 -0
- package/dist/{cache-with-ttl.js → cache/ttl/store.js} +45 -37
- package/dist/cache/ttl/types.d.ts +109 -0
- package/dist/cache/ttl/types.js +18 -0
- package/dist/checks/primordials-defaults.d.ts +20 -0
- package/dist/checks/primordials-defaults.js +92 -0
- package/dist/checks/primordials.d.ts +69 -61
- package/dist/checks/primordials.js +141 -92
- package/dist/colors/convert.d.ts +35 -0
- package/dist/colors/convert.js +42 -0
- package/dist/colors/palette.d.ts +7 -0
- package/dist/{colors.js → colors/palette.js} +5 -17
- package/dist/colors/socket-palette.d.ts +69 -0
- package/dist/colors/socket-palette.js +91 -0
- package/dist/colors/types.d.ts +29 -0
- package/dist/colors/types.js +18 -0
- package/dist/compression/_internal.d.ts +33 -0
- package/dist/compression/_internal.js +77 -0
- package/dist/compression/brotli.d.ts +82 -0
- package/dist/{compression.js → compression/brotli.js} +17 -145
- package/dist/compression/gzip.d.ts +70 -0
- package/dist/compression/gzip.js +142 -0
- package/dist/compression/types.d.ts +37 -0
- package/dist/compression/types.js +18 -0
- package/dist/constants/agents.d.ts +4 -3
- package/dist/constants/agents.js +7 -4
- package/dist/constants/encoding.d.ts +3 -3
- package/dist/constants/github.d.ts +2 -3
- package/dist/constants/licenses.d.ts +5 -5
- package/dist/constants/licenses.js +2 -2
- package/dist/constants/lifecycle-script-names.d.ts +3 -4
- package/dist/constants/lifecycle-script-names.js +2 -2
- package/dist/constants/maintained-node-versions.d.ts +1 -1
- package/dist/constants/maintained-node-versions.js +3 -4
- package/dist/constants/node.d.ts +21 -20
- package/dist/constants/node.js +4 -4
- package/dist/constants/package-default-node-range.d.ts +1 -1
- package/dist/constants/package-default-socket-categories.d.ts +1 -1
- package/dist/constants/package-default-socket-categories.js +2 -2
- package/dist/constants/packages.d.ts +4 -4
- package/dist/constants/packages.js +7 -5
- package/dist/constants/platform.d.ts +3 -1
- package/dist/constants/platform.js +3 -10
- package/dist/constants/{core.d.ts → sentinels.d.ts} +4 -4
- package/dist/constants/{core.js → sentinels.js} +3 -3
- package/dist/constants/socket.d.ts +4 -6
- package/dist/constants/socket.js +6 -9
- package/dist/constants/testing.d.ts +3 -3
- package/dist/constants/time.d.ts +3 -3
- package/dist/constants/typescript.d.ts +3 -3
- package/dist/cover/code.d.ts +11 -3
- package/dist/cover/code.js +27 -37
- package/dist/cover/formatters.d.ts +19 -15
- package/dist/cover/formatters.js +21 -18
- package/dist/cover/type.d.ts +4 -3
- package/dist/cover/type.js +10 -9
- package/dist/cover/types.d.ts +1 -1
- package/dist/crypto/hash.d.ts +36 -0
- package/dist/{crypto.js → crypto/hash.js} +17 -17
- package/dist/debug/_internal.d.ts +25 -0
- package/dist/debug/_internal.js +77 -0
- package/dist/debug/caller-info.d.ts +12 -0
- package/dist/debug/caller-info.js +67 -0
- package/dist/debug/namespace.d.ts +35 -0
- package/dist/debug/namespace.js +101 -0
- package/dist/{debug.d.ts → debug/output.d.ts} +23 -42
- package/dist/debug/output.js +209 -0
- package/dist/debug/types.d.ts +21 -0
- package/dist/debug/types.js +18 -0
- package/dist/dlx/_internal.d.ts +10 -0
- package/dist/dlx/_internal.js +47 -0
- package/dist/dlx/arborist.d.ts +86 -61
- package/dist/dlx/arborist.js +30 -35
- package/dist/dlx/binary-cache.d.ts +108 -0
- package/dist/dlx/binary-cache.js +212 -0
- package/dist/dlx/binary-download.d.ts +67 -0
- package/dist/dlx/binary-download.js +216 -0
- package/dist/dlx/binary-resolution.d.ts +61 -0
- package/dist/dlx/binary-resolution.js +164 -0
- package/dist/dlx/binary-types.d.ts +144 -0
- package/dist/dlx/binary-types.js +18 -0
- package/dist/dlx/binary.d.ts +39 -268
- package/dist/dlx/binary.js +40 -321
- package/dist/dlx/cache.d.ts +21 -16
- package/dist/dlx/cache.js +2 -2
- package/dist/dlx/detect.d.ts +94 -68
- package/dist/dlx/detect.js +32 -35
- package/dist/dlx/dir.d.ts +20 -18
- package/dist/dlx/dir.js +7 -14
- package/dist/dlx/firewall.d.ts +27 -0
- package/dist/dlx/firewall.js +107 -0
- package/dist/dlx/lockfile.d.ts +73 -56
- package/dist/dlx/lockfile.js +36 -44
- package/dist/dlx/manifest.d.ts +50 -51
- package/dist/dlx/manifest.js +52 -53
- package/dist/dlx/package.d.ts +83 -279
- package/dist/dlx/package.js +45 -267
- package/dist/dlx/packages.d.ts +22 -20
- package/dist/dlx/packages.js +15 -20
- package/dist/dlx/paths.d.ts +26 -23
- package/dist/dlx/paths.js +8 -15
- package/dist/dlx/spec.d.ts +25 -0
- package/dist/dlx/spec.js +63 -0
- package/dist/dlx/types.d.ts +142 -0
- package/dist/dlx/types.js +18 -0
- package/dist/eco/cargo/lockfile-format.d.ts +8 -0
- package/dist/eco/cargo/lockfile-format.js +39 -0
- package/dist/eco/cargo/manifest-format.d.ts +7 -0
- package/dist/eco/cargo/manifest-format.js +38 -0
- package/dist/eco/cargo/parse-lockfile.d.ts +84 -0
- package/dist/eco/cargo/parse-lockfile.js +257 -0
- package/dist/eco/manifest/analyze-lockfile.d.ts +10 -0
- package/dist/eco/manifest/analyze-lockfile.js +67 -0
- package/dist/eco/manifest/detect-format.d.ts +15 -0
- package/dist/eco/manifest/detect-format.js +98 -0
- package/dist/eco/manifest/find-packages.d.ts +14 -0
- package/dist/eco/manifest/find-packages.js +69 -0
- package/dist/eco/manifest/get-package-versions.d.ts +8 -0
- package/dist/eco/manifest/get-package-versions.js +52 -0
- package/dist/eco/manifest/get-package.d.ts +10 -0
- package/dist/eco/manifest/get-package.js +44 -0
- package/dist/eco/manifest/manifest-error.d.ts +18 -0
- package/dist/eco/manifest/manifest-error.js +37 -0
- package/dist/eco/manifest/parse-lockfile.d.ts +16 -0
- package/dist/eco/manifest/parse-lockfile.js +91 -0
- package/dist/eco/manifest/parse-manifest.d.ts +12 -0
- package/dist/eco/manifest/parse-manifest.js +48 -0
- package/dist/eco/manifest/parse.d.ts +9 -0
- package/dist/eco/manifest/parse.js +52 -0
- package/dist/eco/manifest/types.d.ts +10 -0
- package/dist/eco/manifest/types.js +18 -0
- package/dist/eco/npm/bun/exec.d.ts +15 -0
- package/dist/eco/npm/bun/exec.js +35 -0
- package/dist/eco/npm/manifest-format.d.ts +11 -0
- package/dist/eco/npm/manifest-format.js +38 -0
- package/dist/eco/npm/npm/exec.d.ts +24 -0
- package/dist/eco/npm/npm/exec.js +64 -0
- package/dist/eco/npm/npm/extract-package-name-from-path.d.ts +9 -0
- package/dist/eco/npm/npm/extract-package-name-from-path.js +54 -0
- package/dist/eco/npm/npm/flags.d.ts +62 -0
- package/dist/eco/npm/npm/flags.js +63 -0
- package/dist/eco/npm/npm/lockfile-format.d.ts +9 -0
- package/dist/eco/npm/npm/lockfile-format.js +42 -0
- package/dist/eco/npm/npm/parse-git-url.d.ts +13 -0
- package/dist/eco/npm/npm/parse-git-url.js +43 -0
- package/dist/eco/npm/npm/parse-lockfile.d.ts +70 -0
- package/dist/eco/npm/npm/parse-lockfile.js +224 -0
- package/dist/eco/npm/parse-package-json.d.ts +16 -0
- package/dist/eco/npm/parse-package-json.js +115 -0
- package/dist/eco/npm/pnpm/detect-pnpm-version.d.ts +7 -0
- package/dist/eco/npm/pnpm/detect-pnpm-version.js +47 -0
- package/dist/eco/npm/pnpm/exec.d.ts +26 -0
- package/dist/eco/npm/pnpm/exec.js +65 -0
- package/dist/eco/npm/pnpm/flags.d.ts +44 -0
- package/dist/eco/npm/pnpm/flags.js +76 -0
- package/dist/eco/npm/pnpm/lockfile-format.d.ts +8 -0
- package/dist/eco/npm/pnpm/lockfile-format.js +39 -0
- package/dist/eco/npm/pnpm/parse-lockfile.d.ts +69 -0
- package/dist/eco/npm/pnpm/parse-lockfile.js +274 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.d.ts +15 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +50 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.d.ts +11 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +52 -0
- package/dist/eco/npm/script.d.ts +35 -0
- package/dist/eco/npm/script.js +93 -0
- package/dist/eco/npm/vlt/exec.d.ts +16 -0
- package/dist/eco/npm/vlt/exec.js +35 -0
- package/dist/eco/npm/yarnpkg/yarn/exec.d.ts +28 -0
- package/dist/eco/npm/yarnpkg/yarn/exec.js +63 -0
- package/dist/eco/npm/yarnpkg/yarn/lockfile-format.d.ts +9 -0
- package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +39 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +61 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +261 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.d.ts +16 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +68 -0
- package/dist/{types.d.ts → eco/purl.d.ts} +14 -26
- package/dist/{types.js → eco/purl.js} +3 -3
- package/dist/eco/types.d.ts +51 -0
- package/dist/eco/types.js +18 -0
- package/dist/effects/pulse-frames.d.ts +16 -17
- package/dist/effects/pulse-frames.js +4 -4
- package/dist/effects/shimmer-keyframes.d.ts +39 -37
- package/dist/effects/shimmer-terminal.d.ts +43 -42
- package/dist/effects/shimmer-terminal.js +3 -3
- package/dist/effects/shimmer.d.ts +172 -153
- package/dist/effects/shimmer.js +78 -76
- package/dist/env/boolean.d.ts +33 -0
- package/dist/env/boolean.js +46 -0
- package/dist/env/case-insensitive.d.ts +42 -0
- package/dist/env/case-insensitive.js +42 -0
- package/dist/env/ci.d.ts +11 -12
- package/dist/env/debug.d.ts +10 -10
- package/dist/env/github.d.ts +71 -74
- package/dist/env/home.d.ts +15 -14
- package/dist/env/locale.d.ts +26 -29
- package/dist/env/node-auth-token.d.ts +10 -10
- package/dist/env/node-env.d.ts +10 -10
- package/dist/env/npm.d.ts +45 -47
- package/dist/env/number.d.ts +29 -0
- package/dist/env/number.js +54 -0
- package/dist/env/package-manager.d.ts +36 -33
- package/dist/env/package-manager.js +3 -3
- package/dist/env/path.d.ts +10 -10
- package/dist/env/pre-commit.d.ts +11 -11
- package/dist/env/pre-commit.js +2 -2
- package/dist/env/proxy.d.ts +44 -0
- package/dist/env/proxy.js +126 -0
- package/dist/env/rewire.d.ts +105 -99
- package/dist/env/rewire.js +11 -8
- package/dist/env/shell.d.ts +10 -10
- package/dist/env/socket-cli.d.ts +109 -125
- package/dist/env/socket-cli.js +7 -12
- package/dist/env/socket.d.ts +347 -130
- package/dist/env/socket.js +107 -8
- package/dist/env/string.d.ts +28 -0
- package/dist/env/string.js +47 -0
- package/dist/env/temp-dir.d.ts +26 -29
- package/dist/env/term.d.ts +10 -10
- package/dist/env/test.d.ts +29 -31
- package/dist/env/test.js +5 -4
- package/dist/env/types.d.ts +62 -0
- package/dist/env/types.js +18 -0
- package/dist/env/windows.d.ts +37 -38
- package/dist/env/xdg.d.ts +29 -29
- package/dist/errors/message.d.ts +27 -0
- package/dist/errors/message.js +49 -0
- package/dist/errors/predicates.d.ts +46 -0
- package/dist/{errors.js → errors/predicates.js} +13 -43
- package/dist/errors/stack.d.ts +16 -0
- package/dist/errors/stack.js +39 -0
- package/dist/events/exit/_internal.d.ts +68 -0
- package/dist/events/exit/_internal.js +127 -0
- package/dist/events/exit/handler.d.ts +20 -0
- package/dist/events/exit/handler.js +58 -0
- package/dist/events/exit/intercept.d.ts +8 -0
- package/dist/events/exit/intercept.js +75 -0
- package/dist/events/exit/lifecycle.d.ts +28 -0
- package/dist/events/exit/lifecycle.js +109 -0
- package/dist/events/exit/signals.d.ts +16 -0
- package/dist/events/exit/signals.js +34 -0
- package/dist/events/exit/types.d.ts +21 -0
- package/dist/events/exit/types.js +18 -0
- package/dist/events/warning/handler.d.ts +31 -0
- package/dist/events/warning/handler.js +43 -0
- package/dist/events/warning/suppress.d.ts +65 -0
- package/dist/{suppress-warnings.js → events/warning/suppress.js} +16 -28
- package/dist/external/@npmcli/package-json/lib/read-package.js +11 -1
- package/dist/external/@npmcli/package-json.js +300 -82
- package/dist/external/@npmcli/promise-spawn.js +15 -1
- package/dist/external/@socketregistry/packageurl-js.js +7 -1
- package/dist/external/@socketregistry/yocto-spinner.js +5 -1
- package/dist/external/@yarnpkg/extensions.js +1 -1
- package/dist/external/adm-zip.js +20 -4
- package/dist/external/debug.js +15 -1
- package/dist/external/external-pack.js +20 -4
- package/dist/external/fast-sort.js +3 -1
- package/dist/external/get-east-asian-width.js +3 -1
- package/dist/external/libnpmexec.js +5 -1
- package/dist/external/npm-pack.js +344 -113
- package/dist/external/p-map.js +7 -1
- package/dist/external/pico-pack.js +17 -1
- package/dist/external/pony-cause.js +1 -1
- package/dist/external/spdx-pack.js +3 -1
- package/dist/external/supports-color.js +1 -1
- package/dist/external/tar-fs.js +15 -1
- package/dist/external/which.js +11 -1
- package/dist/external/yargs-parser.js +15 -1
- package/dist/external-tools/bazel/asset-names.d.ts +66 -0
- package/dist/external-tools/bazel/asset-names.js +96 -0
- package/dist/external-tools/bazel/from-download.d.ts +49 -0
- package/dist/external-tools/bazel/from-download.js +49 -0
- package/dist/external-tools/bazel/from-path.d.ts +8 -0
- package/dist/external-tools/bazel/from-path.js +41 -0
- package/dist/external-tools/bazel/read-bazel-version-file.d.ts +12 -0
- package/dist/external-tools/bazel/read-bazel-version-file.js +61 -0
- package/dist/external-tools/bazel/resolve-asset-url.d.ts +14 -0
- package/dist/external-tools/bazel/resolve-asset-url.js +42 -0
- package/dist/external-tools/bazel/resolve-bazel-version.d.ts +19 -0
- package/dist/external-tools/bazel/resolve-bazel-version.js +59 -0
- package/dist/external-tools/bazel/resolve.d.ts +35 -0
- package/dist/external-tools/bazel/resolve.js +68 -0
- package/dist/external-tools/bazel/types.d.ts +22 -0
- package/dist/external-tools/bazel/types.js +18 -0
- package/dist/external-tools/cdxgen/asset-names.d.ts +58 -0
- package/dist/external-tools/cdxgen/asset-names.js +79 -0
- package/dist/external-tools/cdxgen/from-download.d.ts +43 -0
- package/dist/external-tools/cdxgen/from-download.js +83 -0
- package/dist/external-tools/cdxgen/from-path.d.ts +5 -0
- package/dist/external-tools/cdxgen/from-path.js +40 -0
- package/dist/external-tools/cdxgen/from-vfs.d.ts +7 -0
- package/dist/external-tools/cdxgen/from-vfs.js +47 -0
- package/dist/external-tools/cdxgen/resolve.d.ts +32 -0
- package/dist/external-tools/cdxgen/resolve.js +73 -0
- package/dist/external-tools/cdxgen/types.d.ts +33 -0
- package/dist/external-tools/cdxgen/types.js +18 -0
- package/dist/external-tools/from-download.d.ts +162 -0
- package/dist/external-tools/from-download.js +72 -0
- package/dist/external-tools/janus/asset-names.d.ts +43 -0
- package/dist/external-tools/janus/asset-names.js +57 -0
- package/dist/external-tools/janus/from-download.d.ts +26 -0
- package/dist/external-tools/janus/from-download.js +73 -0
- package/dist/external-tools/janus/from-path.d.ts +5 -0
- package/dist/external-tools/janus/from-path.js +40 -0
- package/dist/external-tools/janus/from-vfs.d.ts +7 -0
- package/dist/external-tools/janus/from-vfs.js +47 -0
- package/dist/external-tools/janus/resolve.d.ts +28 -0
- package/dist/external-tools/janus/resolve.js +73 -0
- package/dist/external-tools/janus/types.d.ts +24 -0
- package/dist/external-tools/janus/types.js +18 -0
- package/dist/external-tools/jre/asset-names.d.ts +91 -0
- package/dist/external-tools/jre/asset-names.js +88 -0
- package/dist/external-tools/jre/detect-platform-arch.d.ts +8 -0
- package/dist/external-tools/jre/detect-platform-arch.js +52 -0
- package/dist/external-tools/jre/from-download.d.ts +62 -0
- package/dist/external-tools/jre/from-download.js +70 -0
- package/dist/external-tools/jre/from-java-home.d.ts +10 -0
- package/dist/external-tools/jre/from-java-home.js +57 -0
- package/dist/external-tools/jre/from-path.d.ts +9 -0
- package/dist/external-tools/jre/from-path.js +52 -0
- package/dist/external-tools/jre/from-vfs.d.ts +17 -0
- package/dist/external-tools/jre/from-vfs.js +64 -0
- package/dist/external-tools/jre/resolve.d.ts +40 -0
- package/dist/external-tools/jre/resolve.js +78 -0
- package/dist/external-tools/jre/types.d.ts +28 -0
- package/dist/external-tools/jre/types.js +18 -0
- package/dist/external-tools/manifest.d.ts +105 -0
- package/dist/external-tools/manifest.js +167 -0
- package/dist/external-tools/opengrep/asset-names.d.ts +44 -0
- package/dist/external-tools/opengrep/asset-names.js +78 -0
- package/dist/external-tools/opengrep/from-download.d.ts +17 -0
- package/dist/external-tools/opengrep/from-download.js +83 -0
- package/dist/external-tools/opengrep/from-path.d.ts +5 -0
- package/dist/external-tools/opengrep/from-path.js +40 -0
- package/dist/external-tools/opengrep/from-vfs.d.ts +8 -0
- package/dist/external-tools/opengrep/from-vfs.js +47 -0
- package/dist/external-tools/opengrep/resolve.d.ts +26 -0
- package/dist/external-tools/opengrep/resolve.js +73 -0
- package/dist/external-tools/opengrep/types.d.ts +24 -0
- package/dist/external-tools/opengrep/types.js +18 -0
- package/dist/external-tools/sbt/asset-names.d.ts +31 -0
- package/dist/external-tools/sbt/asset-names.js +33 -0
- package/dist/external-tools/sbt/from-download.d.ts +44 -0
- package/dist/external-tools/sbt/from-download.js +64 -0
- package/dist/external-tools/sbt/from-path.d.ts +8 -0
- package/dist/external-tools/sbt/from-path.js +41 -0
- package/dist/external-tools/sbt/from-vfs.d.ts +14 -0
- package/dist/external-tools/sbt/from-vfs.js +48 -0
- package/dist/external-tools/sbt/resolve.d.ts +31 -0
- package/dist/external-tools/sbt/resolve.js +73 -0
- package/dist/external-tools/sbt/types.d.ts +32 -0
- package/dist/external-tools/sbt/types.js +18 -0
- package/dist/external-tools/synp/asset-names.d.ts +14 -0
- package/dist/external-tools/synp/asset-names.js +32 -0
- package/dist/external-tools/synp/from-download.d.ts +18 -0
- package/dist/external-tools/synp/from-download.js +44 -0
- package/dist/external-tools/synp/from-path.d.ts +5 -0
- package/dist/external-tools/synp/from-path.js +40 -0
- package/dist/external-tools/synp/from-vfs.d.ts +7 -0
- package/dist/external-tools/synp/from-vfs.js +47 -0
- package/dist/external-tools/synp/resolve.d.ts +21 -0
- package/dist/external-tools/synp/resolve.js +72 -0
- package/dist/external-tools/synp/types.d.ts +19 -0
- package/dist/external-tools/synp/types.js +18 -0
- package/dist/external-tools/trivy/asset-names.d.ts +34 -0
- package/dist/external-tools/trivy/asset-names.js +68 -0
- package/dist/external-tools/trivy/from-download.d.ts +17 -0
- package/dist/external-tools/trivy/from-download.js +67 -0
- package/dist/external-tools/trivy/from-path.d.ts +5 -0
- package/dist/external-tools/trivy/from-path.js +40 -0
- package/dist/external-tools/trivy/from-vfs.d.ts +7 -0
- package/dist/external-tools/trivy/from-vfs.js +47 -0
- package/dist/external-tools/trivy/resolve.d.ts +26 -0
- package/dist/external-tools/trivy/resolve.js +73 -0
- package/dist/external-tools/trivy/types.d.ts +24 -0
- package/dist/external-tools/trivy/types.js +18 -0
- package/dist/external-tools/trufflehog/asset-names.d.ts +34 -0
- package/dist/external-tools/trufflehog/asset-names.js +72 -0
- package/dist/external-tools/trufflehog/from-download.d.ts +37 -0
- package/dist/external-tools/trufflehog/from-download.js +65 -0
- package/dist/external-tools/trufflehog/from-path.d.ts +7 -0
- package/dist/external-tools/trufflehog/from-path.js +40 -0
- package/dist/external-tools/trufflehog/from-vfs.d.ts +11 -0
- package/dist/external-tools/trufflehog/from-vfs.js +47 -0
- package/dist/external-tools/trufflehog/resolve.d.ts +30 -0
- package/dist/external-tools/trufflehog/resolve.js +73 -0
- package/dist/external-tools/trufflehog/types.d.ts +25 -0
- package/dist/external-tools/trufflehog/types.js +18 -0
- package/dist/external-tools/uv/asset-names.d.ts +36 -0
- package/dist/external-tools/uv/asset-names.js +80 -0
- package/dist/external-tools/uv/from-download.d.ts +17 -0
- package/dist/external-tools/uv/from-download.js +68 -0
- package/dist/external-tools/uv/from-path.d.ts +5 -0
- package/dist/external-tools/uv/from-path.js +40 -0
- package/dist/external-tools/uv/from-vfs.d.ts +7 -0
- package/dist/external-tools/uv/from-vfs.js +47 -0
- package/dist/external-tools/uv/resolve.d.ts +25 -0
- package/dist/external-tools/uv/resolve.js +73 -0
- package/dist/external-tools/uv/types.d.ts +24 -0
- package/dist/external-tools/uv/types.js +18 -0
- package/dist/fs/_internal.d.ts +22 -0
- package/dist/fs/_internal.js +48 -0
- package/dist/fs/encoding.d.ts +49 -0
- package/dist/fs/encoding.js +102 -0
- package/dist/fs/find-up.d.ts +58 -0
- package/dist/fs/find-up.js +152 -0
- package/dist/fs/inspect.d.ts +117 -0
- package/dist/fs/inspect.js +112 -0
- package/dist/fs/path-cache.d.ts +21 -0
- package/dist/fs/path-cache.js +35 -0
- package/dist/fs/read-dir.d.ts +66 -0
- package/dist/fs/read-dir.js +86 -0
- package/dist/fs/read-file.d.ts +150 -0
- package/dist/fs/read-file.js +131 -0
- package/dist/fs/read-json-cache.d.ts +83 -0
- package/dist/fs/read-json-cache.js +156 -0
- package/dist/fs/read-json.d.ts +77 -0
- package/dist/fs/read-json.js +192 -0
- package/dist/fs/safe.d.ts +153 -0
- package/dist/fs/safe.js +182 -0
- package/dist/fs/types.d.ts +291 -0
- package/dist/fs/types.js +18 -0
- package/dist/fs/unique.d.ts +29 -0
- package/dist/fs/unique.js +51 -0
- package/dist/fs/validate.d.ts +40 -0
- package/dist/fs/validate.js +46 -0
- package/dist/fs/write-json.d.ts +78 -0
- package/dist/fs/write-json.js +83 -0
- package/dist/git/_internal.d.ts +105 -0
- package/dist/git/_internal.js +236 -0
- package/dist/git/changed.d.ts +145 -0
- package/dist/git/changed.js +83 -0
- package/dist/git/repo.d.ts +62 -0
- package/dist/git/repo.js +111 -0
- package/dist/git/staged.d.ts +138 -0
- package/dist/git/staged.js +71 -0
- package/dist/git/types.d.ts +109 -0
- package/dist/git/types.js +18 -0
- package/dist/git/unstaged.d.ts +141 -0
- package/dist/git/unstaged.js +71 -0
- package/dist/github/constants.d.ts +18 -0
- package/dist/github/constants.js +36 -0
- package/dist/github/errors.d.ts +36 -0
- package/dist/github/errors.js +40 -0
- package/dist/github/fetch.d.ts +89 -0
- package/dist/github/fetch.js +87 -0
- package/dist/github/ghsa.d.ts +118 -0
- package/dist/github/ghsa.js +178 -0
- package/dist/github/refs-cache.d.ts +40 -0
- package/dist/github/refs-cache.js +49 -0
- package/dist/github/refs-graphql.d.ts +42 -0
- package/dist/github/refs-graphql.js +109 -0
- package/dist/github/refs-rest.d.ts +23 -0
- package/dist/github/refs-rest.js +104 -0
- package/dist/github/refs.d.ts +84 -0
- package/dist/github/refs.js +67 -0
- package/dist/github/token.d.ts +77 -0
- package/dist/github/token.js +55 -0
- package/dist/github/types.d.ts +277 -0
- package/dist/github/types.js +18 -0
- package/dist/globs/_internal.d.ts +46 -0
- package/dist/globs/_internal.js +96 -0
- package/dist/globs/defaults.d.ts +7 -0
- package/dist/globs/defaults.js +61 -0
- package/dist/globs/match.d.ts +59 -0
- package/dist/globs/match.js +84 -0
- package/dist/globs/matcher.d.ts +46 -0
- package/dist/globs/matcher.js +99 -0
- package/dist/globs/stream.d.ts +18 -0
- package/dist/globs/stream.js +58 -0
- package/dist/globs/types.d.ts +35 -0
- package/dist/globs/types.js +18 -0
- package/dist/http-request/_internal.d.ts +18 -0
- package/dist/http-request/_internal.js +39 -0
- package/dist/http-request/browser-fetch.d.ts +10 -0
- package/dist/http-request/browser-fetch.js +32 -0
- package/dist/http-request/browser.d.ts +190 -0
- package/dist/http-request/browser.js +224 -0
- package/dist/http-request/checksums.d.ts +69 -0
- package/dist/http-request/checksums.js +72 -0
- package/dist/http-request/convenience.d.ts +104 -0
- package/dist/http-request/convenience.js +96 -0
- package/dist/http-request/download-types.d.ts +224 -0
- package/dist/http-request/download-types.js +18 -0
- package/dist/http-request/download.d.ts +71 -0
- package/dist/http-request/download.js +201 -0
- package/dist/http-request/errors.d.ts +23 -0
- package/dist/http-request/errors.js +50 -0
- package/dist/http-request/headers.d.ts +57 -0
- package/dist/http-request/headers.js +86 -0
- package/dist/http-request/request-attempt.d.ts +21 -0
- package/dist/http-request/request-attempt.js +288 -0
- package/dist/http-request/request-types.d.ts +253 -0
- package/dist/http-request/request-types.js +18 -0
- package/dist/http-request/request.d.ts +59 -0
- package/dist/http-request/request.js +111 -0
- package/dist/http-request/response-reader.d.ts +25 -0
- package/dist/http-request/response-reader.js +54 -0
- package/dist/http-request/response-types.d.ts +123 -0
- package/dist/http-request/response-types.js +40 -0
- package/dist/http-request/user-agent.d.ts +55 -0
- package/dist/http-request/user-agent.js +61 -0
- package/dist/{dlx/integrity.d.ts → integrity.d.ts} +36 -30
- package/dist/{dlx/integrity.js → integrity.js} +25 -19
- package/dist/ipc/_internal.d.ts +25 -0
- package/dist/ipc/_internal.js +50 -0
- package/dist/ipc/directory.d.ts +18 -0
- package/dist/ipc/directory.js +66 -0
- package/dist/ipc/paths.d.ts +37 -0
- package/dist/ipc/paths.js +48 -0
- package/dist/ipc/types.d.ts +22 -0
- package/dist/ipc/types.js +18 -0
- package/dist/ipc/write.d.ts +39 -0
- package/dist/ipc/write.js +77 -0
- package/dist/ipc-cli/get.d.ts +21 -0
- package/dist/{ipc-cli.js → ipc-cli/get.js} +5 -5
- package/dist/ipc-cli/types.d.ts +14 -0
- package/dist/ipc-cli/types.js +18 -0
- package/dist/json/edit.d.ts +22 -8
- package/dist/json/edit.js +85 -96
- package/dist/json/format.d.ts +100 -86
- package/dist/json/format.js +4 -3
- package/dist/json/parse.d.ts +113 -88
- package/dist/json/parse.js +30 -24
- package/dist/json/types.d.ts +133 -117
- package/dist/links/create.d.ts +65 -0
- package/dist/{links.js → links/create.js} +10 -10
- package/dist/links/types.d.ts +19 -0
- package/dist/links/types.js +18 -0
- package/dist/logger/_internal.d.ts +82 -0
- package/dist/logger/_internal.js +80 -0
- package/dist/logger/browser.d.ts +16 -0
- package/dist/logger/browser.js +65 -0
- package/dist/logger/colors.d.ts +18 -0
- package/dist/logger/colors.js +54 -0
- package/dist/logger/console.d.ts +33 -0
- package/dist/logger/console.js +119 -0
- package/dist/logger/default.d.ts +405 -0
- package/dist/logger/default.js +854 -0
- package/dist/logger/symbols-builder.d.ts +29 -0
- package/dist/logger/symbols-builder.js +61 -0
- package/dist/logger/symbols.d.ts +61 -0
- package/dist/logger/symbols.js +129 -0
- package/dist/logger/types.d.ts +88 -0
- package/dist/logger/types.js +18 -0
- package/dist/memo/_internal.d.ts +16 -0
- package/dist/memo/_internal.js +53 -0
- package/dist/memo/async.d.ts +32 -0
- package/dist/memo/async.js +120 -0
- package/dist/memo/clear.d.ts +15 -0
- package/dist/memo/clear.js +37 -0
- package/dist/memo/decorator.d.ts +29 -0
- package/dist/memo/decorator.js +40 -0
- package/dist/memo/memoize.d.ts +33 -0
- package/dist/memo/memoize.js +91 -0
- package/dist/memo/once.d.ts +25 -0
- package/dist/memo/once.js +44 -0
- package/dist/memo/types.d.ts +43 -0
- package/dist/memo/types.js +18 -0
- package/dist/memo/weak.d.ts +26 -0
- package/dist/memo/weak.js +44 -0
- package/dist/node/async-hooks.d.ts +2 -2
- package/dist/node/child-process.d.ts +5 -7
- package/dist/node/crypto.d.ts +2 -2
- package/dist/node/events.d.ts +2 -2
- package/dist/node/fs-promises.d.ts +2 -2
- package/dist/node/fs.d.ts +6 -10
- package/dist/node/http.d.ts +2 -2
- package/dist/node/https.d.ts +2 -2
- package/dist/node/module.d.ts +7 -0
- package/dist/node/module.js +41 -0
- package/dist/node/os.d.ts +2 -2
- package/dist/node/path.d.ts +2 -2
- package/dist/node/timers-promises.d.ts +2 -2
- package/dist/node/url.d.ts +2 -2
- package/dist/node/util.d.ts +2 -2
- package/dist/objects/getters.d.ts +116 -0
- package/dist/objects/getters.js +137 -0
- package/dist/objects/inspect.d.ts +67 -0
- package/dist/objects/inspect.js +59 -0
- package/dist/objects/mutate.d.ts +72 -0
- package/dist/objects/mutate.js +81 -0
- package/dist/objects/predicates.d.ts +96 -0
- package/dist/objects/predicates.js +68 -0
- package/dist/objects/sort.d.ts +88 -0
- package/dist/objects/sort.js +85 -0
- package/dist/objects/types.d.ts +68 -0
- package/dist/objects/types.js +18 -0
- package/dist/packages/edit-class.d.ts +39 -0
- package/dist/packages/edit-class.js +269 -0
- package/dist/packages/edit.d.ts +60 -61
- package/dist/packages/edit.js +21 -286
- package/dist/packages/exports.d.ts +30 -28
- package/dist/packages/exports.js +38 -34
- package/dist/packages/isolation.d.ts +16 -7
- package/dist/packages/isolation.js +52 -59
- package/dist/packages/licenses.d.ts +49 -45
- package/dist/packages/licenses.js +13 -18
- package/dist/packages/manifest.d.ts +14 -14
- package/dist/packages/manifest.js +16 -15
- package/dist/packages/normalize.d.ts +17 -16
- package/dist/packages/normalize.js +20 -17
- package/dist/packages/operations.d.ts +49 -36
- package/dist/packages/operations.js +30 -15
- package/dist/packages/provenance.d.ts +22 -9
- package/dist/packages/provenance.js +76 -66
- package/dist/packages/specs.d.ts +21 -21
- package/dist/packages/specs.js +7 -7
- package/dist/{packages.d.ts → packages/types.d.ts} +14 -20
- package/dist/packages/types.js +18 -0
- package/dist/packages/validation.d.ts +13 -13
- package/dist/packages/validation.js +2 -2
- package/dist/paths/_internal.d.ts +51 -0
- package/dist/paths/_internal.js +102 -0
- package/dist/paths/conversion.d.ts +82 -0
- package/dist/paths/conversion.js +74 -0
- package/dist/paths/dirnames.d.ts +1 -1
- package/dist/paths/exts.d.ts +1 -1
- package/dist/paths/filenames.d.ts +1 -1
- package/dist/paths/globs.d.ts +1 -1
- package/dist/paths/normalize.d.ts +30 -440
- package/dist/paths/normalize.js +49 -289
- package/dist/paths/packages.d.ts +7 -1
- package/dist/paths/packages.js +7 -12
- package/dist/paths/predicates.d.ts +129 -0
- package/dist/paths/predicates.js +121 -0
- package/dist/paths/resolve.d.ts +71 -0
- package/dist/paths/resolve.js +135 -0
- package/dist/paths/rewire.d.ts +37 -38
- package/dist/paths/rewire.js +3 -3
- package/dist/paths/socket.d.ts +146 -47
- package/dist/paths/socket.js +23 -25
- package/dist/perf/_internal.d.ts +10 -0
- package/dist/perf/_internal.js +30 -0
- package/dist/perf/enabled.d.ts +13 -0
- package/dist/perf/enabled.js +33 -0
- package/dist/perf/metrics.d.ts +51 -0
- package/dist/perf/metrics.js +74 -0
- package/dist/perf/report.d.ts +40 -0
- package/dist/perf/report.js +85 -0
- package/dist/perf/timer.d.ts +100 -0
- package/dist/perf/timer.js +137 -0
- package/dist/perf/types.d.ts +15 -0
- package/dist/perf/types.js +18 -0
- package/dist/pkg-ext/data.d.ts +8 -0
- package/dist/{package-extensions.js → pkg-ext/data.js} +4 -4
- package/dist/pkg-ext/types.d.ts +6 -0
- package/dist/pkg-ext/types.js +18 -0
- package/dist/primordials/array.d.ts +73 -0
- package/dist/primordials/array.js +220 -0
- package/dist/primordials/buffer.d.ts +17 -0
- package/dist/primordials/buffer.js +61 -0
- package/dist/primordials/date.d.ts +16 -0
- package/dist/primordials/date.js +56 -0
- package/dist/primordials/error.d.ts +19 -0
- package/dist/primordials/error.js +75 -0
- package/dist/primordials/function.d.ts +10 -0
- package/dist/primordials/function.js +42 -0
- package/dist/primordials/globals.d.ts +20 -0
- package/dist/primordials/globals.js +60 -0
- package/dist/primordials/json.d.ts +11 -0
- package/dist/primordials/json.js +33 -0
- package/dist/primordials/map-set.d.ts +35 -0
- package/dist/primordials/map-set.js +115 -0
- package/dist/primordials/math.d.ts +51 -0
- package/dist/primordials/math.js +161 -0
- package/dist/primordials/number.d.ts +25 -0
- package/dist/primordials/number.js +92 -0
- package/dist/primordials/object.d.ts +74 -0
- package/dist/primordials/object.js +142 -0
- package/dist/primordials/promise.d.ts +34 -0
- package/dist/primordials/promise.js +61 -0
- package/dist/primordials/reflect.d.ts +18 -0
- package/dist/primordials/reflect.js +66 -0
- package/dist/primordials/regexp.d.ts +14 -0
- package/dist/primordials/regexp.js +50 -0
- package/dist/primordials/string.d.ts +71 -0
- package/dist/primordials/string.js +174 -0
- package/dist/primordials/symbol.d.ts +28 -0
- package/dist/primordials/symbol.js +94 -0
- package/dist/primordials/uncurry.d.ts +18 -0
- package/dist/primordials/uncurry.js +65 -0
- package/dist/primordials/url.d.ts +13 -0
- package/dist/primordials/url.js +69 -0
- package/dist/process/_internal.d.ts +8 -0
- package/dist/process/_internal.js +33 -0
- package/dist/process/abort.d.ts +20 -0
- package/dist/{constants/process.js → process/abort.js} +3 -3
- package/dist/process/lock-instance.d.ts +19 -0
- package/dist/process/lock-instance.js +31 -0
- package/dist/process/lock-manager.d.ts +152 -0
- package/dist/{process-lock.js → process/lock-manager.js} +98 -106
- package/dist/process/lock-types.d.ts +43 -0
- package/dist/process/lock-types.js +18 -0
- package/dist/process/spawn/_internal.d.ts +24 -0
- package/dist/process/spawn/_internal.js +62 -0
- package/dist/process/spawn/child.d.ts +134 -0
- package/dist/process/spawn/child.js +216 -0
- package/dist/process/spawn/errors.d.ts +45 -0
- package/dist/process/spawn/errors.js +118 -0
- package/dist/process/spawn/stdio.d.ts +37 -0
- package/dist/process/spawn/stdio.js +38 -0
- package/dist/process/spawn/types.d.ts +325 -0
- package/dist/process/spawn/types.js +18 -0
- package/dist/process/transient.d.ts +22 -0
- package/dist/{temporary-executor.js → process/transient.js} +8 -8
- package/dist/promises/_internal.d.ts +15 -0
- package/dist/promises/_internal.js +41 -0
- package/dist/promises/iterate.d.ts +190 -0
- package/dist/promises/iterate.js +111 -0
- package/dist/promises/options.d.ts +76 -0
- package/dist/promises/options.js +108 -0
- package/dist/promises/queue.d.ts +51 -0
- package/dist/{promise-queue.js → promises/queue.js} +27 -22
- package/dist/promises/resolvers.d.ts +55 -0
- package/dist/promises/resolvers.js +49 -0
- package/dist/promises/retry.d.ts +105 -0
- package/dist/promises/retry.js +104 -0
- package/dist/promises/types.d.ts +203 -0
- package/dist/promises/types.js +18 -0
- package/dist/regexps/escape.d.ts +6 -0
- package/dist/regexps/escape.js +32 -0
- package/dist/regexps/hex.d.ts +7 -0
- package/dist/regexps/hex.js +38 -0
- package/dist/regexps/spec.d.ts +15 -0
- package/dist/{regexps.js → regexps/spec.js} +32 -36
- package/dist/releases/github-archives.d.ts +47 -36
- package/dist/releases/github-archives.js +22 -36
- package/dist/releases/github-asset-url.d.ts +72 -0
- package/dist/releases/github-asset-url.js +167 -0
- package/dist/releases/github-assets.d.ts +13 -11
- package/dist/releases/github-assets.js +2 -2
- package/dist/releases/github-auth.d.ts +9 -9
- package/dist/releases/github-downloads.d.ts +31 -26
- package/dist/releases/github-downloads.js +24 -36
- package/dist/releases/github-listing.d.ts +105 -0
- package/dist/releases/github-listing.js +171 -0
- package/dist/releases/github-types.d.ts +45 -19
- package/dist/releases/socket-btm.d.ts +149 -99
- package/dist/releases/socket-btm.js +14 -20
- package/dist/schema/parse.d.ts +14 -15
- package/dist/schema/parse.js +2 -2
- package/dist/schema/types.d.ts +49 -37
- package/dist/schema/validate.d.ts +42 -19
- package/dist/schema/validate.js +15 -6
- package/dist/sea/detect.d.ts +37 -0
- package/dist/sea/{util.js → detect.js} +6 -6
- package/dist/secrets/_internal.d.ts +57 -0
- package/dist/secrets/_internal.js +84 -0
- package/dist/secrets/find.d.ts +79 -0
- package/dist/secrets/find.js +84 -0
- package/dist/secrets/keychain.d.ts +138 -0
- package/dist/secrets/keychain.js +328 -0
- package/dist/secrets/linux.d.ts +20 -0
- package/dist/secrets/linux.js +151 -0
- package/dist/secrets/macos.d.ts +36 -0
- package/dist/secrets/macos.js +165 -0
- package/dist/secrets/rc.d.ts +139 -0
- package/dist/secrets/rc.js +196 -0
- package/dist/secrets/socket-api-token.d.ts +23 -0
- package/dist/secrets/socket-api-token.js +50 -0
- package/dist/secrets/types.d.ts +69 -0
- package/dist/secrets/types.js +18 -0
- package/dist/secrets/windows.d.ts +50 -0
- package/dist/secrets/windows.js +318 -0
- package/dist/shadow/skip.d.ts +25 -0
- package/dist/{shadow.js → shadow/skip.js} +4 -4
- package/dist/shadow/types.d.ts +8 -0
- package/dist/shadow/types.js +18 -0
- package/dist/smol/detect.d.ts +80 -0
- package/dist/smol/{util.js → detect.js} +16 -24
- package/dist/smol/http.d.ts +60 -0
- package/dist/smol/http.js +42 -0
- package/dist/smol/https.d.ts +59 -0
- package/dist/smol/https.js +42 -0
- package/dist/smol/manifest.d.ts +140 -0
- package/dist/smol/manifest.js +42 -0
- package/dist/smol/primordial.d.ts +16 -21
- package/dist/smol/primordial.js +7 -11
- package/dist/smol/purl.d.ts +84 -0
- package/dist/smol/purl.js +42 -0
- package/dist/smol/versions.d.ts +11 -14
- package/dist/smol/versions.js +7 -11
- package/dist/smol/vfs.d.ts +99 -0
- package/dist/smol/vfs.js +43 -0
- package/dist/sorts/_internal.d.ts +9 -0
- package/dist/sorts/_internal.js +47 -0
- package/dist/sorts/natural.d.ts +39 -0
- package/dist/{sorts.js → sorts/natural.js} +5 -42
- package/dist/sorts/semver.d.ts +15 -0
- package/dist/sorts/semver.js +46 -0
- package/dist/sorts/strings.d.ts +16 -0
- package/dist/sorts/strings.js +33 -0
- package/dist/sorts/types.d.ts +7 -0
- package/dist/sorts/types.js +18 -0
- package/dist/spinner/default.d.ts +49 -0
- package/dist/spinner/default.js +70 -0
- package/dist/spinner/format.d.ts +64 -0
- package/dist/spinner/format.js +83 -0
- package/dist/spinner/spinner.d.ts +40 -0
- package/dist/spinner/spinner.js +802 -0
- package/dist/spinner/types.d.ts +368 -0
- package/dist/spinner/types.js +18 -0
- package/dist/spinner/with.d.ts +125 -0
- package/dist/spinner/with.js +144 -0
- package/dist/ssri/convert.d.ts +48 -0
- package/dist/{ssri.js → ssri/convert.js} +11 -34
- package/dist/ssri/parse.d.ts +27 -0
- package/dist/ssri/parse.js +40 -0
- package/dist/ssri/validate.d.ts +41 -0
- package/dist/ssri/validate.js +39 -0
- package/dist/stdio/{_stream.d.ts → _internal.d.ts} +10 -5
- package/dist/stdio/{_stream.js → _internal.js} +3 -3
- package/dist/stdio/clear.d.ts +98 -84
- package/dist/stdio/divider.d.ts +100 -78
- package/dist/stdio/divider.js +36 -14
- package/dist/stdio/footer.d.ts +75 -51
- package/dist/stdio/footer.js +28 -18
- package/dist/stdio/header.d.ts +61 -50
- package/dist/stdio/header.js +15 -13
- package/dist/stdio/progress.d.ts +67 -57
- package/dist/stdio/progress.js +55 -51
- package/dist/stdio/prompts.d.ts +147 -100
- package/dist/stdio/prompts.js +23 -15
- package/dist/stdio/stderr.d.ts +86 -84
- package/dist/stdio/stderr.js +6 -6
- package/dist/stdio/stdout.d.ts +77 -78
- package/dist/stdio/stdout.js +6 -6
- package/dist/streams/parallel.d.ts +40 -0
- package/dist/{streams.js → streams/parallel.js} +10 -27
- package/dist/streams/transform.d.ts +20 -0
- package/dist/streams/transform.js +48 -0
- package/dist/strings/format.d.ts +115 -0
- package/dist/strings/format.js +73 -0
- package/dist/strings/predicates.d.ts +52 -0
- package/dist/strings/predicates.js +39 -0
- package/dist/strings/search.d.ts +34 -0
- package/dist/strings/search.js +45 -0
- package/dist/strings/transform.d.ts +80 -0
- package/dist/strings/transform.js +79 -0
- package/dist/strings/types.d.ts +38 -0
- package/dist/strings/types.js +18 -0
- package/dist/strings/width.d.ts +42 -0
- package/dist/strings/width.js +95 -0
- package/dist/tables/bordered.d.ts +44 -0
- package/dist/tables/bordered.js +84 -0
- package/dist/tables/padding.d.ts +18 -0
- package/dist/tables/padding.js +51 -0
- package/dist/tables/simple.d.ts +36 -0
- package/dist/tables/simple.js +73 -0
- package/dist/tables/types.d.ts +15 -0
- package/dist/tables/types.js +18 -0
- package/dist/temporal/instant.d.ts +39 -0
- package/dist/temporal/instant.js +91 -0
- package/dist/temporal/now.d.ts +24 -0
- package/dist/temporal/now.js +34 -0
- package/dist/temporal/slots.d.ts +32 -0
- package/dist/temporal/slots.js +45 -0
- package/dist/temporal/system.d.ts +20 -0
- package/dist/temporal/system.js +42 -0
- package/dist/temporal/temporal.d.ts +22 -0
- package/dist/temporal/temporal.js +43 -0
- package/dist/themes/context.d.ts +65 -48
- package/dist/themes/context.js +6 -2
- package/dist/themes/resolve.d.ts +90 -0
- package/dist/themes/{utils.js → resolve.js} +6 -6
- package/dist/themes/themes.d.ts +14 -16
- package/dist/themes/types.d.ts +93 -35
- package/dist/url/parse.d.ts +26 -0
- package/dist/url/parse.js +57 -0
- package/dist/url/predicates.d.ts +15 -0
- package/dist/url/predicates.js +34 -0
- package/dist/url/search-params.d.ts +71 -0
- package/dist/{url.js → url/search-params.js} +19 -54
- package/dist/url/types.d.ts +20 -0
- package/dist/url/types.js +18 -0
- package/dist/versions/_internal.d.ts +24 -0
- package/dist/versions/_internal.js +37 -0
- package/dist/versions/compare.d.ts +57 -0
- package/dist/versions/compare.js +65 -0
- package/dist/versions/modify.d.ts +28 -0
- package/dist/versions/modify.js +44 -0
- package/dist/versions/parse.d.ts +67 -0
- package/dist/versions/parse.js +77 -0
- package/dist/versions/range.d.ts +45 -0
- package/dist/versions/range.js +50 -0
- package/dist/versions/types.d.ts +13 -0
- package/dist/versions/types.js +18 -0
- package/dist/words/article.d.ts +14 -0
- package/dist/words/article.js +33 -0
- package/dist/words/capitalize.d.ts +15 -0
- package/dist/{words.js → words/capitalize.js} +5 -18
- package/dist/words/pluralize.d.ts +16 -0
- package/dist/words/pluralize.js +34 -0
- package/dist/words/types.d.ts +7 -0
- package/dist/words/types.js +18 -0
- package/package.json +2154 -252
- package/dist/abort.d.ts +0 -27
- package/dist/agent.d.ts +0 -196
- package/dist/agent.js +0 -287
- package/dist/ansi.d.ts +0 -39
- package/dist/archives.d.ts +0 -95
- package/dist/archives.js +0 -408
- package/dist/argv/flags.d.ts +0 -292
- package/dist/argv/flags.js +0 -297
- package/dist/arrays.d.ts +0 -168
- package/dist/bin.d.ts +0 -181
- package/dist/bin.js +0 -544
- package/dist/cacache.d.ts +0 -130
- package/dist/cacache.js +0 -156
- package/dist/cache-with-ttl.d.ts +0 -165
- package/dist/colors.d.ts +0 -49
- package/dist/compression.d.ts +0 -218
- package/dist/constants/process.d.ts +0 -20
- package/dist/crypto.d.ts +0 -36
- package/dist/debug.js +0 -337
- package/dist/env/helpers.d.ts +0 -66
- package/dist/env.d.ts +0 -182
- package/dist/env.js +0 -205
- package/dist/errors.d.ts +0 -100
- package/dist/fs.d.ts +0 -916
- package/dist/fs.js +0 -808
- package/dist/git.d.ts +0 -546
- package/dist/git.js +0 -409
- package/dist/github.d.ts +0 -526
- package/dist/github.js +0 -448
- package/dist/globs.d.ts +0 -119
- package/dist/globs.js +0 -282
- package/dist/http-request.d.ts +0 -951
- package/dist/http-request.js +0 -761
- package/dist/ipc-cli.d.ts +0 -28
- package/dist/ipc.d.ts +0 -76
- package/dist/ipc.js +0 -130
- package/dist/links.d.ts +0 -69
- package/dist/logger.d.ts +0 -993
- package/dist/logger.js +0 -1498
- package/dist/memoization.d.ts +0 -131
- package/dist/memoization.js +0 -243
- package/dist/objects.d.ts +0 -500
- package/dist/objects.js +0 -303
- package/dist/package-extensions.d.ts +0 -9
- package/dist/packages.js +0 -132
- package/dist/performance.d.ts +0 -181
- package/dist/performance.js +0 -233
- package/dist/primordials.d.ts +0 -420
- package/dist/primordials.js +0 -1116
- package/dist/process-lock.d.ts +0 -180
- package/dist/promise-queue.d.ts +0 -48
- package/dist/promises.d.ts +0 -506
- package/dist/promises.js +0 -292
- package/dist/regexps.d.ts +0 -6
- package/dist/releases/github-api.d.ts +0 -56
- package/dist/releases/github-api.js +0 -275
- package/dist/sea/util.d.ts +0 -43
- package/dist/shadow.d.ts +0 -28
- package/dist/signal-exit.d.ts +0 -50
- package/dist/signal-exit.js +0 -247
- package/dist/smol/util.d.ts +0 -87
- package/dist/sorts.d.ts +0 -59
- package/dist/spawn.d.ts +0 -454
- package/dist/spawn.js +0 -334
- package/dist/spinner.d.ts +0 -444
- package/dist/spinner.js +0 -988
- package/dist/ssri.d.ts +0 -90
- package/dist/streams.d.ts +0 -45
- package/dist/strings.d.ts +0 -414
- package/dist/strings.js +0 -218
- package/dist/suppress-warnings.d.ts +0 -81
- package/dist/tables.d.ts +0 -73
- package/dist/tables.js +0 -133
- package/dist/temporary-executor.d.ts +0 -20
- package/dist/themes/utils.d.ts +0 -86
- package/dist/url.d.ts +0 -114
- package/dist/versions.d.ts +0 -207
- package/dist/versions.js +0 -181
- package/dist/words.d.ts +0 -39
package/CHANGELOG.md
CHANGED
|
@@ -5,46 +5,146 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [6.0.1](https://github.com/SocketDev/socket-lib/releases/tag/v6.0.1) - 2026-05-25
|
|
9
|
+
|
|
10
|
+
Five additive features plus public-surface polish on top of 6.0.0. The path renames drop doubled-name leaves (`spawn/spawn`, `ttl-cache/cache`, `globs/glob`, `links/link`, `promise-queue/queue`) and regroup three top-level directories whose contents were the same concept (process events) under a new `events/` umbrella. Renames are path-only; no symbol renames or behavior changes.
|
|
9
11
|
|
|
10
12
|
### Added
|
|
11
13
|
|
|
12
|
-
- **`
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
- Helpers: `BROTLI_EXTS` / `GZIP_EXTS` `ReadonlySet<string>` constants; `stripExt(filePath, exts)` for trimming a recognized extension from a path; `resolveBrotliOptions` / `resolveGzipOptions` for translating `CompressOptions` into the underlying zlib option shapes
|
|
19
|
-
- `CompressOptions` / `CompressFileOptions` interfaces
|
|
20
|
-
- **`socket-lib` CLI (new `bin` entry)** — fleet-wide static-analysis dispatcher invoked via `pnpm exec socket-lib <command>`. Initial subcommand: `check primordials` (alias `check prim`) — diffs every name destructured from `primordials` in scanned source against `@socketsecurity/lib`'s exposed primordials set, emitting unmapped or missing-from-lib findings. Reads sectional config from `.socket-lib.json` (with `.config/socket-lib.json` as a fallback) or a bare object for single-check setups. Flags: `--config / -c <path>` (defaults to `.socket-lib.json`, falls back to `.config/socket-lib.json`), `--explain`, `--json`, `--silent`, `--help`. Lifted from socket-btm's `scripts/check-primordials-coverage.mts` so the same drift gate now ships to every consumer.
|
|
21
|
-
- **`dlx/package` `installRoot` option** — new `EnsurePackageInstallOptions` (and `DlxPackageOptions`) field overriding the install root passed to Arborist. Default remains `~/.socket/_dlx/<cacheKey>/`; when set, the value is used verbatim. Lets build pipelines colocate the install with their own gitignored outputs (e.g. ink-builder bundling ink via esbuild). Caller owns per-spec separation; see JSDoc for the full contract.
|
|
14
|
+
- **`colors/socket-palette`** — Socket-branded 24-bit ANSI palette. Three themes (`'light' | 'dark' | 'synthwave'`) expose status colors (`success` / `warning` / `alert` / `error` / `info`) plus the Socket brand constants (`socketPurple` `#8c50ff`, `socketPink` `#ff00aa`). Each helper emits `\x1b[38;2;R;G;Bm` directly rather than rounding to the legacy 8-color palette, so truecolor terminals render the brand hex byte-for-byte. Hex values exposed via `palette.hex.*` for callers building their own escapes. Default theme is `'dark'`.
|
|
15
|
+
- **`logger/browser`** — minimal `console`-backed `Logger` mirroring the public `success` / `fail` / `warn` / `error` / `info` / `log` surface, with no `node:process` / `node:console` / `node:os` imports. Usable from Chrome MV3 service workers, content scripts, and popups. Importing `@socketsecurity/lib/logger` in a bundler that resolves the `'browser'` export condition (rolldown, vite, esbuild) automatically picks up this shim; Node consumers continue to get the full `Logger` class.
|
|
16
|
+
- **`'browser'` export condition** on 40 leaf modules. 35 zero-Node leaf utilities (`arrays`, `colors`, `errors`, `objects`, `regexps`, `strings`, `url`, `versions`, `words` families) carry a `'browser'` condition signalling browser-safety to bundlers. Five leaves with dedicated browser implementations (`logger/browser`, `http-request/browser`, `http-request/browser-fetch`) route to the alternate file. Browser-incompatible modules (`fs`, `archives`, `bin`, subprocess / TTY / OS-secrets surfaces) deliberately omit the condition. Full compatibility matrix in [`docs/browser-compatibility.md`](./docs/browser-compatibility.md).
|
|
17
|
+
- **`http-request` `signal` option (Node-side parity).** `HttpRequestOptions.signal?: AbortSignal | undefined` is now plumbed through `request-attempt` → `httpModule.request()`. An aborted signal short-circuits the retry loop (caller cancel is not retryable). Brings the Node side to parity with the browser side, which already exposes `signal` via `AbortController` on `fetch()`.
|
|
18
|
+
- **Default-on read-result cache for `fs/read-json` `readJson` / `readJsonSync`.** Process-scoped LRU cache keyed on `path + ino + size + mtimeMs`. Safe by four guards: stat-validated keys (re-read on stat mismatch), defensive clone on both insert and hit (caller mutations can't poison the entry), reviver opt-out (function identity isn't safely hashable), and per-call `cache: false` escape hatch. Cap defaults to 256 entries (env `SOCKET_LIB_READ_JSON_CACHE_MAX` or `setReadJsonCacheMax()`); TTL defaults to 5 min (env `SOCKET_LIB_READ_JSON_CACHE_TTL_MS` or `setReadJsonCacheTtlMs()`; set to `0` to disable TTL). `clearReadJsonCache()` + `getReadJsonCacheStats()` exported for tests and long-running daemons.
|
|
19
|
+
- **`argv/parse-args-string`** — `parseArgsString(cmd)` tokenizes a shell-style command string into an argv array. Recognizes bare tokens, single + double quoted tokens, and mixed `key="value"` tokens. Use for turning a string representation of a command (from config, a `bin` field, a test fixture) into argv that `child_process.spawn` / `execFileSync` accepts directly, bypassing platform shell quoting differences (`cmd.exe` vs `bash`).
|
|
22
20
|
|
|
23
|
-
|
|
21
|
+
### Changed (breaking)
|
|
22
|
+
|
|
23
|
+
- **`spawn/*` → `process/spawn/*`.** Directory moved under `process/` (which already housed `process/abort`); the function leaf renames from `spawn/spawn` to `process/spawn/child` (the spawned child is what `spawn()` returns). Sibling files keep their names: `process/spawn/{errors,stdio,types,_internal}`.
|
|
24
|
+
- **`signal-exit/*` → `events/exit/*`.** Directory merged into a new `events/` umbrella. Entry leaf renames from `signal-exit/register` to `events/exit/handler`. Sibling files unchanged: `events/exit/{intercept,lifecycle,signals,types,_internal}`.
|
|
25
|
+
- **`warnings/*` → `events/warning/*`.** Sibling of `events/exit/` under the new `events/` umbrella. Entry leaf renames from `warnings/event-target` to `events/warning/handler`; `warnings/suppress` becomes `events/warning/suppress`.
|
|
26
|
+
- **`ttl-cache/*` → `cache/ttl/*`.** Directory renamed; entry leaf renames from `ttl-cache/cache` to `cache/ttl/store`. `ttl-cache/types` becomes `cache/ttl/types`.
|
|
27
|
+
- **`promise-queue/*` folded into existing `promises/`.** `promise-queue/queue` becomes `promises/queue`; `promise-queue/types` merges into the existing `promises/types`.
|
|
28
|
+
- **`spinner/registry` → `spinner/default`.** Matches the `getDefaultSpinner()` naming pattern — the leaf is "the default spinner", not "the registry of spinners".
|
|
29
|
+
- **`logger/logger` → `logger/default`.** Matches the `getDefaultLogger()` naming pattern; drops the doubled segment.
|
|
30
|
+
- **`globs/glob` → `globs/match`.** Drops the doubled segment; `match` describes what the function does (pattern-match files), not what type the file is.
|
|
31
|
+
- **`links/link` → `links/create`.** Drops the doubled segment; `create` describes the verb (`createSymlink`).
|
|
32
|
+
- **`exports` map refreshed** for all renamed/moved leaves. The `./promises/types` entry stays unchanged — `promise-queue/types` content was folded into it.
|
|
33
|
+
|
|
34
|
+
### Removed (breaking)
|
|
35
|
+
|
|
36
|
+
- **Top-level directories `spawn/`, `signal-exit/`, `warnings/`, `ttl-cache/`, `promise-queue/`.** All five disappear in favor of the regrouped layouts above. No backcompat aliases.
|
|
37
|
+
|
|
38
|
+
### Migration
|
|
39
|
+
|
|
40
|
+
```diff
|
|
41
|
+
- import { spawn, spawnSync } from '@socketsecurity/lib/spawn/spawn'
|
|
42
|
+
- import { isSpawnError, SpawnError } from '@socketsecurity/lib/spawn/errors'
|
|
43
|
+
- import type { SpawnOptions } from '@socketsecurity/lib/spawn/types'
|
|
44
|
+
+ import {
|
|
45
|
+
+ spawn,
|
|
46
|
+
+ spawnSync,
|
|
47
|
+
+ isSpawnError,
|
|
48
|
+
+ SpawnError,
|
|
49
|
+
+ } from '@socketsecurity/lib/process/spawn/child'
|
|
50
|
+
+ import type { SpawnOptions } from '@socketsecurity/lib/process/spawn/types'
|
|
51
|
+
|
|
52
|
+
- import { onExit } from '@socketsecurity/lib/signal-exit/register'
|
|
53
|
+
+ import { onExit } from '@socketsecurity/lib/events/exit/handler'
|
|
54
|
+
|
|
55
|
+
- import { suppressDeprecationWarnings } from '@socketsecurity/lib/warnings/suppress'
|
|
56
|
+
+ import { suppressDeprecationWarnings } from '@socketsecurity/lib/events/warning/suppress'
|
|
57
|
+
|
|
58
|
+
- import { createTtlCache, TtlCache } from '@socketsecurity/lib/ttl-cache/cache'
|
|
59
|
+
+ import { createTtlCache, TtlCache } from '@socketsecurity/lib/cache/ttl/store'
|
|
60
|
+
|
|
61
|
+
- import { getDefaultSpinner } from '@socketsecurity/lib/spinner/registry'
|
|
62
|
+
+ import { getDefaultSpinner } from '@socketsecurity/lib/spinner/default'
|
|
63
|
+
|
|
64
|
+
- import { getDefaultLogger } from '@socketsecurity/lib/logger/logger'
|
|
65
|
+
+ import { getDefaultLogger } from '@socketsecurity/lib/logger/default'
|
|
66
|
+
|
|
67
|
+
- import { PromiseQueue } from '@socketsecurity/lib/promise-queue/queue'
|
|
68
|
+
+ import { PromiseQueue } from '@socketsecurity/lib/promises/queue'
|
|
69
|
+
|
|
70
|
+
- import { glob } from '@socketsecurity/lib/globs/glob'
|
|
71
|
+
+ import { glob } from '@socketsecurity/lib/globs/match'
|
|
72
|
+
|
|
73
|
+
- import { createSymlink } from '@socketsecurity/lib/links/link'
|
|
74
|
+
+ import { createSymlink } from '@socketsecurity/lib/links/create'
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
No symbol names changed. No behavior changes.
|
|
78
|
+
|
|
79
|
+
## [6.0.0](https://github.com/SocketDev/socket-lib/releases/tag/v6.0.0) - 2026-05-20
|
|
80
|
+
|
|
81
|
+
Public-surface reshape. All top-level barrels are gone; import from named leaf subpaths instead. `@socketsecurity/lib/logger` and `@socketsecurity/lib/errors` stay as aliases.
|
|
82
|
+
|
|
83
|
+
### Removed (breaking)
|
|
84
|
+
|
|
85
|
+
- **All top-level barrel modules.** Replace with leaf subpaths — e.g. `fs` → `fs/safe`, `http-request` → `http-request/convenience`, `packages` → `packages/operations`, `versions` → `versions/compare`. Affects `fs`, `http-request`, `spinner`, `git`, `github`, `spawn`, `bin`, `primordials`, `objects`, `strings`, `promises`, `arrays`, `url`, `packages`, `cacache`, `signal-exit`, `compression`, `archives`, `globs`, `regexps`, `ssri`, `colors`, `ansi`, `crypto`, `abort`, `streams`, `links`, `shadow`, `ipc`, `ipc-cli`, `errors`, `words`, `tables`, `sorts`, `env`, `debug`, `versions`, `types`.
|
|
86
|
+
- **`agent` removed.** Per-tool helpers under `eco/npm/<tool>/{exec,flags}` (`bun`, `npm`, `pnpm`, `vlt`, `yarnpkg/yarn`).
|
|
87
|
+
- **`types/` removed.** Schema types under `eco/purl` and `eco/types`.
|
|
88
|
+
- **Subdir renames.** `memoization/` → `memo/`, `performance/` → `perf/`, `suppress-warnings/` → `warnings/`, `cache-with-ttl/` → `ttl-cache/`, `process-lock/` → `process/`, `package-extensions/` → `pkg-ext/`, `temporary-executor/` → `process/transient` (`isRunningInTemporaryExecutor` → `isTransientProcess`).
|
|
89
|
+
- **`SOCKET_LIB_USER_AGENT` + `SOCKET_LIB_URL` removed.** Use `getSocketCallerUserAgent()` from `http-request/user-agent` — see Added.
|
|
90
|
+
|
|
91
|
+
### Changed (breaking)
|
|
92
|
+
|
|
93
|
+
- **`versions` API renamed.** `compareVersions` → `compare`, `isEqual` → `eq` (+ new `neq`), `isLessThan(OrEqual)` → `lt`/`lte`, `isGreaterThan(OrEqual)` → `gt`/`gte`, `sortVersions` → `sort`, `sortVersionsDesc` → `rsort`. Runs through `node:smol-versions` when present, falls back to `semver`.
|
|
94
|
+
- **`dlx/manifest` `ManifestEntry` → `DlxManifestEntry`** (disambiguates from `eco/types` `ManifestEntry`).
|
|
95
|
+
- **`dlx/arborist getBaseArboristOptions`** second arg is now `{ quiet }` instead of positional `quiet: boolean`.
|
|
96
|
+
- **Predicates renamed for scope clarity** — cwd/process-scoped predicates now carry the scope in the name.
|
|
97
|
+
- **Default `User-Agent` header** now `socketsecurity-lib/<version> node/<node-version> <platform>/<arch>` (was `socketsecurity-lib/<version> (<url>)`).
|
|
24
98
|
|
|
25
99
|
### Added
|
|
26
100
|
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
101
|
+
- **`http-request/user-agent`** — `buildUserAgent({ name, version }, caller?)` for the canonical three-token UA, and `getSocketCallerUserAgent()` for the lib's own outbound requests. Set `SOCKET_CALLER_USER_AGENT` to append your own identifier to the lib UA (empty/whitespace is ignored).
|
|
102
|
+
- **`packages/operations#pkgNameToSlug(name)`** — `@scope/name` → `scope-name`, plain names unchanged.
|
|
103
|
+
- **`secrets/socket-api-token`** — `readSocketApiToken()` / `readSocketApiTokenSync()` resolve the Socket API token from keychain → `SOCKET_API_TOKEN` (canonical) → `SOCKET_API_KEY` (legacy). Pass `{ allowEnvOnly }` to skip keychain in headless contexts.
|
|
104
|
+
- **`ai/discover` + `ai/spawn`** — locked-down spawn helpers for Claude / Codex / Gemini / OpenCode CLIs. Type-level enforcement of the four lockdown flags (`tools`, `allowedTools`, `disallowedTools`, `permissionMode: 'dontAsk'`). Retries HTTP 529 / "Overloaded" with 5 s / 15 s / 45 s backoff.
|
|
105
|
+
- **`socket-lib check primordials --fix`** — applies suggested rewrites for `.socket-lib.json`-tracked drift.
|
|
106
|
+
- **9 new primordial exports** (305 total) — Array.prototype: `ToLocaleString`, `ToString`. String.prototype: `IsWellFormed` (ES2024), `ToString`, `ToWellFormed` (ES2024), `ValueOf`. Number.prototype: `ToExponential`, `ToPrecision`, `ValueOf`. `StringPrototypeIsWellFormed` routes through `node:smol-primordial` on the smol Node binary — ASCII strings short-circuit to `true` without an O(n) lone-surrogate scan.
|
|
107
|
+
|
|
108
|
+
### Fixed
|
|
109
|
+
|
|
110
|
+
- **pnpm v9 `isDev` derivation.** Snapshot entries were stuck at `depType: 'prod'` because v9 dropped the per-snapshot `dev` marker. Now derived per-package across all importer blocks; ties go to prod, matching pnpm's resolver.
|
|
111
|
+
- **yarn `dependenciesMeta` inversion.** A child's `optional: true` was flipping the parent's `isOptional`; flags now refer to the child as declared.
|
|
112
|
+
- **pnpm v9 phantom PackageRef.** Block-shape importer entries emitted a parent ref with `version: ''` before the indented `version:` was consumed.
|
|
113
|
+
- **pnpm v9 protocol filter.** `workspace:`, `file:`, and `link:` importer values are no longer surfaced as registry refs.
|
|
114
|
+
- **npm v1 alias extraction.** Aliased installs (`"alias": { "version": "npm:<real>@<ver>" }`) now surface the real `{ name, version }`; the alias key is preserved on `_index`.
|
|
115
|
+
- **npm v2/v3 workspace + alias name preference.** Path-keyed workspace entries and aliased installs honor the explicit `pkg.name` over the path-derived fallback.
|
|
116
|
+
|
|
117
|
+
### Migration
|
|
118
|
+
|
|
119
|
+
```diff
|
|
120
|
+
- import { safeDelete, readJson } from '@socketsecurity/lib/fs'
|
|
121
|
+
+ import { safeDelete } from '@socketsecurity/lib/fs/safe'
|
|
122
|
+
+ import { readJson } from '@socketsecurity/lib/fs/read-json'
|
|
123
|
+
|
|
124
|
+
- import { httpJson } from '@socketsecurity/lib/http-request'
|
|
125
|
+
+ import { httpJson } from '@socketsecurity/lib/http-request/convenience'
|
|
37
126
|
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
127
|
+
- import { compareVersions, isLessThan, sortVersions } from '@socketsecurity/lib/versions'
|
|
128
|
+
- compareVersions(a, b); isLessThan(a, b); sortVersions(arr)
|
|
129
|
+
+ import { compare, lt, sort } from '@socketsecurity/lib/versions/compare'
|
|
130
|
+
+ compare(a, b); lt(a, b); sort(arr)
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## [5.28.0](https://github.com/SocketDev/socket-lib/releases/tag/v5.28.0) - 2026-05-06
|
|
134
|
+
|
|
135
|
+
### Added
|
|
136
|
+
|
|
137
|
+
- **`compression` (new)** — brotli + gzip helpers with in-memory `Buffer`, file-to-file (with `{ inPlace: true }`), and stream-creator shapes. Detection (`isBrotliCompressed` / `isGzipCompressed` magic-byte sniffing), extension classification (`hasBrotliExt` / `hasGzipExt`), `BROTLI_EXTS` / `GZIP_EXTS` constants, `stripExt(path, exts)`, and `CompressOptions` / `CompressFileOptions` types.
|
|
138
|
+
- **`socket-lib` CLI** — `pnpm exec socket-lib <command>` dispatcher. First subcommand: `check primordials` (alias `check prim`) diffs source-destructured primordials against the lib's set. Reads `.socket-lib.json` (or `.config/socket-lib.json`). Flags: `--config`, `--explain`, `--json`, `--silent`, `--help`.
|
|
139
|
+
- **`dlx/package` `installRoot`** option overrides the Arborist install root (default `~/.socket/_dlx/<cacheKey>/`). Useful for colocating installs with consumer-owned build outputs.
|
|
140
|
+
|
|
141
|
+
## [5.27.0](https://github.com/SocketDev/socket-lib/releases/tag/v5.27.0) - 2026-05-04
|
|
142
|
+
|
|
143
|
+
### Added
|
|
43
144
|
|
|
44
|
-
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
- Replaces ~30 ad-hoc copies of the same lazy-loader boilerplate previously scattered across `http-request.ts`, `spawn.ts`, `fs.ts`, `crypto.ts`, etc.
|
|
145
|
+
- **45 new `primordials` exports** (296 total) — `BigIntCtor`; 24 `Math.*` methods + 8 constants (`MathF16round` typed `| undefined` for ES2025); 7 `Number` constants; 10 `Symbol` well-knowns + 3 prototype helpers (`SymbolAsyncDispose` / `SymbolDispose` typed `| undefined`); `FunctionPrototypeToString`; ES2023 array-copy (`ArrayPrototypeToSpliced`, `ArrayPrototypeWith`); `InfinityValue` / `NaNValue` / `globalThisRef`; `ObjectPrototype{Define,Lookup}{Getter,Setter}`; V8 stack-trace API.
|
|
146
|
+
- **`smol/*`** — feature-detect for socket-btm's smol Node binary. `smol/detect` (`isSmol()`), `smol/util` (`getSmolUtil()` — native `uncurryThis` / `applyBind`), `smol/primordial` (`getSmolPrimordial()` — V8 Fast API typed `Math.*` / `Number.is*`). `primordials` routes through these on smol transparently; no call-site changes.
|
|
147
|
+
- **`node/*`** — per-builtin lazy-loaders, side-effect-free for tree-shaking: `node/fs`, `node/path`, `node/crypto`, `node/http`, `node/https`, `node/os`, `node/util`, `node/url`, `node/events`, `node/child-process`, `node/async-hooks`, `node/fs-promises`, `node/timers-promises`.
|
|
48
148
|
|
|
49
149
|
## [5.26.1](https://github.com/SocketDev/socket-lib/releases/tag/v5.26.1) - 2026-05-01
|
|
50
150
|
|
|
@@ -78,12 +178,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
78
178
|
|
|
79
179
|
### Fixed
|
|
80
180
|
|
|
81
|
-
- `globs` `getGlobMatcher` —
|
|
82
|
-
- `globs` `glob` / `globSync` —
|
|
83
|
-
- `globs` `glob` / `globSync` / `globStreamLicenses` —
|
|
84
|
-
- `releases/github-api
|
|
85
|
-
- `github` `resolveRefToSha` and `fetchGhsaDetails` get the same GraphQL fallback for the same incident shape
|
|
86
|
-
- All fallbacks only fire on the empty-body signature; real 404s, rate-limits, and 5xx still propagate
|
|
181
|
+
- `globs` `getGlobMatcher` — `path.matchesGlob` fast-path only activates when the caller opts out of both picomatch defaults (`nocase: false` AND `dot: false`); previously took the fast-path under default options and silently broke case-insensitive matching.
|
|
182
|
+
- `globs` `glob` / `globSync` — results normalized to forward slashes on Windows regardless of backend (`node:fs.glob` returns native-OS separators).
|
|
183
|
+
- `globs` `glob` / `globSync` / `globStreamLicenses` — trailing `/` stripped from `ignore` patterns before passing to fast-glob (gitignore-style `dist/` was silently dropped at the deep-filter level). Workaround for [mrmlnc/fast-glob#437](https://github.com/mrmlnc/fast-glob/issues/437).
|
|
184
|
+
- GitHub helpers (`releases/github-api`, `github/resolveRefToSha`, `fetchGhsaDetails`) fall back to GraphQL on the "search-degraded" 200 OK + empty body shape. Real 404s / rate-limits / 5xx still propagate.
|
|
87
185
|
|
|
88
186
|
## [5.26.0](https://github.com/SocketDev/socket-lib/releases/tag/v5.26.0) - 2026-04-27
|
|
89
187
|
|
package/README.md
CHANGED
|
@@ -2,20 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://socket.dev/npm/package/@socketsecurity/lib)
|
|
4
4
|
[](https://github.com/SocketDev/socket-lib/actions/workflows/ci.yml)
|
|
5
|
-

|
|
6
6
|
|
|
7
7
|
[](https://twitter.com/SocketSecurity)
|
|
8
8
|
[](https://bsky.app/profile/socket.dev)
|
|
9
9
|
|
|
10
10
|
Core utilities for [Socket.dev](https://socket.dev/) tools: file system, processes, HTTP, env detection, logging, spinners, and more. Tree-shakeable, TypeScript-first, cross-platform.
|
|
11
11
|
|
|
12
|
+
## Why this repo exists
|
|
13
|
+
|
|
14
|
+
`@socketsecurity/lib` is the shared utility layer for every Socket.dev tool (the CLI, SDK, registry, MCP server, build infrastructure). It exists so we ship one battle-tested implementation of "spawn a child", "fetch JSON with retries", "delete a path safely on Windows + POSIX", etc. — rather than ten subtly different ones across the fleet. Every export is reachable via a subpath import, so tree-shaking keeps your bundle lean.
|
|
15
|
+
|
|
12
16
|
## Install
|
|
13
17
|
|
|
14
|
-
```
|
|
18
|
+
```sh
|
|
15
19
|
pnpm add @socketsecurity/lib
|
|
16
20
|
```
|
|
17
21
|
|
|
18
|
-
##
|
|
22
|
+
## Usage
|
|
19
23
|
|
|
20
24
|
```typescript
|
|
21
25
|
import { Spinner } from '@socketsecurity/lib/spinner'
|
|
@@ -35,24 +39,14 @@ import { httpJson } from '@socketsecurity/lib/http-request'
|
|
|
35
39
|
import { safeDelete } from '@socketsecurity/lib/fs'
|
|
36
40
|
```
|
|
37
41
|
|
|
38
|
-
## Documentation
|
|
39
|
-
|
|
40
42
|
Start with the [API Index](./docs/api-index.md) — every subpath export with a one-line description.
|
|
41
43
|
|
|
42
|
-
- [Getting Started](./docs/getting-started.md) – install + first examples
|
|
43
|
-
- [Visual Effects](./docs/visual-effects.md) – spinners, loggers, themes
|
|
44
|
-
- [File System](./docs/file-system.md) – files, globs, paths, safe deletion
|
|
45
|
-
- [HTTP Utilities](./docs/http-utilities.md) – requests, downloads, retries
|
|
46
|
-
- [Process Utilities](./docs/process-utilities.md) – spawn, IPC, locks
|
|
47
|
-
- [Package Management](./docs/package-management.md) – npm/pnpm/yarn detection
|
|
48
|
-
- [Environment](./docs/environment.md) – CI/platform detection, env getters
|
|
49
|
-
- [Constants](./docs/constants.md) – Node versions, npm URLs, platform values
|
|
50
|
-
- [Examples](./docs/examples.md) – real-world patterns
|
|
51
|
-
- [Troubleshooting](./docs/troubleshooting.md) – common issues
|
|
52
|
-
|
|
53
44
|
## Development
|
|
54
45
|
|
|
55
|
-
|
|
46
|
+
<details>
|
|
47
|
+
<summary>Contributor commands</summary>
|
|
48
|
+
|
|
49
|
+
```sh
|
|
56
50
|
pnpm install # install
|
|
57
51
|
pnpm build # build
|
|
58
52
|
pnpm test # run tests
|
|
@@ -64,6 +58,21 @@ pnpm run fix # auto-fix formatting
|
|
|
64
58
|
|
|
65
59
|
See [CLAUDE.md](./CLAUDE.md) for contributor guidelines.
|
|
66
60
|
|
|
61
|
+
### Documentation map
|
|
62
|
+
|
|
63
|
+
- [Getting Started](./docs/getting-started.md) – install + first examples
|
|
64
|
+
- [Visual Effects](./docs/visual-effects.md) – spinners, loggers, themes
|
|
65
|
+
- [File System](./docs/file-system.md) – files, globs, paths, safe deletion
|
|
66
|
+
- [HTTP Utilities](./docs/http-utilities.md) – requests, downloads, retries
|
|
67
|
+
- [Process Utilities](./docs/process-utilities.md) – spawn, IPC, locks
|
|
68
|
+
- [Package Management](./docs/package-management.md) – npm/pnpm/yarn detection
|
|
69
|
+
- [Environment](./docs/environment.md) – CI/platform detection, env getters
|
|
70
|
+
- [Constants](./docs/constants.md) – Node versions, npm URLs, platform values
|
|
71
|
+
- [Examples](./docs/examples.md) – real-world patterns
|
|
72
|
+
- [Troubleshooting](./docs/troubleshooting.md) – common issues
|
|
73
|
+
|
|
74
|
+
</details>
|
|
75
|
+
|
|
67
76
|
## License
|
|
68
77
|
|
|
69
78
|
MIT
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Abort signal utilities — composite signal construction from multiple
|
|
3
|
+
* sources and timeout-driven signal creation.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Create a composite AbortSignal from multiple signals.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ;```typescript
|
|
10
|
+
* const ac1 = new AbortController()
|
|
11
|
+
* const ac2 = new AbortController()
|
|
12
|
+
* const signal = createCompositeAbortSignal(ac1.signal, ac2.signal)
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare function createCompositeAbortSignal(...signals: Array<AbortSignal | null | undefined>): AbortSignal;
|
|
16
|
+
/**
|
|
17
|
+
* Create an AbortSignal that triggers after a timeout.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ;```typescript
|
|
21
|
+
* const signal = createTimeoutSignal(5000) // aborts after 5 seconds
|
|
22
|
+
* fetch('https://example.com', { signal })
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @throws {TypeError} If `ms` is not a number, is NaN, is not finite, or is not
|
|
26
|
+
* positive.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createTimeoutSignal(ms: number): AbortSignal;
|
|
@@ -18,13 +18,15 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
20
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
-
var
|
|
22
|
-
__export(
|
|
21
|
+
var signal_exports = {};
|
|
22
|
+
__export(signal_exports, {
|
|
23
23
|
createCompositeAbortSignal: () => createCompositeAbortSignal,
|
|
24
24
|
createTimeoutSignal: () => createTimeoutSignal
|
|
25
25
|
});
|
|
26
|
-
module.exports = __toCommonJS(
|
|
27
|
-
var
|
|
26
|
+
module.exports = __toCommonJS(signal_exports);
|
|
27
|
+
var import_error = require("../primordials/error");
|
|
28
|
+
var import_math = require("../primordials/math");
|
|
29
|
+
var import_number = require("../primordials/number");
|
|
28
30
|
function createCompositeAbortSignal(...signals) {
|
|
29
31
|
const validSignals = signals.filter((s) => s != null);
|
|
30
32
|
if (validSignals.length === 0) {
|
|
@@ -44,16 +46,16 @@ function createCompositeAbortSignal(...signals) {
|
|
|
44
46
|
return controller.signal;
|
|
45
47
|
}
|
|
46
48
|
function createTimeoutSignal(ms) {
|
|
47
|
-
if (typeof ms !== "number" || (0,
|
|
48
|
-
throw new
|
|
49
|
+
if (typeof ms !== "number" || (0, import_number.NumberIsNaN)(ms)) {
|
|
50
|
+
throw new import_error.TypeErrorCtor("timeout must be a number");
|
|
49
51
|
}
|
|
50
|
-
if (!(0,
|
|
51
|
-
throw new
|
|
52
|
+
if (!(0, import_number.NumberIsFinite)(ms)) {
|
|
53
|
+
throw new import_error.TypeErrorCtor("timeout must be a finite number");
|
|
52
54
|
}
|
|
53
55
|
if (ms <= 0) {
|
|
54
|
-
throw new
|
|
56
|
+
throw new import_error.TypeErrorCtor("timeout must be a positive number");
|
|
55
57
|
}
|
|
56
|
-
return AbortSignal.timeout((0,
|
|
58
|
+
return AbortSignal.timeout((0, import_math.MathCeil)(ms));
|
|
57
59
|
}
|
|
58
60
|
// Annotate the CommonJS export names for ESM import in node:
|
|
59
61
|
0 && (module.exports = {
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Detect which AI agent CLIs are installed on PATH. Strategy:
|
|
3
|
+
* which()-based lookup with a two-tier cache:
|
|
4
|
+
*
|
|
5
|
+
* 1. In-process Map — survives until the Node process exits.
|
|
6
|
+
* 2. On-disk JSON at `<repo>/.cache/agent-discovery.json`, TTL 1h — survives
|
|
7
|
+
* across subprocess invocations (per-file ai-lint-fix batches) without
|
|
8
|
+
* re-running which(). Cache invalidation: stale on-disk cache is detected
|
|
9
|
+
* by mtime comparison; missing or expired → fresh which() pass + rewrite.
|
|
10
|
+
* Why two tiers: hooks and skills spawn dozens of short-lived Node
|
|
11
|
+
* processes per session. In-process alone misses the cross-process
|
|
12
|
+
* speedup; on-disk alone hits the filesystem on every call. The
|
|
13
|
+
* combination keeps repeated lookups under a millisecond after the
|
|
14
|
+
* cold-start cost.
|
|
15
|
+
*/
|
|
16
|
+
import type { DiscoveredAgents } from './types.mts';
|
|
17
|
+
export declare function cachePathFor(repoRoot: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Discover which AI agent CLIs are installed.
|
|
20
|
+
*
|
|
21
|
+
* @param options.repoRoot - Where to read/write the on-disk cache. Defaults to
|
|
22
|
+
* process.cwd(). Skill runners typically pass the target repo's root.
|
|
23
|
+
* @param options.refresh - When true, bypass both caches and re-run which().
|
|
24
|
+
* Useful after `npm i -g <agent>` mid-session.
|
|
25
|
+
*
|
|
26
|
+
* Returns a map of agent → absolute binary path. Agents that aren't installed
|
|
27
|
+
* are absent from the map (not present-with-undefined), so callers can use
|
|
28
|
+
* `'claude' in agents` for the existence check.
|
|
29
|
+
*/
|
|
30
|
+
export declare function discoverAiAgents(options?: {
|
|
31
|
+
readonly refresh?: boolean;
|
|
32
|
+
readonly repoRoot?: string;
|
|
33
|
+
}): Promise<DiscoveredAgents>;
|
|
34
|
+
export declare function discoverFresh(): DiscoveredAgents;
|
|
35
|
+
/**
|
|
36
|
+
* Synchronous in-process lookup. Skips disk cache + which(). Returns undefined
|
|
37
|
+
* if discoverAiAgents() hasn't been called yet in this process, OR returns the
|
|
38
|
+
* most recent discovery result.
|
|
39
|
+
*
|
|
40
|
+
* Useful in fast paths where the caller has already populated the cache and
|
|
41
|
+
* just wants to read it back.
|
|
42
|
+
*/
|
|
43
|
+
export declare function getDiscoveredAiAgents(): DiscoveredAgents | undefined;
|
|
44
|
+
export declare function readDiskCache(cachePath: string): DiscoveredAgents | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Reset the in-process cache. Tests use this; production callers shouldn't need
|
|
47
|
+
* it (use `refresh: true` on discoverAiAgents()).
|
|
48
|
+
*/
|
|
49
|
+
export declare function resetAiAgentDiscoveryCache(): void;
|
|
50
|
+
export declare function writeDiskCache(cachePath: string, agents: DiscoveredAgents): Promise<void>;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with esbuild */
|
|
3
|
+
"use strict";
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __export = (target, all) => {
|
|
11
|
+
for (var name in all)
|
|
12
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
13
|
+
};
|
|
14
|
+
var __copyProps = (to, from, except, desc) => {
|
|
15
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
+
for (let key of __getOwnPropNames(from))
|
|
17
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
18
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
28
|
+
mod
|
|
29
|
+
));
|
|
30
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
31
|
+
var discover_exports = {};
|
|
32
|
+
__export(discover_exports, {
|
|
33
|
+
cachePathFor: () => cachePathFor,
|
|
34
|
+
discoverAiAgents: () => discoverAiAgents,
|
|
35
|
+
discoverFresh: () => discoverFresh,
|
|
36
|
+
getDiscoveredAiAgents: () => getDiscoveredAiAgents,
|
|
37
|
+
readDiskCache: () => readDiskCache,
|
|
38
|
+
resetAiAgentDiscoveryCache: () => resetAiAgentDiscoveryCache,
|
|
39
|
+
writeDiskCache: () => writeDiskCache
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(discover_exports);
|
|
42
|
+
var import_node_fs = require("node:fs");
|
|
43
|
+
var import_promises = require("node:fs/promises");
|
|
44
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
45
|
+
var import_which = require("../bin/which");
|
|
46
|
+
var import_message = require("../errors/message");
|
|
47
|
+
var import_default = require("../logger/default");
|
|
48
|
+
var import_json = require("../primordials/json");
|
|
49
|
+
const logger = (0, import_default.getDefaultLogger)();
|
|
50
|
+
const KNOWN_AGENTS = [
|
|
51
|
+
"claude",
|
|
52
|
+
"codex",
|
|
53
|
+
"gemini",
|
|
54
|
+
"opencode"
|
|
55
|
+
];
|
|
56
|
+
const CACHE_TTL_MS = 60 * 60 * 1e3;
|
|
57
|
+
let inProcessCache;
|
|
58
|
+
function cachePathFor(repoRoot) {
|
|
59
|
+
return import_node_path.default.join(repoRoot, ".cache", "agent-discovery.json");
|
|
60
|
+
}
|
|
61
|
+
async function discoverAiAgents(options = {}) {
|
|
62
|
+
const { refresh = false, repoRoot = process.cwd() } = options;
|
|
63
|
+
if (!refresh && inProcessCache) {
|
|
64
|
+
return inProcessCache;
|
|
65
|
+
}
|
|
66
|
+
const cachePath = cachePathFor(repoRoot);
|
|
67
|
+
if (!refresh) {
|
|
68
|
+
const fromDisk = readDiskCache(cachePath);
|
|
69
|
+
if (fromDisk) {
|
|
70
|
+
inProcessCache = fromDisk;
|
|
71
|
+
return fromDisk;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const fresh = discoverFresh();
|
|
75
|
+
inProcessCache = fresh;
|
|
76
|
+
await writeDiskCache(cachePath, fresh);
|
|
77
|
+
return fresh;
|
|
78
|
+
}
|
|
79
|
+
function discoverFresh() {
|
|
80
|
+
const out = {};
|
|
81
|
+
for (const name of KNOWN_AGENTS) {
|
|
82
|
+
const found = (0, import_which.whichSync)(name);
|
|
83
|
+
if (typeof found === "string" && found) {
|
|
84
|
+
out[name] = found;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return out;
|
|
88
|
+
}
|
|
89
|
+
function getDiscoveredAiAgents() {
|
|
90
|
+
return inProcessCache;
|
|
91
|
+
}
|
|
92
|
+
function readDiskCache(cachePath) {
|
|
93
|
+
if (!(0, import_node_fs.existsSync)(cachePath)) {
|
|
94
|
+
return void 0;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
const raw = (0, import_node_fs.readFileSync)(cachePath, "utf8");
|
|
98
|
+
const parsed = (0, import_json.JSONParse)(raw);
|
|
99
|
+
if (typeof parsed !== "object" || parsed === null || typeof parsed.writtenAt !== "number" || Date.now() - parsed.writtenAt > CACHE_TTL_MS) {
|
|
100
|
+
return void 0;
|
|
101
|
+
}
|
|
102
|
+
return parsed.agents;
|
|
103
|
+
} catch {
|
|
104
|
+
return void 0;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function resetAiAgentDiscoveryCache() {
|
|
108
|
+
inProcessCache = void 0;
|
|
109
|
+
}
|
|
110
|
+
async function writeDiskCache(cachePath, agents) {
|
|
111
|
+
try {
|
|
112
|
+
await (0, import_promises.mkdir)(import_node_path.default.dirname(cachePath), { recursive: true });
|
|
113
|
+
const payload = { agents, writtenAt: Date.now() };
|
|
114
|
+
(0, import_node_fs.writeFileSync)(cachePath, (0, import_json.JSONStringify)(payload, void 0, 2) + "\n");
|
|
115
|
+
} catch (e) {
|
|
116
|
+
logger.error(`discoverAiAgents: cache write failed (${(0, import_message.errorMessage)(e)})`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
120
|
+
0 && (module.exports = {
|
|
121
|
+
cachePathFor,
|
|
122
|
+
discoverAiAgents,
|
|
123
|
+
discoverFresh,
|
|
124
|
+
getDiscoveredAiAgents,
|
|
125
|
+
readDiskCache,
|
|
126
|
+
resetAiAgentDiscoveryCache,
|
|
127
|
+
writeDiskCache
|
|
128
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Pre-built lockdown profiles for spawnAiAgent. Per CLAUDE.md
|
|
3
|
+
* "Programmatic Claude calls" rule: every spawn must set tools / disallow /
|
|
4
|
+
* permissionMode (and the helper always sets --no-session-persistence +
|
|
5
|
+
* --add-dir cwd). These profiles are canonical safe defaults that callers
|
|
6
|
+
* spread + override per call. Choose by capability:
|
|
7
|
+
*
|
|
8
|
+
* - `READ_ONLY_PROFILE` — research / scanning. Read + Grep + Glob
|
|
9
|
+
* - WebFetch + WebSearch. No Edit, no Write, no Bash. Use for static analysis
|
|
10
|
+
* skills (scanning-quality, scanning-security).
|
|
11
|
+
* - `EDIT_ONLY_PROFILE` — fix-mode. Read + Edit + Grep + Glob. Bash explicitly
|
|
12
|
+
* denied. Use for skills that mutate source files but don't run arbitrary
|
|
13
|
+
* shell (ai-lint-fix, refactor passes).
|
|
14
|
+
* - `FULL_FIX_PROFILE` — fix-mode WITH Bash. Read + Edit + Write + Grep + Glob
|
|
15
|
+
* - Bash (allowlisted to git/pnpm/node by default). Use for skills that need to
|
|
16
|
+
* commit, run tests, install deps. No `WIDE_OPEN_PROFILE` exists by design
|
|
17
|
+
* — letting an agent run arbitrary tools is the lockdown rule's exact
|
|
18
|
+
* failure mode.
|
|
19
|
+
*/
|
|
20
|
+
import type { PermissionMode } from './types.mts';
|
|
21
|
+
interface Profile {
|
|
22
|
+
readonly allow: readonly string[];
|
|
23
|
+
readonly disallow: readonly string[];
|
|
24
|
+
readonly permissionMode: PermissionMode;
|
|
25
|
+
readonly tools: readonly string[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Read-only research / scanning. No mutation.
|
|
29
|
+
*/
|
|
30
|
+
export declare const READ_ONLY_PROFILE: Profile;
|
|
31
|
+
/**
|
|
32
|
+
* Edit-mode without Bash. Mutates source but can't run shell.
|
|
33
|
+
*/
|
|
34
|
+
export declare const EDIT_ONLY_PROFILE: Profile;
|
|
35
|
+
/**
|
|
36
|
+
* Fix-mode with Bash, allowlisted to git / pnpm / node.
|
|
37
|
+
*/
|
|
38
|
+
export declare const FULL_FIX_PROFILE: Profile;
|
|
39
|
+
export {};
|