@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,6 @@
1
+ import type { ICollectAction, SyncScenarioForAction } from '../types';
2
+ /**
3
+ * Parses the specified file, finds tags, applies run-time replacements,
4
+ * removes dead code.
5
+ */
6
+ export declare function collect(this: ICollectAction): SyncScenarioForAction<ICollectAction>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.collect = void 0;
4
+ const buildOptions_1 = require("../../options/buildOptions");
5
+ const collector_1 = require("../../plugins/collector");
6
+ const TransformMetadata_1 = require("../../utils/TransformMetadata");
7
+ /**
8
+ * Parses the specified file, finds tags, applies run-time replacements,
9
+ * removes dead code.
10
+ */
11
+ // eslint-disable-next-line require-yield
12
+ function* collect() {
13
+ const { babel, options } = this.services;
14
+ const { valueCache } = this.data;
15
+ const { entrypoint } = this;
16
+ const { loadedAndParsed, name } = entrypoint;
17
+ if (loadedAndParsed.evaluator === 'ignored') {
18
+ throw new Error('entrypoint was ignored');
19
+ }
20
+ const transformPlugins = [
21
+ [
22
+ collector_1.filename,
23
+ {
24
+ ...options.pluginOptions,
25
+ values: valueCache,
26
+ },
27
+ ],
28
+ ];
29
+ const transformConfig = (0, buildOptions_1.buildOptions)({
30
+ envName: 'linaria',
31
+ plugins: transformPlugins,
32
+ sourceMaps: true,
33
+ sourceFileName: name,
34
+ inputSourceMap: options.inputSourceMap,
35
+ root: options.root,
36
+ ast: true,
37
+ babelrc: false,
38
+ configFile: false,
39
+ sourceType: 'unambiguous',
40
+ });
41
+ const result = babel.transformFromAstSync(loadedAndParsed.ast, loadedAndParsed.code, {
42
+ ...transformConfig,
43
+ cwd: options.root,
44
+ filename: name,
45
+ });
46
+ if (!result || !result.ast?.program) {
47
+ throw new Error('Babel transform failed');
48
+ }
49
+ const transformMetadata = (0, TransformMetadata_1.getTransformMetadata)(result.metadata);
50
+ return {
51
+ ast: result.ast,
52
+ code: result.code,
53
+ map: result.map,
54
+ metadata: transformMetadata ?? null,
55
+ };
56
+ }
57
+ exports.collect = collect;
@@ -0,0 +1,6 @@
1
+ import type { IEvalAction, SyncScenarioForAction } from '../types';
2
+ /**
3
+ * Executes the code prepared in previous steps within the current `Entrypoint`.
4
+ * Returns all exports that were requested in `only`.
5
+ */
6
+ export declare function evalFile(this: IEvalAction): SyncScenarioForAction<IEvalAction>;
@@ -0,0 +1,56 @@
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.evalFile = void 0;
7
+ const evaluators_1 = __importDefault(require("../../evaluators"));
8
+ const hasLinariaPreval_1 = __importDefault(require("../../utils/hasLinariaPreval"));
9
+ const UnprocessedEntrypointError_1 = require("../actions/UnprocessedEntrypointError");
10
+ const wrap = (fn) => {
11
+ try {
12
+ return fn();
13
+ }
14
+ catch (e) {
15
+ return e;
16
+ }
17
+ };
18
+ /**
19
+ * Executes the code prepared in previous steps within the current `Entrypoint`.
20
+ * Returns all exports that were requested in `only`.
21
+ */
22
+ // eslint-disable-next-line require-yield
23
+ function* evalFile() {
24
+ const { entrypoint } = this;
25
+ const { log } = entrypoint;
26
+ log(`>> evaluate __linariaPreval`);
27
+ let evaluated;
28
+ while (evaluated === undefined) {
29
+ try {
30
+ evaluated = (0, evaluators_1.default)(this.services, entrypoint);
31
+ }
32
+ catch (e) {
33
+ if ((0, UnprocessedEntrypointError_1.isUnprocessedEntrypointError)(e)) {
34
+ entrypoint.log('Evaluation has been aborted because one if the required files is not processed. Schedule reprocessing and repeat evaluation.');
35
+ yield ['processEntrypoint', e.entrypoint, undefined];
36
+ }
37
+ else {
38
+ throw e;
39
+ }
40
+ }
41
+ }
42
+ const linariaPreval = (0, hasLinariaPreval_1.default)(evaluated.value)
43
+ ? evaluated.value.__linariaPreval
44
+ : undefined;
45
+ if (!linariaPreval) {
46
+ return null;
47
+ }
48
+ const valueCache = new Map();
49
+ Object.entries(linariaPreval).forEach(([key, lazyValue]) => {
50
+ const value = wrap(lazyValue);
51
+ valueCache.set(key, value);
52
+ });
53
+ log(`<< evaluated __linariaPreval %O`, valueCache);
54
+ return [valueCache, evaluated.dependencies];
55
+ }
56
+ exports.evalFile = evalFile;
@@ -0,0 +1,7 @@
1
+ import type { IExplodeReexportsAction, SyncScenarioForAction } from '../types';
2
+ /**
3
+ * Replaces wildcard reexports with named reexports.
4
+ * Recursively emits getExports for each reexported module,
5
+ * and replaces wildcard with resolved named.
6
+ */
7
+ export declare function explodeReexports(this: IExplodeReexportsAction): SyncScenarioForAction<IExplodeReexportsAction>;
@@ -0,0 +1,67 @@
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.explodeReexports = void 0;
7
+ const generator_1 = __importDefault(require("@babel/generator"));
8
+ const getExports_1 = require("./getExports");
9
+ const getWildcardReexport = (babel, ast) => {
10
+ const reexportsFrom = [];
11
+ ast.program.body.forEach((node) => {
12
+ if (babel.types.isExportAllDeclaration(node) &&
13
+ node.source &&
14
+ babel.types.isStringLiteral(node.source)) {
15
+ reexportsFrom.push({
16
+ source: node.source.value,
17
+ node,
18
+ });
19
+ }
20
+ });
21
+ return reexportsFrom;
22
+ };
23
+ /**
24
+ * Replaces wildcard reexports with named reexports.
25
+ * Recursively emits getExports for each reexported module,
26
+ * and replaces wildcard with resolved named.
27
+ */
28
+ function* explodeReexports() {
29
+ const { babel } = this.services;
30
+ const { log, loadedAndParsed } = this.entrypoint;
31
+ if (loadedAndParsed.evaluator === 'ignored') {
32
+ return;
33
+ }
34
+ const reexportsFrom = getWildcardReexport(babel, loadedAndParsed.ast);
35
+ if (!reexportsFrom.length) {
36
+ return;
37
+ }
38
+ log('has wildcard reexport from %o', reexportsFrom);
39
+ const resolvedImports = yield* this.getNext('resolveImports', this.entrypoint, {
40
+ imports: new Map(reexportsFrom.map((i) => [i.source, []])),
41
+ });
42
+ const importedEntrypoints = (0, getExports_1.findExportsInImports)(this.entrypoint, resolvedImports);
43
+ const replacements = new Map();
44
+ for (const importedEntrypoint of importedEntrypoints) {
45
+ const exports = yield* this.getNext('getExports', importedEntrypoint.entrypoint, undefined);
46
+ const reexport = reexportsFrom.find((i) => i.source === importedEntrypoint.import);
47
+ if (reexport) {
48
+ replacements.set(reexport.node, exports.length
49
+ ? babel.types.exportNamedDeclaration(null, exports.map((i) => babel.types.exportSpecifier(babel.types.identifier(i), babel.types.identifier(i))), babel.types.stringLiteral(importedEntrypoint.import))
50
+ : null);
51
+ }
52
+ }
53
+ // Replace wildcard reexport with named reexports
54
+ babel.traverse(loadedAndParsed.ast, {
55
+ ExportAllDeclaration(path) {
56
+ const replacement = replacements.get(path.node);
57
+ if (replacement) {
58
+ path.replaceWith(replacement);
59
+ }
60
+ else {
61
+ path.remove();
62
+ }
63
+ },
64
+ });
65
+ loadedAndParsed.code = (0, generator_1.default)(loadedAndParsed.ast).code;
66
+ }
67
+ exports.explodeReexports = explodeReexports;
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ import path from 'path';
3
+ import type { IExtractAction, SyncScenarioForAction } from '../types';
4
+ export declare function transformUrl(url: string, outputFilename: string, sourceFilename: string, platformPath?: typeof path): string;
5
+ /**
6
+ * Extract artifacts (e.g. CSS) from processors
7
+ */
8
+ export declare function extract(this: IExtractAction): SyncScenarioForAction<IExtractAction>;
@@ -0,0 +1,116 @@
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.extract = exports.transformUrl = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const source_map_1 = require("source-map");
9
+ const stylis_1 = __importDefault(require("stylis"));
10
+ const STYLIS_DECLARATION = 1;
11
+ const posixSep = path_1.default.posix.sep;
12
+ function transformUrl(url, outputFilename, sourceFilename, platformPath = path_1.default) {
13
+ // Replace asset path with new path relative to the output CSS
14
+ const relative = platformPath.relative(platformPath.dirname(outputFilename),
15
+ // Get the absolute path to the asset from the path relative to the JS file
16
+ platformPath.resolve(platformPath.dirname(sourceFilename), url));
17
+ if (platformPath.sep === posixSep) {
18
+ return relative;
19
+ }
20
+ return relative.split(platformPath.sep).join(posixSep);
21
+ }
22
+ exports.transformUrl = transformUrl;
23
+ function extractCssFromAst(rules, originalCode, options) {
24
+ const mappings = [];
25
+ let cssText = '';
26
+ let preprocessor;
27
+ if (typeof options.preprocessor === 'function') {
28
+ // eslint-disable-next-line prefer-destructuring
29
+ preprocessor = options.preprocessor;
30
+ }
31
+ else {
32
+ switch (options.preprocessor) {
33
+ case 'none':
34
+ preprocessor = (selector, text) => `${selector} {${text}}\n`;
35
+ break;
36
+ case 'stylis':
37
+ default:
38
+ stylis_1.default.use(null)((context, decl) => {
39
+ const { outputFilename } = options;
40
+ if (context === STYLIS_DECLARATION && outputFilename) {
41
+ // When writing to a file, we need to adjust the relative paths inside url(..) expressions
42
+ // It'll allow css-loader to resolve an imported asset properly
43
+ return decl.replace(/\b(url\((["']?))(\.[^)]+?)(\2\))/g, (match, p1, p2, p3, p4) => p1 + transformUrl(p3, outputFilename, options.filename) + p4);
44
+ }
45
+ return decl;
46
+ });
47
+ preprocessor = stylis_1.default;
48
+ }
49
+ }
50
+ Object.keys(rules).forEach((selector, index) => {
51
+ mappings.push({
52
+ generated: {
53
+ line: index + 1,
54
+ column: 0,
55
+ },
56
+ original: rules[selector].start,
57
+ name: selector,
58
+ source: '',
59
+ });
60
+ if (rules[selector].atom) {
61
+ // For atoms, we just directly insert cssText, to give the atomizer full control over the rules
62
+ cssText += `${rules[selector].cssText}\n`;
63
+ }
64
+ else {
65
+ // Run each rule through stylis to support nesting
66
+ cssText += `${preprocessor(selector, rules[selector].cssText)}\n`;
67
+ }
68
+ });
69
+ return {
70
+ cssText,
71
+ rules,
72
+ get cssSourceMapText() {
73
+ if (mappings?.length) {
74
+ const generator = new source_map_1.SourceMapGenerator({
75
+ file: options.filename.replace(/\.js$/, '.css'),
76
+ });
77
+ mappings.forEach((mapping) => generator.addMapping({ ...mapping, source: options.filename }));
78
+ generator.setSourceContent(options.filename, originalCode);
79
+ return generator.toString();
80
+ }
81
+ return '';
82
+ },
83
+ };
84
+ }
85
+ /**
86
+ * Extract artifacts (e.g. CSS) from processors
87
+ */
88
+ // eslint-disable-next-line require-yield
89
+ function* extract() {
90
+ const { options } = this.services;
91
+ const { entrypoint } = this;
92
+ const { processors } = this.data;
93
+ const { loadedAndParsed } = entrypoint;
94
+ if (loadedAndParsed.evaluator === 'ignored') {
95
+ throw new Error('entrypoint was ignored');
96
+ }
97
+ let allRules = {};
98
+ const allReplacements = [];
99
+ processors.forEach((processor) => {
100
+ processor.artifacts.forEach((artifact) => {
101
+ if (artifact[0] !== 'css')
102
+ return;
103
+ const [rules, replacements] = artifact[1];
104
+ allRules = {
105
+ ...allRules,
106
+ ...rules,
107
+ };
108
+ allReplacements.push(...replacements);
109
+ });
110
+ });
111
+ return {
112
+ ...extractCssFromAst(allRules, loadedAndParsed.code, options),
113
+ replacements: allReplacements,
114
+ };
115
+ }
116
+ exports.extract = extract;
@@ -0,0 +1,8 @@
1
+ import type { Entrypoint } from '../Entrypoint';
2
+ import type { IEntrypointDependency } from '../Entrypoint.types';
3
+ import type { IGetExportsAction, SyncScenarioForAction } from '../types';
4
+ export declare function findExportsInImports(entrypoint: Entrypoint, imports: IEntrypointDependency[]): {
5
+ entrypoint: Entrypoint;
6
+ import: string;
7
+ }[];
8
+ export declare function getExports(this: IGetExportsAction): SyncScenarioForAction<IGetExportsAction>;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getExports = exports.findExportsInImports = void 0;
4
+ const collectExportsAndImports_1 = require("../../utils/collectExportsAndImports");
5
+ function findExportsInImports(entrypoint, imports) {
6
+ const results = [];
7
+ for (const imp of imports) {
8
+ const { resolved } = imp;
9
+ if (!resolved) {
10
+ throw new Error(`Could not resolve import ${imp.source}`);
11
+ }
12
+ const newEntrypoint = entrypoint.createChild(resolved, []);
13
+ if (newEntrypoint === 'loop') {
14
+ // eslint-disable-next-line no-continue
15
+ continue;
16
+ }
17
+ results.push({
18
+ entrypoint: newEntrypoint,
19
+ import: imp.source,
20
+ });
21
+ }
22
+ return results;
23
+ }
24
+ exports.findExportsInImports = findExportsInImports;
25
+ function* getExports() {
26
+ const { entrypoint, services: { cache }, } = this;
27
+ const { loadedAndParsed } = entrypoint;
28
+ if (loadedAndParsed.ast === undefined) {
29
+ return [];
30
+ }
31
+ entrypoint.log(`get exports from %s`, entrypoint.name);
32
+ if (cache.has('exports', entrypoint.name)) {
33
+ return cache.get('exports', entrypoint.name);
34
+ }
35
+ let withWildcardReexport = [];
36
+ const result = [];
37
+ this.services.babel.traverse(loadedAndParsed.ast, {
38
+ Program(path) {
39
+ const { exports, reexports } = (0, collectExportsAndImports_1.collectExportsAndImports)(path, 'disabled');
40
+ Object.keys(exports).forEach((token) => {
41
+ result.push(token);
42
+ });
43
+ reexports.forEach((e) => {
44
+ if (e.exported !== '*') {
45
+ result.push(e.exported);
46
+ }
47
+ });
48
+ withWildcardReexport = reexports.filter((e) => e.exported === '*');
49
+ },
50
+ });
51
+ if (withWildcardReexport.length) {
52
+ const resolvedImports = yield* this.getNext('resolveImports', entrypoint, {
53
+ imports: new Map(withWildcardReexport.map((i) => [i.source, []])),
54
+ });
55
+ const importedEntrypoints = findExportsInImports(entrypoint, resolvedImports);
56
+ for (const importedEntrypoint of importedEntrypoints) {
57
+ const exports = yield* this.getNext('getExports', importedEntrypoint.entrypoint, undefined);
58
+ result.push(...exports);
59
+ }
60
+ }
61
+ entrypoint.log(`exports: %o`, result);
62
+ cache.add('exports', entrypoint.name, result);
63
+ return result;
64
+ }
65
+ exports.getExports = getExports;
@@ -0,0 +1,15 @@
1
+ import { collect } from './collect';
2
+ import { evalFile } from './evalFile';
3
+ import { extract } from './extract';
4
+ import { workflow } from './workflow';
5
+ export declare const baseHandlers: {
6
+ collect: typeof collect;
7
+ evalFile: typeof evalFile;
8
+ extract: typeof extract;
9
+ workflow: typeof workflow;
10
+ explodeReexports: typeof import("./explodeReexports").explodeReexports;
11
+ getExports: typeof import("./getExports").getExports;
12
+ processEntrypoint: typeof import("./processEntrypoint").processEntrypoint;
13
+ processImports: typeof import("./processImports").processImports;
14
+ transform: typeof import("./transform").transform;
15
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.baseHandlers = void 0;
4
+ const baseProcessingHandlers_1 = require("./baseProcessingHandlers");
5
+ const collect_1 = require("./collect");
6
+ const evalFile_1 = require("./evalFile");
7
+ const extract_1 = require("./extract");
8
+ const workflow_1 = require("./workflow");
9
+ exports.baseHandlers = {
10
+ ...baseProcessingHandlers_1.baseProcessingHandlers,
11
+ collect: collect_1.collect,
12
+ evalFile: evalFile_1.evalFile,
13
+ extract: extract_1.extract,
14
+ workflow: workflow_1.workflow,
15
+ };
@@ -0,0 +1,9 @@
1
+ import type { IProcessEntrypointAction, SyncScenarioForAction } from '../types';
2
+ /**
3
+ * The first stage of processing an entrypoint.
4
+ * This stage is responsible for:
5
+ * - scheduling the explodeReexports action
6
+ * - scheduling the transform action
7
+ * - rescheduling itself if the entrypoint is superseded
8
+ */
9
+ export declare function processEntrypoint(this: IProcessEntrypointAction): SyncScenarioForAction<IProcessEntrypointAction>;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
3
+ if (value !== null && value !== void 0) {
4
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
5
+ var dispose;
6
+ if (async) {
7
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
8
+ dispose = value[Symbol.asyncDispose];
9
+ }
10
+ if (dispose === void 0) {
11
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
12
+ dispose = value[Symbol.dispose];
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ env.stack.push({ value: value, dispose: dispose, async: async });
16
+ }
17
+ else if (async) {
18
+ env.stack.push({ async: true });
19
+ }
20
+ return value;
21
+ };
22
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
23
+ return function (env) {
24
+ function fail(e) {
25
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
26
+ env.hasError = true;
27
+ }
28
+ function next() {
29
+ while (env.stack.length) {
30
+ var rec = env.stack.pop();
31
+ try {
32
+ var result = rec.dispose && rec.dispose.call(rec.value);
33
+ if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
34
+ }
35
+ catch (e) {
36
+ fail(e);
37
+ }
38
+ }
39
+ if (env.hasError) throw env.error;
40
+ }
41
+ return next();
42
+ };
43
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
44
+ var e = new Error(message);
45
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
46
+ });
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.processEntrypoint = void 0;
49
+ const AbortError_1 = require("../actions/AbortError");
50
+ /**
51
+ * The first stage of processing an entrypoint.
52
+ * This stage is responsible for:
53
+ * - scheduling the explodeReexports action
54
+ * - scheduling the transform action
55
+ * - rescheduling itself if the entrypoint is superseded
56
+ */
57
+ function* processEntrypoint() {
58
+ const { only, log } = this.entrypoint;
59
+ log('start processing (only: %o)', only);
60
+ try {
61
+ const env_1 = { stack: [], error: void 0, hasError: false };
62
+ try {
63
+ const abortSignal = __addDisposableResource(env_1, this.createAbortSignal(), false);
64
+ yield ['explodeReexports', this.entrypoint, undefined, abortSignal];
65
+ const result = yield* this.getNext('transform', this.entrypoint, undefined, abortSignal);
66
+ this.entrypoint.assertNotSuperseded();
67
+ this.entrypoint.setTransformResult(result);
68
+ log('entrypoint processing finished');
69
+ }
70
+ catch (e_1) {
71
+ env_1.error = e_1;
72
+ env_1.hasError = true;
73
+ }
74
+ finally {
75
+ __disposeResources(env_1);
76
+ }
77
+ }
78
+ catch (e) {
79
+ if ((0, AbortError_1.isAborted)(e) && this.entrypoint.supersededWith) {
80
+ log('processing aborted, schedule the next attempt');
81
+ yield* this.getNext('processEntrypoint', this.entrypoint.supersededWith, undefined, null);
82
+ return;
83
+ }
84
+ log(`Unhandled error: %O`, e);
85
+ throw e;
86
+ }
87
+ }
88
+ exports.processEntrypoint = processEntrypoint;
@@ -0,0 +1,5 @@
1
+ import type { IProcessImportsAction, SyncScenarioForAction } from '../types';
2
+ /**
3
+ * Creates new entrypoints and emits processEntrypoint for each resolved import
4
+ */
5
+ export declare function processImports(this: IProcessImportsAction): SyncScenarioForAction<IProcessImportsAction>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processImports = void 0;
4
+ /**
5
+ * Creates new entrypoints and emits processEntrypoint for each resolved import
6
+ */
7
+ function* processImports() {
8
+ for (const dependency of this.data.resolved) {
9
+ const { resolved, only } = dependency;
10
+ if (!resolved) {
11
+ continue;
12
+ }
13
+ this.entrypoint.addDependency(dependency);
14
+ const nextEntrypoint = this.entrypoint.createChild(resolved, only);
15
+ if (nextEntrypoint === 'loop' || nextEntrypoint.ignored) {
16
+ continue;
17
+ }
18
+ yield* this.getNext('processEntrypoint', nextEntrypoint, undefined, null);
19
+ }
20
+ }
21
+ exports.processImports = processImports;
@@ -0,0 +1,9 @@
1
+ import type { AsyncScenarioForAction, IResolveImportsAction, SyncScenarioForAction } from '../types';
2
+ /**
3
+ * Synchronously resolves specified imports with a provided resolver.
4
+ */
5
+ export declare function syncResolveImports(this: IResolveImportsAction, resolve: (what: string, importer: string, stack: string[]) => string): SyncScenarioForAction<IResolveImportsAction>;
6
+ /**
7
+ * Asynchronously resolves specified imports with a provided resolver.
8
+ */
9
+ export declare function asyncResolveImports(this: IResolveImportsAction, resolve: (what: string, importer: string, stack: string[]) => Promise<string | null>): AsyncScenarioForAction<IResolveImportsAction>;