varlock 0.0.0 → 0.0.1

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/README.md +46 -0
  2. package/bin/cli.js +2 -0
  3. package/dist/auto-load.d.ts +2 -0
  4. package/dist/auto-load.js +11 -0
  5. package/dist/auto-load.js.map +1 -0
  6. package/dist/chunk-33ROL4J5.js +1013 -0
  7. package/dist/chunk-33ROL4J5.js.map +1 -0
  8. package/dist/chunk-35HGPX6I.js +98 -0
  9. package/dist/chunk-35HGPX6I.js.map +1 -0
  10. package/dist/chunk-7UQXFWKN.js +82 -0
  11. package/dist/chunk-7UQXFWKN.js.map +1 -0
  12. package/dist/chunk-B4UBSMSZ.js +142 -0
  13. package/dist/chunk-B4UBSMSZ.js.map +1 -0
  14. package/dist/chunk-BRP5MZU6.js +70 -0
  15. package/dist/chunk-BRP5MZU6.js.map +1 -0
  16. package/dist/chunk-BS3AGAHF.js +53 -0
  17. package/dist/chunk-BS3AGAHF.js.map +1 -0
  18. package/dist/chunk-CPA2D42B.js +146 -0
  19. package/dist/chunk-CPA2D42B.js.map +1 -0
  20. package/dist/chunk-DAZNZPLN.js +675 -0
  21. package/dist/chunk-DAZNZPLN.js.map +1 -0
  22. package/dist/chunk-EMPXU5TW.js +681 -0
  23. package/dist/chunk-EMPXU5TW.js.map +1 -0
  24. package/dist/chunk-HZADDTO5.js +2310 -0
  25. package/dist/chunk-HZADDTO5.js.map +1 -0
  26. package/dist/chunk-LQZ6ICSS.js +21 -0
  27. package/dist/chunk-LQZ6ICSS.js.map +1 -0
  28. package/dist/chunk-NZDUC7Q3.js +69 -0
  29. package/dist/chunk-NZDUC7Q3.js.map +1 -0
  30. package/dist/chunk-QCC3P7BT.js +39 -0
  31. package/dist/chunk-QCC3P7BT.js.map +1 -0
  32. package/dist/chunk-QTYVZQSF.js +225 -0
  33. package/dist/chunk-QTYVZQSF.js.map +1 -0
  34. package/dist/chunk-R53MTEAM.js +32 -0
  35. package/dist/chunk-R53MTEAM.js.map +1 -0
  36. package/dist/chunk-RCHPHIHX.js +15 -0
  37. package/dist/chunk-RCHPHIHX.js.map +1 -0
  38. package/dist/chunk-XN24GZXQ.js +35 -0
  39. package/dist/chunk-XN24GZXQ.js.map +1 -0
  40. package/dist/cli/cli-executable.d.ts +2 -0
  41. package/dist/cli/cli-executable.js +206 -0
  42. package/dist/cli/cli-executable.js.map +1 -0
  43. package/dist/doctor.command-N5JAIXRM.js +6 -0
  44. package/dist/doctor.command-N5JAIXRM.js.map +1 -0
  45. package/dist/dotenv-compat.d.ts +2 -0
  46. package/dist/dotenv-compat.js +11 -0
  47. package/dist/dotenv-compat.js.map +1 -0
  48. package/dist/en-US-TSGNDI2P.js +22 -0
  49. package/dist/en-US-TSGNDI2P.js.map +1 -0
  50. package/dist/encrypt.command-VGJABHNK.js +6 -0
  51. package/dist/encrypt.command-VGJABHNK.js.map +1 -0
  52. package/dist/help.command-YZDL2VEQ.js +5 -0
  53. package/dist/help.command-YZDL2VEQ.js.map +1 -0
  54. package/dist/index.d.ts +37 -0
  55. package/dist/index.js +8 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/init.command-7BSALNL5.js +10 -0
  58. package/dist/init.command-7BSALNL5.js.map +1 -0
  59. package/dist/ja-JP-UBPCQAAD.js +22 -0
  60. package/dist/ja-JP-UBPCQAAD.js.map +1 -0
  61. package/dist/load.command-4MJR5J43.js +9 -0
  62. package/dist/load.command-4MJR5J43.js.map +1 -0
  63. package/dist/login.command-22RUZJLR.js +7 -0
  64. package/dist/login.command-22RUZJLR.js.map +1 -0
  65. package/dist/opt-out.command-Y4KUQ6PQ.js +5 -0
  66. package/dist/opt-out.command-Y4KUQ6PQ.js.map +1 -0
  67. package/dist/run.command-ASKXIWBC.js +9 -0
  68. package/dist/run.command-ASKXIWBC.js.map +1 -0
  69. package/package.json +50 -3
  70. package/notes.md +0 -3
@@ -0,0 +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"]}
@@ -0,0 +1,6 @@
1
+ export { commandFn, commandSpec } from './chunk-R53MTEAM.js';
2
+ import './chunk-33ROL4J5.js';
3
+ import './chunk-HZADDTO5.js';
4
+ import './chunk-XN24GZXQ.js';
5
+ //# sourceMappingURL=doctor.command-N5JAIXRM.js.map
6
+ //# sourceMappingURL=doctor.command-N5JAIXRM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"doctor.command-N5JAIXRM.js"}
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,11 @@
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';
6
+ import './chunk-XN24GZXQ.js';
7
+
8
+ // src/dotenv-compat.ts
9
+ await load();
10
+ //# sourceMappingURL=dotenv-compat.js.map
11
+ //# sourceMappingURL=dotenv-compat.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,22 @@
1
+ import './chunk-XN24GZXQ.js';
2
+
3
+ // ../../node_modules/.pnpm/gunshi@0.26.3/node_modules/gunshi/lib/locales/en-US.json
4
+ var en_US_default = {
5
+ COMMAND: "COMMAND",
6
+ COMMANDS: "COMMANDS",
7
+ SUBCOMMAND: "SUBCOMMAND",
8
+ USAGE: "USAGE",
9
+ ARGUMENTS: "ARGUMENTS",
10
+ OPTIONS: "OPTIONS",
11
+ EXAMPLES: "EXAMPLES",
12
+ FORMORE: "For more info, run any command with the `--help` flag:",
13
+ NEGATABLE: "Negatable of",
14
+ DEFAULT: "default",
15
+ CHOICES: "choices",
16
+ help: "Display this help message",
17
+ version: "Display this version"
18
+ };
19
+
20
+ export { en_US_default as default };
21
+ //# sourceMappingURL=en-US-TSGNDI2P.js.map
22
+ //# sourceMappingURL=en-US-TSGNDI2P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/gunshi@0.26.3/node_modules/gunshi/lib/locales/en-US.json"],"names":[],"mappings":";;;AAAA,IAAA,aAAA,GAAA;AAAA,EACE,OAAW,EAAA,SAAA;AAAA,EACX,QAAY,EAAA,UAAA;AAAA,EACZ,UAAc,EAAA,YAAA;AAAA,EACd,KAAS,EAAA,OAAA;AAAA,EACT,SAAa,EAAA,WAAA;AAAA,EACb,OAAW,EAAA,SAAA;AAAA,EACX,QAAY,EAAA,UAAA;AAAA,EACZ,OAAW,EAAA,wDAAA;AAAA,EACX,SAAa,EAAA,cAAA;AAAA,EACb,OAAW,EAAA,SAAA;AAAA,EACX,OAAW,EAAA,SAAA;AAAA,EACX,IAAQ,EAAA,2BAAA;AAAA,EACR,OAAW,EAAA;AACb","file":"en-US-TSGNDI2P.js","sourcesContent":["{\n \"COMMAND\": \"COMMAND\",\n \"COMMANDS\": \"COMMANDS\",\n \"SUBCOMMAND\": \"SUBCOMMAND\",\n \"USAGE\": \"USAGE\",\n \"ARGUMENTS\": \"ARGUMENTS\",\n \"OPTIONS\": \"OPTIONS\",\n \"EXAMPLES\": \"EXAMPLES\",\n \"FORMORE\": \"For more info, run any command with the `--help` flag:\",\n \"NEGATABLE\": \"Negatable of\",\n \"DEFAULT\": \"default\",\n \"CHOICES\": \"choices\",\n \"help\": \"Display this help message\",\n \"version\": \"Display this version\"\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export { commandFn, commandSpec } from './chunk-B4UBSMSZ.js';
2
+ import './chunk-DAZNZPLN.js';
3
+ import './chunk-33ROL4J5.js';
4
+ import './chunk-XN24GZXQ.js';
5
+ //# sourceMappingURL=encrypt.command-VGJABHNK.js.map
6
+ //# sourceMappingURL=encrypt.command-VGJABHNK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"encrypt.command-VGJABHNK.js"}
@@ -0,0 +1,5 @@
1
+ export { commandFn, commandSpec } from './chunk-RCHPHIHX.js';
2
+ import './chunk-33ROL4J5.js';
3
+ import './chunk-XN24GZXQ.js';
4
+ //# sourceMappingURL=help.command-YZDL2VEQ.js.map
5
+ //# sourceMappingURL=help.command-YZDL2VEQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"help.command-YZDL2VEQ.js"}
@@ -0,0 +1,37 @@
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
+ };
27
+
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
+ declare function load(): Promise<void>;
36
+
37
+ export { ENV, PUBLIC_ENV, type PublicTypedEnvSchema, type TypedEnvSchema, VarlockRedactor, load, loadSync };
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
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';
5
+ import './chunk-7UQXFWKN.js';
6
+ import './chunk-XN24GZXQ.js';
7
+ //# sourceMappingURL=index.js.map
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,10 @@
1
+ export { commandFn, commandSpec } from './chunk-EMPXU5TW.js';
2
+ import './chunk-DAZNZPLN.js';
3
+ import './chunk-LQZ6ICSS.js';
4
+ import './chunk-33ROL4J5.js';
5
+ import './chunk-QTYVZQSF.js';
6
+ import './chunk-HZADDTO5.js';
7
+ import './chunk-7UQXFWKN.js';
8
+ import './chunk-XN24GZXQ.js';
9
+ //# sourceMappingURL=init.command-7BSALNL5.js.map
10
+ //# sourceMappingURL=init.command-7BSALNL5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"init.command-7BSALNL5.js"}
@@ -0,0 +1,22 @@
1
+ import './chunk-XN24GZXQ.js';
2
+
3
+ // ../../node_modules/.pnpm/gunshi@0.26.3/node_modules/gunshi/lib/locales/ja-JP.json
4
+ var ja_JP_default = {
5
+ COMMAND: "\u30B3\u30DE\u30F3\u30C9",
6
+ COMMANDS: "\u30B3\u30DE\u30F3\u30C9",
7
+ SUBCOMMAND: "\u30B5\u30D6\u30B3\u30DE\u30F3\u30C9",
8
+ USAGE: "\u4F7F\u3044\u65B9",
9
+ ARGUMENTS: "\u5F15\u6570",
10
+ OPTIONS: "\u30AA\u30D7\u30B7\u30E7\u30F3",
11
+ EXAMPLES: "\u4F8B",
12
+ FORMORE: "\u8A73\u7D30\u306F\u3001\u30B3\u30DE\u30F3\u30C9\u3068`--help`\u30D5\u30E9\u30B0\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044:",
13
+ NEGATABLE: "\u5426\u5B9A\u53EF\u80FD\u306A",
14
+ DEFAULT: "\u30C7\u30D5\u30A9\u30EB\u30C8",
15
+ CHOICES: "\u9078\u629E\u80A2",
16
+ help: "\u3053\u306E\u30D8\u30EB\u30D7\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A",
17
+ version: "\u3053\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u8868\u793A"
18
+ };
19
+
20
+ export { ja_JP_default as default };
21
+ //# sourceMappingURL=ja-JP-UBPCQAAD.js.map
22
+ //# sourceMappingURL=ja-JP-UBPCQAAD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/gunshi@0.26.3/node_modules/gunshi/lib/locales/ja-JP.json"],"names":[],"mappings":";;;AAAA,IAAA,aAAA,GAAA;AAAA,EACE,OAAW,EAAA,0BAAA;AAAA,EACX,QAAY,EAAA,0BAAA;AAAA,EACZ,UAAc,EAAA,sCAAA;AAAA,EACd,KAAS,EAAA,oBAAA;AAAA,EACT,SAAa,EAAA,cAAA;AAAA,EACb,OAAW,EAAA,gCAAA;AAAA,EACX,QAAY,EAAA,QAAA;AAAA,EACZ,OAAW,EAAA,yIAAA;AAAA,EACX,SAAa,EAAA,gCAAA;AAAA,EACb,OAAW,EAAA,gCAAA;AAAA,EACX,OAAW,EAAA,oBAAA;AAAA,EACX,IAAQ,EAAA,gFAAA;AAAA,EACR,OAAW,EAAA;AACb","file":"ja-JP-UBPCQAAD.js","sourcesContent":["{\n \"COMMAND\": \"コマンド\",\n \"COMMANDS\": \"コマンド\",\n \"SUBCOMMAND\": \"サブコマンド\",\n \"USAGE\": \"使い方\",\n \"ARGUMENTS\": \"引数\",\n \"OPTIONS\": \"オプション\",\n \"EXAMPLES\": \"例\",\n \"FORMORE\": \"詳細は、コマンドと`--help`フラグを実行してください:\",\n \"NEGATABLE\": \"否定可能な\",\n \"DEFAULT\": \"デフォルト\",\n \"CHOICES\": \"選択肢\",\n \"help\": \"このヘルプメッセージを表示\",\n \"version\": \"このバージョンを表示\"\n}\n"]}
@@ -0,0 +1,9 @@
1
+ export { commandFn, commandSpec } from './chunk-BRP5MZU6.js';
2
+ import './chunk-NZDUC7Q3.js';
3
+ import './chunk-33ROL4J5.js';
4
+ import './chunk-QTYVZQSF.js';
5
+ import './chunk-HZADDTO5.js';
6
+ import './chunk-7UQXFWKN.js';
7
+ import './chunk-XN24GZXQ.js';
8
+ //# sourceMappingURL=load.command-4MJR5J43.js.map
9
+ //# sourceMappingURL=load.command-4MJR5J43.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"load.command-4MJR5J43.js"}
@@ -0,0 +1,7 @@
1
+ export { commandFn, commandSpec } from './chunk-CPA2D42B.js';
2
+ import './chunk-LQZ6ICSS.js';
3
+ import './chunk-33ROL4J5.js';
4
+ import './chunk-7UQXFWKN.js';
5
+ import './chunk-XN24GZXQ.js';
6
+ //# sourceMappingURL=login.command-22RUZJLR.js.map
7
+ //# sourceMappingURL=login.command-22RUZJLR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"login.command-22RUZJLR.js"}
@@ -0,0 +1,5 @@
1
+ export { commandFn, commandSpec } from './chunk-QCC3P7BT.js';
2
+ import './chunk-33ROL4J5.js';
3
+ import './chunk-XN24GZXQ.js';
4
+ //# sourceMappingURL=opt-out.command-Y4KUQ6PQ.js.map
5
+ //# sourceMappingURL=opt-out.command-Y4KUQ6PQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"opt-out.command-Y4KUQ6PQ.js"}
@@ -0,0 +1,9 @@
1
+ export { commandFn, commandSpec } from './chunk-35HGPX6I.js';
2
+ import './chunk-NZDUC7Q3.js';
3
+ import './chunk-33ROL4J5.js';
4
+ import './chunk-QTYVZQSF.js';
5
+ import './chunk-HZADDTO5.js';
6
+ import './chunk-7UQXFWKN.js';
7
+ import './chunk-XN24GZXQ.js';
8
+ //# sourceMappingURL=run.command-ASKXIWBC.js.map
9
+ //# sourceMappingURL=run.command-ASKXIWBC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"run.command-ASKXIWBC.js"}
package/package.json CHANGED
@@ -1,7 +1,54 @@
1
1
  {
2
2
  "name": "varlock",
3
- "version": "0.0.0",
4
- "description": "tools for securing your env vars",
3
+ "version": "0.0.1",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "type": "module",
5
7
  "author": "dmno-dev",
6
- "license": "MIT"
8
+ "license": "MIT",
9
+ "keywords": [],
10
+ "files": [
11
+ "/bin",
12
+ "/dist"
13
+ ],
14
+ "bin": {
15
+ "varlock": "./bin/cli.js"
16
+ },
17
+ "exports": {
18
+ ".": "./dist/index.js",
19
+ "./auto-load": "./dist/auto-load.js",
20
+ "./config": "./dist/dotenv-compat.js",
21
+ "./config.js": "./dist/dotenv-compat.js"
22
+ },
23
+ "dependencies": {
24
+ "debug": "^4.3.4",
25
+ "execa": "^9.5.2",
26
+ "which": "^5.0.0",
27
+ "@env-spec/parser": "0.0.1"
28
+ },
29
+ "devDependencies": {
30
+ "@clack/core": "^0.5.0",
31
+ "@clack/prompts": "^0.11.0",
32
+ "@sindresorhus/is": "^7.0.1",
33
+ "@types/debug": "^4.1.12",
34
+ "@types/node": "^22.15.32",
35
+ "@types/which": "^3.0.4",
36
+ "@yao-pkg/pkg": "^6.4.1",
37
+ "ansis": "^4.1.0",
38
+ "gunshi": "^0.26.3",
39
+ "is-unicode-supported": "^2.1.0",
40
+ "outdent": "^0.8.0",
41
+ "tsup": "^8.2.4",
42
+ "vitest": "^3.2.4",
43
+ "@env-spec/env-graph": "0.0.0",
44
+ "@env-spec/utils": "0.0.0"
45
+ },
46
+ "scripts": {
47
+ "build": "tsup",
48
+ "build:sea": "tsup --config tsup-sea.config.ts",
49
+ "dev": "tsup",
50
+ "test": "vitest",
51
+ "lint": "eslint .",
52
+ "lint:fix": "pnpm run lint --fix"
53
+ }
7
54
  }
package/notes.md DELETED
@@ -1,3 +0,0 @@
1
- pkg.pr.new requires that the package does exist and the options we are using require that the git folder be set correctly
2
-
3
- To initialize a new package, update the name, description, and git info, and then `pnpm publish --access=public`