@socketsecurity/lib 6.0.3 → 6.0.5
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 +22 -0
- package/dist/_virtual/_rolldown/runtime.js +45 -0
- package/dist/abort/signal.js +53 -59
- package/dist/ai/discover.js +110 -110
- package/dist/ai/profiles.js +94 -65
- package/dist/ai/spawn.js +172 -194
- package/dist/ai/types.js +1 -17
- package/dist/ai/worktree.js +160 -183
- package/dist/ansi/constants.js +16 -38
- package/dist/ansi/strip.js +44 -41
- package/dist/archives/_internal.js +64 -73
- package/dist/archives/detect.js +30 -43
- package/dist/archives/extract.js +43 -50
- package/dist/archives/tar.js +197 -228
- package/dist/archives/types.js +1 -17
- package/dist/archives/zip.js +85 -121
- package/dist/argv/flag-predicates.js +203 -101
- package/dist/argv/flag-types.js +96 -113
- package/dist/argv/parse-args-string.d.ts +16 -14
- package/dist/argv/parse-args-string.js +42 -39
- package/dist/argv/parse.js +145 -163
- package/dist/arrays/_internal.js +65 -48
- package/dist/arrays/chunk.js +51 -40
- package/dist/arrays/join.js +87 -35
- package/dist/arrays/predicates.js +46 -28
- package/dist/arrays/unique.js +45 -31
- package/dist/bin/_internal.js +34 -42
- package/dist/bin/check-primordials.js +175 -233
- package/dist/bin/check.js +51 -72
- package/dist/bin/exec.js +70 -74
- package/dist/bin/find.js +151 -134
- package/dist/bin/resolve.js +180 -246
- package/dist/bin/shadow.js +24 -33
- package/dist/bin/socket-lib.js +51 -73
- package/dist/bin/types.js +1 -17
- package/dist/bin/which.js +211 -146
- package/dist/cacache/_internal.js +25 -40
- package/dist/cacache/clear.js +79 -72
- package/dist/cacache/read.js +48 -46
- package/dist/cacache/tmp.js +29 -36
- package/dist/cacache/types.js +1 -17
- package/dist/cacache/write.js +43 -48
- package/dist/cache/ttl/store.js +232 -288
- package/dist/cache/ttl/types.js +1 -17
- package/dist/checks/primordials-defaults.js +83 -89
- package/dist/checks/primordials.js +225 -277
- package/dist/colors/convert.js +45 -37
- package/dist/colors/palette.js +88 -45
- package/dist/colors/socket-palette.js +74 -84
- package/dist/colors/types.js +1 -17
- package/dist/compression/_internal.js +57 -72
- package/dist/compression/brotli.js +94 -127
- package/dist/compression/gzip.js +95 -121
- package/dist/compression/types.js +1 -17
- package/dist/constants/agents.js +61 -113
- package/dist/constants/encoding.js +19 -42
- package/dist/constants/github.js +12 -30
- package/dist/constants/licenses.js +48 -63
- package/dist/constants/lifecycle-script-names.js +31 -45
- package/dist/constants/maintained-node-versions.js +22 -37
- package/dist/constants/node.js +226 -167
- package/dist/constants/package-default-node-range.js +16 -41
- package/dist/constants/package-default-socket-categories.js +12 -30
- package/dist/constants/packages.js +77 -126
- package/dist/constants/platform.js +27 -49
- package/dist/constants/sentinels.js +23 -48
- package/dist/constants/socket.js +42 -87
- package/dist/constants/testing.js +15 -34
- package/dist/constants/time.js +16 -36
- package/dist/constants/typescript.js +32 -52
- package/dist/cover/code.js +111 -142
- package/dist/cover/formatters.js +118 -101
- package/dist/cover/type.js +50 -76
- package/dist/cover/types.js +1 -17
- package/dist/crypto/hash.js +54 -46
- package/dist/debug/_internal.js +62 -71
- package/dist/debug/caller-info.js +53 -64
- package/dist/debug/namespace.js +80 -90
- package/dist/debug/output.js +172 -188
- package/dist/debug/types.js +1 -17
- package/dist/dlx/_internal.js +24 -43
- package/dist/dlx/arborist.js +162 -160
- package/dist/dlx/binary-cache.js +228 -200
- package/dist/dlx/binary-download.js +172 -211
- package/dist/dlx/binary-resolution.js +165 -157
- package/dist/dlx/binary-types.js +1 -17
- package/dist/dlx/binary.js +149 -189
- package/dist/dlx/cache.js +45 -30
- package/dist/dlx/detect.js +245 -159
- package/dist/dlx/dir.js +67 -51
- package/dist/dlx/firewall.js +62 -100
- package/dist/dlx/lockfile.js +122 -127
- package/dist/dlx/manifest.js +264 -274
- package/dist/dlx/package.js +241 -244
- package/dist/dlx/packages.js +99 -96
- package/dist/dlx/paths.js +73 -59
- package/dist/dlx/spec.js +52 -60
- package/dist/dlx/types.js +1 -17
- package/dist/eco/cargo/lockfile-format.js +19 -36
- package/dist/eco/cargo/manifest-format.js +17 -35
- package/dist/eco/cargo/parse-lockfile.js +210 -237
- package/dist/eco/manifest/analyze-lockfile.js +46 -63
- package/dist/eco/manifest/detect-format.js +66 -90
- package/dist/eco/manifest/find-packages.js +39 -64
- package/dist/eco/manifest/get-package-versions.js +27 -48
- package/dist/eco/manifest/get-package.js +21 -40
- package/dist/eco/manifest/manifest-error.js +14 -35
- package/dist/eco/manifest/parse-lockfile.js +40 -86
- package/dist/eco/manifest/parse-manifest.js +26 -43
- package/dist/eco/manifest/parse.js +26 -47
- package/dist/eco/manifest/types.js +1 -17
- package/dist/eco/npm/bun/exec.js +23 -32
- package/dist/eco/npm/manifest-format.js +21 -35
- package/dist/eco/npm/npm/exec.js +51 -61
- package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
- package/dist/eco/npm/npm/flags.js +80 -52
- package/dist/eco/npm/npm/lockfile-format.js +21 -40
- package/dist/eco/npm/npm/parse-git-url.js +26 -40
- package/dist/eco/npm/npm/parse-lockfile.js +184 -210
- package/dist/eco/npm/parse-package-json.js +71 -102
- package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
- package/dist/eco/npm/pnpm/exec.js +51 -62
- package/dist/eco/npm/pnpm/flags.js +75 -68
- package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
- package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
- package/dist/eco/npm/script.js +82 -90
- package/dist/eco/npm/vlt/exec.js +24 -32
- package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
- package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
- package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
- package/dist/eco/purl.js +50 -60
- package/dist/eco/types.js +1 -17
- package/dist/effects/pulse-frames.js +64 -65
- package/dist/effects/shimmer-keyframes.js +71 -52
- package/dist/effects/shimmer-terminal.js +81 -50
- package/dist/effects/shimmer.js +290 -153
- package/dist/env/boolean.js +42 -43
- package/dist/env/case-insensitive.js +54 -39
- package/dist/env/ci.js +29 -31
- package/dist/env/debug.js +28 -31
- package/dist/env/github.js +144 -59
- package/dist/env/home.js +38 -31
- package/dist/env/locale.js +59 -39
- package/dist/env/node-auth-token.js +28 -31
- package/dist/env/node-env.js +28 -31
- package/dist/env/npm.js +94 -47
- package/dist/env/number.js +50 -51
- package/dist/env/package-manager.js +95 -83
- package/dist/env/path.js +28 -31
- package/dist/env/pre-commit.js +30 -32
- package/dist/env/proxy.js +121 -122
- package/dist/env/rewire.js +204 -96
- package/dist/env/shell.js +28 -31
- package/dist/env/socket-cli.js +233 -81
- package/dist/env/socket.js +521 -156
- package/dist/env/string.js +43 -44
- package/dist/env/temp-dir.js +59 -39
- package/dist/env/term.js +28 -31
- package/dist/env/test.js +65 -43
- package/dist/env/types.js +1 -17
- package/dist/env/windows.js +78 -43
- package/dist/env/xdg.js +62 -39
- package/dist/errors/message.js +40 -46
- package/dist/errors/predicates.js +61 -49
- package/dist/errors/stack.js +24 -36
- package/dist/events/exit/_internal.js +86 -103
- package/dist/events/exit/handler.js +48 -55
- package/dist/events/exit/intercept.js +49 -70
- package/dist/events/exit/lifecycle.js +92 -101
- package/dist/events/exit/signals.js +25 -31
- package/dist/events/exit/types.js +1 -17
- package/dist/events/warning/handler.js +43 -40
- package/dist/events/warning/suppress.js +111 -90
- package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
- package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
- package/dist/external/@npmcli/package-json.js +12705 -15140
- package/dist/external/@npmcli/promise-spawn.js +451 -472
- package/dist/external/@sinclair/typebox/value.js +7443 -9002
- package/dist/external/@sinclair/typebox.js +7516 -7885
- package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
- package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
- package/dist/external/@socketregistry/yocto-spinner.js +394 -455
- package/dist/external/@yarnpkg/extensions.js +435 -1022
- package/dist/external/adm-zip.js +2313 -2673
- package/dist/external/debug.js +700 -687
- package/dist/external/external-pack.js +2658 -3171
- package/dist/external/fast-sort.js +124 -138
- package/dist/external/get-east-asian-width.js +70 -64
- package/dist/external/libnpmexec.js +28 -31
- package/dist/external/npm-pack.js +43617 -50137
- package/dist/external/p-map.js +198 -222
- package/dist/external/pico-pack.js +6735 -7304
- package/dist/external/pony-cause.js +143 -139
- package/dist/external/shell-quote.js +226 -0
- package/dist/external/spdx-pack.js +1283 -1403
- package/dist/external/streaming-iterables.js +835 -1052
- package/dist/external/tar-fs.js +2769 -3048
- package/dist/external/which.js +267 -251
- package/dist/external/yargs-parser.js +851 -1074
- package/dist/external-tools/bazel/asset-names.js +98 -90
- package/dist/external-tools/bazel/from-download.js +52 -46
- package/dist/external-tools/bazel/from-path.js +27 -38
- package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
- package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
- package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
- package/dist/external-tools/bazel/resolve.js +44 -58
- package/dist/external-tools/bazel/types.js +1 -17
- package/dist/external-tools/cdxgen/asset-names.js +59 -66
- package/dist/external-tools/cdxgen/from-download.js +52 -80
- package/dist/external-tools/cdxgen/from-path.js +19 -37
- package/dist/external-tools/cdxgen/from-vfs.js +22 -43
- package/dist/external-tools/cdxgen/resolve.js +48 -63
- package/dist/external-tools/cdxgen/types.js +1 -17
- package/dist/external-tools/from-download.js +107 -67
- package/dist/external-tools/janus/asset-names.js +44 -51
- package/dist/external-tools/janus/from-download.js +45 -70
- package/dist/external-tools/janus/from-path.js +19 -37
- package/dist/external-tools/janus/from-vfs.js +22 -43
- package/dist/external-tools/janus/resolve.js +45 -63
- package/dist/external-tools/janus/types.js +1 -17
- package/dist/external-tools/jre/asset-names.js +109 -82
- package/dist/external-tools/jre/detect-platform-arch.js +25 -49
- package/dist/external-tools/jre/from-download.js +71 -67
- package/dist/external-tools/jre/from-java-home.js +27 -54
- package/dist/external-tools/jre/from-path.js +27 -49
- package/dist/external-tools/jre/from-vfs.js +39 -60
- package/dist/external-tools/jre/resolve.js +55 -68
- package/dist/external-tools/jre/types.js +1 -17
- package/dist/external-tools/manifest.js +130 -150
- package/dist/external-tools/opengrep/asset-names.js +60 -72
- package/dist/external-tools/opengrep/from-download.js +58 -80
- package/dist/external-tools/opengrep/from-path.js +19 -37
- package/dist/external-tools/opengrep/from-vfs.js +23 -43
- package/dist/external-tools/opengrep/resolve.js +43 -63
- package/dist/external-tools/opengrep/types.js +1 -17
- package/dist/external-tools/sbt/asset-names.js +21 -30
- package/dist/external-tools/sbt/from-download.js +50 -61
- package/dist/external-tools/sbt/from-path.js +23 -38
- package/dist/external-tools/sbt/from-vfs.js +30 -44
- package/dist/external-tools/sbt/resolve.js +45 -63
- package/dist/external-tools/sbt/types.js +1 -17
- package/dist/external-tools/synp/asset-names.js +11 -29
- package/dist/external-tools/synp/from-download.js +24 -41
- package/dist/external-tools/synp/from-path.js +19 -37
- package/dist/external-tools/synp/from-vfs.js +22 -43
- package/dist/external-tools/synp/resolve.js +43 -62
- package/dist/external-tools/synp/types.js +1 -17
- package/dist/external-tools/trivy/asset-names.js +51 -62
- package/dist/external-tools/trivy/from-download.js +42 -64
- package/dist/external-tools/trivy/from-path.js +19 -37
- package/dist/external-tools/trivy/from-vfs.js +22 -43
- package/dist/external-tools/trivy/resolve.js +43 -63
- package/dist/external-tools/trivy/types.js +1 -17
- package/dist/external-tools/trufflehog/asset-names.js +54 -66
- package/dist/external-tools/trufflehog/from-download.js +44 -62
- package/dist/external-tools/trufflehog/from-path.js +21 -37
- package/dist/external-tools/trufflehog/from-vfs.js +26 -43
- package/dist/external-tools/trufflehog/resolve.js +43 -63
- package/dist/external-tools/trufflehog/types.js +1 -17
- package/dist/external-tools/uv/asset-names.js +64 -74
- package/dist/external-tools/uv/from-download.js +44 -65
- package/dist/external-tools/uv/from-path.js +19 -37
- package/dist/external-tools/uv/from-vfs.js +22 -43
- package/dist/external-tools/uv/resolve.js +42 -63
- package/dist/external-tools/uv/types.js +1 -17
- package/dist/fs/_internal.js +40 -42
- package/dist/fs/access.js +57 -54
- package/dist/fs/encoding.js +80 -97
- package/dist/fs/find-up.js +126 -125
- package/dist/fs/inspect.js +168 -99
- package/dist/fs/path-cache.js +31 -32
- package/dist/fs/read-dir.js +102 -79
- package/dist/fs/read-file.js +177 -118
- package/dist/fs/read-json-cache.js +150 -134
- package/dist/fs/read-json.js +172 -187
- package/dist/fs/resolve-module.js +35 -58
- package/dist/fs/safe.js +278 -169
- package/dist/fs/types.js +1 -17
- package/dist/fs/unique.js +52 -48
- package/dist/fs/validate.js +56 -40
- package/dist/fs/write-json.js +109 -75
- package/dist/git/_internal.js +251 -216
- package/dist/git/changed.js +191 -74
- package/dist/git/repo.js +118 -104
- package/dist/git/staged.js +172 -62
- package/dist/git/types.js +1 -17
- package/dist/git/unstaged.js +175 -62
- package/dist/github/constants.js +25 -33
- package/dist/github/errors.js +46 -38
- package/dist/github/fetch.js +137 -82
- package/dist/github/ghsa.js +217 -151
- package/dist/github/refs-cache.js +54 -43
- package/dist/github/refs-graphql.js +97 -89
- package/dist/github/refs-rest.js +70 -101
- package/dist/github/refs.js +105 -64
- package/dist/github/token.js +96 -48
- package/dist/github/types.js +1 -17
- package/dist/globs/_internal.js +73 -82
- package/dist/globs/defaults.js +40 -59
- package/dist/globs/match.js +93 -77
- package/dist/globs/matcher.js +104 -92
- package/dist/globs/stream.js +43 -55
- package/dist/globs/types.js +1 -17
- package/dist/http-request/_internal.js +11 -38
- package/dist/http-request/browser-fetch.js +19 -29
- package/dist/http-request/browser.js +188 -206
- package/dist/http-request/checksums.js +101 -65
- package/dist/http-request/download-types.js +1 -17
- package/dist/http-request/download.js +195 -196
- package/dist/http-request/errors.js +39 -47
- package/dist/http-request/headers.js +95 -80
- package/dist/http-request/http-request.js +10 -35
- package/dist/http-request/node.js +71 -97
- package/dist/http-request/request-attempt.js +232 -285
- package/dist/http-request/request-types.js +1 -17
- package/dist/http-request/request.js +106 -108
- package/dist/http-request/response-reader.js +47 -51
- package/dist/http-request/response-types.js +22 -38
- package/dist/http-request/user-agent.js +73 -55
- package/dist/integrity.js +105 -106
- package/dist/ipc/_internal.js +34 -48
- package/dist/ipc/directory.js +55 -63
- package/dist/ipc/paths.js +52 -45
- package/dist/ipc/types.js +1 -17
- package/dist/ipc/write.js +81 -74
- package/dist/ipc-cli/get.js +29 -56
- package/dist/ipc-cli/types.js +1 -17
- package/dist/json/edit.js +182 -242
- package/dist/json/format.js +202 -103
- package/dist/json/parse.js +206 -109
- package/dist/json/types.js +1 -17
- package/dist/links/create.js +93 -60
- package/dist/links/types.js +1 -17
- package/dist/logger/_internal.js +109 -73
- package/dist/logger/browser.js +45 -56
- package/dist/logger/colors.js +31 -49
- package/dist/logger/console.js +89 -112
- package/dist/logger/default.js +19 -33
- package/dist/logger/logger.js +5 -29
- package/dist/logger/node.js +793 -854
- package/dist/logger/symbols-builder.js +54 -56
- package/dist/logger/symbols.js +135 -118
- package/dist/logger/types.js +1 -17
- package/dist/memo/_internal.js +39 -49
- package/dist/memo/async.js +133 -117
- package/dist/memo/clear.js +25 -34
- package/dist/memo/decorator.js +43 -37
- package/dist/memo/memoize.js +97 -88
- package/dist/memo/once.js +42 -41
- package/dist/memo/types.js +1 -17
- package/dist/memo/weak.js +45 -41
- package/dist/node/async-hooks.js +9 -30
- package/dist/node/child-process.js +9 -30
- package/dist/node/crypto.js +9 -30
- package/dist/node/events.js +9 -30
- package/dist/node/fs-promises.js +9 -30
- package/dist/node/fs.js +9 -30
- package/dist/node/http.js +9 -30
- package/dist/node/https.js +9 -30
- package/dist/node/module.js +20 -34
- package/dist/node/os.js +9 -30
- package/dist/node/path.js +9 -30
- package/dist/node/timers-promises.js +9 -30
- package/dist/node/url.js +9 -30
- package/dist/node/util.js +9 -30
- package/dist/objects/getters.js +185 -126
- package/dist/objects/inspect.js +85 -52
- package/dist/objects/mutate.js +96 -76
- package/dist/objects/predicates.js +112 -59
- package/dist/objects/sort.js +120 -76
- package/dist/objects/types.js +1 -17
- package/dist/packages/edit-class.js +198 -265
- package/dist/packages/edit.js +79 -86
- package/dist/packages/exports.js +146 -157
- package/dist/packages/isolation.js +159 -209
- package/dist/packages/licenses.js +207 -189
- package/dist/packages/manifest.js +134 -172
- package/dist/packages/normalize.js +91 -102
- package/dist/packages/operations.d.ts +2 -0
- package/dist/packages/operations.js +283 -254
- package/dist/packages/provenance.js +195 -245
- package/dist/packages/specs.js +94 -84
- package/dist/packages/types.js +1 -17
- package/dist/packages/validation.js +49 -50
- package/dist/paths/_internal.js +82 -86
- package/dist/paths/conversion.js +112 -65
- package/dist/paths/dirnames.js +17 -42
- package/dist/paths/exts.js +23 -54
- package/dist/paths/filenames.js +21 -50
- package/dist/paths/globs.js +15 -38
- package/dist/paths/normalize.js +215 -236
- package/dist/paths/packages.js +34 -49
- package/dist/paths/predicates.js +184 -106
- package/dist/paths/resolve.js +146 -128
- package/dist/paths/rewire.js +108 -72
- package/dist/paths/socket.js +252 -132
- package/dist/paths/walk.js +55 -60
- package/dist/perf/_internal.js +10 -28
- package/dist/perf/enabled.js +21 -30
- package/dist/perf/metrics.js +81 -67
- package/dist/perf/report.js +79 -80
- package/dist/perf/timer.js +180 -126
- package/dist/perf/types.js +1 -17
- package/dist/pkg-ext/data.js +29 -82
- package/dist/pkg-ext/types.js +1 -17
- package/dist/primordials/array.js +120 -198
- package/dist/primordials/buffer.js +28 -51
- package/dist/primordials/date.js +26 -51
- package/dist/primordials/error.js +33 -59
- package/dist/primordials/function.js +21 -41
- package/dist/primordials/globals.js +25 -48
- package/dist/primordials/json.js +14 -30
- package/dist/primordials/map-set.js +88 -152
- package/dist/primordials/math.js +59 -116
- package/dist/primordials/number.js +41 -76
- package/dist/primordials/object.js +56 -116
- package/dist/primordials/promise.js +28 -52
- package/dist/primordials/reflect.js +24 -52
- package/dist/primordials/regexp.js +25 -47
- package/dist/primordials/string.js +114 -167
- package/dist/primordials/symbol.js +40 -72
- package/dist/primordials/uncurry.js +38 -55
- package/dist/primordials/url.js +27 -66
- package/dist/process/_internal.js +7 -32
- package/dist/process/abort.js +29 -35
- package/dist/process/lock-instance.js +26 -30
- package/dist/process/lock-manager.js +279 -307
- package/dist/process/lock-types.js +1 -17
- package/dist/process/spawn/_internal.js +43 -55
- package/dist/process/spawn/child.js +172 -211
- package/dist/process/spawn/errors.js +116 -113
- package/dist/process/spawn/stdio.js +51 -35
- package/dist/process/spawn/types.js +1 -17
- package/dist/process/transient.js +49 -66
- package/dist/promises/_internal.js +31 -34
- package/dist/promises/iterate.js +238 -102
- package/dist/promises/options.js +123 -101
- package/dist/promises/queue.js +115 -136
- package/dist/promises/resolvers.js +77 -46
- package/dist/promises/retry.js +156 -101
- package/dist/promises/types.js +1 -17
- package/dist/regexps/escape.js +32 -30
- package/dist/regexps/hex.js +16 -33
- package/dist/regexps/spec.js +53 -81
- package/dist/releases/github-archives.js +127 -118
- package/dist/releases/github-asset-url.js +162 -146
- package/dist/releases/github-assets.js +37 -49
- package/dist/releases/github-auth.js +32 -48
- package/dist/releases/github-downloads.js +118 -138
- package/dist/releases/github-listing.js +175 -145
- package/dist/releases/github-retry-config.js +41 -47
- package/dist/releases/github-types.js +1 -17
- package/dist/releases/socket-btm.js +273 -192
- package/dist/schema/parse.js +35 -36
- package/dist/schema/types.js +1 -17
- package/dist/schema/validate.js +118 -99
- package/dist/sea/detect.js +57 -52
- package/dist/secrets/_internal.js +86 -67
- package/dist/secrets/find.js +96 -77
- package/dist/secrets/keychain.js +315 -309
- package/dist/secrets/linux.js +133 -135
- package/dist/secrets/macos.js +151 -147
- package/dist/secrets/rc.js +182 -181
- package/dist/secrets/socket-api-token.js +28 -43
- package/dist/secrets/types.js +1 -17
- package/dist/secrets/windows.js +184 -242
- package/dist/shadow/skip.js +51 -70
- package/dist/shadow/types.js +1 -17
- package/dist/shell/parse.d.ts +26 -0
- package/dist/shell/parse.js +35 -0
- package/dist/shell/quote.d.ts +19 -0
- package/dist/shell/quote.js +30 -0
- package/dist/smol/detect.js +67 -43
- package/dist/smol/http.js +33 -37
- package/dist/smol/https.js +31 -37
- package/dist/smol/manifest.js +33 -37
- package/dist/smol/path.js +33 -37
- package/dist/smol/primordial.js +35 -37
- package/dist/smol/purl.js +34 -37
- package/dist/smol/versions.js +31 -37
- package/dist/smol/vfs.js +46 -38
- package/dist/sorts/_internal.js +14 -40
- package/dist/sorts/natural.js +57 -64
- package/dist/sorts/semver.js +33 -43
- package/dist/sorts/strings.js +24 -30
- package/dist/sorts/types.js +1 -17
- package/dist/spinner/default.js +72 -63
- package/dist/spinner/format.js +86 -71
- package/dist/spinner/spinner.js +749 -797
- package/dist/spinner/types.js +1 -17
- package/dist/spinner/with.js +193 -137
- package/dist/ssri/convert.js +64 -47
- package/dist/ssri/parse.js +38 -37
- package/dist/ssri/validate.js +51 -34
- package/dist/stdio/_internal.js +50 -46
- package/dist/stdio/clear.js +208 -86
- package/dist/stdio/divider.js +170 -97
- package/dist/stdio/footer.js +116 -110
- package/dist/stdio/header.js +117 -90
- package/dist/stdio/progress.js +189 -218
- package/dist/stdio/prompts.js +244 -168
- package/dist/stdio/stderr.js +173 -78
- package/dist/stdio/stdout.js +177 -94
- package/dist/streams/parallel.js +58 -50
- package/dist/streams/transform.js +36 -45
- package/dist/strings/format.js +145 -63
- package/dist/strings/predicates.js +56 -34
- package/dist/strings/search.js +52 -42
- package/dist/strings/transform.js +113 -72
- package/dist/strings/types.js +1 -17
- package/dist/strings/width.js +89 -82
- package/dist/tables/bordered.js +81 -81
- package/dist/tables/padding.js +36 -46
- package/dist/tables/simple.js +62 -70
- package/dist/tables/types.js +1 -17
- package/dist/temporal/instant.js +72 -81
- package/dist/temporal/now.js +40 -31
- package/dist/temporal/slots.js +42 -36
- package/dist/temporal/system.js +36 -36
- package/dist/temporal/temporal.js +11 -41
- package/dist/themes/context.js +131 -69
- package/dist/themes/resolve.js +207 -132
- package/dist/themes/themes.js +225 -194
- package/dist/themes/types.js +1 -17
- package/dist/url/parse.js +48 -51
- package/dist/url/predicates.js +24 -31
- package/dist/url/search-params.js +133 -101
- package/dist/url/types.js +1 -17
- package/dist/versions/_internal.js +31 -33
- package/dist/versions/compare.js +80 -58
- package/dist/versions/modify.js +41 -39
- package/dist/versions/parse.js +88 -64
- package/dist/versions/range.js +58 -41
- package/dist/versions/types.js +1 -17
- package/dist/words/article.js +22 -30
- package/dist/words/capitalize.js +25 -34
- package/dist/words/pluralize.js +23 -31
- package/dist/words/types.js +1 -17
- package/package.json +17 -5
package/dist/fs/safe.js
CHANGED
|
@@ -1,182 +1,291 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Socket Lib - Built with
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var import_predicates = require("../arrays/predicates");
|
|
31
|
-
var import_predicates2 = require("../errors/predicates");
|
|
32
|
-
var import_fs = require("../node/fs");
|
|
33
|
-
var import_path = require("../node/path");
|
|
34
|
-
var import_mutate = require("../objects/mutate");
|
|
35
|
-
var import_normalize = require("../paths/normalize");
|
|
36
|
-
var import_array = require("../primordials/array");
|
|
37
|
-
var import_globals = require("../primordials/globals");
|
|
38
|
-
var import_string = require("../primordials/string");
|
|
39
|
-
var import_retry = require("../promises/retry");
|
|
40
|
-
var import_internal = require("./_internal");
|
|
41
|
-
var import_path_cache = require("./path-cache");
|
|
42
|
-
const defaultRemoveOptions = (0, import_mutate.objectFreeze)({
|
|
43
|
-
__proto__: null,
|
|
44
|
-
force: true,
|
|
45
|
-
maxRetries: 3,
|
|
46
|
-
recursive: true,
|
|
47
|
-
retryDelay: 200
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_string = require('../primordials/string.js');
|
|
5
|
+
const require_paths__internal = require('../paths/_internal.js');
|
|
6
|
+
const require_primordials_array = require('../primordials/array.js');
|
|
7
|
+
const require_node_fs = require('../node/fs.js');
|
|
8
|
+
const require_node_path = require('../node/path.js');
|
|
9
|
+
const require_errors_predicates = require('../errors/predicates.js');
|
|
10
|
+
const require_primordials_globals = require('../primordials/globals.js');
|
|
11
|
+
const require_arrays_predicates = require('../arrays/predicates.js');
|
|
12
|
+
const require_objects_mutate = require('../objects/mutate.js');
|
|
13
|
+
const require_promises_retry = require('../promises/retry.js');
|
|
14
|
+
const require_fs__internal = require('./_internal.js');
|
|
15
|
+
|
|
16
|
+
//#region src/fs/safe.ts
|
|
17
|
+
/**
|
|
18
|
+
* @file Safe deletion + idempotent directory creation. The delete helpers gate
|
|
19
|
+
* destructive operations behind an "allowed directories" allow-list (temp
|
|
20
|
+
* dir, cacache dir, ~/.socket); paths outside those need an explicit `force:
|
|
21
|
+
* true`. The mkdir helpers default to `recursive: true` and swallow `EEXIST`
|
|
22
|
+
* so concurrent callers don't race-condition each other.
|
|
23
|
+
*/
|
|
24
|
+
const defaultRemoveOptions = require_objects_mutate.objectFreeze({
|
|
25
|
+
__proto__: null,
|
|
26
|
+
force: true,
|
|
27
|
+
maxRetries: 3,
|
|
28
|
+
recursive: true,
|
|
29
|
+
retryDelay: 200
|
|
48
30
|
});
|
|
49
31
|
let _del;
|
|
50
|
-
|
|
32
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
51
33
|
function getDel() {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
return _del;
|
|
34
|
+
if (_del === void 0) _del = /* @__PURE__ */ require("../external/del");
|
|
35
|
+
return _del;
|
|
56
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Safely delete a file or directory asynchronously with built-in protections.
|
|
39
|
+
*
|
|
40
|
+
* Uses [`del`](https://socket.dev/npm/package/del/overview/8.0.1) for safer
|
|
41
|
+
* deletion with these safety features:
|
|
42
|
+
*
|
|
43
|
+
* - By default, prevents deleting the current working directory (cwd) and above
|
|
44
|
+
* - Allows deleting within cwd (descendant paths) without force option
|
|
45
|
+
* - Automatically uses force: true for temp directory, cacache, and ~/.socket
|
|
46
|
+
* subdirectories
|
|
47
|
+
* - Protects against accidental deletion of parent directories via `../` paths
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ;```ts
|
|
51
|
+
* // Delete files within cwd (safe by default)
|
|
52
|
+
* await safeDelete('./build')
|
|
53
|
+
* await safeDelete('./dist')
|
|
54
|
+
*
|
|
55
|
+
* // Delete with glob patterns
|
|
56
|
+
* await safeDelete(['./temp/**', '!./temp/keep.txt'])
|
|
57
|
+
*
|
|
58
|
+
* // Delete with custom retry settings
|
|
59
|
+
* await safeDelete('./flaky-dir', { maxRetries: 5, retryDelay: 500 })
|
|
60
|
+
*
|
|
61
|
+
* // Force delete cwd or above (requires explicit force: true)
|
|
62
|
+
* await safeDelete('../parent-dir', { force: true })
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* @param filepath - Path or array of paths to delete (supports glob patterns)
|
|
66
|
+
* @param options - Deletion options including force, retries, and recursion.
|
|
67
|
+
* @param options.force - Set to true to allow deleting cwd and above (use with
|
|
68
|
+
* caution)
|
|
69
|
+
*
|
|
70
|
+
* @throws {Error} When attempting to delete protected paths without force
|
|
71
|
+
* option.
|
|
72
|
+
*/
|
|
57
73
|
async function safeDelete(filepath, options) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
);
|
|
74
|
+
const opts = {
|
|
75
|
+
__proto__: null,
|
|
76
|
+
...options
|
|
77
|
+
};
|
|
78
|
+
const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [/* @__PURE__ */ require_paths__internal.pathLikeToString(filepath)];
|
|
79
|
+
/* c8 ignore start */
|
|
80
|
+
let shouldForce = opts.force !== false;
|
|
81
|
+
if (!shouldForce && patterns.length > 0) {
|
|
82
|
+
const path = /* @__PURE__ */ require_node_path.getNodePath();
|
|
83
|
+
const allowedDirs = require_fs__internal.getAllowedDirectories();
|
|
84
|
+
if (patterns.every((pattern) => {
|
|
85
|
+
const resolvedPath = path.resolve(pattern);
|
|
86
|
+
for (const allowedDir of allowedDirs) {
|
|
87
|
+
const isInAllowedDir = require_primordials_string.StringPrototypeStartsWith(resolvedPath, allowedDir + path.sep) || resolvedPath === allowedDir;
|
|
88
|
+
const isGoingBackward = require_primordials_string.StringPrototypeStartsWith(path.relative(allowedDir, resolvedPath), "..");
|
|
89
|
+
if (isInAllowedDir && !isGoingBackward) return true;
|
|
90
|
+
}
|
|
91
|
+
return false;
|
|
92
|
+
})) shouldForce = true;
|
|
93
|
+
}
|
|
94
|
+
/* c8 ignore stop */
|
|
95
|
+
const maxRetries = opts.maxRetries ?? defaultRemoveOptions.maxRetries;
|
|
96
|
+
const retryDelay = opts.retryDelay ?? defaultRemoveOptions.retryDelay;
|
|
97
|
+
/* c8 ignore start - External del call */
|
|
98
|
+
const del = /* @__PURE__ */ getDel();
|
|
99
|
+
await /* @__PURE__ */ require_promises_retry.pRetry(async () => {
|
|
100
|
+
await del.deleteAsync(patterns, {
|
|
101
|
+
dryRun: false,
|
|
102
|
+
force: shouldForce,
|
|
103
|
+
onlyFiles: false
|
|
104
|
+
});
|
|
105
|
+
}, {
|
|
106
|
+
retries: maxRetries,
|
|
107
|
+
baseDelayMs: retryDelay,
|
|
108
|
+
backoffFactor: 2,
|
|
109
|
+
signal: opts.signal
|
|
110
|
+
});
|
|
111
|
+
/* c8 ignore stop */
|
|
98
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Safely delete a file or directory synchronously with built-in protections.
|
|
115
|
+
*
|
|
116
|
+
* Uses [`del`](https://socket.dev/npm/package/del/overview/8.0.1) for safer
|
|
117
|
+
* deletion with these safety features:
|
|
118
|
+
*
|
|
119
|
+
* - By default, prevents deleting the current working directory (cwd) and above
|
|
120
|
+
* - Allows deleting within cwd (descendant paths) without force option
|
|
121
|
+
* - Automatically uses force: true for temp directory, cacache, and ~/.socket
|
|
122
|
+
* subdirectories
|
|
123
|
+
* - Protects against accidental deletion of parent directories via `../` paths
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ;```ts
|
|
127
|
+
* // Delete files within cwd (safe by default)
|
|
128
|
+
* safeDeleteSync('./build')
|
|
129
|
+
* safeDeleteSync('./dist')
|
|
130
|
+
*
|
|
131
|
+
* // Delete with glob patterns
|
|
132
|
+
* safeDeleteSync(['./temp/**', '!./temp/keep.txt'])
|
|
133
|
+
*
|
|
134
|
+
* // Delete multiple paths
|
|
135
|
+
* safeDeleteSync(['./coverage', './reports'])
|
|
136
|
+
*
|
|
137
|
+
* // Force delete cwd or above (requires explicit force: true)
|
|
138
|
+
* safeDeleteSync('../parent-dir', { force: true })
|
|
139
|
+
* ```
|
|
140
|
+
*
|
|
141
|
+
* @param filepath - Path or array of paths to delete (supports glob patterns)
|
|
142
|
+
* @param options - Deletion options including force, retries, and recursion.
|
|
143
|
+
* @param options.force - Set to true to allow deleting cwd and above (use with
|
|
144
|
+
* caution)
|
|
145
|
+
*
|
|
146
|
+
* @throws {Error} When attempting to delete protected paths without force
|
|
147
|
+
* option.
|
|
148
|
+
*/
|
|
99
149
|
function safeDeleteSync(filepath, options) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
);
|
|
145
|
-
delay *= 2;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
if (lastError) {
|
|
150
|
-
throw lastError;
|
|
151
|
-
}
|
|
150
|
+
const opts = {
|
|
151
|
+
__proto__: null,
|
|
152
|
+
...options
|
|
153
|
+
};
|
|
154
|
+
const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [/* @__PURE__ */ require_paths__internal.pathLikeToString(filepath)];
|
|
155
|
+
/* c8 ignore start */
|
|
156
|
+
let shouldForce = opts.force !== false;
|
|
157
|
+
if (!shouldForce && patterns.length > 0) {
|
|
158
|
+
const path = /* @__PURE__ */ require_node_path.getNodePath();
|
|
159
|
+
const allowedDirs = require_fs__internal.getAllowedDirectories();
|
|
160
|
+
if (patterns.every((pattern) => {
|
|
161
|
+
const resolvedPath = path.resolve(pattern);
|
|
162
|
+
for (const allowedDir of allowedDirs) {
|
|
163
|
+
const isInAllowedDir = require_primordials_string.StringPrototypeStartsWith(resolvedPath, allowedDir + path.sep) || resolvedPath === allowedDir;
|
|
164
|
+
const isGoingBackward = require_primordials_string.StringPrototypeStartsWith(path.relative(allowedDir, resolvedPath), "..");
|
|
165
|
+
if (isInAllowedDir && !isGoingBackward) return true;
|
|
166
|
+
}
|
|
167
|
+
return false;
|
|
168
|
+
})) shouldForce = true;
|
|
169
|
+
}
|
|
170
|
+
/* c8 ignore stop */
|
|
171
|
+
const maxRetries = opts.maxRetries ?? defaultRemoveOptions.maxRetries;
|
|
172
|
+
const retryDelay = opts.retryDelay ?? defaultRemoveOptions.retryDelay;
|
|
173
|
+
/* c8 ignore start - External del call */
|
|
174
|
+
const del = /* @__PURE__ */ getDel();
|
|
175
|
+
let lastError;
|
|
176
|
+
let delay = retryDelay;
|
|
177
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) try {
|
|
178
|
+
del.deleteSync(patterns, {
|
|
179
|
+
dryRun: false,
|
|
180
|
+
force: shouldForce,
|
|
181
|
+
onlyFiles: false
|
|
182
|
+
});
|
|
183
|
+
return;
|
|
184
|
+
} catch (e) {
|
|
185
|
+
lastError = e;
|
|
186
|
+
if (attempt < maxRetries) {
|
|
187
|
+
const waitMs = delay;
|
|
188
|
+
require_primordials_array.AtomicsWait(new require_primordials_array.Int32ArrayCtor(new require_primordials_globals.SharedArrayBufferCtor(4)), 0, 0, waitMs);
|
|
189
|
+
delay *= 2;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (lastError) throw lastError;
|
|
193
|
+
/* c8 ignore stop */
|
|
152
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Safely create a directory asynchronously, ignoring EEXIST errors. This
|
|
197
|
+
* function wraps fs.promises.mkdir and handles the race condition where the
|
|
198
|
+
* directory might already exist, which is common in concurrent code.
|
|
199
|
+
*
|
|
200
|
+
* Unlike fs.promises.mkdir with recursive:true, this function: - Silently
|
|
201
|
+
* ignores EEXIST errors (directory already exists) - Re-throws all other errors
|
|
202
|
+
* (permissions, invalid path, etc.) - Works reliably in
|
|
203
|
+
* multi-process/concurrent scenarios - Defaults to recursive: true for
|
|
204
|
+
* convenient nested directory creation.
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ;```ts
|
|
208
|
+
* // Create a directory recursively by default, no error if it exists
|
|
209
|
+
* await safeMkdir('./config')
|
|
210
|
+
*
|
|
211
|
+
* // Create nested directories (recursive: true is the default)
|
|
212
|
+
* await safeMkdir('./data/cache/temp')
|
|
213
|
+
*
|
|
214
|
+
* // Create with specific permissions
|
|
215
|
+
* await safeMkdir('./secure', { mode: 0o700 })
|
|
216
|
+
*
|
|
217
|
+
* // Explicitly disable recursive behavior
|
|
218
|
+
* await safeMkdir('./single-level', { recursive: false })
|
|
219
|
+
* ```
|
|
220
|
+
*
|
|
221
|
+
* @param path - Directory path to create.
|
|
222
|
+
* @param options - Options including recursive (default: true) and mode
|
|
223
|
+
* settings.
|
|
224
|
+
*
|
|
225
|
+
* @returns Promise that resolves when directory is created or already exists
|
|
226
|
+
*/
|
|
153
227
|
async function safeMkdir(path, options) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
228
|
+
const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
|
|
229
|
+
const opts = {
|
|
230
|
+
__proto__: null,
|
|
231
|
+
recursive: true,
|
|
232
|
+
...options
|
|
233
|
+
};
|
|
234
|
+
try {
|
|
235
|
+
await fs.promises.mkdir(path, opts);
|
|
236
|
+
} catch (e) {
|
|
237
|
+
if (!require_errors_predicates.isErrnoException(e) || e.code !== "EEXIST") throw e;
|
|
238
|
+
}
|
|
239
|
+
/* c8 ignore stop */
|
|
163
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* Safely create a directory synchronously, ignoring EEXIST errors. This
|
|
243
|
+
* function wraps fs.mkdirSync and handles the race condition where the
|
|
244
|
+
* directory might already exist, which is common in concurrent code.
|
|
245
|
+
*
|
|
246
|
+
* Unlike fs.mkdirSync with recursive:true, this function: - Silently ignores
|
|
247
|
+
* EEXIST errors (directory already exists) - Re-throws all other errors
|
|
248
|
+
* (permissions, invalid path, etc.) - Works reliably in
|
|
249
|
+
* multi-process/concurrent scenarios - Defaults to recursive: true for
|
|
250
|
+
* convenient nested directory creation.
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* ;```ts
|
|
254
|
+
* // Create a directory recursively by default, no error if it exists
|
|
255
|
+
* safeMkdirSync('./config')
|
|
256
|
+
*
|
|
257
|
+
* // Create nested directories (recursive: true is the default)
|
|
258
|
+
* safeMkdirSync('./data/cache/temp')
|
|
259
|
+
*
|
|
260
|
+
* // Create with specific permissions
|
|
261
|
+
* safeMkdirSync('./secure', { mode: 0o700 })
|
|
262
|
+
*
|
|
263
|
+
* // Explicitly disable recursive behavior
|
|
264
|
+
* safeMkdirSync('./single-level', { recursive: false })
|
|
265
|
+
* ```
|
|
266
|
+
*
|
|
267
|
+
* @param path - Directory path to create.
|
|
268
|
+
* @param options - Options including recursive (default: true) and mode
|
|
269
|
+
* settings.
|
|
270
|
+
*/
|
|
164
271
|
function safeMkdirSync(path, options) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
272
|
+
const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
|
|
273
|
+
const opts = {
|
|
274
|
+
__proto__: null,
|
|
275
|
+
recursive: true,
|
|
276
|
+
...options
|
|
277
|
+
};
|
|
278
|
+
try {
|
|
279
|
+
fs.mkdirSync(path, opts);
|
|
280
|
+
} catch (e) {
|
|
281
|
+
if (!require_errors_predicates.isErrnoException(e) || e.code !== "EEXIST") throw e;
|
|
282
|
+
}
|
|
283
|
+
/* c8 ignore stop */
|
|
174
284
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
});
|
|
285
|
+
|
|
286
|
+
//#endregion
|
|
287
|
+
exports.getDel = getDel;
|
|
288
|
+
exports.safeDelete = safeDelete;
|
|
289
|
+
exports.safeDeleteSync = safeDeleteSync;
|
|
290
|
+
exports.safeMkdir = safeMkdir;
|
|
291
|
+
exports.safeMkdirSync = safeMkdirSync;
|
package/dist/fs/types.js
CHANGED
|
@@ -1,18 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Socket Lib - Built with
|
|
3
|
-
"use strict";
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __copyProps = (to, from, except, desc) => {
|
|
9
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
-
for (let key of __getOwnPropNames(from))
|
|
11
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
-
}
|
|
14
|
-
return to;
|
|
15
|
-
};
|
|
16
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
17
|
-
var types_exports = {};
|
|
18
|
-
module.exports = __toCommonJS(types_exports);
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
package/dist/fs/unique.js
CHANGED
|
@@ -1,51 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Socket Lib - Built with
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_paths_normalize = require('../paths/normalize.js');
|
|
5
|
+
const require_node_fs = require('../node/fs.js');
|
|
6
|
+
const require_node_path = require('../node/path.js');
|
|
7
|
+
|
|
8
|
+
//#region src/fs/unique.ts
|
|
9
|
+
/**
|
|
10
|
+
* @file Generate a unique filepath by appending `-1`, `-2`, … before the
|
|
11
|
+
* extension until the path is free. Useful for "save next to existing" flows
|
|
12
|
+
* where overwriting silently would be wrong (PDF reports, exports, etc.).
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Generate a unique filepath by adding number suffix if the path exists.
|
|
16
|
+
* Appends `-1`, `-2`, etc. before the file extension until a non-existent path
|
|
17
|
+
* is found. Useful for creating files without overwriting existing ones.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ;```ts
|
|
21
|
+
* // If 'report.pdf' exists, returns 'report-1.pdf'
|
|
22
|
+
* const uniquePath = uniqueSync('./report.pdf')
|
|
23
|
+
*
|
|
24
|
+
* // If 'data.json' and 'data-1.json' exist, returns 'data-2.json'
|
|
25
|
+
* const path = uniqueSync('./data.json')
|
|
26
|
+
*
|
|
27
|
+
* // If 'backup' doesn't exist, returns 'backup' unchanged
|
|
28
|
+
* const backupPath = uniqueSync('./backup')
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @param filepath - Desired file path.
|
|
32
|
+
*
|
|
33
|
+
* @returns Normalized unique filepath (original if it doesn't exist, or with
|
|
34
|
+
* number suffix)
|
|
35
|
+
*/
|
|
36
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
30
37
|
function uniqueSync(filepath) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
} while (fs.existsSync(uniquePath));
|
|
46
|
-
return (0, import_normalize.normalizePath)(uniquePath);
|
|
38
|
+
const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
|
|
39
|
+
const path = /* @__PURE__ */ require_node_path.getNodePath();
|
|
40
|
+
const filepathStr = String(filepath);
|
|
41
|
+
if (!fs.existsSync(filepathStr)) return /* @__PURE__ */ require_paths_normalize.normalizePath(filepathStr);
|
|
42
|
+
const dirname = path.dirname(filepathStr);
|
|
43
|
+
const ext = path.extname(filepathStr);
|
|
44
|
+
const basename = path.basename(filepathStr, ext);
|
|
45
|
+
let counter = 1;
|
|
46
|
+
let uniquePath;
|
|
47
|
+
do {
|
|
48
|
+
uniquePath = path.join(dirname, `${basename}-${counter}${ext}`);
|
|
49
|
+
counter++;
|
|
50
|
+
} while (fs.existsSync(uniquePath));
|
|
51
|
+
return /* @__PURE__ */ require_paths_normalize.normalizePath(uniquePath);
|
|
47
52
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
});
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
exports.uniqueSync = uniqueSync;
|