@intelligentgraphics/ig.gfx.packager 2.2.0 → 2.3.1
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/index.js +289 -11
- package/build/index.js.map +1 -1
- package/locales/en.json +1 -0
- package/package.json +5 -4
- package/readme.md +42 -0
package/build/index.js
CHANGED
|
@@ -2432,7 +2432,7 @@ const getLastTag = async (packageName, packageFolder) => {
|
|
|
2432
2432
|
try {
|
|
2433
2433
|
const {
|
|
2434
2434
|
stdout: releasedTagString
|
|
2435
|
-
} = await execa.sync(`git describe --tags --abbrev=0 --match *${packageName}
|
|
2435
|
+
} = await execa.sync(`git describe --tags --abbrev=0 --match "*${packageName}*"`, {
|
|
2436
2436
|
cwd: rootGitDir,
|
|
2437
2437
|
shell: true
|
|
2438
2438
|
});
|
|
@@ -3580,6 +3580,270 @@ const buildSortedPackageMap = folders => {
|
|
|
3580
3580
|
|
|
3581
3581
|
/***/ }),
|
|
3582
3582
|
|
|
3583
|
+
/***/ "./src/commands/generate.ts":
|
|
3584
|
+
/*!**********************************!*\
|
|
3585
|
+
!*** ./src/commands/generate.ts ***!
|
|
3586
|
+
\**********************************/
|
|
3587
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
3588
|
+
|
|
3589
|
+
"use strict";
|
|
3590
|
+
|
|
3591
|
+
|
|
3592
|
+
Object.defineProperty(exports, "__esModule", ({
|
|
3593
|
+
value: true
|
|
3594
|
+
}));
|
|
3595
|
+
exports.extract = extract;
|
|
3596
|
+
|
|
3597
|
+
var fs = _interopRequireWildcard(__webpack_require__(/*! fs-extra */ "fs-extra"));
|
|
3598
|
+
|
|
3599
|
+
var _path = _interopRequireDefault(__webpack_require__(/*! path */ "path"));
|
|
3600
|
+
|
|
3601
|
+
var ts = _interopRequireWildcard(__webpack_require__(/*! typescript */ "typescript"));
|
|
3602
|
+
|
|
3603
|
+
var _tsc = __webpack_require__(/*! ../tsc */ "./src/tsc.ts");
|
|
3604
|
+
|
|
3605
|
+
var _os = _interopRequireDefault(__webpack_require__(/*! os */ "os"));
|
|
3606
|
+
|
|
3607
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3608
|
+
|
|
3609
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
3610
|
+
|
|
3611
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
3612
|
+
|
|
3613
|
+
function findTsNode(node, callback) {
|
|
3614
|
+
let result;
|
|
3615
|
+
ts.forEachChild(node, child => {
|
|
3616
|
+
if (callback(child)) {
|
|
3617
|
+
result = child;
|
|
3618
|
+
return true;
|
|
3619
|
+
}
|
|
3620
|
+
});
|
|
3621
|
+
return result;
|
|
3622
|
+
}
|
|
3623
|
+
|
|
3624
|
+
function getParamsFromJsDoc(text) {
|
|
3625
|
+
let lines = text.split(_os.default.EOL);
|
|
3626
|
+
let splitLines = lines.map(line => line.split(":").map(s => s.trim()));
|
|
3627
|
+
let params = {};
|
|
3628
|
+
splitLines.filter(line => line.length > 1).forEach(line => {
|
|
3629
|
+
params[line[0]] = line[1];
|
|
3630
|
+
});
|
|
3631
|
+
return params;
|
|
3632
|
+
}
|
|
3633
|
+
|
|
3634
|
+
function getDescFromJsDoc(text) {
|
|
3635
|
+
let lines = text.split(_os.default.EOL);
|
|
3636
|
+
let splitLines = lines.map(line => line.split(":").map(s => s.trim()));
|
|
3637
|
+
let desc = "";
|
|
3638
|
+
splitLines.filter(line => line.length == 1).forEach((line, i) => {
|
|
3639
|
+
desc += (i == 0 ? "" : " ") + line[0];
|
|
3640
|
+
});
|
|
3641
|
+
return desc.substring(0, 98);
|
|
3642
|
+
}
|
|
3643
|
+
|
|
3644
|
+
function capitalizeFirstLetter(string) {
|
|
3645
|
+
return (string === null || string === void 0 ? void 0 : string.charAt(0).toUpperCase()) + (string === null || string === void 0 ? void 0 : string.slice(1));
|
|
3646
|
+
}
|
|
3647
|
+
|
|
3648
|
+
function parseDefault(value, type) {
|
|
3649
|
+
const uType = capitalizeFirstLetter(type);
|
|
3650
|
+
if (value === "null") return null;
|
|
3651
|
+
|
|
3652
|
+
switch (uType) {
|
|
3653
|
+
case "LengthM":
|
|
3654
|
+
case "ArcDEG":
|
|
3655
|
+
case "Float":
|
|
3656
|
+
return parseFloat(value);
|
|
3657
|
+
|
|
3658
|
+
case "Integer":
|
|
3659
|
+
case "Int":
|
|
3660
|
+
return parseInt(value);
|
|
3661
|
+
|
|
3662
|
+
case "Boolean":
|
|
3663
|
+
case "Bool":
|
|
3664
|
+
return value === "true";
|
|
3665
|
+
|
|
3666
|
+
case "Material":
|
|
3667
|
+
case "String":
|
|
3668
|
+
default:
|
|
3669
|
+
return value.replace(/^"/, '').replace(/"$/, '');
|
|
3670
|
+
}
|
|
3671
|
+
}
|
|
3672
|
+
|
|
3673
|
+
function findEvaluatorNode(node) {
|
|
3674
|
+
if (ts.isModuleDeclaration(node) && node.body && ts.isModuleDeclaration(node.body) && node.body.body) {
|
|
3675
|
+
const classDeclaration = findTsNode(node.body.body, child => {
|
|
3676
|
+
var _child$heritageClause;
|
|
3677
|
+
|
|
3678
|
+
if (!ts.isClassDeclaration(child)) {
|
|
3679
|
+
return false;
|
|
3680
|
+
}
|
|
3681
|
+
|
|
3682
|
+
const isEvaluator = (_child$heritageClause = child.heritageClauses) === null || _child$heritageClause === void 0 ? void 0 : _child$heritageClause.some(clause => {
|
|
3683
|
+
if (clause.token !== ts.SyntaxKind.ExtendsKeyword) {
|
|
3684
|
+
return false;
|
|
3685
|
+
}
|
|
3686
|
+
|
|
3687
|
+
return clause.types.some(type => type.getText().includes("Evaluator"));
|
|
3688
|
+
});
|
|
3689
|
+
return isEvaluator !== null && isEvaluator !== void 0 ? isEvaluator : false;
|
|
3690
|
+
});
|
|
3691
|
+
return classDeclaration;
|
|
3692
|
+
}
|
|
3693
|
+
}
|
|
3694
|
+
|
|
3695
|
+
function getParameter(evaluatorNode) {
|
|
3696
|
+
var _evaluatorNode$member;
|
|
3697
|
+
|
|
3698
|
+
let memb = (_evaluatorNode$member = evaluatorNode.members) === null || _evaluatorNode$member === void 0 ? void 0 : _evaluatorNode$member.find(member => {
|
|
3699
|
+
var _member$name;
|
|
3700
|
+
|
|
3701
|
+
return (member === null || member === void 0 ? void 0 : (_member$name = member.name) === null || _member$name === void 0 ? void 0 : _member$name.getText().toLowerCase()) == "create";
|
|
3702
|
+
});
|
|
3703
|
+
|
|
3704
|
+
if (ts.isMethodDeclaration(memb)) {
|
|
3705
|
+
return memb.parameters.find(para => para.name.getText().toLowerCase() == "parameters");
|
|
3706
|
+
}
|
|
3707
|
+
}
|
|
3708
|
+
|
|
3709
|
+
function findParametersInterface(node, interfaceName) {
|
|
3710
|
+
if (ts.isModuleDeclaration(node) && node.body && ts.isModuleDeclaration(node.body) && node.body.body) {
|
|
3711
|
+
const interfaceDeclaration = findTsNode(node.body.body, child => ts.isInterfaceDeclaration(child) && child.name.getText() == interfaceName);
|
|
3712
|
+
return interfaceDeclaration;
|
|
3713
|
+
}
|
|
3714
|
+
|
|
3715
|
+
return undefined;
|
|
3716
|
+
}
|
|
3717
|
+
|
|
3718
|
+
function getModuleName(sourceFile) {
|
|
3719
|
+
let fullName = "";
|
|
3720
|
+
|
|
3721
|
+
if (ts.isModuleDeclaration(sourceFile)) {
|
|
3722
|
+
fullName += sourceFile.name.getText();
|
|
3723
|
+
let packageB = sourceFile.body;
|
|
3724
|
+
|
|
3725
|
+
if (ts.isModuleDeclaration(packageB)) {
|
|
3726
|
+
fullName += "." + packageB.name.getText();
|
|
3727
|
+
}
|
|
3728
|
+
}
|
|
3729
|
+
|
|
3730
|
+
return fullName;
|
|
3731
|
+
}
|
|
3732
|
+
|
|
3733
|
+
function genParameters(interfac) {
|
|
3734
|
+
return interfac.members.map((member, i) => {
|
|
3735
|
+
let para = {};
|
|
3736
|
+
para.Name = member.name.getText();
|
|
3737
|
+
if (para.Name.length > 45) throw new Error(`Parameter name length >45 '${para.Name}'`);
|
|
3738
|
+
let rawDocTags = ts.getJSDocTags(member);
|
|
3739
|
+
|
|
3740
|
+
if (rawDocTags.length) {
|
|
3741
|
+
let dict = getTagDict(rawDocTags);
|
|
3742
|
+
if (dict.summary) para.Description = dict.summary;
|
|
3743
|
+
if (dict.creatorType) para.Type = dict.creatorType;
|
|
3744
|
+
if (dict.default && dict.creatorType) para.Default = parseDefault(dict.default, dict.creatorType);
|
|
3745
|
+
para.DisplayIndex = i + 1;
|
|
3746
|
+
}
|
|
3747
|
+
|
|
3748
|
+
return para;
|
|
3749
|
+
});
|
|
3750
|
+
}
|
|
3751
|
+
|
|
3752
|
+
function getTagDict(tags) {
|
|
3753
|
+
let dict = {};
|
|
3754
|
+
tags.forEach(tag => {
|
|
3755
|
+
dict[tag.tagName.text] = tag.comment;
|
|
3756
|
+
});
|
|
3757
|
+
return dict;
|
|
3758
|
+
}
|
|
3759
|
+
|
|
3760
|
+
function findParametersInterfaceInFiles(program, fileList, name) {
|
|
3761
|
+
for (const file of fileList) {
|
|
3762
|
+
const sourceFile = program.getSourceFile(file);
|
|
3763
|
+
|
|
3764
|
+
if (sourceFile === undefined) {
|
|
3765
|
+
throw new Error(`Expected a source file to exist for file name "${file}"`);
|
|
3766
|
+
}
|
|
3767
|
+
|
|
3768
|
+
let interfaceDeclaration;
|
|
3769
|
+
ts.forEachChild(sourceFile, node => {
|
|
3770
|
+
interfaceDeclaration = findParametersInterface(node, name);
|
|
3771
|
+
return interfaceDeclaration !== undefined;
|
|
3772
|
+
});
|
|
3773
|
+
|
|
3774
|
+
if (interfaceDeclaration !== undefined) {
|
|
3775
|
+
return interfaceDeclaration;
|
|
3776
|
+
}
|
|
3777
|
+
}
|
|
3778
|
+
|
|
3779
|
+
return undefined;
|
|
3780
|
+
}
|
|
3781
|
+
/**
|
|
3782
|
+
* Extracts and returns script array for _Index.json from a src folder
|
|
3783
|
+
*
|
|
3784
|
+
* @param folderPath path to a src folder
|
|
3785
|
+
*/
|
|
3786
|
+
|
|
3787
|
+
|
|
3788
|
+
function extract(folderPath, ignore = []) {
|
|
3789
|
+
const files = (0, _tsc.findTypescriptFiles)(_path.default.join(folderPath, "src"));
|
|
3790
|
+
const filtered = files.filter(path => {
|
|
3791
|
+
return !ignore.some(suffix => path.endsWith(suffix));
|
|
3792
|
+
});
|
|
3793
|
+
let arr = new Array();
|
|
3794
|
+
let program = ts.createProgram(filtered, {
|
|
3795
|
+
allowJs: true
|
|
3796
|
+
});
|
|
3797
|
+
program.getTypeChecker();
|
|
3798
|
+
filtered.forEach(file => {
|
|
3799
|
+
// Create a Program to represent the project, then pull out the
|
|
3800
|
+
// source file to parse its AST.
|
|
3801
|
+
const sourceFile = program.getSourceFile(file); // Loop through the root AST nodes of the file
|
|
3802
|
+
|
|
3803
|
+
ts.forEachChild(sourceFile, node => {
|
|
3804
|
+
let obj = {};
|
|
3805
|
+
const evalNode = findEvaluatorNode(node);
|
|
3806
|
+
|
|
3807
|
+
if (evalNode === undefined) {
|
|
3808
|
+
return;
|
|
3809
|
+
}
|
|
3810
|
+
|
|
3811
|
+
let moduleName = getModuleName(node);
|
|
3812
|
+
|
|
3813
|
+
if (evalNode.name === undefined) {
|
|
3814
|
+
throw new Error(`Expected evaluator class to have a name`);
|
|
3815
|
+
}
|
|
3816
|
+
|
|
3817
|
+
obj.Name = moduleName + "." + evalNode.name.getText();
|
|
3818
|
+
if (obj.Name.length > 45) throw new Error(`Package name length >45 '${obj.Name}'`);
|
|
3819
|
+
let para = getParameter(evalNode);
|
|
3820
|
+
let paraName = para === null || para === void 0 ? void 0 : para.type.typeName.getText();
|
|
3821
|
+
let interfac = findParametersInterfaceInFiles(program, filtered, paraName);
|
|
3822
|
+
|
|
3823
|
+
if (interfac === undefined) {
|
|
3824
|
+
throw new Error(`Failed to find parameters type declaration for evaluator ${evalNode.name.getText()}`);
|
|
3825
|
+
}
|
|
3826
|
+
|
|
3827
|
+
let rawDocTags = ts.getJSDocTags(evalNode);
|
|
3828
|
+
|
|
3829
|
+
if (rawDocTags.length) {
|
|
3830
|
+
let dict = getTagDict(rawDocTags);
|
|
3831
|
+
if (dict.summary) obj.Description = dict.summary;
|
|
3832
|
+
if (dict.creatorType) obj.Type = dict.creatorType;
|
|
3833
|
+
}
|
|
3834
|
+
|
|
3835
|
+
obj.Parameters = genParameters(interfac);
|
|
3836
|
+
arr.push(obj);
|
|
3837
|
+
});
|
|
3838
|
+
});
|
|
3839
|
+
|
|
3840
|
+
let pathX = _path.default.join(folderPath, "_Index.json");
|
|
3841
|
+
|
|
3842
|
+
fs.writeFileSync(pathX, JSON.stringify(arr, null, 4));
|
|
3843
|
+
}
|
|
3844
|
+
|
|
3845
|
+
/***/ }),
|
|
3846
|
+
|
|
3583
3847
|
/***/ "./src/commands/release.ts":
|
|
3584
3848
|
/*!*********************************!*\
|
|
3585
3849
|
!*** ./src/commands/release.ts ***!
|
|
@@ -3719,10 +3983,10 @@ const releaseFolder = async (folderPath, options) => {
|
|
|
3719
3983
|
fs.ensureDirSync(releasesPath);
|
|
3720
3984
|
fs.copyFileSync(path.join(options.cwd, "bin", zipFileName), path.join(releasesPath, zipFileName));
|
|
3721
3985
|
}
|
|
3722
|
-
}; //https://regex101.com/r/
|
|
3986
|
+
}; // https://regex101.com/r/LtGAu5/1
|
|
3723
3987
|
|
|
3724
3988
|
|
|
3725
|
-
const logRegex = /console\.log\(\s*"([\w\s\.\(\)]+)\ *Copyright[\w\s\(\)\.]+(\d{4}|\d{4} - \d{4})([\w\s\(\)\.]+)?"
|
|
3989
|
+
const logRegex = /console\.log\(\s*"([\w\s\.\(\)]+)\ *Copyright[\w\s\(\)\.]+(\d{4}|\d{4} - \d{4})([\w\s\(\)\.]+)?",?\s*\)/i;
|
|
3726
3990
|
const currentYear = new Date(Date.now()).getFullYear();
|
|
3727
3991
|
|
|
3728
3992
|
const getVersionFile = folder => {
|
|
@@ -3772,7 +4036,7 @@ const getVersionFile = folder => {
|
|
|
3772
4036
|
return invalidVersionFile();
|
|
3773
4037
|
}
|
|
3774
4038
|
|
|
3775
|
-
const [,
|
|
4039
|
+
const [_full, _description, copyright, copyrightStuff] = match;
|
|
3776
4040
|
const copyrightYears = copyright.match(/^(\d+)( ?- ?(\d+))?$/);
|
|
3777
4041
|
let years;
|
|
3778
4042
|
|
|
@@ -3783,7 +4047,6 @@ const getVersionFile = folder => {
|
|
|
3783
4047
|
}
|
|
3784
4048
|
|
|
3785
4049
|
return {
|
|
3786
|
-
version: parseVersion(description),
|
|
3787
4050
|
write: createVersionFileWriter(years, copyrightStuff),
|
|
3788
4051
|
reset: () => {
|
|
3789
4052
|
_igTools.FileUtil.writeFile(filePath, versionFile);
|
|
@@ -4154,9 +4417,7 @@ Packaging without a javascript file is only allowed when animation json files ar
|
|
|
4154
4417
|
if (animations.size > 0) {
|
|
4155
4418
|
const [scriptDomain, scriptSubdomain] = data.Scope.split(".");
|
|
4156
4419
|
const scope = `${scriptDomain}.${scriptSubdomain}`;
|
|
4157
|
-
|
|
4158
|
-
if (!library.includes(scope)) {
|
|
4159
|
-
library += `
|
|
4420
|
+
library += `
|
|
4160
4421
|
var ${scriptDomain};
|
|
4161
4422
|
(function (${scriptDomain}) {
|
|
4162
4423
|
var ${scriptSubdomain};
|
|
@@ -4164,7 +4425,6 @@ Packaging without a javascript file is only allowed when animation json files ar
|
|
|
4164
4425
|
})(${scriptSubdomain} = ${scriptDomain}.${scriptSubdomain} || (${scriptDomain}.${scriptSubdomain} = {}));
|
|
4165
4426
|
})(${scriptDomain} || (${scriptDomain} = {}));
|
|
4166
4427
|
`;
|
|
4167
|
-
}
|
|
4168
4428
|
|
|
4169
4429
|
for (const [name, data] of animations) {
|
|
4170
4430
|
library += `${scope}.${name} = ` + data + ";";
|
|
@@ -8082,7 +8342,7 @@ module.exports = require("util");
|
|
|
8082
8342
|
/***/ ((module) => {
|
|
8083
8343
|
|
|
8084
8344
|
"use strict";
|
|
8085
|
-
module.exports = JSON.parse('{"name":"@intelligentgraphics/ig.gfx.packager","version":"2.
|
|
8345
|
+
module.exports = JSON.parse('{"name":"@intelligentgraphics/ig.gfx.packager","version":"2.3.1","description":"IG.GFX.Packager 2.3.1 (2.3.1.100)","author":"Michael Beier <mb@intelligentgraphics.biz>","main":"build/index.js","private":false,"publishConfig":{"access":"public"},"engines":{"node":">=14.0.0"},"bin":{"packager":"./build/index.js"},"files":["build","locales","scripts"],"scripts":{"dist":"webpack","clean":"rimraf build *.tsbuildinfo","prepublishOnly":"yarn clean && yarn dist","test":"jest","_postinstall":"node scripts/postinstall.js","format":"prettier --write \\"**/*.{ts,tsx,json}\\""},"dependencies":{"ajv":"^8.6.2","axios":"^0.21.1","core-js":"^3.16.0","execa":"^5.1.1","fs-extra":"^10.0.0","glob":"^7.1.4","jszip":"^3.10.0","rimraf":"^3.0.2","source-map-support":"^0.5.19","terser":"^4.8.0","typedoc":"~0.23.2","typescript":"~4.7.4","update-notifier":"^5.1.0","v8-compile-cache":"^2.1.1","y18n":"^5.0.8","yargs":"^17.0.1"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-object-rest-spread":"^7.18.9","@babel/preset-env":"^7.18.9","@intelligentgraphics/ig.tools.core":"^1.5.2","@intelligentgraphics/ig.utilities":"^1.6.6","@types/fs-extra":"^9.0.12","@types/glob":"^7.1.4","@types/node":"^16.4.11","@types/rimraf":"^3.0.1","@types/update-notifier":"^5.1.0","@types/yargs":"^17.0.2","babel-loader":"^8.1.0","ts-loader":"^9.2.5","ts-node":"^10.1.0","webpack":"^5.64.4","webpack-cli":"^4.7.2"}}');
|
|
8086
8346
|
|
|
8087
8347
|
/***/ })
|
|
8088
8348
|
|
|
@@ -8138,6 +8398,8 @@ var _localization = __webpack_require__(/*! ./localization */ "./src/localizatio
|
|
|
8138
8398
|
|
|
8139
8399
|
var _build = __webpack_require__(/*! ./commands/build */ "./src/commands/build.ts");
|
|
8140
8400
|
|
|
8401
|
+
var _generate = __webpack_require__(/*! ./commands/generate */ "./src/commands/generate.ts");
|
|
8402
|
+
|
|
8141
8403
|
const _excluded = ["directories"],
|
|
8142
8404
|
_excluded2 = ["directory", "user", "password", "service", "license"];
|
|
8143
8405
|
|
|
@@ -8301,7 +8563,7 @@ yargs.command({
|
|
|
8301
8563
|
}
|
|
8302
8564
|
|
|
8303
8565
|
if (license && !license.endsWith(".iglic")) {
|
|
8304
|
-
captureError(new Error(`Expected the license path to end with the extension .iglic
|
|
8566
|
+
captureError(new Error(`Expected the license path to end with the extension .iglic. Received the path "${license}". You may need to reload your environment variables by restarting the program you're using to execute the packager.`));
|
|
8305
8567
|
return;
|
|
8306
8568
|
}
|
|
8307
8569
|
}
|
|
@@ -8348,6 +8610,22 @@ yargs.command({
|
|
|
8348
8610
|
releaseFolders(fullOptions).catch(captureError);
|
|
8349
8611
|
}
|
|
8350
8612
|
});
|
|
8613
|
+
yargs.command({
|
|
8614
|
+
command: "generateIndex [directory]",
|
|
8615
|
+
builder: argv => {
|
|
8616
|
+
return argv.option("ignore", {
|
|
8617
|
+
type: "array",
|
|
8618
|
+
default: [],
|
|
8619
|
+
description: (0, _localization.translate)("options.ignore.description")
|
|
8620
|
+
});
|
|
8621
|
+
},
|
|
8622
|
+
handler: ({
|
|
8623
|
+
directory,
|
|
8624
|
+
ignore
|
|
8625
|
+
}) => {
|
|
8626
|
+
(0, _generate.extract)(directory, ignore);
|
|
8627
|
+
}
|
|
8628
|
+
});
|
|
8351
8629
|
yargs.demandCommand().pkgConf("packager").showHelpOnFail(false).version().argv;
|
|
8352
8630
|
const notifier = (0, _updateNotifier.default)({
|
|
8353
8631
|
pkg: pjson,
|