@o3r/schematics 8.2.0-alpha.84 → 8.2.0-alpha.85

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/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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"}