@minecraft/core-build-tasks 1.1.0 → 1.1.2

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.
@@ -1,4 +1,5 @@
1
1
  import { parallel } from 'just-scripts';
2
+ import { BuildResult } from 'esbuild';
2
3
  export type BundleTaskParameters = {
3
4
  /** Initial script to be evaluated for the build. Documentation: https://esbuild.github.io/api/#entry-points */
4
5
  entryPoint: string;
@@ -8,7 +9,15 @@ export type BundleTaskParameters = {
8
9
  minifyWhitespace?: boolean;
9
10
  /** The output file for the bundle. Documentation: https://esbuild.github.io/api/#outfile */
10
11
  outfile: string;
11
- /** Flag to specify how to generate source map. Documentation: https://esbuild.github.io/api/#sourcemap */
12
+ /** Flag to specify to generate a source map file. Documentation: https://esbuild.github.io/api/#sourcemap*/
12
13
  sourcemap?: boolean | 'linked' | 'inline' | 'external' | 'both';
14
+ /** The output path for the source map file. Ignored if sourcemap is false or 'inline'. */
15
+ outputSourcemapPath?: string;
13
16
  };
17
+ export type PostProcessOutputFilesResult = {
18
+ sourceMapDirectory: string;
19
+ outputDirectory: string;
20
+ generatedFiles: Record<string, string>;
21
+ };
22
+ export declare function postProcessOutputFiles(options: BundleTaskParameters, buildResult: BuildResult): PostProcessOutputFilesResult | undefined;
14
23
  export declare function bundleTask(options: BundleTaskParameters): ReturnType<typeof parallel>;
@@ -5,19 +5,93 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  return (mod && mod.__esModule) ? mod : { "default": mod };
6
6
  };
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.bundleTask = void 0;
8
+ exports.bundleTask = exports.postProcessOutputFiles = void 0;
9
9
  const esbuild_1 = __importDefault(require("esbuild"));
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const MAP_EXTENSION = '.map';
13
+ function isRequiredToMakeAnyFileChange(sourcemap) {
14
+ return sourcemap !== false && sourcemap !== 'inline';
15
+ }
16
+ function isRequiredToLinkJsFile(sourcemap) {
17
+ return sourcemap === true || sourcemap === 'linked';
18
+ }
19
+ function linkSourceMaps(sourceMapDirectory, outputDirectory, options, outputFiles) {
20
+ const generatedFiles = {};
21
+ for (const element of outputFiles) {
22
+ if (element.path.endsWith(MAP_EXTENSION)) {
23
+ const parsedPath = path_1.default.parse(element.path);
24
+ const sourceMapFilePath = path_1.default.join(sourceMapDirectory, parsedPath.base);
25
+ const sourceMapContent = JSON.parse(element.text);
26
+ // Add JS file location.
27
+ sourceMapContent.file = path_1.default
28
+ .relative(sourceMapDirectory, path_1.default.join(outputDirectory, parsedPath.name))
29
+ .replace(/\\/g, '/');
30
+ generatedFiles[sourceMapFilePath] = JSON.stringify(sourceMapContent);
31
+ }
32
+ else if (isRequiredToLinkJsFile(options.sourcemap)) {
33
+ // Link to the source map file.
34
+ const dir = path_1.default.parse(element.path).dir;
35
+ const targetSourceMap = path_1.default
36
+ .join(path_1.default.relative(dir, sourceMapDirectory), path_1.default.parse(element.path).base)
37
+ .replace(/\\/g, '/');
38
+ generatedFiles[element.path] = element.text + `\n//# sourceMappingURL=${targetSourceMap}${MAP_EXTENSION}\n`;
39
+ }
40
+ else {
41
+ generatedFiles[element.path] = element.text;
42
+ }
43
+ }
44
+ return generatedFiles;
45
+ }
46
+ function writeFiles(postProcessOutputFilesResult) {
47
+ fs_1.default.mkdirSync(postProcessOutputFilesResult.outputDirectory, { recursive: true });
48
+ if (postProcessOutputFilesResult.sourceMapDirectory !== postProcessOutputFilesResult.outputDirectory) {
49
+ fs_1.default.mkdirSync(postProcessOutputFilesResult.sourceMapDirectory, { recursive: true });
50
+ }
51
+ for (const path of Object.keys(postProcessOutputFilesResult.generatedFiles)) {
52
+ fs_1.default.writeFileSync(path, postProcessOutputFilesResult.generatedFiles[path]);
53
+ }
54
+ }
55
+ function postProcessOutputFiles(options, buildResult) {
56
+ if (!buildResult.outputFiles) {
57
+ return undefined;
58
+ }
59
+ const outputDirectory = path_1.default.parse(options.outfile).dir;
60
+ const sourceMapDirectory = path_1.default.resolve(options.outputSourcemapPath ?? outputDirectory);
61
+ const generatedFiles = linkSourceMaps(sourceMapDirectory, outputDirectory, options, buildResult.outputFiles);
62
+ return { sourceMapDirectory, outputDirectory, generatedFiles: generatedFiles };
63
+ }
64
+ exports.postProcessOutputFiles = postProcessOutputFiles;
10
65
  function bundleTask(options) {
11
- return async () => {
12
- return esbuild_1.default.build({
66
+ return () => {
67
+ const isRequiredToMakeChanges = isRequiredToMakeAnyFileChange(options.sourcemap);
68
+ const isRequiredToLinkJs = isRequiredToLinkJsFile(options.sourcemap);
69
+ const buildResult = esbuild_1.default.buildSync({
13
70
  entryPoints: [options.entryPoint],
14
71
  bundle: true,
15
72
  format: 'esm',
16
73
  minifyWhitespace: options.minifyWhitespace,
17
74
  outfile: options.outfile,
18
- sourcemap: options.sourcemap,
75
+ sourcemap: isRequiredToLinkJs ? 'external' : options.sourcemap,
19
76
  external: options.external,
77
+ write: !isRequiredToMakeChanges,
20
78
  });
79
+ if (buildResult.errors.length === 0) {
80
+ if (isRequiredToMakeChanges) {
81
+ if (!buildResult.outputFiles) {
82
+ process.exitCode = 1;
83
+ return Promise.reject(new Error('No output files were generated, check that your entrypoint file is configured correctly.'));
84
+ }
85
+ const result = postProcessOutputFiles(options, buildResult);
86
+ if (result) {
87
+ writeFiles(result);
88
+ }
89
+ }
90
+ process.exitCode = 0;
91
+ return Promise.resolve();
92
+ }
93
+ process.exitCode = 1;
94
+ return Promise.reject(new Error(buildResult.errors.join('\n')));
21
95
  };
22
96
  }
23
97
  exports.bundleTask = bundleTask;
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/tasks/bundle.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;AAGlC,sDAA8B;AAmB9B,SAAgB,UAAU,CAAC,OAA6B;IACpD,OAAO,KAAK,IAAI,EAAE;QACd,OAAO,iBAAO,CAAC,KAAK,CAAC;YACjB,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;YACjC,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AAZD,gCAYC"}
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/tasks/bundle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ const vitest_1 = require("vitest");
9
+ const bundle_1 = require("./bundle");
10
+ const path_1 = __importDefault(require("path"));
11
+ function _createParameters(sourcemap, outputFile, outputSourcemapPath) {
12
+ return {
13
+ options: {
14
+ entryPoint: '',
15
+ outfile: outputFile,
16
+ sourcemap: sourcemap,
17
+ outputSourcemapPath: outputSourcemapPath,
18
+ },
19
+ buildResult: {
20
+ outputFiles: [
21
+ { path: outputFile, contents: new Uint8Array(), hash: '', text: '' },
22
+ {
23
+ path: 'main.js.map',
24
+ contents: new Uint8Array(),
25
+ hash: '',
26
+ text: '{"version":3,"sources":["../../scripts/main.ts"],"sourcesContent":[""],"mappings":";AAAA,SAAS,OAAO;","names":[]}',
27
+ },
28
+ ],
29
+ errors: [],
30
+ warnings: [],
31
+ metafile: { inputs: {}, outputs: {} },
32
+ mangleCache: {},
33
+ },
34
+ };
35
+ }
36
+ (0, vitest_1.describe)('postProcessOutputFiles with source map files at different path', () => {
37
+ (0, vitest_1.it)('sourcemap `true` - Dictionary populated correctly', () => {
38
+ const sourcemap = true;
39
+ const debugPath = path_1.default.resolve('./dist/debug');
40
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
41
+ const parameters = _createParameters(sourcemap, outputFile, debugPath);
42
+ const expectedSourceMapDirectory = path_1.default.resolve('./dist/debug');
43
+ const expectedOutputDirectory = path_1.default.resolve('./dist/scripts');
44
+ const expectedOutputFilePath = outputFile;
45
+ const expectedSourceMapFilePath = path_1.default.resolve('./dist/debug/main.js.map');
46
+ const expectedSourceMappingURL = '\n//# sourceMappingURL=../debug/main.js.map\n';
47
+ const expectedSourceMapFile = '../scripts/main.js';
48
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
49
+ (0, vitest_1.expect)(result).toBeDefined();
50
+ if (result) {
51
+ (0, vitest_1.expect)(result.outputDirectory).toBe(expectedOutputDirectory);
52
+ (0, vitest_1.expect)(result.sourceMapDirectory).toBe(expectedSourceMapDirectory);
53
+ (0, vitest_1.expect)(Object.keys(result.generatedFiles).length).toBe(2);
54
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBeDefined();
55
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBe(expectedSourceMappingURL);
56
+ (0, vitest_1.expect)(result.generatedFiles[expectedSourceMapFilePath]).toBeDefined();
57
+ const sourceMap = JSON.parse(result.generatedFiles[expectedSourceMapFilePath]);
58
+ (0, vitest_1.expect)(sourceMap).toBeDefined();
59
+ (0, vitest_1.expect)(sourceMap.file).toBeDefined();
60
+ (0, vitest_1.expect)(sourceMap.file).toBe(expectedSourceMapFile);
61
+ }
62
+ });
63
+ (0, vitest_1.it)('sourcemap `linked` - Dictionary populated correctly', () => {
64
+ const sourcemap = 'linked';
65
+ const debugPath = path_1.default.resolve('./dist/debug');
66
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
67
+ const parameters = _createParameters(sourcemap, outputFile, debugPath);
68
+ const expectedSourceMapDirectory = path_1.default.resolve('./dist/debug');
69
+ const expectedOutputDirectory = path_1.default.resolve('./dist/scripts');
70
+ const expectedOutputFilePath = outputFile;
71
+ const expectedSourceMapFilePath = path_1.default.resolve('./dist/debug/main.js.map');
72
+ const expectedSourceMappingURL = '\n//# sourceMappingURL=../debug/main.js.map\n';
73
+ const expectedSourceMapFile = '../scripts/main.js';
74
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
75
+ (0, vitest_1.expect)(result).toBeDefined();
76
+ if (result) {
77
+ (0, vitest_1.expect)(result.outputDirectory).toBe(expectedOutputDirectory);
78
+ (0, vitest_1.expect)(result.sourceMapDirectory).toBe(expectedSourceMapDirectory);
79
+ (0, vitest_1.expect)(Object.keys(result.generatedFiles).length).toBe(2);
80
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBeDefined();
81
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBe(expectedSourceMappingURL);
82
+ (0, vitest_1.expect)(result.generatedFiles[expectedSourceMapFilePath]).toBeDefined();
83
+ const sourceMap = JSON.parse(result.generatedFiles[expectedSourceMapFilePath]);
84
+ (0, vitest_1.expect)(sourceMap).toBeDefined();
85
+ (0, vitest_1.expect)(sourceMap.file).toBeDefined();
86
+ (0, vitest_1.expect)(sourceMap.file).toBe(expectedSourceMapFile);
87
+ }
88
+ });
89
+ (0, vitest_1.it)('sourcemap `external` - Dictionary populated correctly', () => {
90
+ const sourcemap = 'external';
91
+ const debugPath = path_1.default.resolve('./dist/debug');
92
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
93
+ const parameters = _createParameters(sourcemap, outputFile, debugPath);
94
+ const expectedSourceMapDirectory = path_1.default.resolve('./dist/debug');
95
+ const expectedOutputDirectory = path_1.default.resolve('./dist/scripts');
96
+ const expectedOutputFilePath = outputFile;
97
+ const expectedSourceMapFilePath = path_1.default.resolve('./dist/debug/main.js.map');
98
+ const expectedSourceMappingURL = '';
99
+ const expectedSourceMapFile = '../scripts/main.js';
100
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
101
+ (0, vitest_1.expect)(result).toBeDefined();
102
+ if (result) {
103
+ (0, vitest_1.expect)(result.outputDirectory).toBe(expectedOutputDirectory);
104
+ (0, vitest_1.expect)(result.sourceMapDirectory).toBe(expectedSourceMapDirectory);
105
+ (0, vitest_1.expect)(Object.keys(result.generatedFiles).length).toBe(2);
106
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBeDefined();
107
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBe(expectedSourceMappingURL);
108
+ (0, vitest_1.expect)(result.generatedFiles[expectedSourceMapFilePath]).toBeDefined();
109
+ const sourceMap = JSON.parse(result.generatedFiles[expectedSourceMapFilePath]);
110
+ (0, vitest_1.expect)(sourceMap).toBeDefined();
111
+ (0, vitest_1.expect)(sourceMap.file).toBeDefined();
112
+ (0, vitest_1.expect)(sourceMap.file).toBe(expectedSourceMapFile);
113
+ }
114
+ });
115
+ (0, vitest_1.it)('sourcemap `both` - Dictionary populated correctly', () => {
116
+ const sourcemap = 'both';
117
+ const debugPath = path_1.default.resolve('./dist/debug');
118
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
119
+ const parameters = _createParameters(sourcemap, outputFile, debugPath);
120
+ const expectedSourceMapDirectory = path_1.default.resolve('./dist/debug');
121
+ const expectedOutputDirectory = path_1.default.resolve('./dist/scripts');
122
+ const expectedOutputFilePath = outputFile;
123
+ const expectedSourceMapFilePath = path_1.default.resolve('./dist/debug/main.js.map');
124
+ const expectedSourceMappingURL = '';
125
+ const expectedSourceMapFile = '../scripts/main.js';
126
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
127
+ (0, vitest_1.expect)(result).toBeDefined();
128
+ if (result) {
129
+ (0, vitest_1.expect)(result.outputDirectory).toBe(expectedOutputDirectory);
130
+ (0, vitest_1.expect)(result.sourceMapDirectory).toBe(expectedSourceMapDirectory);
131
+ (0, vitest_1.expect)(Object.keys(result.generatedFiles).length).toBe(2);
132
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBeDefined();
133
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBe(expectedSourceMappingURL);
134
+ (0, vitest_1.expect)(result.generatedFiles[expectedSourceMapFilePath]).toBeDefined();
135
+ const sourceMap = JSON.parse(result.generatedFiles[expectedSourceMapFilePath]);
136
+ (0, vitest_1.expect)(sourceMap).toBeDefined();
137
+ (0, vitest_1.expect)(sourceMap.file).toBeDefined();
138
+ (0, vitest_1.expect)(sourceMap.file).toBe(expectedSourceMapFile);
139
+ }
140
+ });
141
+ (0, vitest_1.it)('sourcemap `inline` - Dictionary populated correctly', () => {
142
+ const sourcemap = 'inline';
143
+ const debugPath = path_1.default.resolve('./dist/debug');
144
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
145
+ const parameters = _createParameters(sourcemap, outputFile, debugPath);
146
+ const expectedSourceMapDirectory = path_1.default.resolve('./dist/debug');
147
+ const expectedOutputDirectory = path_1.default.resolve('./dist/scripts');
148
+ const expectedOutputFilePath = outputFile;
149
+ const expectedSourceMapFilePath = path_1.default.resolve('./dist/debug/main.js.map');
150
+ const expectedSourceMappingURL = '';
151
+ const expectedSourceMapFile = '../scripts/main.js';
152
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
153
+ (0, vitest_1.expect)(result).toBeDefined();
154
+ if (result) {
155
+ (0, vitest_1.expect)(result.outputDirectory).toBe(expectedOutputDirectory);
156
+ (0, vitest_1.expect)(result.sourceMapDirectory).toBe(expectedSourceMapDirectory);
157
+ (0, vitest_1.expect)(Object.keys(result.generatedFiles).length).toBe(2);
158
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBeDefined();
159
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBe(expectedSourceMappingURL);
160
+ (0, vitest_1.expect)(result.generatedFiles[expectedSourceMapFilePath]).toBeDefined();
161
+ const sourceMap = JSON.parse(result.generatedFiles[expectedSourceMapFilePath]);
162
+ (0, vitest_1.expect)(sourceMap).toBeDefined();
163
+ (0, vitest_1.expect)(sourceMap.file).toBeDefined();
164
+ (0, vitest_1.expect)(sourceMap.file).toBe(expectedSourceMapFile);
165
+ }
166
+ });
167
+ });
168
+ (0, vitest_1.describe)('postProcessOutputFiles with source map files at same path', () => {
169
+ (0, vitest_1.it)('sourcemap `true` - Dictionary populated correctly using undefined', () => {
170
+ const sourcemap = true;
171
+ const debugPath = undefined;
172
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
173
+ const parameters = _createParameters(sourcemap, outputFile, debugPath);
174
+ const expectedSourceMapDirectory = path_1.default.resolve('./dist/scripts');
175
+ const expectedOutputDirectory = path_1.default.resolve('./dist/scripts');
176
+ const expectedOutputFilePath = outputFile;
177
+ const expectedSourceMapFilePath = path_1.default.resolve('./dist/scripts/main.js.map');
178
+ const expectedSourceMappingURL = '\n//# sourceMappingURL=main.js.map\n';
179
+ const expectedSourceMapFile = 'main.js';
180
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
181
+ (0, vitest_1.expect)(result).toBeDefined();
182
+ if (result) {
183
+ (0, vitest_1.expect)(result.outputDirectory).toBe(expectedOutputDirectory);
184
+ (0, vitest_1.expect)(result.sourceMapDirectory).toBe(expectedSourceMapDirectory);
185
+ (0, vitest_1.expect)(Object.keys(result.generatedFiles).length).toBe(2);
186
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBeDefined();
187
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBe(expectedSourceMappingURL);
188
+ (0, vitest_1.expect)(result.generatedFiles[expectedSourceMapFilePath]).toBeDefined();
189
+ const sourceMap = JSON.parse(result.generatedFiles[expectedSourceMapFilePath]);
190
+ (0, vitest_1.expect)(sourceMap).toBeDefined();
191
+ (0, vitest_1.expect)(sourceMap.file).toBeDefined();
192
+ (0, vitest_1.expect)(sourceMap.file).toBe(expectedSourceMapFile);
193
+ }
194
+ });
195
+ (0, vitest_1.it)('sourcemap `true` - Dictionary populated correctly using same path explicitly', () => {
196
+ const sourcemap = true;
197
+ const debugPath = path_1.default.resolve('./dist/scripts');
198
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
199
+ const parameters = _createParameters(sourcemap, outputFile, debugPath);
200
+ const expectedSourceMapDirectory = path_1.default.resolve('./dist/scripts');
201
+ const expectedOutputDirectory = path_1.default.resolve('./dist/scripts');
202
+ const expectedOutputFilePath = outputFile;
203
+ const expectedSourceMapFilePath = path_1.default.resolve('./dist/scripts/main.js.map');
204
+ const expectedSourceMappingURL = '\n//# sourceMappingURL=main.js.map\n';
205
+ const expectedSourceMapFile = 'main.js';
206
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
207
+ (0, vitest_1.expect)(result).toBeDefined();
208
+ if (result) {
209
+ (0, vitest_1.expect)(result.outputDirectory).toBe(expectedOutputDirectory);
210
+ (0, vitest_1.expect)(result.sourceMapDirectory).toBe(expectedSourceMapDirectory);
211
+ (0, vitest_1.expect)(Object.keys(result.generatedFiles).length).toBe(2);
212
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBeDefined();
213
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBe(expectedSourceMappingURL);
214
+ (0, vitest_1.expect)(result.generatedFiles[expectedSourceMapFilePath]).toBeDefined();
215
+ const sourceMap = JSON.parse(result.generatedFiles[expectedSourceMapFilePath]);
216
+ (0, vitest_1.expect)(sourceMap).toBeDefined();
217
+ (0, vitest_1.expect)(sourceMap.file).toBeDefined();
218
+ (0, vitest_1.expect)(sourceMap.file).toBe(expectedSourceMapFile);
219
+ }
220
+ });
221
+ (0, vitest_1.it)('sourcemap `linked` - Dictionary populated correctly using undefined', () => {
222
+ const sourcemap = 'linked';
223
+ const debugPath = undefined;
224
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
225
+ const parameters = _createParameters(sourcemap, outputFile, debugPath);
226
+ const expectedSourceMapDirectory = path_1.default.resolve('./dist/scripts');
227
+ const expectedOutputDirectory = path_1.default.resolve('./dist/scripts');
228
+ const expectedOutputFilePath = outputFile;
229
+ const expectedSourceMapFilePath = path_1.default.resolve('./dist/scripts/main.js.map');
230
+ const expectedSourceMappingURL = '\n//# sourceMappingURL=main.js.map\n';
231
+ const expectedSourceMapFile = 'main.js';
232
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
233
+ (0, vitest_1.expect)(result).toBeDefined();
234
+ if (result) {
235
+ (0, vitest_1.expect)(result.outputDirectory).toBe(expectedOutputDirectory);
236
+ (0, vitest_1.expect)(result.sourceMapDirectory).toBe(expectedSourceMapDirectory);
237
+ (0, vitest_1.expect)(Object.keys(result.generatedFiles).length).toBe(2);
238
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBeDefined();
239
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBe(expectedSourceMappingURL);
240
+ (0, vitest_1.expect)(result.generatedFiles[expectedSourceMapFilePath]).toBeDefined();
241
+ const sourceMap = JSON.parse(result.generatedFiles[expectedSourceMapFilePath]);
242
+ (0, vitest_1.expect)(sourceMap).toBeDefined();
243
+ (0, vitest_1.expect)(sourceMap.file).toBeDefined();
244
+ (0, vitest_1.expect)(sourceMap.file).toBe(expectedSourceMapFile);
245
+ }
246
+ });
247
+ (0, vitest_1.it)('sourcemap `external` - Dictionary populated correctly using undefined', () => {
248
+ const sourcemap = 'external';
249
+ const debugPath = undefined;
250
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
251
+ const parameters = _createParameters(sourcemap, outputFile, debugPath);
252
+ const expectedSourceMapDirectory = path_1.default.resolve('./dist/scripts');
253
+ const expectedOutputDirectory = path_1.default.resolve('./dist/scripts');
254
+ const expectedOutputFilePath = outputFile;
255
+ const expectedSourceMapFilePath = path_1.default.resolve('./dist/scripts/main.js.map');
256
+ const expectedSourceMappingURL = '';
257
+ const expectedSourceMapFile = 'main.js';
258
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
259
+ (0, vitest_1.expect)(result).toBeDefined();
260
+ if (result) {
261
+ (0, vitest_1.expect)(result.outputDirectory).toBe(expectedOutputDirectory);
262
+ (0, vitest_1.expect)(result.sourceMapDirectory).toBe(expectedSourceMapDirectory);
263
+ (0, vitest_1.expect)(Object.keys(result.generatedFiles).length).toBe(2);
264
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBeDefined();
265
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBe(expectedSourceMappingURL);
266
+ (0, vitest_1.expect)(result.generatedFiles[expectedSourceMapFilePath]).toBeDefined();
267
+ const sourceMap = JSON.parse(result.generatedFiles[expectedSourceMapFilePath]);
268
+ (0, vitest_1.expect)(sourceMap).toBeDefined();
269
+ (0, vitest_1.expect)(sourceMap.file).toBeDefined();
270
+ (0, vitest_1.expect)(sourceMap.file).toBe(expectedSourceMapFile);
271
+ }
272
+ });
273
+ (0, vitest_1.it)('sourcemap `both` - Dictionary populated correctly using undefined', () => {
274
+ const sourcemap = 'both';
275
+ const debugPath = undefined;
276
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
277
+ const parameters = _createParameters(sourcemap, outputFile, debugPath);
278
+ const expectedSourceMapDirectory = path_1.default.resolve('./dist/scripts');
279
+ const expectedOutputDirectory = path_1.default.resolve('./dist/scripts');
280
+ const expectedOutputFilePath = outputFile;
281
+ const expectedSourceMapFilePath = path_1.default.resolve('./dist/scripts/main.js.map');
282
+ const expectedSourceMappingURL = '';
283
+ const expectedSourceMapFile = 'main.js';
284
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
285
+ (0, vitest_1.expect)(result).toBeDefined();
286
+ if (result) {
287
+ (0, vitest_1.expect)(result.outputDirectory).toBe(expectedOutputDirectory);
288
+ (0, vitest_1.expect)(result.sourceMapDirectory).toBe(expectedSourceMapDirectory);
289
+ (0, vitest_1.expect)(Object.keys(result.generatedFiles).length).toBe(2);
290
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBeDefined();
291
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBe(expectedSourceMappingURL);
292
+ (0, vitest_1.expect)(result.generatedFiles[expectedSourceMapFilePath]).toBeDefined();
293
+ const sourceMap = JSON.parse(result.generatedFiles[expectedSourceMapFilePath]);
294
+ (0, vitest_1.expect)(sourceMap).toBeDefined();
295
+ (0, vitest_1.expect)(sourceMap.file).toBeDefined();
296
+ (0, vitest_1.expect)(sourceMap.file).toBe(expectedSourceMapFile);
297
+ }
298
+ });
299
+ (0, vitest_1.it)('sourcemap `inline` - Dictionary populated correctly using undefined', () => {
300
+ const sourcemap = 'inline';
301
+ const debugPath = undefined;
302
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
303
+ const parameters = _createParameters(sourcemap, outputFile, debugPath);
304
+ const expectedSourceMapDirectory = path_1.default.resolve('./dist/scripts');
305
+ const expectedOutputDirectory = path_1.default.resolve('./dist/scripts');
306
+ const expectedOutputFilePath = outputFile;
307
+ const expectedSourceMapFilePath = path_1.default.resolve('./dist/scripts/main.js.map');
308
+ const expectedSourceMappingURL = '';
309
+ const expectedSourceMapFile = 'main.js';
310
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
311
+ (0, vitest_1.expect)(result).toBeDefined();
312
+ if (result) {
313
+ (0, vitest_1.expect)(result.outputDirectory).toBe(expectedOutputDirectory);
314
+ (0, vitest_1.expect)(result.sourceMapDirectory).toBe(expectedSourceMapDirectory);
315
+ (0, vitest_1.expect)(Object.keys(result.generatedFiles).length).toBe(2);
316
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBeDefined();
317
+ (0, vitest_1.expect)(result.generatedFiles[expectedOutputFilePath]).toBe(expectedSourceMappingURL);
318
+ (0, vitest_1.expect)(result.generatedFiles[expectedSourceMapFilePath]).toBeDefined();
319
+ const sourceMap = JSON.parse(result.generatedFiles[expectedSourceMapFilePath]);
320
+ (0, vitest_1.expect)(sourceMap).toBeDefined();
321
+ (0, vitest_1.expect)(sourceMap.file).toBeDefined();
322
+ (0, vitest_1.expect)(sourceMap.file).toBe(expectedSourceMapFile);
323
+ }
324
+ });
325
+ });
326
+ (0, vitest_1.describe)('postProcessOutputFiles with no files', () => {
327
+ (0, vitest_1.it)('sourcemap `true` - Returns undefined', () => {
328
+ const sourcemap = true;
329
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
330
+ const parameters = _createParameters(sourcemap, outputFile, undefined);
331
+ parameters.buildResult.outputFiles = undefined;
332
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
333
+ (0, vitest_1.expect)(result).toBeUndefined();
334
+ });
335
+ (0, vitest_1.it)('sourcemap `false` - Returns undefined', () => {
336
+ const sourcemap = false;
337
+ const outputFile = path_1.default.resolve('./dist/scripts/main.js');
338
+ const parameters = _createParameters(sourcemap, outputFile, undefined);
339
+ parameters.buildResult.outputFiles = undefined;
340
+ const result = (0, bundle_1.postProcessOutputFiles)(parameters.options, parameters.buildResult);
341
+ (0, vitest_1.expect)(result).toBeUndefined();
342
+ });
343
+ });
344
+ //# sourceMappingURL=bundle.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.test.js","sourceRoot":"","sources":["../../src/tasks/bundle.test.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;AAElC,mCAA8C;AAC9C,qCAAwE;AAExE,gDAAwB;AAExB,SAAS,iBAAiB,CACtB,SAA0E,EAC1E,UAAkB,EAClB,mBAAuC;IAKvC,OAAO;QACH,OAAO,EAAE;YACL,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,SAAS;YACpB,mBAAmB,EAAE,mBAAmB;SAC3C;QACD,WAAW,EAAE;YACT,WAAW,EAAE;gBACT,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;gBACpE;oBACI,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,IAAI,UAAU,EAAE;oBAC1B,IAAI,EAAE,EAAE;oBACR,IAAI,EAAE,kHAAkH;iBAC3H;aACJ;YACD,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACrC,WAAW,EAAE,EAAE;SAClB;KACJ,CAAC;AACN,CAAC;AAED,IAAA,iBAAQ,EAAC,gEAAgE,EAAE,GAAG,EAAE;IAC5E,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC;QACvB,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,UAAU,CAAC;QAC1C,MAAM,yBAAyB,GAAG,cAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC3E,MAAM,wBAAwB,GAAG,+CAA+C,CAAC;QACjF,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE;YACR,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrF,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACtD;IACL,CAAC,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,qDAAqD,EAAE,GAAG,EAAE;QAC3D,MAAM,SAAS,GAAG,QAAQ,CAAC;QAC3B,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,UAAU,CAAC;QAC1C,MAAM,yBAAyB,GAAG,cAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC3E,MAAM,wBAAwB,GAAG,+CAA+C,CAAC;QACjF,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE;YACR,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrF,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACtD;IACL,CAAC,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,uDAAuD,EAAE,GAAG,EAAE;QAC7D,MAAM,SAAS,GAAG,UAAU,CAAC;QAC7B,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,UAAU,CAAC;QAC1C,MAAM,yBAAyB,GAAG,cAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC3E,MAAM,wBAAwB,GAAG,EAAE,CAAC;QACpC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE;YACR,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrF,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACtD;IACL,CAAC,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,MAAM,SAAS,GAAG,MAAM,CAAC;QACzB,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,UAAU,CAAC;QAC1C,MAAM,yBAAyB,GAAG,cAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC3E,MAAM,wBAAwB,GAAG,EAAE,CAAC;QACpC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE;YACR,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrF,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACtD;IACL,CAAC,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,qDAAqD,EAAE,GAAG,EAAE;QAC3D,MAAM,SAAS,GAAG,QAAQ,CAAC;QAC3B,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,UAAU,CAAC;QAC1C,MAAM,yBAAyB,GAAG,cAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC3E,MAAM,wBAAwB,GAAG,EAAE,CAAC;QACpC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE;YACR,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrF,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACtD;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,2DAA2D,EAAE,GAAG,EAAE;IACvE,IAAA,WAAE,EAAC,mEAAmE,EAAE,GAAG,EAAE;QACzE,MAAM,SAAS,GAAG,IAAI,CAAC;QACvB,MAAM,SAAS,GAAG,SAAS,CAAC;QAC5B,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClE,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,UAAU,CAAC;QAC1C,MAAM,yBAAyB,GAAG,cAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7E,MAAM,wBAAwB,GAAG,sCAAsC,CAAC;QACxE,MAAM,qBAAqB,GAAG,SAAS,CAAC;QAExC,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE;YACR,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrF,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACtD;IACL,CAAC,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,8EAA8E,EAAE,GAAG,EAAE;QACpF,MAAM,SAAS,GAAG,IAAI,CAAC;QACvB,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClE,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,UAAU,CAAC;QAC1C,MAAM,yBAAyB,GAAG,cAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7E,MAAM,wBAAwB,GAAG,sCAAsC,CAAC;QACxE,MAAM,qBAAqB,GAAG,SAAS,CAAC;QAExC,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE;YACR,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrF,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACtD;IACL,CAAC,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,qEAAqE,EAAE,GAAG,EAAE;QAC3E,MAAM,SAAS,GAAG,QAAQ,CAAC;QAC3B,MAAM,SAAS,GAAG,SAAS,CAAC;QAC5B,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClE,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,UAAU,CAAC;QAC1C,MAAM,yBAAyB,GAAG,cAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7E,MAAM,wBAAwB,GAAG,sCAAsC,CAAC;QACxE,MAAM,qBAAqB,GAAG,SAAS,CAAC;QAExC,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE;YACR,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrF,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACtD;IACL,CAAC,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,uEAAuE,EAAE,GAAG,EAAE;QAC7E,MAAM,SAAS,GAAG,UAAU,CAAC;QAC7B,MAAM,SAAS,GAAG,SAAS,CAAC;QAC5B,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClE,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,UAAU,CAAC;QAC1C,MAAM,yBAAyB,GAAG,cAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7E,MAAM,wBAAwB,GAAG,EAAE,CAAC;QACpC,MAAM,qBAAqB,GAAG,SAAS,CAAC;QAExC,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE;YACR,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrF,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACtD;IACL,CAAC,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,mEAAmE,EAAE,GAAG,EAAE;QACzE,MAAM,SAAS,GAAG,MAAM,CAAC;QACzB,MAAM,SAAS,GAAG,SAAS,CAAC;QAC5B,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClE,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,UAAU,CAAC;QAC1C,MAAM,yBAAyB,GAAG,cAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7E,MAAM,wBAAwB,GAAG,EAAE,CAAC;QACpC,MAAM,qBAAqB,GAAG,SAAS,CAAC;QAExC,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE;YACR,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrF,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACtD;IACL,CAAC,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,qEAAqE,EAAE,GAAG,EAAE;QAC3E,MAAM,SAAS,GAAG,QAAQ,CAAC;QAC3B,MAAM,SAAS,GAAG,SAAS,CAAC;QAC5B,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClE,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,UAAU,CAAC;QAC1C,MAAM,yBAAyB,GAAG,cAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7E,MAAM,wBAAwB,GAAG,EAAE,CAAC;QACpC,MAAM,qBAAqB,GAAG,SAAS,CAAC;QAExC,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE;YACR,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrF,IAAA,eAAM,EAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACtD;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,sCAAsC,EAAE,GAAG,EAAE;IAClD,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC;QACvB,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,UAAU,CAAC,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC;QAE/C,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC;QACxB,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,UAAU,CAAC,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC;QAE/C,MAAM,MAAM,GAAG,IAAA,+BAAsB,EAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAElF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- import type { TaskFunction } from 'just-scripts';
1
+ import { TaskFunction } from 'just-scripts';
2
2
  export declare function coreLint(files: string[], fix?: boolean): TaskFunction;
@@ -6,19 +6,49 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  };
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.coreLint = void 0;
9
+ const child_process_1 = require("child_process");
9
10
  const fs_1 = require("fs");
10
11
  const just_scripts_1 = require("just-scripts");
11
12
  const path_1 = __importDefault(require("path"));
12
13
  const process_1 = __importDefault(require("process"));
14
+ const LEGACY_CONFIG_FILES = ['.eslintrc.js'];
15
+ const FLAT_CONFIG_FILES = ['eslint.config.js', 'eslint.config.mjs', 'eslint.config.cjs'];
16
+ const POSSIBLE_CONFIG_FILES = [...LEGACY_CONFIG_FILES, ...FLAT_CONFIG_FILES];
17
+ function getConfigFilePath() {
18
+ for (const file of POSSIBLE_CONFIG_FILES) {
19
+ const configPath = path_1.default.resolve(process_1.default.cwd(), file);
20
+ if ((0, fs_1.existsSync)(configPath)) {
21
+ return configPath;
22
+ }
23
+ }
24
+ return undefined;
25
+ }
26
+ function eslintTask(files, fix) {
27
+ return () => {
28
+ const configFilePath = getConfigFilePath();
29
+ if (configFilePath) {
30
+ // Setting ESLINT_USE_FLAT_CONFIG environment variable to indicate if the config file is flat or not.
31
+ // ESLint is not able to determine the type in all the cases, so we need to help it.
32
+ process_1.default.env['ESLINT_USE_FLAT_CONFIG'] = FLAT_CONFIG_FILES.some(file => configFilePath.endsWith(file))
33
+ ? 'true'
34
+ : 'false';
35
+ const cmd = ['eslint', ...files, '--config', configFilePath, ...(fix ? ['--fix'] : []), '--color'].join(' ');
36
+ just_scripts_1.logger.info(`Running command: ${cmd}`);
37
+ return (0, child_process_1.execSync)(cmd, { stdio: 'inherit' });
38
+ }
39
+ // no-op if the config file does not exist.
40
+ return Promise.resolve();
41
+ };
42
+ }
13
43
  function coreLint(files, fix) {
14
44
  (0, just_scripts_1.task)('verify-lint', () => {
15
- // If the process working directory does not have an `.eslintrc.js` file, fail the build
16
- const lintConfig = path_1.default.resolve(process_1.default.cwd(), '.eslintrc.js');
17
- if (!(0, fs_1.existsSync)(lintConfig)) {
18
- throw new Error(`.eslintrc.js not found at ${lintConfig}.`);
45
+ // If the process working directory does not have an eslint configuration file, fail the build:
46
+ // https://eslint.org/docs/latest/use/configure/configuration-files-new
47
+ if (!getConfigFilePath()) {
48
+ throw new Error(`ESLint config file not found at ${process_1.default.cwd()}. Possible values: [${POSSIBLE_CONFIG_FILES.join(', ')}]`);
19
49
  }
20
50
  });
21
- (0, just_scripts_1.task)('eslint', (0, just_scripts_1.eslintTask)({ files, fix }));
51
+ (0, just_scripts_1.task)('eslint', eslintTask(files, fix));
22
52
  (0, just_scripts_1.task)('prettier-fix', (0, just_scripts_1.prettierTask)({ files }));
23
53
  (0, just_scripts_1.task)('prettier-check', (0, just_scripts_1.prettierCheckTask)({ files }));
24
54
  return (0, just_scripts_1.series)('verify-lint', 'eslint', (0, just_scripts_1.condition)('prettier-check', () => !fix), (0, just_scripts_1.condition)('prettier-fix', () => !!fix));
@@ -1 +1 @@
1
- {"version":3,"file":"coreLint.js","sourceRoot":"","sources":["../../src/tasks/coreLint.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;AAElC,2BAAgC;AAEhC,+CAAoG;AACpG,gDAAwB;AACxB,sDAA8B;AAE9B,SAAgB,QAAQ,CAAC,KAAe,EAAE,GAAa;IACnD,IAAA,mBAAI,EAAC,aAAa,EAAE,GAAG,EAAE;QACrB,wFAAwF;QACxF,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,iBAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,GAAG,CAAC,CAAC;SAC/D;IACL,CAAC,CAAC,CAAC;IACH,IAAA,mBAAI,EAAC,QAAQ,EAAE,IAAA,yBAAU,EAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAA,mBAAI,EAAC,cAAc,EAAE,IAAA,2BAAY,EAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9C,IAAA,mBAAI,EAAC,gBAAgB,EAAE,IAAA,gCAAiB,EAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAErD,OAAO,IAAA,qBAAM,EACT,aAAa,EACb,QAAQ,EACR,IAAA,wBAAS,EAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EACvC,IAAA,wBAAS,EAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CACzC,CAAC;AACN,CAAC;AAlBD,4BAkBC"}
1
+ {"version":3,"file":"coreLint.js","sourceRoot":"","sources":["../../src/tasks/coreLint.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;AAElC,iDAAyC;AACzC,2BAAgC;AAChC,+CAA8G;AAC9G,gDAAwB;AACxB,sDAA8B;AAE9B,MAAM,mBAAmB,GAAG,CAAC,cAAc,CAAC,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AACzF,MAAM,qBAAqB,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,iBAAiB,CAAC,CAAC;AAE7E,SAAS,iBAAiB;IACtB,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE;QACtC,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,iBAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE;YACxB,OAAO,UAAU,CAAC;SACrB;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAAC,KAAe,EAAE,GAAa;IAC9C,OAAO,GAAG,EAAE;QACR,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,IAAI,cAAc,EAAE;YAChB,qGAAqG;YACrG,oFAAoF;YACpF,iBAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjG,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,OAAO,CAAC;YACd,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CACnG,GAAG,CACN,CAAC;YACF,qBAAM,CAAC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;YACvC,OAAO,IAAA,wBAAQ,EAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SAC9C;QAED,2CAA2C;QAC3C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAe,EAAE,GAAa;IACnD,IAAA,mBAAI,EAAC,aAAa,EAAE,GAAG,EAAE;QACrB,+FAA+F;QAC/F,uEAAuE;QACvE,IAAI,CAAC,iBAAiB,EAAE,EAAE;YACtB,MAAM,IAAI,KAAK,CACX,mCAAmC,iBAAO,CAAC,GAAG,EAAE,uBAAuB,qBAAqB,CAAC,IAAI,CAC7F,IAAI,CACP,GAAG,CACP,CAAC;SACL;IACL,CAAC,CAAC,CAAC;IACH,IAAA,mBAAI,EAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACvC,IAAA,mBAAI,EAAC,cAAc,EAAE,IAAA,2BAAY,EAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9C,IAAA,mBAAI,EAAC,gBAAgB,EAAE,IAAA,gCAAiB,EAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAErD,OAAO,IAAA,qBAAM,EACT,aAAa,EACb,QAAQ,EACR,IAAA,wBAAS,EAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EACvC,IAAA,wBAAS,EAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CACzC,CAAC;AACN,CAAC;AAtBD,4BAsBC"}
package/package.json CHANGED
@@ -1,10 +1,16 @@
1
1
  {
2
2
  "name": "@minecraft/core-build-tasks",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Common build tasks used for minecraft-scripting-libraries",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "author": "Raphael Landaverde (rlanda@microsoft.com)",
8
+ "contributors": [
9
+ {
10
+ "name": "Francisco Alejandro Garcia Cebada",
11
+ "email": "frgarc@mojang.com"
12
+ }
13
+ ],
8
14
  "scripts": {
9
15
  "build-tools": "just-scripts build-tools",
10
16
  "clean-tools": "just-scripts clean-tools",
@@ -18,6 +24,7 @@
18
24
  "@microsoft/api-extractor": "^7.38.3",
19
25
  "esbuild": "^0.20.1",
20
26
  "dotenv": "^16.0.2",
27
+ "just-scripts": "^2.2.1",
21
28
  "prettier": "^2.8.2",
22
29
  "rimraf": "^3.0.2",
23
30
  "vitest": "^0.34.6",
@@ -27,7 +34,6 @@
27
34
  "devDependencies": {
28
35
  "@types/node": "^14.0.0 || ^16.0.0 || ^18.0.0",
29
36
  "@types/rimraf": "^3.0.2",
30
- "just-scripts": "^2.1.3",
31
37
  "ts-node": "^10.9.1",
32
38
  "tsconfig": "*",
33
39
  "typescript": "^5.2.2"