varlock 0.4.0 → 0.4.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 (61) hide show
  1. package/dist/{chunk-36LTSUR6.js → chunk-3U2C5ACW.js} +5 -5
  2. package/dist/{chunk-36LTSUR6.js.map → chunk-3U2C5ACW.js.map} +1 -1
  3. package/dist/{chunk-5HF5TS2C.js → chunk-6SS4YD2I.js} +5 -5
  4. package/dist/{chunk-5HF5TS2C.js.map → chunk-6SS4YD2I.js.map} +1 -1
  5. package/dist/{chunk-F5WNDO7I.js → chunk-AHEBZW37.js} +9 -8
  6. package/dist/chunk-AHEBZW37.js.map +1 -0
  7. package/dist/{chunk-BS7P3FRR.js → chunk-BGPQX6XO.js} +6 -6
  8. package/dist/{chunk-BS7P3FRR.js.map → chunk-BGPQX6XO.js.map} +1 -1
  9. package/dist/{chunk-WIIXKZ3N.js → chunk-CBWJHW3M.js} +7 -7
  10. package/dist/{chunk-WIIXKZ3N.js.map → chunk-CBWJHW3M.js.map} +1 -1
  11. package/dist/{chunk-ALNELNTO.js → chunk-HS2NN4VF.js} +7 -7
  12. package/dist/chunk-HS2NN4VF.js.map +1 -0
  13. package/dist/chunk-I4RYFNPM.js +22 -0
  14. package/dist/chunk-I4RYFNPM.js.map +1 -0
  15. package/dist/{chunk-HRNVJUR5.js → chunk-MBYYRBL6.js} +3 -3
  16. package/dist/{chunk-HRNVJUR5.js.map → chunk-MBYYRBL6.js.map} +1 -1
  17. package/dist/{chunk-VKRGHRPK.js → chunk-NWY5IIPW.js} +3 -3
  18. package/dist/{chunk-VKRGHRPK.js.map → chunk-NWY5IIPW.js.map} +1 -1
  19. package/dist/{chunk-QNKJGOQ6.js → chunk-ONSMSCMG.js} +5 -5
  20. package/dist/{chunk-QNKJGOQ6.js.map → chunk-ONSMSCMG.js.map} +1 -1
  21. package/dist/{chunk-YFP6VA2U.js → chunk-P7WVEZYA.js} +4 -4
  22. package/dist/{chunk-YFP6VA2U.js.map → chunk-P7WVEZYA.js.map} +1 -1
  23. package/dist/{chunk-CBP4M7BN.js → chunk-PCRIVT4T.js} +32 -9
  24. package/dist/chunk-PCRIVT4T.js.map +1 -0
  25. package/dist/{chunk-4DZ3IHF6.js → chunk-PIOJV2A7.js} +4 -4
  26. package/dist/{chunk-4DZ3IHF6.js.map → chunk-PIOJV2A7.js.map} +1 -1
  27. package/dist/{chunk-EDSWMPIV.js → chunk-RQDMJMKL.js} +12 -10
  28. package/dist/chunk-RQDMJMKL.js.map +1 -0
  29. package/dist/cli/cli-executable.js +30 -24
  30. package/dist/cli/cli-executable.js.map +1 -1
  31. package/dist/config-item-K7KWEJD2.js +5 -0
  32. package/dist/{config-item-GN5AUR45.js.map → config-item-K7KWEJD2.js.map} +1 -1
  33. package/dist/index.js +6 -4
  34. package/dist/index.js.map +1 -1
  35. package/dist/init.command-SZPMB525.js +12 -0
  36. package/dist/{init.command-FMHXUGDI.js.map → init.command-SZPMB525.js.map} +1 -1
  37. package/dist/load.command-XSOTCSGA.js +11 -0
  38. package/dist/{load.command-6I2D5BPL.js.map → load.command-XSOTCSGA.js.map} +1 -1
  39. package/dist/printenv.command-4HWCHHCY.js +12 -0
  40. package/dist/{printenv.command-TROZTZ26.js.map → printenv.command-4HWCHHCY.js.map} +1 -1
  41. package/dist/run.command-DIN6XVLO.js +12 -0
  42. package/dist/{run.command-4OJ6MBP6.js.map → run.command-DIN6XVLO.js.map} +1 -1
  43. package/dist/scan.command-4J64EB4Z.js +13 -0
  44. package/dist/{scan.command-YRNAKUZT.js.map → scan.command-4J64EB4Z.js.map} +1 -1
  45. package/dist/telemetry.command-44NGPRGQ.js +11 -0
  46. package/dist/{telemetry.command-UZQSUYAY.js.map → telemetry.command-44NGPRGQ.js.map} +1 -1
  47. package/dist/typegen.command-7BE3K6PU.js +12 -0
  48. package/dist/{typegen.command-V4MATON4.js.map → typegen.command-7BE3K6PU.js.map} +1 -1
  49. package/package.json +3 -2
  50. package/dist/chunk-ALNELNTO.js.map +0 -1
  51. package/dist/chunk-CBP4M7BN.js.map +0 -1
  52. package/dist/chunk-EDSWMPIV.js.map +0 -1
  53. package/dist/chunk-F5WNDO7I.js.map +0 -1
  54. package/dist/config-item-GN5AUR45.js +0 -5
  55. package/dist/init.command-FMHXUGDI.js +0 -12
  56. package/dist/load.command-6I2D5BPL.js +0 -11
  57. package/dist/printenv.command-TROZTZ26.js +0 -12
  58. package/dist/run.command-4OJ6MBP6.js +0 -12
  59. package/dist/scan.command-YRNAKUZT.js +0 -13
  60. package/dist/telemetry.command-UZQSUYAY.js +0 -11
  61. package/dist/typegen.command-V4MATON4.js +0 -12
@@ -1,5 +1,5 @@
1
- import { ansis_default, gracefulExit, getItemSummary, joinAndCompact } from './chunk-VKRGHRPK.js';
2
- import { VarlockError, my_dash_default } from './chunk-CBP4M7BN.js';
1
+ import { ansis_default, gracefulExit, getItemSummary, joinAndCompact } from './chunk-NWY5IIPW.js';
2
+ import { VarlockError, my_dash_default } from './chunk-PCRIVT4T.js';
3
3
  import { __name } from './chunk-6PEHRAEP.js';
4
4
 
5
5
  // src/cli/helpers/error-checks.ts
@@ -104,5 +104,5 @@ function checkForConfigErrors(envGraph, opts) {
104
104
  __name(checkForConfigErrors, "checkForConfigErrors");
105
105
 
106
106
  export { InvalidEnvError, checkForConfigErrors, checkForNoEnvFiles, checkForSchemaErrors };
107
- //# sourceMappingURL=chunk-YFP6VA2U.js.map
108
- //# sourceMappingURL=chunk-YFP6VA2U.js.map
107
+ //# sourceMappingURL=chunk-P7WVEZYA.js.map
108
+ //# sourceMappingURL=chunk-P7WVEZYA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/helpers/error-checks.ts"],"names":[],"mappings":"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","file":"chunk-YFP6VA2U.js","sourcesContent":["import ansis from 'ansis';\nimport { gracefulExit } from 'exit-hook';\nimport _ from '@env-spec/utils/my-dash';\nimport { EnvGraph, ConfigItem } from '../../env-graph';\nimport { getItemSummary, joinAndCompact } from '../../lib/formatting';\nimport { VarlockError } from '../../env-graph/lib/errors';\n\n\nfunction showErrorLocationDetails(err: Error) {\n if (!(err instanceof VarlockError) || !err.location) return;\n const errLoc = err.location;\n const errPreview = [\n errLoc.lineStr,\n `${ansis.gray('-'.repeat(errLoc.colNumber - 1))}${ansis.red('^')}`,\n ].join('\\n');\n\n console.log('');\n console.log(`📂 ${errLoc.id}:${errLoc.lineNumber}:${errLoc.colNumber}`);\n console.log(errPreview);\n}\n\nexport function checkForNoEnvFiles(envGraph: EnvGraph) {\n if (Object.keys(envGraph.configSchema).length === 0) {\n console.error('🚨 No .env or .env.schema files found\\n');\n console.error('Run `varlock init` to create a .env.schema file, or use `--path` to specify a file or directory.');\n return gracefulExit(1);\n }\n}\n\nexport function checkForSchemaErrors(envGraph: EnvGraph) {\n // first we check for loading/parse errors - some cases we may want to let it fail silently?\n for (const source of envGraph.sortedDataSources) {\n // do we care about loading errors from disabled sources?\n // if (source.disabled) continue;\n\n if (source.loadingError) {\n console.log(`🚨 Error encountered while loading ${source.label}\\n`);\n\n console.log(source.loadingError.message);\n showErrorLocationDetails(source.loadingError);\n\n // For plugin loading errors, show the full stack trace since it's usually\n // a runtime error from executing the plugin code\n if (source.loadingError.stack && !(source.loadingError instanceof VarlockError)) {\n console.log(`\\n${ansis.dim('Stack trace:')}`);\n console.log(ansis.dim(source.loadingError.stack));\n }\n\n return gracefulExit(1);\n }\n // TODO: unify this with the above!\n if (source.schemaErrors.length) {\n console.log(`🚨 Error(s) encountered in ${source.label}`);\n\n for (const schemaErr of source.schemaErrors) {\n console.log(`- ${schemaErr.message}`);\n showErrorLocationDetails(schemaErr);\n }\n return gracefulExit(1);\n }\n }\n\n // now we check for any schema errors - where something about how things are wired up is invalid\n // NOTE - we should not have run any resolution yet\n // TODO: make sure we are calling this before attempting to resolve values\n // const failingItems = _.filter(_.values(envGraph.configSchema), (item) => item.validationState === 'error');\n // if (failingItems.length > 0) {\n // throw new CliExitError('Schema is currently invalid');\n // }\n}\n\n\nexport class InvalidEnvError extends Error {\n constructor() {\n super('Resolved config/env did not pass validation');\n }\n getFormattedOutput() {\n return `\\n💥 ${ansis.red(this.message)} 💥\\n`;\n }\n}\n\nexport function checkForConfigErrors(envGraph: EnvGraph, opts?: {\n showAll?: boolean\n}) {\n // check for root decorator \"execution\"\n for (const source of envGraph.sortedDataSources) {\n if (source.resolutionErrors.length) {\n console.log(`🚨 Root decorator error(s) in ${source.label}`);\n\n for (const err of source.resolutionErrors) {\n console.log(`- ${err.message}`);\n if (err instanceof VarlockError && err.tip) {\n for (const line of err.tip.split('\\n')) {\n console.log(` ${line}`);\n }\n }\n showErrorLocationDetails(err);\n }\n }\n }\n\n\n\n const failingItems = envGraph.sortedConfigKeys\n .map((k) => envGraph.configSchema[k])\n .filter((item) => item.validationState === 'error');\n\n // TODO: use service.isValid?\n if (failingItems.length > 0) {\n console.error(`\\n🚨 🚨 🚨 ${ansis.bold.underline('Configuration is currently invalid ')} 🚨 🚨 🚨\\n`);\n console.error('Invalid items:\\n');\n\n _.each(failingItems, (item: ConfigItem) => {\n console.error(getItemSummary(item));\n console.error();\n });\n if (opts?.showAll) {\n console.error();\n console.error(joinAndCompact([\n 'Valid items:',\n ansis.italic.gray('(remove `--show-all` flag to hide)'),\n ]));\n console.error();\n const validItems = envGraph.sortedConfigKeys\n .map((k) => envGraph.configSchema[k])\n .filter((i) => !!i.isValid);\n _.each(validItems, (item: ConfigItem) => {\n console.error(getItemSummary(item));\n });\n }\n\n throw new InvalidEnvError();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/cli/helpers/error-checks.ts"],"names":[],"mappings":"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","file":"chunk-P7WVEZYA.js","sourcesContent":["import ansis from 'ansis';\nimport { gracefulExit } from 'exit-hook';\nimport _ from '@env-spec/utils/my-dash';\nimport { EnvGraph, ConfigItem } from '../../env-graph';\nimport { getItemSummary, joinAndCompact } from '../../lib/formatting';\nimport { VarlockError } from '../../env-graph/lib/errors';\n\n\nfunction showErrorLocationDetails(err: Error) {\n if (!(err instanceof VarlockError) || !err.location) return;\n const errLoc = err.location;\n const errPreview = [\n errLoc.lineStr,\n `${ansis.gray('-'.repeat(errLoc.colNumber - 1))}${ansis.red('^')}`,\n ].join('\\n');\n\n console.log('');\n console.log(`📂 ${errLoc.id}:${errLoc.lineNumber}:${errLoc.colNumber}`);\n console.log(errPreview);\n}\n\nexport function checkForNoEnvFiles(envGraph: EnvGraph) {\n if (Object.keys(envGraph.configSchema).length === 0) {\n console.error('🚨 No .env or .env.schema files found\\n');\n console.error('Run `varlock init` to create a .env.schema file, or use `--path` to specify a file or directory.');\n return gracefulExit(1);\n }\n}\n\nexport function checkForSchemaErrors(envGraph: EnvGraph) {\n // first we check for loading/parse errors - some cases we may want to let it fail silently?\n for (const source of envGraph.sortedDataSources) {\n // do we care about loading errors from disabled sources?\n // if (source.disabled) continue;\n\n if (source.loadingError) {\n console.log(`🚨 Error encountered while loading ${source.label}\\n`);\n\n console.log(source.loadingError.message);\n showErrorLocationDetails(source.loadingError);\n\n // For plugin loading errors, show the full stack trace since it's usually\n // a runtime error from executing the plugin code\n if (source.loadingError.stack && !(source.loadingError instanceof VarlockError)) {\n console.log(`\\n${ansis.dim('Stack trace:')}`);\n console.log(ansis.dim(source.loadingError.stack));\n }\n\n return gracefulExit(1);\n }\n // TODO: unify this with the above!\n if (source.schemaErrors.length) {\n console.log(`🚨 Error(s) encountered in ${source.label}`);\n\n for (const schemaErr of source.schemaErrors) {\n console.log(`- ${schemaErr.message}`);\n showErrorLocationDetails(schemaErr);\n }\n return gracefulExit(1);\n }\n }\n\n // now we check for any schema errors - where something about how things are wired up is invalid\n // NOTE - we should not have run any resolution yet\n // TODO: make sure we are calling this before attempting to resolve values\n // const failingItems = _.filter(_.values(envGraph.configSchema), (item) => item.validationState === 'error');\n // if (failingItems.length > 0) {\n // throw new CliExitError('Schema is currently invalid');\n // }\n}\n\n\nexport class InvalidEnvError extends Error {\n constructor() {\n super('Resolved config/env did not pass validation');\n }\n getFormattedOutput() {\n return `\\n💥 ${ansis.red(this.message)} 💥\\n`;\n }\n}\n\nexport function checkForConfigErrors(envGraph: EnvGraph, opts?: {\n showAll?: boolean\n}) {\n // check for root decorator \"execution\"\n for (const source of envGraph.sortedDataSources) {\n if (source.resolutionErrors.length) {\n console.log(`🚨 Root decorator error(s) in ${source.label}`);\n\n for (const err of source.resolutionErrors) {\n console.log(`- ${err.message}`);\n if (err instanceof VarlockError && err.tip) {\n for (const line of err.tip.split('\\n')) {\n console.log(` ${line}`);\n }\n }\n showErrorLocationDetails(err);\n }\n }\n }\n\n\n\n const failingItems = envGraph.sortedConfigKeys\n .map((k) => envGraph.configSchema[k])\n .filter((item) => item.validationState === 'error');\n\n // TODO: use service.isValid?\n if (failingItems.length > 0) {\n console.error(`\\n🚨 🚨 🚨 ${ansis.bold.underline('Configuration is currently invalid ')} 🚨 🚨 🚨\\n`);\n console.error('Invalid items:\\n');\n\n _.each(failingItems, (item: ConfigItem) => {\n console.error(getItemSummary(item));\n console.error();\n });\n if (opts?.showAll) {\n console.error();\n console.error(joinAndCompact([\n 'Valid items:',\n ansis.italic.gray('(remove `--show-all` flag to hide)'),\n ]));\n console.error();\n const validItems = envGraph.sortedConfigKeys\n .map((k) => envGraph.configSchema[k])\n .filter((i) => !!i.isValid);\n _.each(validItems, (item: ConfigItem) => {\n console.error(getItemSummary(item));\n });\n }\n\n throw new InvalidEnvError();\n }\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import { createDebug } from './chunk-QZ6HBRJC.js';
2
2
  import { __commonJS, __name, __toESM } from './chunk-6PEHRAEP.js';
3
- import path from 'path';
3
+ import path, { join } from 'path';
4
4
  import fs, { access } from 'fs/promises';
5
5
  import os from 'os';
6
- import fs3, { accessSync } from 'fs';
6
+ import fs3, { accessSync, existsSync } from 'fs';
7
7
  import { exec } from 'child_process';
8
8
  import { promisify } from 'util';
9
9
  import { createRequire } from 'module';
@@ -8024,6 +8024,18 @@ __name(pathExistsSync, "pathExistsSync");
8024
8024
 
8025
8025
  // src/env-graph/lib/plugins.ts
8026
8026
  var import_semver = __toESM(require_semver2(), 1);
8027
+ function getUserVarlockDir() {
8028
+ const home = os.homedir();
8029
+ if (process.env.XDG_CONFIG_HOME) {
8030
+ return join(process.env.XDG_CONFIG_HOME, "varlock");
8031
+ }
8032
+ const legacyDir = join(home, ".varlock");
8033
+ if (existsSync(legacyDir)) {
8034
+ return legacyDir;
8035
+ }
8036
+ return join(home, ".config", "varlock");
8037
+ }
8038
+ __name(getUserVarlockDir, "getUserVarlockDir");
8027
8039
 
8028
8040
  // src/env-graph/lib/error-location.ts
8029
8041
  function getErrorLocation(source, parserNode) {
@@ -8304,10 +8316,10 @@ var builtInRootDecorators = [
8304
8316
  throw new SchemaError("@setValuesBulk expects only one positional argument - the data resolver");
8305
8317
  }
8306
8318
  if (argsVal.objArgs) {
8307
- const validOptions = /* @__PURE__ */ new Set(["format", "createMissing"]);
8319
+ const validOptions = /* @__PURE__ */ new Set(["format", "createMissing", "enabled"]);
8308
8320
  for (const key of Object.keys(argsVal.objArgs)) {
8309
8321
  if (!validOptions.has(key)) {
8310
- throw new SchemaError(`@setValuesBulk: unknown option "${key}". Valid options: format, createMissing`);
8322
+ throw new SchemaError(`@setValuesBulk: unknown option "${key}". Valid options: format, createMissing, enabled`);
8311
8323
  }
8312
8324
  }
8313
8325
  const formatResolver = argsVal.objArgs.format;
@@ -8333,6 +8345,15 @@ var builtInRootDecorators = [
8333
8345
  },
8334
8346
  async execute(processedData) {
8335
8347
  const { graph, dataSource, argsResolver } = processedData;
8348
+ const enabledResolver = argsResolver.objArgs?.enabled;
8349
+ if (enabledResolver !== void 0) {
8350
+ const enabledValue = await enabledResolver.resolve();
8351
+ if (!my_dash_default.isBoolean(enabledValue)) {
8352
+ dataSource._loadingError = new SchemaError("@setValuesBulk: enabled must be a boolean");
8353
+ return;
8354
+ }
8355
+ if (!enabledValue) return;
8356
+ }
8336
8357
  const resolved = await argsResolver.resolve();
8337
8358
  const dataString = resolved.arr[0];
8338
8359
  const format = resolved.obj?.format;
@@ -8356,7 +8377,7 @@ var builtInRootDecorators = [
8356
8377
  dataSource._loadingError = err instanceof SchemaError ? err : new SchemaError(err);
8357
8378
  return;
8358
8379
  }
8359
- const { ConfigItem: ConfigItem2 } = await import('./config-item-GN5AUR45.js');
8380
+ const { ConfigItem: ConfigItem2 } = await import('./config-item-K7KWEJD2.js');
8360
8381
  for (const [key, entry] of Object.entries(entries)) {
8361
8382
  const existsInSchema = key in graph.configSchema;
8362
8383
  if (!existsInSchema && !createMissing) {
@@ -9794,7 +9815,7 @@ async function registerPluginInGraph(graph, plugin, pluginDecorator) {
9794
9815
  __name(registerPluginInGraph, "registerPluginInGraph");
9795
9816
  async function downloadPlugin(url) {
9796
9817
  const exec2 = promisify(exec);
9797
- const cacheDir = path.join(os.homedir(), ".varlock", "plugins-cache");
9818
+ const cacheDir = path.join(getUserVarlockDir(), "plugins-cache");
9798
9819
  const indexPath = path.join(cacheDir, "index.json");
9799
9820
  await fs.mkdir(cacheDir, { recursive: true });
9800
9821
  let index = {};
@@ -11518,6 +11539,7 @@ var ConfigItem = class {
11518
11539
  const usingOptional = requiredDec.name === "optional";
11519
11540
  if (requiredDec.decValueResolver?.fnName !== "\0static") {
11520
11541
  isRequiredDynamic = true;
11542
+ break;
11521
11543
  }
11522
11544
  const requiredDecoratorVal = await requiredDec.resolve();
11523
11545
  if (requiredDec.schemaErrors.length) {
@@ -11561,6 +11583,7 @@ var ConfigItem = class {
11561
11583
  const sensitiveDec = sensitiveDecs[0];
11562
11584
  if (sensitiveDec) {
11563
11585
  const usingPublic = sensitiveDec.name === "public";
11586
+ if (sensitiveDec.decValueResolver?.fnName !== "\0static") break;
11564
11587
  const sensitiveDecValue = await sensitiveDec.resolve();
11565
11588
  if (sensitiveDec.schemaErrors.length) break;
11566
11589
  if (![true, false, void 0].includes(sensitiveDecValue)) break;
@@ -11653,6 +11676,6 @@ var ConfigItem = class {
11653
11676
  };
11654
11677
  //! these are probably not relevant anymore, or needs to move to a plugin layer?
11655
11678
 
11656
- export { CoercionError, ConfigItem, ConfigLoadError, DirectoryDataSource, DotEnvFileDataSource, EnvGraph2 as EnvGraph, ParsedEnvSpecStaticValue, ResolutionError, SchemaError, ValidationError, VarlockError, envSpecUpdater, my_dash_default, parseEnvSpecDotEnvFile, pathExists, pathExistsSync, tryCatch };
11657
- //# sourceMappingURL=chunk-CBP4M7BN.js.map
11658
- //# sourceMappingURL=chunk-CBP4M7BN.js.map
11679
+ export { CoercionError, ConfigItem, ConfigLoadError, DirectoryDataSource, DotEnvFileDataSource, EnvGraph2 as EnvGraph, ParsedEnvSpecStaticValue, ResolutionError, SchemaError, ValidationError, VarlockError, envSpecUpdater, getUserVarlockDir, my_dash_default, parseEnvSpecDotEnvFile, pathExists, pathExistsSync, require_semver2 as require_semver, tryCatch };
11680
+ //# sourceMappingURL=chunk-PCRIVT4T.js.map
11681
+ //# sourceMappingURL=chunk-PCRIVT4T.js.map