@nlabs/lex 1.32.0 → 1.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,38 +4,34 @@ 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 compile_exports = {};
29
22
  __export(compile_exports, {
30
23
  compile: () => compile,
31
24
  hasFileType: () => hasFileType
32
25
  });
26
+ module.exports = __toCommonJS(compile_exports);
33
27
  var import_execa = __toESM(require("execa"));
34
28
  var import_fs = __toESM(require("fs"));
35
29
  var import_glob = __toESM(require("glob"));
36
30
  var import_path = __toESM(require("path"));
37
31
  var import_LexConfig = require("../LexConfig");
38
- var import_utils = require("../utils");
32
+ var import_app = require("../utils/app");
33
+ var import_file = require("../utils/file");
34
+ var import_log = require("../utils/log");
39
35
  const hasFileType = (startPath, ext) => {
40
36
  if (!import_fs.default.existsSync(startPath)) {
41
37
  return false;
@@ -53,18 +49,18 @@ const hasFileType = (startPath, ext) => {
53
49
  };
54
50
  const compile = async (cmd, callback = () => ({})) => {
55
51
  const { cliName = "Lex", config, quiet, remove, watch } = cmd;
56
- const spinner = (0, import_utils.createSpinner)(quiet);
57
- (0, import_utils.log)(`${cliName} compiling...`, "info", quiet);
52
+ const spinner = (0, import_app.createSpinner)(quiet);
53
+ (0, import_log.log)(`${cliName} compiling...`, "info", quiet);
58
54
  import_LexConfig.LexConfig.parseConfig(cmd);
59
55
  const { outputFullPath, sourceFullPath, useTypescript } = import_LexConfig.LexConfig.config;
60
56
  const nodePath = import_path.default.resolve(__dirname, "../../node_modules");
61
- (0, import_utils.checkLinkedModules)();
57
+ (0, import_app.checkLinkedModules)();
62
58
  if (remove) {
63
- await (0, import_utils.removeFiles)(outputFullPath);
59
+ await (0, import_app.removeFiles)(outputFullPath);
64
60
  }
65
61
  if (useTypescript) {
66
62
  import_LexConfig.LexConfig.checkTypescriptConfig();
67
- const typescriptPath = (0, import_utils.relativeFilePath)("typescript/bin/tsc", nodePath);
63
+ const typescriptPath = (0, import_file.relativeFilePath)("typescript/bin/tsc", nodePath);
68
64
  const typescriptOptions = config ? ["-p", config] : [
69
65
  "--allowSyntheticDefaultImports",
70
66
  "--baseUrl",
@@ -73,7 +69,7 @@ const compile = async (cmd, callback = () => ({})) => {
73
69
  "--emitDeclarationOnly",
74
70
  "--inlineSourceMap",
75
71
  "--jsx",
76
- "react",
72
+ "react-jsx",
77
73
  "--lib",
78
74
  ["ES5", "ES6", "ES2015", "ES7", "ES2016", "ES2017", "ES2018", "ESNext", "DOM"],
79
75
  "--module",
@@ -101,7 +97,7 @@ const compile = async (cmd, callback = () => ({})) => {
101
97
  await (0, import_execa.default)(typescriptPath, typescriptOptions, { encoding: "utf-8" });
102
98
  spinner.succeed("Successfully completed type checking!");
103
99
  } catch (error) {
104
- (0, import_utils.log)(`
100
+ (0, import_log.log)(`
105
101
  ${cliName} Error: ${error.message}`, "error", quiet);
106
102
  if (!quiet) {
107
103
  console.error(error);
@@ -120,7 +116,7 @@ ${cliName} Error: ${error.message}`, "error", quiet);
120
116
  const tsFiles = import_glob.default.sync(`${sourceFullPath}/**/**.ts*`, globOptions);
121
117
  const jsFiles = import_glob.default.sync(`${sourceFullPath}/**/**.js`, globOptions);
122
118
  const sourceFiles = [...tsFiles, ...jsFiles];
123
- const esbuildPath = (0, import_utils.relativeFilePath)("esbuild/bin/esbuild", nodePath);
119
+ const esbuildPath = (0, import_file.relativeFilePath)("esbuild/bin/esbuild", nodePath);
124
120
  const esbuildOptions = [
125
121
  ...sourceFiles,
126
122
  "--color=true",
@@ -137,9 +133,9 @@ ${cliName} Error: ${error.message}`, "error", quiet);
137
133
  if (watch) {
138
134
  esbuildOptions.push("--watch");
139
135
  }
140
- const cssFiles = (0, import_utils.getFilesByExt)(".css");
136
+ const cssFiles = (0, import_app.getFilesByExt)(".css", import_LexConfig.LexConfig.config);
141
137
  if (cssFiles.length) {
142
- const postcssPath = (0, import_utils.relativeFilePath)("postcss-cli/bin/postcss", nodePath);
138
+ const postcssPath = (0, import_file.relativeFilePath)("postcss-cli/index.js", nodePath);
143
139
  const postcssOptions = [
144
140
  `${sourceFullPath}/**/**.css`,
145
141
  "--base",
@@ -153,51 +149,51 @@ ${cliName} Error: ${error.message}`, "error", quiet);
153
149
  await (0, import_execa.default)(postcssPath, postcssOptions, { encoding: "utf-8" });
154
150
  spinner.succeed(`Successfully formatted ${cssFiles.length} css files!`);
155
151
  } catch (error) {
156
- (0, import_utils.log)(`
152
+ (0, import_log.log)(`
157
153
  ${cliName} Error: ${error.message}`, "error", quiet);
158
154
  spinner.fail("Failed formatting css.");
159
155
  callback(error.status);
160
156
  return error.status;
161
157
  }
162
158
  }
163
- const gifFiles = (0, import_utils.getFilesByExt)(".gif");
164
- const jpgFiles = (0, import_utils.getFilesByExt)(".jpg");
165
- const pngFiles = (0, import_utils.getFilesByExt)(".png");
166
- const svgFiles = (0, import_utils.getFilesByExt)(".svg");
159
+ const gifFiles = (0, import_app.getFilesByExt)(".gif", import_LexConfig.LexConfig.config);
160
+ const jpgFiles = (0, import_app.getFilesByExt)(".jpg", import_LexConfig.LexConfig.config);
161
+ const pngFiles = (0, import_app.getFilesByExt)(".png", import_LexConfig.LexConfig.config);
162
+ const svgFiles = (0, import_app.getFilesByExt)(".svg", import_LexConfig.LexConfig.config);
167
163
  const imageFiles = [...gifFiles, ...jpgFiles, ...pngFiles, ...svgFiles];
168
164
  if (imageFiles.length) {
169
165
  try {
170
- await (0, import_utils.copyFiles)(imageFiles, "image", spinner);
166
+ await (0, import_app.copyFiles)(imageFiles, "image", spinner, import_LexConfig.LexConfig.config);
171
167
  } catch (error) {
172
- (0, import_utils.log)(`
168
+ (0, import_log.log)(`
173
169
  ${cliName} Error: ${error.message}`, "error", quiet);
174
170
  spinner.fail("Failed to move images to output directory.");
175
171
  callback(error.status);
176
172
  return error.status;
177
173
  }
178
174
  }
179
- const ttfFiles = (0, import_utils.getFilesByExt)(".ttf");
180
- const otfFiles = (0, import_utils.getFilesByExt)(".otf");
181
- const woffFiles = (0, import_utils.getFilesByExt)(".woff");
182
- const woff2Files = (0, import_utils.getFilesByExt)(".woff2");
175
+ const ttfFiles = (0, import_app.getFilesByExt)(".ttf", import_LexConfig.LexConfig.config);
176
+ const otfFiles = (0, import_app.getFilesByExt)(".otf", import_LexConfig.LexConfig.config);
177
+ const woffFiles = (0, import_app.getFilesByExt)(".woff", import_LexConfig.LexConfig.config);
178
+ const woff2Files = (0, import_app.getFilesByExt)(".woff2", import_LexConfig.LexConfig.config);
183
179
  const fontFiles = [...ttfFiles, ...otfFiles, ...woffFiles, ...woff2Files];
184
180
  if (fontFiles.length) {
185
181
  try {
186
- await (0, import_utils.copyFiles)(fontFiles, "font", spinner);
182
+ await (0, import_app.copyFiles)(fontFiles, "font", spinner, import_LexConfig.LexConfig.config);
187
183
  } catch (error) {
188
- (0, import_utils.log)(`
184
+ (0, import_log.log)(`
189
185
  ${cliName} Error: ${error.message}`, "error", quiet);
190
186
  spinner.fail("Failed to move fonts to output directory.");
191
187
  callback(error.status);
192
188
  return error.status;
193
189
  }
194
190
  }
195
- const mdFiles = (0, import_utils.getFilesByExt)(".md");
191
+ const mdFiles = (0, import_app.getFilesByExt)(".md", import_LexConfig.LexConfig.config);
196
192
  if (mdFiles.length) {
197
193
  try {
198
- await (0, import_utils.copyFiles)(mdFiles, "documents", spinner);
194
+ await (0, import_app.copyFiles)(mdFiles, "documents", spinner, import_LexConfig.LexConfig.config);
199
195
  } catch (error) {
200
- (0, import_utils.log)(`
196
+ (0, import_log.log)(`
201
197
  ${cliName} Error: ${error.message}`, "error", quiet);
202
198
  spinner.fail("Failed to move docs to output directory.");
203
199
  callback(error.status);
@@ -209,7 +205,7 @@ ${cliName} Error: ${error.message}`, "error", quiet);
209
205
  await (0, import_execa.default)(esbuildPath, esbuildOptions, { encoding: "utf-8" });
210
206
  spinner.succeed("Compile completed successfully!");
211
207
  } catch (error) {
212
- (0, import_utils.log)(`
208
+ (0, import_log.log)(`
213
209
  ${cliName} Error: ${error.message}`, "error", quiet);
214
210
  if (!quiet) {
215
211
  console.error(error);
@@ -221,9 +217,9 @@ ${cliName} Error: ${error.message}`, "error", quiet);
221
217
  callback(0);
222
218
  return 0;
223
219
  };
224
- module.exports = __toCommonJS(compile_exports);
225
220
  // Annotate the CommonJS export names for ESM import in node:
226
221
  0 && (module.exports = {
227
222
  compile,
228
223
  hasFileType
229
224
  });
225
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbW1hbmRzL2NvbXBpbGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgZXhlY2EgZnJvbSAnZXhlY2EnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7TGV4Q29uZmlnfSBmcm9tICcuLi9MZXhDb25maWcnO1xuaW1wb3J0IHtcbiAgY2hlY2tMaW5rZWRNb2R1bGVzLFxuICBjb3B5RmlsZXMsXG4gIGNyZWF0ZVNwaW5uZXIsXG4gIGdldEZpbGVzQnlFeHQsXG4gIHJlbW92ZUZpbGVzXG59IGZyb20gJy4uL3V0aWxzL2FwcCc7XG5pbXBvcnQge3JlbGF0aXZlRmlsZVBhdGh9IGZyb20gJy4uL3V0aWxzL2ZpbGUnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uL3V0aWxzL2xvZyc7XG5cbmV4cG9ydCBjb25zdCBoYXNGaWxlVHlwZSA9IChzdGFydFBhdGg6IHN0cmluZywgZXh0OiBzdHJpbmdbXSk6IGJvb2xlYW4gPT4ge1xuICBpZighZnMuZXhpc3RzU3luYyhzdGFydFBhdGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZmlsZXM6IHN0cmluZ1tdID0gZnMucmVhZGRpclN5bmMoc3RhcnRQYXRoKTtcblxuICByZXR1cm4gZmlsZXMuc29tZSgoZmlsZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZmlsZW5hbWU6IHN0cmluZyA9IHBhdGguam9pbihzdGFydFBhdGgsIGZpbGUpO1xuICAgIGNvbnN0IGZpbGVFeHQ6IHN0cmluZyA9IHBhdGguZXh0bmFtZShmaWxlbmFtZSk7XG4gICAgY29uc3Qgc3RhdCA9IGZzLmxzdGF0U3luYyhmaWxlbmFtZSk7XG5cbiAgICBpZihzdGF0LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBzZWFyY2hcbiAgICAgIHJldHVybiBoYXNGaWxlVHlwZShmaWxlbmFtZSwgZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXh0LmluY2x1ZGVzKGZpbGVFeHQpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21waWxlID0gYXN5bmMgKGNtZDogYW55LCBjYWxsYmFjazogYW55ID0gKCkgPT4gKHt9KSk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIGNvbmZpZywgcXVpZXQsIHJlbW92ZSwgd2F0Y2h9ID0gY21kO1xuXG4gIC8vIFNwaW5uZXJcbiAgY29uc3Qgc3Bpbm5lciA9IGNyZWF0ZVNwaW5uZXIocXVpZXQpO1xuXG4gIC8vIERpc3BsYXkgc3RhdHVzXG4gIGxvZyhgJHtjbGlOYW1lfSBjb21waWxpbmcuLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBHZXQgY3VzdG9tIGNvbmZpZ3VyYXRpb25cbiAgTGV4Q29uZmlnLnBhcnNlQ29uZmlnKGNtZCk7XG5cbiAgLy8gQ29tcGlsZSB0eXBlXG4gIGNvbnN0IHtvdXRwdXRGdWxsUGF0aCwgc291cmNlRnVsbFBhdGgsIHVzZVR5cGVzY3JpcHR9ID0gTGV4Q29uZmlnLmNvbmZpZztcbiAgY29uc3Qgbm9kZVBhdGg6IHN0cmluZyA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi9ub2RlX21vZHVsZXMnKTtcblxuICAvLyBDaGVjayBmb3IgbGlua2VkIG1vZHVsZXNcbiAgY2hlY2tMaW5rZWRNb2R1bGVzKCk7XG5cbiAgLy8gQ2xlYW4gb3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgd2Ugc3RhcnQgYWRkaW5nIGluIG5ldyBmaWxlc1xuICBpZihyZW1vdmUpIHtcbiAgICBhd2FpdCByZW1vdmVGaWxlcyhvdXRwdXRGdWxsUGF0aCk7XG4gIH1cblxuICAvLyBBZGQgdHNjb25maWcgZmlsZSBpZiBub25lIGV4aXN0c1xuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgLy8gTWFrZSBzdXJlIHRzY29uZmlnLmpzb24gZXhpc3RzXG4gICAgTGV4Q29uZmlnLmNoZWNrVHlwZXNjcmlwdENvbmZpZygpO1xuXG4gICAgLy8gQ2hlY2sgc3RhdGljIHR5cGVzIHdpdGggdHlwZXNjcmlwdFxuICAgIGNvbnN0IHR5cGVzY3JpcHRQYXRoOiBzdHJpbmcgPSByZWxhdGl2ZUZpbGVQYXRoKCd0eXBlc2NyaXB0L2Jpbi90c2MnLCBub2RlUGF0aCk7XG4gICAgY29uc3QgdHlwZXNjcmlwdE9wdGlvbnM6IHN0cmluZ1tdID0gY29uZmlnID9cbiAgICAgIFsnLXAnLCBjb25maWddIDpcbiAgICAgIFtcbiAgICAgICAgJy0tYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0cycsXG4gICAgICAgICctLWJhc2VVcmwnLCBzb3VyY2VGdWxsUGF0aCxcbiAgICAgICAgJy0tZGVjbGFyYXRpb24nLFxuICAgICAgICAnLS1lbWl0RGVjbGFyYXRpb25Pbmx5JyxcbiAgICAgICAgJy0taW5saW5lU291cmNlTWFwJyxcbiAgICAgICAgJy0tanN4JywgJ3JlYWN0LWpzeCcsXG4gICAgICAgICctLWxpYicsIFsnRVM1JywgJ0VTNicsICdFUzIwMTUnLCAnRVM3JywgJ0VTMjAxNicsICdFUzIwMTcnLCAnRVMyMDE4JywgJ0VTTmV4dCcsICdET00nXSxcbiAgICAgICAgJy0tbW9kdWxlJywgJ2NvbW1vbmpzJyxcbiAgICAgICAgJy0tbW9kdWxlUmVzb2x1dGlvbicsICdub2RlJyxcbiAgICAgICAgJy0tbm9JbXBsaWNpdFJldHVybnMnLFxuICAgICAgICAnLS1ub0ltcGxpY2l0VGhpcycsXG4gICAgICAgICctLW5vU3RyaWN0R2VuZXJpY0NoZWNrcycsXG4gICAgICAgICctLW91dERpcicsIG91dHB1dEZ1bGxQYXRoLFxuICAgICAgICAnLS1yZW1vdmVDb21tZW50cycsXG4gICAgICAgICctLXJlc29sdmVKc29uTW9kdWxlJyxcbiAgICAgICAgJy0tcm9vdERpcicsIHNvdXJjZUZ1bGxQYXRoLFxuICAgICAgICAnLS1zb3VyY2VSb290Jywgc291cmNlRnVsbFBhdGgsXG4gICAgICAgICctLXRhcmdldCcsICdFUzUnLFxuICAgICAgICAnLS10eXBlUm9vdHMnLCBbJ25vZGVfbW9kdWxlcy9AdHlwZXMnLCAnbm9kZV9tb2R1bGVzL2pzb24tZC10cyddXG4gICAgICBdO1xuXG4gICAgLy8gU3RhcnQgdHlwZSBjaGVja2luZyBzcGlubmVyXG4gICAgc3Bpbm5lci5zdGFydCgnU3RhdGljIHR5cGUgY2hlY2tpbmcgd2l0aCBUeXBlc2NyaXB0Li4uJyk7XG5cbiAgICAvLyBUeXBlIGNoZWNraW5nXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGV4ZWNhKHR5cGVzY3JpcHRQYXRoLCB0eXBlc2NyaXB0T3B0aW9ucywge2VuY29kaW5nOiAndXRmLTgnfSk7XG5cbiAgICAgIC8vIFN0b3Agc3Bpbm5lclxuICAgICAgc3Bpbm5lci5zdWNjZWVkKCdTdWNjZXNzZnVsbHkgY29tcGxldGVkIHR5cGUgY2hlY2tpbmchJyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgLy8gRGlzcGxheSBlcnJvciBtZXNzYWdlXG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG5cbiAgICAgIGlmKCFxdWlldCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ1R5cGUgY2hlY2tpbmcgZmFpbGVkLicpO1xuXG4gICAgICAvLyBLaWxsIFByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKGVycm9yLnN0YXR1cyk7XG4gICAgICByZXR1cm4gZXJyb3Iuc3RhdHVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBmaWxlc1xuICBjb25zdCBnbG9iT3B0aW9ucyA9IHtcbiAgICBjd2Q6IHNvdXJjZUZ1bGxQYXRoLFxuICAgIGRvdDogZmFsc2UsXG4gICAgbm9kaXI6IHRydWUsXG4gICAgbm9zb3J0OiB0cnVlXG4gIH07XG4gIGNvbnN0IHRzRmlsZXM6IHN0cmluZ1tdID0gZ2xvYi5zeW5jKGAke3NvdXJjZUZ1bGxQYXRofS8qKi8qKi50cypgLCBnbG9iT3B0aW9ucyk7XG4gIGNvbnN0IGpzRmlsZXM6IHN0cmluZ1tdID0gZ2xvYi5zeW5jKGAke3NvdXJjZUZ1bGxQYXRofS8qKi8qKi5qc2AsIGdsb2JPcHRpb25zKTtcbiAgY29uc3Qgc291cmNlRmlsZXM6IHN0cmluZ1tdID0gWy4uLnRzRmlsZXMsIC4uLmpzRmlsZXNdO1xuXG4gIC8vIEVTQnVpbGQgb3B0aW9uc1xuICBjb25zdCBlc2J1aWxkUGF0aDogc3RyaW5nID0gcmVsYXRpdmVGaWxlUGF0aCgnZXNidWlsZC9iaW4vZXNidWlsZCcsIG5vZGVQYXRoKTtcbiAgY29uc3QgZXNidWlsZE9wdGlvbnM6IHN0cmluZ1tdID0gW1xuICAgIC4uLnNvdXJjZUZpbGVzLFxuICAgICctLWNvbG9yPXRydWUnLFxuICAgICctLWZvcm1hdD1janMnLFxuICAgICctLWxvYWRlcjouanM9anMnLFxuICAgICctLW91dGRpcj1saWInLFxuICAgICctLXBsYXRmb3JtPW5vZGUnLFxuICAgICctLXNvdXJjZW1hcD1pbmxpbmUnLFxuICAgICctLXRhcmdldD1ub2RlMTQnXG4gIF07XG5cbiAgaWYodXNlVHlwZXNjcmlwdCkge1xuICAgIGVzYnVpbGRPcHRpb25zLnB1c2goJy0tbG9hZGVyOi50cz10cycsICctLWxvYWRlcjoudHN4PXRzeCcpO1xuICB9XG5cbiAgaWYod2F0Y2gpIHtcbiAgICBlc2J1aWxkT3B0aW9ucy5wdXNoKCctLXdhdGNoJyk7XG4gIH1cblxuICAvLyBVc2UgUG9zdENTUyBmb3IgQ1NTIGZpbGVzXG4gIGNvbnN0IGNzc0ZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy5jc3MnLCBMZXhDb25maWcuY29uZmlnKTtcblxuICBpZihjc3NGaWxlcy5sZW5ndGgpIHtcbiAgICBjb25zdCBwb3N0Y3NzUGF0aDogc3RyaW5nID0gcmVsYXRpdmVGaWxlUGF0aCgncG9zdGNzcy1jbGkvaW5kZXguanMnLCBub2RlUGF0aCk7XG4gICAgY29uc3QgcG9zdGNzc09wdGlvbnM6IHN0cmluZ1tdID0gW1xuICAgICAgYCR7c291cmNlRnVsbFBhdGh9LyoqLyoqLmNzc2AsXG4gICAgICAnLS1iYXNlJyxcbiAgICAgIHNvdXJjZUZ1bGxQYXRoLFxuICAgICAgJy0tZGlyJyxcbiAgICAgIG91dHB1dEZ1bGxQYXRoLFxuICAgICAgJy0tY29uZmlnJyxcbiAgICAgIHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi8ucG9zdGNzc3JjLmpzJylcbiAgICBdO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGV4ZWNhKHBvc3Rjc3NQYXRoLCBwb3N0Y3NzT3B0aW9ucywge2VuY29kaW5nOiAndXRmLTgnfSk7XG4gICAgICBzcGlubmVyLnN1Y2NlZWQoYFN1Y2Nlc3NmdWxseSBmb3JtYXR0ZWQgJHtjc3NGaWxlcy5sZW5ndGh9IGNzcyBmaWxlcyFgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCBmb3JtYXR0aW5nIGNzcy4nKTtcblxuICAgICAgLy8gS2lsbCBQcm9jZXNzXG4gICAgICBjYWxsYmFjayhlcnJvci5zdGF0dXMpO1xuICAgICAgcmV0dXJuIGVycm9yLnN0YXR1cztcbiAgICB9XG4gIH1cblxuICAvLyBDb3B5IGltYWdlIGZpbGVzXG4gIGNvbnN0IGdpZkZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy5naWYnLCBMZXhDb25maWcuY29uZmlnKTtcbiAgY29uc3QganBnRmlsZXM6IHN0cmluZ1tdID0gZ2V0RmlsZXNCeUV4dCgnLmpwZycsIExleENvbmZpZy5jb25maWcpO1xuICBjb25zdCBwbmdGaWxlczogc3RyaW5nW10gPSBnZXRGaWxlc0J5RXh0KCcucG5nJywgTGV4Q29uZmlnLmNvbmZpZyk7XG4gIGNvbnN0IHN2Z0ZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy5zdmcnLCBMZXhDb25maWcuY29uZmlnKTtcbiAgY29uc3QgaW1hZ2VGaWxlczogc3RyaW5nW10gPSBbLi4uZ2lmRmlsZXMsIC4uLmpwZ0ZpbGVzLCAuLi5wbmdGaWxlcywgLi4uc3ZnRmlsZXNdO1xuXG4gIGlmKGltYWdlRmlsZXMubGVuZ3RoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGNvcHlGaWxlcyhpbWFnZUZpbGVzLCAnaW1hZ2UnLCBzcGlubmVyLCBMZXhDb25maWcuY29uZmlnKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCB0byBtb3ZlIGltYWdlcyB0byBvdXRwdXQgZGlyZWN0b3J5LicpO1xuXG4gICAgICAvLyBLaWxsIFByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKGVycm9yLnN0YXR1cyk7XG4gICAgICByZXR1cm4gZXJyb3Iuc3RhdHVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvcHkgZm9udCBmaWxlc1xuICBjb25zdCB0dGZGaWxlczogc3RyaW5nW10gPSBnZXRGaWxlc0J5RXh0KCcudHRmJywgTGV4Q29uZmlnLmNvbmZpZyk7XG4gIGNvbnN0IG90ZkZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy5vdGYnLCBMZXhDb25maWcuY29uZmlnKTtcbiAgY29uc3Qgd29mZkZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy53b2ZmJywgTGV4Q29uZmlnLmNvbmZpZyk7XG4gIGNvbnN0IHdvZmYyRmlsZXM6IHN0cmluZ1tdID0gZ2V0RmlsZXNCeUV4dCgnLndvZmYyJywgTGV4Q29uZmlnLmNvbmZpZyk7XG4gIGNvbnN0IGZvbnRGaWxlczogc3RyaW5nW10gPSBbLi4udHRmRmlsZXMsIC4uLm90ZkZpbGVzLCAuLi53b2ZmRmlsZXMsIC4uLndvZmYyRmlsZXNdO1xuXG4gIGlmKGZvbnRGaWxlcy5sZW5ndGgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY29weUZpbGVzKGZvbnRGaWxlcywgJ2ZvbnQnLCBzcGlubmVyLCBMZXhDb25maWcuY29uZmlnKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCB0byBtb3ZlIGZvbnRzIHRvIG91dHB1dCBkaXJlY3RvcnkuJyk7XG5cbiAgICAgIC8vIEtpbGwgUHJvY2Vzc1xuICAgICAgY2FsbGJhY2soZXJyb3Iuc3RhdHVzKTtcbiAgICAgIHJldHVybiBlcnJvci5zdGF0dXM7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29weSBtYXJrZG93biBmaWxlc1xuICBjb25zdCBtZEZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy5tZCcsIExleENvbmZpZy5jb25maWcpO1xuXG4gIGlmKG1kRmlsZXMubGVuZ3RoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGNvcHlGaWxlcyhtZEZpbGVzLCAnZG9jdW1lbnRzJywgc3Bpbm5lciwgTGV4Q29uZmlnLmNvbmZpZyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgLy8gRGlzcGxheSBlcnJvciBtZXNzYWdlXG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG5cbiAgICAgIC8vIFN0b3Agc3Bpbm5lclxuICAgICAgc3Bpbm5lci5mYWlsKCdGYWlsZWQgdG8gbW92ZSBkb2NzIHRvIG91dHB1dCBkaXJlY3RvcnkuJyk7XG5cbiAgICAgIC8vIEtpbGwgUHJvY2Vzc1xuICAgICAgY2FsbGJhY2soZXJyb3Iuc3RhdHVzKTtcbiAgICAgIHJldHVybiBlcnJvci5zdGF0dXM7XG4gICAgfVxuICB9XG5cbiAgLy8gU3RhcnQgY29tcGlsZSBzcGlubmVyXG4gIHNwaW5uZXIuc3RhcnQod2F0Y2ggPyAnV2F0Y2hpbmcgZm9yIGNoYW5nZXMuLi4nIDogJ0NvbXBpbGluZyB3aXRoIEVTQnVpbGQuLi4nKTtcblxuICB0cnkge1xuICAgIGF3YWl0IGV4ZWNhKGVzYnVpbGRQYXRoLCBlc2J1aWxkT3B0aW9ucywge2VuY29kaW5nOiAndXRmLTgnfSk7XG5cbiAgICAvLyBTdG9wIHNwaW5uZXJcbiAgICBzcGlubmVyLnN1Y2NlZWQoJ0NvbXBpbGUgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIC8vIERpc3BsYXkgZXJyb3IgbWVzc2FnZVxuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgIGlmKCFxdWlldCkge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuXG4gICAgLy8gU3RvcCBzcGlubmVyXG4gICAgc3Bpbm5lci5mYWlsKCdDb2RlIGNvbXBpbGluZyBmYWlsZWQuJyk7XG5cbiAgICAvLyBLaWxsIFByb2Nlc3NcbiAgICBjYWxsYmFjayhlcnJvci5zdGF0dXMpO1xuICAgIHJldHVybiBlcnJvci5zdGF0dXM7XG4gIH1cblxuICAvLyBTdG9wIHByb2Nlc3NcbiAgY2FsbGJhY2soMCk7XG4gIHJldHVybiAwO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsbUJBQWtCO0FBQ2xCLGdCQUFlO0FBQ2Ysa0JBQWlCO0FBQ2pCLGtCQUFpQjtBQUVqQix1QkFBd0I7QUFDeEIsaUJBTU87QUFDUCxrQkFBK0I7QUFDL0IsaUJBQWtCO0FBRVgsTUFBTSxjQUFjLENBQUMsV0FBbUIsUUFBMkI7QUFDeEUsTUFBRyxDQUFDLGtCQUFHLFdBQVcsU0FBUyxHQUFHO0FBQzVCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxRQUFrQixrQkFBRyxZQUFZLFNBQVM7QUFFaEQsU0FBTyxNQUFNLEtBQUssQ0FBQyxTQUFpQjtBQUNsQyxVQUFNLFdBQW1CLG9CQUFLLEtBQUssV0FBVyxJQUFJO0FBQ2xELFVBQU0sVUFBa0Isb0JBQUssUUFBUSxRQUFRO0FBQzdDLFVBQU0sT0FBTyxrQkFBRyxVQUFVLFFBQVE7QUFFbEMsUUFBRyxLQUFLLFlBQVksR0FBRztBQUVyQixhQUFPLFlBQVksVUFBVSxHQUFHO0FBQUEsSUFDbEM7QUFFQSxXQUFPLElBQUksU0FBUyxPQUFPO0FBQUEsRUFDN0IsQ0FBQztBQUNIO0FBRU8sTUFBTSxVQUFVLE9BQU8sS0FBVSxXQUFnQixNQUFPLEVBQUMsT0FBd0I7QUFDdEYsUUFBTSxFQUFDLFVBQVUsT0FBTyxRQUFRLE9BQU8sUUFBUSxVQUFTO0FBR3hELFFBQU0sVUFBVSw4QkFBYyxLQUFLO0FBR25DLHNCQUFJLEdBQUcsd0JBQXdCLFFBQVEsS0FBSztBQUc1Qyw2QkFBVSxZQUFZLEdBQUc7QUFHekIsUUFBTSxFQUFDLGdCQUFnQixnQkFBZ0Isa0JBQWlCLDJCQUFVO0FBQ2xFLFFBQU0sV0FBbUIsb0JBQUssUUFBUSxXQUFXLG9CQUFvQjtBQUdyRSxxQ0FBbUI7QUFHbkIsTUFBRyxRQUFRO0FB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
@@ -4,46 +4,41 @@ 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 config_exports = {};
29
22
  __export(config_exports, {
30
23
  config: () => config
31
24
  });
25
+ module.exports = __toCommonJS(config_exports);
32
26
  var import_fs = __toESM(require("fs"));
33
27
  var import_startCase = __toESM(require("lodash/startCase"));
34
28
  var path = __toESM(require("path"));
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
  const config = (type, cmd, callback = () => ({})) => {
38
33
  const { cliName = "Lex", json, quiet } = cmd;
39
34
  const validTypes = ["app", "jest", "webpack"];
40
35
  if (!validTypes.includes(type)) {
41
- (0, import_utils.log)(`
36
+ (0, import_log.log)(`
42
37
  ${cliName} Error: Option for ${type} not found. Configurations only available for app, jest, and webpack.`, "error", quiet);
43
38
  callback(1);
44
39
  return Promise.resolve(1);
45
40
  }
46
- (0, import_utils.log)(`${cliName} generating configuration for ${(0, import_startCase.default)(type)}...`, "info", quiet);
41
+ (0, import_log.log)(`${cliName} generating configuration for ${(0, import_startCase.default)(type)}...`, "info", quiet);
47
42
  import_LexConfig.LexConfig.parseConfig(cmd);
48
43
  let configOptions;
49
44
  switch (type) {
@@ -61,9 +56,8 @@ ${cliName} Error: Option for ${type} not found. Configurations only available fo
61
56
  break;
62
57
  }
63
58
  const jsonOutput = JSON.stringify(configOptions, null, 2);
64
- console.log(jsonOutput);
65
59
  if (json) {
66
- const spinner = (0, import_utils.createSpinner)(quiet);
60
+ const spinner = (0, import_app.createSpinner)(quiet);
67
61
  spinner.start("Creating JSON output...");
68
62
  import_fs.default.writeFileSync(json, jsonOutput);
69
63
  spinner.succeed(`Successfully saved JSON output to ${path.relative(process.cwd(), json)}`);
@@ -71,8 +65,8 @@ ${cliName} Error: Option for ${type} not found. Configurations only available fo
71
65
  callback(0);
72
66
  return Promise.resolve(0);
73
67
  };
74
- module.exports = __toCommonJS(config_exports);
75
68
  // Annotate the CommonJS export names for ESM import in node:
76
69
  0 && (module.exports = {
77
70
  config
78
71
  });
72
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbW1hbmRzL2NvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgc3RhcnRDYXNlIGZyb20gJ2xvZGFzaC9zdGFydENhc2UnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uL0xleENvbmZpZyc7XG5pbXBvcnQge2NyZWF0ZVNwaW5uZXJ9IGZyb20gJy4uL3V0aWxzL2FwcCc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vdXRpbHMvbG9nJztcblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9ICh0eXBlOiBzdHJpbmcsIGNtZDogYW55LCBjYWxsYmFjazogYW55ID0gKCkgPT4gKHt9KSk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIGpzb24sIHF1aWV0fSA9IGNtZDtcbiAgY29uc3QgdmFsaWRUeXBlczogc3RyaW5nW10gPSBbJ2FwcCcsICdqZXN0JywgJ3dlYnBhY2snXTtcblxuICBpZighdmFsaWRUeXBlcy5pbmNsdWRlcyh0eXBlKSkge1xuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogT3B0aW9uIGZvciAke3R5cGV9IG5vdCBmb3VuZC4gQ29uZmlndXJhdGlvbnMgb25seSBhdmFpbGFibGUgZm9yIGFwcCwgamVzdCwgYW5kIHdlYnBhY2suYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgIGNhbGxiYWNrKDEpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoMSk7XG4gIH1cblxuICAvLyBEaXNwbGF5IHN0YXR1c1xuICBsb2coYCR7Y2xpTmFtZX0gZ2VuZXJhdGluZyBjb25maWd1cmF0aW9uIGZvciAke3N0YXJ0Q2FzZSh0eXBlKX0uLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBHZXQgY3VzdG9tIGNvbmZpZ3VyYXRpb25cbiAgTGV4Q29uZmlnLnBhcnNlQ29uZmlnKGNtZCk7XG5cbiAgbGV0IGNvbmZpZ09wdGlvbnM7XG5cbiAgc3dpdGNoKHR5cGUpIHtcbiAgICBjYXNlICdhcHAnOlxuICAgICAgY29uZmlnT3B0aW9ucyA9IExleENvbmZpZy5jb25maWc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdlc2J1aWxkJzpcbiAgICAgIGNvbmZpZ09wdGlvbnMgPSByZXF1aXJlKCcuLi8uLi9lc2J1aWxkT3B0aW9ucycpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnamVzdCc6XG4gICAgICBjb25maWdPcHRpb25zID0gcmVxdWlyZSgnLi4vLi4vamVzdC5jb25maWcubGV4Jyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd3ZWJwYWNrJzpcbiAgICAgIGNvbmZpZ09wdGlvbnMgPSByZXF1aXJlKCcuLi8uLi93ZWJwYWNrLmNvbmZpZycpO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICAvLyBPdXRwdXQgY29uZmlnIHRvIGNvbnNvbGVcbiAgY29uc3QganNvbk91dHB1dDogc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY29uZmlnT3B0aW9ucywgbnVsbCwgMik7XG5cbiAgaWYoanNvbikge1xuICAgIC8vIFNwaW5uZXJcbiAgICBjb25zdCBzcGlubmVyID0gY3JlYXRlU3Bpbm5lcihxdWlldCk7XG5cbiAgICAvLyBTdGFydCBzcGlubmVyXG4gICAgc3Bpbm5lci5zdGFydCgnQ3JlYXRpbmcgSlNPTiBvdXRwdXQuLi4nKTtcblxuICAgIC8vIFNhdmUganNvbiBsb2NhbGx5XG4gICAgZnMud3JpdGVGaWxlU3luYyhqc29uLCBqc29uT3V0cHV0KTtcblxuICAgIC8vIFN1Y2Nlc3Mgc3Bpbm5lclxuICAgIHNwaW5uZXIuc3VjY2VlZChgU3VjY2Vzc2Z1bGx5IHNhdmVkIEpTT04gb3V0cHV0IHRvICR7cGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBqc29uKX1gKTtcbiAgfVxuXG4gIGNhbGxiYWNrKDApO1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKDApO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBLGdCQUFlO0FBQ2YsdUJBQXNCO0FBQ3RCLFdBQXNCO0FBRXRCLHVCQUF3QjtBQUN4QixpQkFBNEI7QUFDNUIsaUJBQWtCO0FBRVgsTUFBTSxTQUFTLENBQUMsTUFBYyxLQUFVLFdBQWdCLE1BQU8sRUFBQyxPQUF3QjtBQUM3RixRQUFNLEVBQUMsVUFBVSxPQUFPLE1BQU0sVUFBUztBQUN2QyxRQUFNLGFBQXVCLENBQUMsT0FBTyxRQUFRLFNBQVM7QUFFdEQsTUFBRyxDQUFDLFdBQVcsU0FBUyxJQUFJLEdBQUc7QUFDN0Isd0JBQUk7QUFBQSxFQUFLLDZCQUE2Qiw2RUFBNkUsU0FBUyxLQUFLO0FBQ2pJLGFBQVMsQ0FBQztBQUNWLFdBQU8sUUFBUSxRQUFRLENBQUM7QUFBQSxFQUMxQjtBQUdBLHNCQUFJLEdBQUcsd0NBQXdDLDhCQUFVLElBQUksUUFBUSxRQUFRLEtBQUs7QUFHbEYsNkJBQVUsWUFBWSxHQUFHO0FBRXpCLE1BQUk7QUFFSixVQUFPO0FBQUEsU0FDQTtBQUNILHNCQUFnQiwyQkFBVTtBQUMxQjtBQUFBLFNBQ0c7QUFDSCxzQkFBZ0IsUUFBUSxzQkFBc0I7QUFDOUM7QUFBQSxTQUNHO0FBQ0gsc0JBQWdCLFFBQVEsdUJBQXVCO0FBQy9DO0FBQUEsU0FDRztBQUNILHNCQUFnQixRQUFRLHNCQUFzQjtBQUM5QztBQUFBO0FBSUosUUFBTSxhQUFxQixLQUFLLFVBQVUsZUFBZSxNQUFNLENBQUM7QUFFaEUsTUFBRyxNQUFNO0FBRVAsVUFBTSxVQUFVLDhCQUFjLEtBQUs7QUFHbkMsWUFBUSxNQUFNLHlCQUF5QjtBQUd2QyxzQkFBRyxjQUFjLE1BQU0sVUFBVTtBQUdqQyxZQUFRLFFBQVEscUNBQXFDLEtBQUssU0FBUyxRQUFRLElBQUksR0FBRyxJQUFJLEdBQUc7QUFBQSxFQUMzRjtBQUVBLFdBQVMsQ0FBQztBQUNWLFNBQU8sUUFBUSxRQUFRLENBQUM7QUFDMUI7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -4,56 +4,51 @@ 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 copy_exports = {};
29
22
  __export(copy_exports, {
30
23
  copy: () => copy
31
24
  });
25
+ module.exports = __toCommonJS(copy_exports);
32
26
  var import_fs = __toESM(require("fs"));
33
- var import_utils = require("../utils");
27
+ var import_app = require("../utils/app");
28
+ var import_log = require("../utils/log");
34
29
  const copy = (from, to, cmd, callback = () => ({})) => {
35
30
  const { cliName = "Lex", quiet } = cmd;
36
- (0, import_utils.log)(`${cliName} copying "${to}"...`, "info", quiet);
31
+ (0, import_log.log)(`${cliName} copying "${to}"...`, "info", quiet);
37
32
  if (!import_fs.default.existsSync(from)) {
38
- (0, import_utils.log)(`
33
+ (0, import_log.log)(`
39
34
  ${cliName} Error: Path not found, "${from}"...`, "error", quiet);
40
35
  callback(1);
41
36
  return Promise.resolve(1);
42
37
  }
43
38
  if (import_fs.default.lstatSync(from).isDirectory()) {
44
39
  try {
45
- (0, import_utils.copyFolderRecursiveSync)(from, to);
40
+ (0, import_app.copyFolderRecursiveSync)(from, to);
46
41
  } catch (error) {
47
- (0, import_utils.log)(`
42
+ (0, import_log.log)(`
48
43
  ${cliName} Error: Cannot copy "${from}". ${error.message}`, "error", quiet);
49
44
  callback(1);
50
45
  return Promise.resolve(1);
51
46
  }
52
47
  } else {
53
48
  try {
54
- (0, import_utils.copyFileSync)(from, to);
49
+ (0, import_app.copyFileSync)(from, to);
55
50
  } catch (error) {
56
- (0, import_utils.log)(`
51
+ (0, import_log.log)(`
57
52
  ${cliName} Error: Cannot copy "${from}" ${error.message}`, "error", quiet);
58
53
  callback(1);
59
54
  return Promise.resolve(1);
@@ -62,8 +57,8 @@ ${cliName} Error: Cannot copy "${from}" ${error.message}`, "error", quiet);
62
57
  callback(0);
63
58
  return Promise.resolve(0);
64
59
  };
65
- module.exports = __toCommonJS(copy_exports);
66
60
  // Annotate the CommonJS export names for ESM import in node:
67
61
  0 && (module.exports = {
68
62
  copy
69
63
  });
64
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbW1hbmRzL2NvcHkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuXG5pbXBvcnQge2NvcHlGaWxlU3luYywgY29weUZvbGRlclJlY3Vyc2l2ZVN5bmN9IGZyb20gJy4uL3V0aWxzL2FwcCc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vdXRpbHMvbG9nJztcblxuZXhwb3J0IGNvbnN0IGNvcHkgPSAoZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nLCBjbWQ6IGFueSwgY2FsbGJhY2s6IGFueSA9ICgpID0+ICh7fSkpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBxdWlldH0gPSBjbWQ7XG5cbiAgLy8gRGlzcGxheSBtZXNzYWdlXG4gIGxvZyhgJHtjbGlOYW1lfSBjb3B5aW5nIFwiJHt0b31cIi4uLmAsICdpbmZvJywgcXVpZXQpO1xuXG4gIGlmKCFmcy5leGlzdHNTeW5jKGZyb20pKSB7XG4gICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBQYXRoIG5vdCBmb3VuZCwgXCIke2Zyb219XCIuLi5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgxKTtcbiAgfVxuXG4gIGlmKGZzLmxzdGF0U3luYyhmcm9tKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENvcHkgZGlyZWN0b3J5XG4gICAgICBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyhmcm9tLCB0byk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBDYW5ub3QgY29weSBcIiR7ZnJvbX1cIi4gJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgxKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENvcHkgZmlsZVxuICAgICAgY29weUZpbGVTeW5jKGZyb20sIHRvKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IENhbm5vdCBjb3B5IFwiJHtmcm9tfVwiICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICBjYWxsYmFjaygxKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoMSk7XG4gICAgfVxuICB9XG5cbiAgY2FsbGJhY2soMCk7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoMCk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsZ0JBQWU7QUFFZixpQkFBb0Q7QUFDcEQsaUJBQWtCO0FBRVgsTUFBTSxPQUFPLENBQUMsTUFBYyxJQUFZLEtBQVUsV0FBZ0IsTUFBTyxFQUFDLE9BQXdCO0FBQ3ZHLFFBQU0sRUFBQyxVQUFVLE9BQU8sVUFBUztBQUdqQyxzQkFBSSxHQUFHLG9CQUFvQixVQUFVLFFBQVEsS0FBSztBQUVsRCxNQUFHLENBQUMsa0JBQUcsV0FBVyxJQUFJLEdBQUc7QUFDdkIsd0JBQUk7QUFBQSxFQUFLLG1DQUFtQyxZQUFZLFNBQVMsS0FBSztBQUN0RSxhQUFTLENBQUM7QUFDVixXQUFPLFFBQVEsUUFBUSxDQUFDO0FBQUEsRUFDMUI7QUFFQSxNQUFHLGtCQUFHLFVBQVUsSUFBSSxFQUFFLFlBQVksR0FBRztBQUNuQyxRQUFJO0FBRUYsOENBQXdCLE1BQU0sRUFBRTtBQUFBLElBQ2xDLFNBQVEsT0FBTjtBQUNBLDBCQUFJO0FBQUEsRUFBSywrQkFBK0IsVUFBVSxNQUFNLFdBQVcsU0FBUyxLQUFLO0FBQ2pGLGVBQVMsQ0FBQztBQUNWLGFBQU8sUUFBUSxRQUFRLENBQUM7QUFBQSxJQUMxQjtBQUFBLEVBQ0YsT0FBTztBQUNMLFFBQUk7QUFFRixtQ0FBYSxNQUFNLEVBQUU7QUFBQSxJQUN2QixTQUFRLE9BQU47QUFDQSwwQkFBSTtBQUFBLEVBQUssK0JBQStCLFNBQVMsTUFBTSxXQUFXLFNBQVMsS0FBSztBQUNoRixlQUFTLENBQUM7QUFDVixhQUFPLFFBQVEsUUFBUSxDQUFDO0FBQUEsSUFDMUI7QUFBQSxFQUNGO0FBRUEsV0FBUyxDQUFDO0FBQ1YsU0FBTyxRQUFRLFFBQVEsQ0FBQztBQUMxQjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -4,40 +4,35 @@ 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 create_exports = {};
29
22
  __export(create_exports, {
30
23
  create: () => create
31
24
  });
25
+ module.exports = __toCommonJS(create_exports);
32
26
  var import_fs = __toESM(require("fs"));
33
27
  var import_path = __toESM(require("path"));
34
28
  var import_changelog = require("../create/changelog");
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
  const create = async (type, cmd, callback = () => ({})) => {
38
33
  const { cliName = "Lex", outputFile, outputName, quiet } = cmd;
39
34
  const cwd = process.cwd();
40
- (0, import_utils.log)(`${cliName} creating ${type}...`, "info", quiet);
35
+ (0, import_log.log)(`${cliName} creating ${type}...`, "info", quiet);
41
36
  import_LexConfig.LexConfig.parseConfig(cmd, false);
42
37
  const { outputPath, sourcePath, useTypescript } = import_LexConfig.LexConfig.config;
43
38
  if (useTypescript) {
@@ -52,7 +47,7 @@ const create = async (type, cmd, callback = () => ({})) => {
52
47
  }
53
48
  case "store": {
54
49
  try {
55
- const { nameCaps, templateExt, templatePath } = (0, import_utils.getFilenames)({
50
+ const { nameCaps, templateExt, templatePath } = (0, import_app.getFilenames)({
56
51
  cliName,
57
52
  name: outputName,
58
53
  quiet,
@@ -61,22 +56,22 @@ const create = async (type, cmd, callback = () => ({})) => {
61
56
  });
62
57
  const storePath = `${cwd}/${nameCaps}Store`;
63
58
  if (!import_fs.default.existsSync(storePath)) {
64
- (0, import_utils.copyFolderRecursiveSync)(import_path.default.resolve(__dirname, templatePath, "./.SampleStore"), cwd);
59
+ (0, import_app.copyFolderRecursiveSync)(import_path.default.resolve(__dirname, templatePath, "./.SampleStore"), cwd);
65
60
  import_fs.default.renameSync(`${cwd}/.SampleStore`, storePath);
66
61
  const storeTestPath = `${storePath}/${nameCaps}Store.test${templateExt}`;
67
62
  import_fs.default.renameSync(`${storePath}/SampleStore.test${templateExt}.txt`, storeTestPath);
68
- (0, import_utils.updateTemplateName)(storeTestPath, outputName, nameCaps);
63
+ (0, import_app.updateTemplateName)(storeTestPath, outputName, nameCaps);
69
64
  const storeFilePath = `${storePath}/${nameCaps}Store${templateExt}`;
70
65
  import_fs.default.renameSync(`${storePath}/SampleStore${templateExt}.txt`, storeFilePath);
71
- (0, import_utils.updateTemplateName)(storeFilePath, outputName, nameCaps);
66
+ (0, import_app.updateTemplateName)(storeFilePath, outputName, nameCaps);
72
67
  } else {
73
- (0, import_utils.log)(`
68
+ (0, import_log.log)(`
74
69
  ${cliName} Error: Cannot create new ${type}. Directory, ${storePath} already exists.`, "error", quiet);
75
70
  callback(1);
76
71
  return 1;
77
72
  }
78
73
  } catch (error) {
79
- (0, import_utils.log)(`
74
+ (0, import_log.log)(`
80
75
  ${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
81
76
  callback(1);
82
77
  return 1;
@@ -84,7 +79,7 @@ ${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
84
79
  break;
85
80
  }
86
81
  case "tsconfig": {
87
- await (0, import_utils.removeFiles)("tsconfig.json", true);
82
+ await (0, import_app.removeFiles)("tsconfig.json", true);
88
83
  const templatePath = import_path.default.resolve(__dirname, "../../tsconfig.template.json");
89
84
  let data = import_fs.default.readFileSync(templatePath, "utf8");
90
85
  data = data.replace(/.\/src/g, sourcePath);
@@ -94,7 +89,7 @@ ${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
94
89
  break;
95
90
  }
96
91
  case "view": {
97
- const { nameCaps, templatePath, templateReact } = (0, import_utils.getFilenames)({
92
+ const { nameCaps, templatePath, templateReact } = (0, import_app.getFilenames)({
98
93
  cliName,
99
94
  name: outputName,
100
95
  quiet,
@@ -104,25 +99,25 @@ ${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
104
99
  const viewPath = `${cwd}/${nameCaps}View`;
105
100
  try {
106
101
  if (!import_fs.default.existsSync(viewPath)) {
107
- (0, import_utils.copyFolderRecursiveSync)(import_path.default.resolve(__dirname, templatePath, "./.SampleView"), cwd);
102
+ (0, import_app.copyFolderRecursiveSync)(import_path.default.resolve(__dirname, templatePath, "./.SampleView"), cwd);
108
103
  import_fs.default.renameSync(`${cwd}/.SampleView`, viewPath);
109
104
  const viewStylePath = `${viewPath}/${outputName}View.css`;
110
105
  import_fs.default.renameSync(`${viewPath}/sampleView.css`, viewStylePath);
111
- (0, import_utils.updateTemplateName)(viewStylePath, outputName, nameCaps);
106
+ (0, import_app.updateTemplateName)(viewStylePath, outputName, nameCaps);
112
107
  const viewTestPath = `${viewPath}/${nameCaps}View.test${templateReact}`;
113
108
  import_fs.default.renameSync(`${viewPath}/SampleView.test${templateReact}.txt`, viewTestPath);
114
- (0, import_utils.updateTemplateName)(viewTestPath, outputName, nameCaps);
109
+ (0, import_app.updateTemplateName)(viewTestPath, outputName, nameCaps);
115
110
  const viewFilePath = `${viewPath}/${nameCaps}View${templateReact}`;
116
111
  import_fs.default.renameSync(`${viewPath}/SampleView${templateReact}.txt`, viewFilePath);
117
- (0, import_utils.updateTemplateName)(viewFilePath, outputName, nameCaps);
112
+ (0, import_app.updateTemplateName)(viewFilePath, outputName, nameCaps);
118
113
  } else {
119
- (0, import_utils.log)(`
114
+ (0, import_log.log)(`
120
115
  ${cliName} Error: Cannot create new ${type}. Directory, ${viewPath} already exists.`, "error", quiet);
121
116
  callback(1);
122
117
  return 1;
123
118
  }
124
119
  } catch (error) {
125
- (0, import_utils.log)(`
120
+ (0, import_log.log)(`
126
121
  ${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
127
122
  callback(1);
128
123
  return 1;
@@ -130,16 +125,16 @@ ${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
130
125
  break;
131
126
  }
132
127
  case "vscode": {
133
- await (0, import_utils.removeFiles)(".vscode", true);
134
- (0, import_utils.copyFolderRecursiveSync)(import_path.default.resolve(__dirname, "../../.vscode"), cwd);
128
+ await (0, import_app.removeFiles)(".vscode", true);
129
+ (0, import_app.copyFolderRecursiveSync)(import_path.default.resolve(__dirname, "../../.vscode"), cwd);
135
130
  break;
136
131
  }
137
132
  }
138
133
  callback(0);
139
134
  return 0;
140
135
  };
141
- module.exports = __toCommonJS(create_exports);
142
136
  // Annotate the CommonJS export names for ESM import in node:
143
137
  0 && (module.exports = {
144
138
  create
145
139
  });
140
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbW1hbmRzL2NyZWF0ZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHtjcmVhdGVDaGFuZ2Vsb2d9IGZyb20gJy4uL2NyZWF0ZS9jaGFuZ2Vsb2cnO1xuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uL0xleENvbmZpZyc7XG5pbXBvcnQge2NvcHlGb2xkZXJSZWN1cnNpdmVTeW5jLCBnZXRGaWxlbmFtZXMsIHJlbW92ZUZpbGVzLCB1cGRhdGVUZW1wbGF0ZU5hbWV9IGZyb20gJy4uL3V0aWxzL2FwcCc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vdXRpbHMvbG9nJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZSA9IGFzeW5jICh0eXBlOiBzdHJpbmcsIGNtZDogYW55LCBjYWxsYmFjazogYW55ID0gKCkgPT4gKHt9KSk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIG91dHB1dEZpbGUsIG91dHB1dE5hbWUsIHF1aWV0fSA9IGNtZDtcbiAgY29uc3QgY3dkOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuICBsb2coYCR7Y2xpTmFtZX0gY3JlYXRpbmcgJHt0eXBlfS4uLmAsICdpbmZvJywgcXVpZXQpO1xuXG4gIC8vIEdldCBjdXN0b20gY29uZmlndXJhdGlvblxuICBMZXhDb25maWcucGFyc2VDb25maWcoY21kLCBmYWxzZSk7XG4gIGNvbnN0IHtvdXRwdXRQYXRoLCBzb3VyY2VQYXRoLCB1c2VUeXBlc2NyaXB0fSA9IExleENvbmZpZy5jb25maWc7XG5cbiAgaWYodXNlVHlwZXNjcmlwdCkge1xuICAgIC8vIE1ha2Ugc3VyZSB0c2NvbmZpZy5qc29uIGV4aXN0c1xuICAgIExleENvbmZpZy5jaGVja1R5cGVzY3JpcHRDb25maWcoKTtcbiAgfVxuXG4gIGNvbnN0IHtjb25maWd9ID0gTGV4Q29uZmlnO1xuXG4gIHN3aXRjaCh0eXBlKSB7XG4gICAgY2FzZSAnY2hhbmdlbG9nJzoge1xuICAgICAgY29uc3Qgc3RhdHVzQ2hhbmdlbG9nOiBudW1iZXIgPSBhd2FpdCBjcmVhdGVDaGFuZ2Vsb2coe2NsaU5hbWUsIGNvbmZpZywgb3V0cHV0RmlsZSwgcXVpZXR9KTtcbiAgICAgIGNhbGxiYWNrKHN0YXR1c0NoYW5nZWxvZyk7XG4gICAgICByZXR1cm4gc3RhdHVzQ2hhbmdlbG9nO1xuICAgIH1cbiAgICBjYXNlICdzdG9yZSc6IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHtuYW1lQ2FwcywgdGVtcGxhdGVFeHQsIHRlbXBsYXRlUGF0aH0gPSBnZXRGaWxlbmFtZXMoe1xuICAgICAgICAgIGNsaU5hbWUsXG4gICAgICAgICAgbmFtZTogb3V0cHV0TmFtZSxcbiAgICAgICAgICBxdWlldCxcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHVzZVR5cGVzY3JpcHRcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHN0b3JlUGF0aDogc3RyaW5nID0gYCR7Y3dkfS8ke25hbWVDYXBzfVN0b3JlYDtcblxuICAgICAgICBpZighZnMuZXhpc3RzU3luYyhzdG9yZVBhdGgpKSB7XG4gICAgICAgICAgLy8gQ29weSBzdG9yZSBmaWxlc1xuICAgICAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIHRlbXBsYXRlUGF0aCwgJy4vLlNhbXBsZVN0b3JlJyksIGN3ZCk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgZGlyZWN0b3J5XG4gICAgICAgICAgZnMucmVuYW1lU3luYyhgJHtjd2R9Ly5TYW1wbGVTdG9yZWAsIHN0b3JlUGF0aCk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgdGVzdFxuICAgICAgICAgIGNvbnN0IHN0b3JlVGVzdFBhdGg6IHN0cmluZyA9IGAke3N0b3JlUGF0aH0vJHtuYW1lQ2Fwc31TdG9yZS50ZXN0JHt0ZW1wbGF0ZUV4dH1gO1xuICAgICAgICAgIGZzLnJlbmFtZVN5bmMoYCR7c3RvcmVQYXRofS9TYW1wbGVTdG9yZS50ZXN0JHt0ZW1wbGF0ZUV4dH0udHh0YCwgc3RvcmVUZXN0UGF0aCk7XG5cbiAgICAgICAgICAvLyBTZWFyY2ggYW5kIHJlcGxhY2Ugc3RvcmUgbmFtZVxuICAgICAgICAgIHVwZGF0ZVRlbXBsYXRlTmFtZShzdG9yZVRlc3RQYXRoLCBvdXRwdXROYW1lLCBuYW1lQ2Fwcyk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgc291cmNlIGZpbGVcbiAgICAgICAgICBjb25zdCBzdG9yZUZpbGVQYXRoOiBzdHJpbmcgPSBgJHtzdG9yZVBhdGh9LyR7bmFtZUNhcHN9U3RvcmUke3RlbXBsYXRlRXh0fWA7XG4gICAgICAgICAgZnMucmVuYW1lU3luYyhgJHtzdG9yZVBhdGh9L1NhbXBsZVN0b3JlJHt0ZW1wbGF0ZUV4dH0udHh0YCwgc3RvcmVGaWxlUGF0aCk7XG5cbiAgICAgICAgICAvLyBTZWFyY2ggYW5kIHJlcGxhY2Ugc3RvcmUgbmFtZVxuICAgICAgICAgIHVwZGF0ZVRlbXBsYXRlTmFtZShzdG9yZUZpbGVQYXRoLCBvdXRwdXROYW1lLCBuYW1lQ2Fwcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBDYW5ub3QgY3JlYXRlIG5ldyAke3R5cGV9LiBEaXJlY3RvcnksICR7c3RvcmVQYXRofSBhbHJlYWR5IGV4aXN0cy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICAgICAgY2FsbGJhY2soMSk7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBDYW5ub3QgY3JlYXRlIG5ldyAke3R5cGV9LiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICBjYWxsYmFjaygxKTtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAndHNjb25maWcnOiB7XG4gICAgICAvLyBSZW1vdmUgZXhpc3RpbmcgZmlsZVxuICAgICAgYXdhaXQgcmVtb3ZlRmlsZXMoJ3RzY29uZmlnLmpzb24nLCB0cnVlKTtcblxuICAgICAgLy8gR2V0IHRzY29uZmlnIHRlbXBsYXRlXG4gICAgICBjb25zdCB0ZW1wbGF0ZVBhdGg6IHN0cmluZyA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi90c2NvbmZpZy50ZW1wbGF0ZS5qc29uJyk7XG4gICAgICBsZXQgZGF0YTogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHRlbXBsYXRlUGF0aCwgJ3V0ZjgnKTtcblxuICAgICAgLy8gVXBkYXRlIExleCB0c2NvbmZpZyB0ZW1wbGF0ZSB3aXRoIHNvdXJjZSBhbmQgb3V0cHV0IGRpcmVjdG9yaWVzXG4gICAgICBkYXRhID0gZGF0YS5yZXBsYWNlKC8uXFwvc3JjL2csIHNvdXJjZVBhdGgpO1xuICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvLlxcL2Rpc3QvZywgb3V0cHV0UGF0aCk7XG5cbiAgICAgIC8vIFNhdmUgbmV3IHRzY29uZmlnIHRvIGFwcFxuICAgICAgY29uc3QgZGVzdFBhdGg6IHN0cmluZyA9IHBhdGgucmVzb2x2ZShjd2QsICcuL3RzY29uZmlnLmpzb24nKTtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZGVzdFBhdGgsIGRhdGEsICd1dGY4Jyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAndmlldyc6IHtcbiAgICAgIGNvbnN0IHtuYW1lQ2FwcywgdGVtcGxhdGVQYXRoLCB0ZW1wbGF0ZVJlYWN0fSA9IGdldEZpbGVuYW1lcyh7XG4gICAgICAgIGNsaU5hbWUsXG4gICAgICAgIG5hbWU6IG91dHB1dE5hbWUsXG4gICAgICAgIHF1aWV0LFxuICAgICAgICB0eXBlLFxuICAgICAgICB1c2VUeXBlc2NyaXB0XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHZpZXdQYXRoOiBzdHJpbmcgPSBgJHtjd2R9LyR7bmFtZUNhcHN9Vmlld2A7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmKCFmcy5leGlzdHNTeW5jKHZpZXdQYXRoKSkge1xuICAgICAgICAgIC8vIENvcHkgdmlldyBmaWxlc1xuICAgICAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIHRlbXBsYXRlUGF0aCwgJy4vLlNhbXBsZVZpZXcnKSwgY3dkKTtcblxuICAgICAgICAgIC8vIFJlbmFtZSBkaXJlY3RvcnlcbiAgICAgICAgICBmcy5yZW5hbWVTeW5jKGAke2N3ZH0vLlNhbXBsZVZpZXdgLCB2aWV3UGF0aCk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgQ1NTXG4gICAgICAgICAgY29uc3Qgdmlld1N0eWxlUGF0aDogc3RyaW5nID0gYCR7dmlld1BhdGh9LyR7b3V0cHV0TmFtZX1WaWV3LmNzc2A7XG4gICAgICAgICAgZnMucmVuYW1lU3luYyhgJHt2aWV3UGF0aH0vc2FtcGxlVmlldy5jc3NgLCB2aWV3U3R5bGVQYXRoKTtcblxuICAgICAgICAgIC8vIFNlYXJjaCBhbmQgcmVwbGFjZSB2aWV3IG5hbWVcbiAgICAgICAgICB1cGRhdGVUZW1wbGF0ZU5hbWUodmlld1N0eWxlUGF0aCwgb3V0cHV0TmFtZSwgbmFtZUNhcHMpO1xuXG4gICAgICAgICAgLy8gUmVuYW1lIHRlc3RcbiAgICAgICAgICBjb25zdCB2aWV3VGVzdFBhdGg6IHN0cmluZyA9IGAke3ZpZXdQYXRofS8ke25hbWVDYXBzfVZpZXcudGVzdCR7dGVtcGxhdGVSZWFjdH1gO1xuICAgICAgICAgIGZzLnJlbmFtZVN5bmMoYCR7dmlld1BhdGh9L1NhbXBsZVZpZXcudGVzdCR7dGVtcGxhdGVSZWFjdH0udHh0YCwgdmlld1Rlc3RQYXRoKTtcblxuICAgICAgICAgIC8vIFNlYXJjaCBhbmQgcmVwbGFjZSB2aWV3IG5hbWVcbiAgICAgICAgICB1cGRhdGVUZW1wbGF0ZU5hbWUodmlld1Rlc3RQYXRoLCBvdXRwdXROYW1lLCBuYW1lQ2Fwcyk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgc291cmNlIGZpbGVcbiAgICAgICAgICBjb25zdCB2aWV3RmlsZVBhdGg6IHN0cmluZyA9IGAke3ZpZXdQYXRofS8ke25hbWVDYXBzfVZpZXcke3RlbXBsYXRlUmVhY3R9YDtcbiAgICAgICAgICBmcy5yZW5hbWVTeW5jKGAke3ZpZXdQYXRofS9TYW1wbGVWaWV3JHt0ZW1wbGF0ZVJlYWN0fS50eHRgLCB2aWV3RmlsZVBhdGgpO1xuXG4gICAgICAgICAgLy8gU2VhcmNoIGFuZCByZXBsYWNlIHZpZXcgbmFtZVxuICAgICAgICAgIHVwZGF0ZVRlbXBsYXRlTmFtZSh2aWV3RmlsZVBhdGgsIG91dHB1dE5hbWUsIG5hbWVDYXBzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IENhbm5vdCBjcmVhdGUgbmV3ICR7dHlwZX0uIERpcmVjdG9yeSwgJHt2aWV3UGF0aH0gYWxyZWFkeSBleGlzdHMuYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogQ2Fubm90IGNyZWF0ZSBuZXcgJHt0eXBlfS4gJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgICAgY2FsbGJhY2soMSk7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgJ3ZzY29kZSc6IHtcbiAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBkaXJlY3RvcnlcbiAgICAgIGF3YWl0IHJlbW92ZUZpbGVzKCcudnNjb2RlJywgdHJ1ZSk7XG5cbiAgICAgIC8vIENvcHkgdnNjb2RlIGNvbmZpZ3VyYXRpb25cbiAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi8udnNjb2RlJyksIGN3ZCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjYWxsYmFjaygwKTtcbiAgcmV0dXJuIDA7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsZ0JBQWU7QUFDZixrQkFBaUI7QUFFakIsdUJBQThCO0FBQzlCLHVCQUF3QjtBQUN4QixpQkFBcUY7QUFDckYsaUJBQWtCO0FBRVgsTUFBTSxTQUFTLE9BQU8sTUFBYyxLQUFVLFdBQWdCLE1BQU8sRUFBQyxPQUF3QjtBQUNuRyxRQUFNLEVBQUMsVUFBVSxPQUFPLFlBQVksWUFBWSxVQUFTO0FBQ3pELFFBQU0sTUFBYyxRQUFRLElBQUk7QUFDaEMsc0JBQUksR0FBRyxvQkFBb0IsV0FBVyxRQUFRLEtBQUs7QUFHbkQsNkJBQVUsWUFBWSxLQUFLLEtBQUs7QUFDaEMsUUFBTSxFQUFDLFlBQVksWUFBWSxrQkFBaUIsMkJBQVU7QUFFMUQsTUFBRyxlQUFlO0FBRWhCLCtCQUFVLHNCQUFzQjtBQUFBLEVBQ2xDO0FBRUEsUUFBTSxFQUFDLFdBQVU7QUFFakIsVUFBTztBQUFBLFNBQ0EsYUFBYTtBQUNoQixZQUFNLGtCQUEwQixNQUFNLHNDQUFnQixFQUFDLFNBQVMsUUFBUSxZQUFZLE1BQUssQ0FBQztBQUMxRixlQUFTLGVBQWU7QUFDeEIsYUFBTztBQUFBLElBQ1Q7QUFBQSxTQUNLLFNBQVM7QUFDWixVQUFJO0FBQ0YsY0FBTSxFQUFDLFVBQVUsYUFBYSxpQkFBZ0IsNkJBQWE7QUFBQSxVQUN6RDtBQUFBLFVB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