@ms-cloudpack/package-utilities 0.1.3 → 0.1.6

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 (76) hide show
  1. package/CHANGELOG.json +24 -1
  2. package/CHANGELOG.md +10 -2
  3. package/lib/createResolveMap.d.ts +19 -0
  4. package/lib/createResolveMap.js +116 -0
  5. package/lib/createResolveMap.js.map +1 -0
  6. package/lib/createResolveMap.test.d.ts +1 -0
  7. package/lib/createResolveMap.test.js +12 -0
  8. package/lib/createResolveMap.test.js.map +1 -0
  9. package/lib/detectModuleType.d.ts +11 -0
  10. package/lib/detectModuleType.js +29 -0
  11. package/lib/detectModuleType.js.map +1 -0
  12. package/lib/detectModuleType.test.d.ts +1 -0
  13. package/lib/detectModuleType.test.js +22 -0
  14. package/lib/detectModuleType.test.js.map +1 -0
  15. package/lib/evaluateImportsFromEntries.d.ts +31 -0
  16. package/lib/evaluateImportsFromEntries.js +158 -0
  17. package/lib/evaluateImportsFromEntries.js.map +1 -0
  18. package/lib/evaluateImportsFromEntries.test.d.ts +1 -0
  19. package/lib/evaluateImportsFromEntries.test.js +9 -0
  20. package/lib/evaluateImportsFromEntries.test.js.map +1 -0
  21. package/lib/filterJson.d.ts +3 -0
  22. package/lib/filterJson.js +21 -0
  23. package/lib/filterJson.js.map +1 -0
  24. package/lib/getExportPathFromEntry.d.ts +5 -0
  25. package/lib/getExportPathFromEntry.js +27 -0
  26. package/lib/getExportPathFromEntry.js.map +1 -0
  27. package/lib/getExportPathFromEntry.test.d.ts +1 -0
  28. package/lib/getExportPathFromEntry.test.js +36 -0
  29. package/lib/getExportPathFromEntry.test.js.map +1 -0
  30. package/lib/getInstalledPackages.d.ts +44 -0
  31. package/lib/getInstalledPackages.js +85 -0
  32. package/lib/getInstalledPackages.js.map +1 -0
  33. package/lib/getInstalledPackages.test.d.ts +1 -0
  34. package/lib/getInstalledPackages.test.js +14 -0
  35. package/lib/getInstalledPackages.test.js.map +1 -0
  36. package/lib/getPackageDefinition.d.ts +22 -0
  37. package/lib/getPackageDefinition.js +26 -0
  38. package/lib/getPackageDefinition.js.map +1 -0
  39. package/lib/index.d.ts +9 -0
  40. package/lib/index.js +9 -0
  41. package/lib/index.js.map +1 -0
  42. package/lib/isExternalPackage.d.ts +1 -0
  43. package/lib/isExternalPackage.js +9 -0
  44. package/lib/isExternalPackage.js.map +1 -0
  45. package/lib/isExternalPackage.test.d.ts +1 -0
  46. package/lib/isExternalPackage.test.js +12 -0
  47. package/lib/isExternalPackage.test.js.map +1 -0
  48. package/lib/parseImportString.d.ts +6 -0
  49. package/lib/parseImportString.js +9 -0
  50. package/lib/parseImportString.js.map +1 -0
  51. package/lib/parseImportString.test.d.ts +1 -0
  52. package/lib/parseImportString.test.js +24 -0
  53. package/lib/parseImportString.test.js.map +1 -0
  54. package/lib/resolve.d.ts +1 -0
  55. package/lib/resolve.js +21 -0
  56. package/lib/resolve.js.map +1 -0
  57. package/lib/resolve.test.d.ts +1 -0
  58. package/lib/resolve.test.js +12 -0
  59. package/lib/resolve.test.js.map +1 -0
  60. package/lib/resolveImportFromPackage.test.d.ts +1 -0
  61. package/lib/resolveImportFromPackage.test.js +167 -0
  62. package/lib/resolveImportFromPackage.test.js.map +1 -0
  63. package/lib/resolveImportFromPackagePath.d.ts +21 -0
  64. package/lib/resolveImportFromPackagePath.js +119 -0
  65. package/lib/resolveImportFromPackagePath.js.map +1 -0
  66. package/lib/resolvePackageEntries.d.ts +2 -0
  67. package/lib/resolvePackageEntries.js +36 -0
  68. package/lib/resolvePackageEntries.js.map +1 -0
  69. package/lib/resolvePackageEntries.test.d.ts +1 -0
  70. package/lib/resolvePackageEntries.test.js +78 -0
  71. package/lib/resolvePackageEntries.test.js.map +1 -0
  72. package/lib/testPaths.d.ts +3 -0
  73. package/lib/testPaths.js +6 -0
  74. package/lib/testPaths.js.map +1 -0
  75. package/lib/tsdoc-metadata.json +11 -0
  76. package/package.json +11 -7
@@ -0,0 +1,44 @@
1
+ import type { PackageDefinition } from './getPackageDefinition.js';
2
+ export declare type PackageReference = {
3
+ name: string;
4
+ version: string;
5
+ requiredVersion?: string;
6
+ path?: PackageReference[];
7
+ };
8
+ export declare type InstalledPackagesResult = {
9
+ installedPackages: {
10
+ [packageName: string]: {
11
+ [version: string]: {
12
+ path: string;
13
+ requiredBy: PackageReference[];
14
+ };
15
+ };
16
+ };
17
+ stats?: {
18
+ totalPackageNames: number;
19
+ totalInstalled: number;
20
+ packagesWithDuplicates: number;
21
+ };
22
+ };
23
+ /**
24
+ * Traverses a package folder and uses standard node package resolution to resolve the on-disk location
25
+ * of all dependencies. The map returned follows this format:
26
+ *
27
+ * {
28
+ * [packageName]: {
29
+ * [packageVersion]: {
30
+ * path: '/path/to/package',
31
+ * requiredBy: [
32
+ * { name, version, path, requiredVersion },
33
+ * ...
34
+ * ],
35
+ * // If the same package version is installed in multiple locations, we track this.
36
+ * duplicates: [
37
+ * { ... }
38
+ * ]
39
+ * }
40
+ * }
41
+ * }
42
+ *
43
+ */
44
+ export declare function getInstalledPackages(appPaths: string | string[], installedPackages?: InstalledPackagesResult['installedPackages'], ancestors?: PackageReference[], visited?: Record<string, PackageDefinition>): Promise<InstalledPackagesResult>;
@@ -0,0 +1,85 @@
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) {
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: dependencyDefinition.name,
60
+ version: dependencyDefinition.version,
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getInstalledPackages.js","sourceRoot":"","sources":["../src/getInstalledPackages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,22 @@
1
+ export declare type ExportsEntry = string | {
2
+ [key: string]: ExportsEntry;
3
+ } | ExportsEntry[];
4
+ export declare type PackageDefinition = {
5
+ name: string;
6
+ version: string;
7
+ main?: string;
8
+ module?: string;
9
+ exports?: ExportsEntry;
10
+ /**
11
+ * @deprecated - Don't use this.
12
+ */
13
+ browser?: string | Record<string, string>;
14
+ scripts?: Record<string, string>;
15
+ dependencies?: Record<string, string>;
16
+ devDependencies?: Record<string, string>;
17
+ };
18
+ export declare function getPackageDefinition(appPath: string, useCache?: boolean): Promise<PackageDefinition | undefined>;
19
+ /**
20
+ * Updates a package definition and the cache we use for them.
21
+ */
22
+ export declare function updatePackageDefinition(appPath: string, definition: PackageDefinition): Promise<void>;
@@ -0,0 +1,26 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ const { readFile, writeFile } = fs.promises;
4
+ const defs = {};
5
+ export async function getPackageDefinition(appPath, useCache) {
6
+ if (appPath) {
7
+ try {
8
+ return (defs[appPath] =
9
+ (useCache && defs[appPath]) || JSON.parse(await readFile(path.join(appPath, 'package.json'), 'utf8')));
10
+ }
11
+ catch (e) {
12
+ /* no-op */
13
+ }
14
+ }
15
+ return undefined;
16
+ }
17
+ /**
18
+ * Updates a package definition and the cache we use for them.
19
+ */
20
+ export async function updatePackageDefinition(appPath, definition) {
21
+ if (appPath) {
22
+ await writeFile(path.join(appPath, 'package.json'), JSON.stringify(definition, null, 2), 'utf8');
23
+ defs[appPath] = definition;
24
+ }
25
+ }
26
+ //# sourceMappingURL=getPackageDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPackageDefinition.js","sourceRoot":"","sources":["../src/getPackageDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AA0BxB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;AAC5C,MAAM,IAAI,GAAsC,EAAE,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,QAAkB;IAElB,IAAI,OAAO,EAAE;QACX,IAAI;YACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnB,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;SAC1G;QAAC,OAAO,CAAC,EAAE;YACV,WAAW;SACZ;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAAe,EAAE,UAA6B;IAC1F,IAAI,OAAO,EAAE;QACX,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACjG,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;KAC5B;AACH,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ export { createResolveMap, type ResolveMapEntry, type ResolveMap } from './createResolveMap.js';
2
+ export { type InstalledPackagesResult } from './getInstalledPackages.js';
3
+ export { evaluateImportsFromEntries } from './evaluateImportsFromEntries.js';
4
+ export { getPackageDefinition, type PackageDefinition, type ExportsEntry } from './getPackageDefinition.js';
5
+ export { resolve } from './resolve.js';
6
+ export { resolveImportFromPackage, resolveImportFromPackagePath, type ResolveImportFromPackageOptions, } from './resolveImportFromPackagePath.js';
7
+ export { detectModuleType, type ModuleType } from './detectModuleType.js';
8
+ export { resolvePackageEntries } from './resolvePackageEntries.js';
9
+ export { isExternalPackage } from './isExternalPackage.js';
package/lib/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export { createResolveMap } from './createResolveMap.js';
2
+ export { evaluateImportsFromEntries } from './evaluateImportsFromEntries.js';
3
+ export { getPackageDefinition } from './getPackageDefinition.js';
4
+ export { resolve } from './resolve.js';
5
+ export { resolveImportFromPackage, resolveImportFromPackagePath, } from './resolveImportFromPackagePath.js';
6
+ export { detectModuleType } from './detectModuleType.js';
7
+ export { resolvePackageEntries } from './resolvePackageEntries.js';
8
+ export { isExternalPackage } from './isExternalPackage.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyC,MAAM,uBAAuB,CAAC;AAEhG,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAA6C,MAAM,2BAA2B,CAAC;AAC5G,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAE7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAmB,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function isExternalPackage(packagePath: string): boolean;
@@ -0,0 +1,9 @@
1
+ import { slash } from '@ms-cloudpack/path-utilities';
2
+ export function isExternalPackage(packagePath) {
3
+ if (packagePath) {
4
+ const parts = slash(packagePath).split('/');
5
+ return parts.indexOf('node_modules') >= 0;
6
+ }
7
+ return false;
8
+ }
9
+ //# sourceMappingURL=isExternalPackage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isExternalPackage.js","sourceRoot":"","sources":["../src/isExternalPackage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAErD,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,IAAI,WAAW,EAAE;QACf,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE5C,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KAC3C;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import path from 'path';
2
+ import { isExternalPackage } from './isExternalPackage.js';
3
+ import { testProject2Path } from './testPaths.js';
4
+ describe('isExternalPackage', () => {
5
+ it('can return true on an external package', () => {
6
+ expect(isExternalPackage(path.resolve(testProject2Path, 'node_modules/b'))).toBeTruthy();
7
+ });
8
+ it('can return false on an internal package', () => {
9
+ expect(isExternalPackage(testProject2Path)).toBeFalsy();
10
+ });
11
+ });
12
+ //# sourceMappingURL=isExternalPackage.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isExternalPackage.test.js","sourceRoot":"","sources":["../src/isExternalPackage.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare type ImportStringResult = {
2
+ packageName: string;
3
+ version: string;
4
+ importPath: string;
5
+ };
6
+ export declare function parseImportString(importString?: string): ImportStringResult;
@@ -0,0 +1,9 @@
1
+ export function parseImportString(importString = '') {
2
+ const matches = importString.match(/[/]?(@[-_a-z-A-Z0-9.]+\/[-_a-z-A-Z0-9.]+|[a-zA-Z-0-9.]+)(@([-_a-zA-Z-0-9.]+))?(\/([-_/a-zA-Z0-9.]+))?/) || [];
3
+ return {
4
+ packageName: matches[1] || '',
5
+ version: matches[3] || '',
6
+ importPath: matches[5] || '',
7
+ };
8
+ }
9
+ //# sourceMappingURL=parseImportString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseImportString.js","sourceRoot":"","sources":["../src/parseImportString.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,iBAAiB,CAAC,YAAY,GAAG,EAAE;IACjD,MAAM,OAAO,GACX,YAAY,CAAC,KAAK,CAChB,uGAAuG,CACxG,IAAI,EAAE,CAAC;IAEV,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;QAC7B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;QACzB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;KAC7B,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ import { parseImportString } from './parseImportString.js';
2
+ describe(`parseImportString`, () => {
3
+ it(`can parse a package import`, () => {
4
+ expect(parseImportString('package')).toEqual({ packageName: 'package', version: '', importPath: '' });
5
+ });
6
+ it(`can parse a package import with a scope`, () => {
7
+ expect(parseImportString('@scope/package')).toEqual({ packageName: '@scope/package', version: '', importPath: '' });
8
+ });
9
+ it(`can parse a package import with a scope and path`, () => {
10
+ expect(parseImportString('@scope/package/path/to/thing')).toEqual({
11
+ packageName: '@scope/package',
12
+ version: '',
13
+ importPath: 'path/to/thing',
14
+ });
15
+ });
16
+ it(`can parse a package import with a scope, version, and path`, () => {
17
+ expect(parseImportString('@scope/package@1234567890.1234567890.1234567890-abcdeABCDE/path/to/thing')).toEqual({
18
+ packageName: '@scope/package',
19
+ version: '1234567890.1234567890.1234567890-abcdeABCDE',
20
+ importPath: 'path/to/thing',
21
+ });
22
+ });
23
+ });
24
+ //# sourceMappingURL=parseImportString.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseImportString.test.js","sourceRoot":"","sources":["../src/parseImportString.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IACtH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC;YAChE,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,eAAe;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,iBAAiB,CAAC,0EAA0E,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5G,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,6CAA6C;YACtD,UAAU,EAAE,eAAe;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function resolve(packageName: string, parentPath: string): Promise<string | undefined>;
package/lib/resolve.js ADDED
@@ -0,0 +1,21 @@
1
+ import path from 'path';
2
+ import resolvePackage from 'resolve';
3
+ export async function resolve(packageName, parentPath) {
4
+ const packageRootImport = path.join(packageName, 'package.json');
5
+ return new Promise((success) => {
6
+ try {
7
+ resolvePackage(packageRootImport, { basedir: parentPath, preserveSymlinks: false }, (err, resolvedPath) => {
8
+ if (err || !resolvedPath) {
9
+ success(undefined);
10
+ }
11
+ else {
12
+ success(path.dirname(resolvedPath));
13
+ }
14
+ });
15
+ }
16
+ catch (e) {
17
+ success(undefined);
18
+ }
19
+ });
20
+ }
21
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,cAAc,MAAM,SAAS,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,WAAmB,EAAE,UAAkB;IACnE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAEjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI;YACF,cAAc,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;gBACxG,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;oBACxB,OAAO,CAAC,SAAS,CAAC,CAAC;iBACpB;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;iBACrC;YACH,CAAC,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,SAAS,CAAC,CAAC;SACpB;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import { resolve } from './resolve.js';
2
+ import { fileURLToPath } from 'url';
3
+ const currentPath = fileURLToPath(import.meta.url);
4
+ describe('resolve', () => {
5
+ it('finds an installed path to a package', async () => {
6
+ expect(await resolve('@ms-cloudpack/path-utilities', currentPath)).toContain('path-utilities');
7
+ });
8
+ it('returns undefined for unfound packages', async () => {
9
+ expect(await resolve('@ms-cloudpack/does-not-exist', currentPath)).toBeUndefined();
10
+ });
11
+ });
12
+ //# sourceMappingURL=resolve.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.test.js","sourceRoot":"","sources":["../src/resolve.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,CAAC,MAAM,OAAO,CAAC,8BAA8B,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,CAAC,MAAM,OAAO,CAAC,8BAA8B,EAAE,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACrF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,167 @@
1
+ import { resolveImportFromPackage, resolveImportFromPackagePath } from './resolveImportFromPackagePath.js';
2
+ import { testProject2Path } from '../src/testPaths.js';
3
+ const defaultPackageDefinition = {
4
+ name: 'package',
5
+ version: '1.0.0',
6
+ };
7
+ describe('resolveImportFromPackagePath', () => {
8
+ it('can resolve a main entry', async () => {
9
+ expect(await resolveImportFromPackagePath(testProject2Path)).toEqual('lib/module.js');
10
+ });
11
+ it('can resolve a source entry', async () => {
12
+ expect(await resolveImportFromPackagePath(testProject2Path, undefined, { preferSource: true })).toEqual('src/module.ts');
13
+ });
14
+ });
15
+ describe('resolveImportFromPackage', () => {
16
+ it('can resolve a main entry', async () => {
17
+ expect(await resolveImportFromPackage(testProject2Path, {
18
+ ...defaultPackageDefinition,
19
+ main: './lib/main.js',
20
+ }, '')).toEqual('lib/main.js');
21
+ });
22
+ it('can resolve a main entry', async () => {
23
+ expect(await resolveImportFromPackage(testProject2Path, {
24
+ ...defaultPackageDefinition,
25
+ main: './lib/main.js',
26
+ }, '')).toEqual('lib/main.js');
27
+ });
28
+ it('can fall back to a subfolder', async () => {
29
+ expect(await resolveImportFromPackage(testProject2Path, {
30
+ ...defaultPackageDefinition,
31
+ main: 'build',
32
+ })).toEqual('build/index.js');
33
+ });
34
+ it('can resolve a module entry', async () => {
35
+ expect(await resolveImportFromPackage(testProject2Path, {
36
+ ...defaultPackageDefinition,
37
+ main: './lib/main.js',
38
+ module: './lib/module.js',
39
+ }, '')).toEqual('lib/module.js');
40
+ });
41
+ it('can resolve a string exports entry', async () => {
42
+ expect(await resolveImportFromPackage(testProject2Path, {
43
+ ...defaultPackageDefinition,
44
+ main: './lib/main.js',
45
+ module: './lib/module.js',
46
+ exports: './lib/exports.js',
47
+ }, '')).toEqual('lib/exports.js');
48
+ });
49
+ it('can resolve a default string exports entry', async () => {
50
+ expect(await resolveImportFromPackage(testProject2Path, {
51
+ ...defaultPackageDefinition,
52
+ main: './lib/main.js',
53
+ module: './lib/module.js',
54
+ exports: {
55
+ default: 'lib/exports-default.js',
56
+ },
57
+ }, '')).toEqual('lib/exports-default.js');
58
+ });
59
+ it('can resolve a default map exports entry', async () => {
60
+ expect(await resolveImportFromPackage(testProject2Path, {
61
+ ...defaultPackageDefinition,
62
+ main: './lib/main.js',
63
+ module: './lib/module.js',
64
+ exports: {
65
+ '.': './lib/exports.js',
66
+ },
67
+ }, '')).toEqual('lib/exports.js');
68
+ });
69
+ it('can resolve a default map exports entry with default', async () => {
70
+ expect(await resolveImportFromPackage(testProject2Path, {
71
+ ...defaultPackageDefinition,
72
+ main: './lib/main.js',
73
+ module: './lib/module.js',
74
+ exports: {
75
+ '.': {
76
+ default: './lib/exports-default.js',
77
+ },
78
+ },
79
+ }, '')).toEqual('lib/exports-default.js');
80
+ });
81
+ it('can resolve a default map exports entry with import', async () => {
82
+ expect(await resolveImportFromPackage(testProject2Path, {
83
+ ...defaultPackageDefinition,
84
+ main: './lib/main.js',
85
+ module: './lib/module.js',
86
+ exports: {
87
+ '.': {
88
+ require: './lib/exports-require.js',
89
+ import: './lib/exports-import.js',
90
+ default: './lib/exports-default.js',
91
+ },
92
+ },
93
+ }, '')).toEqual('lib/exports-import.js');
94
+ });
95
+ it('can resolve a path mapped in the exports map', async () => {
96
+ expect(await resolveImportFromPackage(testProject2Path, {
97
+ ...defaultPackageDefinition,
98
+ main: './lib/main.js',
99
+ module: './lib/module.js',
100
+ exports: {
101
+ '.': {
102
+ require: './lib/exports-require.js',
103
+ import: './lib/exports-import.js',
104
+ default: './lib/exports-default.js',
105
+ },
106
+ './lib/Button': {
107
+ require: './lib/exports-button-require.js',
108
+ import: './lib/exports-button-import.js',
109
+ default: './lib/exports-button-default.js',
110
+ },
111
+ },
112
+ }, 'lib/Button')).toEqual('lib/exports-button-import.js');
113
+ });
114
+ it('can resolve a source file exports map', async () => {
115
+ expect(await resolveImportFromPackage(testProject2Path, {
116
+ ...defaultPackageDefinition,
117
+ exports: './lib/tsx.js',
118
+ }, '', { preferSource: true })).toEqual('src/tsx.tsx');
119
+ });
120
+ it('can remap imports using browser overrides', async () => {
121
+ expect(await resolveImportFromPackage(testProject2Path, {
122
+ ...defaultPackageDefinition,
123
+ browser: {
124
+ 'lib/main.js': './lib/tsx.js',
125
+ },
126
+ main: 'lib/main.js',
127
+ }, '')).toEqual('lib/tsx.js');
128
+ });
129
+ it('can remap imports using browser overrides (preferSource)', async () => {
130
+ expect(await resolveImportFromPackage(testProject2Path, {
131
+ ...defaultPackageDefinition,
132
+ browser: {
133
+ './lib/main.js': './lib/tsx.js',
134
+ },
135
+ main: 'lib/main.js',
136
+ }, '', { preferSource: true })).toEqual('src/tsx.tsx');
137
+ });
138
+ it('can remap deep imports (preferSource)', async () => {
139
+ expect(await resolveImportFromPackage(testProject2Path, {
140
+ ...defaultPackageDefinition,
141
+ }, 'lib/tsx', { preferSource: true })).toEqual('src/tsx.tsx');
142
+ });
143
+ it('can remap deep imports with an exports map (preferSource)', async () => {
144
+ expect(await resolveImportFromPackage(testProject2Path, {
145
+ ...defaultPackageDefinition,
146
+ exports: {
147
+ './lib/tsx': 'lib/main.js',
148
+ },
149
+ }, 'lib/tsx', { preferSource: true })).toEqual('src/main.ts');
150
+ });
151
+ // package example: github.com/form-data/form-data
152
+ it('can remap imports using browser overrides (no extension, browser string)', async () => {
153
+ expect(await resolveImportFromPackage(testProject2Path, {
154
+ ...defaultPackageDefinition,
155
+ browser: './lib/tsx',
156
+ main: 'lib/main',
157
+ }, '')).toEqual('lib/tsx.js');
158
+ });
159
+ // package example: supports color
160
+ it('can handle a package with only a browser entry', async () => {
161
+ expect(await resolveImportFromPackage(testProject2Path, {
162
+ ...defaultPackageDefinition,
163
+ browser: './lib/main',
164
+ }, '')).toEqual('lib/main.js');
165
+ });
166
+ });
167
+ //# sourceMappingURL=resolveImportFromPackage.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveImportFromPackage.test.js","sourceRoot":"","sources":["../src/resolveImportFromPackage.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type PackageDefinition } from './getPackageDefinition.js';
2
+ /**
3
+ * Options for the resolveImportFromPackage(Path) apis.
4
+ */
5
+ export interface ResolveImportFromPackageOptions {
6
+ /**
7
+ * Prefer source paths over intermediate paths. For example, if the `main` entry resolves to
8
+ * "lib/index.js", and "src/index.tsx" exists, prefer that.
9
+ */
10
+ preferSource?: boolean;
11
+ }
12
+ /**
13
+ * Resolves a requested import path from a package located at the given path. Gives prescedence
14
+ * to browser/esm options. This may change in a future iteration.
15
+ */
16
+ export declare function resolveImportFromPackagePath(packagePath: string, requestedPath?: string, options?: ResolveImportFromPackageOptions): Promise<string>;
17
+ /**
18
+ * Resolves a requested import path from a package located at the given path. Gives prescedence
19
+ * to browser/esm options. This may change in a future iteration.
20
+ */
21
+ export declare function resolveImportFromPackage(packagePath: string, packageDefinition: PackageDefinition, importPath?: string, options?: ResolveImportFromPackageOptions): Promise<string>;