@vxrn/resolve 1.2.48 → 1.2.49

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.
@@ -35,16 +35,28 @@ __export(index_exports, {
35
35
  });
36
36
  module.exports = __toCommonJS(index_exports);
37
37
  var import_node_module = __toESM(require("node:module"), 1),
38
- import_node_url = require("node:url");
39
- const import_meta = {},
40
- resolver = "resolve" in import_meta ? (path, from) => (0, import_node_url.fileURLToPath)(import_meta.resolve(path, from)) : "url" in import_meta ? (path, from) => new URL(path, import_meta.url).pathname : require.resolve,
41
- resolverV2 = (path, from = process.cwd()) => import_node_module.default.createRequire(from).resolve(path, {
42
- paths: [from]
43
- }),
44
- resolvePath = (path, from = process.cwd()) => {
45
- try {
46
- return resolverV2(path, from);
47
- } catch {
48
- return resolver(path, from);
38
+ import_node_path = require("node:path"),
39
+ import_node_fs = require("node:fs");
40
+ const resolvePath = (path, from = process.cwd()) => {
41
+ const require2 = import_node_module.default.createRequire(from.endsWith("/") ? from : from + "/"),
42
+ resolved = require2.resolve(path, {
43
+ paths: [from]
44
+ }),
45
+ isRelative = path.startsWith("./") || path.startsWith("../"),
46
+ isBuiltin = path.startsWith("node:");
47
+ if (isRelative || isBuiltin) return resolved;
48
+ try {
49
+ const pkgJsonPath = require2.resolve(`${path}/package.json`, {
50
+ paths: [from]
51
+ }),
52
+ pkgJson = JSON.parse((0, import_node_fs.readFileSync)(pkgJsonPath, "utf8")),
53
+ pkgDir = (0, import_node_path.dirname)(pkgJsonPath),
54
+ exportsImport = pkgJson.exports?.["."]?.import;
55
+ if (exportsImport) {
56
+ const importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
57
+ if (importPath) return (0, import_node_path.join)(pkgDir, importPath);
49
58
  }
50
- };
59
+ if (pkgJson.module) return (0, import_node_path.join)(pkgDir, pkgJson.module);
60
+ } catch {}
61
+ return resolved;
62
+ };
package/dist/cjs/index.js CHANGED
@@ -25,12 +25,22 @@ __export(index_exports, {
25
25
  resolvePath: () => resolvePath
26
26
  });
27
27
  module.exports = __toCommonJS(index_exports);
28
- var import_node_module = __toESM(require("node:module"), 1), import_node_url = require("node:url");
29
- const import_meta = {}, resolver = "resolve" in import_meta ? (path, from) => (0, import_node_url.fileURLToPath)(import_meta.resolve(path, from)) : "url" in import_meta ? (path, from) => new URL(path, import_meta.url).pathname : require.resolve, resolverV2 = (path, from = process.cwd()) => import_node_module.default.createRequire(from).resolve(path, { paths: [from] }), resolvePath = (path, from = process.cwd()) => {
28
+ var import_node_module = __toESM(require("node:module"), 1), import_node_path = require("node:path"), import_node_fs = require("node:fs");
29
+ const resolvePath = (path, from = process.cwd()) => {
30
+ const require2 = import_node_module.default.createRequire(from.endsWith("/") ? from : from + "/"), resolved = require2.resolve(path, { paths: [from] }), isRelative = path.startsWith("./") || path.startsWith("../"), isBuiltin = path.startsWith("node:");
31
+ if (isRelative || isBuiltin)
32
+ return resolved;
30
33
  try {
31
- return resolverV2(path, from);
34
+ const pkgJsonPath = require2.resolve(`${path}/package.json`, { paths: [from] }), pkgJson = JSON.parse((0, import_node_fs.readFileSync)(pkgJsonPath, "utf8")), pkgDir = (0, import_node_path.dirname)(pkgJsonPath), exportsImport = pkgJson.exports?.["."]?.import;
35
+ if (exportsImport) {
36
+ const importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
37
+ if (importPath)
38
+ return (0, import_node_path.join)(pkgDir, importPath);
39
+ }
40
+ if (pkgJson.module)
41
+ return (0, import_node_path.join)(pkgDir, pkgJson.module);
32
42
  } catch {
33
- return resolver(path, from);
34
43
  }
44
+ return resolved;
35
45
  };
36
46
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAmB,oCACnB,kBAA8B;AAD9B,wBAGM,WACJ,aAAa,cACT,CAAC,MAAc,aAAkB,+BAAc,YAAY,QAAQ,MAAM,IAAI,CAAC,IAC9E,SAAS,cACP,CAAC,MAAc,SAAkB,IAAI,IAAI,MAAM,YAAY,GAAG,EAAE,WAChE,QAAQ,SAEV,aAAa,CAAC,MAAc,OAAO,QAAQ,IAAI,MACnC,mBAAAA,QAAO,cAAc,IAAI,EACd,QAAQ,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GAI/C,cAAc,CAAC,MAAc,OAAO,QAAQ,IAAI,MAAc;AACzE,MAAI;AACF,WAAO,WAAW,MAAM,IAAI;AAAA,EAC9B,QAAY;AACV,WAAO,SAAS,MAAM,IAAI;AAAA,EAC5B;AACF;",
5
- "names": ["module"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAmB,oCACnB,mBAA8B,sBAC9B,iBAA6B;AAMtB,MAAM,cAAc,CAAC,MAAc,OAAO,QAAQ,IAAI,MAAc;AACzE,QAAMA,WAAU,mBAAAC,QAAO,cAAc,KAAK,SAAS,GAAG,IAAI,OAAO,OAAO,GAAG,GACrE,WAAWD,SAAQ,QAAQ,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GAGlD,aAAa,KAAK,WAAW,IAAI,KAAK,KAAK,WAAW,KAAK,GAC3D,YAAY,KAAK,WAAW,OAAO;AACzC,MAAI,cAAc;AAChB,WAAO;AAIT,MAAI;AACF,UAAM,cAAcA,SAAQ,QAAQ,GAAG,IAAI,iBAAiB,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GACvE,UAAU,KAAK,UAAM,6BAAa,aAAa,MAAM,CAAC,GACtD,aAAS,0BAAQ,WAAW,GAG5B,gBAAgB,QAAQ,UAAU,GAAG,GAAG;AAC9C,QAAI,eAAe;AAEjB,YAAM,aACJ,OAAO,iBAAkB,WAAW,gBAAgB,cAAc;AACpE,UAAI;AACF,mBAAO,uBAAK,QAAQ,UAAU;AAAA,IAElC;AAGA,QAAI,QAAQ;AACV,iBAAO,uBAAK,QAAQ,QAAQ,MAAM;AAAA,EAEtC,QAAQ;AAAA,EAER;AAEA,SAAO;AACT;",
5
+ "names": ["require", "module"]
6
6
  }
@@ -37,27 +37,32 @@ __export(index_exports, {
37
37
  });
38
38
  module.exports = __toCommonJS(index_exports);
39
39
  var import_module = __toESM(require("module"), 1),
40
- import_url = require("url");
41
- const import_meta = {};
42
- var resolver = "resolve" in import_meta ? function (path, from) {
43
- return (0, import_url.fileURLToPath)(import_meta.resolve(path, from));
44
- } : "url" in import_meta ? function (path, from) {
45
- return new URL(path, import_meta.url).pathname;
46
- } : require.resolve,
47
- resolverV2 = function (path) {
40
+ import_path = require("path"),
41
+ import_fs = require("fs"),
42
+ resolvePath = function (path) {
48
43
  var from = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.cwd(),
49
- _$require = import_module.default.createRequire(from),
50
- importPath = _$require.resolve(path, {
44
+ require2 = import_module.default.createRequire(from.endsWith("/") ? from : from + "/"),
45
+ resolved = require2.resolve(path, {
51
46
  paths: [from]
52
- });
53
- return importPath;
54
- },
55
- resolvePath = function (path) {
56
- var from = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.cwd();
47
+ }),
48
+ isRelative = path.startsWith("./") || path.startsWith("../"),
49
+ isBuiltin = path.startsWith("node:");
50
+ if (isRelative || isBuiltin) return resolved;
57
51
  try {
58
- return resolverV2(path, from);
59
- } catch {
60
- return resolver(path, from);
61
- }
52
+ var _pkgJson_exports_,
53
+ _pkgJson_exports,
54
+ pkgJsonPath = require2.resolve(`${path}/package.json`, {
55
+ paths: [from]
56
+ }),
57
+ pkgJson = JSON.parse((0, import_fs.readFileSync)(pkgJsonPath, "utf8")),
58
+ pkgDir = (0, import_path.dirname)(pkgJsonPath),
59
+ exportsImport = (_pkgJson_exports = pkgJson.exports) === null || _pkgJson_exports === void 0 || (_pkgJson_exports_ = _pkgJson_exports["."]) === null || _pkgJson_exports_ === void 0 ? void 0 : _pkgJson_exports_.import;
60
+ if (exportsImport) {
61
+ var importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
62
+ if (importPath) return (0, import_path.join)(pkgDir, importPath);
63
+ }
64
+ if (pkgJson.module) return (0, import_path.join)(pkgDir, pkgJson.module);
65
+ } catch {}
66
+ return resolved;
62
67
  };
63
68
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","resolvePath","module","exports","import_module","__toESM","require","import_url","import_meta","resolver","path","from","fileURLToPath","resolve","URL","url","pathname","resolverV2"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAA;EAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;IAAAC,KAAA;EAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAmB,CAAAK,aAAA;AAAnB,IAAAK,aAAA,GAAAC,OAGM,CAAAC,OACJ,aAAa;EAAAC,UAAA,GACRD,OAAc;AAYnB,MAAIE,WAAA;AACF,IAAAC,QAAO,YAAW,IAAMD,WAAI,aAAAE,IAAA,EAAAC,IAAA;IAC9B,QAAY,GAAAJ,UAAA,CAAAK,aAAA,EAAAJ,WAAA,CAAAK,OAAA,CAAAH,IAAA,EAAAC,IAAA;EACV,aAAOH,WAAS,GAAM,UAAIE,IAAA,EAAAC,IAAA;IAC5B,WAAAG,GAAA,CAAAJ,IAAA,EAAAF,WAAA,CAAAO,GAAA,EAAAC,QAAA;EACF,IAAAV,OAAA,CAAAO,OAAA;EAAAI,UAAA,YAAAA,CAAAP,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","resolvePath","module","exports","import_module","__toESM","require","import_path","import_fs","path","from","arguments","length","process","cwd","require2","default","createRequire","endsWith","resolved","resolve","paths","isRelative","startsWith","isBuiltin","_pkgJson_exports_","_pkgJson_exports","pkgJsonPath","pkgJson","JSON","parse","readFileSync","pkgDir","dirname","exportsImport","import","importPath"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAA;EAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;IAAAC,KAAA;EAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAmB,CAAAK,aAAA;AAQZ,IAAAK,aAAM,GAAcC,OAAe,CAAAC,OAAO,SAAQ,GAAI;EAAAC,WAAc,GAAAD,OAAA;EAAAE,SAAA,GAAAF,OAAA;EAAAL,WAAA,YAAAA,CAAAQ,IAAA;IACzE,IAAAC,IAAM,GAAAC,SAAU,CAAAC,MAAA,QAAAD,SAAO,cAAc,GAAAA,SAAK,EAAS,IAAGE,OAAI,CAAAC,GAAO;MAAAC,QAC3D,GAAAX,aAAW,CAAAY,OAAQ,CAAAC,aAAgB,CAAAP,IAAO,CAACQ,QAAO,IAGlD,IAAAR,IAAA,GAAaA,IAAA,GAAK;MAAAS,QAAe,GAAAJ,QAAU,CAAAK,OAAA,CAAWX,IAAA,EAAK;QAEjEY,KAAI,GACFX,IAAA;MAKA;MAAAY,UAAM,GAAAb,IAAA,CAAcc,UAAQ,UAAWd,IAAI,CAAAc,UAAA,MAAiB;MAAEC,SAAQ,GAAIf,IAAG,CACvEc,UAAU,QAAK;IAKrB,IAAAD,UAAI,IAAAE,SAAe,EAEjB,OAAAL,QAAM;IAEN;MACE,IAAAM,iBAAO;QAAAC,gBAAK;QAAAC,WAAQ,GAAAZ,QAAU,CAAAK,OAAA,IAAAX,IAAA;UAElCY,KAAA,GAGIX,IAAA;QAGN;QAAAkB,OAAQ,GAAAC,IAAA,CAAAC,KAAA,KAAAtB,SAAA,CAAAuB,YAAA,EAAAJ,WAAA;QAAAK,MAAA,OAAAzB,WAAA,CAAA0B,OAAA,EAAAN,WAAA;QAAAO,aAAA,IAAAR,gBAAA,GAAAE,OAAA,CAAAzB,OAAA,cAAAuB,gBAAA,gBAAAD,iBAAA,GAAAC,gBAAA,mBAAAD,iBAAA,uBAAAA,iBAAA,CAAAU,MAAA;MAER,IAAAD,aAAA;QAEA,IAAOE,UAAA,UAAAF,aAAA,eAAAA,aAAA,GAAAA,aAAA,CAAAlB,OAAA;QACT,IAAAoB,UAAA,E","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ var import_vitest = require("vitest"),
2
+ import_index = require("./index.cjs"),
3
+ import_node_fs = require("node:fs");
4
+ (0, import_vitest.describe)("resolvePath", () => {
5
+ (0, import_vitest.describe)("basic resolution", () => {
6
+ (0, import_vitest.it)("resolves node builtins", () => {
7
+ (0, import_vitest.expect)((0, import_index.resolvePath)("node:path")).toBe("node:path"), (0, import_vitest.expect)((0, import_index.resolvePath)("node:fs")).toBe("node:fs");
8
+ }), (0, import_vitest.it)("resolves npm packages", () => {
9
+ const path = (0, import_index.resolvePath)("vitest");
10
+ (0, import_vitest.expect)(path).toBeTruthy(), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
11
+ }), (0, import_vitest.it)("resolves relative paths from cwd", () => {
12
+ const path = (0, import_index.resolvePath)("./package.json");
13
+ (0, import_vitest.expect)(path).toContain("package.json"), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
14
+ });
15
+ }), (0, import_vitest.describe)("respects from parameter", () => {
16
+ (0, import_vitest.it)("resolves relative paths from specified directory", () => {
17
+ const path = (0, import_index.resolvePath)("./package.json", process.cwd());
18
+ (0, import_vitest.expect)(path).toBe(process.cwd() + "/package.json"), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
19
+ }), (0, import_vitest.it)("resolves npm packages from specified directory", () => {
20
+ const path = (0, import_index.resolvePath)("vitest", process.cwd());
21
+ (0, import_vitest.expect)(path).toContain("vitest");
22
+ });
23
+ }), (0, import_vitest.describe)("ESM entry point detection", () => {
24
+ (0, import_vitest.it)('returns ESM entry when exports["."].import is a string', () => {
25
+ const path = (0, import_index.resolvePath)("@vxrn/resolve", process.cwd());
26
+ (0, import_vitest.expect)(path).toBeTruthy();
27
+ }), (0, import_vitest.it)('returns ESM entry when exports["."].import.default exists', () => {
28
+ const path = (0, import_index.resolvePath)("vitest", process.cwd());
29
+ (0, import_vitest.expect)(path).toContain("dist/index.js"), (0, import_vitest.expect)(path).not.toContain(".cjs");
30
+ }), (0, import_vitest.it)("falls back to module field when exports not available", () => {
31
+ const path = (0, import_index.resolvePath)("vitest", process.cwd());
32
+ (0, import_vitest.expect)(path).toBeTruthy();
33
+ }), (0, import_vitest.it)("falls back to main/require.resolve when no ESM entry", () => {
34
+ const path = (0, import_index.resolvePath)("resolve", process.cwd());
35
+ (0, import_vitest.expect)(path).toContain("resolve");
36
+ });
37
+ });
38
+ });
@@ -0,0 +1,37 @@
1
+ var import_vitest = require("vitest"), import_index = require("./index"), import_node_fs = require("node:fs");
2
+ (0, import_vitest.describe)("resolvePath", () => {
3
+ (0, import_vitest.describe)("basic resolution", () => {
4
+ (0, import_vitest.it)("resolves node builtins", () => {
5
+ (0, import_vitest.expect)((0, import_index.resolvePath)("node:path")).toBe("node:path"), (0, import_vitest.expect)((0, import_index.resolvePath)("node:fs")).toBe("node:fs");
6
+ }), (0, import_vitest.it)("resolves npm packages", () => {
7
+ const path = (0, import_index.resolvePath)("vitest");
8
+ (0, import_vitest.expect)(path).toBeTruthy(), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
9
+ }), (0, import_vitest.it)("resolves relative paths from cwd", () => {
10
+ const path = (0, import_index.resolvePath)("./package.json");
11
+ (0, import_vitest.expect)(path).toContain("package.json"), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
12
+ });
13
+ }), (0, import_vitest.describe)("respects from parameter", () => {
14
+ (0, import_vitest.it)("resolves relative paths from specified directory", () => {
15
+ const path = (0, import_index.resolvePath)("./package.json", process.cwd());
16
+ (0, import_vitest.expect)(path).toBe(process.cwd() + "/package.json"), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
17
+ }), (0, import_vitest.it)("resolves npm packages from specified directory", () => {
18
+ const path = (0, import_index.resolvePath)("vitest", process.cwd());
19
+ (0, import_vitest.expect)(path).toContain("vitest");
20
+ });
21
+ }), (0, import_vitest.describe)("ESM entry point detection", () => {
22
+ (0, import_vitest.it)('returns ESM entry when exports["."].import is a string', () => {
23
+ const path = (0, import_index.resolvePath)("@vxrn/resolve", process.cwd());
24
+ (0, import_vitest.expect)(path).toBeTruthy();
25
+ }), (0, import_vitest.it)('returns ESM entry when exports["."].import.default exists', () => {
26
+ const path = (0, import_index.resolvePath)("vitest", process.cwd());
27
+ (0, import_vitest.expect)(path).toContain("dist/index.js"), (0, import_vitest.expect)(path).not.toContain(".cjs");
28
+ }), (0, import_vitest.it)("falls back to module field when exports not available", () => {
29
+ const path = (0, import_index.resolvePath)("vitest", process.cwd());
30
+ (0, import_vitest.expect)(path).toBeTruthy();
31
+ }), (0, import_vitest.it)("falls back to main/require.resolve when no ESM entry", () => {
32
+ const path = (0, import_index.resolvePath)("resolve", process.cwd());
33
+ (0, import_vitest.expect)(path).toContain("resolve");
34
+ });
35
+ });
36
+ });
37
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.test.ts"],
4
+ "mappings": "AAAA,oBAAqC,mBACrC,eAA4B,oBAC5B,iBAA2B;AAAA,IAE3B,wBAAS,eAAe,MAAM;AAC5B,8BAAS,oBAAoB,MAAM;AACjC,0BAAG,0BAA0B,MAAM;AACjC,oCAAO,0BAAY,WAAW,CAAC,EAAE,KAAK,WAAW,OACjD,0BAAO,0BAAY,SAAS,CAAC,EAAE,KAAK,SAAS;AAAA,IAC/C,CAAC,OAED,kBAAG,yBAAyB,MAAM;AAChC,YAAM,WAAO,0BAAY,QAAQ;AACjC,gCAAO,IAAI,EAAE,WAAW,OACxB,0BAAO,2BAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC,OAED,kBAAG,oCAAoC,MAAM;AAC3C,YAAM,WAAO,0BAAY,gBAAgB;AACzC,gCAAO,IAAI,EAAE,UAAU,cAAc,OACrC,0BAAO,2BAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC;AAAA,EACH,CAAC,OAED,wBAAS,2BAA2B,MAAM;AACxC,0BAAG,oDAAoD,MAAM;AAE3D,YAAM,WAAO,0BAAY,kBAAkB,QAAQ,IAAI,CAAC;AACxD,gCAAO,IAAI,EAAE,KAAK,QAAQ,IAAI,IAAI,eAAe,OACjD,0BAAO,2BAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC,OAED,kBAAG,kDAAkD,MAAM;AACzD,YAAM,WAAO,0BAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,gCAAO,IAAI,EAAE,UAAU,QAAQ;AAAA,IACjC,CAAC;AAAA,EACH,CAAC,OAED,wBAAS,6BAA6B,MAAM;AAC1C,0BAAG,0DAA0D,MAAM;AAEjE,YAAM,WAAO,0BAAY,iBAAiB,QAAQ,IAAI,CAAC;AAEvD,gCAAO,IAAI,EAAE,WAAW;AAAA,IAC1B,CAAC,OAED,kBAAG,6DAA6D,MAAM;AAEpE,YAAM,WAAO,0BAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,gCAAO,IAAI,EAAE,UAAU,eAAe,OACtC,sBAAO,IAAI,EAAE,IAAI,UAAU,MAAM;AAAA,IACnC,CAAC,OAED,kBAAG,yDAAyD,MAAM;AAEhE,YAAM,WAAO,0BAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,gCAAO,IAAI,EAAE,WAAW;AAAA,IAC1B,CAAC,OAED,kBAAG,wDAAwD,MAAM;AAE/D,YAAM,WAAO,0BAAY,WAAW,QAAQ,IAAI,CAAC;AACjD,gCAAO,IAAI,EAAE,UAAU,SAAS;AAAA,IAClC,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var import_vitest = require("vitest"),
4
+ import_index = require("./index.native.js"),
5
+ import_fs = require("fs");
6
+ (0, import_vitest.describe)("resolvePath", function () {
7
+ (0, import_vitest.describe)("basic resolution", function () {
8
+ (0, import_vitest.it)("resolves node builtins", function () {
9
+ (0, import_vitest.expect)((0, import_index.resolvePath)("node:path")).toBe("node:path"), (0, import_vitest.expect)((0, import_index.resolvePath)("node:fs")).toBe("node:fs");
10
+ }), (0, import_vitest.it)("resolves npm packages", function () {
11
+ var path = (0, import_index.resolvePath)("vitest");
12
+ (0, import_vitest.expect)(path).toBeTruthy(), (0, import_vitest.expect)((0, import_fs.existsSync)(path)).toBe(!0);
13
+ }), (0, import_vitest.it)("resolves relative paths from cwd", function () {
14
+ var path = (0, import_index.resolvePath)("./package.json");
15
+ (0, import_vitest.expect)(path).toContain("package.json"), (0, import_vitest.expect)((0, import_fs.existsSync)(path)).toBe(!0);
16
+ });
17
+ }), (0, import_vitest.describe)("respects from parameter", function () {
18
+ (0, import_vitest.it)("resolves relative paths from specified directory", function () {
19
+ var path = (0, import_index.resolvePath)("./package.json", process.cwd());
20
+ (0, import_vitest.expect)(path).toBe(process.cwd() + "/package.json"), (0, import_vitest.expect)((0, import_fs.existsSync)(path)).toBe(!0);
21
+ }), (0, import_vitest.it)("resolves npm packages from specified directory", function () {
22
+ var path = (0, import_index.resolvePath)("vitest", process.cwd());
23
+ (0, import_vitest.expect)(path).toContain("vitest");
24
+ });
25
+ }), (0, import_vitest.describe)("ESM entry point detection", function () {
26
+ (0, import_vitest.it)('returns ESM entry when exports["."].import is a string', function () {
27
+ var path = (0, import_index.resolvePath)("@vxrn/resolve", process.cwd());
28
+ (0, import_vitest.expect)(path).toBeTruthy();
29
+ }), (0, import_vitest.it)('returns ESM entry when exports["."].import.default exists', function () {
30
+ var path = (0, import_index.resolvePath)("vitest", process.cwd());
31
+ (0, import_vitest.expect)(path).toContain("dist/index.js"), (0, import_vitest.expect)(path).not.toContain(".cjs");
32
+ }), (0, import_vitest.it)("falls back to module field when exports not available", function () {
33
+ var path = (0, import_index.resolvePath)("vitest", process.cwd());
34
+ (0, import_vitest.expect)(path).toBeTruthy();
35
+ }), (0, import_vitest.it)("falls back to main/require.resolve when no ESM entry", function () {
36
+ var path = (0, import_index.resolvePath)("resolve", process.cwd());
37
+ (0, import_vitest.expect)(path).toContain("resolve");
38
+ });
39
+ });
40
+ });
41
+ //# sourceMappingURL=index.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["import_vitest","require","import_index","import_fs","describe","it","expect","resolvePath","toBe","path","toBeTruthy","existsSync","toContain","process","cwd","not"],"sources":["../../src/index.test.ts"],"sourcesContent":[null],"mappings":"AAAA;;AAE2B,IAE3BA,aAAA,GAAAC,OAAA,CAAS;EAAAC,YAAqB,GAAAD,OAAA;EAAAE,SAAA,GAAAF,OAAA;AAC5B,IAAAD,aAAA,CAAAI,QAAA,eAAS,cAAoB;EAC3B,IAAAJ,aAAA,CAAAI,QAAG,kCAAgC;IACjC,IAAAJ,aAAA,CAAAK,EAAA,0BAAO,cAAY;MAEpB,IAAAL,aAED,CAAAM,MAAG,MAAAJ,YAAA,CAAAK,WAAyB,EAAM,cAAAC,IAAA,mBAAAR,aAAA,CAAAM,MAAA,MAAAJ,YAAA,CAAAK,WAAA,cAAAC,IAAA;IAChC,QAAMR,aAAO,CAAAK,EAAA,yBAAY,cAAQ;MACjC,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,UAAW,CACxB;MACD,IAAAP,aAED,CAAAM,MAAG,EAAAG,IAAA,EAAAC,UAAA,QAAAV,aAAoC,CAAAM,MAAM,MAAAH,SAAA,CAAAQ,UAAA,EAAAF,IAAA,GAAAD,IAAA;IAC3C,QAAMR,aAAO,CAAAK,EAAA,oCAAY,EAAgB;MACzC,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,kBAAwB;MAEtC,IAAAP,aAAA,CAAAM,MAAA,EAAAG,IAAA,EAAAG,SAAA,sBAAAZ,aAAA,CAAAM,MAAA,MAAAH,SAAA,CAAAQ,UAAA,EAAAF,IAAA,GAAAD,IAAA;IACF;EAGC,QAAAR,aAAA,CAAAI,QAAG;IAED,IAAAJ,aAAM,CAAAK,EAAO,oDAAsC,cAAK;MACxD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAW,kBAAgB,EAAAM,OAAA,CAAAC,GAAe;MAElD,IAAAd,aAED,CAAAM,MAAG,EAAAG,IAAA,EAAAD,IAAA,CAAAK,OAAA,CAAAC,GAAA,2BAAkDd,aAAM,CAAAM,MAAA,MAAAH,SAAA,CAAAQ,UAAA,EAAAF,IAAA,GAAAD,IAAA;IACzD,QAAMR,aAAO,CAAAK,EAAA,kDAAmC;MAChD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,UAAU,EAAQM,OAAA,CAAAC,GAAA;MAChC,IAAAd,aAAA,CAAAM,MAAA,EAAAG,IAAA,EAAAG,SAAA;IACF;EAGC,QAAAZ,aAAA,CAAAI,QAAG;IAED,IAAAJ,aAAM,CAAAK,EAAO,0DAA0C;MAEvD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,iBAAW,EAAAM,OAAA,CAAAC,GAAA;MACzB,IAAAd,aAED,CAAAM,MAAG,EAAAG,IAAA,EAAAC,UAAA;IAED,QAAMV,aAAO,CAAAK,EAAA,6DAAmC;MAChD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,UAAU,EAAAM,OAAe,CAAAC,GAAA,EACtC;MACD,IAAAd,aAED,CAAAM,MAAG,EAAAG,IAAA,EAAAG,SAAA,uBAAAZ,aAAA,CAAAM,MAAyD,EAAAG,IAAM,EAAAM,GAAA,CAAAH,SAAA;IAEhE,QAAMZ,aAAO,CAAAK,EAAA,yDAAmC;MAChD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,UAAW,EAAAM,OAAA,CAAAC,GAAA;MACzB,IAAAd,aAED,CAAAM,MAAG,EAAAG,IAAA,EAAAC,UAAA;IAED,QAAMV,aAAO,CAAAK,EAAA,wDAAoC;MACjD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,WAAU,EAASM,OAAA,CAAAC,GAAA;MACjC,IAAAd,aAAA,CAAAM,MAAA,EAAAG,IAAA,EAAAG,SAAA;IACF;EACF","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -1,11 +1,22 @@
1
1
  import module from "node:module";
2
- import { fileURLToPath } from "node:url";
3
- const resolver = "resolve" in import.meta ? (path, from) => fileURLToPath(import.meta.resolve(path, from)) : "url" in import.meta ? (path, from) => new URL(path, import.meta.url).pathname : require.resolve, resolverV2 = (path, from = process.cwd()) => module.createRequire(from).resolve(path, { paths: [from] }), resolvePath = (path, from = process.cwd()) => {
2
+ import { dirname, join } from "node:path";
3
+ import { readFileSync } from "node:fs";
4
+ const resolvePath = (path, from = process.cwd()) => {
5
+ const require2 = module.createRequire(from.endsWith("/") ? from : from + "/"), resolved = require2.resolve(path, { paths: [from] }), isRelative = path.startsWith("./") || path.startsWith("../"), isBuiltin = path.startsWith("node:");
6
+ if (isRelative || isBuiltin)
7
+ return resolved;
4
8
  try {
5
- return resolverV2(path, from);
9
+ const pkgJsonPath = require2.resolve(`${path}/package.json`, { paths: [from] }), pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf8")), pkgDir = dirname(pkgJsonPath), exportsImport = pkgJson.exports?.["."]?.import;
10
+ if (exportsImport) {
11
+ const importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
12
+ if (importPath)
13
+ return join(pkgDir, importPath);
14
+ }
15
+ if (pkgJson.module)
16
+ return join(pkgDir, pkgJson.module);
6
17
  } catch {
7
- return resolver(path, from);
8
18
  }
19
+ return resolved;
9
20
  };
10
21
  export {
11
22
  resolvePath
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.tsx"],
4
- "mappings": "AAAA,OAAO,YAAY;AACnB,SAAS,qBAAqB;AAE9B,MAAM,WACJ,aAAa,cACT,CAAC,MAAc,SAAkB,cAAc,YAAY,QAAQ,MAAM,IAAI,CAAC,IAC9E,SAAS,cACP,CAAC,MAAc,SAAkB,IAAI,IAAI,MAAM,YAAY,GAAG,EAAE,WAChE,QAAQ,SAEV,aAAa,CAAC,MAAc,OAAO,QAAQ,IAAI,MACnC,OAAO,cAAc,IAAI,EACd,QAAQ,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GAI/C,cAAc,CAAC,MAAc,OAAO,QAAQ,IAAI,MAAc;AACzE,MAAI;AACF,WAAO,WAAW,MAAM,IAAI;AAAA,EAC9B,QAAY;AACV,WAAO,SAAS,MAAM,IAAI;AAAA,EAC5B;AACF;",
5
- "names": []
4
+ "mappings": "AAAA,OAAO,YAAY;AACnB,SAAS,SAAS,YAAY;AAC9B,SAAS,oBAAoB;AAMtB,MAAM,cAAc,CAAC,MAAc,OAAO,QAAQ,IAAI,MAAc;AACzE,QAAMA,WAAU,OAAO,cAAc,KAAK,SAAS,GAAG,IAAI,OAAO,OAAO,GAAG,GACrE,WAAWA,SAAQ,QAAQ,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GAGlD,aAAa,KAAK,WAAW,IAAI,KAAK,KAAK,WAAW,KAAK,GAC3D,YAAY,KAAK,WAAW,OAAO;AACzC,MAAI,cAAc;AAChB,WAAO;AAIT,MAAI;AACF,UAAM,cAAcA,SAAQ,QAAQ,GAAG,IAAI,iBAAiB,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GACvE,UAAU,KAAK,MAAM,aAAa,aAAa,MAAM,CAAC,GACtD,SAAS,QAAQ,WAAW,GAG5B,gBAAgB,QAAQ,UAAU,GAAG,GAAG;AAC9C,QAAI,eAAe;AAEjB,YAAM,aACJ,OAAO,iBAAkB,WAAW,gBAAgB,cAAc;AACpE,UAAI;AACF,eAAO,KAAK,QAAQ,UAAU;AAAA,IAElC;AAGA,QAAI,QAAQ;AACV,aAAO,KAAK,QAAQ,QAAQ,MAAM;AAAA,EAEtC,QAAQ;AAAA,EAER;AAEA,SAAO;AACT;",
5
+ "names": ["require"]
6
6
  }
@@ -1,15 +1,28 @@
1
1
  import module from "node:module";
2
- import { fileURLToPath } from "node:url";
3
- const resolver = "resolve" in import.meta ? (path, from) => fileURLToPath(import.meta.resolve(path, from)) : "url" in import.meta ? (path, from) => new URL(path, import.meta.url).pathname : require.resolve,
4
- resolverV2 = (path, from = process.cwd()) => module.createRequire(from).resolve(path, {
5
- paths: [from]
6
- }),
7
- resolvePath = (path, from = process.cwd()) => {
8
- try {
9
- return resolverV2(path, from);
10
- } catch {
11
- return resolver(path, from);
2
+ import { dirname, join } from "node:path";
3
+ import { readFileSync } from "node:fs";
4
+ const resolvePath = (path, from = process.cwd()) => {
5
+ const require2 = module.createRequire(from.endsWith("/") ? from : from + "/"),
6
+ resolved = require2.resolve(path, {
7
+ paths: [from]
8
+ }),
9
+ isRelative = path.startsWith("./") || path.startsWith("../"),
10
+ isBuiltin = path.startsWith("node:");
11
+ if (isRelative || isBuiltin) return resolved;
12
+ try {
13
+ const pkgJsonPath = require2.resolve(`${path}/package.json`, {
14
+ paths: [from]
15
+ }),
16
+ pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf8")),
17
+ pkgDir = dirname(pkgJsonPath),
18
+ exportsImport = pkgJson.exports?.["."]?.import;
19
+ if (exportsImport) {
20
+ const importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
21
+ if (importPath) return join(pkgDir, importPath);
12
22
  }
13
- };
23
+ if (pkgJson.module) return join(pkgDir, pkgJson.module);
24
+ } catch {}
25
+ return resolved;
26
+ };
14
27
  export { resolvePath };
15
28
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["module","fileURLToPath","resolver","import","meta","path","from","resolve","URL","url","pathname","require","resolverV2","process","cwd","createRequire","paths","resolvePath"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,SAASC,aAAA,QAAqB;AAE9B,MAAMC,QAAA,GACJ,aAAaC,MAAA,CAAAC,IAAA,GACT,CAACC,IAAA,EAAcC,IAAA,KAAkBL,aAAA,CAAcE,MAAA,CAAAC,IAAA,CAAYG,OAAA,CAAQF,IAAA,EAAMC,IAAI,CAAC,IAC9E,SAASH,MAAA,CAAAC,IAAA,GACP,CAACC,IAAA,EAAcC,IAAA,KAAkB,IAAIE,GAAA,CAAIH,IAAA,EAAMF,MAAA,CAAAC,IAAA,CAAYK,GAAG,EAAEC,QAAA,GAChEC,OAAA,CAAQJ,OAAA;EAEVK,UAAA,GAAaA,CAACP,IAAA,EAAcC,IAAA,GAAOO,OAAA,CAAQC,GAAA,CAAI,MACnCd,MAAA,CAAOe,aAAA,CAAcT,IAAI,EACdC,OAAA,CAAQF,IAAA,EAAM;IAAEW,KAAA,EAAO,CAACV,IAAI;EAAE,CAAC;EAI/CW,WAAA,GAAcA,CAACZ,IAAA,EAAcC,IAAA,GAAOO,OAAA,CAAQC,GAAA,CAAI,MAAc;IACzE,IAAI;MACF,OAAOF,UAAA,CAAWP,IAAA,EAAMC,IAAI;IAC9B,QAAY;MACV,OAAOJ,QAAA,CAASG,IAAA,EAAMC,IAAI;IAC5B;EACF","ignoreList":[]}
1
+ {"version":3,"names":["module","dirname","join","readFileSync","resolvePath","path","from","process","cwd","require2","createRequire","endsWith","resolved","resolve","paths","isRelative","startsWith","isBuiltin","pkgJsonPath","pkgJson","JSON","parse","pkgDir","exportsImport","exports","import","importPath","default"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,SAASC,OAAA,EAASC,IAAA,QAAY;AAC9B,SAASC,YAAA,QAAoB;AAMtB,MAAMC,WAAA,GAAcA,CAACC,IAAA,EAAcC,IAAA,GAAOC,OAAA,CAAQC,GAAA,CAAI,MAAc;EACzE,MAAMC,QAAA,GAAUT,MAAA,CAAOU,aAAA,CAAcJ,IAAA,CAAKK,QAAA,CAAS,GAAG,IAAIL,IAAA,GAAOA,IAAA,GAAO,GAAG;IACrEM,QAAA,GAAWH,QAAA,CAAQI,OAAA,CAAQR,IAAA,EAAM;MAAES,KAAA,EAAO,CAACR,IAAI;IAAE,CAAC;IAGlDS,UAAA,GAAaV,IAAA,CAAKW,UAAA,CAAW,IAAI,KAAKX,IAAA,CAAKW,UAAA,CAAW,KAAK;IAC3DC,SAAA,GAAYZ,IAAA,CAAKW,UAAA,CAAW,OAAO;EACzC,IAAID,UAAA,IAAcE,SAAA,EAChB,OAAOL,QAAA;EAIT,IAAI;IACF,MAAMM,WAAA,GAAcT,QAAA,CAAQI,OAAA,CAAQ,GAAGR,IAAI,iBAAiB;QAAES,KAAA,EAAO,CAACR,IAAI;MAAE,CAAC;MACvEa,OAAA,GAAUC,IAAA,CAAKC,KAAA,CAAMlB,YAAA,CAAae,WAAA,EAAa,MAAM,CAAC;MACtDI,MAAA,GAASrB,OAAA,CAAQiB,WAAW;MAG5BK,aAAA,GAAgBJ,OAAA,CAAQK,OAAA,GAAU,GAAG,GAAGC,MAAA;IAC9C,IAAIF,aAAA,EAAe;MAEjB,MAAMG,UAAA,GACJ,OAAOH,aAAA,IAAkB,WAAWA,aAAA,GAAgBA,aAAA,CAAcI,OAAA;MACpE,IAAID,UAAA,EACF,OAAOxB,IAAA,CAAKoB,MAAA,EAAQI,UAAU;IAElC;IAGA,IAAIP,OAAA,CAAQnB,MAAA,EACV,OAAOE,IAAA,CAAKoB,MAAA,EAAQH,OAAA,CAAQnB,MAAM;EAEtC,QAAQ,CAER;EAEA,OAAOY,QAAA;AACT","ignoreList":[]}
@@ -1,25 +1,31 @@
1
1
  import module from "module";
2
- import { fileURLToPath } from "url";
3
- var resolver = "resolve" in import.meta ? function (path, from) {
4
- return fileURLToPath(import.meta.resolve(path, from));
5
- } : "url" in import.meta ? function (path, from) {
6
- return new URL(path, import.meta.url).pathname;
7
- } : require.resolve,
8
- resolverV2 = function (path) {
9
- var from = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.cwd(),
10
- _$require = module.createRequire(from),
11
- importPath = _$require.resolve(path, {
2
+ import { dirname, join } from "path";
3
+ import { readFileSync } from "fs";
4
+ var resolvePath = function (path) {
5
+ var from = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.cwd(),
6
+ require2 = module.createRequire(from.endsWith("/") ? from : from + "/"),
7
+ resolved = require2.resolve(path, {
8
+ paths: [from]
9
+ }),
10
+ isRelative = path.startsWith("./") || path.startsWith("../"),
11
+ isBuiltin = path.startsWith("node:");
12
+ if (isRelative || isBuiltin) return resolved;
13
+ try {
14
+ var _pkgJson_exports_,
15
+ _pkgJson_exports,
16
+ pkgJsonPath = require2.resolve(`${path}/package.json`, {
12
17
  paths: [from]
13
- });
14
- return importPath;
15
- },
16
- resolvePath = function (path) {
17
- var from = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.cwd();
18
- try {
19
- return resolverV2(path, from);
20
- } catch {
21
- return resolver(path, from);
18
+ }),
19
+ pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf8")),
20
+ pkgDir = dirname(pkgJsonPath),
21
+ exportsImport = (_pkgJson_exports = pkgJson.exports) === null || _pkgJson_exports === void 0 || (_pkgJson_exports_ = _pkgJson_exports["."]) === null || _pkgJson_exports_ === void 0 ? void 0 : _pkgJson_exports_.import;
22
+ if (exportsImport) {
23
+ var importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
24
+ if (importPath) return join(pkgDir, importPath);
22
25
  }
23
- };
26
+ if (pkgJson.module) return join(pkgDir, pkgJson.module);
27
+ } catch {}
28
+ return resolved;
29
+ };
24
30
  export { resolvePath };
25
31
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["module","fileURLToPath","resolver","import","meta","path","from","resolve","URL","url","pathname","require","resolverV2","arguments","length","process","cwd","_$require","createRequire","importPath","paths"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,SAASC,aAAA,QAAqB;AAE9B,IAAAC,QAAM,YACJ,IAAAC,MAAa,CAAAC,IAAA,aACMC,IAAA,EAAAC,IAAkB;IAYrC,OAAIL,aAAA,CAAAE,MAAA,CAAAC,IAAA,CAAAG,OAAA,CAAAF,IAAA,EAAAC,IAAA;EACF,aAAOH,MAAA,CAAAC,IAAW,aAAUC,IAAA,EAAAC,IAAA;IAC9B,WAAYE,GAAA,CAAAH,IAAA,EAAAF,MAAA,CAAAC,IAAA,CAAAK,GAAA,EAAAC,QAAA;EACV,IAAAC,OAAO,CAAAJ,OAAA;EAASK,UAAU,YAAAA,CAAAP,IAAA;IAC5B,IAAAC,IAAA,GAAAO,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,MAAAE,OAAA,CAAAC,GAAA;MAAAC,SAAA,GAAAjB,MAAA,CAAAkB,aAAA,CAAAZ,IAAA;MAAAa,UAAA,GAAAF,SAAA,CAAAV,OAAA,CAAAF,IAAA;QACFe,KAAA,G","ignoreList":[]}
1
+ {"version":3,"names":["module","dirname","join","readFileSync","resolvePath","path","from","arguments","length","process","cwd","require2","createRequire","endsWith","resolved","resolve","paths","isRelative","startsWith","isBuiltin","_pkgJson_exports_","_pkgJson_exports","pkgJsonPath","pkgJson","JSON","parse","pkgDir","exportsImport","exports","import","importPath","default"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,SAASC,OAAA,EAASC,IAAA,QAAY;AAC9B,SAASC,YAAA,QAAoB;AAMtB,IAAAC,WAAM,YAAAA,CAA6BC,IAAA;EACxC,IAAAC,IAAM,GAAAC,SAAU,CAAAC,MAAO,QAAAD,SAAmB,QAAS,KAAG,IAAIA,SAAO,GAAO,GAAGE,OACrE,CAAAC,GAAA;IAAWC,QAAQ,GAAAX,MAAQ,CAAAY,aAAe,CAACN,IAAI,CAAAO,QAG/C,QAAAP,IAAa,GAAKA,IAAA,OAAW;IAAAQ,QAAS,GAAAH,QAAK,CAAAI,OAAW,CAAKV,IAC3D;MACNW,KAAI,GACFV,IAAA;IAKA;IAAAW,UAAM,GAAAZ,IAAA,CAAca,UAAQ,UAAWb,IAAI,CAAAa,UAAA,MAAiB;IAAEC,SAAQ,GAAId,IAAG,CACvEa,UAAU,QAAK;EAKrB,IAAAD,UAAI,IAAAE,SAAe,EAEjB,OAAAL,QAAM;EAEN;IACE,IAAAM,iBAAY;MAAAC,gBAAkB;MAAAC,WAAA,GAAAX,QAAA,CAAAI,OAAA,IAAAV,IAAA;QAElCW,KAAA,GAGIV,IAAA;MAGN;MAAAiB,OAAQ,GAAAC,IAAA,CAAAC,KAAA,CAAAtB,YAAA,CAAAmB,WAAA;MAAAI,MAAA,GAAAzB,OAAA,CAAAqB,WAAA;MAAAK,aAAA,IAAAN,gBAAA,GAAAE,OAAA,CAAAK,OAAA,cAAAP,gBAAA,gBAAAD,iBAAA,GAAAC,gBAAA,mBAAAD,iBAAA,uBAAAA,iBAAA,CAAAS,MAAA;IAER,IAAAF,aAAA;MAEA,IAAOG,UAAA,UAAAH,aAAA,eAAAA,aAAA,GAAAA,aAAA,CAAAI,OAAA;MACT,IAAAD,UAAA,E","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { resolvePath } from "./index";
3
+ import { existsSync } from "node:fs";
4
+ describe("resolvePath", () => {
5
+ describe("basic resolution", () => {
6
+ it("resolves node builtins", () => {
7
+ expect(resolvePath("node:path")).toBe("node:path"), expect(resolvePath("node:fs")).toBe("node:fs");
8
+ }), it("resolves npm packages", () => {
9
+ const path = resolvePath("vitest");
10
+ expect(path).toBeTruthy(), expect(existsSync(path)).toBe(!0);
11
+ }), it("resolves relative paths from cwd", () => {
12
+ const path = resolvePath("./package.json");
13
+ expect(path).toContain("package.json"), expect(existsSync(path)).toBe(!0);
14
+ });
15
+ }), describe("respects from parameter", () => {
16
+ it("resolves relative paths from specified directory", () => {
17
+ const path = resolvePath("./package.json", process.cwd());
18
+ expect(path).toBe(process.cwd() + "/package.json"), expect(existsSync(path)).toBe(!0);
19
+ }), it("resolves npm packages from specified directory", () => {
20
+ const path = resolvePath("vitest", process.cwd());
21
+ expect(path).toContain("vitest");
22
+ });
23
+ }), describe("ESM entry point detection", () => {
24
+ it('returns ESM entry when exports["."].import is a string', () => {
25
+ const path = resolvePath("@vxrn/resolve", process.cwd());
26
+ expect(path).toBeTruthy();
27
+ }), it('returns ESM entry when exports["."].import.default exists', () => {
28
+ const path = resolvePath("vitest", process.cwd());
29
+ expect(path).toContain("dist/index.js"), expect(path).not.toContain(".cjs");
30
+ }), it("falls back to module field when exports not available", () => {
31
+ const path = resolvePath("vitest", process.cwd());
32
+ expect(path).toBeTruthy();
33
+ }), it("falls back to main/require.resolve when no ESM entry", () => {
34
+ const path = resolvePath("resolve", process.cwd());
35
+ expect(path).toContain("resolve");
36
+ });
37
+ });
38
+ });
39
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.test.ts"],
4
+ "mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AACrC,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAE3B,SAAS,eAAe,MAAM;AAC5B,WAAS,oBAAoB,MAAM;AACjC,OAAG,0BAA0B,MAAM;AACjC,aAAO,YAAY,WAAW,CAAC,EAAE,KAAK,WAAW,GACjD,OAAO,YAAY,SAAS,CAAC,EAAE,KAAK,SAAS;AAAA,IAC/C,CAAC,GAED,GAAG,yBAAyB,MAAM;AAChC,YAAM,OAAO,YAAY,QAAQ;AACjC,aAAO,IAAI,EAAE,WAAW,GACxB,OAAO,WAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC,GAED,GAAG,oCAAoC,MAAM;AAC3C,YAAM,OAAO,YAAY,gBAAgB;AACzC,aAAO,IAAI,EAAE,UAAU,cAAc,GACrC,OAAO,WAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC;AAAA,EACH,CAAC,GAED,SAAS,2BAA2B,MAAM;AACxC,OAAG,oDAAoD,MAAM;AAE3D,YAAM,OAAO,YAAY,kBAAkB,QAAQ,IAAI,CAAC;AACxD,aAAO,IAAI,EAAE,KAAK,QAAQ,IAAI,IAAI,eAAe,GACjD,OAAO,WAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC,GAED,GAAG,kDAAkD,MAAM;AACzD,YAAM,OAAO,YAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,aAAO,IAAI,EAAE,UAAU,QAAQ;AAAA,IACjC,CAAC;AAAA,EACH,CAAC,GAED,SAAS,6BAA6B,MAAM;AAC1C,OAAG,0DAA0D,MAAM;AAEjE,YAAM,OAAO,YAAY,iBAAiB,QAAQ,IAAI,CAAC;AAEvD,aAAO,IAAI,EAAE,WAAW;AAAA,IAC1B,CAAC,GAED,GAAG,6DAA6D,MAAM;AAEpE,YAAM,OAAO,YAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,aAAO,IAAI,EAAE,UAAU,eAAe,GACtC,OAAO,IAAI,EAAE,IAAI,UAAU,MAAM;AAAA,IACnC,CAAC,GAED,GAAG,yDAAyD,MAAM;AAEhE,YAAM,OAAO,YAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,aAAO,IAAI,EAAE,WAAW;AAAA,IAC1B,CAAC,GAED,GAAG,wDAAwD,MAAM;AAE/D,YAAM,OAAO,YAAY,WAAW,QAAQ,IAAI,CAAC;AACjD,aAAO,IAAI,EAAE,UAAU,SAAS;AAAA,IAClC,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,39 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { resolvePath } from "./index.mjs";
3
+ import { existsSync } from "node:fs";
4
+ describe("resolvePath", () => {
5
+ describe("basic resolution", () => {
6
+ it("resolves node builtins", () => {
7
+ expect(resolvePath("node:path")).toBe("node:path"), expect(resolvePath("node:fs")).toBe("node:fs");
8
+ }), it("resolves npm packages", () => {
9
+ const path = resolvePath("vitest");
10
+ expect(path).toBeTruthy(), expect(existsSync(path)).toBe(!0);
11
+ }), it("resolves relative paths from cwd", () => {
12
+ const path = resolvePath("./package.json");
13
+ expect(path).toContain("package.json"), expect(existsSync(path)).toBe(!0);
14
+ });
15
+ }), describe("respects from parameter", () => {
16
+ it("resolves relative paths from specified directory", () => {
17
+ const path = resolvePath("./package.json", process.cwd());
18
+ expect(path).toBe(process.cwd() + "/package.json"), expect(existsSync(path)).toBe(!0);
19
+ }), it("resolves npm packages from specified directory", () => {
20
+ const path = resolvePath("vitest", process.cwd());
21
+ expect(path).toContain("vitest");
22
+ });
23
+ }), describe("ESM entry point detection", () => {
24
+ it('returns ESM entry when exports["."].import is a string', () => {
25
+ const path = resolvePath("@vxrn/resolve", process.cwd());
26
+ expect(path).toBeTruthy();
27
+ }), it('returns ESM entry when exports["."].import.default exists', () => {
28
+ const path = resolvePath("vitest", process.cwd());
29
+ expect(path).toContain("dist/index.js"), expect(path).not.toContain(".cjs");
30
+ }), it("falls back to module field when exports not available", () => {
31
+ const path = resolvePath("vitest", process.cwd());
32
+ expect(path).toBeTruthy();
33
+ }), it("falls back to main/require.resolve when no ESM entry", () => {
34
+ const path = resolvePath("resolve", process.cwd());
35
+ expect(path).toContain("resolve");
36
+ });
37
+ });
38
+ });
39
+ //# sourceMappingURL=index.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","resolvePath","existsSync","toBe","path","toBeTruthy","toContain","process","cwd","not"],"sources":["../../src/index.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,WAAA,QAAmB;AAC5B,SAASC,UAAA,QAAkB;AAE3BJ,QAAA,CAAS,eAAe,MAAM;EAC5BA,QAAA,CAAS,oBAAoB,MAAM;IACjCE,EAAA,CAAG,0BAA0B,MAAM;MACjCD,MAAA,CAAOE,WAAA,CAAY,WAAW,CAAC,EAAEE,IAAA,CAAK,WAAW,GACjDJ,MAAA,CAAOE,WAAA,CAAY,SAAS,CAAC,EAAEE,IAAA,CAAK,SAAS;IAC/C,CAAC,GAEDH,EAAA,CAAG,yBAAyB,MAAM;MAChC,MAAMI,IAAA,GAAOH,WAAA,CAAY,QAAQ;MACjCF,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW,GACxBN,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC,GAEDH,EAAA,CAAG,oCAAoC,MAAM;MAC3C,MAAMI,IAAA,GAAOH,WAAA,CAAY,gBAAgB;MACzCF,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,cAAc,GACrCP,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC;EACH,CAAC,GAEDL,QAAA,CAAS,2BAA2B,MAAM;IACxCE,EAAA,CAAG,oDAAoD,MAAM;MAE3D,MAAMI,IAAA,GAAOH,WAAA,CAAY,kBAAkBM,OAAA,CAAQC,GAAA,CAAI,CAAC;MACxDT,MAAA,CAAOK,IAAI,EAAED,IAAA,CAAKI,OAAA,CAAQC,GAAA,CAAI,IAAI,eAAe,GACjDT,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC,GAEDH,EAAA,CAAG,kDAAkD,MAAM;MACzD,MAAMI,IAAA,GAAOH,WAAA,CAAY,UAAUM,OAAA,CAAQC,GAAA,CAAI,CAAC;MAChDT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,QAAQ;IACjC,CAAC;EACH,CAAC,GAEDR,QAAA,CAAS,6BAA6B,MAAM;IAC1CE,EAAA,CAAG,0DAA0D,MAAM;MAEjE,MAAMI,IAAA,GAAOH,WAAA,CAAY,iBAAiBM,OAAA,CAAQC,GAAA,CAAI,CAAC;MAEvDT,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW;IAC1B,CAAC,GAEDL,EAAA,CAAG,6DAA6D,MAAM;MAEpE,MAAMI,IAAA,GAAOH,WAAA,CAAY,UAAUM,OAAA,CAAQC,GAAA,CAAI,CAAC;MAChDT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,eAAe,GACtCP,MAAA,CAAOK,IAAI,EAAEK,GAAA,CAAIH,SAAA,CAAU,MAAM;IACnC,CAAC,GAEDN,EAAA,CAAG,yDAAyD,MAAM;MAEhE,MAAMI,IAAA,GAAOH,WAAA,CAAY,UAAUM,OAAA,CAAQC,GAAA,CAAI,CAAC;MAChDT,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW;IAC1B,CAAC,GAEDL,EAAA,CAAG,wDAAwD,MAAM;MAE/D,MAAMI,IAAA,GAAOH,WAAA,CAAY,WAAWM,OAAA,CAAQC,GAAA,CAAI,CAAC;MACjDT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,SAAS;IAClC,CAAC;EACH,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { resolvePath } from "./index.native.js";
3
+ import { existsSync } from "fs";
4
+ describe("resolvePath", function () {
5
+ describe("basic resolution", function () {
6
+ it("resolves node builtins", function () {
7
+ expect(resolvePath("node:path")).toBe("node:path"), expect(resolvePath("node:fs")).toBe("node:fs");
8
+ }), it("resolves npm packages", function () {
9
+ var path = resolvePath("vitest");
10
+ expect(path).toBeTruthy(), expect(existsSync(path)).toBe(!0);
11
+ }), it("resolves relative paths from cwd", function () {
12
+ var path = resolvePath("./package.json");
13
+ expect(path).toContain("package.json"), expect(existsSync(path)).toBe(!0);
14
+ });
15
+ }), describe("respects from parameter", function () {
16
+ it("resolves relative paths from specified directory", function () {
17
+ var path = resolvePath("./package.json", process.cwd());
18
+ expect(path).toBe(process.cwd() + "/package.json"), expect(existsSync(path)).toBe(!0);
19
+ }), it("resolves npm packages from specified directory", function () {
20
+ var path = resolvePath("vitest", process.cwd());
21
+ expect(path).toContain("vitest");
22
+ });
23
+ }), describe("ESM entry point detection", function () {
24
+ it('returns ESM entry when exports["."].import is a string', function () {
25
+ var path = resolvePath("@vxrn/resolve", process.cwd());
26
+ expect(path).toBeTruthy();
27
+ }), it('returns ESM entry when exports["."].import.default exists', function () {
28
+ var path = resolvePath("vitest", process.cwd());
29
+ expect(path).toContain("dist/index.js"), expect(path).not.toContain(".cjs");
30
+ }), it("falls back to module field when exports not available", function () {
31
+ var path = resolvePath("vitest", process.cwd());
32
+ expect(path).toBeTruthy();
33
+ }), it("falls back to main/require.resolve when no ESM entry", function () {
34
+ var path = resolvePath("resolve", process.cwd());
35
+ expect(path).toContain("resolve");
36
+ });
37
+ });
38
+ });
39
+ //# sourceMappingURL=index.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","resolvePath","existsSync","toBe","path","toBeTruthy","toContain","process","cwd","not"],"sources":["../../src/index.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,WAAA,QAAmB;AAC5B,SAASC,UAAA,QAAkB;AAE3BJ,QAAA,CAAS,eAAe,YAAM;EAC5BA,QAAA,CAAS,oBAAoB,YAAM;IACjCE,EAAA,CAAG,0BAA0B,YAAM;MACjCD,MAAA,CAAOE,WAAA,CAAY,WAAW,CAAC,EAAEE,IAAA,CAAK,WAAW,GACjDJ,MAAA,CAAOE,WAAA,CAAY,SAAS,CAAC,EAAEE,IAAA,CAAK,SAAS;IAC/C,CAAC,GAEDH,EAAA,CAAG,yBAAyB,YAAM;MAChC,IAAAI,IAAM,GAAAH,WAAO,SAAY;MACzBF,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW,GACxBN,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC,GAEDH,EAAA,CAAG,oCAAoC,YAAM;MAC3C,IAAAI,IAAM,GAAAH,WAAO,iBAAY;MACzBF,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,cAAc,GACrCP,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC;EACH,CAAC,GAEDL,QAAA,CAAS,2BAA2B,YAAM;IACxCE,EAAA,CAAG,oDAAoD,YAAM;MAE3D,IAAAI,IAAM,GAAAH,WAAO,iBAAY,EAAAM,OAAkB,CAAAC,GAAQ,GAAI;MACvDT,MAAA,CAAOK,IAAI,EAAED,IAAA,CAAKI,OAAA,CAAQC,GAAA,CAAI,IAAI,eAAe,GACjDT,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC,GAEDH,EAAA,CAAG,kDAAkD,YAAM;MACzD,IAAAI,IAAM,GAAAH,WAAO,SAAY,EAAAM,OAAU,CAAAC,GAAQ,GAAI;MAC/CT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,QAAQ;IACjC,CAAC;EACH,CAAC,GAEDR,QAAA,CAAS,6BAA6B,YAAM;IAC1CE,EAAA,CAAG,0DAA0D,YAAM;MAEjE,IAAAI,IAAM,GAAAH,WAAO,gBAAY,EAAAM,OAAiB,CAAAC,GAAQ,GAAI;MAEtDT,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW;IAC1B,CAAC,GAEDL,EAAA,CAAG,6DAA6D,YAAM;MAEpE,IAAAI,IAAM,GAAAH,WAAO,SAAY,EAAAM,OAAU,CAAAC,GAAQ,GAAI;MAC/CT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,eAAe,GACtCP,MAAA,CAAOK,IAAI,EAAEK,GAAA,CAAIH,SAAA,CAAU,MAAM;IACnC,CAAC,GAEDN,EAAA,CAAG,yDAAyD,YAAM;MAEhE,IAAAI,IAAM,GAAAH,WAAO,SAAY,EAAAM,OAAU,CAAAC,GAAQ,GAAI;MAC/CT,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW;IAC1B,CAAC,GAEDL,EAAA,CAAG,wDAAwD,YAAM;MAE/D,IAAAI,IAAM,GAAAH,WAAO,UAAY,EAAAM,OAAW,CAAAC,GAAQ,GAAI;MAChDT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,SAAS;IAClC,CAAC;EACH,CAAC;AACH,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vxrn/resolve",
3
- "version": "1.2.48",
3
+ "version": "1.2.49",
4
4
  "sideEffects": false,
5
5
  "source": "src/index.tsx",
6
6
  "type": "module",
@@ -17,7 +17,8 @@
17
17
  },
18
18
  "files": [
19
19
  "src",
20
- "dist"
20
+ "dist",
21
+ "types"
21
22
  ],
22
23
  "scripts": {
23
24
  "build": "tamagui-build",
@@ -25,10 +26,12 @@
25
26
  "lint": "npx biome check src",
26
27
  "lint:fix": "npx biome check --write --unsafe src",
27
28
  "clean": "tamagui-build clean",
28
- "clean:build": "tamagui-build clean:build"
29
+ "clean:build": "tamagui-build clean:build",
30
+ "test": "vitest run --dir src"
29
31
  },
30
32
  "devDependencies": {
31
- "@tamagui/build": "^1.144.0"
33
+ "@tamagui/build": "^1.144.0",
34
+ "vitest": "^4.0.6"
32
35
  },
33
36
  "publishConfig": {
34
37
  "access": "public"
@@ -0,0 +1,66 @@
1
+ import { describe, expect, it } from 'vitest'
2
+ import { resolvePath } from './index'
3
+ import { existsSync } from 'node:fs'
4
+
5
+ describe('resolvePath', () => {
6
+ describe('basic resolution', () => {
7
+ it('resolves node builtins', () => {
8
+ expect(resolvePath('node:path')).toBe('node:path')
9
+ expect(resolvePath('node:fs')).toBe('node:fs')
10
+ })
11
+
12
+ it('resolves npm packages', () => {
13
+ const path = resolvePath('vitest')
14
+ expect(path).toBeTruthy()
15
+ expect(existsSync(path)).toBe(true)
16
+ })
17
+
18
+ it('resolves relative paths from cwd', () => {
19
+ const path = resolvePath('./package.json')
20
+ expect(path).toContain('package.json')
21
+ expect(existsSync(path)).toBe(true)
22
+ })
23
+ })
24
+
25
+ describe('respects from parameter', () => {
26
+ it('resolves relative paths from specified directory', () => {
27
+ // Use process.cwd() which is the repo root when running tests
28
+ const path = resolvePath('./package.json', process.cwd())
29
+ expect(path).toBe(process.cwd() + '/package.json')
30
+ expect(existsSync(path)).toBe(true)
31
+ })
32
+
33
+ it('resolves npm packages from specified directory', () => {
34
+ const path = resolvePath('vitest', process.cwd())
35
+ expect(path).toContain('vitest')
36
+ })
37
+ })
38
+
39
+ describe('ESM entry point detection', () => {
40
+ it('returns ESM entry when exports["."].import is a string', () => {
41
+ // Most @tamagui packages have this pattern
42
+ const path = resolvePath('@vxrn/resolve', process.cwd())
43
+ // Should resolve to ESM if available
44
+ expect(path).toBeTruthy()
45
+ })
46
+
47
+ it('returns ESM entry when exports["."].import.default exists', () => {
48
+ // vitest has nested structure: { import: { types: "...", default: "..." } }
49
+ const path = resolvePath('vitest', process.cwd())
50
+ expect(path).toContain('dist/index.js')
51
+ expect(path).not.toContain('.cjs')
52
+ })
53
+
54
+ it('falls back to module field when exports not available', () => {
55
+ // Some packages only have "module" field
56
+ const path = resolvePath('vitest', process.cwd())
57
+ expect(path).toBeTruthy()
58
+ })
59
+
60
+ it('falls back to main/require.resolve when no ESM entry', () => {
61
+ // resolve package is CJS-only (no exports field, just main)
62
+ const path = resolvePath('resolve', process.cwd())
63
+ expect(path).toContain('resolve')
64
+ })
65
+ })
66
+ })
package/src/index.tsx CHANGED
@@ -1,23 +1,46 @@
1
1
  import module from 'node:module'
2
- import { fileURLToPath } from 'node:url'
2
+ import { dirname, join } from 'node:path'
3
+ import { readFileSync } from 'node:fs'
3
4
 
4
- const resolver =
5
- 'resolve' in import.meta
6
- ? (path: string, from?: string) => fileURLToPath(import.meta.resolve(path, from))
7
- : 'url' in import.meta
8
- ? (path: string, from?: string) => new URL(path, import.meta.url).pathname
9
- : require.resolve
5
+ /**
6
+ * Resolves a module path from the specified directory.
7
+ * For npm packages, returns the ESM entry point when available.
8
+ */
9
+ export const resolvePath = (path: string, from = process.cwd()): string => {
10
+ const require = module.createRequire(from.endsWith('/') ? from : from + '/')
11
+ const resolved = require.resolve(path, { paths: [from] })
10
12
 
11
- const resolverV2 = (path: string, from = process.cwd()) => {
12
- const require = module.createRequire(from)
13
- const importPath = require.resolve(path, { paths: [from] })
14
- return importPath
15
- }
13
+ // For relative paths or node: builtins, just return the resolved path
14
+ const isRelative = path.startsWith('./') || path.startsWith('../')
15
+ const isBuiltin = path.startsWith('node:')
16
+ if (isRelative || isBuiltin) {
17
+ return resolved
18
+ }
16
19
 
17
- export const resolvePath = (path: string, from = process.cwd()): string => {
20
+ // For npm packages, try to find ESM entry point from package.json
18
21
  try {
19
- return resolverV2(path, from)
20
- } catch (e) {
21
- return resolver(path, from)
22
+ const pkgJsonPath = require.resolve(`${path}/package.json`, { paths: [from] })
23
+ const pkgJson = JSON.parse(readFileSync(pkgJsonPath, 'utf8'))
24
+ const pkgDir = dirname(pkgJsonPath)
25
+
26
+ // Check exports["."].import first (most accurate for ESM)
27
+ const exportsImport = pkgJson.exports?.['.']?.import
28
+ if (exportsImport) {
29
+ // Handle nested structure like { import: { types: "...", default: "..." } }
30
+ const importPath =
31
+ typeof exportsImport === 'string' ? exportsImport : exportsImport.default
32
+ if (importPath) {
33
+ return join(pkgDir, importPath)
34
+ }
35
+ }
36
+
37
+ // Fall back to module field
38
+ if (pkgJson.module) {
39
+ return join(pkgDir, pkgJson.module)
40
+ }
41
+ } catch {
42
+ // Fall back to resolved path if we can't read package.json
22
43
  }
44
+
45
+ return resolved
23
46
  }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Resolves a module path from the specified directory.
3
+ * For npm packages, returns the ESM entry point when available.
4
+ */
5
+ export declare const resolvePath: (path: string, from?: string) => string;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,aAAoB,KAAG,MAqChE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}