varlock 0.0.7 → 0.0.9

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 (85) hide show
  1. package/dist/auto-load.js +5 -5
  2. package/dist/{chunk-7NCUE6IU.js → chunk-2CM4YUFY.js} +41 -18
  3. package/dist/chunk-2CM4YUFY.js.map +1 -0
  4. package/dist/{chunk-4D3QUGGJ.js → chunk-4CE75BSX.js} +5 -6
  5. package/dist/chunk-4CE75BSX.js.map +1 -0
  6. package/dist/{chunk-DAZNZPLN.js → chunk-4WMY2EW3.js} +559 -75
  7. package/dist/chunk-4WMY2EW3.js.map +1 -0
  8. package/dist/{chunk-HQ3K6KKC.js → chunk-CYYLAV42.js} +3 -3
  9. package/dist/{chunk-HQ3K6KKC.js.map → chunk-CYYLAV42.js.map} +1 -1
  10. package/dist/{chunk-2AA6IZBK.js → chunk-ELJZUQX3.js} +4 -4
  11. package/dist/chunk-ELJZUQX3.js.map +1 -0
  12. package/dist/{chunk-67DF2S4X.js → chunk-FLO6F7B6.js} +5 -5
  13. package/dist/{chunk-67DF2S4X.js.map → chunk-FLO6F7B6.js.map} +1 -1
  14. package/dist/{chunk-BDA3K24R.js → chunk-FYLMYWUF.js} +7 -8
  15. package/dist/chunk-FYLMYWUF.js.map +1 -0
  16. package/dist/{chunk-XCHNL72R.js → chunk-GWQT5VGW.js} +7 -8
  17. package/dist/chunk-GWQT5VGW.js.map +1 -0
  18. package/dist/{chunk-Z52EXRDT.js → chunk-KCX4NC7Q.js} +6 -7
  19. package/dist/chunk-KCX4NC7Q.js.map +1 -0
  20. package/dist/{chunk-WRLSFZTQ.js → chunk-LS6F7BSZ.js} +8 -8
  21. package/dist/{chunk-WRLSFZTQ.js.map → chunk-LS6F7BSZ.js.map} +1 -1
  22. package/dist/{chunk-ZDGB2ZFV.js → chunk-PB7RWVE6.js} +14 -14
  23. package/dist/chunk-PB7RWVE6.js.map +1 -0
  24. package/dist/chunk-WYJDUDC4.js +14 -0
  25. package/dist/{chunk-ITXNRGOJ.js.map → chunk-WYJDUDC4.js.map} +1 -1
  26. package/dist/{chunk-WOHPERDH.js → chunk-ZUG7BEY5.js} +4 -4
  27. package/dist/chunk-ZUG7BEY5.js.map +1 -0
  28. package/dist/{chunk-LJKKUJMC.js → chunk-ZW2T4C6A.js} +419 -77
  29. package/dist/chunk-ZW2T4C6A.js.map +1 -0
  30. package/dist/cli/cli-executable.js +25 -33
  31. package/dist/cli/cli-executable.js.map +1 -1
  32. package/dist/dotenv-compat.js +5 -5
  33. package/dist/env-KH4bPru7.d.ts +356 -0
  34. package/dist/index.d.ts +36 -2
  35. package/dist/index.js +27 -12
  36. package/dist/index.js.map +1 -1
  37. package/dist/init.command-ZRQOE2OK.js +9 -0
  38. package/dist/{init.command-NWFSUQWW.js.map → init.command-ZRQOE2OK.js.map} +1 -1
  39. package/dist/load.command-YBN3BW6U.js +9 -0
  40. package/dist/{load.command-U3ZEZYEV.js.map → load.command-YBN3BW6U.js.map} +1 -1
  41. package/dist/login.command-F5AWKZKA.js +8 -0
  42. package/dist/{login.command-SWBJENRF.js.map → login.command-F5AWKZKA.js.map} +1 -1
  43. package/dist/run.command-WWJ6ZE26.js +9 -0
  44. package/dist/{run.command-WNANCLWN.js.map → run.command-WWJ6ZE26.js.map} +1 -1
  45. package/dist/runtime/env.d.ts +3 -1
  46. package/dist/runtime/env.js +1 -1
  47. package/dist/runtime/patch-console.js +2 -2
  48. package/dist/runtime/patch-response.js +2 -2
  49. package/dist/runtime/patch-server-response.js +2 -2
  50. package/dist/telemetry.command-IS2JLIZM.js +8 -0
  51. package/dist/{telemetry.command-QMUHAB3Z.js.map → telemetry.command-IS2JLIZM.js.map} +1 -1
  52. package/package.json +6 -7
  53. package/dist/chunk-2AA6IZBK.js.map +0 -1
  54. package/dist/chunk-2H7TDBLD.js +0 -172
  55. package/dist/chunk-2H7TDBLD.js.map +0 -1
  56. package/dist/chunk-4D3QUGGJ.js.map +0 -1
  57. package/dist/chunk-7NCUE6IU.js.map +0 -1
  58. package/dist/chunk-BDA3K24R.js.map +0 -1
  59. package/dist/chunk-DAZNZPLN.js.map +0 -1
  60. package/dist/chunk-ITXNRGOJ.js +0 -14
  61. package/dist/chunk-LHTLO65N.js +0 -99
  62. package/dist/chunk-LHTLO65N.js.map +0 -1
  63. package/dist/chunk-LJKKUJMC.js.map +0 -1
  64. package/dist/chunk-PUGFIZE3.js +0 -143
  65. package/dist/chunk-PUGFIZE3.js.map +0 -1
  66. package/dist/chunk-QDGAWJPB.js +0 -59
  67. package/dist/chunk-QDGAWJPB.js.map +0 -1
  68. package/dist/chunk-WOHPERDH.js.map +0 -1
  69. package/dist/chunk-X52WCHVG.js +0 -540
  70. package/dist/chunk-X52WCHVG.js.map +0 -1
  71. package/dist/chunk-XCHNL72R.js.map +0 -1
  72. package/dist/chunk-YZ2H2QXX.js +0 -32
  73. package/dist/chunk-YZ2H2QXX.js.map +0 -1
  74. package/dist/chunk-Z52EXRDT.js.map +0 -1
  75. package/dist/chunk-ZDGB2ZFV.js.map +0 -1
  76. package/dist/doctor.command-TKHDKSUY.js +0 -7
  77. package/dist/doctor.command-TKHDKSUY.js.map +0 -1
  78. package/dist/encrypt.command-AGHQ4KTI.js +0 -7
  79. package/dist/encrypt.command-AGHQ4KTI.js.map +0 -1
  80. package/dist/env-k8iRuXIH.d.ts +0 -42
  81. package/dist/init.command-NWFSUQWW.js +0 -13
  82. package/dist/load.command-U3ZEZYEV.js +0 -12
  83. package/dist/login.command-SWBJENRF.js +0 -10
  84. package/dist/run.command-WNANCLWN.js +0 -12
  85. package/dist/telemetry.command-QMUHAB3Z.js +0 -10
@@ -1,12 +1,91 @@
1
- import { __name } from './chunk-XN24GZXQ.js';
2
- import { exec } from 'node:child_process';
3
- import { promisify } from 'node:util';
4
- import fs2 from 'node:fs/promises';
5
- import path from 'node:path';
1
+ import { redactString } from './chunk-FGMXIEFA.js';
2
+ import { __commonJS, __name, __toESM } from './chunk-XN24GZXQ.js';
3
+ import { exec } from 'child_process';
4
+ import { promisify } from 'util';
5
+ import fs2 from 'fs/promises';
6
+ import path from 'path';
6
7
  import { ParsedEnvSpecStaticValue, ParsedEnvSpecFunctionCall, ParsedEnvSpecKeyValuePair, parseEnvSpecDotEnvFile } from '@env-spec/parser';
7
- import fs from 'node:fs';
8
+ import fs from 'fs';
9
+ import process2 from 'process';
8
10
 
9
- // ../../node_modules/.pnpm/@sindresorhus+is@7.0.1/node_modules/@sindresorhus/is/distribution/index.js
11
+ // ../../node_modules/.pnpm/ansis@4.1.0/node_modules/ansis/index.cjs
12
+ var require_ansis = __commonJS({
13
+ "../../node_modules/.pnpm/ansis@4.1.0/node_modules/ansis/index.cjs"(exports, module) {
14
+ var e;
15
+ var t;
16
+ var r;
17
+ var { defineProperty: n, setPrototypeOf: l, create: o, keys: s } = Object;
18
+ var i = "";
19
+ var { round: c, max: a2 } = Math;
20
+ var p = /* @__PURE__ */ __name((e2) => {
21
+ let t2 = /([a-f\d]{3,6})/i.exec(e2)?.[1], r2 = t2?.length, n2 = parseInt(6 ^ r2 ? 3 ^ r2 ? "0" : t2[0] + t2[0] + t2[1] + t2[1] + t2[2] + t2[2] : t2, 16);
22
+ return [n2 >> 16 & 255, n2 >> 8 & 255, 255 & n2];
23
+ }, "p");
24
+ var u = /* @__PURE__ */ __name((e2, t2, r2) => e2 ^ t2 || t2 ^ r2 ? 16 + 36 * c(e2 / 51) + 6 * c(t2 / 51) + c(r2 / 51) : 8 > e2 ? 16 : e2 > 248 ? 231 : c(24 * (e2 - 8) / 247) + 232, "u");
25
+ var d = /* @__PURE__ */ __name((e2) => {
26
+ let t2, r2, n2, l2, o2;
27
+ return 8 > e2 ? 30 + e2 : 16 > e2 ? e2 - 8 + 90 : (232 > e2 ? (o2 = (e2 -= 16) % 36, t2 = (e2 / 36 | 0) / 5, r2 = (o2 / 6 | 0) / 5, n2 = o2 % 6 / 5) : t2 = r2 = n2 = (10 * (e2 - 232) + 8) / 255, l2 = 2 * a2(t2, r2, n2), l2 ? 30 + (c(n2) << 2 | c(r2) << 1 | c(t2)) + (2 ^ l2 ? 0 : 60) : 30);
28
+ }, "d");
29
+ var g = (() => {
30
+ let r2 = /* @__PURE__ */ __name((e2) => o2.some((t2) => e2.test(t2)), "r"), n2 = globalThis, l2 = n2.process ?? {}, o2 = l2.argv ?? [], i2 = l2.env ?? {}, c2 = -1;
31
+ try {
32
+ e = "," + s(i2).join(",");
33
+ } catch (e2) {
34
+ i2 = {}, c2 = 0;
35
+ }
36
+ let a3 = "FORCE_COLOR", p2 = { false: 0, 0: 0, 1: 1, 2: 2, 3: 3 }[i2[a3]] ?? -1, u2 = a3 in i2 && p2 || r2(/^--color=?(true|always)?$/);
37
+ return u2 && (c2 = p2), ~c2 || (c2 = ((r3, n3, l3) => (t = r3.TERM, { "24bit": 3, truecolor: 3, ansi256: 2, ansi: 1 }[r3.COLORTERM] || (r3.CI ? /,GITHUB/.test(e) ? 3 : 1 : n3 && "dumb" !== t ? l3 ? 3 : /-256/.test(t) ? 2 : 1 : 0)))(i2, !!i2.PM2_HOME || i2.NEXT_RUNTIME?.includes("edge") || !!l2.stdout?.isTTY, "win32" === l2.platform)), !p2 || i2.NO_COLOR || r2(/^--(no-color|color=(false|never))$/) ? 0 : n2.window?.chrome || u2 && !c2 ? 3 : c2;
38
+ })();
39
+ var f = { open: i, close: i };
40
+ var h = 39;
41
+ var b = 49;
42
+ var O = {};
43
+ var m = /* @__PURE__ */ __name(({ p: e2 }, { open: t2, close: n2 }) => {
44
+ let o2 = /* @__PURE__ */ __name((e3, ...r2) => {
45
+ if (!e3) {
46
+ if (t2 && t2 === n2) return t2;
47
+ if ((e3 ?? i) === i) return i;
48
+ }
49
+ let l2, s3 = e3.raw ? String.raw({ raw: e3 }, ...r2) : i + e3, c3 = o2.p, a3 = c3.o, p2 = c3.c;
50
+ if (s3.includes("\x1B")) for (; c3; c3 = c3.p) {
51
+ let { open: e4, close: t3 } = c3, r3 = t3.length, n3 = i, o3 = 0;
52
+ if (r3) for (; ~(l2 = s3.indexOf(t3, o3)); o3 = l2 + r3) n3 += s3.slice(o3, l2) + e4;
53
+ s3 = n3 + s3.slice(o3);
54
+ }
55
+ return a3 + (s3.includes("\n") ? s3.replace(/(\r?\n)/g, p2 + "$1" + a3) : s3) + p2;
56
+ }, "o"), s2 = t2, c2 = n2;
57
+ return e2 && (s2 = e2.o + t2, c2 = n2 + e2.c), l(o2, r), o2.p = { open: t2, close: n2, o: s2, c: c2, p: e2 }, o2.open = s2, o2.close = c2, o2;
58
+ }, "m");
59
+ var w = /* @__PURE__ */ __name(function(e2 = g) {
60
+ let t2 = { Ansis: w, level: e2, isSupported: /* @__PURE__ */ __name(() => s2, "isSupported"), strip: /* @__PURE__ */ __name((e3) => e3.replace(/[›][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, i), "strip"), extend(e3) {
61
+ for (let t3 in e3) {
62
+ let r2 = e3[t3], l2 = (typeof r2)[0], o2 = "s" === l2 ? x(...p(r2)) : r2;
63
+ O[t3] = "f" === l2 ? { get() {
64
+ return (...e4) => m(this, r2(...e4));
65
+ } } : { get() {
66
+ let e4 = m(this, o2);
67
+ return n(this, t3, { value: e4 }), e4;
68
+ } };
69
+ }
70
+ return r = o({}, O), l(t2, r), t2;
71
+ } }, s2 = e2 > 0, c2 = /* @__PURE__ */ __name((e3, t3) => s2 ? { open: `\x1B[${e3}m`, close: `\x1B[${t3}m` } : f, "c"), a3 = /* @__PURE__ */ __name((e3) => (t3) => e3(...p(t3)), "a"), y2 = /* @__PURE__ */ __name((e3, t3) => (r2, n2, l2) => c2(`${e3}8;2;${r2};${n2};${l2}`, t3), "y"), R = /* @__PURE__ */ __name((e3, t3) => (r2, n2, l2) => c2(((e4, t4, r3) => d(u(e4, t4, r3)))(r2, n2, l2) + e3, t3), "R"), $ = /* @__PURE__ */ __name((e3) => (t3, r2, n2) => e3(u(t3, r2, n2)), "$"), x = y2(3, h), T = y2(4, b), v = /* @__PURE__ */ __name((e3) => c2("38;5;" + e3, h), "v"), C = /* @__PURE__ */ __name((e3) => c2("48;5;" + e3, b), "C");
72
+ 2 === e2 ? (x = $(v), T = $(C)) : 1 === e2 && (x = R(0, h), T = R(10, b), v = /* @__PURE__ */ __name((e3) => c2(d(e3), h), "v"), C = /* @__PURE__ */ __name((e3) => c2(d(e3) + 10, b), "C"));
73
+ let E, M = { fg: v, bg: C, rgb: x, bgRgb: T, hex: a3(x), bgHex: a3(T), visible: f, reset: c2(0, 0), bold: c2(1, 22), dim: c2(2, 22), italic: c2(3, 23), underline: c2(4, 24), inverse: c2(7, 27), hidden: c2(8, 28), strikethrough: c2(9, 29) }, I = "Bright";
74
+ return "black,red,green,yellow,blue,magenta,cyan,white,gray".split(",").map((e3, t3) => {
75
+ E = "bg" + e3[0].toUpperCase() + e3.slice(1), 8 > t3 ? (M[e3 + I] = c2(90 + t3, h), M[E + I] = c2(100 + t3, b)) : t3 = 60, M[e3] = c2(30 + t3, h), M[E] = c2(40 + t3, b);
76
+ }), t2.extend(M);
77
+ }, "w");
78
+ var y = new w();
79
+ module.exports = y, y.default = y;
80
+ }
81
+ });
82
+
83
+ // ../../node_modules/.pnpm/ansis@4.1.0/node_modules/ansis/index.mjs
84
+ var import_index = __toESM(require_ansis(), 1);
85
+ var ansis_default = import_index.default;
86
+ var { Ansis, fg, bg, rgb, bgRgb, hex, bgHex, reset, inverse, hidden, visible, bold, dim, italic, underline, strikethrough, black, red, green, yellow, blue, magenta, cyan, white, gray, redBright, greenBright, yellowBright, blueBright, magentaBright, cyanBright, whiteBright, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bgGray, bgRedBright, bgGreenBright, bgYellowBright, bgBlueBright, bgMagentaBright, bgCyanBright, bgWhiteBright } = import_index.default;
87
+
88
+ // ../../node_modules/.pnpm/@sindresorhus+is@7.0.2/node_modules/@sindresorhus/is/distribution/index.js
10
89
  var typedArrayTypeNames = [
11
90
  "Int8Array",
12
91
  "Uint8Array",
@@ -497,7 +576,7 @@ function isObservable(value) {
497
576
  if (!value) {
498
577
  return false;
499
578
  }
500
- if (value === value[Symbol.observable]?.()) {
579
+ if (Symbol.observable !== void 0 && value === value[Symbol.observable]?.()) {
501
580
  return true;
502
581
  }
503
582
  if (value === value["@@observable"]?.()) {
@@ -664,13 +743,13 @@ function sortBy(array, compareBy) {
664
743
  compareMap.set(item, compareBy(item));
665
744
  });
666
745
  return array.concat().sort(
667
- (a, b) => compareMap.get(a) - compareMap.get(b)
746
+ (a2, b) => compareMap.get(a2) - compareMap.get(b)
668
747
  );
669
748
  } else {
670
749
  return array.concat().sort(
671
- (a, b) => {
672
- if (a[compareBy] > b[compareBy]) return 1;
673
- return b[compareBy] > a[compareBy] ? -1 : 0;
750
+ (a2, b) => {
751
+ if (a2[compareBy] > b[compareBy]) return 1;
752
+ return b[compareBy] > a2[compareBy] ? -1 : 0;
674
753
  }
675
754
  );
676
755
  }
@@ -701,7 +780,7 @@ function mapValues(obj, fn) {
701
780
  }
702
781
  __name(mapValues, "mapValues");
703
782
  function times(count, fn) {
704
- return Array.from({ length: count }, (_3, i) => fn(i));
783
+ return Array.from({ length: count }, (_4, i) => fn(i));
705
784
  }
706
785
  __name(times, "times");
707
786
  function map(array, fn) {
@@ -718,7 +797,7 @@ var _ = {
718
797
  compact,
719
798
  keys: Object.keys,
720
799
  values: Object.values,
721
- some: /* @__PURE__ */ __name((a, fn) => a.some(fn), "some"),
800
+ some: /* @__PURE__ */ __name((a2, fn) => a2.some(fn), "some"),
722
801
  filter,
723
802
  each,
724
803
  castArray,
@@ -739,47 +818,8 @@ var _ = {
739
818
  isInteger
740
819
  };
741
820
  var my_dash_default = _;
742
- var asyncExec = promisify(exec);
743
-
744
- // ../utils/src/git-utils.ts
745
- async function checkIsFileGitIgnored(path4, warnIfNotGitRepo = false) {
746
- try {
747
- await asyncExec(`git check-ignore ${path4} -q`);
748
- return true;
749
- } catch (err) {
750
- const stderr = err.stderr;
751
- if (stderr.includes("command not found")) return void 0;
752
- if (err.code === "ENOENT") return void 0;
753
- if (stderr === "") return false;
754
- if (stderr.includes("not a git repository")) {
755
- if (warnIfNotGitRepo) {
756
- console.log("\u{1F536} Your code is not currently in a git repository - run `git init` to initialize a new repo.");
757
- }
758
- return false;
759
- }
760
- throw err;
761
- }
762
- }
763
- __name(checkIsFileGitIgnored, "checkIsFileGitIgnored");
764
-
765
- // ../utils/src/try-catch.ts
766
- function isPromise2(obj) {
767
- return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";
768
- }
769
- __name(isPromise2, "isPromise");
770
- async function tryCatch(tryFn, catchFn) {
771
- try {
772
- return await tryFn();
773
- } catch (err) {
774
- const catchResult = catchFn(err);
775
- if (isPromise2(catchResult)) {
776
- await catchResult;
777
- }
778
- }
779
- }
780
- __name(tryCatch, "tryCatch");
781
821
 
782
- // ../env-graph/src/lib/errors.ts
822
+ // env-graph/lib/errors.ts
783
823
  var VarlockError = class extends Error {
784
824
  constructor(errOrMessage, more) {
785
825
  super(my_dash_default.isError(errOrMessage) ? errOrMessage.message : errOrMessage);
@@ -840,6 +880,29 @@ var VarlockError = class extends Error {
840
880
  };
841
881
  }
842
882
  };
883
+ var ConfigLoadError = class extends VarlockError {
884
+ static {
885
+ __name(this, "ConfigLoadError");
886
+ }
887
+ cleanedStack;
888
+ constructor(err) {
889
+ super(err);
890
+ let stackLines = (err.stack?.split("\n") || []).slice(1);
891
+ stackLines = stackLines.filter((l) => {
892
+ if (l.includes(" at ViteNodeRunner.")) return false;
893
+ if (l.includes("core/src/config-loader/config-loader.ts")) return false;
894
+ return true;
895
+ });
896
+ this.message = `${err.name}: ${err.message}`;
897
+ this.cleanedStack = stackLines || [];
898
+ }
899
+ toJSON() {
900
+ return {
901
+ ...super.toJSON(),
902
+ cleanedStack: this.cleanedStack
903
+ };
904
+ }
905
+ };
843
906
  var SchemaError = class extends VarlockError {
844
907
  static {
845
908
  __name(this, "SchemaError");
@@ -882,8 +945,47 @@ var EmptyRequiredValueError = class extends ValidationError {
882
945
  super("Value is required but is currently empty");
883
946
  }
884
947
  };
948
+ var asyncExec = promisify(exec);
949
+
950
+ // ../utils/src/git-utils.ts
951
+ async function checkIsFileGitIgnored(path5, warnIfNotGitRepo = false) {
952
+ try {
953
+ await asyncExec(`git check-ignore ${path5} -q`);
954
+ return true;
955
+ } catch (err) {
956
+ const stderr = err.stderr;
957
+ if (stderr.includes("not found")) return void 0;
958
+ if (err.code === "ENOENT") return void 0;
959
+ if (stderr === "") return false;
960
+ if (stderr.includes("not a git repository")) {
961
+ if (warnIfNotGitRepo) {
962
+ console.log("\u{1F536} Your code is not currently in a git repository - run `git init` to initialize a new repo.");
963
+ }
964
+ return false;
965
+ }
966
+ throw err;
967
+ }
968
+ }
969
+ __name(checkIsFileGitIgnored, "checkIsFileGitIgnored");
970
+
971
+ // ../utils/src/try-catch.ts
972
+ function isPromise2(obj) {
973
+ return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";
974
+ }
975
+ __name(isPromise2, "isPromise");
976
+ async function tryCatch(tryFn, catchFn) {
977
+ try {
978
+ return await tryFn();
979
+ } catch (err) {
980
+ const catchResult = catchFn(err);
981
+ if (isPromise2(catchResult)) {
982
+ await catchResult;
983
+ }
984
+ }
985
+ }
986
+ __name(tryCatch, "tryCatch");
885
987
 
886
- // ../env-graph/src/lib/data-types.ts
988
+ // env-graph/lib/data-types.ts
887
989
  var EnvGraphDataType = class {
888
990
  constructor(def, factory) {
889
991
  this.def = def;
@@ -1172,7 +1274,7 @@ var PortDataType = createEnvGraphDataType(
1172
1274
  );
1173
1275
  var SEMVER_REGEX = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
1174
1276
  var SemverDataType = createEnvGraphDataType(
1175
- (settings) => ({
1277
+ (_settings) => ({
1176
1278
  name: "semver",
1177
1279
  icon: "simple-icons:semver",
1178
1280
  typeDescription: "semantic version string",
@@ -1231,7 +1333,7 @@ var BaseDataTypes = {
1231
1333
  md5: Md5DataType
1232
1334
  };
1233
1335
 
1234
- // ../env-graph/src/lib/simple-queue.ts
1336
+ // env-graph/lib/simple-queue.ts
1235
1337
  var SimpleQueue = class {
1236
1338
  static {
1237
1339
  __name(this, "SimpleQueue");
@@ -1269,7 +1371,7 @@ var SimpleQueue = class {
1269
1371
  }
1270
1372
  };
1271
1373
 
1272
- // ../env-graph/src/lib/resolver.ts
1374
+ // env-graph/lib/resolver.ts
1273
1375
  var execAsync = promisify(exec);
1274
1376
  var Resolver = class {
1275
1377
  constructor(fnArgs) {
@@ -1445,7 +1547,7 @@ var ExecResolver = class _ExecResolver extends Resolver {
1445
1547
  throw new ResolutionError("exec() expects a string child arg");
1446
1548
  }
1447
1549
  try {
1448
- const { stdout, stderr } = await _ExecResolver.execQueue.enqueue(() => execAsync(commandStr));
1550
+ const { stdout } = await _ExecResolver.execQueue.enqueue(() => execAsync(commandStr));
1449
1551
  return stdout.replace(/\n$/, "");
1450
1552
  } catch (err) {
1451
1553
  console.log("exec() failed", err);
@@ -1555,7 +1657,7 @@ var BaseResolvers = [
1555
1657
  RegexResolver
1556
1658
  ];
1557
1659
 
1558
- // ../env-graph/src/lib/graph-utils.ts
1660
+ // env-graph/lib/graph-utils.ts
1559
1661
  function findGraphCycles(graph) {
1560
1662
  const visited = /* @__PURE__ */ new Set();
1561
1663
  const recursionStack = /* @__PURE__ */ new Set();
@@ -1739,7 +1841,7 @@ async function generateTypes(graph, lang, outputPath) {
1739
1841
  }
1740
1842
  __name(generateTypes, "generateTypes");
1741
1843
 
1742
- // ../env-graph/src/lib/env-graph.ts
1844
+ // env-graph/lib/env-graph.ts
1743
1845
  var EnvGraph2 = class {
1744
1846
  static {
1745
1847
  __name(this, "EnvGraph");
@@ -1895,7 +1997,7 @@ var EnvGraph2 = class {
1895
1997
  }
1896
1998
  }
1897
1999
  const itemsToResolveStatus = my_dash_default.mapValues(this.configSchema, () => false);
1898
- const deferred = new Promise((resolve, reject) => {
2000
+ const deferred = new Promise((resolve, _reject) => {
1899
2001
  const markItemCompleted = /* @__PURE__ */ __name((itemKey) => {
1900
2002
  delete itemsToResolveStatus[itemKey];
1901
2003
  if (reverseAdjList[itemKey]) {
@@ -1975,15 +2077,24 @@ var EnvGraph2 = class {
1975
2077
  }
1976
2078
  };
1977
2079
 
1978
- // ../env-graph/src/lib/config-item.ts
2080
+ // env-graph/lib/config-item.ts
1979
2081
  var ConfigItem3 = class {
1980
- constructor(envGraph, key) {
1981
- this.envGraph = envGraph;
1982
- this.key = key;
1983
- }
1984
2082
  static {
1985
2083
  __name(this, "ConfigItem");
1986
2084
  }
2085
+ // annoyingly we cannot use readonly if we want to support `erasableSyntaxOnly`
2086
+ #envGraph;
2087
+ #key;
2088
+ constructor(_envGraph, _key) {
2089
+ this.#envGraph = _envGraph;
2090
+ this.#key = _key;
2091
+ }
2092
+ get envGraph() {
2093
+ return this.#envGraph;
2094
+ }
2095
+ get key() {
2096
+ return this.#key;
2097
+ }
1987
2098
  defs = [];
1988
2099
  addDef(itemDef, source) {
1989
2100
  this.defs.unshift({ itemDef, source });
@@ -2202,7 +2313,6 @@ var ConfigItem3 = class {
2202
2313
  } else if (err instanceof Error) {
2203
2314
  const validationError = new ValidationError("Unexpected error during validation");
2204
2315
  validationError.cause = err;
2205
- console.log(err);
2206
2316
  this.validationErrors = [validationError];
2207
2317
  } else {
2208
2318
  const validationError = new ValidationError(`Unexpected non-error thrown during validation - ${err}`);
@@ -2217,7 +2327,7 @@ var ConfigItem3 = class {
2217
2327
  }
2218
2328
  };
2219
2329
 
2220
- // ../env-graph/src/lib/data-source.ts
2330
+ // env-graph/lib/data-source.ts
2221
2331
  var DATA_SOURCE_TYPES = Object.freeze({
2222
2332
  schema: {
2223
2333
  fileSuffixes: ["schema"],
@@ -2268,7 +2378,7 @@ var EnvGraphDataSource = class {
2268
2378
  return obj;
2269
2379
  }
2270
2380
  };
2271
- var ProcessEnvDataSource2 = class _ProcessEnvDataSource extends EnvGraphDataSource {
2381
+ var ProcessEnvDataSource = class _ProcessEnvDataSource extends EnvGraphDataSource {
2272
2382
  static {
2273
2383
  __name(this, "ProcessEnvDataSource");
2274
2384
  }
@@ -2295,13 +2405,14 @@ var ProcessEnvDataSource2 = class _ProcessEnvDataSource extends EnvGraphDataSour
2295
2405
  }
2296
2406
  };
2297
2407
  var EnvSourceParseError = class extends Error {
2298
- constructor(message, location) {
2299
- super(message);
2300
- this.location = location;
2301
- }
2302
2408
  static {
2303
2409
  __name(this, "EnvSourceParseError");
2304
2410
  }
2411
+ location;
2412
+ constructor(message, _location) {
2413
+ super(message);
2414
+ this.location = _location;
2415
+ }
2305
2416
  };
2306
2417
  var FileBasedDataSource = class extends EnvGraphDataSource {
2307
2418
  static {
@@ -2432,7 +2543,238 @@ var DotEnvFileDataSource = class extends FileBasedDataSource {
2432
2543
  }
2433
2544
  }
2434
2545
  };
2546
+ var SKIP_FILE_TYPES = [".md", ".d.ts"];
2547
+ async function findEnvFiles(opts) {
2548
+ const cwd = opts?.cwd || process.cwd();
2549
+ const envFiles = [];
2550
+ const filesWithinDir = await fs2.readdir(cwd);
2551
+ for (const fileName of filesWithinDir) {
2552
+ if (fileName === ".env" || fileName.startsWith(".env.")) {
2553
+ let skip = false;
2554
+ for (const fileType of SKIP_FILE_TYPES) {
2555
+ if (fileName.endsWith(fileType)) skip = true;
2556
+ }
2557
+ if (skip) continue;
2558
+ envFiles.push(path.join(cwd, fileName));
2559
+ }
2560
+ }
2561
+ return envFiles;
2562
+ }
2563
+ __name(findEnvFiles, "findEnvFiles");
2564
+
2565
+ // env-graph/lib/loader.ts
2566
+ function autoDetectBasePath() {
2567
+ const PWD = process.env.PWD;
2568
+ if (!PWD) {
2569
+ throw new Error("PWD is not set");
2570
+ }
2571
+ return PWD;
2572
+ }
2573
+ __name(autoDetectBasePath, "autoDetectBasePath");
2574
+ async function loadEnvGraph(opts) {
2575
+ const graph = new EnvGraph2();
2576
+ graph.basePath = opts?.basePath ?? autoDetectBasePath();
2577
+ if (opts?.afterInit) {
2578
+ await opts.afterInit(graph);
2579
+ }
2580
+ if (opts?.currentEnvFallback) {
2581
+ graph.envFlagValue = opts.currentEnvFallback;
2582
+ }
2583
+ const envFilePaths = await findEnvFiles({
2584
+ cwd: graph.basePath
2585
+ });
2586
+ for (const envFilePath of envFilePaths) {
2587
+ const fileDataSource = new DotEnvFileDataSource(envFilePath);
2588
+ graph.addDataSource(fileDataSource);
2589
+ await fileDataSource.finishInit();
2590
+ }
2591
+ graph.finalOverridesDataSource = new ProcessEnvDataSource();
2592
+ await graph.finishLoad();
2593
+ return graph;
2594
+ }
2595
+ __name(loadEnvGraph, "loadEnvGraph");
2596
+
2597
+ // src/lib/formatting.ts
2598
+ function applyMods(str, mods) {
2599
+ if (!mods) return str;
2600
+ if (my_dash_default.isArray(mods)) {
2601
+ let modStr = str;
2602
+ mods.forEach((mod) => {
2603
+ modStr = ansis_default[mod](modStr);
2604
+ });
2605
+ return modStr;
2606
+ }
2607
+ return ansis_default[mods](str);
2608
+ }
2609
+ __name(applyMods, "applyMods");
2610
+ function formattedValue(val, showType = false) {
2611
+ let strVal = "";
2612
+ let strType = "";
2613
+ let mods;
2614
+ if (my_dash_default.isBoolean(val)) {
2615
+ strVal = val.toString();
2616
+ mods = ["yellow", "italic"];
2617
+ strType = "boolean";
2618
+ } else if (my_dash_default.isNumber(val)) {
2619
+ strVal = val.toString();
2620
+ mods = "yellow";
2621
+ strType = "number";
2622
+ } else if (my_dash_default.isString(val)) {
2623
+ strVal = `"${val}"`;
2624
+ strType = "string";
2625
+ } else if (my_dash_default.isPlainObject(val)) {
2626
+ strVal = JSON.stringify(val);
2627
+ strType = "object";
2628
+ } else if (val === null) {
2629
+ strVal = "null";
2630
+ mods = "gray";
2631
+ } else if (val === void 0) {
2632
+ strVal = "undefined";
2633
+ mods = "gray";
2634
+ }
2635
+ return [
2636
+ applyMods(strVal, mods),
2637
+ showType && strType ? ansis_default.gray(` (${strType})`) : ""
2638
+ ].join("");
2639
+ }
2640
+ __name(formattedValue, "formattedValue");
2641
+ function joinAndCompact(strings, joinChar = " ") {
2642
+ return strings.filter((s) => (
2643
+ // we'll not filter out empty strings - because it's useful to just add newlines
2644
+ s !== void 0 && s !== null && s !== false
2645
+ )).join(joinChar);
2646
+ }
2647
+ __name(joinAndCompact, "joinAndCompact");
2648
+ var VALIDATION_STATE_COLORS = {
2649
+ error: "red",
2650
+ warn: "yellow",
2651
+ valid: "cyan"
2652
+ };
2653
+ function getItemSummary(item) {
2654
+ const summary = [];
2655
+ const itemErrors = item.errors;
2656
+ const icon = itemErrors.length ? itemErrors[0].icon : "\u2705";
2657
+ const isSensitive = item.isSensitive;
2658
+ const isRequired = item.isRequired;
2659
+ summary.push(joinAndCompact([
2660
+ icon,
2661
+ ansis_default[VALIDATION_STATE_COLORS[item.validationState]](item.key) + (isRequired ? ansis_default.magenta("*") : ""),
2662
+ // ansis.gray(`[type = ${item.type.typeLabel}]`),
2663
+ isSensitive && ` \u{1F510}${ansis_default.gray.italic("sensitive")}`
2664
+ // item.useAt ? ansis.gray.italic(`(${item.useAt?.join(', ')})`) : undefined,
2665
+ ]));
2666
+ let valAsStr = formattedValue(item.resolvedValue, false);
2667
+ if (isSensitive && item.resolvedValue && my_dash_default.isString(item.resolvedValue)) {
2668
+ valAsStr = redactString(item.resolvedValue);
2669
+ }
2670
+ summary.push(joinAndCompact([
2671
+ ansis_default.gray(" \u2514"),
2672
+ valAsStr,
2673
+ item.isCoerced && ansis_default.gray.italic("< coerced from ") + (isSensitive ? formattedValue(item.resolvedRawValue) : formattedValue(item.resolvedRawValue, false))
2674
+ ]));
2675
+ itemErrors?.forEach((err) => {
2676
+ summary.push(ansis_default[err.isWarning ? "yellow" : "red"](` - ${err.isWarning ? "[WARNING] " : ""}${err.message}`));
2677
+ if (err.tip) {
2678
+ summary.push(...err.tip.split("\n").map((line) => ` ${line}`));
2679
+ }
2680
+ });
2681
+ return summary.join("\n");
2682
+ }
2683
+ __name(getItemSummary, "getItemSummary");
2684
+ var asyncCallbacks = /* @__PURE__ */ new Set();
2685
+ var callbacks = /* @__PURE__ */ new Set();
2686
+ var isCalled = false;
2687
+ var isRegistered = false;
2688
+ async function exit(shouldManuallyExit, isSynchronous, signal) {
2689
+ if (isCalled) {
2690
+ return;
2691
+ }
2692
+ isCalled = true;
2693
+ if (asyncCallbacks.size > 0 && isSynchronous) {
2694
+ console.error([
2695
+ "SYNCHRONOUS TERMINATION NOTICE:",
2696
+ "When explicitly exiting the process via process.exit or via a parent process,",
2697
+ "asynchronous tasks in your exitHooks will not run. Either remove these tasks,",
2698
+ "use gracefulExit() instead of process.exit(), or ensure your parent process",
2699
+ "sends a SIGINT to the process running this code."
2700
+ ].join(" "));
2701
+ }
2702
+ const exitCode = 128 + signal;
2703
+ const done = /* @__PURE__ */ __name((force = false) => {
2704
+ if (force === true || shouldManuallyExit === true) {
2705
+ process2.exit(exitCode);
2706
+ }
2707
+ }, "done");
2708
+ for (const callback of callbacks) {
2709
+ callback(exitCode);
2710
+ }
2711
+ if (isSynchronous) {
2712
+ done();
2713
+ return;
2714
+ }
2715
+ const promises = [];
2716
+ let forceAfter = 0;
2717
+ for (const [callback, wait] of asyncCallbacks) {
2718
+ forceAfter = Math.max(forceAfter, wait);
2719
+ promises.push(Promise.resolve(callback(exitCode)));
2720
+ }
2721
+ const asyncTimer = setTimeout(() => {
2722
+ done(true);
2723
+ }, forceAfter);
2724
+ await Promise.all(promises);
2725
+ clearTimeout(asyncTimer);
2726
+ done();
2727
+ }
2728
+ __name(exit, "exit");
2729
+ function addHook(options) {
2730
+ const { onExit, wait, isSynchronous } = options;
2731
+ const asyncCallbackConfig = [onExit, wait];
2732
+ if (isSynchronous) {
2733
+ callbacks.add(onExit);
2734
+ } else {
2735
+ asyncCallbacks.add(asyncCallbackConfig);
2736
+ }
2737
+ if (!isRegistered) {
2738
+ isRegistered = true;
2739
+ process2.once("beforeExit", exit.bind(void 0, true, false, -128));
2740
+ process2.once("SIGINT", exit.bind(void 0, true, false, 2));
2741
+ process2.once("SIGTERM", exit.bind(void 0, true, false, 15));
2742
+ process2.once("exit", exit.bind(void 0, false, true, 0));
2743
+ process2.on("message", (message) => {
2744
+ if (message === "shutdown") {
2745
+ exit(true, true, -128);
2746
+ }
2747
+ });
2748
+ }
2749
+ return () => {
2750
+ if (isSynchronous) {
2751
+ callbacks.delete(onExit);
2752
+ } else {
2753
+ asyncCallbacks.delete(asyncCallbackConfig);
2754
+ }
2755
+ };
2756
+ }
2757
+ __name(addHook, "addHook");
2758
+ function asyncExitHook(onExit, options = {}) {
2759
+ if (typeof onExit !== "function") {
2760
+ throw new TypeError("onExit must be a function");
2761
+ }
2762
+ if (!(typeof options.wait === "number" && options.wait > 0)) {
2763
+ throw new TypeError("wait must be set to a positive numeric value");
2764
+ }
2765
+ return addHook({
2766
+ onExit,
2767
+ wait: options.wait,
2768
+ isSynchronous: false
2769
+ });
2770
+ }
2771
+ __name(asyncExitHook, "asyncExitHook");
2772
+ function gracefulExit(signal = 0) {
2773
+ exit(true, false, -128 + signal);
2774
+ }
2775
+ __name(gracefulExit, "gracefulExit");
2776
+ //! these are probably not relevant anymore, or needs to move to a plugin layer?
2435
2777
 
2436
- export { DotEnvFileDataSource, EnvGraph2 as EnvGraph, EnvSourceParseError, ProcessEnvDataSource2 as ProcessEnvDataSource, StaticValueResolver, checkIsFileGitIgnored, my_dash_default };
2437
- //# sourceMappingURL=chunk-LJKKUJMC.js.map
2438
- //# sourceMappingURL=chunk-LJKKUJMC.js.map
2778
+ export { CoercionError, ConfigLoadError, DotEnvFileDataSource, EnvGraph2 as EnvGraph, EnvSourceParseError, ProcessEnvDataSource, ResolutionError, SchemaError, StaticValueResolver, ValidationError, ansis_default, asyncExitHook, checkIsFileGitIgnored, getItemSummary, gracefulExit, joinAndCompact, loadEnvGraph, my_dash_default };
2779
+ //# sourceMappingURL=chunk-ZW2T4C6A.js.map
2780
+ //# sourceMappingURL=chunk-ZW2T4C6A.js.map