varlock 0.0.13 → 0.0.15

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.
Files changed (59) hide show
  1. package/dist/auto-load.js +4 -3
  2. package/dist/{chunk-POJECYSY.js → chunk-7JMYT62X.js} +3 -3
  3. package/dist/chunk-7JMYT62X.js.map +1 -0
  4. package/dist/{chunk-UPKIHHPE.js → chunk-C5BEZMSO.js} +2 -2
  5. package/dist/{chunk-UPKIHHPE.js.map → chunk-C5BEZMSO.js.map} +1 -1
  6. package/dist/{chunk-UA3DMAAQ.js → chunk-EPKIAPPA.js} +4 -4
  7. package/dist/{chunk-UA3DMAAQ.js.map → chunk-EPKIAPPA.js.map} +1 -1
  8. package/dist/chunk-IH74UIYN.js +18 -0
  9. package/dist/chunk-IH74UIYN.js.map +1 -0
  10. package/dist/{chunk-MV5ZAKN7.js → chunk-IWQ4BDSW.js} +23 -26
  11. package/dist/chunk-IWQ4BDSW.js.map +1 -0
  12. package/dist/chunk-LBV2UW3I.js +56 -0
  13. package/dist/chunk-LBV2UW3I.js.map +1 -0
  14. package/dist/{chunk-5EBVEGDW.js → chunk-LYSRVOTA.js} +7 -5
  15. package/dist/chunk-LYSRVOTA.js.map +1 -0
  16. package/dist/{chunk-MVYXWTAV.js → chunk-OLZUI45U.js} +4 -4
  17. package/dist/{chunk-MVYXWTAV.js.map → chunk-OLZUI45U.js.map} +1 -1
  18. package/dist/{chunk-T3I4UFB2.js → chunk-UPLR6H2O.js} +17 -16
  19. package/dist/chunk-UPLR6H2O.js.map +1 -0
  20. package/dist/{chunk-IML4QZHB.js → chunk-WMCJKFEN.js} +4 -4
  21. package/dist/{chunk-IML4QZHB.js.map → chunk-WMCJKFEN.js.map} +1 -1
  22. package/dist/{chunk-LXJMZMID.js → chunk-WTAZCEL6.js} +5 -5
  23. package/dist/{chunk-LXJMZMID.js.map → chunk-WTAZCEL6.js.map} +1 -1
  24. package/dist/{chunk-AS4LIW7A.js → chunk-XTPPJ3UK.js} +4 -4
  25. package/dist/{chunk-AS4LIW7A.js.map → chunk-XTPPJ3UK.js.map} +1 -1
  26. package/dist/cli/cli-executable.js +19 -17
  27. package/dist/cli/cli-executable.js.map +1 -1
  28. package/dist/dotenv-compat.js +4 -3
  29. package/dist/{env-B_LAqK4w.d.ts → env-DLUhFCnC.d.ts} +3 -0
  30. package/dist/index.d.ts +2 -2
  31. package/dist/index.js +4 -4
  32. package/dist/init.command-YZ23U7SF.js +8 -0
  33. package/dist/{init.command-CTO64XBL.js.map → init.command-YZ23U7SF.js.map} +1 -1
  34. package/dist/lib/exec-sync-varlock.d.ts +14 -0
  35. package/dist/lib/exec-sync-varlock.js +4 -0
  36. package/dist/lib/exec-sync-varlock.js.map +1 -0
  37. package/dist/load.command-NVMWXLOK.js +8 -0
  38. package/dist/{load.command-EWIJDF55.js.map → load.command-NVMWXLOK.js.map} +1 -1
  39. package/dist/login.command-W4DP7RUO.js +8 -0
  40. package/dist/{login.command-UZJJ4XTV.js.map → login.command-W4DP7RUO.js.map} +1 -1
  41. package/dist/run.command-CXMAPHO7.js +8 -0
  42. package/dist/{run.command-T44BAZ7X.js.map → run.command-CXMAPHO7.js.map} +1 -1
  43. package/dist/runtime/env.d.ts +1 -1
  44. package/dist/runtime/patch-console.js +1 -1
  45. package/dist/runtime/patch-server-response.js +1 -1
  46. package/dist/telemetry.command-3DVW7H2K.js +8 -0
  47. package/dist/{telemetry.command-2C3MQA4K.js.map → telemetry.command-3DVW7H2K.js.map} +1 -1
  48. package/package.json +7 -2
  49. package/dist/chunk-5EBVEGDW.js.map +0 -1
  50. package/dist/chunk-MV5ZAKN7.js.map +0 -1
  51. package/dist/chunk-POJECYSY.js.map +0 -1
  52. package/dist/chunk-T3I4UFB2.js.map +0 -1
  53. package/dist/chunk-TWKAUCTT.js +0 -14
  54. package/dist/chunk-TWKAUCTT.js.map +0 -1
  55. package/dist/init.command-CTO64XBL.js +0 -8
  56. package/dist/load.command-EWIJDF55.js +0 -8
  57. package/dist/login.command-UZJJ4XTV.js +0 -8
  58. package/dist/run.command-T44BAZ7X.js +0 -8
  59. package/dist/telemetry.command-2C3MQA4K.js +0 -8
@@ -1,6 +1,6 @@
1
1
  import { define } from './chunk-33ROL4J5.js';
2
- import { loadVarlockEnvGraph, checkForSchemaErrors, checkForConfigErrors } from './chunk-T3I4UFB2.js';
3
- import { my_dash_default, FileBasedDataSource, getItemSummary } from './chunk-MV5ZAKN7.js';
2
+ import { loadVarlockEnvGraph, checkForSchemaErrors, checkForConfigErrors } from './chunk-UPLR6H2O.js';
3
+ import { my_dash_default, FileBasedDataSource, getItemSummary } from './chunk-IWQ4BDSW.js';
4
4
  import { __name } from './chunk-XN24GZXQ.js';
5
5
  import path from 'path';
6
6
 
@@ -80,5 +80,5 @@ var commandFn = /* @__PURE__ */ __name(async (ctx) => {
80
80
  }, "commandFn");
81
81
 
82
82
  export { commandFn, commandSpec };
83
- //# sourceMappingURL=chunk-AS4LIW7A.js.map
84
- //# sourceMappingURL=chunk-AS4LIW7A.js.map
83
+ //# sourceMappingURL=chunk-XTPPJ3UK.js.map
84
+ //# sourceMappingURL=chunk-XTPPJ3UK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/commands/load.command.ts"],"names":[],"mappings":"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","file":"chunk-AS4LIW7A.js","sourcesContent":["import { define } from 'gunshi';\nimport _ from '@env-spec/utils/my-dash';\n\nimport { loadVarlockEnvGraph } from '../../lib/load-graph';\nimport { getItemSummary } from '../../lib/formatting';\nimport { checkForConfigErrors, checkForSchemaErrors } from '../helpers/error-checks';\nimport { type TypedGunshiCommandFn } from '../helpers/gunshi-type-utils';\nimport path from 'node:path';\nimport { FileBasedDataSource } from '../../../env-graph';\n\nexport const commandSpec = define({\n name: 'load',\n description: 'Load env according to schema and resolve values',\n args: {\n format: {\n type: 'enum',\n short: 'f',\n choices: ['pretty', 'json', 'env', 'json-full'],\n description: 'Format of output',\n default: 'pretty',\n },\n 'show-all': {\n type: 'boolean',\n description: 'When load is failing, show all items rather than only failing items',\n },\n env: {\n type: 'string',\n description: 'Set the environment (e.g., production, development, etc) - will be overridden by @envFlag in the schema if present',\n },\n },\n});\n\n\nexport const commandFn: TypedGunshiCommandFn<typeof commandSpec> = async (ctx) => {\n const { format, 'show-all': showAll } = ctx.values;\n\n const envGraph = await loadVarlockEnvGraph({\n currentEnvFallback: ctx.values.env,\n });\n checkForSchemaErrors(envGraph);\n\n if (!envGraph.rootDataSource) throw new Error('expected root data source to be set');\n // TODO: move into a more general post-load hook system\n const generateTypesDecoratorsPerSource = envGraph.getRootDecorators('generateTypes');\n if (generateTypesDecoratorsPerSource.length) {\n for (const [source, generateTypesDecorators] of generateTypesDecoratorsPerSource) {\n for (const generateTypesDecorator of generateTypesDecorators) {\n // TODO: much of this logic should move to the definition of the decorator itself\n const typeGenSettings = generateTypesDecorator.bareFnArgs?.simplifiedValues;\n if (!_.isPlainObject(typeGenSettings)) {\n throw new Error('@generateTypes - must be a fn call with key/value args');\n }\n if (!typeGenSettings.lang) throw new Error('@generateTypes - must set `lang` arg');\n if (typeGenSettings.lang !== 'ts') throw new Error(`@generateTypes - unsupported language: ${typeGenSettings.lang}`);\n if (!typeGenSettings.path) throw new Error('@generateTypes - must set `path` arg');\n if (!_.isString(typeGenSettings.path)) throw new Error('@generateTypes - `path` arg must be a string');\n\n const outputPath = source instanceof FileBasedDataSource\n ? path.resolve(source.fullPath, '..', typeGenSettings.path)\n : typeGenSettings.path;\n\n await envGraph.generateTypes(typeGenSettings.lang, outputPath);\n }\n }\n }\n\n await envGraph.resolveEnvValues();\n checkForConfigErrors(envGraph, { showAll });\n\n if (format === 'pretty') {\n for (const itemKey in envGraph.configSchema) {\n const item = envGraph.configSchema[itemKey];\n console.log(getItemSummary(item));\n }\n } else if (format === 'json') {\n console.log(JSON.stringify(envGraph.getResolvedEnvObject(), null, 2));\n } else if (format === 'json-full') {\n console.log(JSON.stringify(envGraph.getSerializedGraph(), null, 2));\n } else if (format === 'env') {\n const resolvedEnv = envGraph.getResolvedEnvObject();\n for (const key in resolvedEnv) {\n const value = resolvedEnv[key];\n let strValue: string;\n if (value === undefined) {\n strValue = '';\n } else if (typeof value === 'string') {\n strValue = `\"${value.replaceAll('\"', '\\\\\"').replaceAll('\\n', '\\\\n')}\"`;\n } else {\n strValue = JSON.stringify(value);\n }\n console.log(`${key}=${strValue}`);\n }\n } else {\n throw new Error(`Unknown format: ${format}`);\n }\n\n // const resolvedEnv = envGraph.getResolvedEnvObject();\n // console.log(resolvedEnv);\n};\n"]}
1
+ {"version":3,"sources":["../src/cli/commands/load.command.ts"],"names":[],"mappings":"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","file":"chunk-XTPPJ3UK.js","sourcesContent":["import { define } from 'gunshi';\nimport _ from '@env-spec/utils/my-dash';\n\nimport { loadVarlockEnvGraph } from '../../lib/load-graph';\nimport { getItemSummary } from '../../lib/formatting';\nimport { checkForConfigErrors, checkForSchemaErrors } from '../helpers/error-checks';\nimport { type TypedGunshiCommandFn } from '../helpers/gunshi-type-utils';\nimport path from 'node:path';\nimport { FileBasedDataSource } from '../../../env-graph';\n\nexport const commandSpec = define({\n name: 'load',\n description: 'Load env according to schema and resolve values',\n args: {\n format: {\n type: 'enum',\n short: 'f',\n choices: ['pretty', 'json', 'env', 'json-full'],\n description: 'Format of output',\n default: 'pretty',\n },\n 'show-all': {\n type: 'boolean',\n description: 'When load is failing, show all items rather than only failing items',\n },\n env: {\n type: 'string',\n description: 'Set the environment (e.g., production, development, etc) - will be overridden by @envFlag in the schema if present',\n },\n },\n});\n\n\nexport const commandFn: TypedGunshiCommandFn<typeof commandSpec> = async (ctx) => {\n const { format, 'show-all': showAll } = ctx.values;\n\n const envGraph = await loadVarlockEnvGraph({\n currentEnvFallback: ctx.values.env,\n });\n checkForSchemaErrors(envGraph);\n\n if (!envGraph.rootDataSource) throw new Error('expected root data source to be set');\n // TODO: move into a more general post-load hook system\n const generateTypesDecoratorsPerSource = envGraph.getRootDecorators('generateTypes');\n if (generateTypesDecoratorsPerSource.length) {\n for (const [source, generateTypesDecorators] of generateTypesDecoratorsPerSource) {\n for (const generateTypesDecorator of generateTypesDecorators) {\n // TODO: much of this logic should move to the definition of the decorator itself\n const typeGenSettings = generateTypesDecorator.bareFnArgs?.simplifiedValues;\n if (!_.isPlainObject(typeGenSettings)) {\n throw new Error('@generateTypes - must be a fn call with key/value args');\n }\n if (!typeGenSettings.lang) throw new Error('@generateTypes - must set `lang` arg');\n if (typeGenSettings.lang !== 'ts') throw new Error(`@generateTypes - unsupported language: ${typeGenSettings.lang}`);\n if (!typeGenSettings.path) throw new Error('@generateTypes - must set `path` arg');\n if (!_.isString(typeGenSettings.path)) throw new Error('@generateTypes - `path` arg must be a string');\n\n const outputPath = source instanceof FileBasedDataSource\n ? path.resolve(source.fullPath, '..', typeGenSettings.path)\n : typeGenSettings.path;\n\n await envGraph.generateTypes(typeGenSettings.lang, outputPath);\n }\n }\n }\n\n await envGraph.resolveEnvValues();\n checkForConfigErrors(envGraph, { showAll });\n\n if (format === 'pretty') {\n for (const itemKey in envGraph.configSchema) {\n const item = envGraph.configSchema[itemKey];\n console.log(getItemSummary(item));\n }\n } else if (format === 'json') {\n console.log(JSON.stringify(envGraph.getResolvedEnvObject(), null, 2));\n } else if (format === 'json-full') {\n console.log(JSON.stringify(envGraph.getSerializedGraph(), null, 2));\n } else if (format === 'env') {\n const resolvedEnv = envGraph.getResolvedEnvObject();\n for (const key in resolvedEnv) {\n const value = resolvedEnv[key];\n let strValue: string;\n if (value === undefined) {\n strValue = '';\n } else if (typeof value === 'string') {\n strValue = `\"${value.replaceAll('\"', '\\\\\"').replaceAll('\\n', '\\\\n')}\"`;\n } else {\n strValue = JSON.stringify(value);\n }\n console.log(`${key}=${strValue}`);\n }\n } else {\n throw new Error(`Unknown format: ${format}`);\n }\n\n // const resolvedEnv = envGraph.getResolvedEnvObject();\n // console.log(resolvedEnv);\n};\n"]}
@@ -1,18 +1,18 @@
1
- import { commandSpec } from '../chunk-LXJMZMID.js';
2
- import { commandSpec as commandSpec$1 } from '../chunk-AS4LIW7A.js';
3
- import { commandSpec as commandSpec$2 } from '../chunk-IML4QZHB.js';
1
+ import { CONFIG, commandSpec as commandSpec$5 } from '../chunk-EPKIAPPA.js';
2
+ import { commandSpec } from '../chunk-WTAZCEL6.js';
3
+ import { commandSpec as commandSpec$1 } from '../chunk-XTPPJ3UK.js';
4
+ import { commandSpec as commandSpec$2 } from '../chunk-WMCJKFEN.js';
4
5
  import { commandSpec as commandSpec$3 } from '../chunk-RZT65DRA.js';
5
- import { commandSpec as commandSpec$4 } from '../chunk-MVYXWTAV.js';
6
- import { CONFIG, commandSpec as commandSpec$5 } from '../chunk-UA3DMAAQ.js';
7
- import { CliExitError, fmt } from '../chunk-5EBVEGDW.js';
6
+ import { commandSpec as commandSpec$4 } from '../chunk-OLZUI45U.js';
7
+ import { CliExitError, fmt } from '../chunk-LYSRVOTA.js';
8
8
  import { cli } from '../chunk-33ROL4J5.js';
9
- import { InvalidEnvError } from '../chunk-T3I4UFB2.js';
10
- import { ansis_default, gracefulExit, EnvSourceParseError, asyncExitHook } from '../chunk-MV5ZAKN7.js';
9
+ import { InvalidEnvError } from '../chunk-UPLR6H2O.js';
10
+ import { ansis_default, gracefulExit, EnvSourceParseError, asyncExitHook } from '../chunk-IWQ4BDSW.js';
11
11
  import '../chunk-FGMXIEFA.js';
12
12
  import { __commonJS, __name, __toESM } from '../chunk-XN24GZXQ.js';
13
13
  import os2 from 'os';
14
14
  import crypto, { createHash } from 'crypto';
15
- import { join } from 'path';
15
+ import { join, dirname } from 'path';
16
16
  import fs, { readFileSync, existsSync, mkdirSync, writeFileSync } from 'fs';
17
17
  import Debug from 'debug';
18
18
  import process2 from 'process';
@@ -538,7 +538,7 @@ var is_wsl_default = process2.env.__IS_WSL_TEST__ ? isWsl : isWsl();
538
538
 
539
539
  // package.json
540
540
  var package_default = {
541
- version: "0.0.13"};
541
+ version: "0.0.15"};
542
542
 
543
543
  // src/cli/helpers/telemetry.ts
544
544
  var debug = Debug("varlock:telemetry");
@@ -608,13 +608,15 @@ function getProjectGitRemoteUrl() {
608
608
  try {
609
609
  let gitDirPath;
610
610
  let currentDir = process.cwd();
611
- while (currentDir && currentDir !== "/") {
611
+ while (currentDir) {
612
612
  const possibleGitDirPath = join(currentDir, ".git");
613
613
  if (existsSync(possibleGitDirPath)) {
614
614
  gitDirPath = possibleGitDirPath;
615
615
  break;
616
616
  }
617
- currentDir = join(currentDir, "..");
617
+ const parentDir = dirname(currentDir);
618
+ if (parentDir === currentDir) break;
619
+ currentDir = parentDir;
618
620
  }
619
621
  if (!gitDirPath) return void 0;
620
622
  const gitConfigContents = readFileSync(join(gitDirPath, "config"), "utf-8");
@@ -723,12 +725,12 @@ function buildLazyCommand(commandSpec7, loadCommandFn) {
723
725
  }
724
726
  __name(buildLazyCommand, "buildLazyCommand");
725
727
  var subCommands = /* @__PURE__ */ new Map();
726
- subCommands.set("init", buildLazyCommand(commandSpec, async () => await import('../init.command-CTO64XBL.js')));
727
- subCommands.set("load", buildLazyCommand(commandSpec$1, async () => await import('../load.command-EWIJDF55.js')));
728
- subCommands.set("run", buildLazyCommand(commandSpec$2, async () => await import('../run.command-T44BAZ7X.js')));
728
+ subCommands.set("init", buildLazyCommand(commandSpec, async () => await import('../init.command-YZ23U7SF.js')));
729
+ subCommands.set("load", buildLazyCommand(commandSpec$1, async () => await import('../load.command-NVMWXLOK.js')));
730
+ subCommands.set("run", buildLazyCommand(commandSpec$2, async () => await import('../run.command-CXMAPHO7.js')));
729
731
  subCommands.set("help", buildLazyCommand(commandSpec$3, async () => await import('../help.command-B7VWA53B.js')));
730
- subCommands.set("telemetry", buildLazyCommand(commandSpec$4, async () => await import('../telemetry.command-2C3MQA4K.js')));
731
- subCommands.set("login", buildLazyCommand(commandSpec$5, async () => await import('../login.command-UZJJ4XTV.js')));
732
+ subCommands.set("telemetry", buildLazyCommand(commandSpec$4, async () => await import('../telemetry.command-3DVW7H2K.js')));
733
+ subCommands.set("login", buildLazyCommand(commandSpec$5, async () => await import('../login.command-W4DP7RUO.js')));
732
734
  (/* @__PURE__ */ __name(async function go() {
733
735
  try {
734
736
  let args = process.argv.slice(2);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/ci-info@4.3.0/node_modules/ci-info/vendors.json","../../../../node_modules/.pnpm/ci-info@4.3.0/node_modules/ci-info/index.js","../../src/lib/ascii-art.ts","../../src/cli/helpers/telemetry.ts","../../../../node_modules/.pnpm/is-docker@3.0.0/node_modules/is-docker/index.js","../../../../node_modules/.pnpm/is-inside-container@1.0.0/node_modules/is-inside-container/index.js","../../../../node_modules/.pnpm/is-wsl@3.1.0/node_modules/is-wsl/index.js","../../package.json","../../src/cli/cli-executable.ts"],"names":["isCI","fs","process","os","ciName","commandSpec"],"mappings":"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","file":"cli-executable.js","sourcesContent":["[\n {\n \"name\": \"Agola CI\",\n \"constant\": \"AGOLA\",\n \"env\": \"AGOLA_GIT_REF\",\n \"pr\": \"AGOLA_PULL_REQUEST_ID\"\n },\n {\n \"name\": \"Appcircle\",\n \"constant\": \"APPCIRCLE\",\n \"env\": \"AC_APPCIRCLE\",\n \"pr\": {\n \"env\": \"AC_GIT_PR\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"AppVeyor\",\n \"constant\": \"APPVEYOR\",\n \"env\": \"APPVEYOR\",\n \"pr\": \"APPVEYOR_PULL_REQUEST_NUMBER\"\n },\n {\n \"name\": \"AWS CodeBuild\",\n \"constant\": \"CODEBUILD\",\n \"env\": \"CODEBUILD_BUILD_ARN\",\n \"pr\": {\n \"env\": \"CODEBUILD_WEBHOOK_EVENT\",\n \"any\": [\n \"PULL_REQUEST_CREATED\",\n \"PULL_REQUEST_UPDATED\",\n \"PULL_REQUEST_REOPENED\"\n ]\n }\n },\n {\n \"name\": \"Azure Pipelines\",\n \"constant\": \"AZURE_PIPELINES\",\n \"env\": \"TF_BUILD\",\n \"pr\": {\n \"BUILD_REASON\": \"PullRequest\"\n }\n },\n {\n \"name\": \"Bamboo\",\n \"constant\": \"BAMBOO\",\n \"env\": \"bamboo_planKey\"\n },\n {\n \"name\": \"Bitbucket Pipelines\",\n \"constant\": \"BITBUCKET\",\n \"env\": \"BITBUCKET_COMMIT\",\n \"pr\": \"BITBUCKET_PR_ID\"\n },\n {\n \"name\": \"Bitrise\",\n \"constant\": \"BITRISE\",\n \"env\": \"BITRISE_IO\",\n \"pr\": \"BITRISE_PULL_REQUEST\"\n },\n {\n \"name\": \"Buddy\",\n \"constant\": \"BUDDY\",\n \"env\": \"BUDDY_WORKSPACE_ID\",\n \"pr\": \"BUDDY_EXECUTION_PULL_REQUEST_ID\"\n },\n {\n \"name\": \"Buildkite\",\n \"constant\": \"BUILDKITE\",\n \"env\": \"BUILDKITE\",\n \"pr\": {\n \"env\": \"BUILDKITE_PULL_REQUEST\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"CircleCI\",\n \"constant\": \"CIRCLE\",\n \"env\": \"CIRCLECI\",\n \"pr\": \"CIRCLE_PULL_REQUEST\"\n },\n {\n \"name\": \"Cirrus CI\",\n \"constant\": \"CIRRUS\",\n \"env\": \"CIRRUS_CI\",\n \"pr\": \"CIRRUS_PR\"\n },\n {\n \"name\": \"Cloudflare Pages\",\n \"constant\": \"CLOUDFLARE_PAGES\",\n \"env\": \"CF_PAGES\"\n },\n {\n \"name\": \"Cloudflare Workers\",\n \"constant\": \"CLOUDFLARE_WORKERS\",\n \"env\": \"WORKERS_CI\"\n },\n {\n \"name\": \"Codefresh\",\n \"constant\": \"CODEFRESH\",\n \"env\": \"CF_BUILD_ID\",\n \"pr\": {\n \"any\": [\n \"CF_PULL_REQUEST_NUMBER\",\n \"CF_PULL_REQUEST_ID\"\n ]\n }\n },\n {\n \"name\": \"Codemagic\",\n \"constant\": \"CODEMAGIC\",\n \"env\": \"CM_BUILD_ID\",\n \"pr\": \"CM_PULL_REQUEST\"\n },\n {\n \"name\": \"Codeship\",\n \"constant\": \"CODESHIP\",\n \"env\": {\n \"CI_NAME\": \"codeship\"\n }\n },\n {\n \"name\": \"Drone\",\n \"constant\": \"DRONE\",\n \"env\": \"DRONE\",\n \"pr\": {\n \"DRONE_BUILD_EVENT\": \"pull_request\"\n }\n },\n {\n \"name\": \"dsari\",\n \"constant\": \"DSARI\",\n \"env\": \"DSARI\"\n },\n {\n \"name\": \"Earthly\",\n \"constant\": \"EARTHLY\",\n \"env\": \"EARTHLY_CI\"\n },\n {\n \"name\": \"Expo Application Services\",\n \"constant\": \"EAS\",\n \"env\": \"EAS_BUILD\"\n },\n {\n \"name\": \"Gerrit\",\n \"constant\": \"GERRIT\",\n \"env\": \"GERRIT_PROJECT\"\n },\n {\n \"name\": \"Gitea Actions\",\n \"constant\": \"GITEA_ACTIONS\",\n \"env\": \"GITEA_ACTIONS\"\n },\n {\n \"name\": \"GitHub Actions\",\n \"constant\": \"GITHUB_ACTIONS\",\n \"env\": \"GITHUB_ACTIONS\",\n \"pr\": {\n \"GITHUB_EVENT_NAME\": \"pull_request\"\n }\n },\n {\n \"name\": \"GitLab CI\",\n \"constant\": \"GITLAB\",\n \"env\": \"GITLAB_CI\",\n \"pr\": \"CI_MERGE_REQUEST_ID\"\n },\n {\n \"name\": \"GoCD\",\n \"constant\": \"GOCD\",\n \"env\": \"GO_PIPELINE_LABEL\"\n },\n {\n \"name\": \"Google Cloud Build\",\n \"constant\": \"GOOGLE_CLOUD_BUILD\",\n \"env\": \"BUILDER_OUTPUT\"\n },\n {\n \"name\": \"Harness CI\",\n \"constant\": \"HARNESS\",\n \"env\": \"HARNESS_BUILD_ID\"\n },\n {\n \"name\": \"Heroku\",\n \"constant\": \"HEROKU\",\n \"env\": {\n \"env\": \"NODE\",\n \"includes\": \"/app/.heroku/node/bin/node\"\n }\n },\n {\n \"name\": \"Hudson\",\n \"constant\": \"HUDSON\",\n \"env\": \"HUDSON_URL\"\n },\n {\n \"name\": \"Jenkins\",\n \"constant\": \"JENKINS\",\n \"env\": [\n \"JENKINS_URL\",\n \"BUILD_ID\"\n ],\n \"pr\": {\n \"any\": [\n \"ghprbPullId\",\n \"CHANGE_ID\"\n ]\n }\n },\n {\n \"name\": \"LayerCI\",\n \"constant\": \"LAYERCI\",\n \"env\": \"LAYERCI\",\n \"pr\": \"LAYERCI_PULL_REQUEST\"\n },\n {\n \"name\": \"Magnum CI\",\n \"constant\": \"MAGNUM\",\n \"env\": \"MAGNUM\"\n },\n {\n \"name\": \"Netlify CI\",\n \"constant\": \"NETLIFY\",\n \"env\": \"NETLIFY\",\n \"pr\": {\n \"env\": \"PULL_REQUEST\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"Nevercode\",\n \"constant\": \"NEVERCODE\",\n \"env\": \"NEVERCODE\",\n \"pr\": {\n \"env\": \"NEVERCODE_PULL_REQUEST\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"Prow\",\n \"constant\": \"PROW\",\n \"env\": \"PROW_JOB_ID\"\n },\n {\n \"name\": \"ReleaseHub\",\n \"constant\": \"RELEASEHUB\",\n \"env\": \"RELEASE_BUILD_ID\"\n },\n {\n \"name\": \"Render\",\n \"constant\": \"RENDER\",\n \"env\": \"RENDER\",\n \"pr\": {\n \"IS_PULL_REQUEST\": \"true\"\n }\n },\n {\n \"name\": \"Sail CI\",\n \"constant\": \"SAIL\",\n \"env\": \"SAILCI\",\n \"pr\": \"SAIL_PULL_REQUEST_NUMBER\"\n },\n {\n \"name\": \"Screwdriver\",\n \"constant\": \"SCREWDRIVER\",\n \"env\": \"SCREWDRIVER\",\n \"pr\": {\n \"env\": \"SD_PULL_REQUEST\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"Semaphore\",\n \"constant\": \"SEMAPHORE\",\n \"env\": \"SEMAPHORE\",\n \"pr\": \"PULL_REQUEST_NUMBER\"\n },\n {\n \"name\": \"Sourcehut\",\n \"constant\": \"SOURCEHUT\",\n \"env\": {\n \"CI_NAME\": \"sourcehut\"\n }\n },\n {\n \"name\": \"Strider CD\",\n \"constant\": \"STRIDER\",\n \"env\": \"STRIDER\"\n },\n {\n \"name\": \"TaskCluster\",\n \"constant\": \"TASKCLUSTER\",\n \"env\": [\n \"TASK_ID\",\n \"RUN_ID\"\n ]\n },\n {\n \"name\": \"TeamCity\",\n \"constant\": \"TEAMCITY\",\n \"env\": \"TEAMCITY_VERSION\"\n },\n {\n \"name\": \"Travis CI\",\n \"constant\": \"TRAVIS\",\n \"env\": \"TRAVIS\",\n \"pr\": {\n \"env\": \"TRAVIS_PULL_REQUEST\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"Vela\",\n \"constant\": \"VELA\",\n \"env\": \"VELA\",\n \"pr\": {\n \"VELA_PULL_REQUEST\": \"1\"\n }\n },\n {\n \"name\": \"Vercel\",\n \"constant\": \"VERCEL\",\n \"env\": {\n \"any\": [\n \"NOW_BUILDER\",\n \"VERCEL\"\n ]\n },\n \"pr\": \"VERCEL_GIT_PULL_REQUEST_ID\"\n },\n {\n \"name\": \"Visual Studio App Center\",\n \"constant\": \"APPCENTER\",\n \"env\": \"APPCENTER_BUILD_ID\"\n },\n {\n \"name\": \"Woodpecker\",\n \"constant\": \"WOODPECKER\",\n \"env\": {\n \"CI\": \"woodpecker\"\n },\n \"pr\": {\n \"CI_BUILD_EVENT\": \"pull_request\"\n }\n },\n {\n \"name\": \"Xcode Cloud\",\n \"constant\": \"XCODE_CLOUD\",\n \"env\": \"CI_XCODE_PROJECT\",\n \"pr\": \"CI_PULL_REQUEST_NUMBER\"\n },\n {\n \"name\": \"Xcode Server\",\n \"constant\": \"XCODE_SERVER\",\n \"env\": \"XCS\"\n }\n]\n","'use strict'\n\nconst vendors = require('./vendors.json')\n\nconst env = process.env\n\n// Used for testing only\nObject.defineProperty(exports, '_vendors', {\n value: vendors.map(function (v) {\n return v.constant\n })\n})\n\nexports.name = null\nexports.isPR = null\nexports.id = null\n\nvendors.forEach(function (vendor) {\n const envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env]\n const isCI = envs.every(function (obj) {\n return checkEnv(obj)\n })\n\n exports[vendor.constant] = isCI\n\n if (!isCI) {\n return\n }\n\n exports.name = vendor.name\n exports.isPR = checkPR(vendor)\n exports.id = vendor.constant\n})\n\nexports.isCI = !!(\n env.CI !== 'false' && // Bypass all checks if CI env is explicitly set to 'false'\n (env.BUILD_ID || // Jenkins, Cloudbees\n env.BUILD_NUMBER || // Jenkins, TeamCity\n env.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari, Cloudflare Pages/Workers\n env.CI_APP_ID || // Appflow\n env.CI_BUILD_ID || // Appflow\n env.CI_BUILD_NUMBER || // Appflow\n env.CI_NAME || // Codeship and others\n env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI\n env.RUN_ID || // TaskCluster, dsari\n exports.name ||\n false)\n)\n\nfunction checkEnv (obj) {\n // \"env\": \"CIRRUS\"\n if (typeof obj === 'string') return !!env[obj]\n\n // \"env\": { \"env\": \"NODE\", \"includes\": \"/app/.heroku/node/bin/node\" }\n if ('env' in obj) {\n // Currently there are no other types, uncomment when there are\n // if ('includes' in obj) {\n return env[obj.env] && env[obj.env].includes(obj.includes)\n // }\n }\n\n if ('any' in obj) {\n return obj.any.some(function (k) {\n return !!env[k]\n })\n }\n\n return Object.keys(obj).every(function (k) {\n return env[k] === obj[k]\n })\n}\n\nfunction checkPR (vendor) {\n switch (typeof vendor.pr) {\n case 'string':\n // \"pr\": \"CIRRUS_PR\"\n return !!env[vendor.pr]\n case 'object':\n if ('env' in vendor.pr) {\n if ('any' in vendor.pr) {\n // \"pr\": { \"env\": \"CODEBUILD_WEBHOOK_EVENT\", \"any\": [\"PULL_REQUEST_CREATED\", \"PULL_REQUEST_UPDATED\"] }\n return vendor.pr.any.some(function (key) {\n return env[vendor.pr.env] === key\n })\n } else {\n // \"pr\": { \"env\": \"BUILDKITE_PULL_REQUEST\", \"ne\": \"false\" }\n return vendor.pr.env in env && env[vendor.pr.env] !== vendor.pr.ne\n }\n } else if ('any' in vendor.pr) {\n // \"pr\": { \"any\": [\"ghprbPullId\", \"CHANGE_ID\"] }\n return vendor.pr.any.some(function (key) {\n return !!env[key]\n })\n } else {\n // \"pr\": { \"DRONE_BUILD_EVENT\": \"pull_request\" }\n return checkEnv(vendor.pr)\n }\n default:\n // PR detection not supported for this vendor\n return null\n }\n}\n","import ansis from 'ansis';\n\nexport const VARLOCK_BANNER2 = [\n ' ▄ ██ █▄▄▄▄ █ ████▄ ▄█▄ █ █▀ ',\n ' █ █ █ █ ▄▀ █ █ █ █▀ ▀▄ █▄█ ',\n '█ █ █▄▄█ █▀▀▌ █ █ █ █ ▀ █▀▄ ',\n ' █ █ █ █ █ █ ███▄ ▀████ █▄ ▄▀ █ █ ',\n ' █ █ █ █ ▀ ▀███▀ █ ',\n ' █▐ █ ▀ ▀ ',\n ' ▐ ▀ ',\n].join('\\n');\n\nexport const VARLOCK_BANNER = [\n '',\n ' ██▒ █▓ ▄▄▄ ██▀███ ██▓ ▒█████ ▄████▄ ██ ▄█▀',\n ' ▓██░ █▒▒████▄ ▓██ ▒ ██▒▓██▒ ▒██▒ ██▒▒██▀ ▀█ ██▄█▒ ',\n ' ▓██ █▒░▒██ ▀█▄ ▓██ ░▄█ ▒▒██░ ▒██░ ██▒▒██ ▄ ▓███▄░ ',\n ' ▒██ █░░░██▄▄▄▄██ ▒██▀▀█▄ ▒██░ ▒██ ██░▒██▄ ▄██▒▓██ █▄ ',\n ' ▒▀█░ ▓█ ▓██▒░██▓ ▒██▒░██████▒░ █████▒░▒ ████▀ ░▒██▒ █▄',\n ' ░ ▐░ ▒▒ ▓▒█░░ ▒▓ ░▒▓░░ ▒░▓ ░░ ▒░▒░▒░ ░ ░▒ ▒ ░▒ ▒▒ ▓▒',\n ' ░ ░░ ▒ ▒▒ ░ ░▒ ░ ▒░░ ░ ▒ ░ ░ ▒ ▒░ ░ ▒ ░ ░▒ ▒░',\n ' ░░ ░ ▒ ░░ ░ ░ ░ ░ ░ ░ ▒ ░ ░ ░░ ░ ',\n ' ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ',\n // ' ░ ░ ',\n].join('\\n');\n\n\nexport const FIRE = [\n ' ▚▐▟ ',\n '▗▗█▓▓█ ',\n '▟█▓░▓█▙',\n '▜█░▒░█▛',\n ' ▜▓░▓▛ ',\n ' ▀▀▀ ',\n].join('\\n');\n\n// const SOLID_BLOCK_CHARS = '▀▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▐▔▕▖▗▘▙▚▛▜▝▞▟';\n// const LIGHT_BLOCK_CHARS = '░▒▓';\n\nexport const VARLOCK_BANNER_COLOR = VARLOCK_BANNER\n .replaceAll(/([▀▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▐▔▕▖▗▘▙▚▛▜▝▞▟]+)/g, (m) => ansis.hex('#DD0000')(m))\n .replaceAll(/([▓░▒]+)/g, (m) => ansis.blue(m));\n\n\n","import os from 'node:os';\nimport crypto, { type BinaryLike, createHash } from 'node:crypto';\nimport { join } from 'node:path';\nimport {\n existsSync, readFileSync, writeFileSync,\n mkdirSync,\n} from 'node:fs';\nimport { asyncExitHook } from 'exit-hook';\nimport Debug from 'debug';\nimport { name as ciName, isCI } from 'ci-info';\nimport isDocker from 'is-docker';\nimport isWSL from 'is-wsl';\n\n\nimport packageJson from '../../../package.json';\n\nimport { CONFIG } from '../../config';\n\n\nconst debug = Debug('varlock:telemetry');\n\nconst TRUE_ENV_VAR_VALUES = ['true', '1', 't'];\n\nconst varlockConfigDirPath = join(os.homedir(), '.varlock');\nconst varlockConfigFilePath = join(varlockConfigDirPath, 'config.json');\nlet varlockConfigFileContents: Record<string, any> | undefined;\nfunction getConfigFileContents() {\n if (varlockConfigFileContents) return varlockConfigFileContents;\n try {\n const configContent = readFileSync(varlockConfigFilePath, 'utf-8');\n varlockConfigFileContents = JSON.parse(configContent);\n return varlockConfigFileContents;\n } catch (error) {\n debug('Failed to read varlock config:', error);\n return {};\n }\n}\n\n// we will identify users using a random UUID stored in the `~/.varlock/config.json` file\nlet cachedAnonymousId: string | undefined;\nfunction getAnonymousId() {\n if (cachedAnonymousId) return cachedAnonymousId;\n\n const configFileContents = getConfigFileContents();\n if (configFileContents?.anonymousId) {\n cachedAnonymousId = configFileContents.anonymousId;\n return configFileContents.anonymousId;\n }\n\n const newAnonymousId = `${isCI ? 'ci-' : ''}${crypto.randomUUID()}`;\n\n if (!existsSync(varlockConfigDirPath)) {\n mkdirSync(varlockConfigDirPath, { recursive: true });\n }\n\n writeFileSync(\n varlockConfigFilePath,\n JSON.stringify({\n ...configFileContents,\n anonymousId: newAnonymousId,\n }, null, 2),\n { flag: 'w' },\n );\n cachedAnonymousId = newAnonymousId;\n return newAnonymousId;\n}\n\n\nfunction checkIsOptedOut() {\n // Check if this is a dev build, rather than a published npm package or standalone binary\n if (__VARLOCK_BUILD_TYPE__ === 'dev') {\n debug('telemetry opted out - dev build');\n return true;\n }\n\n // Check environment variable\n if (\n process.env.PH_OPT_OUT === 'true' // legacy\n || TRUE_ENV_VAR_VALUES.includes((process.env.VARLOCK_TELEMETRY_DISABLED || '').toLowerCase())\n ) {\n debug('telemetry opted out - env var');\n return true;\n }\n\n // Check config file\n const varlockConfigFile = getConfigFileContents();\n if (varlockConfigFile?.analytics_opt_out || varlockConfigFile?.telemetryDisabled) {\n debug('telemetry opted out - config file');\n return true;\n }\n return false;\n}\n\n\n\nfunction anonymizeValue(payload: BinaryLike): string {\n // We use empty string to represent an empty value. Avoid hashing this\n // since that would create a real hash and remove its \"empty\" meaning.\n if (payload === '') {\n return payload;\n }\n // Otherwise, create a new hash from the payload and return it.\n const hash = createHash('sha256');\n hash.update(payload);\n return hash.digest('hex');\n}\n\nfunction getProjectGitRemoteUrl(): string | undefined {\n try {\n // Find the git directory by scanning upwards\n let gitDirPath: string | undefined;\n let currentDir = process.cwd();\n while (currentDir && currentDir !== '/') {\n const possibleGitDirPath = join(currentDir, '.git');\n if (existsSync(possibleGitDirPath)) {\n gitDirPath = possibleGitDirPath;\n break;\n }\n currentDir = join(currentDir, '..');\n }\n if (!gitDirPath) return undefined;\n const gitConfigContents = readFileSync(join(gitDirPath, 'config'), 'utf-8');\n // first look for upstream\n const remoteUpstreamPos = gitConfigContents.indexOf('[remote \"upstream\"]');\n if (remoteUpstreamPos !== -1) {\n const remoteUpstreamUrl = gitConfigContents.slice(remoteUpstreamPos).match(/url = (.+)/)?.[1];\n return remoteUpstreamUrl;\n }\n // otherwise fallback to origin\n const remoteOriginPos = gitConfigContents.indexOf('[remote \"origin\"]');\n if (remoteOriginPos === -1) return undefined;\n const remoteOriginUrl = gitConfigContents.slice(remoteOriginPos).match(/url = (.+)/)?.[1];\n return remoteOriginUrl;\n } catch (err) {\n return undefined;\n }\n}\nfunction getAnonymousProjectId() {\n // we want a project ID tied to the git repo, so we can group telemetry data by project\n // we could use the first commit hash, but this is more costly to compute, as we either need to rely\n // on the git cli and execSync, or we need to parse the git objects directly\n // so for now, we'll use the git remote URL (upstream if it exists, or origin)\n const gitRemoteUrl = getProjectGitRemoteUrl();\n if (!gitRemoteUrl) return null;\n return anonymizeValue(gitRemoteUrl);\n}\n\n\ntype TelemetryMeta = {\n // project info\n anonymous_project_id: string | null;\n // version information\n node_version: string;\n varlock_version: string;\n // OS information\n system_platform: string;\n system_release: string;\n system_architecture: string;\n // Machine information\n cpu_count: number,\n cpu_model: string | null,\n cpu_speed: number | null,\n memory_mb: number,\n // Environment information\n is_docker: boolean,\n is_tty: boolean,\n is_wsl: boolean,\n is_ci: boolean,\n ci_name: string | null,\n is_sea: boolean,\n};\n\nlet cachedTelemetryMetadata: TelemetryMeta | undefined;\nfunction getTelemetryMeta() {\n if (cachedTelemetryMetadata) return cachedTelemetryMetadata;\n\n const cpus = os.cpus() || [];\n\n let versionIdentifier = packageJson.version;\n // TODO: for preview builds, it would be nice to track which preview it is (PR number or commit hash)\n if (__VARLOCK_BUILD_TYPE__ !== 'release') versionIdentifier += `-${__VARLOCK_BUILD_TYPE__}`;\n\n cachedTelemetryMetadata = {\n anonymous_project_id: getAnonymousProjectId(),\n node_version: process.version.replace(/^v?/, ''),\n varlock_version: versionIdentifier,\n // TODO: pass through version info for specific integrations/plugins?\n system_platform: os.platform(),\n system_release: os.release(),\n system_architecture: os.arch(),\n cpu_count: cpus.length,\n cpu_model: cpus.length ? cpus[0].model : null,\n cpu_speed: cpus.length ? cpus[0].speed : null,\n memory_mb: Math.trunc(os.totalmem() / 1024 ** 2),\n is_docker: isDocker(),\n is_tty: process.stdout.isTTY,\n is_wsl: isWSL,\n is_ci: isCI,\n ci_name: ciName,\n is_sea: __VARLOCK_SEA_BUILD__,\n };\n return cachedTelemetryMetadata;\n}\n\n\nconst isOptedOut = checkIsOptedOut();\n\nlet lastTelemetryReq: Promise<any> | undefined;\n\nasync function posthogCapture(event: string, properties?: Record<string, any>) {\n const telemetryMeta = getTelemetryMeta();\n const payload = {\n api_key: CONFIG.POSTHOG_API_KEY,\n event,\n properties: {\n $process_person_profile: false,\n ...telemetryMeta,\n ...properties,\n },\n distinct_id: getAnonymousId(),\n };\n\n debug(`track${isOptedOut ? ' (disabled)' : ''}`, payload);\n\n if (isOptedOut) return;\n\n // add exit hook, so we can give the request a little time to finish\n const removeExitHook = asyncExitHook(async () => {\n // will still exit if the timeout is met, but will finish early if the request completes\n await lastTelemetryReq;\n }, { wait: 500 });\n\n // Make the fetch call\n lastTelemetryReq = fetch(`${CONFIG.POSTHOG_HOST}/i/v0/e/`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => {\n if (!res.ok) throw new Error(`HTTP error! status: ${res.status}`);\n return res.text();\n })\n .then((text) => debug('telemetry response:', text))\n .catch((error) => {\n debug('telemetry error:', error);\n })\n .finally(() => {\n removeExitHook();\n });\n}\n\n\n\nexport async function trackCommand(command: string, properties?: Record<string, any>) {\n await posthogCapture('cli_command_executed', {\n command,\n ...properties,\n });\n}\n\nexport async function trackInstall(source: 'brew' | 'curl') {\n await posthogCapture('cli_install', {\n source,\n });\n}\n\n","import fs from 'node:fs';\n\nlet isDockerCached;\n\nfunction hasDockerEnv() {\n\ttry {\n\t\tfs.statSync('/.dockerenv');\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nfunction hasDockerCGroup() {\n\ttry {\n\t\treturn fs.readFileSync('/proc/self/cgroup', 'utf8').includes('docker');\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport default function isDocker() {\n\t// TODO: Use `??=` when targeting Node.js 16.\n\tif (isDockerCached === undefined) {\n\t\tisDockerCached = hasDockerEnv() || hasDockerCGroup();\n\t}\n\n\treturn isDockerCached;\n}\n","import fs from 'node:fs';\nimport isDocker from 'is-docker';\n\nlet cachedResult;\n\n// Podman detection\nconst hasContainerEnv = () => {\n\ttry {\n\t\tfs.statSync('/run/.containerenv');\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport default function isInsideContainer() {\n\t// TODO: Use `??=` when targeting Node.js 16.\n\tif (cachedResult === undefined) {\n\t\tcachedResult = hasContainerEnv() || isDocker();\n\t}\n\n\treturn cachedResult;\n}\n","import process from 'node:process';\nimport os from 'node:os';\nimport fs from 'node:fs';\nimport isInsideContainer from 'is-inside-container';\n\nconst isWsl = () => {\n\tif (process.platform !== 'linux') {\n\t\treturn false;\n\t}\n\n\tif (os.release().toLowerCase().includes('microsoft')) {\n\t\tif (isInsideContainer()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\ttry {\n\t\treturn fs.readFileSync('/proc/version', 'utf8').toLowerCase().includes('microsoft')\n\t\t\t? !isInsideContainer() : false;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport default process.env.__IS_WSL_TEST__ ? isWsl : isWsl();\n","{\n \"name\": \"varlock\",\n \"version\": \"0.0.13\",\n \"description\": \"\",\n \"main\": \"index.js\",\n \"type\": \"module\",\n \"author\": \"dmno-dev\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/dmno-dev/varlock.git\",\n \"directory\": \"packages/varlock\"\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"build:sea\": \"tsup --config tsup-sea.config.ts\",\n \"dev\": \"tsup\",\n \"test\": \"vitest\",\n \"lint\": \"eslint .\",\n \"lint:fix\": \"pnpm run lint --fix\"\n },\n \"keywords\": [],\n \"files\": [\n \"/bin\",\n \"/dist\"\n ],\n \"bin\": {\n \"varlock\": \"./bin/cli.js\"\n },\n \"engines\": {\n \"node\": \">=22\"\n },\n \"exports\": {\n \".\": {\n \"ts-src\": \"./src/index.ts\",\n \"types\": \"./dist/index.d.ts\",\n \"default\": \"./dist/index.js\"\n },\n \"./env\": {\n \"ts-src\": \"./src/runtime/env.ts\",\n \"types\": \"./dist/runtime/env.d.ts\",\n \"default\": \"./dist/runtime/env.js\"\n },\n \"./auto-load\": {\n \"ts-src\": \"./src/auto-load.ts\",\n \"types\": \"./dist/auto-load.d.ts\",\n \"default\": \"./dist/auto-load.js\"\n },\n \"./patch-console\": {\n \"ts-src\": \"./src/runtime/patch-console.ts\",\n \"types\": \"./dist/runtime/patch-console.d.ts\",\n \"default\": \"./dist/runtime/patch-console.js\"\n },\n \"./patch-response\": {\n \"ts-src\": \"./src/runtime/patch-response.ts\",\n \"types\": \"./dist/runtime/patch-response.d.ts\",\n \"default\": \"./dist/runtime/patch-response.js\"\n },\n \"./patch-server-response\": {\n \"ts-src\": \"./src/runtime/patch-server-response.ts\",\n \"types\": \"./dist/runtime/patch-server-response.d.ts\",\n \"default\": \"./dist/runtime/patch-server-response.js\"\n },\n \"./config\": {\n \"ts-src\": \"./src/config.ts\",\n \"types\": \"./dist/dotenv-compat.d.ts\",\n \"default\": \"./dist/dotenv-compat.js\"\n },\n \"./config.js\": {\n \"ts-src\": \"./src/config.ts\",\n \"types\": \"./dist/dotenv-compat.d.ts\",\n \"default\": \"./dist/dotenv-compat.js\"\n }\n },\n \"dependencies\": {\n \"@env-spec/parser\": \"workspace:^\",\n \"debug\": \"catalog:\",\n \"execa\": \"^9.6.0\",\n \"which\": \"^5.0.0\"\n },\n \"devDependencies\": {\n \"@clack/core\": \"^0.5.0\",\n \"@clack/prompts\": \"^0.11.0\",\n \"@env-spec/utils\": \"workspace:*\",\n \"@sindresorhus/is\": \"catalog:\",\n \"@types/debug\": \"catalog:\",\n \"@types/node\": \"catalog:\",\n \"@types/which\": \"^3.0.4\",\n \"@yao-pkg/pkg\": \"^6.6.0\",\n \"ansis\": \"catalog:\",\n \"browser-or-node\": \"^3.0.0\",\n \"ci-info\": \"^4.3.0\",\n \"exit-hook\": \"^4.0.0\",\n \"gunshi\": \"^0.26.3\",\n \"is-docker\": \"^3.0.0\",\n \"is-unicode-supported\": \"^2.1.0\",\n \"is-wsl\": \"^3.1.0\",\n \"outdent\": \"catalog:\",\n \"tsup\": \"catalog:\",\n \"vitest\": \"catalog:\"\n }\n}\n","import { cli, type Command } from 'gunshi';\nimport { gracefulExit } from 'exit-hook';\n\nimport { VARLOCK_BANNER_COLOR } from '../lib/ascii-art';\nimport { CliExitError } from './helpers/exit-error';\nimport { EnvSourceParseError } from '../../env-graph';\nimport ansis from 'ansis';\nimport { fmt } from './helpers/pretty-format';\nimport { trackCommand, trackInstall } from './helpers/telemetry';\nimport { InvalidEnvError } from './helpers/error-checks';\nimport packageJson from '../../package.json';\n\n// we'll import just the spec from each, so the implementations can be lazy loaded\nimport { commandSpec as initCommandSpec } from './commands/init.command';\nimport { commandSpec as loadCommandSpec } from './commands/load.command';\nimport { commandSpec as runCommandSpec } from './commands/run.command';\n// import { commandSpec as encryptCommandSpec } from './commands/encrypt.command';\n// import { commandSpec as doctorCommandSpec } from './commands/doctor.command';\nimport { commandSpec as helpCommandSpec } from './commands/help.command';\nimport { commandSpec as telemetryCommandSpec } from './commands/telemetry.command';\nimport { commandSpec as loginCommandSpec } from './commands/login.command';\n\nlet versionId = packageJson.version;\nif (__VARLOCK_BUILD_TYPE__ !== 'release') versionId += `-${__VARLOCK_BUILD_TYPE__}`;\n\n// TODO: this is not splitting the bundle correctly to actually lazy load the command fns\nfunction buildLazyCommand(\n commandSpec: Command<any>,\n loadCommandFn: () => Promise<{ commandSpec: Command<any>, commandFn: any }>,\n) {\n const commandName = commandSpec.name!;\n return {\n ...commandSpec,\n run: async (...args: Array<any>) => {\n // Track command execution\n await trackCommand(commandName, { command: commandName });\n // load the command fn and run it\n const commandSpecAndFn = await loadCommandFn();\n return commandSpecAndFn.commandFn(...args);\n },\n };\n}\n\nconst subCommands = new Map();\nsubCommands.set('init', buildLazyCommand(initCommandSpec, async () => await import('./commands/init.command')));\nsubCommands.set('load', buildLazyCommand(loadCommandSpec, async () => await import('./commands/load.command')));\nsubCommands.set('run', buildLazyCommand(runCommandSpec, async () => await import('./commands/run.command')));\n// subCommands.set('encrypt', buildLazyCommand(encryptCommandSpec, async () => await import('./commands/encrypt.command')));\n// subCommands.set('doctor', buildLazyCommand(doctorCommandSpec, async () => await import('./commands/doctor.command')));\nsubCommands.set('help', buildLazyCommand(helpCommandSpec, async () => await import('./commands/help.command')));\nsubCommands.set('telemetry', buildLazyCommand(telemetryCommandSpec, async () => await import('./commands/telemetry.command')));\nsubCommands.set('login', buildLazyCommand(loginCommandSpec, async () => await import('./commands/login.command')));\n\n(async function go() {\n try {\n let args = process.argv.slice(2);\n\n // TODO: remove this once we have a better way to re-trigger help\n if (args[0] === 'help') args = ['--help'];\n\n // track standalone installs via homebrew/curl\n if (__VARLOCK_SEA_BUILD__) {\n if (args[0] === '--post-install') {\n await trackInstall(args[1] as 'brew' | 'curl');\n //! this ouput is used by homebrew formula to check installed version is correct\n console.log(versionId);\n gracefulExit();\n }\n }\n\n if (args[0] === '--version') {\n await trackCommand('version');\n }\n\n await cli(args, {\n // main command - triggered if you just run `varlock` with no args\n run: () => {\n console.log('Please run one of the sub-commands. Run `varlock --help` for more info.');\n },\n }, {\n name: 'varlock',\n description: 'Encrypt and protect your env vars',\n version: versionId,\n subCommands,\n renderHeader: async (ctx) => {\n // do not show header if we are running a sub-command\n if (ctx.name) return '';\n return VARLOCK_BANNER_COLOR;\n },\n });\n gracefulExit();\n } catch (error) {\n if (error instanceof Error && error.message.startsWith('Command not found: ')) {\n const badCommandName = error.message.split(': ')[1];\n const badCommandErr = new CliExitError(`Invalid subcommand: ${badCommandName}`, {\n suggestion: `Run \\`${fmt.command('varlock --help', { jsPackageManager: true })}\\` for more info.`,\n });\n console.error(badCommandErr.getFormattedOutput());\n gracefulExit(1);\n } else if (error instanceof CliExitError || error instanceof InvalidEnvError) {\n // in watch mode, we just log but do not actually exit\n console.error(error.getFormattedOutput());\n // TODO: we'll probably want to implement watch mode, so it wont actually exit\n } else if (error instanceof EnvSourceParseError) {\n console.error(`🚨 Error encountered while loading ${error.location.path}`);\n console.error(error.message);\n\n const errLoc = error.location as any;\n\n const errPreview = [\n errLoc.lineStr,\n `${ansis.gray('-'.repeat(errLoc.colNumber - 1))}${ansis.red('^')}`,\n ].join('\\n');\n\n console.error('Error parsing .env file');\n console.error(fmt.filePath(`${errLoc.path}:${errLoc.lineNumber}:${errLoc.colNumber}`));\n console.error(errPreview);\n\n gracefulExit(1);\n } else {\n throw error;\n }\n\n gracefulExit(1);\n }\n}());\n"]}
1
+ {"version":3,"sources":["../../../../node_modules/.pnpm/ci-info@4.3.0/node_modules/ci-info/vendors.json","../../../../node_modules/.pnpm/ci-info@4.3.0/node_modules/ci-info/index.js","../../src/lib/ascii-art.ts","../../src/cli/helpers/telemetry.ts","../../../../node_modules/.pnpm/is-docker@3.0.0/node_modules/is-docker/index.js","../../../../node_modules/.pnpm/is-inside-container@1.0.0/node_modules/is-inside-container/index.js","../../../../node_modules/.pnpm/is-wsl@3.1.0/node_modules/is-wsl/index.js","../../package.json","../../src/cli/cli-executable.ts"],"names":["isCI","fs","process","os","ciName","commandSpec"],"mappings":"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","file":"cli-executable.js","sourcesContent":["[\n {\n \"name\": \"Agola CI\",\n \"constant\": \"AGOLA\",\n \"env\": \"AGOLA_GIT_REF\",\n \"pr\": \"AGOLA_PULL_REQUEST_ID\"\n },\n {\n \"name\": \"Appcircle\",\n \"constant\": \"APPCIRCLE\",\n \"env\": \"AC_APPCIRCLE\",\n \"pr\": {\n \"env\": \"AC_GIT_PR\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"AppVeyor\",\n \"constant\": \"APPVEYOR\",\n \"env\": \"APPVEYOR\",\n \"pr\": \"APPVEYOR_PULL_REQUEST_NUMBER\"\n },\n {\n \"name\": \"AWS CodeBuild\",\n \"constant\": \"CODEBUILD\",\n \"env\": \"CODEBUILD_BUILD_ARN\",\n \"pr\": {\n \"env\": \"CODEBUILD_WEBHOOK_EVENT\",\n \"any\": [\n \"PULL_REQUEST_CREATED\",\n \"PULL_REQUEST_UPDATED\",\n \"PULL_REQUEST_REOPENED\"\n ]\n }\n },\n {\n \"name\": \"Azure Pipelines\",\n \"constant\": \"AZURE_PIPELINES\",\n \"env\": \"TF_BUILD\",\n \"pr\": {\n \"BUILD_REASON\": \"PullRequest\"\n }\n },\n {\n \"name\": \"Bamboo\",\n \"constant\": \"BAMBOO\",\n \"env\": \"bamboo_planKey\"\n },\n {\n \"name\": \"Bitbucket Pipelines\",\n \"constant\": \"BITBUCKET\",\n \"env\": \"BITBUCKET_COMMIT\",\n \"pr\": \"BITBUCKET_PR_ID\"\n },\n {\n \"name\": \"Bitrise\",\n \"constant\": \"BITRISE\",\n \"env\": \"BITRISE_IO\",\n \"pr\": \"BITRISE_PULL_REQUEST\"\n },\n {\n \"name\": \"Buddy\",\n \"constant\": \"BUDDY\",\n \"env\": \"BUDDY_WORKSPACE_ID\",\n \"pr\": \"BUDDY_EXECUTION_PULL_REQUEST_ID\"\n },\n {\n \"name\": \"Buildkite\",\n \"constant\": \"BUILDKITE\",\n \"env\": \"BUILDKITE\",\n \"pr\": {\n \"env\": \"BUILDKITE_PULL_REQUEST\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"CircleCI\",\n \"constant\": \"CIRCLE\",\n \"env\": \"CIRCLECI\",\n \"pr\": \"CIRCLE_PULL_REQUEST\"\n },\n {\n \"name\": \"Cirrus CI\",\n \"constant\": \"CIRRUS\",\n \"env\": \"CIRRUS_CI\",\n \"pr\": \"CIRRUS_PR\"\n },\n {\n \"name\": \"Cloudflare Pages\",\n \"constant\": \"CLOUDFLARE_PAGES\",\n \"env\": \"CF_PAGES\"\n },\n {\n \"name\": \"Cloudflare Workers\",\n \"constant\": \"CLOUDFLARE_WORKERS\",\n \"env\": \"WORKERS_CI\"\n },\n {\n \"name\": \"Codefresh\",\n \"constant\": \"CODEFRESH\",\n \"env\": \"CF_BUILD_ID\",\n \"pr\": {\n \"any\": [\n \"CF_PULL_REQUEST_NUMBER\",\n \"CF_PULL_REQUEST_ID\"\n ]\n }\n },\n {\n \"name\": \"Codemagic\",\n \"constant\": \"CODEMAGIC\",\n \"env\": \"CM_BUILD_ID\",\n \"pr\": \"CM_PULL_REQUEST\"\n },\n {\n \"name\": \"Codeship\",\n \"constant\": \"CODESHIP\",\n \"env\": {\n \"CI_NAME\": \"codeship\"\n }\n },\n {\n \"name\": \"Drone\",\n \"constant\": \"DRONE\",\n \"env\": \"DRONE\",\n \"pr\": {\n \"DRONE_BUILD_EVENT\": \"pull_request\"\n }\n },\n {\n \"name\": \"dsari\",\n \"constant\": \"DSARI\",\n \"env\": \"DSARI\"\n },\n {\n \"name\": \"Earthly\",\n \"constant\": \"EARTHLY\",\n \"env\": \"EARTHLY_CI\"\n },\n {\n \"name\": \"Expo Application Services\",\n \"constant\": \"EAS\",\n \"env\": \"EAS_BUILD\"\n },\n {\n \"name\": \"Gerrit\",\n \"constant\": \"GERRIT\",\n \"env\": \"GERRIT_PROJECT\"\n },\n {\n \"name\": \"Gitea Actions\",\n \"constant\": \"GITEA_ACTIONS\",\n \"env\": \"GITEA_ACTIONS\"\n },\n {\n \"name\": \"GitHub Actions\",\n \"constant\": \"GITHUB_ACTIONS\",\n \"env\": \"GITHUB_ACTIONS\",\n \"pr\": {\n \"GITHUB_EVENT_NAME\": \"pull_request\"\n }\n },\n {\n \"name\": \"GitLab CI\",\n \"constant\": \"GITLAB\",\n \"env\": \"GITLAB_CI\",\n \"pr\": \"CI_MERGE_REQUEST_ID\"\n },\n {\n \"name\": \"GoCD\",\n \"constant\": \"GOCD\",\n \"env\": \"GO_PIPELINE_LABEL\"\n },\n {\n \"name\": \"Google Cloud Build\",\n \"constant\": \"GOOGLE_CLOUD_BUILD\",\n \"env\": \"BUILDER_OUTPUT\"\n },\n {\n \"name\": \"Harness CI\",\n \"constant\": \"HARNESS\",\n \"env\": \"HARNESS_BUILD_ID\"\n },\n {\n \"name\": \"Heroku\",\n \"constant\": \"HEROKU\",\n \"env\": {\n \"env\": \"NODE\",\n \"includes\": \"/app/.heroku/node/bin/node\"\n }\n },\n {\n \"name\": \"Hudson\",\n \"constant\": \"HUDSON\",\n \"env\": \"HUDSON_URL\"\n },\n {\n \"name\": \"Jenkins\",\n \"constant\": \"JENKINS\",\n \"env\": [\n \"JENKINS_URL\",\n \"BUILD_ID\"\n ],\n \"pr\": {\n \"any\": [\n \"ghprbPullId\",\n \"CHANGE_ID\"\n ]\n }\n },\n {\n \"name\": \"LayerCI\",\n \"constant\": \"LAYERCI\",\n \"env\": \"LAYERCI\",\n \"pr\": \"LAYERCI_PULL_REQUEST\"\n },\n {\n \"name\": \"Magnum CI\",\n \"constant\": \"MAGNUM\",\n \"env\": \"MAGNUM\"\n },\n {\n \"name\": \"Netlify CI\",\n \"constant\": \"NETLIFY\",\n \"env\": \"NETLIFY\",\n \"pr\": {\n \"env\": \"PULL_REQUEST\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"Nevercode\",\n \"constant\": \"NEVERCODE\",\n \"env\": \"NEVERCODE\",\n \"pr\": {\n \"env\": \"NEVERCODE_PULL_REQUEST\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"Prow\",\n \"constant\": \"PROW\",\n \"env\": \"PROW_JOB_ID\"\n },\n {\n \"name\": \"ReleaseHub\",\n \"constant\": \"RELEASEHUB\",\n \"env\": \"RELEASE_BUILD_ID\"\n },\n {\n \"name\": \"Render\",\n \"constant\": \"RENDER\",\n \"env\": \"RENDER\",\n \"pr\": {\n \"IS_PULL_REQUEST\": \"true\"\n }\n },\n {\n \"name\": \"Sail CI\",\n \"constant\": \"SAIL\",\n \"env\": \"SAILCI\",\n \"pr\": \"SAIL_PULL_REQUEST_NUMBER\"\n },\n {\n \"name\": \"Screwdriver\",\n \"constant\": \"SCREWDRIVER\",\n \"env\": \"SCREWDRIVER\",\n \"pr\": {\n \"env\": \"SD_PULL_REQUEST\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"Semaphore\",\n \"constant\": \"SEMAPHORE\",\n \"env\": \"SEMAPHORE\",\n \"pr\": \"PULL_REQUEST_NUMBER\"\n },\n {\n \"name\": \"Sourcehut\",\n \"constant\": \"SOURCEHUT\",\n \"env\": {\n \"CI_NAME\": \"sourcehut\"\n }\n },\n {\n \"name\": \"Strider CD\",\n \"constant\": \"STRIDER\",\n \"env\": \"STRIDER\"\n },\n {\n \"name\": \"TaskCluster\",\n \"constant\": \"TASKCLUSTER\",\n \"env\": [\n \"TASK_ID\",\n \"RUN_ID\"\n ]\n },\n {\n \"name\": \"TeamCity\",\n \"constant\": \"TEAMCITY\",\n \"env\": \"TEAMCITY_VERSION\"\n },\n {\n \"name\": \"Travis CI\",\n \"constant\": \"TRAVIS\",\n \"env\": \"TRAVIS\",\n \"pr\": {\n \"env\": \"TRAVIS_PULL_REQUEST\",\n \"ne\": \"false\"\n }\n },\n {\n \"name\": \"Vela\",\n \"constant\": \"VELA\",\n \"env\": \"VELA\",\n \"pr\": {\n \"VELA_PULL_REQUEST\": \"1\"\n }\n },\n {\n \"name\": \"Vercel\",\n \"constant\": \"VERCEL\",\n \"env\": {\n \"any\": [\n \"NOW_BUILDER\",\n \"VERCEL\"\n ]\n },\n \"pr\": \"VERCEL_GIT_PULL_REQUEST_ID\"\n },\n {\n \"name\": \"Visual Studio App Center\",\n \"constant\": \"APPCENTER\",\n \"env\": \"APPCENTER_BUILD_ID\"\n },\n {\n \"name\": \"Woodpecker\",\n \"constant\": \"WOODPECKER\",\n \"env\": {\n \"CI\": \"woodpecker\"\n },\n \"pr\": {\n \"CI_BUILD_EVENT\": \"pull_request\"\n }\n },\n {\n \"name\": \"Xcode Cloud\",\n \"constant\": \"XCODE_CLOUD\",\n \"env\": \"CI_XCODE_PROJECT\",\n \"pr\": \"CI_PULL_REQUEST_NUMBER\"\n },\n {\n \"name\": \"Xcode Server\",\n \"constant\": \"XCODE_SERVER\",\n \"env\": \"XCS\"\n }\n]\n","'use strict'\n\nconst vendors = require('./vendors.json')\n\nconst env = process.env\n\n// Used for testing only\nObject.defineProperty(exports, '_vendors', {\n value: vendors.map(function (v) {\n return v.constant\n })\n})\n\nexports.name = null\nexports.isPR = null\nexports.id = null\n\nvendors.forEach(function (vendor) {\n const envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env]\n const isCI = envs.every(function (obj) {\n return checkEnv(obj)\n })\n\n exports[vendor.constant] = isCI\n\n if (!isCI) {\n return\n }\n\n exports.name = vendor.name\n exports.isPR = checkPR(vendor)\n exports.id = vendor.constant\n})\n\nexports.isCI = !!(\n env.CI !== 'false' && // Bypass all checks if CI env is explicitly set to 'false'\n (env.BUILD_ID || // Jenkins, Cloudbees\n env.BUILD_NUMBER || // Jenkins, TeamCity\n env.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari, Cloudflare Pages/Workers\n env.CI_APP_ID || // Appflow\n env.CI_BUILD_ID || // Appflow\n env.CI_BUILD_NUMBER || // Appflow\n env.CI_NAME || // Codeship and others\n env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI\n env.RUN_ID || // TaskCluster, dsari\n exports.name ||\n false)\n)\n\nfunction checkEnv (obj) {\n // \"env\": \"CIRRUS\"\n if (typeof obj === 'string') return !!env[obj]\n\n // \"env\": { \"env\": \"NODE\", \"includes\": \"/app/.heroku/node/bin/node\" }\n if ('env' in obj) {\n // Currently there are no other types, uncomment when there are\n // if ('includes' in obj) {\n return env[obj.env] && env[obj.env].includes(obj.includes)\n // }\n }\n\n if ('any' in obj) {\n return obj.any.some(function (k) {\n return !!env[k]\n })\n }\n\n return Object.keys(obj).every(function (k) {\n return env[k] === obj[k]\n })\n}\n\nfunction checkPR (vendor) {\n switch (typeof vendor.pr) {\n case 'string':\n // \"pr\": \"CIRRUS_PR\"\n return !!env[vendor.pr]\n case 'object':\n if ('env' in vendor.pr) {\n if ('any' in vendor.pr) {\n // \"pr\": { \"env\": \"CODEBUILD_WEBHOOK_EVENT\", \"any\": [\"PULL_REQUEST_CREATED\", \"PULL_REQUEST_UPDATED\"] }\n return vendor.pr.any.some(function (key) {\n return env[vendor.pr.env] === key\n })\n } else {\n // \"pr\": { \"env\": \"BUILDKITE_PULL_REQUEST\", \"ne\": \"false\" }\n return vendor.pr.env in env && env[vendor.pr.env] !== vendor.pr.ne\n }\n } else if ('any' in vendor.pr) {\n // \"pr\": { \"any\": [\"ghprbPullId\", \"CHANGE_ID\"] }\n return vendor.pr.any.some(function (key) {\n return !!env[key]\n })\n } else {\n // \"pr\": { \"DRONE_BUILD_EVENT\": \"pull_request\" }\n return checkEnv(vendor.pr)\n }\n default:\n // PR detection not supported for this vendor\n return null\n }\n}\n","import ansis from 'ansis';\n\nexport const VARLOCK_BANNER2 = [\n ' ▄ ██ █▄▄▄▄ █ ████▄ ▄█▄ █ █▀ ',\n ' █ █ █ █ ▄▀ █ █ █ █▀ ▀▄ █▄█ ',\n '█ █ █▄▄█ █▀▀▌ █ █ █ █ ▀ █▀▄ ',\n ' █ █ █ █ █ █ ███▄ ▀████ █▄ ▄▀ █ █ ',\n ' █ █ █ █ ▀ ▀███▀ █ ',\n ' █▐ █ ▀ ▀ ',\n ' ▐ ▀ ',\n].join('\\n');\n\nexport const VARLOCK_BANNER = [\n '',\n ' ██▒ █▓ ▄▄▄ ██▀███ ██▓ ▒█████ ▄████▄ ██ ▄█▀',\n ' ▓██░ █▒▒████▄ ▓██ ▒ ██▒▓██▒ ▒██▒ ██▒▒██▀ ▀█ ██▄█▒ ',\n ' ▓██ █▒░▒██ ▀█▄ ▓██ ░▄█ ▒▒██░ ▒██░ ██▒▒██ ▄ ▓███▄░ ',\n ' ▒██ █░░░██▄▄▄▄██ ▒██▀▀█▄ ▒██░ ▒██ ██░▒██▄ ▄██▒▓██ █▄ ',\n ' ▒▀█░ ▓█ ▓██▒░██▓ ▒██▒░██████▒░ █████▒░▒ ████▀ ░▒██▒ █▄',\n ' ░ ▐░ ▒▒ ▓▒█░░ ▒▓ ░▒▓░░ ▒░▓ ░░ ▒░▒░▒░ ░ ░▒ ▒ ░▒ ▒▒ ▓▒',\n ' ░ ░░ ▒ ▒▒ ░ ░▒ ░ ▒░░ ░ ▒ ░ ░ ▒ ▒░ ░ ▒ ░ ░▒ ▒░',\n ' ░░ ░ ▒ ░░ ░ ░ ░ ░ ░ ░ ▒ ░ ░ ░░ ░ ',\n ' ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ',\n // ' ░ ░ ',\n].join('\\n');\n\n\nexport const FIRE = [\n ' ▚▐▟ ',\n '▗▗█▓▓█ ',\n '▟█▓░▓█▙',\n '▜█░▒░█▛',\n ' ▜▓░▓▛ ',\n ' ▀▀▀ ',\n].join('\\n');\n\n// const SOLID_BLOCK_CHARS = '▀▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▐▔▕▖▗▘▙▚▛▜▝▞▟';\n// const LIGHT_BLOCK_CHARS = '░▒▓';\n\nexport const VARLOCK_BANNER_COLOR = VARLOCK_BANNER\n .replaceAll(/([▀▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▐▔▕▖▗▘▙▚▛▜▝▞▟]+)/g, (m) => ansis.hex('#DD0000')(m))\n .replaceAll(/([▓░▒]+)/g, (m) => ansis.blue(m));\n\n\n","import os from 'node:os';\nimport crypto, { type BinaryLike, createHash } from 'node:crypto';\nimport { dirname, join } from 'node:path';\nimport {\n existsSync, readFileSync, writeFileSync,\n mkdirSync,\n} from 'node:fs';\nimport { asyncExitHook } from 'exit-hook';\nimport Debug from 'debug';\nimport { name as ciName, isCI } from 'ci-info';\nimport isDocker from 'is-docker';\nimport isWSL from 'is-wsl';\n\n\nimport packageJson from '../../../package.json';\n\nimport { CONFIG } from '../../config';\n\n\nconst debug = Debug('varlock:telemetry');\n\nconst TRUE_ENV_VAR_VALUES = ['true', '1', 't'];\n\nconst varlockConfigDirPath = join(os.homedir(), '.varlock');\nconst varlockConfigFilePath = join(varlockConfigDirPath, 'config.json');\nlet varlockConfigFileContents: Record<string, any> | undefined;\nfunction getConfigFileContents() {\n if (varlockConfigFileContents) return varlockConfigFileContents;\n try {\n const configContent = readFileSync(varlockConfigFilePath, 'utf-8');\n varlockConfigFileContents = JSON.parse(configContent);\n return varlockConfigFileContents;\n } catch (error) {\n debug('Failed to read varlock config:', error);\n return {};\n }\n}\n\n// we will identify users using a random UUID stored in the `~/.varlock/config.json` file\nlet cachedAnonymousId: string | undefined;\nfunction getAnonymousId() {\n if (cachedAnonymousId) return cachedAnonymousId;\n\n const configFileContents = getConfigFileContents();\n if (configFileContents?.anonymousId) {\n cachedAnonymousId = configFileContents.anonymousId;\n return configFileContents.anonymousId;\n }\n\n const newAnonymousId = `${isCI ? 'ci-' : ''}${crypto.randomUUID()}`;\n\n if (!existsSync(varlockConfigDirPath)) {\n mkdirSync(varlockConfigDirPath, { recursive: true });\n }\n\n writeFileSync(\n varlockConfigFilePath,\n JSON.stringify({\n ...configFileContents,\n anonymousId: newAnonymousId,\n }, null, 2),\n { flag: 'w' },\n );\n cachedAnonymousId = newAnonymousId;\n return newAnonymousId;\n}\n\n\nfunction checkIsOptedOut() {\n // Check if this is a dev build, rather than a published npm package or standalone binary\n if (__VARLOCK_BUILD_TYPE__ === 'dev') {\n debug('telemetry opted out - dev build');\n return true;\n }\n\n // Check environment variable\n if (\n process.env.PH_OPT_OUT === 'true' // legacy\n || TRUE_ENV_VAR_VALUES.includes((process.env.VARLOCK_TELEMETRY_DISABLED || '').toLowerCase())\n ) {\n debug('telemetry opted out - env var');\n return true;\n }\n\n // Check config file\n const varlockConfigFile = getConfigFileContents();\n if (varlockConfigFile?.analytics_opt_out || varlockConfigFile?.telemetryDisabled) {\n debug('telemetry opted out - config file');\n return true;\n }\n return false;\n}\n\n\n\nfunction anonymizeValue(payload: BinaryLike): string {\n // We use empty string to represent an empty value. Avoid hashing this\n // since that would create a real hash and remove its \"empty\" meaning.\n if (payload === '') {\n return payload;\n }\n // Otherwise, create a new hash from the payload and return it.\n const hash = createHash('sha256');\n hash.update(payload);\n return hash.digest('hex');\n}\n\nfunction getProjectGitRemoteUrl(): string | undefined {\n try {\n // Find the git directory by scanning upwards\n let gitDirPath: string | undefined;\n let currentDir = process.cwd();\n while (currentDir) {\n const possibleGitDirPath = join(currentDir, '.git');\n if (existsSync(possibleGitDirPath)) {\n gitDirPath = possibleGitDirPath;\n break;\n }\n // this will stop when we reach the root\n const parentDir = dirname(currentDir);\n if (parentDir === currentDir) break;\n currentDir = parentDir;\n }\n if (!gitDirPath) return undefined;\n const gitConfigContents = readFileSync(join(gitDirPath, 'config'), 'utf-8');\n // first look for upstream\n const remoteUpstreamPos = gitConfigContents.indexOf('[remote \"upstream\"]');\n if (remoteUpstreamPos !== -1) {\n const remoteUpstreamUrl = gitConfigContents.slice(remoteUpstreamPos).match(/url = (.+)/)?.[1];\n return remoteUpstreamUrl;\n }\n // otherwise fallback to origin\n const remoteOriginPos = gitConfigContents.indexOf('[remote \"origin\"]');\n if (remoteOriginPos === -1) return undefined;\n const remoteOriginUrl = gitConfigContents.slice(remoteOriginPos).match(/url = (.+)/)?.[1];\n return remoteOriginUrl;\n } catch (err) {\n return undefined;\n }\n}\nfunction getAnonymousProjectId() {\n // we want a project ID tied to the git repo, so we can group telemetry data by project\n // we could use the first commit hash, but this is more costly to compute, as we either need to rely\n // on the git cli and execSync, or we need to parse the git objects directly\n // so for now, we'll use the git remote URL (upstream if it exists, or origin)\n const gitRemoteUrl = getProjectGitRemoteUrl();\n if (!gitRemoteUrl) return null;\n return anonymizeValue(gitRemoteUrl);\n}\n\n\ntype TelemetryMeta = {\n // project info\n anonymous_project_id: string | null;\n // version information\n node_version: string;\n varlock_version: string;\n // OS information\n system_platform: string;\n system_release: string;\n system_architecture: string;\n // Machine information\n cpu_count: number,\n cpu_model: string | null,\n cpu_speed: number | null,\n memory_mb: number,\n // Environment information\n is_docker: boolean,\n is_tty: boolean,\n is_wsl: boolean,\n is_ci: boolean,\n ci_name: string | null,\n is_sea: boolean,\n};\n\nlet cachedTelemetryMetadata: TelemetryMeta | undefined;\nfunction getTelemetryMeta() {\n if (cachedTelemetryMetadata) return cachedTelemetryMetadata;\n\n const cpus = os.cpus() || [];\n\n let versionIdentifier = packageJson.version;\n // TODO: for preview builds, it would be nice to track which preview it is (PR number or commit hash)\n if (__VARLOCK_BUILD_TYPE__ !== 'release') versionIdentifier += `-${__VARLOCK_BUILD_TYPE__}`;\n\n cachedTelemetryMetadata = {\n anonymous_project_id: getAnonymousProjectId(),\n node_version: process.version.replace(/^v?/, ''),\n varlock_version: versionIdentifier,\n // TODO: pass through version info for specific integrations/plugins?\n system_platform: os.platform(),\n system_release: os.release(),\n system_architecture: os.arch(),\n cpu_count: cpus.length,\n cpu_model: cpus.length ? cpus[0].model : null,\n cpu_speed: cpus.length ? cpus[0].speed : null,\n memory_mb: Math.trunc(os.totalmem() / 1024 ** 2),\n is_docker: isDocker(),\n is_tty: process.stdout.isTTY,\n is_wsl: isWSL,\n is_ci: isCI,\n ci_name: ciName,\n is_sea: __VARLOCK_SEA_BUILD__,\n };\n return cachedTelemetryMetadata;\n}\n\n\nconst isOptedOut = checkIsOptedOut();\n\nlet lastTelemetryReq: Promise<any> | undefined;\n\nasync function posthogCapture(event: string, properties?: Record<string, any>) {\n const telemetryMeta = getTelemetryMeta();\n const payload = {\n api_key: CONFIG.POSTHOG_API_KEY,\n event,\n properties: {\n $process_person_profile: false,\n ...telemetryMeta,\n ...properties,\n },\n distinct_id: getAnonymousId(),\n };\n\n debug(`track${isOptedOut ? ' (disabled)' : ''}`, payload);\n\n if (isOptedOut) return;\n\n // add exit hook, so we can give the request a little time to finish\n const removeExitHook = asyncExitHook(async () => {\n // will still exit if the timeout is met, but will finish early if the request completes\n await lastTelemetryReq;\n }, { wait: 500 });\n\n // Make the fetch call\n lastTelemetryReq = fetch(`${CONFIG.POSTHOG_HOST}/i/v0/e/`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => {\n if (!res.ok) throw new Error(`HTTP error! status: ${res.status}`);\n return res.text();\n })\n .then((text) => debug('telemetry response:', text))\n .catch((error) => {\n debug('telemetry error:', error);\n })\n .finally(() => {\n removeExitHook();\n });\n}\n\n\n\nexport async function trackCommand(command: string, properties?: Record<string, any>) {\n await posthogCapture('cli_command_executed', {\n command,\n ...properties,\n });\n}\n\nexport async function trackInstall(source: 'brew' | 'curl') {\n await posthogCapture('cli_install', {\n source,\n });\n}\n\n","import fs from 'node:fs';\n\nlet isDockerCached;\n\nfunction hasDockerEnv() {\n\ttry {\n\t\tfs.statSync('/.dockerenv');\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nfunction hasDockerCGroup() {\n\ttry {\n\t\treturn fs.readFileSync('/proc/self/cgroup', 'utf8').includes('docker');\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport default function isDocker() {\n\t// TODO: Use `??=` when targeting Node.js 16.\n\tif (isDockerCached === undefined) {\n\t\tisDockerCached = hasDockerEnv() || hasDockerCGroup();\n\t}\n\n\treturn isDockerCached;\n}\n","import fs from 'node:fs';\nimport isDocker from 'is-docker';\n\nlet cachedResult;\n\n// Podman detection\nconst hasContainerEnv = () => {\n\ttry {\n\t\tfs.statSync('/run/.containerenv');\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport default function isInsideContainer() {\n\t// TODO: Use `??=` when targeting Node.js 16.\n\tif (cachedResult === undefined) {\n\t\tcachedResult = hasContainerEnv() || isDocker();\n\t}\n\n\treturn cachedResult;\n}\n","import process from 'node:process';\nimport os from 'node:os';\nimport fs from 'node:fs';\nimport isInsideContainer from 'is-inside-container';\n\nconst isWsl = () => {\n\tif (process.platform !== 'linux') {\n\t\treturn false;\n\t}\n\n\tif (os.release().toLowerCase().includes('microsoft')) {\n\t\tif (isInsideContainer()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\ttry {\n\t\treturn fs.readFileSync('/proc/version', 'utf8').toLowerCase().includes('microsoft')\n\t\t\t? !isInsideContainer() : false;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport default process.env.__IS_WSL_TEST__ ? isWsl : isWsl();\n","{\n \"name\": \"varlock\",\n \"version\": \"0.0.15\",\n \"description\": \"\",\n \"main\": \"index.js\",\n \"type\": \"module\",\n \"author\": \"dmno-dev\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/dmno-dev/varlock.git\",\n \"directory\": \"packages/varlock\"\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"build:sea\": \"tsup --config tsup-sea.config.ts\",\n \"dev\": \"tsup\",\n \"test\": \"vitest\",\n \"lint\": \"eslint .\",\n \"lint:fix\": \"pnpm run lint --fix\"\n },\n \"keywords\": [],\n \"files\": [\n \"/bin\",\n \"/dist\"\n ],\n \"bin\": {\n \"varlock\": \"./bin/cli.js\"\n },\n \"engines\": {\n \"node\": \">=22\"\n },\n \"exports\": {\n \".\": {\n \"ts-src\": \"./src/index.ts\",\n \"types\": \"./dist/index.d.ts\",\n \"default\": \"./dist/index.js\"\n },\n \"./env\": {\n \"ts-src\": \"./src/runtime/env.ts\",\n \"types\": \"./dist/runtime/env.d.ts\",\n \"default\": \"./dist/runtime/env.js\"\n },\n \"./auto-load\": {\n \"ts-src\": \"./src/auto-load.ts\",\n \"types\": \"./dist/auto-load.d.ts\",\n \"default\": \"./dist/auto-load.js\"\n },\n \"./patch-console\": {\n \"ts-src\": \"./src/runtime/patch-console.ts\",\n \"types\": \"./dist/runtime/patch-console.d.ts\",\n \"default\": \"./dist/runtime/patch-console.js\"\n },\n \"./patch-response\": {\n \"ts-src\": \"./src/runtime/patch-response.ts\",\n \"types\": \"./dist/runtime/patch-response.d.ts\",\n \"default\": \"./dist/runtime/patch-response.js\"\n },\n \"./patch-server-response\": {\n \"ts-src\": \"./src/runtime/patch-server-response.ts\",\n \"types\": \"./dist/runtime/patch-server-response.d.ts\",\n \"default\": \"./dist/runtime/patch-server-response.js\"\n },\n \"./exec-sync-varlock\": {\n \"ts-src\": \"./src/lib/exec-sync-varlock.ts\",\n \"types\": \"./dist/lib/exec-sync-varlock.d.ts\",\n \"default\": \"./dist/lib/exec-sync-varlock.js\"\n },\n \"./config\": {\n \"ts-src\": \"./src/config.ts\",\n \"types\": \"./dist/dotenv-compat.d.ts\",\n \"default\": \"./dist/dotenv-compat.js\"\n },\n \"./config.js\": {\n \"ts-src\": \"./src/config.ts\",\n \"types\": \"./dist/dotenv-compat.d.ts\",\n \"default\": \"./dist/dotenv-compat.js\"\n }\n },\n \"dependencies\": {\n \"@env-spec/parser\": \"workspace:^\",\n \"debug\": \"catalog:\",\n \"execa\": \"^9.6.0\",\n \"which\": \"^5.0.0\"\n },\n \"devDependencies\": {\n \"@clack/core\": \"^0.5.0\",\n \"@clack/prompts\": \"^0.11.0\",\n \"@env-spec/utils\": \"workspace:*\",\n \"@sindresorhus/is\": \"catalog:\",\n \"@types/debug\": \"catalog:\",\n \"@types/node\": \"catalog:\",\n \"@types/which\": \"^3.0.4\",\n \"@yao-pkg/pkg\": \"^6.6.0\",\n \"ansis\": \"catalog:\",\n \"browser-or-node\": \"^3.0.0\",\n \"ci-info\": \"^4.3.0\",\n \"exit-hook\": \"^4.0.0\",\n \"gunshi\": \"^0.26.3\",\n \"is-docker\": \"^3.0.0\",\n \"is-unicode-supported\": \"^2.1.0\",\n \"is-wsl\": \"^3.1.0\",\n \"outdent\": \"catalog:\",\n \"tsup\": \"catalog:\",\n \"vitest\": \"catalog:\"\n }\n}\n","import { cli, type Command } from 'gunshi';\nimport { gracefulExit } from 'exit-hook';\n\nimport { VARLOCK_BANNER_COLOR } from '../lib/ascii-art';\nimport { CliExitError } from './helpers/exit-error';\nimport { EnvSourceParseError } from '../../env-graph';\nimport ansis from 'ansis';\nimport { fmt } from './helpers/pretty-format';\nimport { trackCommand, trackInstall } from './helpers/telemetry';\nimport { InvalidEnvError } from './helpers/error-checks';\nimport packageJson from '../../package.json';\n\n// we'll import just the spec from each, so the implementations can be lazy loaded\nimport { commandSpec as initCommandSpec } from './commands/init.command';\nimport { commandSpec as loadCommandSpec } from './commands/load.command';\nimport { commandSpec as runCommandSpec } from './commands/run.command';\n// import { commandSpec as encryptCommandSpec } from './commands/encrypt.command';\n// import { commandSpec as doctorCommandSpec } from './commands/doctor.command';\nimport { commandSpec as helpCommandSpec } from './commands/help.command';\nimport { commandSpec as telemetryCommandSpec } from './commands/telemetry.command';\nimport { commandSpec as loginCommandSpec } from './commands/login.command';\n\nlet versionId = packageJson.version;\nif (__VARLOCK_BUILD_TYPE__ !== 'release') versionId += `-${__VARLOCK_BUILD_TYPE__}`;\n\n// TODO: this is not splitting the bundle correctly to actually lazy load the command fns\nfunction buildLazyCommand(\n commandSpec: Command<any>,\n loadCommandFn: () => Promise<{ commandSpec: Command<any>, commandFn: any }>,\n) {\n const commandName = commandSpec.name!;\n return {\n ...commandSpec,\n run: async (...args: Array<any>) => {\n // Track command execution\n await trackCommand(commandName, { command: commandName });\n // load the command fn and run it\n const commandSpecAndFn = await loadCommandFn();\n return commandSpecAndFn.commandFn(...args);\n },\n };\n}\n\nconst subCommands = new Map();\nsubCommands.set('init', buildLazyCommand(initCommandSpec, async () => await import('./commands/init.command')));\nsubCommands.set('load', buildLazyCommand(loadCommandSpec, async () => await import('./commands/load.command')));\nsubCommands.set('run', buildLazyCommand(runCommandSpec, async () => await import('./commands/run.command')));\n// subCommands.set('encrypt', buildLazyCommand(encryptCommandSpec, async () => await import('./commands/encrypt.command')));\n// subCommands.set('doctor', buildLazyCommand(doctorCommandSpec, async () => await import('./commands/doctor.command')));\nsubCommands.set('help', buildLazyCommand(helpCommandSpec, async () => await import('./commands/help.command')));\nsubCommands.set('telemetry', buildLazyCommand(telemetryCommandSpec, async () => await import('./commands/telemetry.command')));\nsubCommands.set('login', buildLazyCommand(loginCommandSpec, async () => await import('./commands/login.command')));\n\n(async function go() {\n try {\n let args = process.argv.slice(2);\n\n // TODO: remove this once we have a better way to re-trigger help\n if (args[0] === 'help') args = ['--help'];\n\n // track standalone installs via homebrew/curl\n if (__VARLOCK_SEA_BUILD__) {\n if (args[0] === '--post-install') {\n await trackInstall(args[1] as 'brew' | 'curl');\n //! this ouput is used by homebrew formula to check installed version is correct\n console.log(versionId);\n gracefulExit();\n }\n }\n\n if (args[0] === '--version') {\n await trackCommand('version');\n }\n\n await cli(args, {\n // main command - triggered if you just run `varlock` with no args\n run: () => {\n console.log('Please run one of the sub-commands. Run `varlock --help` for more info.');\n },\n }, {\n name: 'varlock',\n description: 'Encrypt and protect your env vars',\n version: versionId,\n subCommands,\n renderHeader: async (ctx) => {\n // do not show header if we are running a sub-command\n if (ctx.name) return '';\n return VARLOCK_BANNER_COLOR;\n },\n });\n gracefulExit();\n } catch (error) {\n if (error instanceof Error && error.message.startsWith('Command not found: ')) {\n const badCommandName = error.message.split(': ')[1];\n const badCommandErr = new CliExitError(`Invalid subcommand: ${badCommandName}`, {\n suggestion: `Run \\`${fmt.command('varlock --help', { jsPackageManager: true })}\\` for more info.`,\n });\n console.error(badCommandErr.getFormattedOutput());\n gracefulExit(1);\n } else if (error instanceof CliExitError || error instanceof InvalidEnvError) {\n // in watch mode, we just log but do not actually exit\n console.error(error.getFormattedOutput());\n // TODO: we'll probably want to implement watch mode, so it wont actually exit\n } else if (error instanceof EnvSourceParseError) {\n console.error(`🚨 Error encountered while loading ${error.location.path}`);\n console.error(error.message);\n\n const errLoc = error.location as any;\n\n const errPreview = [\n errLoc.lineStr,\n `${ansis.gray('-'.repeat(errLoc.colNumber - 1))}${ansis.red('^')}`,\n ].join('\\n');\n\n console.error('Error parsing .env file');\n console.error(fmt.filePath(`${errLoc.path}:${errLoc.lineNumber}:${errLoc.colNumber}`));\n console.error(errPreview);\n\n gracefulExit(1);\n } else {\n throw error;\n }\n\n gracefulExit(1);\n }\n}());\n"]}
@@ -1,7 +1,8 @@
1
- import './chunk-TWKAUCTT.js';
2
- import './chunk-UPKIHHPE.js';
1
+ import './chunk-IH74UIYN.js';
2
+ import './chunk-7JMYT62X.js';
3
+ import './chunk-LBV2UW3I.js';
4
+ import './chunk-C5BEZMSO.js';
3
5
  import './chunk-OM3JCP4E.js';
4
- import './chunk-POJECYSY.js';
5
6
  import './chunk-2SPIWTVE.js';
6
7
  import './chunk-FGMXIEFA.js';
7
8
  import './chunk-XN24GZXQ.js';
@@ -192,6 +192,7 @@ declare abstract class EnvGraphDataSource {
192
192
  importKeys?: Array<string>;
193
193
  };
194
194
  get isImport(): boolean;
195
+ get isPartialImport(): boolean;
195
196
  get importKeys(): Array<string> | undefined;
196
197
  /** adds a child data source and sets up the correct references in both directions */
197
198
  addChild(child: EnvGraphDataSource, importMeta?: EnvGraphDataSource['importMeta']): Promise<void>;
@@ -199,6 +200,8 @@ declare abstract class EnvGraphDataSource {
199
200
  _envFlagKey?: string;
200
201
  /** environment flag key getter that will follow up the parent chain */
201
202
  get envFlagKey(): string | undefined;
203
+ /** helper to set the current envFlag key, also propogating upwards */
204
+ setEnvFlag(key: string): void;
202
205
  /** environment flag config item getter (follows up the parent chain) */
203
206
  get envFlagConfigItem(): ConfigItem | undefined;
204
207
  /** environment flag value getter (follows up the parent chain), and checks the graph-level fallback */
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { E as EnvGraph, D as DotEnvFileDataSource, C as ConfigLoadError, S as SchemaError, V as ValidationError, a as CoercionError, R as ResolutionError, i as initVarlockEnv } from './env-B_LAqK4w.js';
2
- export { c as ENV, b as SerializedEnvGraph } from './env-B_LAqK4w.js';
1
+ import { E as EnvGraph, D as DotEnvFileDataSource, C as ConfigLoadError, S as SchemaError, V as ValidationError, a as CoercionError, R as ResolutionError, i as initVarlockEnv } from './env-DLUhFCnC.js';
2
+ export { c as ENV, b as SerializedEnvGraph } from './env-DLUhFCnC.js';
3
3
  export { patchGlobalConsole } from './runtime/patch-console.js';
4
4
  export { patchGlobalServerResponse } from './runtime/patch-server-response.js';
5
5
  export { patchGlobalResponse } from './runtime/patch-response.js';
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- import { loadVarlockEnvGraph, checkForConfigErrors } from './chunk-T3I4UFB2.js';
2
- import { ResolutionError, CoercionError, ValidationError, SchemaError, ConfigLoadError, loadEnvGraph, DotEnvFileDataSource, EnvGraph } from './chunk-MV5ZAKN7.js';
3
- export { patchGlobalConsole } from './chunk-UPKIHHPE.js';
1
+ export { patchGlobalServerResponse } from './chunk-7JMYT62X.js';
2
+ import { loadVarlockEnvGraph, checkForConfigErrors } from './chunk-UPLR6H2O.js';
3
+ import { ResolutionError, CoercionError, ValidationError, SchemaError, ConfigLoadError, loadEnvGraph, DotEnvFileDataSource, EnvGraph } from './chunk-IWQ4BDSW.js';
4
+ export { patchGlobalConsole } from './chunk-C5BEZMSO.js';
4
5
  export { patchGlobalResponse } from './chunk-OM3JCP4E.js';
5
- export { patchGlobalServerResponse } from './chunk-POJECYSY.js';
6
6
  import { initVarlockEnv } from './chunk-2SPIWTVE.js';
7
7
  export { ENV } from './chunk-2SPIWTVE.js';
8
8
  import './chunk-FGMXIEFA.js';
@@ -0,0 +1,8 @@
1
+ export { commandFn, commandSpec } from './chunk-WTAZCEL6.js';
2
+ import './chunk-LYSRVOTA.js';
3
+ import './chunk-33ROL4J5.js';
4
+ import './chunk-IWQ4BDSW.js';
5
+ import './chunk-FGMXIEFA.js';
6
+ import './chunk-XN24GZXQ.js';
7
+ //# sourceMappingURL=init.command-YZ23U7SF.js.map
8
+ //# sourceMappingURL=init.command-YZ23U7SF.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"init.command-CTO64XBL.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"init.command-YZ23U7SF.js"}
@@ -0,0 +1,14 @@
1
+ import { execSync } from 'child_process';
2
+
3
+ /**
4
+ * small helper to call execSync and call the varlock cli
5
+ *
6
+ * when end user runs via a package manager, it will inject node_modules/.bin into PATH
7
+ * but otherwise we may need to try to find that path ourselves
8
+ */
9
+ declare function execSyncVarlock(command: string, opts?: (Parameters<typeof execSync>[1] & {
10
+ exitOnError?: boolean;
11
+ showLogsOnError?: boolean;
12
+ })): string;
13
+
14
+ export { execSyncVarlock };
@@ -0,0 +1,4 @@
1
+ export { execSyncVarlock } from '../chunk-LBV2UW3I.js';
2
+ import '../chunk-XN24GZXQ.js';
3
+ //# sourceMappingURL=exec-sync-varlock.js.map
4
+ //# sourceMappingURL=exec-sync-varlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"exec-sync-varlock.js"}
@@ -0,0 +1,8 @@
1
+ export { commandFn, commandSpec } from './chunk-XTPPJ3UK.js';
2
+ import './chunk-33ROL4J5.js';
3
+ import './chunk-UPLR6H2O.js';
4
+ import './chunk-IWQ4BDSW.js';
5
+ import './chunk-FGMXIEFA.js';
6
+ import './chunk-XN24GZXQ.js';
7
+ //# sourceMappingURL=load.command-NVMWXLOK.js.map
8
+ //# sourceMappingURL=load.command-NVMWXLOK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"load.command-EWIJDF55.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"load.command-NVMWXLOK.js"}
@@ -0,0 +1,8 @@
1
+ export { commandFn, commandSpec } from './chunk-EPKIAPPA.js';
2
+ import './chunk-LYSRVOTA.js';
3
+ import './chunk-33ROL4J5.js';
4
+ import './chunk-IWQ4BDSW.js';
5
+ import './chunk-FGMXIEFA.js';
6
+ import './chunk-XN24GZXQ.js';
7
+ //# sourceMappingURL=login.command-W4DP7RUO.js.map
8
+ //# sourceMappingURL=login.command-W4DP7RUO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"login.command-UZJJ4XTV.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"login.command-W4DP7RUO.js"}
@@ -0,0 +1,8 @@
1
+ export { commandFn, commandSpec } from './chunk-WMCJKFEN.js';
2
+ import './chunk-33ROL4J5.js';
3
+ import './chunk-UPLR6H2O.js';
4
+ import './chunk-IWQ4BDSW.js';
5
+ import './chunk-FGMXIEFA.js';
6
+ import './chunk-XN24GZXQ.js';
7
+ //# sourceMappingURL=run.command-CXMAPHO7.js.map
8
+ //# sourceMappingURL=run.command-CXMAPHO7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"run.command-T44BAZ7X.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"run.command-CXMAPHO7.js"}
@@ -1,3 +1,3 @@
1
- export { c as ENV, T as TypedEnvSchema, i as initVarlockEnv, d as redactSensitiveConfig, r as resetRedactionMap, e as revealSensitiveConfig, s as scanForLeaks, v as varlockSettings } from '../env-B_LAqK4w.js';
1
+ export { c as ENV, T as TypedEnvSchema, i as initVarlockEnv, d as redactSensitiveConfig, r as resetRedactionMap, e as revealSensitiveConfig, s as scanForLeaks, v as varlockSettings } from '../env-DLUhFCnC.js';
2
2
  import '@env-spec/parser';
3
3
  import '@env-spec/utils/type-utils';
@@ -1,4 +1,4 @@
1
- export { patchGlobalConsole, unpatchGlobalConsole } from '../chunk-UPKIHHPE.js';
1
+ export { patchGlobalConsole, unpatchGlobalConsole } from '../chunk-C5BEZMSO.js';
2
2
  import '../chunk-2SPIWTVE.js';
3
3
  import '../chunk-FGMXIEFA.js';
4
4
  import '../chunk-XN24GZXQ.js';
@@ -1,4 +1,4 @@
1
- export { patchGlobalServerResponse } from '../chunk-POJECYSY.js';
1
+ export { patchGlobalServerResponse } from '../chunk-7JMYT62X.js';
2
2
  import '../chunk-2SPIWTVE.js';
3
3
  import '../chunk-FGMXIEFA.js';
4
4
  import '../chunk-XN24GZXQ.js';
@@ -0,0 +1,8 @@
1
+ export { commandFn, commandSpec } from './chunk-OLZUI45U.js';
2
+ import './chunk-LYSRVOTA.js';
3
+ import './chunk-33ROL4J5.js';
4
+ import './chunk-IWQ4BDSW.js';
5
+ import './chunk-FGMXIEFA.js';
6
+ import './chunk-XN24GZXQ.js';
7
+ //# sourceMappingURL=telemetry.command-3DVW7H2K.js.map
8
+ //# sourceMappingURL=telemetry.command-3DVW7H2K.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"telemetry.command-2C3MQA4K.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"telemetry.command-3DVW7H2K.js"}