@intelligentgraphics/ig.gfx.packager 3.0.0-alpha.1 → 3.0.0-alpha.4
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.
- package/build/cli.mjs +595 -0
- package/build/cli.mjs.map +1 -0
- package/build/commands/{build.js → build.mjs} +73 -77
- package/build/commands/build.mjs.map +1 -0
- package/build/commands/{generate.js → generate.mjs} +31 -58
- package/build/commands/generate.mjs.map +1 -0
- package/build/commands/postinstall.mjs +49 -0
- package/build/commands/postinstall.mjs.map +1 -0
- package/build/commands/publishNpm.mjs +129 -0
- package/build/commands/publishNpm.mjs.map +1 -0
- package/build/commands/{release.js → release.mjs} +101 -124
- package/build/commands/release.mjs.map +1 -0
- package/build/{dependencies.js → dependencies.mjs} +16 -40
- package/build/dependencies.mjs.map +1 -0
- package/build/index.mjs +6 -0
- package/build/index.mjs.map +1 -0
- package/build/scripts.mjs +11 -0
- package/build/scripts.mjs.map +1 -0
- package/build/versionFile.mjs +365 -0
- package/build/versionFile.mjs.map +1 -0
- package/package.json +12 -11
- package/readme.md +12 -0
- package/build/cli.js +0 -8316
- package/build/cli.js.map +0 -1
- package/build/commands/build.js.map +0 -1
- package/build/commands/generate.js.map +0 -1
- package/build/commands/postinstall.js +0 -78
- package/build/commands/postinstall.js.map +0 -1
- package/build/commands/publishNpm.js +0 -157
- package/build/commands/publishNpm.js.map +0 -1
- package/build/commands/release.js.map +0 -1
- package/build/dependencies.js.map +0 -1
- package/build/index.js +0 -8
- package/build/index.js.map +0 -1
- package/build/scripts.js +0 -32
- package/build/scripts.js.map +0 -1
- package/build/versionFile.js +0 -182
- package/build/versionFile.js.map +0 -1
package/build/versionFile.js
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
var simpleGit = require('simple-git');
|
|
5
|
-
var path = require('path');
|
|
6
|
-
var cli = require('./cli.js');
|
|
7
|
-
var fs = require('fs');
|
|
8
|
-
|
|
9
|
-
function _interopNamespaceDefault(e) {
|
|
10
|
-
var n = Object.create(null);
|
|
11
|
-
if (e) {
|
|
12
|
-
Object.keys(e).forEach(function (k) {
|
|
13
|
-
if (k !== 'default') {
|
|
14
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
get: function () { return e[k]; }
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
n.default = e;
|
|
23
|
-
return Object.freeze(n);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
|
|
27
|
-
var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
|
|
28
|
-
|
|
29
|
-
const getVersionInformationFromGit = async (workspaceLocation, packageLocation) => {
|
|
30
|
-
try {
|
|
31
|
-
var _log$latest, _log$latest2;
|
|
32
|
-
const git = simpleGit({
|
|
33
|
-
baseDir: workspaceLocation.path
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
// check wether the files for a folder are changed
|
|
37
|
-
// if so, mark as dirty
|
|
38
|
-
const diff = await git.diffSummary();
|
|
39
|
-
const dirty = diff.files.some(file => {
|
|
40
|
-
if (file.file.toLowerCase().includes("releases") || file.file.toLowerCase().endsWith("version.ts")) {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
const fullPath = path__namespace.resolve(workspaceLocation.path, file.file);
|
|
44
|
-
const relativePath = path__namespace.relative(packageLocation.path, fullPath);
|
|
45
|
-
return !relativePath.startsWith("..");
|
|
46
|
-
});
|
|
47
|
-
const log = await git.log({
|
|
48
|
-
maxCount: 1
|
|
49
|
-
});
|
|
50
|
-
const commit = !((_log$latest = log.latest) !== null && _log$latest !== void 0 && _log$latest.hash) ? undefined : log.latest.hash.substring(0, 7);
|
|
51
|
-
return {
|
|
52
|
-
commit,
|
|
53
|
-
dirty,
|
|
54
|
-
commitDate: (_log$latest2 = log.latest) === null || _log$latest2 === void 0 ? void 0 : _log$latest2.date
|
|
55
|
-
};
|
|
56
|
-
} catch (err) {
|
|
57
|
-
return {};
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
const getWorkspaceBannerText = manifest => {
|
|
62
|
-
var _manifest$packager;
|
|
63
|
-
let bannerText = manifest === null || manifest === void 0 ? void 0 : (_manifest$packager = manifest.packager) === null || _manifest$packager === void 0 ? void 0 : _manifest$packager.banner;
|
|
64
|
-
if (bannerText) {
|
|
65
|
-
const match = bannerText.match(/Copyright \(C\) (\d+)( ?- ?(\d+))?/);
|
|
66
|
-
if (match !== null) {
|
|
67
|
-
const startYear = parseInt(match[1]);
|
|
68
|
-
const endYear = new Date().getFullYear();
|
|
69
|
-
if (startYear !== endYear) {
|
|
70
|
-
bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear} - ${endYear}`);
|
|
71
|
-
} else {
|
|
72
|
-
bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear}`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return bannerText;
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
const parseVersionFromString = input => {
|
|
80
|
-
if (input === undefined) {
|
|
81
|
-
throw new Error(`Can not parse version from undefined`);
|
|
82
|
-
}
|
|
83
|
-
let match;
|
|
84
|
-
let major;
|
|
85
|
-
let minor;
|
|
86
|
-
let patch;
|
|
87
|
-
let build;
|
|
88
|
-
let preReleaseType;
|
|
89
|
-
let preReleaseNumber;
|
|
90
|
-
if (
|
|
91
|
-
// first try to find a full match with build number
|
|
92
|
-
(match = input.match(/(\d+)\.(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
|
|
93
|
-
[, major, minor, patch, build, preReleaseType, preReleaseNumber] = match;
|
|
94
|
-
} else if ((match = input.match(/(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
|
|
95
|
-
[, major, minor, patch,, preReleaseType, preReleaseNumber] = match;
|
|
96
|
-
}
|
|
97
|
-
if (match === null) {
|
|
98
|
-
throw new Error(`Could not parse version from input: ${input}`);
|
|
99
|
-
}
|
|
100
|
-
let preRelease = undefined;
|
|
101
|
-
let buildNumber = 100;
|
|
102
|
-
if (preReleaseType && preReleaseNumber) {
|
|
103
|
-
preRelease = {
|
|
104
|
-
type: preReleaseType,
|
|
105
|
-
version: parseInt(preReleaseNumber)
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
if (build) {
|
|
109
|
-
buildNumber = Number(build);
|
|
110
|
-
} else if (input) {
|
|
111
|
-
const descriptionMatch = input.match(/(\d+)\)$/);
|
|
112
|
-
if (descriptionMatch) {
|
|
113
|
-
buildNumber = parseInt(descriptionMatch[1]);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return new cli.build.PackageVersion(parseInt(major), parseInt(minor), parseInt(patch), preRelease, buildNumber);
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
// https://regex101.com/r/LtGAu5/1
|
|
120
|
-
const logRegex = /console\.log\(\s*"([\w\s\.\(\)]+)\ *Copyright[\w\s\(\)\.]+(\d{4}|\d{4} - \d{4})([\w\s\(\)\.]+)?",?\s*\)/i;
|
|
121
|
-
const currentYear = new Date(Date.now()).getFullYear();
|
|
122
|
-
const getVersionFileHandler = location => {
|
|
123
|
-
const filePath = path__namespace.join(location.scriptsDir, "Version.ts");
|
|
124
|
-
const invalidVersionFile = () => ({
|
|
125
|
-
version: undefined,
|
|
126
|
-
write: (name, newVersion) => {
|
|
127
|
-
const scriptsContent = fs__namespace.readdirSync(location.scriptsDir);
|
|
128
|
-
const tsFiles = scriptsContent.filter(file => file.endsWith(".ts"));
|
|
129
|
-
if (tsFiles.length > 0) {
|
|
130
|
-
return createVersionFileWriter([currentYear], "")(name, newVersion);
|
|
131
|
-
}
|
|
132
|
-
},
|
|
133
|
-
reset: () => {
|
|
134
|
-
if (versionFile !== undefined) {
|
|
135
|
-
cli.build.FileUtil.writeFile(filePath, versionFile);
|
|
136
|
-
} else {
|
|
137
|
-
cli.build.FileUtil.deleteFile(filePath);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
const createVersionFileWriter = (copyright = [currentYear], copyrightStuff = "") => (name, newVersion) => {
|
|
142
|
-
const descriptionText = newVersion.toDescriptionString(name);
|
|
143
|
-
const copyrightText = createYearString(copyright);
|
|
144
|
-
const result = `console.log("${descriptionText}. Copyright (C) ${copyrightText}${copyrightStuff}");`;
|
|
145
|
-
cli.build.FileUtil.writeFile(filePath, result);
|
|
146
|
-
};
|
|
147
|
-
let versionFile = cli.build.FileUtil.readFile(filePath);
|
|
148
|
-
if (versionFile === undefined) {
|
|
149
|
-
return invalidVersionFile();
|
|
150
|
-
}
|
|
151
|
-
versionFile = versionFile.replace(/\n/g, "");
|
|
152
|
-
const match = versionFile.match(logRegex);
|
|
153
|
-
if (!match) {
|
|
154
|
-
return invalidVersionFile();
|
|
155
|
-
}
|
|
156
|
-
const [_full, _description, copyright, copyrightStuff] = match;
|
|
157
|
-
const copyrightYears = copyright.match(/^(\d+)( ?- ?(\d+))?$/);
|
|
158
|
-
let years;
|
|
159
|
-
if (copyrightYears === null) {
|
|
160
|
-
years = [currentYear];
|
|
161
|
-
} else {
|
|
162
|
-
years = [Number(copyrightYears[1]), currentYear];
|
|
163
|
-
}
|
|
164
|
-
return {
|
|
165
|
-
write: createVersionFileWriter(years, copyrightStuff),
|
|
166
|
-
reset: () => {
|
|
167
|
-
cli.build.FileUtil.writeFile(filePath, versionFile);
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
};
|
|
171
|
-
const createYearString = years => {
|
|
172
|
-
if (years[1] === undefined || years[0] === years[1]) {
|
|
173
|
-
return years[0].toString();
|
|
174
|
-
}
|
|
175
|
-
return `${years[0]} - ${years[1]}`;
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
exports.getVersionFileHandler = getVersionFileHandler;
|
|
179
|
-
exports.getVersionInformationFromGit = getVersionInformationFromGit;
|
|
180
|
-
exports.getWorkspaceBannerText = getWorkspaceBannerText;
|
|
181
|
-
exports.parseVersionFromString = parseVersionFromString;
|
|
182
|
-
//# sourceMappingURL=versionFile.js.map
|
package/build/versionFile.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"versionFile.js","sources":["../src/lib/git.ts","../src/lib/banner.ts","../src/lib/parseVersion.ts","../src/lib/versionFile.ts"],"sourcesContent":["import simpleGit from \"simple-git\";\nimport * as path from \"path\";\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) {\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","import { PackageVersion } from \"@intelligentgraphics/ig.tools.core\";\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","import * as fs from \"fs\";\nimport * as path from \"path\";\n\nimport { FileUtil, PackageVersion } from \"@intelligentgraphics/ig.tools.core\";\n\nimport { PackageLocation } from \"./package\";\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 = () => ({\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\tFileUtil.writeFile(filePath, versionFile);\n\t\t\t} else {\n\t\t\t\tFileUtil.deleteFile(filePath);\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\tFileUtil.writeFile(filePath, result);\n\t\t};\n\n\tlet versionFile = FileUtil.readFile(filePath);\n\n\tif (versionFile === undefined) {\n\t\treturn invalidVersionFile();\n\t}\n\n\tversionFile = versionFile.replace(/\\n/g, \"\");\n\n\tconst match = versionFile.match(logRegex);\n\n\tif (!match) {\n\t\treturn invalidVersionFile();\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\tFileUtil.writeFile(filePath, versionFile);\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":["getVersionInformationFromGit","workspaceLocation","packageLocation","git","simpleGit","baseDir","path","diff","diffSummary","dirty","files","some","file","toLowerCase","includes","endsWith","fullPath","resolve","relativePath","relative","startsWith","log","maxCount","commit","latest","hash","undefined","substring","commitDate","date","err","getWorkspaceBannerText","manifest","bannerText","packager","banner","match","startYear","parseInt","endYear","Date","getFullYear","replace","parseVersionFromString","input","Error","major","minor","patch","build","preReleaseType","preReleaseNumber","preRelease","buildNumber","type","version","Number","descriptionMatch","PackageVersion","logRegex","currentYear","now","getVersionFileHandler","location","filePath","join","scriptsDir","invalidVersionFile","write","name","newVersion","scriptsContent","fs","readdirSync","tsFiles","filter","length","createVersionFileWriter","reset","versionFile","FileUtil","writeFile","deleteFile","copyright","copyrightStuff","descriptionText","toDescriptionString","copyrightText","createYearString","result","readFile","_full","_description","copyrightYears","years","toString"],"mappings":"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"}
|