varlock 0.7.4 → 0.8.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 (89) hide show
  1. package/dist/auto-load.js +2 -2
  2. package/dist/{chunk-ZB2JSJLY.js → chunk-2VEY75X6.js} +5 -5
  3. package/dist/{chunk-ZB2JSJLY.js.map → chunk-2VEY75X6.js.map} +1 -1
  4. package/dist/{chunk-FVFI4EQN.js → chunk-2XBRI7XK.js} +9 -7
  5. package/dist/chunk-2XBRI7XK.js.map +1 -0
  6. package/dist/{chunk-JV27VNND.js → chunk-5224KHFW.js} +3 -3
  7. package/dist/{chunk-JV27VNND.js.map → chunk-5224KHFW.js.map} +1 -1
  8. package/dist/chunk-EZKZ7DTJ.js +83 -0
  9. package/dist/chunk-EZKZ7DTJ.js.map +1 -0
  10. package/dist/{chunk-CNDSEDGU.js → chunk-FAYBUX7A.js} +13 -8
  11. package/dist/chunk-FAYBUX7A.js.map +1 -0
  12. package/dist/{chunk-RYMTOGGL.js → chunk-HPZ6RHKX.js} +3 -3
  13. package/dist/{chunk-RYMTOGGL.js.map → chunk-HPZ6RHKX.js.map} +1 -1
  14. package/dist/{chunk-NTGBMXQQ.js → chunk-I3TJGA4C.js} +8 -7
  15. package/dist/chunk-I3TJGA4C.js.map +1 -0
  16. package/dist/{chunk-W4CM34OJ.js → chunk-KF6GH4EB.js} +4 -5
  17. package/dist/chunk-KF6GH4EB.js.map +1 -0
  18. package/dist/{chunk-5LNYCOEO.js → chunk-KG6Y2XNO.js} +642 -382
  19. package/dist/chunk-KG6Y2XNO.js.map +1 -0
  20. package/dist/{chunk-ANZNVJLY.js → chunk-MF6XFXBM.js} +8 -6
  21. package/dist/chunk-MF6XFXBM.js.map +1 -0
  22. package/dist/{chunk-HMMDVPDG.js → chunk-NNX7MUL4.js} +9 -7
  23. package/dist/chunk-NNX7MUL4.js.map +1 -0
  24. package/dist/{chunk-EC3NKELX.js → chunk-R2HBGT75.js} +5 -5
  25. package/dist/{chunk-EC3NKELX.js.map → chunk-R2HBGT75.js.map} +1 -1
  26. package/dist/{chunk-J4PGGBUP.js → chunk-UD2MEMET.js} +9 -8
  27. package/dist/chunk-UD2MEMET.js.map +1 -0
  28. package/dist/{chunk-CS57IAAJ.js → chunk-Y2RDOQTW.js} +10 -9
  29. package/dist/chunk-Y2RDOQTW.js.map +1 -0
  30. package/dist/{chunk-QLNQ3KVC.js → chunk-YEHNBSMI.js} +4 -4
  31. package/dist/{chunk-QLNQ3KVC.js.map → chunk-YEHNBSMI.js.map} +1 -1
  32. package/dist/{chunk-FBBCEY7C.js → chunk-YHOWSHVH.js} +3 -3
  33. package/dist/chunk-YHOWSHVH.js.map +1 -0
  34. package/dist/{chunk-R54KUFZA.js → chunk-YYMEVUB6.js} +4 -4
  35. package/dist/{chunk-R54KUFZA.js.map → chunk-YYMEVUB6.js.map} +1 -1
  36. package/dist/cli/cli-executable.js +35 -26
  37. package/dist/cli/cli-executable.js.map +1 -1
  38. package/dist/config-item-PBUWXK73.js +5 -0
  39. package/dist/{config-item-IYYV4PO6.js.map → config-item-PBUWXK73.js.map} +1 -1
  40. package/dist/dotenv-compat.js +2 -2
  41. package/dist/{env-graph-BxA2OztA.d.ts → env-graph-BnquQhm-.d.ts} +12 -3
  42. package/dist/explain.command-L32BQ7MB.js +12 -0
  43. package/dist/{explain.command-VFR5SUW3.js.map → explain.command-L32BQ7MB.js.map} +1 -1
  44. package/dist/index.d.ts +6 -7
  45. package/dist/index.js +5 -5
  46. package/dist/init.command-COWS3UCC.js +11 -0
  47. package/dist/{init.command-HRY74HHU.js.map → init.command-COWS3UCC.js.map} +1 -1
  48. package/dist/install-plugin.command-UADLHWVP.js +11 -0
  49. package/dist/{install-plugin.command-WDCWQWT7.js.map → install-plugin.command-UADLHWVP.js.map} +1 -1
  50. package/dist/lib/exec-sync-varlock.js +1 -1
  51. package/dist/load.command-LOE3UVYT.js +12 -0
  52. package/dist/{load.command-FNMIEIJB.js.map → load.command-LOE3UVYT.js.map} +1 -1
  53. package/dist/plugin-lib.d.ts +2 -2
  54. package/dist/printenv.command-SA7E2DJW.js +12 -0
  55. package/dist/{printenv.command-3HLXLNHS.js.map → printenv.command-SA7E2DJW.js.map} +1 -1
  56. package/dist/run.command-HOW5XU2R.js +13 -0
  57. package/dist/{run.command-SXM3J6GI.js.map → run.command-HOW5XU2R.js.map} +1 -1
  58. package/dist/runtime/env.d.ts +1 -1
  59. package/dist/scan.command-K27R7LVS.js +13 -0
  60. package/dist/{scan.command-PW7HYURX.js.map → scan.command-K27R7LVS.js.map} +1 -1
  61. package/dist/telemetry.command-DQY3TLPG.js +11 -0
  62. package/dist/{telemetry.command-4HKKZK7N.js.map → telemetry.command-DQY3TLPG.js.map} +1 -1
  63. package/dist/typegen.command-BT6BXTLO.js +12 -0
  64. package/dist/{typegen.command-O6OXWCVX.js.map → typegen.command-BT6BXTLO.js.map} +1 -1
  65. package/package.json +2 -2
  66. package/dist/chunk-4JWJZ4P3.js +0 -86
  67. package/dist/chunk-4JWJZ4P3.js.map +0 -1
  68. package/dist/chunk-5LNYCOEO.js.map +0 -1
  69. package/dist/chunk-ANZNVJLY.js.map +0 -1
  70. package/dist/chunk-CNDSEDGU.js.map +0 -1
  71. package/dist/chunk-CS57IAAJ.js.map +0 -1
  72. package/dist/chunk-FBBCEY7C.js.map +0 -1
  73. package/dist/chunk-FVFI4EQN.js.map +0 -1
  74. package/dist/chunk-GGBNUVWR.js +0 -63
  75. package/dist/chunk-GGBNUVWR.js.map +0 -1
  76. package/dist/chunk-HMMDVPDG.js.map +0 -1
  77. package/dist/chunk-J4PGGBUP.js.map +0 -1
  78. package/dist/chunk-NTGBMXQQ.js.map +0 -1
  79. package/dist/chunk-W4CM34OJ.js.map +0 -1
  80. package/dist/config-item-IYYV4PO6.js +0 -5
  81. package/dist/explain.command-VFR5SUW3.js +0 -12
  82. package/dist/init.command-HRY74HHU.js +0 -12
  83. package/dist/install-plugin.command-WDCWQWT7.js +0 -11
  84. package/dist/load.command-FNMIEIJB.js +0 -12
  85. package/dist/printenv.command-3HLXLNHS.js +0 -12
  86. package/dist/run.command-SXM3J6GI.js +0 -13
  87. package/dist/scan.command-PW7HYURX.js +0 -14
  88. package/dist/telemetry.command-4HKKZK7N.js +0 -11
  89. package/dist/typegen.command-O6OXWCVX.js +0 -12
@@ -4,7 +4,7 @@ import path2, { join } from 'path';
4
4
  import fs2, { access } from 'fs/promises';
5
5
  import os from 'os';
6
6
  import fs4, { accessSync, existsSync } from 'fs';
7
- import { exec } from 'child_process';
7
+ import { exec, spawn } from 'child_process';
8
8
  import { styleText, promisify } from 'util';
9
9
  import { createRequire } from 'module';
10
10
  import { pathToFileURL } from 'url';
@@ -2038,7 +2038,7 @@ var require_src = __commonJS({
2038
2038
  }
2039
2039
  });
2040
2040
 
2041
- // ../env-spec-parser/dist/chunk-XRNR4FE7.mjs
2041
+ // ../env-spec-parser/dist/chunk-RRVAHNIY.mjs
2042
2042
  var __defProp = Object.defineProperty;
2043
2043
  var __name2 = /* @__PURE__ */ __name((target, value) => __defProp(target, "name", { value, configurable: true }), "__name");
2044
2044
  var VALID_NUMBER_REGEX = /^-?(0|([1-9][0-9]*))?(\.[0-9]+)?$/;
@@ -2114,6 +2114,27 @@ var ParsedEnvSpecStaticValue = class {
2114
2114
  return `${this.data.quote || ""}${strVal}${this.data.quote || ""}`;
2115
2115
  }
2116
2116
  };
2117
+ var ParsedEnvSpecRegexLiteral = class {
2118
+ static {
2119
+ __name(this, "ParsedEnvSpecRegexLiteral");
2120
+ }
2121
+ constructor(data) {
2122
+ this.data = data;
2123
+ this.pattern = data.pattern;
2124
+ this.flags = data.flags;
2125
+ }
2126
+ static {
2127
+ __name2(this, "ParsedEnvSpecRegexLiteral");
2128
+ }
2129
+ pattern;
2130
+ flags;
2131
+ get value() {
2132
+ return new RegExp(this.pattern, this.flags);
2133
+ }
2134
+ toString() {
2135
+ return this.data.rawValue;
2136
+ }
2137
+ };
2117
2138
  var ParsedEnvSpecKeyValuePair = class {
2118
2139
  static {
2119
2140
  __name(this, "ParsedEnvSpecKeyValuePair");
@@ -2150,13 +2171,20 @@ var ParsedEnvSpecFunctionArgs = class {
2150
2171
  get simplifiedValues() {
2151
2172
  if (this.data.values.length === 0) return [];
2152
2173
  const vals = this.data.values;
2153
- if (vals.every((i) => i instanceof ParsedEnvSpecStaticValue)) {
2174
+ if (vals.every((i) => i instanceof ParsedEnvSpecStaticValue || i instanceof ParsedEnvSpecRegexLiteral)) {
2154
2175
  return vals.map((val) => val.value);
2155
2176
  } else if (vals.every((i) => i instanceof ParsedEnvSpecKeyValuePair)) {
2156
2177
  const obj = {};
2157
2178
  vals.forEach((val) => {
2158
- if (val.value instanceof ParsedEnvSpecStaticValue) {
2179
+ if (val.value instanceof ParsedEnvSpecRegexLiteral) {
2159
2180
  obj[val.key] = val.value.value;
2181
+ } else if (val.value instanceof ParsedEnvSpecStaticValue) {
2182
+ obj[val.key] = val.value.value;
2183
+ } else if (val.value instanceof ParsedEnvSpecFunctionCall && val.value.name === "regex") {
2184
+ const args = val.value.simplifiedArgs;
2185
+ if (typeof args[0] === "string") {
2186
+ obj[val.key] = new RegExp(args[0]);
2187
+ }
2160
2188
  }
2161
2189
  });
2162
2190
  return obj;
@@ -2199,6 +2227,8 @@ var ParsedEnvSpecDecorator = class {
2199
2227
  this.data = data;
2200
2228
  if (!this.data.value) {
2201
2229
  this.value = new ParsedEnvSpecStaticValue({ rawValue: true, isImplicit: true });
2230
+ } else if (this.data.value instanceof ParsedEnvSpecRegexLiteral) {
2231
+ this.value = this.data.value;
2202
2232
  } else {
2203
2233
  const expanded = expand(this.data.value);
2204
2234
  if (expanded instanceof ParsedEnvSpecKeyValuePair) {
@@ -2350,13 +2380,17 @@ var ParsedEnvSpecConfigItem = class {
2350
2380
  constructor(data) {
2351
2381
  this.data = data;
2352
2382
  if (this.data.value) {
2353
- const expanded = expand(this.data.value);
2354
- if (expanded instanceof ParsedEnvSpecKeyValuePair) {
2355
- throw new Error("Nested key-value pair found in config item");
2356
- } else if (expanded instanceof ParsedEnvSpecFunctionArgs) {
2357
- throw new Error("Top-level config item cannot be a bare function args");
2383
+ if (this.data.value instanceof ParsedEnvSpecRegexLiteral) {
2384
+ this.value = this.data.value;
2385
+ } else {
2386
+ const expanded = expand(this.data.value);
2387
+ if (expanded instanceof ParsedEnvSpecKeyValuePair) {
2388
+ throw new Error("Nested key-value pair found in config item");
2389
+ } else if (expanded instanceof ParsedEnvSpecFunctionArgs) {
2390
+ throw new Error("Top-level config item cannot be a bare function args");
2391
+ }
2392
+ this.value = expanded;
2358
2393
  }
2359
- this.value = expanded;
2360
2394
  }
2361
2395
  }
2362
2396
  static {
@@ -2587,6 +2621,8 @@ function expandHelper(val, expandStaticFn) {
2587
2621
  key: val.key,
2588
2622
  val: expandedVal
2589
2623
  });
2624
+ } else if (val instanceof ParsedEnvSpecRegexLiteral) {
2625
+ return val;
2590
2626
  } else if (val instanceof ParsedEnvSpecStaticValue) {
2591
2627
  if (typeof val.value !== "string") return val;
2592
2628
  if (val.data.quote === "'") return val;
@@ -2869,13 +2905,15 @@ function peg$parse(input, options) {
2869
2905
  const peg$c6 = "(";
2870
2906
  const peg$c7 = ",";
2871
2907
  const peg$c8 = ")";
2872
- const peg$c9 = '\\"';
2873
- const peg$c10 = "\\'";
2874
- const peg$c11 = "\\`";
2875
- const peg$c12 = '"""';
2876
- const peg$c13 = '\\"""';
2877
- const peg$c14 = "```";
2878
- const peg$c15 = "\\```";
2908
+ const peg$c9 = "/";
2909
+ const peg$c10 = "\\/";
2910
+ const peg$c11 = '\\"';
2911
+ const peg$c12 = "\\'";
2912
+ const peg$c13 = "\\`";
2913
+ const peg$c14 = '"""';
2914
+ const peg$c15 = '\\"""';
2915
+ const peg$c16 = "```";
2916
+ const peg$c17 = "\\```";
2879
2917
  const peg$r0 = /^[a-zA-Z_]/;
2880
2918
  const peg$r1 = /^[a-zA-Z0-9_.\-]/;
2881
2919
  const peg$r2 = /^[^\n]/;
@@ -2886,15 +2924,17 @@ function peg$parse(input, options) {
2886
2924
  const peg$r7 = /^[ \t]/;
2887
2925
  const peg$r8 = /^[ \t\n]/;
2888
2926
  const peg$r9 = /^[\-=*#]/;
2889
- const peg$r10 = /^['"`]/;
2890
- const peg$r11 = /^[^#\n]/;
2891
- const peg$r12 = /^[^# \n]/;
2892
- const peg$r13 = /^["]/;
2893
- const peg$r14 = /^[^"\n]/;
2894
- const peg$r15 = /^[']/;
2895
- const peg$r16 = /^[^'\n]/;
2896
- const peg$r17 = /^[`]/;
2897
- const peg$r18 = /^[^`\n]/;
2927
+ const peg$r10 = /^[^\/\n]/;
2928
+ const peg$r11 = /^[gimsuy]/;
2929
+ const peg$r12 = /^['"`]/;
2930
+ const peg$r13 = /^[^#\n]/;
2931
+ const peg$r14 = /^[^# \n]/;
2932
+ const peg$r15 = /^["]/;
2933
+ const peg$r16 = /^[^"\n]/;
2934
+ const peg$r17 = /^[']/;
2935
+ const peg$r18 = /^[^'\n]/;
2936
+ const peg$r19 = /^[`]/;
2937
+ const peg$r20 = /^[^`\n]/;
2898
2938
  const peg$e0 = peg$literalExpectation("\n", false);
2899
2939
  const peg$e1 = peg$literalExpectation("export ", false);
2900
2940
  const peg$e2 = peg$literalExpectation("=", false);
@@ -2914,23 +2954,27 @@ function peg$parse(input, options) {
2914
2954
  const peg$e16 = peg$classExpectation([" ", " "], false, false, false);
2915
2955
  const peg$e17 = peg$classExpectation([" ", " ", "\n"], false, false, false);
2916
2956
  const peg$e18 = peg$classExpectation(["-", "=", "*", "#"], false, false, false);
2917
- const peg$e19 = peg$classExpectation(["'", '"', "`"], false, false, false);
2918
- const peg$e20 = peg$classExpectation(["#", "\n"], true, false, false);
2919
- const peg$e21 = peg$classExpectation(["#", " ", "\n"], true, false, false);
2920
- const peg$e22 = peg$classExpectation(['"'], false, false, false);
2921
- const peg$e23 = peg$literalExpectation('\\"', false);
2922
- const peg$e24 = peg$classExpectation(['"', "\n"], true, false, false);
2923
- const peg$e25 = peg$classExpectation(["'"], false, false, false);
2924
- const peg$e26 = peg$literalExpectation("\\'", false);
2925
- const peg$e27 = peg$classExpectation(["'", "\n"], true, false, false);
2926
- const peg$e28 = peg$classExpectation(["`"], false, false, false);
2927
- const peg$e29 = peg$literalExpectation("\\`", false);
2928
- const peg$e30 = peg$classExpectation(["`", "\n"], true, false, false);
2929
- const peg$e31 = peg$literalExpectation('"""', false);
2930
- const peg$e32 = peg$literalExpectation('\\"""', false);
2931
- const peg$e33 = peg$literalExpectation("```", false);
2932
- const peg$e34 = peg$literalExpectation("\\```", false);
2933
- const peg$e35 = peg$anyExpectation();
2957
+ const peg$e19 = peg$literalExpectation("/", false);
2958
+ const peg$e20 = peg$literalExpectation("\\/", false);
2959
+ const peg$e21 = peg$classExpectation(["/", "\n"], true, false, false);
2960
+ const peg$e22 = peg$classExpectation(["g", "i", "m", "s", "u", "y"], false, false, false);
2961
+ const peg$e23 = peg$classExpectation(["'", '"', "`"], false, false, false);
2962
+ const peg$e24 = peg$classExpectation(["#", "\n"], true, false, false);
2963
+ const peg$e25 = peg$classExpectation(["#", " ", "\n"], true, false, false);
2964
+ const peg$e26 = peg$classExpectation(['"'], false, false, false);
2965
+ const peg$e27 = peg$literalExpectation('\\"', false);
2966
+ const peg$e28 = peg$classExpectation(['"', "\n"], true, false, false);
2967
+ const peg$e29 = peg$classExpectation(["'"], false, false, false);
2968
+ const peg$e30 = peg$literalExpectation("\\'", false);
2969
+ const peg$e31 = peg$classExpectation(["'", "\n"], true, false, false);
2970
+ const peg$e32 = peg$classExpectation(["`"], false, false, false);
2971
+ const peg$e33 = peg$literalExpectation("\\`", false);
2972
+ const peg$e34 = peg$classExpectation(["`", "\n"], true, false, false);
2973
+ const peg$e35 = peg$literalExpectation('"""', false);
2974
+ const peg$e36 = peg$literalExpectation('\\"""', false);
2975
+ const peg$e37 = peg$literalExpectation("```", false);
2976
+ const peg$e38 = peg$literalExpectation("\\```", false);
2977
+ const peg$e39 = peg$anyExpectation();
2934
2978
  function peg$f0() {
2935
2979
  return new ParsedEnvSpecBlankLine({ _location: location() });
2936
2980
  }
@@ -3058,8 +3102,13 @@ function peg$parse(input, options) {
3058
3102
  }
3059
3103
  __name(peg$f16, "peg$f16");
3060
3104
  __name2(peg$f16, "peg$f16");
3061
- function peg$f17() {
3062
- return new ParsedEnvSpecStaticValue({ rawValue: text(), _location: location() });
3105
+ function peg$f17(pattern, flags) {
3106
+ return new ParsedEnvSpecRegexLiteral({
3107
+ rawValue: text(),
3108
+ pattern: pattern.replaceAll("\\/", "/"),
3109
+ flags,
3110
+ _location: location()
3111
+ });
3063
3112
  }
3064
3113
  __name(peg$f17, "peg$f17");
3065
3114
  __name2(peg$f17, "peg$f17");
@@ -3068,8 +3117,8 @@ function peg$parse(input, options) {
3068
3117
  }
3069
3118
  __name(peg$f18, "peg$f18");
3070
3119
  __name2(peg$f18, "peg$f18");
3071
- function peg$f19(quote) {
3072
- return new ParsedEnvSpecStaticValue({ quote, rawValue: text(), _location: location() });
3120
+ function peg$f19() {
3121
+ return new ParsedEnvSpecStaticValue({ rawValue: text(), _location: location() });
3073
3122
  }
3074
3123
  __name(peg$f19, "peg$f19");
3075
3124
  __name2(peg$f19, "peg$f19");
@@ -3084,7 +3133,7 @@ function peg$parse(input, options) {
3084
3133
  __name(peg$f21, "peg$f21");
3085
3134
  __name2(peg$f21, "peg$f21");
3086
3135
  function peg$f22(quote) {
3087
- return new ParsedEnvSpecStaticValue({ quote, isMultiLine: true, rawValue: text(), _location: location() });
3136
+ return new ParsedEnvSpecStaticValue({ quote, rawValue: text(), _location: location() });
3088
3137
  }
3089
3138
  __name(peg$f22, "peg$f22");
3090
3139
  __name2(peg$f22, "peg$f22");
@@ -3103,6 +3152,11 @@ function peg$parse(input, options) {
3103
3152
  }
3104
3153
  __name(peg$f25, "peg$f25");
3105
3154
  __name2(peg$f25, "peg$f25");
3155
+ function peg$f26(quote) {
3156
+ return new ParsedEnvSpecStaticValue({ quote, isMultiLine: true, rawValue: text(), _location: location() });
3157
+ }
3158
+ __name(peg$f26, "peg$f26");
3159
+ __name2(peg$f26, "peg$f26");
3106
3160
  let peg$currPos = options.peg$currPos | 0;
3107
3161
  let peg$savedPos = peg$currPos;
3108
3162
  const peg$posDetailsCache = [{ line: 1, column: 1 }];
@@ -3532,11 +3586,14 @@ function peg$parse(input, options) {
3532
3586
  let s0;
3533
3587
  s0 = peg$parseFunctionCall();
3534
3588
  if (s0 === peg$FAILED) {
3535
- s0 = peg$parsemultiLineString();
3589
+ s0 = peg$parseRegexLiteral();
3536
3590
  if (s0 === peg$FAILED) {
3537
- s0 = peg$parsequotedString();
3591
+ s0 = peg$parsemultiLineString();
3538
3592
  if (s0 === peg$FAILED) {
3539
- s0 = peg$parseunquotedString();
3593
+ s0 = peg$parsequotedString();
3594
+ if (s0 === peg$FAILED) {
3595
+ s0 = peg$parseunquotedString();
3596
+ }
3540
3597
  }
3541
3598
  }
3542
3599
  }
@@ -4155,9 +4212,12 @@ function peg$parse(input, options) {
4155
4212
  let s0;
4156
4213
  s0 = peg$parseDecoratorFunctionCall();
4157
4214
  if (s0 === peg$FAILED) {
4158
- s0 = peg$parsequotedString();
4215
+ s0 = peg$parseRegexLiteral();
4159
4216
  if (s0 === peg$FAILED) {
4160
- s0 = peg$parseunquotedStringWithoutSpaces();
4217
+ s0 = peg$parsequotedString();
4218
+ if (s0 === peg$FAILED) {
4219
+ s0 = peg$parseunquotedStringWithoutSpaces();
4220
+ }
4161
4221
  }
4162
4222
  }
4163
4223
  return s0;
@@ -4357,46 +4417,49 @@ function peg$parse(input, options) {
4357
4417
  let s0, s1, s2, s3;
4358
4418
  s0 = peg$parseDecoratorFunctionCall();
4359
4419
  if (s0 === peg$FAILED) {
4360
- s0 = peg$parsequotedString();
4420
+ s0 = peg$parseRegexLiteral();
4361
4421
  if (s0 === peg$FAILED) {
4362
- s0 = peg$currPos;
4363
- s1 = peg$currPos;
4364
- s2 = [];
4365
- s3 = input.charAt(peg$currPos);
4366
- if (peg$r6.test(s3)) {
4367
- peg$currPos++;
4368
- } else {
4369
- s3 = peg$FAILED;
4370
- if (peg$silentFails === 0) {
4371
- peg$fail(peg$e15);
4422
+ s0 = peg$parsequotedString();
4423
+ if (s0 === peg$FAILED) {
4424
+ s0 = peg$currPos;
4425
+ s1 = peg$currPos;
4426
+ s2 = [];
4427
+ s3 = input.charAt(peg$currPos);
4428
+ if (peg$r6.test(s3)) {
4429
+ peg$currPos++;
4430
+ } else {
4431
+ s3 = peg$FAILED;
4432
+ if (peg$silentFails === 0) {
4433
+ peg$fail(peg$e15);
4434
+ }
4372
4435
  }
4373
- }
4374
- if (s3 !== peg$FAILED) {
4375
- while (s3 !== peg$FAILED) {
4376
- s2.push(s3);
4377
- s3 = input.charAt(peg$currPos);
4378
- if (peg$r6.test(s3)) {
4379
- peg$currPos++;
4380
- } else {
4381
- s3 = peg$FAILED;
4382
- if (peg$silentFails === 0) {
4383
- peg$fail(peg$e15);
4436
+ if (s3 !== peg$FAILED) {
4437
+ while (s3 !== peg$FAILED) {
4438
+ s2.push(s3);
4439
+ s3 = input.charAt(peg$currPos);
4440
+ if (peg$r6.test(s3)) {
4441
+ peg$currPos++;
4442
+ } else {
4443
+ s3 = peg$FAILED;
4444
+ if (peg$silentFails === 0) {
4445
+ peg$fail(peg$e15);
4446
+ }
4384
4447
  }
4385
4448
  }
4449
+ } else {
4450
+ s2 = peg$FAILED;
4386
4451
  }
4387
- } else {
4388
- s2 = peg$FAILED;
4389
- }
4390
- if (s2 !== peg$FAILED) {
4391
- s1 = input.substring(s1, peg$currPos);
4392
- } else {
4393
- s1 = s2;
4394
- }
4395
- if (s1 !== peg$FAILED) {
4396
- peg$savedPos = s0;
4397
- s1 = peg$f11();
4452
+ if (s2 !== peg$FAILED) {
4453
+ s1 = input.substring(s1, peg$currPos);
4454
+ } else {
4455
+ s1 = s2;
4456
+ }
4457
+ if (s1 !== peg$FAILED) {
4458
+ peg$savedPos = s0;
4459
+ s1 = peg$f11();
4460
+ }
4461
+ s0 = s1;
4398
4462
  }
4399
- s0 = s1;
4400
4463
  }
4401
4464
  }
4402
4465
  return s0;
@@ -4880,46 +4943,49 @@ function peg$parse(input, options) {
4880
4943
  let s0, s1, s2, s3;
4881
4944
  s0 = peg$parseFunctionCall();
4882
4945
  if (s0 === peg$FAILED) {
4883
- s0 = peg$parsequotedString();
4946
+ s0 = peg$parseRegexLiteral();
4884
4947
  if (s0 === peg$FAILED) {
4885
- s0 = peg$currPos;
4886
- s1 = peg$currPos;
4887
- s2 = [];
4888
- s3 = input.charAt(peg$currPos);
4889
- if (peg$r6.test(s3)) {
4890
- peg$currPos++;
4891
- } else {
4892
- s3 = peg$FAILED;
4893
- if (peg$silentFails === 0) {
4894
- peg$fail(peg$e15);
4948
+ s0 = peg$parsequotedString();
4949
+ if (s0 === peg$FAILED) {
4950
+ s0 = peg$currPos;
4951
+ s1 = peg$currPos;
4952
+ s2 = [];
4953
+ s3 = input.charAt(peg$currPos);
4954
+ if (peg$r6.test(s3)) {
4955
+ peg$currPos++;
4956
+ } else {
4957
+ s3 = peg$FAILED;
4958
+ if (peg$silentFails === 0) {
4959
+ peg$fail(peg$e15);
4960
+ }
4895
4961
  }
4896
- }
4897
- if (s3 !== peg$FAILED) {
4898
- while (s3 !== peg$FAILED) {
4899
- s2.push(s3);
4900
- s3 = input.charAt(peg$currPos);
4901
- if (peg$r6.test(s3)) {
4902
- peg$currPos++;
4903
- } else {
4904
- s3 = peg$FAILED;
4905
- if (peg$silentFails === 0) {
4906
- peg$fail(peg$e15);
4962
+ if (s3 !== peg$FAILED) {
4963
+ while (s3 !== peg$FAILED) {
4964
+ s2.push(s3);
4965
+ s3 = input.charAt(peg$currPos);
4966
+ if (peg$r6.test(s3)) {
4967
+ peg$currPos++;
4968
+ } else {
4969
+ s3 = peg$FAILED;
4970
+ if (peg$silentFails === 0) {
4971
+ peg$fail(peg$e15);
4972
+ }
4907
4973
  }
4908
4974
  }
4975
+ } else {
4976
+ s2 = peg$FAILED;
4909
4977
  }
4910
- } else {
4911
- s2 = peg$FAILED;
4912
- }
4913
- if (s2 !== peg$FAILED) {
4914
- s1 = input.substring(s1, peg$currPos);
4915
- } else {
4916
- s1 = s2;
4917
- }
4918
- if (s1 !== peg$FAILED) {
4919
- peg$savedPos = s0;
4920
- s1 = peg$f15();
4978
+ if (s2 !== peg$FAILED) {
4979
+ s1 = input.substring(s1, peg$currPos);
4980
+ } else {
4981
+ s1 = s2;
4982
+ }
4983
+ if (s1 !== peg$FAILED) {
4984
+ peg$savedPos = s0;
4985
+ s1 = peg$f15();
4986
+ }
4987
+ s0 = s1;
4921
4988
  }
4922
- s0 = s1;
4923
4989
  }
4924
4990
  }
4925
4991
  return s0;
@@ -5056,6 +5122,113 @@ function peg$parse(input, options) {
5056
5122
  }
5057
5123
  __name(peg$parseDivider, "peg$parseDivider");
5058
5124
  __name2(peg$parseDivider, "peg$parseDivider");
5125
+ function peg$parseRegexLiteral() {
5126
+ let s0, s1, s2, s3, s4, s5, s6;
5127
+ s0 = peg$currPos;
5128
+ if (input.charCodeAt(peg$currPos) === 47) {
5129
+ s1 = peg$c9;
5130
+ peg$currPos++;
5131
+ } else {
5132
+ s1 = peg$FAILED;
5133
+ if (peg$silentFails === 0) {
5134
+ peg$fail(peg$e19);
5135
+ }
5136
+ }
5137
+ if (s1 !== peg$FAILED) {
5138
+ s2 = peg$currPos;
5139
+ s3 = [];
5140
+ if (input.substr(peg$currPos, 2) === peg$c10) {
5141
+ s4 = peg$c10;
5142
+ peg$currPos += 2;
5143
+ } else {
5144
+ s4 = peg$FAILED;
5145
+ if (peg$silentFails === 0) {
5146
+ peg$fail(peg$e20);
5147
+ }
5148
+ }
5149
+ if (s4 === peg$FAILED) {
5150
+ s4 = input.charAt(peg$currPos);
5151
+ if (peg$r10.test(s4)) {
5152
+ peg$currPos++;
5153
+ } else {
5154
+ s4 = peg$FAILED;
5155
+ if (peg$silentFails === 0) {
5156
+ peg$fail(peg$e21);
5157
+ }
5158
+ }
5159
+ }
5160
+ while (s4 !== peg$FAILED) {
5161
+ s3.push(s4);
5162
+ if (input.substr(peg$currPos, 2) === peg$c10) {
5163
+ s4 = peg$c10;
5164
+ peg$currPos += 2;
5165
+ } else {
5166
+ s4 = peg$FAILED;
5167
+ if (peg$silentFails === 0) {
5168
+ peg$fail(peg$e20);
5169
+ }
5170
+ }
5171
+ if (s4 === peg$FAILED) {
5172
+ s4 = input.charAt(peg$currPos);
5173
+ if (peg$r10.test(s4)) {
5174
+ peg$currPos++;
5175
+ } else {
5176
+ s4 = peg$FAILED;
5177
+ if (peg$silentFails === 0) {
5178
+ peg$fail(peg$e21);
5179
+ }
5180
+ }
5181
+ }
5182
+ }
5183
+ s2 = input.substring(s2, peg$currPos);
5184
+ if (input.charCodeAt(peg$currPos) === 47) {
5185
+ s3 = peg$c9;
5186
+ peg$currPos++;
5187
+ } else {
5188
+ s3 = peg$FAILED;
5189
+ if (peg$silentFails === 0) {
5190
+ peg$fail(peg$e19);
5191
+ }
5192
+ }
5193
+ if (s3 !== peg$FAILED) {
5194
+ s4 = peg$currPos;
5195
+ s5 = [];
5196
+ s6 = input.charAt(peg$currPos);
5197
+ if (peg$r11.test(s6)) {
5198
+ peg$currPos++;
5199
+ } else {
5200
+ s6 = peg$FAILED;
5201
+ if (peg$silentFails === 0) {
5202
+ peg$fail(peg$e22);
5203
+ }
5204
+ }
5205
+ while (s6 !== peg$FAILED) {
5206
+ s5.push(s6);
5207
+ s6 = input.charAt(peg$currPos);
5208
+ if (peg$r11.test(s6)) {
5209
+ peg$currPos++;
5210
+ } else {
5211
+ s6 = peg$FAILED;
5212
+ if (peg$silentFails === 0) {
5213
+ peg$fail(peg$e22);
5214
+ }
5215
+ }
5216
+ }
5217
+ s4 = input.substring(s4, peg$currPos);
5218
+ peg$savedPos = s0;
5219
+ s0 = peg$f17(s2, s4);
5220
+ } else {
5221
+ peg$currPos = s0;
5222
+ s0 = peg$FAILED;
5223
+ }
5224
+ } else {
5225
+ peg$currPos = s0;
5226
+ s0 = peg$FAILED;
5227
+ }
5228
+ return s0;
5229
+ }
5230
+ __name(peg$parseRegexLiteral, "peg$parseRegexLiteral");
5231
+ __name2(peg$parseRegexLiteral, "peg$parseRegexLiteral");
5059
5232
  function peg$parseunquotedString() {
5060
5233
  let s0, s1, s2, s3, s4, s5, s6;
5061
5234
  s0 = peg$currPos;
@@ -5065,12 +5238,12 @@ function peg$parse(input, options) {
5065
5238
  s4 = peg$currPos;
5066
5239
  peg$silentFails++;
5067
5240
  s5 = input.charAt(peg$currPos);
5068
- if (peg$r10.test(s5)) {
5241
+ if (peg$r12.test(s5)) {
5069
5242
  peg$currPos++;
5070
5243
  } else {
5071
5244
  s5 = peg$FAILED;
5072
5245
  if (peg$silentFails === 0) {
5073
- peg$fail(peg$e19);
5246
+ peg$fail(peg$e23);
5074
5247
  }
5075
5248
  }
5076
5249
  peg$silentFails--;
@@ -5083,24 +5256,24 @@ function peg$parse(input, options) {
5083
5256
  if (s4 !== peg$FAILED) {
5084
5257
  s5 = [];
5085
5258
  s6 = input.charAt(peg$currPos);
5086
- if (peg$r11.test(s6)) {
5259
+ if (peg$r13.test(s6)) {
5087
5260
  peg$currPos++;
5088
5261
  } else {
5089
5262
  s6 = peg$FAILED;
5090
5263
  if (peg$silentFails === 0) {
5091
- peg$fail(peg$e20);
5264
+ peg$fail(peg$e24);
5092
5265
  }
5093
5266
  }
5094
5267
  if (s6 !== peg$FAILED) {
5095
5268
  while (s6 !== peg$FAILED) {
5096
5269
  s5.push(s6);
5097
5270
  s6 = input.charAt(peg$currPos);
5098
- if (peg$r11.test(s6)) {
5271
+ if (peg$r13.test(s6)) {
5099
5272
  peg$currPos++;
5100
5273
  } else {
5101
5274
  s6 = peg$FAILED;
5102
5275
  if (peg$silentFails === 0) {
5103
- peg$fail(peg$e20);
5276
+ peg$fail(peg$e24);
5104
5277
  }
5105
5278
  }
5106
5279
  }
@@ -5125,7 +5298,7 @@ function peg$parse(input, options) {
5125
5298
  }
5126
5299
  if (s1 !== peg$FAILED) {
5127
5300
  peg$savedPos = s0;
5128
- s1 = peg$f17();
5301
+ s1 = peg$f18();
5129
5302
  }
5130
5303
  s0 = s1;
5131
5304
  return s0;
@@ -5140,12 +5313,12 @@ function peg$parse(input, options) {
5140
5313
  s3 = peg$currPos;
5141
5314
  peg$silentFails++;
5142
5315
  s4 = input.charAt(peg$currPos);
5143
- if (peg$r10.test(s4)) {
5316
+ if (peg$r12.test(s4)) {
5144
5317
  peg$currPos++;
5145
5318
  } else {
5146
5319
  s4 = peg$FAILED;
5147
5320
  if (peg$silentFails === 0) {
5148
- peg$fail(peg$e19);
5321
+ peg$fail(peg$e23);
5149
5322
  }
5150
5323
  }
5151
5324
  peg$silentFails--;
@@ -5158,24 +5331,24 @@ function peg$parse(input, options) {
5158
5331
  if (s3 !== peg$FAILED) {
5159
5332
  s4 = [];
5160
5333
  s5 = input.charAt(peg$currPos);
5161
- if (peg$r12.test(s5)) {
5334
+ if (peg$r14.test(s5)) {
5162
5335
  peg$currPos++;
5163
5336
  } else {
5164
5337
  s5 = peg$FAILED;
5165
5338
  if (peg$silentFails === 0) {
5166
- peg$fail(peg$e21);
5339
+ peg$fail(peg$e25);
5167
5340
  }
5168
5341
  }
5169
5342
  if (s5 !== peg$FAILED) {
5170
5343
  while (s5 !== peg$FAILED) {
5171
5344
  s4.push(s5);
5172
5345
  s5 = input.charAt(peg$currPos);
5173
- if (peg$r12.test(s5)) {
5346
+ if (peg$r14.test(s5)) {
5174
5347
  peg$currPos++;
5175
5348
  } else {
5176
5349
  s5 = peg$FAILED;
5177
5350
  if (peg$silentFails === 0) {
5178
- peg$fail(peg$e21);
5351
+ peg$fail(peg$e25);
5179
5352
  }
5180
5353
  }
5181
5354
  }
@@ -5200,7 +5373,7 @@ function peg$parse(input, options) {
5200
5373
  }
5201
5374
  if (s1 !== peg$FAILED) {
5202
5375
  peg$savedPos = s0;
5203
- s1 = peg$f18();
5376
+ s1 = peg$f19();
5204
5377
  }
5205
5378
  s0 = s1;
5206
5379
  return s0;
@@ -5224,71 +5397,71 @@ function peg$parse(input, options) {
5224
5397
  let s0, s1, s2, s3;
5225
5398
  s0 = peg$currPos;
5226
5399
  s1 = input.charAt(peg$currPos);
5227
- if (peg$r13.test(s1)) {
5400
+ if (peg$r15.test(s1)) {
5228
5401
  peg$currPos++;
5229
5402
  } else {
5230
5403
  s1 = peg$FAILED;
5231
5404
  if (peg$silentFails === 0) {
5232
- peg$fail(peg$e22);
5405
+ peg$fail(peg$e26);
5233
5406
  }
5234
5407
  }
5235
5408
  if (s1 !== peg$FAILED) {
5236
5409
  s2 = [];
5237
- if (input.substr(peg$currPos, 2) === peg$c9) {
5238
- s3 = peg$c9;
5410
+ if (input.substr(peg$currPos, 2) === peg$c11) {
5411
+ s3 = peg$c11;
5239
5412
  peg$currPos += 2;
5240
5413
  } else {
5241
5414
  s3 = peg$FAILED;
5242
5415
  if (peg$silentFails === 0) {
5243
- peg$fail(peg$e23);
5416
+ peg$fail(peg$e27);
5244
5417
  }
5245
5418
  }
5246
5419
  if (s3 === peg$FAILED) {
5247
5420
  s3 = input.charAt(peg$currPos);
5248
- if (peg$r14.test(s3)) {
5421
+ if (peg$r16.test(s3)) {
5249
5422
  peg$currPos++;
5250
5423
  } else {
5251
5424
  s3 = peg$FAILED;
5252
5425
  if (peg$silentFails === 0) {
5253
- peg$fail(peg$e24);
5426
+ peg$fail(peg$e28);
5254
5427
  }
5255
5428
  }
5256
5429
  }
5257
5430
  while (s3 !== peg$FAILED) {
5258
5431
  s2.push(s3);
5259
- if (input.substr(peg$currPos, 2) === peg$c9) {
5260
- s3 = peg$c9;
5432
+ if (input.substr(peg$currPos, 2) === peg$c11) {
5433
+ s3 = peg$c11;
5261
5434
  peg$currPos += 2;
5262
5435
  } else {
5263
5436
  s3 = peg$FAILED;
5264
5437
  if (peg$silentFails === 0) {
5265
- peg$fail(peg$e23);
5438
+ peg$fail(peg$e27);
5266
5439
  }
5267
5440
  }
5268
5441
  if (s3 === peg$FAILED) {
5269
5442
  s3 = input.charAt(peg$currPos);
5270
- if (peg$r14.test(s3)) {
5443
+ if (peg$r16.test(s3)) {
5271
5444
  peg$currPos++;
5272
5445
  } else {
5273
5446
  s3 = peg$FAILED;
5274
5447
  if (peg$silentFails === 0) {
5275
- peg$fail(peg$e24);
5448
+ peg$fail(peg$e28);
5276
5449
  }
5277
5450
  }
5278
5451
  }
5279
5452
  }
5280
5453
  s3 = input.charAt(peg$currPos);
5281
- if (peg$r13.test(s3)) {
5454
+ if (peg$r15.test(s3)) {
5282
5455
  peg$currPos++;
5283
5456
  } else {
5284
5457
  s3 = peg$FAILED;
5285
5458
  if (peg$silentFails === 0) {
5286
- peg$fail(peg$e22);
5459
+ peg$fail(peg$e26);
5287
5460
  }
5288
5461
  }
5289
5462
  if (s3 !== peg$FAILED) {
5290
5463
  peg$savedPos = s0;
5291
- s0 = peg$f19(s1);
5464
+ s0 = peg$f20(s1);
5292
5465
  } else {
5293
5466
  peg$currPos = s0;
5294
5467
  s0 = peg$FAILED;
@@ -5305,71 +5478,71 @@ function peg$parse(input, options) {
5305
5478
  let s0, s1, s2, s3;
5306
5479
  s0 = peg$currPos;
5307
5480
  s1 = input.charAt(peg$currPos);
5308
- if (peg$r15.test(s1)) {
5481
+ if (peg$r17.test(s1)) {
5309
5482
  peg$currPos++;
5310
5483
  } else {
5311
5484
  s1 = peg$FAILED;
5312
5485
  if (peg$silentFails === 0) {
5313
- peg$fail(peg$e25);
5486
+ peg$fail(peg$e29);
5314
5487
  }
5315
5488
  }
5316
5489
  if (s1 !== peg$FAILED) {
5317
5490
  s2 = [];
5318
- if (input.substr(peg$currPos, 2) === peg$c10) {
5319
- s3 = peg$c10;
5491
+ if (input.substr(peg$currPos, 2) === peg$c12) {
5492
+ s3 = peg$c12;
5320
5493
  peg$currPos += 2;
5321
5494
  } else {
5322
5495
  s3 = peg$FAILED;
5323
5496
  if (peg$silentFails === 0) {
5324
- peg$fail(peg$e26);
5497
+ peg$fail(peg$e30);
5325
5498
  }
5326
5499
  }
5327
5500
  if (s3 === peg$FAILED) {
5328
5501
  s3 = input.charAt(peg$currPos);
5329
- if (peg$r16.test(s3)) {
5502
+ if (peg$r18.test(s3)) {
5330
5503
  peg$currPos++;
5331
5504
  } else {
5332
5505
  s3 = peg$FAILED;
5333
5506
  if (peg$silentFails === 0) {
5334
- peg$fail(peg$e27);
5507
+ peg$fail(peg$e31);
5335
5508
  }
5336
5509
  }
5337
5510
  }
5338
5511
  while (s3 !== peg$FAILED) {
5339
5512
  s2.push(s3);
5340
- if (input.substr(peg$currPos, 2) === peg$c10) {
5341
- s3 = peg$c10;
5513
+ if (input.substr(peg$currPos, 2) === peg$c12) {
5514
+ s3 = peg$c12;
5342
5515
  peg$currPos += 2;
5343
5516
  } else {
5344
5517
  s3 = peg$FAILED;
5345
5518
  if (peg$silentFails === 0) {
5346
- peg$fail(peg$e26);
5519
+ peg$fail(peg$e30);
5347
5520
  }
5348
5521
  }
5349
5522
  if (s3 === peg$FAILED) {
5350
5523
  s3 = input.charAt(peg$currPos);
5351
- if (peg$r16.test(s3)) {
5524
+ if (peg$r18.test(s3)) {
5352
5525
  peg$currPos++;
5353
5526
  } else {
5354
5527
  s3 = peg$FAILED;
5355
5528
  if (peg$silentFails === 0) {
5356
- peg$fail(peg$e27);
5529
+ peg$fail(peg$e31);
5357
5530
  }
5358
5531
  }
5359
5532
  }
5360
5533
  }
5361
5534
  s3 = input.charAt(peg$currPos);
5362
- if (peg$r15.test(s3)) {
5535
+ if (peg$r17.test(s3)) {
5363
5536
  peg$currPos++;
5364
5537
  } else {
5365
5538
  s3 = peg$FAILED;
5366
5539
  if (peg$silentFails === 0) {
5367
- peg$fail(peg$e25);
5540
+ peg$fail(peg$e29);
5368
5541
  }
5369
5542
  }
5370
5543
  if (s3 !== peg$FAILED) {
5371
5544
  peg$savedPos = s0;
5372
- s0 = peg$f20(s1);
5545
+ s0 = peg$f21(s1);
5373
5546
  } else {
5374
5547
  peg$currPos = s0;
5375
5548
  s0 = peg$FAILED;
@@ -5386,71 +5559,71 @@ function peg$parse(input, options) {
5386
5559
  let s0, s1, s2, s3;
5387
5560
  s0 = peg$currPos;
5388
5561
  s1 = input.charAt(peg$currPos);
5389
- if (peg$r17.test(s1)) {
5562
+ if (peg$r19.test(s1)) {
5390
5563
  peg$currPos++;
5391
5564
  } else {
5392
5565
  s1 = peg$FAILED;
5393
5566
  if (peg$silentFails === 0) {
5394
- peg$fail(peg$e28);
5567
+ peg$fail(peg$e32);
5395
5568
  }
5396
5569
  }
5397
5570
  if (s1 !== peg$FAILED) {
5398
5571
  s2 = [];
5399
- if (input.substr(peg$currPos, 2) === peg$c11) {
5400
- s3 = peg$c11;
5572
+ if (input.substr(peg$currPos, 2) === peg$c13) {
5573
+ s3 = peg$c13;
5401
5574
  peg$currPos += 2;
5402
5575
  } else {
5403
5576
  s3 = peg$FAILED;
5404
5577
  if (peg$silentFails === 0) {
5405
- peg$fail(peg$e29);
5578
+ peg$fail(peg$e33);
5406
5579
  }
5407
5580
  }
5408
5581
  if (s3 === peg$FAILED) {
5409
5582
  s3 = input.charAt(peg$currPos);
5410
- if (peg$r18.test(s3)) {
5583
+ if (peg$r20.test(s3)) {
5411
5584
  peg$currPos++;
5412
5585
  } else {
5413
5586
  s3 = peg$FAILED;
5414
5587
  if (peg$silentFails === 0) {
5415
- peg$fail(peg$e30);
5588
+ peg$fail(peg$e34);
5416
5589
  }
5417
5590
  }
5418
5591
  }
5419
5592
  while (s3 !== peg$FAILED) {
5420
5593
  s2.push(s3);
5421
- if (input.substr(peg$currPos, 2) === peg$c11) {
5422
- s3 = peg$c11;
5594
+ if (input.substr(peg$currPos, 2) === peg$c13) {
5595
+ s3 = peg$c13;
5423
5596
  peg$currPos += 2;
5424
5597
  } else {
5425
5598
  s3 = peg$FAILED;
5426
5599
  if (peg$silentFails === 0) {
5427
- peg$fail(peg$e29);
5600
+ peg$fail(peg$e33);
5428
5601
  }
5429
5602
  }
5430
5603
  if (s3 === peg$FAILED) {
5431
5604
  s3 = input.charAt(peg$currPos);
5432
- if (peg$r18.test(s3)) {
5605
+ if (peg$r20.test(s3)) {
5433
5606
  peg$currPos++;
5434
5607
  } else {
5435
5608
  s3 = peg$FAILED;
5436
5609
  if (peg$silentFails === 0) {
5437
- peg$fail(peg$e30);
5610
+ peg$fail(peg$e34);
5438
5611
  }
5439
5612
  }
5440
5613
  }
5441
5614
  }
5442
5615
  s3 = input.charAt(peg$currPos);
5443
- if (peg$r17.test(s3)) {
5616
+ if (peg$r19.test(s3)) {
5444
5617
  peg$currPos++;
5445
5618
  } else {
5446
5619
  s3 = peg$FAILED;
5447
5620
  if (peg$silentFails === 0) {
5448
- peg$fail(peg$e28);
5621
+ peg$fail(peg$e32);
5449
5622
  }
5450
5623
  }
5451
5624
  if (s3 !== peg$FAILED) {
5452
5625
  peg$savedPos = s0;
5453
- s0 = peg$f21(s1);
5626
+ s0 = peg$f22(s1);
5454
5627
  } else {
5455
5628
  peg$currPos = s0;
5456
5629
  s0 = peg$FAILED;
@@ -5483,57 +5656,57 @@ function peg$parse(input, options) {
5483
5656
  let s0, s1, s2, s3, s4, s5;
5484
5657
  s0 = peg$currPos;
5485
5658
  s1 = input.charAt(peg$currPos);
5486
- if (peg$r15.test(s1)) {
5659
+ if (peg$r17.test(s1)) {
5487
5660
  peg$currPos++;
5488
5661
  } else {
5489
5662
  s1 = peg$FAILED;
5490
5663
  if (peg$silentFails === 0) {
5491
- peg$fail(peg$e25);
5664
+ peg$fail(peg$e29);
5492
5665
  }
5493
5666
  }
5494
5667
  if (s1 !== peg$FAILED) {
5495
5668
  s2 = [];
5496
5669
  s3 = peg$currPos;
5497
5670
  s4 = [];
5498
- if (input.substr(peg$currPos, 2) === peg$c10) {
5499
- s5 = peg$c10;
5671
+ if (input.substr(peg$currPos, 2) === peg$c12) {
5672
+ s5 = peg$c12;
5500
5673
  peg$currPos += 2;
5501
5674
  } else {
5502
5675
  s5 = peg$FAILED;
5503
5676
  if (peg$silentFails === 0) {
5504
- peg$fail(peg$e26);
5677
+ peg$fail(peg$e30);
5505
5678
  }
5506
5679
  }
5507
5680
  if (s5 === peg$FAILED) {
5508
5681
  s5 = input.charAt(peg$currPos);
5509
- if (peg$r16.test(s5)) {
5682
+ if (peg$r18.test(s5)) {
5510
5683
  peg$currPos++;
5511
5684
  } else {
5512
5685
  s5 = peg$FAILED;
5513
5686
  if (peg$silentFails === 0) {
5514
- peg$fail(peg$e27);
5687
+ peg$fail(peg$e31);
5515
5688
  }
5516
5689
  }
5517
5690
  }
5518
5691
  while (s5 !== peg$FAILED) {
5519
5692
  s4.push(s5);
5520
- if (input.substr(peg$currPos, 2) === peg$c10) {
5521
- s5 = peg$c10;
5693
+ if (input.substr(peg$currPos, 2) === peg$c12) {
5694
+ s5 = peg$c12;
5522
5695
  peg$currPos += 2;
5523
5696
  } else {
5524
5697
  s5 = peg$FAILED;
5525
5698
  if (peg$silentFails === 0) {
5526
- peg$fail(peg$e26);
5699
+ peg$fail(peg$e30);
5527
5700
  }
5528
5701
  }
5529
5702
  if (s5 === peg$FAILED) {
5530
5703
  s5 = input.charAt(peg$currPos);
5531
- if (peg$r16.test(s5)) {
5704
+ if (peg$r18.test(s5)) {
5532
5705
  peg$currPos++;
5533
5706
  } else {
5534
5707
  s5 = peg$FAILED;
5535
5708
  if (peg$silentFails === 0) {
5536
- peg$fail(peg$e27);
5709
+ peg$fail(peg$e31);
5537
5710
  }
5538
5711
  }
5539
5712
  }
@@ -5559,45 +5732,45 @@ function peg$parse(input, options) {
5559
5732
  s2.push(s3);
5560
5733
  s3 = peg$currPos;
5561
5734
  s4 = [];
5562
- if (input.substr(peg$currPos, 2) === peg$c10) {
5563
- s5 = peg$c10;
5735
+ if (input.substr(peg$currPos, 2) === peg$c12) {
5736
+ s5 = peg$c12;
5564
5737
  peg$currPos += 2;
5565
5738
  } else {
5566
5739
  s5 = peg$FAILED;
5567
5740
  if (peg$silentFails === 0) {
5568
- peg$fail(peg$e26);
5741
+ peg$fail(peg$e30);
5569
5742
  }
5570
5743
  }
5571
5744
  if (s5 === peg$FAILED) {
5572
5745
  s5 = input.charAt(peg$currPos);
5573
- if (peg$r16.test(s5)) {
5746
+ if (peg$r18.test(s5)) {
5574
5747
  peg$currPos++;
5575
5748
  } else {
5576
5749
  s5 = peg$FAILED;
5577
5750
  if (peg$silentFails === 0) {
5578
- peg$fail(peg$e27);
5751
+ peg$fail(peg$e31);
5579
5752
  }
5580
5753
  }
5581
5754
  }
5582
5755
  while (s5 !== peg$FAILED) {
5583
5756
  s4.push(s5);
5584
- if (input.substr(peg$currPos, 2) === peg$c10) {
5585
- s5 = peg$c10;
5757
+ if (input.substr(peg$currPos, 2) === peg$c12) {
5758
+ s5 = peg$c12;
5586
5759
  peg$currPos += 2;
5587
5760
  } else {
5588
5761
  s5 = peg$FAILED;
5589
5762
  if (peg$silentFails === 0) {
5590
- peg$fail(peg$e26);
5763
+ peg$fail(peg$e30);
5591
5764
  }
5592
5765
  }
5593
5766
  if (s5 === peg$FAILED) {
5594
5767
  s5 = input.charAt(peg$currPos);
5595
- if (peg$r16.test(s5)) {
5768
+ if (peg$r18.test(s5)) {
5596
5769
  peg$currPos++;
5597
5770
  } else {
5598
5771
  s5 = peg$FAILED;
5599
5772
  if (peg$silentFails === 0) {
5600
- peg$fail(peg$e27);
5773
+ peg$fail(peg$e31);
5601
5774
  }
5602
5775
  }
5603
5776
  }
@@ -5624,61 +5797,61 @@ function peg$parse(input, options) {
5624
5797
  }
5625
5798
  if (s2 !== peg$FAILED) {
5626
5799
  s3 = [];
5627
- if (input.substr(peg$currPos, 2) === peg$c10) {
5628
- s4 = peg$c10;
5800
+ if (input.substr(peg$currPos, 2) === peg$c12) {
5801
+ s4 = peg$c12;
5629
5802
  peg$currPos += 2;
5630
5803
  } else {
5631
5804
  s4 = peg$FAILED;
5632
5805
  if (peg$silentFails === 0) {
5633
- peg$fail(peg$e26);
5806
+ peg$fail(peg$e30);
5634
5807
  }
5635
5808
  }
5636
5809
  if (s4 === peg$FAILED) {
5637
5810
  s4 = input.charAt(peg$currPos);
5638
- if (peg$r16.test(s4)) {
5811
+ if (peg$r18.test(s4)) {
5639
5812
  peg$currPos++;
5640
5813
  } else {
5641
5814
  s4 = peg$FAILED;
5642
5815
  if (peg$silentFails === 0) {
5643
- peg$fail(peg$e27);
5816
+ peg$fail(peg$e31);
5644
5817
  }
5645
5818
  }
5646
5819
  }
5647
5820
  while (s4 !== peg$FAILED) {
5648
5821
  s3.push(s4);
5649
- if (input.substr(peg$currPos, 2) === peg$c10) {
5650
- s4 = peg$c10;
5822
+ if (input.substr(peg$currPos, 2) === peg$c12) {
5823
+ s4 = peg$c12;
5651
5824
  peg$currPos += 2;
5652
5825
  } else {
5653
5826
  s4 = peg$FAILED;
5654
5827
  if (peg$silentFails === 0) {
5655
- peg$fail(peg$e26);
5828
+ peg$fail(peg$e30);
5656
5829
  }
5657
5830
  }
5658
5831
  if (s4 === peg$FAILED) {
5659
5832
  s4 = input.charAt(peg$currPos);
5660
- if (peg$r16.test(s4)) {
5833
+ if (peg$r18.test(s4)) {
5661
5834
  peg$currPos++;
5662
5835
  } else {
5663
5836
  s4 = peg$FAILED;
5664
5837
  if (peg$silentFails === 0) {
5665
- peg$fail(peg$e27);
5838
+ peg$fail(peg$e31);
5666
5839
  }
5667
5840
  }
5668
5841
  }
5669
5842
  }
5670
5843
  s4 = input.charAt(peg$currPos);
5671
- if (peg$r15.test(s4)) {
5844
+ if (peg$r17.test(s4)) {
5672
5845
  peg$currPos++;
5673
5846
  } else {
5674
5847
  s4 = peg$FAILED;
5675
5848
  if (peg$silentFails === 0) {
5676
- peg$fail(peg$e25);
5849
+ peg$fail(peg$e29);
5677
5850
  }
5678
5851
  }
5679
5852
  if (s4 !== peg$FAILED) {
5680
5853
  peg$savedPos = s0;
5681
- s0 = peg$f22(s1);
5854
+ s0 = peg$f23(s1);
5682
5855
  } else {
5683
5856
  peg$currPos = s0;
5684
5857
  s0 = peg$FAILED;
@@ -5699,57 +5872,57 @@ function peg$parse(input, options) {
5699
5872
  let s0, s1, s2, s3, s4, s5;
5700
5873
  s0 = peg$currPos;
5701
5874
  s1 = input.charAt(peg$currPos);
5702
- if (peg$r13.test(s1)) {
5875
+ if (peg$r15.test(s1)) {
5703
5876
  peg$currPos++;
5704
5877
  } else {
5705
5878
  s1 = peg$FAILED;
5706
5879
  if (peg$silentFails === 0) {
5707
- peg$fail(peg$e22);
5880
+ peg$fail(peg$e26);
5708
5881
  }
5709
5882
  }
5710
5883
  if (s1 !== peg$FAILED) {
5711
5884
  s2 = [];
5712
5885
  s3 = peg$currPos;
5713
5886
  s4 = [];
5714
- if (input.substr(peg$currPos, 2) === peg$c9) {
5715
- s5 = peg$c9;
5887
+ if (input.substr(peg$currPos, 2) === peg$c11) {
5888
+ s5 = peg$c11;
5716
5889
  peg$currPos += 2;
5717
5890
  } else {
5718
5891
  s5 = peg$FAILED;
5719
5892
  if (peg$silentFails === 0) {
5720
- peg$fail(peg$e23);
5893
+ peg$fail(peg$e27);
5721
5894
  }
5722
5895
  }
5723
5896
  if (s5 === peg$FAILED) {
5724
5897
  s5 = input.charAt(peg$currPos);
5725
- if (peg$r14.test(s5)) {
5898
+ if (peg$r16.test(s5)) {
5726
5899
  peg$currPos++;
5727
5900
  } else {
5728
5901
  s5 = peg$FAILED;
5729
5902
  if (peg$silentFails === 0) {
5730
- peg$fail(peg$e24);
5903
+ peg$fail(peg$e28);
5731
5904
  }
5732
5905
  }
5733
5906
  }
5734
5907
  while (s5 !== peg$FAILED) {
5735
5908
  s4.push(s5);
5736
- if (input.substr(peg$currPos, 2) === peg$c9) {
5737
- s5 = peg$c9;
5909
+ if (input.substr(peg$currPos, 2) === peg$c11) {
5910
+ s5 = peg$c11;
5738
5911
  peg$currPos += 2;
5739
5912
  } else {
5740
5913
  s5 = peg$FAILED;
5741
5914
  if (peg$silentFails === 0) {
5742
- peg$fail(peg$e23);
5915
+ peg$fail(peg$e27);
5743
5916
  }
5744
5917
  }
5745
5918
  if (s5 === peg$FAILED) {
5746
5919
  s5 = input.charAt(peg$currPos);
5747
- if (peg$r14.test(s5)) {
5920
+ if (peg$r16.test(s5)) {
5748
5921
  peg$currPos++;
5749
5922
  } else {
5750
5923
  s5 = peg$FAILED;
5751
5924
  if (peg$silentFails === 0) {
5752
- peg$fail(peg$e24);
5925
+ peg$fail(peg$e28);
5753
5926
  }
5754
5927
  }
5755
5928
  }
@@ -5775,45 +5948,45 @@ function peg$parse(input, options) {
5775
5948
  s2.push(s3);
5776
5949
  s3 = peg$currPos;
5777
5950
  s4 = [];
5778
- if (input.substr(peg$currPos, 2) === peg$c9) {
5779
- s5 = peg$c9;
5951
+ if (input.substr(peg$currPos, 2) === peg$c11) {
5952
+ s5 = peg$c11;
5780
5953
  peg$currPos += 2;
5781
5954
  } else {
5782
5955
  s5 = peg$FAILED;
5783
5956
  if (peg$silentFails === 0) {
5784
- peg$fail(peg$e23);
5957
+ peg$fail(peg$e27);
5785
5958
  }
5786
5959
  }
5787
5960
  if (s5 === peg$FAILED) {
5788
5961
  s5 = input.charAt(peg$currPos);
5789
- if (peg$r14.test(s5)) {
5962
+ if (peg$r16.test(s5)) {
5790
5963
  peg$currPos++;
5791
5964
  } else {
5792
5965
  s5 = peg$FAILED;
5793
5966
  if (peg$silentFails === 0) {
5794
- peg$fail(peg$e24);
5967
+ peg$fail(peg$e28);
5795
5968
  }
5796
5969
  }
5797
5970
  }
5798
5971
  while (s5 !== peg$FAILED) {
5799
5972
  s4.push(s5);
5800
- if (input.substr(peg$currPos, 2) === peg$c9) {
5801
- s5 = peg$c9;
5973
+ if (input.substr(peg$currPos, 2) === peg$c11) {
5974
+ s5 = peg$c11;
5802
5975
  peg$currPos += 2;
5803
5976
  } else {
5804
5977
  s5 = peg$FAILED;
5805
5978
  if (peg$silentFails === 0) {
5806
- peg$fail(peg$e23);
5979
+ peg$fail(peg$e27);
5807
5980
  }
5808
5981
  }
5809
5982
  if (s5 === peg$FAILED) {
5810
5983
  s5 = input.charAt(peg$currPos);
5811
- if (peg$r14.test(s5)) {
5984
+ if (peg$r16.test(s5)) {
5812
5985
  peg$currPos++;
5813
5986
  } else {
5814
5987
  s5 = peg$FAILED;
5815
5988
  if (peg$silentFails === 0) {
5816
- peg$fail(peg$e24);
5989
+ peg$fail(peg$e28);
5817
5990
  }
5818
5991
  }
5819
5992
  }
@@ -5840,61 +6013,61 @@ function peg$parse(input, options) {
5840
6013
  }
5841
6014
  if (s2 !== peg$FAILED) {
5842
6015
  s3 = [];
5843
- if (input.substr(peg$currPos, 2) === peg$c9) {
5844
- s4 = peg$c9;
6016
+ if (input.substr(peg$currPos, 2) === peg$c11) {
6017
+ s4 = peg$c11;
5845
6018
  peg$currPos += 2;
5846
6019
  } else {
5847
6020
  s4 = peg$FAILED;
5848
6021
  if (peg$silentFails === 0) {
5849
- peg$fail(peg$e23);
6022
+ peg$fail(peg$e27);
5850
6023
  }
5851
6024
  }
5852
6025
  if (s4 === peg$FAILED) {
5853
6026
  s4 = input.charAt(peg$currPos);
5854
- if (peg$r14.test(s4)) {
6027
+ if (peg$r16.test(s4)) {
5855
6028
  peg$currPos++;
5856
6029
  } else {
5857
6030
  s4 = peg$FAILED;
5858
6031
  if (peg$silentFails === 0) {
5859
- peg$fail(peg$e24);
6032
+ peg$fail(peg$e28);
5860
6033
  }
5861
6034
  }
5862
6035
  }
5863
6036
  while (s4 !== peg$FAILED) {
5864
6037
  s3.push(s4);
5865
- if (input.substr(peg$currPos, 2) === peg$c9) {
5866
- s4 = peg$c9;
6038
+ if (input.substr(peg$currPos, 2) === peg$c11) {
6039
+ s4 = peg$c11;
5867
6040
  peg$currPos += 2;
5868
6041
  } else {
5869
6042
  s4 = peg$FAILED;
5870
6043
  if (peg$silentFails === 0) {
5871
- peg$fail(peg$e23);
6044
+ peg$fail(peg$e27);
5872
6045
  }
5873
6046
  }
5874
6047
  if (s4 === peg$FAILED) {
5875
6048
  s4 = input.charAt(peg$currPos);
5876
- if (peg$r14.test(s4)) {
6049
+ if (peg$r16.test(s4)) {
5877
6050
  peg$currPos++;
5878
6051
  } else {
5879
6052
  s4 = peg$FAILED;
5880
6053
  if (peg$silentFails === 0) {
5881
- peg$fail(peg$e24);
6054
+ peg$fail(peg$e28);
5882
6055
  }
5883
6056
  }
5884
6057
  }
5885
6058
  }
5886
6059
  s4 = input.charAt(peg$currPos);
5887
- if (peg$r13.test(s4)) {
6060
+ if (peg$r15.test(s4)) {
5888
6061
  peg$currPos++;
5889
6062
  } else {
5890
6063
  s4 = peg$FAILED;
5891
6064
  if (peg$silentFails === 0) {
5892
- peg$fail(peg$e22);
6065
+ peg$fail(peg$e26);
5893
6066
  }
5894
6067
  }
5895
6068
  if (s4 !== peg$FAILED) {
5896
6069
  peg$savedPos = s0;
5897
- s0 = peg$f23(s1);
6070
+ s0 = peg$f24(s1);
5898
6071
  } else {
5899
6072
  peg$currPos = s0;
5900
6073
  s0 = peg$FAILED;
@@ -5914,39 +6087,39 @@ function peg$parse(input, options) {
5914
6087
  function peg$parsetripleDQuotedMultiLineString() {
5915
6088
  let s0, s1, s2, s3, s4, s5, s6, s7;
5916
6089
  s0 = peg$currPos;
5917
- if (input.substr(peg$currPos, 3) === peg$c12) {
5918
- s1 = peg$c12;
6090
+ if (input.substr(peg$currPos, 3) === peg$c14) {
6091
+ s1 = peg$c14;
5919
6092
  peg$currPos += 3;
5920
6093
  } else {
5921
6094
  s1 = peg$FAILED;
5922
6095
  if (peg$silentFails === 0) {
5923
- peg$fail(peg$e31);
6096
+ peg$fail(peg$e35);
5924
6097
  }
5925
6098
  }
5926
6099
  if (s1 !== peg$FAILED) {
5927
6100
  s2 = [];
5928
6101
  s3 = peg$currPos;
5929
6102
  s4 = [];
5930
- if (input.substr(peg$currPos, 4) === peg$c13) {
5931
- s5 = peg$c13;
6103
+ if (input.substr(peg$currPos, 4) === peg$c15) {
6104
+ s5 = peg$c15;
5932
6105
  peg$currPos += 4;
5933
6106
  } else {
5934
6107
  s5 = peg$FAILED;
5935
6108
  if (peg$silentFails === 0) {
5936
- peg$fail(peg$e32);
6109
+ peg$fail(peg$e36);
5937
6110
  }
5938
6111
  }
5939
6112
  if (s5 === peg$FAILED) {
5940
6113
  s5 = peg$currPos;
5941
6114
  s6 = peg$currPos;
5942
6115
  peg$silentFails++;
5943
- if (input.substr(peg$currPos, 3) === peg$c12) {
5944
- s7 = peg$c12;
6116
+ if (input.substr(peg$currPos, 3) === peg$c14) {
6117
+ s7 = peg$c14;
5945
6118
  peg$currPos += 3;
5946
6119
  } else {
5947
6120
  s7 = peg$FAILED;
5948
6121
  if (peg$silentFails === 0) {
5949
- peg$fail(peg$e31);
6122
+ peg$fail(peg$e35);
5950
6123
  }
5951
6124
  }
5952
6125
  peg$silentFails--;
@@ -5980,26 +6153,26 @@ function peg$parse(input, options) {
5980
6153
  }
5981
6154
  while (s5 !== peg$FAILED) {
5982
6155
  s4.push(s5);
5983
- if (input.substr(peg$currPos, 4) === peg$c13) {
5984
- s5 = peg$c13;
6156
+ if (input.substr(peg$currPos, 4) === peg$c15) {
6157
+ s5 = peg$c15;
5985
6158
  peg$currPos += 4;
5986
6159
  } else {
5987
6160
  s5 = peg$FAILED;
5988
6161
  if (peg$silentFails === 0) {
5989
- peg$fail(peg$e32);
6162
+ peg$fail(peg$e36);
5990
6163
  }
5991
6164
  }
5992
6165
  if (s5 === peg$FAILED) {
5993
6166
  s5 = peg$currPos;
5994
6167
  s6 = peg$currPos;
5995
6168
  peg$silentFails++;
5996
- if (input.substr(peg$currPos, 3) === peg$c12) {
5997
- s7 = peg$c12;
6169
+ if (input.substr(peg$currPos, 3) === peg$c14) {
6170
+ s7 = peg$c14;
5998
6171
  peg$currPos += 3;
5999
6172
  } else {
6000
6173
  s7 = peg$FAILED;
6001
6174
  if (peg$silentFails === 0) {
6002
- peg$fail(peg$e31);
6175
+ peg$fail(peg$e35);
6003
6176
  }
6004
6177
  }
6005
6178
  peg$silentFails--;
@@ -6053,26 +6226,26 @@ function peg$parse(input, options) {
6053
6226
  s2.push(s3);
6054
6227
  s3 = peg$currPos;
6055
6228
  s4 = [];
6056
- if (input.substr(peg$currPos, 4) === peg$c13) {
6057
- s5 = peg$c13;
6229
+ if (input.substr(peg$currPos, 4) === peg$c15) {
6230
+ s5 = peg$c15;
6058
6231
  peg$currPos += 4;
6059
6232
  } else {
6060
6233
  s5 = peg$FAILED;
6061
6234
  if (peg$silentFails === 0) {
6062
- peg$fail(peg$e32);
6235
+ peg$fail(peg$e36);
6063
6236
  }
6064
6237
  }
6065
6238
  if (s5 === peg$FAILED) {
6066
6239
  s5 = peg$currPos;
6067
6240
  s6 = peg$currPos;
6068
6241
  peg$silentFails++;
6069
- if (input.substr(peg$currPos, 3) === peg$c12) {
6070
- s7 = peg$c12;
6242
+ if (input.substr(peg$currPos, 3) === peg$c14) {
6243
+ s7 = peg$c14;
6071
6244
  peg$currPos += 3;
6072
6245
  } else {
6073
6246
  s7 = peg$FAILED;
6074
6247
  if (peg$silentFails === 0) {
6075
- peg$fail(peg$e31);
6248
+ peg$fail(peg$e35);
6076
6249
  }
6077
6250
  }
6078
6251
  peg$silentFails--;
@@ -6106,26 +6279,26 @@ function peg$parse(input, options) {
6106
6279
  }
6107
6280
  while (s5 !== peg$FAILED) {
6108
6281
  s4.push(s5);
6109
- if (input.substr(peg$currPos, 4) === peg$c13) {
6110
- s5 = peg$c13;
6282
+ if (input.substr(peg$currPos, 4) === peg$c15) {
6283
+ s5 = peg$c15;
6111
6284
  peg$currPos += 4;
6112
6285
  } else {
6113
6286
  s5 = peg$FAILED;
6114
6287
  if (peg$silentFails === 0) {
6115
- peg$fail(peg$e32);
6288
+ peg$fail(peg$e36);
6116
6289
  }
6117
6290
  }
6118
6291
  if (s5 === peg$FAILED) {
6119
6292
  s5 = peg$currPos;
6120
6293
  s6 = peg$currPos;
6121
6294
  peg$silentFails++;
6122
- if (input.substr(peg$currPos, 3) === peg$c12) {
6123
- s7 = peg$c12;
6295
+ if (input.substr(peg$currPos, 3) === peg$c14) {
6296
+ s7 = peg$c14;
6124
6297
  peg$currPos += 3;
6125
6298
  } else {
6126
6299
  s7 = peg$FAILED;
6127
6300
  if (peg$silentFails === 0) {
6128
- peg$fail(peg$e31);
6301
+ peg$fail(peg$e35);
6129
6302
  }
6130
6303
  }
6131
6304
  peg$silentFails--;
@@ -6180,26 +6353,26 @@ function peg$parse(input, options) {
6180
6353
  }
6181
6354
  if (s2 !== peg$FAILED) {
6182
6355
  s3 = [];
6183
- if (input.substr(peg$currPos, 4) === peg$c13) {
6184
- s4 = peg$c13;
6356
+ if (input.substr(peg$currPos, 4) === peg$c15) {
6357
+ s4 = peg$c15;
6185
6358
  peg$currPos += 4;
6186
6359
  } else {
6187
6360
  s4 = peg$FAILED;
6188
6361
  if (peg$silentFails === 0) {
6189
- peg$fail(peg$e32);
6362
+ peg$fail(peg$e36);
6190
6363
  }
6191
6364
  }
6192
6365
  if (s4 === peg$FAILED) {
6193
6366
  s4 = peg$currPos;
6194
6367
  s5 = peg$currPos;
6195
6368
  peg$silentFails++;
6196
- if (input.substr(peg$currPos, 3) === peg$c12) {
6197
- s6 = peg$c12;
6369
+ if (input.substr(peg$currPos, 3) === peg$c14) {
6370
+ s6 = peg$c14;
6198
6371
  peg$currPos += 3;
6199
6372
  } else {
6200
6373
  s6 = peg$FAILED;
6201
6374
  if (peg$silentFails === 0) {
6202
- peg$fail(peg$e31);
6375
+ peg$fail(peg$e35);
6203
6376
  }
6204
6377
  }
6205
6378
  peg$silentFails--;
@@ -6233,26 +6406,26 @@ function peg$parse(input, options) {
6233
6406
  }
6234
6407
  while (s4 !== peg$FAILED) {
6235
6408
  s3.push(s4);
6236
- if (input.substr(peg$currPos, 4) === peg$c13) {
6237
- s4 = peg$c13;
6409
+ if (input.substr(peg$currPos, 4) === peg$c15) {
6410
+ s4 = peg$c15;
6238
6411
  peg$currPos += 4;
6239
6412
  } else {
6240
6413
  s4 = peg$FAILED;
6241
6414
  if (peg$silentFails === 0) {
6242
- peg$fail(peg$e32);
6415
+ peg$fail(peg$e36);
6243
6416
  }
6244
6417
  }
6245
6418
  if (s4 === peg$FAILED) {
6246
6419
  s4 = peg$currPos;
6247
6420
  s5 = peg$currPos;
6248
6421
  peg$silentFails++;
6249
- if (input.substr(peg$currPos, 3) === peg$c12) {
6250
- s6 = peg$c12;
6422
+ if (input.substr(peg$currPos, 3) === peg$c14) {
6423
+ s6 = peg$c14;
6251
6424
  peg$currPos += 3;
6252
6425
  } else {
6253
6426
  s6 = peg$FAILED;
6254
6427
  if (peg$silentFails === 0) {
6255
- peg$fail(peg$e31);
6428
+ peg$fail(peg$e35);
6256
6429
  }
6257
6430
  }
6258
6431
  peg$silentFails--;
@@ -6285,18 +6458,18 @@ function peg$parse(input, options) {
6285
6458
  }
6286
6459
  }
6287
6460
  }
6288
- if (input.substr(peg$currPos, 3) === peg$c12) {
6289
- s4 = peg$c12;
6461
+ if (input.substr(peg$currPos, 3) === peg$c14) {
6462
+ s4 = peg$c14;
6290
6463
  peg$currPos += 3;
6291
6464
  } else {
6292
6465
  s4 = peg$FAILED;
6293
6466
  if (peg$silentFails === 0) {
6294
- peg$fail(peg$e31);
6467
+ peg$fail(peg$e35);
6295
6468
  }
6296
6469
  }
6297
6470
  if (s4 !== peg$FAILED) {
6298
6471
  peg$savedPos = s0;
6299
- s0 = peg$f24(s1);
6472
+ s0 = peg$f25(s1);
6300
6473
  } else {
6301
6474
  peg$currPos = s0;
6302
6475
  s0 = peg$FAILED;
@@ -6316,39 +6489,39 @@ function peg$parse(input, options) {
6316
6489
  function peg$parsetripleBQuotedMultiLineString() {
6317
6490
  let s0, s1, s2, s3, s4, s5, s6, s7;
6318
6491
  s0 = peg$currPos;
6319
- if (input.substr(peg$currPos, 3) === peg$c14) {
6320
- s1 = peg$c14;
6492
+ if (input.substr(peg$currPos, 3) === peg$c16) {
6493
+ s1 = peg$c16;
6321
6494
  peg$currPos += 3;
6322
6495
  } else {
6323
6496
  s1 = peg$FAILED;
6324
6497
  if (peg$silentFails === 0) {
6325
- peg$fail(peg$e33);
6498
+ peg$fail(peg$e37);
6326
6499
  }
6327
6500
  }
6328
6501
  if (s1 !== peg$FAILED) {
6329
6502
  s2 = [];
6330
6503
  s3 = peg$currPos;
6331
6504
  s4 = [];
6332
- if (input.substr(peg$currPos, 4) === peg$c15) {
6333
- s5 = peg$c15;
6505
+ if (input.substr(peg$currPos, 4) === peg$c17) {
6506
+ s5 = peg$c17;
6334
6507
  peg$currPos += 4;
6335
6508
  } else {
6336
6509
  s5 = peg$FAILED;
6337
6510
  if (peg$silentFails === 0) {
6338
- peg$fail(peg$e34);
6511
+ peg$fail(peg$e38);
6339
6512
  }
6340
6513
  }
6341
6514
  if (s5 === peg$FAILED) {
6342
6515
  s5 = peg$currPos;
6343
6516
  s6 = peg$currPos;
6344
6517
  peg$silentFails++;
6345
- if (input.substr(peg$currPos, 3) === peg$c14) {
6346
- s7 = peg$c14;
6518
+ if (input.substr(peg$currPos, 3) === peg$c16) {
6519
+ s7 = peg$c16;
6347
6520
  peg$currPos += 3;
6348
6521
  } else {
6349
6522
  s7 = peg$FAILED;
6350
6523
  if (peg$silentFails === 0) {
6351
- peg$fail(peg$e33);
6524
+ peg$fail(peg$e37);
6352
6525
  }
6353
6526
  }
6354
6527
  peg$silentFails--;
@@ -6382,26 +6555,26 @@ function peg$parse(input, options) {
6382
6555
  }
6383
6556
  while (s5 !== peg$FAILED) {
6384
6557
  s4.push(s5);
6385
- if (input.substr(peg$currPos, 4) === peg$c15) {
6386
- s5 = peg$c15;
6558
+ if (input.substr(peg$currPos, 4) === peg$c17) {
6559
+ s5 = peg$c17;
6387
6560
  peg$currPos += 4;
6388
6561
  } else {
6389
6562
  s5 = peg$FAILED;
6390
6563
  if (peg$silentFails === 0) {
6391
- peg$fail(peg$e34);
6564
+ peg$fail(peg$e38);
6392
6565
  }
6393
6566
  }
6394
6567
  if (s5 === peg$FAILED) {
6395
6568
  s5 = peg$currPos;
6396
6569
  s6 = peg$currPos;
6397
6570
  peg$silentFails++;
6398
- if (input.substr(peg$currPos, 3) === peg$c14) {
6399
- s7 = peg$c14;
6571
+ if (input.substr(peg$currPos, 3) === peg$c16) {
6572
+ s7 = peg$c16;
6400
6573
  peg$currPos += 3;
6401
6574
  } else {
6402
6575
  s7 = peg$FAILED;
6403
6576
  if (peg$silentFails === 0) {
6404
- peg$fail(peg$e33);
6577
+ peg$fail(peg$e37);
6405
6578
  }
6406
6579
  }
6407
6580
  peg$silentFails--;
@@ -6455,26 +6628,26 @@ function peg$parse(input, options) {
6455
6628
  s2.push(s3);
6456
6629
  s3 = peg$currPos;
6457
6630
  s4 = [];
6458
- if (input.substr(peg$currPos, 4) === peg$c15) {
6459
- s5 = peg$c15;
6631
+ if (input.substr(peg$currPos, 4) === peg$c17) {
6632
+ s5 = peg$c17;
6460
6633
  peg$currPos += 4;
6461
6634
  } else {
6462
6635
  s5 = peg$FAILED;
6463
6636
  if (peg$silentFails === 0) {
6464
- peg$fail(peg$e34);
6637
+ peg$fail(peg$e38);
6465
6638
  }
6466
6639
  }
6467
6640
  if (s5 === peg$FAILED) {
6468
6641
  s5 = peg$currPos;
6469
6642
  s6 = peg$currPos;
6470
6643
  peg$silentFails++;
6471
- if (input.substr(peg$currPos, 3) === peg$c14) {
6472
- s7 = peg$c14;
6644
+ if (input.substr(peg$currPos, 3) === peg$c16) {
6645
+ s7 = peg$c16;
6473
6646
  peg$currPos += 3;
6474
6647
  } else {
6475
6648
  s7 = peg$FAILED;
6476
6649
  if (peg$silentFails === 0) {
6477
- peg$fail(peg$e33);
6650
+ peg$fail(peg$e37);
6478
6651
  }
6479
6652
  }
6480
6653
  peg$silentFails--;
@@ -6508,26 +6681,26 @@ function peg$parse(input, options) {
6508
6681
  }
6509
6682
  while (s5 !== peg$FAILED) {
6510
6683
  s4.push(s5);
6511
- if (input.substr(peg$currPos, 4) === peg$c15) {
6512
- s5 = peg$c15;
6684
+ if (input.substr(peg$currPos, 4) === peg$c17) {
6685
+ s5 = peg$c17;
6513
6686
  peg$currPos += 4;
6514
6687
  } else {
6515
6688
  s5 = peg$FAILED;
6516
6689
  if (peg$silentFails === 0) {
6517
- peg$fail(peg$e34);
6690
+ peg$fail(peg$e38);
6518
6691
  }
6519
6692
  }
6520
6693
  if (s5 === peg$FAILED) {
6521
6694
  s5 = peg$currPos;
6522
6695
  s6 = peg$currPos;
6523
6696
  peg$silentFails++;
6524
- if (input.substr(peg$currPos, 3) === peg$c14) {
6525
- s7 = peg$c14;
6697
+ if (input.substr(peg$currPos, 3) === peg$c16) {
6698
+ s7 = peg$c16;
6526
6699
  peg$currPos += 3;
6527
6700
  } else {
6528
6701
  s7 = peg$FAILED;
6529
6702
  if (peg$silentFails === 0) {
6530
- peg$fail(peg$e33);
6703
+ peg$fail(peg$e37);
6531
6704
  }
6532
6705
  }
6533
6706
  peg$silentFails--;
@@ -6582,26 +6755,26 @@ function peg$parse(input, options) {
6582
6755
  }
6583
6756
  if (s2 !== peg$FAILED) {
6584
6757
  s3 = [];
6585
- if (input.substr(peg$currPos, 4) === peg$c15) {
6586
- s4 = peg$c15;
6758
+ if (input.substr(peg$currPos, 4) === peg$c17) {
6759
+ s4 = peg$c17;
6587
6760
  peg$currPos += 4;
6588
6761
  } else {
6589
6762
  s4 = peg$FAILED;
6590
6763
  if (peg$silentFails === 0) {
6591
- peg$fail(peg$e34);
6764
+ peg$fail(peg$e38);
6592
6765
  }
6593
6766
  }
6594
6767
  if (s4 === peg$FAILED) {
6595
6768
  s4 = peg$currPos;
6596
6769
  s5 = peg$currPos;
6597
6770
  peg$silentFails++;
6598
- if (input.substr(peg$currPos, 3) === peg$c14) {
6599
- s6 = peg$c14;
6771
+ if (input.substr(peg$currPos, 3) === peg$c16) {
6772
+ s6 = peg$c16;
6600
6773
  peg$currPos += 3;
6601
6774
  } else {
6602
6775
  s6 = peg$FAILED;
6603
6776
  if (peg$silentFails === 0) {
6604
- peg$fail(peg$e33);
6777
+ peg$fail(peg$e37);
6605
6778
  }
6606
6779
  }
6607
6780
  peg$silentFails--;
@@ -6635,26 +6808,26 @@ function peg$parse(input, options) {
6635
6808
  }
6636
6809
  while (s4 !== peg$FAILED) {
6637
6810
  s3.push(s4);
6638
- if (input.substr(peg$currPos, 4) === peg$c15) {
6639
- s4 = peg$c15;
6811
+ if (input.substr(peg$currPos, 4) === peg$c17) {
6812
+ s4 = peg$c17;
6640
6813
  peg$currPos += 4;
6641
6814
  } else {
6642
6815
  s4 = peg$FAILED;
6643
6816
  if (peg$silentFails === 0) {
6644
- peg$fail(peg$e34);
6817
+ peg$fail(peg$e38);
6645
6818
  }
6646
6819
  }
6647
6820
  if (s4 === peg$FAILED) {
6648
6821
  s4 = peg$currPos;
6649
6822
  s5 = peg$currPos;
6650
6823
  peg$silentFails++;
6651
- if (input.substr(peg$currPos, 3) === peg$c14) {
6652
- s6 = peg$c14;
6824
+ if (input.substr(peg$currPos, 3) === peg$c16) {
6825
+ s6 = peg$c16;
6653
6826
  peg$currPos += 3;
6654
6827
  } else {
6655
6828
  s6 = peg$FAILED;
6656
6829
  if (peg$silentFails === 0) {
6657
- peg$fail(peg$e33);
6830
+ peg$fail(peg$e37);
6658
6831
  }
6659
6832
  }
6660
6833
  peg$silentFails--;
@@ -6687,18 +6860,18 @@ function peg$parse(input, options) {
6687
6860
  }
6688
6861
  }
6689
6862
  }
6690
- if (input.substr(peg$currPos, 3) === peg$c14) {
6691
- s4 = peg$c14;
6863
+ if (input.substr(peg$currPos, 3) === peg$c16) {
6864
+ s4 = peg$c16;
6692
6865
  peg$currPos += 3;
6693
6866
  } else {
6694
6867
  s4 = peg$FAILED;
6695
6868
  if (peg$silentFails === 0) {
6696
- peg$fail(peg$e33);
6869
+ peg$fail(peg$e37);
6697
6870
  }
6698
6871
  }
6699
6872
  if (s4 !== peg$FAILED) {
6700
6873
  peg$savedPos = s0;
6701
- s0 = peg$f25(s1);
6874
+ s0 = peg$f26(s1);
6702
6875
  } else {
6703
6876
  peg$currPos = s0;
6704
6877
  s0 = peg$FAILED;
@@ -6735,7 +6908,7 @@ function peg$parse(input, options) {
6735
6908
  } else {
6736
6909
  s1 = peg$FAILED;
6737
6910
  if (peg$silentFails === 0) {
6738
- peg$fail(peg$e35);
6911
+ peg$fail(peg$e39);
6739
6912
  }
6740
6913
  }
6741
6914
  peg$silentFails--;
@@ -7038,10 +7211,20 @@ var UrlDataType = createEnvGraphDataType(
7038
7211
  } catch (err) {
7039
7212
  throw new ValidationError("Invalid URL");
7040
7213
  }
7214
+ const errors = [];
7041
7215
  if (settings?.allowedDomains && !settings.allowedDomains.includes(url.host.toLowerCase())) {
7042
- return new ValidationError(`Domain (${url.host}) is not in allowed list: ${settings.allowedDomains.join(",")}`);
7216
+ errors.push(new ValidationError(`Domain (${url.host}) is not in allowed list: ${settings.allowedDomains.join(",")}`));
7043
7217
  }
7044
- return true;
7218
+ if (settings?.noTrailingSlash && val.endsWith("/")) {
7219
+ errors.push(new ValidationError("URL must not have a trailing slash"));
7220
+ }
7221
+ if (settings?.matches) {
7222
+ const regex = my_dash_default.isString(settings.matches) ? new RegExp(settings.matches) : settings.matches;
7223
+ if (!regex.test(val)) {
7224
+ errors.push(new ValidationError(`URL must match regex "${settings.matches}"`));
7225
+ }
7226
+ }
7227
+ return errors.length ? errors : true;
7045
7228
  }
7046
7229
  })
7047
7230
  );
@@ -8617,7 +8800,7 @@ var builtInRootDecorators = [
8617
8800
  dataSource._loadingError = err instanceof SchemaError ? err : new SchemaError(err);
8618
8801
  return;
8619
8802
  }
8620
- const { ConfigItem: ConfigItem2 } = await import('./config-item-IYYV4PO6.js');
8803
+ const { ConfigItem: ConfigItem2 } = await import('./config-item-PBUWXK73.js');
8621
8804
  for (const [key, entry] of Object.entries(entries)) {
8622
8805
  const existsInSchema = key in graph.configSchema;
8623
8806
  if (!existsInSchema && !createMissing) {
@@ -8677,6 +8860,61 @@ var builtInItemDecorators = [
8677
8860
  // test-only decorators — dropped in release builds
8678
8861
  ...[]
8679
8862
  ];
8863
+ var ExecError = class extends Error {
8864
+ constructor(exitCode, signal, data = "command gave no output") {
8865
+ super(data);
8866
+ this.exitCode = exitCode;
8867
+ this.signal = signal;
8868
+ this.data = data;
8869
+ }
8870
+ static {
8871
+ __name(this, "ExecError");
8872
+ }
8873
+ };
8874
+ function spawnAsyncHelper(command, args, spawnOptions) {
8875
+ const childProcess = spawn(command, args, spawnOptions || {});
8876
+ const deferred = new Promise((resolve, reject) => {
8877
+ let stdoutData = "";
8878
+ let stderrData = "";
8879
+ childProcess.stdout?.on("data", (data) => {
8880
+ stdoutData += data.toString();
8881
+ });
8882
+ childProcess.stderr?.on("data", (data) => {
8883
+ stderrData += data.toString();
8884
+ });
8885
+ childProcess.stdout?.on("error", (err) => {
8886
+ reject(err);
8887
+ });
8888
+ childProcess.stderr?.on("error", (err) => {
8889
+ reject(err);
8890
+ });
8891
+ childProcess.on("error", (err) => {
8892
+ reject(err);
8893
+ });
8894
+ childProcess.on("exit", (exitCode, signal) => {
8895
+ if (!exitCode) {
8896
+ resolve(stdoutData);
8897
+ } else {
8898
+ reject(
8899
+ new ExecError(exitCode, signal, stderrData)
8900
+ );
8901
+ }
8902
+ });
8903
+ });
8904
+ return { childProcess, execResult: deferred };
8905
+ }
8906
+ __name(spawnAsyncHelper, "spawnAsyncHelper");
8907
+ async function spawnAsync(command, args, opts) {
8908
+ const { input, ...spawnOpts } = opts ?? {};
8909
+ const { childProcess, execResult } = spawnAsyncHelper(command, args, spawnOpts);
8910
+ if (input !== void 0 && childProcess.stdin) {
8911
+ childProcess.stdin.write(input);
8912
+ childProcess.stdin.end();
8913
+ }
8914
+ return execResult;
8915
+ }
8916
+ __name(spawnAsync, "spawnAsync");
8917
+ var asyncExec = promisify(exec);
8680
8918
 
8681
8919
  // ../ci-env-info/dist/index.js
8682
8920
  function refToBranch(ref) {
@@ -9220,6 +9458,16 @@ function inferFromBranch(branch) {
9220
9458
  return "preview";
9221
9459
  }
9222
9460
  __name(inferFromBranch, "inferFromBranch");
9461
+ async function getGitBranch() {
9462
+ try {
9463
+ const { stdout } = await asyncExec("git branch --show-current", { timeout: 3e3 });
9464
+ const branch = stdout.trim();
9465
+ return branch || void 0;
9466
+ } catch {
9467
+ return void 0;
9468
+ }
9469
+ }
9470
+ __name(getGitBranch, "getGitBranch");
9223
9471
  function inferVarlockEnv(ciEnv, processEnv) {
9224
9472
  if (detectTestEnvironment(processEnv)) return "test";
9225
9473
  if (ciEnv.environment) return ciEnv.environment;
@@ -9242,8 +9490,8 @@ var BUILTIN_VARS = {
9242
9490
  },
9243
9491
  VARLOCK_BRANCH: {
9244
9492
  name: "VARLOCK_BRANCH",
9245
- description: "Current git branch name",
9246
- resolver: /* @__PURE__ */ __name((ciEnv) => ciEnv.branch, "resolver")
9493
+ description: "Current git branch name. In CI, sourced from platform environment variables. Locally (non-CI), auto-detected via `git branch --show-current`.",
9494
+ resolver: /* @__PURE__ */ __name((ciEnv) => ciEnv.branch ?? (!ciEnv.isCI ? getGitBranch() : void 0), "resolver")
9247
9495
  },
9248
9496
  VARLOCK_PR_NUMBER: {
9249
9497
  name: "VARLOCK_PR_NUMBER",
@@ -9463,7 +9711,7 @@ var StaticValueResolver = class extends Resolver {
9463
9711
  constructor(_staticValue) {
9464
9712
  super([]);
9465
9713
  this._staticValue = _staticValue;
9466
- if (_staticValue !== void 0) {
9714
+ if (_staticValue !== void 0 && !(_staticValue instanceof RegExp)) {
9467
9715
  this.inferredType = typeof _staticValue;
9468
9716
  }
9469
9717
  }
@@ -9854,6 +10102,8 @@ var BaseResolvers = [
9854
10102
  function convertParsedValueToResolvers(value, dataSource, registeredResolvers) {
9855
10103
  if (value === void 0) {
9856
10104
  return void 0;
10105
+ } else if (value instanceof ParsedEnvSpecRegexLiteral) {
10106
+ return new StaticValueResolver(value.value);
9857
10107
  } else if (value instanceof ParsedEnvSpecStaticValue) {
9858
10108
  return new StaticValueResolver(value.unescapedValue);
9859
10109
  } else if (value instanceof ParsedEnvSpecFunctionCall || value instanceof ParsedEnvSpecFunctionArgs) {
@@ -10192,7 +10442,16 @@ var VarlockPlugin = class {
10192
10442
  dataType
10193
10443
  };
10194
10444
  });
10195
- const detected = resolved.filter((v) => v.matchedKey);
10445
+ const initDecName = initDecorator.replace(/^@/, "");
10446
+ const wiredVarNames = /* @__PURE__ */ new Set();
10447
+ for (const source of graph.sortedDataSources) {
10448
+ for (const rootDec of source.rootDecorators) {
10449
+ if (rootDec.name === initDecName && rootDec.isFunctionCall && rootDec.decValueResolver) {
10450
+ for (const dep of rootDec.decValueResolver.deps) wiredVarNames.add(dep);
10451
+ }
10452
+ }
10453
+ }
10454
+ const detected = resolved.filter((v) => v.matchedKey && !wiredVarNames.has(v.matchedKey));
10196
10455
  if (detected.length === 0) return;
10197
10456
  const detectedKeys = detected.map((v) => v.matchedKey);
10198
10457
  const needsSchemaSet = new Set(
@@ -10363,7 +10622,7 @@ async function isPluginCached(url) {
10363
10622
  }
10364
10623
  __name(isPluginCached, "isPluginCached");
10365
10624
  async function downloadPlugin(url) {
10366
- const exec2 = promisify(exec);
10625
+ const exec3 = promisify(exec);
10367
10626
  const cacheDir = path2.join(getUserVarlockDir(), "plugins-cache");
10368
10627
  const indexPath = path2.join(cacheDir, "index.json");
10369
10628
  await fs2.mkdir(cacheDir, { recursive: true });
@@ -10394,7 +10653,7 @@ async function downloadPlugin(url) {
10394
10653
  });
10395
10654
  const tmpExtractDir = path2.join(cacheDir, `tmp-extract-${crypto.randomBytes(8).toString("hex")}`);
10396
10655
  await fs2.mkdir(tmpExtractDir);
10397
- await exec2(`tar -xzf ${tmpTgz} -C ${tmpExtractDir}`);
10656
+ await exec3(`tar -xzf ${tmpTgz} -C ${tmpExtractDir}`);
10398
10657
  let pkgJsonPath = path2.join(tmpExtractDir, "package", "package.json");
10399
10658
  let pluginRoot = path2.join(tmpExtractDir, "package");
10400
10659
  if (!await fs2.stat(pkgJsonPath).then(() => true, () => false)) {
@@ -11390,6 +11649,22 @@ async function fetchIconSvg(iconifyName, color = "808080", iconCacheFolder = "/t
11390
11649
  return colorizedSvg;
11391
11650
  }
11392
11651
  __name(fetchIconSvg, "fetchIconSvg");
11652
+ function getItemTsType(info) {
11653
+ const dataType = info.dataType;
11654
+ const dataTypeName = dataType?.name;
11655
+ if (dataType) {
11656
+ if (dataTypeName === "number" || dataTypeName === "port") return "number";
11657
+ if (dataTypeName === "boolean") return "boolean";
11658
+ if (dataTypeName === "simple-object") return "Record<string, any>";
11659
+ if (dataTypeName === "enum") {
11660
+ const rawEnumOptions = dataType._rawDef._rawEnumOptions;
11661
+ if (!rawEnumOptions?.length) return "never";
11662
+ return my_dash_default.map(rawEnumOptions, JSON.stringify).join(" | ");
11663
+ }
11664
+ }
11665
+ return "string";
11666
+ }
11667
+ __name(getItemTsType, "getItemTsType");
11393
11668
  async function getTsDefinitionForItem(info, indentLevel = 0) {
11394
11669
  const i = my_dash_default.times(indentLevel, () => " ").join("");
11395
11670
  const itemSrc = [];
@@ -11419,27 +11694,7 @@ async function getTsDefinitionForItem(info, indentLevel = 0) {
11419
11694
  " */"
11420
11695
  ]);
11421
11696
  }
11422
- const dataType = info.dataType;
11423
- const dataTypeName = dataType?.name;
11424
- let itemTsType = "string";
11425
- if (dataType) {
11426
- if (dataTypeName === "number" || dataTypeName === "port") {
11427
- itemTsType = "number";
11428
- } else if (dataTypeName === "boolean") {
11429
- itemTsType = "boolean";
11430
- } else if (dataTypeName === "simple-object") {
11431
- itemTsType = "Record<string, any>";
11432
- } else if (dataTypeName === "enum") {
11433
- const rawEnumOptions = dataType._rawDef._rawEnumOptions;
11434
- let enumOptions = [];
11435
- enumOptions = rawEnumOptions;
11436
- if (!enumOptions.length) {
11437
- itemTsType = "never";
11438
- } else {
11439
- itemTsType = my_dash_default.map(enumOptions, JSON.stringify).join(" | ");
11440
- }
11441
- }
11442
- }
11697
+ const itemTsType = getItemTsType(info);
11443
11698
  const isRequired = info.isRequired && !info.isRequiredDynamic;
11444
11699
  itemSrc.push(`${info.key}${isRequired ? "" : "?"}: ${itemTsType};`);
11445
11700
  itemSrc.push("");
@@ -11454,18 +11709,22 @@ async function generateTsTypesSrc(items) {
11454
11709
  "/* eslint-disable */",
11455
11710
  "export type CoercedEnvSchema = {"
11456
11711
  ];
11457
- const exposedKeys = [];
11458
- const exposedNonSensitiveKeys = [];
11459
11712
  for (const info of items) {
11460
11713
  tsSrc.push(...await getTsDefinitionForItem(info, 1));
11461
- exposedKeys.push(info.key);
11462
- if (!info.isSensitive) exposedNonSensitiveKeys.push(info.key);
11463
11714
  }
11464
11715
  tsSrc.push("};\n");
11716
+ const schemaHash = crypto.createHash("md5").update(items.map((i) => i.key).sort().join(",")).digest("hex").slice(0, 8);
11717
+ const schemaAlias = `_CoercedEnvSchema_${schemaHash}`;
11718
+ const stringsAlias = `_EnvSchemaAsStrings_${schemaHash}`;
11719
+ tsSrc.push(`type ${schemaAlias} = CoercedEnvSchema;`);
11720
+ const exposedNonSensitiveKeys = [];
11721
+ for (const info of items) {
11722
+ if (!info.isSensitive) exposedNonSensitiveKeys.push(info.key);
11723
+ }
11465
11724
  tsSrc.push(`
11466
11725
  declare module 'varlock/env' {
11467
- export interface TypedEnvSchema extends Readonly<CoercedEnvSchema> {}
11468
- export interface PublicTypedEnvSchema extends Readonly<Pick<CoercedEnvSchema, '${exposedNonSensitiveKeys.join("' | '")}'>> {}
11726
+ export interface TypedEnvSchema extends Readonly<${schemaAlias}> {}
11727
+ export interface PublicTypedEnvSchema extends Readonly<Pick<${schemaAlias}, '${exposedNonSensitiveKeys.join("' | '")}'>> {}
11469
11728
  }
11470
11729
  `);
11471
11730
  tsSrc.push(`
@@ -11475,16 +11734,17 @@ export type EnvSchemaAsStrings = {
11475
11734
  : (CoercedEnvSchema[Property] extends boolean ? ('true' | 'false') : string)
11476
11735
  };
11477
11736
  `);
11737
+ tsSrc.push(`type ${stringsAlias} = EnvSchemaAsStrings;`);
11478
11738
  const IMPORT_META_AUGMENTATION = `
11479
11739
  // add types for global import.meta.env
11480
- interface ImportMetaEnv extends EnvSchemaAsStrings {}
11740
+ interface ImportMetaEnv extends ${stringsAlias} {}
11481
11741
  interface ImportMeta {
11482
11742
  readonly env: ImportMetaEnv;
11483
11743
  }`;
11484
11744
  const PROCESS_ENV_AUGMENTATION = `
11485
11745
  // add types for global process.env
11486
11746
  namespace NodeJS {
11487
- interface ProcessEnv extends EnvSchemaAsStrings {}
11747
+ interface ProcessEnv extends ${stringsAlias} {}
11488
11748
  }`;
11489
11749
  tsSrc.push(...[
11490
11750
  "declare global {",
@@ -11727,9 +11987,6 @@ var EnvGraph2 = class {
11727
11987
  for (const plugin of this.plugins) {
11728
11988
  if (plugin.loadingError) return;
11729
11989
  }
11730
- for (const plugin of this.plugins) {
11731
- plugin._checkStandardVars(this);
11732
- }
11733
11990
  for (const key in this.configSchema) {
11734
11991
  if (isBuiltinVar(key)) this.registerBuiltinVar(key);
11735
11992
  }
@@ -11741,6 +11998,9 @@ var EnvGraph2 = class {
11741
11998
  if (decInstance.schemaErrors.some((e) => !e.isWarning)) processingError = true;
11742
11999
  }
11743
12000
  }
12001
+ for (const plugin of this.plugins) {
12002
+ plugin._checkStandardVars(this);
12003
+ }
11744
12004
  for (const itemKey in this.configSchema) {
11745
12005
  const item = this.configSchema[itemKey];
11746
12006
  await item.process();
@@ -12365,7 +12625,7 @@ var ConfigItem = class {
12365
12625
  }
12366
12626
  }
12367
12627
  if (this.resolvedRawValue instanceof RegExp) {
12368
- this.resolutionError = new ResolutionError("regex() is meant to be used within function args, not as a final resolved value");
12628
+ this.resolutionError = new ResolutionError("Regex values are meant to be used within function args (e.g., remap()), not as a final resolved value");
12369
12629
  }
12370
12630
  if (this.resolutionError) return;
12371
12631
  this.isResolved = true;
@@ -12582,6 +12842,6 @@ var ConfigItem = class {
12582
12842
  }
12583
12843
  };
12584
12844
 
12585
- export { ConfigItem, Ct, DirectoryDataSource, DotEnvFileDataSource, EnvGraph2 as EnvGraph, FileBasedDataSource, Jt, MultiplePathsContainerDataSource, ParsedEnvSpecStaticValue, StaticValueResolver, ansis_default, detectWorkspaceInfo, downloadPluginToCache, envSpecUpdater, getUserVarlockDir, parseEnvSpecDotEnvFile, pathExists, prompts_default, require_semver2 as require_semver, runWithWorkspaceInfo, tryCatch };
12586
- //# sourceMappingURL=chunk-5LNYCOEO.js.map
12587
- //# sourceMappingURL=chunk-5LNYCOEO.js.map
12845
+ export { ConfigItem, Ct, DirectoryDataSource, DotEnvFileDataSource, EnvGraph2 as EnvGraph, FileBasedDataSource, Jt, MultiplePathsContainerDataSource, ParsedEnvSpecStaticValue, StaticValueResolver, ansis_default, detectWorkspaceInfo, downloadPluginToCache, envSpecUpdater, getUserVarlockDir, parseEnvSpecDotEnvFile, pathExists, prompts_default, require_semver2 as require_semver, runWithWorkspaceInfo, spawnAsync, tryCatch };
12846
+ //# sourceMappingURL=chunk-KG6Y2XNO.js.map
12847
+ //# sourceMappingURL=chunk-KG6Y2XNO.js.map