@jsenv/core 26.0.1 → 27.0.0-alpha.10

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 (465) hide show
  1. package/main.js +17 -24
  2. package/package.json +35 -71
  3. package/readme.md +30 -37
  4. package/src/build/build.js +867 -0
  5. package/src/build/build_urls_generator.js +73 -0
  6. package/src/build/inject_service_worker_urls.js +25 -0
  7. package/src/build/inject_version_mappings.js +63 -0
  8. package/src/build/plugins/bundle_js_module/jsenv_plugin_bundle_js_module.js +227 -0
  9. package/src/build/plugins/minify_html/jsenv_plugin_minify_html.js +30 -0
  10. package/src/build/plugins/minify_js/jsenv_plugin_minify_js.js +47 -0
  11. package/src/dev/plugins/autoreload/babel_plugin_metadata_import_meta_hot.js +98 -0
  12. package/src/dev/plugins/autoreload/client/autoreload_preference.js +11 -0
  13. package/src/dev/plugins/autoreload/client/event_source_client.js +186 -0
  14. package/src/{internal/dev_server/event_source_client → dev/plugins/autoreload/client}/event_source_connection.js +21 -25
  15. package/src/dev/plugins/autoreload/client/import_meta_hot.js +80 -0
  16. package/src/dev/plugins/autoreload/client/reload.js +101 -0
  17. package/src/dev/plugins/autoreload/client/url_helpers.js +20 -0
  18. package/src/dev/plugins/autoreload/html_hot_dependencies.js +156 -0
  19. package/src/dev/plugins/autoreload/jsenv_plugin_autoreload.js +374 -0
  20. package/src/dev/plugins/autoreload/sse_service.js +149 -0
  21. package/src/dev/plugins/explorer/client/explorer.html +607 -0
  22. package/src/{internal → dev/plugins/explorer/client}/jsenv.png +0 -0
  23. package/src/dev/plugins/explorer/jsenv_plugin_explorer.js +74 -0
  24. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/animation/toolbar_animation.js +0 -0
  25. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/eventsource/eventsource.css +2 -2
  26. package/src/dev/plugins/toolbar/client/eventsource/toolbar_eventsource.js +57 -0
  27. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/execution/execution.css +0 -0
  28. package/src/dev/plugins/toolbar/client/execution/toolbar_execution.js +88 -0
  29. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/focus/focus.css +0 -0
  30. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/focus/toolbar_focus.js +0 -0
  31. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/jsenv_logo.svg +0 -0
  32. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/notification/toolbar_notification.js +0 -0
  33. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/responsive/overflow_menu.css +0 -0
  34. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/responsive/toolbar_responsive.js +0 -0
  35. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/settings/settings.css +0 -0
  36. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/settings/toolbar_settings.js +1 -0
  37. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/theme/jsenv_theme.css +1 -15
  38. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/theme/light_theme.css +0 -17
  39. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/theme/toolbar_theme.js +0 -0
  40. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar.html +40 -199
  41. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar_injector.js +8 -28
  42. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar_main.css +0 -24
  43. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar_main.js +10 -56
  44. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/tooltip/tooltip.css +1 -1
  45. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/tooltip/tooltip.js +0 -0
  46. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/animation.js +0 -0
  47. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/dom.js +0 -0
  48. package/src/{internal/browser_utils → dev/plugins/toolbar/client/util}/fetch_using_xhr.js +0 -0
  49. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/fetching.js +2 -4
  50. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/iframe_to_parent_href.js +0 -0
  51. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/jsenv_logger.js +0 -0
  52. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/preferences.js +0 -0
  53. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/responsive.js +0 -0
  54. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/util.js +0 -0
  55. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/variant/variant.js +0 -0
  56. package/src/dev/plugins/toolbar/jsenv_plugin_toolbar.js +62 -0
  57. package/src/dev/start_dev_server.js +108 -0
  58. package/src/execute/execute.js +138 -0
  59. package/src/execute/run.js +208 -0
  60. package/src/execute/runtimes/browsers/chromium.js +8 -0
  61. package/src/execute/runtimes/browsers/firefox.js +7 -0
  62. package/src/execute/runtimes/browsers/from_playwright.js +464 -0
  63. package/src/{browser_runtimes.js → execute/runtimes/browsers/webkit.js} +4 -18
  64. package/src/{internal/node_launcher/child_process_options.js → execute/runtimes/node/child_exec_options.js} +25 -36
  65. package/src/{internal/node_launcher/node_controllable_file.mjs → execute/runtimes/node/controllable_file.mjs} +1 -18
  66. package/src/{internal/node_launcher/node_controllable_process.js → execute/runtimes/node/controlled_process.js} +128 -150
  67. package/src/execute/runtimes/node/exec_options.js +44 -0
  68. package/src/{internal/node_launcher → execute/runtimes/node}/kill_process_tree.js +3 -1
  69. package/src/execute/runtimes/node/node_process.js +92 -0
  70. package/src/execute/runtimes/node/node_worker_thread.js +28 -0
  71. package/src/omega/core_plugins/babel/global_this/babel_plugin_global_this_as_jsenv_import.js +35 -0
  72. package/{helpers/global-this/global-this.js → src/omega/core_plugins/babel/global_this/client/global_this.js} +0 -0
  73. package/src/{internal/compile_server/js → omega/core_plugins/babel/helpers}/babel_plugin_babel_helpers_as_jsenv_imports.js +15 -20
  74. package/src/omega/core_plugins/babel/helpers/babel_plugin_structure.js +176 -0
  75. package/src/{internal/features → omega/core_plugins/babel/helpers}/babel_plugins_compatibility.js +1 -24
  76. package/src/omega/core_plugins/babel/jsenv_plugin_babel.js +111 -0
  77. package/src/omega/core_plugins/babel/new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js +117 -0
  78. package/{helpers/babel → src/omega/core_plugins/babel/new_stylesheet/client}/.eslintrc.cjs +1 -1
  79. package/{helpers/new_stylesheet → src/omega/core_plugins/babel/new_stylesheet/client}/new_stylesheet.js +0 -0
  80. package/src/omega/core_plugins/babel/regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js +34 -0
  81. package/{helpers/regenerator-runtime/regenerator-runtime.js → src/omega/core_plugins/babel/regenerator_runtime/client/regenerator_runtime.js} +0 -0
  82. package/src/omega/core_plugins/commonjs_globals/jsenv_plugin_commonjs_globals.js +169 -0
  83. package/src/omega/core_plugins/file_urls/jsenv_plugin_file_urls.js +67 -0
  84. package/src/omega/core_plugins/filesystem_magic/jsenv_plugin_filesystem_magic.js +58 -0
  85. package/src/{internal/browser_client → omega/core_plugins/html_supervisor/client}/error_in_document.js +10 -16
  86. package/src/{internal/browser_client → omega/core_plugins/html_supervisor/client}/error_in_notification.js +0 -0
  87. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_installer.js +168 -0
  88. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_setup.js +77 -0
  89. package/src/{internal/browser_client → omega/core_plugins/html_supervisor/client}/perf_browser.js +0 -0
  90. package/src/{internal/runtime_client → omega/core_plugins/html_supervisor/client}/uneval_exception.js +0 -0
  91. package/src/omega/core_plugins/html_supervisor/jsenv_plugin_html_supervisor.js +233 -0
  92. package/src/omega/core_plugins/import_assertions/helpers/babel_plugin_metadata_import_assertions.js +98 -0
  93. package/src/{internal/building/import_assertions → omega/core_plugins/import_assertions/helpers}/json_module.js +3 -2
  94. package/src/omega/core_plugins/import_assertions/helpers/text_module.js +6 -0
  95. package/src/omega/core_plugins/import_assertions/jsenv_plugin_import_assertions.js +211 -0
  96. package/src/omega/core_plugins/import_meta_scenarios/jsenv_plugin_import_meta_scenarios.js +90 -0
  97. package/src/omega/core_plugins/importmap/jsenv_plugin_importmap.js +212 -0
  98. package/src/omega/core_plugins/inject_globals/jsenv_plugin_inject_globals.js +27 -0
  99. package/src/omega/core_plugins/inline/client/inline_content.js +6 -0
  100. package/src/omega/core_plugins/inline/jsenv_plugin_data_urls.js +70 -0
  101. package/src/omega/core_plugins/inline/jsenv_plugin_inline.js +13 -0
  102. package/src/omega/core_plugins/inline/jsenv_plugin_inline_query_param.js +42 -0
  103. package/src/omega/core_plugins/inline/jsenv_plugin_js_and_css_inside_html.js +142 -0
  104. package/src/omega/core_plugins/inline/jsenv_plugin_new_inline_content.js +207 -0
  105. package/src/omega/core_plugins/leading_slash/jsenv_plugin_leading_slash.js +12 -0
  106. package/src/omega/core_plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +77 -0
  107. package/src/omega/core_plugins/url_resolution/jsenv_plugin_url_resolution.js +28 -0
  108. package/src/omega/core_plugins/url_version/jsenv_plugin_url_version.js +50 -0
  109. package/src/omega/core_plugins.js +42 -0
  110. package/src/omega/errors.js +168 -0
  111. package/src/omega/file_url_converter.js +21 -0
  112. package/src/omega/kitchen.js +776 -0
  113. package/src/omega/omega_server.js +129 -0
  114. package/src/omega/plugin_controller.js +240 -0
  115. package/src/omega/runtime_support/default_runtime_support.js +13 -0
  116. package/src/omega/runtime_support/features_compatibility.js +130 -0
  117. package/src/omega/runtime_support/runtime_support.js +52 -0
  118. package/src/omega/server/file_service.js +155 -0
  119. package/src/omega/server/user_agent.js +22 -0
  120. package/src/omega/url_graph/url_graph_load.js +69 -0
  121. package/src/omega/url_graph/url_graph_report.js +151 -0
  122. package/src/omega/url_graph/url_graph_sort.js +29 -0
  123. package/src/omega/url_graph/url_info_transformations.js +161 -0
  124. package/src/omega/url_graph.js +133 -0
  125. package/src/omega/url_mentions/css_url_mentions.js +63 -0
  126. package/src/omega/url_mentions/html_url_mentions.js +185 -0
  127. package/src/omega/url_mentions/js_module_url_mentions.js +91 -0
  128. package/src/omega/url_mentions/parse_url_mentions.js +37 -0
  129. package/src/omega/url_mentions/worker_classic_url_mentions.js +37 -0
  130. package/src/{internal/executing → test}/execute_plan.js +156 -211
  131. package/src/{execute_test_plan.js → test/execute_test_plan.js} +36 -81
  132. package/src/{internal/executing → test}/execution_colors.js +0 -0
  133. package/src/{internal/executing → test}/execution_steps.js +2 -8
  134. package/src/{internal/executing → test}/gc.js +0 -0
  135. package/src/test/logs_file_execution.js +223 -0
  136. package/dist/browser_client/asset-manifest.json +0 -4
  137. package/dist/browser_client/browser_client_fb33eaa4.js +0 -5320
  138. package/dist/browser_client/browser_client_fb33eaa4.js.map +0 -1089
  139. package/dist/build_manifest.js +0 -12
  140. package/dist/compile_proxy/asset-manifest.json +0 -4
  141. package/dist/compile_proxy/compile_proxy.html__inline__20_651d1e7b.js.map +0 -343
  142. package/dist/compile_proxy/compile_proxy_62f952c4.html +0 -2245
  143. package/dist/event_source_client/asset-manifest.json +0 -4
  144. package/dist/event_source_client/event_source_client_69f48287.js +0 -354
  145. package/dist/event_source_client/event_source_client_69f48287.js.map +0 -128
  146. package/dist/redirector/asset-manifest.json +0 -4
  147. package/dist/redirector/redirector.html__inline__12_171e07b4.js.map +0 -349
  148. package/dist/redirector/redirector_8117ec92.html +0 -2290
  149. package/dist/toolbar/asset-manifest.json +0 -13
  150. package/dist/toolbar/assets/compilation.css_7421bd55.map +0 -12
  151. package/dist/toolbar/assets/eventsource.css_c0c71e7b.map +0 -12
  152. package/dist/toolbar/assets/execution.css_f3377c10.map +0 -12
  153. package/dist/toolbar/assets/focus.css_896f3e45.map +0 -12
  154. package/dist/toolbar/assets/light_theme.css_5bff0336.map +0 -12
  155. package/dist/toolbar/assets/overflow_menu.css_9a0fc3d8.map +0 -12
  156. package/dist/toolbar/assets/settings.css_942b5a9e.map +0 -12
  157. package/dist/toolbar/assets/toolbar_main.css_b1c67dd7.map +0 -28
  158. package/dist/toolbar/assets/tooltip.css_a94a8bdd.map +0 -12
  159. package/dist/toolbar/toolbar_b0c9100c.html +0 -4976
  160. package/dist/toolbar/toolbar_main_f54c1bb0.js.map +0 -776
  161. package/dist/toolbar_injector/asset-manifest.json +0 -5
  162. package/dist/toolbar_injector/assets/jsenv_logo_192011c2.svg +0 -95
  163. package/dist/toolbar_injector/toolbar_injector_65b501eb.js +0 -976
  164. package/dist/toolbar_injector/toolbar_injector_65b501eb.js.map +0 -294
  165. package/helpers/babel/AsyncGenerator/AsyncGenerator.js +0 -81
  166. package/helpers/babel/AwaitValue/AwaitValue.js +0 -3
  167. package/helpers/babel/applyDecoratorDescriptor/applyDecoratorDescriptor.js +0 -33
  168. package/helpers/babel/arrayLikeToArray/arrayLikeToArray.js +0 -7
  169. package/helpers/babel/arrayWithHoles/arrayWithHoles.js +0 -4
  170. package/helpers/babel/arrayWithoutHoles/arrayWithoutHoles.js +0 -6
  171. package/helpers/babel/assertThisInitialized/assertThisInitialized.js +0 -7
  172. package/helpers/babel/asyncGeneratorDelegate/asyncGeneratorDelegate.js +0 -40
  173. package/helpers/babel/asyncIterator/asyncIterator.js +0 -65
  174. package/helpers/babel/asyncToGenerator/asyncToGenerator.js +0 -34
  175. package/helpers/babel/awaitAsyncGenerator/awaitAsyncGenerator.js +0 -5
  176. package/helpers/babel/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +0 -20
  177. package/helpers/babel/classApplyDescriptorGet/classApplyDescriptorGet.js +0 -6
  178. package/helpers/babel/classApplyDescriptorSet/classApplyDescriptorSet.js +0 -13
  179. package/helpers/babel/classCallCheck/classCallCheck.js +0 -5
  180. package/helpers/babel/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +0 -5
  181. package/helpers/babel/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +0 -6
  182. package/helpers/babel/classExtractFieldDescriptor/classExtractFieldDescriptor.js +0 -7
  183. package/helpers/babel/classNameTDZError/classNameTDZError.js +0 -4
  184. package/helpers/babel/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +0 -7
  185. package/helpers/babel/classPrivateFieldGet/classPrivateFieldGet.js +0 -7
  186. package/helpers/babel/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +0 -6
  187. package/helpers/babel/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +0 -5
  188. package/helpers/babel/classPrivateFieldSet/classPrivateFieldSet.js +0 -8
  189. package/helpers/babel/classPrivateMethodGet/classPrivateMethodGet.js +0 -6
  190. package/helpers/babel/classPrivateMethodSet/classPrivateMethodSet.js +0 -3
  191. package/helpers/babel/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +0 -9
  192. package/helpers/babel/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +0 -15
  193. package/helpers/babel/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +0 -6
  194. package/helpers/babel/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +0 -3
  195. package/helpers/babel/construct/construct.js +0 -16
  196. package/helpers/babel/createClass/createClass.js +0 -15
  197. package/helpers/babel/createForOfIteratorHelper/createForOfIteratorHelper.js +0 -60
  198. package/helpers/babel/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +0 -23
  199. package/helpers/babel/createRawReactElement/createRawReactElement.js +0 -50
  200. package/helpers/babel/createSuper/createSuper.js +0 -22
  201. package/helpers/babel/decorate/decorate.js +0 -403
  202. package/helpers/babel/defaults/defaults.js +0 -11
  203. package/helpers/babel/defineEnumerableProperties/defineEnumerableProperties.js +0 -23
  204. package/helpers/babel/defineProperty/defineProperty.js +0 -18
  205. package/helpers/babel/extends/extends.js +0 -14
  206. package/helpers/babel/get/get.js +0 -19
  207. package/helpers/babel/getPrototypeOf/getPrototypeOf.js +0 -4
  208. package/helpers/babel/inherits/inherits.js +0 -19
  209. package/helpers/babel/inheritsLoose/inheritsLoose.js +0 -7
  210. package/helpers/babel/initializerDefineProperty/initializerDefineProperty.js +0 -10
  211. package/helpers/babel/initializerWarningHelper/initializerWarningHelper.js +0 -6
  212. package/helpers/babel/instanceof/instanceof.js +0 -6
  213. package/helpers/babel/interopRequireDefault/interopRequireDefault.js +0 -3
  214. package/helpers/babel/interopRequireWildcard/interopRequireWildcard.js +0 -37
  215. package/helpers/babel/isNativeFunction/isNativeFunction.js +0 -4
  216. package/helpers/babel/isNativeReflectConstruct/isNativeReflectConstruct.js +0 -21
  217. package/helpers/babel/iterableToArray/iterableToArray.js +0 -7
  218. package/helpers/babel/iterableToArrayLimit/iterableToArrayLimit.js +0 -36
  219. package/helpers/babel/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +0 -10
  220. package/helpers/babel/jsx/jsx.js +0 -50
  221. package/helpers/babel/maybeArrayLike/maybeArrayLike.js +0 -10
  222. package/helpers/babel/newArrowCheck/newArrowCheck.js +0 -5
  223. package/helpers/babel/nonIterableRest/nonIterableRest.js +0 -5
  224. package/helpers/babel/nonIterableSpread/nonIterableSpread.js +0 -5
  225. package/helpers/babel/objectDestructuringEmpty/objectDestructuringEmpty.js +0 -3
  226. package/helpers/babel/objectSpread/objectSpread.js +0 -23
  227. package/helpers/babel/objectSpread2/objectSpread2.js +0 -41
  228. package/helpers/babel/objectWithoutProperties/objectWithoutProperties.js +0 -19
  229. package/helpers/babel/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +0 -13
  230. package/helpers/babel/possibleConstructorReturn/possibleConstructorReturn.js +0 -10
  231. package/helpers/babel/readOnlyError/readOnlyError.js +0 -4
  232. package/helpers/babel/readme.md +0 -8
  233. package/helpers/babel/set/set.js +0 -44
  234. package/helpers/babel/setPrototypeOf/setPrototypeOf.js +0 -6
  235. package/helpers/babel/skipFirstGeneratorNext/skipFirstGeneratorNext.js +0 -8
  236. package/helpers/babel/slicedToArray/slicedToArray.js +0 -10
  237. package/helpers/babel/slicedToArrayLoose/slicedToArrayLoose.js +0 -13
  238. package/helpers/babel/superPropBase/superPropBase.js +0 -10
  239. package/helpers/babel/taggedTemplateLiteral/taggedTemplateLiteral.js +0 -10
  240. package/helpers/babel/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +0 -7
  241. package/helpers/babel/tdz/tdz.js +0 -4
  242. package/helpers/babel/temporalRef/temporalRef.js +0 -6
  243. package/helpers/babel/temporalUndefined/temporalUndefined.js +0 -3
  244. package/helpers/babel/toArray/toArray.js +0 -10
  245. package/helpers/babel/toConsumableArray/toConsumableArray.js +0 -10
  246. package/helpers/babel/toPrimitive/toPrimitive.js +0 -10
  247. package/helpers/babel/toPropertyKey/toPropertyKey.js +0 -6
  248. package/helpers/babel/typeof/typeof.js +0 -14
  249. package/helpers/babel/unsupportedIterableToArray/unsupportedIterableToArray.js +0 -12
  250. package/helpers/babel/wrapAsyncGenerator/wrapAsyncGenerator.js +0 -8
  251. package/helpers/babel/wrapNativeSuper/wrapNativeSuper.js +0 -30
  252. package/helpers/babel/wrapRegExp/wrapRegExp.js +0 -63
  253. package/helpers/babel/writeOnlyError/writeOnlyError.js +0 -4
  254. package/helpers/import-meta/import-meta-url-commonjs.js +0 -9
  255. package/helpers/import-meta/import-meta-url-global.js +0 -54
  256. package/src/build_project.js +0 -336
  257. package/src/commonjs_to_js_module.js +0 -180
  258. package/src/dev_server.js +0 -302
  259. package/src/execute.js +0 -184
  260. package/src/import_using_child_process.js +0 -68
  261. package/src/internal/browser_client/browser_client.js +0 -220
  262. package/src/internal/browser_client/browser_client_factory.js +0 -144
  263. package/src/internal/browser_client/browser_error_stack_remap.js +0 -43
  264. package/src/internal/browser_client/browser_system.js +0 -216
  265. package/src/internal/browser_client/module_namespace_transfer.js +0 -90
  266. package/src/internal/browser_detection/browser_detection.js +0 -65
  267. package/src/internal/browser_detection/detect_android.js +0 -13
  268. package/src/internal/browser_detection/detect_chrome.js +0 -28
  269. package/src/internal/browser_detection/detect_edge.js +0 -13
  270. package/src/internal/browser_detection/detect_electron.js +0 -1
  271. package/src/internal/browser_detection/detect_firefox.js +0 -17
  272. package/src/internal/browser_detection/detect_internet_explorer.js +0 -14
  273. package/src/internal/browser_detection/detect_ios.js +0 -19
  274. package/src/internal/browser_detection/detect_opera.js +0 -27
  275. package/src/internal/browser_detection/detect_safari.js +0 -13
  276. package/src/internal/browser_detection/user_agent_data.js +0 -25
  277. package/src/internal/browser_detection/util.js +0 -13
  278. package/src/internal/browser_launcher/browser_runtime_profile.js +0 -81
  279. package/src/internal/browser_launcher/execute_html_file.js +0 -355
  280. package/src/internal/browser_launcher/from_playwright.js +0 -320
  281. package/src/internal/browser_launcher/page_errors_and_logs.js +0 -77
  282. package/src/internal/browser_utils/fetch_and_eval.js +0 -27
  283. package/src/internal/browser_utils/fetch_and_eval_using_script.js +0 -47
  284. package/src/internal/browser_utils/fetch_browser.js +0 -34
  285. package/src/internal/browser_utils/fetch_json.js +0 -7
  286. package/src/internal/building/build_logs.js +0 -134
  287. package/src/internal/building/build_stats.js +0 -100
  288. package/src/internal/building/build_url_generator.js +0 -153
  289. package/src/internal/building/build_using_rollup.js +0 -359
  290. package/src/internal/building/css/apply_post_css.js +0 -55
  291. package/src/internal/building/css/jsenv_parse_css.js +0 -260
  292. package/src/internal/building/css/move_css_urls.js +0 -44
  293. package/src/internal/building/css/parse_css_urls.js +0 -38
  294. package/src/internal/building/css/postcss_plugin_url_visitor.js +0 -245
  295. package/src/internal/building/css/replace_css_urls.js +0 -68
  296. package/src/internal/building/global_format/es_to_system.js +0 -34
  297. package/src/internal/building/html/html_node_mutations.js +0 -29
  298. package/src/internal/building/html/html_scan.js +0 -70
  299. package/src/internal/building/html/jsenv_parse_html.js +0 -813
  300. package/src/internal/building/html/minify_html.js +0 -7
  301. package/src/internal/building/import_assertions/css_module.js +0 -43
  302. package/src/internal/building/import_references.js +0 -80
  303. package/src/internal/building/importmap/jsenv_parse_importmap.js +0 -28
  304. package/src/internal/building/js/babel_plugin_inline_worker_imports.js +0 -96
  305. package/src/internal/building/js/jsenv_parse_js.js +0 -122
  306. package/src/internal/building/js/minify_js.js +0 -33
  307. package/src/internal/building/js/transform_worker.js +0 -55
  308. package/src/internal/building/json/jsenv_parse_json.js +0 -11
  309. package/src/internal/building/parse_ressource.js +0 -207
  310. package/src/internal/building/ressource_builder.js +0 -1098
  311. package/src/internal/building/ressource_builder_util.js +0 -194
  312. package/src/internal/building/rollup_plugin_jsenv.js +0 -1965
  313. package/src/internal/building/sort_pathnames.js +0 -10
  314. package/src/internal/building/sourcemap/sourcemap_loader.js +0 -70
  315. package/src/internal/building/svg/jsenv_parse_svg.js +0 -112
  316. package/src/internal/building/url_fetcher.js +0 -85
  317. package/src/internal/building/url_loader.js +0 -127
  318. package/src/internal/building/url_trace.js +0 -229
  319. package/src/internal/building/url_versioning/resolve_import_url_helper.js +0 -12
  320. package/src/internal/building/url_versioning/url_versioning.js +0 -65
  321. package/src/internal/building/webmanifest/jsenv_parse_webmanifest.js +0 -48
  322. package/src/internal/compile_server/commonjs/rollup_plugin_commonjs_named_exports.js +0 -187
  323. package/src/internal/compile_server/compile_file.js +0 -273
  324. package/src/internal/compile_server/compile_server.js +0 -519
  325. package/src/internal/compile_server/compiled_file_service.js +0 -264
  326. package/src/internal/compile_server/html/html_ast.js +0 -534
  327. package/src/internal/compile_server/html/html_source_file_service.js +0 -453
  328. package/src/internal/compile_server/html/jsenv_compile_html.js +0 -674
  329. package/src/internal/compile_server/importmap/jsenv_compile_importmap.js +0 -28
  330. package/src/internal/compile_server/js/ansi_to_html.js +0 -9
  331. package/src/internal/compile_server/js/babelHelper.js +0 -145
  332. package/src/internal/compile_server/js/babel_parse_error.js +0 -9
  333. package/src/internal/compile_server/js/babel_plugin_global_this_as_jsenv_import.js +0 -34
  334. package/src/internal/compile_server/js/babel_plugin_import_assertions.js +0 -121
  335. package/src/internal/compile_server/js/babel_plugin_import_metadata.js +0 -18
  336. package/src/internal/compile_server/js/babel_plugin_import_visitor.js +0 -84
  337. package/src/internal/compile_server/js/babel_plugin_new_stylesheet_as_jsenv_import.js +0 -113
  338. package/src/internal/compile_server/js/babel_plugin_proxy_external_imports.js +0 -31
  339. package/src/internal/compile_server/js/babel_plugin_regenerator_runtime_as_jsenv_import.js +0 -48
  340. package/src/internal/compile_server/js/babel_plugin_replace_expressions.js +0 -101
  341. package/src/internal/compile_server/js/babel_plugin_systemjs_prepend.js +0 -23
  342. package/src/internal/compile_server/js/babel_plugin_transform_import_meta.js +0 -134
  343. package/src/internal/compile_server/js/babel_plugins.js +0 -37
  344. package/src/internal/compile_server/js/generateBabelHelper.js +0 -36
  345. package/src/internal/compile_server/js/js_transformer.js +0 -195
  346. package/src/internal/compile_server/js/jsenv_compile_js.js +0 -62
  347. package/src/internal/compile_server/js/load_babel_plugin_map_from_file.js +0 -49
  348. package/src/internal/compile_server/jsenv_directory/comparison_utils.js +0 -27
  349. package/src/internal/compile_server/jsenv_directory/compilation_result.js +0 -243
  350. package/src/internal/compile_server/jsenv_directory/compilation_result_from_build.js +0 -184
  351. package/src/internal/compile_server/jsenv_directory/compile_asset.js +0 -24
  352. package/src/internal/compile_server/jsenv_directory/compile_context.js +0 -60
  353. package/src/internal/compile_server/jsenv_directory/compile_profile.js +0 -217
  354. package/src/internal/compile_server/jsenv_directory/file_lock_registry.js +0 -24
  355. package/src/internal/compile_server/jsenv_directory/file_lock_registry.test.js +0 -47
  356. package/src/internal/compile_server/jsenv_directory/fs_optimized_for_cache.js +0 -57
  357. package/src/internal/compile_server/jsenv_directory/jsenv_directory.js +0 -183
  358. package/src/internal/compile_server/jsenv_directory/reuse_or_create_compiled_file.js +0 -269
  359. package/src/internal/compile_server/jsenv_directory/update_compile_cache.js +0 -131
  360. package/src/internal/compile_server/jsenv_directory/validate_compile_cache.js +0 -264
  361. package/src/internal/compile_server/sse_service/sse_service.js +0 -369
  362. package/src/internal/coverage/babel_plugin_instrument.js +0 -90
  363. package/src/internal/coverage/coverage_reporter_html_directory.js +0 -37
  364. package/src/internal/coverage/coverage_reporter_json_file.js +0 -22
  365. package/src/internal/coverage/coverage_reporter_text_log.js +0 -20
  366. package/src/internal/coverage/empty_coverage_factory.js +0 -70
  367. package/src/internal/coverage/file_by_file_coverage.js +0 -28
  368. package/src/internal/coverage/istanbul_coverage_composition.js +0 -28
  369. package/src/internal/coverage/istanbul_coverage_map_from_coverage.js +0 -16
  370. package/src/internal/coverage/list_files_not_covered.js +0 -20
  371. package/src/internal/coverage/missing_coverage.js +0 -46
  372. package/src/internal/coverage/report_to_coverage.js +0 -198
  373. package/src/internal/coverage/v8_and_istanbul.js +0 -38
  374. package/src/internal/coverage/v8_coverage_composition.js +0 -23
  375. package/src/internal/coverage/v8_coverage_from_directory.js +0 -86
  376. package/src/internal/coverage/v8_coverage_to_istanbul.js +0 -100
  377. package/src/internal/data_url.js +0 -54
  378. package/src/internal/dev_server/event_source_client/event_source_client.js +0 -63
  379. package/src/internal/dev_server/event_source_client/file_changes.js +0 -82
  380. package/src/internal/dev_server/event_source_client/livereload_preference.js +0 -13
  381. package/src/internal/dev_server/exploring/exploring.css +0 -237
  382. package/src/internal/dev_server/exploring/exploring.html +0 -79
  383. package/src/internal/dev_server/exploring/exploring.js +0 -243
  384. package/src/internal/dev_server/exploring/fetch_exploring_json.js +0 -19
  385. package/src/internal/dev_server/toolbar/compilation/compilation.css +0 -23
  386. package/src/internal/dev_server/toolbar/compilation/toolbar_compilation.js +0 -202
  387. package/src/internal/dev_server/toolbar/eventsource/toolbar_eventsource.js +0 -83
  388. package/src/internal/dev_server/toolbar/execution/toolbar_execution.js +0 -91
  389. package/src/internal/error_stack_remap/install_error_stack_remapping.js +0 -142
  390. package/src/internal/error_stack_remap/remap_call_site.js +0 -315
  391. package/src/internal/error_stack_remap/remap_stack.js +0 -218
  392. package/src/internal/error_stack_remap/stringify_stack.js +0 -9
  393. package/src/internal/executing/launch_and_execute.js +0 -458
  394. package/src/internal/executing/logs_file_execution.js +0 -160
  395. package/src/internal/executing/logs_plan_summary.js +0 -144
  396. package/src/internal/features/browser_feature_detection/browser_feature_detect_dynamic_import.js +0 -20
  397. package/src/internal/features/browser_feature_detection/browser_feature_detect_import_assertions_css.js +0 -23
  398. package/src/internal/features/browser_feature_detection/browser_feature_detect_import_assertions_json.js +0 -25
  399. package/src/internal/features/browser_feature_detection/browser_feature_detect_importmap.js +0 -37
  400. package/src/internal/features/browser_feature_detection/browser_feature_detect_new_stylesheet.js +0 -9
  401. package/src/internal/features/browser_feature_detection/browser_feature_detect_top_level_await.js +0 -14
  402. package/src/internal/features/browser_feature_detection/browser_feature_detection.js +0 -89
  403. package/src/internal/features/browser_feature_detection/compile_proxy.html +0 -27
  404. package/src/internal/features/browser_feature_detection/execute_with_script_module.js +0 -24
  405. package/src/internal/features/features_compat_from_runtime.js +0 -38
  406. package/src/internal/features/features_compat_from_runtime_support.js +0 -31
  407. package/src/internal/features/features_compatibility.js +0 -37
  408. package/src/internal/features/node_feature_detection/feature_detect_dynamic_import.mjs +0 -5
  409. package/src/internal/features/node_feature_detection/feature_detect_top_level_await.mjs +0 -1
  410. package/src/internal/features/node_feature_detection/node_feature_detect_dynamic_import.js +0 -5
  411. package/src/internal/features/node_feature_detection/node_feature_detect_top_level_await.js +0 -16
  412. package/src/internal/features/node_feature_detection/node_feature_detection.js +0 -66
  413. package/src/internal/fetching.js +0 -28
  414. package/src/internal/import_resolution/default_extension.js +0 -40
  415. package/src/internal/import_resolution/import_resolver_importmap.js +0 -64
  416. package/src/internal/import_resolution/import_resolver_node.js +0 -254
  417. package/src/internal/import_resolution/importmap_default.js +0 -37
  418. package/src/internal/jsenv_builds.js +0 -19
  419. package/src/internal/jsenv_params_assertions.js +0 -12
  420. package/src/internal/jsenv_remote_directory.js +0 -156
  421. package/src/internal/logs/byte.js +0 -10
  422. package/src/internal/logs/byte_as_file_size.js +0 -9
  423. package/src/internal/logs/ms_as_duration.js +0 -12
  424. package/src/internal/memoize.js +0 -24
  425. package/src/internal/node_launcher/eval_source.js +0 -6
  426. package/src/internal/node_launcher/fetch_source.js +0 -8
  427. package/src/internal/node_launcher/node_error_stack_remap.js +0 -22
  428. package/src/internal/node_launcher/node_execution_dynamic_import.js +0 -75
  429. package/src/internal/node_launcher/node_execution_performance.js +0 -67
  430. package/src/internal/node_launcher/node_execution_systemjs.js +0 -125
  431. package/src/internal/node_launcher/node_runtime_report.js +0 -77
  432. package/src/internal/node_launcher/node_system.js +0 -192
  433. package/src/internal/node_launcher/perf_node.js +0 -13
  434. package/src/internal/node_launcher/process_options.js +0 -46
  435. package/src/internal/node_launcher/value_install.js +0 -14
  436. package/src/internal/origin_directory_converter.js +0 -62
  437. package/src/internal/promise_race.js +0 -19
  438. package/src/internal/redirector/redirector.html +0 -40
  439. package/src/internal/regexp_escape.js +0 -34
  440. package/src/internal/require.js +0 -3
  441. package/src/internal/response_validation.js +0 -130
  442. package/src/internal/runtime_client/module_registration.js +0 -207
  443. package/src/internal/runtime_client/s.js +0 -864
  444. package/src/internal/runtime_client/s.js.md +0 -1
  445. package/src/internal/runtime_support/jsenv_runtime_support.js +0 -15
  446. package/src/internal/runtime_support/runtime_support.js +0 -70
  447. package/src/internal/semantic_versioning/compare_versions.js +0 -28
  448. package/src/internal/semantic_versioning/highest_version.js +0 -11
  449. package/src/internal/semantic_versioning/is_above.js +0 -5
  450. package/src/internal/semantic_versioning/is_below.js +0 -5
  451. package/src/internal/semantic_versioning/is_equal.js +0 -3
  452. package/src/internal/semantic_versioning/lowest_version.js +0 -11
  453. package/src/internal/semantic_versioning/version_from_value.js +0 -42
  454. package/src/internal/sourcemap_utils.js +0 -112
  455. package/src/internal/template_string_escape.js +0 -20
  456. package/src/internal/url_conversion.js +0 -313
  457. package/src/internal/url_utils.js +0 -33
  458. package/src/internal/url_utils.test.js +0 -39
  459. package/src/internal/windows_file_path_utils.js +0 -16
  460. package/src/jsenv_file_urls.js +0 -35
  461. package/src/jsenv_service_worker_finalizer.js +0 -55
  462. package/src/json_to_js_module.js +0 -13
  463. package/src/node_runtime.js +0 -227
  464. package/src/require_using_child_process.js +0 -67
  465. package/src/text_to_js_module.js +0 -13
@@ -3,64 +3,56 @@ import { memoryUsage } from "node:process"
3
3
  import wrapAnsi from "wrap-ansi"
4
4
  import stripAnsi from "strip-ansi"
5
5
  import cuid from "cuid"
6
- import { createDetailedMessage, loggerToLevels } from "@jsenv/logger"
7
- import { createLog, startSpinner } from "@jsenv/log"
8
- import {
9
- Abort,
10
- raceProcessTeardownEvents,
11
- createCallbackListNotifiedOnce,
12
- } from "@jsenv/abort"
13
6
  import {
14
7
  urlToFileSystemPath,
15
- resolveUrl,
16
8
  writeDirectory,
17
9
  ensureEmptyDirectory,
18
10
  normalizeStructuredMetaMap,
19
11
  urlToMeta,
20
12
  writeFile,
21
13
  } from "@jsenv/filesystem"
14
+ import {
15
+ createLogger,
16
+ createDetailedMessage,
17
+ loggerToLevels,
18
+ } from "@jsenv/logger"
19
+ import { createLog, startSpinner } from "@jsenv/log"
20
+ import { Abort, raceProcessTeardownEvents } from "@jsenv/abort"
22
21
 
23
- import { startCompileServer } from "@jsenv/core/src/internal/compile_server/compile_server.js"
24
- import { babelPluginInstrument } from "@jsenv/core/src/internal/coverage/babel_plugin_instrument.js"
25
- import { reportToCoverage } from "@jsenv/core/src/internal/coverage/report_to_coverage.js"
22
+ import { babelPluginInstrument } from "@jsenv/utils/coverage/babel_plugin_instrument.js"
23
+ import { reportToCoverage } from "@jsenv/utils/coverage/report_to_coverage.js"
24
+ import { createUrlGraph } from "@jsenv/core/src/omega/url_graph.js"
25
+ import { getCorePlugins } from "@jsenv/core/src/omega/core_plugins.js"
26
+ import { createKitchen } from "@jsenv/core/src/omega/kitchen.js"
27
+ import { startOmegaServer } from "@jsenv/core/src/omega/omega_server.js"
28
+ import { run } from "@jsenv/core/src/execute/run.js"
26
29
 
27
30
  import { ensureGlobalGc } from "./gc.js"
28
- import { launchAndExecute } from "./launch_and_execute.js"
29
31
  import { generateExecutionSteps } from "./execution_steps.js"
30
32
  import {
31
33
  formatExecuting,
32
34
  formatExecutionResult,
35
+ createSummaryLog,
33
36
  } from "./logs_file_execution.js"
34
- import { createSummaryLog } from "./logs_plan_summary.js"
35
37
 
36
38
  export const executePlan = async (
37
39
  plan,
38
40
  {
39
41
  signal,
40
42
  handleSIGINT,
41
-
42
43
  logger,
43
- compileServerLogLevel,
44
- launchAndExecuteLogLevel,
45
-
46
- projectDirectoryUrl,
47
- jsenvDirectoryRelativeUrl,
48
- jsenvDirectoryClean,
49
-
50
- importResolutionMethod,
51
- importDefaultExtension,
52
-
53
44
  logSummary,
54
45
  logMemoryHeapUsage,
55
46
  logFileRelativeUrl,
56
47
  completedExecutionLogMerging,
57
48
  completedExecutionLogAbbreviation,
58
49
 
50
+ rootDirectoryUrl,
51
+ keepRunning,
59
52
  defaultMsAllocatedPerExecution,
60
53
  maxExecutionsInParallel,
61
54
  failFast,
62
55
  gcBetweenExecutions,
63
- stopAfterExecute,
64
56
  cooldownBetweenExecutions,
65
57
 
66
58
  coverage,
@@ -70,34 +62,24 @@ export const executePlan = async (
70
62
  coverageV8ConflictWarning,
71
63
  coverageTempDirectoryRelativeUrl,
72
64
 
65
+ injectedGlobals,
66
+ plugins,
67
+ scenario,
68
+ sourcemaps,
69
+
73
70
  protocol,
74
71
  privateKey,
75
72
  certificate,
76
73
  ip,
77
74
  port,
78
- compileServerCanReadFromFilesystem,
79
- compileServerCanWriteOnFilesystem,
80
- babelPluginMap,
81
- babelConfigFileUrl,
82
- preservedUrls,
83
- workers,
84
- serviceWorkers,
85
- importMapInWebWorkers,
86
- customCompilers,
87
75
 
88
76
  beforeExecutionCallback = () => {},
89
77
  afterExecutionCallback = () => {},
90
78
  } = {},
91
79
  ) => {
92
- if (coverage) {
93
- babelPluginMap = {
94
- ...babelPluginMap,
95
- "transform-instrument": [
96
- babelPluginInstrument,
97
- { projectDirectoryUrl, coverageConfig },
98
- ],
99
- }
100
- }
80
+ const stopAfterAllSignal = { notify: () => {} }
81
+
82
+ let someNeedsServer = false
101
83
  const runtimes = {}
102
84
  Object.keys(plan).forEach((filePattern) => {
103
85
  const filePlan = plan[filePattern]
@@ -106,6 +88,9 @@ export const executePlan = async (
106
88
  const { runtime } = executionConfig
107
89
  if (runtime) {
108
90
  runtimes[runtime.name] = runtime.version
91
+ if (runtime.needsServer) {
92
+ someNeedsServer = true
93
+ }
109
94
  }
110
95
  })
111
96
  })
@@ -135,84 +120,115 @@ export const executePlan = async (
135
120
  }
136
121
 
137
122
  try {
138
- const compileServer = await startCompileServer({
139
- signal: multipleExecutionsOperation.signal,
140
- logLevel: compileServerLogLevel,
141
-
142
- projectDirectoryUrl,
143
- jsenvDirectoryRelativeUrl,
144
- jsenvDirectoryClean,
145
-
146
- importResolutionMethod,
147
- importDefaultExtension,
123
+ let runtimeParams = {
124
+ rootDirectoryUrl,
125
+ collectCoverage: coverage,
126
+ coverageForceIstanbul,
127
+ stopAfterAllSignal,
128
+ }
129
+ if (someNeedsServer) {
130
+ const urlGraph = createUrlGraph()
131
+ const kitchen = createKitchen({
132
+ signal,
133
+ logger,
134
+ rootDirectoryUrl,
135
+ urlGraph,
136
+ plugins: [
137
+ ...plugins,
138
+ ...getCorePlugins({
139
+ babel: {
140
+ getCustomBabelPlugins: ({ runtimeSupport }) => {
141
+ if (coverage && Object.keys(runtimeSupport)[0] !== "chrome") {
142
+ return {
143
+ "transform-instrument": [
144
+ babelPluginInstrument,
145
+ {
146
+ rootDirectoryUrl,
147
+ coverageConfig,
148
+ },
149
+ ],
150
+ }
151
+ }
152
+ return {}
153
+ },
154
+ },
155
+ injectedGlobals,
156
+ }),
157
+ ],
158
+ scenario,
159
+ sourcemaps,
160
+ })
161
+ const serverLogger = createLogger({ logLevel: "warn" })
162
+ const server = await startOmegaServer({
163
+ signal: multipleExecutionsOperation.signal,
164
+ logger: serverLogger,
165
+ rootDirectoryUrl,
166
+ urlGraph,
167
+ kitchen,
168
+ scenario,
169
+ keepProcessAlive: false,
170
+ port,
171
+ ip,
172
+ protocol,
173
+ certificate,
174
+ privateKey,
175
+ })
176
+ multipleExecutionsOperation.addEndCallback(async () => {
177
+ await server.stop()
178
+ })
179
+ runtimeParams = {
180
+ ...runtimeParams,
181
+ server,
182
+ }
183
+ }
148
184
 
149
- protocol,
150
- privateKey,
151
- certificate,
152
- ip,
153
- port,
154
- compileServerCanReadFromFilesystem,
155
- compileServerCanWriteOnFilesystem,
156
- keepProcessAlive: true, // to be sure it stays alive
157
- babelPluginMap,
158
- babelConfigFileUrl,
159
- preservedUrls,
160
- workers,
161
- serviceWorkers,
162
- importMapInWebWorkers,
163
- customCompilers,
164
- })
165
- babelPluginMap = compileServer.babelPluginMap
166
- multipleExecutionsOperation.addEndCallback(async () => {
167
- await compileServer.stop()
168
- })
169
185
  logger.debug(`Generate executions`)
170
186
  const executionSteps = await getExecutionAsSteps({
171
187
  plan,
172
- compileServer,
173
188
  multipleExecutionsOperation,
174
- projectDirectoryUrl,
189
+ rootDirectoryUrl,
175
190
  })
176
191
  logger.debug(`${executionSteps.length} executions planned`)
177
-
178
192
  if (completedExecutionLogMerging && !process.stdout.isTTY) {
179
193
  completedExecutionLogMerging = false
180
194
  logger.debug(
181
195
  `Force completedExecutionLogMerging to false because process.stdout.isTTY is false`,
182
196
  )
183
197
  }
198
+ const debugLogsEnabled = loggerToLevels(logger).debug
184
199
  const executionLogsEnabled = loggerToLevels(logger).info
185
- const executionSpinner = executionLogsEnabled && process.stdout.isTTY
200
+ const executionSpinner =
201
+ !debugLogsEnabled && executionLogsEnabled && process.stdout.isTTY
186
202
 
187
203
  const startMs = Date.now()
188
204
  const report = {}
189
- const executionCount = executionSteps.length
190
205
  let rawOutput = ""
191
206
 
192
207
  let transformReturnValue = (value) => value
193
-
194
208
  if (gcBetweenExecutions) {
195
209
  ensureGlobalGc()
196
210
  }
197
211
 
198
- const coverageTempDirectoryUrl = resolveUrl(
212
+ const coverageTempDirectoryUrl = new URL(
199
213
  coverageTempDirectoryRelativeUrl,
200
- projectDirectoryUrl,
201
- )
202
- const structuredMetaMapForCover = normalizeStructuredMetaMap(
203
- {
204
- cover: coverageConfig,
205
- },
206
- projectDirectoryUrl,
207
- )
208
- const coverageIgnorePredicate = (url) => {
209
- return !urlToMeta({
210
- url: resolveUrl(url, projectDirectoryUrl),
211
- structuredMetaMap: structuredMetaMapForCover,
212
- }).cover
213
- }
214
+ rootDirectoryUrl,
215
+ ).href
214
216
 
215
217
  if (coverage) {
218
+ const structuredMetaMapForCover = normalizeStructuredMetaMap(
219
+ {
220
+ cover: coverageConfig,
221
+ },
222
+ rootDirectoryUrl,
223
+ )
224
+ const urlShouldBeCovered = (url) => {
225
+ return urlToMeta({
226
+ url: new URL(url, rootDirectoryUrl).href,
227
+ structuredMetaMap: structuredMetaMapForCover,
228
+ }).cover
229
+ }
230
+ runtimeParams.urlShouldBeCovered = urlShouldBeCovered
231
+
216
232
  // in case runned multiple times, we don't want to keep writing lot of files in this directory
217
233
  if (!process.env.NODE_V8_COVERAGE) {
218
234
  await ensureEmptyDirectory(coverageTempDirectoryUrl)
@@ -221,32 +237,29 @@ export const executePlan = async (
221
237
  // v8 coverage is written in a directoy and auto propagate to subprocesses
222
238
  // through process.env.NODE_V8_COVERAGE.
223
239
  if (!coverageForceIstanbul && !process.env.NODE_V8_COVERAGE) {
224
- const v8CoverageDirectory = resolveUrl(
240
+ const v8CoverageDirectory = new URL(
225
241
  `./node_v8/${cuid()}`,
226
242
  coverageTempDirectoryUrl,
227
- )
243
+ ).href
228
244
  await writeDirectory(v8CoverageDirectory, { allowUseless: true })
229
245
  process.env.NODE_V8_COVERAGE =
230
246
  urlToFileSystemPath(v8CoverageDirectory)
231
247
  }
232
248
  }
233
-
234
249
  transformReturnValue = async (value) => {
235
250
  if (multipleExecutionsOperation.signal.aborted) {
236
251
  // don't try to do the coverage stuff
237
252
  return value
238
253
  }
239
-
240
254
  try {
241
255
  value.coverage = await reportToCoverage(value.report, {
242
256
  signal: multipleExecutionsOperation.signal,
243
257
  logger,
244
- projectDirectoryUrl,
245
- babelPluginMap,
258
+ rootDirectoryUrl,
246
259
  coverageConfig,
247
260
  coverageIncludeMissing,
248
261
  coverageForceIstanbul,
249
- coverageIgnorePredicate,
262
+ urlShouldBeCovered,
250
263
  coverageV8ConflictWarning,
251
264
  })
252
265
  } catch (e) {
@@ -261,13 +274,14 @@ export const executePlan = async (
261
274
 
262
275
  logger.info("")
263
276
  let executionLog = createLog({ newLine: "" })
264
- let abortedCount = 0
265
- let timedoutCount = 0
266
- let erroredCount = 0
267
- let completedCount = 0
268
- const stopAfterAllExecutionCallbackList = createCallbackListNotifiedOnce()
269
-
270
- let executionDoneCount = 0
277
+ const counters = {
278
+ total: executionSteps.length,
279
+ aborted: 0,
280
+ timedout: 0,
281
+ errored: 0,
282
+ completed: 0,
283
+ done: 0,
284
+ }
271
285
  await executeInParallel({
272
286
  multipleExecutionsOperation,
273
287
  maxExecutionsInParallel,
@@ -278,22 +292,17 @@ export const executePlan = async (
278
292
  const { executionName, fileRelativeUrl, runtime } = paramsFromStep
279
293
  const runtimeName = runtime.name
280
294
  const runtimeVersion = runtime.version
281
-
282
295
  const executionParams = {
283
- // the params below can be overriden by executionDefaultParams
284
296
  measurePerformance: false,
285
297
  collectPerformance: false,
286
- captureConsole: true,
287
- stopAfterExecute,
288
- stopAfterExecuteReason: "execution-done",
298
+ collectConsole: true,
289
299
  allocatedMs: defaultMsAllocatedPerExecution,
290
300
  ...paramsFromStep,
291
- runtime,
292
- // mirrorConsole: false because file will be executed in parallel
293
- // so log would be a mess to read
294
- mirrorConsole: false,
301
+ runtimeParams: {
302
+ fileRelativeUrl,
303
+ ...paramsFromStep.runtimeParams,
304
+ },
295
305
  }
296
-
297
306
  const beforeExecutionInfo = {
298
307
  fileRelativeUrl,
299
308
  runtimeName,
@@ -301,17 +310,12 @@ export const executePlan = async (
301
310
  executionIndex,
302
311
  executionParams,
303
312
  }
304
-
305
313
  let spinner
306
314
  if (executionSpinner) {
307
315
  spinner = startSpinner({
308
316
  log: executionLog,
309
317
  text: formatExecuting(beforeExecutionInfo, {
310
- executionCount,
311
- abortedCount,
312
- timedoutCount,
313
- erroredCount,
314
- completedCount,
318
+ counters,
315
319
  ...(logMemoryHeapUsage
316
320
  ? { memoryHeap: memoryUsage().heapUsed }
317
321
  : {}),
@@ -320,36 +324,23 @@ export const executePlan = async (
320
324
  }
321
325
  beforeExecutionCallback(beforeExecutionInfo)
322
326
 
323
- const filePath = urlToFileSystemPath(
324
- `${projectDirectoryUrl}${fileRelativeUrl}`,
325
- )
327
+ const fileUrl = `${rootDirectoryUrl}${fileRelativeUrl}`
326
328
  let executionResult
327
- if (existsSync(filePath)) {
328
- executionResult = await launchAndExecute({
329
+ if (existsSync(new URL(fileUrl))) {
330
+ executionResult = await run({
329
331
  signal: multipleExecutionsOperation.signal,
330
- launchAndExecuteLogLevel,
331
-
332
- ...executionParams,
332
+ logger,
333
+ allocatedMs: executionParams.allocatedMs,
334
+ keepRunning,
335
+ mirrorConsole: false, // file are executed in parallel, log would be a mess to read
336
+ collectConsole: executionParams.collectConsole,
333
337
  collectCoverage: coverage,
334
338
  coverageTempDirectoryUrl,
339
+ runtime: executionParams.runtime,
335
340
  runtimeParams: {
336
- projectDirectoryUrl,
337
- compileServerOrigin: compileServer.origin,
338
- compileServerId: compileServer.id,
339
- jsenvDirectoryRelativeUrl:
340
- compileServer.jsenvDirectoryRelativeUrl,
341
-
342
- collectCoverage: coverage,
343
- coverageIgnorePredicate,
344
- coverageForceIstanbul,
345
- stopAfterAllExecutionCallbackList,
341
+ ...runtimeParams,
346
342
  ...executionParams.runtimeParams,
347
343
  },
348
- executeParams: {
349
- fileRelativeUrl,
350
- ...executionParams.executeParams,
351
- },
352
- coverageV8ConflictWarning,
353
344
  })
354
345
  } else {
355
346
  executionResult = {
@@ -359,7 +350,7 @@ export const executePlan = async (
359
350
  ),
360
351
  }
361
352
  }
362
- executionDoneCount++
353
+ counters.done++
363
354
  if (fileRelativeUrl in report === false) {
364
355
  report[fileRelativeUrl] = {}
365
356
  }
@@ -372,13 +363,13 @@ export const executePlan = async (
372
363
  afterExecutionCallback(afterExecutionInfo)
373
364
 
374
365
  if (executionResult.status === "aborted") {
375
- abortedCount++
366
+ counters.aborted++
376
367
  } else if (executionResult.status === "timedout") {
377
- timedoutCount++
368
+ counters.timedout++
378
369
  } else if (executionResult.status === "errored") {
379
- erroredCount++
370
+ counters.errored++
380
371
  } else if (executionResult.status === "completed") {
381
- completedCount++
372
+ counters.completed++
382
373
  }
383
374
  if (gcBetweenExecutions) {
384
375
  global.gc()
@@ -386,11 +377,7 @@ export const executePlan = async (
386
377
  if (executionLogsEnabled) {
387
378
  let log = formatExecutionResult(afterExecutionInfo, {
388
379
  completedExecutionLogAbbreviation,
389
- executionCount,
390
- abortedCount,
391
- timedoutCount,
392
- erroredCount,
393
- completedCount,
380
+ counters,
394
381
  ...(logMemoryHeapUsage
395
382
  ? { memoryHeap: memoryUsage().heapUsed }
396
383
  : {}),
@@ -424,24 +411,21 @@ export const executePlan = async (
424
411
  if (
425
412
  failFast &&
426
413
  executionResult.status !== "completed" &&
427
- executionDoneCount < executionCount
414
+ counters.done < counters.total
428
415
  ) {
429
416
  logger.info(`"failFast" enabled -> cancel remaining executions`)
430
417
  failFastAbortController.abort()
431
418
  }
432
419
  },
433
420
  })
434
-
435
- if (stopAfterExecute) {
436
- stopAfterAllExecutionCallbackList.notify()
421
+ if (!keepRunning) {
422
+ await stopAfterAllSignal.notify()
437
423
  }
438
424
 
439
- const summaryCounts = reportToSummary(report)
425
+ counters.cancelled = counters.total - counters.done
440
426
  const summary = {
441
- executionCount,
442
- ...summaryCounts,
427
+ counters,
443
428
  // when execution is aborted, the remaining executions are "cancelled"
444
- cancelledCount: executionCount - executionDoneCount,
445
429
  duration: Date.now() - startMs,
446
430
  }
447
431
  if (logSummary) {
@@ -449,8 +433,8 @@ export const executePlan = async (
449
433
  rawOutput += stripAnsi(summaryLog)
450
434
  logger.info(summaryLog)
451
435
  }
452
- if (summary.executionCount !== summary.completedCount) {
453
- const logFileUrl = new URL(logFileRelativeUrl, projectDirectoryUrl)
436
+ if (summary.counters.total !== summary.counters.completed) {
437
+ const logFileUrl = new URL(logFileRelativeUrl, rootDirectoryUrl).href
454
438
  writeFile(logFileUrl, rawOutput)
455
439
  logger.info(`-> ${urlToFileSystemPath(logFileUrl)}`)
456
440
  }
@@ -471,21 +455,14 @@ export const executePlan = async (
471
455
 
472
456
  const getExecutionAsSteps = async ({
473
457
  plan,
474
- compileServer,
475
458
  multipleExecutionsOperation,
476
- projectDirectoryUrl,
459
+ rootDirectoryUrl,
477
460
  }) => {
478
461
  try {
479
- const executionSteps = await generateExecutionSteps(
480
- {
481
- ...plan,
482
- [compileServer.jsenvDirectoryRelativeUrl]: null,
483
- },
484
- {
485
- signal: multipleExecutionsOperation.signal,
486
- projectDirectoryUrl,
487
- },
488
- )
462
+ const executionSteps = await generateExecutionSteps(plan, {
463
+ signal: multipleExecutionsOperation.signal,
464
+ rootDirectoryUrl,
465
+ })
489
466
  return executionSteps
490
467
  } catch (e) {
491
468
  if (Abort.isAbortError(e)) {
@@ -570,35 +547,3 @@ const executeInParallel = async ({
570
547
 
571
548
  return executionResults
572
549
  }
573
-
574
- const reportToSummary = (report) => {
575
- const fileNames = Object.keys(report)
576
- const countResultMatching = (predicate) => {
577
- return fileNames.reduce((previous, fileName) => {
578
- const fileExecutionResult = report[fileName]
579
-
580
- return (
581
- previous +
582
- Object.keys(fileExecutionResult).filter((executionName) => {
583
- const fileExecutionResultForRuntime =
584
- fileExecutionResult[executionName]
585
- return predicate(fileExecutionResultForRuntime)
586
- }).length
587
- )
588
- }, 0)
589
- }
590
- const abortedCount = countResultMatching(({ status }) => status === "aborted")
591
- const timedoutCount = countResultMatching(
592
- ({ status }) => status === "timedout",
593
- )
594
- const erroredCount = countResultMatching(({ status }) => status === "errored")
595
- const completedCount = countResultMatching(
596
- ({ status }) => status === "completed",
597
- )
598
- return {
599
- abortedCount,
600
- timedoutCount,
601
- erroredCount,
602
- completedCount,
603
- }
604
- }