varlock 0.8.2 → 0.9.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 +5 -5
- package/dist/{chunk-Z5OLYLN5.js → chunk-27CA3M4N.js} +5 -5
- package/dist/{chunk-Z5OLYLN5.js.map → chunk-27CA3M4N.js.map} +1 -1
- package/dist/{chunk-ZH3NIFSS.js → chunk-2R7CWGVL.js} +6 -6
- package/dist/{chunk-ZH3NIFSS.js.map → chunk-2R7CWGVL.js.map} +1 -1
- package/dist/{chunk-MYHVSJ3X.js → chunk-5DUWGI2N.js} +3 -3
- package/dist/{chunk-MYHVSJ3X.js.map → chunk-5DUWGI2N.js.map} +1 -1
- package/dist/{chunk-FOA6LP5C.js → chunk-C4ITUXON.js} +5 -4
- package/dist/chunk-C4ITUXON.js.map +1 -0
- package/dist/{chunk-YK3J3EOI.js → chunk-DGXO2UN7.js} +6 -6
- package/dist/{chunk-YK3J3EOI.js.map → chunk-DGXO2UN7.js.map} +1 -1
- package/dist/{chunk-LVZSZAKN.js → chunk-F6RTQ5QX.js} +3 -3
- package/dist/{chunk-LVZSZAKN.js.map → chunk-F6RTQ5QX.js.map} +1 -1
- package/dist/{chunk-CAJTCWYA.js → chunk-GWQJHKYT.js} +5 -5
- package/dist/{chunk-CAJTCWYA.js.map → chunk-GWQJHKYT.js.map} +1 -1
- package/dist/{chunk-6W4P3ESY.js → chunk-K5536FEN.js} +5 -5
- package/dist/{chunk-6W4P3ESY.js.map → chunk-K5536FEN.js.map} +1 -1
- package/dist/{chunk-JA2AIGGX.js → chunk-LAI7XVJU.js} +14 -7
- package/dist/chunk-LAI7XVJU.js.map +1 -0
- package/dist/{chunk-VH76CEVH.js → chunk-LRT2CHDN.js} +4 -4
- package/dist/{chunk-VH76CEVH.js.map → chunk-LRT2CHDN.js.map} +1 -1
- package/dist/{chunk-IMB5QAZS.js → chunk-MGWUDHT5.js} +6 -2
- package/dist/chunk-MGWUDHT5.js.map +1 -0
- package/dist/{chunk-5224KHFW.js → chunk-N2E6DRSH.js} +6 -6
- package/dist/{chunk-5224KHFW.js.map → chunk-N2E6DRSH.js.map} +1 -1
- package/dist/{chunk-NUSBE7ZT.js → chunk-P5H6JZZR.js} +4 -4
- package/dist/{chunk-NUSBE7ZT.js.map → chunk-P5H6JZZR.js.map} +1 -1
- package/dist/{chunk-PBBUUBNG.js → chunk-Q2XA45LC.js} +4 -4
- package/dist/{chunk-PBBUUBNG.js.map → chunk-Q2XA45LC.js.map} +1 -1
- package/dist/{chunk-CZ7QQE6H.js → chunk-QYICMUCP.js} +5 -5
- package/dist/{chunk-CZ7QQE6H.js.map → chunk-QYICMUCP.js.map} +1 -1
- package/dist/{chunk-BC7LU4LG.js → chunk-R73FENLU.js} +3 -3
- package/dist/{chunk-BC7LU4LG.js.map → chunk-R73FENLU.js.map} +1 -1
- package/dist/{chunk-WG4YIOKM.js → chunk-S5EU3LTR.js} +4 -4
- package/dist/{chunk-WG4YIOKM.js.map → chunk-S5EU3LTR.js.map} +1 -1
- package/dist/{chunk-YUPV6MIL.js → chunk-WLPAS4VQ.js} +3 -3
- package/dist/{chunk-YUPV6MIL.js.map → chunk-WLPAS4VQ.js.map} +1 -1
- package/dist/{chunk-I2BC7NCA.js → chunk-YBV5OJW6.js} +3 -3
- package/dist/{chunk-I2BC7NCA.js.map → chunk-YBV5OJW6.js.map} +1 -1
- package/dist/{chunk-CZXCAKEV.js → chunk-ZZCDYV63.js} +5 -5
- package/dist/{chunk-CZXCAKEV.js.map → chunk-ZZCDYV63.js.map} +1 -1
- package/dist/cli/cli-executable.js +26 -26
- package/dist/cli/cli-executable.js.map +1 -1
- package/dist/config-item-5WIOGFHA.js +5 -0
- package/dist/{config-item-SR7HN6CU.js.map → config-item-5WIOGFHA.js.map} +1 -1
- package/dist/dotenv-compat.js +5 -5
- package/dist/explain.command-NST64XIO.js +12 -0
- package/dist/{explain.command-AQR6BA2T.js.map → explain.command-NST64XIO.js.map} +1 -1
- package/dist/index.js +10 -10
- package/dist/init.command-4Z3VRGOV.js +11 -0
- package/dist/{init.command-7YURBLWN.js.map → init.command-4Z3VRGOV.js.map} +1 -1
- package/dist/install-plugin.command-F244Y3RI.js +11 -0
- package/dist/{install-plugin.command-PQTP6RHA.js.map → install-plugin.command-F244Y3RI.js.map} +1 -1
- package/dist/load.command-JTUAYW2W.js +12 -0
- package/dist/{load.command-R2HLBFAO.js.map → load.command-JTUAYW2W.js.map} +1 -1
- package/dist/printenv.command-NAHG4T76.js +12 -0
- package/dist/{printenv.command-U7ULTREK.js.map → printenv.command-NAHG4T76.js.map} +1 -1
- package/dist/run.command-2IUKOZHD.js +13 -0
- package/dist/{run.command-COOPCDSU.js.map → run.command-2IUKOZHD.js.map} +1 -1
- package/dist/runtime/env.js +1 -1
- package/dist/runtime/init-edge.cjs +4 -0
- package/dist/runtime/init-server.cjs +4 -0
- package/dist/runtime/patch-console.js +2 -2
- package/dist/runtime/patch-response.js +2 -2
- package/dist/runtime/patch-server-response.js +2 -2
- package/dist/scan.command-BEPDT3YQ.js +13 -0
- package/dist/{scan.command-OUVXZFQD.js.map → scan.command-BEPDT3YQ.js.map} +1 -1
- package/dist/telemetry.command-E6GIZKTJ.js +11 -0
- package/dist/{telemetry.command-LI6PESQP.js.map → telemetry.command-E6GIZKTJ.js.map} +1 -1
- package/dist/typegen.command-JGJUSFGG.js +12 -0
- package/dist/{typegen.command-INHZ55RL.js.map → typegen.command-JGJUSFGG.js.map} +1 -1
- package/package.json +1 -1
- package/dist/chunk-FOA6LP5C.js.map +0 -1
- package/dist/chunk-IMB5QAZS.js.map +0 -1
- package/dist/chunk-JA2AIGGX.js.map +0 -1
- package/dist/config-item-SR7HN6CU.js +0 -5
- package/dist/explain.command-AQR6BA2T.js +0 -12
- package/dist/init.command-7YURBLWN.js +0 -11
- package/dist/install-plugin.command-PQTP6RHA.js +0 -11
- package/dist/load.command-R2HLBFAO.js +0 -12
- package/dist/printenv.command-U7ULTREK.js +0 -12
- package/dist/run.command-COOPCDSU.js +0 -13
- package/dist/scan.command-OUVXZFQD.js +0 -13
- package/dist/telemetry.command-LI6PESQP.js +0 -11
- package/dist/typegen.command-INHZ55RL.js +0 -12
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/detect-runtime.ts","../src/runtime/lib/debug.ts","../src/runtime/env.ts"],"names":[],"mappings":"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","file":"chunk-IMB5QAZS.js","sourcesContent":["declare const Deno: any;\ndeclare const navigator: any;\ndeclare const window: any;\ndeclare const self: any;\n// declare const process: any;\n\n\nlet versionsStr = 'versions'; // eslint-disable-line\n// we use a string here so nextjs static analysis doesnt get angry\nconst processVersions = typeof process !== 'undefined' && (process as any)[versionsStr as any]; // @ts-ignore\n\nexport const isNode: boolean = processVersions && processVersions.node != null;\n\nexport const isWebWorker: boolean = typeof self === 'object'\n && self.constructor\n && self.constructor.name === 'DedicatedWorkerGlobalScope';\n\n// https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\nexport const isJsDom: boolean = (typeof window !== 'undefined' && window.name === 'nodejs')\n || (typeof navigator !== 'undefined'\n && 'userAgent' in navigator\n && typeof navigator.userAgent === 'string'\n && (navigator.userAgent.includes('Node.js')\n || navigator.userAgent.includes('jsdom')));\n\nexport const isDeno: boolean = typeof Deno !== 'undefined'\n && typeof Deno.version !== 'undefined'\n && typeof Deno.version.deno !== 'undefined';\n\n/** @see {@link https://bun.sh/guides/util/detect-bun} */\nexport const isBun = processVersions && processVersions.bun != null;\n\n\n\nexport const isBrowser = typeof window !== 'undefined'\n && typeof window.document !== 'undefined'\n && typeof window.document.createElement === 'function'\n && typeof navigator !== 'undefined'\n && typeof navigator.userAgent === 'string';\n","/* eslint-disable no-console */\nexport function debug(...args: Array<any>) {\n if (!globalThis.process?.env.DEBUG_VARLOCK) return;\n console.log(...args);\n}\n","import { redactString } from './lib/redaction';\n\nimport type { SerializedEnvGraph } from '../env-graph';\nimport { isBrowser } from '../lib/detect-runtime';\nimport { debug } from './lib/debug';\n\n// TODO: would like to move all of the redaction utils out of this file\n// but its complicated since it is imported by code that may be run in the backend and frontend\n// but the patching code (which only runs in the backend) use these helper functions\n\n// this does not cover all cases, but serves our needs so far for Next.js\nfunction isString(s: any) {\n return Object.prototype.toString.call(s) === '[object String]';\n}\n\nconst UNMASK_STR = '👁';\n\n\n// Store redaction state on globalThis so all module instances (e.g., multiple CJS bundles\n// in Turbopack's middleware context) share the same redaction map.\n// Without this, the module instance that patches console.log may have an empty map\n// while a different instance has the populated one.\ntype RedactionState = {\n sensitiveSecretsMap: Record<string, { key: string, redacted: string }>,\n redactorFindReplace: undefined | { find: RegExp, replace: ReplaceFn },\n};\ntype ReplaceFn = (match: string, pre: string, val: string, post: string) => string;\n\nconst REDACTION_STATE_KEY = '__varlockRedactionState';\nfunction getRedactionState(): RedactionState {\n if (!(globalThis as any)[REDACTION_STATE_KEY]) {\n (globalThis as any)[REDACTION_STATE_KEY] = {\n sensitiveSecretsMap: {},\n redactorFindReplace: undefined,\n };\n }\n return (globalThis as any)[REDACTION_STATE_KEY];\n}\n\nexport function resetRedactionMap(graph: SerializedEnvGraph) {\n const state = getRedactionState();\n // reset map of { [sensitive] => redacted }\n state.sensitiveSecretsMap = {};\n for (const itemKey in graph.config) {\n const item = graph.config[itemKey];\n if (item.isSensitive && item.value && isString(item.value)) {\n // TODO: we want to respect masking settings from the schema (once added)\n const redacted = redactString(item.value);\n if (redacted) state.sensitiveSecretsMap[item.value] = { key: itemKey, redacted };\n }\n }\n // if no sensitive items exist, we dont need to do any redaction, but the redact fn is checking for undefined\n if (!Object.keys(state.sensitiveSecretsMap).length) {\n state.redactorFindReplace = undefined;\n return;\n }\n\n // reset find/replace regex+fn used for redacting secrets in strings\n const findRegex = new RegExp(\n [\n `(${UNMASK_STR} )?`,\n '(',\n Object.keys(state.sensitiveSecretsMap)\n // Escape special characters\n .map((s) => s.replace(/[()[\\]{}*+?^$|#.,/\\\\\\s-]/g, '\\\\$&'))\n // Sort for maximal munch\n .sort((a, b) => b.length - a.length)\n .join('|'),\n ')',\n `( ${UNMASK_STR})?`,\n ].join(''),\n 'g',\n );\n\n const replaceFn: ReplaceFn = (match, pre, val, post) => {\n // the pre and post matches only will be populated if they were present\n // and they are used to unmask the secret - so we do not want to replace in this case\n if (pre && post) return match;\n return state.sensitiveSecretsMap[val].redacted;\n };\n state.redactorFindReplace = { find: findRegex, replace: replaceFn };\n}\n\n/** Returns diagnostic info about the current redaction state (safe to expose — no secrets) */\nexport function getRedactionMapInfo() {\n const state = getRedactionState();\n return {\n sensitiveItemCount: Object.keys(state.sensitiveSecretsMap).length,\n hasRedactorRegex: !!state.redactorFindReplace,\n };\n}\n\n\n// While the module itself acts as a singleton to hold the current map of redacted values\n// we expose only the below const to end users\n\n\n/**\n * Redacts senstive config values from any string/array/object/etc\n *\n * NOTE - must be used only after varlock has loaded config\n * */\nexport function redactSensitiveConfig(o: any): any {\n const { redactorFindReplace } = getRedactionState();\n if (!redactorFindReplace) return o;\n if (!o) return o;\n\n // TODO: handle more cases?\n // we can probably redact safely from a few other datatypes - like set,map,etc?\n // objects are a bit tougher\n if (Array.isArray(o)) {\n return o.map(redactSensitiveConfig);\n }\n // try to redact if it's a plain object - not necessarily great for perf...\n if (o && typeof (o) === 'object' && Object.getPrototypeOf(o) === Object.prototype) {\n try {\n return JSON.parse(redactSensitiveConfig(JSON.stringify(o)));\n } catch (err) {\n return o;\n }\n }\n\n const type = typeof o;\n if (type === 'string' || (type === 'object' && Object.prototype.toString.call(o) === '[object String]')) {\n return (o as string).replaceAll(redactorFindReplace.find, redactorFindReplace.replace);\n }\n\n return o;\n}\n\n/**\n * utility to unmask a secret/sensitive value when logging to the console\n * currently this only works on a single secret, not objects or aggregated strings\n * */\nexport function revealSensitiveConfig(secretStr: string) {\n // if redaction not enabled, we just return the secret itself\n if (!(globalThis as any)._varlockOrigWriteToConsoleFn) return secretStr;\n // otherwise we add some wrapper characters which will be removed by the patched console behaviour\n return `${UNMASK_STR} ${secretStr} ${UNMASK_STR}`;\n}\n\n\n\n\n\n// reusable leak scanning helper function, used by various integrations\nexport function scanForLeaks(\n toScan: string | ReadableStream | null,\n // optional additional information about what is being scanned to be used in error messages\n meta?: {\n method?: string,\n file?: string,\n },\n) {\n debug('⚡️ varlock scanning for leaks');\n if (!toScan) return toScan;\n\n function scanStrForLeaks(strToScan: string) {\n const { sensitiveSecretsMap } = getRedactionState();\n\n // TODO: probably should use a single regex\n for (const sensitiveValue in sensitiveSecretsMap) {\n if (strToScan.includes(sensitiveValue)) {\n const itemKey = sensitiveSecretsMap[sensitiveValue].key;\n\n // error stack can gets awkwardly buried since we're so deep in the internals\n // so we'll write a nicer error message to help the user debug\n // eslint-disable-next-line no-console\n console.error([\n '',\n `🚨 ${'DETECTED LEAKED SENSITIVE CONFIG'} 🚨`,\n `> Config item key: ${itemKey}`,\n ...meta?.method ? [`> Scan method: ${meta.method}`] : [],\n ...meta?.file ? [`> File: ${meta.file}`] : [],\n '',\n ].join('\\n'));\n\n throw new Error(`🚨 DETECTED LEAKED SENSITIVE CONFIG - ${itemKey}`);\n }\n }\n }\n\n // scan a string\n if (isString(toScan)) {\n scanStrForLeaks(toScan as string);\n return toScan;\n // typeof guard needed: in edge runtime, this code runs as raw injected JS outside webpack's\n // module resolution, so bare `Buffer` is a ReferenceError even though edge supports it via\n // the sandbox's node:buffer module. This branch is unreachable in edge anyway (only strings/streams).\n } else if (typeof Buffer !== 'undefined' && toScan instanceof Buffer) {\n scanStrForLeaks(toScan.toString());\n return toScan;\n // scan a ReadableStream by piping it through a scanner\n } else if (toScan instanceof ReadableStream) {\n if (toScan.locked) {\n return toScan;\n }\n const chunkDecoder = new TextDecoder();\n return toScan.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n const chunkStr = chunkDecoder.decode(chunk);\n scanStrForLeaks(chunkStr);\n controller.enqueue(chunk);\n },\n }),\n );\n }\n // other things may be passed in like Buffer... but we'll ignore for now\n return toScan;\n}\n\n// -----------\n\n\n\n\n// --------------\n\nlet initializedEnv = false;\nconst envValues = {} as Record<string, any>;\nexport const varlockSettings = {} as Record<string, any>;\n\nconst processExists = !!globalThis.process;\nconst originalProcessEnv = { ...processExists && process.env };\nlet varlockInjectedProcessEnvKeys: Array<string> | undefined;\n\nexport function initVarlockEnv(opts?: {\n allowFail?: boolean,\n}) {\n debug('⚡️ INIT VARLOCK ENV!', initializedEnv, !!(globalThis as any).__varlockLoadedEnv, !!globalThis.process?.env.__VARLOCK_ENV);\n\n // normally we can just bail if we detect we are in the browser\n // however when front-end related tests, it may appear that we are in the browser but it is not\n // also some frameworks inject a process polyfill, others do not\n if (isBrowser && !globalThis.process?.env.__VARLOCK_ENV) {\n initializedEnv = true;\n return;\n }\n\n\n let serializedEnvData: SerializedEnvGraph;\n // when we inject resolved config at build time, we store it here\n if ((globalThis as any).__varlockLoadedEnv) {\n serializedEnvData = (globalThis as any).__varlockLoadedEnv;\n\n // otherwise if we inject via `varlock run` or have already loaded, it will be in process.env\n } else if (processExists && process.env.__VARLOCK_ENV) {\n serializedEnvData = JSON.parse(process.env.__VARLOCK_ENV);\n } else {\n if (opts?.allowFail) return;\n // eslint-disable-next-line no-console\n console.error([\n '',\n '🚨 initVarlockEnv failed 🚨',\n 'try rerunning your command via `varlock run`',\n '',\n ].join('\\n'));\n throw new Error('initVarlockEnv failed');\n }\n Object.assign(varlockSettings, serializedEnvData.settings);\n resetRedactionMap(serializedEnvData);\n\n const setProcessEnv = processExists;\n\n // if we've already injected process.env vars in the past, we'll reset those now\n if (setProcessEnv) {\n if (varlockInjectedProcessEnvKeys) {\n for (const key of varlockInjectedProcessEnvKeys) delete process.env[key];\n for (const key of Object.keys(originalProcessEnv)) process.env[key] = originalProcessEnv[key];\n }\n varlockInjectedProcessEnvKeys = [];\n }\n\n for (const itemKey in serializedEnvData.config) {\n const itemValue = serializedEnvData.config[itemKey].value;\n envValues[itemKey] = itemValue;\n if (setProcessEnv) {\n varlockInjectedProcessEnvKeys?.push(itemKey);\n // when re-injecting into process.env, we treat undefined as empty string\n // this more closely matches expected behaviour from other .env loaders\n process.env[itemKey] = itemValue === undefined ? '' : String(itemValue);\n }\n }\n initializedEnv = true;\n}\n\n// we will attempt to call initVarlockEnv automatically, but in most cases it should be called explicitly\n// note that if this is being imported in the browser, process.env may not exist, so we do this in a try/catch\ntry {\n if (!initializedEnv) {\n // if we are automatically loading because __VARLOCK_ENV is already set\n // then we assume process.env vars have also already been set (although might not harm anything?)\n initVarlockEnv({ allowFail: true });\n }\n} catch (err) {\n // expected that this will fail when process.env does not exist\n // but we may want to look for specific errors\n}\n\n\n\n// some object keys are checked by various tools when handling arbitrary data, especially in templates\n// because our proxy objects throw errors when unknown keys are accessed, this causes problems\n// for now we can just filter out a these keys and it should be fairly harmless\n// TODO: ideally this could be customized by the user, and not specific to vue\nconst IGNORED_PROXY_KEYS = [\n // vue - see https://github.com/vuejs/core/blob/70773d00985135a50556c61fb9855ed6b930cb82/packages/reactivity/src/ref.ts#L101\n '__v_isRef',\n];\n\n\n// this gets exported and then augmented by our type generation\n// ideally we'd start with a loose type `Record<string,any>` and then override it with the actual schema\n// so that if type generation was disabled, a user could still use `ENV`\n// but TS wont let us, so instead we start with it being empty, which will cause type errors\n// unless type generation is enabled\nexport interface TypedEnvSchema {}\n\nconst EnvProxy = new Proxy<TypedEnvSchema>({}, {\n get(target, prop) {\n // ignore symbols, as it likely an external tool checking something\n if (typeof prop === 'symbol') return;\n // special cases to avoid throwing on invalid keys\n if (IGNORED_PROXY_KEYS.includes(prop)) return;\n\n if (!initializedEnv) {\n throw new Error('varlock ENV not initialized');\n }\n\n if (prop in envValues) return envValues[prop];\n if ((globalThis as any).__varlockThrowOnMissingKeys) {\n // during development, we can feed in extra metadata and show more helpful errors\n if ((globalThis as any).__varlockValidKeys && (globalThis as any).__varlockValidKeys.includes(prop)) {\n throw new Error(`\\`ENV.${prop}\\` exists, but is not available in this environment`);\n } else {\n throw new Error(`\\`ENV.${prop}\\` does not exist`);\n }\n }\n return undefined;\n },\n});\n\nexport const ENV = EnvProxy;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/exec.ts","../src/cli/commands/run.command.ts"],"names":["fsConstants"],"mappings":"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","file":"chunk-JA2AIGGX.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 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 --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 `.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 // needs more thought here\n const fullInjectedEnv = {\n ...process.env,\n ...resolvedEnv,\n __VARLOCK_RUN: '1', // flag for a child process to detect it is runnign via `varlock run`\n __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,12 +0,0 @@
|
|
|
1
|
-
export { commandFn, commandSpec } from './chunk-ZH3NIFSS.js';
|
|
2
|
-
import './chunk-4A54P4EM.js';
|
|
3
|
-
import './chunk-PBBUUBNG.js';
|
|
4
|
-
import './chunk-WG4YIOKM.js';
|
|
5
|
-
import './chunk-CHQDS2PI.js';
|
|
6
|
-
import './chunk-I2BC7NCA.js';
|
|
7
|
-
import './chunk-FOA6LP5C.js';
|
|
8
|
-
import './chunk-6CCHLM3U.js';
|
|
9
|
-
import './chunk-XLYSNOR3.js';
|
|
10
|
-
import './chunk-6PEHRAEP.js';
|
|
11
|
-
//# sourceMappingURL=explain.command-AQR6BA2T.js.map
|
|
12
|
-
//# sourceMappingURL=explain.command-AQR6BA2T.js.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export { commandFn, commandSpec } from './chunk-NUSBE7ZT.js';
|
|
2
|
-
import './chunk-VH76CEVH.js';
|
|
3
|
-
import './chunk-4A54P4EM.js';
|
|
4
|
-
import './chunk-CHQDS2PI.js';
|
|
5
|
-
import './chunk-I2BC7NCA.js';
|
|
6
|
-
import './chunk-FOA6LP5C.js';
|
|
7
|
-
import './chunk-6CCHLM3U.js';
|
|
8
|
-
import './chunk-XLYSNOR3.js';
|
|
9
|
-
import './chunk-6PEHRAEP.js';
|
|
10
|
-
//# sourceMappingURL=init.command-7YURBLWN.js.map
|
|
11
|
-
//# sourceMappingURL=init.command-7YURBLWN.js.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export { commandFn, commandSpec } from './chunk-Z5OLYLN5.js';
|
|
2
|
-
import './chunk-GXNQVEXD.js';
|
|
3
|
-
import './chunk-VH76CEVH.js';
|
|
4
|
-
import './chunk-4A54P4EM.js';
|
|
5
|
-
import './chunk-I2BC7NCA.js';
|
|
6
|
-
import './chunk-FOA6LP5C.js';
|
|
7
|
-
import './chunk-6CCHLM3U.js';
|
|
8
|
-
import './chunk-XLYSNOR3.js';
|
|
9
|
-
import './chunk-6PEHRAEP.js';
|
|
10
|
-
//# sourceMappingURL=install-plugin.command-PQTP6RHA.js.map
|
|
11
|
-
//# sourceMappingURL=install-plugin.command-PQTP6RHA.js.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export { commandFn, commandSpec, formatShellValue } from './chunk-CZXCAKEV.js';
|
|
2
|
-
import './chunk-4A54P4EM.js';
|
|
3
|
-
import './chunk-PBBUUBNG.js';
|
|
4
|
-
import './chunk-WG4YIOKM.js';
|
|
5
|
-
import './chunk-CHQDS2PI.js';
|
|
6
|
-
import './chunk-I2BC7NCA.js';
|
|
7
|
-
import './chunk-FOA6LP5C.js';
|
|
8
|
-
import './chunk-6CCHLM3U.js';
|
|
9
|
-
import './chunk-XLYSNOR3.js';
|
|
10
|
-
import './chunk-6PEHRAEP.js';
|
|
11
|
-
//# sourceMappingURL=load.command-R2HLBFAO.js.map
|
|
12
|
-
//# sourceMappingURL=load.command-R2HLBFAO.js.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export { commandFn, commandSpec } from './chunk-CZ7QQE6H.js';
|
|
2
|
-
import './chunk-4A54P4EM.js';
|
|
3
|
-
import './chunk-PBBUUBNG.js';
|
|
4
|
-
import './chunk-WG4YIOKM.js';
|
|
5
|
-
import './chunk-CHQDS2PI.js';
|
|
6
|
-
import './chunk-I2BC7NCA.js';
|
|
7
|
-
import './chunk-FOA6LP5C.js';
|
|
8
|
-
import './chunk-6CCHLM3U.js';
|
|
9
|
-
import './chunk-XLYSNOR3.js';
|
|
10
|
-
import './chunk-6PEHRAEP.js';
|
|
11
|
-
//# sourceMappingURL=printenv.command-U7ULTREK.js.map
|
|
12
|
-
//# sourceMappingURL=printenv.command-U7ULTREK.js.map
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export { commandFn, commandSpec } from './chunk-JA2AIGGX.js';
|
|
2
|
-
import './chunk-4A54P4EM.js';
|
|
3
|
-
import './chunk-PBBUUBNG.js';
|
|
4
|
-
import './chunk-WG4YIOKM.js';
|
|
5
|
-
import './chunk-CHQDS2PI.js';
|
|
6
|
-
import './chunk-I2BC7NCA.js';
|
|
7
|
-
import './chunk-FOA6LP5C.js';
|
|
8
|
-
import './chunk-6CCHLM3U.js';
|
|
9
|
-
import './chunk-IMB5QAZS.js';
|
|
10
|
-
import './chunk-XLYSNOR3.js';
|
|
11
|
-
import './chunk-6PEHRAEP.js';
|
|
12
|
-
//# sourceMappingURL=run.command-COOPCDSU.js.map
|
|
13
|
-
//# sourceMappingURL=run.command-COOPCDSU.js.map
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export { commandFn, commandSpec, getGitFiles, scanFileForValues, walkDirectory } from './chunk-YK3J3EOI.js';
|
|
2
|
-
import './chunk-GXNQVEXD.js';
|
|
3
|
-
import './chunk-VH76CEVH.js';
|
|
4
|
-
import './chunk-4A54P4EM.js';
|
|
5
|
-
import './chunk-WG4YIOKM.js';
|
|
6
|
-
import './chunk-CHQDS2PI.js';
|
|
7
|
-
import './chunk-I2BC7NCA.js';
|
|
8
|
-
import './chunk-FOA6LP5C.js';
|
|
9
|
-
import './chunk-6CCHLM3U.js';
|
|
10
|
-
import './chunk-XLYSNOR3.js';
|
|
11
|
-
import './chunk-6PEHRAEP.js';
|
|
12
|
-
//# sourceMappingURL=scan.command-OUVXZFQD.js.map
|
|
13
|
-
//# sourceMappingURL=scan.command-OUVXZFQD.js.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export { commandFn, commandSpec } from './chunk-CAJTCWYA.js';
|
|
2
|
-
import './chunk-VH76CEVH.js';
|
|
3
|
-
import './chunk-4A54P4EM.js';
|
|
4
|
-
import './chunk-CHQDS2PI.js';
|
|
5
|
-
import './chunk-I2BC7NCA.js';
|
|
6
|
-
import './chunk-FOA6LP5C.js';
|
|
7
|
-
import './chunk-6CCHLM3U.js';
|
|
8
|
-
import './chunk-XLYSNOR3.js';
|
|
9
|
-
import './chunk-6PEHRAEP.js';
|
|
10
|
-
//# sourceMappingURL=telemetry.command-LI6PESQP.js.map
|
|
11
|
-
//# sourceMappingURL=telemetry.command-LI6PESQP.js.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export { commandFn, commandSpec } from './chunk-6W4P3ESY.js';
|
|
2
|
-
import './chunk-4A54P4EM.js';
|
|
3
|
-
import './chunk-PBBUUBNG.js';
|
|
4
|
-
import './chunk-WG4YIOKM.js';
|
|
5
|
-
import './chunk-CHQDS2PI.js';
|
|
6
|
-
import './chunk-I2BC7NCA.js';
|
|
7
|
-
import './chunk-FOA6LP5C.js';
|
|
8
|
-
import './chunk-6CCHLM3U.js';
|
|
9
|
-
import './chunk-XLYSNOR3.js';
|
|
10
|
-
import './chunk-6PEHRAEP.js';
|
|
11
|
-
//# sourceMappingURL=typegen.command-INHZ55RL.js.map
|
|
12
|
-
//# sourceMappingURL=typegen.command-INHZ55RL.js.map
|