@mikeyt23/node-cli-utils 2.0.6 → 2.0.8

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.
@@ -26,18 +26,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.isDirectorySync = exports.isDirectory = exports.getHostname = exports.ExtendedError = exports.humanizeTime = exports.getPowershellHackArgs = exports.powershellHackPrefix = exports.logTable = exports.escapeStringForRegex = exports.findFilesRecursively = exports.deleteEnvIfExists = exports.sortDictionaryByKeyAsc = exports.filterDictionary = exports.copyModifiedEnv = exports.overwriteEnvFile = exports.copyNewEnvValues = exports.getConfirmationExample = exports.getConfirmation = exports.askQuestion = exports.ensureDockerRunning = exports.isDockerRunning = exports.isDockerInstalled = exports.whichSync = exports.which = exports.isPlatformLinux = exports.isPlatformMac = exports.isPlatformWindows = exports.simpleSpawnAsync = exports.simpleSpawnSync = exports.simpleCmdAsync = exports.simpleCmdSync = exports.stringToLines = exports.stringToNonEmptyLines = exports.spawnDockerCompose = exports.isDockerComposeProjectNameValid = exports.requireValidPath = exports.requireString = exports.copyDirectoryContents = exports.emptyDirectory = exports.mkdirpSync = exports.mkdirp = exports.ensureDirectory = exports.spawnAsyncLongRunning = exports.spawnAsync = exports.sleep = exports.SimpleSpawnError = exports.SpawnError = exports.trace = exports.logIf = exports.log = void 0;
30
- exports.classToJson = exports.toWslPath = exports.Emoji = exports.stripShellMetaCharacters = exports.hasWhitespace = exports.isValidDirName = exports.collapseWhitespace = exports.withRetryAsync = exports.getNormalizedError = exports.getRequiredEnvVar = exports.isPortAvailable = exports.getPlatformCode = void 0;
31
- const node_child_process_1 = require("node:child_process");
29
+ exports.withRetryAsync = exports.getNormalizedError = exports.getRequiredEnvVar = exports.isPortAvailable = exports.getPlatformCode = exports.isDirectorySync = exports.isDirectory = exports.getHostname = exports.ExtendedError = exports.humanizeTime = exports.getPowershellHackArgs = exports.powershellHackPrefix = exports.logTable = exports.escapeStringForRegex = exports.findFilesRecursively = exports.deleteEnvIfExists = exports.sortDictionaryByKeyAsc = exports.filterDictionary = exports.copyModifiedEnv = exports.overwriteEnvFile = exports.copyNewEnvValues = exports.getConfirmationExample = exports.getConfirmation = exports.askQuestion = exports.whichSync = exports.which = exports.isPlatformLinux = exports.isPlatformMac = exports.isPlatformWindows = exports.simpleSpawnAsync = exports.simpleSpawnSync = exports.simpleCmdAsync = exports.simpleCmdSync = exports.stringToLines = exports.stringToNonEmptyLines = exports.requireValidPath = exports.requireString = exports.copyDirectoryContents = exports.emptyDirectory = exports.mkdirpSync = exports.mkdirp = exports.ensureDirectory = exports.spawnAsyncLongRunning = exports.spawnAsync = exports.sleep = exports.SimpleSpawnError = exports.SpawnError = exports.trace = exports.logIf = exports.log = void 0;
30
+ exports.isErrorEnoent = exports.isErrnoException = exports.conditionallyAsync = exports.getRequiredCliParam = exports.classToJson = exports.toWslPath = exports.Emoji = exports.stripShellMetaCharacters = exports.hasWhitespace = exports.isValidDirName = exports.collapseWhitespace = void 0;
31
+ const net = __importStar(require("net"));
32
32
  const node_fs_1 = __importDefault(require("node:fs"));
33
33
  const promises_1 = __importDefault(require("node:fs/promises"));
34
34
  const node_os_1 = require("node:os");
35
35
  const node_path_1 = __importStar(require("node:path"));
36
36
  const readline = __importStar(require("readline"));
37
- const net = __importStar(require("net"));
38
37
  const NodeCliUtilsConfig_js_1 = require("./NodeCliUtilsConfig.js");
39
38
  const generalUtilsInternal_js_1 = require("./generalUtilsInternal.js");
40
- const dockerComposeCommandsThatSupportDetached = ['exec', 'logs', 'ps', 'restart', 'run', 'start', 'stop', 'up'];
41
39
  /**
42
40
  * Just a wrapper for console.log() to type less.
43
41
  * @param data The data to log
@@ -286,99 +284,6 @@ function requireValidPath(paramName, paramValue) {
286
284
  }
287
285
  }
288
286
  exports.requireValidPath = requireValidPath;
289
- /**
290
- * Project names must contain only lowercase letters, decimal digits, dashes, and underscores, and must begin with a lowercase letter or decimal digit.
291
- *
292
- * See https://docs.docker.com/compose/environment-variables/envvars/#compose_project_name.
293
- * @param projectName The string to validate
294
- * @returns `true` if it's a valid docker compose project name and `false` otherwise
295
- */
296
- function isDockerComposeProjectNameValid(projectName) {
297
- requireString('projectName', projectName);
298
- // Ensure first char is a lowercase letter or digit
299
- if (!/^[a-z0-9]/.test(projectName[0])) {
300
- return false;
301
- }
302
- // Ensure the rest of the chars are only lowercase letters, digits, dashes and underscores
303
- return /^[a-z0-9-_]+$/.test(projectName);
304
- }
305
- exports.isDockerComposeProjectNameValid = isDockerComposeProjectNameValid;
306
- /**
307
- * For docker compose commands, see https://docs.docker.com/compose/reference/. For available options for this wrapper function, see {@link DockerComposeOptions}.
308
- *
309
- * The current working directory will be the directory of the {@link dockerComposePath} unless specified in the options. This ensures relative paths in the
310
- * docker compose file will be relative to itself by default.
311
- *
312
- * See {@link DockerComposeOptions.projectName} for info on where to locate your docker compose file and how to specify the docker project name.
313
- * @param dockerComposePath Path to docker-compose.yml
314
- * @param dockerComposeCommand The docker-compose command to run
315
- * @param options {@link DockerComposeOptions} to use, including additional arguments to pass to the docker compose command and the project name
316
- */
317
- async function spawnDockerCompose(dockerComposePath, dockerComposeCommand, options) {
318
- requireValidPath('dockerComposePath', dockerComposePath);
319
- requireString('dockerComposeCommand', dockerComposeCommand);
320
- if (options === null || options === void 0 ? void 0 : options.cwd) {
321
- requireValidPath('cwd', options.cwd);
322
- }
323
- if (options === null || options === void 0 ? void 0 : options.altEnvFilePath) {
324
- requireValidPath('altEnvFilePath', options.altEnvFilePath);
325
- }
326
- if ((options === null || options === void 0 ? void 0 : options.projectName) && !isDockerComposeProjectNameValid(options.projectName)) {
327
- throw new Error('Invalid docker compose project name specified for the projectName param. Project names must contain only lowercase letters, decimal digits, dashes, and underscores, and must begin with a lowercase letter or decimal digit.');
328
- }
329
- if ((options === null || options === void 0 ? void 0 : options.profile) && !/[a-zA-Z0-9][a-zA-Z0-9_.-]+/.test(options.profile)) {
330
- throw new Error('Invalid profile option - must match regex: [a-zA-Z0-9][a-zA-Z0-9_.-]+');
331
- }
332
- if (!await isDockerRunning()) {
333
- throw new Error('Docker is not running');
334
- }
335
- const defaultOptions = { args: [], attached: false, projectName: undefined, cwd: undefined };
336
- const mergedOptions = { ...defaultOptions, ...options };
337
- if (!options || options.useWslPrefix === undefined) {
338
- mergedOptions.useWslPrefix = NodeCliUtilsConfig_js_1.config.useWslPrefixForDockerCommands;
339
- }
340
- const dockerComposeDir = node_path_1.default.dirname(dockerComposePath);
341
- const dockerComposeFilename = node_path_1.default.basename(dockerComposePath);
342
- if (!mergedOptions.cwd) {
343
- mergedOptions.cwd = dockerComposeDir;
344
- }
345
- let dockerComposePathResolved = mergedOptions.cwd ? node_path_1.default.resolve(dockerComposePath) : dockerComposeFilename;
346
- if (mergedOptions.useWslPrefix) {
347
- dockerComposePathResolved = toWslPath(dockerComposePathResolved);
348
- }
349
- let spawnArgs = ['compose', '-f', dockerComposePathResolved];
350
- if (mergedOptions.projectName) {
351
- spawnArgs.push('--project-name', mergedOptions.projectName);
352
- }
353
- if (mergedOptions.profile) {
354
- spawnArgs.push('--profile', mergedOptions.profile);
355
- }
356
- if (mergedOptions.altEnvFilePath) {
357
- spawnArgs.push('--env-file', mergedOptions.useWslPrefix ? toWslPath(mergedOptions.altEnvFilePath) : mergedOptions.altEnvFilePath);
358
- }
359
- spawnArgs.push(dockerComposeCommand);
360
- if (!mergedOptions.attached && dockerComposeCommandsThatSupportDetached.includes(dockerComposeCommand)) {
361
- spawnArgs.push('--detach');
362
- }
363
- if (mergedOptions.args) {
364
- spawnArgs = spawnArgs.concat(mergedOptions.args);
365
- }
366
- trace(`running command in ${mergedOptions.cwd}: docker ${spawnArgs.join(' ')}`);
367
- const longRunning = dockerComposeCommandsThatSupportDetached.includes(dockerComposeCommand) && (options === null || options === void 0 ? void 0 : options.attached) === true;
368
- trace(`docker compose command will be configured to use long running option: ${longRunning}`);
369
- const spawnOptions = {
370
- cwd: mergedOptions.cwd,
371
- shell: isPlatformWindows(),
372
- isLongRunning: longRunning
373
- };
374
- const spawnResult = mergedOptions.useWslPrefix ?
375
- await (0, generalUtilsInternal_js_1.spawnAsyncInternal)('wsl', ['docker', ...spawnArgs], spawnOptions) :
376
- await (0, generalUtilsInternal_js_1.spawnAsyncInternal)('docker', spawnArgs, spawnOptions);
377
- if (spawnResult.code !== 0) {
378
- throw new Error(`docker compose command failed with code ${spawnResult.code}`);
379
- }
380
- }
381
- exports.spawnDockerCompose = spawnDockerCompose;
382
287
  /**
383
288
  * Splits a string into lines, removing `\n` and `\r` characters. Does not return empty lines. Also see {@link stringToLines}.
384
289
  * @param str String to split into lines
@@ -530,101 +435,6 @@ function whichSync(commandName) {
530
435
  return (0, generalUtilsInternal_js_1.whichInternal)(commandName, simpleCmdSync, simpleSpawnSync);
531
436
  }
532
437
  exports.whichSync = whichSync;
533
- /**
534
- * Uses {@link which} to determine if docker is installed. If the `which` call doesn't find docker and the platform
535
- * is Windows, then this will check the output of `wsl docker --version` to see if just the engine is installed.
536
- * @returns `true` if docker is installed, `false` otherwise
537
- */
538
- async function isDockerInstalled() {
539
- if ((await which('docker')).location) {
540
- return true;
541
- }
542
- if (isPlatformWindows()) {
543
- const result = await simpleSpawnAsync('wsl', ['docker', '--version']);
544
- return result.code === 0;
545
- }
546
- return false;
547
- }
548
- exports.isDockerInstalled = isDockerInstalled;
549
- /**
550
- * Runs the `docker info` command and looks for "error during connect" in the output to determine if docker is running. If you
551
- * want to check if docker is installed, use {@link isDockerInstalled}.
552
- * @returns `true` if docker is installed and running, `false` otherwise
553
- */
554
- async function isDockerRunning() {
555
- try {
556
- const result = isPlatformWindows() ?
557
- await simpleSpawnAsync('wsl', ['docker', 'info']) :
558
- await simpleSpawnAsync('docker', ['info']);
559
- return result.code === 0 && !result.stdout.includes('error during connect');
560
- }
561
- catch (err) {
562
- return false;
563
- }
564
- }
565
- exports.isDockerRunning = isDockerRunning;
566
- /**
567
- * Attempt to start the docker service if it isn't running. Whether it's running is determined by a call to {@link isDockerRunning}.
568
- *
569
- * Notes on docker startup command:
570
- * - May require entering a password
571
- * - On Windows with Docker Desktop and from within powershell or cmd it will run in powershell: `Start-Process "C:\Program Files\Docker\Docker\Docker Desktop.exe" -NoNewWindow`
572
- * - On Windows without Docker Desktop from within powershell or cmd it will run: `sudo service docker start`
573
- * - On Linux (including WSL) it will run: `sudo systemctl start docker`
574
- * - Not currently supported on Mac
575
- * - If you're on Windows and have Docker Desktop but it is stopped and you're in a WSL shell, docker will appear as if it's not installed and this method will throw
576
- *
577
- * @throws An {@link Error} If docker is not detected on the system.
578
- * @throws An {@link Error} if docker is detected as installed and not running but the OS is Mac.
579
- */
580
- async function ensureDockerRunning() {
581
- if (!await isDockerInstalled()) {
582
- throw new Error('Docker does not appear to be installed');
583
- }
584
- if (await isDockerRunning()) {
585
- return;
586
- }
587
- let command;
588
- let args = [];
589
- const isWindows = isPlatformWindows();
590
- const isLinux = isPlatformLinux();
591
- const dockerDesktopPath = 'C:\\Program Files\\Docker\\Docker\\Docker Desktop.exe';
592
- let useExec = false;
593
- if (isWindows) {
594
- if (node_fs_1.default.existsSync(dockerDesktopPath)) {
595
- command = 'powershell';
596
- args = getPowershellHackArgs(`Start-Process 'C:\\Program Files\\Docker\\Docker\\Docker Desktop.exe' -NoNewWindow`);
597
- }
598
- else {
599
- command = 'C:\\windows\\system32\\wsl.exe -u root -e sh -c "service docker start"';
600
- useExec = true;
601
- }
602
- }
603
- else if (isLinux) {
604
- command = 'sudo';
605
- args = ['service', 'docker', 'start'];
606
- }
607
- else {
608
- throw new Error('Starting docker within ensureDockerRunning is only supported on Windows and Linux - you will have to start docker manually');
609
- }
610
- if (useExec) {
611
- try {
612
- (0, node_child_process_1.execSync)(command, { stdio: 'inherit' });
613
- }
614
- catch (err) {
615
- throw new ExtendedError('Unable to start docker', getNormalizedError(err));
616
- }
617
- }
618
- else {
619
- const result = await spawnAsync(command, args, { shell: isWindows });
620
- if (result.code !== 0) {
621
- throw new Error('Unable to start docker - see error above');
622
- }
623
- }
624
- // Wait for docker to be up and ready before continuing
625
- await withRetryAsync(generalUtilsInternal_js_1.throwIfDockerNotReady, 6, 3000, { initialDelayMilliseconds: 3000 });
626
- }
627
- exports.ensureDockerRunning = ensureDockerRunning;
628
438
  /**
629
439
  * Uses built-in NodeJS readline to ask a question and return the user's answer.
630
440
  * @param query The question to ask
@@ -1141,6 +951,7 @@ var Emoji;
1141
951
  Emoji["Stop"] = "\uD83D\uDED1";
1142
952
  Emoji["Certificate"] = "\uD83D\uDCDC";
1143
953
  Emoji["Key"] = "\uD83D\uDD11";
954
+ Emoji["Scull"] = "\u2620\uFE0F";
1144
955
  })(Emoji || (exports.Emoji = Emoji = {}));
1145
956
  /**
1146
957
  * Converts a windows path to a WSL path (Windows Subsystem for Linux) if it's an absolute path, otherwise returns it unchanged.
@@ -1173,15 +984,28 @@ function toWslPath(winPath, wrapInQuotesIfSpaces = true) {
1173
984
  return wslPath;
1174
985
  }
1175
986
  exports.toWslPath = toWslPath;
987
+ /**
988
+ * Serialize a class instance. Ignore properties with underscore prefix and include getters. Useful for overriding the `toJSON` function of
989
+ * a class so that calls to `JSON.stringify()` will generate more appropriate JSON.
990
+ *
991
+ * @example
992
+ * ```
993
+ * class MyClass {
994
+ * //...
995
+ * toJSON = () => classToJson(this)
996
+ * //...
997
+ * }
998
+ * ```
999
+ * @param instance A class instance, usually `this` if `classToJson` is being used as a class method.
1000
+ * @returns Json serialization of the class instance.
1001
+ */
1176
1002
  function classToJson(instance) {
1177
1003
  const jsonObj = {};
1178
- // Include public fields
1179
1004
  for (const [key, value] of Object.entries(instance)) {
1180
1005
  if (!key.startsWith('_')) {
1181
1006
  jsonObj[key] = value;
1182
1007
  }
1183
1008
  }
1184
- // Include fields with getters
1185
1009
  const proto = Object.getPrototypeOf(instance);
1186
1010
  for (const key of Object.getOwnPropertyNames(proto)) {
1187
1011
  if (key.startsWith('_'))
@@ -1195,4 +1019,67 @@ function classToJson(instance) {
1195
1019
  return jsonObj;
1196
1020
  }
1197
1021
  exports.classToJson = classToJson;
1198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbFV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYWxVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyREFBMkQ7QUFDM0Qsc0RBQXdCO0FBQ3hCLGdFQUFrQztBQUNsQyxxQ0FBa0M7QUFDbEMsdURBQXlDO0FBQ3pDLG1EQUFvQztBQUNwQyx5Q0FBMEI7QUFDMUIsbUVBQWdEO0FBQ2hELHVFQUF5UTtBQU16USxNQUFNLHdDQUF3QyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO0FBRWhIOzs7O0dBSUc7QUFDSCxTQUFnQixHQUFHLENBQUMsSUFBYSxFQUFFLEdBQUcsUUFBbUI7SUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQTtBQUNoQyxDQUFDO0FBRkQsa0JBRUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsS0FBSyxDQUFDLFNBQWtCLEVBQUUsSUFBYSxFQUFFLEdBQUcsUUFBbUI7SUFDN0UsSUFBSSxTQUFTLEVBQUU7UUFDYixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFBO0tBQy9CO0FBQ0gsQ0FBQztBQUpELHNCQUlDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLEtBQUssQ0FBQyxJQUFjLEVBQUUsR0FBRyxRQUFtQjtJQUMxRCxJQUFJLDhCQUFNLENBQUMsWUFBWSxFQUFFO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQTtRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQTtLQUN2QztBQUNILENBQUM7QUFMRCxzQkFLQztBQWlDRDs7OztH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
1022
+ /**
1023
+ * Get's the value for the CLI param at process.argv[`argvIndex`] and throws the specified optional `errorMessage`
1024
+ * or a default error message if the CLI arg is missing.
1025
+ *
1026
+ * Notes on common index position values:
1027
+ *
1028
+ * - `0`: NodeJS path
1029
+ * - `1`: Script path
1030
+ * - `2`: First script param - for `swig` this will be the task name
1031
+ * @param errorMessage
1032
+ * @returns
1033
+ */
1034
+ function getRequiredCliParam(argvIndex, errorMessage) {
1035
+ if (argvIndex < 0) {
1036
+ throw new Error('The argvIndex must be greater than or equal to 0');
1037
+ }
1038
+ const defaultErrorMessage = `Missing required CLI param at argv index ${argvIndex}`;
1039
+ const paramValue = process.argv[argvIndex];
1040
+ // Allow falsy values like "0" - it can be anything except undefined
1041
+ if (paramValue === undefined) {
1042
+ throw new Error(errorMessage !== null && errorMessage !== void 0 ? errorMessage : defaultErrorMessage);
1043
+ }
1044
+ return paramValue;
1045
+ }
1046
+ exports.getRequiredCliParam = getRequiredCliParam;
1047
+ // JSDoc is covered by function overloads above
1048
+ async function conditionallyAsync(conditionOrConditionAsyncFunc, asyncFunc, logEnabled = false) {
1049
+ let resolvedCondition;
1050
+ if (typeof conditionOrConditionAsyncFunc === 'function') {
1051
+ resolvedCondition = await conditionOrConditionAsyncFunc();
1052
+ }
1053
+ else {
1054
+ resolvedCondition = conditionOrConditionAsyncFunc;
1055
+ }
1056
+ if (resolvedCondition) {
1057
+ logIf(logEnabled, 'conditional check is true - running');
1058
+ return await asyncFunc();
1059
+ }
1060
+ else {
1061
+ logIf(logEnabled, 'conditional check is false - skipping');
1062
+ }
1063
+ }
1064
+ exports.conditionallyAsync = conditionallyAsync;
1065
+ /**
1066
+ * Type guard function to check if an Error is a `NodeJS.ErrnoException`.
1067
+ * @param err The Error object to check.
1068
+ * @returns `true` if it's a NodeJS.ErrnoException and `false` otherwise.
1069
+ */
1070
+ function isErrnoException(err) {
1071
+ return err instanceof Error
1072
+ && 'code' in err
1073
+ && 'errno' in err
1074
+ && 'path' in err
1075
+ && 'syscall' in err;
1076
+ }
1077
+ exports.isErrnoException = isErrnoException;
1078
+ /**
1079
+ * Return `true` if `err` is a `NodeJS.ErrnoException` and has a `code` property equal to `ENOENT`.
1080
+ */
1081
+ function isErrorEnoent(err) {
1082
+ return isErrnoException(err) && err.code === 'ENOENT';
1083
+ }
1084
+ exports.isErrorEnoent = isErrorEnoent;
1085
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbFV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYWxVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBMEI7QUFFMUIsc0RBQXdCO0FBQ3hCLGdFQUFrQztBQUNsQyxxQ0FBa0M7QUFDbEMsdURBQXlDO0FBQ3pDLG1EQUFvQztBQUNwQyxtRUFBZ0Q7QUFDaEQsdUVBQTROO0FBTTVOOzs7O0dBSUc7QUFDSCxTQUFnQixHQUFHLENBQUMsSUFBYSxFQUFFLEdBQUcsUUFBbUI7SUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQTtBQUNoQyxDQUFDO0FBRkQsa0JBRUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsS0FBSyxDQUFDLFNBQWtCLEVBQUUsSUFBYSxFQUFFLEdBQUcsUUFBbUI7SUFDN0UsSUFBSSxTQUFTLEVBQUU7UUFDYixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFBO0tBQy9CO0FBQ0gsQ0FBQztBQUpELHNCQUlDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLEtBQUssQ0FBQyxJQUFjLEVBQUUsR0FBRyxRQUFtQjtJQUMxRCxJQUFJLDhCQUFNLENBQUMsWUFBWSxFQUFFO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQTtRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQTtLQUN2QztBQUNILENBQUM7QUFMRCxzQkFLQztBQWlDRDs7OztHQUlHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsS0FBSztJQUduQyxZQUFZLE9BQWUsRUFBRSxNQUFtQjtRQUM5QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUN0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
@@ -1 +1 @@
1
- {"version":3,"file":"generalUtilsInternal.d.ts","sourceRoot":"","sources":["../../src/generalUtilsInternal.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,iBAAiB,EAAc,qBAAqB,EAAE,WAAW,EAAE,qBAAqB,EAAE,WAAW,EAAyK,MAAM,mBAAmB,CAAA;AAOlU,wBAAsB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,iCAAiC,UAAO,EAAE,uBAAuB,UAAQ,iBAuCnJ;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAUzE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAE7E;AAED,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAqDvI;AAiHD,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAgBtF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,GAAE,OAAc,EAAE,MAAM,GAAE,OAAe,GAAG,iBAAiB,CAmBpJ;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,GAAE,OAAc,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmBpK;AAED,KAAK,mBAAmB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAA;AAG1G,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAsCvJ;AAED,wBAAsB,qBAAqB,kBAM1C"}
1
+ {"version":3,"file":"generalUtilsInternal.d.ts","sourceRoot":"","sources":["../../src/generalUtilsInternal.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmC,iBAAiB,EAAc,qBAAqB,EAAE,WAAW,EAAE,qBAAqB,EAAE,WAAW,EAAwL,MAAM,mBAAmB,CAAA;AAOhW,wBAAsB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,iCAAiC,UAAO,EAAE,uBAAuB,UAAQ,iBAuCnJ;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAUzE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAE7E;AAED,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAwDvI;AAiHD,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAgBtF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,GAAE,OAAc,EAAE,MAAM,GAAE,OAAe,GAAG,iBAAiB,CAmBpJ;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,GAAE,OAAc,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmBpK;AAED,KAAK,mBAAmB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAA;AAG1G,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAsCvJ;AAED,wBAAsB,qBAAqB,kBAM1C"}
@@ -103,7 +103,7 @@ async function spawnAsyncInternal(command, args, options) {
103
103
  const child = (0, node_child_process_1.spawn)(command, args, mergedOptions);
104
104
  const childId = child.pid;
105
105
  if (childId === undefined) {
106
- throw new Error(`${logPrefix}ChildProcess pid is undefined - spawn failed`);
106
+ (0, generalUtils_js_1.trace)(`${logPrefix}ChildProcess pid is undefined - spawn failed - an error event should be emitted shortly`);
107
107
  }
108
108
  // This event will only be emitted when stdio is NOT set to 'inherit'
109
109
  (_a = child.stdout) === null || _a === void 0 ? void 0 : _a.on('data', (data) => {
@@ -127,7 +127,10 @@ async function spawnAsyncInternal(command, args, options) {
127
127
  resolve(result);
128
128
  });
129
129
  child.on('error', (error) => {
130
- (0, generalUtils_js_1.trace)(`${logPrefix}ChildProcess emitted an error event: `, error);
130
+ if ((0, generalUtils_js_1.isErrorEnoent)(error)) {
131
+ throw new generalUtils_js_1.ExtendedError(`Command not found: ${command}`, error);
132
+ }
133
+ throw new generalUtils_js_1.ExtendedError('ChildProcess emitted an error event - see innerError', error);
131
134
  });
132
135
  }
133
136
  catch (err) {
@@ -250,7 +253,7 @@ function simpleSpawnSyncInternal(command, args, throwOnNonZero = true, useCmd =
250
253
  const spawnResult = {
251
254
  code: (_a = result.status) !== null && _a !== void 0 ? _a : 1,
252
255
  stdout: result.stdout.toString(),
253
- stderr: result.stdout.toString(),
256
+ stderr: result.stderr.toString(),
254
257
  stdoutLines: (0, generalUtils_js_1.stringToNonEmptyLines)(result.stdout.toString()),
255
258
  error: result.error,
256
259
  cwd: process.cwd()
@@ -267,7 +270,7 @@ async function simpleSpawnAsyncInternal(command, args, throwOnNonZero = true, us
267
270
  const spawnResult = {
268
271
  code: result.code,
269
272
  stdout: result.stdout,
270
- stderr: result.stdout,
273
+ stderr: result.stderr,
271
274
  stdoutLines: (0, generalUtils_js_1.stringToNonEmptyLines)(result.stdout),
272
275
  error: result.error,
273
276
  cwd: process.cwd()
@@ -324,4 +327,4 @@ async function throwIfDockerNotReady() {
324
327
  }
325
328
  }
326
329
  exports.throwIfDockerNotReady = throwIfDockerNotReady;
327
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbFV0aWxzSW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhbFV0aWxzSW50ZXJuYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyREFBbUU7QUFDbkUsc0RBQXdCO0FBQ3hCLGdFQUFrQztBQUNsQywwREFBNEI7QUFDNUIsbUVBQWdEO0FBQ2hELHVEQUFrVTtBQUVsVSxNQUFNLFVBQVUsR0FBRyxPQUFPLE9BQU8sS0FBSyxVQUFVLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUE7QUFDaEcsTUFBTSxLQUFLLEdBQUcsQ0FBQyxVQUFVLENBQUE7QUFDekIsTUFBTSx5QkFBeUIsR0FBRyx3QkFBd0IsQ0FBQTtBQUMxRCxNQUFNLGdCQUFnQixHQUFXLEVBQUUsQ0FBQSxDQUFDLHFDQUFxQztBQUVsRSxLQUFLLFVBQVUsT0FBTyxDQUFDLFVBQWtCLEVBQUUsZUFBdUIsRUFBRSxpQ0FBaUMsR0FBRyxJQUFJLEVBQUUsdUJBQXVCLEdBQUcsS0FBSztJQUNsSixJQUFBLGtDQUFnQixFQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUUxQyxzRUFBc0U7SUFDdEUsSUFBSSxDQUFDLGlCQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ25DLElBQUEscUJBQUcsRUFBQyxZQUFZLGVBQWUsU0FBUyxVQUFVLEVBQUUsQ0FBQyxDQUFBO1FBQ3JELE1BQU0sa0JBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQy9DLE9BQU07S0FDUDtJQUVELE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRTNELHlHQUF5RztJQUN6RyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzVDLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUNsRSxNQUFNLHdCQUF3QixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBRS9HLElBQUksd0JBQXdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN2QyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDNUIsSUFBQSxxQkFBRyxFQUFDLDBCQUEwQixlQUFlLEtBQUssd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtTQUN6RjtLQUNGO0lBRUQsMEZBQTBGO0lBQzFGLDBHQUEwRztJQUMxRyxNQUFNLE9BQU8sR0FBMEIsRUFBRSxDQUFBO0lBQ3pDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQzNHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUE7S0FDckI7SUFFRCxvREFBb0Q7SUFDcEQsS0FBSyxNQUFNLEdBQUcsSUFBSSx3QkFBd0IsRUFBRTtRQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0tBQy9CO0lBRUQsTUFBTSxhQUFhLEdBQTBCLElBQUEsd0NBQXNCLEVBQUMsT0FBTyxDQUFDLENBQUE7SUFDNUUsTUFBTSxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNsRSxNQUFNLGtCQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO0FBQ3pELENBQUM7QUF2Q0QsMEJBdUNDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsT0FBZTtJQUNoRCxNQUFNLElBQUksR0FBMEIsRUFBRSxDQUFBO0lBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUEsdUNBQXFCLEVBQUMsaUJBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUN4RSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtRQUN4QixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtTQUN4QztLQUNGO0lBQ0QsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBVkQsZ0RBVUM7QUFFRCxTQUFnQix5QkFBeUIsQ0FBQyxJQUEyQjtJQUNuRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFBO0FBQ2pGLENBQUM7QUFGRCw4REFFQztBQU1NLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxPQUFlLEVBQUUsSUFBYyxFQUFFLE9BQXVDO0lBQy9HLE1BQU0sYUFBYSxHQUFHLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3pELE1BQU0sU0FBUyxHQUFHLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQTtJQUVuRCxrSEFBa0g7SUFDbEgsbUpBQW1KO0lBQ25KLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2xGLElBQUksb0JBQW9CLEVBQUU7UUFDeEIsT0FBTyxNQUFNLDRCQUE0QixDQUFDLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0tBQ3pHO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTs7UUFDckMsSUFBSTtZQUNGLE1BQU0sTUFBTSxHQUFnQixxQkFBcUIsRUFBRSxDQUFBO1lBRW5ELE1BQU0sS0FBSyxHQUFHLElBQUEsMEJBQUssRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFBO1lBQ2pELE1BQU0sT0FBTyxHQUF1QixLQUFLLENBQUMsR0FBRyxDQUFBO1lBQzdDLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLFNBQVMsOENBQThDLENBQUMsQ0FBQTthQUM1RTtZQUVELHFFQUFxRTtZQUNyRSxNQUFBLEtBQUssQ0FBQyxNQUFNLDBDQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7WUFDbEMsQ0FBQyxDQUFDLENBQUE7WUFFRixxRUFBcUU7WUFDckUsTUFBQSxLQUFLLENBQUMsTUFBTSwwQ0FBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQ2xDLENBQUMsQ0FBQyxDQUFBO1lBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFBO1lBRXJELEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNoQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO2dCQUM1RCxJQUFBLHVCQUFLLEVBQUMsR0FBRyxTQUFTLGlDQUFpQyxJQUFJLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQTtnQkFDMUUsTUFBTSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQTtnQkFDOUQsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUE7Z0JBQzFCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtnQkFDakIsSUFBSSxhQUFhLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO29CQUNyRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUE7b0JBQ3pELE9BQU07aUJBQ1A7Z0JBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2pCLENBQUMsQ0FBQyxDQUFBO1lBRUYsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDMUIsSUFBQSx1QkFBSyxFQUFDLEdBQUcsU0FBUyx1Q0FBdUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUNuRSxDQUFDLENBQUMsQ0FBQTtTQUNIO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7U0FDWjtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQXJERCxnREFxREM7QUFFRCx1R0FBdUc7QUFDdkcsU0FBUyxhQUFhLENBQUMsSUFBbUIsRUFBRSxhQUFzQjtJQUNoRSxPQUFPLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxDQUFDLENBQUE7QUFDekQsQ0FBQztBQUVELE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxPQUF1QyxFQUF3QixFQUFFO0lBQ25HLE1BQU0sbUJBQW1CLEdBQXlCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQTtJQUNuSCxPQUFPLEVBQUUsR0FBRyxtQkFBbUIsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFBO0FBQy9DLENBQUMsQ0FBQTtBQUVELGtDQUFrQztBQUNsQyxvQ0FBb0M7QUFDcEMsa0JBQWtCO0FBQ2xCLDhFQUE4RTtBQUM5RSw2QkFBNkI7QUFDN0IsS0FBSyxVQUFVLHVCQUF1QixDQUFDLE9BQWUsRUFBRSxJQUFlLEVBQUUsT0FBdUM7O0lBQzlHLE1BQU0sU0FBUyxHQUFHLE1BQU0sbUJBQW1CLEVBQUUsQ0FBQTtJQUM3QyxJQUFJLG9CQUFvQixHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFBO0lBRTFFLGtGQUFrRjtJQUNsRixJQUFJLENBQUMsaUJBQUUsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUMzRixvQkFBb0IsR0FBRyxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUseUJBQXlCLENBQUMsQ0FBQTtLQUMzRTtJQUVELElBQUksQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsYUFBYSxLQUFJLElBQUEsbUNBQWlCLEdBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUksTUFBQSxJQUFJLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBLENBQUMsRUFBRTtRQUNsSSxPQUFPLG9CQUFvQixDQUFBO0tBQzVCO0lBRUQsT0FBTyxTQUFTLENBQUE7QUFDbEIsQ0FBQztBQUVELEtBQUssVUFBVSw0QkFBNEIsQ0FBQyxTQUFpQixFQUFFLG9CQUE0QixFQUFFLE9BQWUsRUFBRSxJQUFjLEVBQUUsT0FBc0M7SUFDbEssSUFBQSx1QkFBSyxFQUFDLEdBQUcsU0FBUyxnR0FBZ0csQ0FBQyxDQUFBO0lBRW5ILE1BQU0sb0JBQW9CLEdBQUcsOEJBQU0sQ0FBQyw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUM3RSxNQUFNLGtCQUFrQixHQUFHLDhCQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ3pELE1BQU0sbUJBQW1CLEdBQUcsOEJBQU0sQ0FBQyxxQ0FBcUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUVuRixJQUFBLHVCQUFLLEVBQUMsR0FBRyxTQUFTLHNDQUFzQyxvQkFBb0IsRUFBRSxDQUFDLENBQUE7SUFDL0UsSUFBQSx1QkFBSyxFQUFDLEdBQUcsU0FBUyxvQ0FBb0Msa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO0lBQzNFLElBQUEsdUJBQUssRUFBQyxHQUFHLFNBQVMsdUNBQXVDLG1CQUFtQixJQUFJLENBQUMsQ0FBQTtJQUNqRixJQUFJLDhCQUFNLENBQUMsOEJBQThCLEVBQUU7UUFDekMsSUFBQSx1QkFBSyxFQUFDLEdBQUcsU0FBUyxtQ0FBbUMsOEJBQU0sQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQUE7S0FDM0Y7SUFFRCxNQUFNLGNBQWMsR0FBRztRQUNyQixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsT0FBTztRQUNQLEdBQUcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxFQUFFLENBQUM7S0FDaEIsQ0FBQTtJQUVELE9BQU8sTUFBTSxJQUFBLDRCQUFVLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDaEcsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsT0FBOEI7O0lBQzNELE9BQU87UUFDTCxJQUFJLEVBQUUsQ0FBQztRQUNQLE1BQU0sRUFBRSxFQUFFO1FBQ1YsTUFBTSxFQUFFLEVBQUU7UUFDVixHQUFHLEVBQUUsTUFBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxHQUFHLDBDQUFFLFFBQVEsRUFBRSxtQ0FBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0tBQy9DLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsSUFBWSxFQUFFLE1BQW1CLEVBQUUsT0FBc0M7SUFDOUYsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0RBQW9ELENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNwSSxPQUFPLElBQUksNEJBQVUsQ0FBQywyQ0FBMkMsSUFBSSxHQUFHLFVBQVUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQy9GLENBQUM7QUFFRCxNQUFNLGNBQWM7SUFLbEIsWUFBWSxLQUFtQixFQUFFLFNBQWlCO1FBSjFDLFlBQU8sR0FBcUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBVXJFLHNGQUFzRjtRQUM5RSxZQUFPLEdBQUcsQ0FBQyxNQUFzQixFQUFFLEVBQUU7WUFDM0MsSUFBQSx1QkFBSyxFQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsb0JBQW9CLE1BQU0sbUNBQW1DLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtZQUNyRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN2QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDZixDQUFDLENBQUE7UUFWQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUMxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDZixDQUFDO0lBU0QsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDbEUsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQzlFLENBQUM7Q0FDRjtBQUVELEtBQUssVUFBVSxtQkFBbUI7SUFDaEMsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQixPQUFPLGdCQUFnQixDQUFBO0tBQ3hCO0lBQ0QsSUFBSSxLQUFLLEVBQUU7UUFDVCxNQUFNLE1BQU0sR0FBRyx3REFBYSxtQkFBbUIsR0FBQyxDQUFBO1FBQ2hELE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxDQUFBO1FBQ3pELE1BQU0sU0FBUyxHQUFHLG1CQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQy9DLE9BQU8sbUJBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUE7S0FDakM7SUFDRCxPQUFPLFNBQVMsQ0FBQTtBQUNsQixDQUFDO0FBRUQsU0FBZ0Isa0NBQWtDLENBQUMsR0FBVyxFQUFFLGVBQXVCO0lBQ3JGLElBQUEsa0NBQWdCLEVBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzVCLElBQUEsK0JBQWEsRUFBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFFekMsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUE7S0FDNUU7SUFFRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUMvRSxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUU7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFBO0tBQzNFO0lBRUQsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDbkUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFBO0tBQ2xFO0FBQ0gsQ0FBQztBQWhCRCxnRkFnQkM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxPQUFlLEVBQUUsSUFBZSxFQUFFLGlCQUEwQixJQUFJLEVBQUUsU0FBa0IsS0FBSzs7SUFDL0gsSUFBQSwrQkFBYSxFQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUVqQyxNQUFNLE1BQU0sR0FBRyxJQUFBLDhCQUFTLEVBQUMsT0FBTyxFQUFFLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBRXZHLE1BQU0sV0FBVyxHQUFzQjtRQUNyQyxJQUFJLEVBQUUsTUFBQSxNQUFNLENBQUMsTUFBTSxtQ0FBSSxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtRQUNoQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7UUFDaEMsV0FBVyxFQUFFLElBQUEsdUNBQXFCLEVBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1RCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7UUFDbkIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUU7S0FDbkIsQ0FBQTtJQUVELElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksY0FBYyxFQUFFO1FBQzVDLE1BQU0sSUFBSSxrQ0FBZ0IsQ0FBQyxvQ0FBb0MsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0tBQ2hHO0lBRUQsT0FBTyxXQUFXLENBQUE7QUFDcEIsQ0FBQztBQW5CRCwwREFtQkM7QUFFTSxLQUFLLFVBQVUsd0JBQXdCLENBQUMsT0FBZSxFQUFFLElBQWUsRUFBRSxpQkFBMEIsSUFBSSxFQUFFLFNBQWtCLEtBQUs7SUFDdEksSUFBQSwrQkFBYSxFQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUVqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsNEJBQVUsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7SUFFcEcsTUFBTSxXQUFXLEdBQXNCO1FBQ3JDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQ3JCLFdBQVcsRUFBRSxJQUFBLHVDQUFxQixFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDakQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1FBQ25CLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFO0tBQ25CLENBQUE7SUFFRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLGNBQWMsRUFBRTtRQUM1QyxNQUFNLElBQUksa0NBQWdCLENBQUMsb0NBQW9DLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQTtLQUNoRztJQUVELE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUM7QUFuQkQsNERBbUJDO0FBSUQsNkRBQTZEO0FBQzdELFNBQWdCLGFBQWEsQ0FBQyxXQUFtQixFQUFFLFNBQThCLEVBQUUsV0FBZ0M7SUFDakgsSUFBQSwrQkFBYSxFQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUV6QyxJQUFJLElBQUEsMENBQXdCLEVBQUMsV0FBVyxDQUFDLEtBQUssV0FBVyxFQUFFO1FBQ3pELE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELFdBQVcsRUFBRSxDQUFDLENBQUE7S0FDcEY7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFBLG1DQUFpQixHQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFBO0lBQzlELE1BQU0sR0FBRyxHQUFHLElBQUEsbUNBQWlCLEdBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUE7SUFDbkQsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQ0FBaUIsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUV0RSxJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUVsQyxJQUFJLE1BQU0sWUFBWSxPQUFPLEVBQUU7WUFDN0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbEMsUUFBUSxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSzthQUMxQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoQixRQUFRLEVBQUUsU0FBUztnQkFDbkIsbUJBQW1CLEVBQUUsU0FBUztnQkFDOUIsS0FBSyxFQUFFLEdBQUc7YUFDWCxDQUFDLENBQUMsQ0FBQTtTQUNKO1FBRUQsT0FBTztZQUNMLFFBQVEsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUMvQixtQkFBbUIsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDaEQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1NBQ3BCLENBQUE7S0FDRjtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxTQUFTO1lBQ25CLG1CQUFtQixFQUFFLFNBQVM7WUFDOUIsS0FBSyxFQUFFLEdBQVk7U0FDcEIsQ0FBQTtLQUNGO0FBQ0gsQ0FBQztBQXRDRCxzQ0FzQ0M7QUFFTSxLQUFLLFVBQVUscUJBQXFCO0lBQ3pDLElBQUksSUFBQSxtQ0FBaUIsR0FBRSxFQUFFO1FBQ3ZCLE1BQU0sSUFBQSxrQ0FBZ0IsRUFBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtLQUNsRDtTQUFNO1FBQ0wsTUFBTSxJQUFBLGtDQUFnQixFQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7S0FDM0M7QUFDSCxDQUFDO0FBTkQsc0RBTUMifQ==
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbFV0aWxzSW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhbFV0aWxzSW50ZXJuYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyREFBbUU7QUFDbkUsc0RBQXdCO0FBQ3hCLGdFQUFrQztBQUNsQywwREFBNEI7QUFDNUIsbUVBQWdEO0FBQ2hELHVEQUFnVztBQUVoVyxNQUFNLFVBQVUsR0FBRyxPQUFPLE9BQU8sS0FBSyxVQUFVLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUE7QUFDaEcsTUFBTSxLQUFLLEdBQUcsQ0FBQyxVQUFVLENBQUE7QUFDekIsTUFBTSx5QkFBeUIsR0FBRyx3QkFBd0IsQ0FBQTtBQUMxRCxNQUFNLGdCQUFnQixHQUFXLEVBQUUsQ0FBQSxDQUFDLHFDQUFxQztBQUVsRSxLQUFLLFVBQVUsT0FBTyxDQUFDLFVBQWtCLEVBQUUsZUFBdUIsRUFBRSxpQ0FBaUMsR0FBRyxJQUFJLEVBQUUsdUJBQXVCLEdBQUcsS0FBSztJQUNsSixJQUFBLGtDQUFnQixFQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUUxQyxzRUFBc0U7SUFDdEUsSUFBSSxDQUFDLGlCQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ25DLElBQUEscUJBQUcsRUFBQyxZQUFZLGVBQWUsU0FBUyxVQUFVLEVBQUUsQ0FBQyxDQUFBO1FBQ3JELE1BQU0sa0JBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQy9DLE9BQU07S0FDUDtJQUVELE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRTNELHlHQUF5RztJQUN6RyxNQUFNLFlBQVks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
@@ -1 +1 @@
1
- {"version":3,"file":"DependencyChecker.d.ts","sourceRoot":"","sources":["../../src/DependencyChecker.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAA;AAClD,MAAM,MAAM,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAC7D,MAAM,MAAM,eAAe,GAAG,eAAe,EAAE,CAAA;AAE/C,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,iBAAiB;IAC7C,SAAS,CAAC,YAAY,EAAE,YAAY,CAAA;;IAMpC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAE9C,kBAAkB,CAAC,kBAAkB,EAAE,eAAe,GAAG,OAAO;IAOhE,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;cA0BnF,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;cAY1C,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;cASvC,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;cAQzC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;cAI1B,gCAAgC,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAsB/E,6BAA6B,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cA6B5E,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;cAI7B,eAAe;cAIf,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;cAmB9B,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAczD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB/D,OAAO,CAAC,WAAW;CAYpB"}
1
+ {"version":3,"file":"DependencyChecker.d.ts","sourceRoot":"","sources":["../../src/DependencyChecker.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAA;AAClD,MAAM,MAAM,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAC7D,MAAM,MAAM,eAAe,GAAG,eAAe,EAAE,CAAA;AAE/C,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,iBAAiB;IAC7C,SAAS,CAAC,YAAY,EAAE,YAAY,CAAA;;IAMpC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAE9C,kBAAkB,CAAC,kBAAkB,EAAE,eAAe,GAAG,OAAO;IAOhE,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;cA0BnF,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;cAY1C,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;cASvC,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;cAQzC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;cAI1B,gCAAgC,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAsB/E,6BAA6B,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cA6B5E,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;cAI7B,eAAe;cAIf,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;cAmB9B,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAczD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB/D,OAAO,CAAC,WAAW;CAYpB"}