@mikeyt23/node-cli-utils 2.0.20 → 2.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/cjs/DependencyChecker.d.ts +3 -0
  2. package/dist/cjs/DependencyChecker.d.ts.map +1 -1
  3. package/dist/cjs/DependencyChecker.js +5 -2
  4. package/dist/cjs/DotnetSdkUtility.d.ts +18 -0
  5. package/dist/cjs/DotnetSdkUtility.d.ts.map +1 -0
  6. package/dist/cjs/DotnetSdkUtility.js +56 -0
  7. package/dist/cjs/DotnetVersion.d.ts +14 -0
  8. package/dist/cjs/DotnetVersion.d.ts.map +1 -0
  9. package/dist/cjs/DotnetVersion.js +40 -0
  10. package/dist/cjs/GitUtility.js +1 -1
  11. package/dist/cjs/NixUtil.js +1 -1
  12. package/dist/cjs/NugetUtility.d.ts +38 -11
  13. package/dist/cjs/NugetUtility.d.ts.map +1 -1
  14. package/dist/cjs/NugetUtility.js +106 -51
  15. package/dist/cjs/TarballUtility.d.ts +1 -0
  16. package/dist/cjs/TarballUtility.d.ts.map +1 -1
  17. package/dist/cjs/TarballUtility.js +1 -1
  18. package/dist/cjs/certUtils.js +1 -1
  19. package/dist/cjs/dockerUtils.js +2 -2
  20. package/dist/cjs/dotnetUtils.d.ts +99 -8
  21. package/dist/cjs/dotnetUtils.d.ts.map +1 -1
  22. package/dist/cjs/dotnetUtils.js +341 -25
  23. package/dist/cjs/generalUtils.d.ts +19 -5
  24. package/dist/cjs/generalUtils.d.ts.map +1 -1
  25. package/dist/cjs/generalUtils.js +22 -10
  26. package/dist/cjs/generalUtilsInternal.d.ts +2 -2
  27. package/dist/cjs/generalUtilsInternal.d.ts.map +1 -1
  28. package/dist/cjs/generalUtilsInternal.js +10 -8
  29. package/dist/cjs/hostFileUtils.js +1 -1
  30. package/dist/cjs/parallel.js +2 -2
  31. package/dist/cjs/runWhileParentAlive.js +1 -1
  32. package/dist/cjs/testUtils.d.ts +1 -0
  33. package/dist/cjs/testUtils.d.ts.map +1 -1
  34. package/dist/cjs/testUtils.js +8 -2
  35. package/dist/esm/DependencyChecker.d.ts +3 -0
  36. package/dist/esm/DependencyChecker.d.ts.map +1 -1
  37. package/dist/esm/DependencyChecker.js +5 -2
  38. package/dist/esm/DotnetSdkUtility.d.ts +18 -0
  39. package/dist/esm/DotnetSdkUtility.d.ts.map +1 -0
  40. package/dist/esm/DotnetSdkUtility.js +53 -0
  41. package/dist/esm/DotnetVersion.d.ts +14 -0
  42. package/dist/esm/DotnetVersion.d.ts.map +1 -0
  43. package/dist/esm/DotnetVersion.js +41 -0
  44. package/dist/esm/GitUtility.js +1 -1
  45. package/dist/esm/NixUtil.js +1 -1
  46. package/dist/esm/NugetUtility.d.ts +38 -11
  47. package/dist/esm/NugetUtility.d.ts.map +1 -1
  48. package/dist/esm/NugetUtility.js +107 -52
  49. package/dist/esm/TarballUtility.d.ts +1 -0
  50. package/dist/esm/TarballUtility.d.ts.map +1 -1
  51. package/dist/esm/TarballUtility.js +1 -1
  52. package/dist/esm/certUtils.js +1 -1
  53. package/dist/esm/dockerUtils.js +2 -2
  54. package/dist/esm/dotnetUtils.d.ts +99 -8
  55. package/dist/esm/dotnetUtils.d.ts.map +1 -1
  56. package/dist/esm/dotnetUtils.js +324 -20
  57. package/dist/esm/generalUtils.d.ts +19 -5
  58. package/dist/esm/generalUtils.d.ts.map +1 -1
  59. package/dist/esm/generalUtils.js +22 -10
  60. package/dist/esm/generalUtilsInternal.d.ts +2 -2
  61. package/dist/esm/generalUtilsInternal.d.ts.map +1 -1
  62. package/dist/esm/generalUtilsInternal.js +10 -8
  63. package/dist/esm/hostFileUtils.js +1 -1
  64. package/dist/esm/parallel.js +2 -2
  65. package/dist/esm/runWhileParentAlive.js +1 -1
  66. package/dist/esm/testUtils.d.ts +1 -0
  67. package/dist/esm/testUtils.d.ts.map +1 -1
  68. package/dist/esm/testUtils.js +6 -1
  69. package/package.json +14 -10
  70. package/dist/cjs/dotnetUtilsInternal.d.ts +0 -7
  71. package/dist/cjs/dotnetUtilsInternal.d.ts.map +0 -1
  72. package/dist/cjs/dotnetUtilsInternal.js +0 -16
  73. package/dist/esm/dotnetUtilsInternal.d.ts +0 -7
  74. package/dist/esm/dotnetUtilsInternal.d.ts.map +0 -1
  75. package/dist/esm/dotnetUtilsInternal.js +0 -12
@@ -1,11 +1,22 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configureDotnetDevCerts = exports.installOrUpdateReportGeneratorTool = exports.installOrUpdateDotnetEfTool = exports.installOrUpdateDotnetGlobalTool = exports.dotnetPublish = exports.dotnetBuild = exports.isTargetFrameworkMonikerGreaterThanOrEqualToNet5 = exports.getLatestNugetPackageVersion = void 0;
6
+ exports.sdkVersionToTfm = exports.getDotnetCoreSdkVersions = exports.netCoreTfmToSdkMajorVersion = exports.isTfmNet5Plus = exports.dotnetCoreTargetFrameworkMonikers = exports.isValidTargetFrameworkMoniker = exports.targetFrameworkMonikers = exports.configureDotnetDevCerts = exports.ensureReportGeneratorTool = exports.ensureDotnetToolManifest = exports.ensureDotnetTool = exports.dotnetPublish = exports.dotnetBuild = exports.getLatestMajorNugetPackageVersion = exports.getLatestNugetPackageVersion = exports.isSdkMajorVersionOrGreaterInstalled = exports.isSdkMajorVersionInstalled = exports.getInstalledSdkVersions = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const DotnetSdkUtility_js_1 = require("./DotnetSdkUtility.js");
10
+ const NugetUtility_js_1 = require("./NugetUtility.js");
4
11
  const generalUtils_js_1 = require("./generalUtils.js");
5
- var NugetUtility_js_1 = require("./NugetUtility.js");
6
- Object.defineProperty(exports, "getLatestNugetPackageVersion", { enumerable: true, get: function () { return NugetUtility_js_1.getLatestNugetPackageVersion; } });
7
- var dotnetUtilsInternal_js_1 = require("./dotnetUtilsInternal.js");
8
- Object.defineProperty(exports, "isTargetFrameworkMonikerGreaterThanOrEqualToNet5", { enumerable: true, get: function () { return dotnetUtilsInternal_js_1.isTargetFrameworkMonikerGreaterThanOrEqualToNet5; } });
12
+ const toolManifestPartialPath = '.config/dotnet-tools.json';
13
+ var DotnetSdkUtility_js_2 = require("./DotnetSdkUtility.js");
14
+ Object.defineProperty(exports, "getInstalledSdkVersions", { enumerable: true, get: function () { return DotnetSdkUtility_js_2.getInstalledSdkVersions; } });
15
+ Object.defineProperty(exports, "isSdkMajorVersionInstalled", { enumerable: true, get: function () { return DotnetSdkUtility_js_2.isSdkMajorVersionInstalled; } });
16
+ Object.defineProperty(exports, "isSdkMajorVersionOrGreaterInstalled", { enumerable: true, get: function () { return DotnetSdkUtility_js_2.isSdkMajorVersionOrGreaterInstalled; } });
17
+ var NugetUtility_js_2 = require("./NugetUtility.js");
18
+ Object.defineProperty(exports, "getLatestNugetPackageVersion", { enumerable: true, get: function () { return NugetUtility_js_2.getLatestNugetPackageVersion; } });
19
+ Object.defineProperty(exports, "getLatestMajorNugetPackageVersion", { enumerable: true, get: function () { return NugetUtility_js_2.getLatestMajorNugetPackageVersion; } });
9
20
  /**
10
21
  * Runs dotnet build on the specified project.
11
22
  * @param projectPath Path to project file (like .csproj) or directory of project to build
@@ -38,35 +49,189 @@ async function dotnetPublish(projectPath = './', configuration = 'Release', outp
38
49
  }
39
50
  exports.dotnetPublish = dotnetPublish;
40
51
  /**
41
- * Install or update a global dotnet tool.
42
- * @param toolName The name of the dotnet global tool
52
+ * Installs or updates a dotnet CLI tool. Only supports dotnet 5+. Runs a combination of `dotnet --list-sdks`, `dotnet new tool-manifest`,
53
+ * `dotnet tool uninstall` and `dotnet tool install`. Nuget.org will be queried to determine the latest compatible version of the tool for your
54
+ * latest installed dotnet SDK version, or the dotnet SDK version specified in options (the version passed in options must also be installed).
55
+ *
56
+ * Defaults that can be overridden with options ({@link EnsureDotnetToolOptions}):
57
+ * - Local install
58
+ * - Uses latest installed dotnet SDK version
59
+ * - Runs in the current working directory
60
+ *
61
+ * For local installs, a new tool manifest will be created with the command `dotnet new tool-manifest` if it doesn't already exist. Note that dotnet
62
+ * searches up the directory tree until it finds a tool manifest.
63
+ *
64
+ * If the tool is already installed and the version installed is newer (because an older dotnet version was specified in the options), the installed
65
+ * version will be overwritten with the latest compatible version for the dotnet version specified in the options rather than trying to simply run the
66
+ * `dotnet tool update` command, which would throw an error in this scenario.
67
+ *
68
+ * Docs for dotnet tools: https://learn.microsoft.com/en-us/dotnet/core/tools/global-tools
69
+ *
70
+ * Docs for `dotnet tool install`: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-tool-install
43
71
  */
44
- async function installOrUpdateDotnetGlobalTool(toolName) {
45
- if (!(await (0, generalUtils_js_1.which)('dotnet')).location) {
46
- throw new Error('"dotnet" is not installed');
72
+ async function ensureDotnetTool(toolName, options) {
73
+ var _a;
74
+ (0, NugetUtility_js_1.validatePackageName)(toolName);
75
+ const globalInstall = (_a = options === null || options === void 0 ? void 0 : options.global) !== null && _a !== void 0 ? _a : false;
76
+ let cwd;
77
+ if (options === null || options === void 0 ? void 0 : options.cwd) {
78
+ cwd = options.cwd;
79
+ (0, generalUtils_js_1.requireValidPath)('options.cwd', cwd);
47
80
  }
48
- const installed = (await (0, generalUtils_js_1.which)(toolName)).location;
49
- if (installed) {
50
- (0, generalUtils_js_1.log)(`${toolName} tool already installed, updating...`);
81
+ else {
82
+ cwd = process.cwd();
83
+ }
84
+ const dotnetVersions = await (0, DotnetSdkUtility_js_1.getInstalledSdkVersions)();
85
+ if (dotnetVersions.length === 0) {
86
+ throw new Error('dotnet is not installed');
87
+ }
88
+ let dotnetVersion;
89
+ if (options === null || options === void 0 ? void 0 : options.dotnetMajorVersion) {
90
+ // Use dotnet version specified in options
91
+ dotnetVersion = options.dotnetMajorVersion;
92
+ if (!dotnetVersions.some(v => v.major === dotnetVersion)) {
93
+ throw new Error(`Cannot install tool with options specified - dotnet version ${dotnetVersion} is not installed`);
94
+ }
51
95
  }
52
96
  else {
53
- (0, generalUtils_js_1.log)(`${toolName} tool not installed, installing...`);
97
+ // Or, latest installed version
98
+ dotnetVersion = [...dotnetVersions].sort((a, b) => b.major - a.major)[0].major;
99
+ }
100
+ if (dotnetVersion < 5) {
101
+ throw new Error('Only dotnet 5 and above is supported for this utility method');
102
+ }
103
+ const tfm = sdkVersionToTfm(dotnetVersion);
104
+ (0, generalUtils_js_1.log)(`using dotnet version ${dotnetVersion} (TFM: ${tfm})`);
105
+ (0, generalUtils_js_1.log)(`ensuring dotnet tool "${toolName}" is installed ${globalInstall ? 'global' : 'local'}ly with the latest compatible version for dotnet ${dotnetVersion}`);
106
+ (0, generalUtils_js_1.log)(`looking up latest compatible version in Nuget repository for tool "${toolName}"`);
107
+ const latestToolVersion = await (0, NugetUtility_js_1.getLatestNugetPackageVersion)(toolName, tfm);
108
+ if (latestToolVersion === null) {
109
+ throw new Error(`No compatible version of ${toolName} was found for TFM ${tfm}`);
110
+ }
111
+ (0, generalUtils_js_1.log)(`found compatible tool version: ${latestToolVersion}`);
112
+ (0, generalUtils_js_1.log)(`checking if ${globalInstall ? 'global' : 'local'} dotnet tool is installed`);
113
+ const installedVersion = await getDotnetToolInstalledVersion(toolName, globalInstall, cwd);
114
+ const commandLocalitySwitch = globalInstall ? '--global' : '--local';
115
+ if (installedVersion === null) {
116
+ (0, generalUtils_js_1.log)(`dotnet tool is not installed, attempting to install`);
117
+ if (!globalInstall) {
118
+ await ensureDotnetToolManifest(cwd);
119
+ }
120
+ const command = `dotnet tool install ${toolName} ${commandLocalitySwitch} --version ${latestToolVersion}`;
121
+ (0, generalUtils_js_1.log)(`installing with command: ${command}`);
122
+ await (0, generalUtils_js_1.spawnAsync)('dotnet', command.split(' '), { throwOnNonZero: true, cwd: cwd });
123
+ (0, generalUtils_js_1.log)(`finished tool install`);
124
+ }
125
+ else {
126
+ (0, generalUtils_js_1.log)(`found installed dotnet tool "${toolName}" version ${installedVersion}`);
127
+ if (installedVersion === latestToolVersion) {
128
+ (0, generalUtils_js_1.log)(`the most recent version of the tool is already installed - finished`);
129
+ return;
130
+ }
131
+ (0, generalUtils_js_1.log)(`latest version and installed version do not match - uninstalling the existing version before re-installing`);
132
+ if (!globalInstall) {
133
+ await ensureDotnetToolManifest();
134
+ }
135
+ const uninstallCommand = `dotnet tool uninstall ${toolName} ${commandLocalitySwitch}`;
136
+ (0, generalUtils_js_1.log)(`uninstalling with command: ${uninstallCommand}`);
137
+ await (0, generalUtils_js_1.spawnAsync)('dotnet', uninstallCommand.split(' '), { throwOnNonZero: true, cwd: cwd });
138
+ const command = `dotnet tool install ${toolName} ${commandLocalitySwitch} --version ${latestToolVersion}`;
139
+ (0, generalUtils_js_1.log)(`installing with command: ${command}`);
140
+ await (0, generalUtils_js_1.spawnAsync)('dotnet', command.split(' '), { throwOnNonZero: true, cwd: cwd });
141
+ (0, generalUtils_js_1.log)(`finished tool install`);
54
142
  }
55
- const args = ['tool', installed ? 'update' : 'install', '--global', toolName];
56
- await (0, generalUtils_js_1.spawnAsync)('dotnet', args);
57
143
  }
58
- exports.installOrUpdateDotnetGlobalTool = installOrUpdateDotnetGlobalTool;
144
+ exports.ensureDotnetTool = ensureDotnetTool;
59
145
  /**
60
- * Spawns a process that runs the necessary commands to install or update the dotnet-ef tool globally on the system.
146
+ * Runs `dotnet new tool-manifest` if `./.config/dotnet-tools.json` does not exist. Uses the current working directory.
147
+ *
148
+ * The tool manifest is required when installing local dotnet tools. Note that dotnet searches up the directory tree
149
+ * for a tool manifest, so tools can be installed in a solution root directory and be picked up by dotnet when run
150
+ * in subdirectories.
61
151
  */
62
- async function installOrUpdateDotnetEfTool() {
63
- await installOrUpdateDotnetGlobalTool('dotnet-ef');
152
+ async function ensureDotnetToolManifest(cwd = process.cwd()) {
153
+ (0, generalUtils_js_1.requireValidPath)('cwd', cwd);
154
+ const toolsManifestPath = node_path_1.default.join(cwd, toolManifestPartialPath);
155
+ (0, generalUtils_js_1.log)(`checking if tool manifest exists at ${toolsManifestPath}`);
156
+ const toolManifestExists = fs_1.default.existsSync(toolsManifestPath);
157
+ if (toolManifestExists) {
158
+ (0, generalUtils_js_1.log)(`tool manifest already exists`);
159
+ }
160
+ else {
161
+ (0, generalUtils_js_1.log)(`tool manifest does not exist, attempting to create with command: dotnet new tool-manifest`);
162
+ await (0, generalUtils_js_1.spawnAsync)('dotnet', ['new', 'tool-manifest'], { throwOnNonZero: true, cwd });
163
+ (0, generalUtils_js_1.log)(`created tool manifest at ${toolsManifestPath}`);
164
+ }
64
165
  }
65
- exports.installOrUpdateDotnetEfTool = installOrUpdateDotnetEfTool;
66
- async function installOrUpdateReportGeneratorTool() {
67
- await installOrUpdateDotnetGlobalTool('dotnet-reportgenerator-globaltool');
166
+ exports.ensureDotnetToolManifest = ensureDotnetToolManifest;
167
+ async function getDotnetToolInstalledVersion(toolName, globalInstall, cwd) {
168
+ (0, NugetUtility_js_1.validatePackageName)(toolName);
169
+ (0, generalUtils_js_1.requireValidPath)('cwd', cwd);
170
+ const result = await (0, generalUtils_js_1.simpleSpawnAsync)('dotnet', ['tool', 'list', globalInstall ? '--global' : '--local'], { cwd: cwd });
171
+ // The dotnet CLI can output an initial welcome message on first use - find the actual first line of output that we're looking for
172
+ let lines = result.stdoutLines;
173
+ let columnHeaderLineIndex = -1;
174
+ for (let i = 0; i < lines.length; i++) {
175
+ if (lines[i].startsWith('Package Id')) {
176
+ columnHeaderLineIndex = i;
177
+ break;
178
+ }
179
+ }
180
+ const errorMessagePrefix = 'Unexpected output for command "dotnet tool list" -';
181
+ if (columnHeaderLineIndex === -1) {
182
+ throw new Error(`${errorMessagePrefix} expected a line with the column header "Package Id": ${JSON.stringify(lines)}`);
183
+ }
184
+ lines = lines.slice(columnHeaderLineIndex);
185
+ if (!lines[1].startsWith('-')) {
186
+ throw new Error(`${errorMessagePrefix} expected a divider line: ${JSON.stringify(lines)}`);
187
+ }
188
+ if (lines.length < 3) {
189
+ return null;
190
+ }
191
+ const versionColumnIndex = lines[0].indexOf('Version');
192
+ const commandsColumnIndex = lines[0].indexOf('Commands');
193
+ const manifestColumnIndex = lines[0].indexOf('Manifest');
194
+ if (versionColumnIndex === -1) {
195
+ throw new Error(`Unexpectedly missing "Version" header in "dotnet tool list" output: ${JSON.stringify(lines)}`);
196
+ }
197
+ const tools = [];
198
+ for (let i = 2; i < lines.length; i++) {
199
+ const packageId = lines[i].substring(0, versionColumnIndex).trim();
200
+ const version = lines[i].substring(versionColumnIndex, commandsColumnIndex !== -1 ? commandsColumnIndex : lines[i].length - 1).trim();
201
+ const commands = commandsColumnIndex !== -1 ? lines[i].substring(commandsColumnIndex, manifestColumnIndex !== -1 ? manifestColumnIndex : lines[i].length - 1).trim() : undefined;
202
+ const manifest = manifestColumnIndex !== -1 ? lines[i].substring(manifestColumnIndex).trim() : undefined;
203
+ tools.push({
204
+ packageId,
205
+ version,
206
+ commands,
207
+ manifest
208
+ });
209
+ }
210
+ const match = tools.find(t => t.packageId === toolName);
211
+ if (match === undefined) {
212
+ return null;
213
+ }
214
+ // For a local install, dotnet will search up in the directory tree until it finds a ".config" directory with a tool manifest, but
215
+ // that might not be obvious to the caller, so log a warning with the path to the manifest that was used if it's not int the cwd.
216
+ if (!globalInstall && !fs_1.default.existsSync(node_path_1.default.join(cwd, toolManifestPartialPath))) {
217
+ (0, generalUtils_js_1.log)(`${generalUtils_js_1.Emoji.Warning} local tool install is not in the current working directory - it is listed as ${match.manifest}`);
218
+ }
219
+ return match.version;
220
+ }
221
+ /**
222
+ * Ensures the latest version of `dotnet-reportgenerator-globaltool` is installed as a "dotnet local tool" in the current
223
+ * working directory with the latest version that is compatible with the latest dotnet SDK version currently installed.
224
+ *
225
+ * This package is used to convert code coverage data into a human-readable report: https://github.com/danielpalme/ReportGenerator
226
+ *
227
+ * Unsure why the name of the tool has "global" in it - it is neither local nor global (can be installed as either).
228
+ *
229
+ * Use {@link ensureDotnetTool} directly for different options.
230
+ */
231
+ async function ensureReportGeneratorTool() {
232
+ await ensureDotnetTool('dotnet-reportgenerator-globaltool');
68
233
  }
69
- exports.installOrUpdateReportGeneratorTool = installOrUpdateReportGeneratorTool;
234
+ exports.ensureReportGeneratorTool = ensureReportGeneratorTool;
70
235
  /**
71
236
  * Spawns a process that runs the following commands to clean and re-install the dotnet dev certs:
72
237
  * - dotnet dev-certs https --clean
@@ -77,4 +242,155 @@ async function configureDotnetDevCerts() {
77
242
  await (0, generalUtils_js_1.spawnAsync)('dotnet', ['dev-certs', 'https', '-t']);
78
243
  }
79
244
  exports.configureDotnetDevCerts = configureDotnetDevCerts;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90bmV0VXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG90bmV0VXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQWtHO0FBTWxHLHFEQUFnRTtBQUF2RCwrSEFBQSw0QkFBNEIsT0FBQTtBQUNyQyxtRUFBMkY7QUFBbEYsMEpBQUEsZ0RBQWdELE9BQUE7QUFFekQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxXQUFXLENBQUMsV0FBbUI7SUFDbkQsSUFBQSxrQ0FBZ0IsRUFBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDNUMsTUFBTSxJQUFBLDRCQUFVLEVBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDOUUsQ0FBQztBQUhELGtDQUdDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FBQyxjQUFzQixJQUFJLEVBQUUsZ0JBQXdCLFNBQVMsRUFBRSxZQUFvQixTQUFTLEVBQUUsR0FBWTtJQUM1SSxJQUFBLGtDQUFnQixFQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUM1QyxJQUFBLCtCQUFhLEVBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3JDLElBQUEsK0JBQWEsRUFBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFDN0MsSUFBSSxHQUFHLEVBQUU7UUFDUCxJQUFBLGtDQUFnQixFQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQTtLQUM3QjtJQUNELE1BQU0sSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUMzRSxNQUFNLFlBQVksR0FBRyxrQkFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO0lBQ3ZELE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ25ELElBQUEsdUJBQUssRUFBQyxHQUFHLFlBQVksR0FBRyxlQUFlLEVBQUUsQ0FBQyxDQUFBO0lBQzFDLE1BQU0sSUFBQSw0QkFBVSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtBQUNoRCxDQUFDO0FBWkQsc0NBWUM7QUFFRDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsK0JBQStCLENBQUMsUUFBZ0I7SUFDcEUsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFBLHVCQUFLLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO0tBQzdDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFNLElBQUEsdUJBQUssRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtJQUNsRCxJQUFJLFNBQVMsRUFBRTtRQUNiLElBQUEscUJBQUcsRUFBQyxHQUFHLFFBQVEsc0NBQXNDLENBQUMsQ0FBQTtLQUN2RDtTQUFNO1FBQ0wsSUFBQSxxQkFBRyxFQUFDLEdBQUcsUUFBUSxvQ0FBb0MsQ0FBQyxDQUFBO0tBQ3JEO0lBQ0QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDN0UsTUFBTSxJQUFBLDRCQUFVLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQ2xDLENBQUM7QUFaRCwwRUFZQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLDJCQUEyQjtJQUMvQyxNQUFNLCtCQUErQixDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQ3BELENBQUM7QUFGRCxrRUFFQztBQUVNLEtBQUssVUFBVSxrQ0FBa0M7SUFDdEQsTUFBTSwrQkFBK0IsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO0FBQzVFLENBQUM7QUFGRCxnRkFFQztBQUVEOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsdUJBQXVCO0lBQzNDLE1BQU0sSUFBQSw0QkFBVSxFQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQTtJQUM3RCxNQUFNLElBQUEsNEJBQVUsRUFBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7QUFDMUQsQ0FBQztBQUhELDBEQUdDIn0=
245
+ // This immutable const is used for the type guard.
246
+ // There is also a non-immutable array to allow something like: const isValidTfm = targetFrameworkMonikers.includes(someStringVar)
247
+ const targetFrameworkMonikersImmutable = [
248
+ 'netcoreapp1.0',
249
+ 'netcoreapp1.1',
250
+ 'netcoreapp2.0',
251
+ 'netcoreapp2.1',
252
+ 'netcoreapp2.2',
253
+ 'netcoreapp3.0',
254
+ 'netcoreapp3.1',
255
+ 'net5.0',
256
+ 'net6.0',
257
+ 'net7.0',
258
+ 'net8.0',
259
+ 'netstandard1.0',
260
+ 'netstandard1.1',
261
+ 'netstandard1.2',
262
+ 'netstandard1.3',
263
+ 'netstandard1.4',
264
+ 'netstandard1.5',
265
+ 'netstandard1.6',
266
+ 'netstandard2.0',
267
+ 'netstandard2.1',
268
+ 'net11',
269
+ 'net20',
270
+ 'net35',
271
+ 'net40',
272
+ 'net403',
273
+ 'net45',
274
+ 'net451',
275
+ 'net452',
276
+ 'net46',
277
+ 'net461',
278
+ 'net462',
279
+ 'net47',
280
+ 'net471',
281
+ 'net472',
282
+ 'net48',
283
+ 'netcore',
284
+ 'netcore45',
285
+ 'netcore451',
286
+ 'netmf',
287
+ 'sl4',
288
+ 'sl5',
289
+ 'wp',
290
+ 'wp7',
291
+ 'wp75',
292
+ 'wp8',
293
+ 'wp81',
294
+ 'wpa81',
295
+ 'uap',
296
+ 'uap10.0',
297
+ 'net5.0-windows',
298
+ 'net6.0-android',
299
+ 'net6.0-ios',
300
+ 'net6.0-maccatalyst',
301
+ 'net6.0-macos',
302
+ 'net6.0-tvos',
303
+ 'net6.0-windows',
304
+ 'net7.0-android',
305
+ 'net7.0-ios',
306
+ 'net7.0-maccatalyst',
307
+ 'net7.0-macos',
308
+ 'net7.0-tvos',
309
+ 'net7.0-windows',
310
+ 'net8.0',
311
+ 'net8.0-android',
312
+ 'net8.0-browser',
313
+ 'net8.0-ios',
314
+ 'net8.0-maccatalyst',
315
+ 'net8.0-macos',
316
+ 'net8.0-tvos',
317
+ 'net8.0-windows'
318
+ ];
319
+ /**
320
+ * Scraped from https://learn.microsoft.com/en-us/dotnet/standard/frameworks.
321
+ * No intention to actually support operations for all of these, but having a list allows checking if a string
322
+ * is a valid TFM (target framework moniker) - see type guard: {@link TargetFrameworkMoniker}.
323
+ *
324
+ * @example
325
+ * ```
326
+ * const isValidTfm = targetFrameworkMonikers.includes(someStringVar)
327
+ * ```
328
+ */
329
+ exports.targetFrameworkMonikers = [...targetFrameworkMonikersImmutable];
330
+ function isValidTargetFrameworkMoniker(targetFrameworkMoniker) {
331
+ return exports.targetFrameworkMonikers.includes(targetFrameworkMoniker);
332
+ }
333
+ exports.isValidTargetFrameworkMoniker = isValidTargetFrameworkMoniker;
334
+ const dotnetCoreTargetFrameworkMonikersImmutable = [
335
+ 'net5.0',
336
+ 'net6.0',
337
+ 'net7.0',
338
+ 'net8.0'
339
+ ];
340
+ /**
341
+ * Subset of {@link targetFrameworkMonikers} with modern dotnet core versions.
342
+ *
343
+ * Most of my scripting will only support modern versions of dotnet core, so this will often be used for checks instead of the full list.
344
+ */
345
+ exports.dotnetCoreTargetFrameworkMonikers = [...dotnetCoreTargetFrameworkMonikersImmutable];
346
+ /**
347
+ * Check if a string is a valid TFM (Target Framework Moniker) in the form "netX.Y" where X is a number >= 5 and Y is any number.
348
+ * @param targetFrameworkMoniker The dotnet target framework moniker to check.
349
+ * @returns `true` if the string is a properly formatted "netX.Y" TFM, `false` otherwise
350
+ */
351
+ function isTfmNet5Plus(targetFrameworkMoniker) {
352
+ (0, generalUtils_js_1.requireString)('targetFrameworkMoniker', targetFrameworkMoniker);
353
+ const netFormatPattern = /^net([5-9]|\d{2,})\.\d+$/;
354
+ return netFormatPattern.test(targetFrameworkMoniker);
355
+ }
356
+ exports.isTfmNet5Plus = isTfmNet5Plus;
357
+ /**
358
+ * Simple helper method to convert one of the newer dotnet core TFM's to the major SDK version number in a safe way.
359
+ */
360
+ function netCoreTfmToSdkMajorVersion(tfm) {
361
+ if (!exports.targetFrameworkMonikers.includes(tfm)) {
362
+ throw new Error(`Invalid TFM: ${tfm}`);
363
+ }
364
+ if (!exports.dotnetCoreTargetFrameworkMonikers.includes(tfm)) {
365
+ throw new Error(`TFM "${tfm}" is not supported - this method only allows newer dotnet core versions: ${exports.dotnetCoreTargetFrameworkMonikers.join(', ')}`);
366
+ }
367
+ return parseInt(tfm[3], 10);
368
+ }
369
+ exports.netCoreTfmToSdkMajorVersion = netCoreTfmToSdkMajorVersion;
370
+ /**
371
+ * Get sorted SDK version numbers for dotnet core 5+ (from {@link dotnetCoreTargetFrameworkMonikers}).
372
+ */
373
+ function getDotnetCoreSdkVersions() {
374
+ const versions = [];
375
+ for (const tfm of exports.dotnetCoreTargetFrameworkMonikers) {
376
+ const dotIndex = tfm.indexOf('.');
377
+ if (dotIndex === -1 || !tfm.startsWith('net')) {
378
+ continue;
379
+ }
380
+ const numString = tfm.substring(3, dotIndex);
381
+ versions.push(parseInt(numString, 10));
382
+ }
383
+ return [...versions].sort((a, b) => a - b);
384
+ }
385
+ exports.getDotnetCoreSdkVersions = getDotnetCoreSdkVersions;
386
+ /**
387
+ * Simple helper method to convert an SDK version to the TFM (target framework moniker). Only supporting new dotnet core versions.
388
+ */
389
+ function sdkVersionToTfm(sdkVersion) {
390
+ if (typeof sdkVersion !== 'number' || sdkVersion < 5 || sdkVersion > 8) {
391
+ throw new Error(`Invalid SDK version: ${sdkVersion} (only supports version >= 5 and <= 8)`);
392
+ }
393
+ return `net${sdkVersion}.0`;
394
+ }
395
+ exports.sdkVersionToTfm = sdkVersionToTfm;
396
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90bmV0VXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG90bmV0VXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW1CO0FBQ25CLDBEQUE0QjtBQUM1QiwrREFBK0Q7QUFDL0QsdURBQXFGO0FBQ3JGLHVEQUFvSDtBQUVwSCxNQUFNLHVCQUF1QixHQUFHLDJCQUEyQixDQUFBO0FBTTNELDZEQUFnSTtBQUF2SCw4SEFBQSx1QkFBdUIsT0FBQTtBQUFFLGlJQUFBLDBCQUEwQixPQUFBO0FBQUUsMElBQUEsbUNBQW1DLE9BQUE7QUFDakcscURBQW1HO0FBQTFGLCtIQUFBLDRCQUE0QixPQUFBO0FBQUUsb0lBQUEsaUNBQWlDLE9BQUE7QUFFeEU7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxXQUFXLENBQUMsV0FBbUI7SUFDbkQsSUFBQSxrQ0FBZ0IsRUFBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDNUMsTUFBTSxJQUFBLDRCQUFVLEVBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDOUUsQ0FBQztBQUhELGtDQUdDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FBQyxjQUFzQixJQUFJLEVBQUUsZ0JBQXdCLFNBQVMsRUFBRSxZQUFvQixTQUFTLEVBQUUsR0FBWTtJQUM1SSxJQUFBLGtDQUFnQixFQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUM1QyxJQUFBLCtCQUFhLEVBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3JDLElBQUEsK0JBQWEsRUFBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFDN0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLElBQUEsa0NBQWdCLEVBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzlCLENBQUM7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
@@ -92,11 +92,21 @@ export interface WhichResult {
92
92
  export declare function sleep(ms: number): Promise<void>;
93
93
  /**
94
94
  * An extension of the built-in SpawnOptions with an extra option to specify whether a non-zero exit code should throw an error.
95
+ * Used with method {@link spawnAsync}.
95
96
  */
96
97
  export interface SpawnOptionsWithThrow extends SpawnOptions {
97
98
  throwOnNonZero: boolean;
98
99
  simpleErrorMsg?: string;
99
100
  }
101
+ /**
102
+ * Options interface for methods {@link simpleSpawnSync}, {@link simpleSpawnAsync}, {@link simpleCmdSync} and {@link simpleCmdAsync}.
103
+ */
104
+ export interface SimpleSpawnOptions {
105
+ /** Defaults to `true`. Note that this is the opposite of the default for {@link spawnAsync}. */
106
+ throwOnNonZero: boolean;
107
+ /** Optional current working directory. Defaults to `process.cwd()`. */
108
+ cwd: string;
109
+ }
100
110
  /**
101
111
  * This is a wrapper function for NodeJS spawn. Defaults stdio to inherit so that output is visible in the console,
102
112
  * but note that this means stdout and stderr will not be available in the returned SpawnResult. To hide the output
@@ -199,10 +209,11 @@ export declare function stringToLines(str: string): string[];
199
209
  * See {@link winInstallCert} and {@link winUninstallCert} for examples of taking user input and inserting it safely into known commands.
200
210
  * @param command Command to run
201
211
  * @param args Arguments to pass to the command
212
+ * @param options Optional {@link SimpleSpawnOptions} options
202
213
  * @returns An object with the status code, stdout, stderr, and error (if any)
203
214
  * @throws {@link SimpleSpawnError} if the command fails and throwOnNonZero is true
204
215
  */
205
- export declare function simpleCmdSync(command: string, args?: string[], throwOnNonZero?: boolean): SimpleSpawnResult;
216
+ export declare function simpleCmdSync(command: string, args?: string[], options?: Partial<SimpleSpawnOptions>): SimpleSpawnResult;
206
217
  /**
207
218
  * Runs the requested command using {@link spawnAsync} wrapped in an outer Windows CMD.exe command and returns the result with stdout split into lines.
208
219
  *
@@ -215,10 +226,11 @@ export declare function simpleCmdSync(command: string, args?: string[], throwOnN
215
226
  * See {@link winInstallCert} and {@link winUninstallCert} for examples of taking user input and inserting it safely into known commands.
216
227
  * @param command Command to run
217
228
  * @param args Arguments to pass to the command
229
+ * @param options Optional {@link SimpleSpawnOptions} options
218
230
  * @returns An object with the status code, stdout, stderr, and error (if any)
219
231
  * @throws {@link SimpleSpawnError} if the command fails and throwOnNonZero is true
220
232
  */
221
- export declare function simpleCmdAsync(command: string, args?: string[], throwOnNonZero?: boolean): Promise<SimpleSpawnResult>;
233
+ export declare function simpleCmdAsync(command: string, args?: string[], options?: Partial<SimpleSpawnOptions>): Promise<SimpleSpawnResult>;
222
234
  /**
223
235
  * Runs the requested command using NodeJS spawnSync and returns the result with stdout split into lines.
224
236
  *
@@ -231,12 +243,13 @@ export declare function simpleCmdAsync(command: string, args?: string[], throwOn
231
243
  * See {@link winInstallCert} and {@link winUninstallCert} for examples of taking user input and inserting it safely into known commands.
232
244
  * @param command Command to run
233
245
  * @param args Arguments to pass to the command
246
+ * @param options Optional {@link SimpleSpawnOptions} options
234
247
  * @returns An object with the status code, stdout, stderr, and error (if any)
235
248
  * @throws {@link SimpleSpawnError} if the command fails and throwOnNonZero is true
236
249
  */
237
- export declare function simpleSpawnSync(command: string, args?: string[], throwOnNonZero?: boolean): SimpleSpawnResult;
250
+ export declare function simpleSpawnSync(command: string, args?: string[], options?: Partial<SimpleSpawnOptions>): SimpleSpawnResult;
238
251
  /**
239
- * Runs the requested command using {@link spawnAsync} and returns the result with stdout split into lines.
252
+ * Runs the requested command using {@link spawnAsync} and returns the result with stdout split into non-empty lines.
240
253
  *
241
254
  * Use this for simple quick commands that don't require a lot of control.
242
255
  *
@@ -247,10 +260,11 @@ export declare function simpleSpawnSync(command: string, args?: string[], throwO
247
260
  * See {@link winInstallCert} and {@link winUninstallCert} for examples of taking user input and inserting it safely into known commands.
248
261
  * @param command Command to run
249
262
  * @param args Arguments to pass to the command
263
+ * @param options Optional {@link SimpleSpawnOptions} options
250
264
  * @returns An object with the status code, stdout, stderr, and error (if any)
251
265
  * @throws {@link SimpleSpawnError} if the command fails and throwOnNonZero is true
252
266
  */
253
- export declare function simpleSpawnAsync(command: string, args?: string[], throwOnNonZero?: boolean): Promise<SimpleSpawnResult>;
267
+ export declare function simpleSpawnAsync(command: string, args?: string[], options?: Partial<SimpleSpawnOptions>): Promise<SimpleSpawnResult>;
254
268
  /**
255
269
  * @returns `true` if platform() is 'win32', `false` otherwise
256
270
  */
@@ -1 +1 @@
1
- {"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../src/generalUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../src/generalUtils.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAajD;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,QAExD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,QAI9E;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,QAK3D;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAE9D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,MAAM,EAAE,WAAW,CAAA;gBAEP,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;CAIjD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,MAAM,EAAE,iBAAiB,CAAA;gBAEb,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB;CAIvD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,mBAAmB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IACzC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAA;CACzB;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIrD;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,cAAc,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gGAAgG;IAChG,cAAc,EAAE,OAAO,CAAA;IACvB,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAEjI;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAEhH;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,iBAEhD;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,MAAM,iBASvC;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,iBAG3C;AAED,MAAM,WAAW,qBAAqB;IACpC,gHAAgH;IAChH,2BAA2B,EAAE,MAAM,EAAE,CAAA;IACrC,KAAK,EAAE,OAAO,CAAA;IACd,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,iBAwDtG;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,eAAe,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,iBAoChG;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAIlE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAMrE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAG3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAGnD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,iBAAiB,CAUxH;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAUxI;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,iBAAiB,CAI1H;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAI1I;AAED;;GAEG;AACH,wBAAgB,iBAAiB,YAEhC;AAED;;;GAGG;AACH,wBAAgB,aAAa,YAE5B;AAED;;;GAGG;AACH,wBAAgB,eAAe,YAE9B;AAED;;;;;GAKG;AACH,wBAAsB,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAY1D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAclE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,kBAM3C;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,iBAEjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAuB,UAAQ,iBAElH;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,qBAAqB,iBAmB3I;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,qBAAqB,CAWxH;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,CAYzF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,iBAStD;AAGD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,+BAA+B,EAAE,OAAO,CAAA;CACzC;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCvI;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAgB/C;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,2FAA2F,CAAA;AAE5H;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,UAgChD;AAED,qBAAa,aAAc,SAAQ,KAAK;IAC/B,UAAU,EAAE,KAAK,GAAG,IAAI,CAAA;gBAEnB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK;CAKhD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAW/C;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAA;AAElD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAW9C;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBpE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,MAAM,CAU9E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAwBtD;AAED,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,wBAAwB,EAAE,MAAM,CAAA;IAChC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,iBAuC/I;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAWvD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ9D;AAED,oBAAY,KAAK;IACf,UAAU,iBAAO;IACjB,SAAS,iBAAO;IAChB,UAAU,WAAM;IAChB,SAAS,iBAAO;IAChB,eAAe,iBAAO;IACtB,OAAO,iBAAO;IACd,SAAS,WAAM;IACf,WAAW,WAAM;IACjB,WAAW,WAAM;IACjB,IAAI,WAAM;IACV,IAAI,iBAAO;IACX,OAAO,iBAAO;IACd,KAAK,uBAAQ;IACb,OAAO,WAAM;IACb,IAAI,iBAAO;IACX,QAAQ,iBAAO;IACf,WAAW,iBAAO;IAClB,GAAG,iBAAO;IACV,KAAK,iBAAO;IACZ,MAAM,iBAAO;IACb,MAAM,iBAAO;IACb,WAAW,iBAAO;IAClB,WAAW,iBAAO;IAClB,UAAU,iBAAO;IACjB,eAAe,iBAAO;IACtB,YAAY,iBAAO;IACnB,WAAW,iBAAO;IAClB,SAAS,iBAAO;IAChB,aAAa,iBAAO;IACpB,iBAAiB,WAAM;IACvB,aAAa,iBAAO;IACpB,YAAY,iBAAO;IACnB,EAAE,iBAAO;IACT,GAAG,iBAAO;IACV,SAAS,iBAAO;IAChB,KAAK,iBAAO;IACZ,IAAI,WAAM;IACV,KAAK,WAAM;IACX,QAAQ,iBAAO;IACf,MAAM,WAAM;IACZ,SAAS,iBAAO;IAChB,UAAU,iBAAO;IACjB,UAAU,iBAAO;IACjB,SAAS,iBAAO;IAChB,QAAQ,WAAM;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,oBAAoB,GAAE,OAAc,GAAG,MAAM,CAqBvF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM;;EAmB3C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,UAW3E;AAED,KAAK,gBAAgB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9C,KAAK,SAAS,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;AAGpC;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;AAEtI;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;AAoBxJ;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,cAAc,CAM3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAS3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,OAAO,CAmBjG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,WAK1C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAUzE"}