varlock 0.0.1 → 0.0.3

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 (70) hide show
  1. package/LICENSE +21 -0
  2. package/dist/auto-load.js +7 -8
  3. package/dist/auto-load.js.map +1 -1
  4. package/dist/{chunk-35HGPX6I.js → chunk-2CM6PMED.js} +7 -6
  5. package/dist/chunk-2CM6PMED.js.map +1 -0
  6. package/dist/chunk-3EBGAOLH.js +14 -0
  7. package/dist/chunk-3EBGAOLH.js.map +1 -0
  8. package/dist/chunk-3KZR56NU.js +45 -0
  9. package/dist/chunk-3KZR56NU.js.map +1 -0
  10. package/dist/{chunk-EMPXU5TW.js → chunk-5HDQH7UC.js} +5 -5
  11. package/dist/{chunk-EMPXU5TW.js.map → chunk-5HDQH7UC.js.map} +1 -1
  12. package/dist/chunk-7QXRUUDC.js +137 -0
  13. package/dist/chunk-7QXRUUDC.js.map +1 -0
  14. package/dist/chunk-FGMXIEFA.js +20 -0
  15. package/dist/chunk-FGMXIEFA.js.map +1 -0
  16. package/dist/{chunk-BRP5MZU6.js → chunk-NAZPFZOO.js} +15 -8
  17. package/dist/chunk-NAZPFZOO.js.map +1 -0
  18. package/dist/{chunk-NZDUC7Q3.js → chunk-OSSLRXKM.js} +4 -4
  19. package/dist/{chunk-NZDUC7Q3.js.map → chunk-OSSLRXKM.js.map} +1 -1
  20. package/dist/chunk-OXV76U3Y.js +39 -0
  21. package/dist/chunk-OXV76U3Y.js.map +1 -0
  22. package/dist/chunk-Q5P7F3WA.js +107 -0
  23. package/dist/chunk-Q5P7F3WA.js.map +1 -0
  24. package/dist/chunk-RF3YMFUX.js +93 -0
  25. package/dist/chunk-RF3YMFUX.js.map +1 -0
  26. package/dist/{chunk-R53MTEAM.js → chunk-RPLDMNWT.js} +3 -3
  27. package/dist/{chunk-R53MTEAM.js.map → chunk-RPLDMNWT.js.map} +1 -1
  28. package/dist/{chunk-HZADDTO5.js → chunk-TYL3Q4QG.js} +233 -76
  29. package/dist/chunk-TYL3Q4QG.js.map +1 -0
  30. package/dist/chunk-XHOJF7U7.js +12 -0
  31. package/dist/chunk-XHOJF7U7.js.map +1 -0
  32. package/dist/cli/cli-executable.js +72 -27
  33. package/dist/cli/cli-executable.js.map +1 -1
  34. package/dist/doctor.command-L3P5LBOW.js +6 -0
  35. package/dist/{doctor.command-N5JAIXRM.js.map → doctor.command-L3P5LBOW.js.map} +1 -1
  36. package/dist/dotenv-compat.js +7 -8
  37. package/dist/dotenv-compat.js.map +1 -1
  38. package/dist/index.d.ts +10 -34
  39. package/dist/index.js +36 -5
  40. package/dist/index.js.map +1 -1
  41. package/dist/init.command-Q4YBHAEG.js +11 -0
  42. package/dist/{init.command-7BSALNL5.js.map → init.command-Q4YBHAEG.js.map} +1 -1
  43. package/dist/load.command-K22PEH3D.js +10 -0
  44. package/dist/{load.command-4MJR5J43.js.map → load.command-K22PEH3D.js.map} +1 -1
  45. package/dist/run.command-DUAYGL6F.js +10 -0
  46. package/dist/{run.command-ASKXIWBC.js.map → run.command-DUAYGL6F.js.map} +1 -1
  47. package/dist/runtime/env.d.ts +27 -0
  48. package/dist/runtime/env.js +5 -0
  49. package/dist/runtime/env.js.map +1 -0
  50. package/dist/runtime/patch-console.d.ts +14 -0
  51. package/dist/runtime/patch-console.js +7 -0
  52. package/dist/runtime/patch-console.js.map +1 -0
  53. package/dist/runtime/patch-response.d.ts +3 -0
  54. package/dist/runtime/patch-response.js +7 -0
  55. package/dist/runtime/patch-response.js.map +1 -0
  56. package/dist/runtime/patch-server-response.d.ts +6 -0
  57. package/dist/runtime/patch-server-response.js +7 -0
  58. package/dist/runtime/patch-server-response.js.map +1 -0
  59. package/package.json +53 -8
  60. package/dist/chunk-35HGPX6I.js.map +0 -1
  61. package/dist/chunk-BRP5MZU6.js.map +0 -1
  62. package/dist/chunk-BS3AGAHF.js +0 -53
  63. package/dist/chunk-BS3AGAHF.js.map +0 -1
  64. package/dist/chunk-HZADDTO5.js.map +0 -1
  65. package/dist/chunk-QTYVZQSF.js +0 -225
  66. package/dist/chunk-QTYVZQSF.js.map +0 -1
  67. package/dist/doctor.command-N5JAIXRM.js +0 -6
  68. package/dist/init.command-7BSALNL5.js +0 -10
  69. package/dist/load.command-4MJR5J43.js +0 -9
  70. package/dist/run.command-ASKXIWBC.js +0 -9
@@ -1,23 +1,23 @@
1
- import { commandSpec as commandSpec$2 } from '../chunk-35HGPX6I.js';
2
- import { commandSpec as commandSpec$3 } from '../chunk-B4UBSMSZ.js';
3
- import { commandSpec as commandSpec$4 } from '../chunk-R53MTEAM.js';
4
- import { commandSpec as commandSpec$5 } from '../chunk-RCHPHIHX.js';
5
1
  import { commandSpec as commandSpec$6 } from '../chunk-QCC3P7BT.js';
6
2
  import { CONFIG, commandSpec as commandSpec$7 } from '../chunk-CPA2D42B.js';
7
- import { CliExitError, commandSpec } from '../chunk-EMPXU5TW.js';
8
- import '../chunk-DAZNZPLN.js';
3
+ import { CliExitError, commandSpec } from '../chunk-5HDQH7UC.js';
9
4
  import { fmt } from '../chunk-LQZ6ICSS.js';
10
- import { commandSpec as commandSpec$1 } from '../chunk-BRP5MZU6.js';
11
- import { InvalidEnvError } from '../chunk-NZDUC7Q3.js';
5
+ import { commandSpec as commandSpec$1 } from '../chunk-NAZPFZOO.js';
6
+ import { commandSpec as commandSpec$2 } from '../chunk-2CM6PMED.js';
7
+ import { commandSpec as commandSpec$3 } from '../chunk-B4UBSMSZ.js';
8
+ import '../chunk-DAZNZPLN.js';
9
+ import { commandSpec as commandSpec$4 } from '../chunk-RPLDMNWT.js';
10
+ import { commandSpec as commandSpec$5 } from '../chunk-RCHPHIHX.js';
12
11
  import { cli } from '../chunk-33ROL4J5.js';
13
- import '../chunk-QTYVZQSF.js';
14
- import { EnvSourceParseError } from '../chunk-HZADDTO5.js';
12
+ import { InvalidEnvError } from '../chunk-OSSLRXKM.js';
13
+ import '../chunk-Q5P7F3WA.js';
15
14
  import { ansis_default } from '../chunk-7UQXFWKN.js';
15
+ import { EnvSourceParseError } from '../chunk-TYL3Q4QG.js';
16
+ import '../chunk-FGMXIEFA.js';
16
17
  import { __name } from '../chunk-XN24GZXQ.js';
17
18
  import { homedir } from 'os';
18
19
  import { join } from 'path';
19
- import { readFile } from 'fs/promises';
20
- import { existsSync } from 'fs';
20
+ import { existsSync, readFileSync } from 'node:fs';
21
21
 
22
22
  var VARLOCK_BANNER = [
23
23
  "",
@@ -33,14 +33,14 @@ var VARLOCK_BANNER = [
33
33
  // ' ░ ░ ',
34
34
  ].join("\n");
35
35
  var VARLOCK_BANNER_COLOR = VARLOCK_BANNER.replaceAll(/([▀▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▐▔▕▖▗▘▙▚▛▜▝▞▟]+)/g, (m) => ansis_default.hex("#DD0000")(m)).replaceAll(/([▓░▒]+)/g, (m) => ansis_default.blue(m));
36
- async function checkIsOptedOut() {
36
+ function checkIsOptedOut() {
37
37
  if (process.env.PH_OPT_OUT === "true") {
38
38
  return true;
39
39
  }
40
40
  const configPath = join(homedir(), ".varlock", "config.json");
41
41
  if (existsSync(configPath)) {
42
42
  try {
43
- const configContent = await readFile(configPath, "utf-8");
43
+ const configContent = readFileSync(configPath, "utf-8");
44
44
  const config = JSON.parse(configContent);
45
45
  return config.analytics_opt_out === true;
46
46
  } catch (error) {
@@ -51,7 +51,7 @@ async function checkIsOptedOut() {
51
51
  }
52
52
  __name(checkIsOptedOut, "checkIsOptedOut");
53
53
  var DEBUG_PH = !!process.env.DEBUG_PH;
54
- var isOptedOut = await checkIsOptedOut();
54
+ var isOptedOut = checkIsOptedOut();
55
55
  if (DEBUG_PH) console.log("posthog opted out: ", isOptedOut);
56
56
  async function posthogCapture(event, properties) {
57
57
  if (isOptedOut) return;
@@ -85,12 +85,17 @@ __name(trackCommand, "trackCommand");
85
85
  // package.json
86
86
  var package_default = {
87
87
  name: "varlock",
88
- version: "0.0.1",
88
+ version: "0.0.3",
89
89
  description: "",
90
90
  main: "index.js",
91
91
  type: "module",
92
92
  author: "dmno-dev",
93
93
  license: "MIT",
94
+ repository: {
95
+ type: "git",
96
+ url: "https://github.com/dmno-dev/varlock.git",
97
+ directory: "packages/varlock"
98
+ },
94
99
  scripts: {
95
100
  build: "tsup",
96
101
  "build:sea": "tsup --config tsup-sea.config.ts",
@@ -107,16 +112,55 @@ var package_default = {
107
112
  bin: {
108
113
  varlock: "./bin/cli.js"
109
114
  },
115
+ engines: {
116
+ node: ">=22"
117
+ },
110
118
  exports: {
111
- ".": "./dist/index.js",
112
- "./auto-load": "./dist/auto-load.js",
113
- "./config": "./dist/dotenv-compat.js",
114
- "./config.js": "./dist/dotenv-compat.js"
119
+ ".": {
120
+ "ts-src": "./src/index.ts",
121
+ types: "./dist/index.d.ts",
122
+ default: "./dist/index.js"
123
+ },
124
+ "./env": {
125
+ "ts-src": "./src/runtime/env.ts",
126
+ types: "./dist/runtime/env.d.ts",
127
+ default: "./dist/runtime/env.js"
128
+ },
129
+ "./auto-load": {
130
+ "ts-src": "./src/auto-load.ts",
131
+ types: "./dist/auto-load.d.ts",
132
+ default: "./dist/auto-load.js"
133
+ },
134
+ "./patch-console": {
135
+ "ts-src": "./src/runtime/patch-console.ts",
136
+ types: "./dist/runtime/patch-console.d.ts",
137
+ default: "./dist/runtime/patch-console.js"
138
+ },
139
+ "./patch-response": {
140
+ "ts-src": "./src/runtime/patch-response.ts",
141
+ types: "./dist/runtime/patch-response.d.ts",
142
+ default: "./dist/runtime/patch-response.js"
143
+ },
144
+ "./patch-server-response": {
145
+ "ts-src": "./src/runtime/patch-server-response.ts",
146
+ types: "./dist/runtime/patch-server-response.d.ts",
147
+ default: "./dist/runtime/patch-server-response.js"
148
+ },
149
+ "./config": {
150
+ "ts-src": "./src/config.ts",
151
+ types: "./dist/dotenv-compat.d.ts",
152
+ default: "./dist/dotenv-compat.js"
153
+ },
154
+ "./config.js": {
155
+ "ts-src": "./src/config.ts",
156
+ types: "./dist/dotenv-compat.d.ts",
157
+ default: "./dist/dotenv-compat.js"
158
+ }
115
159
  },
116
160
  dependencies: {
117
161
  "@env-spec/parser": "workspace:*",
118
162
  debug: "catalog:",
119
- execa: "^9.5.2",
163
+ execa: "^9.6.0",
120
164
  which: "^5.0.0"
121
165
  },
122
166
  devDependencies: {
@@ -128,11 +172,12 @@ var package_default = {
128
172
  "@types/debug": "catalog:",
129
173
  "@types/node": "catalog:",
130
174
  "@types/which": "^3.0.4",
131
- "@yao-pkg/pkg": "^6.4.1",
175
+ "@yao-pkg/pkg": "^6.5.1",
132
176
  ansis: "catalog:",
177
+ "browser-or-node": "^3.0.0",
133
178
  gunshi: "^0.26.3",
134
179
  "is-unicode-supported": "^2.1.0",
135
- outdent: "^0.8.0",
180
+ outdent: "catalog:",
136
181
  tsup: "catalog:",
137
182
  vitest: "catalog:"
138
183
  }
@@ -157,11 +202,11 @@ function buildLazyCommand(commandSpec9, loadCommandFn) {
157
202
  }
158
203
  __name(buildLazyCommand, "buildLazyCommand");
159
204
  var subCommands = /* @__PURE__ */ new Map();
160
- subCommands.set("init", buildLazyCommand(commandSpec, async () => await import('../init.command-7BSALNL5.js')));
161
- subCommands.set("load", buildLazyCommand(commandSpec$1, async () => await import('../load.command-4MJR5J43.js')));
162
- subCommands.set("run", buildLazyCommand(commandSpec$2, async () => await import('../run.command-ASKXIWBC.js')));
205
+ subCommands.set("init", buildLazyCommand(commandSpec, async () => await import('../init.command-Q4YBHAEG.js')));
206
+ subCommands.set("load", buildLazyCommand(commandSpec$1, async () => await import('../load.command-K22PEH3D.js')));
207
+ subCommands.set("run", buildLazyCommand(commandSpec$2, async () => await import('../run.command-DUAYGL6F.js')));
163
208
  subCommands.set("encrypt", buildLazyCommand(commandSpec$3, async () => await import('../encrypt.command-VGJABHNK.js')));
164
- subCommands.set("doctor", buildLazyCommand(commandSpec$4, async () => await import('../doctor.command-N5JAIXRM.js')));
209
+ subCommands.set("doctor", buildLazyCommand(commandSpec$4, async () => await import('../doctor.command-L3P5LBOW.js')));
165
210
  subCommands.set("help", buildLazyCommand(commandSpec$5, async () => await import('../help.command-YZDL2VEQ.js')));
166
211
  subCommands.set("opt-out", buildLazyCommand(commandSpec$6, async () => await import('../opt-out.command-Y4KUQ6PQ.js')));
167
212
  subCommands.set("login", buildLazyCommand(commandSpec$7, async () => await import('../login.command-22RUZJLR.js')));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/ascii-art.ts","../../src/cli/helpers/analytics.ts","../../package.json","../../src/cli/cli-executable.ts"],"names":["commandSpec"],"mappings":"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","file":"cli-executable.js","sourcesContent":["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 { homedir } from 'os';\nimport { join } from 'path';\nimport { readFile } from 'fs/promises';\nimport { existsSync } from 'fs';\n\nimport { CONFIG } from '../../config';\n\nasync function checkIsOptedOut(): Promise<boolean> {\n // Check environment variable first\n if (process.env.PH_OPT_OUT === 'true') {\n return true;\n }\n\n // Then check config file\n const configPath = join(homedir(), '.varlock', 'config.json');\n if (existsSync(configPath)) {\n try {\n const configContent = await readFile(configPath, 'utf-8');\n const config = JSON.parse(configContent);\n return config.analytics_opt_out === true;\n } catch (error) {\n console.debug('Failed to read analytics config:', error);\n }\n }\n return false;\n}\n\nconst DEBUG_PH = !!process.env.DEBUG_PH;\n\nconst isOptedOut = await checkIsOptedOut();\nif (DEBUG_PH) console.log('posthog opted out: ', isOptedOut);\n\nasync function posthogCapture(event: string, properties?: Record<string, any>) {\n if (isOptedOut) return;\n\n const payload = {\n api_key: CONFIG.POSTHOG_API_KEY,\n event,\n properties: {\n $process_person_profile: false,\n ...properties,\n },\n distinct_id: 'anonymous',\n };\n\n const res = await 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 if (DEBUG_PH) console.log('res', await res.text());\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","{\n \"name\": \"varlock\",\n \"version\": \"0.0.1\",\n \"description\": \"\",\n \"main\": \"index.js\",\n \"type\": \"module\",\n \"author\": \"dmno-dev\",\n \"license\": \"MIT\",\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 \"exports\": {\n \".\": \"./dist/index.js\",\n \"./auto-load\": \"./dist/auto-load.js\",\n \"./config\": \"./dist/dotenv-compat.js\",\n \"./config.js\": \"./dist/dotenv-compat.js\"\n },\n \"dependencies\": {\n \"@env-spec/parser\": \"workspace:*\",\n \"debug\": \"catalog:\",\n \"execa\": \"^9.5.2\",\n \"which\": \"^5.0.0\"\n },\n \"devDependencies\": {\n \"@clack/core\": \"^0.5.0\",\n \"@clack/prompts\": \"^0.11.0\",\n \"@env-spec/env-graph\": \"workspace:*\",\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.4.1\",\n \"ansis\": \"catalog:\",\n \"gunshi\": \"^0.26.3\",\n \"is-unicode-supported\": \"^2.1.0\",\n \"outdent\": \"^0.8.0\",\n \"tsup\": \"catalog:\",\n \"vitest\": \"catalog:\"\n }\n}\n","import { cli, Command, define } from 'gunshi';\n\nimport { VARLOCK_BANNER, VARLOCK_BANNER_COLOR } from '../lib/ascii-art';\nimport { CliExitError } from './helpers/exit-error';\nimport { EnvSourceParseError } from '@env-spec/env-graph';\nimport ansis from 'ansis';\nimport { fmt } from './helpers/pretty-format';\nimport { trackCommand, trackInstall } from './helpers/analytics';\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';\nimport { commandSpec as encryptCommandSpec } from './commands/encrypt.command';\nimport { commandSpec as doctorCommandSpec } from './commands/doctor.command';\nimport { commandSpec as helpCommandSpec } from './commands/help.command';\nimport { commandSpec as optOutCommandSpec } from './commands/opt-out.command';\nimport { commandSpec as loginCommandSpec } from './commands/login.command';\n\n\nconst mainCommand = {\n run: () => {\n console.log('Use one of the sub-commands...');\n },\n};\n\n\n// TODO: this is not splitting the bundle correctly to actually lazy load the command fns\n\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')));\nsubCommands.set('encrypt', buildLazyCommand(encryptCommandSpec, async () => await import('./commands/encrypt.command')));\nsubCommands.set('doctor', buildLazyCommand(doctorCommandSpec, async () => await import('./commands/doctor.command')));\nsubCommands.set('help', buildLazyCommand(helpCommandSpec, async () => await import('./commands/help.command')));\nsubCommands.set('opt-out', buildLazyCommand(optOutCommandSpec, async () => await import('./commands/opt-out.command')));\nsubCommands.set('login', buildLazyCommand(loginCommandSpec, async () => await import('./commands/login.command')));\n\n// subCommandsArray.forEach((commandSpec) => {\n// const commandName = commandSpec.name!;\n// subCommands.set(commandName, {\n// ...commandSpec,\n// run: async (...args: Array<any>) => {\n// const commandSpecAndFn = await import(`./commands/${commandName}.command.ts`);\n// // Track command execution\n// await trackCommand(commandName, { command: commandName });\n// // Run the actual command\n// return commandSpecAndFn.commandFn(...args);\n// },\n// });\n// });\n\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 hombrew/curl\n if (__VARLOCK_SEA_BUILD__) {\n if (args[0] === '--post-install') {\n await trackInstall(args[1] as 'brew' | 'curl');\n // TODO track version, inject post build?\n process.exit(0);\n }\n }\n\n await cli(args, mainCommand, {\n name: 'varlock',\n description: 'Encrypt and protect your env vars',\n version: packageJson.version,\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 process.exit(0);\n } catch (error) {\n 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.log(`🚨 Error encountered while loading ${error.location.path}`);\n console.log(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.log('Error parsing .env file');\n console.log(fmt.filePath(`${errLoc.path}:${errLoc.lineNumber}:${errLoc.colNumber}`));\n console.log(errPreview);\n\n process.exit(1);\n } else {\n throw error;\n }\n\n process.exit(1);\n }\n}());\n"]}
1
+ {"version":3,"sources":["../../src/lib/ascii-art.ts","../../src/cli/helpers/analytics.ts","../../package.json","../../src/cli/cli-executable.ts"],"names":["commandSpec"],"mappings":"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","file":"cli-executable.js","sourcesContent":["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 { homedir } from 'os';\nimport { join } from 'path';\nimport { existsSync, readFileSync } from 'node:fs';\n\nimport { CONFIG } from '../../config';\n\nfunction checkIsOptedOut() {\n // Check environment variable first\n if (process.env.PH_OPT_OUT === 'true') {\n return true;\n }\n\n // Then check config file\n const configPath = join(homedir(), '.varlock', 'config.json');\n if (existsSync(configPath)) {\n try {\n const configContent = readFileSync(configPath, 'utf-8');\n const config = JSON.parse(configContent);\n return config.analytics_opt_out === true;\n } catch (error) {\n console.debug('Failed to read analytics config:', error);\n }\n }\n return false;\n}\n\nconst DEBUG_PH = !!process.env.DEBUG_PH;\n\nconst isOptedOut = checkIsOptedOut();\nif (DEBUG_PH) console.log('posthog opted out: ', isOptedOut);\n\nasync function posthogCapture(event: string, properties?: Record<string, any>) {\n if (isOptedOut) return;\n\n const payload = {\n api_key: CONFIG.POSTHOG_API_KEY,\n event,\n properties: {\n $process_person_profile: false,\n ...properties,\n },\n distinct_id: 'anonymous',\n };\n\n const res = await 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 if (DEBUG_PH) console.log('res', await res.text());\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","{\n \"name\": \"varlock\",\n \"version\": \"0.0.3\",\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/env-graph\": \"workspace:*\",\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.5.1\",\n \"ansis\": \"catalog:\",\n \"browser-or-node\": \"^3.0.0\",\n \"gunshi\": \"^0.26.3\",\n \"is-unicode-supported\": \"^2.1.0\",\n \"outdent\": \"catalog:\",\n \"tsup\": \"catalog:\",\n \"vitest\": \"catalog:\"\n }\n}\n","import { cli, Command, define } from 'gunshi';\n\nimport { VARLOCK_BANNER, VARLOCK_BANNER_COLOR } from '../lib/ascii-art';\nimport { CliExitError } from './helpers/exit-error';\nimport { EnvSourceParseError } from '@env-spec/env-graph';\nimport ansis from 'ansis';\nimport { fmt } from './helpers/pretty-format';\nimport { trackCommand, trackInstall } from './helpers/analytics';\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';\nimport { commandSpec as encryptCommandSpec } from './commands/encrypt.command';\nimport { commandSpec as doctorCommandSpec } from './commands/doctor.command';\nimport { commandSpec as helpCommandSpec } from './commands/help.command';\nimport { commandSpec as optOutCommandSpec } from './commands/opt-out.command';\nimport { commandSpec as loginCommandSpec } from './commands/login.command';\n\n\nconst mainCommand = {\n run: () => {\n console.log('Use one of the sub-commands...');\n },\n};\n\n\n// TODO: this is not splitting the bundle correctly to actually lazy load the command fns\n\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')));\nsubCommands.set('encrypt', buildLazyCommand(encryptCommandSpec, async () => await import('./commands/encrypt.command')));\nsubCommands.set('doctor', buildLazyCommand(doctorCommandSpec, async () => await import('./commands/doctor.command')));\nsubCommands.set('help', buildLazyCommand(helpCommandSpec, async () => await import('./commands/help.command')));\nsubCommands.set('opt-out', buildLazyCommand(optOutCommandSpec, async () => await import('./commands/opt-out.command')));\nsubCommands.set('login', buildLazyCommand(loginCommandSpec, async () => await import('./commands/login.command')));\n\n// subCommandsArray.forEach((commandSpec) => {\n// const commandName = commandSpec.name!;\n// subCommands.set(commandName, {\n// ...commandSpec,\n// run: async (...args: Array<any>) => {\n// const commandSpecAndFn = await import(`./commands/${commandName}.command.ts`);\n// // Track command execution\n// await trackCommand(commandName, { command: commandName });\n// // Run the actual command\n// return commandSpecAndFn.commandFn(...args);\n// },\n// });\n// });\n\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 hombrew/curl\n if (__VARLOCK_SEA_BUILD__) {\n if (args[0] === '--post-install') {\n await trackInstall(args[1] as 'brew' | 'curl');\n // TODO track version, inject post build?\n process.exit(0);\n }\n }\n\n await cli(args, mainCommand, {\n name: 'varlock',\n description: 'Encrypt and protect your env vars',\n version: packageJson.version,\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 process.exit(0);\n } catch (error) {\n 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.log(`🚨 Error encountered while loading ${error.location.path}`);\n console.log(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.log('Error parsing .env file');\n console.log(fmt.filePath(`${errLoc.path}:${errLoc.lineNumber}:${errLoc.colNumber}`));\n console.log(errPreview);\n\n process.exit(1);\n } else {\n throw error;\n }\n\n process.exit(1);\n }\n}());\n"]}
@@ -0,0 +1,6 @@
1
+ export { commandFn, commandSpec } from './chunk-RPLDMNWT.js';
2
+ import './chunk-33ROL4J5.js';
3
+ import './chunk-TYL3Q4QG.js';
4
+ import './chunk-XN24GZXQ.js';
5
+ //# sourceMappingURL=doctor.command-L3P5LBOW.js.map
6
+ //# sourceMappingURL=doctor.command-L3P5LBOW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"doctor.command-N5JAIXRM.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"doctor.command-L3P5LBOW.js"}
@@ -1,11 +1,10 @@
1
- import { load } from './chunk-BS3AGAHF.js';
2
- import './chunk-NZDUC7Q3.js';
3
- import './chunk-QTYVZQSF.js';
4
- import './chunk-HZADDTO5.js';
5
- import './chunk-7UQXFWKN.js';
1
+ import './chunk-3EBGAOLH.js';
2
+ import './chunk-3KZR56NU.js';
3
+ import './chunk-OXV76U3Y.js';
4
+ import './chunk-RF3YMFUX.js';
5
+ import './chunk-XHOJF7U7.js';
6
+ import './chunk-7QXRUUDC.js';
7
+ import './chunk-FGMXIEFA.js';
6
8
  import './chunk-XN24GZXQ.js';
7
-
8
- // src/dotenv-compat.ts
9
- await load();
10
9
  //# sourceMappingURL=dotenv-compat.js.map
11
10
  //# sourceMappingURL=dotenv-compat.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dotenv-compat.ts"],"names":[],"mappings":";;;;;;;;AAYA,MAAM,IAAK,EAAA","file":"dotenv-compat.js","sourcesContent":["/*\n This file is exposed as `varlock/config` so that when using overrides to sub in varlock for dotenv\n `import dotenv/config` will import this instead!\n\n We'll want to make sure that there is a similar compat availble when importing via CJS\n but this will have to be on the default export of the package\n\n SEE https://github.com/motdotla/dotenv\n*/\nimport { load } from './index';\n\n// TODO: this should probably not be async\nawait load();\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"dotenv-compat.js"}
package/dist/index.d.ts CHANGED
@@ -1,37 +1,13 @@
1
- /** singleton wrapper for varlock's redaction utilities */
2
- declare const VarlockRedactor: {
3
- /**
4
- * Redacts senstive config values from any string/array/object/etc
5
- *
6
- * NOTE - must be used only after varlock has loaded config
7
- * */
8
- redactSensitiveConfig(o: any): any;
9
- /**
10
- * utility to unmask a secret/sensitive value when logging to the console
11
- * currently this only works on a single secret, not objects or aggregated strings
12
- * */
13
- unredact(secretStr: string): string;
14
- /**
15
- * patches global console methods to redact sensitive config
16
- *
17
- * NOTE - this may not be 100% foolproof depending on the platform
18
- * */
19
- patchConsole(): void;
20
- /**
21
- * restore's original global console methods to stop redacting secrets
22
- *
23
- * (only needed during local development when switching settings on/off in a process that does not reload)
24
- * */
25
- unpatchConsole(): void;
26
- };
1
+ export { SerializedEnvGraph } from '@env-spec/env-graph';
2
+ export { patchGlobalConsole } from './runtime/patch-console.js';
3
+ export { patchGlobalServerResponse } from './runtime/patch-server-response.js';
4
+ export { patchGlobalResponse } from './runtime/patch-response.js';
5
+ export { ENV } from './runtime/env.js';
27
6
 
28
- interface TypedEnvSchema {
29
- }
30
- interface PublicTypedEnvSchema {
31
- }
32
- declare const ENV: TypedEnvSchema;
33
- declare const PUBLIC_ENV: PublicTypedEnvSchema;
34
- declare function loadSync(): void;
35
7
  declare function load(): Promise<void>;
8
+ declare function getBuildTimeReplacements(opts?: {
9
+ objectKey?: string;
10
+ includeSensitive?: boolean;
11
+ }): Record<string, string>;
36
12
 
37
- export { ENV, PUBLIC_ENV, type PublicTypedEnvSchema, type TypedEnvSchema, VarlockRedactor, load, loadSync };
13
+ export { getBuildTimeReplacements, load };
package/dist/index.js CHANGED
@@ -1,8 +1,39 @@
1
- export { ENV, PUBLIC_ENV, load, loadSync } from './chunk-BS3AGAHF.js';
2
- import './chunk-NZDUC7Q3.js';
3
- export { VarlockRedactor } from './chunk-QTYVZQSF.js';
4
- import './chunk-HZADDTO5.js';
1
+ import { checkForConfigErrors } from './chunk-OSSLRXKM.js';
2
+ import { loadVarlockEnvGraph } from './chunk-Q5P7F3WA.js';
5
3
  import './chunk-7UQXFWKN.js';
6
- import './chunk-XN24GZXQ.js';
4
+ import './chunk-TYL3Q4QG.js';
5
+ export { patchGlobalConsole } from './chunk-3KZR56NU.js';
6
+ export { patchGlobalResponse } from './chunk-OXV76U3Y.js';
7
+ export { patchGlobalServerResponse } from './chunk-RF3YMFUX.js';
8
+ import './chunk-XHOJF7U7.js';
9
+ import { initVarlockEnv } from './chunk-7QXRUUDC.js';
10
+ export { ENV } from './chunk-7QXRUUDC.js';
11
+ import './chunk-FGMXIEFA.js';
12
+ import { __name } from './chunk-XN24GZXQ.js';
13
+
14
+ // src/index.ts
15
+ async function load() {
16
+ const envGraph = await loadVarlockEnvGraph();
17
+ await envGraph.resolveEnvValues();
18
+ checkForConfigErrors(envGraph);
19
+ process.env.__VARLOCK_ENV = JSON.stringify(envGraph.getSerializedGraph());
20
+ initVarlockEnv();
21
+ }
22
+ __name(load, "load");
23
+ function getBuildTimeReplacements(opts) {
24
+ if (!process.env.__VARLOCK_ENV) return {};
25
+ const envInfo = JSON.parse(process.env.__VARLOCK_ENV);
26
+ const replacements = {};
27
+ for (const key in envInfo.config) {
28
+ const itemInfo = envInfo.config[key];
29
+ const replaceItem = !itemInfo.isSensitive || opts?.includeSensitive;
30
+ if (!replaceItem) continue;
31
+ replacements[`${opts?.objectKey || "ENV"}.${key}`] = JSON.stringify(envInfo.config[key].value);
32
+ }
33
+ return replacements;
34
+ }
35
+ __name(getBuildTimeReplacements, "getBuildTimeReplacements");
36
+
37
+ export { getBuildTimeReplacements, load };
7
38
  //# sourceMappingURL=index.js.map
8
39
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAOA,eAAsB,IAAO,GAAA;AAE3B,EAAM,MAAA,QAAA,GAAW,MAAM,mBAAoB,EAAA;AAC3C,EAAA,MAAM,SAAS,gBAAiB,EAAA;AAChC,EAAA,oBAAA,CAAqB,QAAQ,CAAA;AAG7B,EAAA,OAAA,CAAQ,IAAI,aAAgB,GAAA,IAAA,CAAK,SAAU,CAAA,QAAA,CAAS,oBAAoB,CAAA;AACxE,EAAe,cAAA,EAAA;AAEjB;AAVsB,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAaf,SAAS,yBAAyB,IAGtC,EAAA;AACD,EAAA,IAAI,CAAC,OAAA,CAAQ,GAAI,CAAA,aAAA,SAAsB,EAAC;AACxC,EAAA,MAAM,OAAU,GAAA,IAAA,CAAK,KAAM,CAAA,OAAA,CAAQ,IAAI,aAAa,CAAA;AACpD,EAAA,MAAM,eAAe,EAAC;AACtB,EAAW,KAAA,MAAA,GAAA,IAAO,QAAQ,MAAQ,EAAA;AAChC,IAAM,MAAA,QAAA,GAAW,OAAQ,CAAA,MAAA,CAAO,GAAG,CAAA;AACnC,IAAA,MAAM,WAAc,GAAA,CAAC,QAAS,CAAA,WAAA,IAAe,IAAM,EAAA,gBAAA;AACnD,IAAA,IAAI,CAAC,WAAa,EAAA;AAClB,IAAA,YAAA,CAAa,CAAG,EAAA,IAAA,EAAM,SAAa,IAAA,KAAK,IAAI,GAAG,CAAA,CAAE,CAAI,GAAA,IAAA,CAAK,SAAU,CAAA,OAAA,CAAQ,MAAO,CAAA,GAAG,EAAE,KAAK,CAAA;AAAA;AAE/F,EAAO,OAAA,YAAA;AACT;AAdgB,MAAA,CAAA,wBAAA,EAAA,0BAAA,CAAA","file":"index.js","sourcesContent":["import { SerializedEnvGraph } from '@env-spec/env-graph';\nexport { SerializedEnvGraph };\n\nimport { checkForConfigErrors } from './cli/helpers/error-checks';\nimport { loadVarlockEnvGraph } from './lib/load-graph';\nimport { initVarlockEnv } from './runtime/env';\n\nexport async function load() {\n // TODO: add some options\n const envGraph = await loadVarlockEnvGraph();\n await envGraph.resolveEnvValues();\n checkForConfigErrors(envGraph);\n\n // loadFromSerializedGraph(envGraph.getSerializedGraph());\n process.env.__VARLOCK_ENV = JSON.stringify(envGraph.getSerializedGraph());\n initVarlockEnv();\n // TODO: return resolved env and schema / meta info\n}\n\n\nexport function getBuildTimeReplacements(opts?: {\n objectKey?: string,\n includeSensitive?: boolean,\n}) {\n if (!process.env.__VARLOCK_ENV) return {};\n const envInfo = JSON.parse(process.env.__VARLOCK_ENV) as SerializedEnvGraph;\n const replacements = {} as Record<string, string>;\n for (const key in envInfo.config) {\n const itemInfo = envInfo.config[key];\n const replaceItem = !itemInfo.isSensitive || opts?.includeSensitive;\n if (!replaceItem) continue;\n replacements[`${opts?.objectKey || 'ENV'}.${key}`] = JSON.stringify(envInfo.config[key].value);\n }\n return replacements;\n}\n\nexport { patchGlobalConsole } from './runtime/patch-console';\nexport { patchGlobalServerResponse } from './runtime/patch-server-response';\nexport { patchGlobalResponse } from './runtime/patch-response';\nexport { ENV } from './runtime/env';\n"]}
@@ -0,0 +1,11 @@
1
+ export { commandFn, commandSpec } from './chunk-5HDQH7UC.js';
2
+ import './chunk-LQZ6ICSS.js';
3
+ import './chunk-DAZNZPLN.js';
4
+ import './chunk-33ROL4J5.js';
5
+ import './chunk-Q5P7F3WA.js';
6
+ import './chunk-7UQXFWKN.js';
7
+ import './chunk-TYL3Q4QG.js';
8
+ import './chunk-FGMXIEFA.js';
9
+ import './chunk-XN24GZXQ.js';
10
+ //# sourceMappingURL=init.command-Q4YBHAEG.js.map
11
+ //# sourceMappingURL=init.command-Q4YBHAEG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"init.command-7BSALNL5.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"init.command-Q4YBHAEG.js"}
@@ -0,0 +1,10 @@
1
+ export { commandFn, commandSpec } from './chunk-NAZPFZOO.js';
2
+ import './chunk-33ROL4J5.js';
3
+ import './chunk-OSSLRXKM.js';
4
+ import './chunk-Q5P7F3WA.js';
5
+ import './chunk-7UQXFWKN.js';
6
+ import './chunk-TYL3Q4QG.js';
7
+ import './chunk-FGMXIEFA.js';
8
+ import './chunk-XN24GZXQ.js';
9
+ //# sourceMappingURL=load.command-K22PEH3D.js.map
10
+ //# sourceMappingURL=load.command-K22PEH3D.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"load.command-4MJR5J43.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"load.command-K22PEH3D.js"}
@@ -0,0 +1,10 @@
1
+ export { commandFn, commandSpec } from './chunk-2CM6PMED.js';
2
+ import './chunk-33ROL4J5.js';
3
+ import './chunk-OSSLRXKM.js';
4
+ import './chunk-Q5P7F3WA.js';
5
+ import './chunk-7UQXFWKN.js';
6
+ import './chunk-TYL3Q4QG.js';
7
+ import './chunk-FGMXIEFA.js';
8
+ import './chunk-XN24GZXQ.js';
9
+ //# sourceMappingURL=run.command-DUAYGL6F.js.map
10
+ //# sourceMappingURL=run.command-DUAYGL6F.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"run.command-ASKXIWBC.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"run.command-DUAYGL6F.js"}
@@ -0,0 +1,27 @@
1
+ import { SerializedEnvGraph } from '@env-spec/env-graph';
2
+
3
+ declare function resetRedactionMap(graph: SerializedEnvGraph): void;
4
+ /**
5
+ * Redacts senstive config values from any string/array/object/etc
6
+ *
7
+ * NOTE - must be used only after varlock has loaded config
8
+ * */
9
+ declare function redactSensitiveConfig(o: any): any;
10
+ /**
11
+ * utility to unmask a secret/sensitive value when logging to the console
12
+ * currently this only works on a single secret, not objects or aggregated strings
13
+ * */
14
+ declare function revealSensitiveConfig(secretStr: string): string;
15
+ declare function scanForLeaks(toScan: string | Response | ReadableStream, meta?: {
16
+ method?: string;
17
+ file?: string;
18
+ }): string | Response | ReadableStream<any>;
19
+ declare const varlockSettings: Record<string, any>;
20
+ declare function initVarlockEnv(opts?: {
21
+ setProcessEnv?: boolean;
22
+ }): void;
23
+ interface TypedEnvSchema {
24
+ }
25
+ declare const ENV: TypedEnvSchema;
26
+
27
+ export { ENV, type TypedEnvSchema, initVarlockEnv, redactSensitiveConfig, resetRedactionMap, revealSensitiveConfig, scanForLeaks, varlockSettings };
@@ -0,0 +1,5 @@
1
+ export { ENV, initVarlockEnv, redactSensitiveConfig, resetRedactionMap, revealSensitiveConfig, scanForLeaks, varlockSettings } from '../chunk-7QXRUUDC.js';
2
+ import '../chunk-FGMXIEFA.js';
3
+ import '../chunk-XN24GZXQ.js';
4
+ //# sourceMappingURL=env.js.map
5
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"env.js"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * patches global console methods to redact sensitive config
3
+ *
4
+ * NOTE - this may not be 100% foolproof depending on the platform
5
+ * */
6
+ declare function patchGlobalConsole(): void;
7
+ /**
8
+ * restore's original global console methods to stop redacting secrets
9
+ *
10
+ * (only needed during local development when switching settings on/off in a process that does not reload)
11
+ * */
12
+ declare function unpatchGlobalConsole(): void;
13
+
14
+ export { patchGlobalConsole, unpatchGlobalConsole };
@@ -0,0 +1,7 @@
1
+ export { patchGlobalConsole, unpatchGlobalConsole } from '../chunk-3KZR56NU.js';
2
+ import '../chunk-XHOJF7U7.js';
3
+ import '../chunk-7QXRUUDC.js';
4
+ import '../chunk-FGMXIEFA.js';
5
+ import '../chunk-XN24GZXQ.js';
6
+ //# sourceMappingURL=patch-console.js.map
7
+ //# sourceMappingURL=patch-console.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"patch-console.js"}
@@ -0,0 +1,3 @@
1
+ declare function patchGlobalResponse(): void;
2
+
3
+ export { patchGlobalResponse };
@@ -0,0 +1,7 @@
1
+ export { patchGlobalResponse } from '../chunk-OXV76U3Y.js';
2
+ import '../chunk-XHOJF7U7.js';
3
+ import '../chunk-7QXRUUDC.js';
4
+ import '../chunk-FGMXIEFA.js';
5
+ import '../chunk-XN24GZXQ.js';
6
+ //# sourceMappingURL=patch-response.js.map
7
+ //# sourceMappingURL=patch-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"patch-response.js"}
@@ -0,0 +1,6 @@
1
+ declare function patchGlobalServerResponse(opts?: {
2
+ ignoreUrlPatterns?: Array<RegExp>;
3
+ redactInsteadOfThrow?: boolean;
4
+ }): void;
5
+
6
+ export { patchGlobalServerResponse };
@@ -0,0 +1,7 @@
1
+ export { patchGlobalServerResponse } from '../chunk-RF3YMFUX.js';
2
+ import '../chunk-XHOJF7U7.js';
3
+ import '../chunk-7QXRUUDC.js';
4
+ import '../chunk-FGMXIEFA.js';
5
+ import '../chunk-XN24GZXQ.js';
6
+ //# sourceMappingURL=patch-server-response.js.map
7
+ //# sourceMappingURL=patch-server-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"patch-server-response.js"}