@ms-cloudpack/package-utilities 0.4.1 → 0.6.0
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/CHANGELOG.json +88 -1
- package/CHANGELOG.md +28 -2
- package/lib/createImportMap.d.ts +2 -2
- package/lib/createImportMap.js +8 -4
- package/lib/createImportMap.js.map +1 -1
- package/lib/createImportMap.test.js +1 -1
- package/lib/createImportMap.test.js.map +1 -1
- package/lib/createResolveMap.d.ts +3 -4
- package/lib/createResolveMap.js +53 -30
- package/lib/createResolveMap.js.map +1 -1
- package/lib/createResolveMap.test.js +236 -9
- package/lib/createResolveMap.test.js.map +1 -1
- package/lib/detectModuleType.js +8 -1
- package/lib/detectModuleType.js.map +1 -1
- package/lib/detectModuleType.test.js +7 -1
- package/lib/detectModuleType.test.js.map +1 -1
- package/lib/evaluateImportsFromEntries.js +2 -2
- package/lib/evaluateImportsFromEntries.js.map +1 -1
- package/lib/findPackagePath.d.ts +1 -1
- package/lib/findPackagePath.js +13 -5
- package/lib/findPackagePath.js.map +1 -1
- package/lib/getExportPathFromEntry.d.ts +2 -2
- package/lib/getExportPathFromEntry.js +15 -9
- package/lib/getExportPathFromEntry.js.map +1 -1
- package/lib/getExportPathFromEntry.test.js +8 -6
- package/lib/getExportPathFromEntry.test.js.map +1 -1
- package/lib/getInstalledPackages.d.ts +2 -2
- package/lib/getInstalledPackages.js +4 -4
- package/lib/getInstalledPackages.js.map +1 -1
- package/lib/getPackageDefinition.d.ts +3 -19
- package/lib/getPackageDefinition.js +5 -4
- package/lib/getPackageDefinition.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js.map +1 -1
- package/lib/resolveImportFromPackage.test.js +18 -24
- package/lib/resolveImportFromPackage.test.js.map +1 -1
- package/lib/resolveImportFromPackagePath.d.ts +3 -3
- package/lib/resolveImportFromPackagePath.js +28 -34
- package/lib/resolveImportFromPackagePath.js.map +1 -1
- package/lib/resolvePackageEntries.d.ts +2 -2
- package/lib/resolvePackageEntries.js +2 -2
- package/lib/resolvePackageEntries.js.map +1 -1
- package/lib/testPaths.d.ts +7 -0
- package/lib/testPaths.js +7 -0
- package/lib/testPaths.js.map +1 -1
- package/lib/tsdoc-metadata.json +11 -0
- package/package.json +5 -3
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,94 @@
|
|
|
2
2
|
"name": "@ms-cloudpack/package-utilities",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Fri, 05 Aug 2022 08:12:06 GMT",
|
|
6
|
+
"tag": "@ms-cloudpack/package-utilities_v0.6.0",
|
|
7
|
+
"version": "0.6.0",
|
|
8
|
+
"comments": {
|
|
9
|
+
"minor": [
|
|
10
|
+
{
|
|
11
|
+
"author": "dzearing@microsoft.com",
|
|
12
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
13
|
+
"commit": "8aaedf79e1b7b0b33f19ab560f233bc9bd27b5e5",
|
|
14
|
+
"comment": "Tweaking a variety of API surface to prep for ori integration. Lots of improvements to how we resolve modules, lots of tests added."
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"date": "Tue, 02 Aug 2022 20:04:16 GMT",
|
|
21
|
+
"tag": "@ms-cloudpack/package-utilities_v0.5.1",
|
|
22
|
+
"version": "0.5.1",
|
|
23
|
+
"comments": {
|
|
24
|
+
"patch": [
|
|
25
|
+
{
|
|
26
|
+
"author": "renovate@whitesourcesoftware.com",
|
|
27
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
28
|
+
"commit": "2067bfc6ac5b5c388490e9cf83f272035602d9d0",
|
|
29
|
+
"comment": "Update babel monorepo to v7.18.10"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"date": "Wed, 29 Jun 2022 02:39:15 GMT",
|
|
36
|
+
"tag": "@ms-cloudpack/package-utilities_v0.5.0",
|
|
37
|
+
"version": "0.5.0",
|
|
38
|
+
"comments": {
|
|
39
|
+
"none": [
|
|
40
|
+
{
|
|
41
|
+
"author": "renovate@whitesourcesoftware.com",
|
|
42
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
43
|
+
"commit": "1c1e55233833b23205c5ddcd7c65694f9ec54707",
|
|
44
|
+
"comment": "Update babel monorepo"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"date": "Wed, 08 Jun 2022 20:07:00 GMT",
|
|
51
|
+
"tag": "@ms-cloudpack/package-utilities_v0.5.0",
|
|
52
|
+
"version": "0.5.0",
|
|
53
|
+
"comments": {
|
|
54
|
+
"minor": [
|
|
55
|
+
{
|
|
56
|
+
"author": "dzearing@microsoft.com",
|
|
57
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
58
|
+
"commit": "0e78dd2f1cf4d366f04d52d54996418c4febcfb6",
|
|
59
|
+
"comment": "Moving to type-fest for package.json typings. Updated a number of APIs to reflect changes."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"author": "beachball",
|
|
63
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
64
|
+
"comment": "Bump @ms-cloudpack/package-overrides to v0.0.2",
|
|
65
|
+
"commit": "0e78dd2f1cf4d366f04d52d54996418c4febcfb6"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"author": "beachball",
|
|
69
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
70
|
+
"comment": "Bump @ms-cloudpack/path-utilities to v0.3.1",
|
|
71
|
+
"commit": "0e78dd2f1cf4d366f04d52d54996418c4febcfb6"
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"date": "Fri, 03 Jun 2022 21:51:54 GMT",
|
|
78
|
+
"tag": "@ms-cloudpack/package-utilities_v0.4.1",
|
|
79
|
+
"version": "0.4.1",
|
|
80
|
+
"comments": {
|
|
81
|
+
"none": [
|
|
82
|
+
{
|
|
83
|
+
"author": "bot@renovateapp.com",
|
|
84
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
85
|
+
"commit": "11b9afd08b8b36df3f88d56d2469186e2ede9796",
|
|
86
|
+
"comment": "Update dev dependency @babel/types to v7.18.4"
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"date": "Thu, 26 May 2022 02:50:21 GMT",
|
|
6
93
|
"tag": "@ms-cloudpack/package-utilities_v0.4.1",
|
|
7
94
|
"version": "0.4.1",
|
|
8
95
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,38 @@
|
|
|
1
1
|
# Change Log - @ms-cloudpack/package-utilities
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Fri, 05 Aug 2022 08:12:06 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 0.6.0
|
|
8
|
+
|
|
9
|
+
Fri, 05 Aug 2022 08:12:06 GMT
|
|
10
|
+
|
|
11
|
+
### Minor changes
|
|
12
|
+
|
|
13
|
+
- Tweaking a variety of API surface to prep for ori integration. Lots of improvements to how we resolve modules, lots of tests added. (dzearing@microsoft.com)
|
|
14
|
+
|
|
15
|
+
## 0.5.1
|
|
16
|
+
|
|
17
|
+
Tue, 02 Aug 2022 20:04:16 GMT
|
|
18
|
+
|
|
19
|
+
### Patches
|
|
20
|
+
|
|
21
|
+
- Update babel monorepo to v7.18.10 (renovate@whitesourcesoftware.com)
|
|
22
|
+
|
|
23
|
+
## 0.5.0
|
|
24
|
+
|
|
25
|
+
Wed, 08 Jun 2022 20:07:00 GMT
|
|
26
|
+
|
|
27
|
+
### Minor changes
|
|
28
|
+
|
|
29
|
+
- Moving to type-fest for package.json typings. Updated a number of APIs to reflect changes. (dzearing@microsoft.com)
|
|
30
|
+
- Bump @ms-cloudpack/package-overrides to v0.0.2
|
|
31
|
+
- Bump @ms-cloudpack/path-utilities to v0.3.1
|
|
32
|
+
|
|
7
33
|
## 0.4.1
|
|
8
34
|
|
|
9
|
-
Thu, 26 May 2022 02:50:
|
|
35
|
+
Thu, 26 May 2022 02:50:21 GMT
|
|
10
36
|
|
|
11
37
|
### Patches
|
|
12
38
|
|
package/lib/createImportMap.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ResolveMap } from './createResolveMap.js';
|
|
2
|
-
import {
|
|
2
|
+
import type { PackageJson } from 'type-fest';
|
|
3
3
|
export interface ImportMap {
|
|
4
4
|
imports: Record<string, string>;
|
|
5
5
|
scopes?: Record<string, Record<string, string>>;
|
|
6
6
|
}
|
|
7
|
-
export declare function createImportMap(resolveMap: ResolveMap, bundleServerUrl: string, packageDefinitions?: Record<string,
|
|
7
|
+
export declare function createImportMap(resolveMap: ResolveMap, bundleServerUrl: string, packageDefinitions?: Record<string, PackageJson>): Promise<ImportMap>;
|
package/lib/createImportMap.js
CHANGED
|
@@ -13,9 +13,12 @@ export async function createImportMap(resolveMap, bundleServerUrl, packageDefini
|
|
|
13
13
|
// Initialize scopes
|
|
14
14
|
importMap.scopes ?? (importMap.scopes = {});
|
|
15
15
|
for (const scopedEntry of Object.values(resolveEntry.scopedVersions)) {
|
|
16
|
-
for (const requiredById of scopedEntry.requiredBy) {
|
|
16
|
+
for (const requiredById of Object.keys(scopedEntry.requiredBy)) {
|
|
17
17
|
const requiredByUrl = `${bundleServerUrl}/${requiredById}/`;
|
|
18
|
-
importMap.scopes[requiredByUrl] =
|
|
18
|
+
importMap.scopes[requiredByUrl] = {
|
|
19
|
+
...importMap.scopes[requiredByUrl],
|
|
20
|
+
...(await getImportMapFromEntry(scopedEntry, bundleServerUrl, packageDefinitions)),
|
|
21
|
+
};
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
24
|
}
|
|
@@ -26,10 +29,11 @@ async function getImportMapFromEntry(entry, bundleServerUrl, packageDefinitions)
|
|
|
26
29
|
const importMap = {};
|
|
27
30
|
const definition = packageDefinitions?.[entry.path] || (await getPackageDefinition(entry.path, true));
|
|
28
31
|
if (definition) {
|
|
32
|
+
const { name = '' } = definition;
|
|
29
33
|
const baseUrl = `${bundleServerUrl}/${definition.name}@${definition.version}/`;
|
|
30
34
|
if (definition.exports) {
|
|
31
35
|
for (const [exportKey, exportEntry] of Object.entries(definition.exports)) {
|
|
32
|
-
const importAlias = slash(path.join(
|
|
36
|
+
const importAlias = slash(path.join(name, exportKey));
|
|
33
37
|
if (!importMap[importAlias]) {
|
|
34
38
|
const exportPath = getExportPathFromEntry(exportEntry);
|
|
35
39
|
if (exportPath) {
|
|
@@ -39,7 +43,7 @@ async function getImportMapFromEntry(entry, bundleServerUrl, packageDefinitions)
|
|
|
39
43
|
}
|
|
40
44
|
}
|
|
41
45
|
else {
|
|
42
|
-
importMap[
|
|
46
|
+
importMap[name] = new URL(definition.module || definition.main || 'index.js', baseUrl).href;
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
return importMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createImportMap.js","sourceRoot":"","sources":["../src/createImportMap.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAErD,OAAO,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"createImportMap.js","sourceRoot":"","sources":["../src/createImportMap.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAQ9B,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAsB,EACtB,eAAuB,EACvB,kBAAgD;IAEhD,MAAM,SAAS,GAAc;QAC3B,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QACpD,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,qBAAqB,CAAC,YAAY,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAEzG,IAAI,YAAY,CAAC,cAAc,EAAE;YAC/B,oBAAoB;YACpB,SAAS,CAAC,MAAM,KAAhB,SAAS,CAAC,MAAM,GAAK,EAAE,EAAC;YAExB,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;gBACpE,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;oBAC9D,MAAM,aAAa,GAAG,GAAG,eAAe,IAAI,YAAY,GAAG,CAAC;oBAE5D,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG;wBAChC,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;wBAClC,GAAG,CAAC,MAAM,qBAAqB,CAAC,WAAW,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;qBACnF,CAAC;iBACH;aACF;SACF;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,KAAsB,EACtB,eAAuB,EACvB,kBAAgD;IAEhD,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEtG,IAAI,UAAU,EAAE;QACd,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,UAAU,CAAC;QACjC,MAAM,OAAO,GAAG,GAAG,eAAe,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,GAAG,CAAC;QAE/E,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBACzE,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAEtD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;oBAC3B,MAAM,UAAU,GAAuB,sBAAsB,CAAC,WAAW,CAAC,CAAC;oBAE3E,IAAI,UAAU,EAAE;wBACd,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;qBAC5D;iBACF;aACF;SACF;aAAM;YACL,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;SAC7F;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createImportMap } from './createImportMap.js';
|
|
2
2
|
const bundleServerUrl = 'http://localhost:12345';
|
|
3
|
-
const basicResolveMapEntry = { name: 'a', version: '1.0.0', path: 'path/a', requiredBy:
|
|
3
|
+
const basicResolveMapEntry = { name: 'a', version: '1.0.0', path: 'path/a', requiredBy: {} };
|
|
4
4
|
describe('createImportMap', () => {
|
|
5
5
|
it('can translate a package with no entries', async () => {
|
|
6
6
|
const resolveMap = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createImportMap.test.js","sourceRoot":"","sources":["../src/createImportMap.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,MAAM,eAAe,GAAG,wBAAwB,CAAC;AACjD,MAAM,oBAAoB,GAAoB,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAE9G,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,UAAU,GAAe;YAC7B,CAAC,EAAE,oBAAoB;SACxB,CAAC;QACF,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"createImportMap.test.js","sourceRoot":"","sources":["../src/createImportMap.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,16 +3,15 @@ export declare type ResolveMapEntry = {
|
|
|
3
3
|
name: string;
|
|
4
4
|
version: string;
|
|
5
5
|
path: string;
|
|
6
|
-
requiredBy: string
|
|
6
|
+
requiredBy: Record<string, string>;
|
|
7
7
|
scopedVersions?: {
|
|
8
8
|
[version: string]: ResolveMapEntry;
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
|
-
export declare type PartialResolveMapEntry = Omit<ResolveMapEntry, 'requiredBy'> & {
|
|
12
|
-
requiredBy: Set<string>;
|
|
13
|
-
};
|
|
14
11
|
export declare type ResolveMap = Record<string, ResolveMapEntry>;
|
|
15
12
|
export declare function createResolveMap(options: {
|
|
16
13
|
appPath: string;
|
|
17
14
|
additionalPaths?: string[];
|
|
15
|
+
gitRootPath?: string;
|
|
16
|
+
strictVersioning?: boolean;
|
|
18
17
|
}): Promise<ResolveMap>;
|
package/lib/createResolveMap.js
CHANGED
|
@@ -1,29 +1,46 @@
|
|
|
1
1
|
import { getPackageDefinition } from './getPackageDefinition.js';
|
|
2
2
|
import { findPackagePath } from './findPackagePath.js';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
const { realpath } = fs.promises;
|
|
3
5
|
export async function createResolveMap(options) {
|
|
4
6
|
var _a, _b, _c, _d;
|
|
5
|
-
const { appPath, additionalPaths = [] } = options;
|
|
7
|
+
const { appPath, additionalPaths = [], gitRootPath, strictVersioning } = options;
|
|
6
8
|
const visitedPaths = new Set([appPath, ...additionalPaths]);
|
|
7
|
-
const pathsToVisit = [appPath, ...additionalPaths];
|
|
8
9
|
const allEntries = {};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
const appDefinition = await getPackageDefinition(appPath, true);
|
|
11
|
+
const appId = `${appDefinition?.name}@${appDefinition?.version}`;
|
|
12
|
+
if (!appDefinition) {
|
|
13
|
+
throw new Error(`Could not find package.json for ${appPath}`);
|
|
14
|
+
}
|
|
15
|
+
for (const rootPath of [appPath, ...additionalPaths]) {
|
|
16
|
+
const pathsToVisit = [rootPath];
|
|
17
|
+
while (pathsToVisit.length) {
|
|
18
|
+
let packagePath = pathsToVisit.shift();
|
|
19
|
+
if (packagePath) {
|
|
20
|
+
packagePath = await realpath(packagePath);
|
|
21
|
+
const definition = await getPackageDefinition(packagePath, true);
|
|
22
|
+
if (definition && definition.name && definition.version) {
|
|
23
|
+
const packageId = `${definition.name}@${definition.version}`;
|
|
24
|
+
const namedEntries = (allEntries[_a = definition.name] ?? (allEntries[_a] = {}));
|
|
25
|
+
namedEntries[_b = definition.version] ?? (namedEntries[_b] = createMapEntry(definition, packagePath));
|
|
26
|
+
const packageDependencies = [
|
|
27
|
+
...Object.keys(definition?.dependencies || {}),
|
|
28
|
+
...Object.keys(definition?.peerDependencies || {}),
|
|
29
|
+
];
|
|
30
|
+
for (const depName of packageDependencies) {
|
|
31
|
+
const requiredVersion = definition?.dependencies?.[depName] || definition?.peerDependencies?.[depName];
|
|
32
|
+
const dependencyPath = await findPackagePath(depName, strictVersioning ? requiredVersion : undefined, packagePath, gitRootPath, !!definition?.peerDependencies?.[depName]);
|
|
33
|
+
if (dependencyPath) {
|
|
34
|
+
const dependencyDefinition = await getPackageDefinition(dependencyPath, true);
|
|
35
|
+
if (dependencyDefinition?.name && dependencyDefinition.version) {
|
|
36
|
+
const dependencyNamedEntries = (allEntries[_c = dependencyDefinition.name] ?? (allEntries[_c] = {}));
|
|
37
|
+
const dependencyEntry = (dependencyNamedEntries[_d = dependencyDefinition.version] ?? (dependencyNamedEntries[_d] = createMapEntry(dependencyDefinition, dependencyPath)));
|
|
38
|
+
dependencyEntry.requiredBy[packageId] = requiredVersion;
|
|
39
|
+
if (!visitedPaths.has(dependencyPath)) {
|
|
40
|
+
visitedPaths.add(dependencyPath);
|
|
41
|
+
pathsToVisit.push(dependencyPath);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
27
44
|
}
|
|
28
45
|
}
|
|
29
46
|
}
|
|
@@ -35,29 +52,35 @@ export async function createResolveMap(options) {
|
|
|
35
52
|
const resolveMap = {};
|
|
36
53
|
for (const [name, versions] of Object.entries(allEntries)) {
|
|
37
54
|
const [dominantVersion, ...otherVersions] = Object.keys(versions).sort((a, b) => {
|
|
38
|
-
|
|
55
|
+
if (versions[a].requiredBy[appId]) {
|
|
56
|
+
return -1;
|
|
57
|
+
}
|
|
58
|
+
if (versions[b].requiredBy[appId]) {
|
|
59
|
+
return 1;
|
|
60
|
+
}
|
|
61
|
+
// If both are transient to the app, sort by the number of dependencies.
|
|
62
|
+
const aDependentCount = Object.keys(versions[a].requiredBy).length;
|
|
63
|
+
const bDependentCount = Object.keys(versions[b].requiredBy).length;
|
|
64
|
+
return aDependentCount > bDependentCount ? -1 : 1;
|
|
39
65
|
});
|
|
40
66
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
67
|
const entry = (resolveMap[name] = allEntries[name][dominantVersion]);
|
|
42
|
-
entry.requiredBy = Array.from(entry.requiredBy);
|
|
43
68
|
if (otherVersions?.length) {
|
|
44
|
-
entry.scopedVersions = {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
scopedEntry.requiredBy = Array.from(scopedEntry.requiredBy);
|
|
49
|
-
}
|
|
69
|
+
entry.scopedVersions = otherVersions.reduce((scopedVersions, version) => {
|
|
70
|
+
scopedVersions[version] = allEntries[name][version];
|
|
71
|
+
return scopedVersions;
|
|
72
|
+
}, {});
|
|
50
73
|
}
|
|
51
74
|
}
|
|
52
75
|
return resolveMap;
|
|
53
76
|
}
|
|
54
77
|
function createMapEntry(packageDefinition, packagePath) {
|
|
55
|
-
const { name, version } = packageDefinition;
|
|
78
|
+
const { name = '', version = '' } = packageDefinition;
|
|
56
79
|
return {
|
|
57
80
|
name,
|
|
58
81
|
version,
|
|
59
82
|
path: packagePath,
|
|
60
|
-
requiredBy:
|
|
83
|
+
requiredBy: {},
|
|
61
84
|
};
|
|
62
85
|
}
|
|
63
86
|
//# sourceMappingURL=createResolveMap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createResolveMap.js","sourceRoot":"","sources":["../src/createResolveMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"createResolveMap.js","sourceRoot":"","sources":["../src/createResolveMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;AAgBjC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAKtC;;IACC,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IACjF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC;IACpE,MAAM,UAAU,GAAoD,EAAE,CAAC;IACvE,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,GAAG,aAAa,EAAE,IAAI,IAAI,aAAa,EAAE,OAAO,EAAE,CAAC;IAEjE,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;KAC/D;IAED,KAAK,MAAM,QAAQ,IAAI,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,EAAE;QACpD,MAAM,YAAY,GAAa,CAAC,QAAQ,CAAC,CAAC;QAE1C,OAAO,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;YAEvC,IAAI,WAAW,EAAE;gBACf,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAE1C,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAEjE,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,EAAE;oBACvD,MAAM,SAAS,GAAuB,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBAEjF,MAAM,YAAY,GAAG,CAAC,UAAU,MAAC,UAAU,CAAC,IAAI,MAA1B,UAAU,OAAsB,EAAE,EAAC,CAAC;oBAE1D,YAAY,MAAC,UAAU,CAAC,OAAO,MAA/B,YAAY,OAAyB,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,EAAC;oBAE7E,MAAM,mBAAmB,GAAG;wBAC1B,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,IAAI,EAAE,CAAC;wBAC9C,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,IAAI,EAAE,CAAC;qBACnD,CAAC;oBACF,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE;wBACzC,MAAM,eAAe,GACnB,UAAU,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,IAAK,UAAU,EAAE,gBAAgB,EAAE,CAAC,OAAO,CAAY,CAAC;wBAC7F,MAAM,cAAc,GAAG,MAAM,eAAe,CAC1C,OAAO,EACP,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,EAC9C,WAAW,EACX,WAAW,EACX,CAAC,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAC1C,CAAC;wBAEF,IAAI,cAAc,EAAE;4BAClB,MAAM,oBAAoB,GAAG,MAAM,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;4BAE9E,IAAI,oBAAoB,EAAE,IAAI,IAAI,oBAAoB,CAAC,OAAO,EAAE;gCAC9D,MAAM,sBAAsB,GAAG,CAAC,UAAU,MAAC,oBAAoB,CAAC,IAAI,MAApC,UAAU,OAAgC,EAAE,EAAC,CAAC;gCAC9E,MAAM,eAAe,GAAG,CAAC,sBAAsB,MAAC,oBAAoB,CAAC,OAAO,MAAnD,sBAAsB,OAAmC,cAAc,CAC9F,oBAAoB,EACpB,cAAc,CACf,EAAC,CAAC;gCAEH,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC;gCAExD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;oCACrC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oCACjC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iCACnC;6BACF;yBACF;qBACF;iBACF;aACF;SACF;KACF;IAED,wFAAwF;IACxF,yBAAyB;IACzB,MAAM,UAAU,GAAe,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QACzD,MAAM,CAAC,eAAe,EAAE,GAAG,aAAa,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9E,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACjC,OAAO,CAAC,CAAC,CAAC;aACX;YAED,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACjC,OAAO,CAAC,CAAC;aACV;YAED,wEAAwE;YACxE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACnE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YAEnE,OAAO,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,CAA2B,CAAC,CAAC;QAE/F,IAAI,aAAa,EAAE,MAAM,EAAE;YACzB,KAAK,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE;gBACtE,cAAc,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpD,OAAO,cAAc,CAAC;YACxB,CAAC,EAAE,EAAqC,CAAC,CAAC;SAC3C;KACF;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,iBAA8B,EAAE,WAAmB;IACzE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,iBAAiB,CAAC;IAEtD,OAAO;QACL,IAAI;QACJ,OAAO;QACP,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,EAAE;KACf,CAAC;AACJ,CAAC"}
|