@wyw-in-js/transform 0.8.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/esm/babel.js.map +1 -1
  2. package/esm/cache.js +15 -4
  3. package/esm/cache.js.map +1 -1
  4. package/esm/debug/fileReporter.js.map +1 -1
  5. package/esm/evaluators/index.js.map +1 -1
  6. package/esm/index.js.map +1 -1
  7. package/esm/module.js +174 -15
  8. package/esm/module.js.map +1 -1
  9. package/esm/options/buildOptions.js +123 -4
  10. package/esm/options/buildOptions.js.map +1 -1
  11. package/esm/options/buildOptions.test.js +41 -0
  12. package/esm/options/buildOptions.test.js.map +1 -0
  13. package/esm/options/loadBabelOptions.js.map +1 -1
  14. package/esm/plugins/babel-transform.js.map +1 -1
  15. package/esm/plugins/collector.js.map +1 -1
  16. package/esm/plugins/dynamic-import.js +35 -12
  17. package/esm/plugins/dynamic-import.js.map +1 -1
  18. package/esm/plugins/preeval.js +4 -0
  19. package/esm/plugins/preeval.js.map +1 -1
  20. package/esm/plugins/shaker.js +170 -23
  21. package/esm/plugins/shaker.js.map +1 -1
  22. package/esm/shaker.js +6 -3
  23. package/esm/shaker.js.map +1 -1
  24. package/esm/transform/BaseEntrypoint.js.map +1 -1
  25. package/esm/transform/Entrypoint.helpers.js +105 -15
  26. package/esm/transform/Entrypoint.helpers.js.map +1 -1
  27. package/esm/transform/Entrypoint.js +13 -2
  28. package/esm/transform/Entrypoint.js.map +1 -1
  29. package/esm/transform/Entrypoint.types.js.map +1 -1
  30. package/esm/transform/EvaluatedEntrypoint.js.map +1 -1
  31. package/esm/transform/actions/AbortError.js.map +1 -1
  32. package/esm/transform/actions/BaseAction.js +5 -0
  33. package/esm/transform/actions/BaseAction.js.map +1 -1
  34. package/esm/transform/actions/UnprocessedEntrypointError.js.map +1 -1
  35. package/esm/transform/actions/actionRunner.js.map +1 -1
  36. package/esm/transform/actions/types.js.map +1 -1
  37. package/esm/transform/generators/baseProcessingHandlers.js.map +1 -1
  38. package/esm/transform/generators/collect.js.map +1 -1
  39. package/esm/transform/generators/createStylisPreprocessor.js +118 -2
  40. package/esm/transform/generators/createStylisPreprocessor.js.map +1 -1
  41. package/esm/transform/generators/evalFile.js.map +1 -1
  42. package/esm/transform/generators/explodeReexports.js +10 -10
  43. package/esm/transform/generators/explodeReexports.js.map +1 -1
  44. package/esm/transform/generators/extract.js.map +1 -1
  45. package/esm/transform/generators/getExports.js.map +1 -1
  46. package/esm/transform/generators/index.js.map +1 -1
  47. package/esm/transform/generators/processEntrypoint.js +5 -8
  48. package/esm/transform/generators/processEntrypoint.js.map +1 -1
  49. package/esm/transform/generators/processImports.js.map +1 -1
  50. package/esm/transform/generators/resolveImports.js +41 -2
  51. package/esm/transform/generators/resolveImports.js.map +1 -1
  52. package/esm/transform/generators/transform.js +7 -3
  53. package/esm/transform/generators/transform.js.map +1 -1
  54. package/esm/transform/generators/workflow.js.map +1 -1
  55. package/esm/transform/helpers/loadWywOptions.js +15 -2
  56. package/esm/transform/helpers/loadWywOptions.js.map +1 -1
  57. package/esm/transform/helpers/withDefaultServices.js +2 -0
  58. package/esm/transform/helpers/withDefaultServices.js.map +1 -1
  59. package/esm/transform/isStaticallyEvaluatableModule.js +153 -0
  60. package/esm/transform/isStaticallyEvaluatableModule.js.map +1 -0
  61. package/esm/transform/rootLog.js.map +1 -1
  62. package/esm/transform/types.js.map +1 -1
  63. package/esm/transform.js +15 -6
  64. package/esm/transform.js.map +1 -1
  65. package/esm/types.js.map +1 -1
  66. package/esm/utils/EventEmitter.js.map +1 -1
  67. package/esm/utils/ShakerMetadata.js.map +1 -1
  68. package/esm/utils/TransformMetadata.js.map +1 -1
  69. package/esm/utils/addIdentifierToWywPreval.js.map +1 -1
  70. package/esm/utils/collectExportsAndImports.js +97 -6
  71. package/esm/utils/collectExportsAndImports.js.map +1 -1
  72. package/esm/utils/collectTemplateDependencies.js +1 -1
  73. package/esm/utils/collectTemplateDependencies.js.map +1 -1
  74. package/esm/utils/createId.js.map +1 -1
  75. package/esm/utils/dispose-polyfill.js.map +1 -1
  76. package/esm/utils/findIdentifiers.js.map +1 -1
  77. package/esm/utils/getConstantStringValue.js +58 -0
  78. package/esm/utils/getConstantStringValue.js.map +1 -0
  79. package/esm/utils/getFileIdx.js.map +1 -1
  80. package/esm/utils/getMemberExpressionPropertyName.js +11 -0
  81. package/esm/utils/getMemberExpressionPropertyName.js.map +1 -0
  82. package/esm/utils/getPluginKey.js.map +1 -1
  83. package/esm/utils/getScope.js.map +1 -1
  84. package/esm/utils/getSource.js.map +1 -1
  85. package/esm/utils/getTagProcessor.js +34 -6
  86. package/esm/utils/getTagProcessor.js.map +1 -1
  87. package/esm/utils/getVisitorKeys.js.map +1 -1
  88. package/esm/utils/hasWywPreval.js.map +1 -1
  89. package/esm/utils/importOverrides.js +47 -0
  90. package/esm/utils/importOverrides.js.map +1 -0
  91. package/esm/utils/isExports.js.map +1 -1
  92. package/esm/utils/isGlobal.js.map +1 -1
  93. package/esm/utils/isNode.js.map +1 -1
  94. package/esm/utils/isNodePath.js.map +1 -1
  95. package/esm/utils/isNotNull.js.map +1 -1
  96. package/esm/utils/isRemoved.js.map +1 -1
  97. package/esm/utils/isRequire.js.map +1 -1
  98. package/esm/utils/isSerializable.js.map +1 -1
  99. package/esm/utils/isTypedNode.js.map +1 -1
  100. package/esm/utils/isUnnecessaryReactCall.js.map +1 -1
  101. package/esm/utils/parseRequest.js +29 -0
  102. package/esm/utils/parseRequest.js.map +1 -0
  103. package/esm/utils/peek.js.map +1 -1
  104. package/esm/utils/removeDangerousCode.js +32 -2
  105. package/esm/utils/removeDangerousCode.js.map +1 -1
  106. package/esm/utils/replaceImportMetaEnv.js +44 -0
  107. package/esm/utils/replaceImportMetaEnv.js.map +1 -0
  108. package/esm/utils/scopeHelpers.js.map +1 -1
  109. package/esm/utils/traversalCache.js.map +1 -1
  110. package/esm/utils/unwrapExpression.js +18 -0
  111. package/esm/utils/unwrapExpression.js.map +1 -0
  112. package/esm/utils/unwrapSequence.js.map +1 -1
  113. package/esm/utils/valueToLiteral.js.map +1 -1
  114. package/esm/utils/visitors/JSXElementsRemover.js.map +1 -1
  115. package/esm/vm/createVmContext.js +44 -0
  116. package/esm/vm/createVmContext.js.map +1 -1
  117. package/esm/vm/process.js.map +1 -1
  118. package/lib/babel.js.map +1 -1
  119. package/lib/cache.js +16 -5
  120. package/lib/cache.js.map +1 -1
  121. package/lib/debug/fileReporter.js +1 -1
  122. package/lib/debug/fileReporter.js.map +1 -1
  123. package/lib/evaluators/index.js.map +1 -1
  124. package/lib/index.js +1 -1
  125. package/lib/index.js.map +1 -1
  126. package/lib/module.js +177 -16
  127. package/lib/module.js.map +1 -1
  128. package/lib/options/buildOptions.js +127 -6
  129. package/lib/options/buildOptions.js.map +1 -1
  130. package/lib/options/buildOptions.test.js +44 -0
  131. package/lib/options/buildOptions.test.js.map +1 -0
  132. package/lib/options/loadBabelOptions.js.map +1 -1
  133. package/lib/plugins/babel-transform.js.map +1 -1
  134. package/lib/plugins/collector.js.map +1 -1
  135. package/lib/plugins/dynamic-import.js +34 -12
  136. package/lib/plugins/dynamic-import.js.map +1 -1
  137. package/lib/plugins/preeval.js +4 -0
  138. package/lib/plugins/preeval.js.map +1 -1
  139. package/lib/plugins/shaker.js +172 -22
  140. package/lib/plugins/shaker.js.map +1 -1
  141. package/lib/shaker.js +8 -4
  142. package/lib/shaker.js.map +1 -1
  143. package/lib/transform/BaseEntrypoint.js.map +1 -1
  144. package/lib/transform/Entrypoint.helpers.js +106 -15
  145. package/lib/transform/Entrypoint.helpers.js.map +1 -1
  146. package/lib/transform/Entrypoint.js +13 -2
  147. package/lib/transform/Entrypoint.js.map +1 -1
  148. package/lib/transform/Entrypoint.types.js.map +1 -1
  149. package/lib/transform/EvaluatedEntrypoint.js.map +1 -1
  150. package/lib/transform/actions/AbortError.js.map +1 -1
  151. package/lib/transform/actions/BaseAction.js +5 -0
  152. package/lib/transform/actions/BaseAction.js.map +1 -1
  153. package/lib/transform/actions/UnprocessedEntrypointError.js.map +1 -1
  154. package/lib/transform/actions/actionRunner.js.map +1 -1
  155. package/lib/transform/actions/types.js.map +1 -1
  156. package/lib/transform/generators/baseProcessingHandlers.js.map +1 -1
  157. package/lib/transform/generators/collect.js.map +1 -1
  158. package/lib/transform/generators/createStylisPreprocessor.js +119 -3
  159. package/lib/transform/generators/createStylisPreprocessor.js.map +1 -1
  160. package/lib/transform/generators/evalFile.js +1 -1
  161. package/lib/transform/generators/evalFile.js.map +1 -1
  162. package/lib/transform/generators/explodeReexports.js +11 -11
  163. package/lib/transform/generators/explodeReexports.js.map +1 -1
  164. package/lib/transform/generators/extract.js.map +1 -1
  165. package/lib/transform/generators/getExports.js.map +1 -1
  166. package/lib/transform/generators/index.js.map +1 -1
  167. package/lib/transform/generators/processEntrypoint.js +5 -8
  168. package/lib/transform/generators/processEntrypoint.js.map +1 -1
  169. package/lib/transform/generators/processImports.js.map +1 -1
  170. package/lib/transform/generators/resolveImports.js +41 -2
  171. package/lib/transform/generators/resolveImports.js.map +1 -1
  172. package/lib/transform/generators/transform.js +8 -3
  173. package/lib/transform/generators/transform.js.map +1 -1
  174. package/lib/transform/generators/workflow.js.map +1 -1
  175. package/lib/transform/helpers/loadWywOptions.js +16 -2
  176. package/lib/transform/helpers/loadWywOptions.js.map +1 -1
  177. package/lib/transform/helpers/withDefaultServices.js +3 -2
  178. package/lib/transform/helpers/withDefaultServices.js.map +1 -1
  179. package/lib/transform/isStaticallyEvaluatableModule.js +159 -0
  180. package/lib/transform/isStaticallyEvaluatableModule.js.map +1 -0
  181. package/lib/transform/rootLog.js.map +1 -1
  182. package/lib/transform/types.js.map +1 -1
  183. package/lib/transform.js +15 -6
  184. package/lib/transform.js.map +1 -1
  185. package/lib/types.js.map +1 -1
  186. package/lib/utils/EventEmitter.js.map +1 -1
  187. package/lib/utils/ShakerMetadata.js.map +1 -1
  188. package/lib/utils/TransformMetadata.js.map +1 -1
  189. package/lib/utils/addIdentifierToWywPreval.js.map +1 -1
  190. package/lib/utils/collectExportsAndImports.js +97 -6
  191. package/lib/utils/collectExportsAndImports.js.map +1 -1
  192. package/lib/utils/collectTemplateDependencies.js +1 -1
  193. package/lib/utils/collectTemplateDependencies.js.map +1 -1
  194. package/lib/utils/createId.js.map +1 -1
  195. package/lib/utils/dispose-polyfill.js.map +1 -1
  196. package/lib/utils/findIdentifiers.js.map +1 -1
  197. package/lib/utils/getConstantStringValue.js +66 -0
  198. package/lib/utils/getConstantStringValue.js.map +1 -0
  199. package/lib/utils/getFileIdx.js.map +1 -1
  200. package/lib/utils/getMemberExpressionPropertyName.js +18 -0
  201. package/lib/utils/getMemberExpressionPropertyName.js.map +1 -0
  202. package/lib/utils/getPluginKey.js.map +1 -1
  203. package/lib/utils/getScope.js.map +1 -1
  204. package/lib/utils/getSource.js +1 -1
  205. package/lib/utils/getSource.js.map +1 -1
  206. package/lib/utils/getTagProcessor.js +33 -6
  207. package/lib/utils/getTagProcessor.js.map +1 -1
  208. package/lib/utils/getVisitorKeys.js.map +1 -1
  209. package/lib/utils/hasWywPreval.js.map +1 -1
  210. package/lib/utils/importOverrides.js +57 -0
  211. package/lib/utils/importOverrides.js.map +1 -0
  212. package/lib/utils/isExports.js.map +1 -1
  213. package/lib/utils/isGlobal.js.map +1 -1
  214. package/lib/utils/isNode.js.map +1 -1
  215. package/lib/utils/isNodePath.js.map +1 -1
  216. package/lib/utils/isNotNull.js.map +1 -1
  217. package/lib/utils/isRemoved.js.map +1 -1
  218. package/lib/utils/isRequire.js.map +1 -1
  219. package/lib/utils/isSerializable.js.map +1 -1
  220. package/lib/utils/isTypedNode.js.map +1 -1
  221. package/lib/utils/isUnnecessaryReactCall.js.map +1 -1
  222. package/lib/utils/parseRequest.js +37 -0
  223. package/lib/utils/parseRequest.js.map +1 -0
  224. package/lib/utils/peek.js.map +1 -1
  225. package/lib/utils/removeDangerousCode.js +32 -2
  226. package/lib/utils/removeDangerousCode.js.map +1 -1
  227. package/lib/utils/replaceImportMetaEnv.js +50 -0
  228. package/lib/utils/replaceImportMetaEnv.js.map +1 -0
  229. package/lib/utils/scopeHelpers.js.map +1 -1
  230. package/lib/utils/traversalCache.js.map +1 -1
  231. package/lib/utils/unwrapExpression.js +25 -0
  232. package/lib/utils/unwrapExpression.js.map +1 -0
  233. package/lib/utils/unwrapSequence.js.map +1 -1
  234. package/lib/utils/valueToLiteral.js.map +1 -1
  235. package/lib/utils/visitors/JSXElementsRemover.js.map +1 -1
  236. package/lib/vm/createVmContext.js +45 -2
  237. package/lib/vm/createVmContext.js.map +1 -1
  238. package/lib/vm/process.js.map +1 -1
  239. package/package.json +13 -15
  240. package/types/cache.d.ts +1 -1
  241. package/types/cache.js +15 -4
  242. package/types/evaluators/index.js +1 -1
  243. package/types/module.d.ts +1 -2
  244. package/types/module.js +189 -11
  245. package/types/options/buildOptions.d.ts +0 -1
  246. package/types/options/buildOptions.js +125 -9
  247. package/types/options/loadBabelOptions.js +1 -2
  248. package/types/plugins/babel-transform.js +1 -1
  249. package/types/plugins/collector.js +3 -3
  250. package/types/plugins/dynamic-import.js +38 -18
  251. package/types/plugins/preeval.js +5 -2
  252. package/types/plugins/shaker.d.ts +4 -1
  253. package/types/plugins/shaker.js +189 -24
  254. package/types/shaker.js +9 -3
  255. package/types/transform/BaseEntrypoint.d.ts +0 -1
  256. package/types/transform/Entrypoint.helpers.d.ts +0 -1
  257. package/types/transform/Entrypoint.helpers.js +122 -25
  258. package/types/transform/Entrypoint.js +14 -2
  259. package/types/transform/Entrypoint.types.d.ts +0 -1
  260. package/types/transform/EvaluatedEntrypoint.d.ts +0 -1
  261. package/types/transform/actions/BaseAction.d.ts +1 -1
  262. package/types/transform/actions/BaseAction.js +5 -0
  263. package/types/transform/actions/actionRunner.js +2 -3
  264. package/types/transform/generators/collect.js +1 -2
  265. package/types/transform/generators/createStylisPreprocessor.d.ts +0 -1
  266. package/types/transform/generators/createStylisPreprocessor.js +168 -13
  267. package/types/transform/generators/evalFile.js +1 -2
  268. package/types/transform/generators/explodeReexports.js +12 -15
  269. package/types/transform/generators/extract.js +1 -2
  270. package/types/transform/generators/getExports.js +2 -3
  271. package/types/transform/generators/processEntrypoint.js +13 -7
  272. package/types/transform/generators/processImports.js +1 -2
  273. package/types/transform/generators/resolveImports.js +41 -5
  274. package/types/transform/generators/transform.d.ts +1 -1
  275. package/types/transform/generators/transform.js +16 -6
  276. package/types/transform/generators/workflow.js +1 -2
  277. package/types/transform/helpers/loadWywOptions.js +16 -5
  278. package/types/transform/helpers/withDefaultServices.d.ts +1 -1
  279. package/types/transform/helpers/withDefaultServices.js +19 -8
  280. package/types/transform/isStaticallyEvaluatableModule.d.ts +2 -0
  281. package/types/transform/isStaticallyEvaluatableModule.js +177 -0
  282. package/types/transform/rootLog.d.ts +0 -1
  283. package/types/transform/types.d.ts +1 -1
  284. package/types/transform.js +17 -9
  285. package/types/types.d.ts +1 -1
  286. package/types/utils/addIdentifierToWywPreval.js +2 -3
  287. package/types/utils/collectExportsAndImports.js +102 -20
  288. package/types/utils/collectTemplateDependencies.js +3 -4
  289. package/types/utils/findIdentifiers.js +2 -3
  290. package/types/utils/getConstantStringValue.d.ts +2 -0
  291. package/types/utils/getConstantStringValue.js +94 -0
  292. package/types/utils/getFileIdx.js +1 -2
  293. package/types/utils/getMemberExpressionPropertyName.d.ts +2 -0
  294. package/types/utils/getMemberExpressionPropertyName.js +46 -0
  295. package/types/utils/getScope.js +1 -2
  296. package/types/utils/getTagProcessor.js +35 -9
  297. package/types/utils/getVisitorKeys.js +1 -2
  298. package/types/utils/hasWywPreval.js +1 -1
  299. package/types/utils/importOverrides.d.ts +19 -0
  300. package/types/utils/importOverrides.js +40 -0
  301. package/types/utils/isExports.js +1 -2
  302. package/types/utils/isNodePath.js +1 -2
  303. package/types/utils/isNotNull.js +1 -2
  304. package/types/utils/isRemoved.js +1 -2
  305. package/types/utils/isRequire.js +1 -2
  306. package/types/utils/isSerializable.js +1 -2
  307. package/types/utils/isUnnecessaryReactCall.js +1 -2
  308. package/types/utils/parseRequest.d.ts +7 -0
  309. package/types/utils/parseRequest.js +29 -0
  310. package/types/utils/removeDangerousCode.js +37 -2
  311. package/types/utils/replaceImportMetaEnv.d.ts +3 -0
  312. package/types/utils/replaceImportMetaEnv.js +39 -0
  313. package/types/utils/scopeHelpers.js +7 -8
  314. package/types/utils/traversalCache.d.ts +1 -1
  315. package/types/utils/unwrapExpression.d.ts +2 -0
  316. package/types/utils/unwrapExpression.js +57 -0
  317. package/types/utils/unwrapSequence.js +1 -2
  318. package/types/utils/valueToLiteral.js +1 -2
  319. package/types/utils/visitors/JSXElementsRemover.js +1 -2
  320. package/types/vm/createVmContext.d.ts +0 -1
  321. package/types/vm/createVmContext.js +68 -9
  322. package/types/vm/process.d.ts +0 -2
  323. package/LICENSE +0 -21
  324. package/esm/options/babel-merge.d.js +0 -2
  325. package/esm/options/babel-merge.d.js.map +0 -1
  326. package/lib/options/babel-merge.d.js +0 -2
  327. package/lib/options/babel-merge.d.js.map +0 -1
@@ -2,13 +2,15 @@
2
2
  /* eslint @typescript-eslint/no-use-before-define: ["error", { "functions": false }] */
3
3
  /* eslint-disable no-restricted-syntax,no-continue */
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.collectExportsAndImports = exports.explicitImport = exports.sideEffectImport = void 0;
5
+ exports.explicitImport = exports.sideEffectImport = void 0;
6
+ exports.collectExportsAndImports = collectExportsAndImports;
6
7
  const shared_1 = require("@wyw-in-js/shared");
7
8
  const getScope_1 = require("./getScope");
8
9
  const isExports_1 = require("./isExports");
9
10
  const isNotNull_1 = require("./isNotNull");
10
11
  const isRequire_1 = require("./isRequire");
11
12
  const isTypedNode_1 = require("./isTypedNode");
13
+ const getConstantStringValue_1 = require("./getConstantStringValue");
12
14
  const traversalCache_1 = require("./traversalCache");
13
15
  const sideEffectImport = (item) => item.imported === 'side-effect';
14
16
  exports.sideEffectImport = sideEffectImport;
@@ -173,6 +175,25 @@ function exportFromVariableDeclarator(path) {
173
175
  [destructed.as.node.name]: init,
174
176
  }), {});
175
177
  }
178
+ if (id.isArrayPattern()) {
179
+ // It is `export const [a, , b, ...rest] = arr;`
180
+ const exported = new Set();
181
+ id.traverse({
182
+ Identifier(identifier) {
183
+ if (identifier.isBindingIdentifier()) {
184
+ exported.add(identifier.node.name);
185
+ }
186
+ },
187
+ });
188
+ if (exported.size === 0) {
189
+ return {};
190
+ }
191
+ const result = {};
192
+ exported.forEach((name) => {
193
+ result[name] = init;
194
+ });
195
+ return result;
196
+ }
176
197
  // What else it can be?
177
198
  debug('exportFromVariableDeclarator: unknown type of id %o', id.node.type);
178
199
  return {};
@@ -184,11 +205,14 @@ function collectFromDynamicImport(path, state) {
184
205
  return;
185
206
  }
186
207
  const [sourcePath] = callExpression.get('arguments');
187
- if (!sourcePath || !sourcePath.isStringLiteral()) {
188
- // Import should have at least one argument, and it should be StringLiteral
208
+ if (!sourcePath || !sourcePath.isExpression()) {
209
+ // Import should have at least one argument
210
+ return;
211
+ }
212
+ const source = (0, getConstantStringValue_1.getConstantStringValue)(sourcePath.node);
213
+ if (source === null) {
189
214
  return;
190
215
  }
191
- const source = sourcePath.node.value;
192
216
  let { parentPath: container, key } = callExpression;
193
217
  let isAwaited = false;
194
218
  if (container.isAwaitExpression()) {
@@ -245,28 +269,28 @@ function getImportExportTypeByInteropFunction(path, argPath) {
245
269
  return 're-export:*';
246
270
  }
247
271
  if (matchCall(path, [
248
- ['_interopRequireDefault', argPath],
249
- ['_interop_require_default', argPath],
272
+ ['_interopRequireDefault', argPath], // babel and swc <1.3.50
273
+ ['_interop_require_default', argPath], // swc >=1.3.50
250
274
  ['__importDefault', argPath], // ?
251
275
  ])) {
252
276
  return 'default';
253
277
  }
254
278
  if (matchCall(path, [
255
- ['_interopRequireWildcard', argPath],
256
- ['_interop_require_wildcard', argPath],
257
- ['__importStar', argPath],
258
- ['__toESM', argPath],
279
+ ['_interopRequireWildcard', argPath], // babel and swc <1.3.50
280
+ ['_interop_require_wildcard', argPath], // swc >=1.3.50
281
+ ['__importStar', argPath], // ?
282
+ ['__toESM', argPath], // esbuild >=0.14.7
259
283
  ['__toModule', argPath], // esbuild <0.14.7
260
284
  ])) {
261
285
  return 'import:*';
262
286
  }
263
287
  if (matchCall(path, [
264
- ['_extends', isEmptyObject, argPath],
265
- ['__rest', argPath, isArrayExpression],
266
- ['__objRest', argPath, isArrayExpression],
267
- ['_objectWithoutProperties', argPath, isArrayExpression],
268
- ['_object_without_properties', argPath, isArrayExpression],
269
- ['_objectDestructuringEmpty', argPath],
288
+ ['_extends', isEmptyObject, argPath], // babel and swc
289
+ ['__rest', argPath, isArrayExpression], // tsc and esbuild <=0.11.3
290
+ ['__objRest', argPath, isArrayExpression], // esbuild >0.11.3
291
+ ['_objectWithoutProperties', argPath, isArrayExpression], // babel and swc <1.3.50
292
+ ['_object_without_properties', argPath, isArrayExpression], // swc >=1.3.50
293
+ ['_objectDestructuringEmpty', argPath], // swc <1.3.50
270
294
  ['_object_destructuring_empty', argPath], // swc >=1.3.50
271
295
  ])) {
272
296
  return 'import:*';
@@ -317,11 +341,14 @@ function collectFromRequire(path, state) {
317
341
  return;
318
342
  }
319
343
  const [sourcePath] = callExpression.get('arguments');
320
- if (!sourcePath || !sourcePath.isStringLiteral()) {
321
- // Import should have at least one argument, and it should be StringLiteral
344
+ if (!sourcePath || !sourcePath.isExpression()) {
345
+ // Import should have at least one argument
346
+ return;
347
+ }
348
+ const source = (0, getConstantStringValue_1.getConstantStringValue)(sourcePath.node);
349
+ if (source === null) {
322
350
  return;
323
351
  }
324
- const source = sourcePath.node.value;
325
352
  const { parentPath: container, key } = callExpression;
326
353
  if (container.isCallExpression()) {
327
354
  // It may be transpiled import such as
@@ -442,6 +469,59 @@ function collectFromRequire(path, state) {
442
469
  });
443
470
  }
444
471
  }
472
+ function collectFromWywDynamicImport(path, state) {
473
+ if (!path.isIdentifier({ name: '__wyw_dynamic_import' })) {
474
+ return;
475
+ }
476
+ const { parentPath: callExpression } = path;
477
+ if (!callExpression.isCallExpression()) {
478
+ return;
479
+ }
480
+ const [sourcePath] = callExpression.get('arguments');
481
+ if (!sourcePath || !sourcePath.isExpression()) {
482
+ return;
483
+ }
484
+ const source = (0, getConstantStringValue_1.getConstantStringValue)(sourcePath.node);
485
+ if (source === null) {
486
+ return;
487
+ }
488
+ let { parentPath: container, key } = callExpression;
489
+ let isAwaited = false;
490
+ if (container.isAwaitExpression()) {
491
+ // If it's not awaited import, it imports the full namespace
492
+ isAwaited = true;
493
+ key = container.key;
494
+ container = container.parentPath;
495
+ }
496
+ // Is it `const something = await __wyw_dynamic_import("something")`?
497
+ if (key === 'init' && container.isVariableDeclarator()) {
498
+ importFromVariableDeclarator(container, isAwaited).forEach((prop) => {
499
+ if (prop.what === '*') {
500
+ const unfolded = unfoldNamespaceImport({
501
+ imported: '*',
502
+ local: prop.as,
503
+ source,
504
+ type: 'dynamic',
505
+ });
506
+ state.imports.push(...unfolded);
507
+ return;
508
+ }
509
+ state.imports.push({
510
+ imported: prop.what,
511
+ local: prop.as,
512
+ source,
513
+ type: 'dynamic',
514
+ });
515
+ });
516
+ return;
517
+ }
518
+ state.imports.push({
519
+ imported: '*',
520
+ local: path,
521
+ source,
522
+ type: 'dynamic',
523
+ });
524
+ }
445
525
  function collectFromVariableDeclarator(path, state) {
446
526
  let found = false;
447
527
  path.traverse({
@@ -635,6 +715,9 @@ function collectFromRequireOrExports(path, state) {
635
715
  if ((0, isRequire_1.isRequire)(path)) {
636
716
  collectFromRequire(path, state);
637
717
  }
718
+ else if (path.isIdentifier({ name: '__wyw_dynamic_import' })) {
719
+ collectFromWywDynamicImport(path, state);
720
+ }
638
721
  else if ((0, isExports_1.isExports)(path)) {
639
722
  collectFromExports(path, state);
640
723
  }
@@ -1062,4 +1145,3 @@ function collectExportsAndImports(path, cacheMode = 'enabled') {
1062
1145
  cache?.set(path, state);
1063
1146
  return state;
1064
1147
  }
1065
- exports.collectExportsAndImports = collectExportsAndImports;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  /* eslint @typescript-eslint/no-use-before-define: ["error", { "functions": false }] */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.collectTemplateDependencies = exports.extractExpression = void 0;
4
+ exports.extractExpression = extractExpression;
5
+ exports.collectTemplateDependencies = collectTemplateDependencies;
5
6
  /**
6
7
  * This file is a visitor that checks TaggedTemplateExpressions and look for WYW template literals.
7
8
  * For each template it makes a list of dependencies, try to evaluate expressions, and if it is not possible, mark them as lazy dependencies.
@@ -23,7 +24,7 @@ function staticEval(ex, evaluate = false) {
23
24
  }
24
25
  return undefined;
25
26
  }
26
- const expressionDeclarationTpl = (0, template_1.statement)('const %%expId%% = /*#__PURE__*/ () => %%expression%%', {
27
+ const expressionDeclarationTpl = (0, template_1.statement)('const %%expId%% = () => %%expression%%', {
27
28
  preserveComments: true,
28
29
  });
29
30
  const unsupported = (ex, reason) => ex.buildCodeFrameError(`This ${ex.isIdentifier() ? 'identifier' : 'expression'} cannot be used in the template${reason ? `, because it ${reason}` : ''}.`);
@@ -183,7 +184,6 @@ function extractExpression(ex, evaluate = false, imports = []) {
183
184
  };
184
185
  return result;
185
186
  }
186
- exports.extractExpression = extractExpression;
187
187
  const debug = shared_1.logger.extend('template-parse:identify-expressions');
188
188
  /**
189
189
  * Collects, hoists, and makes lazy all expressions in the given template
@@ -209,4 +209,3 @@ function collectTemplateDependencies(path, evaluate = false) {
209
209
  });
210
210
  return [quasis.map((p) => p.node), expressionValues];
211
211
  }
212
- exports.collectTemplateDependencies = collectTemplateDependencies;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findIdentifiers = exports.nonType = void 0;
3
+ exports.nonType = nonType;
4
+ exports.findIdentifiers = findIdentifiers;
4
5
  const getScope_1 = require("./getScope");
5
6
  function isInUnary(path) {
6
7
  return path.parentPath?.isUnaryExpression() ?? false;
@@ -30,7 +31,6 @@ function nonType(path) {
30
31
  p.isFlowDeclaration() ||
31
32
  p.isTSInterfaceDeclaration());
32
33
  }
33
- exports.nonType = nonType;
34
34
  function findIdentifiers(expressions, type = 'reference') {
35
35
  const identifiers = [];
36
36
  expressions.forEach((ex) => {
@@ -65,4 +65,3 @@ function findIdentifiers(expressions, type = 'reference') {
65
65
  });
66
66
  return identifiers;
67
67
  }
68
- exports.findIdentifiers = findIdentifiers;
@@ -0,0 +1,2 @@
1
+ import type { Expression } from '@babel/types';
2
+ export declare function getConstantStringValue(node: Expression): string | null;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getConstantStringValue = getConstantStringValue;
37
+ const t = __importStar(require("@babel/types"));
38
+ const getMemberExpressionPropertyName_1 = require("./getMemberExpressionPropertyName");
39
+ const unwrapExpression_1 = require("./unwrapExpression");
40
+ function getConstantStringValue(node) {
41
+ const fromExpression = (value) => {
42
+ const expression = (0, unwrapExpression_1.unwrapExpression)(value);
43
+ if (t.isStringLiteral(expression)) {
44
+ return expression.value;
45
+ }
46
+ if (t.isTemplateLiteral(expression)) {
47
+ if (expression.expressions.length !== 0) {
48
+ return null;
49
+ }
50
+ const [quasi] = expression.quasis;
51
+ return quasi?.value.cooked ?? null;
52
+ }
53
+ if (t.isBinaryExpression(expression) && expression.operator === '+') {
54
+ if (!t.isExpression(expression.left) || !t.isExpression(expression.right))
55
+ return null;
56
+ const left = fromExpression(expression.left);
57
+ const right = fromExpression(expression.right);
58
+ if (left === null || right === null) {
59
+ return null;
60
+ }
61
+ return left + right;
62
+ }
63
+ if (t.isCallExpression(expression)) {
64
+ const concatProperty = t.isMemberExpression(expression.callee)
65
+ ? (0, getMemberExpressionPropertyName_1.getMemberExpressionPropertyName)(expression.callee)
66
+ : null;
67
+ if (concatProperty !== 'concat') {
68
+ return null;
69
+ }
70
+ const { callee } = expression;
71
+ if (!t.isMemberExpression(callee) || !t.isExpression(callee.object)) {
72
+ return null;
73
+ }
74
+ const base = fromExpression(callee.object);
75
+ if (base === null) {
76
+ return null;
77
+ }
78
+ const parts = [base];
79
+ for (const arg of expression.arguments) {
80
+ if (!t.isExpression(arg)) {
81
+ return null;
82
+ }
83
+ const part = fromExpression(arg);
84
+ if (part === null) {
85
+ return null;
86
+ }
87
+ parts.push(part);
88
+ }
89
+ return parts.join('');
90
+ }
91
+ return null;
92
+ };
93
+ return fromExpression(node);
94
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFileIdx = void 0;
3
+ exports.getFileIdx = getFileIdx;
4
4
  let nextIdx = 1;
5
5
  const processed = new Map();
6
6
  function getFileIdx(name) {
@@ -10,4 +10,3 @@ function getFileIdx(name) {
10
10
  }
11
11
  return processed.get(name).toString().padStart(5, '0');
12
12
  }
13
- exports.getFileIdx = getFileIdx;
@@ -0,0 +1,2 @@
1
+ import type { MemberExpression } from '@babel/types';
2
+ export declare function getMemberExpressionPropertyName(node: MemberExpression): string | null;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getMemberExpressionPropertyName = getMemberExpressionPropertyName;
37
+ const t = __importStar(require("@babel/types"));
38
+ function getMemberExpressionPropertyName(node) {
39
+ if (!node.computed && t.isIdentifier(node.property)) {
40
+ return node.property.name;
41
+ }
42
+ if (node.computed && t.isStringLiteral(node.property)) {
43
+ return node.property.value;
44
+ }
45
+ return null;
46
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getScope = void 0;
3
+ exports.getScope = getScope;
4
4
  function getScope(path) {
5
5
  // In some nodes (like FunctionDeclaration) `scope` for `id` returns
6
6
  // local function scope instead of a scope where function is declared.
@@ -8,4 +8,3 @@ function getScope(path) {
8
8
  ? path.scope.parent
9
9
  : path.scope;
10
10
  }
11
- exports.getScope = getScope;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyProcessors = exports.getDefinedProcessors = exports.getProcessorForImport = void 0;
3
+ exports.getProcessorForImport = getProcessorForImport;
4
+ exports.getDefinedProcessors = getDefinedProcessors;
5
+ exports.applyProcessors = applyProcessors;
4
6
  const fs_1 = require("fs");
5
7
  const path_1 = require("path");
6
8
  const core_1 = require("@babel/core");
@@ -32,6 +34,25 @@ function buildCodeFrameError(path, message) {
32
34
  }
33
35
  }
34
36
  const definedTagsCache = new Map();
37
+ const resolvedTagResolverSourceCache = new Map();
38
+ const getResolvedTagResolverSource = (source, sourceFile) => {
39
+ if (!sourceFile) {
40
+ return undefined;
41
+ }
42
+ const key = `${sourceFile}\0${source}`;
43
+ if (resolvedTagResolverSourceCache.has(key)) {
44
+ return resolvedTagResolverSourceCache.get(key);
45
+ }
46
+ try {
47
+ const resolved = (0, shared_1.syncResolve)(source, sourceFile, []);
48
+ resolvedTagResolverSourceCache.set(key, resolved);
49
+ return resolved;
50
+ }
51
+ catch {
52
+ resolvedTagResolverSourceCache.set(key, undefined);
53
+ return undefined;
54
+ }
55
+ };
35
56
  const getDefinedTagsFromPackage = (pkgName, filename) => {
36
57
  if (definedTagsCache.has(pkgName)) {
37
58
  return definedTagsCache.get(pkgName);
@@ -77,14 +98,20 @@ function getProcessorFromFile(processorPath) {
77
98
  return Processor;
78
99
  }
79
100
  function getProcessorForImport({ imported, source }, filename, options) {
80
- const tagResolver = options.tagResolver ?? (() => null);
81
- const customFile = tagResolver(source, imported);
101
+ const { tagResolver } = options;
102
+ let customFile = null;
103
+ if (tagResolver) {
104
+ const tagResolverMeta = {
105
+ sourceFile: filename,
106
+ resolvedSource: getResolvedTagResolverSource(source, filename),
107
+ };
108
+ customFile = tagResolver(source, imported, tagResolverMeta);
109
+ }
82
110
  const processor = customFile
83
111
  ? getProcessorFromFile(customFile)
84
112
  : getProcessorFromPackage(source, imported, filename);
85
113
  return [processor, { imported, source }];
86
114
  }
87
- exports.getProcessorForImport = getProcessorForImport;
88
115
  function getBuilderForIdentifier(definedProcessor, path, imports, options) {
89
116
  const [Processor, tagSource] = definedProcessor;
90
117
  let tagPath = path;
@@ -156,8 +183,9 @@ function getBuilderForIdentifier(definedProcessor, path, imports, options) {
156
183
  }
157
184
  const replacer = (replacement, isPure) => {
158
185
  (0, scopeHelpers_1.mutate)(prev, (p) => {
159
- p.replaceWith(typeof replacement === 'function' ? replacement(p) : replacement);
160
- if (isPure) {
186
+ const next = typeof replacement === 'function' ? replacement(p) : replacement;
187
+ p.replaceWith(next);
188
+ if (isPure && (p.isCallExpression() || p.isNewExpression())) {
161
189
  p.addComment('leading', '#__PURE__');
162
190
  }
163
191
  });
@@ -240,7 +268,7 @@ function isTagReferenced(path) {
240
268
  const id = parent.get('id');
241
269
  // FIXME: replace with id.isReferencedIdentifier()
242
270
  if (id.isIdentifier()) {
243
- const { referencePaths } = path.scope.getBinding(id.node.name) || {
271
+ const { referencePaths } = id.scope.getBinding(id.node.name) || {
244
272
  referencePaths: [],
245
273
  };
246
274
  isReferenced = referencePaths.length !== 0;
@@ -285,7 +313,6 @@ function getDefinedProcessors(imports, path, filename, options) {
285
313
  }
286
314
  return cache.get(path);
287
315
  }
288
- exports.getDefinedProcessors = getDefinedProcessors;
289
316
  function createProcessorInstance(definedProcessor, imports, path, fileContext, options) {
290
317
  const cache = (0, traversalCache_1.getTraversalCache)(path, 'createProcessorInstance');
291
318
  if (!cache.has(path.node)) {
@@ -367,4 +394,3 @@ function applyProcessors(path, fileContext, options, callback) {
367
394
  callback(instance);
368
395
  });
369
396
  }
370
- exports.applyProcessors = applyProcessors;
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getVisitorKeys = void 0;
3
+ exports.getVisitorKeys = getVisitorKeys;
4
4
  const core_1 = require("@babel/core");
5
5
  function getVisitorKeys(node) {
6
6
  return core_1.types.VISITOR_KEYS[node.type];
7
7
  }
8
- exports.getVisitorKeys = getVisitorKeys;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = hasWywPreval;
3
4
  function hasWywPreval(exports) {
4
5
  if (!exports || typeof exports !== 'object') {
5
6
  return false;
6
7
  }
7
8
  return '__wywPreval' in exports;
8
9
  }
9
- exports.default = hasWywPreval;
@@ -0,0 +1,19 @@
1
+ import { type ImportOverride } from '@wyw-in-js/shared';
2
+ export type ImportKeyKind = 'file' | 'package';
3
+ export type ImportKey = {
4
+ key: string;
5
+ kind: ImportKeyKind;
6
+ };
7
+ export declare function toCanonicalFileKey(resolved: string, root: string | undefined): string;
8
+ export declare function toImportKey({ source, resolved, root, }: {
9
+ resolved: string | null;
10
+ root: string | undefined;
11
+ source: string;
12
+ }): ImportKey;
13
+ export declare function resolveMockSpecifier({ importer, mock, root, stack, }: {
14
+ importer: string;
15
+ mock: string;
16
+ root: string | undefined;
17
+ stack: string[];
18
+ }): string;
19
+ export declare function applyImportOverrideToOnly(only: string[], override: ImportOverride | undefined): string[];
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.toCanonicalFileKey = toCanonicalFileKey;
7
+ exports.toImportKey = toImportKey;
8
+ exports.resolveMockSpecifier = resolveMockSpecifier;
9
+ exports.applyImportOverrideToOnly = applyImportOverrideToOnly;
10
+ const path_1 = __importDefault(require("path"));
11
+ const shared_1 = require("@wyw-in-js/shared");
12
+ function toCanonicalFileKey(resolved, root) {
13
+ const rootDir = root ? path_1.default.resolve(root) : process.cwd();
14
+ const normalizedResolved = path_1.default.resolve(resolved);
15
+ let relative = path_1.default.relative(rootDir, normalizedResolved);
16
+ if (path_1.default.sep !== path_1.default.posix.sep) {
17
+ relative = relative.split(path_1.default.sep).join(path_1.default.posix.sep);
18
+ }
19
+ if (!relative.startsWith('.')) {
20
+ relative = `./${relative}`;
21
+ }
22
+ return relative;
23
+ }
24
+ function toImportKey({ source, resolved, root, }) {
25
+ const isFileImport = source.startsWith('.') || path_1.default.isAbsolute(source);
26
+ if (isFileImport && resolved) {
27
+ return { key: toCanonicalFileKey(resolved, root), kind: 'file' };
28
+ }
29
+ return { key: source, kind: 'package' };
30
+ }
31
+ function resolveMockSpecifier({ importer, mock, root, stack, }) {
32
+ const specifier = mock.startsWith('.') && root ? path_1.default.resolve(root, mock) : mock;
33
+ return (0, shared_1.syncResolve)(specifier, importer, stack);
34
+ }
35
+ function applyImportOverrideToOnly(only, override) {
36
+ if (override?.noShake) {
37
+ return ['*'];
38
+ }
39
+ return only;
40
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isExports = void 0;
3
+ exports.isExports = isExports;
4
4
  const isGlobal_1 = require("./isGlobal");
5
5
  /**
6
6
  * Checks that specified Identifier is a global `exports` or `module.exports`
@@ -17,4 +17,3 @@ function isExports(node) {
17
17
  }
18
18
  return false;
19
19
  }
20
- exports.isExports = isExports;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isNodePath = void 0;
3
+ exports.isNodePath = isNodePath;
4
4
  function isNodePath(obj) {
5
5
  return 'node' in obj && obj?.node !== undefined;
6
6
  }
7
- exports.isNodePath = isNodePath;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isNotNull = void 0;
3
+ exports.isNotNull = isNotNull;
4
4
  function isNotNull(x) {
5
5
  return x !== null;
6
6
  }
7
- exports.isNotNull = isNotNull;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isRemoved = void 0;
3
+ exports.isRemoved = isRemoved;
4
4
  /**
5
5
  * Checks if a given path has been removed from the AST.
6
6
  */
@@ -39,4 +39,3 @@ function isRemoved(path) {
39
39
  // If the function has not returned true by this point, return false
40
40
  return false;
41
41
  }
42
- exports.isRemoved = isRemoved;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isRequire = void 0;
3
+ exports.isRequire = isRequire;
4
4
  const isGlobal_1 = require("./isGlobal");
5
5
  /**
6
6
  * Checks that specified Identifier is a global `require`
@@ -12,4 +12,3 @@ function isRequire(id) {
12
12
  }
13
13
  return (0, isGlobal_1.isGlobal)(id, 'require');
14
14
  }
15
- exports.isRequire = isRequire;