@ms-cloudpack/package-utilities 0.13.0 → 0.14.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 +31 -1
- package/CHANGELOG.md +18 -2
- package/lib/PackageDefinitions.d.ts +1 -0
- package/lib/PackageDefinitions.js +2 -1
- package/lib/PackageDefinitions.js.map +1 -1
- package/lib/createExportsMap.d.ts +12 -0
- package/lib/createExportsMap.js +105 -0
- package/lib/createExportsMap.js.map +1 -0
- package/lib/{evaluateImportsFromEntries.test.d.ts → createExportsMap.test.d.ts} +0 -0
- package/lib/createExportsMap.test.js +131 -0
- package/lib/createExportsMap.test.js.map +1 -0
- package/lib/createImportMap.d.ts +7 -2
- package/lib/createImportMap.js +49 -29
- package/lib/createImportMap.js.map +1 -1
- package/lib/createImportMap.test.js +44 -157
- package/lib/createImportMap.test.js.map +1 -1
- package/lib/createResolveMap.test.js +6 -5
- package/lib/createResolveMap.test.js.map +1 -1
- package/lib/{getFlattenedExportsMap.d.ts → flattenExportsMap.d.ts} +4 -1
- package/lib/flattenExportsMap.js +67 -0
- package/lib/flattenExportsMap.js.map +1 -0
- package/lib/{generateExportsMap.test.d.ts → flattenExportsMap.test.d.ts} +0 -0
- package/lib/flattenExportsMap.test.js +185 -0
- package/lib/flattenExportsMap.test.js.map +1 -0
- package/lib/getExportPathFromEntry.js +2 -1
- package/lib/getExportPathFromEntry.js.map +1 -1
- package/lib/getExportPathFromEntry.test.js +0 -8
- package/lib/getExportPathFromEntry.test.js.map +1 -1
- package/lib/getExportsMap.d.ts +5 -0
- package/lib/getExportsMap.js +11 -0
- package/lib/getExportsMap.js.map +1 -0
- package/lib/index.d.ts +2 -3
- package/lib/index.js +2 -3
- package/lib/index.js.map +1 -1
- package/lib/resolveImportFromPackage.test.js +22 -7
- package/lib/resolveImportFromPackage.test.js.map +1 -1
- package/lib/resolveImportFromPackagePath.d.ts +8 -5
- package/lib/resolveImportFromPackagePath.js +55 -43
- package/lib/resolveImportFromPackagePath.js.map +1 -1
- package/lib/resolvePackageEntries.d.ts +8 -2
- package/lib/resolvePackageEntries.js +8 -37
- package/lib/resolvePackageEntries.js.map +1 -1
- package/lib/resolvePackageEntries.test.js +76 -77
- package/lib/resolvePackageEntries.test.js.map +1 -1
- package/lib/safeRelativePath.d.ts +4 -0
- package/lib/safeRelativePath.js +19 -0
- package/lib/safeRelativePath.js.map +1 -0
- package/lib/{getFlattenedExportsMap.test.d.ts → safeRelativePath.test.d.ts} +0 -0
- package/lib/safeRelativePath.test.js +17 -0
- package/lib/safeRelativePath.test.js.map +1 -0
- package/package.json +2 -2
- package/lib/evaluateImportsFromEntries.d.ts +0 -31
- package/lib/evaluateImportsFromEntries.js +0 -151
- package/lib/evaluateImportsFromEntries.js.map +0 -1
- package/lib/evaluateImportsFromEntries.test.js +0 -39
- package/lib/evaluateImportsFromEntries.test.js.map +0 -1
- package/lib/generateExportsMap.d.ts +0 -9
- package/lib/generateExportsMap.js +0 -80
- package/lib/generateExportsMap.js.map +0 -1
- package/lib/generateExportsMap.test.js +0 -100
- package/lib/generateExportsMap.test.js.map +0 -1
- package/lib/getFlattenedExportsMap.js +0 -77
- package/lib/getFlattenedExportsMap.js.map +0 -1
- package/lib/getFlattenedExportsMap.test.js +0 -270
- package/lib/getFlattenedExportsMap.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getExportPathFromEntry.test.js","sourceRoot":"","sources":["../src/getExportPathFromEntry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"getExportPathFromEntry.test.js","sourceRoot":"","sources":["../src/getExportPathFromEntry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CACJ,sBAAsB,CAAC;YACrB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;SACnB,CAAC,CACH,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CACJ,sBAAsB,CAAC;YACrB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;SACnB,CAAC,CACH,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CACJ,sBAAsB,CAAC;YACrB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;SACnB,CAAC,CACH,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CACJ,sBAAsB,CACpB;YACE,GAAG,EAAE;gBACH,MAAM,EAAE,gBAAgB;aACzB;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,cAAc;aACvB;SACF,EACD,OAAO,CACR,CACF,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PackageDefinitions } from './PackageDefinitions.js';
|
|
2
|
+
import { createExportsMap } from './createExportsMap.js';
|
|
3
|
+
export async function getExportsMap(packagePath, options = {}) {
|
|
4
|
+
const { packages = PackageDefinitions.getInstance() } = options;
|
|
5
|
+
const packageDefinition = await packages.get(packagePath);
|
|
6
|
+
if (!packageDefinition) {
|
|
7
|
+
throw new Error(`Package definition not found for ${packagePath}`);
|
|
8
|
+
}
|
|
9
|
+
return packageDefinition.exports || (await createExportsMap(packagePath, options));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=getExportsMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getExportsMap.js","sourceRoot":"","sources":["../src/getExportsMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,UAA6C,EAAE;IAE/C,MAAM,EAAE,QAAQ,GAAG,kBAAkB,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC;IAChE,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE1D,IAAI,CAAC,iBAAiB,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAC;KACpE;IAED,OAAO,iBAAiB,CAAC,OAAO,IAAI,CAAC,MAAM,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AACrF,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
export { createResolveMap } from './createResolveMap.js';
|
|
2
|
-
export { evaluateImportsFromEntries } from './evaluateImportsFromEntries.js';
|
|
3
2
|
export { PackageDefinitions, type PackageDefinitionTransform } from './PackageDefinitions.js';
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
3
|
+
export { flattenExportsMap } from './flattenExportsMap.js';
|
|
4
|
+
export { createExportsMap, addExportsMapEntry } from './createExportsMap.js';
|
|
6
5
|
export { resolve } from './resolve.js';
|
|
7
6
|
export { resolveImportFromPackage, resolveImportFromPackagePath, type ResolveImportFromPackageOptions, } from './resolveImportFromPackagePath.js';
|
|
8
7
|
export { detectModuleType, type ModuleType } from './detectModuleType.js';
|
package/lib/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
export { createResolveMap } from './createResolveMap.js';
|
|
2
|
-
export { evaluateImportsFromEntries } from './evaluateImportsFromEntries.js';
|
|
3
2
|
export { PackageDefinitions } from './PackageDefinitions.js';
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
3
|
+
export { flattenExportsMap } from './flattenExportsMap.js';
|
|
4
|
+
export { createExportsMap, addExportsMapEntry } from './createExportsMap.js';
|
|
6
5
|
export { resolve } from './resolve.js';
|
|
7
6
|
export { resolveImportFromPackage, resolveImportFromPackagePath, } from './resolveImportFromPackagePath.js';
|
|
8
7
|
export { detectModuleType } from './detectModuleType.js';
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAmC,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,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;AAC3D,OAAO,EAAE,eAAe,EAAkB,MAAM,sBAAsB,CAAC"}
|
|
@@ -124,23 +124,32 @@ describe('resolveImportFromPackage', () => {
|
|
|
124
124
|
exports: './lib/tsx.js',
|
|
125
125
|
}, '', { preferSource: true })).toEqual('./src/tsx.tsx');
|
|
126
126
|
});
|
|
127
|
-
it('can
|
|
127
|
+
it('can ignore browser remapping without browserOnly setting', async () => {
|
|
128
128
|
expect(await resolveImportFromPackage(testProject2Path, {
|
|
129
129
|
...defaultPackageDefinition,
|
|
130
130
|
browser: {
|
|
131
131
|
'lib/main.js': './lib/tsx.js',
|
|
132
132
|
},
|
|
133
133
|
main: 'lib/main.js',
|
|
134
|
-
}, '')).toEqual('./lib/
|
|
134
|
+
}, '')).toEqual('./lib/main.js');
|
|
135
|
+
});
|
|
136
|
+
it('can return browser remapping (browserOnly)', async () => {
|
|
137
|
+
expect(await resolveImportFromPackage(testProject2Path, {
|
|
138
|
+
...defaultPackageDefinition,
|
|
139
|
+
browser: {
|
|
140
|
+
'lib/main.js': './lib/tsx.js',
|
|
141
|
+
},
|
|
142
|
+
main: 'lib/main.js',
|
|
143
|
+
}, '', { browserOnly: true })).toEqual('./lib/tsx.js');
|
|
135
144
|
});
|
|
136
|
-
it('can remap imports using browser overrides (preferSource)', async () => {
|
|
145
|
+
it('can remap imports using browser overrides (preferSource, browserOnly)', async () => {
|
|
137
146
|
expect(await resolveImportFromPackage(testProject2Path, {
|
|
138
147
|
...defaultPackageDefinition,
|
|
139
148
|
browser: {
|
|
140
149
|
'./lib/main.js': './lib/tsx.js',
|
|
141
150
|
},
|
|
142
151
|
main: 'lib/main.js',
|
|
143
|
-
}, '', { preferSource: true })).toEqual('./src/tsx.tsx');
|
|
152
|
+
}, '', { preferSource: true, browserOnly: true })).toEqual('./src/tsx.tsx');
|
|
144
153
|
});
|
|
145
154
|
it('can remap deep imports (preferSource)', async () => {
|
|
146
155
|
expect(await resolveImportFromPackage(testProject2Path, {
|
|
@@ -161,14 +170,20 @@ describe('resolveImportFromPackage', () => {
|
|
|
161
170
|
...defaultPackageDefinition,
|
|
162
171
|
browser: './lib/tsx',
|
|
163
172
|
main: 'lib/main',
|
|
164
|
-
}, '')).toEqual('./lib/tsx.js');
|
|
173
|
+
}, '', { browserOnly: true })).toEqual('./lib/tsx.js');
|
|
174
|
+
});
|
|
175
|
+
it('can handle a package with only a browser entry without browserOnly set', async () => {
|
|
176
|
+
expect(await resolveImportFromPackage(testProject2Path, {
|
|
177
|
+
...defaultPackageDefinition,
|
|
178
|
+
browser: './lib/main',
|
|
179
|
+
}, '')).toBe(undefined);
|
|
165
180
|
});
|
|
166
181
|
// package example: supports color
|
|
167
|
-
it('can
|
|
182
|
+
it('can return a browser entry if browserOnly is set', async () => {
|
|
168
183
|
expect(await resolveImportFromPackage(testProject2Path, {
|
|
169
184
|
...defaultPackageDefinition,
|
|
170
185
|
browser: './lib/main',
|
|
171
|
-
}, '')).toEqual('./lib/main.js');
|
|
186
|
+
}, '', { browserOnly: true })).toEqual('./lib/main.js');
|
|
172
187
|
});
|
|
173
188
|
});
|
|
174
189
|
//# sourceMappingURL=resolveImportFromPackage.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveImportFromPackage.test.js","sourceRoot":"","sources":["../src/resolveImportFromPackage.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resolveImportFromPackage.test.js","sourceRoot":"","sources":["../src/resolveImportFromPackage.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,15 +8,18 @@ export interface ResolveImportFromPackageOptions {
|
|
|
8
8
|
* "lib/index.js", and "src/index.tsx" exists, prefer that.
|
|
9
9
|
*/
|
|
10
10
|
preferSource?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Use only browser-friendly entries to resolve the import.
|
|
13
|
+
*/
|
|
14
|
+
browserOnly?: boolean;
|
|
11
15
|
}
|
|
12
16
|
/**
|
|
13
|
-
* Resolves a requested import path from a package located at the given path
|
|
14
|
-
* to
|
|
15
|
-
* to source paths (lib to src translation) if the option is provided.
|
|
17
|
+
* Resolves a requested import path from a package located at the given path, returns a path relative
|
|
18
|
+
* to the package, or undefined if no match was found.
|
|
16
19
|
*/
|
|
17
20
|
export declare function resolveImportFromPackagePath(packagePath: string, requestedPath?: string, options?: ResolveImportFromPackageOptions): Promise<string | undefined>;
|
|
18
21
|
/**
|
|
19
|
-
* Resolves a requested import path from a package
|
|
20
|
-
* to
|
|
22
|
+
* Resolves a requested import path from a package. Note that this is not a full import path, but rather
|
|
23
|
+
* a path relative to the package. This is used to resolve the path to a file within a package.
|
|
21
24
|
*/
|
|
22
25
|
export declare function resolveImportFromPackage(packagePath: string, packageDefinition: PackageJson, importPath?: string, options?: ResolveImportFromPackageOptions): Promise<string | undefined>;
|
|
@@ -3,11 +3,12 @@ import { intermediateToSourcePath, isFile, isFolder, slash } from '@ms-cloudpack
|
|
|
3
3
|
import { PackageDefinitions } from './PackageDefinitions.js';
|
|
4
4
|
import { getExportPathFromEntry } from './getExportPathFromEntry.js';
|
|
5
5
|
import { isExternalPackage } from './isExternalPackage.js';
|
|
6
|
+
import { safeRelativePath } from './safeRelativePath.js';
|
|
6
7
|
const definitions = PackageDefinitions.getInstance();
|
|
8
|
+
const defaultIndexPath = './index.js';
|
|
7
9
|
/**
|
|
8
|
-
* Resolves a requested import path from a package located at the given path
|
|
9
|
-
* to
|
|
10
|
-
* to source paths (lib to src translation) if the option is provided.
|
|
10
|
+
* Resolves a requested import path from a package located at the given path, returns a path relative
|
|
11
|
+
* to the package, or undefined if no match was found.
|
|
11
12
|
*/
|
|
12
13
|
export async function resolveImportFromPackagePath(packagePath, requestedPath, options = {}) {
|
|
13
14
|
const packageDefinition = await definitions.get(packagePath);
|
|
@@ -17,17 +18,22 @@ export async function resolveImportFromPackagePath(packagePath, requestedPath, o
|
|
|
17
18
|
return resolveImportFromPackage(packagePath, packageDefinition, requestedPath, options);
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
|
-
* Resolves a requested import path from a package
|
|
21
|
-
* to
|
|
21
|
+
* Resolves a requested import path from a package. Note that this is not a full import path, but rather
|
|
22
|
+
* a path relative to the package. This is used to resolve the path to a file within a package.
|
|
22
23
|
*/
|
|
23
24
|
export async function resolveImportFromPackage(packagePath, packageDefinition, importPath, options = {}) {
|
|
24
|
-
//
|
|
25
|
-
if (importPath
|
|
25
|
+
// Normalize import path
|
|
26
|
+
if (importPath && importPath !== '.') {
|
|
27
|
+
importPath = safeRelativePath(importPath);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
26
30
|
importPath = undefined;
|
|
27
31
|
}
|
|
32
|
+
const { browserOnly } = options;
|
|
28
33
|
const originalPackagePath = packagePath;
|
|
29
34
|
const fullRequestedPath = path.join(packagePath, importPath || '');
|
|
30
|
-
// If the requested subfolder has a package.json, treat it as a sub-package.
|
|
35
|
+
// If the requested subfolder has a package.json, treat it as a sub-package.
|
|
36
|
+
// (some npm packages have nested package.json files!)
|
|
31
37
|
if (importPath && isFolder(fullRequestedPath)) {
|
|
32
38
|
const subPackageDefinition = await definitions.get(fullRequestedPath);
|
|
33
39
|
if (subPackageDefinition) {
|
|
@@ -36,55 +42,58 @@ export async function resolveImportFromPackage(packagePath, packageDefinition, i
|
|
|
36
42
|
importPath = undefined;
|
|
37
43
|
}
|
|
38
44
|
}
|
|
39
|
-
// Normalize path
|
|
40
|
-
if (importPath) {
|
|
41
|
-
importPath = './' + slash(path.normalize(importPath || ''));
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
importPath = undefined;
|
|
45
|
-
}
|
|
46
45
|
// Build a list of intermediate file candidates.
|
|
47
46
|
let candidates = [];
|
|
48
47
|
const { exports } = packageDefinition;
|
|
49
48
|
// If we have an exports map, this takes priority in resolution.
|
|
50
49
|
if (exports) {
|
|
51
|
-
|
|
50
|
+
let exportPath;
|
|
51
|
+
if (browserOnly) {
|
|
52
|
+
getExportPathFromEntry(exports, importPath, ['browser']);
|
|
53
|
+
}
|
|
54
|
+
if (!exportPath) {
|
|
55
|
+
exportPath = getExportPathFromEntry(exports, importPath);
|
|
56
|
+
}
|
|
52
57
|
if (exportPath) {
|
|
53
58
|
candidates.push(exportPath);
|
|
54
59
|
}
|
|
55
60
|
}
|
|
56
|
-
if (!importPath) {
|
|
57
|
-
candidates.push(packageDefinition.module);
|
|
58
|
-
candidates.push(packageDefinition.main);
|
|
59
|
-
}
|
|
60
61
|
else {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (!packageDefinition.main && !packageDefinition.module && !importPath) {
|
|
65
|
-
candidates.push('index.js');
|
|
66
|
-
}
|
|
67
|
-
// If the package has browser re-mappings, respect them.
|
|
68
|
-
let { browser } = packageDefinition;
|
|
69
|
-
// If the browser entry is a string, convert it into an object.
|
|
70
|
-
if (typeof browser === 'string') {
|
|
71
|
-
const mainOrModule = packageDefinition.module || packageDefinition.main;
|
|
72
|
-
if (mainOrModule) {
|
|
73
|
-
browser = { [mainOrModule]: browser };
|
|
62
|
+
// We don't have an exports map. Consider main entries.
|
|
63
|
+
if (!importPath) {
|
|
64
|
+
candidates.push(packageDefinition.module, packageDefinition.main, defaultIndexPath);
|
|
74
65
|
}
|
|
75
66
|
else {
|
|
76
|
-
candidates.push(
|
|
67
|
+
candidates.push(importPath);
|
|
77
68
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
69
|
+
const { browser } = packageDefinition;
|
|
70
|
+
if (browserOnly && browser) {
|
|
71
|
+
// If the package has browser re-mappings, respect them.
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
73
|
+
let safeBrowser = {};
|
|
74
|
+
if (typeof browser === 'object') {
|
|
75
|
+
safeBrowser = Object.keys(browser || {}).reduce((acc, key) => {
|
|
76
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
77
|
+
acc[safeRelativePath(key)] = safeRelativePath(browser[key]);
|
|
78
|
+
return acc;
|
|
79
|
+
}, {});
|
|
80
|
+
}
|
|
81
|
+
else if (typeof browser === 'string') {
|
|
82
|
+
safeBrowser = {
|
|
83
|
+
[safeRelativePath(packageDefinition.module || packageDefinition.main || defaultIndexPath)]: safeRelativePath(browser),
|
|
84
|
+
};
|
|
87
85
|
}
|
|
86
|
+
// For "browserOnly", we only return browser entries. In the case where we're relying on main, module, index.js,
|
|
87
|
+
// or a direct import, only respect it as a valid candidate if it has a browser re-mapping.
|
|
88
|
+
candidates = candidates.reduce((p, n) => {
|
|
89
|
+
if (n) {
|
|
90
|
+
const candidate = safeRelativePath(n);
|
|
91
|
+
if (safeBrowser[candidate]) {
|
|
92
|
+
p.push(safeBrowser[candidate]);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return p;
|
|
96
|
+
}, []);
|
|
88
97
|
}
|
|
89
98
|
}
|
|
90
99
|
// Ensure we can handle missing extensions and fall back to js
|
|
@@ -110,6 +119,9 @@ export async function resolveImportFromPackage(packagePath, packageDefinition, i
|
|
|
110
119
|
.map((c) => ` "${c}"`)
|
|
111
120
|
.join('\n')}`);
|
|
112
121
|
}
|
|
122
|
+
if (!foundPath) {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
113
125
|
return './' + slash(path.relative(originalPackagePath, path.join(packagePath, foundPath || importPath || '')));
|
|
114
126
|
}
|
|
115
127
|
//# sourceMappingURL=resolveImportFromPackagePath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveImportFromPackagePath.js","sourceRoot":"","sources":["../src/resolveImportFromPackagePath.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolveImportFromPackagePath.js","sourceRoot":"","sources":["../src/resolveImportFromPackagePath.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { PackageDefinitions } from './PackageDefinitions.js';
|
|
2
|
+
/**
|
|
3
|
+
* Given a package path, reads the exports from the package.json and returns a flattened array of entry files
|
|
4
|
+
* for bundling.
|
|
5
|
+
*/
|
|
6
|
+
export declare function resolvePackageEntries(packagePath: string, options?: {
|
|
7
|
+
packages?: PackageDefinitions;
|
|
8
|
+
}): Promise<string[]>;
|
|
@@ -1,40 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
for (const [key, entry] of Object.entries(exports)) {
|
|
10
|
-
if (key.indexOf('*') < 0) {
|
|
11
|
-
const entryPath = getExportPathFromEntry(entry);
|
|
12
|
-
if (entryPath) {
|
|
13
|
-
entries.add(cleanEntry(entryPath));
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
else if (typeof exports === 'string') {
|
|
19
|
-
entries.add(cleanEntry(exports));
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
else if (typeof browser === 'string') {
|
|
23
|
-
entries.add(browser);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
const defaultEntryPath = packageDefinition.module || packageDefinition.main || './index.js';
|
|
27
|
-
if (defaultEntryPath) {
|
|
28
|
-
entries.add(cleanEntry(defaultEntryPath));
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (typeof browser === 'object') {
|
|
32
|
-
for (const [fromPath, toPath] of Object.entries(browser)) {
|
|
33
|
-
if (entries.has(fromPath) && toPath) {
|
|
34
|
-
entries.add(cleanEntry(toPath));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
1
|
+
import { getExportsMap } from './getExportsMap.js';
|
|
2
|
+
import { flattenExportsMap } from './flattenExportsMap.js';
|
|
3
|
+
/**
|
|
4
|
+
* Given a package path, reads the exports from the package.json and returns a flattened array of entry files
|
|
5
|
+
* for bundling.
|
|
6
|
+
*/
|
|
7
|
+
export async function resolvePackageEntries(packagePath, options = {}) {
|
|
8
|
+
const entries = new Set(Object.values(flattenExportsMap(await getExportsMap(packagePath, options))));
|
|
38
9
|
return Array.from(entries);
|
|
39
10
|
}
|
|
40
11
|
//# sourceMappingURL=resolvePackageEntries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvePackageEntries.js","sourceRoot":"","sources":["../src/resolvePackageEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"resolvePackageEntries.js","sourceRoot":"","sources":["../src/resolvePackageEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,UAEI,EAAE;IAEN,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7G,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1,102 +1,101 @@
|
|
|
1
1
|
import { describe, it, expect } from '@jest/globals';
|
|
2
2
|
import { PackageDefinitions } from './PackageDefinitions.js';
|
|
3
3
|
import { resolvePackageEntries } from './resolvePackageEntries.js';
|
|
4
|
-
import { testNodeFetchPath } from './testPaths.js';
|
|
5
|
-
const defaultPackage = {
|
|
6
|
-
name: 'default',
|
|
7
|
-
version: '1.0.0',
|
|
8
|
-
};
|
|
9
4
|
describe('resolvePackageEntries', () => {
|
|
10
|
-
it('can resolve an exports map (default)', () => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
5
|
+
it('can resolve an exports map (default)', async () => {
|
|
6
|
+
const packages = new PackageDefinitions({
|
|
7
|
+
'node_modules/default': {
|
|
8
|
+
exports: {
|
|
9
|
+
'.': {
|
|
10
|
+
default: './lib/index.js',
|
|
11
|
+
},
|
|
16
12
|
},
|
|
17
13
|
},
|
|
18
|
-
})
|
|
14
|
+
});
|
|
15
|
+
expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
|
|
19
16
|
});
|
|
20
|
-
it('can resolve an exports map (import)', () => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
it('can resolve an exports map (import)', async () => {
|
|
18
|
+
const packages = new PackageDefinitions({
|
|
19
|
+
'node_modules/default': {
|
|
20
|
+
exports: {
|
|
21
|
+
'.': {
|
|
22
|
+
import: './lib/index.js',
|
|
23
|
+
},
|
|
26
24
|
},
|
|
27
25
|
},
|
|
28
|
-
})
|
|
26
|
+
});
|
|
27
|
+
expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
|
|
29
28
|
});
|
|
30
|
-
it('can resolve an exports map (string)', () => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
it('can resolve an exports map (string)', async () => {
|
|
30
|
+
const packages = new PackageDefinitions({
|
|
31
|
+
'node_modules/default': {
|
|
32
|
+
exports: {
|
|
33
|
+
'.': './lib/index.js',
|
|
34
|
+
},
|
|
35
35
|
},
|
|
36
|
-
})
|
|
36
|
+
});
|
|
37
|
+
expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
|
|
37
38
|
});
|
|
38
|
-
it('can resolve an exports map (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
source: './lib/index.ts',
|
|
39
|
+
it('can resolve an exports map (multiple)', async () => {
|
|
40
|
+
const packages = new PackageDefinitions({
|
|
41
|
+
'node_modules/default': {
|
|
42
|
+
exports: {
|
|
43
|
+
'.': './lib/index.js',
|
|
44
|
+
'./foo': './lib/foo.js',
|
|
45
45
|
},
|
|
46
46
|
},
|
|
47
|
-
})
|
|
47
|
+
});
|
|
48
|
+
expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual([
|
|
49
|
+
'./lib/index.js',
|
|
50
|
+
'./lib/foo.js',
|
|
51
|
+
]);
|
|
48
52
|
});
|
|
49
|
-
it('can
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
'./foo': './lib/foo.js',
|
|
53
|
+
it('can prefer module over main', async () => {
|
|
54
|
+
const packages = new PackageDefinitions({
|
|
55
|
+
'node_modules/default': {
|
|
56
|
+
main: 'main.js',
|
|
57
|
+
module: 'module.js',
|
|
55
58
|
},
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
it('can prefer module over main', () => {
|
|
59
|
-
expect(resolvePackageEntries({
|
|
60
|
-
...defaultPackage,
|
|
61
|
-
module: './lib/module.js',
|
|
62
|
-
main: './lib/main.js',
|
|
63
|
-
})).toEqual(['./lib/module.js']);
|
|
59
|
+
});
|
|
60
|
+
expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./module.js']);
|
|
64
61
|
});
|
|
65
|
-
it('can fall back to main', () => {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
})).toEqual(['./lib/main.js']);
|
|
70
|
-
});
|
|
71
|
-
it('can dedupe redundant entries', () => {
|
|
72
|
-
expect(resolvePackageEntries({
|
|
73
|
-
...defaultPackage,
|
|
74
|
-
exports: {
|
|
75
|
-
'.': './lib/index.js',
|
|
76
|
-
'./foo': './lib/index.js',
|
|
62
|
+
it('can fall back to main', async () => {
|
|
63
|
+
const packages = new PackageDefinitions({
|
|
64
|
+
'node_modules/default': {
|
|
65
|
+
main: 'main.js',
|
|
77
66
|
},
|
|
78
|
-
})
|
|
79
|
-
|
|
80
|
-
it('can resolve node-fetch entries', async () => {
|
|
81
|
-
expect(resolvePackageEntries((await PackageDefinitions.getInstance().get(testNodeFetchPath)))).toEqual(['./browser.js']);
|
|
67
|
+
});
|
|
68
|
+
expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./main.js']);
|
|
82
69
|
});
|
|
83
|
-
it('can
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
70
|
+
it('can dedupe redundant entries', async () => {
|
|
71
|
+
const packages = new PackageDefinitions({
|
|
72
|
+
'node_modules/default': {
|
|
73
|
+
exports: {
|
|
74
|
+
'.': './lib/index.js',
|
|
75
|
+
'./foo': './lib/index.js',
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
|
|
87
80
|
});
|
|
88
|
-
it('
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
'./foo/*': './lib/foo.js',
|
|
81
|
+
it('can resolve an entry without an extension', async () => {
|
|
82
|
+
const packages = new PackageDefinitions({
|
|
83
|
+
'node_modules/default': {
|
|
84
|
+
main: 'main',
|
|
93
85
|
},
|
|
94
|
-
})
|
|
86
|
+
});
|
|
87
|
+
expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./main.js']);
|
|
95
88
|
});
|
|
96
|
-
it('
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
89
|
+
it('ignores entries with trailing slashes', async () => {
|
|
90
|
+
const packages = new PackageDefinitions({
|
|
91
|
+
'node_modules/default': {
|
|
92
|
+
exports: {
|
|
93
|
+
'.': './lib/index.js',
|
|
94
|
+
'./': './',
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
|
|
100
99
|
});
|
|
101
100
|
});
|
|
102
101
|
//# sourceMappingURL=resolvePackageEntries.test.js.map
|