@wyw-in-js/transform 0.1.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 (480) hide show
  1. package/LICENSE +21 -0
  2. package/esm/babel.js +2 -0
  3. package/esm/babel.js.map +1 -0
  4. package/esm/cache.js +80 -0
  5. package/esm/cache.js.map +1 -0
  6. package/esm/debug/fileReporter.js +144 -0
  7. package/esm/debug/fileReporter.js.map +1 -0
  8. package/esm/evaluators/index.js +14 -0
  9. package/esm/evaluators/index.js.map +1 -0
  10. package/esm/index.js +24 -0
  11. package/esm/index.js.map +1 -0
  12. package/esm/module.js +316 -0
  13. package/esm/module.js.map +1 -0
  14. package/esm/options/babel-merge.d.js +2 -0
  15. package/esm/options/babel-merge.d.js.map +1 -0
  16. package/esm/options/buildOptions.js +28 -0
  17. package/esm/options/buildOptions.js.map +1 -0
  18. package/esm/options/loadBabelOptions.js +24 -0
  19. package/esm/options/loadBabelOptions.js.map +1 -0
  20. package/esm/plugins/babel-transform.js +53 -0
  21. package/esm/plugins/babel-transform.js.map +1 -0
  22. package/esm/plugins/collector.js +66 -0
  23. package/esm/plugins/collector.js.map +1 -0
  24. package/esm/plugins/dynamic-import.js +28 -0
  25. package/esm/plugins/dynamic-import.js.map +1 -0
  26. package/esm/plugins/preeval.js +75 -0
  27. package/esm/plugins/preeval.js.map +1 -0
  28. package/esm/plugins/shaker.js +296 -0
  29. package/esm/plugins/shaker.js.map +1 -0
  30. package/esm/shaker.js +50 -0
  31. package/esm/shaker.js.map +1 -0
  32. package/esm/transform/BaseEntrypoint.js +164 -0
  33. package/esm/transform/BaseEntrypoint.js.map +1 -0
  34. package/esm/transform/Entrypoint.helpers.js +168 -0
  35. package/esm/transform/Entrypoint.helpers.js.map +1 -0
  36. package/esm/transform/Entrypoint.js +212 -0
  37. package/esm/transform/Entrypoint.js.map +1 -0
  38. package/esm/transform/Entrypoint.types.js +2 -0
  39. package/esm/transform/Entrypoint.types.js.map +1 -0
  40. package/esm/transform/EvaluatedEntrypoint.js +6 -0
  41. package/esm/transform/EvaluatedEntrypoint.js.map +1 -0
  42. package/esm/transform/actions/AbortError.js +8 -0
  43. package/esm/transform/actions/AbortError.js.map +1 -0
  44. package/esm/transform/actions/BaseAction.js +134 -0
  45. package/esm/transform/actions/BaseAction.js.map +1 -0
  46. package/esm/transform/actions/UnprocessedEntrypointError.js +8 -0
  47. package/esm/transform/actions/UnprocessedEntrypointError.js.map +1 -0
  48. package/esm/transform/actions/actionRunner.js +73 -0
  49. package/esm/transform/actions/actionRunner.js.map +1 -0
  50. package/esm/transform/actions/types.js +2 -0
  51. package/esm/transform/actions/types.js.map +1 -0
  52. package/esm/transform/generators/baseProcessingHandlers.js +22 -0
  53. package/esm/transform/generators/baseProcessingHandlers.js.map +1 -0
  54. package/esm/transform/generators/collect.js +58 -0
  55. package/esm/transform/generators/collect.js.map +1 -0
  56. package/esm/transform/generators/evalFile.js +50 -0
  57. package/esm/transform/generators/evalFile.js.map +1 -0
  58. package/esm/transform/generators/explodeReexports.js +63 -0
  59. package/esm/transform/generators/explodeReexports.js.map +1 -0
  60. package/esm/transform/generators/extract.js +120 -0
  61. package/esm/transform/generators/extract.js.map +1 -0
  62. package/esm/transform/generators/getExports.js +73 -0
  63. package/esm/transform/generators/getExports.js.map +1 -0
  64. package/esm/transform/generators/index.js +13 -0
  65. package/esm/transform/generators/index.js.map +1 -0
  66. package/esm/transform/generators/processEntrypoint.js +43 -0
  67. package/esm/transform/generators/processEntrypoint.js.map +1 -0
  68. package/esm/transform/generators/processImports.js +23 -0
  69. package/esm/transform/generators/processImports.js.map +1 -0
  70. package/esm/transform/generators/resolveImports.js +148 -0
  71. package/esm/transform/generators/resolveImports.js.map +1 -0
  72. package/esm/transform/generators/transform.js +117 -0
  73. package/esm/transform/generators/transform.js.map +1 -0
  74. package/esm/transform/generators/workflow.js +82 -0
  75. package/esm/transform/generators/workflow.js.map +1 -0
  76. package/esm/transform/helpers/loadLinariaOptions.js +66 -0
  77. package/esm/transform/helpers/loadLinariaOptions.js.map +1 -0
  78. package/esm/transform/helpers/withDefaultServices.js +21 -0
  79. package/esm/transform/helpers/withDefaultServices.js.map +1 -0
  80. package/esm/transform/rootLog.js +3 -0
  81. package/esm/transform/rootLog.js.map +1 -0
  82. package/esm/transform/types.js +2 -0
  83. package/esm/transform/types.js.map +1 -0
  84. package/esm/transform.js +121 -0
  85. package/esm/transform.js.map +1 -0
  86. package/esm/types.js +2 -0
  87. package/esm/types.js.map +1 -0
  88. package/esm/utils/EventEmitter.js +52 -0
  89. package/esm/utils/EventEmitter.js.map +1 -0
  90. package/esm/utils/ShakerMetadata.js +2 -0
  91. package/esm/utils/ShakerMetadata.js.map +1 -0
  92. package/esm/utils/TransformMetadata.js +11 -0
  93. package/esm/utils/TransformMetadata.js.map +1 -0
  94. package/esm/utils/addIdentifierToLinariaPreval.js +68 -0
  95. package/esm/utils/addIdentifierToLinariaPreval.js.map +1 -0
  96. package/esm/utils/collectExportsAndImports.js +974 -0
  97. package/esm/utils/collectExportsAndImports.js.map +1 -0
  98. package/esm/utils/collectTemplateDependencies.js +219 -0
  99. package/esm/utils/collectTemplateDependencies.js.map +1 -0
  100. package/esm/utils/createId.js +6 -0
  101. package/esm/utils/createId.js.map +1 -0
  102. package/esm/utils/dispose-polyfill.js +6 -0
  103. package/esm/utils/dispose-polyfill.js.map +1 -0
  104. package/esm/utils/findIdentifiers.js +62 -0
  105. package/esm/utils/findIdentifiers.js.map +1 -0
  106. package/esm/utils/findPackageJSON.js +22 -0
  107. package/esm/utils/findPackageJSON.js.map +1 -0
  108. package/esm/utils/getFileIdx.js +10 -0
  109. package/esm/utils/getFileIdx.js.map +1 -0
  110. package/esm/utils/getPluginKey.js +13 -0
  111. package/esm/utils/getPluginKey.js.map +1 -0
  112. package/esm/utils/getScope.js +6 -0
  113. package/esm/utils/getScope.js.map +1 -0
  114. package/esm/utils/getSource.js +15 -0
  115. package/esm/utils/getSource.js.map +1 -0
  116. package/esm/utils/getTagProcessor.js +304 -0
  117. package/esm/utils/getTagProcessor.js.map +1 -0
  118. package/esm/utils/getVisitorKeys.js +5 -0
  119. package/esm/utils/getVisitorKeys.js.map +1 -0
  120. package/esm/utils/hasLinariaPreval.js +7 -0
  121. package/esm/utils/hasLinariaPreval.js.map +1 -0
  122. package/esm/utils/isExports.js +22 -0
  123. package/esm/utils/isExports.js.map +1 -0
  124. package/esm/utils/isGlobal.js +6 -0
  125. package/esm/utils/isGlobal.js.map +1 -0
  126. package/esm/utils/isNode.js +2 -0
  127. package/esm/utils/isNode.js.map +1 -0
  128. package/esm/utils/isNodePath.js +4 -0
  129. package/esm/utils/isNodePath.js.map +1 -0
  130. package/esm/utils/isNotNull.js +4 -0
  131. package/esm/utils/isNotNull.js.map +1 -0
  132. package/esm/utils/isRemoved.js +46 -0
  133. package/esm/utils/isRemoved.js.map +1 -0
  134. package/esm/utils/isRequire.js +13 -0
  135. package/esm/utils/isRequire.js.map +1 -0
  136. package/esm/utils/isSerializable.js +13 -0
  137. package/esm/utils/isSerializable.js.map +1 -0
  138. package/esm/utils/isTypedNode.js +6 -0
  139. package/esm/utils/isTypedNode.js.map +1 -0
  140. package/esm/utils/isUnnecessaryReactCall.js +72 -0
  141. package/esm/utils/isUnnecessaryReactCall.js.map +1 -0
  142. package/esm/utils/peek.js +2 -0
  143. package/esm/utils/peek.js.map +1 -0
  144. package/esm/utils/processTemplateExpression.js +11 -0
  145. package/esm/utils/processTemplateExpression.js.map +1 -0
  146. package/esm/utils/removeDangerousCode.js +127 -0
  147. package/esm/utils/removeDangerousCode.js.map +1 -0
  148. package/esm/utils/scopeHelpers.js +514 -0
  149. package/esm/utils/scopeHelpers.js.map +1 -0
  150. package/esm/utils/traversalCache.js +28 -0
  151. package/esm/utils/traversalCache.js.map +1 -0
  152. package/esm/utils/unwrapSequence.js +14 -0
  153. package/esm/utils/unwrapSequence.js.map +1 -0
  154. package/esm/utils/valueToLiteral.js +59 -0
  155. package/esm/utils/valueToLiteral.js.map +1 -0
  156. package/esm/utils/visitors/JSXElementsRemover.js +51 -0
  157. package/esm/utils/visitors/JSXElementsRemover.js.map +1 -0
  158. package/esm/vm/createVmContext.js +72 -0
  159. package/esm/vm/createVmContext.js.map +1 -0
  160. package/esm/vm/process.js +29 -0
  161. package/esm/vm/process.js.map +1 -0
  162. package/lib/babel.js +2 -0
  163. package/lib/babel.js.map +1 -0
  164. package/lib/cache.js +87 -0
  165. package/lib/cache.js.map +1 -0
  166. package/lib/debug/fileReporter.js +153 -0
  167. package/lib/debug/fileReporter.js.map +1 -0
  168. package/lib/evaluators/index.js +20 -0
  169. package/lib/evaluators/index.js.map +1 -0
  170. package/lib/index.js +225 -0
  171. package/lib/index.js.map +1 -0
  172. package/lib/module.js +327 -0
  173. package/lib/module.js.map +1 -0
  174. package/lib/options/babel-merge.d.js +2 -0
  175. package/lib/options/babel-merge.d.js.map +1 -0
  176. package/lib/options/buildOptions.js +35 -0
  177. package/lib/options/buildOptions.js.map +1 -0
  178. package/lib/options/loadBabelOptions.js +31 -0
  179. package/lib/options/loadBabelOptions.js.map +1 -0
  180. package/lib/plugins/babel-transform.js +60 -0
  181. package/lib/plugins/babel-transform.js.map +1 -0
  182. package/lib/plugins/collector.js +76 -0
  183. package/lib/plugins/collector.js.map +1 -0
  184. package/lib/plugins/dynamic-import.js +34 -0
  185. package/lib/plugins/dynamic-import.js.map +1 -0
  186. package/lib/plugins/preeval.js +82 -0
  187. package/lib/plugins/preeval.js.map +1 -0
  188. package/lib/plugins/shaker.js +303 -0
  189. package/lib/plugins/shaker.js.map +1 -0
  190. package/lib/shaker.js +58 -0
  191. package/lib/shaker.js.map +1 -0
  192. package/lib/transform/BaseEntrypoint.js +175 -0
  193. package/lib/transform/BaseEntrypoint.js.map +1 -0
  194. package/lib/transform/Entrypoint.helpers.js +182 -0
  195. package/lib/transform/Entrypoint.helpers.js.map +1 -0
  196. package/lib/transform/Entrypoint.js +226 -0
  197. package/lib/transform/Entrypoint.js.map +1 -0
  198. package/lib/transform/Entrypoint.types.js +2 -0
  199. package/lib/transform/Entrypoint.types.js.map +1 -0
  200. package/lib/transform/EvaluatedEntrypoint.js +13 -0
  201. package/lib/transform/EvaluatedEntrypoint.js.map +1 -0
  202. package/lib/transform/actions/AbortError.js +16 -0
  203. package/lib/transform/actions/AbortError.js.map +1 -0
  204. package/lib/transform/actions/BaseAction.js +144 -0
  205. package/lib/transform/actions/BaseAction.js.map +1 -0
  206. package/lib/transform/actions/UnprocessedEntrypointError.js +16 -0
  207. package/lib/transform/actions/UnprocessedEntrypointError.js.map +1 -0
  208. package/lib/transform/actions/actionRunner.js +82 -0
  209. package/lib/transform/actions/actionRunner.js.map +1 -0
  210. package/lib/transform/actions/types.js +2 -0
  211. package/lib/transform/actions/types.js.map +1 -0
  212. package/lib/transform/generators/baseProcessingHandlers.js +27 -0
  213. package/lib/transform/generators/baseProcessingHandlers.js.map +1 -0
  214. package/lib/transform/generators/collect.js +66 -0
  215. package/lib/transform/generators/collect.js.map +1 -0
  216. package/lib/transform/generators/evalFile.js +57 -0
  217. package/lib/transform/generators/evalFile.js.map +1 -0
  218. package/lib/transform/generators/explodeReexports.js +70 -0
  219. package/lib/transform/generators/explodeReexports.js.map +1 -0
  220. package/lib/transform/generators/extract.js +128 -0
  221. package/lib/transform/generators/extract.js.map +1 -0
  222. package/lib/transform/generators/getExports.js +80 -0
  223. package/lib/transform/generators/getExports.js.map +1 -0
  224. package/lib/transform/generators/index.js +19 -0
  225. package/lib/transform/generators/index.js.map +1 -0
  226. package/lib/transform/generators/processEntrypoint.js +49 -0
  227. package/lib/transform/generators/processEntrypoint.js.map +1 -0
  228. package/lib/transform/generators/processImports.js +29 -0
  229. package/lib/transform/generators/processImports.js.map +1 -0
  230. package/lib/transform/generators/resolveImports.js +158 -0
  231. package/lib/transform/generators/resolveImports.js.map +1 -0
  232. package/lib/transform/generators/transform.js +130 -0
  233. package/lib/transform/generators/transform.js.map +1 -0
  234. package/lib/transform/generators/workflow.js +90 -0
  235. package/lib/transform/generators/workflow.js.map +1 -0
  236. package/lib/transform/helpers/loadLinariaOptions.js +73 -0
  237. package/lib/transform/helpers/loadLinariaOptions.js.map +1 -0
  238. package/lib/transform/helpers/withDefaultServices.js +30 -0
  239. package/lib/transform/helpers/withDefaultServices.js.map +1 -0
  240. package/lib/transform/rootLog.js +9 -0
  241. package/lib/transform/rootLog.js.map +1 -0
  242. package/lib/transform/types.js +8 -0
  243. package/lib/transform/types.js.map +1 -0
  244. package/lib/transform.js +128 -0
  245. package/lib/transform.js.map +1 -0
  246. package/lib/types.js +2 -0
  247. package/lib/types.js.map +1 -0
  248. package/lib/utils/EventEmitter.js +61 -0
  249. package/lib/utils/EventEmitter.js.map +1 -0
  250. package/lib/utils/ShakerMetadata.js +9 -0
  251. package/lib/utils/ShakerMetadata.js.map +1 -0
  252. package/lib/utils/TransformMetadata.js +19 -0
  253. package/lib/utils/TransformMetadata.js.map +1 -0
  254. package/lib/utils/addIdentifierToLinariaPreval.js +75 -0
  255. package/lib/utils/addIdentifierToLinariaPreval.js.map +1 -0
  256. package/lib/utils/collectExportsAndImports.js +990 -0
  257. package/lib/utils/collectExportsAndImports.js.map +1 -0
  258. package/lib/utils/collectTemplateDependencies.js +233 -0
  259. package/lib/utils/collectTemplateDependencies.js.map +1 -0
  260. package/lib/utils/createId.js +13 -0
  261. package/lib/utils/createId.js.map +1 -0
  262. package/lib/utils/dispose-polyfill.js +9 -0
  263. package/lib/utils/dispose-polyfill.js.map +1 -0
  264. package/lib/utils/findIdentifiers.js +73 -0
  265. package/lib/utils/findIdentifiers.js.map +1 -0
  266. package/lib/utils/findPackageJSON.js +29 -0
  267. package/lib/utils/findPackageJSON.js.map +1 -0
  268. package/lib/utils/getFileIdx.js +16 -0
  269. package/lib/utils/getFileIdx.js.map +1 -0
  270. package/lib/utils/getPluginKey.js +21 -0
  271. package/lib/utils/getPluginKey.js.map +1 -0
  272. package/lib/utils/getScope.js +12 -0
  273. package/lib/utils/getScope.js.map +1 -0
  274. package/lib/utils/getSource.js +24 -0
  275. package/lib/utils/getSource.js.map +1 -0
  276. package/lib/utils/getTagProcessor.js +318 -0
  277. package/lib/utils/getTagProcessor.js.map +1 -0
  278. package/lib/utils/getVisitorKeys.js +11 -0
  279. package/lib/utils/getVisitorKeys.js.map +1 -0
  280. package/lib/utils/hasLinariaPreval.js +13 -0
  281. package/lib/utils/hasLinariaPreval.js.map +1 -0
  282. package/lib/utils/isExports.js +27 -0
  283. package/lib/utils/isExports.js.map +1 -0
  284. package/lib/utils/isGlobal.js +13 -0
  285. package/lib/utils/isGlobal.js.map +1 -0
  286. package/lib/utils/isNode.js +9 -0
  287. package/lib/utils/isNode.js.map +1 -0
  288. package/lib/utils/isNodePath.js +10 -0
  289. package/lib/utils/isNodePath.js.map +1 -0
  290. package/lib/utils/isNotNull.js +10 -0
  291. package/lib/utils/isNotNull.js.map +1 -0
  292. package/lib/utils/isRemoved.js +52 -0
  293. package/lib/utils/isRemoved.js.map +1 -0
  294. package/lib/utils/isRequire.js +18 -0
  295. package/lib/utils/isRequire.js.map +1 -0
  296. package/lib/utils/isSerializable.js +19 -0
  297. package/lib/utils/isSerializable.js.map +1 -0
  298. package/lib/utils/isTypedNode.js +13 -0
  299. package/lib/utils/isTypedNode.js.map +1 -0
  300. package/lib/utils/isUnnecessaryReactCall.js +81 -0
  301. package/lib/utils/isUnnecessaryReactCall.js.map +1 -0
  302. package/lib/utils/peek.js +9 -0
  303. package/lib/utils/peek.js.map +1 -0
  304. package/lib/utils/processTemplateExpression.js +18 -0
  305. package/lib/utils/processTemplateExpression.js.map +1 -0
  306. package/lib/utils/removeDangerousCode.js +134 -0
  307. package/lib/utils/removeDangerousCode.js.map +1 -0
  308. package/lib/utils/scopeHelpers.js +544 -0
  309. package/lib/utils/scopeHelpers.js.map +1 -0
  310. package/lib/utils/traversalCache.js +38 -0
  311. package/lib/utils/traversalCache.js.map +1 -0
  312. package/lib/utils/unwrapSequence.js +20 -0
  313. package/lib/utils/unwrapSequence.js.map +1 -0
  314. package/lib/utils/valueToLiteral.js +65 -0
  315. package/lib/utils/valueToLiteral.js.map +1 -0
  316. package/lib/utils/visitors/JSXElementsRemover.js +57 -0
  317. package/lib/utils/visitors/JSXElementsRemover.js.map +1 -0
  318. package/lib/vm/createVmContext.js +80 -0
  319. package/lib/vm/createVmContext.js.map +1 -0
  320. package/lib/vm/process.js +38 -0
  321. package/lib/vm/process.js.map +1 -0
  322. package/package.json +63 -0
  323. package/types/babel.d.ts +2 -0
  324. package/types/babel.js +2 -0
  325. package/types/cache.d.ts +24 -0
  326. package/types/cache.js +85 -0
  327. package/types/debug/fileReporter.d.ts +27 -0
  328. package/types/debug/fileReporter.js +151 -0
  329. package/types/evaluators/index.d.ts +10 -0
  330. package/types/evaluators/index.js +15 -0
  331. package/types/index.d.ts +30 -0
  332. package/types/index.js +69 -0
  333. package/types/module.d.ts +62 -0
  334. package/types/module.js +318 -0
  335. package/types/options/buildOptions.d.ts +7 -0
  336. package/types/options/buildOptions.js +35 -0
  337. package/types/options/loadBabelOptions.d.ts +3 -0
  338. package/types/options/loadBabelOptions.js +27 -0
  339. package/types/plugins/babel-transform.d.ts +4 -0
  340. package/types/plugins/babel-transform.js +49 -0
  341. package/types/plugins/collector.d.ts +16 -0
  342. package/types/plugins/collector.js +67 -0
  343. package/types/plugins/dynamic-import.d.ts +6 -0
  344. package/types/plugins/dynamic-import.js +32 -0
  345. package/types/plugins/preeval.d.ts +16 -0
  346. package/types/plugins/preeval.js +69 -0
  347. package/types/plugins/shaker.d.ts +11 -0
  348. package/types/plugins/shaker.js +299 -0
  349. package/types/shaker.d.ts +3 -0
  350. package/types/shaker.js +64 -0
  351. package/types/transform/BaseEntrypoint.d.ts +23 -0
  352. package/types/transform/BaseEntrypoint.js +182 -0
  353. package/types/transform/Entrypoint.d.ts +50 -0
  354. package/types/transform/Entrypoint.helpers.d.ts +14 -0
  355. package/types/transform/Entrypoint.helpers.js +169 -0
  356. package/types/transform/Entrypoint.js +223 -0
  357. package/types/transform/Entrypoint.types.d.ts +23 -0
  358. package/types/transform/Entrypoint.types.js +2 -0
  359. package/types/transform/EvaluatedEntrypoint.d.ts +16 -0
  360. package/types/transform/EvaluatedEntrypoint.js +9 -0
  361. package/types/transform/actions/AbortError.d.ts +4 -0
  362. package/types/transform/actions/AbortError.js +12 -0
  363. package/types/transform/actions/BaseAction.d.ts +40 -0
  364. package/types/transform/actions/BaseAction.js +149 -0
  365. package/types/transform/actions/UnprocessedEntrypointError.d.ts +6 -0
  366. package/types/transform/actions/UnprocessedEntrypointError.js +13 -0
  367. package/types/transform/actions/actionRunner.d.ts +4 -0
  368. package/types/transform/actions/actionRunner.js +86 -0
  369. package/types/transform/actions/types.d.ts +15 -0
  370. package/types/transform/actions/types.js +2 -0
  371. package/types/transform/generators/baseProcessingHandlers.d.ts +17 -0
  372. package/types/transform/generators/baseProcessingHandlers.js +23 -0
  373. package/types/transform/generators/collect.d.ts +6 -0
  374. package/types/transform/generators/collect.js +57 -0
  375. package/types/transform/generators/evalFile.d.ts +6 -0
  376. package/types/transform/generators/evalFile.js +56 -0
  377. package/types/transform/generators/explodeReexports.d.ts +7 -0
  378. package/types/transform/generators/explodeReexports.js +67 -0
  379. package/types/transform/generators/extract.d.ts +8 -0
  380. package/types/transform/generators/extract.js +116 -0
  381. package/types/transform/generators/getExports.d.ts +8 -0
  382. package/types/transform/generators/getExports.js +65 -0
  383. package/types/transform/generators/index.d.ts +15 -0
  384. package/types/transform/generators/index.js +15 -0
  385. package/types/transform/generators/processEntrypoint.d.ts +9 -0
  386. package/types/transform/generators/processEntrypoint.js +88 -0
  387. package/types/transform/generators/processImports.d.ts +5 -0
  388. package/types/transform/generators/processImports.js +21 -0
  389. package/types/transform/generators/resolveImports.d.ts +9 -0
  390. package/types/transform/generators/resolveImports.js +124 -0
  391. package/types/transform/generators/transform.d.ts +17 -0
  392. package/types/transform/generators/transform.js +115 -0
  393. package/types/transform/generators/workflow.d.ts +7 -0
  394. package/types/transform/generators/workflow.js +77 -0
  395. package/types/transform/helpers/loadLinariaOptions.d.ts +6 -0
  396. package/types/transform/helpers/loadLinariaOptions.js +86 -0
  397. package/types/transform/helpers/withDefaultServices.d.ts +5 -0
  398. package/types/transform/helpers/withDefaultServices.js +40 -0
  399. package/types/transform/rootLog.d.ts +3 -0
  400. package/types/transform/rootLog.js +5 -0
  401. package/types/transform/types.d.ts +137 -0
  402. package/types/transform/types.js +4 -0
  403. package/types/transform.d.ts +20 -0
  404. package/types/transform.js +121 -0
  405. package/types/types.d.ts +72 -0
  406. package/types/types.js +5 -0
  407. package/types/utils/EventEmitter.d.ts +58 -0
  408. package/types/utils/EventEmitter.js +61 -0
  409. package/types/utils/ShakerMetadata.d.ts +7 -0
  410. package/types/utils/ShakerMetadata.js +5 -0
  411. package/types/utils/TransformMetadata.d.ts +13 -0
  412. package/types/utils/TransformMetadata.js +17 -0
  413. package/types/utils/addIdentifierToLinariaPreval.d.ts +4 -0
  414. package/types/utils/addIdentifierToLinariaPreval.js +75 -0
  415. package/types/utils/collectExportsAndImports.d.ts +31 -0
  416. package/types/utils/collectExportsAndImports.js +962 -0
  417. package/types/utils/collectTemplateDependencies.d.ts +17 -0
  418. package/types/utils/collectTemplateDependencies.js +212 -0
  419. package/types/utils/createId.d.ts +2 -0
  420. package/types/utils/createId.js +9 -0
  421. package/types/utils/dispose-polyfill.d.ts +0 -0
  422. package/types/utils/dispose-polyfill.js +5 -0
  423. package/types/utils/findIdentifiers.d.ts +6 -0
  424. package/types/utils/findIdentifiers.js +68 -0
  425. package/types/utils/findPackageJSON.d.ts +1 -0
  426. package/types/utils/findPackageJSON.js +29 -0
  427. package/types/utils/getFileIdx.d.ts +1 -0
  428. package/types/utils/getFileIdx.js +13 -0
  429. package/types/utils/getPluginKey.d.ts +2 -0
  430. package/types/utils/getPluginKey.js +16 -0
  431. package/types/utils/getScope.d.ts +2 -0
  432. package/types/utils/getScope.js +11 -0
  433. package/types/utils/getSource.d.ts +2 -0
  434. package/types/utils/getSource.js +22 -0
  435. package/types/utils/getTagProcessor.d.ts +6 -0
  436. package/types/utils/getTagProcessor.js +315 -0
  437. package/types/utils/getVisitorKeys.d.ts +5 -0
  438. package/types/utils/getVisitorKeys.js +8 -0
  439. package/types/utils/hasLinariaPreval.d.ts +4 -0
  440. package/types/utils/hasLinariaPreval.js +9 -0
  441. package/types/utils/isExports.d.ts +6 -0
  442. package/types/utils/isExports.js +20 -0
  443. package/types/utils/isGlobal.d.ts +2 -0
  444. package/types/utils/isGlobal.js +9 -0
  445. package/types/utils/isNode.d.ts +2 -0
  446. package/types/utils/isNode.js +7 -0
  447. package/types/utils/isNodePath.d.ts +3 -0
  448. package/types/utils/isNodePath.js +7 -0
  449. package/types/utils/isNotNull.d.ts +1 -0
  450. package/types/utils/isNotNull.js +7 -0
  451. package/types/utils/isRemoved.d.ts +5 -0
  452. package/types/utils/isRemoved.js +42 -0
  453. package/types/utils/isRequire.d.ts +6 -0
  454. package/types/utils/isRequire.js +15 -0
  455. package/types/utils/isSerializable.d.ts +2 -0
  456. package/types/utils/isSerializable.js +18 -0
  457. package/types/utils/isTypedNode.d.ts +5 -0
  458. package/types/utils/isTypedNode.js +9 -0
  459. package/types/utils/isUnnecessaryReactCall.d.ts +3 -0
  460. package/types/utils/isUnnecessaryReactCall.js +76 -0
  461. package/types/utils/peek.d.ts +1 -0
  462. package/types/utils/peek.js +5 -0
  463. package/types/utils/processTemplateExpression.d.ts +5 -0
  464. package/types/utils/processTemplateExpression.js +17 -0
  465. package/types/utils/removeDangerousCode.d.ts +3 -0
  466. package/types/utils/removeDangerousCode.js +144 -0
  467. package/types/utils/scopeHelpers.d.ts +12 -0
  468. package/types/utils/scopeHelpers.js +568 -0
  469. package/types/utils/traversalCache.d.ts +5 -0
  470. package/types/utils/traversalCache.js +36 -0
  471. package/types/utils/unwrapSequence.d.ts +8 -0
  472. package/types/utils/unwrapSequence.js +17 -0
  473. package/types/utils/valueToLiteral.d.ts +3 -0
  474. package/types/utils/valueToLiteral.js +64 -0
  475. package/types/utils/visitors/JSXElementsRemover.d.ts +3 -0
  476. package/types/utils/visitors/JSXElementsRemover.js +52 -0
  477. package/types/vm/createVmContext.d.ts +7 -0
  478. package/types/vm/createVmContext.js +92 -0
  479. package/types/vm/process.d.ts +25 -0
  480. package/types/vm/process.js +32 -0
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ /**
3
+ * This file exposes transform function that:
4
+ * - parse the passed code to AST
5
+ * - transforms the AST using Linaria babel preset ('./babel/index.js) and additional config defined in Linaria config file or passed to bundler configuration.
6
+ * - runs generated CSS files through default of user-defined preprocessor
7
+ * - generates source maps for CSS files
8
+ * - return transformed code (without Linaria template literals), generated CSS, source maps and babel metadata from transform step.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.transform = exports.transformSync = void 0;
12
+ const shared_1 = require("@wyw-in-js/shared");
13
+ const cache_1 = require("./cache");
14
+ const Entrypoint_1 = require("./transform/Entrypoint");
15
+ const actionRunner_1 = require("./transform/actions/actionRunner");
16
+ const generators_1 = require("./transform/generators");
17
+ const resolveImports_1 = require("./transform/generators/resolveImports");
18
+ const loadLinariaOptions_1 = require("./transform/helpers/loadLinariaOptions");
19
+ const withDefaultServices_1 = require("./transform/helpers/withDefaultServices");
20
+ function transformSync(partialServices, originalCode, syncResolve, customHandlers = {}) {
21
+ const { options } = partialServices;
22
+ const pluginOptions = (0, loadLinariaOptions_1.loadLinariaOptions)(options.pluginOptions);
23
+ const services = (0, withDefaultServices_1.withDefaultServices)({
24
+ ...partialServices,
25
+ options: {
26
+ ...options,
27
+ pluginOptions,
28
+ },
29
+ });
30
+ if (!(0, shared_1.isFeatureEnabled)(pluginOptions.features, 'globalCache', options.filename)) {
31
+ // If global cache is disabled, we need to create a new cache for each file
32
+ services.cache = new cache_1.TransformCacheCollection();
33
+ }
34
+ const entrypoint = Entrypoint_1.Entrypoint.createRoot(services, options.filename, ['__linariaPreval'], originalCode);
35
+ if (entrypoint.ignored) {
36
+ return {
37
+ code: originalCode,
38
+ sourceMap: options.inputSourceMap,
39
+ };
40
+ }
41
+ const workflowAction = entrypoint.createAction('workflow', undefined);
42
+ try {
43
+ const result = (0, actionRunner_1.syncActionRunner)(workflowAction, {
44
+ ...generators_1.baseHandlers,
45
+ ...customHandlers,
46
+ resolveImports() {
47
+ return resolveImports_1.syncResolveImports.call(this, syncResolve);
48
+ },
49
+ });
50
+ entrypoint.log('%s is ready', entrypoint.name);
51
+ return result;
52
+ }
53
+ catch (err) {
54
+ entrypoint.log('Unhandled error %O', err);
55
+ if ((0, shared_1.isFeatureEnabled)(pluginOptions.features, 'softErrors', options.filename)) {
56
+ // eslint-disable-next-line no-console
57
+ console.error(`Error during transform of ${entrypoint.name}:`, err);
58
+ return {
59
+ code: originalCode,
60
+ sourceMap: options.inputSourceMap,
61
+ };
62
+ }
63
+ throw err;
64
+ }
65
+ }
66
+ exports.transformSync = transformSync;
67
+ async function transform(partialServices, originalCode, asyncResolve, customHandlers = {}) {
68
+ const { options } = partialServices;
69
+ const pluginOptions = (0, loadLinariaOptions_1.loadLinariaOptions)(options.pluginOptions);
70
+ const services = (0, withDefaultServices_1.withDefaultServices)({
71
+ ...partialServices,
72
+ options: {
73
+ ...options,
74
+ pluginOptions,
75
+ },
76
+ });
77
+ if (!(0, shared_1.isFeatureEnabled)(pluginOptions.features, 'globalCache', options.filename)) {
78
+ // If global cache is disabled, we need to create a new cache for each file
79
+ services.cache = new cache_1.TransformCacheCollection();
80
+ }
81
+ /*
82
+ * This method can be run simultaneously for multiple files.
83
+ * A shared cache is accessible for all runs, but each run has its own queue
84
+ * to maintain the correct processing order. The cache stores the outcome
85
+ * of tree-shaking, and if the result is already stored in the cache
86
+ * but the "only" option has changed, the file will be re-processed using
87
+ * the combined "only" option.
88
+ */
89
+ const entrypoint = Entrypoint_1.Entrypoint.createRoot(services, options.filename, ['__linariaPreval'], originalCode);
90
+ if (entrypoint.ignored) {
91
+ return {
92
+ code: originalCode,
93
+ sourceMap: options.inputSourceMap,
94
+ };
95
+ }
96
+ const workflowAction = entrypoint.createAction('workflow', undefined);
97
+ try {
98
+ const result = await (0, actionRunner_1.asyncActionRunner)(workflowAction, {
99
+ ...generators_1.baseHandlers,
100
+ ...customHandlers,
101
+ resolveImports() {
102
+ return resolveImports_1.asyncResolveImports.call(this, asyncResolve);
103
+ },
104
+ });
105
+ entrypoint.log('%s is ready', entrypoint.name);
106
+ return result;
107
+ }
108
+ catch (err) {
109
+ entrypoint.log('Unhandled error %O', err);
110
+ if ((0, shared_1.isFeatureEnabled)(pluginOptions.features, 'softErrors', options.filename)) {
111
+ // eslint-disable-next-line no-console
112
+ console.error(`Error during transform of ${entrypoint.name}:`, err);
113
+ return {
114
+ code: originalCode,
115
+ sourceMap: options.inputSourceMap,
116
+ };
117
+ }
118
+ throw err;
119
+ }
120
+ }
121
+ exports.transform = transform;
@@ -0,0 +1,72 @@
1
+ /// <reference types="debug" />
2
+ import type { BabelFile, PluginPass } from '@babel/core';
3
+ import type { NodePath } from '@babel/traverse';
4
+ import type { File, Program } from '@babel/types';
5
+ import type { RawSourceMap } from 'source-map';
6
+ import type { BaseProcessor } from '@wyw-in-js/processor-utils';
7
+ import type { Debugger, Replacement, Rules, StrictOptions } from '@wyw-in-js/shared';
8
+ import type { WYWTransformMetadata } from './utils/TransformMetadata';
9
+ export type PluginOptions = StrictOptions & {
10
+ configFile?: string | false;
11
+ stage?: Stage;
12
+ };
13
+ export type ParentEntrypoint = {
14
+ evaluated: boolean;
15
+ log: Debugger;
16
+ name: string;
17
+ parents: ParentEntrypoint[];
18
+ seqId: number;
19
+ };
20
+ export type Dependencies = string[];
21
+ export interface IPluginState extends PluginPass {
22
+ dependencies: Dependencies;
23
+ file: BabelFile & {
24
+ metadata: {
25
+ linaria?: WYWTransformMetadata;
26
+ };
27
+ };
28
+ processors: BaseProcessor[];
29
+ }
30
+ export interface ITransformFileResult {
31
+ code: string;
32
+ metadata: WYWTransformMetadata | null;
33
+ }
34
+ export type Stage = 'preeval' | 'collect';
35
+ export type Result = {
36
+ code: string;
37
+ cssSourceMapText?: string;
38
+ cssText?: string;
39
+ dependencies?: string[];
40
+ replacements?: Replacement[];
41
+ rules?: Rules;
42
+ sourceMap?: RawSourceMap | null;
43
+ };
44
+ export type Options = {
45
+ filename: string;
46
+ inputSourceMap?: RawSourceMap;
47
+ outputFilename?: string;
48
+ pluginOptions?: Partial<PluginOptions>;
49
+ preprocessor?: Preprocessor;
50
+ root?: string;
51
+ };
52
+ export type PreprocessorFn = (selector: string, cssText: string) => string;
53
+ export type Preprocessor = 'none' | 'stylis' | PreprocessorFn | void;
54
+ export type MissedBabelCoreTypes = {
55
+ File: new (options: {
56
+ filename: string;
57
+ }, file: {
58
+ ast: File;
59
+ code: string;
60
+ }) => {
61
+ path: NodePath<Program>;
62
+ };
63
+ };
64
+ export type JSONValue = null | string | number | boolean | JSONObject | JSONArray;
65
+ export interface JSONObject {
66
+ [x: string]: JSONValue;
67
+ }
68
+ export type JSONArray = Array<JSONValue>;
69
+ export type Serializable = JSONValue;
70
+ /**
71
+ * CSS-related types
72
+ */
package/types/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * CSS-related types
5
+ */
@@ -0,0 +1,58 @@
1
+ export type OnEvent = (labels: Record<string, unknown>, type: 'start' | 'finish' | 'single', event?: unknown) => void;
2
+ export interface IActionCreated {
3
+ actionIdx: string;
4
+ actionType: string;
5
+ type: 'actionCreated';
6
+ }
7
+ export interface ICreatedEvent {
8
+ class: string;
9
+ evaluatedOnly: string[];
10
+ filename: string;
11
+ generation: number;
12
+ idx: string;
13
+ isExportsInherited: boolean;
14
+ only: string[];
15
+ parentId: number | null;
16
+ type: 'created';
17
+ }
18
+ export interface ISupersededEvent {
19
+ type: 'superseded';
20
+ with: number;
21
+ }
22
+ export interface ISetTransformResultEvent {
23
+ isNull: boolean;
24
+ type: 'setTransformResult';
25
+ }
26
+ export type EntrypointEvent = IActionCreated | ICreatedEvent | ISupersededEvent | ISetTransformResultEvent;
27
+ export type OnEntrypointEvent = (idx: number, timestamp: number, event: EntrypointEvent) => void;
28
+ export type OnActionStartArgs = [
29
+ phase: 'start',
30
+ timestamp: number,
31
+ type: string,
32
+ idx: string,
33
+ entrypointRef: string
34
+ ];
35
+ export type OnActionFinishArgs = [
36
+ phase: 'finish' | 'fail',
37
+ timestamp: number,
38
+ id: number,
39
+ isAsync: boolean,
40
+ error?: unknown
41
+ ];
42
+ export declare const isOnActionStartArgs: (args: OnActionStartArgs | OnActionFinishArgs) => args is OnActionStartArgs;
43
+ export declare const isOnActionFinishArgs: (args: OnActionStartArgs | OnActionFinishArgs) => args is OnActionFinishArgs;
44
+ export interface OnAction {
45
+ (...args: OnActionStartArgs): number;
46
+ (...args: OnActionFinishArgs): void;
47
+ }
48
+ export declare class EventEmitter {
49
+ protected onEvent: OnEvent;
50
+ protected onAction: OnAction;
51
+ protected onEntrypointEvent: OnEntrypointEvent;
52
+ static dummy: EventEmitter;
53
+ constructor(onEvent: OnEvent, onAction: OnAction, onEntrypointEvent: OnEntrypointEvent);
54
+ action<TRes>(actonType: string, idx: string, entrypointRef: string, fn: () => TRes): TRes;
55
+ entrypointEvent(sequenceId: number, event: EntrypointEvent): void;
56
+ perf<TRes>(method: string, fn: () => TRes): TRes;
57
+ single(labels: Record<string, unknown>): void;
58
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventEmitter = exports.isOnActionFinishArgs = exports.isOnActionStartArgs = void 0;
4
+ const isOnActionStartArgs = (args) => {
5
+ return args[0] === 'start';
6
+ };
7
+ exports.isOnActionStartArgs = isOnActionStartArgs;
8
+ const isOnActionFinishArgs = (args) => {
9
+ return args[0] === 'finish' || args[0] === 'fail';
10
+ };
11
+ exports.isOnActionFinishArgs = isOnActionFinishArgs;
12
+ class EventEmitter {
13
+ onEvent;
14
+ onAction;
15
+ onEntrypointEvent;
16
+ static dummy = new EventEmitter(() => { }, () => 0, () => { });
17
+ constructor(onEvent, onAction, onEntrypointEvent) {
18
+ this.onEvent = onEvent;
19
+ this.onAction = onAction;
20
+ this.onEntrypointEvent = onEntrypointEvent;
21
+ }
22
+ action(actonType, idx, entrypointRef, fn) {
23
+ const id = this.onAction('start', performance.now(), actonType, idx, entrypointRef);
24
+ try {
25
+ const result = fn();
26
+ if (result instanceof Promise) {
27
+ result.then(() => this.onAction('finish', performance.now(), id, true), (e) => this.onAction('fail', performance.now(), id, true, e));
28
+ }
29
+ else {
30
+ this.onAction('finish', performance.now(), id, false);
31
+ }
32
+ return result;
33
+ }
34
+ catch (e) {
35
+ this.onAction('fail', performance.now(), id, false, e);
36
+ throw e;
37
+ }
38
+ }
39
+ entrypointEvent(sequenceId, event) {
40
+ this.onEntrypointEvent(sequenceId, performance.now(), event);
41
+ }
42
+ perf(method, fn) {
43
+ const labels = { method };
44
+ this.onEvent(labels, 'start');
45
+ const result = fn();
46
+ if (result instanceof Promise) {
47
+ result.then(() => this.onEvent(labels, 'finish'), () => this.onEvent(labels, 'finish'));
48
+ }
49
+ else {
50
+ this.onEvent(labels, 'finish');
51
+ }
52
+ return result;
53
+ }
54
+ single(labels) {
55
+ this.onEvent({
56
+ ...labels,
57
+ datetime: new Date(),
58
+ }, 'single');
59
+ }
60
+ }
61
+ exports.EventEmitter = EventEmitter;
@@ -0,0 +1,7 @@
1
+ export interface IShakerMetadata {
2
+ imports: Map<string, string[]>;
3
+ }
4
+ export interface IMetadata {
5
+ linariaEvaluator: IShakerMetadata;
6
+ }
7
+ export declare const hasShakerMetadata: (metadata: object | undefined) => metadata is IMetadata;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasShakerMetadata = void 0;
4
+ const hasShakerMetadata = (metadata) => metadata !== undefined && 'linariaEvaluator' in metadata;
5
+ exports.hasShakerMetadata = hasShakerMetadata;
@@ -0,0 +1,13 @@
1
+ import type { Artifact, Replacement, Rules } from '@wyw-in-js/shared';
2
+ export type WYWTransformMetadata = {
3
+ dependencies: string[];
4
+ processors: {
5
+ artifacts: Artifact[];
6
+ }[];
7
+ replacements: Replacement[];
8
+ rules: Rules;
9
+ };
10
+ export declare const withTransformMetadata: (value: unknown) => value is {
11
+ wywInJS: WYWTransformMetadata;
12
+ };
13
+ export declare const getTransformMetadata: (value: unknown) => WYWTransformMetadata | undefined;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTransformMetadata = exports.withTransformMetadata = void 0;
4
+ const withTransformMetadata = (value) => typeof value === 'object' &&
5
+ value !== null &&
6
+ typeof value.wywInJS === 'object';
7
+ exports.withTransformMetadata = withTransformMetadata;
8
+ const getTransformMetadata = (value) => {
9
+ if ((0, exports.withTransformMetadata)(value) && value.wywInJS !== null) {
10
+ const metadata = value.wywInJS;
11
+ // eslint-disable-next-line no-param-reassign
12
+ delete value.wywInJS;
13
+ return metadata;
14
+ }
15
+ return undefined;
16
+ };
17
+ exports.getTransformMetadata = getTransformMetadata;
@@ -0,0 +1,4 @@
1
+ import type { NodePath, Scope } from '@babel/traverse';
2
+ import type { ObjectExpression } from '@babel/types';
3
+ export declare function getOrAddLinariaPreval(scope: Scope): NodePath<ObjectExpression>;
4
+ export declare function addIdentifierToLinariaPreval(scope: Scope, name: string): void;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addIdentifierToLinariaPreval = exports.getOrAddLinariaPreval = void 0;
4
+ const createId_1 = require("./createId");
5
+ const scopeHelpers_1 = require("./scopeHelpers");
6
+ function getOrAddLinariaPreval(scope) {
7
+ const rootScope = scope.getProgramParent();
8
+ const programPath = rootScope.path;
9
+ let object = programPath.getData('__linariaPreval');
10
+ if (object) {
11
+ return object;
12
+ }
13
+ if (programPath.node.sourceType === 'script') {
14
+ // CJS exports.__linariaPreval = {};
15
+ const prevalExport = {
16
+ expression: {
17
+ type: 'AssignmentExpression',
18
+ operator: '=',
19
+ left: {
20
+ computed: false,
21
+ object: (0, createId_1.createId)('exports'),
22
+ property: (0, createId_1.createId)('__linariaPreval'),
23
+ type: 'MemberExpression',
24
+ },
25
+ right: {
26
+ properties: [],
27
+ type: 'ObjectExpression',
28
+ },
29
+ },
30
+ type: 'ExpressionStatement',
31
+ };
32
+ const [inserted] = programPath.pushContainer('body', [prevalExport]);
33
+ object = inserted.get('expression.right');
34
+ }
35
+ else {
36
+ // ESM export const __linariaPreval = {};
37
+ const prevalExport = {
38
+ declaration: {
39
+ declarations: [
40
+ {
41
+ id: (0, createId_1.createId)('__linariaPreval'),
42
+ init: {
43
+ properties: [],
44
+ type: 'ObjectExpression',
45
+ },
46
+ type: 'VariableDeclarator',
47
+ },
48
+ ],
49
+ kind: 'const',
50
+ type: 'VariableDeclaration',
51
+ },
52
+ specifiers: [],
53
+ type: 'ExportNamedDeclaration',
54
+ };
55
+ const [inserted] = programPath.pushContainer('body', [prevalExport]);
56
+ object = inserted.get('declaration.declarations.0.init');
57
+ }
58
+ programPath.setData('__linariaPreval', object);
59
+ return object;
60
+ }
61
+ exports.getOrAddLinariaPreval = getOrAddLinariaPreval;
62
+ function addIdentifierToLinariaPreval(scope, name) {
63
+ const rootScope = scope.getProgramParent();
64
+ const object = getOrAddLinariaPreval(rootScope);
65
+ const newProperty = {
66
+ type: 'ObjectProperty',
67
+ key: (0, createId_1.createId)(name),
68
+ value: (0, createId_1.createId)(name),
69
+ computed: false,
70
+ shorthand: false,
71
+ };
72
+ const [inserted] = object.pushContainer('properties', [newProperty]);
73
+ (0, scopeHelpers_1.reference)(inserted.get('value'));
74
+ }
75
+ exports.addIdentifierToLinariaPreval = addIdentifierToLinariaPreval;
@@ -0,0 +1,31 @@
1
+ import type { NodePath } from '@babel/traverse';
2
+ import type { Identifier, MemberExpression, Program } from '@babel/types';
3
+ export interface ISideEffectImport {
4
+ imported: 'side-effect';
5
+ local: NodePath;
6
+ source: string;
7
+ }
8
+ export interface IImport {
9
+ imported: string | 'default' | '*';
10
+ local: NodePath<Identifier | MemberExpression>;
11
+ source: string;
12
+ type: 'cjs' | 'dynamic' | 'esm';
13
+ }
14
+ export type Exports = Record<string | 'default' | '*', NodePath>;
15
+ export interface IReexport {
16
+ exported: string | 'default' | '*';
17
+ imported: string | 'default' | '*';
18
+ local: NodePath;
19
+ source: string;
20
+ }
21
+ export interface IState {
22
+ deadExports: string[];
23
+ exportRefs: Map<string, NodePath<MemberExpression>[]>;
24
+ exports: Exports;
25
+ imports: (IImport | ISideEffectImport)[];
26
+ isEsModule: boolean;
27
+ reexports: IReexport[];
28
+ }
29
+ export declare const sideEffectImport: (item: IImport | ISideEffectImport) => item is ISideEffectImport;
30
+ export declare const explicitImport: (item: IImport | ISideEffectImport) => item is IImport;
31
+ export declare function collectExportsAndImports(path: NodePath<Program>, cacheMode?: 'disabled' | 'force' | 'enabled'): IState;