@intelligentgraphics/ig.gfx.packager 3.0.3 → 3.0.5

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 (69) hide show
  1. package/build/cli-2c3347fd.js +2487 -0
  2. package/build/cli-2c3347fd.js.map +1 -0
  3. package/build/{lib/dependencies.mjs → dependencies-300450ae.js} +62 -4
  4. package/build/dependencies-300450ae.js.map +1 -0
  5. package/build/generate-97bb8b12.js +231 -0
  6. package/build/generate-97bb8b12.js.map +1 -0
  7. package/build/{commands/build/index.mjs → index-01b0ddab.js} +151 -8
  8. package/build/index-01b0ddab.js.map +1 -0
  9. package/build/{commands/publish/index.mjs → index-f59e50ec.js} +181 -16
  10. package/build/index-f59e50ec.js.map +1 -0
  11. package/build/index.mjs +1 -1
  12. package/build/index.mjs.map +1 -1
  13. package/build/{commands/postinstall.mjs → postinstall-5bba19eb.js} +18 -8
  14. package/build/postinstall-5bba19eb.js.map +1 -0
  15. package/build/{commands/publishNpm.mjs → publishNpm-eb07f766.js} +21 -9
  16. package/build/publishNpm-eb07f766.js.map +1 -0
  17. package/build/versionFile-af5ed4bc.js +370 -0
  18. package/build/versionFile-af5ed4bc.js.map +1 -0
  19. package/package.json +8 -7
  20. package/readme.md +107 -32
  21. package/build/cli.mjs +0 -313
  22. package/build/cli.mjs.map +0 -1
  23. package/build/commands/build/docs.mjs +0 -34
  24. package/build/commands/build/docs.mjs.map +0 -1
  25. package/build/commands/build/index.mjs.map +0 -1
  26. package/build/commands/build/tsc.mjs +0 -84
  27. package/build/commands/build/tsc.mjs.map +0 -1
  28. package/build/commands/generate.mjs +0 -182
  29. package/build/commands/generate.mjs.map +0 -1
  30. package/build/commands/postinstall.mjs.map +0 -1
  31. package/build/commands/publish/index.mjs.map +0 -1
  32. package/build/commands/publish/zip.mjs +0 -168
  33. package/build/commands/publish/zip.mjs.map +0 -1
  34. package/build/commands/publishNpm.mjs.map +0 -1
  35. package/build/lib/assetService.mjs +0 -111
  36. package/build/lib/assetService.mjs.map +0 -1
  37. package/build/lib/banner.mjs +0 -20
  38. package/build/lib/banner.mjs.map +0 -1
  39. package/build/lib/dependencies.mjs.map +0 -1
  40. package/build/lib/error.mjs +0 -15
  41. package/build/lib/error.mjs.map +0 -1
  42. package/build/lib/fs.mjs +0 -19
  43. package/build/lib/fs.mjs.map +0 -1
  44. package/build/lib/git.mjs +0 -37
  45. package/build/lib/git.mjs.map +0 -1
  46. package/build/lib/log.mjs +0 -9
  47. package/build/lib/log.mjs.map +0 -1
  48. package/build/lib/npmPackage.mjs +0 -19
  49. package/build/lib/npmPackage.mjs.map +0 -1
  50. package/build/lib/package.mjs +0 -129
  51. package/build/lib/package.mjs.map +0 -1
  52. package/build/lib/packageVersion.mjs +0 -174
  53. package/build/lib/packageVersion.mjs.map +0 -1
  54. package/build/lib/parseVersion.mjs +0 -54
  55. package/build/lib/parseVersion.mjs.map +0 -1
  56. package/build/lib/prompter.mjs +0 -31
  57. package/build/lib/prompter.mjs.map +0 -1
  58. package/build/lib/publishedPackage.mjs +0 -66
  59. package/build/lib/publishedPackage.mjs.map +0 -1
  60. package/build/lib/scripts.mjs +0 -10
  61. package/build/lib/scripts.mjs.map +0 -1
  62. package/build/lib/stripUtf8Bom.mjs +0 -11
  63. package/build/lib/stripUtf8Bom.mjs.map +0 -1
  64. package/build/lib/toposort.mjs +0 -26
  65. package/build/lib/toposort.mjs.map +0 -1
  66. package/build/lib/versionFile.mjs +0 -78
  67. package/build/lib/versionFile.mjs.map +0 -1
  68. package/build/lib/workspace.mjs +0 -51
  69. package/build/lib/workspace.mjs.map +0 -1
@@ -0,0 +1,370 @@
1
+ import simpleGit from 'simple-git';
2
+ import * as path from 'path';
3
+ import * as fs from 'fs';
4
+ import 'resolve';
5
+ import 'write-pkg';
6
+ import { i as isErrorENOENT } from './cli-2c3347fd.js';
7
+ import 'glob';
8
+ import 'node:path';
9
+ import 'node:fs';
10
+ import 'axios';
11
+
12
+ const readStringFromFile = filePath => fs.readFileSync(filePath, {
13
+ encoding: "utf8"
14
+ });
15
+ const readStringFromFileOrUndefined = filePath => {
16
+ try {
17
+ return readStringFromFile(filePath);
18
+ } catch (err) {
19
+ if (!isErrorENOENT(err)) {
20
+ throw err;
21
+ }
22
+ return undefined;
23
+ }
24
+ };
25
+
26
+ const getVersionInformationFromGit = async (workspaceLocation, packageLocation) => {
27
+ try {
28
+ var _log$latest, _log$latest2;
29
+ const git = simpleGit({
30
+ baseDir: workspaceLocation.path
31
+ });
32
+
33
+ // check wether the files for a folder are changed
34
+ // if so, mark as dirty
35
+ const diff = await git.diffSummary();
36
+ const dirty = diff.files.some(file => {
37
+ if (file.file.toLowerCase().includes("releases") || file.file.toLowerCase().endsWith("version.ts") || file.file.toLowerCase().endsWith("package.json")) {
38
+ return false;
39
+ }
40
+ const fullPath = path.resolve(workspaceLocation.path, file.file);
41
+ const relativePath = path.relative(packageLocation.path, fullPath);
42
+ return !relativePath.startsWith("..");
43
+ });
44
+ const log = await git.log({
45
+ maxCount: 1
46
+ });
47
+ const commit = !((_log$latest = log.latest) !== null && _log$latest !== void 0 && _log$latest.hash) ? undefined : log.latest.hash.substring(0, 7);
48
+ return {
49
+ commit,
50
+ dirty,
51
+ commitDate: (_log$latest2 = log.latest) === null || _log$latest2 === void 0 ? void 0 : _log$latest2.date
52
+ };
53
+ } catch (err) {
54
+ return {};
55
+ }
56
+ };
57
+
58
+ const getWorkspaceBannerText = manifest => {
59
+ var _manifest$packager;
60
+ let bannerText = manifest === null || manifest === void 0 ? void 0 : (_manifest$packager = manifest.packager) === null || _manifest$packager === void 0 ? void 0 : _manifest$packager.banner;
61
+ if (bannerText) {
62
+ const match = bannerText.match(/Copyright \(C\) (\d+)( ?- ?(\d+))?/);
63
+ if (match !== null) {
64
+ const startYear = parseInt(match[1]);
65
+ const endYear = new Date().getFullYear();
66
+ if (startYear !== endYear) {
67
+ bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear} - ${endYear}`);
68
+ } else {
69
+ bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear}`);
70
+ }
71
+ }
72
+ }
73
+ return bannerText;
74
+ };
75
+
76
+ // Stolen from ig.tools.core
77
+
78
+ class PackageVersion {
79
+ // https://regex101.com/r/90PEY9/1
80
+ static fullTextMatcher = /(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?/;
81
+ static lineMatcher = /^(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?$/;
82
+ static extractFromText(input, description) {
83
+ if (input === undefined) {
84
+ throw new Error(`Can not parse version from undefined`);
85
+ }
86
+ const match = input.match(PackageVersion.fullTextMatcher);
87
+ if (!match) {
88
+ throw new Error(`Could not extract a version from input: ${input}`);
89
+ }
90
+ return PackageVersion.fromMatch(match, description);
91
+ }
92
+ static extractFromLine(input, description) {
93
+ if (input === undefined) {
94
+ throw new Error(`Can not parse version from undefined`);
95
+ }
96
+ const match = input.match(PackageVersion.lineMatcher);
97
+ if (!match) {
98
+ throw new Error(`Could not parse version from input: ${input}`);
99
+ }
100
+ return PackageVersion.fromMatch(match, description);
101
+ }
102
+ static equals(a, b, checkPrerelease = false) {
103
+ if (a.major !== b.major || a.minor !== b.minor || a.patch !== b.patch) {
104
+ return false;
105
+ }
106
+ if (checkPrerelease === false) {
107
+ return true;
108
+ }
109
+ if (a.preRelease === b.preRelease) {
110
+ return true;
111
+ }
112
+ if (a.preRelease === undefined || b.preRelease === undefined) {
113
+ return false;
114
+ }
115
+ return a.preRelease.type === b.preRelease.type && a.preRelease.version === b.preRelease.version;
116
+ }
117
+ static fromMatch([, major,, minor = "0",, patch = "0",, build,, preReleaseType, preReleaseNumber], description) {
118
+ let preRelease = undefined;
119
+ let buildNumber = 100;
120
+ if (preReleaseType && preReleaseNumber) {
121
+ preRelease = {
122
+ type: preReleaseType,
123
+ version: parseInt(preReleaseNumber)
124
+ };
125
+ }
126
+ if (build) {
127
+ buildNumber = Number(build);
128
+ } else if (description) {
129
+ const descriptionMatch = description.match(/(\d+)\)$/);
130
+ if (descriptionMatch) {
131
+ buildNumber = parseInt(descriptionMatch[1]);
132
+ }
133
+ }
134
+ return new PackageVersion(parseInt(major), parseInt(minor), parseInt(patch), preRelease, buildNumber);
135
+ }
136
+ static sort(a, b, ascending = true) {
137
+ const createSortResult = (a, b) => ascending ? a - b : b - a;
138
+ if (a.major !== b.major) {
139
+ return createSortResult(a.major, b.major);
140
+ }
141
+ if (a.minor !== b.minor) {
142
+ return createSortResult(a.minor, b.minor);
143
+ }
144
+ if (a.patch !== b.patch) {
145
+ return createSortResult(a.patch, b.patch);
146
+ }
147
+ return createSortResult(a.preRelease ? a.preRelease.version : 0, b.preRelease ? b.preRelease.version : 0);
148
+ }
149
+ static toNumber(version) {
150
+ return ((version.major * 1000 + version.minor) * 1000 + version.patch) * 1000 + version.buildNumber;
151
+ }
152
+ constructor(major, minor, patch, preRelease, buildNumber) {
153
+ this.major = major;
154
+ this.minor = minor;
155
+ this.patch = patch;
156
+ this.preRelease = preRelease;
157
+ this.buildNumber = buildNumber;
158
+ }
159
+ isPreRelease() {
160
+ return this.preRelease !== undefined;
161
+ }
162
+ clone() {
163
+ return new PackageVersion(this.major, this.minor, this.patch, this.preRelease ? {
164
+ ...this.preRelease
165
+ } : undefined, this.buildNumber);
166
+ }
167
+ incrementMajor() {
168
+ this.preRelease = undefined;
169
+ this.patch = 0;
170
+ this.minor = 0;
171
+ this.major++;
172
+ }
173
+ incrementMinor() {
174
+ this.preRelease = undefined;
175
+ this.patch = 0;
176
+ this.minor++;
177
+ }
178
+ incrementPatch() {
179
+ this.preRelease = undefined;
180
+ this.patch++;
181
+ }
182
+ createPreRelease(type) {
183
+ if (!this.preRelease) {
184
+ this.buildNumber = 1;
185
+ } else {
186
+ this.buildNumber++;
187
+ }
188
+ if (this.preRelease && type === this.preRelease.type) {
189
+ this.preRelease.version++;
190
+ return;
191
+ }
192
+ this.preRelease = {
193
+ version: 0,
194
+ type
195
+ };
196
+ }
197
+ createRelease() {
198
+ this.preRelease = undefined;
199
+ this.buildNumber = 100;
200
+ }
201
+ toVersionString({
202
+ buildNumber
203
+ } = {}) {
204
+ let version = [this.major, this.minor, this.patch].join(".");
205
+ if (buildNumber) {
206
+ version += "." + this.buildNumber;
207
+ }
208
+ if (this.preRelease) {
209
+ version += `-${this.preRelease.type}.${this.preRelease.version}`;
210
+ }
211
+ return version;
212
+ }
213
+ toDescriptionString(packageName) {
214
+ const base = [this.major, this.minor, this.patch].join(".");
215
+ const parts = [packageName, base];
216
+ if (this.preRelease) {
217
+ parts.push(upperCaseFirst(this.preRelease.type));
218
+ parts.push(this.preRelease.version);
219
+ }
220
+ parts.push(`(${base}.${this.buildNumber})`);
221
+ return parts.join(" ");
222
+ }
223
+
224
+ /**
225
+ * Determines wether the version is lesser than the input version
226
+ *
227
+ * @param {PackageVersion} version
228
+ * @returns
229
+ */
230
+ isLesserThan(version) {
231
+ return PackageVersion.toNumber(this) < PackageVersion.toNumber(version);
232
+ }
233
+
234
+ /**
235
+ * Determines wether the version is greater than the input version
236
+ *
237
+ * @param {PackageVersion} version
238
+ * @returns
239
+ */
240
+ isGreaterThan(version) {
241
+ return PackageVersion.toNumber(this) > PackageVersion.toNumber(version);
242
+ }
243
+ }
244
+ const upperCaseFirst = input => {
245
+ return input.slice(0, 1).toUpperCase() + input.slice(1);
246
+ };
247
+
248
+ const parseVersionFromString = input => {
249
+ if (input === undefined) {
250
+ throw new Error(`Can not parse version from undefined`);
251
+ }
252
+ let match;
253
+ let major;
254
+ let minor;
255
+ let patch;
256
+ let build;
257
+ let preReleaseType;
258
+ let preReleaseNumber;
259
+ if (
260
+ // first try to find a full match with build number
261
+ (match = input.match(/(\d+)\.(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
262
+ [, major, minor, patch, build, preReleaseType, preReleaseNumber] = match;
263
+ } else if ((match = input.match(/(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
264
+ [, major, minor, patch,, preReleaseType, preReleaseNumber] = match;
265
+ }
266
+ if (match === null) {
267
+ throw new Error(`Could not parse version from input: ${input}`);
268
+ }
269
+ let preRelease = undefined;
270
+ let buildNumber = 100;
271
+ if (preReleaseType && preReleaseNumber) {
272
+ preRelease = {
273
+ type: preReleaseType,
274
+ version: parseInt(preReleaseNumber)
275
+ };
276
+ }
277
+ if (build) {
278
+ buildNumber = Number(build);
279
+ } else if (input) {
280
+ const descriptionMatch = input.match(/(\d+)\)$/);
281
+ if (descriptionMatch) {
282
+ buildNumber = parseInt(descriptionMatch[1]);
283
+ }
284
+ }
285
+ return new PackageVersion(parseInt(major), parseInt(minor), parseInt(patch), preRelease, buildNumber);
286
+ };
287
+
288
+ // 1000001001 -> 1.0.1.1
289
+ // 1002017001 -> 1.2.17.1
290
+ const parseVersionFromNumericVersion = version => {
291
+ const major = Math.floor(version / 1000000000);
292
+ const minor = Math.floor(version % 1000000000 / 1000000);
293
+ const patch = Math.floor(version % 1000000 / 1000);
294
+ const buildNumber = version % 1000;
295
+ return new PackageVersion(major, minor, patch, undefined, buildNumber);
296
+ };
297
+
298
+ // https://regex101.com/r/LtGAu5/1
299
+ const logRegex = /console\.log\(\s*"([\w\s\.\(\)]+)\ *Copyright[\w\s\(\)\.]+(\d{4}|\d{4} - \d{4})([\w\s\(\)\.]+)?",?\s*\)/i;
300
+ const currentYear = new Date(Date.now()).getFullYear();
301
+ const getVersionFileHandler = location => {
302
+ const filePath = path.join(location.scriptsDir, "Version.ts");
303
+ const invalidVersionFile = versionFile => ({
304
+ version: undefined,
305
+ write: (name, newVersion) => {
306
+ const scriptsContent = fs.readdirSync(location.scriptsDir);
307
+ const tsFiles = scriptsContent.filter(file => file.endsWith(".ts"));
308
+ if (tsFiles.length > 0) {
309
+ return createVersionFileWriter([currentYear], "")(name, newVersion);
310
+ }
311
+ },
312
+ reset: () => {
313
+ if (versionFile !== undefined) {
314
+ fs.writeFileSync(filePath, versionFile, {
315
+ encoding: "utf8"
316
+ });
317
+ } else {
318
+ try {
319
+ fs.rmSync(filePath);
320
+ } catch (err) {
321
+ if (!isErrorENOENT(err)) {
322
+ throw err;
323
+ }
324
+ }
325
+ }
326
+ }
327
+ });
328
+ const createVersionFileWriter = (copyright = [currentYear], copyrightStuff = "") => (name, newVersion) => {
329
+ const descriptionText = newVersion.toDescriptionString(name);
330
+ const copyrightText = createYearString(copyright);
331
+ const result = `console.log("${descriptionText}. Copyright (C) ${copyrightText}${copyrightStuff}");`;
332
+ fs.writeFileSync(filePath, result, {
333
+ encoding: "utf-8"
334
+ });
335
+ };
336
+ let rawVersionFile = readStringFromFileOrUndefined(filePath);
337
+ if (rawVersionFile === undefined) {
338
+ return invalidVersionFile(rawVersionFile);
339
+ }
340
+ const versionFile = rawVersionFile.replace(/\n/g, "");
341
+ const match = versionFile.match(logRegex);
342
+ if (!match) {
343
+ return invalidVersionFile(versionFile);
344
+ }
345
+ const [_full, _description, copyright, copyrightStuff] = match;
346
+ const copyrightYears = copyright.match(/^(\d+)( ?- ?(\d+))?$/);
347
+ let years;
348
+ if (copyrightYears === null) {
349
+ years = [currentYear];
350
+ } else {
351
+ years = [Number(copyrightYears[1]), currentYear];
352
+ }
353
+ return {
354
+ write: createVersionFileWriter(years, copyrightStuff),
355
+ reset: () => {
356
+ fs.writeFileSync(filePath, versionFile, {
357
+ encoding: "utf8"
358
+ });
359
+ }
360
+ };
361
+ };
362
+ const createYearString = years => {
363
+ if (years[1] === undefined || years[0] === years[1]) {
364
+ return years[0].toString();
365
+ }
366
+ return `${years[0]} - ${years[1]}`;
367
+ };
368
+
369
+ export { PackageVersion as P, getVersionInformationFromGit as a, getWorkspaceBannerText as b, parseVersionFromNumericVersion as c, getVersionFileHandler as g, parseVersionFromString as p };
370
+ //# sourceMappingURL=versionFile-af5ed4bc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionFile-af5ed4bc.js","sources":["../../tools.core/build/fs.mjs","../src/lib/git.ts","../src/lib/banner.ts","../src/lib/packageVersion.ts","../src/lib/parseVersion.ts","../src/lib/versionFile.ts"],"sourcesContent":["import * as fs from 'fs';\nimport { isErrorENOENT } from './error.mjs';\n\nconst readStringFromFile = filePath => fs.readFileSync(filePath, {\n encoding: \"utf8\"\n});\nconst readStringFromFileOrUndefined = filePath => {\n try {\n return readStringFromFile(filePath);\n } catch (err) {\n if (!isErrorENOENT(err)) {\n throw err;\n }\n return undefined;\n }\n};\n\nexport { readStringFromFile, readStringFromFileOrUndefined };\n//# sourceMappingURL=fs.mjs.map\n","import simpleGit from \"simple-git\";\nimport * as path from \"path\";\n\nimport { WorkspaceLocation } from \"./workspace\";\nimport { PackageLocation } from \"./package\";\n\nexport const getVersionInformationFromGit = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tpackageLocation: PackageLocation,\n) => {\n\ttry {\n\t\tconst git = simpleGit({\n\t\t\tbaseDir: workspaceLocation.path,\n\t\t});\n\n\t\t// check wether the files for a folder are changed\n\t\t// if so, mark as dirty\n\t\tconst diff = await git.diffSummary();\n\n\t\tconst dirty = diff.files.some((file) => {\n\t\t\tif (\n\t\t\t\tfile.file.toLowerCase().includes(\"releases\") ||\n\t\t\t\tfile.file.toLowerCase().endsWith(\"version.ts\") ||\n\t\t\t\tfile.file.toLowerCase().endsWith(\"package.json\")\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst fullPath = path.resolve(workspaceLocation.path, file.file);\n\t\t\tconst relativePath = path.relative(packageLocation.path, fullPath);\n\n\t\t\treturn !relativePath.startsWith(\"..\");\n\t\t});\n\n\t\tconst log = await git.log({ maxCount: 1 });\n\t\tconst commit = !log.latest?.hash\n\t\t\t? undefined\n\t\t\t: log.latest.hash.substring(0, 7);\n\n\t\treturn {\n\t\t\tcommit,\n\t\t\tdirty,\n\t\t\tcommitDate: log.latest?.date,\n\t\t};\n\t} catch (err) {\n\t\treturn {};\n\t}\n};\n","import { WorkspacePackageJSON } from \"./workspace\";\n\nexport const getWorkspaceBannerText = (manifest: WorkspacePackageJSON) => {\n\tlet bannerText = manifest?.packager?.banner;\n\n\tif (bannerText) {\n\t\tconst match = bannerText.match(/Copyright \\(C\\) (\\d+)( ?- ?(\\d+))?/);\n\n\t\tif (match !== null) {\n\t\t\tconst startYear = parseInt(match[1]);\n\t\t\tconst endYear = new Date().getFullYear();\n\n\t\t\tif (startYear !== endYear) {\n\t\t\t\tbannerText = bannerText.replace(\n\t\t\t\t\tmatch[0],\n\t\t\t\t\t`Copyright (C) ${startYear} - ${endYear}`,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tbannerText = bannerText.replace(\n\t\t\t\t\tmatch[0],\n\t\t\t\t\t`Copyright (C) ${startYear}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn bannerText;\n};\n","// Stolen from ig.tools.core\n\nexport interface PackageVersionToVersionStringParams {\n\tbuildNumber?: boolean;\n}\n\nexport class PackageVersion {\n\t// https://regex101.com/r/90PEY9/1\n\tpublic static fullTextMatcher =\n\t\t/(\\d+)(\\.(\\d+)(\\.(\\d+)(\\.(\\d+))?(-([^\\.]+)\\.(\\d+))?)?)?/;\n\tpublic static lineMatcher =\n\t\t/^(\\d+)(\\.(\\d+)(\\.(\\d+)(\\.(\\d+))?(-([^\\.]+)\\.(\\d+))?)?)?$/;\n\n\tpublic static extractFromText(input: string, description?: string) {\n\t\tif (input === undefined) {\n\t\t\tthrow new Error(`Can not parse version from undefined`);\n\t\t}\n\n\t\tconst match = input.match(PackageVersion.fullTextMatcher);\n\n\t\tif (!match) {\n\t\t\tthrow new Error(`Could not extract a version from input: ${input}`);\n\t\t}\n\n\t\treturn PackageVersion.fromMatch(match, description);\n\t}\n\n\tpublic static extractFromLine(input: string, description?: string) {\n\t\tif (input === undefined) {\n\t\t\tthrow new Error(`Can not parse version from undefined`);\n\t\t}\n\n\t\tconst match = input.match(PackageVersion.lineMatcher);\n\n\t\tif (!match) {\n\t\t\tthrow new Error(`Could not parse version from input: ${input}`);\n\t\t}\n\n\t\treturn PackageVersion.fromMatch(match, description);\n\t}\n\n\tpublic static equals(\n\t\ta: PackageVersion,\n\t\tb: PackageVersion,\n\t\tcheckPrerelease = false,\n\t) {\n\t\tif (a.major !== b.major || a.minor !== b.minor || a.patch !== b.patch) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (checkPrerelease === false) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (a.preRelease === b.preRelease) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (a.preRelease === undefined || b.preRelease === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\ta.preRelease.type === b.preRelease.type &&\n\t\t\ta.preRelease.version === b.preRelease.version\n\t\t);\n\t}\n\n\tprivate static fromMatch(\n\t\t[\n\t\t\t,\n\t\t\tmajor,\n\t\t\t,\n\t\t\tminor = \"0\",\n\t\t\t,\n\t\t\tpatch = \"0\",\n\t\t\t,\n\t\t\tbuild,\n\t\t\t,\n\t\t\tpreReleaseType,\n\t\t\tpreReleaseNumber,\n\t\t]: RegExpMatchArray,\n\t\tdescription?: string,\n\t) {\n\t\tlet preRelease: PackageVersion[\"preRelease\"] = undefined;\n\t\tlet buildNumber = 100;\n\n\t\tif (preReleaseType && preReleaseNumber) {\n\t\t\tpreRelease = {\n\t\t\t\ttype: preReleaseType,\n\t\t\t\tversion: parseInt(preReleaseNumber),\n\t\t\t};\n\t\t}\n\n\t\tif (build) {\n\t\t\tbuildNumber = Number(build);\n\t\t} else if (description) {\n\t\t\tconst descriptionMatch = description.match(/(\\d+)\\)$/);\n\n\t\t\tif (descriptionMatch) {\n\t\t\t\tbuildNumber = parseInt(descriptionMatch[1]);\n\t\t\t}\n\t\t}\n\n\t\treturn new PackageVersion(\n\t\t\tparseInt(major),\n\t\t\tparseInt(minor),\n\t\t\tparseInt(patch),\n\t\t\tpreRelease,\n\t\t\tbuildNumber,\n\t\t);\n\t}\n\n\tpublic static sort(\n\t\ta: PackageVersion,\n\t\tb: PackageVersion,\n\t\tascending: boolean = true,\n\t) {\n\t\tconst createSortResult = (a: number, b: number) =>\n\t\t\tascending ? a - b : b - a;\n\n\t\tif (a.major !== b.major) {\n\t\t\treturn createSortResult(a.major, b.major);\n\t\t}\n\n\t\tif (a.minor !== b.minor) {\n\t\t\treturn createSortResult(a.minor, b.minor);\n\t\t}\n\n\t\tif (a.patch !== b.patch) {\n\t\t\treturn createSortResult(a.patch, b.patch);\n\t\t}\n\n\t\treturn createSortResult(\n\t\t\ta.preRelease ? a.preRelease.version : 0,\n\t\t\tb.preRelease ? b.preRelease.version : 0,\n\t\t);\n\t}\n\n\tprivate static toNumber(version: PackageVersion) {\n\t\treturn (\n\t\t\t((version.major * 1000 + version.minor) * 1000 + version.patch) *\n\t\t\t\t1000 +\n\t\t\tversion.buildNumber\n\t\t);\n\t}\n\n\tconstructor(\n\t\tpublic major: number,\n\t\tpublic minor: number,\n\t\tpublic patch: number,\n\t\tpublic preRelease: { type: string; version: number } | undefined,\n\t\tpublic buildNumber: number,\n\t) {}\n\n\tpublic isPreRelease() {\n\t\treturn this.preRelease !== undefined;\n\t}\n\n\tpublic clone() {\n\t\treturn new PackageVersion(\n\t\t\tthis.major,\n\t\t\tthis.minor,\n\t\t\tthis.patch,\n\t\t\tthis.preRelease ? { ...this.preRelease } : undefined,\n\t\t\tthis.buildNumber,\n\t\t);\n\t}\n\n\tpublic incrementMajor() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch = 0;\n\t\tthis.minor = 0;\n\t\tthis.major++;\n\t}\n\n\tpublic incrementMinor() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch = 0;\n\t\tthis.minor++;\n\t}\n\n\tpublic incrementPatch() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch++;\n\t}\n\n\tpublic createPreRelease(type: string) {\n\t\tif (!this.preRelease) {\n\t\t\tthis.buildNumber = 1;\n\t\t} else {\n\t\t\tthis.buildNumber++;\n\t\t}\n\n\t\tif (this.preRelease && type === this.preRelease.type) {\n\t\t\tthis.preRelease.version++;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.preRelease = {\n\t\t\tversion: 0,\n\t\t\ttype,\n\t\t};\n\t}\n\n\tpublic createRelease() {\n\t\tthis.preRelease = undefined;\n\t\tthis.buildNumber = 100;\n\t}\n\n\tpublic toVersionString({\n\t\tbuildNumber,\n\t}: PackageVersionToVersionStringParams = {}) {\n\t\tlet version = [this.major, this.minor, this.patch].join(\".\");\n\n\t\tif (buildNumber) {\n\t\t\tversion += \".\" + this.buildNumber;\n\t\t}\n\n\t\tif (this.preRelease) {\n\t\t\tversion += `-${this.preRelease.type}.${this.preRelease.version}`;\n\t\t}\n\n\t\treturn version;\n\t}\n\n\tpublic toDescriptionString(packageName: string) {\n\t\tconst base = [this.major, this.minor, this.patch].join(\".\");\n\t\tconst parts: (number | string)[] = [packageName, base];\n\n\t\tif (this.preRelease) {\n\t\t\tparts.push(upperCaseFirst(this.preRelease.type));\n\t\t\tparts.push(this.preRelease.version);\n\t\t}\n\n\t\tparts.push(`(${base}.${this.buildNumber})`);\n\n\t\treturn parts.join(\" \");\n\t}\n\n\t/**\n\t * Determines wether the version is lesser than the input version\n\t *\n\t * @param {PackageVersion} version\n\t * @returns\n\t */\n\tpublic isLesserThan(version: PackageVersion) {\n\t\treturn PackageVersion.toNumber(this) < PackageVersion.toNumber(version);\n\t}\n\n\t/**\n\t * Determines wether the version is greater than the input version\n\t *\n\t * @param {PackageVersion} version\n\t * @returns\n\t */\n\tpublic isGreaterThan(version: PackageVersion) {\n\t\treturn PackageVersion.toNumber(this) > PackageVersion.toNumber(version);\n\t}\n}\n\nconst upperCaseFirst = (input: string) => {\n\treturn input.slice(0, 1).toUpperCase() + input.slice(1);\n};\n","import { PackageVersion } from \"./packageVersion\";\n\nexport const parseVersionFromString = (input: string) => {\n\tif (input === undefined) {\n\t\tthrow new Error(`Can not parse version from undefined`);\n\t}\n\n\tlet match: RegExpMatchArray | null;\n\n\tlet major!: string;\n\tlet minor!: string;\n\tlet patch!: string;\n\tlet build: string | undefined;\n\tlet preReleaseType: string | undefined;\n\tlet preReleaseNumber: string | undefined;\n\n\tif (\n\t\t// first try to find a full match with build number\n\t\t(match = input.match(\n\t\t\t/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)(-([^\\.]+)\\.(\\d+))?/,\n\t\t)) !== null\n\t) {\n\t\t[, major, minor, patch, build, preReleaseType, preReleaseNumber] =\n\t\t\tmatch;\n\t} else if (\n\t\t(match = input.match(/(\\d+)\\.(\\d+)\\.(\\d+)(-([^\\.]+)\\.(\\d+))?/)) !== null\n\t) {\n\t\t[, major, minor, patch, , preReleaseType, preReleaseNumber] = match;\n\t}\n\n\tif (match === null) {\n\t\tthrow new Error(`Could not parse version from input: ${input}`);\n\t}\n\n\tlet preRelease: PackageVersion[\"preRelease\"] = undefined;\n\tlet buildNumber = 100;\n\n\tif (preReleaseType && preReleaseNumber) {\n\t\tpreRelease = {\n\t\t\ttype: preReleaseType,\n\t\t\tversion: parseInt(preReleaseNumber),\n\t\t};\n\t}\n\n\tif (build) {\n\t\tbuildNumber = Number(build);\n\t} else if (input) {\n\t\tconst descriptionMatch = input.match(/(\\d+)\\)$/);\n\n\t\tif (descriptionMatch) {\n\t\t\tbuildNumber = parseInt(descriptionMatch[1]);\n\t\t}\n\t}\n\n\treturn new PackageVersion(\n\t\tparseInt(major),\n\t\tparseInt(minor),\n\t\tparseInt(patch),\n\t\tpreRelease,\n\t\tbuildNumber,\n\t);\n};\n\n// 1000001001 -> 1.0.1.1\n// 1002017001 -> 1.2.17.1\nexport const parseVersionFromNumericVersion = (\n\tversion: number,\n): PackageVersion => {\n\tconst major = Math.floor(version / 1000000000);\n\tconst minor = Math.floor((version % 1000000000) / 1000000);\n\tconst patch = Math.floor((version % 1000000) / 1000);\n\tconst buildNumber = version % 1000;\n\n\treturn new PackageVersion(major, minor, patch, undefined, buildNumber);\n};\n","import * as fs from \"fs\";\nimport * as path from \"path\";\n\nimport { isErrorENOENT } from \"./error\";\nimport { readStringFromFileOrUndefined } from \"./fs\";\nimport { PackageLocation } from \"./package\";\nimport { PackageVersion } from \"./packageVersion\";\n\n// https://regex101.com/r/LtGAu5/1\nconst logRegex =\n\t/console\\.log\\(\\s*\"([\\w\\s\\.\\(\\)]+)\\ *Copyright[\\w\\s\\(\\)\\.]+(\\d{4}|\\d{4} - \\d{4})([\\w\\s\\(\\)\\.]+)?\",?\\s*\\)/i;\nconst currentYear = new Date(Date.now()).getFullYear();\n\nexport const getVersionFileHandler = (location: PackageLocation) => {\n\tconst filePath = path.join(location.scriptsDir, \"Version.ts\");\n\n\tconst invalidVersionFile = (versionFile: string | undefined) => ({\n\t\tversion: undefined,\n\t\twrite: (name: string, newVersion: PackageVersion) => {\n\t\t\tconst scriptsContent = fs.readdirSync(location.scriptsDir);\n\t\t\tconst tsFiles = scriptsContent.filter((file) =>\n\t\t\t\tfile.endsWith(\".ts\"),\n\t\t\t);\n\n\t\t\tif (tsFiles.length > 0) {\n\t\t\t\treturn createVersionFileWriter([currentYear], \"\")(\n\t\t\t\t\tname,\n\t\t\t\t\tnewVersion,\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\treset: () => {\n\t\t\tif (versionFile !== undefined) {\n\t\t\t\tfs.writeFileSync(filePath, versionFile, { encoding: \"utf8\" });\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tfs.rmSync(filePath);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t});\n\n\ttype CopyrightRange = [number, number?];\n\n\tconst createVersionFileWriter =\n\t\t(\n\t\t\tcopyright: CopyrightRange = [currentYear],\n\t\t\tcopyrightStuff: string = \"\",\n\t\t) =>\n\t\t(name: string, newVersion: PackageVersion) => {\n\t\t\tconst descriptionText = newVersion.toDescriptionString(name);\n\t\t\tconst copyrightText = createYearString(copyright);\n\n\t\t\tconst result = `console.log(\"${descriptionText}. Copyright (C) ${copyrightText}${copyrightStuff}\");`;\n\n\t\t\tfs.writeFileSync(filePath, result, { encoding: \"utf-8\" });\n\t\t};\n\n\tlet rawVersionFile = readStringFromFileOrUndefined(filePath);\n\n\tif (rawVersionFile === undefined) {\n\t\treturn invalidVersionFile(rawVersionFile);\n\t}\n\n\tconst versionFile = rawVersionFile.replace(/\\n/g, \"\");\n\n\tconst match = versionFile.match(logRegex);\n\n\tif (!match) {\n\t\treturn invalidVersionFile(versionFile);\n\t}\n\n\tconst [_full, _description, copyright, copyrightStuff] = match as [\n\t\tstring,\n\t\tstring,\n\t\tstring,\n\t\tstring?,\n\t];\n\n\tconst copyrightYears = copyright.match(/^(\\d+)( ?- ?(\\d+))?$/);\n\n\tlet years: [number, number?];\n\n\tif (copyrightYears === null) {\n\t\tyears = [currentYear];\n\t} else {\n\t\tyears = [Number(copyrightYears[1]), currentYear];\n\t}\n\n\treturn {\n\t\twrite: createVersionFileWriter(years, copyrightStuff),\n\t\treset: () => {\n\t\t\tfs.writeFileSync(filePath, versionFile, { encoding: \"utf8\" });\n\t\t},\n\t};\n};\n\nconst createYearString = (years: [number, number?]) => {\n\tif (years[1] === undefined || years[0] === years[1]) {\n\t\treturn years[0].toString();\n\t}\n\n\treturn `${years[0]} - ${years[1]}`;\n};\n"],"names":["readStringFromFile","filePath","fs","readFileSync","encoding","readStringFromFileOrUndefined","err","isErrorENOENT","undefined","getVersionInformationFromGit","workspaceLocation","packageLocation","_log$latest","_log$latest2","git","simpleGit","baseDir","path","diff","diffSummary","dirty","files","some","file","toLowerCase","includes","endsWith","fullPath","resolve","relativePath","relative","startsWith","log","maxCount","commit","latest","hash","substring","commitDate","date","getWorkspaceBannerText","manifest","_manifest$packager","bannerText","packager","banner","match","startYear","parseInt","endYear","Date","getFullYear","replace","PackageVersion","fullTextMatcher","lineMatcher","extractFromText","input","description","Error","fromMatch","extractFromLine","equals","a","b","checkPrerelease","major","minor","patch","preRelease","type","version","build","preReleaseType","preReleaseNumber","buildNumber","Number","descriptionMatch","sort","ascending","createSortResult","toNumber","constructor","isPreRelease","clone","incrementMajor","incrementMinor","incrementPatch","createPreRelease","createRelease","toVersionString","join","toDescriptionString","packageName","base","parts","push","upperCaseFirst","isLesserThan","isGreaterThan","slice","toUpperCase","parseVersionFromString","parseVersionFromNumericVersion","Math","floor","logRegex","currentYear","now","getVersionFileHandler","location","scriptsDir","invalidVersionFile","versionFile","write","name","newVersion","scriptsContent","readdirSync","tsFiles","filter","length","createVersionFileWriter","reset","writeFileSync","rmSync","copyright","copyrightStuff","descriptionText","copyrightText","createYearString","result","rawVersionFile","_full","_description","copyrightYears","years","toString"],"mappings":";;;;;;;;;;;AAIO,MAAMA,kBAAkB,GAAIC,QAAgB,IAClDC,EAAE,CAACC,YAAY,CAACF,QAAQ,EAAE;AAAEG,EAAAA,QAAQ,EAAE,MAAA;AAAO,CAAC,CAAA,CAAA;AAElC,MAAAC,6BAA6B,GACzCJ,QAAgB,IACQ;EACxB,IAAI;IACH,OAAOD,kBAAkB,CAACC,QAAQ,CAAC,CAAA;GACnC,CAAC,OAAOK,GAAG,EAAE;AACb,IAAA,IAAI,CAACC,aAAa,CAACD,GAAG,CAAC,EAAE;AACxB,MAAA,MAAMA,GAAG,CAAA;AACV,KAAA;AACA,IAAA,OAAOE,SAAS,CAAA;AACjB,GAAA;AACD,CAAA;;ACZO,MAAMC,4BAA4B,GAAG,OAC3CC,iBAAoC,EACpCC,eAAgC,KAC5B;EACJ,IAAI;IAAA,IAAAC,WAAA,EAAAC,YAAA,CAAA;IACH,MAAMC,GAAG,GAAGC,SAAS,CAAC;MACrBC,OAAO,EAAEN,iBAAiB,CAACO,IAAAA;AAC5B,KAAC,CAAC,CAAA;;AAEF;AACA;AACA,IAAA,MAAMC,IAAI,GAAG,MAAMJ,GAAG,CAACK,WAAW,EAAE,CAAA;IAEpC,MAAMC,KAAK,GAAGF,IAAI,CAACG,KAAK,CAACC,IAAI,CAAEC,IAAI,IAAK;AACvC,MAAA,IACCA,IAAI,CAACA,IAAI,CAACC,WAAW,EAAE,CAACC,QAAQ,CAAC,UAAU,CAAC,IAC5CF,IAAI,CAACA,IAAI,CAACC,WAAW,EAAE,CAACE,QAAQ,CAAC,YAAY,CAAC,IAC9CH,IAAI,CAACA,IAAI,CAACC,WAAW,EAAE,CAACE,QAAQ,CAAC,cAAc,CAAC,EAC/C;AACD,QAAA,OAAO,KAAK,CAAA;AACb,OAAA;AAEA,MAAA,MAAMC,QAAQ,GAAGV,IAAI,CAACW,OAAO,CAAClB,iBAAiB,CAACO,IAAI,EAAEM,IAAI,CAACA,IAAI,CAAC,CAAA;MAChE,MAAMM,YAAY,GAAGZ,IAAI,CAACa,QAAQ,CAACnB,eAAe,CAACM,IAAI,EAAEU,QAAQ,CAAC,CAAA;AAElE,MAAA,OAAO,CAACE,YAAY,CAACE,UAAU,CAAC,IAAI,CAAC,CAAA;AACtC,KAAC,CAAC,CAAA;AAEF,IAAA,MAAMC,GAAG,GAAG,MAAMlB,GAAG,CAACkB,GAAG,CAAC;AAAEC,MAAAA,QAAQ,EAAE,CAAA;AAAE,KAAC,CAAC,CAAA;AAC1C,IAAA,MAAMC,MAAM,GAAG,EAAAtB,CAAAA,WAAA,GAACoB,GAAG,CAACG,MAAM,MAAAvB,IAAAA,IAAAA,WAAA,KAAVA,KAAAA,CAAAA,IAAAA,WAAA,CAAYwB,IAAI,CAC7B5B,GAAAA,SAAS,GACTwB,GAAG,CAACG,MAAM,CAACC,IAAI,CAACC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAElC,OAAO;MACNH,MAAM;MACNd,KAAK;MACLkB,UAAU,EAAA,CAAAzB,YAAA,GAAEmB,GAAG,CAACG,MAAM,MAAAtB,IAAAA,IAAAA,YAAA,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAY0B,IAAAA;KACxB,CAAA;GACD,CAAC,OAAOjC,GAAG,EAAE;AACb,IAAA,OAAO,EAAE,CAAA;AACV,GAAA;AACD;;AC7CakC,MAAAA,sBAAsB,GAAIC,QAA8B,IAAK;AAAA,EAAA,IAAAC,kBAAA,CAAA;AACzE,EAAA,IAAIC,UAAU,GAAGF,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,wBAAAC,kBAAA,GAARD,QAAQ,CAAEG,QAAQ,MAAAF,IAAAA,IAAAA,kBAAA,KAAlBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAoBG,MAAM,CAAA;AAE3C,EAAA,IAAIF,UAAU,EAAE;AACf,IAAA,MAAMG,KAAK,GAAGH,UAAU,CAACG,KAAK,CAAC,oCAAoC,CAAC,CAAA;IAEpE,IAAIA,KAAK,KAAK,IAAI,EAAE;MACnB,MAAMC,SAAS,GAAGC,QAAQ,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACpC,MAAA,MAAMG,OAAO,GAAG,IAAIC,IAAI,EAAE,CAACC,WAAW,EAAE,CAAA;MAExC,IAAIJ,SAAS,KAAKE,OAAO,EAAE;AAC1BN,QAAAA,UAAU,GAAGA,UAAU,CAACS,OAAO,CAC9BN,KAAK,CAAC,CAAC,CAAC,EACP,CAAgBC,cAAAA,EAAAA,SAAU,CAAKE,GAAAA,EAAAA,OAAQ,EAAC,CACzC,CAAA;AACF,OAAC,MAAM;AACNN,QAAAA,UAAU,GAAGA,UAAU,CAACS,OAAO,CAC9BN,KAAK,CAAC,CAAC,CAAC,EACP,CAAgBC,cAAAA,EAAAA,SAAU,EAAC,CAC5B,CAAA;AACF,OAAA;AACD,KAAA;AACD,GAAA;AAEA,EAAA,OAAOJ,UAAU,CAAA;AAClB;;AC3BA;;AAMO,MAAMU,cAAc,CAAC;AAC3B;EACA,OAAcC,eAAe,GAC5B,wDAAwD,CAAA;EACzD,OAAcC,WAAW,GACxB,0DAA0D,CAAA;AAE3D,EAAA,OAAcC,eAAeA,CAACC,KAAa,EAAEC,WAAoB,EAAE;IAClE,IAAID,KAAK,KAAKjD,SAAS,EAAE;AACxB,MAAA,MAAM,IAAImD,KAAK,CAAE,CAAA,oCAAA,CAAqC,CAAC,CAAA;AACxD,KAAA;IAEA,MAAMb,KAAK,GAAGW,KAAK,CAACX,KAAK,CAACO,cAAc,CAACC,eAAe,CAAC,CAAA;IAEzD,IAAI,CAACR,KAAK,EAAE;AACX,MAAA,MAAM,IAAIa,KAAK,CAAE,CAA0CF,wCAAAA,EAAAA,KAAM,EAAC,CAAC,CAAA;AACpE,KAAA;AAEA,IAAA,OAAOJ,cAAc,CAACO,SAAS,CAACd,KAAK,EAAEY,WAAW,CAAC,CAAA;AACpD,GAAA;AAEA,EAAA,OAAcG,eAAeA,CAACJ,KAAa,EAAEC,WAAoB,EAAE;IAClE,IAAID,KAAK,KAAKjD,SAAS,EAAE;AACxB,MAAA,MAAM,IAAImD,KAAK,CAAE,CAAA,oCAAA,CAAqC,CAAC,CAAA;AACxD,KAAA;IAEA,MAAMb,KAAK,GAAGW,KAAK,CAACX,KAAK,CAACO,cAAc,CAACE,WAAW,CAAC,CAAA;IAErD,IAAI,CAACT,KAAK,EAAE;AACX,MAAA,MAAM,IAAIa,KAAK,CAAE,CAAsCF,oCAAAA,EAAAA,KAAM,EAAC,CAAC,CAAA;AAChE,KAAA;AAEA,IAAA,OAAOJ,cAAc,CAACO,SAAS,CAACd,KAAK,EAAEY,WAAW,CAAC,CAAA;AACpD,GAAA;EAEA,OAAcI,MAAMA,CACnBC,CAAiB,EACjBC,CAAiB,EACjBC,eAAe,GAAG,KAAK,EACtB;IACD,IAAIF,CAAC,CAACG,KAAK,KAAKF,CAAC,CAACE,KAAK,IAAIH,CAAC,CAACI,KAAK,KAAKH,CAAC,CAACG,KAAK,IAAIJ,CAAC,CAACK,KAAK,KAAKJ,CAAC,CAACI,KAAK,EAAE;AACtE,MAAA,OAAO,KAAK,CAAA;AACb,KAAA;IAEA,IAAIH,eAAe,KAAK,KAAK,EAAE;AAC9B,MAAA,OAAO,IAAI,CAAA;AACZ,KAAA;AAEA,IAAA,IAAIF,CAAC,CAACM,UAAU,KAAKL,CAAC,CAACK,UAAU,EAAE;AAClC,MAAA,OAAO,IAAI,CAAA;AACZ,KAAA;IAEA,IAAIN,CAAC,CAACM,UAAU,KAAK7D,SAAS,IAAIwD,CAAC,CAACK,UAAU,KAAK7D,SAAS,EAAE;AAC7D,MAAA,OAAO,KAAK,CAAA;AACb,KAAA;IAEA,OACCuD,CAAC,CAACM,UAAU,CAACC,IAAI,KAAKN,CAAC,CAACK,UAAU,CAACC,IAAI,IACvCP,CAAC,CAACM,UAAU,CAACE,OAAO,KAAKP,CAAC,CAACK,UAAU,CAACE,OAAO,CAAA;AAE/C,GAAA;EAEA,OAAeX,SAASA,CACvB,GAECM,KAAK,GAELC,KAAK,GAAG,GAAG,GAEXC,KAAK,GAAG,GAAG,GAEXI,KAAK,GAELC,cAAc,EACdC,gBAAgB,CACE,EACnBhB,WAAoB,EACnB;IACD,IAAIW,UAAwC,GAAG7D,SAAS,CAAA;IACxD,IAAImE,WAAW,GAAG,GAAG,CAAA;IAErB,IAAIF,cAAc,IAAIC,gBAAgB,EAAE;AACvCL,MAAAA,UAAU,GAAG;AACZC,QAAAA,IAAI,EAAEG,cAAc;QACpBF,OAAO,EAAEvB,QAAQ,CAAC0B,gBAAgB,CAAA;OAClC,CAAA;AACF,KAAA;AAEA,IAAA,IAAIF,KAAK,EAAE;AACVG,MAAAA,WAAW,GAAGC,MAAM,CAACJ,KAAK,CAAC,CAAA;KAC3B,MAAM,IAAId,WAAW,EAAE;AACvB,MAAA,MAAMmB,gBAAgB,GAAGnB,WAAW,CAACZ,KAAK,CAAC,UAAU,CAAC,CAAA;AAEtD,MAAA,IAAI+B,gBAAgB,EAAE;AACrBF,QAAAA,WAAW,GAAG3B,QAAQ,CAAC6B,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5C,OAAA;AACD,KAAA;IAEA,OAAO,IAAIxB,cAAc,CACxBL,QAAQ,CAACkB,KAAK,CAAC,EACflB,QAAQ,CAACmB,KAAK,CAAC,EACfnB,QAAQ,CAACoB,KAAK,CAAC,EACfC,UAAU,EACVM,WAAW,CACX,CAAA;AACF,GAAA;EAEA,OAAcG,IAAIA,CACjBf,CAAiB,EACjBC,CAAiB,EACjBe,SAAkB,GAAG,IAAI,EACxB;AACD,IAAA,MAAMC,gBAAgB,GAAGA,CAACjB,CAAS,EAAEC,CAAS,KAC7Ce,SAAS,GAAGhB,CAAC,GAAGC,CAAC,GAAGA,CAAC,GAAGD,CAAC,CAAA;AAE1B,IAAA,IAAIA,CAAC,CAACG,KAAK,KAAKF,CAAC,CAACE,KAAK,EAAE;MACxB,OAAOc,gBAAgB,CAACjB,CAAC,CAACG,KAAK,EAAEF,CAAC,CAACE,KAAK,CAAC,CAAA;AAC1C,KAAA;AAEA,IAAA,IAAIH,CAAC,CAACI,KAAK,KAAKH,CAAC,CAACG,KAAK,EAAE;MACxB,OAAOa,gBAAgB,CAACjB,CAAC,CAACI,KAAK,EAAEH,CAAC,CAACG,KAAK,CAAC,CAAA;AAC1C,KAAA;AAEA,IAAA,IAAIJ,CAAC,CAACK,KAAK,KAAKJ,CAAC,CAACI,KAAK,EAAE;MACxB,OAAOY,gBAAgB,CAACjB,CAAC,CAACK,KAAK,EAAEJ,CAAC,CAACI,KAAK,CAAC,CAAA;AAC1C,KAAA;IAEA,OAAOY,gBAAgB,CACtBjB,CAAC,CAACM,UAAU,GAAGN,CAAC,CAACM,UAAU,CAACE,OAAO,GAAG,CAAC,EACvCP,CAAC,CAACK,UAAU,GAAGL,CAAC,CAACK,UAAU,CAACE,OAAO,GAAG,CAAC,CACvC,CAAA;AACF,GAAA;EAEA,OAAeU,QAAQA,CAACV,OAAuB,EAAE;IAChD,OACC,CAAC,CAACA,OAAO,CAACL,KAAK,GAAG,IAAI,GAAGK,OAAO,CAACJ,KAAK,IAAI,IAAI,GAAGI,OAAO,CAACH,KAAK,IAC7D,IAAI,GACLG,OAAO,CAACI,WAAW,CAAA;AAErB,GAAA;EAEAO,WAAWA,CACHhB,KAAa,EACbC,KAAa,EACbC,KAAa,EACbC,UAAyD,EACzDM,WAAmB,EACzB;IAAA,IALMT,CAAAA,KAAa,GAAbA,KAAa,CAAA;IAAA,IACbC,CAAAA,KAAa,GAAbA,KAAa,CAAA;IAAA,IACbC,CAAAA,KAAa,GAAbA,KAAa,CAAA;IAAA,IACbC,CAAAA,UAAyD,GAAzDA,UAAyD,CAAA;IAAA,IACzDM,CAAAA,WAAmB,GAAnBA,WAAmB,CAAA;AACxB,GAAA;AAEIQ,EAAAA,YAAYA,GAAG;AACrB,IAAA,OAAO,IAAI,CAACd,UAAU,KAAK7D,SAAS,CAAA;AACrC,GAAA;AAEO4E,EAAAA,KAAKA,GAAG;AACd,IAAA,OAAO,IAAI/B,cAAc,CACxB,IAAI,CAACa,KAAK,EACV,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,UAAU,GAAG;AAAE,MAAA,GAAG,IAAI,CAACA,UAAAA;AAAW,KAAC,GAAG7D,SAAS,EACpD,IAAI,CAACmE,WAAW,CAChB,CAAA;AACF,GAAA;AAEOU,EAAAA,cAAcA,GAAG;IACvB,IAAI,CAAChB,UAAU,GAAG7D,SAAS,CAAA;IAC3B,IAAI,CAAC4D,KAAK,GAAG,CAAC,CAAA;IACd,IAAI,CAACD,KAAK,GAAG,CAAC,CAAA;IACd,IAAI,CAACD,KAAK,EAAE,CAAA;AACb,GAAA;AAEOoB,EAAAA,cAAcA,GAAG;IACvB,IAAI,CAACjB,UAAU,GAAG7D,SAAS,CAAA;IAC3B,IAAI,CAAC4D,KAAK,GAAG,CAAC,CAAA;IACd,IAAI,CAACD,KAAK,EAAE,CAAA;AACb,GAAA;AAEOoB,EAAAA,cAAcA,GAAG;IACvB,IAAI,CAAClB,UAAU,GAAG7D,SAAS,CAAA;IAC3B,IAAI,CAAC4D,KAAK,EAAE,CAAA;AACb,GAAA;EAEOoB,gBAAgBA,CAAClB,IAAY,EAAE;AACrC,IAAA,IAAI,CAAC,IAAI,CAACD,UAAU,EAAE;MACrB,IAAI,CAACM,WAAW,GAAG,CAAC,CAAA;AACrB,KAAC,MAAM;MACN,IAAI,CAACA,WAAW,EAAE,CAAA;AACnB,KAAA;IAEA,IAAI,IAAI,CAACN,UAAU,IAAIC,IAAI,KAAK,IAAI,CAACD,UAAU,CAACC,IAAI,EAAE;AACrD,MAAA,IAAI,CAACD,UAAU,CAACE,OAAO,EAAE,CAAA;AACzB,MAAA,OAAA;AACD,KAAA;IAEA,IAAI,CAACF,UAAU,GAAG;AACjBE,MAAAA,OAAO,EAAE,CAAC;AACVD,MAAAA,IAAAA;KACA,CAAA;AACF,GAAA;AAEOmB,EAAAA,aAAaA,GAAG;IACtB,IAAI,CAACpB,UAAU,GAAG7D,SAAS,CAAA;IAC3B,IAAI,CAACmE,WAAW,GAAG,GAAG,CAAA;AACvB,GAAA;AAEOe,EAAAA,eAAeA,CAAC;AACtBf,IAAAA,WAAAA;GACqC,GAAG,EAAE,EAAE;AAC5C,IAAA,IAAIJ,OAAO,GAAG,CAAC,IAAI,CAACL,KAAK,EAAE,IAAI,CAACC,KAAK,EAAE,IAAI,CAACC,KAAK,CAAC,CAACuB,IAAI,CAAC,GAAG,CAAC,CAAA;AAE5D,IAAA,IAAIhB,WAAW,EAAE;AAChBJ,MAAAA,OAAO,IAAI,GAAG,GAAG,IAAI,CAACI,WAAW,CAAA;AAClC,KAAA;IAEA,IAAI,IAAI,CAACN,UAAU,EAAE;AACpBE,MAAAA,OAAO,IAAK,CAAA,CAAA,EAAG,IAAI,CAACF,UAAU,CAACC,IAAK,CAAA,CAAA,EAAG,IAAI,CAACD,UAAU,CAACE,OAAQ,CAAC,CAAA,CAAA;AACjE,KAAA;AAEA,IAAA,OAAOA,OAAO,CAAA;AACf,GAAA;EAEOqB,mBAAmBA,CAACC,WAAmB,EAAE;AAC/C,IAAA,MAAMC,IAAI,GAAG,CAAC,IAAI,CAAC5B,KAAK,EAAE,IAAI,CAACC,KAAK,EAAE,IAAI,CAACC,KAAK,CAAC,CAACuB,IAAI,CAAC,GAAG,CAAC,CAAA;AAC3D,IAAA,MAAMI,KAA0B,GAAG,CAACF,WAAW,EAAEC,IAAI,CAAC,CAAA;IAEtD,IAAI,IAAI,CAACzB,UAAU,EAAE;MACpB0B,KAAK,CAACC,IAAI,CAACC,cAAc,CAAC,IAAI,CAAC5B,UAAU,CAACC,IAAI,CAAC,CAAC,CAAA;MAChDyB,KAAK,CAACC,IAAI,CAAC,IAAI,CAAC3B,UAAU,CAACE,OAAO,CAAC,CAAA;AACpC,KAAA;IAEAwB,KAAK,CAACC,IAAI,CAAE,CAAGF,CAAAA,EAAAA,IAAK,IAAG,IAAI,CAACnB,WAAY,CAAA,CAAA,CAAE,CAAC,CAAA;AAE3C,IAAA,OAAOoB,KAAK,CAACJ,IAAI,CAAC,GAAG,CAAC,CAAA;AACvB,GAAA;;AAEA;AACD;AACA;AACA;AACA;AACA;EACQO,YAAYA,CAAC3B,OAAuB,EAAE;AAC5C,IAAA,OAAOlB,cAAc,CAAC4B,QAAQ,CAAC,IAAI,CAAC,GAAG5B,cAAc,CAAC4B,QAAQ,CAACV,OAAO,CAAC,CAAA;AACxE,GAAA;;AAEA;AACD;AACA;AACA;AACA;AACA;EACQ4B,aAAaA,CAAC5B,OAAuB,EAAE;AAC7C,IAAA,OAAOlB,cAAc,CAAC4B,QAAQ,CAAC,IAAI,CAAC,GAAG5B,cAAc,CAAC4B,QAAQ,CAACV,OAAO,CAAC,CAAA;AACxE,GAAA;AACD,CAAA;AAEA,MAAM0B,cAAc,GAAIxC,KAAa,IAAK;AACzC,EAAA,OAAOA,KAAK,CAAC2C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,EAAE,GAAG5C,KAAK,CAAC2C,KAAK,CAAC,CAAC,CAAC,CAAA;AACxD,CAAC;;ACrQYE,MAAAA,sBAAsB,GAAI7C,KAAa,IAAK;EACxD,IAAIA,KAAK,KAAKjD,SAAS,EAAE;AACxB,IAAA,MAAM,IAAImD,KAAK,CAAE,CAAA,oCAAA,CAAqC,CAAC,CAAA;AACxD,GAAA;AAEA,EAAA,IAAIb,KAA8B,CAAA;AAElC,EAAA,IAAIoB,KAAc,CAAA;AAClB,EAAA,IAAIC,KAAc,CAAA;AAClB,EAAA,IAAIC,KAAc,CAAA;AAClB,EAAA,IAAII,KAAyB,CAAA;AAC7B,EAAA,IAAIC,cAAkC,CAAA;AACtC,EAAA,IAAIC,gBAAoC,CAAA;AAExC,EAAA;AACC;EACA,CAAC5B,KAAK,GAAGW,KAAK,CAACX,KAAK,CACnB,+CAA+C,CAC/C,MAAM,IAAI,EACV;AACD,IAAA,GAAGoB,KAAK,EAAEC,KAAK,EAAEC,KAAK,EAAEI,KAAK,EAAEC,cAAc,EAAEC,gBAAgB,CAAC,GAC/D5B,KAAK,CAAA;AACP,GAAC,MAAM,IACN,CAACA,KAAK,GAAGW,KAAK,CAACX,KAAK,CAAC,wCAAwC,CAAC,MAAM,IAAI,EACvE;IACD,GAAGoB,KAAK,EAAEC,KAAK,EAAEC,KAAK,GAAIK,cAAc,EAAEC,gBAAgB,CAAC,GAAG5B,KAAK,CAAA;AACpE,GAAA;EAEA,IAAIA,KAAK,KAAK,IAAI,EAAE;AACnB,IAAA,MAAM,IAAIa,KAAK,CAAE,CAAsCF,oCAAAA,EAAAA,KAAM,EAAC,CAAC,CAAA;AAChE,GAAA;EAEA,IAAIY,UAAwC,GAAG7D,SAAS,CAAA;EACxD,IAAImE,WAAW,GAAG,GAAG,CAAA;EAErB,IAAIF,cAAc,IAAIC,gBAAgB,EAAE;AACvCL,IAAAA,UAAU,GAAG;AACZC,MAAAA,IAAI,EAAEG,cAAc;MACpBF,OAAO,EAAEvB,QAAQ,CAAC0B,gBAAgB,CAAA;KAClC,CAAA;AACF,GAAA;AAEA,EAAA,IAAIF,KAAK,EAAE;AACVG,IAAAA,WAAW,GAAGC,MAAM,CAACJ,KAAK,CAAC,CAAA;GAC3B,MAAM,IAAIf,KAAK,EAAE;AACjB,IAAA,MAAMoB,gBAAgB,GAAGpB,KAAK,CAACX,KAAK,CAAC,UAAU,CAAC,CAAA;AAEhD,IAAA,IAAI+B,gBAAgB,EAAE;AACrBF,MAAAA,WAAW,GAAG3B,QAAQ,CAAC6B,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5C,KAAA;AACD,GAAA;EAEA,OAAO,IAAIxB,cAAc,CACxBL,QAAQ,CAACkB,KAAK,CAAC,EACflB,QAAQ,CAACmB,KAAK,CAAC,EACfnB,QAAQ,CAACoB,KAAK,CAAC,EACfC,UAAU,EACVM,WAAW,CACX,CAAA;AACF,EAAC;;AAED;AACA;AACa4B,MAAAA,8BAA8B,GAC1ChC,OAAe,IACK;EACpB,MAAML,KAAK,GAAGsC,IAAI,CAACC,KAAK,CAAClC,OAAO,GAAG,UAAU,CAAC,CAAA;EAC9C,MAAMJ,KAAK,GAAGqC,IAAI,CAACC,KAAK,CAAElC,OAAO,GAAG,UAAU,GAAI,OAAO,CAAC,CAAA;EAC1D,MAAMH,KAAK,GAAGoC,IAAI,CAACC,KAAK,CAAElC,OAAO,GAAG,OAAO,GAAI,IAAI,CAAC,CAAA;AACpD,EAAA,MAAMI,WAAW,GAAGJ,OAAO,GAAG,IAAI,CAAA;AAElC,EAAA,OAAO,IAAIlB,cAAc,CAACa,KAAK,EAAEC,KAAK,EAAEC,KAAK,EAAE5D,SAAS,EAAEmE,WAAW,CAAC,CAAA;AACvE;;AClEA;AACA,MAAM+B,QAAQ,GACb,0GAA0G,CAAA;AAC3G,MAAMC,WAAW,GAAG,IAAIzD,IAAI,CAACA,IAAI,CAAC0D,GAAG,EAAE,CAAC,CAACzD,WAAW,EAAE,CAAA;AAEzC0D,MAAAA,qBAAqB,GAAIC,QAAyB,IAAK;EACnE,MAAM7G,QAAQ,GAAGgB,IAAI,CAAC0E,IAAI,CAACmB,QAAQ,CAACC,UAAU,EAAE,YAAY,CAAC,CAAA;EAE7D,MAAMC,kBAAkB,GAAIC,WAA+B,KAAM;AAChE1C,IAAAA,OAAO,EAAE/D,SAAS;AAClB0G,IAAAA,KAAK,EAAEA,CAACC,IAAY,EAAEC,UAA0B,KAAK;MACpD,MAAMC,cAAc,GAAGnH,EAAE,CAACoH,WAAW,CAACR,QAAQ,CAACC,UAAU,CAAC,CAAA;AAC1D,MAAA,MAAMQ,OAAO,GAAGF,cAAc,CAACG,MAAM,CAAEjG,IAAI,IAC1CA,IAAI,CAACG,QAAQ,CAAC,KAAK,CAAC,CACpB,CAAA;AAED,MAAA,IAAI6F,OAAO,CAACE,MAAM,GAAG,CAAC,EAAE;AACvB,QAAA,OAAOC,uBAAuB,CAAC,CAACf,WAAW,CAAC,EAAE,EAAE,CAAC,CAChDQ,IAAI,EACJC,UAAU,CACV,CAAA;AACF,OAAA;KACA;IACDO,KAAK,EAAEA,MAAM;MACZ,IAAIV,WAAW,KAAKzG,SAAS,EAAE;AAC9BN,QAAAA,EAAE,CAAC0H,aAAa,CAAC3H,QAAQ,EAAEgH,WAAW,EAAE;AAAE7G,UAAAA,QAAQ,EAAE,MAAA;AAAO,SAAC,CAAC,CAAA;AAC9D,OAAC,MAAM;QACN,IAAI;AACHF,UAAAA,EAAE,CAAC2H,MAAM,CAAC5H,QAAQ,CAAC,CAAA;SACnB,CAAC,OAAOK,GAAG,EAAE;AACb,UAAA,IAAI,CAACC,aAAa,CAACD,GAAG,CAAC,EAAE;AACxB,YAAA,MAAMA,GAAG,CAAA;AACV,WAAA;AACD,SAAA;AACD,OAAA;AACD,KAAA;AACD,GAAC,CAAC,CAAA;AAIF,EAAA,MAAMoH,uBAAuB,GAC5BA,CACCI,SAAyB,GAAG,CAACnB,WAAW,CAAC,EACzCoB,cAAsB,GAAG,EAAE,KAE5B,CAACZ,IAAY,EAAEC,UAA0B,KAAK;AAC7C,IAAA,MAAMY,eAAe,GAAGZ,UAAU,CAACxB,mBAAmB,CAACuB,IAAI,CAAC,CAAA;AAC5D,IAAA,MAAMc,aAAa,GAAGC,gBAAgB,CAACJ,SAAS,CAAC,CAAA;IAEjD,MAAMK,MAAM,GAAI,CAAeH,aAAAA,EAAAA,eAAgB,mBAAkBC,aAAc,CAAA,EAAEF,cAAe,CAAI,GAAA,CAAA,CAAA;AAEpG7H,IAAAA,EAAE,CAAC0H,aAAa,CAAC3H,QAAQ,EAAEkI,MAAM,EAAE;AAAE/H,MAAAA,QAAQ,EAAE,OAAA;AAAQ,KAAC,CAAC,CAAA;GACzD,CAAA;AAEF,EAAA,IAAIgI,cAAc,GAAG/H,6BAA6B,CAACJ,QAAQ,CAAC,CAAA;EAE5D,IAAImI,cAAc,KAAK5H,SAAS,EAAE;IACjC,OAAOwG,kBAAkB,CAACoB,cAAc,CAAC,CAAA;AAC1C,GAAA;EAEA,MAAMnB,WAAW,GAAGmB,cAAc,CAAChF,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAErD,EAAA,MAAMN,KAAK,GAAGmE,WAAW,CAACnE,KAAK,CAAC4D,QAAQ,CAAC,CAAA;EAEzC,IAAI,CAAC5D,KAAK,EAAE;IACX,OAAOkE,kBAAkB,CAACC,WAAW,CAAC,CAAA;AACvC,GAAA;EAEA,MAAM,CAACoB,KAAK,EAAEC,YAAY,EAAER,SAAS,EAAEC,cAAc,CAAC,GAAGjF,KAKxD,CAAA;AAED,EAAA,MAAMyF,cAAc,GAAGT,SAAS,CAAChF,KAAK,CAAC,sBAAsB,CAAC,CAAA;AAE9D,EAAA,IAAI0F,KAAwB,CAAA;EAE5B,IAAID,cAAc,KAAK,IAAI,EAAE;IAC5BC,KAAK,GAAG,CAAC7B,WAAW,CAAC,CAAA;AACtB,GAAC,MAAM;IACN6B,KAAK,GAAG,CAAC5D,MAAM,CAAC2D,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE5B,WAAW,CAAC,CAAA;AACjD,GAAA;EAEA,OAAO;AACNO,IAAAA,KAAK,EAAEQ,uBAAuB,CAACc,KAAK,EAAET,cAAc,CAAC;IACrDJ,KAAK,EAAEA,MAAM;AACZzH,MAAAA,EAAE,CAAC0H,aAAa,CAAC3H,QAAQ,EAAEgH,WAAW,EAAE;AAAE7G,QAAAA,QAAQ,EAAE,MAAA;AAAO,OAAC,CAAC,CAAA;AAC9D,KAAA;GACA,CAAA;AACF,EAAC;AAED,MAAM8H,gBAAgB,GAAIM,KAAwB,IAAK;AACtD,EAAA,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAKhI,SAAS,IAAIgI,KAAK,CAAC,CAAC,CAAC,KAAKA,KAAK,CAAC,CAAC,CAAC,EAAE;AACpD,IAAA,OAAOA,KAAK,CAAC,CAAC,CAAC,CAACC,QAAQ,EAAE,CAAA;AAC3B,GAAA;EAEA,OAAQ,CAAA,EAAED,KAAK,CAAC,CAAC,CAAE,MAAKA,KAAK,CAAC,CAAC,CAAE,CAAC,CAAA,CAAA;AACnC,CAAC;;;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@intelligentgraphics/ig.gfx.packager",
3
- "version": "3.0.3",
4
- "description": "IG.GFX.Packager 3.0.3 (3.0.3.100)",
3
+ "version": "3.0.5",
4
+ "description": "IG.GFX.Packager 3.0.5 (3.0.5.100)",
5
5
  "author": "Michael Beier <mb@intelligentgraphics.biz>",
6
6
  "main": "build/index.mjs",
7
7
  "private": false,
@@ -29,7 +29,7 @@
29
29
  "ajv": "^8.12.0",
30
30
  "axios": "^1.2.5",
31
31
  "core-js": "^3.27.2",
32
- "glob": "^8.1.0",
32
+ "glob": "^9.3.0",
33
33
  "inquirer": "^9.1.4",
34
34
  "jszip": "^3.10.1",
35
35
  "lodash": "^4.17.21",
@@ -38,25 +38,26 @@
38
38
  "source-map-support": "^0.5.21",
39
39
  "terser": "^5.16.1",
40
40
  "typedoc": "~0.23.2",
41
- "typescript": "~4.9.4",
41
+ "typescript": "~5.0.2",
42
42
  "update-notifier": "^6.0.2",
43
43
  "v8-compile-cache": "^2.3.0",
44
44
  "write-pkg": "^5.1.0",
45
45
  "yargs": "^17.6.2"
46
46
  },
47
47
  "devDependencies": {
48
+ "@babel/core": "^7.21.3",
48
49
  "@babel/preset-env": "^7.18.9",
49
50
  "@babel/preset-typescript": "^7.18.6",
51
+ "@intelligentgraphics/ig.gfx.tools.core": "^1.0.0",
50
52
  "@rollup/plugin-babel": "^6.0.3",
51
53
  "@rollup/plugin-commonjs": "^24.0.0",
52
54
  "@rollup/plugin-json": "^6.0.0",
53
55
  "@rollup/plugin-node-resolve": "^15.0.1",
54
56
  "@types/glob": "^8.0.1",
55
57
  "@types/inquirer": "^9.0.3",
56
- "@types/node": "^16.4.11",
58
+ "@types/node": "^18.15.3",
57
59
  "@types/update-notifier": "^6.0.1",
58
60
  "@types/yargs": "^17.0.2",
59
- "rollup": "^3.10.0",
60
- "vitest": "^0.28.1"
61
+ "rollup": "^3.10.0"
61
62
  }
62
63
  }
package/readme.md CHANGED
@@ -20,7 +20,7 @@ npm install -g @intelligentgraphics/ig.gfx.packager@latest
20
20
  "scripts": {
21
21
  "build": "packager build",
22
22
  "upload": "packager publish",
23
- "postinstall": "package postinstall"
23
+ "postinstall": "packager postinstall"
24
24
  }
25
25
  }
26
26
  ```
@@ -33,7 +33,7 @@ npm install -g @intelligentgraphics/ig.gfx.packager@latest
33
33
  "scripts": {
34
34
  "build": "packager build",
35
35
  "upload": "packager publish",
36
- "postinstall": "package postinstall"
36
+ "postinstall": "packager postinstall"
37
37
  },
38
38
  "packager": {
39
39
  "banner": "This belongs to a data repo"
@@ -51,7 +51,7 @@ npm install -g @intelligentgraphics/ig.gfx.packager@latest
51
51
  "scripts": {
52
52
  "build": "packager build",
53
53
  "upload": "packager publish",
54
- "postinstall": "package postinstall"
54
+ "postinstall": "packager postinstall"
55
55
  },
56
56
  "packager": {
57
57
  "banner": "This file is part of the IG.Graphics IGX Data Package. \n Copyright (C) 2015 - 2020 intelligentgraphics. All Rights Reserved."
@@ -294,38 +294,113 @@ The path specified after the media:// schema will be resolved within a directory
294
294
 
295
295
  ### \_Index.json generation
296
296
 
297
- The packager has a cli command `generateIndex [directory]`, it will generate an \_Index.json file for Evaluator packages.
298
- The ts files have to adhere to a certain form to be processed.
299
-
300
- 1. The namespace/module name has to have two parts like: `namespace IG.Test`
301
- 2. The evaluator class has to extend the base evaluator class IEvaluator from IGX.Eval
302
- 3. The parameters have the following JSDoc structure
303
- ```javascript
304
- /** Symbolische Angabe der Korpusbreite in der Form "W100"
305
- * Wird in der abgeleitet Klasse kontextbezogen in den Realwert Width gemapped.
306
- * @default "W50"
307
- * @creatorType String
308
- * @summary Symbolische Angabe der Korpusbreite
309
- */
310
- Corpus_Width: string;
311
- ```
312
- which results in the following
313
- ```
314
- {
315
- "Name": "Corpus_Width",
316
- "Description": "Symbolische Angabe der Korpusbreite",
317
- "Type": "String",
318
- "Default": "W50",
319
- "DisplayIndex": 1
320
- }
321
- ```
322
- 4. `DisplayIndex` is generated from the order of the parameters
323
- 5. Jsdoc for the Evaluator has to be above class
324
- 6. Parameter and Package name length need to be <=45
325
- 7. Description is cut off after 99 characters
297
+ The packager has a cli command `npm run generateIndex [directory]` to generate an \_Index.json file for an Evaluator package.
298
+
299
+ You may need to register this command in the package.json of your git repository by adding the following attribute to the scripts object:
300
+
301
+ ```json
302
+ "scripts": {
303
+ "generateIndex": "packager generateIndex"
304
+ },
305
+ ```
306
+
307
+ This command collects all classes that either implement or extend the IEvaluator class from IGX.Eval, collects the properties of their parameters
308
+ and generates the \_Index.json file based on JSDoc informations for the properties and the class.
309
+
310
+ The following jsdoc attributes are supported:
311
+
312
+ - _default_ -> the default value
313
+ - _creatorType_ -> to define the type (like Material, String, Geometry)
314
+ - _summary_ -> to set a short description for the parameter. By default the generator will use the text above the attributes as the description.
315
+
316
+ **Example:**
317
+
318
+ ```ts
319
+ namespace IG.Test {
320
+ interface Params {
321
+ /**
322
+ * Width of the corpus.
323
+ *
324
+ * Additional informations used to document the property internally
325
+ *
326
+ * @default 1.0
327
+ * @creatorType Float
328
+ * @summary Width of the corpus
329
+ */
330
+ Corpus_Width?: number | string;
331
+
332
+ /**
333
+ * Type of the corpus
334
+ *
335
+ * @default "extra_wide"
336
+ * @creatorType String
337
+ */
338
+ Corpus_Type?: string;
339
+ }
340
+
341
+ /**
342
+ * The description of my evaluator
343
+ */
344
+ export class MyEvaluator extends IGX.IEvaluator {
345
+ public static Create(
346
+ productId: string,
347
+ path: string,
348
+ parameters: Params,
349
+ ): IGX.EvalResponse {}
350
+ }
351
+ }
352
+ ```
353
+
354
+ The code snippet above will generate the following \_Index.json output:
355
+
356
+ ```json
357
+ [
358
+ {
359
+ "Name": "IG.Test.MyEvaluator",
360
+ "Description": "The description of my evaluator",
361
+ "Type": "Evaluator",
362
+ "Parameters": [
363
+ {
364
+ "Name": "Corpus_Width",
365
+ "Description": "Symbolische Angabe der Korpusbreite",
366
+ "Default": "W50",
367
+ "Type": "String",
368
+ "DisplayIndex": 1
369
+ }
370
+ ]
371
+ }
372
+ ]
373
+ ```
374
+
375
+ **Migrating from a handwritten \_Index.json to an auto generated one:**
376
+
377
+ 1. Make sure all Evaluators implement or extend the IGX.IEvaluator class.
378
+ 2. Run the index generation. The output should be nearly identical. If an evaluator does not have an explicit Parameter type, the generator will reuse the informations from an existing \_Index.json file.
379
+ 3. Now you can choose to add the parameter types either incrementally or all at once.
380
+
381
+ ## Troubleshoot
382
+
383
+ ### Definitions for ig libraries are not available even though they are registered as dependencies in the package.json
384
+
385
+ The definitions need to be installed by running `npm install` within the root folder of the git repository.
386
+ Afterwards you may need to reload your editor in order for the installed files to be picked up.
326
387
 
327
388
  ## History
328
389
 
390
+ **IG.GFX.Packager 3.0.5**
391
+
392
+ - update documentation for generateIndex command
393
+ - enforce better property order for parameters
394
+ - improve index generation
395
+ - use typechecker for index generation to improve reliability
396
+ - reuse parameters of existing \_index.json when no parameters are defined for an evaluator
397
+
398
+ **IG.GFX.Packager 3.0.4**
399
+
400
+ - start a troubleshoot section
401
+ - use platform line ending when writing definition files
402
+ - wrap errors that occur when loading existing packages
403
+
329
404
  **IG.GFX.Packager 3.0.3**
330
405
 
331
406
  - set explicit version for yargs