@tamagui/babel-plugin-fully-specified 1.135.4 → 1.135.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/package.json +2 -3
  2. package/permanent/cjs/commonjs.js +2 -2
  3. package/permanent/cjs/commonjs.js.map +1 -1
  4. package/permanent/cjs/commonjs.mjs +71 -0
  5. package/permanent/cjs/commonjs.mjs.map +1 -0
  6. package/permanent/cjs/index.js +25 -4
  7. package/permanent/cjs/index.js.map +1 -1
  8. package/permanent/cjs/index.mjs +165 -0
  9. package/permanent/cjs/index.mjs.map +1 -0
  10. package/permanent/esm/commonjs.js +2 -2
  11. package/permanent/esm/commonjs.js.map +1 -1
  12. package/permanent/esm/commonjs.mjs +2 -2
  13. package/permanent/esm/commonjs.mjs.map +1 -1
  14. package/permanent/esm/index.js +15 -1
  15. package/permanent/esm/index.js.map +1 -1
  16. package/permanent/esm/index.mjs +13 -1
  17. package/permanent/esm/index.mjs.map +1 -1
  18. package/src/commonjs.ts +8 -3
  19. package/src/index.ts +34 -1
  20. package/src/__tests__/__snapshots__/index.test.ts.snap +0 -6
  21. package/src/__tests__/fixtures/force-extension/bar.js +0 -1
  22. package/src/__tests__/fixtures/force-extension/foo.js +0 -1
  23. package/src/__tests__/fixtures/multiple-extensions-exists/modules/module.cjs +0 -2
  24. package/src/__tests__/fixtures/multiple-extensions-exists/modules/module.js +0 -2
  25. package/src/__tests__/fixtures/multiple-extensions-exists/modules/module.mjs +0 -4
  26. package/src/__tests__/fixtures/multiple-extensions-exists/test.mjs +0 -2
  27. package/src/__tests__/fixtures/sample-project-1/modules/cjs-module.cjs +0 -2
  28. package/src/__tests__/fixtures/sample-project-1/modules/module.mjs +0 -4
  29. package/src/__tests__/fixtures/sample-project-1/test.mjs +0 -13
  30. package/src/__tests__/index.test.ts +0 -115
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@tamagui/babel-plugin-fully-specified",
3
- "version": "1.135.4",
3
+ "version": "1.135.5",
4
4
  "source": "src/index.ts",
5
- "types": "./types/index.d.ts",
6
5
  "main": "permanent/cjs/index.js",
7
6
  "module": "permanent/esm/index.mjs",
8
7
  "files": [
@@ -37,7 +36,7 @@
37
36
  },
38
37
  "devDependencies": {
39
38
  "@babel/types": "^7.25.4",
40
- "vitest": "^3.2.4"
39
+ "vitest": "^4.0.4"
41
40
  },
42
41
  "gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14"
43
42
  }
@@ -18,7 +18,7 @@ __export(commonjs_exports, {
18
18
  });
19
19
  module.exports = __toCommonJS(commonjs_exports);
20
20
  var import_node_fs = require("node:fs"), import_node_path = require("node:path");
21
- function fullySpecifyCommonJS(api) {
21
+ function fullySpecifyCommonJS(api, options) {
22
22
  return api.assertVersion(7), {
23
23
  name: "babel-plugin-fully-specified-cjs",
24
24
  visitor: {
@@ -30,7 +30,7 @@ function fullySpecifyCommonJS(api) {
30
30
  if (moduleSpecifier.startsWith(".") || moduleSpecifier.startsWith("/")) {
31
31
  const filePath = state.file.opts.filename;
32
32
  if (!filePath) return;
33
- const fileDir = (0, import_node_path.dirname)(filePath), cjsExtension = ".cjs", jsExtension = ".js";
33
+ const fileDir = (0, import_node_path.dirname)(filePath), cjsExtension = options.esExtensionDefault || ".cjs", jsExtension = ".js";
34
34
  if (!(0, import_node_path.extname)(moduleSpecifier)) {
35
35
  const resolvedPath = (0, import_node_path.resolve)(fileDir, moduleSpecifier);
36
36
  let newModuleSpecifier = moduleSpecifier;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/commonjs.ts"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsC,oBACtC,mBAA0C;AAE3B,SAAR,qBAAsC,KAA2B;AACtE,aAAI,cAAc,CAAC,GAEZ;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,MACP,eAAe,MAAM,OAAO;AAG1B,YAFe,KAAK,IAAI,QAAQ,EAGvB,aAAa,EAAE,MAAM,UAAU,CAAC,KACvC,KAAK,KAAK,UAAU,WAAW,GAC/B;AACA,gBAAM,MAAM,KAAK,KAAK,UAAU,CAAC;AACjC,cAAI,IAAI,SAAS,iBAAiB;AAChC,gBAAI,kBAAkB,IAAI;AAG1B,gBAAI,gBAAgB,WAAW,GAAG,KAAK,gBAAgB,WAAW,GAAG,GAAG;AACtE,oBAAM,WAAW,MAAM,KAAK,KAAK;AACjC,kBAAI,CAAC,SAAU;AAEf,oBAAM,cAAU,0BAAQ,QAAQ,GAC1B,eAAe,QACf,cAAc;AAGpB,kBAAI,KAAC,0BAAQ,eAAe,GAAG;AAC7B,sBAAM,mBAAe,0BAAQ,SAAS,eAAe;AACrD,oBAAI,qBAAqB;AAGzB,oBAAI,iBAAiB,YAAY,GAAG;AAClC,wBAAM,gBAAY,0BAAQ,cAAc,UAAU,WAAW;AAC7D,0BAAI,2BAAW,SAAS,GAAG;AAEzB,oBAAK,mBAAmB,SAAS,GAAG,MAClC,sBAAsB,MAExB,sBAAsB,UAAU,cAChC,IAAI,QAAQ;AACZ;AAAA,kBACF;AAAA,gBACF;AAGA,sBAAM,iBAAiB,eAAe;AACtC,wBAAI,2BAAW,cAAc,GAAG;AAC9B,wCAAsB,cACtB,IAAI,QAAQ;AACZ;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,cAAc;AACtC,aAAO,2BAAW,YAAY,SAAK,0BAAU,YAAY,EAAE,YAAY;AACzE;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsC,oBACtC,mBAA0C;AAE3B,SAAR,qBACL,KACA,SAGiB;AACjB,aAAI,cAAc,CAAC,GAEZ;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,MACP,eAAe,MAAM,OAAO;AAG1B,YAFe,KAAK,IAAI,QAAQ,EAGvB,aAAa,EAAE,MAAM,UAAU,CAAC,KACvC,KAAK,KAAK,UAAU,WAAW,GAC/B;AACA,gBAAM,MAAM,KAAK,KAAK,UAAU,CAAC;AACjC,cAAI,IAAI,SAAS,iBAAiB;AAChC,gBAAI,kBAAkB,IAAI;AAG1B,gBAAI,gBAAgB,WAAW,GAAG,KAAK,gBAAgB,WAAW,GAAG,GAAG;AACtE,oBAAM,WAAW,MAAM,KAAK,KAAK;AACjC,kBAAI,CAAC,SAAU;AAEf,oBAAM,cAAU,0BAAQ,QAAQ,GAC1B,eAAe,QAAQ,sBAAsB,QAC7C,cAAc;AAGpB,kBAAI,KAAC,0BAAQ,eAAe,GAAG;AAC7B,sBAAM,mBAAe,0BAAQ,SAAS,eAAe;AACrD,oBAAI,qBAAqB;AAGzB,oBAAI,iBAAiB,YAAY,GAAG;AAClC,wBAAM,gBAAY,0BAAQ,cAAc,UAAU,WAAW;AAC7D,0BAAI,2BAAW,SAAS,GAAG;AAEzB,oBAAK,mBAAmB,SAAS,GAAG,MAClC,sBAAsB,MAExB,sBAAsB,UAAU,cAChC,IAAI,QAAQ;AACZ;AAAA,kBACF;AAAA,gBACF;AAGA,sBAAM,iBAAiB,eAAe;AACtC,wBAAI,2BAAW,cAAc,GAAG;AAC9B,wCAAsB,cACtB,IAAI,QAAQ;AACZ;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,cAA+B;AACvD,aAAO,2BAAW,YAAY,SAAK,0BAAU,YAAY,EAAE,YAAY;AACzE;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,71 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var commonjs_exports = {};
22
+ __export(commonjs_exports, {
23
+ default: () => fullySpecifyCommonJS
24
+ });
25
+ module.exports = __toCommonJS(commonjs_exports);
26
+ var import_node_fs = require("node:fs"),
27
+ import_node_path = require("node:path");
28
+ function fullySpecifyCommonJS(api, options) {
29
+ return api.assertVersion(7), {
30
+ name: "babel-plugin-fully-specified-cjs",
31
+ visitor: {
32
+ CallExpression(path, state) {
33
+ if (path.get("callee").isIdentifier({
34
+ name: "require"
35
+ }) && path.node.arguments.length === 1) {
36
+ const arg = path.node.arguments[0];
37
+ if (arg.type === "StringLiteral") {
38
+ let moduleSpecifier = arg.value;
39
+ if (moduleSpecifier.startsWith(".") || moduleSpecifier.startsWith("/")) {
40
+ const filePath = state.file.opts.filename;
41
+ if (!filePath) return;
42
+ const fileDir = (0, import_node_path.dirname)(filePath),
43
+ cjsExtension = options.esExtensionDefault || ".cjs",
44
+ jsExtension = ".js";
45
+ if (!(0, import_node_path.extname)(moduleSpecifier)) {
46
+ const resolvedPath = (0, import_node_path.resolve)(fileDir, moduleSpecifier);
47
+ let newModuleSpecifier = moduleSpecifier;
48
+ if (isLocalDirectory(resolvedPath)) {
49
+ const indexPath = (0, import_node_path.resolve)(resolvedPath, "index" + jsExtension);
50
+ if ((0, import_node_fs.existsSync)(indexPath)) {
51
+ newModuleSpecifier.endsWith("/") || (newModuleSpecifier += "/"), newModuleSpecifier += "index" + cjsExtension, arg.value = newModuleSpecifier;
52
+ return;
53
+ }
54
+ }
55
+ const filePathWithJs = resolvedPath + jsExtension;
56
+ if ((0, import_node_fs.existsSync)(filePathWithJs)) {
57
+ newModuleSpecifier += cjsExtension, arg.value = newModuleSpecifier;
58
+ return;
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ };
67
+ }
68
+ function isLocalDirectory(absolutePath) {
69
+ return (0, import_node_fs.existsSync)(absolutePath) && (0, import_node_fs.lstatSync)(absolutePath).isDirectory();
70
+ }
71
+ //# sourceMappingURL=commonjs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["commonjs_exports","__export","default","fullySpecifyCommonJS","module","exports","__toCommonJS","import_node_fs","require","import_node_path","api","options","assertVersion","name","visitor","CallExpression","path","state","get","isIdentifier","node","arguments","length","arg","type","moduleSpecifier","value","startsWith","filePath","file","opts","filename","fileDir","dirname","cjsExtension","esExtensionDefault","jsExtension","extname","resolvedPath","resolve","newModuleSpecifier","isLocalDirectory","indexPath","existsSync","endsWith","filePathWithJs","absolutePath","lstatSync","isDirectory"],"sources":["../../src/commonjs.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA;AAAAC,QAAA,CAAAD,gBAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAC;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAN,gBAAA;AAAA,IAAAO,cAAA,GAAsCC,OAAA;EACtCC,gBAAA,GAA0CD,OAAA;AAE3B,SAARL,qBACLO,GAAA,EACAC,OAAA,EAGiB;EACjB,OAAAD,GAAA,CAAIE,aAAA,CAAc,CAAC,GAEZ;IACLC,IAAA,EAAM;IACNC,OAAA,EAAS;MACPC,eAAeC,IAAA,EAAMC,KAAA,EAAO;QAG1B,IAFeD,IAAA,CAAKE,GAAA,CAAI,QAAQ,EAGvBC,YAAA,CAAa;UAAEN,IAAA,EAAM;QAAU,CAAC,KACvCG,IAAA,CAAKI,IAAA,CAAKC,SAAA,CAAUC,MAAA,KAAW,GAC/B;UACA,MAAMC,GAAA,GAAMP,IAAA,CAAKI,IAAA,CAAKC,SAAA,CAAU,CAAC;UACjC,IAAIE,GAAA,CAAIC,IAAA,KAAS,iBAAiB;YAChC,IAAIC,eAAA,GAAkBF,GAAA,CAAIG,KAAA;YAG1B,IAAID,eAAA,CAAgBE,UAAA,CAAW,GAAG,KAAKF,eAAA,CAAgBE,UAAA,CAAW,GAAG,GAAG;cACtE,MAAMC,QAAA,GAAWX,KAAA,CAAMY,IAAA,CAAKC,IAAA,CAAKC,QAAA;cACjC,IAAI,CAACH,QAAA,EAAU;cAEf,MAAMI,OAAA,OAAUvB,gBAAA,CAAAwB,OAAA,EAAQL,QAAQ;gBAC1BM,YAAA,GAAevB,OAAA,CAAQwB,kBAAA,IAAsB;gBAC7CC,WAAA,GAAc;cAGpB,IAAI,KAAC3B,gBAAA,CAAA4B,OAAA,EAAQZ,eAAe,GAAG;gBAC7B,MAAMa,YAAA,OAAe7B,gBAAA,CAAA8B,OAAA,EAAQP,OAAA,EAASP,eAAe;gBACrD,IAAIe,kBAAA,GAAqBf,eAAA;gBAGzB,IAAIgB,gBAAA,CAAiBH,YAAY,GAAG;kBAClC,MAAMI,SAAA,OAAYjC,gBAAA,CAAA8B,OAAA,EAAQD,YAAA,EAAc,UAAUF,WAAW;kBAC7D,QAAI7B,cAAA,CAAAoC,UAAA,EAAWD,SAAS,GAAG;oBAEpBF,kBAAA,CAAmBI,QAAA,CAAS,GAAG,MAClCJ,kBAAA,IAAsB,MAExBA,kBAAA,IAAsB,UAAUN,YAAA,EAChCX,GAAA,CAAIG,KAAA,GAAQc,kBAAA;oBACZ;kBACF;gBACF;gBAGA,MAAMK,cAAA,GAAiBP,YAAA,GAAeF,WAAA;gBACtC,QAAI7B,cAAA,CAAAoC,UAAA,EAAWE,cAAc,GAAG;kBAC9BL,kBAAA,IAAsBN,YAAA,EACtBX,GAAA,CAAIG,KAAA,GAAQc,kBAAA;kBACZ;gBACF;cACF;YACF;UACF;QACF;MACF;IACF;EACF;AACF;AAEA,SAASC,iBAAiBK,YAAA,EAA+B;EACvD,WAAOvC,cAAA,CAAAoC,UAAA,EAAWG,YAAY,SAAKvC,cAAA,CAAAwC,SAAA,EAAUD,YAAY,EAAEE,WAAA,CAAY;AACzE","ignoreList":[]}
@@ -1,7 +1,8 @@
1
+ var __create = Object.create;
1
2
  var __defProp = Object.defineProperty;
2
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
5
6
  var __export = (target, all) => {
6
7
  for (var name in all)
7
8
  __defProp(target, name, { get: all[name], enumerable: !0 });
@@ -11,18 +12,26 @@ var __export = (target, all) => {
11
12
  !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
13
  return to;
13
14
  };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
+ // If the importer is in node compatibility mode or this is not an ESM
17
+ // file that has been converted to a CommonJS file using a Babel-
18
+ // compatible transform (i.e. "__esModule" has not been set), then set
19
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
+ mod
22
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
23
  var index_exports = {};
16
24
  __export(index_exports, {
17
25
  default: () => FullySpecified
18
26
  });
19
27
  module.exports = __toCommonJS(index_exports);
20
- var import_node_fs = require("node:fs"), import_node_path = require("node:path");
28
+ var import_node_fs = require("node:fs"), import_node_path = require("node:path"), t = __toESM(require("@babel/types"));
21
29
  const DEFAULT_OPTIONS = {
22
30
  ensureFileExists: !0,
23
31
  esExtensionDefault: ".mjs",
24
32
  tryExtensions: [".js"],
25
- esExtensions: [".mjs"]
33
+ esExtensions: [".mjs"],
34
+ convertProcessEnvToImportMetaEnv: !1
26
35
  };
27
36
  function FullySpecified(api, rawOptions) {
28
37
  api.assertVersion(7);
@@ -78,6 +87,18 @@ function FullySpecified(api, rawOptions) {
78
87
  }
79
88
  );
80
89
  fullySpecifiedModuleSpecifier && (firstArgOfImportCall.value = fullySpecifiedModuleSpecifier);
90
+ },
91
+ MemberExpression: (path) => {
92
+ if (!options.convertProcessEnvToImportMetaEnv) return;
93
+ const { node } = path;
94
+ if (node.object.type === "MemberExpression" && node.object.object.type === "Identifier" && node.object.object.name === "process" && node.object.property.type === "Identifier" && node.object.property.name === "env") {
95
+ if (node.property.type === "Identifier" && node.property.name === "NODE_ENV")
96
+ return;
97
+ node.object = t.memberExpression(
98
+ t.metaProperty(t.identifier("import"), t.identifier("meta")),
99
+ t.identifier("env")
100
+ );
101
+ }
81
102
  }
82
103
  }
83
104
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,165 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var index_exports = {};
33
+ __export(index_exports, {
34
+ default: () => FullySpecified
35
+ });
36
+ module.exports = __toCommonJS(index_exports);
37
+ var import_node_fs = require("node:fs"),
38
+ import_node_path = require("node:path"),
39
+ t = __toESM(require("@babel/types"));
40
+ const DEFAULT_OPTIONS = {
41
+ ensureFileExists: !0,
42
+ esExtensionDefault: ".mjs",
43
+ tryExtensions: [".js"],
44
+ esExtensions: [".mjs"],
45
+ convertProcessEnvToImportMetaEnv: !1
46
+ };
47
+ function FullySpecified(api, rawOptions) {
48
+ api.assertVersion(7);
49
+ const options = {
50
+ ...DEFAULT_OPTIONS,
51
+ ...rawOptions
52
+ },
53
+ importDeclarationVisitor = (path, state) => {
54
+ const filePath = state.file.opts.filename;
55
+ if (!filePath) return;
56
+ const {
57
+ node
58
+ } = path;
59
+ if (node.importKind === "type") return;
60
+ const originalModuleSpecifier = node.source.value,
61
+ fullySpecifiedModuleSpecifier = getFullySpecifiedModuleSpecifier(originalModuleSpecifier, {
62
+ filePath,
63
+ options
64
+ });
65
+ fullySpecifiedModuleSpecifier && (node.source.value = fullySpecifiedModuleSpecifier);
66
+ },
67
+ exportDeclarationVisitor = (path, state) => {
68
+ const filePath = state.file.opts.filename;
69
+ if (!filePath) return;
70
+ const {
71
+ node
72
+ } = path;
73
+ if (node.exportKind === "type") return;
74
+ const source = node.source;
75
+ if (!source) return;
76
+ const originalModuleSpecifier = source.value,
77
+ fullySpecifiedModuleSpecifier = getFullySpecifiedModuleSpecifier(originalModuleSpecifier, {
78
+ filePath,
79
+ options
80
+ });
81
+ fullySpecifiedModuleSpecifier && (source.value = fullySpecifiedModuleSpecifier);
82
+ };
83
+ return {
84
+ name: "babel-plugin-fully-specified",
85
+ visitor: {
86
+ ImportDeclaration: importDeclarationVisitor,
87
+ ExportNamedDeclaration: exportDeclarationVisitor,
88
+ ExportAllDeclaration: exportDeclarationVisitor,
89
+ Import: (path, state) => {
90
+ const filePath = state.file.opts.filename;
91
+ if (!filePath) return;
92
+ const parent = path.parent;
93
+ if (parent.type !== "CallExpression") return;
94
+ const firstArgOfImportCall = parent.arguments[0];
95
+ if (firstArgOfImportCall.type !== "StringLiteral") return;
96
+ const originalModuleSpecifier = firstArgOfImportCall.value,
97
+ fullySpecifiedModuleSpecifier = getFullySpecifiedModuleSpecifier(originalModuleSpecifier, {
98
+ filePath,
99
+ options
100
+ });
101
+ fullySpecifiedModuleSpecifier && (firstArgOfImportCall.value = fullySpecifiedModuleSpecifier);
102
+ },
103
+ MemberExpression: path => {
104
+ if (!options.convertProcessEnvToImportMetaEnv) return;
105
+ const {
106
+ node
107
+ } = path;
108
+ if (node.object.type === "MemberExpression" && node.object.object.type === "Identifier" && node.object.object.name === "process" && node.object.property.type === "Identifier" && node.object.property.name === "env") {
109
+ if (node.property.type === "Identifier" && node.property.name === "NODE_ENV") return;
110
+ node.object = t.memberExpression(t.metaProperty(t.identifier("import"), t.identifier("meta")), t.identifier("env"));
111
+ }
112
+ }
113
+ }
114
+ };
115
+ }
116
+ function getFullySpecifiedModuleSpecifier(originalModuleSpecifier, {
117
+ filePath,
118
+ options
119
+ }) {
120
+ const fileExt = (0, import_node_path.extname)(filePath),
121
+ fileDir = (0, import_node_path.dirname)(filePath),
122
+ isDirectory = isLocalDirectory((0, import_node_path.resolve)(fileDir, originalModuleSpecifier)),
123
+ currentModuleExtension = (0, import_node_path.extname)(originalModuleSpecifier),
124
+ {
125
+ tryExtensions,
126
+ esExtensions,
127
+ esExtensionDefault,
128
+ ensureFileExists
129
+ } = options,
130
+ targetModule = evaluateTargetModule({
131
+ moduleSpecifier: originalModuleSpecifier,
132
+ filenameDirectory: fileDir,
133
+ filenameExtension: fileExt,
134
+ currentModuleExtension,
135
+ isDirectory,
136
+ tryExtensions,
137
+ esExtensions,
138
+ esExtensionDefault,
139
+ ensureFileExists
140
+ });
141
+ return targetModule === !1 ? null : targetModule;
142
+ }
143
+ function isLocalDirectory(absoluteDirectory) {
144
+ return (0, import_node_fs.existsSync)(absoluteDirectory) && (0, import_node_fs.lstatSync)(absoluteDirectory).isDirectory();
145
+ }
146
+ function evaluateTargetModule({
147
+ moduleSpecifier,
148
+ currentModuleExtension,
149
+ isDirectory,
150
+ filenameDirectory,
151
+ filenameExtension,
152
+ tryExtensions,
153
+ esExtensions,
154
+ esExtensionDefault,
155
+ ensureFileExists
156
+ }) {
157
+ if (currentModuleExtension && !esExtensions.includes(currentModuleExtension)) return !1;
158
+ const targetFile = (0, import_node_path.resolve)(filenameDirectory, moduleSpecifier);
159
+ if (ensureFileExists) {
160
+ for (const extension of tryExtensions) if ((0, import_node_fs.existsSync)(targetFile + extension)) return moduleSpecifier + esExtensionDefault;
161
+ isDirectory && !(0, import_node_fs.existsSync)((0, import_node_path.resolve)(filenameDirectory, currentModuleExtension ? moduleSpecifier : moduleSpecifier + esExtensionDefault)) && (moduleSpecifier = `${moduleSpecifier}/index`);
162
+ } else return esExtensions.includes(filenameExtension), moduleSpecifier + esExtensionDefault;
163
+ return !1;
164
+ }
165
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["index_exports","__export","default","FullySpecified","module","exports","__toCommonJS","import_node_fs","require","import_node_path","t","__toESM","DEFAULT_OPTIONS","ensureFileExists","esExtensionDefault","tryExtensions","esExtensions","convertProcessEnvToImportMetaEnv","api","rawOptions","assertVersion","options","importDeclarationVisitor","path","state","filePath","file","opts","filename","node","importKind","originalModuleSpecifier","source","value","fullySpecifiedModuleSpecifier","getFullySpecifiedModuleSpecifier","exportDeclarationVisitor","exportKind","name","visitor","ImportDeclaration","ExportNamedDeclaration","ExportAllDeclaration","Import","parent","type","firstArgOfImportCall","arguments","MemberExpression","object","property","memberExpression","metaProperty","identifier","fileExt","extname","fileDir","dirname","isDirectory","isLocalDirectory","resolve","currentModuleExtension","targetModule","evaluateTargetModule","moduleSpecifier","filenameDirectory","filenameExtension","absoluteDirectory","existsSync","lstatSync","includes","targetFile","extension"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { existsSync, lstatSync } from "node:fs";
2
2
  import { dirname, extname, resolve } from "node:path";
3
- function fullySpecifyCommonJS(api) {
3
+ function fullySpecifyCommonJS(api, options) {
4
4
  return api.assertVersion(7), {
5
5
  name: "babel-plugin-fully-specified-cjs",
6
6
  visitor: {
@@ -12,7 +12,7 @@ function fullySpecifyCommonJS(api) {
12
12
  if (moduleSpecifier.startsWith(".") || moduleSpecifier.startsWith("/")) {
13
13
  const filePath = state.file.opts.filename;
14
14
  if (!filePath) return;
15
- const fileDir = dirname(filePath), cjsExtension = ".cjs", jsExtension = ".js";
15
+ const fileDir = dirname(filePath), cjsExtension = options.esExtensionDefault || ".cjs", jsExtension = ".js";
16
16
  if (!extname(moduleSpecifier)) {
17
17
  const resolvedPath = resolve(fileDir, moduleSpecifier);
18
18
  let newModuleSpecifier = moduleSpecifier;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/commonjs.ts"],
4
- "mappings": "AAAA,SAAS,YAAY,iBAAiB;AACtC,SAAS,SAAS,SAAS,eAAe;AAE3B,SAAR,qBAAsC,KAA2B;AACtE,aAAI,cAAc,CAAC,GAEZ;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,MACP,eAAe,MAAM,OAAO;AAG1B,YAFe,KAAK,IAAI,QAAQ,EAGvB,aAAa,EAAE,MAAM,UAAU,CAAC,KACvC,KAAK,KAAK,UAAU,WAAW,GAC/B;AACA,gBAAM,MAAM,KAAK,KAAK,UAAU,CAAC;AACjC,cAAI,IAAI,SAAS,iBAAiB;AAChC,gBAAI,kBAAkB,IAAI;AAG1B,gBAAI,gBAAgB,WAAW,GAAG,KAAK,gBAAgB,WAAW,GAAG,GAAG;AACtE,oBAAM,WAAW,MAAM,KAAK,KAAK;AACjC,kBAAI,CAAC,SAAU;AAEf,oBAAM,UAAU,QAAQ,QAAQ,GAC1B,eAAe,QACf,cAAc;AAGpB,kBAAI,CAAC,QAAQ,eAAe,GAAG;AAC7B,sBAAM,eAAe,QAAQ,SAAS,eAAe;AACrD,oBAAI,qBAAqB;AAGzB,oBAAI,iBAAiB,YAAY,GAAG;AAClC,wBAAM,YAAY,QAAQ,cAAc,UAAU,WAAW;AAC7D,sBAAI,WAAW,SAAS,GAAG;AAEzB,oBAAK,mBAAmB,SAAS,GAAG,MAClC,sBAAsB,MAExB,sBAAsB,UAAU,cAChC,IAAI,QAAQ;AACZ;AAAA,kBACF;AAAA,gBACF;AAGA,sBAAM,iBAAiB,eAAe;AACtC,oBAAI,WAAW,cAAc,GAAG;AAC9B,wCAAsB,cACtB,IAAI,QAAQ;AACZ;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,cAAc;AACtC,SAAO,WAAW,YAAY,KAAK,UAAU,YAAY,EAAE,YAAY;AACzE;",
4
+ "mappings": "AAAA,SAAS,YAAY,iBAAiB;AACtC,SAAS,SAAS,SAAS,eAAe;AAE3B,SAAR,qBACL,KACA,SAGiB;AACjB,aAAI,cAAc,CAAC,GAEZ;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,MACP,eAAe,MAAM,OAAO;AAG1B,YAFe,KAAK,IAAI,QAAQ,EAGvB,aAAa,EAAE,MAAM,UAAU,CAAC,KACvC,KAAK,KAAK,UAAU,WAAW,GAC/B;AACA,gBAAM,MAAM,KAAK,KAAK,UAAU,CAAC;AACjC,cAAI,IAAI,SAAS,iBAAiB;AAChC,gBAAI,kBAAkB,IAAI;AAG1B,gBAAI,gBAAgB,WAAW,GAAG,KAAK,gBAAgB,WAAW,GAAG,GAAG;AACtE,oBAAM,WAAW,MAAM,KAAK,KAAK;AACjC,kBAAI,CAAC,SAAU;AAEf,oBAAM,UAAU,QAAQ,QAAQ,GAC1B,eAAe,QAAQ,sBAAsB,QAC7C,cAAc;AAGpB,kBAAI,CAAC,QAAQ,eAAe,GAAG;AAC7B,sBAAM,eAAe,QAAQ,SAAS,eAAe;AACrD,oBAAI,qBAAqB;AAGzB,oBAAI,iBAAiB,YAAY,GAAG;AAClC,wBAAM,YAAY,QAAQ,cAAc,UAAU,WAAW;AAC7D,sBAAI,WAAW,SAAS,GAAG;AAEzB,oBAAK,mBAAmB,SAAS,GAAG,MAClC,sBAAsB,MAExB,sBAAsB,UAAU,cAChC,IAAI,QAAQ;AACZ;AAAA,kBACF;AAAA,gBACF;AAGA,sBAAM,iBAAiB,eAAe;AACtC,oBAAI,WAAW,cAAc,GAAG;AAC9B,wCAAsB,cACtB,IAAI,QAAQ;AACZ;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,cAA+B;AACvD,SAAO,WAAW,YAAY,KAAK,UAAU,YAAY,EAAE,YAAY;AACzE;",
5
5
  "names": []
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { existsSync, lstatSync } from "node:fs";
2
2
  import { dirname, extname, resolve } from "node:path";
3
- function fullySpecifyCommonJS(api) {
3
+ function fullySpecifyCommonJS(api, options) {
4
4
  return api.assertVersion(7), {
5
5
  name: "babel-plugin-fully-specified-cjs",
6
6
  visitor: {
@@ -15,7 +15,7 @@ function fullySpecifyCommonJS(api) {
15
15
  const filePath = state.file.opts.filename;
16
16
  if (!filePath) return;
17
17
  const fileDir = dirname(filePath),
18
- cjsExtension = ".cjs",
18
+ cjsExtension = options.esExtensionDefault || ".cjs",
19
19
  jsExtension = ".js";
20
20
  if (!extname(moduleSpecifier)) {
21
21
  const resolvedPath = resolve(fileDir, moduleSpecifier);
@@ -1 +1 @@
1
- {"version":3,"names":["existsSync","lstatSync","dirname","extname","resolve","fullySpecifyCommonJS","api","assertVersion","name","visitor","CallExpression","path","state","get","isIdentifier","node","arguments","length","arg","type","moduleSpecifier","value","startsWith","filePath","file","opts","filename","fileDir","cjsExtension","jsExtension","resolvedPath","newModuleSpecifier","isLocalDirectory","indexPath","endsWith","filePathWithJs","absolutePath","isDirectory"],"sources":["../../src/commonjs.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,SAAA,QAAiB;AACtC,SAASC,OAAA,EAASC,OAAA,EAASC,OAAA,QAAe;AAE3B,SAARC,qBAAsCC,GAAA,EAA2B;EACtE,OAAAA,GAAA,CAAIC,aAAA,CAAc,CAAC,GAEZ;IACLC,IAAA,EAAM;IACNC,OAAA,EAAS;MACPC,eAAeC,IAAA,EAAMC,KAAA,EAAO;QAG1B,IAFeD,IAAA,CAAKE,GAAA,CAAI,QAAQ,EAGvBC,YAAA,CAAa;UAAEN,IAAA,EAAM;QAAU,CAAC,KACvCG,IAAA,CAAKI,IAAA,CAAKC,SAAA,CAAUC,MAAA,KAAW,GAC/B;UACA,MAAMC,GAAA,GAAMP,IAAA,CAAKI,IAAA,CAAKC,SAAA,CAAU,CAAC;UACjC,IAAIE,GAAA,CAAIC,IAAA,KAAS,iBAAiB;YAChC,IAAIC,eAAA,GAAkBF,GAAA,CAAIG,KAAA;YAG1B,IAAID,eAAA,CAAgBE,UAAA,CAAW,GAAG,KAAKF,eAAA,CAAgBE,UAAA,CAAW,GAAG,GAAG;cACtE,MAAMC,QAAA,GAAWX,KAAA,CAAMY,IAAA,CAAKC,IAAA,CAAKC,QAAA;cACjC,IAAI,CAACH,QAAA,EAAU;cAEf,MAAMI,OAAA,GAAUzB,OAAA,CAAQqB,QAAQ;gBAC1BK,YAAA,GAAe;gBACfC,WAAA,GAAc;cAGpB,IAAI,CAAC1B,OAAA,CAAQiB,eAAe,GAAG;gBAC7B,MAAMU,YAAA,GAAe1B,OAAA,CAAQuB,OAAA,EAASP,eAAe;gBACrD,IAAIW,kBAAA,GAAqBX,eAAA;gBAGzB,IAAIY,gBAAA,CAAiBF,YAAY,GAAG;kBAClC,MAAMG,SAAA,GAAY7B,OAAA,CAAQ0B,YAAA,EAAc,UAAUD,WAAW;kBAC7D,IAAI7B,UAAA,CAAWiC,SAAS,GAAG;oBAEpBF,kBAAA,CAAmBG,QAAA,CAAS,GAAG,MAClCH,kBAAA,IAAsB,MAExBA,kBAAA,IAAsB,UAAUH,YAAA,EAChCV,GAAA,CAAIG,KAAA,GAAQU,kBAAA;oBACZ;kBACF;gBACF;gBAGA,MAAMI,cAAA,GAAiBL,YAAA,GAAeD,WAAA;gBACtC,IAAI7B,UAAA,CAAWmC,cAAc,GAAG;kBAC9BJ,kBAAA,IAAsBH,YAAA,EACtBV,GAAA,CAAIG,KAAA,GAAQU,kBAAA;kBACZ;gBACF;cACF;YACF;UACF;QACF;MACF;IACF;EACF;AACF;AAEA,SAASC,iBAAiBI,YAAA,EAAc;EACtC,OAAOpC,UAAA,CAAWoC,YAAY,KAAKnC,SAAA,CAAUmC,YAAY,EAAEC,WAAA,CAAY;AACzE","ignoreList":[]}
1
+ {"version":3,"names":["existsSync","lstatSync","dirname","extname","resolve","fullySpecifyCommonJS","api","options","assertVersion","name","visitor","CallExpression","path","state","get","isIdentifier","node","arguments","length","arg","type","moduleSpecifier","value","startsWith","filePath","file","opts","filename","fileDir","cjsExtension","esExtensionDefault","jsExtension","resolvedPath","newModuleSpecifier","isLocalDirectory","indexPath","endsWith","filePathWithJs","absolutePath","isDirectory"],"sources":["../../src/commonjs.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,SAAA,QAAiB;AACtC,SAASC,OAAA,EAASC,OAAA,EAASC,OAAA,QAAe;AAE3B,SAARC,qBACLC,GAAA,EACAC,OAAA,EAGiB;EACjB,OAAAD,GAAA,CAAIE,aAAA,CAAc,CAAC,GAEZ;IACLC,IAAA,EAAM;IACNC,OAAA,EAAS;MACPC,eAAeC,IAAA,EAAMC,KAAA,EAAO;QAG1B,IAFeD,IAAA,CAAKE,GAAA,CAAI,QAAQ,EAGvBC,YAAA,CAAa;UAAEN,IAAA,EAAM;QAAU,CAAC,KACvCG,IAAA,CAAKI,IAAA,CAAKC,SAAA,CAAUC,MAAA,KAAW,GAC/B;UACA,MAAMC,GAAA,GAAMP,IAAA,CAAKI,IAAA,CAAKC,SAAA,CAAU,CAAC;UACjC,IAAIE,GAAA,CAAIC,IAAA,KAAS,iBAAiB;YAChC,IAAIC,eAAA,GAAkBF,GAAA,CAAIG,KAAA;YAG1B,IAAID,eAAA,CAAgBE,UAAA,CAAW,GAAG,KAAKF,eAAA,CAAgBE,UAAA,CAAW,GAAG,GAAG;cACtE,MAAMC,QAAA,GAAWX,KAAA,CAAMY,IAAA,CAAKC,IAAA,CAAKC,QAAA;cACjC,IAAI,CAACH,QAAA,EAAU;cAEf,MAAMI,OAAA,GAAU1B,OAAA,CAAQsB,QAAQ;gBAC1BK,YAAA,GAAetB,OAAA,CAAQuB,kBAAA,IAAsB;gBAC7CC,WAAA,GAAc;cAGpB,IAAI,CAAC5B,OAAA,CAAQkB,eAAe,GAAG;gBAC7B,MAAMW,YAAA,GAAe5B,OAAA,CAAQwB,OAAA,EAASP,eAAe;gBACrD,IAAIY,kBAAA,GAAqBZ,eAAA;gBAGzB,IAAIa,gBAAA,CAAiBF,YAAY,GAAG;kBAClC,MAAMG,SAAA,GAAY/B,OAAA,CAAQ4B,YAAA,EAAc,UAAUD,WAAW;kBAC7D,IAAI/B,UAAA,CAAWmC,SAAS,GAAG;oBAEpBF,kBAAA,CAAmBG,QAAA,CAAS,GAAG,MAClCH,kBAAA,IAAsB,MAExBA,kBAAA,IAAsB,UAAUJ,YAAA,EAChCV,GAAA,CAAIG,KAAA,GAAQW,kBAAA;oBACZ;kBACF;gBACF;gBAGA,MAAMI,cAAA,GAAiBL,YAAA,GAAeD,WAAA;gBACtC,IAAI/B,UAAA,CAAWqC,cAAc,GAAG;kBAC9BJ,kBAAA,IAAsBJ,YAAA,EACtBV,GAAA,CAAIG,KAAA,GAAQW,kBAAA;kBACZ;gBACF;cACF;YACF;UACF;QACF;MACF;IACF;EACF;AACF;AAEA,SAASC,iBAAiBI,YAAA,EAA+B;EACvD,OAAOtC,UAAA,CAAWsC,YAAY,KAAKrC,SAAA,CAAUqC,YAAY,EAAEC,WAAA,CAAY;AACzE","ignoreList":[]}
@@ -1,10 +1,12 @@
1
1
  import { existsSync, lstatSync } from "node:fs";
2
2
  import { dirname, extname, resolve } from "node:path";
3
+ import * as t from "@babel/types";
3
4
  const DEFAULT_OPTIONS = {
4
5
  ensureFileExists: !0,
5
6
  esExtensionDefault: ".mjs",
6
7
  tryExtensions: [".js"],
7
- esExtensions: [".mjs"]
8
+ esExtensions: [".mjs"],
9
+ convertProcessEnvToImportMetaEnv: !1
8
10
  };
9
11
  function FullySpecified(api, rawOptions) {
10
12
  api.assertVersion(7);
@@ -60,6 +62,18 @@ function FullySpecified(api, rawOptions) {
60
62
  }
61
63
  );
62
64
  fullySpecifiedModuleSpecifier && (firstArgOfImportCall.value = fullySpecifiedModuleSpecifier);
65
+ },
66
+ MemberExpression: (path) => {
67
+ if (!options.convertProcessEnvToImportMetaEnv) return;
68
+ const { node } = path;
69
+ if (node.object.type === "MemberExpression" && node.object.object.type === "Identifier" && node.object.object.name === "process" && node.object.property.type === "Identifier" && node.object.property.name === "env") {
70
+ if (node.property.type === "Identifier" && node.property.name === "NODE_ENV")
71
+ return;
72
+ node.object = t.memberExpression(
73
+ t.metaProperty(t.identifier("import"), t.identifier("meta")),
74
+ t.identifier("env")
75
+ );
76
+ }
63
77
  }
64
78
  }
65
79
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,10 +1,12 @@
1
1
  import { existsSync, lstatSync } from "node:fs";
2
2
  import { dirname, extname, resolve } from "node:path";
3
+ import * as t from "@babel/types";
3
4
  const DEFAULT_OPTIONS = {
4
5
  ensureFileExists: !0,
5
6
  esExtensionDefault: ".mjs",
6
7
  tryExtensions: [".js"],
7
- esExtensions: [".mjs"]
8
+ esExtensions: [".mjs"],
9
+ convertProcessEnvToImportMetaEnv: !1
8
10
  };
9
11
  function FullySpecified(api, rawOptions) {
10
12
  api.assertVersion(7);
@@ -61,6 +63,16 @@ function FullySpecified(api, rawOptions) {
61
63
  options
62
64
  });
63
65
  fullySpecifiedModuleSpecifier && (firstArgOfImportCall.value = fullySpecifiedModuleSpecifier);
66
+ },
67
+ MemberExpression: path => {
68
+ if (!options.convertProcessEnvToImportMetaEnv) return;
69
+ const {
70
+ node
71
+ } = path;
72
+ if (node.object.type === "MemberExpression" && node.object.object.type === "Identifier" && node.object.object.name === "process" && node.object.property.type === "Identifier" && node.object.property.name === "env") {
73
+ if (node.property.type === "Identifier" && node.property.name === "NODE_ENV") return;
74
+ node.object = t.memberExpression(t.metaProperty(t.identifier("import"), t.identifier("meta")), t.identifier("env"));
75
+ }
64
76
  }
65
77
  }
66
78
  };
@@ -1 +1 @@
1
- {"version":3,"names":["existsSync","lstatSync","dirname","extname","resolve","DEFAULT_OPTIONS","ensureFileExists","esExtensionDefault","tryExtensions","esExtensions","FullySpecified","api","rawOptions","assertVersion","options","importDeclarationVisitor","path","state","filePath","file","opts","filename","node","importKind","originalModuleSpecifier","source","value","fullySpecifiedModuleSpecifier","getFullySpecifiedModuleSpecifier","exportDeclarationVisitor","exportKind","name","visitor","ImportDeclaration","ExportNamedDeclaration","ExportAllDeclaration","Import","parent","type","firstArgOfImportCall","arguments","fileExt","fileDir","isDirectory","isLocalDirectory","currentModuleExtension","targetModule","evaluateTargetModule","moduleSpecifier","filenameDirectory","filenameExtension","absoluteDirectory","includes","targetFile","extension"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["existsSync","lstatSync","dirname","extname","resolve","t","DEFAULT_OPTIONS","ensureFileExists","esExtensionDefault","tryExtensions","esExtensions","convertProcessEnvToImportMetaEnv","FullySpecified","api","rawOptions","assertVersion","options","importDeclarationVisitor","path","state","filePath","file","opts","filename","node","importKind","originalModuleSpecifier","source","value","fullySpecifiedModuleSpecifier","getFullySpecifiedModuleSpecifier","exportDeclarationVisitor","exportKind","name","visitor","ImportDeclaration","ExportNamedDeclaration","ExportAllDeclaration","Import","parent","type","firstArgOfImportCall","arguments","MemberExpression","object","property","memberExpression","metaProperty","identifier","fileExt","fileDir","isDirectory","isLocalDirectory","currentModuleExtension","targetModule","evaluateTargetModule","moduleSpecifier","filenameDirectory","filenameExtension","absoluteDirectory","includes","targetFile","extension"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/src/commonjs.ts CHANGED
@@ -1,7 +1,12 @@
1
1
  import { existsSync, lstatSync } from 'node:fs'
2
2
  import { dirname, extname, resolve } from 'node:path'
3
3
 
4
- export default function fullySpecifyCommonJS(api: any): babel.PluginObj {
4
+ export default function fullySpecifyCommonJS(
5
+ api: any,
6
+ options: {
7
+ esExtensionDefault: string
8
+ }
9
+ ): babel.PluginObj {
5
10
  api.assertVersion(7)
6
11
 
7
12
  return {
@@ -24,7 +29,7 @@ export default function fullySpecifyCommonJS(api: any): babel.PluginObj {
24
29
  if (!filePath) return // Cannot determine file path
25
30
 
26
31
  const fileDir = dirname(filePath)
27
- const cjsExtension = '.cjs'
32
+ const cjsExtension = options.esExtensionDefault || '.cjs'
28
33
  const jsExtension = '.js'
29
34
 
30
35
  // Check if moduleSpecifier already has an extension
@@ -62,6 +67,6 @@ export default function fullySpecifyCommonJS(api: any): babel.PluginObj {
62
67
  } satisfies babel.PluginObj
63
68
  }
64
69
 
65
- function isLocalDirectory(absolutePath) {
70
+ function isLocalDirectory(absolutePath: string): boolean {
66
71
  return existsSync(absolutePath) && lstatSync(absolutePath).isDirectory()
67
72
  }
package/src/index.ts CHANGED
@@ -2,11 +2,13 @@ import { existsSync, lstatSync } from 'node:fs'
2
2
  import { dirname, extname, resolve } from 'node:path'
3
3
 
4
4
  import type { ConfigAPI, NodePath, PluginObj, PluginPass } from '@babel/core'
5
+ import * as t from '@babel/types'
5
6
  import type {
6
7
  ExportAllDeclaration,
7
8
  ExportNamedDeclaration,
8
9
  Import,
9
10
  ImportDeclaration,
11
+ MemberExpression,
10
12
  } from '@babel/types'
11
13
 
12
14
  export interface FullySpecifiedOptions {
@@ -16,6 +18,8 @@ export interface FullySpecifiedOptions {
16
18
  tryExtensions: Array<string>
17
19
  /** List of extensions that can run in Node.js or in the Browser. */
18
20
  esExtensions: Array<string>
21
+ /** Convert process.env.XYZ to import.meta.env.XYZ */
22
+ convertProcessEnvToImportMetaEnv?: boolean
19
23
  }
20
24
 
21
25
  const DEFAULT_OPTIONS = {
@@ -23,6 +27,7 @@ const DEFAULT_OPTIONS = {
23
27
  esExtensionDefault: '.mjs',
24
28
  tryExtensions: ['.js'],
25
29
  esExtensions: ['.mjs'],
30
+ convertProcessEnvToImportMetaEnv: false,
26
31
  }
27
32
 
28
33
  export default function FullySpecified(
@@ -115,6 +120,33 @@ export default function FullySpecified(
115
120
  }
116
121
  }
117
122
 
123
+ /** For converting process.env to import.meta.env */
124
+ const memberExpressionVisitor = (path: NodePath<MemberExpression>) => {
125
+ if (!options.convertProcessEnvToImportMetaEnv) return
126
+
127
+ const { node } = path
128
+
129
+ // Check if this is process.env.SOMETHING
130
+ if (
131
+ node.object.type === 'MemberExpression' &&
132
+ node.object.object.type === 'Identifier' &&
133
+ node.object.object.name === 'process' &&
134
+ node.object.property.type === 'Identifier' &&
135
+ node.object.property.name === 'env'
136
+ ) {
137
+ // Skip process.env.NODE_ENV - leave it as is
138
+ if (node.property.type === 'Identifier' && node.property.name === 'NODE_ENV') {
139
+ return
140
+ }
141
+
142
+ // Replace process.env with import.meta.env
143
+ node.object = t.memberExpression(
144
+ t.metaProperty(t.identifier('import'), t.identifier('meta')),
145
+ t.identifier('env')
146
+ )
147
+ }
148
+ }
149
+
118
150
  return {
119
151
  name: 'babel-plugin-fully-specified',
120
152
  visitor: {
@@ -122,6 +154,7 @@ export default function FullySpecified(
122
154
  ExportNamedDeclaration: exportDeclarationVisitor,
123
155
  ExportAllDeclaration: exportDeclarationVisitor,
124
156
  Import: importVisitor,
157
+ MemberExpression: memberExpressionVisitor,
125
158
  },
126
159
  }
127
160
  }
@@ -192,7 +225,7 @@ function evaluateTargetModule({
192
225
  esExtensions,
193
226
  esExtensionDefault,
194
227
  ensureFileExists,
195
- }) {
228
+ }: any): string | false {
196
229
  if (currentModuleExtension && !esExtensions.includes(currentModuleExtension)) {
197
230
  return false
198
231
  }
@@ -1,6 +0,0 @@
1
- // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
-
3
- exports[`transforming actual files > multiple extensions exists 1`] = `
4
- "// Expected to be transformed to use the \`.mjs\` extension, which is same as this file.
5
- import { foo, bar } from "./modules/module.mjs";"
6
- `;
@@ -1 +0,0 @@
1
- export const bar = 'bar'
@@ -1 +0,0 @@
1
- import { bar } from './bar'
@@ -1,2 +0,0 @@
1
- exports.foo = 'foo'
2
- exports.bar = 'bar'
@@ -1,2 +0,0 @@
1
- exports.foo = 'foo'
2
- exports.bar = 'bar'
@@ -1,4 +0,0 @@
1
- export const foo = 'foo'
2
- export const bar = 'bar'
3
-
4
- export default foo
@@ -1,2 +0,0 @@
1
- // Expected to be transformed to use the `.mjs` extension, which is same as this file.
2
- import { foo, bar } from './modules/module'
@@ -1,2 +0,0 @@
1
- exports.foo = 'foo'
2
- exports.bar = 'bar'
@@ -1,4 +0,0 @@
1
- export const foo = 'foo'
2
- export const bar = 'bar'
3
-
4
- export default foo
@@ -1,13 +0,0 @@
1
- import foo, { bar } from './modules/module'
2
- import { foo as foo2 } from './modules/module'
3
- import * as someModule from './modules/module'
4
-
5
- import { foo as cjsFoo } from './modules/cjs-module'
6
-
7
- // Will not be transformed
8
- import { foo as packageFoo } from '@my-org/my-pkg'
9
-
10
- // These will be transformed if `includePackages` includes `@my-org/my-pkg`.
11
- import { someStuff } from '@my-org/my-pkg/lib'
12
- // import { someOtherStuff } from '@my-org/my-pkg/lib/index' // TODO: Fix me
13
- import { exampleFunction } from '@my-org/my-pkg/lib/exampleFunction'
@@ -1,115 +0,0 @@
1
- import path from 'node:path'
2
- import { describe, expect, test } from 'vitest'
3
- import { type TransformOptions, transform, transformFileSync } from '@babel/core'
4
-
5
- import plugin, { type FullySpecifiedOptions } from '../'
6
-
7
- /** A helper function to get the default transform options for the plugin to test. */
8
- const getTransformOptions = ({
9
- pluginOptions,
10
- }: { pluginOptions?: Partial<FullySpecifiedOptions> } = {}) => ({
11
- plugins: [[plugin, { ensureFileExists: false, ...pluginOptions }]],
12
- })
13
-
14
- /** A test helper for calling Babel transform with the plugin to test and some default options. */
15
- function getTransformResult(
16
- input,
17
- {
18
- transformOptions,
19
- pluginOptions,
20
- }: {
21
- transformOptions?: TransformOptions
22
- pluginOptions?: Partial<FullySpecifiedOptions>
23
- } = {}
24
- ) {
25
- return transform(input, {
26
- filename: 'myFile.js',
27
- configFile: false,
28
- ...transformOptions,
29
- ...getTransformOptions({ pluginOptions }),
30
- })
31
- }
32
-
33
- describe('local imports', () => {
34
- test('named import', () => {
35
- const example1 = "import { foo } from './foo'"
36
- expect(getTransformResult(example1)?.code).toBe('import { foo } from "./foo.mjs";')
37
-
38
- const example2 = "import { foo as bar } from './foo'"
39
- expect(getTransformResult(example2)?.code).toBe(
40
- 'import { foo as bar } from "./foo.mjs";'
41
- )
42
- })
43
-
44
- test('default import', () => {
45
- const example1 = "import defaultFoo from './foo'"
46
- expect(getTransformResult(example1)?.code).toBe('import defaultFoo from "./foo.mjs";')
47
-
48
- const example2 = "import defaultFoo, { foo } from './foo'"
49
- expect(getTransformResult(example2)?.code).toBe(
50
- 'import defaultFoo, { foo } from "./foo.mjs";'
51
- )
52
- })
53
-
54
- test('namespace import', () => {
55
- const example = "import * as fooModule from './foo'"
56
- expect(getTransformResult(example)?.code).toBe(
57
- 'import * as fooModule from "./foo.mjs";'
58
- )
59
- })
60
-
61
- test('side effects only import', () => {
62
- const example = "import './foo'"
63
- expect(getTransformResult(example)?.code).toBe('import "./foo.mjs";')
64
- })
65
-
66
- test('dynamic import()', () => {
67
- const example = "const foo = await import('./foo')"
68
- expect(getTransformResult(example)?.code).toBe(
69
- 'const foo = await import("./foo.mjs");'
70
- )
71
- })
72
- })
73
-
74
- describe('local re-exports', () => {
75
- test('named', () => {
76
- const example1 = "export { foo } from './foo'"
77
- expect(getTransformResult(example1)?.code).toBe('export { foo } from "./foo.mjs";')
78
-
79
- const example2 = "export { foo as bar } from './foo'"
80
- expect(getTransformResult(example2)?.code).toBe(
81
- 'export { foo as bar } from "./foo.mjs";'
82
- )
83
- })
84
-
85
- test('default', () => {
86
- const example1 = "export { default as fooDefault } from './foo'"
87
- expect(getTransformResult(example1)?.code).toBe(
88
- 'export { default as fooDefault } from "./foo.mjs";'
89
- )
90
- })
91
-
92
- test('namespace', () => {
93
- const example1 = "export * as fooModule from './foo'"
94
- expect(getTransformResult(example1)?.code).toBe(
95
- 'export * as fooModule from "./foo.mjs";'
96
- )
97
-
98
- const example2 = "export * from './foo'"
99
- expect(getTransformResult(example2)?.code).toBe('export * from "./foo.mjs";')
100
- })
101
- })
102
-
103
- describe('transforming actual files', () => {
104
- test('multiple extensions exists', () => {
105
- const { code } =
106
- transformFileSync(
107
- path.join(__dirname, 'fixtures', 'multiple-extensions-exists', 'test.mjs'),
108
- getTransformOptions({
109
- pluginOptions: { ensureFileExists: true },
110
- })
111
- ) || {}
112
-
113
- expect(code).toMatchSnapshot()
114
- })
115
- })