@nlabs/lex 1.31.0 → 1.36.0

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.
@@ -4,53 +4,48 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
7
  var __export = (target, all) => {
9
8
  for (var name in all)
10
9
  __defProp(target, name, { get: all[name], enumerable: true });
11
10
  };
12
- var __reExport = (target, module2, copyDefault, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
16
  }
18
- return target;
17
+ return to;
19
18
  };
20
- var __toESM = (module2, isNodeMode) => {
21
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
- };
23
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
- return (module2, temp) => {
25
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
- };
27
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
21
  var upgrade_exports = {};
29
22
  __export(upgrade_exports, {
30
23
  upgrade: () => upgrade
31
24
  });
25
+ module.exports = __toCommonJS(upgrade_exports);
32
26
  var import_compare_versions = __toESM(require("compare-versions"));
33
27
  var import_execa = __toESM(require("execa"));
34
28
  var import_latest_version = __toESM(require("latest-version"));
35
29
  var import_LexConfig = require("../LexConfig");
36
- var import_utils = require("../utils");
30
+ var import_app = require("../utils/app");
31
+ var import_log = require("../utils/log");
37
32
  var import_versions = require("./versions");
38
33
  const packageConfig = require("../../package.json");
39
34
  const upgrade = (cmd, callback = process.exit) => {
40
35
  const { cliName = "Lex", cliPackage = "@nlabs/lex", quiet } = cmd;
41
- (0, import_utils.log)(`Upgrading ${cliName}...`, "info", quiet);
42
- const spinner = (0, import_utils.createSpinner)(quiet);
36
+ (0, import_log.log)(`Upgrading ${cliName}...`, "info", quiet);
37
+ const spinner = (0, import_app.createSpinner)(quiet);
43
38
  import_LexConfig.LexConfig.parseConfig(cmd);
44
39
  return (0, import_latest_version.default)("@nlabs/lex").then(async (latest) => {
45
40
  const current = (0, import_versions.parseVersion)(packageConfig.version);
46
41
  const versionDiff = (0, import_compare_versions.default)(latest, current);
47
42
  if (versionDiff === 0) {
48
- (0, import_utils.log)(`
43
+ (0, import_log.log)(`
49
44
  Currently up-to-date. Version ${latest} is the latest.`, "note", quiet);
50
45
  callback(0);
51
46
  return 0;
52
47
  }
53
- (0, import_utils.log)(`
48
+ (0, import_log.log)(`
54
49
  Currently out of date. Upgrading from version ${current} to ${latest}...`, "note", quiet);
55
50
  const upgradeOptions = ["install", "-g", `${cliPackage}@latest`];
56
51
  await (0, import_execa.default)("npm", upgradeOptions, {
@@ -61,15 +56,15 @@ Currently out of date. Upgrading from version ${current} to ${latest}...`, "note
61
56
  callback(0);
62
57
  return 0;
63
58
  }).catch((error) => {
64
- (0, import_utils.log)(`
59
+ (0, import_log.log)(`
65
60
  ${cliName} Error: ${error.message}`, "error", quiet);
66
61
  spinner.fail("Failed to updated packages.");
67
62
  callback(error.status);
68
63
  return error.status;
69
64
  });
70
65
  };
71
- module.exports = __toCommonJS(upgrade_exports);
72
66
  // Annotate the CommonJS export names for ESM import in node:
73
67
  0 && (module.exports = {
74
68
  upgrade
75
69
  });
70
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbW1hbmRzL3VwZ3JhZGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgY29tcGFyZVZlcnNpb25zIGZyb20gJ2NvbXBhcmUtdmVyc2lvbnMnO1xuaW1wb3J0IHtkZWZhdWx0IGFzIGV4ZWNhfSBmcm9tICdleGVjYSc7XG5pbXBvcnQgbGF0ZXN0VmVyc2lvbiBmcm9tICdsYXRlc3QtdmVyc2lvbic7XG5cbmltcG9ydCB7TGV4Q29uZmlnfSBmcm9tICcuLi9MZXhDb25maWcnO1xuaW1wb3J0IHtjcmVhdGVTcGlubmVyfSBmcm9tICcuLi91dGlscy9hcHAnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uL3V0aWxzL2xvZyc7XG5pbXBvcnQge3BhcnNlVmVyc2lvbn0gZnJvbSAnLi92ZXJzaW9ucyc7XG5cbmNvbnN0IHBhY2thZ2VDb25maWcgPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKTtcblxuZXhwb3J0IGNvbnN0IHVwZ3JhZGUgPSAoY21kOiBhbnksIGNhbGxiYWNrOiBhbnkgPSBwcm9jZXNzLmV4aXQpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBjbGlQYWNrYWdlID0gJ0BubGFicy9sZXgnLCBxdWlldH0gPSBjbWQ7XG5cbiAgLy8gRGlzcGxheSBzdGF0dXNcbiAgbG9nKGBVcGdyYWRpbmcgJHtjbGlOYW1lfS4uLmAsICdpbmZvJywgcXVpZXQpO1xuXG4gIC8vIFNwaW5uZXJcbiAgY29uc3Qgc3Bpbm5lciA9IGNyZWF0ZVNwaW5uZXIocXVpZXQpO1xuXG4gIC8vIEdldCBjdXN0b20gY29uZmlndXJhdGlvblxuICBMZXhDb25maWcucGFyc2VDb25maWcoY21kKTtcblxuICByZXR1cm4gbGF0ZXN0VmVyc2lvbignQG5sYWJzL2xleCcpXG4gICAgLnRoZW4oYXN5bmMgKGxhdGVzdDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50OiBzdHJpbmcgPSBwYXJzZVZlcnNpb24ocGFja2FnZUNvbmZpZy52ZXJzaW9uKTtcbiAgICAgIGNvbnN0IHZlcnNpb25EaWZmOiBudW1iZXIgPSBjb21wYXJlVmVyc2lvbnMobGF0ZXN0LCBjdXJyZW50KTtcblxuICAgICAgaWYodmVyc2lvbkRpZmYgPT09IDApIHtcbiAgICAgICAgbG9nKGBcXG5DdXJyZW50bHkgdXAtdG8tZGF0ZS4gVmVyc2lvbiAke2xhdGVzdH0gaXMgdGhlIGxhdGVzdC5gLCAnbm90ZScsIHF1aWV0KTtcbiAgICAgICAgY2FsbGJhY2soMCk7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuXG4gICAgICBsb2coYFxcbkN1cnJlbnRseSBvdXQgb2YgZGF0ZS4gVXBncmFkaW5nIGZyb20gdmVyc2lvbiAke2N1cnJlbnR9IHRvICR7bGF0ZXN0fS4uLmAsICdub3RlJywgcXVpZXQpO1xuXG4gICAgICBjb25zdCB1cGdyYWRlT3B0aW9uczogc3RyaW5nW10gPSBbJ2luc3RhbGwnLCAnLWcnLCBgJHtjbGlQYWNrYWdlfUBsYXRlc3RgXTtcblxuICAgICAgYXdhaXQgZXhlY2EoJ25wbScsIHVwZ3JhZGVPcHRpb25zLCB7XG4gICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgICAgICBzdGRpbzogJ2luaGVyaXQnXG4gICAgICB9KTtcblxuICAgICAgLy8gU3RvcCBsb2FkZXJcbiAgICAgIHNwaW5uZXIuc3VjY2VlZChgU3VjY2Vzc2Z1bGx5IHVwZGF0ZWQgJHtjbGlOYW1lfSFgKTtcblxuICAgICAgLy8gU3RvcCBwcm9jZXNzXG4gICAgICBjYWxsYmFjaygwKTtcbiAgICAgIHJldHVybiAwO1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgLy8gRGlzcGxheSBlcnJvciBtZXNzYWdlXG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG5cbiAgICAgIC8vIFN0b3Agc3Bpbm5lclxuICAgICAgc3Bpbm5lci5mYWlsKCdGYWlsZWQgdG8gdXBkYXRlZCBwYWNrYWdlcy4nKTtcblxuICAgICAgLy8gS2lsbCBwcm9jZXNzXG4gICAgICBjYWxsYmFjayhlcnJvci5zdGF0dXMpO1xuICAgICAgcmV0dXJuIGVycm9yLnN0YXR1cztcbiAgICB9KTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSw4QkFBNEI7QUFDNUIsbUJBQStCO0FBQy9CLDRCQUEwQjtBQUUxQix1QkFBd0I7QUFDeEIsaUJBQTRCO0FBQzVCLGlCQUFrQjtBQUNsQixzQkFBMkI7QUFFM0IsTUFBTSxnQkFBZ0IsUUFBUSxvQkFBb0I7QUFFM0MsTUFBTSxVQUFVLENBQUMsS0FBVSxXQUFnQixRQUFRLFNBQTBCO0FBQ2xGLFFBQU0sRUFBQyxVQUFVLE9BQU8sYUFBYSxjQUFjLFVBQVM7QUFHNUQsc0JBQUksYUFBYSxjQUFjLFFBQVEsS0FBSztBQUc1QyxRQUFNLFVBQVUsOEJBQWMsS0FBSztBQUduQyw2QkFBVSxZQUFZLEdBQUc7QUFFekIsU0FBTyxtQ0FBYyxZQUFZLEVBQzlCLEtBQUssT0FBTyxXQUFtQjtBQUM5QixVQUFNLFVBQWtCLGtDQUFhLGNBQWMsT0FBTztBQUMxRCxVQUFNLGNBQXNCLHFDQUFnQixRQUFRLE9BQU87QUFFM0QsUUFBRyxnQkFBZ0IsR0FBRztBQUNwQiwwQkFBSTtBQUFBLGdDQUFtQyx5QkFBeUIsUUFBUSxLQUFLO0FBQzdFLGVBQVMsQ0FBQztBQUNWLGFBQU87QUFBQSxJQUNUO0FBRUEsd0JBQUk7QUFBQSxnREFBbUQsY0FBYyxhQUFhLFFBQVEsS0FBSztBQUUvRixVQUFNLGlCQUEyQixDQUFDLFdBQVcsTUFBTSxHQUFHLG1CQUFtQjtBQUV6RSxVQUFNLDBCQUFNLE9BQU8sZ0JBQWdCO0FBQUEsTUFDakMsVUFBVTtBQUFBLE1BQ1YsT0FBTztBQUFBLElBQ1QsQ0FBQztBQUdELFlBQVEsUUFBUSx3QkFBd0IsVUFBVTtBQUdsRCxhQUFTLENBQUM7QUFDVixXQUFPO0FBQUEsRUFDVCxDQUFDLEVBQ0EsTUFBTSxDQUFDLFVBQVU7QUFFaEIsd0JBQUk7QUFBQSxFQUFLLGtCQUFrQixNQUFNLFdBQVcsU0FBUyxLQUFLO0FBRzFELFlBQVEsS0FBSyw2QkFBNkI7QUFHMUMsYUFBUyxNQUFNLE1BQU07QUFDckIsV0FBTyxNQUFNO0FBQUEsRUFDZixDQUFDO0FBQ0w7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -2,24 +2,19 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
6
5
  var __export = (target, all) => {
7
6
  for (var name in all)
8
7
  __defProp(target, name, { get: all[name], enumerable: true });
9
8
  };
10
- var __reExport = (target, module2, copyDefault, desc) => {
11
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
12
- for (let key of __getOwnPropNames(module2))
13
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
14
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
14
  }
16
- return target;
15
+ return to;
17
16
  };
18
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
19
- return (module2, temp) => {
20
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
21
- };
22
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
18
  var versions_exports = {};
24
19
  __export(versions_exports, {
25
20
  jsonVersions: () => jsonVersions,
@@ -27,7 +22,8 @@ __export(versions_exports, {
27
22
  parseVersion: () => parseVersion,
28
23
  versions: () => versions
29
24
  });
30
- var import_utils = require("../utils");
25
+ module.exports = __toCommonJS(versions_exports);
26
+ var import_log = require("../utils/log");
31
27
  const packageConfig = require("../../package.json");
32
28
  const parseVersion = (packageVersion = "") => packageVersion.replace(/\^/g, "");
33
29
  const packages = {
@@ -48,18 +44,17 @@ const versions = (cmd, callback = () => 0) => {
48
44
  return list;
49
45
  }, {})));
50
46
  } else {
51
- (0, import_utils.log)("Versions:", "info", false);
52
- (0, import_utils.log)(` Lex: ${packages.lex}`, "info", false);
53
- (0, import_utils.log)(" ----------", "note", false);
54
- (0, import_utils.log)(` ESBuild: ${packages.esbuild}`, "info", false);
55
- (0, import_utils.log)(` Jest: ${packages.jest}`, "info", false);
56
- (0, import_utils.log)(` Typescript: ${packages.typescript}`, "info", false);
57
- (0, import_utils.log)(` Webpack: ${packages.webpack}`, "info", false);
47
+ (0, import_log.log)("Versions:", "info", false);
48
+ (0, import_log.log)(` Lex: ${packages.lex}`, "info", false);
49
+ (0, import_log.log)(" ----------", "note", false);
50
+ (0, import_log.log)(` ESBuild: ${packages.esbuild}`, "info", false);
51
+ (0, import_log.log)(` Jest: ${packages.jest}`, "info", false);
52
+ (0, import_log.log)(` Typescript: ${packages.typescript}`, "info", false);
53
+ (0, import_log.log)(` Webpack: ${packages.webpack}`, "info", false);
58
54
  }
59
55
  callback(0);
60
56
  return Promise.resolve(0);
61
57
  };
62
- module.exports = __toCommonJS(versions_exports);
63
58
  // Annotate the CommonJS export names for ESM import in node:
64
59
  0 && (module.exports = {
65
60
  jsonVersions,
@@ -67,3 +62,4 @@ module.exports = __toCommonJS(versions_exports);
67
62
  parseVersion,
68
63
  versions
69
64
  });
65
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbW1hbmRzL3ZlcnNpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uL3V0aWxzL2xvZyc7XG5cbmNvbnN0IHBhY2thZ2VDb25maWcgPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVmVyc2lvbiA9IChwYWNrYWdlVmVyc2lvbjogc3RyaW5nID0gJycpOiBzdHJpbmcgPT4gcGFja2FnZVZlcnNpb24ucmVwbGFjZSgvXFxeL2csICcnKTtcbmV4cG9ydCBjb25zdCBwYWNrYWdlcyA9IHtcbiAgZXNidWlsZDogcGFyc2VWZXJzaW9uKHBhY2thZ2VDb25maWcuZGVwZW5kZW5jaWVzLmVzYnVpbGQpLFxuICBqZXN0OiBwYXJzZVZlcnNpb24ocGFja2FnZUNvbmZpZy5kZXBlbmRlbmNpZXMuamVzdCksXG4gIGxleDogcGFja2FnZUNvbmZpZy52ZXJzaW9uLFxuICB0eXBlc2NyaXB0OiBwYXJzZVZlcnNpb24ocGFja2FnZUNvbmZpZy5kZXBlbmRlbmNpZXMudHlwZXNjcmlwdCksXG4gIHdlYnBhY2s6IHBhcnNlVmVyc2lvbihwYWNrYWdlQ29uZmlnLmRlcGVuZGVuY2llcy53ZWJwYWNrKVxufTtcbmV4cG9ydCBjb25zdCBqc29uVmVyc2lvbnMgPSAoKSA9PiBPYmplY3Qua2V5cyhwYWNrYWdlcykucmVkdWNlKChsaXN0LCBrZXkpID0+IHtcbiAgbGlzdFtrZXldID0gcGFja2FnZXNba2V5XTtcbiAgcmV0dXJuIGxpc3Q7XG59LCB7fSk7XG5leHBvcnQgY29uc3QgdmVyc2lvbnMgPSAoY21kOiBhbnksIGNhbGxiYWNrOiBhbnkgPSAoKSA9PiAoMCkpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICBpZihjbWQuanNvbikge1xuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHBhY2thZ2VzKS5yZWR1Y2UoKGxpc3QsIGtleSkgPT4ge1xuICAgICAgbGlzdFtrZXldID0gcGFja2FnZXNba2V5XTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIHt9KSkpO1xuICB9IGVsc2Uge1xuICAgIGxvZygnVmVyc2lvbnM6JywgJ2luZm8nLCBmYWxzZSk7XG4gICAgbG9nKGAgIExleDogJHtwYWNrYWdlcy5sZXh9YCwgJ2luZm8nLCBmYWxzZSk7XG4gICAgbG9nKCcgIC0tLS0tLS0tLS0nLCAnbm90ZScsIGZhbHNlKTtcbiAgICBsb2coYCAgRVNCdWlsZDogJHtwYWNrYWdlcy5lc2J1aWxkfWAsICdpbmZvJywgZmFsc2UpO1xuICAgIGxvZyhgICBKZXN0OiAke3BhY2thZ2VzLmplc3R9YCwgJ2luZm8nLCBmYWxzZSk7XG4gICAgbG9nKGAgIFR5cGVzY3JpcHQ6ICR7cGFja2FnZXMudHlwZXNjcmlwdH1gLCAnaW5mbycsIGZhbHNlKTtcbiAgICBsb2coYCAgV2VicGFjazogJHtwYWNrYWdlcy53ZWJwYWNrfWAsICdpbmZvJywgZmFsc2UpO1xuICB9XG5cbiAgY2FsbGJhY2soMCk7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoMCk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsaUJBQWtCO0FBRWxCLE1BQU0sZ0JBQWdCLFFBQVEsb0JBQW9CO0FBRTNDLE1BQU0sZUFBZSxDQUFDLGlCQUF5QixPQUFlLGVBQWUsUUFBUSxPQUFPLEVBQUU7QUFDOUYsTUFBTSxXQUFXO0FBQUEsRUFDdEIsU0FBUyxhQUFhLGNBQWMsYUFBYSxPQUFPO0FBQUEsRUFDeEQsTUFBTSxhQUFhLGNBQWMsYUFBYSxJQUFJO0FBQUEsRUFDbEQsS0FBSyxjQUFjO0FBQUEsRUFDbkIsWUFBWSxhQUFhLGNBQWMsYUFBYSxVQUFVO0FBQUEsRUFDOUQsU0FBUyxhQUFhLGNBQWMsYUFBYSxPQUFPO0FBQzFEO0FBQ08sTUFBTSxlQUFlLE1BQU0sT0FBTyxLQUFLLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxRQUFRO0FBQzVFLE9BQUssT0FBTyxTQUFTO0FBQ3JCLFNBQU87QUFDVCxHQUFHLENBQUMsQ0FBQztBQUNFLE1BQU0sV0FBVyxDQUFDLEtBQVUsV0FBZ0IsTUFBTyxNQUF3QjtBQUNoRixNQUFHLElBQUksTUFBTTtBQUNYLFlBQVEsSUFBSSxLQUFLLFVBQVUsT0FBTyxLQUFLLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxRQUFRO0FBQ3JFLFdBQUssT0FBTyxTQUFTO0FBQ3JCLGFBQU87QUFBQSxJQUNULEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFBLEVBQ1QsT0FBTztBQUNMLHdCQUFJLGFBQWEsUUFBUSxLQUFLO0FBQzlCLHdCQUFJLFVBQVUsU0FBUyxPQUFPLFFBQVEsS0FBSztBQUMzQyx3QkFBSSxnQkFBZ0IsUUFBUSxLQUFLO0FBQ2pDLHdCQUFJLGNBQWMsU0FBUyxXQUFXLFFBQVEsS0FBSztBQUNuRCx3QkFBSSxXQUFXLFNBQVMsUUFBUSxRQUFRLEtBQUs7QUFDN0Msd0JBQUksaUJBQWlCLFNBQVMsY0FBYyxRQUFRLEtBQUs7QUFDekQsd0JBQUksY0FBYyxTQUFTLFdBQVcsUUFBUSxLQUFLO0FBQUEsRUFDckQ7QUFFQSxXQUFTLENBQUM7QUFDVixTQUFPLFFBQVEsUUFBUSxDQUFDO0FBQzFCOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -4,41 +4,36 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
7
  var __export = (target, all) => {
9
8
  for (var name in all)
10
9
  __defProp(target, name, { get: all[name], enumerable: true });
11
10
  };
12
- var __reExport = (target, module2, copyDefault, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
16
  }
18
- return target;
17
+ return to;
19
18
  };
20
- var __toESM = (module2, isNodeMode) => {
21
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
- };
23
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
- return (module2, temp) => {
25
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
- };
27
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
21
  var changelog_exports = {};
29
22
  __export(changelog_exports, {
30
23
  createChangelog: () => createChangelog
31
24
  });
25
+ module.exports = __toCommonJS(changelog_exports);
32
26
  var import_execa = __toESM(require("execa"));
33
- var import_fs = __toESM(require("fs"));
27
+ var fs = __toESM(require("fs-extra"));
34
28
  var import_capitalize = __toESM(require("lodash/capitalize"));
35
29
  var import_isEmpty = __toESM(require("lodash/isEmpty"));
36
30
  var import_merge = __toESM(require("lodash/merge"));
37
31
  var import_luxon = require("luxon");
38
32
  var import_path = __toESM(require("path"));
39
- var import_utils = require("../utils");
33
+ var import_app = require("../utils/app");
34
+ var import_log = require("../utils/log");
40
35
  const createChangelog = async ({ cliName, config, outputFile = "changelog.tmp.md", quiet }) => {
41
- const spinner = (0, import_utils.createSpinner)(quiet);
36
+ const spinner = (0, import_app.createSpinner)(quiet);
42
37
  const gitOptions = [
43
38
  "log",
44
39
  "-3",
@@ -48,10 +43,10 @@ const createChangelog = async ({ cliName, config, outputFile = "changelog.tmp.md
48
43
  const git = await (0, import_execa.default)("git", gitOptions, { encoding: "utf-8" });
49
44
  const { stdout } = git;
50
45
  const entries = stdout.split("[lex_break]").filter((item) => !!item);
51
- const gitJSON = JSON.parse(`[${entries.join(",")}]`.replace(/"[^"]*(?:""[^"]*)*"/g, (match) => match.replace(/\n/g, "[lex_break]")));
46
+ const gitJson = JSON.parse(`[${entries.join(",")}]`.replace(/"[^"]*(?:""[^"]*)*"/g, (match) => match.replace(/\n/g, "[lex_break]")));
52
47
  const commitContent = {};
53
48
  let version = "Unreleased";
54
- gitJSON.forEach((item) => {
49
+ gitJson.forEach((item) => {
55
50
  const { comments, authorEmail, authorName, date, hashFull, hashShort, tag } = item;
56
51
  const formatDate = import_luxon.DateTime.fromMillis(date).toFormat("DDD");
57
52
  if (!(0, import_isEmpty.default)(tag)) {
@@ -140,18 +135,18 @@ const createChangelog = async ({ cliName, config, outputFile = "changelog.tmp.md
140
135
  return updatedContent;
141
136
  }, "# Changes\n");
142
137
  const logFile = import_path.default.join(process.cwd(), outputFile);
143
- import_fs.default.writeFileSync(logFile, formatLog);
138
+ fs.writeFileSync(logFile, formatLog);
144
139
  spinner.succeed("Git change log complete!");
145
140
  return 0;
146
141
  } catch (error) {
147
- (0, import_utils.log)(`
142
+ (0, import_log.log)(`
148
143
  ${cliName} Error: ${error.message}`, "error", quiet);
149
144
  spinner.fail("Failed generating change log!");
150
145
  return error.status;
151
146
  }
152
147
  };
153
- module.exports = __toCommonJS(changelog_exports);
154
148
  // Annotate the CommonJS export names for ESM import in node:
155
149
  0 && (module.exports = {
156
150
  createChangelog
157
151
  });
152
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NyZWF0ZS9jaGFuZ2Vsb2cudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2RlZmF1bHQgYXMgZXhlY2F9IGZyb20gJ2V4ZWNhJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCBjYXBpdGFsaXplIGZyb20gJ2xvZGFzaC9jYXBpdGFsaXplJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gvbWVyZ2UnO1xuaW1wb3J0IHtEYXRlVGltZX0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7Y3JlYXRlU3Bpbm5lcn0gZnJvbSAnLi4vdXRpbHMvYXBwJztcbmltcG9ydCB7bG9nfSBmcm9tICcuLi91dGlscy9sb2cnO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQ2hhbmdlbG9nID0gYXN5bmMgKHtjbGlOYW1lLCBjb25maWcsIG91dHB1dEZpbGUgPSAnY2hhbmdlbG9nLnRtcC5tZCcsIHF1aWV0fSk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIC8vIFNwaW5uZXJcbiAgY29uc3Qgc3Bpbm5lciA9IGNyZWF0ZVNwaW5uZXIocXVpZXQpO1xuXG4gIC8vIENvbmZpZ3VyZSBnaXQgY2xpIG9wdGlvbnNcbiAgY29uc3QgZ2l0T3B0aW9uczogc3RyaW5nW10gPSBbXG4gICAgJ2xvZycsXG4gICAgJy0zJyxcbiAgICAnLS1wcmV0dHk9Zm9ybWF0OntcImF1dGhvck5hbWVcIjogXCIlYW5cIiwgXCJhdXRob3JFbWFpbFwiOiBcIiVhZVwiLCBcImhhc2hTaG9ydFwiOiBcIiVoXCIsIFwiaGFzaEZ1bGxcIjogXCIlSFwiLCBcInRhZ1wiOiBcIiVEXCIsIFwiZGF0ZVwiOiAlY3QsIFwic3ViamVjdFwiOiBcIiVzXCIsXCJjb21tZW50c1wiOiBcIiViXCJ9W2xleF9icmVha10nXG4gIF07XG5cbiAgLy8gUnVuIGdpdFxuICB0cnkge1xuICAgIGNvbnN0IGdpdCA9IGF3YWl0IGV4ZWNhKCdnaXQnLCBnaXRPcHRpb25zLCB7ZW5jb2Rpbmc6ICd1dGYtOCd9KTtcblxuICAgIGNvbnN0IHtzdGRvdXR9ID0gZ2l0O1xuICAgIGNvbnN0IGVudHJpZXM6IHN0cmluZ1tdID0gc3Rkb3V0LnNwbGl0KCdbbGV4X2JyZWFrXScpLmZpbHRlcigoaXRlbSkgPT4gISFpdGVtKTtcbiAgICBjb25zdCBnaXRKc29uID0gSlNPTi5wYXJzZShcbiAgICAgIChgWyR7ZW50cmllcy5qb2luKCcsJyl9XWApLnJlcGxhY2UoL1wiW15cIl0qKD86XCJcIlteXCJdKikqXCIvZywgKG1hdGNoKSA9PiBtYXRjaC5yZXBsYWNlKC9cXG4vZywgJ1tsZXhfYnJlYWtdJykpXG4gICAgKTtcbiAgICBjb25zdCBjb21taXRDb250ZW50ID0ge307XG4gICAgbGV0IHZlcnNpb246IHN0cmluZyA9ICdVbnJlbGVhc2VkJztcblxuICAgIGdpdEpzb24uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3Qge2NvbW1lbnRzLCBhdXRob3JFbWFpbCwgYXV0aG9yTmFtZSwgZGF0ZSwgaGFzaEZ1bGwsIGhhc2hTaG9ydCwgdGFnfSA9IGl0ZW07XG4gICAgICBjb25zdCBmb3JtYXREYXRlOiBzdHJpbmcgPSBEYXRlVGltZS5mcm9tTWlsbGlzKGRhdGUpLnRvRm9ybWF0KCdEREQnKTtcblxuICAgICAgaWYoIWlzRW1wdHkodGFnKSkge1xuICAgICAgICBjb25zdCByZWZzID0gdGFnLnNwbGl0KCcsICcpO1xuICAgICAgICBjb25zdCB1cGRhdGVkVmVyc2lvbjogc3RyaW5nID0gcmVmcy5yZWR1Y2UoKHJlZjogc3RyaW5nLCB0YWdJdGVtOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBsZXQgdXBkYXRlZFJlZjogc3RyaW5nID0gcmVmO1xuXG4gICAgICAgICAgaWYodXBkYXRlZFJlZiA9PT0gJycgJiYgdGFnSXRlbS5pbmNsdWRlcygndGFnOiB2JykpIHtcbiAgICAgICAgICAgIHVwZGF0ZWRSZWYgPSB0YWdJdGVtLnJlcGxhY2UoJ3RhZzogdicsICcnKS50cmltKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRSZWY7XG4gICAgICAgIH0sICcnKTtcblxuICAgICAgICBpZighaXNFbXB0eSh1cGRhdGVkVmVyc2lvbikpIHtcbiAgICAgICAgICB2ZXJzaW9uID0gdXBkYXRlZFZlcnNpb247XG4gICAgICAgICAgY29tbWl0Q29udGVudFt2ZXJzaW9uXSA9IHtkYXRlOiBmb3JtYXREYXRlLCB2ZXJzaW9uOiB1cGRhdGVkVmVyc2lvbn07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYoIWNvbW1pdENvbnRlbnRbdmVyc2lvbl0pIHtcbiAgICAgICAgY29tbWl0Q29udGVudFt2ZXJzaW9uXSA9IHtsaXN0OiB7fX07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN1YmplY3RMaW5lczogc3RyaW5nW10gPSBjb21tZW50cy5zcGxpdCgnW2xleF9icmVha10nKTtcbiAgICAgIGNvbnN0IHRvcGljcyA9IHt9O1xuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGx1c3BsdXNcbiAgICAgIGZvcihsZXQgaWR4OiBudW1iZXIgPSAwLCBsZW46IG51bWJlciA9IHN1YmplY3RMaW5lcy5sZW5ndGg7IGlkeCA8IGxlbjsgaWR4KyspIHtcbiAgICAgICAgY29uc3QgbmV4dExpbmU6IHN0cmluZyA9IHN1YmplY3RMaW5lc1tpZHhdO1xuICAgICAgICBjb25zdCBmb3JtYXRMaW5lOiBzdHJpbmcgPSBuZXh0TGluZS50cmltKCk7XG4gICAgICAgIGNvbnN0IGhlYWRlclBhdHRlcm46IFJlZ0V4cCA9IC9eKFxcdyopKD86XFwoKFtcXHdcXCRcXC5cXC1cXCogXSopXFwpKT9cXDogKC4qKSQvO1xuICAgICAgICBjb25zdCBtYXRjaGVzID0gZm9ybWF0TGluZS5tYXRjaChoZWFkZXJQYXR0ZXJuKTtcblxuICAgICAgICBpZihtYXRjaGVzKSB7XG4gICAgICAgICAgY29uc3QgaXRlbVR5cGU6IHN0cmluZyA9IGNhcGl0YWxpemUobWF0Y2hlc1sxXSk7XG4gICAgICAgICAgY29uc3QgaXRlbVNjb3BlOiBzdHJpbmcgPSBtYXRjaGVzWzJdO1xuICAgICAgICAgIGNvbnN0IGl0ZW1EZXRhaWxzOiBzdHJpbmcgPSBtYXRjaGVzWzNdO1xuICAgICAgICAgIGNvbnN0IGRldGFpbHMgPSB7XG4gICAgICAgICAgICBhdXRob3JFbWFpbCxcbiAgICAgICAgICAgIGF1dGhvck5hbWUsXG4gICAgICAgICAgICBkZXRhaWxzOiBpdGVtRGV0YWlscyxcbiAgICAgICAgICAgIGhhc2hGdWxsLFxuICAgICAgICAgICAgaGFzaFNob3J0LFxuICAgICAgICAgICAgdHlwZTogaXRlbVR5cGVcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgaWYoIXRvcGljc1tpdGVtU2NvcGVdKSB7XG4gICAgICAgICAgICB0b3BpY3NbaXRlbVNjb3BlXSA9IHtbaXRlbVR5cGVdOiBbZGV0YWlsc119O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0b3BpY3NbaXRlbVNjb3BlXVtpdGVtVHlwZV0ucHVzaChkZXRhaWxzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29tbWl0Q29udGVudFt2ZXJzaW9uXSA9IG1lcmdlKGNvbW1pdENvbnRlbnRbdmVyc2lvbl0sIHtsaXN0OiB0b3BpY3N9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGZvcm1hdExvZzogc3RyaW5nID0gT2JqZWN0LmtleXMoY29tbWl0Q29udGVudCkucmVkdWNlKChjb250ZW50OiBzdHJpbmcsIHZlcnNpb25LZXk6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qge2RhdGUsIGxpc3QgPSB7fSwgdmVyc2lvbn0gPSBjb21taXRDb250ZW50W3ZlcnNpb25LZXldO1xuICAgICAgY29uc3QgZm9ybWF0U2NvcGVzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGxpc3QpO1xuICAgICAgbGV0IHVwZGF0ZWRDb250ZW50OiBzdHJpbmcgPSBjb250ZW50O1xuXG4gICAgICBjb25zdCB2ZXJzaW9uTGFiZWw6IHN0cmluZyA9IHZlcnNpb24gPyB2ZXJzaW9uIDogJ1VucmVsZWFzZWQnO1xuICAgICAgY29uc3QgaGVhZGVyTGFiZWxzOiBzdHJpbmdbXSA9IFt2ZXJzaW9uTGFiZWxdO1xuICAgICAgaWYoZGF0ZSkge1xuICAgICAgICBoZWFkZXJMYWJlbHMucHVzaChgKCR7ZGF0ZX0pYCk7XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZWRDb250ZW50ICs9IGBcXG4jIyAke2hlYWRlckxhYmVscy5qb2luKCcgJyl9XFxuYDtcblxuICAgICAgZm9ybWF0U2NvcGVzLmZvckVhY2goKHNjb3BlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHVwZGF0ZWRDb250ZW50ICs9IGBcXG4jIyMgJHtzY29wZU5hbWV9XFxuXFxuYDtcblxuICAgICAgICAvLyBHZXQgdGhlIHRvcGljIG5hbWVcbiAgICAgICAgY29uc3QgaXRlbUxpc3QgPSBsaXN0W3Njb3BlTmFtZV07XG4gICAgICAgIGNvbnN0IGl0ZW1OYW1lczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhpdGVtTGlzdCk7XG5cbiAgICAgICAgaXRlbU5hbWVzLmZvckVhY2goKGl0ZW1OYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICB1cGRhdGVkQ29udGVudCArPSBgKiAke2l0ZW1OYW1lfVxcbmA7XG5cbiAgICAgICAgICBpdGVtTGlzdFtpdGVtTmFtZV0uZm9yRWFjaCgoY2hhbmdlcykgPT4ge1xuICAgICAgICAgICAgY29uc3Qge2F1dGhvckVtYWlsLCBhdXRob3JOYW1lLCBkZXRhaWxzLCBoYXNoRnVsbCwgaGFzaFNob3J0fSA9IGNoYW5nZXM7XG4gICAgICAgICAgICBjb25zdCB7Z2l0VXJsfSA9IGNvbmZpZztcbiAgICAgICAgICAgIGxldCBoYXNoOiBzdHJpbmcgPSBgIyR7aGFzaFNob3J0fWA7XG5cbiAgICAgICAgICAgIGlmKCFpc0VtcHR5KGdpdFVybCkpIHtcbiAgICAgICAgICAgICAgbGV0IGNvbW1pdFBhdGg6IHN0cmluZyA9ICdjb21taXRzJztcblxuICAgICAgICAgICAgICBpZihnaXRVcmwuaW5jbHVkZXMoJ2dpdGh1Yi5jb20nKSkge1xuICAgICAgICAgICAgICAgIGNvbW1pdFBhdGggPSAnY29tbWl0JztcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGhhc2ggPSBgWyMke2hhc2hTaG9ydH1dKCR7Z2l0VXJsfS8ke2NvbW1pdFBhdGh9LyR7aGFzaEZ1bGx9KWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHVwZGF0ZWRDb250ZW50ICs9IGAgICogJHtkZXRhaWxzfSAoWyR7YXV0aG9yTmFtZX1dKG1haWx0bzoke2F1dGhvckVtYWlsfSkgaW4gJHtoYXNofSlcXG5gO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdXBkYXRlZENvbnRlbnQ7XG4gICAgfSwgJyMgQ2hhbmdlc1xcbicpO1xuXG4gICAgY29uc3QgbG9nRmlsZTogc3RyaW5nID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIG91dHB1dEZpbGUpO1xuICAgIGZzLndyaXRlRmlsZVN5bmMobG9nRmlsZSwgZm9ybWF0TG9nKTtcbiAgICBzcGlubmVyLnN1Y2NlZWQoJ0dpdCBjaGFuZ2UgbG9nIGNvbXBsZXRlIScpO1xuXG4gICAgLy8gS2lsbCBwcm9jZXNzXG4gICAgcmV0dXJuIDA7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG5cbiAgICAvLyBTdG9wIHNwaW5uZXJcbiAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCBnZW5lcmF0aW5nIGNoYW5nZSBsb2chJyk7XG5cbiAgICAvLyBLaWxsIHByb2Nlc3NcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzO1xuICB9XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsbUJBQStCO0FBQy9CLFNBQW9CO0FBQ3BCLHdCQUF1QjtBQUN2QixxQkFBb0I7QUFDcEIsbUJBQWtCO0FBQ2xCLG1CQUF1QjtBQUN2QixrQkFBaUI7QUFFakIsaUJBQTRCO0FBQzVCLGlCQUFrQjtBQUVYLE1BQU0sa0JBQWtCLE9BQU8sRUFBQyxTQUFTLFFBQVEsYUFBYSxvQkFBb0IsWUFBNEI7QUFFbkgsUUFBTSxVQUFVLDhCQUFjLEtBQUs7QUFHbkMsUUFBTSxhQUF1QjtBQUFBLElBQzNCO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGO0FBR0EsTUFBSTtBQUNGLFVBQU0sTUFBTSxNQUFNLDBCQUFNLE9BQU8sWUFBWSxFQUFDLFVBQVUsUUFBTyxDQUFDO0FBRTlELFVBQU0sRUFBQyxXQUFVO0FBQ2pCLFVBQU0sVUFBb0IsT0FBTyxNQUFNLGFBQWEsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSTtBQUM3RSxVQUFNLFVBQVUsS0FBSyxNQUNsQixJQUFJLFFBQVEsS0FBSyxHQUFHLEtBQU0sUUFBUSx3QkFBd0IsQ0FBQyxVQUFVLE1BQU0sUUFBUSxPQUFPLGFBQWEsQ0FBQyxDQUMzRztBQUNBLFVBQU0sZ0JBQWdCLENBQUM7QUFDdkIsUUFBSSxVQUFrQjtBQUV0QixZQUFRLFFBQVEsQ0FBQyxTQUFTO0FBQ3hCLFlBQU0sRUFBQyxVQUFVLGFBQWEsWUFBWSxNQUFNLFVBQVUsV0FBVyxRQUFPO0FBQzVFLFlBQU0sYUFBcUIsc0JBQVMsV0FBVyxJQUFJLEVBQUUsU0FBUyxLQUFLO0FBRW5FLFVBQUcsQ0FBQyw0QkFBUSxHQUFHLEdBQUc7QUFDaEIsY0FBTSxPQUFPLElBQUksTUFBTSxJQUFJO0FBQzNCLGNBQU0saUJBQXlCLEtBQUssT0FBTyxDQUFDLEtBQWEsWUFBb0I7QUFDM0UsY0FBSSxhQUFxQjtBQUV6QixjQUFHLGVBQWUsTUFBTSxRQUFRLFNBQVMsUUFBUSxHQUFHO0FBQ2xELHlCQUFhLFFBQVEsUUFBUSxVQUFVLEVBQUUsRUFBRSxLQUFLO0FBQUEsVUFDbEQ7QUFFQSxpQkFBTztBQUFBLFFBQ1QsR0FBRyxFQUFFO0FBRUwsWUFBRyxDQUFDLDRCQUFRLGNBQWMsR0FBRztBQUMzQixvQkFBVTtBQUNWLHdCQUFjLFdBQVcsRUFBQyxNQUFNLFlBQVksU0FBUyxlQUFjO0FBQUEsUUFDckU7QUFBQSxNQUNGO0FBRUEsVUFBRyxDQUFDLGNBQWMsVUFBVTtBQUMxQixzQkFBYyxXQUFXLEVBQUMsTUFBTSxDQUFDLEVBQUM7QUFBQSxNQUNwQztBQUVBLFlBQU0sZUFBeUIsU0FBUyxNQUFNLGFBQWE7QUFDM0QsWUFBTSxTQUFTLENBQUM7QUFHaEIsZUFBUSxNQUFjLEdBQUcsTUFBYyxhQUFhLFFBQVEsTUFBTSxLQUFLLE9BQU87QUFDNUUsY0FBTSxXQUFtQixhQUFhO0FBQ3RDLGNBQU0sYUFBcUIsU0FBUyxLQUFLO0FBQ3pDLGNBQU0sZ0JBQXdCO0FBQzlCLGNBQU0sVUFBVSxXQUFXLE1BQU0sYUFBYTtBQUU5QyxZQUFHLFNBQVM7QUFDVixnQkFBTSxXQUFtQiwrQkFBVyxRQUFRLEVBQUU7QUFDOUMsZ0JBQU0sWUFBb0IsUUFBUTtBQUNsQyxnQkFBTSxjQUFzQixRQUFRO0FBQ3BDLGdCQUFNLFVBQVU7QUFBQSxZQUNkO0FBQUEsWUFDQTtBQUFBLFlBQ0EsU0FBUztBQUFBLFlBQ1Q7QUFBQSxZQUNBO0FBQUEsWUFDQSxNQUFNO0FBQUEsVUFDUjtBQUVBLGNBQUcsQ0FBQyxPQUFPLFlBQVk7QUFDckIsbUJBQU8sYUFBYSxFQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBQztBQUFBLFVBQzVDLE9BQU87QUFDTCxtQkFBTyxXQUFXLFVBQVUsS0FBSyxPQUFPO0FBQUEsVUFDMUM7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLG9CQUFjLFdBQVcsMEJBQU0sY0FBYyxVQUFVLEVBQUMsTUFBTSxPQUFNLENBQUM7QUFBQSxJQUN2RSxDQUFDO0FBRUQsVUFBTSxZQUFvQixPQUFPLEtBQUssYUFBYSxFQUFFLE9BQU8sQ0FBQyxTQUFpQixlQUF1QjtBQUNuRyxZQUFNLEVBQUMsTUFBTSxPQUFPLENBQUMsR0FBRyxzQkFBVyxjQUFjO0FBQ2pELFlBQU0sZUFBeUIsT0FBTyxLQUFLLElBQUk7QUFDL0MsVUFBSSxpQkFBeUI7QUFFN0IsWUFBTSxlQUF1QixXQUFVLFdBQVU7QUFDakQsWUFBTSxlQUF5QixDQUFDLFlBQVk7QUFDNUMsVUFBRyxNQUFNO0FBQ1AscUJBQWEsS0FBSyxJQUFJLE9BQU87QUFBQSxNQUMvQjtBQUVBLHdCQUFrQjtBQUFBLEtBQVEsYUFBYSxLQUFLLEdBQUc7QUFBQTtBQUUvQyxtQkFBYSxRQUFRLENBQUMsY0FBc0I7QUFDMUMsMEJBQWtCO0FBQUEsTUFBUztBQUFBO0FBQUE7QUFHM0IsY0FBTSxXQUFXLEtBQUs7QUFDdEIsY0FBTSxZQUFzQixPQUFPLEtBQUssUUFBUTtBQUVoRCxrQkFBVSxRQUFRLENBQUMsYUFBcUI7QUFDdEMsNEJBQWtCLEtBQUs7QUFBQTtBQUV2QixtQkFBUyxVQUFVLFFBQVEsQ0FBQyxZQUFZO0FBQ3RDLGtCQUFNLEVBQUMsYUFBYSxZQUFZLFNBQVMsVUFBVSxjQUFhO0FBQ2hFLGtCQUFNLEVBQUMsV0FBVTtBQUNqQixnQkFBSSxPQUFlLElBQUk7QUFFdkIsZ0JBQUcsQ0FBQyw0QkFBUSxNQUFNLEdBQUc7QUFDbkIsa0JBQUksYUFBcUI7QUFFekIsa0JBQUcsT0FBTyxTQUFTLFlBQVksR0FBRztBQUNoQyw2QkFBYTtBQUFBLGNBQ2Y7QUFFQSxxQkFBTyxLQUFLLGNBQWMsVUFBVSxjQUFjO0FBQUEsWUFDcEQ7QUFFQSw4QkFBa0IsT0FBTyxhQUFhLHNCQUFzQixtQkFBbUI7QUFBQTtBQUFBLFVBQ2pGLENBQUM7QUFBQSxRQUNILENBQUM7QUFBQSxNQUNILENBQUM7QUFFRCxhQUFPO0FBQUEsSUFDVCxHQUFHLGFBQWE7QUFFaEIsVUFBTSxVQUFrQixvQkFBSyxLQUFLLFFBQVEsSUFBSSxHQUFHLFVBQVU7QUFDM0QsT0FBRyxjQUFjLFNBQVMsU0FBUztBQUNuQyxZQUFRLFFBQVEsMEJBQTBCO0FBRzFDLFdBQU87QUFBQSxFQUNULFNBQVEsT0FBTjtBQUVBLHdCQUFJO0FBQUEsRUFBSyxrQkFBa0IsTUFBTSxXQUFXLFNBQVMsS0FBSztBQUcxRCxZQUFRLEtBQUssK0JBQStCO0FBRzVDLFdBQU8sTUFBTTtBQUFBLEVBQ2Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
package/dist/lex.js CHANGED
@@ -33,3 +33,4 @@ import_commander.program.command("upgrade").option("-m, --package-manager <manag
33
33
  import_commander.program.command("versions").option("-j, --json", "Print the version as a JSON object.").action((cmd) => (0, import_commands.versions)(cmd, process.exit).then(() => {
34
34
  }));
35
35
  import_commander.program.version(packageConfig.version).parse(process.argv);
36
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cHJvZ3JhbX0gZnJvbSAnY29tbWFuZGVyJztcblxuaW1wb3J0IHtcbiAgYnVpbGQsXG4gIGNsZWFuLFxuICBjb21waWxlLFxuICBjb25maWcsXG4gIGNyZWF0ZSxcbiAgZGV2LFxuICBpbml0LFxuICBsaW5rZWQsXG4gIGxpbnQsXG4gIG1pZ3JhdGUsXG4gIHB1Ymxpc2gsXG4gIHRlc3QsXG4gIHVwZGF0ZSxcbiAgdXBncmFkZSxcbiAgdmVyc2lvbnNcbn0gZnJvbSAnLi9jb21tYW5kcyc7XG5cbmNvbnN0IHBhY2thZ2VDb25maWcgPSByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKTtcblxuLy8gQ29tbWFuZHNcbnByb2dyYW0uY29tbWFuZCgnYnVpbGQnKVxuICAub3B0aW9uKCctYywgLS1jb25maWcgPHBhdGg+JywgJ0N1c3RvbSBXZWJwYWNrIGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gd2VicGFjay5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1sLCAtLWxleENvbmZpZyA8cGF0aD4nLCAnTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChsZXguY29uZmlnLmpzKS4nKVxuICAub3B0aW9uKCctbSwgLS1tb2RlIDx0eXBlPicsICdXZWJwYWNrIG1vZGUgKFwicHJvZHVjdGlvblwiIG9yIFwiZGV2ZWxvcG1lbnRcIikuIERlZmF1bHQ6IFwiZGV2ZWxvcG1lbnRcIi4nLCAvXihkZXZlbG9wbWVudHxwcm9kdWN0aW9uKSQvaSwgJ2RldmVsb3BtZW50JylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctciwgLS1yZW1vdmUnLCAnUmVtb3ZlcyBhbGwgZmlsZXMgZnJvbSB0aGUgb3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgY29tcGlsaW5nLicpXG4gIC5vcHRpb24oJy1zLCAtLXN0YXRpYycsICdDcmVhdGVzIHN0YXRpYyBIVE1MIGZpbGVzIHdoZW4gYnVpbGRpbmcgYXBwLicpXG4gIC5vcHRpb24oJy10LCAtLXR5cGVzY3JpcHQnLCAnVHJhbnNwaWxlIGFzIFR5cGVzY3JpcHQuJylcbiAgLm9wdGlvbignLXYsIC0tdmFyaWFibGVzIDxuYW1lPicsICdFbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0IGluIFwicHJvY2Vzcy5lbnZcIi4gKGllLiBcIntOT0RFX0VOVjogXFwncHJvZHVjdGlvblxcJ31cIikuJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2gnLCAnV2F0Y2ggZm9yIGNoYW5nZXMuJylcbiAgLm9wdGlvbignLS1idW5kbGVyIDxuYW1lPicsICdCdW5kbGVyIHRvIHVzZSAoXCJ3ZWJwYWNrXCIgb3IgXCJlc2J1aWxkXCIpLiBEZWZhdWx0OiBcIndlYnBhY2tcIi4nLCAvXih3ZWJwYWNrfGVzYnVpbGQpJC9pLCAnd2VicGFjaycpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGggPHBhdGg+JywgJ091dHB1dCBwYXRoJylcbiAgLm9wdGlvbignLS1vdXRwdXRDaHVua0ZpbGVuYW1lIDxmaWxlbmFtZT4nLCAnVGhlIG91dHB1dCBmaWxlbmFtZSBmb3IgYWRkaXRpb25hbCBjaHVua3MuJylcbiAgLm9wdGlvbignLS1vdXRwdXRGaWxlbmFtZSA8ZmlsZW5hbWU+JywgJ1RoZSBvdXRwdXQgZmlsZW5hbWUgb2YgdGhlIGJ1bmRsZS4gRGVmYXVsdDogXCJbbmFtZV0uanNcIi4nKVxuICAub3B0aW9uKCctLW91dHB1dEpzb25wRnVuY3Rpb24gPGZ1bmM+JywgJ1RoZSBuYW1lIG9mIHRoZSBKU09OUCBmdW5jdGlvbiB1c2VkIGZvciBjaHVuayBsb2FkaW5nLiBEZWZhdWx0OiBcIndlYnBhY2tKc29ucFwiLicpXG4gIC5vcHRpb24oJy0tb3V0cHV0TGlicmFyeSA8bGlicmFyeT4nLCAnRXhwb3NlIHRoZSBleHBvcnRzIG9mIHRoZSBlbnRyeSBwb2ludCBhcyBsaWJyYXJ5LicpXG4gIC5vcHRpb24oJy0tb3V0cHV0TGlicmFyeVRhcmdldCA8dGFyZ2V0PicsICdUaGUgdHlwZSBmb3IgZXhwb3NpbmcgdGhlIGV4cG9ydHMgb2YgdGhlIGVudHJ5IHBvaW50IGFzIGxpYnJhcnkuIERlZmF1bHQ6IFwidmFyXCIuJylcbiAgLm9wdGlvbignLS1vdXRwdXRQYXRoaW5mbyA8aGFzSW5mbz4nLCAnVGhlIG91dHB1dCBmaWxlbmFtZSBmb3IgYWRkaXRpb25hbCBjaHVua3MuIERlZmF1bHQ6IGZhbHNlJylcbiAgLm9wdGlvbignLS1vdXRwdXRQdWJsaWNQYXRoIDxwYXRoPicsICdUaGUgcHVibGljIHBhdGggZm9yIHRoZSBhc3NldHMuIERlZmF1bHQ6IFwiL1wiJylcbiAgLm9wdGlvbignLS1vdXRwdXRTb3VyY2VNYXBGaWxlbmFtZSA8ZmlsZW5hbWU+JywgJ1RoZSBvdXRwdXQgZmlsZW5hbWUgZm9yIHRoZSBTb3VyY2VNYXAuIERlZmF1bHQ6IFwiW25hbWVdLm1hcFwiJylcbiAgLm9wdGlvbignLS1idWlsZERlbGltaXRlciA8ZGVsaW1pdGVyPicsICdEaXNwbGF5IGN1c3RvbSB0ZXh0IGFmdGVyIGJ1aWxkIG91dHB1dC4gRGVmYXVsdDogXCI9PT0gQnVpbGQgZG9uZSA9PT1cIicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gYnVpbGQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnY2xlYW4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy1zLCAtLXNuYXBzaG90cycsICdSZW1vdmUgYWxsIFwiX19zbmFwc2hvdHNfX1wiIGRpcmVjdG9yaWVzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gY2xlYW4oY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnY29uZmlnIDx0eXBlPicpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS1qc29uIDxwYXRoPicsICdTYXZlIG91dHB1dCB0byBqc29uIGZpbGUuJylcbiAgLmFjdGlvbigodHlwZSwgY21kKSA9PiBjb25maWcodHlwZSwgY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnY29tcGlsZScpXG4gIC5vcHRpb24oJy1jLCAtLWNvbmZpZyA8cGF0aD4nLCAnVHJhbnNwaWxlciBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIC5mbG93Y29uZmlnIG9yIHRzY29uZmlnLmpzb24pLicpXG4gIC5vcHRpb24oJy1lLCAtLWVudmlyb25tZW50IDxuYW1lPicsICdUYXJnZXQgZW52aXJvbm1lbnQuIFwibm9kZVwiIG9yIFwid2ViXCIuIERlZmF1bHQ6IFwibm9kZVwiLicpXG4gIC5vcHRpb24oJy1sLCAtLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1yLCAtLXJlbW92ZScsICdSZW1vdmVzIGFsbCBmaWxlcyBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSBjb21waWxpbmcuJylcbiAgLm9wdGlvbignLXQsIC0tdHlwZXNjcmlwdCcsICdUcmFuc3BpbGUgYXMgVHlwZXNjcmlwdC4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy13LCAtLXdhdGNoJywgJ1dhdGNoZXMgZm9yIGNoYW5nZXMgYW5kIGNvbXBpbGVzLicpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGggPHBhdGg+JywgJ091dHB1dCBwYXRoJylcbiAgLmFjdGlvbigoY21kKSA9PiBjb21waWxlKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHsgfSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2NyZWF0ZSA8dHlwZT4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy10LCAtLXR5cGVzY3JpcHQnLCAnQ3JlYXRlIFR5cGVzY3JpcHQgdmVyc2lvbi4nKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGUgPHBhdGg+JywgJ091dHB1dCBmaWxlbmFtZS4nKVxuICAub3B0aW9uKCctLW91dHB1dE5hbWUgPG5hbWU+JywgJ091dHB1dCBuYW1lLicpXG4gIC5hY3Rpb24oKHR5cGUsIGNtZCkgPT4gY3JlYXRlKHR5cGUsIGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHsgfSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2RldicpXG4gIC5vcHRpb24oJy1jLCAtLWNvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIFdlYnBhY2sgY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGllLiB3ZWJwYWNrLmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLWwsIC0tbGV4Q29uZmlnIDxwYXRoPicsICdDdXN0b20gTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gbGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLW8sIC0tb3BlbicsICdBdXRvbWF0aWNhbGx5IG9wZW4gZGV2IHNlcnZlciBpbiBhIG5ldyBicm93c2VyIHdpbmRvdy4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy1yLCAtLXJlbW92ZScsICdSZW1vdmVzIGFsbCBmaWxlcyBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSBjb21waWxpbmcuJylcbiAgLm9wdGlvbignLXQsIC0tdHlwZXNjcmlwdCcsICdUcmFuc3BpbGUgYXMgVHlwZXNjcmlwdC4nKVxuICAub3B0aW9uKCctdiwgLS12YXJpYWJsZXMgPG5hbWU+JywgJ0Vudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQgaW4gXCJwcm9jZXNzLmVudlwiLiAoaWUuIFwie05PREVfRU5WOiBcXCdkZXZlbG9wbWVudFxcJ31cIikuJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2gnLCAnV2F0Y2ggZm9yIGNoYW5nZXMuJylcbiAgLm9wdGlvbignLS1idW5kbGVBbmFseXplcicsICdSdW4gYnVuZGxlIGFuYWx5emVyLicpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGggPHBhdGg+JywgJ091dHB1dCBwYXRoJylcbiAgLmFjdGlvbigoY21kKSA9PiBkZXYoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnaW5pdCA8YXBwTmFtZT4gW3BhY2thZ2VOYW1lXScpXG4gIC5vcHRpb24oJy1pLCAtLWluc3RhbGwnLCAnSW5zdGFsbCBkZXBlbmRlbmNpZXMuJylcbiAgLm9wdGlvbignLW0sIC0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nLCAvXihucG18eWFybikkL2ksICducG0nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy10LCAtLXR5cGVzY3JpcHQnLCAnVXNlIGEgVHlwZXNjcmlwdCBiYXNlZCBhcHAuJylcbiAgLmFjdGlvbigoYXBwTmFtZSwgcGFja2FnZU5hbWUsIGNtZCkgPT4gaW5pdChhcHBOYW1lLCBwYWNrYWdlTmFtZSwgY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnbGlua2VkJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAuYWN0aW9uKChjbWQpID0+IGxpbmtlZChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7IH0pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdsaW50JylcbiAgLm9wdGlvbignLS1jYWNoZScsICdPbmx5IGNoZWNrIGNoYW5nZWQgZmlsZXMuIERlZmF1bHQ6IGZhbHNlLicpXG4gIC5vcHRpb24oJy0tY2FjaGUtbG9jYXRpb24gPHBhdGg+JywgJ1BhdGggdG8gdGhlIGNhY2hlIGZpbGUgb3IgZGlyZWN0b3J5LicpXG4gIC5vcHRpb24oJy0tY29sb3InLCAnRm9yY2UgZW5hYmxpbmcgb2YgY29sb3IuJylcbiAgLm9wdGlvbignLS1jb25maWcgPHBhdGg+JywgJ1VzZSB0aGlzIGNvbmZpZ3VyYXRpb24sIG92ZXJyaWRpbmcgLmVzbGludHJjLiogY29uZmlnIG9wdGlvbnMgaWYgcHJlc2VudC4nKVxuICAub3B0aW9uKCctLWRlYnVnJywgJ091dHB1dCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uJylcbiAgLm9wdGlvbignLS1lbnYtaW5mbycsICdPdXRwdXQgZXhlY3V0aW9uIGVudmlyb25tZW50IGluZm9ybWF0aW9uLiBEZWZhdWx0OiBmYWxzZS4nKVxuICAub3B0aW9uKCctLWVudiA8bmFtZT4nLCAnU3BlY2lmeSBlbnZpcm9ubWVudHMuJylcbiAgLm9wdGlvbignLS1leHQgPHR5cGU+JywgJ1NwZWNpZnkgSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbnMuIERlZmF1bHQ6IC5qcy4nKVxuICAub3B0aW9uKCctLWZpeCcsICdBdXRvbWF0aWNhbGx5IGZpeCBwcm9ibGVtcy4nKVxuICAub3B0aW9uKCctLWZpeC1kcnktcnVuJywgJ0F1dG9tYXRpY2FsbHkgZml4IHByb2JsZW1zIHdpdGhvdXQgc2F2aW5nIHRoZSBjaGFuZ2VzIHRvIHRoZSBmaWxlIHN5c3RlbS4nKVxuICAub3B0aW9uKCctLWZpeC10eXBlIDx0eXBlPicsICdTcGVjaWZ5IHRoZSB0eXBlcyBvZiBmaXhlcyB0byBhcHBseSAocHJvYmxlbSwgc3VnZ2VzdGlvbiwgbGF5b3V0KS4nKVxuICAub3B0aW9uKCctLWZvcm1hdCA8bmFtZT4nLCAnVXNlIGEgc3BlY2lmaWMgb3V0cHV0IGZvcm1hdC4gRGVmYXVsdDogc3R5bGlzaC4nKVxuICAub3B0aW9uKCctLWdsb2JhbCA8dmFyaWFibGVzPicsICdEZWZpbmUgZ2xvYmFsIHZhcmlhYmxlcy4nKVxuICAub3B0aW9uKCctLWlnbm9yZS1wYXRoIDxwYXRoPicsICdTcGVjaWZ5IHBhdGggb2YgaWdub3JlIGZpbGUuJylcbiAgLm9wdGlvbignLS1pZ25vcmUtcGF0dGVybiA8cGF0dGVybj4nLCAnUGF0dGVybiBvZiBmaWxlcyB0byBpZ25vcmUgKGluIGFkZGl0aW9uIHRvIHRob3NlIGluIC5lc2xpbnRpZ25vcmUpLicpXG4gIC5vcHRpb24oJy0taW5pdCcsICdSdW4gY29uZmlnIGluaXRpYWxpemF0aW9uIHdpemFyZC4gRGVmYXVsdDogZmFsc2UuJylcbiAgLm9wdGlvbignLS1tYXgtd2FybmluZ3MgPG51bT4nLCAnTnVtYmVyIG9mIHdhcm5pbmdzIHRvIHRyaWdnZXIgbm9uemVybyBleGl0IGNvZGUuIERlZmF1bHQ6IC0xLicpXG4gIC5vcHRpb24oJy0tbm8tY29sb3InLCAnRm9yY2UgZGlzYWJsaW5nIG9mIGNvbG9yLicpXG4gIC5vcHRpb24oJy0tbm8tZXNsaW50cmMnLCAnRGlzYWJsZSB1c2Ugb2YgY29uZmlndXJhdGlvbiBmcm9tIC5lc2xpbnRyYy4qLicpXG4gIC5vcHRpb24oJy0tbm8taWdub3JlJywgJ0Rpc2FibGUgdXNlIG9mIGlnbm9yZSBmaWxlcyBhbmQgcGF0dGVybnMuJylcbiAgLm9wdGlvbignLS1uby1pbmxpbmUtY29uZmlnJywgJ1ByZXZlbnQgY29tbWVudHMgZnJvbSBjaGFuZ2luZyBjb25maWcgb3IgcnVsZXMuJylcbiAgLm9wdGlvbignLS1vdXRwdXQtZmlsZSA8cGF0aD4nLCAnU3BlY2lmeSBmaWxlIHRvIHdyaXRlIHJlcG9ydCB0by4nKVxuICAub3B0aW9uKCctLXBhcnNlciA8bmFtZT4nLCAnU3BlY2lmeSB0aGUgcGFyc2VyIHRvIGJlIHVzZWQuJylcbiAgLm9wdGlvbignLS1wYXJzZXItb3B0aW9ucyA8b3B0aW9ucz4nLCAnU3BlY2lmeSBwYXJzZXIgb3B0aW9ucy4nKVxuICAub3B0aW9uKCctLXBsdWdpbiA8cGx1Z2lucz4nLCAnU3BlY2lmeSBwbHVnaW5zLicpXG4gIC5vcHRpb24oJy0tcHJpbnQtY29uZmlnIDxwYXRoPicsICdQcmludCB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGdpdmVuIGZpbGUuJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXJlcG9ydC11bnVzZWQtZGlzYWJsZS1kaXJlY3RpdmVzJywgJ0FkZHMgcmVwb3J0ZWQgZXJyb3JzIGZvciB1bnVzZWQgZXNsaW50LWRpc2FibGUgZGlyZWN0aXZlcy4nKVxuICAub3B0aW9uKCctLXJlc29sdmUtcGx1Z2lucy1yZWxhdGl2ZS10byA8cGF0aD4nLCAnQSBmb2xkZXIgd2hlcmUgcGx1Z2lucyBzaG91bGQgYmUgcmVzb2x2ZWQgZnJvbS4nKVxuICAub3B0aW9uKCctLXJ1bGUgPHBhdGg+JywgJ1NwZWNpZnkgcnVsZXMuJylcbiAgLm9wdGlvbignLS1ydWxlc2RpciA8cGF0aD4nLCAnVXNlIGFkZGl0aW9uYWwgcnVsZXMgZnJvbSB0aGlzIGRpcmVjdG9yeS4nKVxuICAub3B0aW9uKCctLXN0ZGluJywgJ0xpbnQgY29kZSBwcm92aWRlZCBvbiA8U1RESU4+IC0gRGVmYXVsdDogZmFsc2UuJylcbiAgLm9wdGlvbignLS1zdGRpbi1maWxlbmFtZSA8bmFtZT4nLCAnU3BlY2lmeSBmaWxlbmFtZSB0byBwcm9jZXNzIFNURElOIGFzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gbGludChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7IH0pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdtaWdyYXRlJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAuYWN0aW9uKChjbWQpID0+IG1pZ3JhdGUoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgncHVibGlzaCcpXG4gIC5vcHRpb24oJy1iLCAtLWJ1bXAgPHR5cGU+JywgJ0luY3JlbWVudHMgdGhlIHZlcnNpb24uIFR5cGVzIGluY2x1ZGU6IG1ham9yLCBtaW5vciwgcGF0Y2gsIGJldGEsIGFscGhhLCByYy4gRGVmYXVsdDogXCJwYXRjaFwiLiwgJywgL14obWFqb3J8bWlub3J8cGF0Y2h8YmV0YXxhbHBoYXxyYykkL2ksICdwYXRjaCcpXG4gIC5vcHRpb24oJy1vLCAtLW90cCA8Y29kZT4nLCAnUHJvdmlkZSBhIHR3by1mYWN0b3IgY29kZS4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy1wLCAtLXByaXZhdGUnLCAnUHVibGlzaGVzIHRoZSBtb2R1bGUgYXMgcmVzdHJpY3RlZC4nKVxuICAub3B0aW9uKCctbSwgLS1wYWNrYWdlLW1hbmFnZXIgPG1hbmFnZXI+JywgJ1doaWNoIHBhY2thZ2UgbWFuYWdlciB0byB1c2UuIERlZmF1bHQ6IG5wbScsIC9eKG5wbXx5YXJuKSQvaSwgJ25wbScpXG4gIC5vcHRpb24oJy10LCAtLXRhZyA8dGFnPicsICdSZWdpc3RlcnMgdGhlIHB1Ymxpc2hlZCBwYWNrYWdlIHdpdGggdGhlIGdpdmVuIHRhZy4nKVxuICAub3B0aW9uKCctdiwgLS1uZXctdmVyc2lvbiA8dmVyc2lvbk51bWJlcj4nLCAnUHVibGlzaCBhcyBhIHNwZWNpZmljIHZlcnNpb24uJylcbiAgLmFjdGlvbigoY21kKSA9PiBwdWJsaXNoKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHsgfSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3Rlc3QnKVxuICAub3B0aW9uKCctYywgLS1jb25maWcgPHBhdGg+JywgJ0N1c3RvbSBKZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gamVzdC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1kLCAtLWRldGVjdE9wZW5IYW5kbGVzJywgJ0F0dGVtcHQgdG8gY29sbGVjdCBhbmQgcHJpbnQgb3BlbiBoYW5kbGVzIHByZXZlbnRpbmcgSmVzdCBmcm9tIGV4aXRpbmcgY2xlYW5seScpXG4gIC5vcHRpb24oJy1lLCAtLWVudmlyb25tZW50IDxuYW1lPicsICdUYXJnZXQgZW52aXJvbm1lbnQuIFwibm9kZVwiIG9yIFwid2ViXCIuIERlZmF1bHQ6IFwibm9kZVwiLicpXG4gIC5vcHRpb24oJy1sLCAtLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLXIsIC0tY2xlYXJDYWNoZScsICdDbGVhciBKZXN0IGNhY2hlLicpXG4gIC5vcHRpb24oJy1zLCAtLXNldHVwIDxwYXRoPicsICdKZXN0IHNldHVwIGZpbGUgcGF0aC4nKVxuICAub3B0aW9uKCctdCwgLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicpXG4gIC5vcHRpb24oJy11LCAtLXVwZGF0ZScsICdVcGRhdGUgc25hcHNob3RzLiBSdW5zIFwiamVzdCAtLXVwZGF0ZVNuYXBzaG90c1wiJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2ggPHBhdGg+JywgJ1dhdGNoIGZpbGVzIGZvciBjaGFuZ2VzIGFuZCByZXJ1biB0ZXN0cyByZWxhdGVkIHRvIGNoYW5nZWQgZmlsZXMuJylcbiAgLm9wdGlvbignLS1iYWlsJywgJ0V4aXQgdGhlIHRlc3Qgc3VpdGUgaW1tZWRpYXRlbHkgdXBvbiB0aGUgZmlyc3QgZmFpbGluZyB0ZXN0IHN1aXRlLicpXG4gIC5vcHRpb24oJy0tY2hhbmdlZEZpbGVzV2l0aEFuY2VzdG9yJywgJ1J1bnMgdGVzdHMgcmVsYXRlZCB0byB0aGUgY3VycmVudCBjaGFuZ2VzIGFuZCB0aGUgY2hhbmdlcyBtYWRlIGluIHRoZSBsYXN0IGNvbW1pdC4nKVxuICAub3B0aW9uKCctLWNoYW5nZWRTaW5jZScsICdSdW5zIHRlc3RzIHJlbGF0ZWQgdGhlIGNoYW5nZXMgc2luY2UgdGhlIHByb3ZpZGVkIGJyYW5jaC4nKVxuICAub3B0aW9uKCctLWNpJywgJ1doZW4gdGhpcyBvcHRpb24gaXMgcHJvdmlkZWQsIEplc3Qgd2lsbCBhc3N1bWUgaXQgaXMgcnVubmluZyBpbiBhIENJIGVudmlyb25tZW50LicpXG4gIC5vcHRpb24oJy0tY29sbGVjdENvdmVyYWdlRnJvbSA8Z2xvYj4nLCAnQSBnbG9iIHBhdHRlcm4gcmVsYXRpdmUgdG8gbWF0Y2hpbmcgdGhlIGZpbGVzIHRoYXQgY292ZXJhZ2UgaW5mbyBuZWVkcyB0byBiZSBjb2xsZWN0ZWQgZnJvbS4nKVxuICAub3B0aW9uKCctLWNvbG9ycycsICdGb3JjZXMgdGVzdCByZXN1bHRzIG91dHB1dCBoaWdobGlnaHRpbmcgZXZlbiBpZiBzdGRvdXQgaXMgbm90IGEgVFRZLicpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnUHJpbnQgZGVidWdnaW5nIGluZm8gYWJvdXQgeW91ciBKZXN0IGNvbmZpZy4nKVxuICAub3B0aW9uKCctLWRldGVjdE9wZW5IYW5kbGVzJywgJ0F0dGVtcHQgdG8gY29sbGVjdCBhbmQgcHJpbnQgb3BlbiBoYW5kbGVzIHByZXZlbnRpbmcgSmVzdCBmcm9tIGV4aXRpbmcgY2xlYW5seS4nKVxuICAub3B0aW9uKCctLWVudicsICdUaGUgdGVzdCBlbnZpcm9ubWVudCB1c2VkIGZvciBhbGwgdGVzdHMuIFRoaXMgY2FuIHBvaW50IHRvIGFueSBmaWxlIG9yIG5vZGUgbW9kdWxlLiBFeGFtcGxlczoganNkb20sIG5vZGUgb3IgcGF0aC90by9teS1lbnZpcm9ubWVudC5qcy4nKVxuICAub3B0aW9uKCctLWVycm9yT25EZXByZWNhdGVkJywgJ01ha2UgY2FsbGluZyBkZXByZWNhdGVkIEFQSXMgdGhyb3cgaGVscGZ1bCBlcnJvciBtZXNzYWdlcy4nKVxuICAub3B0aW9uKCctLWV4cGFuZCcsICdVc2UgdGhpcyBmbGFnIHRvIHNob3cgZnVsbCBkaWZmcyBhbmQgZXJyb3JzIGluc3RlYWQgb2YgYSBwYXRjaC4nKVxuICAub3B0aW9uKCctLWZvcmNlRXhpdCcsICdGb3JjZSBKZXN0IHRvIGV4aXQgYWZ0ZXIgYWxsIHRlc3RzIGhhdmUgY29tcGxldGVkIHJ1bm5pbmcuJylcbiAgLm9wdGlvbignLS1qc29uJywgJ1ByaW50cyB0aGUgdGVzdCByZXN1bHRzIGluIEpTT04uJylcbiAgLm9wdGlvbignLS1sYXN0Q29tbWl0JywgJ1J1biBhbGwgdGVzdHMgYWZmZWN0ZWQgYnkgZmlsZSBjaGFuZ2VzIGluIHRoZSBsYXN0IGNvbW1pdCBtYWRlLicpXG4gIC5vcHRpb24oJy0tbGlzdFRlc3RzJywgJ0xpc3RzIGFsbCB0ZXN0cyBhcyBKU09OIHRoYXQgSmVzdCB3aWxsIHJ1biBnaXZlbiB0aGUgYXJndW1lbnRzLCBhbmQgZXhpdHMuJylcbiAgLm9wdGlvbignLS1sb2dIZWFwVXNhZ2UnLCAnTG9ncyB0aGUgaGVhcCB1c2FnZSBhZnRlciBldmVyeSB0ZXN0LicpXG4gIC5vcHRpb24oJy0tbWF4V29ya2VycyA8bnVtPicsICdTcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHdvcmtlcnMgdGhlIHdvcmtlci1wb29sIHdpbGwgc3Bhd24gZm9yIHJ1bm5pbmcgdGVzdHMuICcpXG4gIC5vcHRpb24oJy0tbm9TdGFja1RyYWNlJywgJ0Rpc2FibGVzIHN0YWNrIHRyYWNlIGluIHRlc3QgcmVzdWx0cyBvdXRwdXQuJylcbiAgLm9wdGlvbignLS1ub3RpZnknLCAnQWN0aXZhdGVzIG5vdGlmaWNhdGlvbnMgZm9yIHRlc3QgcmVzdWx0cy4nKVxuICAub3B0aW9uKCctLW9ubHlDaGFuZ2VkJywgJ3VuIGJhc2VkIG9uIHdoaWNoIGZpbGVzIGhhdmUgY2hhbmdlZCBpbiB0aGUgY3VycmVudCByZXBvc2l0b3J5LiAnKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGUgPGZpbGVuYW1lPicsICdXcml0ZSB0ZXN0IHJlc3VsdHMgdG8gYSBmaWxlIHdoZW4gdGhlIC0tanNvbiBvcHRpb24gaXMgYWxzbyBzcGVjaWZpZWQuJylcbiAgLm9wdGlvbignLS1wYXNzV2l0aE5vVGVzdHMnLCAnQWxsb3dzIHRoZSB0ZXN0IHN1aXRlIHRvIHBhc3Mgd2hlbiBubyBmaWxlcyBhcmUgZm91bmQuJylcbiAgLm9wdGlvbignLS1ydW5JbkJhbmQnLCAnUnVuIGFsbCB0ZXN0cyBzZXJpYWxseSBpbiB0aGUgY3VycmVudCBwcm9jZXNzLCByYXRoZXIgdGhhbiBjcmVhdGluZyBhIHdvcmtlciBwb29sIG9mIGNoaWxkIHByb2Nlc3NlcyB0aGF0IHJ1biB0ZXN0cy4nKVxuICAub3B0aW9uKCctLXNob3dDb25maWcnLCAnUHJpbnQgeW91ciBKZXN0IGNvbmZpZyBhbmQgdGhlbiBleGl0cy4nKVxuICAub3B0aW9uKCctLXNpbGVudCcsICdQcmV2ZW50IHRlc3RzIGZyb20gcHJpbnRpbmcgbWVzc2FnZXMgdGhyb3VnaCB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXRlc3RMb2NhdGlvbkluUmVzdWx0cycsICdBZGRzIGEgbG9jYXRpb24gZmllbGQgdG8gdGVzdCByZXN1bHRzLicpXG4gIC5vcHRpb24oJy0tdGVzdE5hbWVQYXR0ZXJuIDxyZWdleD4nLCAnUnVuIG9ubHkgdGVzdHMgd2l0aCBhIG5hbWUgdGhhdCBtYXRjaGVzIHRoZSByZWdleC4gJylcbiAgLm9wdGlvbignLS10ZXN0UGF0aFBhdHRlcm4gPHJlZ2V4PicsICdBIHJlZ2V4cCBwYXR0ZXJuIHN0cmluZyB0aGF0IGlzIG1hdGNoZWQgYWdhaW5zdCBhbGwgdGVzdHMgcGF0aHMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgdGVzdC4nKVxuICAub3B0aW9uKCctLXVzZVN0ZGVycicsICdEaXZlcnQgYWxsIG91dHB1dCB0byBzdGRlcnIuJylcbiAgLm9wdGlvbignLS12ZXJib3NlJywgJ0Rpc3BsYXkgaW5kaXZpZHVhbCB0ZXN0IHJlc3VsdHMgd2l0aCB0aGUgdGVzdCBzdWl0ZSBoaWVyYXJjaHkuJylcbiAgLm9wdGlvbignLS13YXRjaEFsbCcsICdXYXRjaCBmaWxlcyBmb3IgY2hhbmdlcyBhbmQgcmVydW4gYWxsIHRlc3RzIHdoZW4gc29tZXRoaW5nIGNoYW5nZXMuJylcbiAgLmFjdGlvbigoY21kKSA9PiB0ZXN0KGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHsgfSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3VwZGF0ZScpXG4gIC5vcHRpb24oJy1pLCAtLWludGVyYWN0aXZlJywgJ0Nob29zZSB3aGljaCBwYWNrYWdlcyB0byB1cGRhdGUuJylcbiAgLm9wdGlvbignLW0sIC0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nLCAvXihucG18eWFybikkL2ksICducG0nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy0tcmVnaXN0cnknLCAnQWRkIGEgY3VzdG9tIHJlZ2lzdHJ5IHVybC4nKVxuICAuYWN0aW9uKChjbWQpID0+IHVwZGF0ZShjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7IH0pKTtcblxucHJvZ3JhbS5jb21tYW5kKCd1cGdyYWRlJylcbiAgLm9wdGlvbignLW0sIC0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nLCAvXihucG18eWFybikkL2ksICducG0nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gdXBncmFkZShjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7IH0pKTtcblxucHJvZ3JhbS5jb21tYW5kKCd2ZXJzaW9ucycpXG4gIC5vcHRpb24oJy1qLCAtLWpzb24nLCAnUHJpbnQgdGhlIHZlcnNpb24gYXMgYSBKU09OIG9iamVjdC4nKVxuICAuYWN0aW9uKChjbWQpID0+IHZlcnNpb25zKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHsgfSkpO1xuXG4vLyBJbml0aWFsaXplXG5wcm9ncmFtXG4gIC52ZXJzaW9uKHBhY2thZ2VDb25maWcudmVyc2lvbilcbiAgLnBhcnNlKHByb2Nlc3MuYXJndik7XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBS0EsdUJBQXNCO0FBRXRCLHNCQWdCTztBQUVQLE1BQU0sZ0JBQWdCLFFBQVEsaUJBQWlCO0FBRy9DLHlCQUFRLFFBQVEsT0FBTyxFQUNwQixPQUFPLHVCQUF1QixpRUFBaUUsRUFDL0YsT0FBTywwQkFBMEIsOENBQThDLEVBQy9F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
package/dist/resolver.js CHANGED
@@ -38,3 +38,4 @@ module.exports = (value, options) => {
38
38
  }
39
39
  }
40
40
  };
41
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3Jlc29sdmVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmNvbnN0IHJlc29sdmUgPSByZXF1aXJlKCdyZXNvbHZlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gIGlmKHZhbHVlID09PSAnJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3Qge2Jhc2VkaXIsIGV4dGVuc2lvbnN9ID0gb3B0aW9ucztcbiAgY29uc3QgaGFzQmFzZSA9IHZhbHVlLmluZGV4T2YoJy4vJykgPj0gMCB8fCB2YWx1ZS5pbmRleE9mKCcuLi8nKSA+PSAwO1xuXG4gIGlmKGhhc0Jhc2UpIHtcbiAgICBjb25zdCBleGlzdGluZ0V4dDogc3RyaW5nID0gcGF0aC5leHRuYW1lKHZhbHVlKSB8fCAnJztcblxuICAgIGlmKGV4aXN0aW5nRXh0ICE9PSAnJyAmJiBleHRlbnNpb25zLmluY2x1ZGVzKGV4aXN0aW5nRXh0KSkge1xuICAgICAgcmV0dXJuIHBhdGgucmVzb2x2ZShgJHtiYXNlZGlyfS8ke3ZhbHVlfWApO1xuICAgIH1cblxuICAgIGxldCBmdWxsUGF0aCA9IHZhbHVlO1xuXG4gICAgZXh0ZW5zaW9ucy5zb21lKChleHQpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVuYW1lID0gcGF0aC5yZXNvbHZlKGAke2Jhc2VkaXJ9LyR7dmFsdWV9JHtleHR9YCk7XG5cbiAgICAgIGlmKGZzLmV4aXN0c1N5bmMoZmlsZW5hbWUpKSB7XG4gICAgICAgIGZ1bGxQYXRoID0gZmlsZW5hbWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbmRleEZpbGUgPSBwYXRoLnJlc29sdmUoYCR7YmFzZWRpcn0vJHt2YWx1ZX0vaW5kZXgke2V4dH1gKTtcblxuICAgICAgaWYoZnMuZXhpc3RzU3luYyhpbmRleEZpbGUpKSB7XG4gICAgICAgIGZ1bGxQYXRoID0gaW5kZXhGaWxlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZ1bGxQYXRoO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVzb2x2ZS5zeW5jKHZhbHVlLCB7YmFzZWRpcjogYCR7X19kaXJuYW1lfS8uLi9gLCBleHRlbnNpb25zfSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJlc29sdmUuc3luYyh2YWx1ZSwge2Jhc2VkaXI6IHByb2Nlc3MuY3dkKCksIGV4dGVuc2lvbnN9KTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxNQUFNLEtBQUssUUFBUSxJQUFJO0FBQ3ZCLE1BQU0sT0FBTyxRQUFRLE1BQU07QUFDM0IsTUFBTSxVQUFVLFFBQVEsU0FBUztBQUVqQyxPQUFPLFVBQVUsQ0FBQyxPQUFPLFlBQVk7QUFDbkMsTUFBRyxVQUFVLElBQUk7QUFDZixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sRUFBQyxTQUFTLGVBQWM7QUFDOUIsUUFBTSxVQUFVLE1BQU0sUUFBUSxJQUFJLEtBQUssS0FBSyxNQUFNLFFBQVEsS0FBSyxLQUFLO0FBRXBFLE1BQUcsU0FBUztBQUNWLFVBQU0sY0FBc0IsS0FBSyxRQUFRLEtBQUssS0FBSztBQUVuRCxRQUFHLGdCQUFnQixNQUFNLFdBQVcsU0FBUyxXQUFXLEdBQUc7QUFDekQsYUFBTyxLQUFLLFFBQVEsR0FBRyxXQUFXLE9BQU87QUFBQSxJQUMzQztBQUVBLFFBQUksV0FBVztBQUVmLGVBQVcsS0FBSyxDQUFDLFFBQVE7QUFDdkIsWUFBTSxXQUFXLEtBQUssUUFBUSxHQUFHLFdBQVcsUUFBUSxLQUFLO0FBRXpELFVBQUcsR0FBRyxXQUFXLFFBQVEsR0FBRztBQUMxQixtQkFBVztBQUNYLGVBQU87QUFBQSxNQUNUO0FBRUEsWUFBTSxZQUFZLEtBQUssUUFBUSxHQUFHLFdBQVcsY0FBYyxLQUFLO0FBRWhFLFVBQUcsR0FBRyxXQUFXLFNBQVMsR0FBRztBQUMzQixtQkFBVztBQUNYLGVBQU87QUFBQSxNQUNUO0FBRUEsYUFBTztBQUFBLElBQ1QsQ0FBQztBQUVELFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSTtBQUNGLFdBQU8sUUFBUSxLQUFLLE9BQU8sRUFBQyxTQUFTLEdBQUcsaUJBQWlCLFdBQVUsQ0FBQztBQUFBLEVBQ3RFLFNBQVEsT0FBTjtBQUNBLFFBQUk7QUFDRixhQUFPLFFBQVEsS0FBSyxPQUFPLEVBQUMsU0FBUyxRQUFRLElBQUksR0FBRyxXQUFVLENBQUM7QUFBQSxJQUNqRSxTQUFRLFFBQU47QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,243 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var app_exports = {};
22
+ __export(app_exports, {
23
+ checkLinkedModules: () => checkLinkedModules,
24
+ copyFileSync: () => copyFileSync,
25
+ copyFiles: () => copyFiles,
26
+ copyFolderRecursiveSync: () => copyFolderRecursiveSync,
27
+ createSpinner: () => createSpinner,
28
+ cwd: () => cwd,
29
+ getFilenames: () => getFilenames,
30
+ getFilesByExt: () => getFilesByExt,
31
+ getPackageJson: () => getPackageJson,
32
+ linkedModules: () => linkedModules,
33
+ removeConflictModules: () => removeConflictModules,
34
+ removeFiles: () => removeFiles,
35
+ removeModules: () => removeModules,
36
+ setPackageJson: () => setPackageJson,
37
+ updateTemplateName: () => updateTemplateName
38
+ });
39
+ module.exports = __toCommonJS(app_exports);
40
+ var import_boxen = __toESM(require("boxen"));
41
+ var import_fs_extra = __toESM(require("fs-extra"));
42
+ var import_glob = __toESM(require("glob"));
43
+ var import_isEmpty = __toESM(require("lodash/isEmpty"));
44
+ var import_ora = __toESM(require("ora"));
45
+ var import_path = __toESM(require("path"));
46
+ var import_rimraf = __toESM(require("rimraf"));
47
+ var import_log = require("./log");
48
+ const cwd = process.cwd();
49
+ const getFilenames = (props) => {
50
+ const { callback, cliName, name, quiet, type, useTypescript } = props;
51
+ let nameCaps;
52
+ const itemTypes = ["stores", "views"];
53
+ if (!name) {
54
+ if (itemTypes.includes(type)) {
55
+ (0, import_log.log)(`
56
+ ${cliName} Error: ${type} name is required. Please use 'lex -h' for options.`, "error", quiet);
57
+ return callback(1);
58
+ }
59
+ } else {
60
+ nameCaps = `${name.charAt(0).toUpperCase()}${name.substr(1)}`;
61
+ }
62
+ (0, import_log.log)(`${cliName} adding ${name} ${type}...`, "info", quiet);
63
+ let templatePath;
64
+ let templateExt;
65
+ let templateReact;
66
+ if (useTypescript) {
67
+ templatePath = "../../templates/typescript";
68
+ templateExt = ".ts";
69
+ templateReact = ".tsx";
70
+ } else {
71
+ templatePath = "../../templates/flow";
72
+ templateExt = ".js";
73
+ templateReact = ".js";
74
+ }
75
+ return {
76
+ nameCaps,
77
+ templateExt,
78
+ templatePath,
79
+ templateReact
80
+ };
81
+ };
82
+ const createSpinner = (quiet = false) => {
83
+ if (quiet) {
84
+ return {
85
+ fail: () => {
86
+ },
87
+ start: () => {
88
+ },
89
+ succeed: () => {
90
+ }
91
+ };
92
+ }
93
+ return (0, import_ora.default)({ color: "yellow" });
94
+ };
95
+ const copyFiles = async (files, typeName, spinner, config) => {
96
+ const { outputFullPath, sourceFullPath } = config;
97
+ const items = files.map((fileName) => ({
98
+ from: fileName,
99
+ to: import_path.default.resolve(outputFullPath, import_path.default.relative(sourceFullPath, fileName))
100
+ }));
101
+ try {
102
+ spinner.start(`Copying ${typeName} files...`);
103
+ await Promise.all(items.map(({ from, to }) => import_fs_extra.default.copy(from, to)));
104
+ spinner.succeed(`Successfully copied ${files.length} ${typeName} files!`);
105
+ } catch (error) {
106
+ spinner.fail(`Copying of ${typeName} files failed.`);
107
+ (0, import_log.log)(`Error: ${error.message}`, "error");
108
+ console.log(error);
109
+ }
110
+ };
111
+ const copyFileSync = (source, target) => {
112
+ let targetFile = target;
113
+ if (import_fs_extra.default.existsSync(target)) {
114
+ if (import_fs_extra.default.lstatSync(target).isDirectory()) {
115
+ targetFile = import_path.default.join(target, import_path.default.basename(source));
116
+ }
117
+ }
118
+ import_fs_extra.default.writeFileSync(targetFile, import_fs_extra.default.readFileSync(source));
119
+ };
120
+ const copyFolderRecursiveSync = (source, target) => {
121
+ let files = [];
122
+ const targetFolder = import_path.default.join(target, import_path.default.basename(source));
123
+ if (!import_fs_extra.default.existsSync(targetFolder)) {
124
+ import_fs_extra.default.mkdirSync(targetFolder);
125
+ }
126
+ if (import_fs_extra.default.lstatSync(source).isDirectory()) {
127
+ files = import_fs_extra.default.readdirSync(source);
128
+ files.forEach((file) => {
129
+ const curSource = import_path.default.join(source, file);
130
+ if (import_fs_extra.default.lstatSync(curSource).isDirectory()) {
131
+ copyFolderRecursiveSync(curSource, targetFolder);
132
+ } else {
133
+ copyFileSync(curSource, targetFolder);
134
+ }
135
+ });
136
+ }
137
+ };
138
+ const getPackageJson = (packagePath) => {
139
+ const formatPath = packagePath || `${process.cwd()}/package.json`;
140
+ const packageData = import_fs_extra.default.readFileSync(formatPath).toString();
141
+ return JSON.parse(packageData);
142
+ };
143
+ const getFilesByExt = (ext, config) => {
144
+ const { sourceFullPath } = config;
145
+ return import_glob.default.sync(`${sourceFullPath}/**/**${ext}`);
146
+ };
147
+ const removeConflictModules = (moduleList) => {
148
+ const updatedList = { ...moduleList };
149
+ Object.keys(updatedList).forEach((moduleName) => {
150
+ const regex = new RegExp("^(?!@types/).*(jest|webpack).*$", "gi");
151
+ if (regex.test(moduleName)) {
152
+ delete updatedList[moduleName];
153
+ }
154
+ });
155
+ return updatedList;
156
+ };
157
+ const removeFiles = (fileName, isRelative = false) => new Promise((resolve, reject) => {
158
+ const filePath = isRelative ? import_path.default.resolve(cwd, fileName) : fileName;
159
+ (0, import_rimraf.default)(filePath, (error) => {
160
+ if (error) {
161
+ return reject(error);
162
+ }
163
+ return resolve(null);
164
+ });
165
+ });
166
+ const removeModules = () => new Promise(async (resolve, reject) => {
167
+ try {
168
+ await removeFiles("./node_modules", true);
169
+ await removeFiles("./yarn.lock", true);
170
+ await removeFiles("./package-lock.json", true);
171
+ resolve(null);
172
+ } catch (error) {
173
+ reject(error);
174
+ }
175
+ });
176
+ const setPackageJson = (json, packagePath) => {
177
+ if (!json) {
178
+ return;
179
+ }
180
+ const formatPath = packagePath || `${process.cwd()}/package.json`;
181
+ import_fs_extra.default.writeFileSync(formatPath, JSON.stringify(json, null, 2));
182
+ };
183
+ const linkedModules = (startPath) => {
184
+ const workingPath = startPath || process.cwd();
185
+ let modulePath;
186
+ let prefix;
187
+ if (workingPath.includes("@")) {
188
+ prefix = `@${workingPath.split("@").pop()}`;
189
+ modulePath = workingPath;
190
+ } else {
191
+ modulePath = import_path.default.join(workingPath, "node_modules");
192
+ }
193
+ const foundPaths = import_glob.default.sync(`${modulePath}/*`);
194
+ return foundPaths.reduce((list, foundPath) => {
195
+ try {
196
+ const stats = import_fs_extra.default.lstatSync(foundPath);
197
+ if (stats.isDirectory()) {
198
+ const deepList = linkedModules(foundPath);
199
+ list.push(...deepList);
200
+ } else if (stats.isSymbolicLink()) {
201
+ const moduleNames = [prefix, import_path.default.basename(foundPath)].filter((item) => !(0, import_isEmpty.default)(item));
202
+ list.push({ name: `${moduleNames.join("/")}`, path: foundPath });
203
+ }
204
+ return list;
205
+ } catch (fsError) {
206
+ throw fsError;
207
+ }
208
+ }, []);
209
+ };
210
+ const checkLinkedModules = () => {
211
+ const linked = linkedModules();
212
+ if (linked.length) {
213
+ const msgModule = linked.length > 1 ? "Modules" : "Module";
214
+ const linkedMsg = linked.reduce((msg, linkedModule) => `${msg}
215
+ * ${linkedModule.name}`, `Linked ${msgModule}:`);
216
+ (0, import_log.log)((0, import_boxen.default)(linkedMsg, { dimBorder: true, padding: 1 }), "warn");
217
+ }
218
+ };
219
+ const updateTemplateName = (filePath, replace, replaceCaps) => {
220
+ let data = import_fs_extra.default.readFileSync(filePath, "utf8");
221
+ data = data.replace(/sample/g, replace);
222
+ data = data.replace(/Sample/g, replaceCaps);
223
+ import_fs_extra.default.writeFileSync(filePath, data, "utf8");
224
+ };
225
+ // Annotate the CommonJS export names for ESM import in node:
226
+ 0 && (module.exports = {
227
+ checkLinkedModules,
228
+ copyFileSync,
229
+ copyFiles,
230
+ copyFolderRecursiveSync,
231
+ createSpinner,
232
+ cwd,
233
+ getFilenames,
234
+ getFilesByExt,
235
+ getPackageJson,
236
+ linkedModules,
237
+ removeConflictModules,
238
+ removeFiles,
239
+ removeModules,
240
+ setPackageJson,
241
+ updateTemplateName
242
+ });
243
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBib3hlbiBmcm9tICdib3hlbic7XG5pbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IGdsb2IgZnJvbSAnZ2xvYic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5pbXBvcnQgb3JhIGZyb20gJ29yYSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCByaW1yYWYgZnJvbSAncmltcmFmJztcblxuaW1wb3J0IHR5cGUge0xleENvbmZpZ1R5cGV9IGZyb20gJy4uL0xleENvbmZpZyc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi9sb2cnO1xuXG5leHBvcnQgY29uc3QgY3dkOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsZW5hbWVzID0gKHByb3BzOiBhbnkpID0+IHtcbiAgY29uc3Qge2NhbGxiYWNrLCBjbGlOYW1lLCBuYW1lLCBxdWlldCwgdHlwZSwgdXNlVHlwZXNjcmlwdH0gPSBwcm9wcztcblxuICAvLyBTZXQgZmlsZW5hbWVcbiAgbGV0IG5hbWVDYXBzOiBzdHJpbmc7XG4gIGNvbnN0IGl0ZW1UeXBlczogc3RyaW5nW10gPSBbJ3N0b3JlcycsICd2aWV3cyddO1xuXG4gIGlmKCFuYW1lKSB7XG4gICAgaWYoaXRlbVR5cGVzLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7dHlwZX0gbmFtZSBpcyByZXF1aXJlZC4gUGxlYXNlIHVzZSAnbGV4IC1oJyBmb3Igb3B0aW9ucy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2soMSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG5hbWVDYXBzID0gYCR7bmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke25hbWUuc3Vic3RyKDEpfWA7XG4gIH1cblxuICAvLyBEaXNwbGF5IG1lc3NhZ2VcbiAgbG9nKGAke2NsaU5hbWV9IGFkZGluZyAke25hbWV9ICR7dHlwZX0uLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBUZW1wbGF0ZSBkaXJlY3RvcnlcbiAgbGV0IHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICBsZXQgdGVtcGxhdGVFeHQ6IHN0cmluZztcbiAgbGV0IHRlbXBsYXRlUmVhY3Q6IHN0cmluZztcblxuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy90eXBlc2NyaXB0JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcudHMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLnRzeCc7XG4gIH0gZWxzZSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy9mbG93JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcuanMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLmpzJztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZUNhcHMsXG4gICAgdGVtcGxhdGVFeHQsXG4gICAgdGVtcGxhdGVQYXRoLFxuICAgIHRlbXBsYXRlUmVhY3RcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTcGlubmVyID0gKHF1aWV0ID0gZmFsc2UpOiBhbnkgPT4ge1xuICBpZihxdWlldCkge1xuICAgIHJldHVybiB7XG4gICAgICBmYWlsOiAoKSA9PiB7fSxcbiAgICAgIHN0YXJ0OiAoKSA9PiB7fSxcbiAgICAgIHN1Y2NlZWQ6ICgpID0+IHt9XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBvcmEoe2NvbG9yOiAneWVsbG93J30pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGaWxlcyA9IGFzeW5jIChmaWxlczogc3RyaW5nW10sIHR5cGVOYW1lOiBzdHJpbmcsIHNwaW5uZXIsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSkgPT4ge1xuICBjb25zdCB7b3V0cHV0RnVsbFBhdGgsIHNvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgY29uc3QgaXRlbXMgPSBmaWxlcy5tYXAoKGZpbGVOYW1lOiBzdHJpbmcpID0+ICh7XG4gICAgZnJvbTogZmlsZU5hbWUsXG4gICAgdG86IHBhdGgucmVzb2x2ZShvdXRwdXRGdWxsUGF0aCwgcGF0aC5yZWxhdGl2ZShzb3VyY2VGdWxsUGF0aCwgZmlsZU5hbWUpKVxuICB9KSk7XG5cbiAgdHJ5IHtcbiAgICBzcGlubmVyLnN0YXJ0KGBDb3B5aW5nICR7dHlwZU5hbWV9IGZpbGVzLi4uYCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoaXRlbXMubWFwKCh7ZnJvbSwgdG99KSA9PiBmcy5jb3B5KGZyb20sIHRvKSkpO1xuICAgIHNwaW5uZXIuc3VjY2VlZChgU3VjY2Vzc2Z1bGx5IGNvcGllZCAke2ZpbGVzLmxlbmd0aH0gJHt0eXBlTmFtZX0gZmlsZXMhYCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAvLyBTdG9wIHNwaW5uZXJcbiAgICBzcGlubmVyLmZhaWwoYENvcHlpbmcgb2YgJHt0eXBlTmFtZX0gZmlsZXMgZmFpbGVkLmApO1xuICAgIGxvZyhgRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InKTtcbiAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5RmlsZVN5bmMgPSAoc291cmNlOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKSA9PiB7XG4gIGxldCB0YXJnZXRGaWxlOiBzdHJpbmcgPSB0YXJnZXQ7XG5cbiAgLy8gSWYgdGFyZ2V0IGlzIGEgZGlyZWN0b3J5IGEgbmV3IGZpbGUgd2l0aCB0aGUgc2FtZSBuYW1lIHdpbGwgYmUgY3JlYXRlZFxuICBpZihmcy5leGlzdHNTeW5jKHRhcmdldCkpIHtcbiAgICBpZihmcy5sc3RhdFN5bmModGFyZ2V0KS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICB0YXJnZXRGaWxlID0gcGF0aC5qb2luKHRhcmdldCwgcGF0aC5iYXNlbmFtZShzb3VyY2UpKTtcbiAgICB9XG4gIH1cblxuICBmcy53cml0ZUZpbGVTeW5jKHRhcmdldEZpbGUsIGZzLnJlYWRGaWxlU3luYyhzb3VyY2UpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyA9IChzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgbGV0IGZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIENoZWNrIGlmIGZvbGRlciBuZWVkcyB0byBiZSBjcmVhdGVkIG9yIGludGVncmF0ZWRcbiAgY29uc3QgdGFyZ2V0Rm9sZGVyOiBzdHJpbmcgPSBwYXRoLmpvaW4odGFyZ2V0LCBwYXRoLmJhc2VuYW1lKHNvdXJjZSkpO1xuXG4gIGlmKCFmcy5leGlzdHNTeW5jKHRhcmdldEZvbGRlcikpIHtcbiAgICBmcy5ta2RpclN5bmModGFyZ2V0Rm9sZGVyKTtcbiAgfVxuXG4gIC8vIENvcHlcbiAgaWYoZnMubHN0YXRTeW5jKHNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgIGZpbGVzID0gZnMucmVhZGRpclN5bmMoc291cmNlKTtcbiAgICBmaWxlcy5mb3JFYWNoKChmaWxlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGN1clNvdXJjZTogc3RyaW5nID0gcGF0aC5qb2luKHNvdXJjZSwgZmlsZSk7XG5cbiAgICAgIGlmKGZzLmxzdGF0U3luYyhjdXJTb3VyY2UpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgY29weUZvbGRlclJlY3Vyc2l2ZVN5bmMoY3VyU291cmNlLCB0YXJnZXRGb2xkZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29weUZpbGVTeW5jKGN1clNvdXJjZSwgdGFyZ2V0Rm9sZGVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFBhY2thZ2VKc29uID0gKHBhY2thZ2VQYXRoPzogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGZvcm1hdFBhdGg6IHN0cmluZyA9IHBhY2thZ2VQYXRoIHx8IGAke3Byb2Nlc3MuY3dkKCl9L3BhY2thZ2UuanNvbmA7XG5cbiAgLy8gQ29uZmlndXJlIHBhY2thZ2UuanNvblxuICBjb25zdCBwYWNrYWdlRGF0YTogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGZvcm1hdFBhdGgpLnRvU3RyaW5nKCk7XG4gIHJldHVybiBKU09OLnBhcnNlKHBhY2thZ2VEYXRhKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaWxlc0J5RXh0ID0gKGV4dDogc3RyaW5nLCBjb25maWc6IExleENvbmZpZ1R5cGUpOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IHtzb3VyY2VGdWxsUGF0aH0gPSBjb25maWc7XG4gIHJldHVybiBnbG9iLnN5bmMoYCR7c291cmNlRnVsbFBhdGh9LyoqLyoqJHtleHR9YCk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlQ29uZmxpY3RNb2R1bGVzID0gKG1vZHVsZUxpc3Q6IG9iamVjdCkgPT4ge1xuICBjb25zdCB1cGRhdGVkTGlzdDogb2JqZWN0ID0gey4uLm1vZHVsZUxpc3R9O1xuXG4gIE9iamVjdC5rZXlzKHVwZGF0ZWRMaXN0KS5mb3JFYWNoKChtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCByZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cCgnXig/IUB0eXBlc1xcLykuKihqZXN0fHdlYnBhY2spLiokJywgJ2dpJyk7XG4gICAgaWYocmVnZXgudGVzdChtb2R1bGVOYW1lKSkge1xuICAgICAgZGVsZXRlIHVwZGF0ZWRMaXN0W21vZHVsZU5hbWVdO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHVwZGF0ZWRMaXN0O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUZpbGVzID0gKGZpbGVOYW1lOiBzdHJpbmcsIGlzUmVsYXRpdmU6IGJvb2xlYW4gPSBmYWxzZSkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICBjb25zdCBmaWxlUGF0aDogc3RyaW5nID0gaXNSZWxhdGl2ZSA/IHBhdGgucmVzb2x2ZShjd2QsIGZpbGVOYW1lKSA6IGZpbGVOYW1lO1xuXG4gIHJpbXJhZihmaWxlUGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYoZXJyb3IpIHtcbiAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICB9KTtcbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTW9kdWxlcyA9ICgpID0+IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgdHJ5IHtcbiAgICAvLyBSZW1vdmUgbm9kZV9tb2R1bGVzXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4vbm9kZV9tb2R1bGVzJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgeWFybiBsb2NrXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4veWFybi5sb2NrJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgbnBtIGxvY2tcbiAgICBhd2FpdCByZW1vdmVGaWxlcygnLi9wYWNrYWdlLWxvY2suanNvbicsIHRydWUpO1xuXG4gICAgcmVzb2x2ZShudWxsKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHJlamVjdChlcnJvcik7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3Qgc2V0UGFja2FnZUpzb24gPSAoanNvbiwgcGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgaWYoIWpzb24pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmb3JtYXRQYXRoOiBzdHJpbmcgPSBwYWNrYWdlUGF0aCB8fCBgJHtwcm9jZXNzLmN3ZCgpfS9wYWNrYWdlLmpzb25gO1xuXG4gIC8vIFVwZGF0ZSBwYWNrYWdlLmpzb25cbiAgZnMud3JpdGVGaWxlU3luYyhmb3JtYXRQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbmtlZE1vZHVsZVR5cGUge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGxpbmtlZE1vZHVsZXMgPSAoc3RhcnRQYXRoPzogc3RyaW5nKTogTGlua2VkTW9kdWxlVHlwZVtdID0+IHtcbiAgY29uc3Qgd29ya2luZ1BhdGg6IHN0cmluZyA9IHN0YXJ0UGF0aCB8fCBwcm9jZXNzLmN3ZCgpO1xuICBsZXQgbW9kdWxlUGF0aDogc3RyaW5nO1xuICBsZXQgcHJlZml4OiBzdHJpbmc7XG5cbiAgLy8gaWYgd2UgaGF2ZSBhIHNjb3BlIHdlIHNob3VsZCBjaGVjayBpZiB0aGUgbW9kdWxlcyBpbnNpZGUgdGhlIGZvbGRlciBpcyBsaW5rZWRcbiAgaWYod29ya2luZ1BhdGguaW5jbHVkZXMoJ0AnKSkge1xuICAgIHByZWZpeCA9IGBAJHt3b3JraW5nUGF0aC5zcGxpdCgnQCcpLnBvcCgpfWA7XG4gICAgbW9kdWxlUGF0aCA9IHdvcmtpbmdQYXRoO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZVBhdGggPSBwYXRoLmpvaW4od29ya2luZ1BhdGgsICdub2RlX21vZHVsZXMnKTtcbiAgfVxuXG4gIGNvbnN0IGZvdW5kUGF0aHM6IHN0cmluZ1tdID0gZ2xvYi5zeW5jKGAke21vZHVsZVBhdGh9LypgKTtcbiAgcmV0dXJuIGZvdW5kUGF0aHMucmVkdWNlKChsaXN0OiBMaW5rZWRNb2R1bGVUeXBlW10sIGZvdW5kUGF0aDogc3RyaW5nKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YXRzID0gZnMubHN0YXRTeW5jKGZvdW5kUGF0aCk7XG5cbiAgICAgIGlmKHN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgY29uc3QgZGVlcExpc3Q6IExpbmtlZE1vZHVsZVR5cGVbXSA9IGxpbmtlZE1vZHVsZXMoZm91bmRQYXRoKTtcbiAgICAgICAgbGlzdC5wdXNoKC4uLmRlZXBMaXN0KTtcbiAgICAgIH0gZWxzZSBpZihzdGF0cy5pc1N5bWJvbGljTGluaygpKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWVzOiBzdHJpbmdbXSA9IChbcHJlZml4LCBwYXRoLmJhc2VuYW1lKGZvdW5kUGF0aCldKS5maWx0ZXIoKGl0ZW06IHN0cmluZykgPT4gIWlzRW1wdHkoaXRlbSkpO1xuICAgICAgICBsaXN0LnB1c2goe25hbWU6IGAke21vZHVsZU5hbWVzLmpvaW4oJy8nKX1gLCBwYXRoOiBmb3VuZFBhdGh9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSBjYXRjaChmc0Vycm9yKSB7XG4gICAgICB0aHJvdyBmc0Vycm9yO1xuICAgIH1cbiAgfSwgW10pO1xufTtcblxuLy8gQ2hlY2sgZm9yIGxpbmtlZCBtb2R1bGVzXG5leHBvcnQgY29uc3QgY2hlY2tMaW5rZWRNb2R1bGVzID0gKCkgPT4ge1xuICBjb25zdCBsaW5rZWQgPSBsaW5rZWRNb2R1bGVzKCk7XG5cbiAgaWYobGlua2VkLmxlbmd0aCkge1xuICAgIGNvbnN0IG1zZ01vZHVsZTogc3RyaW5nID0gbGlua2VkLmxlbmd0aCA+IDEgPyAnTW9kdWxlcycgOiAnTW9kdWxlJztcbiAgICBjb25zdCBsaW5rZWRNc2c6IHN0cmluZyA9IGxpbmtlZC5yZWR1Y2UoXG4gICAgICAobXNnOiBzdHJpbmcsIGxpbmtlZE1vZHVsZTogTGlua2VkTW9kdWxlVHlwZSkgPT5cbiAgICAgICAgYCR7bXNnfVxcbiAqICR7bGlua2VkTW9kdWxlLm5hbWV9YCxcbiAgICAgIGBMaW5rZWQgJHttc2dNb2R1bGV9OmBcbiAgICApO1xuICAgIGxvZyhib3hlbihsaW5rZWRNc2csIHtkaW1Cb3JkZXI6IHRydWUsIHBhZGRpbmc6IDF9KSwgJ3dhcm4nKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVRlbXBsYXRlTmFtZSA9IChmaWxlUGF0aDogc3RyaW5nLCByZXBsYWNlOiBzdHJpbmcsIHJlcGxhY2VDYXBzOiBzdHJpbmcpID0+IHtcbiAgbGV0IGRhdGE6IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgZGF0YSA9IGRhdGEucmVwbGFjZSgvc2FtcGxlL2csIHJlcGxhY2UpO1xuICBkYXRhID0gZGF0YS5yZXBsYWNlKC9TYW1wbGUvZywgcmVwbGFjZUNhcHMpO1xuICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBkYXRhLCAndXRmOCcpO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSxtQkFBa0I7QUFDbEIsc0JBQWU7QUFDZixrQkFBaUI7QUFDakIscUJBQW9CO0FBQ3BCLGlCQUFnQjtBQUNoQixrQkFBaUI7QUFDakIsb0JBQW1CO0FBR25CLGlCQUFrQjtBQUVYLE1BQU0sTUFBYyxRQUFRLElBQUk7QUFFaEMsTUFBTSxlQUFlLENBQUMsVUFBZTtBQUMxQyxRQUFNLEVBQUMsVUFBVSxTQUFTLE1BQU0sT0FBTyxNQUFNLGtCQUFpQjtBQUc5RCxNQUFJO0FBQ0osUUFBTSxZQUFzQixDQUFDLFVBQVUsT0FBTztBQUU5QyxNQUFHLENBQUMsTUFBTTtBQUNSLFFBQUcsVUFBVSxTQUFTLElBQUksR0FBRztBQUMzQiwwQkFBSTtBQUFBLEVBQUssa0JBQWtCLDJEQUEyRCxTQUFTLEtBQUs7QUFDcEcsYUFBTyxTQUFTLENBQUM7QUFBQSxJQUNuQjtBQUFBLEVBQ0YsT0FBTztBQUNMLGVBQVcsR0FBRyxLQUFLLE9BQU8sQ0FBQyxFQUFFLFlBQVksSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUFBLEVBQzVEO0FBR0Esc0JBQUksR0FBRyxrQkFBa0IsUUFBUSxXQUFXLFFBQVEsS0FBSztB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