@o3r/schematics 12.1.10 → 12.1.11

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": "12.1.10",
3
+ "version": "12.1.11",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -30,13 +30,13 @@
30
30
  "@angular-devkit/core": "^19.0.0",
31
31
  "@angular-devkit/schematics": "^19.0.0",
32
32
  "@angular/cli": "^19.0.0",
33
- "@o3r/core": "^12.1.10",
34
- "@o3r/telemetry": "^12.1.10",
33
+ "@o3r/core": "^12.1.11",
34
+ "@o3r/telemetry": "^12.1.11",
35
35
  "@schematics/angular": "^19.0.0",
36
36
  "eslint": "^9.14.0",
37
37
  "rxjs": "^7.8.1",
38
38
  "ts-node": "~10.9.2",
39
- "type-fest": "^4.10.2",
39
+ "type-fest": "^4.30.1",
40
40
  "typescript": "^5.5.4"
41
41
  },
42
42
  "peerDependenciesMeta": {
@@ -96,9 +96,8 @@
96
96
  "@nx/eslint-plugin": "~20.4.0",
97
97
  "@nx/jest": "~20.4.0",
98
98
  "@nx/js": "~20.4.0",
99
- "@o3r/build-helpers": "^12.1.10",
100
- "@o3r/eslint-plugin": "^12.1.10",
101
- "@o3r/telemetry": "^12.1.10",
99
+ "@o3r/build-helpers": "^12.1.11",
100
+ "@o3r/telemetry": "^12.1.11",
102
101
  "@schematics/angular": "~19.2.0",
103
102
  "@stylistic/eslint-plugin": "~3.1.0",
104
103
  "@swc/helpers": "~0.5.0",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EACL,MAAM,4BAA4B,CAAC;AAUpC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAoClB;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,qBAAqB,KAAG,IAEtD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EACL,MAAM,4BAA4B,CAAC;AAUpC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,UAAU,CAAC;AA+ClB;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,qBAAqB,KAAG,IAEtD,CAAC"}
@@ -2,37 +2,42 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ngAdd = void 0;
4
4
  const path = require("node:path");
5
- const dependencies_1 = require("@schematics/angular/utility/dependencies");
6
5
  const public_api_1 = require("../../src/public_api");
6
+ /**
7
+ * List of external dependencies to be added to the project as peer dependencies
8
+ */
9
+ const dependenciesToInstall = [];
10
+ /**
11
+ * List of external dependencies to be added to the project as dev dependencies
12
+ */
13
+ const devDependenciesToInstall = [
14
+ '@angular-devkit/architect',
15
+ '@angular-devkit/core',
16
+ '@angular-devkit/schematics',
17
+ '@schematics/angular',
18
+ 'globby',
19
+ 'rxjs'
20
+ ];
7
21
  /**
8
22
  * Add Otter schematics to an Angular Project
9
23
  * @param options schematics options
10
24
  */
11
25
  function ngAddFn(options) {
12
- const schematicsDependencies = ['@angular-devkit/architect', '@angular-devkit/schematics', '@angular-devkit/core', '@schematics/angular', 'globby'];
13
- return (_, context) => {
26
+ return (tree, context) => {
14
27
  const packageJsonPath = path.resolve(__dirname, '..', '..', 'package.json');
15
- const dependencies = Object.entries((0, public_api_1.getExternalDependenciesVersionRange)(schematicsDependencies, packageJsonPath, context.logger)).reduce((acc, [dep, range]) => {
16
- acc[dep] = {
17
- inManifest: [{
18
- range,
19
- types: [dependencies_1.NodeDependencyType.Dev]
20
- }]
21
- };
22
- return acc;
23
- }, {});
24
- Object.entries((0, public_api_1.getExternalDependenciesVersionRange)(schematicsDependencies, packageJsonPath, context.logger))
25
- .forEach(([dep, range]) => {
26
- dependencies[dep] = {
27
- inManifest: [{
28
- range,
29
- types: [dependencies_1.NodeDependencyType.Dev]
30
- }]
31
- };
32
- });
28
+ const workspaceProject = options.projectName ? (0, public_api_1.getWorkspaceConfig)(tree)?.projects[options.projectName] : undefined;
29
+ const projectDirectory = workspaceProject?.root || '.';
30
+ const projectPackageJson = tree.readJson(path.posix.join(projectDirectory, 'package.json'));
31
+ const externalDependenciesInfo = (0, public_api_1.getExternalDependenciesInfo)({
32
+ devDependenciesToInstall,
33
+ dependenciesToInstall,
34
+ o3rPackageJsonPath: packageJsonPath,
35
+ projectType: workspaceProject?.projectType,
36
+ projectPackageJson
37
+ }, context.logger);
33
38
  return (0, public_api_1.setupDependencies)({
34
39
  projectName: options.projectName,
35
- dependencies,
40
+ dependencies: externalDependenciesInfo,
36
41
  skipInstall: false
37
42
  });
38
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAIlC,2EAEkD;AAClD,qDAK8B;AAK9B;;;GAGG;AACH,SAAS,OAAO,CAAC,OAA8B;IAC7C,MAAM,sBAAsB,GAAG,CAAC,2BAA2B,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IACpJ,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QACpB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAA,gDAAmC,EAAC,sBAAsB,EAAE,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC7J,GAAG,CAAC,GAAG,CAAC,GAAG;gBACT,UAAU,EAAE,CAAC;wBACX,KAAK;wBACL,KAAK,EAAE,CAAC,iCAAkB,CAAC,GAAG,CAAC;qBAChC,CAAC;aACH,CAAC;YACF,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAqC,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,IAAA,gDAAmC,EAAC,sBAAsB,EAAE,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;aACzG,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACxB,YAAY,CAAC,GAAG,CAAC,GAAG;gBAClB,UAAU,EAAE,CAAC;wBACX,KAAK;wBACL,KAAK,EAAE,CAAC,iCAAkB,CAAC,GAAG,CAAC;qBAChC,CAAC;aACH,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,OAAO,IAAA,8BAAiB,EAAC;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY;YACZ,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,MAAM,KAAK,GAAG,CAAC,OAA8B,EAAQ,EAAE,CAAC,GAAG,EAAE;IAClE,OAAO,IAAA,iCAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAOlC,qDAK8B;AAK9B;;GAEG;AACH,MAAM,qBAAqB,GAAa,EAC6C,CAAC;AAEtF;;GAEG;AACH,MAAM,wBAAwB,GAAG;IAC/B,2BAA2B;IAC3B,sBAAsB;IACtB,4BAA4B;IAC5B,qBAAqB;IACrB,QAAQ;IACR,MAAM;CACP,CAAC;AAEF;;;GAGG;AACH,SAAS,OAAO,CAAC,OAA8B;IAC7C,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5E,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,+BAAkB,EAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnH,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,IAAI,IAAI,GAAG,CAAC;QACvD,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAgB,CAAC;QAC3G,MAAM,wBAAwB,GAAG,IAAA,wCAA2B,EAAC;YAC3D,wBAAwB;YACxB,qBAAqB;YACrB,kBAAkB,EAAE,eAAe;YACnC,WAAW,EAAE,gBAAgB,EAAE,WAAW;YAC1C,kBAAkB;SACnB,EACD,OAAO,CAAC,MAAM,CACb,CAAC;QACF,OAAO,IAAA,8BAAiB,EAAC;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,wBAAwB;YACtC,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,MAAM,KAAK,GAAG,CAAC,OAA8B,EAAQ,EAAE,CAAC,GAAG,EAAE;IAClE,OAAO,IAAA,iCAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB"}
@@ -0,0 +1,41 @@
1
+ import { type NodeDependencyType } from '@schematics/angular/utility/dependencies';
2
+ export interface DependencyInManifest {
3
+ /**
4
+ * Range of the dependency
5
+ * @default 'latest'
6
+ */
7
+ range?: string;
8
+ /**
9
+ * Types of the dependency
10
+ * @default [NodeDependencyType.Default]
11
+ */
12
+ types?: NodeDependencyType[];
13
+ }
14
+ /**
15
+ * Options to be passed to the ng add task
16
+ */
17
+ export interface NgAddSchematicOptions {
18
+ /** Name of the project */
19
+ projectName?: string | null;
20
+ /** Skip the run of the linter*/
21
+ skipLinter?: boolean;
22
+ /** Skip the installation process */
23
+ skipInstall?: boolean;
24
+ [x: string]: any;
25
+ }
26
+ export interface DependencyToAdd {
27
+ /** Enforce this dependency to be applied to Workspace's manifest only */
28
+ toWorkspaceOnly?: boolean;
29
+ /** List of dependency to register in manifest */
30
+ inManifest: DependencyInManifest[];
31
+ /** ng-add schematic option dedicated to the package */
32
+ ngAddOptions?: NgAddSchematicOptions;
33
+ /** Determine if the dependency require to be installed */
34
+ requireInstall?: boolean;
35
+ /**
36
+ * Enforce the usage of tilde instead of caret in a dependency range
37
+ * If not specified, the context option value will be used
38
+ */
39
+ enforceTildeRange?: boolean;
40
+ }
41
+ //# sourceMappingURL=dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../src/interfaces/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACxB,MAAM,0CAA0C,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,gCAAgC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,oCAAoC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iDAAiD;IACjD,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,uDAAuD;IACvD,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,0DAA0D;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../src/interfaces/dependencies.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  export * from './angular-workspace';
2
+ export * from './dependencies';
2
3
  export * from './rule-factories';
3
4
  export * from './schematic-option';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./angular-workspace"), exports);
5
+ tslib_1.__exportStar(require("./dependencies"), exports);
5
6
  tslib_1.__exportStar(require("./rule-factories"), exports);
6
7
  tslib_1.__exportStar(require("./schematic-option"), exports);
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,2DAAiC;AACjC,6DAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,yDAA+B;AAC/B,2DAAiC;AACjC,6DAAmC"}
@@ -1,45 +1,6 @@
1
1
  import { Rule, type SchematicContext, type TaskId, Tree } from '@angular-devkit/schematics';
2
- import { NodeDependencyType } from '@schematics/angular/utility/dependencies';
2
+ import { DependencyToAdd, NgAddSchematicOptions } from '../../interfaces';
3
3
  import type { SupportedPackageManagers } from '../../utility';
4
- /**
5
- * Options to be passed to the ng add task
6
- */
7
- export interface NgAddSchematicOptions {
8
- /** Name of the project */
9
- projectName?: string | null;
10
- /** Skip the run of the linter*/
11
- skipLinter?: boolean;
12
- /** Skip the install process */
13
- skipInstall?: boolean;
14
- [x: string]: any;
15
- }
16
- export interface DependencyInManifest {
17
- /**
18
- * Range of the dependency
19
- * @default 'latest'
20
- */
21
- range?: string;
22
- /**
23
- * Types of the dependency
24
- * @default [NodeDependencyType.Default]
25
- */
26
- types?: NodeDependencyType[];
27
- }
28
- export interface DependencyToAdd {
29
- /** Enforce this dependency to be applied to Workspace's manifest only */
30
- toWorkspaceOnly?: boolean;
31
- /** List of dependency to register in manifest */
32
- inManifest: DependencyInManifest[];
33
- /** ng-add schematic option dedicated to the package */
34
- ngAddOptions?: NgAddSchematicOptions;
35
- /** Determine if the dependency require to be installed */
36
- requireInstall?: boolean;
37
- /**
38
- * Enforce the usage of tilde instead of caret in a dependency range
39
- * If not specified, the context option value will be used
40
- */
41
- enforceTildeRange?: boolean;
42
- }
43
4
  export interface SetupDependenciesOptions {
44
5
  /** Map of dependencies to install */
45
6
  dependencies: Record<string, DependencyToAdd>;
@@ -50,10 +11,14 @@ export interface SetupDependenciesOptions {
50
11
  /**
51
12
  * Will skip install in the end of the package.json update.
52
13
  * if `undefined`, the installation will be process only if a ngAdd run is required.
53
- * If `true` the install will not run in any case
14
+ * If `true` the installation will not run in any case
54
15
  * @default undefined
55
16
  */
56
17
  skipInstall?: boolean;
18
+ /**
19
+ * Force the installation for a package even if it is already installed.
20
+ */
21
+ forceInstall?: boolean;
57
22
  /** Project Name */
58
23
  projectName?: string;
59
24
  /** default ng-add schematic option */
@@ -94,11 +59,6 @@ export declare const hasSetupInformation: (context: SchematicContext) => context
94
59
  * @param exactO3rVersion Use a pinned version of the o3r package
95
60
  */
96
61
  export declare const getPackageInstallConfig: (packageJsonPath: string, tree: Tree, projectName?: string, devDependencyOnly?: boolean, exactO3rVersion?: boolean) => Record<string, DependencyToAdd>;
97
- /**
98
- * Replace the caret ranges by tilde ranges
99
- * @param range Range to replace
100
- */
101
- export declare const enforceTildeRange: (range?: string) => string | undefined;
102
62
  /**
103
63
  * Setup dependency to a repository.
104
64
  * Will run manually the ngAdd schematics according to the parameters and install the packages if required
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../../src/rule-factories/ng-add/dependencies.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,IAAI,EAEJ,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,IAAI,EACL,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,kBAAkB,EACnB,MAAM,0CAA0C,CAAC;AAKlD,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,eAAe,CAAC;AAUvB;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,gCAAgC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iDAAiD;IACjD,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,uDAAuD;IACvD,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,0DAA0D;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9C;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACjC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,sCAAsC;IACtC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,+DAA+D;AAC/D,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,gBAAgB,KAAG,OAAO,IAAI,gBAAgB,GAAG;IAAE,iBAAiB,EAAE,uBAAuB,CAAA;CAEzI,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,GAAI,iBAAiB,MAAM,EAAE,MAAM,IAAI,EAAE,cAAc,MAAM,EAAE,oBAAoB,OAAO,EAAE,kBAAkB,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAiBzL,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,uBAE/C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,wBAAwB,KAAG,IAyIrE,CAAC"}
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../../src/rule-factories/ng-add/dependencies.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,IAAI,EAEJ,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,IAAI,EACL,MAAM,4BAA4B,CAAC;AAYpC,OAAO,EACL,eAAe,EACf,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,eAAe,CAAC;AAavB,MAAM,WAAW,wBAAwB;IACvC,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9C;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACjC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,sCAAsC;IACtC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,+DAA+D;AAC/D,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,gBAAgB,KAAG,OAAO,IAAI,gBAAgB,GAAG;IAAE,iBAAiB,EAAE,uBAAuB,CAAA;CAEzI,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,GAAI,iBAAiB,MAAM,EAAE,MAAM,IAAI,EAAE,cAAc,MAAM,EAAE,oBAAoB,OAAO,EAAE,kBAAkB,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAiBzL,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,wBAAwB,KAAG,IAyIrE,CAAC"}
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupDependencies = exports.enforceTildeRange = exports.getPackageInstallConfig = exports.hasSetupInformation = void 0;
3
+ exports.setupDependencies = exports.getPackageInstallConfig = exports.hasSetupInformation = void 0;
4
4
  const node_fs_1 = require("node:fs");
5
5
  const path = require("node:path");
6
6
  const schematics_1 = require("@angular-devkit/schematics");
7
7
  const tasks_1 = require("@angular-devkit/schematics/tasks");
8
8
  const dependencies_1 = require("@schematics/angular/utility/dependencies");
9
9
  const semver = require("semver");
10
+ const dependencies_2 = require("../../utility/dependencies");
10
11
  const loaders_1 = require("../../utility/loaders");
11
12
  const package_manager_runner_1 = require("../../utility/package-manager-runner");
12
13
  /**
@@ -44,14 +45,6 @@ const getPackageInstallConfig = (packageJsonPath, tree, projectName, devDependen
44
45
  };
45
46
  };
46
47
  exports.getPackageInstallConfig = getPackageInstallConfig;
47
- /**
48
- * Replace the caret ranges by tilde ranges
49
- * @param range Range to replace
50
- */
51
- const enforceTildeRange = (range) => {
52
- return range?.replace(/\^/g, '~');
53
- };
54
- exports.enforceTildeRange = enforceTildeRange;
55
48
  /**
56
49
  * Setup dependency to a repository.
57
50
  * Will run manually the ngAdd schematics according to the parameters and install the packages if required
@@ -76,7 +69,7 @@ const setupDependencies = (options) => {
76
69
  dependency.inManifest.forEach(({ range, types }) => {
77
70
  const isTildeRangeEnforced = dependency.enforceTildeRange === undefined ? (options.enforceTildeRange === undefined || options.enforceTildeRange) : dependency.enforceTildeRange;
78
71
  if (isTildeRangeEnforced) {
79
- range = (0, exports.enforceTildeRange)(range);
72
+ range = (0, dependencies_2.enforceTildeRange)(range);
80
73
  }
81
74
  (types || [dependencies_1.NodeDependencyType.Default]).forEach((depType) => {
82
75
  if (packageJsonContent[depType]?.[packageToInstall]) {
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../src/rule-factories/ng-add/dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../src/rule-factories/ng-add/dependencies.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,56 @@
1
1
  import { logging } from '@angular-devkit/core';
2
2
  import { NodeDependency, NodeDependencyType } from '@schematics/angular/utility/dependencies';
3
+ import type { PackageJson } from 'type-fest';
4
+ import { DependencyInManifest, DependencyToAdd } from '../interfaces/dependencies';
3
5
  /**
4
6
  * Method to extract the provided package version range from a package.json file
7
+ * Look for the range based on this order of priority:
8
+ * - generatorDependencies
9
+ * - peerDependencies
10
+ * - dependencies
11
+ * - devDependencies
5
12
  * @param packageNames list of package we want to retrieve the version
6
13
  * @param packageJsonPath Path to the package.json to refer to
7
14
  * @param logger logger
8
15
  * @returns The version range value retrieved from the provided package.json file
9
16
  */
10
17
  export declare function getExternalDependenciesVersionRange<T extends string>(packageNames: T[], packageJsonPath: string, logger: logging.LoggerApi): Record<T, string>;
18
+ /**
19
+ * Replace the caret ranges by tilde ranges
20
+ * @param range Range to replace
21
+ */
22
+ export declare const enforceTildeRange: (range?: string) => string | undefined;
23
+ /**
24
+ * Return true if B is a subset of A or if minVersion of A is greater than minVersion of B
25
+ * @param rangeA
26
+ * @param rangeB
27
+ */
28
+ export declare function isRangeGreater(rangeA: string, rangeB: string): boolean;
29
+ /**
30
+ * Compute the version range for a package based on the less restrictive version declared in the package.json.
31
+ * If the versions declared in the package.json do not intersect, take the highest version.
32
+ * @param packageName
33
+ * @param packageJsonContent
34
+ * @param isTildeEnforced
35
+ */
36
+ export declare function getDependencyMaximumVersionRange(packageName: string, packageJsonContent: PackageJson, isTildeEnforced?: boolean): string;
37
+ /**
38
+ * Find the range for this package based on the generatorDependency object of the package.json
39
+ * If there are no specified generator dependency, look for the range with the highest minimum or the widest range
40
+ * @param packageName
41
+ * @param packageJsonPath
42
+ * @param isTildeEnforced
43
+ */
44
+ export declare function getVersionToInstallFromPackageJson(packageName: string, packageJsonPath: string, isTildeEnforced?: boolean): string | undefined;
45
+ /**
46
+ * Check if a dependency has already been installed for the requested range
47
+ * @param depName
48
+ * @param packageJson
49
+ * @param root0
50
+ * @param root0.range
51
+ * @param root0.types
52
+ */
53
+ export declare function isDependencyAlreadyInstalled(depName: string, packageJson: PackageJson, { range, types }: Required<DependencyInManifest>): boolean;
11
54
  /**
12
55
  * Method used to build the list of node dependencies to be installed
13
56
  * @param dependenciesVersions map of dependency and its associated required version
@@ -15,4 +58,26 @@ export declare function getExternalDependenciesVersionRange<T extends string>(pa
15
58
  * @returns the list of node dependencies to be installed
16
59
  */
17
60
  export declare function getNodeDependencyList<T extends string>(dependenciesVersions: Record<T, string>, type: NodeDependencyType): NodeDependency[];
61
+ /**
62
+ * Retrieves information about external dependencies (peer and dev) for a given project.
63
+ * @template T - Type of the dependency names.
64
+ * @template U - Type of the dev dependency names.
65
+ * @param params - The parameters object.
66
+ * @param params.dependenciesToInstall - Array of external peer dependency names.
67
+ * @param params.devDependenciesToInstall - Array of external dev dependency names.
68
+ * @param params.o3rPackageJsonPath - The path to the o3r `package.json` file.
69
+ * @param params.projectPackageJson - The path to the package json of the project where the dependencies will be installed.
70
+ * @param params.projectType - The angular type of the project, either 'application' or 'library'.
71
+ * @param params.rootPackageJsonPath - Path to the root of the repository where the dependency will be installed
72
+ * @param logger - The logger instance for logging information.
73
+ * @param isInstallRequired - Whether the package should be installed or not. By default, return true.
74
+ */
75
+ export declare function getExternalDependenciesInfo<T extends string, U extends string>({ dependenciesToInstall, devDependenciesToInstall, o3rPackageJsonPath, projectPackageJson, projectType, rootPackageJsonPath }: {
76
+ dependenciesToInstall: T[];
77
+ devDependenciesToInstall: U[];
78
+ o3rPackageJsonPath: string;
79
+ projectPackageJson: PackageJson;
80
+ projectType?: 'application' | 'library';
81
+ rootPackageJsonPath?: string;
82
+ }, logger?: logging.LoggerApi, isInstallRequired?: (_: string) => undefined | boolean): Record<T | U, DependencyToAdd>;
18
83
  //# sourceMappingURL=dependencies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../src/utility/dependencies.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,kBAAkB,EACnB,MAAM,0CAA0C,CAAC;AAKlD;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAa9J;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,cAAc,EAAE,CAE3I"}
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../src/utility/dependencies.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,kBAAkB,EACnB,MAAM,0CAA0C,CAAC;AASlD,OAAO,KAAK,EACV,WAAW,EACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAKpC;;;;;;;;;;;GAWG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAe9J;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,uBACS,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAY5D;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAcxI;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAM9I;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,EACtF,KAAK,EACL,KAAK,EACN,EAAE,QAAQ,CAAC,oBAAoB,CAAC,WAGhC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,cAAc,EAAE,CAO3I;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAC5E,EACE,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACpB,EAAE;IACD,qBAAqB,EAAE,CAAC,EAAE,CAAC;IAC3B,wBAAwB,EAAE,CAAC,EAAE,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,WAAW,CAAC;IAChC,WAAW,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,EACD,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,EAC1B,iBAAiB,IAAI,GAAG,MAAM,KAAG,SAAS,GAAG,OAAoB,GAChE,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAqEhC"}
@@ -1,10 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enforceTildeRange = void 0;
3
4
  exports.getExternalDependenciesVersionRange = getExternalDependenciesVersionRange;
5
+ exports.isRangeGreater = isRangeGreater;
6
+ exports.getDependencyMaximumVersionRange = getDependencyMaximumVersionRange;
7
+ exports.getVersionToInstallFromPackageJson = getVersionToInstallFromPackageJson;
8
+ exports.isDependencyAlreadyInstalled = isDependencyAlreadyInstalled;
4
9
  exports.getNodeDependencyList = getNodeDependencyList;
10
+ exports.getExternalDependenciesInfo = getExternalDependenciesInfo;
5
11
  const fs = require("node:fs");
12
+ const dependencies_1 = require("@schematics/angular/utility/dependencies");
13
+ const semver_1 = require("semver");
14
+ const error_1 = require("./error");
6
15
  /**
7
16
  * Method to extract the provided package version range from a package.json file
17
+ * Look for the range based on this order of priority:
18
+ * - generatorDependencies
19
+ * - peerDependencies
20
+ * - dependencies
21
+ * - devDependencies
8
22
  * @param packageNames list of package we want to retrieve the version
9
23
  * @param packageJsonPath Path to the package.json to refer to
10
24
  * @param logger logger
@@ -24,6 +38,74 @@ function getExternalDependenciesVersionRange(packageNames, packageJsonPath, logg
24
38
  return acc;
25
39
  }, {});
26
40
  }
41
+ /**
42
+ * Replace the caret ranges by tilde ranges
43
+ * @param range Range to replace
44
+ */
45
+ const enforceTildeRange = (range) => range === 'latest' ? range : range?.replace(/\^/g, '~');
46
+ exports.enforceTildeRange = enforceTildeRange;
47
+ /**
48
+ * Return true if B is a subset of A or if minVersion of A is greater than minVersion of B
49
+ * @param rangeA
50
+ * @param rangeB
51
+ */
52
+ function isRangeGreater(rangeA, rangeB) {
53
+ if (rangeA === 'latest' && rangeB !== 'latest') {
54
+ return true;
55
+ }
56
+ if (rangeB === 'latest') {
57
+ return false;
58
+ }
59
+ const minVersionA = (0, semver_1.minVersion)(rangeA);
60
+ const minVersionB = (0, semver_1.minVersion)(rangeB);
61
+ const isBPreleaseOfVersionA = minVersionB.prerelease?.length > 0
62
+ && (0, semver_1.subset)(`${minVersionB.major}.${minVersionB.minor}.${minVersionB.patch}`, rangeA);
63
+ return (0, semver_1.subset)(rangeB, rangeA) || isBPreleaseOfVersionA || ((0, semver_1.gt)(minVersionA, minVersionB) && !(0, semver_1.subset)(rangeA, rangeB));
64
+ }
65
+ /**
66
+ * Compute the version range for a package based on the less restrictive version declared in the package.json.
67
+ * If the versions declared in the package.json do not intersect, take the highest version.
68
+ * @param packageName
69
+ * @param packageJsonContent
70
+ * @param isTildeEnforced
71
+ */
72
+ function getDependencyMaximumVersionRange(packageName, packageJsonContent, isTildeEnforced) {
73
+ const rangeSortedByHighestMinimum = [
74
+ packageJsonContent.peerDependencies?.[packageName],
75
+ packageJsonContent.dependencies?.[packageName],
76
+ packageJsonContent.devDependencies?.[packageName]
77
+ ]
78
+ .map((packageVersion) => isTildeEnforced && packageVersion ? (0, exports.enforceTildeRange)(packageVersion) : packageVersion)
79
+ .filter((packageVersion) => {
80
+ return (0, semver_1.valid)(packageVersion) !== null || (0, semver_1.validRange)(packageVersion) !== null;
81
+ })
82
+ .sort((rangeA, rangeB) => isRangeGreater(rangeB, rangeA) ? 1 : (isRangeGreater(rangeA, rangeB) ? -1 : 0));
83
+ return rangeSortedByHighestMinimum[0];
84
+ }
85
+ /**
86
+ * Find the range for this package based on the generatorDependency object of the package.json
87
+ * If there are no specified generator dependency, look for the range with the highest minimum or the widest range
88
+ * @param packageName
89
+ * @param packageJsonPath
90
+ * @param isTildeEnforced
91
+ */
92
+ function getVersionToInstallFromPackageJson(packageName, packageJsonPath, isTildeEnforced) {
93
+ const packageJsonContent = (JSON.parse(fs.readFileSync(packageJsonPath, { encoding: 'utf8' })));
94
+ return packageJsonContent.generatorDependencies?.[packageName]
95
+ ?? getDependencyMaximumVersionRange(packageName, packageJsonContent, isTildeEnforced);
96
+ }
97
+ /**
98
+ * Check if a dependency has already been installed for the requested range
99
+ * @param depName
100
+ * @param packageJson
101
+ * @param root0
102
+ * @param root0.range
103
+ * @param root0.types
104
+ */
105
+ function isDependencyAlreadyInstalled(depName, packageJson, { range, types }) {
106
+ const packageJsonDepVersions = types?.map((type) => (packageJson[type] || {})[depName]);
107
+ return packageJsonDepVersions.some((version) => !!version && ((0, semver_1.satisfies)(version, range, { includePrerelease: true }) || (0, semver_1.subset)(version, range, { includePrerelease: true })));
108
+ }
27
109
  /**
28
110
  * Method used to build the list of node dependencies to be installed
29
111
  * @param dependenciesVersions map of dependency and its associated required version
@@ -31,6 +113,91 @@ function getExternalDependenciesVersionRange(packageNames, packageJsonPath, logg
31
113
  * @returns the list of node dependencies to be installed
32
114
  */
33
115
  function getNodeDependencyList(dependenciesVersions, type) {
34
- return Object.entries(dependenciesVersions).map(([name, version]) => ({ name, version, type, overwrite: true }));
116
+ return Object.entries(dependenciesVersions).map(([name, version]) => ({
117
+ name,
118
+ version,
119
+ type,
120
+ overwrite: true
121
+ }));
122
+ }
123
+ /**
124
+ * Retrieves information about external dependencies (peer and dev) for a given project.
125
+ * @template T - Type of the dependency names.
126
+ * @template U - Type of the dev dependency names.
127
+ * @param params - The parameters object.
128
+ * @param params.dependenciesToInstall - Array of external peer dependency names.
129
+ * @param params.devDependenciesToInstall - Array of external dev dependency names.
130
+ * @param params.o3rPackageJsonPath - The path to the o3r `package.json` file.
131
+ * @param params.projectPackageJson - The path to the package json of the project where the dependencies will be installed.
132
+ * @param params.projectType - The angular type of the project, either 'application' or 'library'.
133
+ * @param params.rootPackageJsonPath - Path to the root of the repository where the dependency will be installed
134
+ * @param logger - The logger instance for logging information.
135
+ * @param isInstallRequired - Whether the package should be installed or not. By default, return true.
136
+ */
137
+ function getExternalDependenciesInfo({ dependenciesToInstall, devDependenciesToInstall, o3rPackageJsonPath, projectPackageJson, projectType, rootPackageJsonPath }, logger, isInstallRequired = (_) => undefined) {
138
+ if (!projectPackageJson) {
139
+ throw new error_1.O3rCliError(`Cannot install a dependency as there is no package.json in the project. ${JSON.stringify(dependenciesToInstall)}
140
+ - Cannot install a dependency as there is no package.json in the project. ${JSON.stringify(devDependenciesToInstall)}`);
141
+ }
142
+ const rootPath = rootPackageJsonPath || 'package.json';
143
+ const peerDependenciesInfo = dependenciesToInstall.reduce((acc, name) => {
144
+ const rootVersion = [
145
+ name,
146
+ ...name.startsWith('@angular/') ? ['@angular/core'] : [],
147
+ ...name.startsWith('@angular-devkit/') && name !== '@angular-devkit/architect' ? ['@angular-devkit/core'] : [],
148
+ ...name.startsWith('@ngrx/') ? ['@ngrx/store'] : []
149
+ ]
150
+ .map((packageName) => getVersionToInstallFromPackageJson(packageName, rootPath, false))
151
+ .find((version) => typeof version === 'string');
152
+ let range = rootVersion || getVersionToInstallFromPackageJson(name, o3rPackageJsonPath, true);
153
+ if (typeof range !== 'string') {
154
+ logger?.warn(`Unable to retrieve version for ${name} in ${o3rPackageJsonPath}. Version set to "latest".`);
155
+ range = 'latest';
156
+ }
157
+ const inManifest = {
158
+ range,
159
+ types: projectType === 'application' ? [dependencies_1.NodeDependencyType.Default] : [dependencies_1.NodeDependencyType.Peer, dependencies_1.NodeDependencyType.Dev]
160
+ };
161
+ if (isDependencyAlreadyInstalled(name, projectPackageJson, inManifest)) {
162
+ return acc;
163
+ }
164
+ acc[name] = {
165
+ // Tilde is handled in the range returned by getDependencyMaximumVersionRange
166
+ enforceTildeRange: false,
167
+ inManifest: [inManifest],
168
+ requireInstall: isInstallRequired(name)
169
+ };
170
+ return acc;
171
+ }, {});
172
+ const devDependenciesInfo = devDependenciesToInstall.reduce((acc, name) => {
173
+ const rootVersion = [
174
+ name,
175
+ ...name.startsWith('@angular/') ? ['@angular/core'] : [],
176
+ ...name.startsWith('@angular-devkit/') && name !== '@angular-devkit/architect' ? ['@angular-devkit/core'] : [],
177
+ ...name.startsWith('@ngrx/') ? ['@ngrx/store'] : []
178
+ ]
179
+ .map((packageName) => getVersionToInstallFromPackageJson(packageName, rootPath, false))
180
+ .find((version) => typeof version === 'string');
181
+ let range = rootVersion || getVersionToInstallFromPackageJson(name, o3rPackageJsonPath, true);
182
+ if (typeof range !== 'string') {
183
+ logger?.warn(`Unable to retrieve version for ${name} in ${o3rPackageJsonPath}. Version set to "latest".`);
184
+ range = 'latest';
185
+ }
186
+ const inManifest = {
187
+ range,
188
+ types: [dependencies_1.NodeDependencyType.Dev]
189
+ };
190
+ if (isDependencyAlreadyInstalled(name, projectPackageJson, inManifest)) {
191
+ return acc;
192
+ }
193
+ acc[name] = {
194
+ // Tilde is handled in the range returned by getDependencyMaximumVersionRange
195
+ enforceTildeRange: false,
196
+ inManifest: [inManifest],
197
+ requireInstall: isInstallRequired(name)
198
+ };
199
+ return acc;
200
+ }, {});
201
+ return { ...peerDependenciesInfo, ...devDependenciesInfo };
35
202
  }
36
203
  //# sourceMappingURL=dependencies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../src/utility/dependencies.ts"],"names":[],"mappings":";;AAmBA,kFAaC;AAQD,sDAEC;AA1CD,8BAA8B;AAY9B;;;;;;GAMG;AACH,SAAgB,mCAAmC,CAAmB,YAAiB,EAAE,eAAuB,EAAE,MAAyB;IACzI,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAoE,CAAC;IACjK,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,GAA+B,EAAE,WAAW,EAAE,EAAE;QAC1E,GAAG,CAAC,WAAW,CAAC,GAAG,kBAAkB,CAAC,qBAAqB,EAAE,CAAC,WAAW,CAAC;eACrE,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,WAAW,CAAC;eAClD,kBAAkB,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC;eAC9C,kBAAkB,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,kCAAkC,WAAW,OAAO,eAAe,4BAA4B,CAAC,CAAC;YAC7G,GAAG,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;QAC9B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAsB,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAmB,oBAAuC,EAAE,IAAwB;IACvH,OAAO,MAAM,CAAC,OAAO,CAAS,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3H,CAAC"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../src/utility/dependencies.ts"],"names":[],"mappings":"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"}