@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/schematics",
3
- "version": "8.2.0-alpha.84",
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.84",
58
- "@o3r/eslint-plugin": "^8.2.0-alpha.84",
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, _context: SchematicContext) => import("@angular-devkit/schematics/src/tree/interface").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;AAGpE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,UACrC,IAAI,8FAKnB"}
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 dev_tools_1 = require("@o3r/dev-tools");
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, _context) => {
99
+ return (tree, context) => {
12
100
  const angularJson = tree.read('/angular.json');
13
- (0, dev_tools_1.checkPackagesToInstallOrUpdate)(packageName, angularJson?.toString());
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":";;;AACA,8CAAgE;AAEhE;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,WAAmB;IACnD,OAAO,CAAC,IAAU,EAAE,QAA0B,EAAE,EAAE;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAA,0CAA8B,EAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAND,8CAMC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rule-factories/check-packages-peers/index.ts"],"names":[],"mappings":"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"}