@ms-cloudpack/package-utilities 0.15.0 → 0.16.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 CHANGED
@@ -2,7 +2,22 @@
2
2
  "name": "@ms-cloudpack/package-utilities",
3
3
  "entries": [
4
4
  {
5
- "date": "Wed, 12 Oct 2022 08:10:23 GMT",
5
+ "date": "Wed, 12 Oct 2022 21:49:36 GMT",
6
+ "tag": "@ms-cloudpack/package-utilities_v0.16.0",
7
+ "version": "0.16.0",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "author": "dzearing@microsoft.com",
12
+ "package": "@ms-cloudpack/package-utilities",
13
+ "commit": "48a31cb7c0bbd9095fc246a95b453ed49acf7626",
14
+ "comment": "Tweaking how exports are generated for browser entries, fixing a variety of other issues."
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Wed, 12 Oct 2022 08:10:43 GMT",
6
21
  "tag": "@ms-cloudpack/package-utilities_v0.15.0",
7
22
  "version": "0.15.0",
8
23
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,20 @@
1
1
  # Change Log - @ms-cloudpack/package-utilities
2
2
 
3
- This log was last generated on Wed, 12 Oct 2022 08:10:23 GMT and should not be manually modified.
3
+ This log was last generated on Wed, 12 Oct 2022 21:49:36 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.16.0
8
+
9
+ Wed, 12 Oct 2022 21:49:36 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - Tweaking how exports are generated for browser entries, fixing a variety of other issues. (dzearing@microsoft.com)
14
+
7
15
  ## 0.15.0
8
16
 
9
- Wed, 12 Oct 2022 08:10:23 GMT
17
+ Wed, 12 Oct 2022 08:10:43 GMT
10
18
 
11
19
  ### Minor changes
12
20
 
@@ -9,16 +9,27 @@ import { safeRelativePath } from './safeRelativePath.js';
9
9
  export async function addExportsMapEntry(options) {
10
10
  const { exports, packages, packagePath, importPath, entryPath, typesPath, condition = 'default' } = options;
11
11
  const isInternal = !isExternalPackage(packagePath);
12
- const sourcePath = await resolveImportFromPackagePath(packagePath, entryPath || importPath, {
13
- packages,
14
- preferSource: isInternal,
15
- ignoreExportsMap: true,
16
- });
17
- const intermediatePath = sourcePath && sourceToIntermediatePath(sourcePath);
12
+ let sourcePath;
13
+ let intermediatePath;
18
14
  let resolvedTypesPath = typesPath;
19
- // If at this point we haven't found what we're looking for, throw an exception.
15
+ if (isInternal) {
16
+ sourcePath = await resolveImportFromPackagePath(packagePath, entryPath || importPath, {
17
+ packages,
18
+ preferSource: isInternal,
19
+ ignoreExportsMap: true,
20
+ });
21
+ intermediatePath = sourcePath && sourceToIntermediatePath(sourcePath);
22
+ }
23
+ else {
24
+ intermediatePath = await resolveImportFromPackagePath(packagePath, entryPath || importPath, {
25
+ packages,
26
+ preferSource: false,
27
+ ignoreExportsMap: true,
28
+ });
29
+ }
30
+ // If at this point we haven't found what we're looking for, don't change anything.
20
31
  if (!intermediatePath) {
21
- throw new Error(`Unable to resolve import path ${importPath} in package ${packagePath}`);
32
+ return;
22
33
  }
23
34
  // Discover d.ts if available.
24
35
  if (!resolvedTypesPath) {
@@ -29,7 +40,17 @@ export async function addExportsMapEntry(options) {
29
40
  resolvedTypesPath = potentialTypesPath;
30
41
  }
31
42
  }
32
- const exportSet = (exports[importPath] || (exports[importPath] = {}));
43
+ const safeImportPath = safeRelativePath(importPath || '.');
44
+ let exportSet = exports[safeImportPath];
45
+ // If the value of this path is a string, convert it to an object.
46
+ if (typeof exportSet === 'string') {
47
+ exportSet = exports[safeImportPath] = {
48
+ default: exportSet,
49
+ };
50
+ }
51
+ else if (!exportSet) {
52
+ exportSet = exports[safeImportPath] = {};
53
+ }
33
54
  if (resolvedTypesPath) {
34
55
  exportSet.types = safeRelativePath(resolvedTypesPath);
35
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"addExportsMapEntry.js","sourceRoot":"","sources":["../src/addExportsMapEntry.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAQxC;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC;IAC5G,MAAM,UAAU,GAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,MAAM,4BAA4B,CAAC,WAAW,EAAE,SAAS,IAAI,UAAU,EAAE;QAC1F,QAAQ;QACR,YAAY,EAAE,UAAU;QACxB,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,UAAU,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAElC,gFAAgF;IAChF,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,iCAAiC,UAAU,eAAe,WAAW,EAAE,CAAC,CAAC;KAC1F;IAED,8BAA8B;IAC9B,IAAI,CAAC,iBAAiB,EAAE;QACtB,MAAM,kBAAkB,GAAG,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;QAChH,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,KAAK,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEhH,IACE,kBAAkB;YAClB,CAAC,CAAC,UAAU,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC3G;YACA,iBAAiB,GAAG,kBAAkB,CAAC;SACxC;KACF;IAED,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,UAAU,MAAlB,OAAO,CAAC,UAAU,IAAM,EAAE,EAAC,CAAC;IAE/C,IAAI,iBAAiB,EAAE;QACrB,SAAS,CAAC,KAAK,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;KACvD;IAED,SAAS,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC;IAExC,IAAI,UAAU,IAAI,UAAU,KAAK,gBAAgB,EAAE;QACjD,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;KACjD;AACH,CAAC"}
1
+ {"version":3,"file":"addExportsMapEntry.js","sourceRoot":"","sources":["../src/addExportsMapEntry.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAQxC;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC;IAC5G,MAAM,UAAU,GAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,UAA8B,CAAC;IACnC,IAAI,gBAAoC,CAAC;IACzC,IAAI,iBAAiB,GAAuB,SAAS,CAAC;IAEtD,IAAI,UAAU,EAAE;QACd,UAAU,GAAG,MAAM,4BAA4B,CAAC,WAAW,EAAE,SAAS,IAAI,UAAU,EAAE;YACpF,QAAQ;YACR,YAAY,EAAE,UAAU;YACxB,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,gBAAgB,GAAG,UAAU,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC;KACvE;SAAM;QACL,gBAAgB,GAAG,MAAM,4BAA4B,CAAC,WAAW,EAAE,SAAS,IAAI,UAAU,EAAE;YAC1F,QAAQ;YACR,YAAY,EAAE,KAAK;YACnB,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;KACJ;IAED,mFAAmF;IACnF,IAAI,CAAC,gBAAgB,EAAE;QACrB,OAAO;KACR;IAED,8BAA8B;IAC9B,IAAI,CAAC,iBAAiB,EAAE;QACtB,MAAM,kBAAkB,GAAG,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;QAChH,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,KAAK,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEhH,IACE,kBAAkB;YAClB,CAAC,CAAC,UAAU,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC3G;YACA,iBAAiB,GAAG,kBAAkB,CAAC;SACxC;KACF;IAED,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;IAC3D,IAAI,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAExC,kEAAkE;IAClE,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACjC,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG;YACpC,OAAO,EAAE,SAAS;SACnB,CAAC;KACH;SAAM,IAAI,CAAC,SAAS,EAAE;QACrB,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;KAC1C;IAED,IAAI,iBAAiB,EAAE;QACrB,SAAS,CAAC,KAAK,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;KACvD;IAED,SAAS,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC;IAExC,IAAI,UAAU,IAAI,UAAU,KAAK,gBAAgB,EAAE;QACjD,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;KACjD;AACH,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { describe, expect, it } from '@jest/globals';
2
2
  import { addExportsMapEntry } from './addExportsMapEntry.js';
3
3
  import { testProject1Path } from './testPaths.js';
4
+ import { createTestFileStructure } from '@ms-cloudpack/test-utilities';
5
+ import path from 'path';
4
6
  describe('addExportsMapEntry', () => {
5
7
  it('can add an entry to an empty exports map', async () => {
6
8
  const exportsMap = {};
@@ -19,11 +21,26 @@ describe('addExportsMapEntry', () => {
19
21
  }
20
22
  `);
21
23
  });
22
- it(' can add an entry to an existing exports map', async () => {
24
+ it('can add a non-safe import path', async () => {
25
+ const exportsMap = {};
26
+ await addExportsMapEntry({
27
+ exports: exportsMap,
28
+ packagePath: testProject1Path,
29
+ importPath: 'lib/foo-sub1',
30
+ });
31
+ expect(exportsMap).toMatchInlineSnapshot(`
32
+ {
33
+ "./lib/foo-sub1": {
34
+ "default": "./lib/foo-sub1.js",
35
+ "source": "./src/foo-sub1.ts",
36
+ "types": "./lib/foo-sub1.d.ts",
37
+ },
38
+ }
39
+ `);
40
+ });
41
+ it('can add an entry to an existing exports map', async () => {
23
42
  const exportsMap = {
24
- '.': {
25
- default: './lib/index.js',
26
- },
43
+ '.': './lib/index.js',
27
44
  };
28
45
  await addExportsMapEntry({
29
46
  exports: exportsMap,
@@ -32,9 +49,7 @@ describe('addExportsMapEntry', () => {
32
49
  });
33
50
  expect(exportsMap).toMatchInlineSnapshot(`
34
51
  {
35
- ".": {
36
- "default": "./lib/index.js",
37
- },
52
+ ".": "./lib/index.js",
38
53
  "./lib/foo-sub1": {
39
54
  "default": "./lib/foo-sub1.js",
40
55
  "source": "./src/foo-sub1.ts",
@@ -43,13 +58,29 @@ describe('addExportsMapEntry', () => {
43
58
  }
44
59
  `);
45
60
  });
46
- it('can throw when the entry does not exist', async () => {
61
+ it('can add an entry to an external package like the "debug" package', async () => {
47
62
  const exportsMap = {};
48
- await expect(addExportsMapEntry({
63
+ const testPath = await createTestFileStructure({
64
+ 'node_modules/debug/package.json': {
65
+ name: 'debug',
66
+ main: './src/index.js',
67
+ browser: './src/browser.js',
68
+ },
69
+ 'node_modules/debug/src/index.js': '',
70
+ 'node_modules/debug/src/browser.js': '',
71
+ });
72
+ await addExportsMapEntry({
49
73
  exports: exportsMap,
50
- packagePath: testProject1Path,
51
- importPath: './lib/foo-sub2',
52
- })).rejects.toThrow();
74
+ packagePath: path.join(testPath, 'node_modules/debug'),
75
+ importPath: '.',
76
+ });
77
+ expect(exportsMap).toMatchInlineSnapshot(`
78
+ {
79
+ ".": {
80
+ "default": "./src/browser.js",
81
+ },
82
+ }
83
+ `);
53
84
  });
54
85
  });
55
86
  //# sourceMappingURL=addExportsMapEntry.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addExportsMapEntry.test.js","sourceRoot":"","sources":["../src/addExportsMapEntry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,MAAM,kBAAkB,CAAC;YACvB,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,gBAAgB;YAC7B,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;KAQxC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,UAAU,GAAG;YACjB,GAAG,EAAE;gBACH,OAAO,EAAE,gBAAgB;aAC1B;SACF,CAAC;QAEF,MAAM,kBAAkB,CAAC;YACvB,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,gBAAgB;YAC7B,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;KAWxC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,MAAM,MAAM,CACV,kBAAkB,CAAC;YACjB,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,gBAAgB;YAC7B,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"addExportsMapEntry.test.js","sourceRoot":"","sources":["../src/addExportsMapEntry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,MAAM,kBAAkB,CAAC;YACvB,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,gBAAgB;YAC7B,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;KAQxC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,MAAM,kBAAkB,CAAC;YACvB,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,gBAAgB;YAC7B,UAAU,EAAE,cAAc;SAC3B,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;KAQxC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,UAAU,GAAY;YAC1B,GAAG,EAAE,gBAAgB;SACtB,CAAC;QAEF,MAAM,kBAAkB,CAAC;YACvB,OAAO,EAAE,UAAoD;YAC7D,WAAW,EAAE,gBAAgB;YAC7B,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;KASxC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,UAAU,GAA2C,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC;YAC7C,iCAAiC,EAAE;gBACjC,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,kBAAkB;aAC5B;YACD,iCAAiC,EAAE,EAAE;YACrC,mCAAmC,EAAE,EAAE;SACxC,CAAC,CAAC;QAEH,MAAM,kBAAkB,CAAC;YACvB,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC;YACtD,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;KAMxC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -6,6 +6,15 @@ export async function getExportsMap(packagePath, options = {}) {
6
6
  if (!packageDefinition) {
7
7
  throw new Error(`Package definition not found for ${packagePath}`);
8
8
  }
9
- return packageDefinition.exports || (await createExportsMap(packagePath, options));
9
+ let { exports } = packageDefinition;
10
+ // If the package definition doesn't have a full object-based exports map, create one.
11
+ if (typeof exports === 'string') {
12
+ exports = {
13
+ '.': {
14
+ default: exports,
15
+ },
16
+ };
17
+ }
18
+ return exports || (await createExportsMap(packagePath, options));
10
19
  }
11
20
  //# sourceMappingURL=getExportsMap.js.map
@@ -1 +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"}
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,IAAI,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC;IAEpC,sFAAsF;IACtF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,GAAG;YACR,GAAG,EAAE;gBACH,OAAO,EAAE,OAAO;aACjB;SACF,CAAC;KACH;IACD,OAAO,OAAO,IAAI,CAAC,MAAM,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { describe, it, expect } from '@jest/globals';
2
+ import { getExportsMap } from './getExportsMap.js';
3
+ import { PackageDefinitions } from './PackageDefinitions.js';
4
+ describe('getExportsMap', () => {
5
+ it('can resolve an exports map (default)', async () => {
6
+ const packages = new PackageDefinitions({
7
+ foo: {
8
+ exports: {
9
+ '.': './foo.js',
10
+ },
11
+ },
12
+ });
13
+ expect(await getExportsMap('foo', { packages })).toEqual({
14
+ '.': './foo.js',
15
+ });
16
+ });
17
+ it('can resolve an object from a string exports entry', async () => {
18
+ const packages = new PackageDefinitions({
19
+ foo: {
20
+ exports: './foo.js',
21
+ },
22
+ });
23
+ expect(await getExportsMap('foo', { packages })).toEqual({
24
+ '.': {
25
+ default: './foo.js',
26
+ },
27
+ });
28
+ });
29
+ });
30
+ //# sourceMappingURL=getExportsMap.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExportsMap.test.js","sourceRoot":"","sources":["../src/getExportsMap.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC;YACtC,GAAG,EAAE;gBACH,OAAO,EAAE;oBACP,GAAG,EAAE,UAAU;iBAChB;aACF;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACvD,GAAG,EAAE,UAAU;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC;YACtC,GAAG,EAAE;gBACH,OAAO,EAAE,UAAU;aACpB;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACvD,GAAG,EAAE;gBACH,OAAO,EAAE,UAAU;aACpB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -3,6 +3,6 @@ import type { PackageDefinitions } from './PackageDefinitions.js';
3
3
  * Given a package path, reads the exports from the package.json and returns a flattened array of entry files
4
4
  * for bundling.
5
5
  */
6
- export declare function resolvePackageEntries(packagePath: string, options?: {
6
+ export declare function getPackageEntries(packagePath: string, options?: {
7
7
  packages?: PackageDefinitions;
8
8
  }): Promise<string[]>;
@@ -4,8 +4,8 @@ import { flattenExportsMap } from './flattenExportsMap.js';
4
4
  * Given a package path, reads the exports from the package.json and returns a flattened array of entry files
5
5
  * for bundling.
6
6
  */
7
- export async function resolvePackageEntries(packagePath, options = {}) {
7
+ export async function getPackageEntries(packagePath, options = {}) {
8
8
  const entries = new Set(Object.values(flattenExportsMap(await getExportsMap(packagePath, options))));
9
9
  return Array.from(entries);
10
10
  }
11
- //# sourceMappingURL=resolvePackageEntries.js.map
11
+ //# sourceMappingURL=getPackageEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPackageEntries.js","sourceRoot":"","sources":["../src/getPackageEntries.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,iBAAiB,CACrC,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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { describe, it, expect } from '@jest/globals';
2
2
  import { PackageDefinitions } from './PackageDefinitions.js';
3
- import { resolvePackageEntries } from './resolvePackageEntries.js';
4
- describe('resolvePackageEntries', () => {
3
+ import { getPackageEntries } from './getPackageEntries.js';
4
+ describe('getPackageEntries', () => {
5
5
  it('can resolve an exports map (default)', async () => {
6
6
  const packages = new PackageDefinitions({
7
7
  'node_modules/default': {
@@ -12,7 +12,7 @@ describe('resolvePackageEntries', () => {
12
12
  },
13
13
  },
14
14
  });
15
- expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
15
+ expect(await getPackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
16
16
  });
17
17
  it('can resolve an exports map (import)', async () => {
18
18
  const packages = new PackageDefinitions({
@@ -24,7 +24,7 @@ describe('resolvePackageEntries', () => {
24
24
  },
25
25
  },
26
26
  });
27
- expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
27
+ expect(await getPackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
28
28
  });
29
29
  it('can resolve an exports map (string)', async () => {
30
30
  const packages = new PackageDefinitions({
@@ -34,7 +34,7 @@ describe('resolvePackageEntries', () => {
34
34
  },
35
35
  },
36
36
  });
37
- expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
37
+ expect(await getPackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
38
38
  });
39
39
  it('can resolve an exports map (multiple)', async () => {
40
40
  const packages = new PackageDefinitions({
@@ -45,10 +45,7 @@ describe('resolvePackageEntries', () => {
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
+ expect(await getPackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js', './lib/foo.js']);
52
49
  });
53
50
  it('can prefer module over main', async () => {
54
51
  const packages = new PackageDefinitions({
@@ -57,7 +54,7 @@ describe('resolvePackageEntries', () => {
57
54
  module: 'module.js',
58
55
  },
59
56
  });
60
- expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./module.js']);
57
+ expect(await getPackageEntries('node_modules/default', { packages })).toEqual(['./module.js']);
61
58
  });
62
59
  it('can fall back to main', async () => {
63
60
  const packages = new PackageDefinitions({
@@ -65,7 +62,7 @@ describe('resolvePackageEntries', () => {
65
62
  main: 'main.js',
66
63
  },
67
64
  });
68
- expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./main.js']);
65
+ expect(await getPackageEntries('node_modules/default', { packages })).toEqual(['./main.js']);
69
66
  });
70
67
  it('can dedupe redundant entries', async () => {
71
68
  const packages = new PackageDefinitions({
@@ -76,7 +73,7 @@ describe('resolvePackageEntries', () => {
76
73
  },
77
74
  },
78
75
  });
79
- expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
76
+ expect(await getPackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
80
77
  });
81
78
  it('can resolve an entry without an extension', async () => {
82
79
  const packages = new PackageDefinitions({
@@ -84,7 +81,7 @@ describe('resolvePackageEntries', () => {
84
81
  main: 'main',
85
82
  },
86
83
  });
87
- expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./main.js']);
84
+ expect(await getPackageEntries('node_modules/default', { packages })).toEqual(['./main.js']);
88
85
  });
89
86
  it('ignores entries with trailing slashes', async () => {
90
87
  const packages = new PackageDefinitions({
@@ -95,7 +92,7 @@ describe('resolvePackageEntries', () => {
95
92
  },
96
93
  },
97
94
  });
98
- expect(await resolvePackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
95
+ expect(await getPackageEntries('node_modules/default', { packages })).toEqual(['./lib/index.js']);
99
96
  });
100
97
  });
101
- //# sourceMappingURL=resolvePackageEntries.test.js.map
98
+ //# sourceMappingURL=getPackageEntries.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPackageEntries.test.js","sourceRoot":"","sources":["../src/getPackageEntries.test.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -9,7 +9,7 @@ export { getExportsMap } from './getExportsMap.js';
9
9
  export { createImportMap, type ImportMap } from './createImportMap.js';
10
10
  export { resolve } from './resolve.js';
11
11
  export { resolveImportFromPackage, resolveImportFromPackagePath, type ResolveImportFromPackageOptions, } from './resolveImportFromPackagePath.js';
12
- export { resolvePackageEntries } from './resolvePackageEntries.js';
12
+ export { getPackageEntries } from './getPackageEntries.js';
13
13
  export { detectModuleType, type ModuleType } from './detectModuleType.js';
14
14
  export { isExternalPackage } from './isExternalPackage.js';
15
- export { parseImportString } from './parseImportString.js';
15
+ export { parseImportString, type ImportStringResult } from './parseImportString.js';
package/lib/index.js CHANGED
@@ -13,7 +13,7 @@ export { createImportMap } from './createImportMap.js';
13
13
  // Import resolution utilities
14
14
  export { resolve } from './resolve.js';
15
15
  export { resolveImportFromPackage, resolveImportFromPackagePath, } from './resolveImportFromPackagePath.js';
16
- export { resolvePackageEntries } from './resolvePackageEntries.js';
16
+ export { getPackageEntries } from './getPackageEntries.js';
17
17
  // Other package utilities
18
18
  export { detectModuleType } from './detectModuleType.js';
19
19
  export { isExternalPackage } from './isExternalPackage.js';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAE,kBAAkB,EAAmC,MAAM,yBAAyB,CAAC;AAE9F,sBAAsB;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,kCAAkC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAkB,MAAM,sBAAsB,CAAC;AAEvE,8BAA8B;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAE7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,0BAA0B;AAC1B,OAAO,EAAE,gBAAgB,EAAmB,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAE,kBAAkB,EAAmC,MAAM,yBAAyB,CAAC;AAE9F,sBAAsB;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,kCAAkC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAkB,MAAM,sBAAsB,CAAC;AAEvE,8BAA8B;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAE7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,0BAA0B;AAC1B,OAAO,EAAE,gBAAgB,EAAmB,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAA2B,MAAM,wBAAwB,CAAC"}
@@ -1,9 +1,10 @@
1
+ import { safeRelativePath } from './safeRelativePath.js';
1
2
  export function parseImportString(importString = '') {
2
3
  const matches = importString.match(/[/]?(@[-_a-z-A-Z0-9.]+\/[-_a-z-A-Z0-9.]+|[-_a-zA-Z0-9.]+)(@([-_a-zA-Z-0-9.]+))?(\/([-_/a-zA-Z0-9.]+))?/) || [];
3
4
  return {
4
- packageName: matches[1] || undefined,
5
- version: matches[3] || undefined,
6
- importPath: matches[5] || undefined,
5
+ packageName: matches[1] || '.',
6
+ version: matches[3] || '',
7
+ importPath: safeRelativePath(matches[5]),
7
8
  };
8
9
  }
9
10
  //# sourceMappingURL=parseImportString.js.map
@@ -1 +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,wGAAwG,CACzG,IAAI,EAAE,CAAC;IAEV,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS;QACpC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS;QAChC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS;KACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"parseImportString.js","sourceRoot":"","sources":["../src/parseImportString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQzD,MAAM,UAAU,iBAAiB,CAAC,YAAY,GAAG,EAAE;IACjD,MAAM,OAAO,GACX,YAAY,CAAC,KAAK,CAChB,wGAAwG,CACzG,IAAI,EAAE,CAAC;IAEV,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG;QAC9B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;QACzB,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACzC,CAAC;AACJ,CAAC"}
@@ -2,41 +2,41 @@ import { describe, it, expect } from '@jest/globals';
2
2
  import { parseImportString } from './parseImportString.js';
3
3
  describe(`parseImportString`, () => {
4
4
  it(`can parse a package import`, () => {
5
- expect(parseImportString('package')).toEqual({ packageName: 'package', version: undefined, importPath: undefined });
5
+ expect(parseImportString('package')).toEqual({ packageName: 'package', version: '', importPath: '.' });
6
6
  });
7
7
  it(`can parse a package import with a scope`, () => {
8
8
  expect(parseImportString('@scope/package')).toEqual({
9
9
  packageName: '@scope/package',
10
- version: undefined,
11
- importPath: undefined,
10
+ version: '',
11
+ importPath: '.',
12
12
  });
13
13
  });
14
14
  it(`can parse a package import with a scope and path`, () => {
15
15
  expect(parseImportString('@scope/package/path/to/thing')).toEqual({
16
16
  packageName: '@scope/package',
17
- version: undefined,
18
- importPath: 'path/to/thing',
17
+ version: '',
18
+ importPath: './path/to/thing',
19
19
  });
20
20
  });
21
21
  it(`can parse a package import with a scope, version, and path`, () => {
22
22
  expect(parseImportString('@scope/package@1234567890.1234567890.1234567890-abcdeABCDE/path/to/thing')).toEqual({
23
23
  packageName: '@scope/package',
24
24
  version: '1234567890.1234567890.1234567890-abcdeABCDE',
25
- importPath: 'path/to/thing',
25
+ importPath: './path/to/thing',
26
26
  });
27
27
  });
28
28
  it(`can handle package names with underscores`, () => {
29
29
  expect(parseImportString('package_name')).toEqual({
30
30
  packageName: 'package_name',
31
- version: undefined,
32
- importPath: undefined,
31
+ version: '',
32
+ importPath: '.',
33
33
  });
34
34
  });
35
35
  it(`can handle package names with dashes`, () => {
36
36
  expect(parseImportString('package-name')).toEqual({
37
37
  packageName: 'package-name',
38
- version: undefined,
39
- importPath: undefined,
38
+ version: '',
39
+ importPath: '.',
40
40
  });
41
41
  });
42
42
  });
@@ -1 +1 @@
1
- {"version":3,"file":"parseImportString.test.js","sourceRoot":"","sources":["../src/parseImportString.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,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,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IACtH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;YAClD,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;IACL,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,SAAS;YAClB,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;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"parseImportString.test.js","sourceRoot":"","sources":["../src/parseImportString.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,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,GAAG,EAAE,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;YAClD,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,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,iBAAiB;SAC9B,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,iBAAiB;SAC9B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -3,7 +3,7 @@ import { slash } from '@ms-cloudpack/path-utilities';
3
3
  * Ensures the give relative path starts with a ./
4
4
  */
5
5
  export function safeRelativePath(originalPath) {
6
- if (!originalPath) {
6
+ if (!originalPath || originalPath.length === 0 || originalPath === '.') {
7
7
  return '.';
8
8
  }
9
9
  // Ensure we have the right slashes.
@@ -1 +1 @@
1
- {"version":3,"file":"safeRelativePath.js","sourceRoot":"","sources":["../src/safeRelativePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAgC;IAC/D,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,GAAG,CAAC;KACZ;IAED,oCAAoC;IACpC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IAEnC,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAChC,OAAO,GAAG,GAAG,YAAY,CAAC;KAC3B;SAAM,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACxC,OAAO,YAAY,CAAC;KACrB;IAED,OAAO,KAAK,YAAY,EAAE,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"safeRelativePath.js","sourceRoot":"","sources":["../src/safeRelativePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAgC;IAC/D,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,KAAK,GAAG,EAAE;QACtE,OAAO,GAAG,CAAC;KACZ;IAED,oCAAoC;IACpC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IAEnC,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAChC,OAAO,GAAG,GAAG,YAAY,CAAC;KAC3B;SAAM,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACxC,OAAO,YAAY,CAAC;KACrB;IAED,OAAO,KAAK,YAAY,EAAE,CAAC;AAC7B,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { describe, it, expect } from '@jest/globals';
2
2
  import { safeRelativePath } from './safeRelativePath.js';
3
3
  describe('safeRelativePath', () => {
4
- it('can handle undefined', () => {
4
+ it('can handle default import paths', () => {
5
5
  expect(safeRelativePath(undefined)).toEqual('.');
6
+ expect(safeRelativePath('')).toEqual('.');
7
+ expect(safeRelativePath('.')).toEqual('.');
6
8
  });
7
9
  it('can handle an absolute path', () => {
8
10
  expect(safeRelativePath('/foo/bar')).toEqual('./foo/bar');
@@ -1 +1 @@
1
- {"version":3,"file":"safeRelativePath.test.js","sourceRoot":"","sources":["../src/safeRelativePath.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"safeRelativePath.test.js","sourceRoot":"","sources":["../src/safeRelativePath.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/package-utilities",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "Utilities for resolving/parsing packages and their imports.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"resolvePackageEntries.test.js","sourceRoot":"","sources":["../src/resolvePackageEntries.test.ts"],"names":[],"mappings":"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"}