@socketsecurity/lib 3.0.2 → 3.0.4
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 +21 -1
- package/dist/abort.js +60 -1
- package/dist/abort.js.map +2 -2
- package/dist/agent.js +289 -1
- package/dist/agent.js.map +2 -2
- package/dist/ansi.js +60 -1
- package/dist/ansi.js.map +2 -2
- package/dist/argv/flags.js +282 -1
- package/dist/argv/flags.js.map +2 -2
- package/dist/argv/parse.js +171 -1
- package/dist/argv/parse.js.map +2 -2
- package/dist/arrays.js +85 -1
- package/dist/arrays.js.map +2 -2
- package/dist/bin.js +419 -5
- package/dist/bin.js.map +2 -2
- package/dist/cacache.js +139 -1
- package/dist/cacache.js.map +2 -2
- package/dist/cache-with-ttl.js +223 -1
- package/dist/cache-with-ttl.js.map +2 -2
- package/dist/constants/agents.js +126 -1
- package/dist/constants/agents.js.map +2 -2
- package/dist/constants/core.js +57 -2
- package/dist/constants/core.js.map +2 -2
- package/dist/constants/encoding.js +48 -1
- package/dist/constants/encoding.js.map +2 -2
- package/dist/constants/github.js +30 -1
- package/dist/constants/github.js.map +2 -2
- package/dist/constants/licenses.js +66 -1
- package/dist/constants/licenses.js.map +2 -2
- package/dist/constants/node.js +185 -1
- package/dist/constants/node.js.map +2 -2
- package/dist/constants/packages.js +128 -1
- package/dist/constants/packages.js.map +2 -2
- package/dist/constants/paths.js +150 -1
- package/dist/constants/paths.js.map +2 -2
- package/dist/constants/platform.js +41 -1
- package/dist/constants/platform.js.map +2 -2
- package/dist/constants/process.js +52 -1
- package/dist/constants/process.js.map +2 -2
- package/dist/constants/socket.js +102 -1
- package/dist/constants/socket.js.map +2 -2
- package/dist/constants/testing.js +36 -1
- package/dist/constants/testing.js.map +2 -2
- package/dist/constants/time.js +39 -1
- package/dist/constants/time.js.map +2 -2
- package/dist/constants/typescript.js +54 -1
- package/dist/constants/typescript.js.map +2 -2
- package/dist/cover/code.js +135 -1
- package/dist/cover/code.js.map +2 -2
- package/dist/cover/formatters.js +101 -11
- package/dist/cover/formatters.js.map +2 -2
- package/dist/cover/type.js +63 -1
- package/dist/cover/type.js.map +2 -2
- package/dist/cover/types.js +15 -1
- package/dist/cover/types.js.map +2 -2
- package/dist/debug.js +337 -2
- package/dist/debug.js.map +2 -2
- package/dist/dlx-binary.js +408 -7
- package/dist/dlx-binary.js.map +2 -2
- package/dist/dlx-package.js +278 -7
- package/dist/dlx-package.js.map +2 -2
- package/dist/dlx.js +214 -7
- package/dist/dlx.js.map +3 -3
- package/dist/effects/pulse-frames.js +64 -1
- package/dist/effects/pulse-frames.js.map +2 -2
- package/dist/effects/text-shimmer.js +174 -1
- package/dist/effects/text-shimmer.js.map +2 -2
- package/dist/effects/types.js +15 -1
- package/dist/effects/types.js.map +2 -2
- package/dist/effects/ultra.js +61 -1
- package/dist/effects/ultra.js.map +2 -2
- package/dist/env/ci.js +31 -1
- package/dist/env/ci.js.map +2 -2
- package/dist/env/debug.js +30 -1
- package/dist/env/debug.js.map +2 -2
- package/dist/env/github.js +65 -1
- package/dist/env/github.js.map +2 -2
- package/dist/env/helpers.js +47 -1
- package/dist/env/helpers.js.map +2 -2
- package/dist/env/home.js +30 -1
- package/dist/env/home.js.map +2 -2
- package/dist/env/locale.js +40 -1
- package/dist/env/locale.js.map +2 -2
- package/dist/env/node-auth-token.js +30 -1
- package/dist/env/node-auth-token.js.map +2 -2
- package/dist/env/node-env.js +30 -1
- package/dist/env/node-env.js.map +2 -2
- package/dist/env/npm.js +50 -1
- package/dist/env/npm.js.map +2 -2
- package/dist/env/package-manager.js +73 -1
- package/dist/env/package-manager.js.map +2 -2
- package/dist/env/path.js +30 -1
- package/dist/env/path.js.map +2 -2
- package/dist/env/pre-commit.js +31 -1
- package/dist/env/pre-commit.js.map +2 -2
- package/dist/env/rewire.js +72 -1
- package/dist/env/rewire.js.map +2 -2
- package/dist/env/shell.js +30 -1
- package/dist/env/shell.js.map +2 -2
- package/dist/env/socket-cli-shadow.js +51 -1
- package/dist/env/socket-cli-shadow.js.map +2 -2
- package/dist/env/socket-cli.js +86 -1
- package/dist/env/socket-cli.js.map +2 -2
- package/dist/env/socket.js +101 -1
- package/dist/env/socket.js.map +2 -2
- package/dist/env/temp-dir.js +40 -1
- package/dist/env/temp-dir.js.map +2 -2
- package/dist/env/term.js +30 -1
- package/dist/env/term.js.map +2 -2
- package/dist/env/test.js +43 -1
- package/dist/env/test.js.map +2 -2
- package/dist/env/windows.js +45 -1
- package/dist/env/windows.js.map +2 -2
- package/dist/env/xdg.js +40 -1
- package/dist/env/xdg.js.map +2 -2
- package/dist/env.js +170 -1
- package/dist/env.js.map +2 -2
- package/dist/external/@socketregistry/packageurl-js.js +12 -2
- package/dist/fs.js +670 -7
- package/dist/fs.js.map +2 -2
- package/dist/functions.js +68 -1
- package/dist/functions.js.map +2 -2
- package/dist/git.js +329 -2
- package/dist/git.js.map +2 -2
- package/dist/github.js +202 -1
- package/dist/github.js.map +2 -2
- package/dist/globs.js +149 -1
- package/dist/globs.js.map +2 -2
- package/dist/http-request.js +335 -3
- package/dist/http-request.js.map +2 -2
- package/dist/index.js +69 -1
- package/dist/index.js.map +2 -2
- package/dist/ipc.js +244 -1
- package/dist/ipc.js.map +2 -2
- package/dist/json.js +73 -1
- package/dist/json.js.map +2 -2
- package/dist/links/index.js +60 -1
- package/dist/links/index.js.map +2 -2
- package/dist/logger.js +1383 -6
- package/dist/logger.js.map +2 -2
- package/dist/maintained-node-versions.js +35 -1
- package/dist/maintained-node-versions.js.map +2 -2
- package/dist/memoization.js +210 -1
- package/dist/memoization.js.map +2 -2
- package/dist/objects.js +311 -1
- package/dist/objects.js.map +3 -3
- package/dist/packages/editable.js +356 -9
- package/dist/packages/editable.js.map +2 -2
- package/dist/packages/exports.js +162 -1
- package/dist/packages/exports.js.map +2 -2
- package/dist/packages/isolation.js +187 -1
- package/dist/packages/isolation.js.map +2 -2
- package/dist/packages/licenses.js +214 -1
- package/dist/packages/licenses.js.map +2 -2
- package/dist/packages/manifest.js +190 -1
- package/dist/packages/manifest.js.map +2 -2
- package/dist/packages/normalize.js +132 -1
- package/dist/packages/normalize.js.map +2 -2
- package/dist/packages/operations.js +320 -1
- package/dist/packages/operations.js.map +2 -2
- package/dist/packages/paths.js +53 -1
- package/dist/packages/paths.js.map +2 -2
- package/dist/packages/provenance.js +178 -1
- package/dist/packages/provenance.js.map +2 -2
- package/dist/packages/specs.js +83 -1
- package/dist/packages/specs.js.map +2 -2
- package/dist/packages/validation.js +51 -1
- package/dist/packages/validation.js.map +2 -2
- package/dist/packages.js +129 -1
- package/dist/packages.js.map +2 -2
- package/dist/path.js +446 -1
- package/dist/path.js.map +2 -2
- package/dist/paths/rewire.js +79 -1
- package/dist/paths/rewire.js.map +2 -2
- package/dist/paths.js +190 -1
- package/dist/paths.js.map +2 -2
- package/dist/performance.js +216 -15
- package/dist/performance.js.map +2 -2
- package/dist/process-lock.js +287 -8
- package/dist/process-lock.js.map +2 -2
- package/dist/promise-queue.js +109 -1
- package/dist/promise-queue.js.map +2 -2
- package/dist/promises.js +267 -1
- package/dist/promises.js.map +2 -2
- package/dist/prompts/index.js +45 -1
- package/dist/prompts/index.js.map +2 -2
- package/dist/prompts.js +58 -1
- package/dist/prompts.js.map +2 -2
- package/dist/regexps.js +30 -1
- package/dist/regexps.js.map +2 -2
- package/dist/sea.js +44 -1
- package/dist/sea.js.map +2 -2
- package/dist/shadow.js +58 -1
- package/dist/shadow.js.map +2 -2
- package/dist/signal-exit.js +248 -1
- package/dist/signal-exit.js.map +2 -2
- package/dist/sorts.js +94 -1
- package/dist/sorts.js.map +2 -2
- package/dist/spawn.js +200 -1
- package/dist/spawn.js.map +2 -2
- package/dist/spinner.js +965 -1
- package/dist/spinner.js.map +3 -3
- package/dist/ssri.js +71 -1
- package/dist/ssri.js.map +2 -2
- package/dist/stdio/clear.js +82 -1
- package/dist/stdio/clear.js.map +2 -2
- package/dist/stdio/divider.js +89 -3
- package/dist/stdio/divider.js.map +2 -2
- package/dist/stdio/footer.js +94 -2
- package/dist/stdio/footer.js.map +2 -2
- package/dist/stdio/header.js +100 -2
- package/dist/stdio/header.js.map +2 -2
- package/dist/stdio/mask.js +207 -5
- package/dist/stdio/mask.js.map +2 -2
- package/dist/stdio/progress.js +209 -2
- package/dist/stdio/progress.js.map +2 -2
- package/dist/stdio/prompts.js +88 -1
- package/dist/stdio/prompts.js.map +2 -2
- package/dist/stdio/stderr.js +89 -2
- package/dist/stdio/stderr.js.map +2 -2
- package/dist/stdio/stdout.js +103 -2
- package/dist/stdio/stdout.js.map +2 -2
- package/dist/streams.js +78 -1
- package/dist/streams.js.map +2 -2
- package/dist/strings.js +251 -3
- package/dist/strings.js.map +2 -2
- package/dist/suppress-warnings.js +98 -1
- package/dist/suppress-warnings.js.map +2 -2
- package/dist/tables.js +128 -3
- package/dist/tables.js.map +2 -2
- package/dist/temporary-executor.js +53 -1
- package/dist/temporary-executor.js.map +2 -2
- package/dist/themes/context.js +71 -1
- package/dist/themes/context.js.map +3 -3
- package/dist/themes/index.d.ts +2 -2
- package/dist/themes/index.js +57 -1
- package/dist/themes/index.js.map +3 -3
- package/dist/themes/themes.d.ts +5 -5
- package/dist/themes/themes.js +204 -1
- package/dist/themes/themes.js.map +3 -3
- package/dist/themes/types.js +15 -1
- package/dist/themes/types.js.map +2 -2
- package/dist/themes/utils.js +116 -1
- package/dist/themes/utils.js.map +2 -2
- package/dist/types.js +59 -1
- package/dist/types.js.map +2 -2
- package/dist/url.js +142 -1
- package/dist/url.js.map +2 -2
- package/dist/utils/get-ipc.js +58 -1
- package/dist/utils/get-ipc.js.map +2 -2
- package/dist/validation/json-parser.js +127 -1
- package/dist/validation/json-parser.js.map +2 -2
- package/dist/validation/types.js +15 -1
- package/dist/validation/types.js.map +2 -2
- package/dist/versions.js +154 -1
- package/dist/versions.js.map +2 -2
- package/dist/words.js +50 -1
- package/dist/words.js.map +2 -2
- package/dist/zod.js +27 -1
- package/dist/zod.js.map +2 -2
- package/package.json +2 -2
package/dist/env.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/env.ts"],
|
|
4
4
|
"sourcesContent": ["/**\n * @fileoverview Environment variable parsing and conversion utilities.\n * Provides type-safe conversion functions for boolean, number, and string values.\n */\n\nconst NumberCtor = Number\n// IMPORTANT: Do not use destructuring here - use direct assignment instead.\n// tsgo has a bug that incorrectly transpiles destructured exports, resulting in\n// `exports.SomeName = void 0;` which causes runtime errors.\n// See: https://github.com/SocketDev/socket-packageurl-js/issues/3\nconst NumberIsFinite = Number.isFinite\nconst NumberParseInt = Number.parseInt\nconst StringCtor = String\n\n// Common environment variables that have case sensitivity issues on Windows.\n// These are checked with case-insensitive matching when exact matches fail.\nconst caseInsensitiveKeys = new Set([\n 'APPDATA',\n 'COMSPEC',\n 'HOME',\n 'LOCALAPPDATA',\n 'PATH',\n 'PATHEXT',\n 'PROGRAMFILES',\n 'SYSTEMROOT',\n 'TEMP',\n 'TMP',\n 'USERPROFILE',\n 'WINDIR',\n])\n\n/**\n * Create a case-insensitive environment variable Proxy for Windows compatibility.\n * On Windows, environment variables are case-insensitive (PATH vs Path vs path).\n * This Proxy provides consistent access regardless of case, with priority given\n * to exact matches, then case-insensitive matches for known vars.\n *\n * **Use Cases:**\n * - Cross-platform test environments needing consistent env var access\n * - Windows compatibility when passing env to child processes\n * - Merging environment overrides while preserving case-insensitive lookups\n *\n * **Performance Note:**\n * Proxy operations have runtime overhead. Only use when Windows case-insensitive\n * access is required. For most use cases, process.env directly is sufficient.\n *\n * @param base - Base environment object (usually process.env)\n * @param overrides - Optional overrides to merge\n * @returns Proxy that handles case-insensitive env var access\n *\n * @example\n * // Create a Proxy with overrides\n * const env = createEnvProxy(process.env, { NODE_ENV: 'test' })\n * console.log(env.PATH) // Works with any case: PATH, Path, path\n * console.log(env.NODE_ENV) // 'test'\n *\n * @example\n * // Pass to child process spawn\n * import { createEnvProxy } from '@socketsecurity/lib/env'\n * import { spawn } from '@socketsecurity/lib/spawn'\n *\n * spawn('node', ['script.js'], {\n * env: createEnvProxy(process.env, { NODE_ENV: 'test' })\n * })\n */\nexport function createEnvProxy(\n base: NodeJS.ProcessEnv,\n overrides?: Record<string, string | undefined>,\n): NodeJS.ProcessEnv {\n return new Proxy(\n {},\n {\n get(_target, prop) {\n if (typeof prop !== 'string') {\n return undefined\n }\n\n // Priority 1: Check overrides for exact match.\n if (overrides && prop in overrides) {\n return overrides[prop]\n }\n\n // Priority 2: Check base for exact match.\n if (prop in base) {\n return base[prop]\n }\n\n // Priority 3: Case-insensitive lookup for known keys.\n const upperProp = prop.toUpperCase()\n if (caseInsensitiveKeys.has(upperProp)) {\n // Check overrides with case variations.\n if (overrides) {\n const key = findCaseInsensitiveEnvKey(overrides, upperProp)\n if (key !== undefined) {\n return overrides[key]\n }\n }\n // Check base with case variations.\n const key = findCaseInsensitiveEnvKey(base, upperProp)\n if (key !== undefined) {\n return base[key]\n }\n }\n\n return undefined\n },\n\n ownKeys(_target) {\n const keys = new Set<string>([\n ...Object.keys(base),\n ...(overrides ? Object.keys(overrides) : []),\n ])\n return [...keys]\n },\n\n getOwnPropertyDescriptor(_target, prop) {\n if (typeof prop !== 'string') {\n return undefined\n }\n\n // Use the same lookup logic as get().\n const value = this.get?.(_target, prop, _target)\n return value !== undefined\n ? {\n enumerable: true,\n configurable: true,\n writable: true,\n value,\n }\n : undefined\n },\n\n has(_target, prop) {\n if (typeof prop !== 'string') {\n return false\n }\n\n // Check overrides.\n if (overrides && prop in overrides) {\n return true\n }\n\n // Check base.\n if (prop in base) {\n return true\n }\n\n // Case-insensitive check.\n const upperProp = prop.toUpperCase()\n if (caseInsensitiveKeys.has(upperProp)) {\n if (\n overrides &&\n findCaseInsensitiveEnvKey(overrides, upperProp) !== undefined\n ) {\n return true\n }\n if (findCaseInsensitiveEnvKey(base, upperProp) !== undefined) {\n return true\n }\n }\n\n return false\n },\n\n set(_target, prop, value) {\n if (typeof prop === 'string' && overrides) {\n overrides[prop] = value\n return true\n }\n return false\n },\n },\n ) as NodeJS.ProcessEnv\n}\n\n/**\n * Convert an environment variable value to a boolean.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function envAsBoolean(value: unknown, defaultValue = false): boolean {\n if (typeof value === 'string') {\n const trimmed = value.trim()\n return trimmed === '1' || trimmed.toLowerCase() === 'true'\n }\n if (value === null || value === undefined) {\n return !!defaultValue\n }\n return !!value\n}\n\n/**\n * Convert an environment variable value to a number.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function envAsNumber(value: unknown, defaultValue = 0): number {\n const numOrNaN = NumberParseInt(String(value), 10)\n const numMayBeNegZero = NumberIsFinite(numOrNaN)\n ? numOrNaN\n : NumberCtor(defaultValue)\n // Ensure -0 is treated as 0.\n return numMayBeNegZero || 0\n}\n\n/**\n * Convert an environment variable value to a trimmed string.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function envAsString(value: unknown, defaultValue = ''): string {\n if (typeof value === 'string') {\n return value.trim()\n }\n if (value === null || value === undefined) {\n return defaultValue === '' ? defaultValue : StringCtor(defaultValue).trim()\n }\n return StringCtor(value).trim()\n}\n\n/**\n * Find a case-insensitive environment variable key match.\n * Searches for an environment variable key that matches the given uppercase name,\n * using optimized fast-path checks to minimize expensive toUpperCase() calls.\n *\n * **Use Cases:**\n * - Finding PATH when env object has \"Path\" or \"path\"\n * - Cross-platform env var access where case may vary\n * - Custom case-insensitive env lookups\n *\n * **Performance:**\n * - Fast path: Checks length first (O(1)) before toUpperCase (expensive)\n * - Only converts to uppercase when length matches\n * - Early exit on first match\n *\n * @param env - Environment object or env-like record to search\n * @param upperEnvVarName - Uppercase environment variable name to find (e.g., 'PATH')\n * @returns The actual key from env that matches (e.g., 'Path'), or undefined\n *\n * @example\n * // Find PATH regardless of case\n * const envObj = { Path: 'C:\\\\Windows', NODE_ENV: 'test' }\n * const key = findCaseInsensitiveEnvKey(envObj, 'PATH')\n * console.log(key) // 'Path'\n * console.log(envObj[key]) // 'C:\\\\Windows'\n *\n * @example\n * // Not found returns undefined\n * const key = findCaseInsensitiveEnvKey({}, 'MISSING')\n * console.log(key) // undefined\n */\nexport function findCaseInsensitiveEnvKey(\n env: Record<string, string | undefined>,\n upperEnvVarName: string,\n): string | undefined {\n const targetLength = upperEnvVarName.length\n for (const key of Object.keys(env)) {\n // Fast path: bail early if lengths don't match.\n if (key.length !== targetLength) {\n continue\n }\n // Only call toUpperCase if length matches.\n if (key.toUpperCase() === upperEnvVarName) {\n return key\n }\n }\n return undefined\n}\n"],
|
|
5
|
-
"mappings": ";
|
|
6
|
-
"names": ["
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["key"]
|
|
7
7
|
}
|