@plugjs/plug 0.0.22 → 0.0.23

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 (157) hide show
  1. package/dist/async.cjs.map +1 -1
  2. package/dist/async.mjs.map +1 -1
  3. package/dist/build.cjs +20 -11
  4. package/dist/build.cjs.map +1 -1
  5. package/dist/build.d.ts +2 -0
  6. package/dist/build.mjs +19 -11
  7. package/dist/build.mjs.map +1 -1
  8. package/dist/files.cjs.map +1 -1
  9. package/dist/files.d.ts +1 -1
  10. package/dist/files.mjs.map +1 -1
  11. package/dist/fork.cjs.map +1 -1
  12. package/dist/fork.d.ts +4 -3
  13. package/dist/fork.mjs.map +1 -1
  14. package/dist/helpers.cjs +20 -0
  15. package/dist/helpers.cjs.map +1 -1
  16. package/dist/helpers.d.ts +34 -2
  17. package/dist/helpers.mjs +20 -2
  18. package/dist/helpers.mjs.map +1 -1
  19. package/dist/index.cjs +2 -5
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.mjs +1 -3
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/log/colors.cjs.map +1 -1
  25. package/dist/log/colors.d.ts +1 -1
  26. package/dist/log/colors.mjs.map +1 -1
  27. package/dist/log/emit.cjs.map +1 -1
  28. package/dist/log/emit.d.ts +1 -1
  29. package/dist/log/emit.mjs.map +1 -1
  30. package/dist/log/logger.cjs.map +1 -1
  31. package/dist/log/logger.d.ts +2 -2
  32. package/dist/log/logger.mjs.map +1 -1
  33. package/dist/log/options.cjs.map +1 -1
  34. package/dist/log/options.d.ts +3 -3
  35. package/dist/log/options.mjs.map +1 -1
  36. package/dist/log/report.cjs.map +1 -1
  37. package/dist/log/report.d.ts +3 -3
  38. package/dist/log/report.mjs.map +1 -1
  39. package/dist/log.cjs.map +1 -1
  40. package/dist/log.d.ts +1 -1
  41. package/dist/log.mjs.map +1 -1
  42. package/dist/paths.cjs.map +1 -1
  43. package/dist/paths.mjs.map +1 -1
  44. package/dist/pipe.cjs +1 -14
  45. package/dist/pipe.cjs.map +1 -1
  46. package/dist/pipe.d.ts +4 -20
  47. package/dist/pipe.mjs +1 -19
  48. package/dist/pipe.mjs.map +1 -1
  49. package/dist/plugs/copy.cjs.map +1 -1
  50. package/dist/plugs/copy.mjs.map +1 -1
  51. package/dist/plugs/coverage/analysis.cjs.map +1 -1
  52. package/dist/plugs/coverage/analysis.d.ts +3 -3
  53. package/dist/plugs/coverage/analysis.mjs.map +1 -1
  54. package/dist/plugs/coverage/report.cjs +1 -1
  55. package/dist/plugs/coverage/report.cjs.map +1 -1
  56. package/dist/plugs/coverage/report.d.ts +3 -3
  57. package/dist/plugs/coverage/report.mjs +1 -1
  58. package/dist/plugs/coverage/report.mjs.map +1 -1
  59. package/dist/plugs/coverage.cjs +1 -1
  60. package/dist/plugs/coverage.cjs.map +1 -1
  61. package/dist/plugs/coverage.d.ts +1 -1
  62. package/dist/plugs/coverage.mjs +1 -1
  63. package/dist/plugs/coverage.mjs.map +1 -1
  64. package/dist/plugs/debug.cjs.map +1 -1
  65. package/dist/plugs/debug.mjs.map +1 -1
  66. package/dist/plugs/esbuild/bundle-locals.d.ts +1 -1
  67. package/dist/plugs/esbuild/fix-extensions.cjs.map +1 -1
  68. package/dist/plugs/esbuild/fix-extensions.d.ts +1 -1
  69. package/dist/plugs/esbuild/fix-extensions.mjs.map +1 -1
  70. package/dist/plugs/esbuild.cjs +1 -1
  71. package/dist/plugs/esbuild.cjs.map +1 -1
  72. package/dist/plugs/esbuild.d.ts +1 -1
  73. package/dist/plugs/esbuild.mjs +1 -1
  74. package/dist/plugs/esbuild.mjs.map +1 -1
  75. package/dist/plugs/eslint/runner.cjs.map +1 -1
  76. package/dist/plugs/eslint/runner.d.ts +2 -2
  77. package/dist/plugs/eslint/runner.mjs.map +1 -1
  78. package/dist/plugs/exec.cjs +1 -1
  79. package/dist/plugs/exec.cjs.map +1 -1
  80. package/dist/plugs/exec.mjs +1 -1
  81. package/dist/plugs/exec.mjs.map +1 -1
  82. package/dist/plugs/filter.cjs.map +1 -1
  83. package/dist/plugs/filter.d.ts +1 -1
  84. package/dist/plugs/filter.mjs.map +1 -1
  85. package/dist/plugs/mocha/reporter.cjs +1 -1
  86. package/dist/plugs/mocha/reporter.cjs.map +1 -1
  87. package/dist/plugs/mocha/reporter.mjs +1 -1
  88. package/dist/plugs/mocha/reporter.mjs.map +1 -1
  89. package/dist/plugs/mocha/runner.cjs.map +1 -1
  90. package/dist/plugs/mocha/runner.d.ts +2 -2
  91. package/dist/plugs/mocha/runner.mjs.map +1 -1
  92. package/dist/plugs/rmf.cjs.map +1 -1
  93. package/dist/plugs/rmf.mjs.map +1 -1
  94. package/dist/plugs/tsc/compiler.cjs.map +1 -1
  95. package/dist/plugs/tsc/compiler.d.ts +1 -1
  96. package/dist/plugs/tsc/compiler.mjs.map +1 -1
  97. package/dist/plugs/tsc/options.cjs.map +1 -1
  98. package/dist/plugs/tsc/options.d.ts +1 -1
  99. package/dist/plugs/tsc/options.mjs.map +1 -1
  100. package/dist/plugs/tsc/report.cjs.map +1 -1
  101. package/dist/plugs/tsc/report.d.ts +2 -2
  102. package/dist/plugs/tsc/report.mjs.map +1 -1
  103. package/dist/plugs/tsc/runner.cjs +1 -1
  104. package/dist/plugs/tsc/runner.cjs.map +1 -1
  105. package/dist/plugs/tsc/runner.d.ts +1 -1
  106. package/dist/plugs/tsc/runner.mjs +1 -1
  107. package/dist/plugs/tsc/runner.mjs.map +1 -1
  108. package/dist/plugs/tsc.cjs.map +1 -1
  109. package/dist/plugs/tsc.mjs.map +1 -1
  110. package/dist/utils/asyncfs.cjs.map +1 -1
  111. package/dist/utils/asyncfs.mjs.map +1 -1
  112. package/dist/utils/caller.cjs.map +1 -1
  113. package/dist/utils/caller.d.ts +1 -1
  114. package/dist/utils/caller.mjs.map +1 -1
  115. package/dist/utils/walk.cjs.map +1 -1
  116. package/dist/utils/walk.d.ts +2 -2
  117. package/dist/utils/walk.mjs.map +1 -1
  118. package/extra/cli.mjs +1152 -51
  119. package/extra/ts-loader.mjs +12 -11
  120. package/package.json +7 -7
  121. package/src/async.ts +2 -1
  122. package/src/files.ts +3 -1
  123. package/src/fork.ts +8 -3
  124. package/src/helpers.ts +61 -4
  125. package/src/index.ts +4 -2
  126. package/src/log/colors.ts +4 -1
  127. package/src/log/emit.ts +4 -1
  128. package/src/log/logger.ts +7 -3
  129. package/src/log/options.ts +6 -3
  130. package/src/log/report.ts +5 -3
  131. package/src/log.ts +1 -1
  132. package/src/paths.ts +1 -0
  133. package/src/pipe.ts +9 -45
  134. package/src/plugs/copy.ts +3 -1
  135. package/src/plugs/coverage/analysis.ts +12 -7
  136. package/src/plugs/coverage/report.ts +13 -8
  137. package/src/plugs/coverage.ts +12 -5
  138. package/src/plugs/debug.ts +4 -2
  139. package/src/plugs/esbuild/bundle-locals.ts +1 -1
  140. package/src/plugs/esbuild/fix-extensions.ts +2 -1
  141. package/src/plugs/esbuild.ts +13 -5
  142. package/src/plugs/eslint/runner.ts +5 -3
  143. package/src/plugs/exec.ts +8 -4
  144. package/src/plugs/filter.ts +5 -2
  145. package/src/plugs/mocha/reporter.ts +5 -3
  146. package/src/plugs/mocha/runner.ts +5 -4
  147. package/src/plugs/rmf.ts +4 -2
  148. package/src/plugs/tsc/compiler.ts +3 -1
  149. package/src/plugs/tsc/options.ts +3 -1
  150. package/src/plugs/tsc/report.ts +5 -2
  151. package/src/plugs/tsc/runner.ts +6 -5
  152. package/src/plugs/tsc.ts +2 -2
  153. package/src/utils/asyncfs.ts +0 -1
  154. package/src/utils/caller.ts +4 -1
  155. package/src/utils/walk.ts +7 -3
  156. package/types/globals.d.ts +15 -0
  157. /package/{extra → types}/webassembly.d.ts +0 -0
package/extra/cli.mjs CHANGED
@@ -1,20 +1,1019 @@
1
1
  #!/usr/bin/env node
2
- import _yargs from "yargs-parser";
2
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
3
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
4
+ }) : x)(function(x) {
5
+ if (typeof require !== "undefined")
6
+ return require.apply(this, arguments);
7
+ throw new Error('Dynamic require of "' + x + '" is not supported');
8
+ });
9
+
10
+ // extra/cli.mts
3
11
  import _childProcess from "node:child_process";
4
12
  import _fs from "node:fs";
5
13
  import _path from "node:path";
6
14
  import _url from "node:url";
15
+
16
+ // node_modules/yargs-parser/build/lib/index.js
17
+ import { format } from "util";
18
+ import { normalize, resolve } from "path";
19
+
20
+ // node_modules/yargs-parser/build/lib/string-utils.js
21
+ function camelCase(str) {
22
+ const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();
23
+ if (!isCamelCase) {
24
+ str = str.toLowerCase();
25
+ }
26
+ if (str.indexOf("-") === -1 && str.indexOf("_") === -1) {
27
+ return str;
28
+ } else {
29
+ let camelcase = "";
30
+ let nextChrUpper = false;
31
+ const leadingHyphens = str.match(/^-+/);
32
+ for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {
33
+ let chr = str.charAt(i);
34
+ if (nextChrUpper) {
35
+ nextChrUpper = false;
36
+ chr = chr.toUpperCase();
37
+ }
38
+ if (i !== 0 && (chr === "-" || chr === "_")) {
39
+ nextChrUpper = true;
40
+ } else if (chr !== "-" && chr !== "_") {
41
+ camelcase += chr;
42
+ }
43
+ }
44
+ return camelcase;
45
+ }
46
+ }
47
+ function decamelize(str, joinString) {
48
+ const lowercase = str.toLowerCase();
49
+ joinString = joinString || "-";
50
+ let notCamelcase = "";
51
+ for (let i = 0; i < str.length; i++) {
52
+ const chrLower = lowercase.charAt(i);
53
+ const chrString = str.charAt(i);
54
+ if (chrLower !== chrString && i > 0) {
55
+ notCamelcase += `${joinString}${lowercase.charAt(i)}`;
56
+ } else {
57
+ notCamelcase += chrString;
58
+ }
59
+ }
60
+ return notCamelcase;
61
+ }
62
+ function looksLikeNumber(x) {
63
+ if (x === null || x === void 0)
64
+ return false;
65
+ if (typeof x === "number")
66
+ return true;
67
+ if (/^0x[0-9a-f]+$/i.test(x))
68
+ return true;
69
+ if (/^0[^.]/.test(x))
70
+ return false;
71
+ return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
72
+ }
73
+
74
+ // node_modules/yargs-parser/build/lib/tokenize-arg-string.js
75
+ function tokenizeArgString(argString) {
76
+ if (Array.isArray(argString)) {
77
+ return argString.map((e) => typeof e !== "string" ? e + "" : e);
78
+ }
79
+ argString = argString.trim();
80
+ let i = 0;
81
+ let prevC = null;
82
+ let c = null;
83
+ let opening = null;
84
+ const args = [];
85
+ for (let ii = 0; ii < argString.length; ii++) {
86
+ prevC = c;
87
+ c = argString.charAt(ii);
88
+ if (c === " " && !opening) {
89
+ if (!(prevC === " ")) {
90
+ i++;
91
+ }
92
+ continue;
93
+ }
94
+ if (c === opening) {
95
+ opening = null;
96
+ } else if ((c === "'" || c === '"') && !opening) {
97
+ opening = c;
98
+ }
99
+ if (!args[i])
100
+ args[i] = "";
101
+ args[i] += c;
102
+ }
103
+ return args;
104
+ }
105
+
106
+ // node_modules/yargs-parser/build/lib/yargs-parser-types.js
107
+ var DefaultValuesForTypeKey;
108
+ (function(DefaultValuesForTypeKey2) {
109
+ DefaultValuesForTypeKey2["BOOLEAN"] = "boolean";
110
+ DefaultValuesForTypeKey2["STRING"] = "string";
111
+ DefaultValuesForTypeKey2["NUMBER"] = "number";
112
+ DefaultValuesForTypeKey2["ARRAY"] = "array";
113
+ })(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));
114
+
115
+ // node_modules/yargs-parser/build/lib/yargs-parser.js
116
+ var mixin;
117
+ var YargsParser = class {
118
+ constructor(_mixin) {
119
+ mixin = _mixin;
120
+ }
121
+ parse(argsInput, options2) {
122
+ const opts = Object.assign({
123
+ alias: void 0,
124
+ array: void 0,
125
+ boolean: void 0,
126
+ config: void 0,
127
+ configObjects: void 0,
128
+ configuration: void 0,
129
+ coerce: void 0,
130
+ count: void 0,
131
+ default: void 0,
132
+ envPrefix: void 0,
133
+ narg: void 0,
134
+ normalize: void 0,
135
+ string: void 0,
136
+ number: void 0,
137
+ __: void 0,
138
+ key: void 0
139
+ }, options2);
140
+ const args = tokenizeArgString(argsInput);
141
+ const inputIsString = typeof argsInput === "string";
142
+ const aliases = combineAliases(Object.assign(/* @__PURE__ */ Object.create(null), opts.alias));
143
+ const configuration = Object.assign({
144
+ "boolean-negation": true,
145
+ "camel-case-expansion": true,
146
+ "combine-arrays": false,
147
+ "dot-notation": true,
148
+ "duplicate-arguments-array": true,
149
+ "flatten-duplicate-arrays": true,
150
+ "greedy-arrays": true,
151
+ "halt-at-non-option": false,
152
+ "nargs-eats-options": false,
153
+ "negation-prefix": "no-",
154
+ "parse-numbers": true,
155
+ "parse-positional-numbers": true,
156
+ "populate--": false,
157
+ "set-placeholder-key": false,
158
+ "short-option-groups": true,
159
+ "strip-aliased": false,
160
+ "strip-dashed": false,
161
+ "unknown-options-as-args": false
162
+ }, opts.configuration);
163
+ const defaults = Object.assign(/* @__PURE__ */ Object.create(null), opts.default);
164
+ const configObjects = opts.configObjects || [];
165
+ const envPrefix = opts.envPrefix;
166
+ const notFlagsOption = configuration["populate--"];
167
+ const notFlagsArgv = notFlagsOption ? "--" : "_";
168
+ const newAliases = /* @__PURE__ */ Object.create(null);
169
+ const defaulted = /* @__PURE__ */ Object.create(null);
170
+ const __ = opts.__ || mixin.format;
171
+ const flags = {
172
+ aliases: /* @__PURE__ */ Object.create(null),
173
+ arrays: /* @__PURE__ */ Object.create(null),
174
+ bools: /* @__PURE__ */ Object.create(null),
175
+ strings: /* @__PURE__ */ Object.create(null),
176
+ numbers: /* @__PURE__ */ Object.create(null),
177
+ counts: /* @__PURE__ */ Object.create(null),
178
+ normalize: /* @__PURE__ */ Object.create(null),
179
+ configs: /* @__PURE__ */ Object.create(null),
180
+ nargs: /* @__PURE__ */ Object.create(null),
181
+ coercions: /* @__PURE__ */ Object.create(null),
182
+ keys: []
183
+ };
184
+ const negative = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/;
185
+ const negatedBoolean = new RegExp("^--" + configuration["negation-prefix"] + "(.+)");
186
+ [].concat(opts.array || []).filter(Boolean).forEach(function(opt) {
187
+ const key = typeof opt === "object" ? opt.key : opt;
188
+ const assignment = Object.keys(opt).map(function(key2) {
189
+ const arrayFlagKeys = {
190
+ boolean: "bools",
191
+ string: "strings",
192
+ number: "numbers"
193
+ };
194
+ return arrayFlagKeys[key2];
195
+ }).filter(Boolean).pop();
196
+ if (assignment) {
197
+ flags[assignment][key] = true;
198
+ }
199
+ flags.arrays[key] = true;
200
+ flags.keys.push(key);
201
+ });
202
+ [].concat(opts.boolean || []).filter(Boolean).forEach(function(key) {
203
+ flags.bools[key] = true;
204
+ flags.keys.push(key);
205
+ });
206
+ [].concat(opts.string || []).filter(Boolean).forEach(function(key) {
207
+ flags.strings[key] = true;
208
+ flags.keys.push(key);
209
+ });
210
+ [].concat(opts.number || []).filter(Boolean).forEach(function(key) {
211
+ flags.numbers[key] = true;
212
+ flags.keys.push(key);
213
+ });
214
+ [].concat(opts.count || []).filter(Boolean).forEach(function(key) {
215
+ flags.counts[key] = true;
216
+ flags.keys.push(key);
217
+ });
218
+ [].concat(opts.normalize || []).filter(Boolean).forEach(function(key) {
219
+ flags.normalize[key] = true;
220
+ flags.keys.push(key);
221
+ });
222
+ if (typeof opts.narg === "object") {
223
+ Object.entries(opts.narg).forEach(([key, value]) => {
224
+ if (typeof value === "number") {
225
+ flags.nargs[key] = value;
226
+ flags.keys.push(key);
227
+ }
228
+ });
229
+ }
230
+ if (typeof opts.coerce === "object") {
231
+ Object.entries(opts.coerce).forEach(([key, value]) => {
232
+ if (typeof value === "function") {
233
+ flags.coercions[key] = value;
234
+ flags.keys.push(key);
235
+ }
236
+ });
237
+ }
238
+ if (typeof opts.config !== "undefined") {
239
+ if (Array.isArray(opts.config) || typeof opts.config === "string") {
240
+ ;
241
+ [].concat(opts.config).filter(Boolean).forEach(function(key) {
242
+ flags.configs[key] = true;
243
+ });
244
+ } else if (typeof opts.config === "object") {
245
+ Object.entries(opts.config).forEach(([key, value]) => {
246
+ if (typeof value === "boolean" || typeof value === "function") {
247
+ flags.configs[key] = value;
248
+ }
249
+ });
250
+ }
251
+ }
252
+ extendAliases(opts.key, aliases, opts.default, flags.arrays);
253
+ Object.keys(defaults).forEach(function(key) {
254
+ (flags.aliases[key] || []).forEach(function(alias) {
255
+ defaults[alias] = defaults[key];
256
+ });
257
+ });
258
+ let error = null;
259
+ checkConfiguration();
260
+ let notFlags = [];
261
+ const argv = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] });
262
+ const argvReturn = {};
263
+ for (let i = 0; i < args.length; i++) {
264
+ const arg = args[i];
265
+ const truncatedArg = arg.replace(/^-{3,}/, "---");
266
+ let broken;
267
+ let key;
268
+ let letters;
269
+ let m;
270
+ let next;
271
+ let value;
272
+ if (arg !== "--" && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {
273
+ pushPositional(arg);
274
+ } else if (truncatedArg.match(/^---+(=|$)/)) {
275
+ pushPositional(arg);
276
+ continue;
277
+ } else if (arg.match(/^--.+=/) || !configuration["short-option-groups"] && arg.match(/^-.+=/)) {
278
+ m = arg.match(/^--?([^=]+)=([\s\S]*)$/);
279
+ if (m !== null && Array.isArray(m) && m.length >= 3) {
280
+ if (checkAllAliases(m[1], flags.arrays)) {
281
+ i = eatArray(i, m[1], args, m[2]);
282
+ } else if (checkAllAliases(m[1], flags.nargs) !== false) {
283
+ i = eatNargs(i, m[1], args, m[2]);
284
+ } else {
285
+ setArg(m[1], m[2], true);
286
+ }
287
+ }
288
+ } else if (arg.match(negatedBoolean) && configuration["boolean-negation"]) {
289
+ m = arg.match(negatedBoolean);
290
+ if (m !== null && Array.isArray(m) && m.length >= 2) {
291
+ key = m[1];
292
+ setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);
293
+ }
294
+ } else if (arg.match(/^--.+/) || !configuration["short-option-groups"] && arg.match(/^-[^-]+/)) {
295
+ m = arg.match(/^--?(.+)/);
296
+ if (m !== null && Array.isArray(m) && m.length >= 2) {
297
+ key = m[1];
298
+ if (checkAllAliases(key, flags.arrays)) {
299
+ i = eatArray(i, key, args);
300
+ } else if (checkAllAliases(key, flags.nargs) !== false) {
301
+ i = eatNargs(i, key, args);
302
+ } else {
303
+ next = args[i + 1];
304
+ if (next !== void 0 && (!next.match(/^-/) || next.match(negative)) && !checkAllAliases(key, flags.bools) && !checkAllAliases(key, flags.counts)) {
305
+ setArg(key, next);
306
+ i++;
307
+ } else if (/^(true|false)$/.test(next)) {
308
+ setArg(key, next);
309
+ i++;
310
+ } else {
311
+ setArg(key, defaultValue(key));
312
+ }
313
+ }
314
+ }
315
+ } else if (arg.match(/^-.\..+=/)) {
316
+ m = arg.match(/^-([^=]+)=([\s\S]*)$/);
317
+ if (m !== null && Array.isArray(m) && m.length >= 3) {
318
+ setArg(m[1], m[2]);
319
+ }
320
+ } else if (arg.match(/^-.\..+/) && !arg.match(negative)) {
321
+ next = args[i + 1];
322
+ m = arg.match(/^-(.\..+)/);
323
+ if (m !== null && Array.isArray(m) && m.length >= 2) {
324
+ key = m[1];
325
+ if (next !== void 0 && !next.match(/^-/) && !checkAllAliases(key, flags.bools) && !checkAllAliases(key, flags.counts)) {
326
+ setArg(key, next);
327
+ i++;
328
+ } else {
329
+ setArg(key, defaultValue(key));
330
+ }
331
+ }
332
+ } else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {
333
+ letters = arg.slice(1, -1).split("");
334
+ broken = false;
335
+ for (let j = 0; j < letters.length; j++) {
336
+ next = arg.slice(j + 2);
337
+ if (letters[j + 1] && letters[j + 1] === "=") {
338
+ value = arg.slice(j + 3);
339
+ key = letters[j];
340
+ if (checkAllAliases(key, flags.arrays)) {
341
+ i = eatArray(i, key, args, value);
342
+ } else if (checkAllAliases(key, flags.nargs) !== false) {
343
+ i = eatNargs(i, key, args, value);
344
+ } else {
345
+ setArg(key, value);
346
+ }
347
+ broken = true;
348
+ break;
349
+ }
350
+ if (next === "-") {
351
+ setArg(letters[j], next);
352
+ continue;
353
+ }
354
+ if (/[A-Za-z]/.test(letters[j]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next) && checkAllAliases(next, flags.bools) === false) {
355
+ setArg(letters[j], next);
356
+ broken = true;
357
+ break;
358
+ }
359
+ if (letters[j + 1] && letters[j + 1].match(/\W/)) {
360
+ setArg(letters[j], next);
361
+ broken = true;
362
+ break;
363
+ } else {
364
+ setArg(letters[j], defaultValue(letters[j]));
365
+ }
366
+ }
367
+ key = arg.slice(-1)[0];
368
+ if (!broken && key !== "-") {
369
+ if (checkAllAliases(key, flags.arrays)) {
370
+ i = eatArray(i, key, args);
371
+ } else if (checkAllAliases(key, flags.nargs) !== false) {
372
+ i = eatNargs(i, key, args);
373
+ } else {
374
+ next = args[i + 1];
375
+ if (next !== void 0 && (!/^(-|--)[^-]/.test(next) || next.match(negative)) && !checkAllAliases(key, flags.bools) && !checkAllAliases(key, flags.counts)) {
376
+ setArg(key, next);
377
+ i++;
378
+ } else if (/^(true|false)$/.test(next)) {
379
+ setArg(key, next);
380
+ i++;
381
+ } else {
382
+ setArg(key, defaultValue(key));
383
+ }
384
+ }
385
+ }
386
+ } else if (arg.match(/^-[0-9]$/) && arg.match(negative) && checkAllAliases(arg.slice(1), flags.bools)) {
387
+ key = arg.slice(1);
388
+ setArg(key, defaultValue(key));
389
+ } else if (arg === "--") {
390
+ notFlags = args.slice(i + 1);
391
+ break;
392
+ } else if (configuration["halt-at-non-option"]) {
393
+ notFlags = args.slice(i);
394
+ break;
395
+ } else {
396
+ pushPositional(arg);
397
+ }
398
+ }
399
+ applyEnvVars(argv, true);
400
+ applyEnvVars(argv, false);
401
+ setConfig(argv);
402
+ setConfigObjects();
403
+ applyDefaultsAndAliases(argv, flags.aliases, defaults, true);
404
+ applyCoercions(argv);
405
+ if (configuration["set-placeholder-key"])
406
+ setPlaceholderKeys(argv);
407
+ Object.keys(flags.counts).forEach(function(key) {
408
+ if (!hasKey(argv, key.split(".")))
409
+ setArg(key, 0);
410
+ });
411
+ if (notFlagsOption && notFlags.length)
412
+ argv[notFlagsArgv] = [];
413
+ notFlags.forEach(function(key) {
414
+ argv[notFlagsArgv].push(key);
415
+ });
416
+ if (configuration["camel-case-expansion"] && configuration["strip-dashed"]) {
417
+ Object.keys(argv).filter((key) => key !== "--" && key.includes("-")).forEach((key) => {
418
+ delete argv[key];
419
+ });
420
+ }
421
+ if (configuration["strip-aliased"]) {
422
+ ;
423
+ [].concat(...Object.keys(aliases).map((k) => aliases[k])).forEach((alias) => {
424
+ if (configuration["camel-case-expansion"] && alias.includes("-")) {
425
+ delete argv[alias.split(".").map((prop) => camelCase(prop)).join(".")];
426
+ }
427
+ delete argv[alias];
428
+ });
429
+ }
430
+ function pushPositional(arg) {
431
+ const maybeCoercedNumber = maybeCoerceNumber("_", arg);
432
+ if (typeof maybeCoercedNumber === "string" || typeof maybeCoercedNumber === "number") {
433
+ argv._.push(maybeCoercedNumber);
434
+ }
435
+ }
436
+ function eatNargs(i, key, args2, argAfterEqualSign) {
437
+ let ii;
438
+ let toEat = checkAllAliases(key, flags.nargs);
439
+ toEat = typeof toEat !== "number" || isNaN(toEat) ? 1 : toEat;
440
+ if (toEat === 0) {
441
+ if (!isUndefined(argAfterEqualSign)) {
442
+ error = Error(__("Argument unexpected for: %s", key));
443
+ }
444
+ setArg(key, defaultValue(key));
445
+ return i;
446
+ }
447
+ let available = isUndefined(argAfterEqualSign) ? 0 : 1;
448
+ if (configuration["nargs-eats-options"]) {
449
+ if (args2.length - (i + 1) + available < toEat) {
450
+ error = Error(__("Not enough arguments following: %s", key));
451
+ }
452
+ available = toEat;
453
+ } else {
454
+ for (ii = i + 1; ii < args2.length; ii++) {
455
+ if (!args2[ii].match(/^-[^0-9]/) || args2[ii].match(negative) || isUnknownOptionAsArg(args2[ii]))
456
+ available++;
457
+ else
458
+ break;
459
+ }
460
+ if (available < toEat)
461
+ error = Error(__("Not enough arguments following: %s", key));
462
+ }
463
+ let consumed = Math.min(available, toEat);
464
+ if (!isUndefined(argAfterEqualSign) && consumed > 0) {
465
+ setArg(key, argAfterEqualSign);
466
+ consumed--;
467
+ }
468
+ for (ii = i + 1; ii < consumed + i + 1; ii++) {
469
+ setArg(key, args2[ii]);
470
+ }
471
+ return i + consumed;
472
+ }
473
+ function eatArray(i, key, args2, argAfterEqualSign) {
474
+ let argsToSet = [];
475
+ let next = argAfterEqualSign || args2[i + 1];
476
+ const nargsCount = checkAllAliases(key, flags.nargs);
477
+ if (checkAllAliases(key, flags.bools) && !/^(true|false)$/.test(next)) {
478
+ argsToSet.push(true);
479
+ } else if (isUndefined(next) || isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next)) {
480
+ if (defaults[key] !== void 0) {
481
+ const defVal = defaults[key];
482
+ argsToSet = Array.isArray(defVal) ? defVal : [defVal];
483
+ }
484
+ } else {
485
+ if (!isUndefined(argAfterEqualSign)) {
486
+ argsToSet.push(processValue(key, argAfterEqualSign, true));
487
+ }
488
+ for (let ii = i + 1; ii < args2.length; ii++) {
489
+ if (!configuration["greedy-arrays"] && argsToSet.length > 0 || nargsCount && typeof nargsCount === "number" && argsToSet.length >= nargsCount)
490
+ break;
491
+ next = args2[ii];
492
+ if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))
493
+ break;
494
+ i = ii;
495
+ argsToSet.push(processValue(key, next, inputIsString));
496
+ }
497
+ }
498
+ if (typeof nargsCount === "number" && (nargsCount && argsToSet.length < nargsCount || isNaN(nargsCount) && argsToSet.length === 0)) {
499
+ error = Error(__("Not enough arguments following: %s", key));
500
+ }
501
+ setArg(key, argsToSet);
502
+ return i;
503
+ }
504
+ function setArg(key, val, shouldStripQuotes = inputIsString) {
505
+ if (/-/.test(key) && configuration["camel-case-expansion"]) {
506
+ const alias = key.split(".").map(function(prop) {
507
+ return camelCase(prop);
508
+ }).join(".");
509
+ addNewAlias(key, alias);
510
+ }
511
+ const value = processValue(key, val, shouldStripQuotes);
512
+ const splitKey = key.split(".");
513
+ setKey(argv, splitKey, value);
514
+ if (flags.aliases[key]) {
515
+ flags.aliases[key].forEach(function(x) {
516
+ const keyProperties = x.split(".");
517
+ setKey(argv, keyProperties, value);
518
+ });
519
+ }
520
+ if (splitKey.length > 1 && configuration["dot-notation"]) {
521
+ ;
522
+ (flags.aliases[splitKey[0]] || []).forEach(function(x) {
523
+ let keyProperties = x.split(".");
524
+ const a = [].concat(splitKey);
525
+ a.shift();
526
+ keyProperties = keyProperties.concat(a);
527
+ if (!(flags.aliases[key] || []).includes(keyProperties.join("."))) {
528
+ setKey(argv, keyProperties, value);
529
+ }
530
+ });
531
+ }
532
+ if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {
533
+ const keys = [key].concat(flags.aliases[key] || []);
534
+ keys.forEach(function(key2) {
535
+ Object.defineProperty(argvReturn, key2, {
536
+ enumerable: true,
537
+ get() {
538
+ return val;
539
+ },
540
+ set(value2) {
541
+ val = typeof value2 === "string" ? mixin.normalize(value2) : value2;
542
+ }
543
+ });
544
+ });
545
+ }
546
+ }
547
+ function addNewAlias(key, alias) {
548
+ if (!(flags.aliases[key] && flags.aliases[key].length)) {
549
+ flags.aliases[key] = [alias];
550
+ newAliases[alias] = true;
551
+ }
552
+ if (!(flags.aliases[alias] && flags.aliases[alias].length)) {
553
+ addNewAlias(alias, key);
554
+ }
555
+ }
556
+ function processValue(key, val, shouldStripQuotes) {
557
+ if (shouldStripQuotes) {
558
+ val = stripQuotes(val);
559
+ }
560
+ if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {
561
+ if (typeof val === "string")
562
+ val = val === "true";
563
+ }
564
+ let value = Array.isArray(val) ? val.map(function(v) {
565
+ return maybeCoerceNumber(key, v);
566
+ }) : maybeCoerceNumber(key, val);
567
+ if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === "boolean")) {
568
+ value = increment();
569
+ }
570
+ if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {
571
+ if (Array.isArray(val))
572
+ value = val.map((val2) => {
573
+ return mixin.normalize(val2);
574
+ });
575
+ else
576
+ value = mixin.normalize(val);
577
+ }
578
+ return value;
579
+ }
580
+ function maybeCoerceNumber(key, value) {
581
+ if (!configuration["parse-positional-numbers"] && key === "_")
582
+ return value;
583
+ if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {
584
+ const shouldCoerceNumber = looksLikeNumber(value) && configuration["parse-numbers"] && Number.isSafeInteger(Math.floor(parseFloat(`${value}`)));
585
+ if (shouldCoerceNumber || !isUndefined(value) && checkAllAliases(key, flags.numbers)) {
586
+ value = Number(value);
587
+ }
588
+ }
589
+ return value;
590
+ }
591
+ function setConfig(argv2) {
592
+ const configLookup = /* @__PURE__ */ Object.create(null);
593
+ applyDefaultsAndAliases(configLookup, flags.aliases, defaults);
594
+ Object.keys(flags.configs).forEach(function(configKey) {
595
+ const configPath = argv2[configKey] || configLookup[configKey];
596
+ if (configPath) {
597
+ try {
598
+ let config = null;
599
+ const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);
600
+ const resolveConfig = flags.configs[configKey];
601
+ if (typeof resolveConfig === "function") {
602
+ try {
603
+ config = resolveConfig(resolvedConfigPath);
604
+ } catch (e) {
605
+ config = e;
606
+ }
607
+ if (config instanceof Error) {
608
+ error = config;
609
+ return;
610
+ }
611
+ } else {
612
+ config = mixin.require(resolvedConfigPath);
613
+ }
614
+ setConfigObject(config);
615
+ } catch (ex) {
616
+ if (ex.name === "PermissionDenied")
617
+ error = ex;
618
+ else if (argv2[configKey])
619
+ error = Error(__("Invalid JSON config file: %s", configPath));
620
+ }
621
+ }
622
+ });
623
+ }
624
+ function setConfigObject(config, prev) {
625
+ Object.keys(config).forEach(function(key) {
626
+ const value = config[key];
627
+ const fullKey = prev ? prev + "." + key : key;
628
+ if (typeof value === "object" && value !== null && !Array.isArray(value) && configuration["dot-notation"]) {
629
+ setConfigObject(value, fullKey);
630
+ } else {
631
+ if (!hasKey(argv, fullKey.split(".")) || checkAllAliases(fullKey, flags.arrays) && configuration["combine-arrays"]) {
632
+ setArg(fullKey, value);
633
+ }
634
+ }
635
+ });
636
+ }
637
+ function setConfigObjects() {
638
+ if (typeof configObjects !== "undefined") {
639
+ configObjects.forEach(function(configObject) {
640
+ setConfigObject(configObject);
641
+ });
642
+ }
643
+ }
644
+ function applyEnvVars(argv2, configOnly) {
645
+ if (typeof envPrefix === "undefined")
646
+ return;
647
+ const prefix = typeof envPrefix === "string" ? envPrefix : "";
648
+ const env2 = mixin.env();
649
+ Object.keys(env2).forEach(function(envVar) {
650
+ if (prefix === "" || envVar.lastIndexOf(prefix, 0) === 0) {
651
+ const keys = envVar.split("__").map(function(key, i) {
652
+ if (i === 0) {
653
+ key = key.substring(prefix.length);
654
+ }
655
+ return camelCase(key);
656
+ });
657
+ if ((configOnly && flags.configs[keys.join(".")] || !configOnly) && !hasKey(argv2, keys)) {
658
+ setArg(keys.join("."), env2[envVar]);
659
+ }
660
+ }
661
+ });
662
+ }
663
+ function applyCoercions(argv2) {
664
+ let coerce;
665
+ const applied = /* @__PURE__ */ new Set();
666
+ Object.keys(argv2).forEach(function(key) {
667
+ if (!applied.has(key)) {
668
+ coerce = checkAllAliases(key, flags.coercions);
669
+ if (typeof coerce === "function") {
670
+ try {
671
+ const value = maybeCoerceNumber(key, coerce(argv2[key]));
672
+ [].concat(flags.aliases[key] || [], key).forEach((ali) => {
673
+ applied.add(ali);
674
+ argv2[ali] = value;
675
+ });
676
+ } catch (err) {
677
+ error = err;
678
+ }
679
+ }
680
+ }
681
+ });
682
+ }
683
+ function setPlaceholderKeys(argv2) {
684
+ flags.keys.forEach((key) => {
685
+ if (~key.indexOf("."))
686
+ return;
687
+ if (typeof argv2[key] === "undefined")
688
+ argv2[key] = void 0;
689
+ });
690
+ return argv2;
691
+ }
692
+ function applyDefaultsAndAliases(obj, aliases2, defaults2, canLog = false) {
693
+ Object.keys(defaults2).forEach(function(key) {
694
+ if (!hasKey(obj, key.split("."))) {
695
+ setKey(obj, key.split("."), defaults2[key]);
696
+ if (canLog)
697
+ defaulted[key] = true;
698
+ (aliases2[key] || []).forEach(function(x) {
699
+ if (hasKey(obj, x.split(".")))
700
+ return;
701
+ setKey(obj, x.split("."), defaults2[key]);
702
+ });
703
+ }
704
+ });
705
+ }
706
+ function hasKey(obj, keys) {
707
+ let o = obj;
708
+ if (!configuration["dot-notation"])
709
+ keys = [keys.join(".")];
710
+ keys.slice(0, -1).forEach(function(key2) {
711
+ o = o[key2] || {};
712
+ });
713
+ const key = keys[keys.length - 1];
714
+ if (typeof o !== "object")
715
+ return false;
716
+ else
717
+ return key in o;
718
+ }
719
+ function setKey(obj, keys, value) {
720
+ let o = obj;
721
+ if (!configuration["dot-notation"])
722
+ keys = [keys.join(".")];
723
+ keys.slice(0, -1).forEach(function(key2) {
724
+ key2 = sanitizeKey(key2);
725
+ if (typeof o === "object" && o[key2] === void 0) {
726
+ o[key2] = {};
727
+ }
728
+ if (typeof o[key2] !== "object" || Array.isArray(o[key2])) {
729
+ if (Array.isArray(o[key2])) {
730
+ o[key2].push({});
731
+ } else {
732
+ o[key2] = [o[key2], {}];
733
+ }
734
+ o = o[key2][o[key2].length - 1];
735
+ } else {
736
+ o = o[key2];
737
+ }
738
+ });
739
+ const key = sanitizeKey(keys[keys.length - 1]);
740
+ const isTypeArray = checkAllAliases(keys.join("."), flags.arrays);
741
+ const isValueArray = Array.isArray(value);
742
+ let duplicate = configuration["duplicate-arguments-array"];
743
+ if (!duplicate && checkAllAliases(key, flags.nargs)) {
744
+ duplicate = true;
745
+ if (!isUndefined(o[key]) && flags.nargs[key] === 1 || Array.isArray(o[key]) && o[key].length === flags.nargs[key]) {
746
+ o[key] = void 0;
747
+ }
748
+ }
749
+ if (value === increment()) {
750
+ o[key] = increment(o[key]);
751
+ } else if (Array.isArray(o[key])) {
752
+ if (duplicate && isTypeArray && isValueArray) {
753
+ o[key] = configuration["flatten-duplicate-arrays"] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);
754
+ } else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {
755
+ o[key] = value;
756
+ } else {
757
+ o[key] = o[key].concat([value]);
758
+ }
759
+ } else if (o[key] === void 0 && isTypeArray) {
760
+ o[key] = isValueArray ? value : [value];
761
+ } else if (duplicate && !(o[key] === void 0 || checkAllAliases(key, flags.counts) || checkAllAliases(key, flags.bools))) {
762
+ o[key] = [o[key], value];
763
+ } else {
764
+ o[key] = value;
765
+ }
766
+ }
767
+ function extendAliases(...args2) {
768
+ args2.forEach(function(obj) {
769
+ Object.keys(obj || {}).forEach(function(key) {
770
+ if (flags.aliases[key])
771
+ return;
772
+ flags.aliases[key] = [].concat(aliases[key] || []);
773
+ flags.aliases[key].concat(key).forEach(function(x) {
774
+ if (/-/.test(x) && configuration["camel-case-expansion"]) {
775
+ const c = camelCase(x);
776
+ if (c !== key && flags.aliases[key].indexOf(c) === -1) {
777
+ flags.aliases[key].push(c);
778
+ newAliases[c] = true;
779
+ }
780
+ }
781
+ });
782
+ flags.aliases[key].concat(key).forEach(function(x) {
783
+ if (x.length > 1 && /[A-Z]/.test(x) && configuration["camel-case-expansion"]) {
784
+ const c = decamelize(x, "-");
785
+ if (c !== key && flags.aliases[key].indexOf(c) === -1) {
786
+ flags.aliases[key].push(c);
787
+ newAliases[c] = true;
788
+ }
789
+ }
790
+ });
791
+ flags.aliases[key].forEach(function(x) {
792
+ flags.aliases[x] = [key].concat(flags.aliases[key].filter(function(y) {
793
+ return x !== y;
794
+ }));
795
+ });
796
+ });
797
+ });
798
+ }
799
+ function checkAllAliases(key, flag) {
800
+ const toCheck = [].concat(flags.aliases[key] || [], key);
801
+ const keys = Object.keys(flag);
802
+ const setAlias = toCheck.find((key2) => keys.includes(key2));
803
+ return setAlias ? flag[setAlias] : false;
804
+ }
805
+ function hasAnyFlag(key) {
806
+ const flagsKeys = Object.keys(flags);
807
+ const toCheck = [].concat(flagsKeys.map((k) => flags[k]));
808
+ return toCheck.some(function(flag) {
809
+ return Array.isArray(flag) ? flag.includes(key) : flag[key];
810
+ });
811
+ }
812
+ function hasFlagsMatching(arg, ...patterns) {
813
+ const toCheck = [].concat(...patterns);
814
+ return toCheck.some(function(pattern) {
815
+ const match = arg.match(pattern);
816
+ return match && hasAnyFlag(match[1]);
817
+ });
818
+ }
819
+ function hasAllShortFlags(arg) {
820
+ if (arg.match(negative) || !arg.match(/^-[^-]+/)) {
821
+ return false;
822
+ }
823
+ let hasAllFlags = true;
824
+ let next;
825
+ const letters = arg.slice(1).split("");
826
+ for (let j = 0; j < letters.length; j++) {
827
+ next = arg.slice(j + 2);
828
+ if (!hasAnyFlag(letters[j])) {
829
+ hasAllFlags = false;
830
+ break;
831
+ }
832
+ if (letters[j + 1] && letters[j + 1] === "=" || next === "-" || /[A-Za-z]/.test(letters[j]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next) || letters[j + 1] && letters[j + 1].match(/\W/)) {
833
+ break;
834
+ }
835
+ }
836
+ return hasAllFlags;
837
+ }
838
+ function isUnknownOptionAsArg(arg) {
839
+ return configuration["unknown-options-as-args"] && isUnknownOption(arg);
840
+ }
841
+ function isUnknownOption(arg) {
842
+ arg = arg.replace(/^-{3,}/, "--");
843
+ if (arg.match(negative)) {
844
+ return false;
845
+ }
846
+ if (hasAllShortFlags(arg)) {
847
+ return false;
848
+ }
849
+ const flagWithEquals = /^-+([^=]+?)=[\s\S]*$/;
850
+ const normalFlag = /^-+([^=]+?)$/;
851
+ const flagEndingInHyphen = /^-+([^=]+?)-$/;
852
+ const flagEndingInDigits = /^-+([^=]+?\d+)$/;
853
+ const flagEndingInNonWordCharacters = /^-+([^=]+?)\W+.*$/;
854
+ return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);
855
+ }
856
+ function defaultValue(key) {
857
+ if (!checkAllAliases(key, flags.bools) && !checkAllAliases(key, flags.counts) && `${key}` in defaults) {
858
+ return defaults[key];
859
+ } else {
860
+ return defaultForType(guessType(key));
861
+ }
862
+ }
863
+ function defaultForType(type) {
864
+ const def = {
865
+ [DefaultValuesForTypeKey.BOOLEAN]: true,
866
+ [DefaultValuesForTypeKey.STRING]: "",
867
+ [DefaultValuesForTypeKey.NUMBER]: void 0,
868
+ [DefaultValuesForTypeKey.ARRAY]: []
869
+ };
870
+ return def[type];
871
+ }
872
+ function guessType(key) {
873
+ let type = DefaultValuesForTypeKey.BOOLEAN;
874
+ if (checkAllAliases(key, flags.strings))
875
+ type = DefaultValuesForTypeKey.STRING;
876
+ else if (checkAllAliases(key, flags.numbers))
877
+ type = DefaultValuesForTypeKey.NUMBER;
878
+ else if (checkAllAliases(key, flags.bools))
879
+ type = DefaultValuesForTypeKey.BOOLEAN;
880
+ else if (checkAllAliases(key, flags.arrays))
881
+ type = DefaultValuesForTypeKey.ARRAY;
882
+ return type;
883
+ }
884
+ function isUndefined(num) {
885
+ return num === void 0;
886
+ }
887
+ function checkConfiguration() {
888
+ Object.keys(flags.counts).find((key) => {
889
+ if (checkAllAliases(key, flags.arrays)) {
890
+ error = Error(__("Invalid configuration: %s, opts.count excludes opts.array.", key));
891
+ return true;
892
+ } else if (checkAllAliases(key, flags.nargs)) {
893
+ error = Error(__("Invalid configuration: %s, opts.count excludes opts.narg.", key));
894
+ return true;
895
+ }
896
+ return false;
897
+ });
898
+ }
899
+ return {
900
+ aliases: Object.assign({}, flags.aliases),
901
+ argv: Object.assign(argvReturn, argv),
902
+ configuration,
903
+ defaulted: Object.assign({}, defaulted),
904
+ error,
905
+ newAliases: Object.assign({}, newAliases)
906
+ };
907
+ }
908
+ };
909
+ function combineAliases(aliases) {
910
+ const aliasArrays = [];
911
+ const combined = /* @__PURE__ */ Object.create(null);
912
+ let change = true;
913
+ Object.keys(aliases).forEach(function(key) {
914
+ aliasArrays.push([].concat(aliases[key], key));
915
+ });
916
+ while (change) {
917
+ change = false;
918
+ for (let i = 0; i < aliasArrays.length; i++) {
919
+ for (let ii = i + 1; ii < aliasArrays.length; ii++) {
920
+ const intersect = aliasArrays[i].filter(function(v) {
921
+ return aliasArrays[ii].indexOf(v) !== -1;
922
+ });
923
+ if (intersect.length) {
924
+ aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);
925
+ aliasArrays.splice(ii, 1);
926
+ change = true;
927
+ break;
928
+ }
929
+ }
930
+ }
931
+ }
932
+ aliasArrays.forEach(function(aliasArray) {
933
+ aliasArray = aliasArray.filter(function(v, i, self) {
934
+ return self.indexOf(v) === i;
935
+ });
936
+ const lastAlias = aliasArray.pop();
937
+ if (lastAlias !== void 0 && typeof lastAlias === "string") {
938
+ combined[lastAlias] = aliasArray;
939
+ }
940
+ });
941
+ return combined;
942
+ }
943
+ function increment(orig) {
944
+ return orig !== void 0 ? orig + 1 : 1;
945
+ }
946
+ function sanitizeKey(key) {
947
+ if (key === "__proto__")
948
+ return "___proto___";
949
+ return key;
950
+ }
951
+ function stripQuotes(val) {
952
+ return typeof val === "string" && (val[0] === "'" || val[0] === '"') && val[val.length - 1] === val[0] ? val.substring(1, val.length - 1) : val;
953
+ }
954
+
955
+ // node_modules/yargs-parser/build/lib/index.js
956
+ import { readFileSync } from "fs";
957
+ var _a;
958
+ var _b;
959
+ var _c;
960
+ var minNodeVersion = process && process.env && process.env.YARGS_MIN_NODE_VERSION ? Number(process.env.YARGS_MIN_NODE_VERSION) : 12;
961
+ var nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);
962
+ if (nodeVersion) {
963
+ const major = Number(nodeVersion.match(/^([^.]+)/)[1]);
964
+ if (major < minNodeVersion) {
965
+ throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);
966
+ }
967
+ }
968
+ var env = process ? process.env : {};
969
+ var parser = new YargsParser({
970
+ cwd: process.cwd,
971
+ env: () => {
972
+ return env;
973
+ },
974
+ format,
975
+ normalize,
976
+ resolve,
977
+ require: (path) => {
978
+ if (typeof __require !== "undefined") {
979
+ return __require(path);
980
+ } else if (path.match(/\.json$/)) {
981
+ return JSON.parse(readFileSync(path, "utf8"));
982
+ } else {
983
+ throw Error("only .json config files are supported in ESM");
984
+ }
985
+ }
986
+ });
987
+ var yargsParser = function Parser(args, opts) {
988
+ const result = parser.parse(args.slice(), opts);
989
+ return result.argv;
990
+ };
991
+ yargsParser.detailed = function(args, opts) {
992
+ return parser.parse(args.slice(), opts);
993
+ };
994
+ yargsParser.camelCase = camelCase;
995
+ yargsParser.decamelize = decamelize;
996
+ yargsParser.looksLikeNumber = looksLikeNumber;
997
+ var lib_default = yargsParser;
998
+
999
+ // extra/cli.mts
1000
+ var $rst = process.stdout.isTTY ? "\x1B[0m" : "";
1001
+ var $und = process.stdout.isTTY ? "\x1B[4m" : "";
1002
+ var $gry = process.stdout.isTTY ? "\x1B[38;5;240m" : "";
1003
+ var $blu = process.stdout.isTTY ? "\x1B[38;5;69m" : "";
1004
+ var $wht = process.stdout.isTTY ? "\x1B[1;38;5;255m" : "";
1005
+ var $tsk = process.stdout.isTTY ? "\x1B[38;5;141m" : "";
7
1006
  async function main(options2) {
8
- const { buildFile, tasks, listOnly } = options2;
1007
+ const { buildFile, watchDirs, tasks, props, listOnly } = options2;
9
1008
  if (tasks.length === 0)
10
1009
  tasks.push("default");
11
- let build = await import(buildFile);
12
- while (build) {
13
- if (isBuild(build))
1010
+ let maybeBuild = await import(buildFile);
1011
+ while (maybeBuild) {
1012
+ if (isBuild(maybeBuild))
14
1013
  break;
15
- build = build.default;
1014
+ maybeBuild = maybeBuild.default;
16
1015
  }
17
- if (!isBuild(build)) {
1016
+ if (!isBuild(maybeBuild)) {
18
1017
  console.log("Build file did not export a proper build");
19
1018
  console.log();
20
1019
  console.log('- If using CommonJS export your build as "module.exports"');
@@ -25,24 +1024,69 @@ async function main(options2) {
25
1024
  console.log();
26
1025
  process.exit(1);
27
1026
  }
1027
+ const build = maybeBuild;
28
1028
  if (listOnly) {
29
- console.log("Build file tasks\n- " + Object.keys(build).sort().join("\n- "));
1029
+ const taskNames = [];
1030
+ const propNames = [];
1031
+ for (const [key, value] of Object.entries(build)) {
1032
+ (typeof value === "string" ? propNames : taskNames).push(key);
1033
+ }
1034
+ const buildFileName = _path.relative(process.cwd(), buildFile);
1035
+ console.log(`
1036
+ ${$gry}Outline of ${$wht}${buildFileName}${$rst}`);
1037
+ console.log("\nKnown tasks:\n");
1038
+ for (const taskName of taskNames.sort()) {
1039
+ console.log(` ${$gry}\u25A0${$tsk} ${taskName}${$rst}`);
1040
+ }
1041
+ console.log("\nKnown properties:\n");
1042
+ for (const propName of propNames.sort()) {
1043
+ const value = build[propName] ? ` ${$gry}(default "${$rst}${$und}${build[propName]}${$gry})` : "";
1044
+ console.log(` ${$gry}\u25A1${$blu} ${propName}${value}${$rst}`);
1045
+ }
1046
+ console.log();
1047
+ } else if (watchDirs.length) {
1048
+ let timeout = void 0;
1049
+ const runme = () => {
1050
+ build[buildMarker](tasks, props).then(() => {
1051
+ console.log(`
1052
+ ${$gry}Watching for files change...${$rst}
1053
+ `);
1054
+ }, (error) => {
1055
+ if (isBuildFailure(error)) {
1056
+ console.log(`
1057
+ ${$gry}Watching for files change...${$rst}
1058
+ `);
1059
+ } else {
1060
+ console.log(error);
1061
+ watchers.forEach((watcher) => watcher.close());
1062
+ }
1063
+ }).finally(() => {
1064
+ timeout = void 0;
1065
+ });
1066
+ };
1067
+ const watchers = watchDirs.map((watchDir) => {
1068
+ return _fs.watch(watchDir, { recursive: true }, () => {
1069
+ if (!timeout)
1070
+ timeout = setTimeout(runme, 250);
1071
+ });
1072
+ });
1073
+ runme();
30
1074
  } else {
31
- await build[buildMarker](tasks);
1075
+ await build[buildMarker](tasks, props);
32
1076
  }
33
1077
  }
34
- const sourceMapsEnabled = process.execArgv.indexOf("--enable-source-maps") >= 0;
35
- const tsLoaderMarker = Symbol.for("plugjs:tsLoader");
36
- const typeScriptEnabled = globalThis[tsLoaderMarker] === tsLoaderMarker;
1078
+ var sourceMapsEnabled = process.execArgv.indexOf("--enable-source-maps") >= 0;
1079
+ var tsLoaderMarker = Symbol.for("plugjs:tsLoader");
1080
+ var typeScriptEnabled = globalThis[tsLoaderMarker] === tsLoaderMarker;
37
1081
  if (process.env.DEBUG_CLI === "true") {
38
1082
  console.log("SourceMaps enabled =", sourceMapsEnabled);
39
1083
  console.log("TypeScript enabled =", typeScriptEnabled);
40
1084
  console.log(" Arguments =", process.argv.join(" "));
41
1085
  console.log(" PID =", process.pid);
42
1086
  }
43
- const options = parseCommandLine();
1087
+ var options = parseCommandLine();
44
1088
  if (sourceMapsEnabled && typeScriptEnabled) {
45
- main(options).then(() => process.exit(0)).catch((error) => {
1089
+ main(options).catch((error) => {
46
1090
  if (!isBuildFailure(error))
47
1091
  console.log(error);
48
1092
  process.exit(1);
@@ -58,11 +1102,11 @@ if (sourceMapsEnabled && typeScriptEnabled) {
58
1102
  const loader = _path.resolve(directory, `ts-loader${extension}`);
59
1103
  execArgv.push(`--experimental-loader=${loader}`, "--no-warnings");
60
1104
  }
61
- const env = options.force ? { __TS_LOADER_FORCE_TYPE: options.force, ...process.env } : process.env;
1105
+ const env2 = options.force ? { __TS_LOADER_FORCE_TYPE: options.force, ...process.env } : process.env;
62
1106
  const child = _childProcess.fork(script, [...process.argv.slice(2)], {
63
1107
  stdio: ["inherit", "inherit", "inherit", "ipc"],
64
1108
  execArgv,
65
- env
1109
+ env: env2
66
1110
  });
67
1111
  child.on("error", (error) => {
68
1112
  console.log("Error respawning CLI", error);
@@ -80,8 +1124,8 @@ if (sourceMapsEnabled && typeScriptEnabled) {
80
1124
  }
81
1125
  });
82
1126
  }
83
- const buildMarker = Symbol.for("plugjs:isBuild");
84
- const buildFailure = Symbol.for("plugjs:buildFailure");
1127
+ var buildMarker = Symbol.for("plugjs:isBuild");
1128
+ var buildFailure = Symbol.for("plugjs:buildFailure");
85
1129
  function isBuild(build) {
86
1130
  return build && typeof build[buildMarker] === "function";
87
1131
  }
@@ -89,7 +1133,7 @@ function isBuildFailure(arg) {
89
1133
  return arg && arg[buildFailure] === buildFailure;
90
1134
  }
91
1135
  function parseCommandLine() {
92
- const parsed = _yargs(process.argv.slice(2), {
1136
+ const parsed = lib_default(process.argv.slice(2), {
93
1137
  configuration: {
94
1138
  "camel-case-expansion": false,
95
1139
  "strip-aliased": true,
@@ -101,13 +1145,16 @@ function parseCommandLine() {
101
1145
  "colors": ["c"],
102
1146
  "file": ["f"],
103
1147
  "list": ["l"],
1148
+ "watch": ["w"],
104
1149
  "help": ["h"]
105
1150
  },
106
- string: ["file"],
1151
+ string: ["file", "watch"],
107
1152
  boolean: ["help", "colors", "list", "force-esm", "force-cjs"],
108
1153
  count: ["verbose", "quiet"]
109
1154
  });
110
1155
  const tasks = [];
1156
+ const props = {};
1157
+ const watchDirs = [];
111
1158
  let verbosity = 0;
112
1159
  let colors = void 0;
113
1160
  let file = void 0;
@@ -115,34 +1162,46 @@ function parseCommandLine() {
115
1162
  let forceCjs = false;
116
1163
  let listOnly = false;
117
1164
  let help = false;
118
- for (const key in parsed) {
1165
+ for (const [key, value] of Object.entries(parsed)) {
119
1166
  switch (key) {
120
1167
  case "_":
121
- tasks.push(...parsed[key].map((s) => `${s}`));
1168
+ value.forEach((current) => {
1169
+ const [key2, val] = current.split(/=(.*)/, 2);
1170
+ if (val)
1171
+ props[key2] = val;
1172
+ else
1173
+ tasks.push(current);
1174
+ });
122
1175
  break;
123
1176
  case "verbose":
124
- verbosity = verbosity + parsed[key];
1177
+ verbosity = verbosity + value;
125
1178
  break;
126
1179
  case "quiet":
127
- verbosity = verbosity - parsed[key];
1180
+ verbosity = verbosity - value;
128
1181
  break;
129
1182
  case "file":
130
- file = parsed[key];
1183
+ file = value;
1184
+ break;
1185
+ case "watch":
1186
+ if (Array.isArray(value))
1187
+ watchDirs.push(...value);
1188
+ else if (value)
1189
+ watchDirs.push(value);
131
1190
  break;
132
1191
  case "force-esm":
133
- forceEsm = !!parsed[key];
1192
+ forceEsm = !!value;
134
1193
  break;
135
1194
  case "force-cjs":
136
- forceCjs = !!parsed[key];
1195
+ forceCjs = !!value;
137
1196
  break;
138
1197
  case "colors":
139
- colors = !!parsed[key];
1198
+ colors = !!value;
140
1199
  break;
141
1200
  case "list":
142
- listOnly = !!parsed[key];
1201
+ listOnly = !!value;
143
1202
  break;
144
1203
  case "help":
145
- help = !!parsed[key];
1204
+ help = !!value;
146
1205
  break;
147
1206
  default:
148
1207
  console.log(`Unsupported option "${key}" (try "--help")`);
@@ -150,34 +1209,47 @@ function parseCommandLine() {
150
1209
  }
151
1210
  }
152
1211
  if (help) {
153
- console.log(`Usage:
1212
+ console.log(`${$blu}${$und}Usage:${$rst}
1213
+
1214
+ ${$wht}plugjs${$rst} ${$gry}[${$rst}--options${$gry}] [...${$rst}prop=val${$gry}] [...${$rst}tasks${$gry}]${$rst}
154
1215
 
155
- plugjs [--options] [... tasks]
1216
+ ${$blu}${$und}Options:${$rst}
156
1217
 
157
- TypeScript module format:
1218
+ ${$wht}-f --file ${$gry}${$und}file${$rst} Specify the build file to use (default "./build.[ts/js/...]")
1219
+ ${$wht}-w --watch ${$gry}${$und}dir${$rst} Watch for changes on the specified directory and run build
1220
+ ${$wht}-v --verbose${$rst} Increase logging verbosity
1221
+ ${$wht}-q --quiet${$rst} Decrease logging verbosity
1222
+ ${$wht}-c --colors${$rst} Force colorful output (use "--no-colors" to force plain text)
1223
+ ${$wht}-l --list${$rst} Only list the tasks defined by the build, nothing more!
1224
+ ${$wht}-h --help${$rst} Help! You're reading it now!
158
1225
 
159
- Normally our TypeScript loader will transpile ".ts" files to the "type"
160
- specified in "package.json", either "commonjs" (the default) or "module".
1226
+ ${$blu}${$und}Properties:${$rst}
161
1227
 
162
- To force a specific module format we can use one of the following flags:
1228
+ Any argument in the format "key=value" will be interpeted as a property to
1229
+ be injected in the build process (e.g. "mode=production").
163
1230
 
164
- --force-esm Force transpilation of ".ts" files to EcmaScript modules
165
- --force-cjs Force transpilation of ".ts" files to CommonJS modules
1231
+ ${$blu}${$und}Tasks:${$rst}
166
1232
 
167
- Options:
1233
+ Any other argument will be treated as a task name. If no task names are
1234
+ specified, the "default" task will be executed.
168
1235
 
169
- -v --verbose Increase logging verbosity
170
- -q --quiet Decrease logging verbosity
171
- -c --colors Force colorful output (use "--no-colors" to force plain text)
172
- -f --file Specify the build file to use (default "./build.[ts/js/...]")
173
- -l --list Only list the tasks defined by the build, nothing more!
174
- -h --help Help! You're reading it now!
1236
+ ${$blu}${$und}Watch Mode:${$rst}
175
1237
 
176
- Tasks:
1238
+ The "-w" option can be specified multiple times, and each single directory
1239
+ specified will be watched for changes. Please note that Plug's own watch
1240
+ mode is incredibly basic, for more complex scenarios use something more
1241
+ advanced like nodemon (https://www.npmjs.com/package/nodemon).
177
1242
 
178
- Any other argument will be treated as a task name. If no task names are
179
- specified, the "default" task will be executed.
180
- `);
1243
+ ${$blu}${$und}TypeScript module format:${$rst}
1244
+
1245
+ Normally our TypeScript loader will transpile ".ts" files to the "type"
1246
+ specified in "package.json", either "commonjs" (the default) or "module".
1247
+
1248
+ To force a specific module format we can use one of the following flags:
1249
+
1250
+ ${$wht}--force-esm ${$rst} Force transpilation of ".ts" files to EcmaScript modules
1251
+ ${$wht}--force-cjs ${$rst} Force transpilation of ".ts" files to CommonJS modules
1252
+ `);
181
1253
  process.exit(1);
182
1254
  }
183
1255
  if (colors !== void 0)
@@ -214,12 +1286,21 @@ function parseCommandLine() {
214
1286
  console.log(`Unable to find build file "./build.[${exts.join("|")}]`);
215
1287
  process.exit(1);
216
1288
  }
1289
+ watchDirs.forEach((watchDir) => {
1290
+ const absolute = _path.resolve(watchDir);
1291
+ if (!isDir(absolute)) {
1292
+ console.log(`Specified watch directory "${watchDir}" was not found`);
1293
+ process.exit(1);
1294
+ } else {
1295
+ watchDir = absolute;
1296
+ }
1297
+ });
217
1298
  if (forceEsm && forceCjs) {
218
1299
  console.log('The "--force-cjs" and "--force-esm" flags can not coexist');
219
1300
  process.exit(1);
220
1301
  }
221
1302
  const force = forceEsm ? "module" : forceCjs ? "commonjs" : void 0;
222
- return { buildFile, tasks, listOnly, force };
1303
+ return { buildFile, watchDirs, tasks, props, listOnly, force };
223
1304
  }
224
1305
  function isFile(path) {
225
1306
  try {
@@ -228,7 +1309,27 @@ function isFile(path) {
228
1309
  return false;
229
1310
  }
230
1311
  }
1312
+ function isDir(path) {
1313
+ try {
1314
+ return _fs.statSync(path).isDirectory();
1315
+ } catch (error) {
1316
+ return false;
1317
+ }
1318
+ }
231
1319
  export {
232
1320
  parseCommandLine
233
1321
  };
234
- //# sourceMappingURL=data:application/json;base64,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
1322
+ /**
1323
+ * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js
1324
+ * CJS and ESM environments.
1325
+ *
1326
+ * @license
1327
+ * Copyright (c) 2016, Contributors
1328
+ * SPDX-License-Identifier: ISC
1329
+ */
1330
+ /**
1331
+ * @license
1332
+ * Copyright (c) 2016, Contributors
1333
+ * SPDX-License-Identifier: ISC
1334
+ */
1335
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY2xpLm10cyIsICIuLi9ub2RlX21vZHVsZXMveWFyZ3MtcGFyc2VyL2J1aWxkL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMveWFyZ3MtcGFyc2VyL2J1aWxkL2xpYi9zdHJpbmctdXRpbHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3lhcmdzLXBhcnNlci9idWlsZC9saWIvdG9rZW5pemUtYXJnLXN0cmluZy5qcyIsICIuLi9ub2RlX21vZHVsZXMveWFyZ3MtcGFyc2VyL2J1aWxkL2xpYi95YXJncy1wYXJzZXItdHlwZXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3lhcmdzLXBhcnNlci9idWlsZC9saWIveWFyZ3MtcGFyc2VyLmpzIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7OztBQUVBLE9BQU8sbUJBQW1CO0FBQzFCLE9BQU8sU0FBUztBQUNoQixPQUFPLFdBQVc7QUFDbEIsT0FBTyxVQUFVOzs7QUNJakIsU0FBUyxjQUFjO0FBQ3ZCLFNBQVMsV0FBVyxlQUFlOzs7QUNMNUIsU0FBUyxVQUFVLEtBQUs7QUFHM0IsUUFBTSxjQUFjLFFBQVEsSUFBSSxZQUFZLEtBQUssUUFBUSxJQUFJLFlBQVk7QUFDekUsTUFBSSxDQUFDLGFBQWE7QUFDZCxVQUFNLElBQUksWUFBWTtBQUFBLEVBQzFCO0FBQ0EsTUFBSSxJQUFJLFFBQVEsR0FBRyxNQUFNLE1BQU0sSUFBSSxRQUFRLEdBQUcsTUFBTSxJQUFJO0FBQ3BELFdBQU87QUFBQSxFQUNYLE9BQ0s7QUFDRCxRQUFJLFlBQVk7QUFDaEIsUUFBSSxlQUFlO0FBQ25CLFVBQU0saUJBQWlCLElBQUksTUFBTSxLQUFLO0FBQ3RDLGFBQVMsSUFBSSxpQkFBaUIsZUFBZSxHQUFHLFNBQVMsR0FBRyxJQUFJLElBQUksUUFBUSxLQUFLO0FBQzdFLFVBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQztBQUN0QixVQUFJLGNBQWM7QUFDZCx1QkFBZTtBQUNmLGNBQU0sSUFBSSxZQUFZO0FBQUEsTUFDMUI7QUFD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TCxlQUFXLE9BQU8sTUFBTTtBQUN0QixZQUFNLFdBQVcsTUFBTSxRQUFRLFNBQVMsS0FBSztBQUM3QyxVQUFJLENBQUUsT0FBTyxRQUFRO0FBQUc7QUFDeEIsa0JBQVk7QUFDWjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBR0EsTUFBSSxDQUFFLFdBQVc7QUFDZixZQUFRLElBQUksdUNBQXVDLEtBQUssS0FBSyxHQUFHLElBQUk7QUFDcEUsWUFBUSxLQUFLLENBQUM7QUFBQSxFQUNoQjtBQU1BLFlBQVUsUUFBUSxDQUFDLGFBQWE7QUFDOUIsVUFBTSxXQUFXLE1BQU0sUUFBUSxRQUFRO0FBQ3ZDLFFBQUksQ0FBRSxNQUFNLFFBQVEsR0FBRztBQUNyQixjQUFRLElBQUksOEJBQThCLHlCQUF5QjtBQUNuRSxjQUFRLEtBQUssQ0FBQztBQUFBLElBQ2hCLE9BQU87QUFDTCxpQkFBVztBQUFBLElBQ2I7QUFBQSxFQUNGLENBQUM7QUFNRCxNQUFJLFlBQVksVUFBVTtBQUN4QixZQUFRLElBQUksMkRBQTJEO0FBQ3ZFLFlBQVEsS0FBSyxDQUFDO0FBQUEsRUFDaEI7QUFFQSxRQUFNLFFBQVEsV0FBVyxXQUFXLFdBQVcsYUFBYTtBQU01RCxTQUFPLEVBQUUsV0FBVyxXQUFXLE9BQU8sT0FBTyxVQUFVLE1BQU07QUFDL0Q7QUFLQSxTQUFTLE9BQU8sTUFBdUI7QUFDckMsTUFBSTtBQUNGLFdBQU8sSUFBSSxTQUFTLElBQUksRUFBRSxPQUFPO0FBQUEsRUFDbkMsU0FBUyxPQUFQO0FBQ0EsV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQUdBLFNBQVMsTUFBTSxNQUF1QjtBQUNwQyxNQUFJO0FBQ0YsV0FBTyxJQUFJLFNBQVMsSUFBSSxFQUFFLFlBQVk7QUFBQSxFQUN4QyxTQUFTLE9BQVA7QUFDQSxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogWyJEZWZhdWx0VmFsdWVzRm9yVHlwZUtleSIsICJvcHRpb25zIiwgImtleSIsICJhcmdzIiwgInZhbHVlIiwgInZhbCIsICJhcmd2IiwgImVudiIsICJhbGlhc2VzIiwgImRlZmF1bHRzIiwgIm9wdGlvbnMiLCAiZW52IiwgImtleSJdCn0K