@intelligentgraphics/ig.gfx.packager 2.3.4 → 3.0.0-alpha.0
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.js +8315 -0
- package/build/cli.js.map +1 -0
- package/build/commands/build.js +325 -0
- package/build/commands/build.js.map +1 -0
- package/build/commands/generate.js +215 -0
- package/build/commands/generate.js.map +1 -0
- package/build/commands/postinstall.js +77 -0
- package/build/commands/postinstall.js.map +1 -0
- package/build/commands/publishNpm.js +156 -0
- package/build/commands/publishNpm.js.map +1 -0
- package/build/commands/release.js +576 -0
- package/build/commands/release.js.map +1 -0
- package/build/dependencies.js +164 -0
- package/build/dependencies.js.map +1 -0
- package/build/index.js +5 -8762
- package/build/index.js.map +1 -1
- package/build/scripts.js +31 -0
- package/build/scripts.js.map +1 -0
- package/build/versionFile.js +181 -0
- package/build/versionFile.js.map +1 -0
- package/package.json +13 -16
- package/readme.md +47 -10
package/build/scripts.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var glob = require('glob');
|
|
4
|
+
|
|
5
|
+
function _interopNamespaceDefault(e) {
|
|
6
|
+
var n = Object.create(null);
|
|
7
|
+
if (e) {
|
|
8
|
+
Object.keys(e).forEach(function (k) {
|
|
9
|
+
if (k !== 'default') {
|
|
10
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
11
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return e[k]; }
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
n.default = e;
|
|
19
|
+
return Object.freeze(n);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
var glob__namespace = /*#__PURE__*/_interopNamespaceDefault(glob);
|
|
23
|
+
|
|
24
|
+
const getPackageTypescriptFiles = location => glob__namespace.sync("**/*.ts", {
|
|
25
|
+
absolute: true,
|
|
26
|
+
cwd: location.scriptsDir,
|
|
27
|
+
ignore: "node_modules/**/*"
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
exports.getPackageTypescriptFiles = getPackageTypescriptFiles;
|
|
31
|
+
//# sourceMappingURL=scripts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.js","sources":["../src/lib/scripts.ts"],"sourcesContent":["import * as glob from \"glob\";\n\nimport { PackageLocation } from \"./package\";\n\nexport const getPackageTypescriptFiles = (location: PackageLocation) =>\n\tglob.sync(\"**/*.ts\", {\n\t\tabsolute: true,\n\t\tcwd: location.scriptsDir,\n\t\tignore: \"node_modules/**/*\",\n\t});\n"],"names":["getPackageTypescriptFiles","location","glob","sync","absolute","cwd","scriptsDir","ignore"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAMA,yBAAyB,GAAIC,QAAyB,IAClEC,eAAI,CAACC,IAAI,CAAC,SAAS,EAAE;AACpBC,EAAAA,QAAQ,EAAE,IAAI;EACdC,GAAG,EAAEJ,QAAQ,CAACK,UAAU;AACxBC,EAAAA,MAAM,EAAE,mBAAA;AACT,CAAC;;;;"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var simpleGit = require('simple-git');
|
|
4
|
+
var path = require('path');
|
|
5
|
+
var cli = require('./cli.js');
|
|
6
|
+
var fs = require('fs');
|
|
7
|
+
|
|
8
|
+
function _interopNamespaceDefault(e) {
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
|
|
26
|
+
var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
|
|
27
|
+
|
|
28
|
+
const getVersionInformationFromGit = async (workspaceLocation, packageLocation) => {
|
|
29
|
+
try {
|
|
30
|
+
var _log$latest, _log$latest2;
|
|
31
|
+
const git = simpleGit({
|
|
32
|
+
baseDir: workspaceLocation.path
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// check wether the files for a folder are changed
|
|
36
|
+
// if so, mark as dirty
|
|
37
|
+
const diff = await git.diffSummary();
|
|
38
|
+
const dirty = diff.files.some(file => {
|
|
39
|
+
if (file.file.toLowerCase().includes("releases") || file.file.toLowerCase().endsWith("version.ts")) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
const fullPath = path__namespace.resolve(workspaceLocation.path, file.file);
|
|
43
|
+
const relativePath = path__namespace.relative(packageLocation.path, fullPath);
|
|
44
|
+
return !relativePath.startsWith("..");
|
|
45
|
+
});
|
|
46
|
+
const log = await git.log({
|
|
47
|
+
maxCount: 1
|
|
48
|
+
});
|
|
49
|
+
const commit = !((_log$latest = log.latest) !== null && _log$latest !== void 0 && _log$latest.hash) ? undefined : log.latest.hash.substring(0, 7);
|
|
50
|
+
return {
|
|
51
|
+
commit,
|
|
52
|
+
dirty,
|
|
53
|
+
commitDate: (_log$latest2 = log.latest) === null || _log$latest2 === void 0 ? void 0 : _log$latest2.date
|
|
54
|
+
};
|
|
55
|
+
} catch (err) {
|
|
56
|
+
return {};
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const getWorkspaceBannerText = manifest => {
|
|
61
|
+
var _manifest$packager;
|
|
62
|
+
let bannerText = manifest === null || manifest === void 0 ? void 0 : (_manifest$packager = manifest.packager) === null || _manifest$packager === void 0 ? void 0 : _manifest$packager.banner;
|
|
63
|
+
if (bannerText) {
|
|
64
|
+
const match = bannerText.match(/Copyright \(C\) (\d+)( ?- ?(\d+))?/);
|
|
65
|
+
if (match !== null) {
|
|
66
|
+
const startYear = parseInt(match[1]);
|
|
67
|
+
const endYear = new Date().getFullYear();
|
|
68
|
+
if (startYear !== endYear) {
|
|
69
|
+
bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear} - ${endYear}`);
|
|
70
|
+
} else {
|
|
71
|
+
bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return bannerText;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const parseVersionFromString = input => {
|
|
79
|
+
if (input === undefined) {
|
|
80
|
+
throw new Error(`Can not parse version from undefined`);
|
|
81
|
+
}
|
|
82
|
+
let match;
|
|
83
|
+
let major;
|
|
84
|
+
let minor;
|
|
85
|
+
let patch;
|
|
86
|
+
let build;
|
|
87
|
+
let preReleaseType;
|
|
88
|
+
let preReleaseNumber;
|
|
89
|
+
if (
|
|
90
|
+
// first try to find a full match with build number
|
|
91
|
+
(match = input.match(/(\d+)\.(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
|
|
92
|
+
[, major, minor, patch, build, preReleaseType, preReleaseNumber] = match;
|
|
93
|
+
} else if ((match = input.match(/(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
|
|
94
|
+
[, major, minor, patch,, preReleaseType, preReleaseNumber] = match;
|
|
95
|
+
}
|
|
96
|
+
if (match === null) {
|
|
97
|
+
throw new Error(`Could not parse version from input: ${input}`);
|
|
98
|
+
}
|
|
99
|
+
let preRelease = undefined;
|
|
100
|
+
let buildNumber = 100;
|
|
101
|
+
if (preReleaseType && preReleaseNumber) {
|
|
102
|
+
preRelease = {
|
|
103
|
+
type: preReleaseType,
|
|
104
|
+
version: parseInt(preReleaseNumber)
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (build) {
|
|
108
|
+
buildNumber = Number(build);
|
|
109
|
+
} else if (input) {
|
|
110
|
+
const descriptionMatch = input.match(/(\d+)\)$/);
|
|
111
|
+
if (descriptionMatch) {
|
|
112
|
+
buildNumber = parseInt(descriptionMatch[1]);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return new cli.build.PackageVersion(parseInt(major), parseInt(minor), parseInt(patch), preRelease, buildNumber);
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
// https://regex101.com/r/LtGAu5/1
|
|
119
|
+
const logRegex = /console\.log\(\s*"([\w\s\.\(\)]+)\ *Copyright[\w\s\(\)\.]+(\d{4}|\d{4} - \d{4})([\w\s\(\)\.]+)?",?\s*\)/i;
|
|
120
|
+
const currentYear = new Date(Date.now()).getFullYear();
|
|
121
|
+
const getVersionFileHandler = location => {
|
|
122
|
+
const filePath = path__namespace.join(location.scriptsDir, "Version.ts");
|
|
123
|
+
const invalidVersionFile = () => ({
|
|
124
|
+
version: undefined,
|
|
125
|
+
write: (name, newVersion) => {
|
|
126
|
+
const scriptsContent = fs__namespace.readdirSync(location.scriptsDir);
|
|
127
|
+
const tsFiles = scriptsContent.filter(file => file.endsWith(".ts"));
|
|
128
|
+
if (tsFiles.length > 0) {
|
|
129
|
+
return createVersionFileWriter([currentYear], "")(name, newVersion);
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
reset: () => {
|
|
133
|
+
if (versionFile !== undefined) {
|
|
134
|
+
cli.build.FileUtil.writeFile(filePath, versionFile);
|
|
135
|
+
} else {
|
|
136
|
+
cli.build.FileUtil.deleteFile(filePath);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
const createVersionFileWriter = (copyright = [currentYear], copyrightStuff = "") => (name, newVersion) => {
|
|
141
|
+
const descriptionText = newVersion.toDescriptionString(name);
|
|
142
|
+
const copyrightText = createYearString(copyright);
|
|
143
|
+
const result = `console.log("${descriptionText}. Copyright (C) ${copyrightText}${copyrightStuff}");`;
|
|
144
|
+
cli.build.FileUtil.writeFile(filePath, result);
|
|
145
|
+
};
|
|
146
|
+
let versionFile = cli.build.FileUtil.readFile(filePath);
|
|
147
|
+
if (versionFile === undefined) {
|
|
148
|
+
return invalidVersionFile();
|
|
149
|
+
}
|
|
150
|
+
versionFile = versionFile.replace(/\n/g, "");
|
|
151
|
+
const match = versionFile.match(logRegex);
|
|
152
|
+
if (!match) {
|
|
153
|
+
return invalidVersionFile();
|
|
154
|
+
}
|
|
155
|
+
const [_full, _description, copyright, copyrightStuff] = match;
|
|
156
|
+
const copyrightYears = copyright.match(/^(\d+)( ?- ?(\d+))?$/);
|
|
157
|
+
let years;
|
|
158
|
+
if (copyrightYears === null) {
|
|
159
|
+
years = [currentYear];
|
|
160
|
+
} else {
|
|
161
|
+
years = [Number(copyrightYears[1]), currentYear];
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
write: createVersionFileWriter(years, copyrightStuff),
|
|
165
|
+
reset: () => {
|
|
166
|
+
cli.build.FileUtil.writeFile(filePath, versionFile);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
const createYearString = years => {
|
|
171
|
+
if (years[1] === undefined || years[0] === years[1]) {
|
|
172
|
+
return years[0].toString();
|
|
173
|
+
}
|
|
174
|
+
return `${years[0]} - ${years[1]}`;
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
exports.getVersionFileHandler = getVersionFileHandler;
|
|
178
|
+
exports.getVersionInformationFromGit = getVersionInformationFromGit;
|
|
179
|
+
exports.getWorkspaceBannerText = getWorkspaceBannerText;
|
|
180
|
+
exports.parseVersionFromString = parseVersionFromString;
|
|
181
|
+
//# sourceMappingURL=versionFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intelligentgraphics/ig.gfx.packager",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "IG.GFX.Packager
|
|
3
|
+
"version": "3.0.0-alpha.0",
|
|
4
|
+
"description": "IG.GFX.Packager 3.0.0 Alpha 0 (3.0.0.1)",
|
|
5
5
|
"author": "Michael Beier <mb@intelligentgraphics.biz>",
|
|
6
6
|
"main": "build/index.js",
|
|
7
7
|
"private": false,
|
|
@@ -20,48 +20,45 @@
|
|
|
20
20
|
"scripts"
|
|
21
21
|
],
|
|
22
22
|
"scripts": {
|
|
23
|
-
"dist": "
|
|
23
|
+
"dist": "rollup -c rollup.config.mjs",
|
|
24
24
|
"clean": "rimraf build *.tsbuildinfo",
|
|
25
25
|
"prepublishOnly": "yarn clean && yarn dist",
|
|
26
26
|
"test": "jest",
|
|
27
|
-
"_postinstall": "node scripts/postinstall.js",
|
|
28
27
|
"format": "prettier --write \"**/*.{ts,tsx,json}\""
|
|
29
28
|
},
|
|
30
29
|
"dependencies": {
|
|
31
30
|
"ajv": "^8.6.2",
|
|
32
31
|
"axios": "^0.21.1",
|
|
33
32
|
"core-js": "^3.16.0",
|
|
34
|
-
"execa": "^5.1.1",
|
|
35
|
-
"fs-extra": "^10.0.0",
|
|
36
33
|
"glob": "^7.1.4",
|
|
34
|
+
"inquirer": "^9.1.4",
|
|
37
35
|
"jszip": "^3.10.0",
|
|
38
|
-
"
|
|
36
|
+
"lodash": "^4.17.21",
|
|
37
|
+
"resolve": "^1.22.1",
|
|
39
38
|
"simple-git": "^3.15.1",
|
|
40
39
|
"source-map-support": "^0.5.19",
|
|
41
40
|
"terser": "^4.8.0",
|
|
41
|
+
"tslib": "^2.4.1",
|
|
42
42
|
"typedoc": "~0.23.2",
|
|
43
43
|
"typescript": "~4.7.4",
|
|
44
44
|
"update-notifier": "^5.1.0",
|
|
45
45
|
"v8-compile-cache": "^2.1.1",
|
|
46
|
+
"write-pkg": "4",
|
|
46
47
|
"y18n": "^5.0.8",
|
|
47
48
|
"yargs": "^17.0.1"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
50
|
-
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
51
|
-
"@babel/plugin-proposal-object-rest-spread": "^7.18.9",
|
|
52
51
|
"@babel/preset-env": "^7.18.9",
|
|
52
|
+
"@babel/preset-typescript": "^7.18.6",
|
|
53
53
|
"@intelligentgraphics/ig.tools.core": "^1.5.2",
|
|
54
54
|
"@intelligentgraphics/ig.utilities": "^1.6.6",
|
|
55
|
-
"@
|
|
55
|
+
"@rollup/plugin-babel": "^6.0.3",
|
|
56
|
+
"@rollup/plugin-commonjs": "^24.0.0",
|
|
57
|
+
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
56
58
|
"@types/glob": "^7.1.4",
|
|
57
59
|
"@types/node": "^16.4.11",
|
|
58
|
-
"@types/rimraf": "^3.0.1",
|
|
59
60
|
"@types/update-notifier": "^5.1.0",
|
|
60
61
|
"@types/yargs": "^17.0.2",
|
|
61
|
-
"
|
|
62
|
-
"ts-loader": "^9.2.5",
|
|
63
|
-
"ts-node": "^10.1.0",
|
|
64
|
-
"webpack": "^5.64.4",
|
|
65
|
-
"webpack-cli": "^4.7.2"
|
|
62
|
+
"rollup": "^3.10.0"
|
|
66
63
|
}
|
|
67
64
|
}
|
package/readme.md
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
## Requirements
|
|
4
4
|
|
|
5
|
-
node.js (https://nodejs.org/en/download/) >=
|
|
5
|
+
node.js (https://nodejs.org/en/download/) >= 16
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
9
|
-
1\. Install this package
|
|
9
|
+
1\. Install this package globally
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
npm install
|
|
12
|
+
npm install -g @intelligentgraphics/ig.gfx.packager@latest
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
2\. Add a build and a release command to the package.json
|
|
@@ -19,7 +19,8 @@ npm install --save-dev @intelligentgraphics/ig.gfx.packager@latest
|
|
|
19
19
|
"name": "a data repo",
|
|
20
20
|
"scripts": {
|
|
21
21
|
"build": "packager build",
|
|
22
|
-
"upload": "packager publish"
|
|
22
|
+
"upload": "packager publish",
|
|
23
|
+
"postinstall": "package postinstall"
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
```
|
|
@@ -31,7 +32,8 @@ npm install --save-dev @intelligentgraphics/ig.gfx.packager@latest
|
|
|
31
32
|
"name": "a data repo",
|
|
32
33
|
"scripts": {
|
|
33
34
|
"build": "packager build",
|
|
34
|
-
"upload": "packager publish"
|
|
35
|
+
"upload": "packager publish",
|
|
36
|
+
"postinstall": "package postinstall"
|
|
35
37
|
},
|
|
36
38
|
"packager": {
|
|
37
39
|
"banner": "This belongs to a data repo"
|
|
@@ -48,10 +50,8 @@ npm install --save-dev @intelligentgraphics/ig.gfx.packager@latest
|
|
|
48
50
|
"private": true,
|
|
49
51
|
"scripts": {
|
|
50
52
|
"build": "packager build",
|
|
51
|
-
"upload": "packager publish"
|
|
52
|
-
|
|
53
|
-
"devDependencies": {
|
|
54
|
-
"@intelligentgraphics/ig.gfx.packager": "^2.0.0"
|
|
53
|
+
"upload": "packager publish",
|
|
54
|
+
"postinstall": "package 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."
|
|
@@ -61,7 +61,7 @@ npm install --save-dev @intelligentgraphics/ig.gfx.packager@latest
|
|
|
61
61
|
|
|
62
62
|
## Update
|
|
63
63
|
|
|
64
|
-
You can update the installed package by running `npm install
|
|
64
|
+
You can update the installed package by running `npm install -g @intelligentgraphics/ig.gfx.packager@latest` again.
|
|
65
65
|
|
|
66
66
|
## Environment configuration
|
|
67
67
|
|
|
@@ -141,6 +141,37 @@ This command also allows the address and service to be overwritten. A list of al
|
|
|
141
141
|
npm run upload -- --help
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
+
### Declaring dependencies on ig libraries
|
|
145
|
+
|
|
146
|
+
Make sure to register a postinstall command in the workspace package.json if it's not yet set as shown in the installation examples.
|
|
147
|
+
|
|
148
|
+
A dependency can be declared by installing an npm package for the workspace either by manually adding it to the package.json of the workspace or by executing `npm install {packagename}.`
|
|
149
|
+
|
|
150
|
+
The following packages can be installed:
|
|
151
|
+
|
|
152
|
+
- @intelligentgraphics/3d.ig.gfx.core
|
|
153
|
+
- @intelligentgraphics/3d.ig.math
|
|
154
|
+
- @intelligentgraphics/3d.ig.gfx.standard
|
|
155
|
+
- @intelligentgraphics/3d.ig.gfx.furniture
|
|
156
|
+
- @intelligentgraphics/3d.igx.basic
|
|
157
|
+
- @intelligentgraphics/3d.igx.bath
|
|
158
|
+
- @intelligentgraphics/3d.igx.eval
|
|
159
|
+
- @intelligentgraphics/3d.igx.furniture
|
|
160
|
+
- @intelligentgraphics/3d.igx.geometry
|
|
161
|
+
- @intelligentgraphics/3d.igx.meshcreator
|
|
162
|
+
- @intelligentgraphics/3d.igx.upholstery
|
|
163
|
+
|
|
164
|
+
To install the package `IG.GFX.Standard` you can execute the command `npm install @intelligentgraphics/3d.ig.gfx.standard`.
|
|
165
|
+
|
|
166
|
+
In order to use the types of an installed package, a reference needs to be added to a typescript file of a package (generally an include.ts file).
|
|
167
|
+
You can add a reference by including the following comment at the top of the file:
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
/// <reference types="@intelligentgraphics/3d.ig.gfx.standard" />
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
The packager also replaces the content of the legacy definition files within the lib folder with a reference to the installed definition file, so old packages do not need to be updated.
|
|
174
|
+
|
|
144
175
|
### Migrating the build.txt
|
|
145
176
|
|
|
146
177
|
Previous versions of this packager only provided the option to build packages but not to upload them.
|
|
@@ -278,6 +309,12 @@ The ts files have to adhere to a certain form to be processed.
|
|
|
278
309
|
|
|
279
310
|
## History
|
|
280
311
|
|
|
312
|
+
**IG.GFX.Packager 3.0.0-alpha.0**
|
|
313
|
+
|
|
314
|
+
- install globally instead of locally for every workspace
|
|
315
|
+
- add support for dependency uploading
|
|
316
|
+
- add support for library publishing
|
|
317
|
+
|
|
281
318
|
**IG.GFX.Packager 2.3.4**
|
|
282
319
|
|
|
283
320
|
- add comment to the top of built js and d.ts files containing the version, commit sha and date
|