@socketsecurity/lib 0.0.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +270 -0
- package/LICENSE +21 -0
- package/README.md +80 -2
- package/data/extensions.json +28 -0
- package/dist/abort.d.ts +11 -0
- package/dist/abort.js +62 -0
- package/dist/abort.js.map +7 -0
- package/dist/agent.d.ts +102 -0
- package/dist/agent.js +288 -0
- package/dist/agent.js.map +7 -0
- package/dist/ansi.d.ts +29 -0
- package/dist/ansi.js +62 -0
- package/dist/ansi.js.map +7 -0
- package/dist/argv/flags.d.ts +199 -0
- package/dist/argv/flags.js +284 -0
- package/dist/argv/flags.js.map +7 -0
- package/dist/argv/parse.d.ts +76 -0
- package/dist/argv/parse.js +173 -0
- package/dist/argv/parse.js.map +7 -0
- package/dist/arrays.d.ts +29 -0
- package/dist/arrays.js +87 -0
- package/dist/arrays.js.map +7 -0
- package/dist/bin.d.ts +50 -0
- package/dist/bin.js +405 -0
- package/dist/bin.js.map +7 -0
- package/dist/cacache.d.ts +86 -0
- package/dist/cacache.js +140 -0
- package/dist/cacache.js.map +7 -0
- package/dist/cache-with-ttl.d.ts +133 -0
- package/dist/cache-with-ttl.js +225 -0
- package/dist/cache-with-ttl.js.map +7 -0
- package/dist/constants/agents.d.ts +37 -0
- package/dist/constants/agents.js +128 -0
- package/dist/constants/agents.js.map +7 -0
- package/dist/constants/core.d.ts +22 -0
- package/dist/constants/core.js +59 -0
- package/dist/constants/core.js.map +7 -0
- package/dist/constants/encoding.d.ts +13 -0
- package/dist/constants/encoding.js +50 -0
- package/dist/constants/encoding.js.map +7 -0
- package/dist/constants/github.d.ts +7 -0
- package/dist/constants/github.js +32 -0
- package/dist/constants/github.js.map +7 -0
- package/dist/constants/licenses.d.ts +8 -0
- package/dist/constants/licenses.js +68 -0
- package/dist/constants/licenses.js.map +7 -0
- package/dist/constants/node.d.ts +29 -0
- package/dist/constants/node.js +173 -0
- package/dist/constants/node.js.map +7 -0
- package/dist/constants/packages.d.ts +19 -0
- package/dist/constants/packages.js +130 -0
- package/dist/constants/packages.js.map +7 -0
- package/dist/constants/paths.d.ts +51 -0
- package/dist/constants/paths.js +152 -0
- package/dist/constants/paths.js.map +7 -0
- package/dist/constants/platform.d.ts +6 -0
- package/dist/constants/platform.js +43 -0
- package/dist/constants/platform.js.map +7 -0
- package/dist/constants/process.d.ts +7 -0
- package/dist/constants/process.js +54 -0
- package/dist/constants/process.js.map +7 -0
- package/dist/constants/socket.d.ts +29 -0
- package/dist/constants/socket.js +83 -0
- package/dist/constants/socket.js.map +7 -0
- package/dist/constants/testing.d.ts +9 -0
- package/dist/constants/testing.js +38 -0
- package/dist/constants/testing.js.map +7 -0
- package/dist/constants/time.d.ts +11 -0
- package/dist/constants/time.js +41 -0
- package/dist/constants/time.js.map +7 -0
- package/dist/constants/typescript.d.ts +6 -0
- package/dist/constants/typescript.js +56 -0
- package/dist/constants/typescript.js.map +7 -0
- package/dist/cover/code.d.ts +8 -0
- package/dist/cover/code.js +137 -0
- package/dist/cover/code.js.map +7 -0
- package/dist/cover/formatters.d.ts +9 -0
- package/dist/cover/formatters.js +103 -0
- package/dist/cover/formatters.js.map +7 -0
- package/dist/cover/type.d.ts +7 -0
- package/dist/cover/type.js +65 -0
- package/dist/cover/type.js.map +7 -0
- package/dist/cover/types.d.ts +70 -0
- package/dist/cover/types.js +17 -0
- package/dist/cover/types.js.map +7 -0
- package/dist/debug.d.ts +99 -0
- package/dist/debug.js +345 -0
- package/dist/debug.js.map +7 -0
- package/dist/dlx-binary.d.ts +49 -0
- package/dist/dlx-binary.js +261 -0
- package/dist/dlx-binary.js.map +7 -0
- package/dist/dlx.d.ts +64 -0
- package/dist/dlx.js +168 -0
- package/dist/dlx.js.map +7 -0
- package/dist/download-lock.d.ts +48 -0
- package/dist/download-lock.js +139 -0
- package/dist/download-lock.js.map +7 -0
- package/dist/effects/pulse-frames.d.ts +23 -0
- package/dist/effects/pulse-frames.js +66 -0
- package/dist/effects/pulse-frames.js.map +7 -0
- package/dist/effects/text-shimmer.d.ts +37 -0
- package/dist/effects/text-shimmer.js +175 -0
- package/dist/effects/text-shimmer.js.map +7 -0
- package/dist/effects/types.d.ts +41 -0
- package/dist/effects/types.js +17 -0
- package/dist/effects/types.js.map +7 -0
- package/dist/effects/ultra.d.ts +16 -0
- package/dist/effects/ultra.js +63 -0
- package/dist/effects/ultra.js.map +7 -0
- package/dist/env/appdata.d.ts +1 -0
- package/dist/env/appdata.js +30 -0
- package/dist/env/appdata.js.map +7 -0
- package/dist/env/ci.d.ts +1 -0
- package/dist/env/ci.js +31 -0
- package/dist/env/ci.js.map +7 -0
- package/dist/env/comspec.d.ts +1 -0
- package/dist/env/comspec.js +30 -0
- package/dist/env/comspec.js.map +7 -0
- package/dist/env/debug.d.ts +1 -0
- package/dist/env/debug.js +30 -0
- package/dist/env/debug.js.map +7 -0
- package/dist/env/getters.d.ts +40 -0
- package/dist/env/getters.js +283 -0
- package/dist/env/getters.js.map +7 -0
- package/dist/env/github-api-url.d.ts +1 -0
- package/dist/env/github-api-url.js +30 -0
- package/dist/env/github-api-url.js.map +7 -0
- package/dist/env/github-base-ref.d.ts +1 -0
- package/dist/env/github-base-ref.js +30 -0
- package/dist/env/github-base-ref.js.map +7 -0
- package/dist/env/github-ref-name.d.ts +1 -0
- package/dist/env/github-ref-name.js +30 -0
- package/dist/env/github-ref-name.js.map +7 -0
- package/dist/env/github-ref-type.d.ts +1 -0
- package/dist/env/github-ref-type.js +30 -0
- package/dist/env/github-ref-type.js.map +7 -0
- package/dist/env/github-repository.d.ts +1 -0
- package/dist/env/github-repository.js +30 -0
- package/dist/env/github-repository.js.map +7 -0
- package/dist/env/github-server-url.d.ts +1 -0
- package/dist/env/github-server-url.js +30 -0
- package/dist/env/github-server-url.js.map +7 -0
- package/dist/env/github-token.d.ts +1 -0
- package/dist/env/github-token.js +30 -0
- package/dist/env/github-token.js.map +7 -0
- package/dist/env/helpers.d.ts +6 -0
- package/dist/env/helpers.js +49 -0
- package/dist/env/helpers.js.map +7 -0
- package/dist/env/home.d.ts +1 -0
- package/dist/env/home.js +30 -0
- package/dist/env/home.js.map +7 -0
- package/dist/env/jest-worker-id.d.ts +1 -0
- package/dist/env/jest-worker-id.js +30 -0
- package/dist/env/jest-worker-id.js.map +7 -0
- package/dist/env/lang.d.ts +1 -0
- package/dist/env/lang.js +30 -0
- package/dist/env/lang.js.map +7 -0
- package/dist/env/lc-all.d.ts +1 -0
- package/dist/env/lc-all.js +30 -0
- package/dist/env/lc-all.js.map +7 -0
- package/dist/env/lc-messages.d.ts +1 -0
- package/dist/env/lc-messages.js +30 -0
- package/dist/env/lc-messages.js.map +7 -0
- package/dist/env/localappdata.d.ts +1 -0
- package/dist/env/localappdata.js +30 -0
- package/dist/env/localappdata.js.map +7 -0
- package/dist/env/node-auth-token.d.ts +1 -0
- package/dist/env/node-auth-token.js +30 -0
- package/dist/env/node-auth-token.js.map +7 -0
- package/dist/env/node-env.d.ts +1 -0
- package/dist/env/node-env.js +30 -0
- package/dist/env/node-env.js.map +7 -0
- package/dist/env/npm-config-registry.d.ts +1 -0
- package/dist/env/npm-config-registry.js +30 -0
- package/dist/env/npm-config-registry.js.map +7 -0
- package/dist/env/npm-config-user-agent.d.ts +1 -0
- package/dist/env/npm-config-user-agent.js +30 -0
- package/dist/env/npm-config-user-agent.js.map +7 -0
- package/dist/env/npm-lifecycle-event.d.ts +1 -0
- package/dist/env/npm-lifecycle-event.js +30 -0
- package/dist/env/npm-lifecycle-event.js.map +7 -0
- package/dist/env/npm-registry.d.ts +1 -0
- package/dist/env/npm-registry.js +30 -0
- package/dist/env/npm-registry.js.map +7 -0
- package/dist/env/npm-token.d.ts +1 -0
- package/dist/env/npm-token.js +30 -0
- package/dist/env/npm-token.js.map +7 -0
- package/dist/env/path.d.ts +1 -0
- package/dist/env/path.js +30 -0
- package/dist/env/path.js.map +7 -0
- package/dist/env/pre-commit.d.ts +1 -0
- package/dist/env/pre-commit.js +31 -0
- package/dist/env/pre-commit.js.map +7 -0
- package/dist/env/shell.d.ts +1 -0
- package/dist/env/shell.js +30 -0
- package/dist/env/shell.js.map +7 -0
- package/dist/env/socket-accept-risks.d.ts +1 -0
- package/dist/env/socket-accept-risks.js +31 -0
- package/dist/env/socket-accept-risks.js.map +7 -0
- package/dist/env/socket-api-base-url.d.ts +1 -0
- package/dist/env/socket-api-base-url.js +30 -0
- package/dist/env/socket-api-base-url.js.map +7 -0
- package/dist/env/socket-api-proxy.d.ts +1 -0
- package/dist/env/socket-api-proxy.js +30 -0
- package/dist/env/socket-api-proxy.js.map +7 -0
- package/dist/env/socket-api-timeout.d.ts +1 -0
- package/dist/env/socket-api-timeout.js +31 -0
- package/dist/env/socket-api-timeout.js.map +7 -0
- package/dist/env/socket-api-token.d.ts +1 -0
- package/dist/env/socket-api-token.js +30 -0
- package/dist/env/socket-api-token.js.map +7 -0
- package/dist/env/socket-cacache-dir.d.ts +1 -0
- package/dist/env/socket-cacache-dir.js +30 -0
- package/dist/env/socket-cacache-dir.js.map +7 -0
- package/dist/env/socket-cli-accept-risks.d.ts +1 -0
- package/dist/env/socket-cli-accept-risks.js +33 -0
- package/dist/env/socket-cli-accept-risks.js.map +7 -0
- package/dist/env/socket-cli-api-base-url.d.ts +1 -0
- package/dist/env/socket-cli-api-base-url.js +30 -0
- package/dist/env/socket-cli-api-base-url.js.map +7 -0
- package/dist/env/socket-cli-api-proxy.d.ts +1 -0
- package/dist/env/socket-cli-api-proxy.js +30 -0
- package/dist/env/socket-cli-api-proxy.js.map +7 -0
- package/dist/env/socket-cli-api-timeout.d.ts +1 -0
- package/dist/env/socket-cli-api-timeout.js +31 -0
- package/dist/env/socket-cli-api-timeout.js.map +7 -0
- package/dist/env/socket-cli-api-token.d.ts +1 -0
- package/dist/env/socket-cli-api-token.js +30 -0
- package/dist/env/socket-cli-api-token.js.map +7 -0
- package/dist/env/socket-cli-config.d.ts +1 -0
- package/dist/env/socket-cli-config.js +30 -0
- package/dist/env/socket-cli-config.js.map +7 -0
- package/dist/env/socket-cli-fix.d.ts +1 -0
- package/dist/env/socket-cli-fix.js +30 -0
- package/dist/env/socket-cli-fix.js.map +7 -0
- package/dist/env/socket-cli-no-api-token.d.ts +1 -0
- package/dist/env/socket-cli-no-api-token.js +33 -0
- package/dist/env/socket-cli-no-api-token.js.map +7 -0
- package/dist/env/socket-cli-optimize.d.ts +1 -0
- package/dist/env/socket-cli-optimize.js +31 -0
- package/dist/env/socket-cli-optimize.js.map +7 -0
- package/dist/env/socket-cli-org-slug.d.ts +1 -0
- package/dist/env/socket-cli-org-slug.js +30 -0
- package/dist/env/socket-cli-org-slug.js.map +7 -0
- package/dist/env/socket-cli-shadow-accept-risks.d.ts +1 -0
- package/dist/env/socket-cli-shadow-accept-risks.js +33 -0
- package/dist/env/socket-cli-shadow-accept-risks.js.map +7 -0
- package/dist/env/socket-cli-shadow-api-token.d.ts +1 -0
- package/dist/env/socket-cli-shadow-api-token.js +30 -0
- package/dist/env/socket-cli-shadow-api-token.js.map +7 -0
- package/dist/env/socket-cli-shadow-bin.d.ts +1 -0
- package/dist/env/socket-cli-shadow-bin.js +30 -0
- package/dist/env/socket-cli-shadow-bin.js.map +7 -0
- package/dist/env/socket-cli-shadow-progress.d.ts +1 -0
- package/dist/env/socket-cli-shadow-progress.js +33 -0
- package/dist/env/socket-cli-shadow-progress.js.map +7 -0
- package/dist/env/socket-cli-shadow-silent.d.ts +1 -0
- package/dist/env/socket-cli-shadow-silent.js +33 -0
- package/dist/env/socket-cli-shadow-silent.js.map +7 -0
- package/dist/env/socket-cli-view-all-risks.d.ts +1 -0
- package/dist/env/socket-cli-view-all-risks.js +33 -0
- package/dist/env/socket-cli-view-all-risks.js.map +7 -0
- package/dist/env/socket-config.d.ts +1 -0
- package/dist/env/socket-config.js +30 -0
- package/dist/env/socket-config.js.map +7 -0
- package/dist/env/socket-debug.d.ts +1 -0
- package/dist/env/socket-debug.js +30 -0
- package/dist/env/socket-debug.js.map +7 -0
- package/dist/env/socket-home.d.ts +1 -0
- package/dist/env/socket-home.js +30 -0
- package/dist/env/socket-home.js.map +7 -0
- package/dist/env/socket-no-api-token.d.ts +1 -0
- package/dist/env/socket-no-api-token.js +31 -0
- package/dist/env/socket-no-api-token.js.map +7 -0
- package/dist/env/socket-npm-registry.d.ts +1 -0
- package/dist/env/socket-npm-registry.js +30 -0
- package/dist/env/socket-npm-registry.js.map +7 -0
- package/dist/env/socket-org-slug.d.ts +1 -0
- package/dist/env/socket-org-slug.js +30 -0
- package/dist/env/socket-org-slug.js.map +7 -0
- package/dist/env/socket-registry-url.d.ts +1 -0
- package/dist/env/socket-registry-url.js +30 -0
- package/dist/env/socket-registry-url.js.map +7 -0
- package/dist/env/socket-view-all-risks.d.ts +1 -0
- package/dist/env/socket-view-all-risks.js +31 -0
- package/dist/env/socket-view-all-risks.js.map +7 -0
- package/dist/env/temp.d.ts +1 -0
- package/dist/env/temp.js +30 -0
- package/dist/env/temp.js.map +7 -0
- package/dist/env/term.d.ts +1 -0
- package/dist/env/term.js +30 -0
- package/dist/env/term.js.map +7 -0
- package/dist/env/tmp.d.ts +1 -0
- package/dist/env/tmp.js +30 -0
- package/dist/env/tmp.js.map +7 -0
- package/dist/env/tmpdir.d.ts +1 -0
- package/dist/env/tmpdir.js +30 -0
- package/dist/env/tmpdir.js.map +7 -0
- package/dist/env/userprofile.d.ts +1 -0
- package/dist/env/userprofile.js +30 -0
- package/dist/env/userprofile.js.map +7 -0
- package/dist/env/vitest.d.ts +1 -0
- package/dist/env/vitest.js +31 -0
- package/dist/env/vitest.js.map +7 -0
- package/dist/env/xdg-cache-home.d.ts +1 -0
- package/dist/env/xdg-cache-home.js +30 -0
- package/dist/env/xdg-cache-home.js.map +7 -0
- package/dist/env/xdg-config-home.d.ts +1 -0
- package/dist/env/xdg-config-home.js +30 -0
- package/dist/env/xdg-config-home.js.map +7 -0
- package/dist/env/xdg-data-home.d.ts +1 -0
- package/dist/env/xdg-data-home.js +30 -0
- package/dist/env/xdg-data-home.js.map +7 -0
- package/dist/env.d.ts +15 -0
- package/dist/env.js +63 -0
- package/dist/env.js.map +7 -0
- package/dist/external/@inquirer/checkbox.js +4 -0
- package/dist/external/@inquirer/confirm.js +22 -0
- package/dist/external/@inquirer/core.js +4 -0
- package/dist/external/@inquirer/input.js +1 -0
- package/dist/external/@inquirer/password.js +1 -0
- package/dist/external/@inquirer/prompts.js +4 -0
- package/dist/external/@inquirer/search.js +1 -0
- package/dist/external/@inquirer/select.js +25 -0
- package/dist/external/@npmcli/package-json/index.js +1 -0
- package/dist/external/@npmcli/package-json/lib/read-package.js +1 -0
- package/dist/external/@npmcli/package-json/lib/sort.js +1 -0
- package/dist/external/@npmcli/promise-spawn.js +5 -0
- package/dist/external/@socketregistry/is-unicode-supported.d.ts +2 -0
- package/dist/external/@socketregistry/is-unicode-supported.js +5 -0
- package/dist/external/@socketregistry/packageurl-js.js +34 -0
- package/dist/external/@socketregistry/yocto-spinner.d.ts +12 -0
- package/dist/external/@socketregistry/yocto-spinner.js +8 -0
- package/dist/external/@yarnpkg/extensions.d.ts +5 -0
- package/dist/external/@yarnpkg/extensions.js +5 -0
- package/dist/external/cacache.d.ts +93 -0
- package/dist/external/cacache.js +32 -0
- package/dist/external/debug.d.ts +25 -0
- package/dist/external/debug.js +9 -0
- package/dist/external/del.d.ts +1 -0
- package/dist/external/del.js +54 -0
- package/dist/external/fast-glob.js +54 -0
- package/dist/external/fast-sort.d.ts +4 -0
- package/dist/external/fast-sort.js +5 -0
- package/dist/external/get-east-asian-width.d.ts +5 -0
- package/dist/external/get-east-asian-width.js +5 -0
- package/dist/external/libnpmpack.d.ts +3 -0
- package/dist/external/libnpmpack.js +225 -0
- package/dist/external/make-fetch-happen.d.ts +16 -0
- package/dist/external/make-fetch-happen.js +69 -0
- package/dist/external/normalize-package-data.js +6 -0
- package/dist/external/npm-package-arg.js +6 -0
- package/dist/external/pacote.d.ts +19 -0
- package/dist/external/pacote.js +105 -0
- package/dist/external/picomatch.js +5 -0
- package/dist/external/semver.d.ts +3 -0
- package/dist/external/semver.js +5 -0
- package/dist/external/spdx-correct.js +5 -0
- package/dist/external/spdx-expression-parse.js +5 -0
- package/dist/external/streaming-iterables.js +5 -0
- package/dist/external/validate-npm-package-name.js +5 -0
- package/dist/external/which.js +5 -0
- package/dist/external/yargs-parser.d.ts +3 -0
- package/dist/external/yargs-parser.js +26 -0
- package/dist/external/yoctocolors-cjs.d.ts +38 -0
- package/dist/external/yoctocolors-cjs.js +5 -0
- package/dist/external/zod.d.ts +1 -0
- package/dist/external/zod.js +27 -0
- package/dist/fs.d.ts +184 -0
- package/dist/fs.js +610 -0
- package/dist/fs.js.map +7 -0
- package/dist/functions.d.ts +27 -0
- package/dist/functions.js +70 -0
- package/dist/functions.js.map +7 -0
- package/dist/git.d.ts +93 -0
- package/dist/git.js +321 -0
- package/dist/git.js.map +7 -0
- package/dist/github.d.ts +121 -0
- package/dist/github.js +203 -0
- package/dist/github.js.map +7 -0
- package/dist/globs.d.ts +46 -0
- package/dist/globs.js +154 -0
- package/dist/globs.js.map +7 -0
- package/dist/http-request.d.ts +53 -0
- package/dist/http-request.js +315 -0
- package/dist/http-request.js.map +7 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +7 -0
- package/dist/ipc.d.ts +366 -0
- package/dist/ipc.js +234 -0
- package/dist/ipc.js.map +7 -0
- package/dist/json.d.ts +23 -0
- package/dist/json.js +75 -0
- package/dist/json.js.map +7 -0
- package/dist/logger.d.ts +183 -0
- package/dist/logger.js +653 -0
- package/dist/logger.js.map +7 -0
- package/dist/maintained-node-versions.d.ts +7 -0
- package/dist/maintained-node-versions.js +37 -0
- package/dist/maintained-node-versions.js.map +7 -0
- package/dist/memoization.d.ts +142 -0
- package/dist/memoization.js +212 -0
- package/dist/memoization.js.map +7 -0
- package/dist/objects.d.ts +146 -0
- package/dist/objects.js +321 -0
- package/dist/objects.js.map +7 -0
- package/dist/packages/editable.d.ts +107 -0
- package/dist/packages/editable.js +358 -0
- package/dist/packages/editable.js.map +7 -0
- package/dist/packages/exports.d.ts +30 -0
- package/dist/packages/exports.js +164 -0
- package/dist/packages/exports.js.map +7 -0
- package/dist/packages/isolation.d.ts +22 -0
- package/dist/packages/isolation.js +197 -0
- package/dist/packages/isolation.js.map +7 -0
- package/dist/packages/licenses.d.ts +68 -0
- package/dist/packages/licenses.js +216 -0
- package/dist/packages/licenses.js.map +7 -0
- package/dist/packages/manifest.d.ts +16 -0
- package/dist/packages/manifest.js +192 -0
- package/dist/packages/manifest.js.map +7 -0
- package/dist/packages/normalize.d.ts +21 -0
- package/dist/packages/normalize.js +122 -0
- package/dist/packages/normalize.js.map +7 -0
- package/dist/packages/operations.d.ts +54 -0
- package/dist/packages/operations.js +306 -0
- package/dist/packages/operations.js.map +7 -0
- package/dist/packages/paths.d.ts +10 -0
- package/dist/packages/paths.js +55 -0
- package/dist/packages/paths.js.map +7 -0
- package/dist/packages/provenance.d.ts +10 -0
- package/dist/packages/provenance.js +180 -0
- package/dist/packages/provenance.js.map +7 -0
- package/dist/packages/registry.d.ts +8 -0
- package/dist/packages/registry.js +30 -0
- package/dist/packages/registry.js.map +7 -0
- package/dist/packages/specs.d.ts +28 -0
- package/dist/packages/specs.js +85 -0
- package/dist/packages/specs.js.map +7 -0
- package/dist/packages/validation.d.ts +15 -0
- package/dist/packages/validation.js +53 -0
- package/dist/packages/validation.js.map +7 -0
- package/dist/packages.d.ts +154 -0
- package/dist/packages.js +131 -0
- package/dist/packages.js.map +7 -0
- package/dist/path.d.ts +74 -0
- package/dist/path.js +442 -0
- package/dist/path.js.map +7 -0
- package/dist/paths.d.ts +42 -0
- package/dist/paths.js +145 -0
- package/dist/paths.js.map +7 -0
- package/dist/performance.d.ts +178 -0
- package/dist/performance.js +219 -0
- package/dist/performance.js.map +7 -0
- package/dist/promise-queue.d.ts +35 -0
- package/dist/promise-queue.js +111 -0
- package/dist/promise-queue.js.map +7 -0
- package/dist/promises.d.ts +67 -0
- package/dist/promises.js +268 -0
- package/dist/promises.js.map +7 -0
- package/dist/prompts.d.ts +27 -0
- package/dist/prompts.js +60 -0
- package/dist/prompts.js.map +7 -0
- package/dist/regexps.d.ts +13 -0
- package/dist/regexps.js +32 -0
- package/dist/regexps.js.map +7 -0
- package/dist/sea.d.ts +10 -0
- package/dist/sea.js +46 -0
- package/dist/sea.js.map +7 -0
- package/dist/shadow.d.ts +17 -0
- package/dist/shadow.js +60 -0
- package/dist/shadow.js.map +7 -0
- package/dist/signal-exit.d.ts +23 -0
- package/dist/signal-exit.js +250 -0
- package/dist/signal-exit.js.map +7 -0
- package/dist/sorts.d.ts +28 -0
- package/dist/sorts.js +96 -0
- package/dist/sorts.js.map +7 -0
- package/dist/spawn.d.ts +207 -0
- package/dist/spawn.js +201 -0
- package/dist/spawn.js.map +7 -0
- package/dist/spinner.d.ts +208 -0
- package/dist/spinner.js +729 -0
- package/dist/spinner.js.map +7 -0
- package/dist/ssri.d.ts +95 -0
- package/dist/ssri.js +73 -0
- package/dist/ssri.js.map +7 -0
- package/dist/stdio/clear.d.ts +40 -0
- package/dist/stdio/clear.js +84 -0
- package/dist/stdio/clear.js.map +7 -0
- package/dist/stdio/divider.d.ts +48 -0
- package/dist/stdio/divider.js +81 -0
- package/dist/stdio/divider.js.map +7 -0
- package/dist/stdio/footer.d.ts +25 -0
- package/dist/stdio/footer.js +96 -0
- package/dist/stdio/footer.js.map +7 -0
- package/dist/stdio/header.d.ts +25 -0
- package/dist/stdio/header.js +102 -0
- package/dist/stdio/header.js.map +7 -0
- package/dist/stdio/mask.d.ts +72 -0
- package/dist/stdio/mask.js +187 -0
- package/dist/stdio/mask.js.map +7 -0
- package/dist/stdio/progress.d.ts +51 -0
- package/dist/stdio/progress.js +171 -0
- package/dist/stdio/progress.js.map +7 -0
- package/dist/stdio/prompts.d.ts +46 -0
- package/dist/stdio/prompts.js +90 -0
- package/dist/stdio/prompts.js.map +7 -0
- package/dist/stdio/stderr.d.ts +48 -0
- package/dist/stdio/stderr.js +91 -0
- package/dist/stdio/stderr.js.map +7 -0
- package/dist/stdio/stdout.d.ts +48 -0
- package/dist/stdio/stdout.js +105 -0
- package/dist/stdio/stdout.js.map +7 -0
- package/dist/streams.d.ts +20 -0
- package/dist/streams.js +80 -0
- package/dist/streams.js.map +7 -0
- package/dist/strings.d.ts +139 -0
- package/dist/strings.js +253 -0
- package/dist/strings.js.map +7 -0
- package/dist/suppress-warnings.d.ts +66 -0
- package/dist/suppress-warnings.js +100 -0
- package/dist/suppress-warnings.js.map +7 -0
- package/dist/tables.d.ts +69 -0
- package/dist/tables.js +130 -0
- package/dist/tables.js.map +7 -0
- package/dist/temporary-executor.d.ts +9 -0
- package/dist/temporary-executor.js +54 -0
- package/dist/temporary-executor.js.map +7 -0
- package/dist/types.d.ts +65 -0
- package/dist/types.js +74 -0
- package/dist/types.js.map +7 -0
- package/dist/url.d.ts +60 -0
- package/dist/url.js +144 -0
- package/dist/url.js.map +7 -0
- package/dist/utils/get-ipc.d.ts +16 -0
- package/dist/utils/get-ipc.js +60 -0
- package/dist/utils/get-ipc.js.map +7 -0
- package/dist/validation/json-parser.d.ts +10 -0
- package/dist/validation/json-parser.js +129 -0
- package/dist/validation/json-parser.js.map +7 -0
- package/dist/validation/types.d.ts +40 -0
- package/dist/validation/types.js +17 -0
- package/dist/validation/types.js.map +7 -0
- package/dist/versions.d.ts +87 -0
- package/dist/versions.js +155 -0
- package/dist/versions.js.map +7 -0
- package/dist/words.d.ts +22 -0
- package/dist/words.js +52 -0
- package/dist/words.js.map +7 -0
- package/dist/zod.d.ts +5 -0
- package/dist/zod.js +29 -0
- package/dist/zod.js.map +7 -0
- package/package.json +856 -7
package/dist/paths.js
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/* Socket Lib - Built with esbuild */
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var paths_exports = {};
|
|
30
|
+
__export(paths_exports, {
|
|
31
|
+
getSocketAppCacheDir: () => getSocketAppCacheDir,
|
|
32
|
+
getSocketAppCacheTtlDir: () => getSocketAppCacheTtlDir,
|
|
33
|
+
getSocketAppDir: () => getSocketAppDir,
|
|
34
|
+
getSocketCacacheDir: () => getSocketCacacheDir,
|
|
35
|
+
getSocketCliDir: () => getSocketCliDir,
|
|
36
|
+
getSocketDlxDir: () => getSocketDlxDir,
|
|
37
|
+
getSocketHomePath: () => getSocketHomePath,
|
|
38
|
+
getSocketRegistryDir: () => getSocketRegistryDir,
|
|
39
|
+
getSocketRegistryGithubCacheDir: () => getSocketRegistryGithubCacheDir,
|
|
40
|
+
getSocketUserDir: () => getSocketUserDir
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(paths_exports);
|
|
43
|
+
var os = __toESM(require("node:os"));
|
|
44
|
+
var path = __toESM(require("node:path"));
|
|
45
|
+
var import_socket_cacache_dir = require("#env/socket-cacache-dir");
|
|
46
|
+
var import_path = require("./path");
|
|
47
|
+
function getSocketHomePath() {
|
|
48
|
+
return getSocketUserDir();
|
|
49
|
+
}
|
|
50
|
+
function getSocketUserDir() {
|
|
51
|
+
return (0, import_path.normalizePath)(
|
|
52
|
+
path.join(
|
|
53
|
+
os.homedir(),
|
|
54
|
+
/*@__INLINE__*/
|
|
55
|
+
require("./constants/paths").DOT_SOCKET_DIR
|
|
56
|
+
)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
function getSocketAppDir(appName) {
|
|
60
|
+
return (0, import_path.normalizePath)(
|
|
61
|
+
path.join(
|
|
62
|
+
getSocketUserDir(),
|
|
63
|
+
`${/*@__INLINE__*/
|
|
64
|
+
require("./constants/socket").SOCKET_APP_PREFIX}${appName}`
|
|
65
|
+
)
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
function getSocketCacacheDir() {
|
|
69
|
+
if (import_socket_cacache_dir.SOCKET_CACACHE_DIR) {
|
|
70
|
+
return (0, import_path.normalizePath)(import_socket_cacache_dir.SOCKET_CACACHE_DIR);
|
|
71
|
+
}
|
|
72
|
+
return (0, import_path.normalizePath)(
|
|
73
|
+
path.join(
|
|
74
|
+
getSocketUserDir(),
|
|
75
|
+
`${/*@__INLINE__*/
|
|
76
|
+
require("./constants/socket").SOCKET_APP_PREFIX}cacache`
|
|
77
|
+
)
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
function getSocketDlxDir() {
|
|
81
|
+
return (0, import_path.normalizePath)(
|
|
82
|
+
path.join(
|
|
83
|
+
getSocketUserDir(),
|
|
84
|
+
`${/*@__INLINE__*/
|
|
85
|
+
require("./constants/socket").SOCKET_APP_PREFIX}${/*@__INLINE__*/
|
|
86
|
+
require("./constants/socket").SOCKET_DLX_APP_NAME}`
|
|
87
|
+
)
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
function getSocketAppCacheDir(appName) {
|
|
91
|
+
return (0, import_path.normalizePath)(
|
|
92
|
+
path.join(
|
|
93
|
+
getSocketAppDir(appName),
|
|
94
|
+
/*@__INLINE__*/
|
|
95
|
+
require("./constants/paths").CACHE_DIR
|
|
96
|
+
)
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
function getSocketAppCacheTtlDir(appName) {
|
|
100
|
+
return (0, import_path.normalizePath)(
|
|
101
|
+
path.join(
|
|
102
|
+
getSocketAppCacheDir(appName),
|
|
103
|
+
/*@__INLINE__*/
|
|
104
|
+
require("./constants/paths").CACHE_TTL_DIR
|
|
105
|
+
)
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
function getSocketCliDir() {
|
|
109
|
+
return getSocketAppDir(
|
|
110
|
+
/*@__INLINE__*/
|
|
111
|
+
require("./constants/socket").SOCKET_CLI_APP_NAME
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
function getSocketRegistryDir() {
|
|
115
|
+
return getSocketAppDir(
|
|
116
|
+
/*@__INLINE__*/
|
|
117
|
+
require("./constants/socket").SOCKET_REGISTRY_APP_NAME
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
function getSocketRegistryGithubCacheDir() {
|
|
121
|
+
return (0, import_path.normalizePath)(
|
|
122
|
+
path.join(
|
|
123
|
+
getSocketAppCacheTtlDir(
|
|
124
|
+
/*@__INLINE__*/
|
|
125
|
+
require("./constants/socket").SOCKET_REGISTRY_APP_NAME
|
|
126
|
+
),
|
|
127
|
+
/*@__INLINE__*/
|
|
128
|
+
require("./constants/github").CACHE_GITHUB_DIR
|
|
129
|
+
)
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
133
|
+
0 && (module.exports = {
|
|
134
|
+
getSocketAppCacheDir,
|
|
135
|
+
getSocketAppCacheTtlDir,
|
|
136
|
+
getSocketAppDir,
|
|
137
|
+
getSocketCacacheDir,
|
|
138
|
+
getSocketCliDir,
|
|
139
|
+
getSocketDlxDir,
|
|
140
|
+
getSocketHomePath,
|
|
141
|
+
getSocketRegistryDir,
|
|
142
|
+
getSocketRegistryGithubCacheDir,
|
|
143
|
+
getSocketUserDir
|
|
144
|
+
});
|
|
145
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/paths.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * @fileoverview Path utilities for Socket ecosystem directories.\n * Provides platform-aware path resolution for Socket tools' shared directory structure.\n *\n * Directory Structure:\n * ~/.socket/\n * \u251C\u2500\u2500 _cacache/ # Content-addressable cache (shared)\n * \u251C\u2500\u2500 _dlx/ # DLX tool installations (shared)\n * \u251C\u2500\u2500 _socket/ # Socket CLI app directory\n * \u251C\u2500\u2500 _registry/ # Socket Registry app directory\n * \u2514\u2500\u2500 _sfw/ # Socket Firewall app directory\n */\n\nimport * as os from 'node:os'\nimport * as path from 'node:path'\n\nimport { SOCKET_CACACHE_DIR } from '#env/socket-cacache-dir'\n\nimport { normalizePath } from './path'\n\n/**\n * Get the Socket home directory (~/.socket).\n * Alias for getSocketUserDir() for consistency across Socket projects.\n */\nexport function getSocketHomePath(): string {\n return getSocketUserDir()\n}\n\n/**\n * Get the Socket user directory (~/.socket).\n */\nexport function getSocketUserDir(): string {\n return normalizePath(\n path.join(\n os.homedir(),\n /*@__INLINE__*/ require('./constants/paths').DOT_SOCKET_DIR,\n ),\n )\n}\n\n/**\n * Get a Socket app directory (~/.socket/_<appName>).\n */\nexport function getSocketAppDir(appName: string): string {\n return normalizePath(\n path.join(\n getSocketUserDir(),\n `${/*@__INLINE__*/ require('./constants/socket').SOCKET_APP_PREFIX}${appName}`,\n ),\n )\n}\n\n/**\n * Get the Socket cacache directory (~/.socket/_cacache).\n * Can be overridden with SOCKET_CACACHE_DIR environment variable for testing.\n */\nexport function getSocketCacacheDir(): string {\n if (SOCKET_CACACHE_DIR) {\n return normalizePath(SOCKET_CACACHE_DIR)\n }\n return normalizePath(\n path.join(\n getSocketUserDir(),\n `${/*@__INLINE__*/ require('./constants/socket').SOCKET_APP_PREFIX}cacache`,\n ),\n )\n}\n\n/**\n * Get the Socket DLX directory (~/.socket/_dlx).\n */\nexport function getSocketDlxDir(): string {\n return normalizePath(\n path.join(\n getSocketUserDir(),\n `${/*@__INLINE__*/ require('./constants/socket').SOCKET_APP_PREFIX}${/*@__INLINE__*/ require('./constants/socket').SOCKET_DLX_APP_NAME}`,\n ),\n )\n}\n\n/**\n * Get a Socket app cache directory (~/.socket/_<appName>/cache).\n */\nexport function getSocketAppCacheDir(appName: string): string {\n return normalizePath(\n path.join(\n getSocketAppDir(appName),\n /*@__INLINE__*/ require('./constants/paths').CACHE_DIR,\n ),\n )\n}\n\n/**\n * Get a Socket app TTL cache directory (~/.socket/_<appName>/cache/ttl).\n */\nexport function getSocketAppCacheTtlDir(appName: string): string {\n return normalizePath(\n path.join(\n getSocketAppCacheDir(appName),\n /*@__INLINE__*/ require('./constants/paths').CACHE_TTL_DIR,\n ),\n )\n}\n\n/**\n * Get the Socket CLI directory (~/.socket/_socket).\n */\nexport function getSocketCliDir(): string {\n return getSocketAppDir(\n /*@__INLINE__*/ require('./constants/socket').SOCKET_CLI_APP_NAME,\n )\n}\n\n/**\n * Get the Socket Registry directory (~/.socket/_registry).\n */\nexport function getSocketRegistryDir(): string {\n return getSocketAppDir(\n /*@__INLINE__*/ require('./constants/socket').SOCKET_REGISTRY_APP_NAME,\n )\n}\n\n/**\n * Get the Socket Registry GitHub cache directory (~/.socket/_registry/cache/ttl/github).\n */\nexport function getSocketRegistryGithubCacheDir(): string {\n return normalizePath(\n path.join(\n getSocketAppCacheTtlDir(\n /*@__INLINE__*/ require('./constants/socket').SOCKET_REGISTRY_APP_NAME,\n ),\n /*@__INLINE__*/ require('./constants/github').CACHE_GITHUB_DIR,\n ),\n )\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,SAAoB;AACpB,WAAsB;AAEtB,gCAAmC;AAEnC,kBAA8B;AAMvB,SAAS,oBAA4B;AAC1C,SAAO,iBAAiB;AAC1B;AAKO,SAAS,mBAA2B;AACzC,aAAO;AAAA,IACL,KAAK;AAAA,MACH,GAAG,QAAQ;AAAA;AAAA,MACK,QAAQ,mBAAmB,EAAE;AAAA,IAC/C;AAAA,EACF;AACF;AAKO,SAAS,gBAAgB,SAAyB;AACvD,aAAO;AAAA,IACL,KAAK;AAAA,MACH,iBAAiB;AAAA,MACjB;AAAA,MAAmB,QAAQ,oBAAoB,EAAE,iBAAiB,GAAG,OAAO;AAAA,IAC9E;AAAA,EACF;AACF;AAMO,SAAS,sBAA8B;AAC5C,MAAI,8CAAoB;AACtB,eAAO,2BAAc,4CAAkB;AAAA,EACzC;AACA,aAAO;AAAA,IACL,KAAK;AAAA,MACH,iBAAiB;AAAA,MACjB;AAAA,MAAmB,QAAQ,oBAAoB,EAAE,iBAAiB;AAAA,IACpE;AAAA,EACF;AACF;AAKO,SAAS,kBAA0B;AACxC,aAAO;AAAA,IACL,KAAK;AAAA,MACH,iBAAiB;AAAA,MACjB;AAAA,MAAmB,QAAQ,oBAAoB,EAAE,iBAAiB;AAAA,MAAmB,QAAQ,oBAAoB,EAAE,mBAAmB;AAAA,IACxI;AAAA,EACF;AACF;AAKO,SAAS,qBAAqB,SAAyB;AAC5D,aAAO;AAAA,IACL,KAAK;AAAA,MACH,gBAAgB,OAAO;AAAA;AAAA,MACP,QAAQ,mBAAmB,EAAE;AAAA,IAC/C;AAAA,EACF;AACF;AAKO,SAAS,wBAAwB,SAAyB;AAC/D,aAAO;AAAA,IACL,KAAK;AAAA,MACH,qBAAqB,OAAO;AAAA;AAAA,MACZ,QAAQ,mBAAmB,EAAE;AAAA,IAC/C;AAAA,EACF;AACF;AAKO,SAAS,kBAA0B;AACxC,SAAO;AAAA;AAAA,IACW,QAAQ,oBAAoB,EAAE;AAAA,EAChD;AACF;AAKO,SAAS,uBAA+B;AAC7C,SAAO;AAAA;AAAA,IACW,QAAQ,oBAAoB,EAAE;AAAA,EAChD;AACF;AAKO,SAAS,kCAA0C;AACxD,aAAO;AAAA,IACL,KAAK;AAAA,MACH;AAAA;AAAA,QACkB,QAAQ,oBAAoB,EAAE;AAAA,MAChD;AAAA;AAAA,MACgB,QAAQ,oBAAoB,EAAE;AAAA,IAChD;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Performance metrics collected during execution.
|
|
3
|
+
*/
|
|
4
|
+
type PerformanceMetrics = {
|
|
5
|
+
operation: string;
|
|
6
|
+
duration: number;
|
|
7
|
+
timestamp: number;
|
|
8
|
+
metadata?: Record<string, unknown>;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Start a performance timer for an operation.
|
|
12
|
+
* Returns a stop function that records the duration.
|
|
13
|
+
*
|
|
14
|
+
* @param operation - Name of the operation being timed
|
|
15
|
+
* @param metadata - Optional metadata to attach to the metric
|
|
16
|
+
* @returns Stop function that completes the timing
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* import { perfTimer } from '@socketsecurity/registry/lib/performance'
|
|
20
|
+
*
|
|
21
|
+
* const stop = perfTimer('api-call')
|
|
22
|
+
* await fetchData()
|
|
23
|
+
* stop({ endpoint: '/npm/lodash/score' })
|
|
24
|
+
*/
|
|
25
|
+
export declare function perfTimer(operation: string, metadata?: Record<string, unknown>): (additionalMetadata?: Record<string, unknown>) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Measure execution time of an async function.
|
|
28
|
+
*
|
|
29
|
+
* @param operation - Name of the operation
|
|
30
|
+
* @param fn - Async function to measure
|
|
31
|
+
* @param metadata - Optional metadata
|
|
32
|
+
* @returns Result of the function and duration
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* import { measure } from '@socketsecurity/registry/lib/performance'
|
|
36
|
+
*
|
|
37
|
+
* const { result, duration } = await measure('fetch-packages', async () => {
|
|
38
|
+
* return await fetchPackages()
|
|
39
|
+
* })
|
|
40
|
+
* console.log(`Fetched packages in ${duration}ms`)
|
|
41
|
+
*/
|
|
42
|
+
export declare function measure<T>(operation: string, fn: () => Promise<T>, metadata?: Record<string, unknown>): Promise<{
|
|
43
|
+
result: T;
|
|
44
|
+
duration: number;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Measure synchronous function execution time.
|
|
48
|
+
*
|
|
49
|
+
* @param operation - Name of the operation
|
|
50
|
+
* @param fn - Synchronous function to measure
|
|
51
|
+
* @param metadata - Optional metadata
|
|
52
|
+
* @returns Result of the function and duration
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* import { measureSync } from '@socketsecurity/registry/lib/performance'
|
|
56
|
+
*
|
|
57
|
+
* const { result, duration } = measureSync('parse-json', () => {
|
|
58
|
+
* return JSON.parse(data)
|
|
59
|
+
* })
|
|
60
|
+
*/
|
|
61
|
+
export declare function measureSync<T>(operation: string, fn: () => T, metadata?: Record<string, unknown>): {
|
|
62
|
+
result: T;
|
|
63
|
+
duration: number;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Get all collected performance metrics.
|
|
67
|
+
* Only available when DEBUG=perf is enabled.
|
|
68
|
+
*
|
|
69
|
+
* @returns Array of performance metrics
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* import { getPerformanceMetrics } from '@socketsecurity/registry/lib/performance'
|
|
73
|
+
*
|
|
74
|
+
* const metrics = getPerformanceMetrics()
|
|
75
|
+
* console.log(metrics)
|
|
76
|
+
*/
|
|
77
|
+
export declare function getPerformanceMetrics(): PerformanceMetrics[];
|
|
78
|
+
/**
|
|
79
|
+
* Clear all collected performance metrics.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* import { clearPerformanceMetrics } from '@socketsecurity/registry/lib/performance'
|
|
83
|
+
*
|
|
84
|
+
* clearPerformanceMetrics()
|
|
85
|
+
*/
|
|
86
|
+
export declare function clearPerformanceMetrics(): void;
|
|
87
|
+
/**
|
|
88
|
+
* Get performance summary statistics.
|
|
89
|
+
*
|
|
90
|
+
* @returns Summary of metrics grouped by operation
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* import { getPerformanceSummary } from '@socketsecurity/registry/lib/performance'
|
|
94
|
+
*
|
|
95
|
+
* const summary = getPerformanceSummary()
|
|
96
|
+
* console.log(summary)
|
|
97
|
+
* // {
|
|
98
|
+
* // 'api-call': { count: 5, total: 1234, avg: 246.8, min: 100, max: 500 },
|
|
99
|
+
* // 'file-read': { count: 10, total: 50, avg: 5, min: 2, max: 15 }
|
|
100
|
+
* // }
|
|
101
|
+
*/
|
|
102
|
+
export declare function getPerformanceSummary(): Record<string, {
|
|
103
|
+
count: number;
|
|
104
|
+
total: number;
|
|
105
|
+
avg: number;
|
|
106
|
+
min: number;
|
|
107
|
+
max: number;
|
|
108
|
+
}>;
|
|
109
|
+
/**
|
|
110
|
+
* Print performance summary to console.
|
|
111
|
+
* Only prints when DEBUG=perf is enabled.
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* import { printPerformanceSummary } from '@socketsecurity/registry/lib/performance'
|
|
115
|
+
*
|
|
116
|
+
* printPerformanceSummary()
|
|
117
|
+
* // Performance Summary:
|
|
118
|
+
* // api-call: 5 calls, avg 246.8ms (min 100ms, max 500ms, total 1234ms)
|
|
119
|
+
* // file-read: 10 calls, avg 5ms (min 2ms, max 15ms, total 50ms)
|
|
120
|
+
*/
|
|
121
|
+
export declare function printPerformanceSummary(): void;
|
|
122
|
+
/**
|
|
123
|
+
* Mark a checkpoint in performance tracking.
|
|
124
|
+
* Useful for tracking progress through complex operations.
|
|
125
|
+
*
|
|
126
|
+
* @param checkpoint - Name of the checkpoint
|
|
127
|
+
* @param metadata - Optional metadata
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* import { perfCheckpoint } from '@socketsecurity/registry/lib/performance'
|
|
131
|
+
*
|
|
132
|
+
* perfCheckpoint('start-scan')
|
|
133
|
+
* // ... do work ...
|
|
134
|
+
* perfCheckpoint('fetch-packages', { count: 50 })
|
|
135
|
+
* // ... do work ...
|
|
136
|
+
* perfCheckpoint('analyze-issues', { issueCount: 10 })
|
|
137
|
+
* perfCheckpoint('end-scan')
|
|
138
|
+
*/
|
|
139
|
+
export declare function perfCheckpoint(checkpoint: string, metadata?: Record<string, unknown>): void;
|
|
140
|
+
/**
|
|
141
|
+
* Track memory usage at a specific point.
|
|
142
|
+
* Only available when DEBUG=perf is enabled.
|
|
143
|
+
*
|
|
144
|
+
* @param label - Label for this memory snapshot
|
|
145
|
+
* @returns Memory usage in MB
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* import { trackMemory } from '@socketsecurity/registry/lib/performance'
|
|
149
|
+
*
|
|
150
|
+
* const memBefore = trackMemory('before-operation')
|
|
151
|
+
* await heavyOperation()
|
|
152
|
+
* const memAfter = trackMemory('after-operation')
|
|
153
|
+
* console.log(`Memory increased by ${memAfter - memBefore}MB`)
|
|
154
|
+
*/
|
|
155
|
+
export declare function trackMemory(label: string): number;
|
|
156
|
+
/**
|
|
157
|
+
* Create a performance report for the current execution.
|
|
158
|
+
* Only available when DEBUG=perf is enabled.
|
|
159
|
+
*
|
|
160
|
+
* @returns Formatted performance report
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* import { generatePerformanceReport } from '@socketsecurity/registry/lib/performance'
|
|
164
|
+
*
|
|
165
|
+
* console.log(generatePerformanceReport())
|
|
166
|
+
* // ╔═══════════════════════════════════════════════╗
|
|
167
|
+
* // ║ Performance Report ║
|
|
168
|
+
* // ╚═══════════════════════════════════════════════╝
|
|
169
|
+
* //
|
|
170
|
+
* // api-call:
|
|
171
|
+
* // Calls: 5
|
|
172
|
+
* // Avg: 246.8ms
|
|
173
|
+
* // Min: 100ms
|
|
174
|
+
* // Max: 500ms
|
|
175
|
+
* // Total: 1234ms
|
|
176
|
+
*/
|
|
177
|
+
export declare function generatePerformanceReport(): string;
|
|
178
|
+
export {};
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/* Socket Lib - Built with esbuild */
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var performance_exports = {};
|
|
20
|
+
__export(performance_exports, {
|
|
21
|
+
clearPerformanceMetrics: () => clearPerformanceMetrics,
|
|
22
|
+
generatePerformanceReport: () => generatePerformanceReport,
|
|
23
|
+
getPerformanceMetrics: () => getPerformanceMetrics,
|
|
24
|
+
getPerformanceSummary: () => getPerformanceSummary,
|
|
25
|
+
measure: () => measure,
|
|
26
|
+
measureSync: () => measureSync,
|
|
27
|
+
perfCheckpoint: () => perfCheckpoint,
|
|
28
|
+
perfTimer: () => perfTimer,
|
|
29
|
+
printPerformanceSummary: () => printPerformanceSummary,
|
|
30
|
+
trackMemory: () => trackMemory
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(performance_exports);
|
|
33
|
+
var import_debug = require("./debug");
|
|
34
|
+
const performanceMetrics = [];
|
|
35
|
+
function isPerfEnabled() {
|
|
36
|
+
return process.env["DEBUG"]?.includes("perf") || false;
|
|
37
|
+
}
|
|
38
|
+
function perfTimer(operation, metadata) {
|
|
39
|
+
if (!isPerfEnabled()) {
|
|
40
|
+
return () => {
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const start = performance.now();
|
|
44
|
+
(0, import_debug.debugLog)(`[perf] [START] ${operation}`);
|
|
45
|
+
return (additionalMetadata) => {
|
|
46
|
+
const duration = performance.now() - start;
|
|
47
|
+
const metric = {
|
|
48
|
+
operation,
|
|
49
|
+
// Round to 2 decimals
|
|
50
|
+
duration: Math.round(duration * 100) / 100,
|
|
51
|
+
timestamp: Date.now(),
|
|
52
|
+
metadata: { ...metadata, ...additionalMetadata }
|
|
53
|
+
};
|
|
54
|
+
performanceMetrics.push(metric);
|
|
55
|
+
(0, import_debug.debugLog)(`[perf] [END] ${operation} - ${metric.duration}ms`);
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
async function measure(operation, fn, metadata) {
|
|
59
|
+
const stop = perfTimer(operation, metadata);
|
|
60
|
+
try {
|
|
61
|
+
const result = await fn();
|
|
62
|
+
stop({ success: true });
|
|
63
|
+
const metric = performanceMetrics[performanceMetrics.length - 1];
|
|
64
|
+
return { result, duration: metric?.duration || 0 };
|
|
65
|
+
} catch (e) {
|
|
66
|
+
stop({
|
|
67
|
+
success: false,
|
|
68
|
+
error: e instanceof Error ? e.message : "Unknown"
|
|
69
|
+
});
|
|
70
|
+
throw e;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function measureSync(operation, fn, metadata) {
|
|
74
|
+
const stop = perfTimer(operation, metadata);
|
|
75
|
+
try {
|
|
76
|
+
const result = fn();
|
|
77
|
+
stop({ success: true });
|
|
78
|
+
const metric = performanceMetrics[performanceMetrics.length - 1];
|
|
79
|
+
return { result, duration: metric?.duration || 0 };
|
|
80
|
+
} catch (e) {
|
|
81
|
+
stop({
|
|
82
|
+
success: false,
|
|
83
|
+
error: e instanceof Error ? e.message : "Unknown"
|
|
84
|
+
});
|
|
85
|
+
throw e;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function getPerformanceMetrics() {
|
|
89
|
+
return [...performanceMetrics];
|
|
90
|
+
}
|
|
91
|
+
function clearPerformanceMetrics() {
|
|
92
|
+
performanceMetrics.length = 0;
|
|
93
|
+
(0, import_debug.debugLog)("[perf] Cleared performance metrics");
|
|
94
|
+
}
|
|
95
|
+
function getPerformanceSummary() {
|
|
96
|
+
const summary = /* @__PURE__ */ Object.create(null);
|
|
97
|
+
for (const metric of performanceMetrics) {
|
|
98
|
+
const { duration, operation } = metric;
|
|
99
|
+
if (!summary[operation]) {
|
|
100
|
+
summary[operation] = {
|
|
101
|
+
count: 0,
|
|
102
|
+
total: 0,
|
|
103
|
+
min: Number.POSITIVE_INFINITY,
|
|
104
|
+
max: Number.NEGATIVE_INFINITY
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
const stats = summary[operation];
|
|
108
|
+
stats.count++;
|
|
109
|
+
stats.total += duration;
|
|
110
|
+
stats.min = Math.min(stats.min, duration);
|
|
111
|
+
stats.max = Math.max(stats.max, duration);
|
|
112
|
+
}
|
|
113
|
+
const result = /* @__PURE__ */ Object.create(null);
|
|
114
|
+
for (const { 0: operation, 1: stats } of Object.entries(summary)) {
|
|
115
|
+
result[operation] = {
|
|
116
|
+
count: stats.count,
|
|
117
|
+
total: Math.round(stats.total * 100) / 100,
|
|
118
|
+
avg: Math.round(stats.total / stats.count * 100) / 100,
|
|
119
|
+
min: Math.round(stats.min * 100) / 100,
|
|
120
|
+
max: Math.round(stats.max * 100) / 100
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
125
|
+
function printPerformanceSummary() {
|
|
126
|
+
if (!isPerfEnabled() || performanceMetrics.length === 0) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const summary = getPerformanceSummary();
|
|
130
|
+
const operations = Object.keys(summary).sort();
|
|
131
|
+
(0, import_debug.debugLog)("[perf]\n=== Performance Summary ===");
|
|
132
|
+
for (const operation of operations) {
|
|
133
|
+
const stats = summary[operation];
|
|
134
|
+
(0, import_debug.debugLog)(
|
|
135
|
+
`[perf] ${operation}: ${stats.count} calls, avg ${stats.avg}ms (min ${stats.min}ms, max ${stats.max}ms, total ${stats.total}ms)`
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
(0, import_debug.debugLog)("[perf] =========================\n");
|
|
139
|
+
}
|
|
140
|
+
function perfCheckpoint(checkpoint, metadata) {
|
|
141
|
+
if (!isPerfEnabled()) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const metric = {
|
|
145
|
+
operation: `checkpoint:${checkpoint}`,
|
|
146
|
+
duration: 0,
|
|
147
|
+
timestamp: Date.now(),
|
|
148
|
+
...metadata ? { metadata } : {}
|
|
149
|
+
};
|
|
150
|
+
performanceMetrics.push(metric);
|
|
151
|
+
(0, import_debug.debugLog)(`[perf] [CHECKPOINT] ${checkpoint}`);
|
|
152
|
+
}
|
|
153
|
+
function trackMemory(label) {
|
|
154
|
+
if (!isPerfEnabled()) {
|
|
155
|
+
return 0;
|
|
156
|
+
}
|
|
157
|
+
const usage = process.memoryUsage();
|
|
158
|
+
const heapUsedMB = Math.round(usage.heapUsed / 1024 / 1024 * 100) / 100;
|
|
159
|
+
(0, import_debug.debugLog)(`[perf] [MEMORY] ${label}: ${heapUsedMB}MB heap used`);
|
|
160
|
+
const metric = {
|
|
161
|
+
operation: `checkpoint:memory:${label}`,
|
|
162
|
+
duration: 0,
|
|
163
|
+
timestamp: Date.now(),
|
|
164
|
+
metadata: {
|
|
165
|
+
heapUsed: heapUsedMB,
|
|
166
|
+
heapTotal: Math.round(usage.heapTotal / 1024 / 1024 * 100) / 100,
|
|
167
|
+
external: Math.round(usage.external / 1024 / 1024 * 100) / 100
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
performanceMetrics.push(metric);
|
|
171
|
+
return heapUsedMB;
|
|
172
|
+
}
|
|
173
|
+
function generatePerformanceReport() {
|
|
174
|
+
if (!isPerfEnabled() || performanceMetrics.length === 0) {
|
|
175
|
+
return "(no performance data collected - enable with DEBUG=perf)";
|
|
176
|
+
}
|
|
177
|
+
const summary = getPerformanceSummary();
|
|
178
|
+
const operations = Object.keys(summary).sort();
|
|
179
|
+
let report = "\n\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n";
|
|
180
|
+
report += "\u2551 Performance Report \u2551\n";
|
|
181
|
+
report += "\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\n\n";
|
|
182
|
+
for (const operation of operations) {
|
|
183
|
+
const stats = summary[operation];
|
|
184
|
+
report += `${operation}:
|
|
185
|
+
`;
|
|
186
|
+
report += ` Calls: ${stats.count}
|
|
187
|
+
`;
|
|
188
|
+
report += ` Avg: ${stats.avg}ms
|
|
189
|
+
`;
|
|
190
|
+
report += ` Min: ${stats.min}ms
|
|
191
|
+
`;
|
|
192
|
+
report += ` Max: ${stats.max}ms
|
|
193
|
+
`;
|
|
194
|
+
report += ` Total: ${stats.total}ms
|
|
195
|
+
|
|
196
|
+
`;
|
|
197
|
+
}
|
|
198
|
+
const totalDuration = Object.values(summary).reduce(
|
|
199
|
+
(sum, s) => sum + s.total,
|
|
200
|
+
0
|
|
201
|
+
);
|
|
202
|
+
report += `Total measured time: ${Math.round(totalDuration * 100) / 100}ms
|
|
203
|
+
`;
|
|
204
|
+
return report;
|
|
205
|
+
}
|
|
206
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
207
|
+
0 && (module.exports = {
|
|
208
|
+
clearPerformanceMetrics,
|
|
209
|
+
generatePerformanceReport,
|
|
210
|
+
getPerformanceMetrics,
|
|
211
|
+
getPerformanceSummary,
|
|
212
|
+
measure,
|
|
213
|
+
measureSync,
|
|
214
|
+
perfCheckpoint,
|
|
215
|
+
perfTimer,
|
|
216
|
+
printPerformanceSummary,
|
|
217
|
+
trackMemory
|
|
218
|
+
});
|
|
219
|
+
//# sourceMappingURL=performance.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/performance.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * @fileoverview Performance monitoring utilities for profiling and optimization.\n * Provides timing, profiling, and performance metric collection for identifying bottlenecks.\n */\n\nimport { debugLog } from './debug'\n\n/**\n * Performance metrics collected during execution.\n */\ntype PerformanceMetrics = {\n operation: string\n duration: number\n timestamp: number\n metadata?: Record<string, unknown>\n}\n\n/**\n * Global metrics collection (only in debug mode).\n */\nconst performanceMetrics: PerformanceMetrics[] = []\n\n/**\n * Check if performance tracking is enabled.\n */\nfunction isPerfEnabled(): boolean {\n return process.env['DEBUG']?.includes('perf') || false\n}\n\n/**\n * Start a performance timer for an operation.\n * Returns a stop function that records the duration.\n *\n * @param operation - Name of the operation being timed\n * @param metadata - Optional metadata to attach to the metric\n * @returns Stop function that completes the timing\n *\n * @example\n * import { perfTimer } from '@socketsecurity/registry/lib/performance'\n *\n * const stop = perfTimer('api-call')\n * await fetchData()\n * stop({ endpoint: '/npm/lodash/score' })\n */\nexport function perfTimer(\n operation: string,\n metadata?: Record<string, unknown>,\n): (additionalMetadata?: Record<string, unknown>) => void {\n if (!isPerfEnabled()) {\n // No-op if perf tracking disabled\n return () => {}\n }\n\n const start = performance.now()\n debugLog(`[perf] [START] ${operation}`)\n\n return (additionalMetadata?: Record<string, unknown>) => {\n const duration = performance.now() - start\n const metric: PerformanceMetrics = {\n operation,\n // Round to 2 decimals\n duration: Math.round(duration * 100) / 100,\n timestamp: Date.now(),\n metadata: { ...metadata, ...additionalMetadata },\n }\n\n performanceMetrics.push(metric)\n debugLog(`[perf] [END] ${operation} - ${metric.duration}ms`)\n }\n}\n\n/**\n * Measure execution time of an async function.\n *\n * @param operation - Name of the operation\n * @param fn - Async function to measure\n * @param metadata - Optional metadata\n * @returns Result of the function and duration\n *\n * @example\n * import { measure } from '@socketsecurity/registry/lib/performance'\n *\n * const { result, duration } = await measure('fetch-packages', async () => {\n * return await fetchPackages()\n * })\n * console.log(`Fetched packages in ${duration}ms`)\n */\nexport async function measure<T>(\n operation: string,\n fn: () => Promise<T>,\n metadata?: Record<string, unknown>,\n): Promise<{ result: T; duration: number }> {\n const stop = perfTimer(operation, metadata)\n\n try {\n const result = await fn()\n stop({ success: true })\n\n const metric = performanceMetrics[performanceMetrics.length - 1]\n return { result, duration: metric?.duration || 0 }\n } catch (e) {\n stop({\n success: false,\n error: e instanceof Error ? e.message : 'Unknown',\n })\n throw e\n }\n}\n\n/**\n * Measure synchronous function execution time.\n *\n * @param operation - Name of the operation\n * @param fn - Synchronous function to measure\n * @param metadata - Optional metadata\n * @returns Result of the function and duration\n *\n * @example\n * import { measureSync } from '@socketsecurity/registry/lib/performance'\n *\n * const { result, duration } = measureSync('parse-json', () => {\n * return JSON.parse(data)\n * })\n */\nexport function measureSync<T>(\n operation: string,\n fn: () => T,\n metadata?: Record<string, unknown>,\n): { result: T; duration: number } {\n const stop = perfTimer(operation, metadata)\n\n try {\n const result = fn()\n stop({ success: true })\n\n const metric = performanceMetrics[performanceMetrics.length - 1]\n return { result, duration: metric?.duration || 0 }\n } catch (e) {\n stop({\n success: false,\n error: e instanceof Error ? e.message : 'Unknown',\n })\n throw e\n }\n}\n\n/**\n * Get all collected performance metrics.\n * Only available when DEBUG=perf is enabled.\n *\n * @returns Array of performance metrics\n *\n * @example\n * import { getPerformanceMetrics } from '@socketsecurity/registry/lib/performance'\n *\n * const metrics = getPerformanceMetrics()\n * console.log(metrics)\n */\nexport function getPerformanceMetrics(): PerformanceMetrics[] {\n return [...performanceMetrics]\n}\n\n/**\n * Clear all collected performance metrics.\n *\n * @example\n * import { clearPerformanceMetrics } from '@socketsecurity/registry/lib/performance'\n *\n * clearPerformanceMetrics()\n */\nexport function clearPerformanceMetrics(): void {\n performanceMetrics.length = 0\n debugLog('[perf] Cleared performance metrics')\n}\n\n/**\n * Get performance summary statistics.\n *\n * @returns Summary of metrics grouped by operation\n *\n * @example\n * import { getPerformanceSummary } from '@socketsecurity/registry/lib/performance'\n *\n * const summary = getPerformanceSummary()\n * console.log(summary)\n * // {\n * // 'api-call': { count: 5, total: 1234, avg: 246.8, min: 100, max: 500 },\n * // 'file-read': { count: 10, total: 50, avg: 5, min: 2, max: 15 }\n * // }\n */\nexport function getPerformanceSummary(): Record<\n string,\n {\n count: number\n total: number\n avg: number\n min: number\n max: number\n }\n> {\n const summary: Record<\n string,\n { count: number; total: number; min: number; max: number }\n > = Object.create(null)\n\n for (const metric of performanceMetrics) {\n const { duration, operation } = metric\n\n if (!summary[operation]) {\n summary[operation] = {\n count: 0,\n total: 0,\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY,\n }\n }\n\n const stats = summary[operation] as {\n count: number\n total: number\n min: number\n max: number\n }\n stats.count++\n stats.total += duration\n stats.min = Math.min(stats.min, duration)\n stats.max = Math.max(stats.max, duration)\n }\n\n // Calculate averages and return with proper typing\n const result: Record<\n string,\n { count: number; total: number; avg: number; min: number; max: number }\n > = Object.create(null)\n\n for (const { 0: operation, 1: stats } of Object.entries(summary)) {\n result[operation] = {\n count: stats.count,\n total: Math.round(stats.total * 100) / 100,\n avg: Math.round((stats.total / stats.count) * 100) / 100,\n min: Math.round(stats.min * 100) / 100,\n max: Math.round(stats.max * 100) / 100,\n }\n }\n\n return result\n}\n\n/**\n * Print performance summary to console.\n * Only prints when DEBUG=perf is enabled.\n *\n * @example\n * import { printPerformanceSummary } from '@socketsecurity/registry/lib/performance'\n *\n * printPerformanceSummary()\n * // Performance Summary:\n * // api-call: 5 calls, avg 246.8ms (min 100ms, max 500ms, total 1234ms)\n * // file-read: 10 calls, avg 5ms (min 2ms, max 15ms, total 50ms)\n */\nexport function printPerformanceSummary(): void {\n if (!isPerfEnabled() || performanceMetrics.length === 0) {\n return\n }\n\n const summary = getPerformanceSummary()\n const operations = Object.keys(summary).sort()\n\n debugLog('[perf]\\n=== Performance Summary ===')\n\n for (const operation of operations) {\n const stats = summary[operation] as {\n count: number\n total: number\n avg: number\n min: number\n max: number\n }\n debugLog(\n `[perf] ${operation}: ${stats.count} calls, avg ${stats.avg}ms (min ${stats.min}ms, max ${stats.max}ms, total ${stats.total}ms)`,\n )\n }\n\n debugLog('[perf] =========================\\n')\n}\n\n/**\n * Mark a checkpoint in performance tracking.\n * Useful for tracking progress through complex operations.\n *\n * @param checkpoint - Name of the checkpoint\n * @param metadata - Optional metadata\n *\n * @example\n * import { perfCheckpoint } from '@socketsecurity/registry/lib/performance'\n *\n * perfCheckpoint('start-scan')\n * // ... do work ...\n * perfCheckpoint('fetch-packages', { count: 50 })\n * // ... do work ...\n * perfCheckpoint('analyze-issues', { issueCount: 10 })\n * perfCheckpoint('end-scan')\n */\nexport function perfCheckpoint(\n checkpoint: string,\n metadata?: Record<string, unknown>,\n): void {\n if (!isPerfEnabled()) {\n return\n }\n\n const metric: PerformanceMetrics = {\n operation: `checkpoint:${checkpoint}`,\n duration: 0,\n timestamp: Date.now(),\n ...(metadata ? { metadata } : {}),\n }\n\n performanceMetrics.push(metric)\n debugLog(`[perf] [CHECKPOINT] ${checkpoint}`)\n}\n\n/**\n * Track memory usage at a specific point.\n * Only available when DEBUG=perf is enabled.\n *\n * @param label - Label for this memory snapshot\n * @returns Memory usage in MB\n *\n * @example\n * import { trackMemory } from '@socketsecurity/registry/lib/performance'\n *\n * const memBefore = trackMemory('before-operation')\n * await heavyOperation()\n * const memAfter = trackMemory('after-operation')\n * console.log(`Memory increased by ${memAfter - memBefore}MB`)\n */\nexport function trackMemory(label: string): number {\n if (!isPerfEnabled()) {\n return 0\n }\n\n const usage = process.memoryUsage()\n const heapUsedMB = Math.round((usage.heapUsed / 1024 / 1024) * 100) / 100\n\n debugLog(`[perf] [MEMORY] ${label}: ${heapUsedMB}MB heap used`)\n\n const metric: PerformanceMetrics = {\n operation: `checkpoint:memory:${label}`,\n duration: 0,\n timestamp: Date.now(),\n metadata: {\n heapUsed: heapUsedMB,\n heapTotal: Math.round((usage.heapTotal / 1024 / 1024) * 100) / 100,\n external: Math.round((usage.external / 1024 / 1024) * 100) / 100,\n },\n }\n\n performanceMetrics.push(metric)\n\n return heapUsedMB\n}\n\n/**\n * Create a performance report for the current execution.\n * Only available when DEBUG=perf is enabled.\n *\n * @returns Formatted performance report\n *\n * @example\n * import { generatePerformanceReport } from '@socketsecurity/registry/lib/performance'\n *\n * console.log(generatePerformanceReport())\n * // \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n * // \u2551 Performance Report \u2551\n * // \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\n * //\n * // api-call:\n * // Calls: 5\n * // Avg: 246.8ms\n * // Min: 100ms\n * // Max: 500ms\n * // Total: 1234ms\n */\nexport function generatePerformanceReport(): string {\n if (!isPerfEnabled() || performanceMetrics.length === 0) {\n return '(no performance data collected - enable with DEBUG=perf)'\n }\n\n const summary = getPerformanceSummary()\n const operations = Object.keys(summary).sort()\n\n let report = '\\n\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\\n'\n report += '\u2551 Performance Report \u2551\\n'\n report += '\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\\n\\n'\n\n for (const operation of operations) {\n const stats = summary[operation] as {\n count: number\n total: number\n avg: number\n min: number\n max: number\n }\n report += `${operation}:\\n`\n report += ` Calls: ${stats.count}\\n`\n report += ` Avg: ${stats.avg}ms\\n`\n report += ` Min: ${stats.min}ms\\n`\n report += ` Max: ${stats.max}ms\\n`\n report += ` Total: ${stats.total}ms\\n\\n`\n }\n\n const totalDuration = Object.values(summary).reduce(\n (sum, s) => sum + s.total,\n 0,\n )\n report += `Total measured time: ${Math.round(totalDuration * 100) / 100}ms\\n`\n\n return report\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare class PromiseQueue {
|
|
2
|
+
private queue;
|
|
3
|
+
private running;
|
|
4
|
+
private readonly maxConcurrency;
|
|
5
|
+
private readonly maxQueueLength;
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new PromiseQueue
|
|
8
|
+
* @param maxConcurrency - Maximum number of promises that can run concurrently
|
|
9
|
+
* @param maxQueueLength - Maximum queue size (older tasks are dropped if exceeded)
|
|
10
|
+
*/
|
|
11
|
+
constructor(maxConcurrency: number, maxQueueLength?: number | undefined);
|
|
12
|
+
/**
|
|
13
|
+
* Add a task to the queue
|
|
14
|
+
* @param fn - Async function to execute
|
|
15
|
+
* @returns Promise that resolves with the function's result
|
|
16
|
+
*/
|
|
17
|
+
add<T>(fn: () => Promise<T>): Promise<T>;
|
|
18
|
+
private runNext;
|
|
19
|
+
/**
|
|
20
|
+
* Wait for all queued and running tasks to complete
|
|
21
|
+
*/
|
|
22
|
+
onIdle(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Get the number of tasks currently running
|
|
25
|
+
*/
|
|
26
|
+
get activeCount(): number;
|
|
27
|
+
/**
|
|
28
|
+
* Get the number of tasks waiting in the queue
|
|
29
|
+
*/
|
|
30
|
+
get pendingCount(): number;
|
|
31
|
+
/**
|
|
32
|
+
* Clear all pending tasks from the queue (does not affect running tasks)
|
|
33
|
+
*/
|
|
34
|
+
clear(): void;
|
|
35
|
+
}
|