@o3r/schematics 8.2.0-alpha.84 → 8.2.0-alpha.85
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +4 -4
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/schema.js.map +1 -0
- package/src/rule-factories/check-packages-peers/index.d.ts +1 -1
- package/src/rule-factories/check-packages-peers/index.d.ts.map +1 -1
- package/src/rule-factories/check-packages-peers/index.js +91 -3
- package/src/rule-factories/check-packages-peers/index.js.map +1 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@o3r/schematics",
|
3
|
-
"version": "8.2.0-alpha.
|
3
|
+
"version": "8.2.0-alpha.85",
|
4
4
|
"description": "Schematics module of the Otter framework",
|
5
5
|
"main": "./src/index.js",
|
6
6
|
"keywords": [
|
@@ -28,7 +28,6 @@
|
|
28
28
|
}
|
29
29
|
},
|
30
30
|
"dependencies": {
|
31
|
-
"@o3r/dev-tools": "^8.2.0-alpha.84",
|
32
31
|
"comment-json": "^4.1.0",
|
33
32
|
"globby": "^11.1.0",
|
34
33
|
"minimatch": "^6.1.6",
|
@@ -54,8 +53,9 @@
|
|
54
53
|
"@nrwl/jest": "~15.9.0",
|
55
54
|
"@nrwl/js": "~15.9.0",
|
56
55
|
"@nrwl/linter": "~15.9.0",
|
57
|
-
"@o3r/build-helpers": "^8.2.0-alpha.
|
58
|
-
"@o3r/
|
56
|
+
"@o3r/build-helpers": "^8.2.0-alpha.85",
|
57
|
+
"@o3r/dev-tools": "^8.2.0-alpha.85",
|
58
|
+
"@o3r/eslint-plugin": "^8.2.0-alpha.85",
|
59
59
|
"@schematics/angular": "~15.2.0",
|
60
60
|
"@types/jest": "~28.1.2",
|
61
61
|
"@types/node": "^17.0.45",
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":";;;AACA,4DAA0E;AAC1E,8BAA8B;AAC9B,kCAAkC;AAClC,+BAAqC;AAErC,sFAA2F;AAE3F;;;;;GAKG;AACH,MAAM,UAAW,SAAQ,8BAAsB;IAC7C,kBAAkB;IACX,eAAe;QACpB,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACnI,OAAO;YACL,IAAI,EAAE,yBAAe;YACrB,OAAO,EAAE;gBACP,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAY,IAAI,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE;gBACxF,cAAc,EAAE,cAAc;aAC/B;SACF,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,SAAgB,KAAK;IACnB,MAAM,sBAAsB,GAAG,CAAC,2BAA2B,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9K,OAAO,KAAK,EAAE,IAAU,EAAE,OAAyB,EAAE,EAAE;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAgB,CAAC;QACvE,MAAM,kBAAkB,GAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;QAC1G,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC,UAAU,CAAC,IAAI,kBAAkB,EAAE,gBAAgB,EAAE,CAAC,UAAU,CAAC,CAAC;QAC1J,sBAAsB,CAAC,OAAO,CAC5B,CAAC,UAAU,EAAE,EAAE;YACb,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;YACjD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,GAAG,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;YAChE,eAAe,CAAC,eAAe,GAAG,EAAC,GAAG,kBAAkB,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAC,CAAC;YACjG,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC;gBAC7B,WAAW,EAAE,GAAG,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3D,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,KAAK;aACN,CAAC,CAAC,CAAC;QACb,CAAC,CACF,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;QAClE,MAAM,IAAA,oBAAa,EAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACvD,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAvBD,sBAuBC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":""}
|
@@ -4,5 +4,5 @@ import { SchematicContext, Tree } from '@angular-devkit/schematics';
|
|
4
4
|
*
|
5
5
|
* @param packageName The package to check peer deps for
|
6
6
|
*/
|
7
|
-
export declare function checkPackagesRule(packageName: string): (tree: Tree,
|
7
|
+
export declare function checkPackagesRule(packageName: string): (tree: Tree, context: SchematicContext) => import("@angular-devkit/schematics/src/tree/interface").Tree;
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/rule-factories/check-packages-peers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/rule-factories/check-packages-peers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAgHpE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,UACrC,IAAI,6FAKnB"}
|
@@ -1,16 +1,104 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.checkPackagesRule = void 0;
|
4
|
-
const
|
4
|
+
const path = require("node:path");
|
5
|
+
const commentJson = require("comment-json");
|
6
|
+
const semver_1 = require("semver");
|
7
|
+
/**
|
8
|
+
* Get package manager used in runs
|
9
|
+
* Defaults to the package manager setup in process.env if no package manager set in angular.json
|
10
|
+
*
|
11
|
+
* @param angularJsonString Content of angular.json file
|
12
|
+
*/
|
13
|
+
function getPackageManager(angularJsonString) {
|
14
|
+
let packageManager = process.env && process.env.npm_execpath && process.env.npm_execpath.indexOf('yarn') === -1 ? 'npm' : 'yarn';
|
15
|
+
if (angularJsonString) {
|
16
|
+
const angularJsonObj = commentJson.parse(angularJsonString);
|
17
|
+
if (angularJsonObj?.cli?.packageManager) {
|
18
|
+
packageManager = angularJsonObj.cli.packageManager;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
return packageManager;
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* Check if the first level of peer deps of a given package are installed.
|
25
|
+
* List all not installed packages or packages with version mismatch
|
26
|
+
*
|
27
|
+
* @param packageName
|
28
|
+
*/
|
29
|
+
function getPackagesToInstallOrUpdate(packageName) {
|
30
|
+
let installedPackage;
|
31
|
+
try {
|
32
|
+
installedPackage = require(`${packageName}${path.posix.sep}package.json`);
|
33
|
+
}
|
34
|
+
catch (err) {
|
35
|
+
throw new Error(`The provided package is not installed: ${packageName}`);
|
36
|
+
}
|
37
|
+
const packagesToInstall = [];
|
38
|
+
const packagesWrongVersion = [];
|
39
|
+
const optionalPackages = Object.entries(installedPackage.peerDependenciesMeta || {})
|
40
|
+
.filter(([, dep]) => dep?.optional)
|
41
|
+
.map(([depName]) => depName);
|
42
|
+
const peerDependenciesMap = Object.entries(installedPackage.peerDependencies || {})
|
43
|
+
.reduce((acc, [name, val]) => {
|
44
|
+
if (!optionalPackages.includes(name)) {
|
45
|
+
acc[name] = val;
|
46
|
+
}
|
47
|
+
return acc;
|
48
|
+
}, {});
|
49
|
+
Object.entries(peerDependenciesMap).forEach(([pName, pVersion]) => {
|
50
|
+
let installedPackageVersion;
|
51
|
+
try {
|
52
|
+
installedPackageVersion = require(`${pName}${path.posix.sep}package.json`).version;
|
53
|
+
}
|
54
|
+
catch (err) {
|
55
|
+
packagesToInstall.push({ packageName: pName, version: pVersion });
|
56
|
+
}
|
57
|
+
if (installedPackageVersion && !(0, semver_1.satisfies)(installedPackageVersion, pVersion)) {
|
58
|
+
packagesWrongVersion.push({ packageName: pName, foundVersion: installedPackageVersion, version: pVersion });
|
59
|
+
}
|
60
|
+
});
|
61
|
+
return { packagesToInstall, packagesWrongVersion };
|
62
|
+
}
|
63
|
+
/**
|
64
|
+
* Log an instruction with the packages to install or update to match a package peer dependencies
|
65
|
+
*
|
66
|
+
* @param packageName
|
67
|
+
* @param angularJsonString
|
68
|
+
* @param logger
|
69
|
+
*/
|
70
|
+
function checkPackagesToInstallOrUpdate(packageName, logger, angularJsonString) {
|
71
|
+
const packageManager = getPackageManager(angularJsonString);
|
72
|
+
const { packagesToInstall, packagesWrongVersion } = getPackagesToInstallOrUpdate(packageName);
|
73
|
+
if (packagesWrongVersion.length) {
|
74
|
+
logger.warn('');
|
75
|
+
logger.warn(`The following packages have a mismatch version installed to satisfy "${packageName}" needed versions:`);
|
76
|
+
packagesWrongVersion.forEach(dep => {
|
77
|
+
logger.warn(`${dep.packageName} found version is ${dep.foundVersion}. "${packageName}" needs ${dep.version}`);
|
78
|
+
});
|
79
|
+
logger.warn('');
|
80
|
+
logger.warn('You might consider reinstalling the packages with the good versions:');
|
81
|
+
packagesWrongVersion.forEach((dep) => logger.warn(`${packageManager} run ng update ${dep.packageName}@${dep.version}`));
|
82
|
+
}
|
83
|
+
if (packagesToInstall.length) {
|
84
|
+
logger.error('');
|
85
|
+
logger.error(`The following packages need to be installed to have "${packageName}" working. Run the commands one by one:`);
|
86
|
+
packagesToInstall.forEach((dep) => logger.error(`${packageManager} run ng add ${dep.packageName}@${dep.version}`));
|
87
|
+
throw new Error('Missing peer dependencies');
|
88
|
+
}
|
89
|
+
if (!packagesToInstall.length && !packagesWrongVersion.length) {
|
90
|
+
logger.info(`The package ${packageName} has all peer deps installed.\n`);
|
91
|
+
}
|
92
|
+
}
|
5
93
|
/**
|
6
94
|
* List peer deps packages of the given package, display a warning if version mismatch, error if peer dep is missing
|
7
95
|
*
|
8
96
|
* @param packageName The package to check peer deps for
|
9
97
|
*/
|
10
98
|
function checkPackagesRule(packageName) {
|
11
|
-
return (tree,
|
99
|
+
return (tree, context) => {
|
12
100
|
const angularJson = tree.read('/angular.json');
|
13
|
-
(
|
101
|
+
checkPackagesToInstallOrUpdate(packageName, context.logger, angularJson?.toString());
|
14
102
|
return tree;
|
15
103
|
};
|
16
104
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rule-factories/check-packages-peers/index.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rule-factories/check-packages-peers/index.ts"],"names":[],"mappings":"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"}
|