@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 +6 -7
- package/schematics/ng-add/index.d.ts.map +1 -1
- package/schematics/ng-add/index.js +27 -22
- package/schematics/ng-add/index.js.map +1 -1
- package/src/interfaces/dependencies.d.ts +41 -0
- package/src/interfaces/dependencies.d.ts.map +1 -0
- package/src/interfaces/dependencies.js +3 -0
- package/src/interfaces/dependencies.js.map +1 -0
- package/src/interfaces/index.d.ts +1 -0
- package/src/interfaces/index.d.ts.map +1 -1
- package/src/interfaces/index.js +1 -0
- package/src/interfaces/index.js.map +1 -1
- package/src/rule-factories/ng-add/dependencies.d.ts +6 -46
- package/src/rule-factories/ng-add/dependencies.d.ts.map +1 -1
- package/src/rule-factories/ng-add/dependencies.js +3 -10
- package/src/rule-factories/ng-add/dependencies.js.map +1 -1
- package/src/utility/dependencies.d.ts +65 -0
- package/src/utility/dependencies.d.ts.map +1 -1
- package/src/utility/dependencies.js +168 -1
- package/src/utility/dependencies.js.map +1 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@o3r/schematics",
|
3
|
-
"version": "12.1.
|
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.
|
34
|
-
"@o3r/telemetry": "^12.1.
|
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.
|
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.
|
100
|
-
"@o3r/
|
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;
|
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
|
-
|
13
|
-
return (_, context) => {
|
26
|
+
return (tree, context) => {
|
14
27
|
const packageJsonPath = path.resolve(__dirname, '..', '..', 'package.json');
|
15
|
-
const
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
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;
|
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 @@
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../src/interfaces/dependencies.ts"],"names":[],"mappings":""}
|
@@ -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"}
|
package/src/interfaces/index.js
CHANGED
@@ -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 {
|
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
|
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;
|
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.
|
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,
|
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":";;;AAAA,qCAEiB;AACjB,kCAAkC;AAClC,2DAOoC;AACpC,4DAG0C;AAC1C,2EAEkD;AAClD,iCAAiC;
|
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;
|
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]) => ({
|
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":"
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../src/utility/dependencies.ts"],"names":[],"mappings":"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"}
|