@ms-cloudpack/package-utilities 0.6.1 → 0.8.1

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.
Files changed (46) hide show
  1. package/CHANGELOG.json +67 -1
  2. package/CHANGELOG.md +27 -2
  3. package/lib/cleanEntry.d.ts +1 -0
  4. package/lib/cleanEntry.js +11 -0
  5. package/lib/cleanEntry.js.map +1 -0
  6. package/lib/createImportMap.js +19 -22
  7. package/lib/createImportMap.js.map +1 -1
  8. package/lib/createImportMap.test.js +25 -17
  9. package/lib/createImportMap.test.js.map +1 -1
  10. package/lib/createResolveMap.test.js +34 -33
  11. package/lib/createResolveMap.test.js.map +1 -1
  12. package/lib/detectModuleType.test.js +1 -0
  13. package/lib/detectModuleType.test.js.map +1 -1
  14. package/lib/evaluateImportsFromEntries.js +0 -1
  15. package/lib/evaluateImportsFromEntries.js.map +1 -1
  16. package/lib/evaluateImportsFromEntries.test.js +12 -11
  17. package/lib/evaluateImportsFromEntries.test.js.map +1 -1
  18. package/lib/getExportPathFromEntry.test.js +1 -0
  19. package/lib/getExportPathFromEntry.test.js.map +1 -1
  20. package/lib/getExportsMap.d.ts +5 -0
  21. package/lib/getExportsMap.js +75 -0
  22. package/lib/getExportsMap.js.map +1 -0
  23. package/lib/{getInstalledPackages.test.d.ts → getExportsMap.test.d.ts} +0 -0
  24. package/lib/getExportsMap.test.js +260 -0
  25. package/lib/getExportsMap.test.js.map +1 -0
  26. package/lib/index.d.ts +2 -2
  27. package/lib/index.js.map +1 -1
  28. package/lib/isExternalPackage.test.js +1 -0
  29. package/lib/isExternalPackage.test.js.map +1 -1
  30. package/lib/parseImportString.test.js +1 -0
  31. package/lib/parseImportString.test.js.map +1 -1
  32. package/lib/resolve.test.js +1 -0
  33. package/lib/resolve.test.js.map +1 -1
  34. package/lib/resolveImportFromPackage.test.js +1 -0
  35. package/lib/resolveImportFromPackage.test.js.map +1 -1
  36. package/lib/resolvePackageEntries.js +4 -3
  37. package/lib/resolvePackageEntries.js.map +1 -1
  38. package/lib/resolvePackageEntries.test.js +6 -0
  39. package/lib/resolvePackageEntries.test.js.map +1 -1
  40. package/lib/tsdoc-metadata.json +1 -1
  41. package/package.json +4 -4
  42. package/lib/getInstalledPackages.d.ts +0 -44
  43. package/lib/getInstalledPackages.js +0 -85
  44. package/lib/getInstalledPackages.js.map +0 -1
  45. package/lib/getInstalledPackages.test.js +0 -14
  46. package/lib/getInstalledPackages.test.js.map +0 -1
@@ -1,85 +0,0 @@
1
- import { getPackageDefinition } from './getPackageDefinition.js';
2
- import { resolve } from './resolve.js';
3
- /**
4
- * Traverses a package folder and uses standard node package resolution to resolve the on-disk location
5
- * of all dependencies. The map returned follows this format:
6
- *
7
- * {
8
- * [packageName]: {
9
- * [packageVersion]: {
10
- * path: '/path/to/package',
11
- * requiredBy: [
12
- * { name, version, path, requiredVersion },
13
- * ...
14
- * ],
15
- * // If the same package version is installed in multiple locations, we track this.
16
- * duplicates: [
17
- * { ... }
18
- * ]
19
- * }
20
- * }
21
- * }
22
- *
23
- */
24
- export async function getInstalledPackages(appPaths, installedPackages = {}, ancestors = [], visited = {}) {
25
- let stats = undefined;
26
- appPaths = Array.isArray(appPaths) ? appPaths : [appPaths];
27
- for (const appPath of appPaths) {
28
- const definition = await getPackageDefinition(appPath, true);
29
- if (definition?.dependencies && definition.name && definition.version) {
30
- for (const [dependencyName, requiredVersion] of Object.entries(definition.dependencies)) {
31
- // Grab the path to the dependency.
32
- const dependencyPath = await resolve(dependencyName, appPath);
33
- if (dependencyPath) {
34
- // It's installed. What version is this?
35
- const dependencyDefinition = visited[dependencyPath] || (await getPackageDefinition(dependencyPath));
36
- if (!dependencyDefinition) {
37
- throw new Error(`Unable to resolve dependency at path "${dependencyPath}"`);
38
- }
39
- const { version: dependencyVersion = '' } = dependencyDefinition;
40
- // Ensure that the entry in the results is initialized.
41
- installedPackages[dependencyName] = installedPackages[dependencyName] || {};
42
- installedPackages[dependencyName][dependencyVersion] = installedPackages[dependencyName][dependencyVersion] || {
43
- path: dependencyPath,
44
- requiredBy: [],
45
- };
46
- // Add this package to the requiredBy list.
47
- installedPackages[dependencyName][dependencyVersion].requiredBy.push({
48
- name: definition.name,
49
- version: definition.version,
50
- requiredVersion,
51
- path: ancestors,
52
- });
53
- // If we haven't yet visited this dependency, track the definition and traverse its dependencies.
54
- if (!visited[dependencyPath]) {
55
- visited[dependencyPath] = dependencyDefinition;
56
- await getInstalledPackages(dependencyPath, installedPackages, [
57
- ...ancestors,
58
- {
59
- name: dependencyName,
60
- version: dependencyVersion,
61
- },
62
- ], visited);
63
- }
64
- }
65
- else {
66
- // It's required, but not installed.
67
- console.log(`The package "${dependencyName}@${requiredVersion}" was required but not installed.`, ancestors);
68
- }
69
- }
70
- }
71
- if (ancestors.length === 0) {
72
- const packageNames = Object.keys(installedPackages);
73
- stats = {
74
- totalPackageNames: packageNames.length,
75
- totalInstalled: packageNames.reduce((val, name) => val + Object.keys(installedPackages[name]).length, 0),
76
- packagesWithDuplicates: packageNames.reduce((val, name) => val + (Object.keys(installedPackages[name]).length > 1 ? 1 : 0), 0),
77
- };
78
- }
79
- }
80
- return {
81
- installedPackages,
82
- stats,
83
- };
84
- }
85
- //# sourceMappingURL=getInstalledPackages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInstalledPackages.js","sourceRoot":"","sources":["../src/getInstalledPackages.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import path from 'path';
2
- import { slash } from '@ms-cloudpack/path-utilities';
3
- import { getInstalledPackages } from './getInstalledPackages.js';
4
- import { filterJson } from './filterJson.js';
5
- import { testProject1Path } from '../src/testPaths.js';
6
- async function getInstalledPackagesSafe(installPath) {
7
- return filterJson(await getInstalledPackages(installPath), 'path', (oldPath) => slash(path.relative(installPath, oldPath)));
8
- }
9
- describe('getInstalledPackages', () => {
10
- it('can get installed packages', async () => {
11
- expect(await getInstalledPackagesSafe(testProject1Path)).toMatchSnapshot();
12
- });
13
- });
14
- //# sourceMappingURL=getInstalledPackages.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInstalledPackages.test.js","sourceRoot":"","sources":["../src/getInstalledPackages.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,KAAK,UAAU,wBAAwB,CAAC,WAAmB;IACzD,OAAO,UAAU,CAAC,MAAM,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAC7E,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,CAAC,MAAM,wBAAwB,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}