varlock 1.0.0 → 1.1.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/dist/auto-load.js +2 -2
- package/dist/{chunk-VODQDF4Q.js → chunk-6RF54KKR.js} +36 -7
- package/dist/chunk-6RF54KKR.js.map +1 -0
- package/dist/{chunk-UKFHSMKY.js → chunk-7GFD2ATN.js} +4 -4
- package/dist/{chunk-UKFHSMKY.js.map → chunk-7GFD2ATN.js.map} +1 -1
- package/dist/{chunk-QNTIIXD5.js → chunk-A6THM3IR.js} +5 -5
- package/dist/{chunk-QNTIIXD5.js.map → chunk-A6THM3IR.js.map} +1 -1
- package/dist/{chunk-FTVXXJMG.js → chunk-CDLU5P62.js} +3 -3
- package/dist/{chunk-FTVXXJMG.js.map → chunk-CDLU5P62.js.map} +1 -1
- package/dist/{chunk-V2MTE4J6.js → chunk-E3F6QKDZ.js} +5 -5
- package/dist/{chunk-V2MTE4J6.js.map → chunk-E3F6QKDZ.js.map} +1 -1
- package/dist/{chunk-YHOWSHVH.js → chunk-F5H5MJ6U.js} +32 -5
- package/dist/chunk-F5H5MJ6U.js.map +1 -0
- package/dist/{chunk-6DXWXIQV.js → chunk-GURKQO4J.js} +259 -149
- package/dist/chunk-GURKQO4J.js.map +1 -0
- package/dist/{chunk-2ABRAKHE.js → chunk-H6NILU2I.js} +4 -4
- package/dist/{chunk-2ABRAKHE.js.map → chunk-H6NILU2I.js.map} +1 -1
- package/dist/{chunk-2EEXFFKL.js → chunk-JIUWL2NT.js} +6 -6
- package/dist/{chunk-2EEXFFKL.js.map → chunk-JIUWL2NT.js.map} +1 -1
- package/dist/chunk-JUPAI2X4.js +30 -0
- package/dist/chunk-JUPAI2X4.js.map +1 -0
- package/dist/chunk-O3WTD6L4.js +37 -0
- package/dist/chunk-O3WTD6L4.js.map +1 -0
- package/dist/{chunk-GBCB7Y3B.js → chunk-QP7TS4SU.js} +6 -5
- package/dist/chunk-QP7TS4SU.js.map +1 -0
- package/dist/{chunk-AMNNQL7K.js → chunk-QSYH5IDD.js} +3 -3
- package/dist/{chunk-AMNNQL7K.js.map → chunk-QSYH5IDD.js.map} +1 -1
- package/dist/{chunk-JEZQ2DFL.js → chunk-RBFS2QGC.js} +9 -8
- package/dist/chunk-RBFS2QGC.js.map +1 -0
- package/dist/{chunk-XADO6HQG.js → chunk-S5O4AAVX.js} +6 -6
- package/dist/{chunk-XADO6HQG.js.map → chunk-S5O4AAVX.js.map} +1 -1
- package/dist/{chunk-CKWXLVMV.js → chunk-SDN53OAC.js} +4 -4
- package/dist/{chunk-CKWXLVMV.js.map → chunk-SDN53OAC.js.map} +1 -1
- package/dist/{chunk-QJ6NMN5H.js → chunk-TQXYC3G3.js} +5 -5
- package/dist/{chunk-QJ6NMN5H.js.map → chunk-TQXYC3G3.js.map} +1 -1
- package/dist/{chunk-6JKWTWLB.js → chunk-U2O3AUM2.js} +6 -6
- package/dist/{chunk-6JKWTWLB.js.map → chunk-U2O3AUM2.js.map} +1 -1
- package/dist/{chunk-LOIJO4MO.js → chunk-VN4LKYXR.js} +4 -4
- package/dist/{chunk-LOIJO4MO.js.map → chunk-VN4LKYXR.js.map} +1 -1
- package/dist/{chunk-U7RQPX5K.js → chunk-XWYFSG46.js} +27 -6
- package/dist/chunk-XWYFSG46.js.map +1 -0
- package/dist/{chunk-XTOUG72X.js → chunk-YO6WHPM4.js} +5 -5
- package/dist/{chunk-XTOUG72X.js.map → chunk-YO6WHPM4.js.map} +1 -1
- package/dist/{chunk-NJONB6CB.js → chunk-ZJNDICC4.js} +5 -5
- package/dist/{chunk-NJONB6CB.js.map → chunk-ZJNDICC4.js.map} +1 -1
- package/dist/cli/cli-executable.js +33 -33
- package/dist/cli/cli-executable.js.map +1 -1
- package/dist/config-item-6LTV4PNH.js +7 -0
- package/dist/{config-item-2FQ6I6PO.js.map → config-item-6LTV4PNH.js.map} +1 -1
- package/dist/dotenv-compat.js +2 -2
- package/dist/encrypt.command-F2OTB6HD.js +14 -0
- package/dist/{encrypt.command-K2SBJVQ5.js.map → encrypt.command-F2OTB6HD.js.map} +1 -1
- package/dist/{env-graph-CXTsI2Eg.d.ts → env-graph-iNQyTcya.d.ts} +4 -0
- package/dist/explain.command-TEIPRC7Q.js +15 -0
- package/dist/{explain.command-E6MR72IY.js.map → explain.command-TEIPRC7Q.js.map} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +7 -7
- package/dist/init.command-5LP3UFKD.js +13 -0
- package/dist/{init.command-TGDNXHJ7.js.map → init.command-5LP3UFKD.js.map} +1 -1
- package/dist/install-plugin.command-X7RSLPUJ.js +13 -0
- package/dist/{install-plugin.command-Z2S5DIFS.js.map → install-plugin.command-X7RSLPUJ.js.map} +1 -1
- package/dist/lib/exec-sync-varlock.d.ts +34 -9
- package/dist/lib/exec-sync-varlock.js +1 -1
- package/dist/load.command-7SQRDQ3E.js +15 -0
- package/dist/{load.command-K2IH3646.js.map → load.command-7SQRDQ3E.js.map} +1 -1
- package/dist/lock.command-4LTGMJA3.js +7 -0
- package/dist/{lock.command-GL4CLXED.js.map → lock.command-4LTGMJA3.js.map} +1 -1
- package/dist/plugin-lib.d.ts +2 -2
- package/dist/printenv.command-ON7RMFEU.js +15 -0
- package/dist/{printenv.command-34LGQT6W.js.map → printenv.command-ON7RMFEU.js.map} +1 -1
- package/dist/reveal.command-BW6XYVXH.js +15 -0
- package/dist/{reveal.command-WOHYRSYO.js.map → reveal.command-BW6XYVXH.js.map} +1 -1
- package/dist/run.command-5QADABYL.js +16 -0
- package/dist/{run.command-PPC2X2N7.js.map → run.command-5QADABYL.js.map} +1 -1
- package/dist/runtime/env.d.ts +1 -1
- package/dist/{scan.command-4DJBQEML.js → scan.command-ZVW3XAUG.js} +9 -9
- package/dist/{scan.command-4DJBQEML.js.map → scan.command-ZVW3XAUG.js.map} +1 -1
- package/dist/telemetry.command-PY6E4QSH.js +13 -0
- package/dist/{telemetry.command-LIOCXWQK.js.map → telemetry.command-PY6E4QSH.js.map} +1 -1
- package/dist/typegen.command-KZ4O5IKQ.js +15 -0
- package/dist/{typegen.command-COL35ALE.js.map → typegen.command-KZ4O5IKQ.js.map} +1 -1
- package/native-bins/darwin/VarlockEnclave.app/Contents/CodeResources +0 -0
- package/native-bins/darwin/VarlockEnclave.app/Contents/MacOS/varlock-local-encrypt +0 -0
- package/native-bins/linux-arm64/varlock-local-encrypt +0 -0
- package/native-bins/linux-x64/varlock-local-encrypt +0 -0
- package/native-bins/win32-x64/varlock-local-encrypt.exe +0 -0
- package/package.json +1 -1
- package/dist/chunk-6DXWXIQV.js.map +0 -1
- package/dist/chunk-7WB7HK5Z.js +0 -21
- package/dist/chunk-7WB7HK5Z.js.map +0 -1
- package/dist/chunk-GBCB7Y3B.js.map +0 -1
- package/dist/chunk-JEZQ2DFL.js.map +0 -1
- package/dist/chunk-U7RQPX5K.js.map +0 -1
- package/dist/chunk-UUDTMOJS.js +0 -22
- package/dist/chunk-UUDTMOJS.js.map +0 -1
- package/dist/chunk-VODQDF4Q.js.map +0 -1
- package/dist/chunk-YHOWSHVH.js.map +0 -1
- package/dist/config-item-2FQ6I6PO.js +0 -7
- package/dist/encrypt.command-K2SBJVQ5.js +0 -14
- package/dist/explain.command-E6MR72IY.js +0 -15
- package/dist/init.command-TGDNXHJ7.js +0 -13
- package/dist/install-plugin.command-Z2S5DIFS.js +0 -13
- package/dist/load.command-K2IH3646.js +0 -15
- package/dist/lock.command-GL4CLXED.js +0 -7
- package/dist/printenv.command-34LGQT6W.js +0 -15
- package/dist/reveal.command-WOHYRSYO.js +0 -15
- package/dist/run.command-PPC2X2N7.js +0 -16
- package/dist/telemetry.command-LIOCXWQK.js +0 -13
- package/dist/typegen.command-COL35ALE.js +0 -15
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { define } from './chunk-4A54P4EM.js';
|
|
2
|
-
import { checkForSchemaErrors, checkForNoEnvFiles, checkForConfigErrors } from './chunk-
|
|
3
|
-
import { loadVarlockEnvGraph } from './chunk-
|
|
2
|
+
import { checkForSchemaErrors, checkForNoEnvFiles, checkForConfigErrors } from './chunk-7GFD2ATN.js';
|
|
3
|
+
import { loadVarlockEnvGraph } from './chunk-E3F6QKDZ.js';
|
|
4
4
|
import { gracefulExit } from './chunk-CHQDS2PI.js';
|
|
5
5
|
import { resetRedactionMap, redactSensitiveConfig } from './chunk-MGWUDHT5.js';
|
|
6
6
|
import { __name } from './chunk-6PEHRAEP.js';
|
|
@@ -333,5 +333,5 @@ var commandFn = /* @__PURE__ */ __name(async (ctx) => {
|
|
|
333
333
|
}, "commandFn");
|
|
334
334
|
|
|
335
335
|
export { commandFn, commandSpec };
|
|
336
|
-
//# sourceMappingURL=chunk-
|
|
337
|
-
//# sourceMappingURL=chunk-
|
|
336
|
+
//# sourceMappingURL=chunk-VN4LKYXR.js.map
|
|
337
|
+
//# sourceMappingURL=chunk-VN4LKYXR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/exec.ts","../src/cli/commands/run.command.ts"],"names":["fsConstants"],"mappings":"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","file":"chunk-LOIJO4MO.js","sourcesContent":["import { spawn, type ChildProcess } from 'node:child_process';\nimport { Readable } from 'node:stream';\nimport {\n join, delimiter, extname, isAbsolute,\n} from 'node:path';\nimport {\n existsSync, statSync, readFileSync, accessSync, constants as fsConstants,\n} from 'node:fs';\n\ninterface ExecOptions {\n env?: NodeJS.ProcessEnv;\n stdio?: 'inherit' | 'pipe' | [string, string, string];\n stdin?: 'inherit' | 'pipe';\n stdout?: 'inherit' | 'pipe';\n stderr?: 'inherit' | 'pipe';\n}\n\ninterface ExecResult {\n exitCode: number;\n signal?: NodeJS.Signals;\n stdout?: Readable;\n stderr?: Readable;\n pid?: number;\n kill: (signal?: number | NodeJS.Signals) => boolean;\n}\n\n/**\n * Get Windows executable extensions from PATHEXT or use defaults\n */\nfunction getWindowsExtensions(): Array<string> {\n const pathExt = process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM';\n // Create both upper and lowercase variants\n const exts = pathExt.split(';').filter(Boolean);\n const result: Array<string> = [];\n for (const ext of exts) {\n result.push(ext.toUpperCase());\n result.push(ext.toLowerCase());\n }\n return result;\n}\n\n/**\n * Check if a path is executable (POSIX)\n */\nfunction isExecutable(filePath: string): boolean {\n try {\n accessSync(filePath, fsConstants.X_OK);\n const stats = statSync(filePath);\n return stats.isFile();\n } catch {\n return false;\n }\n}\n\n/**\n * Check if a file is executable on Windows (by extension)\n */\nfunction isExecutableOnWindows(filePath: string): boolean {\n if (!existsSync(filePath)) return false;\n\n try {\n const stats = statSync(filePath);\n if (!stats.isFile()) return false;\n } catch {\n return false;\n }\n\n const ext = extname(filePath).toLowerCase();\n const extensions = getWindowsExtensions().map((e) => e.toLowerCase());\n return extensions.includes(ext);\n}\n\n/**\n * Read shebang from file (first 150 bytes)\n */\nfunction readShebang(filePath: string): string | null {\n try {\n const fd = readFileSync(filePath, { encoding: 'utf8', flag: 'r' });\n const first150 = fd.slice(0, 150);\n const match = first150.match(/^#!([^\\r\\n]+)/);\n return match ? match[1].trim() : null;\n } catch {\n return null;\n }\n}\n\n/**\n * Find command in PATH with proper cross-platform support\n * Based on the `which` package logic\n */\nfunction findCommand(command: string): string {\n const isWin = process.platform === 'win32';\n const hasPathSep = command.includes('/') || command.includes('\\\\');\n\n // If it's an absolute or relative path, use it directly\n if (isAbsolute(command) || hasPathSep) {\n return command;\n }\n\n // Get PATH with proper handling\n const pathEnv = process.env.PATH || '';\n\n // On Windows, prepend current directory to search paths\n const searchPaths: Array<string> = [];\n if (isWin) {\n searchPaths.push(process.cwd());\n }\n\n // Split PATH and handle quoted entries\n const pathParts = pathEnv.split(delimiter);\n for (const part of pathParts) {\n // Strip surrounding quotes from PATH entries\n const cleanPart = /^\".*\"$/.test(part) ? part.slice(1, -1) : part;\n if (cleanPart) {\n searchPaths.push(cleanPart);\n }\n }\n\n // Get extensions to try\n let extensions: Array<string> = [''];\n if (isWin) {\n extensions = getWindowsExtensions();\n // If command has a dot and PATHEXT is set, try without extension first\n if (command.includes('.') && process.env.PATHEXT) {\n extensions.unshift('');\n }\n }\n\n // Search in each path\n for (const dir of searchPaths) {\n for (const ext of extensions) {\n const fullPath = join(dir, command + ext);\n\n if (isWin) {\n if (isExecutableOnWindows(fullPath)) {\n return fullPath;\n }\n } else {\n if (isExecutable(fullPath)) {\n // Check for shebang on non-Windows\n const shebang = readShebang(fullPath);\n if (shebang && shebang.startsWith('/')) {\n // Has shebang, can execute directly\n return fullPath;\n } else if (!shebang) {\n // No shebang, assume it's a native executable\n return fullPath;\n }\n }\n }\n }\n }\n\n // If not found, return the command as-is and let spawn handle the error\n return command;\n}\n\n/**\n * Escape a string for use inside a double-quoted cmd.exe argument.\n * cmd.exe convention: a literal \" is represented as \"\".\n */\nfunction escapeCmdExeArg(str: string): string {\n return str.replace(/\"/g, '\"\"');\n}\n\n\n/**\n * Simple command executor that replaces execa\n * Uses Node.js child_process.spawn under the hood\n */\nexport function exec(\n command: string,\n args: Array<string>,\n options: ExecOptions = {},\n): Promise<ExecResult> & {\n stdout?: Readable;\n stderr?: Readable;\n pid?: number;\n kill: (signal?: number | NodeJS.Signals) => boolean;\n} {\n // Find command in PATH if it's not an absolute path\n const resolvedCommand = findCommand(command);\n\n // Detect whether findCommand found a different path for the command.\n // Absolute/relative paths (containing a path separator) are always used as-is\n // (findCommand returns them unchanged), so we treat those as \"found\" too.\n const isCommandFound = resolvedCommand !== command\n || isAbsolute(command)\n || command.includes('/')\n || command.includes('\\\\');\n\n // On Windows, .cmd/.bat files must go through cmd.exe.\n // Also fall back to cmd.exe when the command wasn't found in PATH, so that\n // cmd.exe can handle PATHEXT lookups (e.g. tsx → tsx.cmd, pnpm → pnpm.cmd).\n const needsShell = process.platform === 'win32'\n && (/\\.(cmd|bat)$/i.test(resolvedCommand) || !isCommandFound);\n\n let spawnCommand = resolvedCommand;\n let spawnArgs = args;\n const spawnOptions: any = {\n env: options.env || process.env,\n shell: false,\n };\n\n // On Windows, wrap .cmd/.bat (or unresolved commands) in cmd.exe\n if (needsShell) {\n // Use the resolved path when available; otherwise let cmd.exe handle the\n // PATHEXT lookup by passing the original bare command name.\n const cmdToUse = isCommandFound ? resolvedCommand : command;\n // Always quote the command path to handle spaces and special characters.\n // Escape any embedded double-quotes as \"\" (cmd.exe convention).\n const quotedCmd = `\"${escapeCmdExeArg(cmdToUse)}\"`;\n // Build the inner string: quote every argument and escape embedded double-quotes,\n // then join with the command. Wrap the whole thing in one outer pair of quotes.\n // cmd.exe /s /c strips the first and last \" from the command string, so the outer\n // quotes are consumed and the quoted inner content is processed correctly.\n const cmdStr = [quotedCmd, ...args.map((a) => `\"${escapeCmdExeArg(a)}\"`)]\n .join(' ');\n spawnArgs = ['/d', '/s', '/c', `\"${cmdStr}\"`];\n spawnCommand = process.env.comspec || 'cmd.exe';\n spawnOptions.windowsVerbatimArguments = true;\n }\n\n // Normalize stdio options\n let stdio: 'inherit' | ['inherit' | 'pipe', 'inherit' | 'pipe', 'inherit' | 'pipe'];\n if (options.stdio === 'inherit') {\n stdio = 'inherit';\n } else if (options.stdio === 'pipe') {\n stdio = ['pipe', 'pipe', 'pipe'];\n } else if (options.stdio) {\n stdio = options.stdio as ['inherit' | 'pipe', 'inherit' | 'pipe', 'inherit' | 'pipe'];\n } else {\n // Default based on individual stdin/stdout/stderr\n stdio = [\n options.stdin || 'inherit',\n options.stdout || 'inherit',\n options.stderr || 'inherit',\n ] as ['inherit' | 'pipe', 'inherit' | 'pipe', 'inherit' | 'pipe'];\n }\n\n spawnOptions.stdio = stdio;\n\n const childProcess: ChildProcess = spawn(spawnCommand, spawnArgs, spawnOptions);\n\n const result: Partial<ExecResult> = {\n stdout: childProcess.stdout || undefined,\n stderr: childProcess.stderr || undefined,\n pid: childProcess.pid,\n kill: (signal?: number | NodeJS.Signals) => childProcess.kill(signal),\n };\n\n const promise = new Promise<ExecResult>((resolve, reject) => {\n let errorEmitted = false;\n\n childProcess.on('error', (error) => {\n errorEmitted = true;\n reject(\n Object.assign(error, {\n exitCode: 1,\n ...result,\n }),\n );\n });\n\n childProcess.on('exit', (code, signal) => {\n // Windows special case: exit code 1 without error event might be ENOENT\n if (process.platform === 'win32' && code === 1 && !errorEmitted && !existsSync(resolvedCommand)) {\n const error: any = new Error(`Command not found: ${command}`);\n error.code = 'ENOENT';\n error.exitCode = 1;\n Object.assign(error, result);\n reject(error);\n return;\n }\n\n const exitCode = code ?? (signal ? 1 : 0);\n const exitResult: ExecResult = {\n exitCode,\n signal: signal || undefined,\n ...result,\n } as ExecResult;\n\n if (exitCode !== 0) {\n const error: any = new Error(`Command failed with exit code ${exitCode}`);\n error.exitCode = exitCode;\n error.signal = signal;\n Object.assign(error, result);\n reject(error);\n } else {\n resolve(exitResult);\n }\n });\n }) as Promise<ExecResult> & Partial<ExecResult> & { kill: (signal?: number | NodeJS.Signals) => boolean };\n\n // Attach stream properties and methods to the promise\n Object.assign(promise, result);\n\n return promise as Promise<ExecResult> & {\n stdout?: Readable;\n stderr?: Readable;\n pid?: number;\n kill: (signal?: number | NodeJS.Signals) => boolean;\n };\n}\n","import { define } from 'gunshi';\nimport { gracefulExit } from 'exit-hook';\n\nimport { exec } from '../../lib/exec';\nimport { loadVarlockEnvGraph } from '../../lib/load-graph';\nimport { checkForConfigErrors, checkForNoEnvFiles, checkForSchemaErrors } from '../helpers/error-checks';\nimport { type TypedGunshiCommandFn } from '../helpers/gunshi-type-utils';\nimport { resetRedactionMap, redactSensitiveConfig } from '../../runtime/env';\n\nexport const commandSpec = define({\n name: 'run',\n description: 'Run a command with your environment variables injected',\n args: {\n // watch: {\n // type: 'boolean',\n // short: 'w',\n // description: 'Watch mode',\n // },\n 'no-redact-stdout': {\n type: 'boolean',\n description: 'Disable stdout/stderr redaction and use stdio inherit for full TTY pass-through (use for interactive tools that require raw TTY)',\n },\n 'no-inject-graph': {\n type: 'boolean',\n description: 'Disable injection of __VARLOCK_ENV serialized config graph into the child process environment (prevents sensitive value exposure via env inspection)',\n },\n path: {\n type: 'string',\n short: 'p',\n multiple: true,\n description: 'Path to a specific .env file or directory to use as the entry point (can be specified multiple times)',\n },\n },\n examples: `\nExecutes a command in a child process, injecting your resolved and validated environment\nvariables from your .env files. Useful when a code-level integration is not possible.\n\nExamples:\n varlock run -- node app.js # Run a Node.js application\n varlock run -- python script.py # Run a Python script\n varlock run -- sh -c 'echo $MY_VAR' # Use shell expansion for env vars\n varlock run --no-redact-stdout -- psql # Preserve TTY for interactive tools\n varlock run --no-inject-graph -- sh # Omit serialized config graph from env\n varlock run --path .env.prod -- node app.js # Use a specific .env file\n varlock run --path ./config/ -- node app.js # Use a specific directory\n varlock run -p ./envs -p ./overrides -- node app.js # Use multiple directories\n\n📍 Important: Use -- to separate varlock options from your command\n\n💡 Tip: For shell expansion of env vars, use: sh -c 'your command here'\n💡 Tip: Use --no-redact-stdout for interactive tools that require raw TTY (e.g., psql, claude)\n💡 Tip: Use --no-inject-graph to prevent __VARLOCK_ENV from being visible in child process environment (e.g., interactive shells, long-lived processes)\n `.trim(),\n});\n\nlet commandProcess: ReturnType<typeof exec> | undefined;\nlet childCommandKilledFromRestart = false;\nconst isWatchModeRestart = false; // TODO: re-enable watch mode\n\nexport const commandFn: TypedGunshiCommandFn<typeof commandSpec> = async (ctx) => {\n // if \"--\" is present, split the args into our command and the rest, which will be another external command\n const argv = process.argv.slice(2);\n let restCommandArgs: Array<string> = [];\n if (argv.includes('--')) {\n const doubleDashIndex = argv.indexOf('--');\n restCommandArgs = argv.slice(doubleDashIndex + 1);\n } else {\n throw new Error('No command to run! Your command should look like `varlock run -- <your-command>`');\n }\n const commandToRunAsArgs = restCommandArgs;\n const commandToRunStr = restCommandArgs.join(' ');\n\n const rawCommand = commandToRunAsArgs[0];\n const commandArgsOnly = commandToRunAsArgs.slice(1);\n\n // const isWatchEnabled = ctx.values.watch;\n const isWatchEnabled = false;\n\n // console.log('running command', pathAwareCommand || rawCommand, commandArgsOnly);\n\n\n const envGraph = await loadVarlockEnvGraph({\n entryFilePaths: ctx.values.path,\n });\n checkForSchemaErrors(envGraph);\n checkForNoEnvFiles(envGraph);\n\n // Generate types before resolving values — uses only non-env-specific schema info\n await envGraph.generateTypesIfNeeded();\n\n await envGraph.resolveEnvValues();\n checkForConfigErrors(envGraph);\n\n // will fail above if there are any errors\n\n const resolvedEnv = envGraph.getResolvedEnvObject();\n const serializedGraph = envGraph.getSerializedGraph();\n // console.log(resolvedEnv);\n\n const noInjectGraph = ctx.values['no-inject-graph'] ?? false;\n\n // needs more thought here\n const fullInjectedEnv: NodeJS.ProcessEnv = {\n ...process.env,\n ...resolvedEnv,\n __VARLOCK_RUN: '1', // flag for a child process to detect it is running via `varlock run`\n ...(!noInjectGraph ? { __VARLOCK_ENV: JSON.stringify(serializedGraph) } : {}),\n };\n\n const redactLogs = serializedGraph.settings?.redactLogs ?? true;\n const noRedactStdout = ctx.values['no-redact-stdout'] ?? false;\n\n // Initialize the redaction map if redaction is enabled\n if (redactLogs) {\n resetRedactionMap(serializedGraph);\n }\n\n // When --no-redact-stdout is set, use stdio: 'inherit' to preserve TTY detection\n // Otherwise, pipe stdout/stderr through redaction\n if (noRedactStdout) {\n commandProcess = exec(rawCommand, commandArgsOnly, {\n stdio: 'inherit',\n env: fullInjectedEnv,\n });\n } else {\n // When piping for redaction, preserve color support by injecting FORCE_COLOR if the\n // parent stdout is a TTY and colors are not explicitly disabled. This allows tools\n // that respect FORCE_COLOR (chalk, kleur, etc.) to still output colors even when piped.\n // We read terminal env vars (NO_COLOR, FORCE_COLOR, COLORTERM, TERM) from process.env\n // since these are set by the parent shell/terminal, not by varlock config.\n let redactEnv: NodeJS.ProcessEnv = fullInjectedEnv;\n if (\n process.stdout.isTTY\n && process.env.NO_COLOR === undefined\n && process.env.FORCE_COLOR === undefined\n ) {\n let forceColorLevel = '1';\n if (process.env.COLORTERM === 'truecolor' || process.env.COLORTERM === '24bit') {\n forceColorLevel = '3';\n } else if (process.env.TERM?.includes('256color') || process.env.TERM_PROGRAM === 'iTerm.app') {\n forceColorLevel = '2';\n }\n redactEnv = { ...fullInjectedEnv, FORCE_COLOR: forceColorLevel };\n }\n\n // Helper to redact and write output\n const writeRedacted = (stream: NodeJS.WriteStream, chunk: Buffer | string) => {\n const str = chunk.toString();\n stream.write(redactLogs ? redactSensitiveConfig(str) : str);\n };\n\n commandProcess = exec(rawCommand, commandArgsOnly, {\n stdin: 'inherit',\n stdout: 'pipe',\n stderr: 'pipe',\n env: redactEnv,\n });\n\n // Pipe stdout and stderr through redaction\n commandProcess.stdout?.on('data', (chunk: Buffer | string) => writeRedacted(process.stdout, chunk));\n commandProcess.stderr?.on('data', (chunk: Buffer | string) => writeRedacted(process.stderr, chunk));\n }\n // console.log('PARENT PID = ', process.pid);\n // console.log('CHILD PID = ', commandProcess.pid);\n\n // if first run, we need to attach some extra exit handling\n if (!isWatchModeRestart) {\n // try to make sure we shut down cleanly and kill the child process\n process.on('exit', (_code: any, _signal: any) => {\n // if (childCommandKilledFromRestart) {\n // childCommandKilledFromRestart = false;\n // return;\n // }\n // console.log('exit!', code, signal);\n commandProcess?.kill(9);\n });\n\n ['SIGTERM', 'SIGINT'].forEach((signal) => {\n process.on(signal, () => {\n // console.log('SIGNAL = ', signal);\n commandProcess?.kill(9);\n gracefulExit(1);\n });\n });\n // TODO: handle other signals?\n }\n\n\n let exitCode: any; // TODO: fix this any\n try {\n const result = await commandProcess;\n exitCode = result.exitCode;\n } catch (error) {\n // console.log('child command error!', error);\n if ((error as any).signal === 'SIGINT' && childCommandKilledFromRestart) {\n // console.log('child command failed due to being killed form restart');\n childCommandKilledFromRestart = false;\n return;\n }\n\n // console.log('child command result error', error);\n if ((error as any).signal === 'SIGINT' || (error as any).signal === 'SIGKILL') {\n gracefulExit(1);\n } else {\n console.log((error as Error).message);\n console.log(`command [${commandToRunStr}] failed`);\n console.log('try running the same command without varlock');\n console.log('if you get a different result, varlock may be the problem...');\n // console.log(`Please report issue here: <${REPORT_ISSUE_LINK}>`);\n }\n exitCode = (error as any).exitCode || 1;\n }\n\n if (isWatchEnabled) {\n if (!childCommandKilledFromRestart) {\n if (exitCode === 0) {\n console.log('\\n✅ command completed successfully');\n } else {\n console.log(`\\n💥 command failed - exit code = ${exitCode}`);\n }\n }\n }\n\n if (!isWatchEnabled) {\n return gracefulExit(exitCode);\n } else {\n console.log('... watching for changes ...');\n }\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/exec.ts","../src/cli/commands/run.command.ts"],"names":["fsConstants"],"mappings":"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","file":"chunk-VN4LKYXR.js","sourcesContent":["import { spawn, type ChildProcess } from 'node:child_process';\nimport { Readable } from 'node:stream';\nimport {\n join, delimiter, extname, isAbsolute,\n} from 'node:path';\nimport {\n existsSync, statSync, readFileSync, accessSync, constants as fsConstants,\n} from 'node:fs';\n\ninterface ExecOptions {\n env?: NodeJS.ProcessEnv;\n stdio?: 'inherit' | 'pipe' | [string, string, string];\n stdin?: 'inherit' | 'pipe';\n stdout?: 'inherit' | 'pipe';\n stderr?: 'inherit' | 'pipe';\n}\n\ninterface ExecResult {\n exitCode: number;\n signal?: NodeJS.Signals;\n stdout?: Readable;\n stderr?: Readable;\n pid?: number;\n kill: (signal?: number | NodeJS.Signals) => boolean;\n}\n\n/**\n * Get Windows executable extensions from PATHEXT or use defaults\n */\nfunction getWindowsExtensions(): Array<string> {\n const pathExt = process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM';\n // Create both upper and lowercase variants\n const exts = pathExt.split(';').filter(Boolean);\n const result: Array<string> = [];\n for (const ext of exts) {\n result.push(ext.toUpperCase());\n result.push(ext.toLowerCase());\n }\n return result;\n}\n\n/**\n * Check if a path is executable (POSIX)\n */\nfunction isExecutable(filePath: string): boolean {\n try {\n accessSync(filePath, fsConstants.X_OK);\n const stats = statSync(filePath);\n return stats.isFile();\n } catch {\n return false;\n }\n}\n\n/**\n * Check if a file is executable on Windows (by extension)\n */\nfunction isExecutableOnWindows(filePath: string): boolean {\n if (!existsSync(filePath)) return false;\n\n try {\n const stats = statSync(filePath);\n if (!stats.isFile()) return false;\n } catch {\n return false;\n }\n\n const ext = extname(filePath).toLowerCase();\n const extensions = getWindowsExtensions().map((e) => e.toLowerCase());\n return extensions.includes(ext);\n}\n\n/**\n * Read shebang from file (first 150 bytes)\n */\nfunction readShebang(filePath: string): string | null {\n try {\n const fd = readFileSync(filePath, { encoding: 'utf8', flag: 'r' });\n const first150 = fd.slice(0, 150);\n const match = first150.match(/^#!([^\\r\\n]+)/);\n return match ? match[1].trim() : null;\n } catch {\n return null;\n }\n}\n\n/**\n * Find command in PATH with proper cross-platform support\n * Based on the `which` package logic\n */\nfunction findCommand(command: string): string {\n const isWin = process.platform === 'win32';\n const hasPathSep = command.includes('/') || command.includes('\\\\');\n\n // If it's an absolute or relative path, use it directly\n if (isAbsolute(command) || hasPathSep) {\n return command;\n }\n\n // Get PATH with proper handling\n const pathEnv = process.env.PATH || '';\n\n // On Windows, prepend current directory to search paths\n const searchPaths: Array<string> = [];\n if (isWin) {\n searchPaths.push(process.cwd());\n }\n\n // Split PATH and handle quoted entries\n const pathParts = pathEnv.split(delimiter);\n for (const part of pathParts) {\n // Strip surrounding quotes from PATH entries\n const cleanPart = /^\".*\"$/.test(part) ? part.slice(1, -1) : part;\n if (cleanPart) {\n searchPaths.push(cleanPart);\n }\n }\n\n // Get extensions to try\n let extensions: Array<string> = [''];\n if (isWin) {\n extensions = getWindowsExtensions();\n // If command has a dot and PATHEXT is set, try without extension first\n if (command.includes('.') && process.env.PATHEXT) {\n extensions.unshift('');\n }\n }\n\n // Search in each path\n for (const dir of searchPaths) {\n for (const ext of extensions) {\n const fullPath = join(dir, command + ext);\n\n if (isWin) {\n if (isExecutableOnWindows(fullPath)) {\n return fullPath;\n }\n } else {\n if (isExecutable(fullPath)) {\n // Check for shebang on non-Windows\n const shebang = readShebang(fullPath);\n if (shebang && shebang.startsWith('/')) {\n // Has shebang, can execute directly\n return fullPath;\n } else if (!shebang) {\n // No shebang, assume it's a native executable\n return fullPath;\n }\n }\n }\n }\n }\n\n // If not found, return the command as-is and let spawn handle the error\n return command;\n}\n\n/**\n * Escape a string for use inside a double-quoted cmd.exe argument.\n * cmd.exe convention: a literal \" is represented as \"\".\n */\nfunction escapeCmdExeArg(str: string): string {\n return str.replace(/\"/g, '\"\"');\n}\n\n\n/**\n * Simple command executor that replaces execa\n * Uses Node.js child_process.spawn under the hood\n */\nexport function exec(\n command: string,\n args: Array<string>,\n options: ExecOptions = {},\n): Promise<ExecResult> & {\n stdout?: Readable;\n stderr?: Readable;\n pid?: number;\n kill: (signal?: number | NodeJS.Signals) => boolean;\n} {\n // Find command in PATH if it's not an absolute path\n const resolvedCommand = findCommand(command);\n\n // Detect whether findCommand found a different path for the command.\n // Absolute/relative paths (containing a path separator) are always used as-is\n // (findCommand returns them unchanged), so we treat those as \"found\" too.\n const isCommandFound = resolvedCommand !== command\n || isAbsolute(command)\n || command.includes('/')\n || command.includes('\\\\');\n\n // On Windows, .cmd/.bat files must go through cmd.exe.\n // Also fall back to cmd.exe when the command wasn't found in PATH, so that\n // cmd.exe can handle PATHEXT lookups (e.g. tsx → tsx.cmd, pnpm → pnpm.cmd).\n const needsShell = process.platform === 'win32'\n && (/\\.(cmd|bat)$/i.test(resolvedCommand) || !isCommandFound);\n\n let spawnCommand = resolvedCommand;\n let spawnArgs = args;\n const spawnOptions: any = {\n env: options.env || process.env,\n shell: false,\n };\n\n // On Windows, wrap .cmd/.bat (or unresolved commands) in cmd.exe\n if (needsShell) {\n // Use the resolved path when available; otherwise let cmd.exe handle the\n // PATHEXT lookup by passing the original bare command name.\n const cmdToUse = isCommandFound ? resolvedCommand : command;\n // Always quote the command path to handle spaces and special characters.\n // Escape any embedded double-quotes as \"\" (cmd.exe convention).\n const quotedCmd = `\"${escapeCmdExeArg(cmdToUse)}\"`;\n // Build the inner string: quote every argument and escape embedded double-quotes,\n // then join with the command. Wrap the whole thing in one outer pair of quotes.\n // cmd.exe /s /c strips the first and last \" from the command string, so the outer\n // quotes are consumed and the quoted inner content is processed correctly.\n const cmdStr = [quotedCmd, ...args.map((a) => `\"${escapeCmdExeArg(a)}\"`)]\n .join(' ');\n spawnArgs = ['/d', '/s', '/c', `\"${cmdStr}\"`];\n spawnCommand = process.env.comspec || 'cmd.exe';\n spawnOptions.windowsVerbatimArguments = true;\n }\n\n // Normalize stdio options\n let stdio: 'inherit' | ['inherit' | 'pipe', 'inherit' | 'pipe', 'inherit' | 'pipe'];\n if (options.stdio === 'inherit') {\n stdio = 'inherit';\n } else if (options.stdio === 'pipe') {\n stdio = ['pipe', 'pipe', 'pipe'];\n } else if (options.stdio) {\n stdio = options.stdio as ['inherit' | 'pipe', 'inherit' | 'pipe', 'inherit' | 'pipe'];\n } else {\n // Default based on individual stdin/stdout/stderr\n stdio = [\n options.stdin || 'inherit',\n options.stdout || 'inherit',\n options.stderr || 'inherit',\n ] as ['inherit' | 'pipe', 'inherit' | 'pipe', 'inherit' | 'pipe'];\n }\n\n spawnOptions.stdio = stdio;\n\n const childProcess: ChildProcess = spawn(spawnCommand, spawnArgs, spawnOptions);\n\n const result: Partial<ExecResult> = {\n stdout: childProcess.stdout || undefined,\n stderr: childProcess.stderr || undefined,\n pid: childProcess.pid,\n kill: (signal?: number | NodeJS.Signals) => childProcess.kill(signal),\n };\n\n const promise = new Promise<ExecResult>((resolve, reject) => {\n let errorEmitted = false;\n\n childProcess.on('error', (error) => {\n errorEmitted = true;\n reject(\n Object.assign(error, {\n exitCode: 1,\n ...result,\n }),\n );\n });\n\n childProcess.on('exit', (code, signal) => {\n // Windows special case: exit code 1 without error event might be ENOENT\n if (process.platform === 'win32' && code === 1 && !errorEmitted && !existsSync(resolvedCommand)) {\n const error: any = new Error(`Command not found: ${command}`);\n error.code = 'ENOENT';\n error.exitCode = 1;\n Object.assign(error, result);\n reject(error);\n return;\n }\n\n const exitCode = code ?? (signal ? 1 : 0);\n const exitResult: ExecResult = {\n exitCode,\n signal: signal || undefined,\n ...result,\n } as ExecResult;\n\n if (exitCode !== 0) {\n const error: any = new Error(`Command failed with exit code ${exitCode}`);\n error.exitCode = exitCode;\n error.signal = signal;\n Object.assign(error, result);\n reject(error);\n } else {\n resolve(exitResult);\n }\n });\n }) as Promise<ExecResult> & Partial<ExecResult> & { kill: (signal?: number | NodeJS.Signals) => boolean };\n\n // Attach stream properties and methods to the promise\n Object.assign(promise, result);\n\n return promise as Promise<ExecResult> & {\n stdout?: Readable;\n stderr?: Readable;\n pid?: number;\n kill: (signal?: number | NodeJS.Signals) => boolean;\n };\n}\n","import { define } from 'gunshi';\nimport { gracefulExit } from 'exit-hook';\n\nimport { exec } from '../../lib/exec';\nimport { loadVarlockEnvGraph } from '../../lib/load-graph';\nimport { checkForConfigErrors, checkForNoEnvFiles, checkForSchemaErrors } from '../helpers/error-checks';\nimport { type TypedGunshiCommandFn } from '../helpers/gunshi-type-utils';\nimport { resetRedactionMap, redactSensitiveConfig } from '../../runtime/env';\n\nexport const commandSpec = define({\n name: 'run',\n description: 'Run a command with your environment variables injected',\n args: {\n // watch: {\n // type: 'boolean',\n // short: 'w',\n // description: 'Watch mode',\n // },\n 'no-redact-stdout': {\n type: 'boolean',\n description: 'Disable stdout/stderr redaction and use stdio inherit for full TTY pass-through (use for interactive tools that require raw TTY)',\n },\n 'no-inject-graph': {\n type: 'boolean',\n description: 'Disable injection of __VARLOCK_ENV serialized config graph into the child process environment (prevents sensitive value exposure via env inspection)',\n },\n path: {\n type: 'string',\n short: 'p',\n multiple: true,\n description: 'Path to a specific .env file or directory to use as the entry point (can be specified multiple times)',\n },\n },\n examples: `\nExecutes a command in a child process, injecting your resolved and validated environment\nvariables from your .env files. Useful when a code-level integration is not possible.\n\nExamples:\n varlock run -- node app.js # Run a Node.js application\n varlock run -- python script.py # Run a Python script\n varlock run -- sh -c 'echo $MY_VAR' # Use shell expansion for env vars\n varlock run --no-redact-stdout -- psql # Preserve TTY for interactive tools\n varlock run --no-inject-graph -- sh # Omit serialized config graph from env\n varlock run --path .env.prod -- node app.js # Use a specific .env file\n varlock run --path ./config/ -- node app.js # Use a specific directory\n varlock run -p ./envs -p ./overrides -- node app.js # Use multiple directories\n\n📍 Important: Use -- to separate varlock options from your command\n\n💡 Tip: For shell expansion of env vars, use: sh -c 'your command here'\n💡 Tip: Use --no-redact-stdout for interactive tools that require raw TTY (e.g., psql, claude)\n💡 Tip: Use --no-inject-graph to prevent __VARLOCK_ENV from being visible in child process environment (e.g., interactive shells, long-lived processes)\n `.trim(),\n});\n\nlet commandProcess: ReturnType<typeof exec> | undefined;\nlet childCommandKilledFromRestart = false;\nconst isWatchModeRestart = false; // TODO: re-enable watch mode\n\nexport const commandFn: TypedGunshiCommandFn<typeof commandSpec> = async (ctx) => {\n // if \"--\" is present, split the args into our command and the rest, which will be another external command\n const argv = process.argv.slice(2);\n let restCommandArgs: Array<string> = [];\n if (argv.includes('--')) {\n const doubleDashIndex = argv.indexOf('--');\n restCommandArgs = argv.slice(doubleDashIndex + 1);\n } else {\n throw new Error('No command to run! Your command should look like `varlock run -- <your-command>`');\n }\n const commandToRunAsArgs = restCommandArgs;\n const commandToRunStr = restCommandArgs.join(' ');\n\n const rawCommand = commandToRunAsArgs[0];\n const commandArgsOnly = commandToRunAsArgs.slice(1);\n\n // const isWatchEnabled = ctx.values.watch;\n const isWatchEnabled = false;\n\n // console.log('running command', pathAwareCommand || rawCommand, commandArgsOnly);\n\n\n const envGraph = await loadVarlockEnvGraph({\n entryFilePaths: ctx.values.path,\n });\n checkForSchemaErrors(envGraph);\n checkForNoEnvFiles(envGraph);\n\n // Generate types before resolving values — uses only non-env-specific schema info\n await envGraph.generateTypesIfNeeded();\n\n await envGraph.resolveEnvValues();\n checkForConfigErrors(envGraph);\n\n // will fail above if there are any errors\n\n const resolvedEnv = envGraph.getResolvedEnvObject();\n const serializedGraph = envGraph.getSerializedGraph();\n // console.log(resolvedEnv);\n\n const noInjectGraph = ctx.values['no-inject-graph'] ?? false;\n\n // needs more thought here\n const fullInjectedEnv: NodeJS.ProcessEnv = {\n ...process.env,\n ...resolvedEnv,\n __VARLOCK_RUN: '1', // flag for a child process to detect it is running via `varlock run`\n ...(!noInjectGraph ? { __VARLOCK_ENV: JSON.stringify(serializedGraph) } : {}),\n };\n\n const redactLogs = serializedGraph.settings?.redactLogs ?? true;\n const noRedactStdout = ctx.values['no-redact-stdout'] ?? false;\n\n // Initialize the redaction map if redaction is enabled\n if (redactLogs) {\n resetRedactionMap(serializedGraph);\n }\n\n // When --no-redact-stdout is set, use stdio: 'inherit' to preserve TTY detection\n // Otherwise, pipe stdout/stderr through redaction\n if (noRedactStdout) {\n commandProcess = exec(rawCommand, commandArgsOnly, {\n stdio: 'inherit',\n env: fullInjectedEnv,\n });\n } else {\n // When piping for redaction, preserve color support by injecting FORCE_COLOR if the\n // parent stdout is a TTY and colors are not explicitly disabled. This allows tools\n // that respect FORCE_COLOR (chalk, kleur, etc.) to still output colors even when piped.\n // We read terminal env vars (NO_COLOR, FORCE_COLOR, COLORTERM, TERM) from process.env\n // since these are set by the parent shell/terminal, not by varlock config.\n let redactEnv: NodeJS.ProcessEnv = fullInjectedEnv;\n if (\n process.stdout.isTTY\n && process.env.NO_COLOR === undefined\n && process.env.FORCE_COLOR === undefined\n ) {\n let forceColorLevel = '1';\n if (process.env.COLORTERM === 'truecolor' || process.env.COLORTERM === '24bit') {\n forceColorLevel = '3';\n } else if (process.env.TERM?.includes('256color') || process.env.TERM_PROGRAM === 'iTerm.app') {\n forceColorLevel = '2';\n }\n redactEnv = { ...fullInjectedEnv, FORCE_COLOR: forceColorLevel };\n }\n\n // Helper to redact and write output\n const writeRedacted = (stream: NodeJS.WriteStream, chunk: Buffer | string) => {\n const str = chunk.toString();\n stream.write(redactLogs ? redactSensitiveConfig(str) : str);\n };\n\n commandProcess = exec(rawCommand, commandArgsOnly, {\n stdin: 'inherit',\n stdout: 'pipe',\n stderr: 'pipe',\n env: redactEnv,\n });\n\n // Pipe stdout and stderr through redaction\n commandProcess.stdout?.on('data', (chunk: Buffer | string) => writeRedacted(process.stdout, chunk));\n commandProcess.stderr?.on('data', (chunk: Buffer | string) => writeRedacted(process.stderr, chunk));\n }\n // console.log('PARENT PID = ', process.pid);\n // console.log('CHILD PID = ', commandProcess.pid);\n\n // if first run, we need to attach some extra exit handling\n if (!isWatchModeRestart) {\n // try to make sure we shut down cleanly and kill the child process\n process.on('exit', (_code: any, _signal: any) => {\n // if (childCommandKilledFromRestart) {\n // childCommandKilledFromRestart = false;\n // return;\n // }\n // console.log('exit!', code, signal);\n commandProcess?.kill(9);\n });\n\n ['SIGTERM', 'SIGINT'].forEach((signal) => {\n process.on(signal, () => {\n // console.log('SIGNAL = ', signal);\n commandProcess?.kill(9);\n gracefulExit(1);\n });\n });\n // TODO: handle other signals?\n }\n\n\n let exitCode: any; // TODO: fix this any\n try {\n const result = await commandProcess;\n exitCode = result.exitCode;\n } catch (error) {\n // console.log('child command error!', error);\n if ((error as any).signal === 'SIGINT' && childCommandKilledFromRestart) {\n // console.log('child command failed due to being killed form restart');\n childCommandKilledFromRestart = false;\n return;\n }\n\n // console.log('child command result error', error);\n if ((error as any).signal === 'SIGINT' || (error as any).signal === 'SIGKILL') {\n gracefulExit(1);\n } else {\n console.log((error as Error).message);\n console.log(`command [${commandToRunStr}] failed`);\n console.log('try running the same command without varlock');\n console.log('if you get a different result, varlock may be the problem...');\n // console.log(`Please report issue here: <${REPORT_ISSUE_LINK}>`);\n }\n exitCode = (error as any).exitCode || 1;\n }\n\n if (isWatchEnabled) {\n if (!childCommandKilledFromRestart) {\n if (exitCode === 0) {\n console.log('\\n✅ command completed successfully');\n } else {\n console.log(`\\n💥 command failed - exit code = ${exitCode}`);\n }\n }\n }\n\n if (!isWatchEnabled) {\n return gracefulExit(exitCode);\n } else {\n console.log('... watching for changes ...');\n }\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getUserVarlockDir } from './chunk-
|
|
1
|
+
import { getUserVarlockDir, isWSL } from './chunk-O3WTD6L4.js';
|
|
2
2
|
import { q, Q, nt, it, rt } from './chunk-HDKXXS2X.js';
|
|
3
3
|
import { my_dash_default, SchemaError, createDebug, ResolutionError, CoercionError, ValidationError, activatePlugin, deactivatePlugin, VarlockError, EmptyRequiredValueError, ParseError, pluginProxy } from './chunk-2PFIYNFA.js';
|
|
4
4
|
import { __commonJS, __name, __toESM } from './chunk-6PEHRAEP.js';
|
|
@@ -6992,6 +6992,10 @@ async function getTsDefinitionForItem(info, indentLevel = 0) {
|
|
|
6992
6992
|
jsDocLines.push(`\u{1F4DA} {@link ${docsLink}}`);
|
|
6993
6993
|
});
|
|
6994
6994
|
}
|
|
6995
|
+
if (info.isDeprecated) {
|
|
6996
|
+
jsDocLines.push("");
|
|
6997
|
+
jsDocLines.push(info.deprecationMessage ? `@deprecated ${info.deprecationMessage}` : "@deprecated");
|
|
6998
|
+
}
|
|
6995
6999
|
if (jsDocLines.length === 1) {
|
|
6996
7000
|
itemSrc.push(`/** ${jsDocLines[0]} */`);
|
|
6997
7001
|
} else if (jsDocLines.length > 1) {
|
|
@@ -8511,7 +8515,7 @@ __name(enqueuePasswordPrompt, "enqueuePasswordPrompt");
|
|
|
8511
8515
|
var password = /* @__PURE__ */ __name(async (opts) => {
|
|
8512
8516
|
return enqueuePasswordPrompt(async () => {
|
|
8513
8517
|
const mask = opts.mask ?? S_PASSWORD_MASK;
|
|
8514
|
-
if (process.platform === "win32") {
|
|
8518
|
+
if (process.platform === "win32" || isWSL()) {
|
|
8515
8519
|
const { password: clackPassword, isCancel } = await import('./dist-WGIHRGBZ.js');
|
|
8516
8520
|
const result = await clackPassword({ message: opts.message, mask });
|
|
8517
8521
|
return isCancel(result) ? /* @__PURE__ */ Symbol("cancel") : result;
|
|
@@ -10285,7 +10289,7 @@ var builtInRootDecorators = [
|
|
|
10285
10289
|
dataSource._loadingError = err instanceof SchemaError ? err : new SchemaError(err);
|
|
10286
10290
|
return;
|
|
10287
10291
|
}
|
|
10288
|
-
const { ConfigItem: ConfigItem2 } = await import('./config-item-
|
|
10292
|
+
const { ConfigItem: ConfigItem2 } = await import('./config-item-6LTV4PNH.js');
|
|
10289
10293
|
for (const [key, entry] of Object.entries(entries)) {
|
|
10290
10294
|
const existsInSchema = key in graph.configSchema;
|
|
10291
10295
|
if (!existsInSchema && !createMissing) {
|
|
@@ -10342,6 +10346,9 @@ var builtInItemDecorators = [
|
|
|
10342
10346
|
{
|
|
10343
10347
|
name: "icon"
|
|
10344
10348
|
},
|
|
10349
|
+
{
|
|
10350
|
+
name: "deprecated"
|
|
10351
|
+
},
|
|
10345
10352
|
// test-only decorators — dropped in release builds
|
|
10346
10353
|
...[]
|
|
10347
10354
|
];
|
|
@@ -11422,6 +11429,18 @@ var ConfigItem = class {
|
|
|
11422
11429
|
if (explicitIconDec) return explicitIconDec.resolvedValue;
|
|
11423
11430
|
return this.dataType?.icon;
|
|
11424
11431
|
}
|
|
11432
|
+
get isDeprecated() {
|
|
11433
|
+
const deprecatedDec = this.getDec("deprecated");
|
|
11434
|
+
if (!deprecatedDec) return false;
|
|
11435
|
+
const val = deprecatedDec.parsedDecorator.simplifiedValue;
|
|
11436
|
+
return val === true || typeof val === "string";
|
|
11437
|
+
}
|
|
11438
|
+
get deprecationMessage() {
|
|
11439
|
+
const deprecatedDec = this.getDec("deprecated");
|
|
11440
|
+
if (!deprecatedDec) return void 0;
|
|
11441
|
+
const val = deprecatedDec.parsedDecorator.simplifiedValue;
|
|
11442
|
+
return typeof val === "string" ? val : void 0;
|
|
11443
|
+
}
|
|
11425
11444
|
get docsLinks() {
|
|
11426
11445
|
const links = [];
|
|
11427
11446
|
if (this.dataType?.docsEntries) {
|
|
@@ -11998,11 +12017,13 @@ var ConfigItem = class {
|
|
|
11998
12017
|
isRequiredDynamic,
|
|
11999
12018
|
isSensitive,
|
|
12000
12019
|
icon,
|
|
12001
|
-
docsLinks
|
|
12020
|
+
docsLinks,
|
|
12021
|
+
isDeprecated: this.isDeprecated,
|
|
12022
|
+
deprecationMessage: this.deprecationMessage
|
|
12002
12023
|
};
|
|
12003
12024
|
}
|
|
12004
12025
|
};
|
|
12005
12026
|
|
|
12006
12027
|
export { ConfigItem, DirectoryDataSource, DotEnvFileDataSource, EnvGraph, FileBasedDataSource, MultiplePathsContainerDataSource, ParsedEnvSpecFunctionCall, ParsedEnvSpecStaticValue, StaticValueResolver, ansis_default, createResolver, detectWorkspaceInfo, downloadPluginToCache, envSpecUpdater, multiselect, parseEnvSpecDotEnvFile, password, pathExists, prompts_default, require_semver2 as require_semver, runWithWorkspaceInfo, select, spawnAsync, tryCatch };
|
|
12007
|
-
//# sourceMappingURL=chunk-
|
|
12008
|
-
//# sourceMappingURL=chunk-
|
|
12028
|
+
//# sourceMappingURL=chunk-XWYFSG46.js.map
|
|
12029
|
+
//# sourceMappingURL=chunk-XWYFSG46.js.map
|