@jsenv/core 26.0.1 → 27.0.0-alpha.2

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 +737 -0
  5. package/src/build/build_urls_generator.js +64 -0
  6. package/src/build/inject_version_mappings.js +62 -0
  7. package/src/build/plugins/bundle_js_module/jsenv_plugin_bundle_js_module.js +225 -0
  8. package/src/build/plugins/minify_html/jsenv_plugin_minify_html.js +30 -0
  9. package/src/build/plugins/minify_js/jsenv_plugin_minify_js.js +47 -0
  10. package/src/dev/plugins/autoreload/babel_plugin_metadata_import_meta_hot.js +98 -0
  11. package/src/dev/plugins/autoreload/client/autoreload_preference.js +11 -0
  12. package/src/dev/plugins/autoreload/client/event_source_client.js +186 -0
  13. package/src/{internal/dev_server/event_source_client → dev/plugins/autoreload/client}/event_source_connection.js +21 -25
  14. package/src/dev/plugins/autoreload/client/import_meta_hot.js +80 -0
  15. package/src/dev/plugins/autoreload/client/reload.js +101 -0
  16. package/src/dev/plugins/autoreload/client/url_helpers.js +20 -0
  17. package/src/dev/plugins/autoreload/html_hot_dependencies.js +156 -0
  18. package/src/dev/plugins/autoreload/jsenv_plugin_autoreload.js +374 -0
  19. package/src/dev/plugins/autoreload/sse_service.js +149 -0
  20. package/src/dev/plugins/explorer/client/explorer.html +607 -0
  21. package/src/{internal → dev/plugins/explorer/client}/jsenv.png +0 -0
  22. package/src/dev/plugins/explorer/jsenv_plugin_explorer.js +74 -0
  23. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/animation/toolbar_animation.js +0 -0
  24. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/eventsource/eventsource.css +2 -2
  25. package/src/dev/plugins/toolbar/client/eventsource/toolbar_eventsource.js +57 -0
  26. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/execution/execution.css +0 -0
  27. package/src/dev/plugins/toolbar/client/execution/toolbar_execution.js +88 -0
  28. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/focus/focus.css +0 -0
  29. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/focus/toolbar_focus.js +0 -0
  30. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/jsenv_logo.svg +0 -0
  31. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/notification/toolbar_notification.js +0 -0
  32. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/responsive/overflow_menu.css +0 -0
  33. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/responsive/toolbar_responsive.js +0 -0
  34. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/settings/settings.css +0 -0
  35. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/settings/toolbar_settings.js +1 -0
  36. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/theme/jsenv_theme.css +1 -15
  37. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/theme/light_theme.css +0 -17
  38. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/theme/toolbar_theme.js +0 -0
  39. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar.html +40 -199
  40. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar_injector.js +8 -28
  41. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar_main.css +0 -24
  42. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar_main.js +10 -56
  43. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/tooltip/tooltip.css +1 -1
  44. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/tooltip/tooltip.js +0 -0
  45. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/animation.js +0 -0
  46. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/dom.js +0 -0
  47. package/src/{internal/browser_utils → dev/plugins/toolbar/client/util}/fetch_using_xhr.js +0 -0
  48. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/fetching.js +2 -4
  49. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/iframe_to_parent_href.js +0 -0
  50. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/jsenv_logger.js +0 -0
  51. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/preferences.js +0 -0
  52. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/responsive.js +0 -0
  53. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/util.js +0 -0
  54. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/variant/variant.js +0 -0
  55. package/src/dev/plugins/toolbar/jsenv_plugin_toolbar.js +62 -0
  56. package/src/dev/start_dev_server.js +105 -0
  57. package/src/execute/execute.js +132 -0
  58. package/src/execute/run.js +208 -0
  59. package/src/execute/runtimes/browsers/chromium.js +8 -0
  60. package/src/execute/runtimes/browsers/firefox.js +7 -0
  61. package/src/execute/runtimes/browsers/from_playwright.js +464 -0
  62. package/src/{browser_runtimes.js → execute/runtimes/browsers/webkit.js} +4 -18
  63. package/src/{internal/node_launcher/child_process_options.js → execute/runtimes/node/child_exec_options.js} +25 -36
  64. package/src/{internal/node_launcher/node_controllable_file.mjs → execute/runtimes/node/controllable_file.mjs} +1 -18
  65. package/src/{internal/node_launcher/node_controllable_process.js → execute/runtimes/node/controlled_process.js} +128 -150
  66. package/src/execute/runtimes/node/exec_options.js +44 -0
  67. package/src/{internal/node_launcher → execute/runtimes/node}/kill_process_tree.js +3 -1
  68. package/src/execute/runtimes/node/node_process.js +92 -0
  69. package/src/execute/runtimes/node/node_worker_thread.js +28 -0
  70. package/src/omega/core_plugins/babel/babel_helper/babel_helper_directory.js +29 -0
  71. package/src/{internal/compile_server/js → omega/core_plugins/babel/babel_helper}/babel_plugin_babel_helpers_as_jsenv_imports.js +15 -19
  72. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/.eslintrc.cjs +0 -0
  73. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/AsyncGenerator/AsyncGenerator.js +0 -0
  74. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/AwaitValue/AwaitValue.js +0 -0
  75. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/applyDecoratorDescriptor/applyDecoratorDescriptor.js +0 -0
  76. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/arrayLikeToArray/arrayLikeToArray.js +0 -0
  77. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/arrayWithHoles/arrayWithHoles.js +0 -0
  78. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/arrayWithoutHoles/arrayWithoutHoles.js +0 -0
  79. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/assertThisInitialized/assertThisInitialized.js +0 -0
  80. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/asyncGeneratorDelegate/asyncGeneratorDelegate.js +0 -0
  81. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/asyncIterator/asyncIterator.js +0 -0
  82. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/asyncToGenerator/asyncToGenerator.js +0 -0
  83. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/awaitAsyncGenerator/awaitAsyncGenerator.js +0 -0
  84. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +0 -0
  85. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classApplyDescriptorGet/classApplyDescriptorGet.js +0 -0
  86. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classApplyDescriptorSet/classApplyDescriptorSet.js +0 -0
  87. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classCallCheck/classCallCheck.js +0 -0
  88. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +0 -0
  89. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +0 -0
  90. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classExtractFieldDescriptor/classExtractFieldDescriptor.js +0 -0
  91. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classNameTDZError/classNameTDZError.js +0 -0
  92. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +0 -0
  93. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classPrivateFieldGet/classPrivateFieldGet.js +0 -0
  94. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +0 -0
  95. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +0 -0
  96. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classPrivateFieldSet/classPrivateFieldSet.js +0 -0
  97. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classPrivateMethodGet/classPrivateMethodGet.js +0 -0
  98. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classPrivateMethodSet/classPrivateMethodSet.js +0 -0
  99. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +0 -0
  100. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +0 -0
  101. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +0 -0
  102. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +0 -0
  103. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/construct/construct.js +0 -0
  104. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/createClass/createClass.js +0 -0
  105. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/createForOfIteratorHelper/createForOfIteratorHelper.js +0 -0
  106. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +0 -0
  107. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/createRawReactElement/createRawReactElement.js +0 -0
  108. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/createSuper/createSuper.js +0 -0
  109. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/decorate/decorate.js +0 -0
  110. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/defaults/defaults.js +0 -0
  111. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/defineEnumerableProperties/defineEnumerableProperties.js +0 -0
  112. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/defineProperty/defineProperty.js +0 -0
  113. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/extends/extends.js +0 -0
  114. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/get/get.js +0 -0
  115. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/getPrototypeOf/getPrototypeOf.js +0 -0
  116. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/inherits/inherits.js +0 -0
  117. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/inheritsLoose/inheritsLoose.js +0 -0
  118. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/initializerDefineProperty/initializerDefineProperty.js +0 -0
  119. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/initializerWarningHelper/initializerWarningHelper.js +0 -0
  120. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/instanceof/instanceof.js +0 -0
  121. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/interopRequireDefault/interopRequireDefault.js +0 -0
  122. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/interopRequireWildcard/interopRequireWildcard.js +0 -0
  123. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/isNativeFunction/isNativeFunction.js +0 -0
  124. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/isNativeReflectConstruct/isNativeReflectConstruct.js +0 -0
  125. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/iterableToArray/iterableToArray.js +0 -0
  126. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/iterableToArrayLimit/iterableToArrayLimit.js +0 -0
  127. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +0 -0
  128. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/jsx/jsx.js +0 -0
  129. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/maybeArrayLike/maybeArrayLike.js +0 -0
  130. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/newArrowCheck/newArrowCheck.js +0 -0
  131. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/nonIterableRest/nonIterableRest.js +0 -0
  132. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/nonIterableSpread/nonIterableSpread.js +0 -0
  133. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/objectDestructuringEmpty/objectDestructuringEmpty.js +0 -0
  134. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/objectSpread/objectSpread.js +0 -0
  135. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/objectSpread2/objectSpread2.js +0 -0
  136. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/objectWithoutProperties/objectWithoutProperties.js +0 -0
  137. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +0 -0
  138. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/possibleConstructorReturn/possibleConstructorReturn.js +0 -0
  139. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/readOnlyError/readOnlyError.js +0 -0
  140. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/readme.md +0 -0
  141. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/set/set.js +0 -0
  142. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/setPrototypeOf/setPrototypeOf.js +0 -0
  143. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/skipFirstGeneratorNext/skipFirstGeneratorNext.js +0 -0
  144. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/slicedToArray/slicedToArray.js +0 -0
  145. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/slicedToArrayLoose/slicedToArrayLoose.js +0 -0
  146. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/superPropBase/superPropBase.js +0 -0
  147. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/taggedTemplateLiteral/taggedTemplateLiteral.js +0 -0
  148. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +0 -0
  149. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/tdz/tdz.js +0 -0
  150. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/temporalRef/temporalRef.js +0 -0
  151. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/temporalUndefined/temporalUndefined.js +0 -0
  152. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/toArray/toArray.js +0 -0
  153. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/toConsumableArray/toConsumableArray.js +0 -0
  154. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/toPrimitive/toPrimitive.js +0 -0
  155. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/toPropertyKey/toPropertyKey.js +0 -0
  156. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/typeof/typeof.js +0 -0
  157. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/unsupportedIterableToArray/unsupportedIterableToArray.js +0 -0
  158. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/wrapAsyncGenerator/wrapAsyncGenerator.js +0 -0
  159. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/wrapNativeSuper/wrapNativeSuper.js +0 -0
  160. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/wrapRegExp/wrapRegExp.js +0 -0
  161. package/{helpers/babel → src/omega/core_plugins/babel/babel_helper/client}/writeOnlyError/writeOnlyError.js +0 -0
  162. package/src/omega/core_plugins/babel/global_this/babel_plugin_global_this_as_jsenv_import.js +35 -0
  163. package/{helpers/global-this/global-this.js → src/omega/core_plugins/babel/global_this/client/global_this.js} +0 -0
  164. package/src/omega/core_plugins/babel/helpers/babel_plugin_structure.js +187 -0
  165. package/src/{internal/features → omega/core_plugins/babel/helpers}/babel_plugins_compatibility.js +1 -24
  166. package/src/omega/core_plugins/babel/jsenv_plugin_babel.js +97 -0
  167. package/src/omega/core_plugins/babel/new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js +117 -0
  168. package/src/omega/core_plugins/babel/new_stylesheet/client/.eslintrc.cjs +24 -0
  169. package/{helpers/new_stylesheet → src/omega/core_plugins/babel/new_stylesheet/client}/new_stylesheet.js +0 -0
  170. package/src/omega/core_plugins/babel/regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js +34 -0
  171. package/{helpers/regenerator-runtime/regenerator-runtime.js → src/omega/core_plugins/babel/regenerator_runtime/client/regenerator_runtime.js} +0 -0
  172. package/src/omega/core_plugins/commonjs_globals/jsenv_plugin_commonjs_globals.js +169 -0
  173. package/src/omega/core_plugins/file_urls/jsenv_plugin_file_urls.js +67 -0
  174. package/src/omega/core_plugins/filesystem_magic/jsenv_plugin_filesystem_magic.js +58 -0
  175. package/src/{internal/browser_client → omega/core_plugins/html_supervisor/client}/error_in_document.js +10 -16
  176. package/src/{internal/browser_client → omega/core_plugins/html_supervisor/client}/error_in_notification.js +0 -0
  177. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_installer.js +168 -0
  178. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_setup.js +77 -0
  179. package/src/{internal/browser_client → omega/core_plugins/html_supervisor/client}/perf_browser.js +0 -0
  180. package/src/{internal/runtime_client → omega/core_plugins/html_supervisor/client}/uneval_exception.js +0 -0
  181. package/src/omega/core_plugins/html_supervisor/jsenv_plugin_html_supervisor.js +233 -0
  182. package/src/omega/core_plugins/import_assertions/helpers/babel_plugin_metadata_import_assertions.js +98 -0
  183. package/src/{internal/building/import_assertions → omega/core_plugins/import_assertions/helpers}/json_module.js +3 -2
  184. package/src/omega/core_plugins/import_assertions/helpers/text_module.js +6 -0
  185. package/src/omega/core_plugins/import_assertions/jsenv_plugin_import_assertions.js +211 -0
  186. package/src/omega/core_plugins/import_meta_scenarios/jsenv_plugin_import_meta_scenarios.js +80 -0
  187. package/src/omega/core_plugins/importmap/jsenv_plugin_importmap.js +212 -0
  188. package/src/omega/core_plugins/inline/client/inline_content.js +6 -0
  189. package/src/omega/core_plugins/inline/jsenv_plugin_data_urls.js +70 -0
  190. package/src/omega/core_plugins/inline/jsenv_plugin_inline.js +13 -0
  191. package/src/omega/core_plugins/inline/jsenv_plugin_inline_query_param.js +42 -0
  192. package/src/omega/core_plugins/inline/jsenv_plugin_js_and_css_inside_html.js +142 -0
  193. package/src/omega/core_plugins/inline/jsenv_plugin_new_inline_content.js +210 -0
  194. package/src/omega/core_plugins/leading_slash/jsenv_plugin_leading_slash.js +12 -0
  195. package/src/omega/core_plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +77 -0
  196. package/src/omega/core_plugins/url_resolution/jsenv_plugin_url_resolution.js +28 -0
  197. package/src/omega/core_plugins/url_version/jsenv_plugin_url_version.js +50 -0
  198. package/src/omega/core_plugins.js +39 -0
  199. package/src/omega/errors.js +168 -0
  200. package/src/omega/file_url_converter.js +63 -0
  201. package/src/omega/kitchen.js +777 -0
  202. package/src/omega/omega_server.js +129 -0
  203. package/src/omega/plugin_controller.js +240 -0
  204. package/src/omega/runtime_support/default_runtime_support.js +13 -0
  205. package/src/omega/runtime_support/features_compatibility.js +91 -0
  206. package/src/omega/runtime_support/runtime_support.js +20 -0
  207. package/src/omega/server/file_service.js +155 -0
  208. package/src/omega/server/user_agent.js +22 -0
  209. package/src/omega/url_graph/url_graph_load.js +68 -0
  210. package/src/omega/url_graph/url_graph_report.js +151 -0
  211. package/src/omega/url_graph/url_graph_sort.js +29 -0
  212. package/src/omega/url_graph/url_info_transformations.js +161 -0
  213. package/src/omega/url_graph.js +132 -0
  214. package/src/omega/url_mentions/css_url_mentions.js +63 -0
  215. package/src/omega/url_mentions/html_url_mentions.js +185 -0
  216. package/src/omega/url_mentions/js_module_url_mentions.js +91 -0
  217. package/src/omega/url_mentions/parse_url_mentions.js +37 -0
  218. package/src/omega/url_mentions/worker_classic_url_mentions.js +37 -0
  219. package/src/{internal/executing → test}/execute_plan.js +154 -211
  220. package/src/{execute_test_plan.js → test/execute_test_plan.js} +26 -81
  221. package/src/{internal/executing → test}/execution_colors.js +0 -0
  222. package/src/{internal/executing → test}/execution_steps.js +2 -8
  223. package/src/{internal/executing → test}/gc.js +0 -0
  224. package/src/test/logs_file_execution.js +223 -0
  225. package/dist/browser_client/asset-manifest.json +0 -4
  226. package/dist/browser_client/browser_client_fb33eaa4.js +0 -5320
  227. package/dist/browser_client/browser_client_fb33eaa4.js.map +0 -1089
  228. package/dist/build_manifest.js +0 -12
  229. package/dist/compile_proxy/asset-manifest.json +0 -4
  230. package/dist/compile_proxy/compile_proxy.html__inline__20_651d1e7b.js.map +0 -343
  231. package/dist/compile_proxy/compile_proxy_62f952c4.html +0 -2245
  232. package/dist/event_source_client/asset-manifest.json +0 -4
  233. package/dist/event_source_client/event_source_client_69f48287.js +0 -354
  234. package/dist/event_source_client/event_source_client_69f48287.js.map +0 -128
  235. package/dist/redirector/asset-manifest.json +0 -4
  236. package/dist/redirector/redirector.html__inline__12_171e07b4.js.map +0 -349
  237. package/dist/redirector/redirector_8117ec92.html +0 -2290
  238. package/dist/toolbar/asset-manifest.json +0 -13
  239. package/dist/toolbar/assets/compilation.css_7421bd55.map +0 -12
  240. package/dist/toolbar/assets/eventsource.css_c0c71e7b.map +0 -12
  241. package/dist/toolbar/assets/execution.css_f3377c10.map +0 -12
  242. package/dist/toolbar/assets/focus.css_896f3e45.map +0 -12
  243. package/dist/toolbar/assets/light_theme.css_5bff0336.map +0 -12
  244. package/dist/toolbar/assets/overflow_menu.css_9a0fc3d8.map +0 -12
  245. package/dist/toolbar/assets/settings.css_942b5a9e.map +0 -12
  246. package/dist/toolbar/assets/toolbar_main.css_b1c67dd7.map +0 -28
  247. package/dist/toolbar/assets/tooltip.css_a94a8bdd.map +0 -12
  248. package/dist/toolbar/toolbar_b0c9100c.html +0 -4976
  249. package/dist/toolbar/toolbar_main_f54c1bb0.js.map +0 -776
  250. package/dist/toolbar_injector/asset-manifest.json +0 -5
  251. package/dist/toolbar_injector/assets/jsenv_logo_192011c2.svg +0 -95
  252. package/dist/toolbar_injector/toolbar_injector_65b501eb.js +0 -976
  253. package/dist/toolbar_injector/toolbar_injector_65b501eb.js.map +0 -294
  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
@@ -1,20 +0,0 @@
1
- import { collectFiles } from "@jsenv/filesystem"
2
-
3
- export const listRelativeFileUrlToCover = async ({
4
- signal,
5
- projectDirectoryUrl,
6
- coverageConfig,
7
- }) => {
8
- const structuredMetaMapForCoverage = {
9
- cover: coverageConfig,
10
- }
11
-
12
- const matchingFileResultArray = await collectFiles({
13
- signal,
14
- directoryUrl: projectDirectoryUrl,
15
- structuredMetaMap: structuredMetaMapForCoverage,
16
- predicate: ({ cover }) => cover,
17
- })
18
-
19
- return matchingFileResultArray.map(({ relativeUrl }) => relativeUrl)
20
- }
@@ -1,46 +0,0 @@
1
- import { Abort } from "@jsenv/abort"
2
-
3
- import { listRelativeFileUrlToCover } from "./list_files_not_covered.js"
4
- import { relativeUrlToEmptyCoverage } from "./empty_coverage_factory.js"
5
-
6
- export const getMissingFileByFileCoverage = async ({
7
- signal,
8
- projectDirectoryUrl,
9
- coverageConfig,
10
- fileByFileCoverage,
11
- babelPluginMap,
12
- }) => {
13
- const relativeUrlsToCover = await listRelativeFileUrlToCover({
14
- signal,
15
- projectDirectoryUrl,
16
- coverageConfig,
17
- })
18
-
19
- const relativeUrlsMissing = relativeUrlsToCover.filter((relativeUrlToCover) =>
20
- Object.keys(fileByFileCoverage).every((key) => {
21
- return key !== `./${relativeUrlToCover}`
22
- }),
23
- )
24
-
25
- const operation = Abort.startOperation()
26
- operation.addAbortSignal(signal)
27
-
28
- const missingFileByFileCoverage = {}
29
- await relativeUrlsMissing.reduce(async (previous, relativeUrlMissing) => {
30
- operation.throwIfAborted()
31
- await previous
32
- await operation.withSignal(async (signal) => {
33
- const emptyCoverage = await relativeUrlToEmptyCoverage(
34
- relativeUrlMissing,
35
- {
36
- signal,
37
- projectDirectoryUrl,
38
- babelPluginMap,
39
- },
40
- )
41
- missingFileByFileCoverage[`./${relativeUrlMissing}`] = emptyCoverage
42
- })
43
- }, Promise.resolve())
44
-
45
- return missingFileByFileCoverage
46
- }
@@ -1,198 +0,0 @@
1
- import { readFile } from "@jsenv/filesystem"
2
- import { Abort } from "@jsenv/abort"
3
-
4
- import {
5
- visitNodeV8Directory,
6
- filterV8Coverage,
7
- } from "./v8_coverage_from_directory.js"
8
- import { composeTwoV8Coverages } from "./v8_coverage_composition.js"
9
- import { composeTwoFileByFileIstanbulCoverages } from "./istanbul_coverage_composition.js"
10
- import { v8CoverageToIstanbul } from "./v8_coverage_to_istanbul.js"
11
- import { composeV8AndIstanbul } from "./v8_and_istanbul.js"
12
- import { normalizeFileByFileCoveragePaths } from "./file_by_file_coverage.js"
13
- import { getMissingFileByFileCoverage } from "./missing_coverage.js"
14
-
15
- export const reportToCoverage = async (
16
- report,
17
- {
18
- signal,
19
- logger,
20
- projectDirectoryUrl,
21
- babelPluginMap,
22
- coverageConfig,
23
- coverageIncludeMissing,
24
- coverageIgnorePredicate,
25
- coverageForceIstanbul,
26
- coverageV8ConflictWarning,
27
- },
28
- ) => {
29
- // collect v8 and istanbul coverage from executions
30
- let { v8Coverage, fileByFileIstanbulCoverage } = await getCoverageFromReport({
31
- signal,
32
- report,
33
- onMissing: ({ file, executionResult, executionName }) => {
34
- // several reasons not to have coverage here:
35
- // 1. the file we executed did not import an instrumented file.
36
- // - a test file without import
37
- // - a test file importing only file excluded from coverage
38
- // - a coverDescription badly configured so that we don't realize
39
- // a file should be covered
40
-
41
- // 2. the file we wanted to executed timedout
42
- // - infinite loop
43
- // - too extensive operation
44
- // - a badly configured or too low allocatedMs for that execution.
45
-
46
- // 3. the file we wanted to execute contains syntax-error
47
-
48
- // in any scenario we are fine because
49
- // coverDescription will generate empty coverage for files
50
- // that were suppose to be coverage but were not.
51
- if (
52
- executionResult.status === "completed" &&
53
- executionResult.runtimeName !== "node" &&
54
- !process.env.NODE_V8_COVERAGE
55
- ) {
56
- logger.warn(
57
- `No execution.coverageFileUrl from execution named "${executionName}" of ${file}`,
58
- )
59
- }
60
- },
61
- })
62
-
63
- if (!coverageForceIstanbul && process.env.NODE_V8_COVERAGE) {
64
- await visitNodeV8Directory({
65
- logger,
66
- signal,
67
- NODE_V8_COVERAGE: process.env.NODE_V8_COVERAGE,
68
- onV8Coverage: (nodeV8Coverage) => {
69
- const nodeV8CoverageLight = filterV8Coverage(nodeV8Coverage, {
70
- coverageIgnorePredicate,
71
- })
72
- v8Coverage = v8Coverage
73
- ? composeTwoV8Coverages(v8Coverage, nodeV8CoverageLight)
74
- : nodeV8CoverageLight
75
- },
76
- })
77
- }
78
-
79
- // try to merge v8 with istanbul, if any
80
- let fileByFileCoverage
81
- if (v8Coverage) {
82
- let v8FileByFileCoverage = await v8CoverageToIstanbul(v8Coverage, {
83
- signal,
84
- })
85
-
86
- v8FileByFileCoverage = normalizeFileByFileCoveragePaths(
87
- v8FileByFileCoverage,
88
- projectDirectoryUrl,
89
- )
90
-
91
- if (fileByFileIstanbulCoverage) {
92
- fileByFileIstanbulCoverage = normalizeFileByFileCoveragePaths(
93
- fileByFileIstanbulCoverage,
94
- projectDirectoryUrl,
95
- )
96
- fileByFileCoverage = composeV8AndIstanbul(
97
- v8FileByFileCoverage,
98
- fileByFileIstanbulCoverage,
99
- { coverageV8ConflictWarning },
100
- )
101
- } else {
102
- fileByFileCoverage = v8FileByFileCoverage
103
- }
104
- }
105
- // get istanbul only
106
- else if (fileByFileIstanbulCoverage) {
107
- fileByFileCoverage = normalizeFileByFileCoveragePaths(
108
- fileByFileIstanbulCoverage,
109
- projectDirectoryUrl,
110
- )
111
- }
112
- // no coverage found in execution (or zero file where executed)
113
- else {
114
- fileByFileCoverage = {}
115
- }
116
-
117
- // now add coverage for file not covered
118
- if (coverageIncludeMissing) {
119
- const missingFileByFileCoverage = await getMissingFileByFileCoverage({
120
- signal,
121
- projectDirectoryUrl,
122
- coverageConfig,
123
- fileByFileCoverage,
124
- babelPluginMap,
125
- })
126
- Object.assign(
127
- fileByFileCoverage,
128
- normalizeFileByFileCoveragePaths(
129
- missingFileByFileCoverage,
130
- projectDirectoryUrl,
131
- ),
132
- )
133
- }
134
-
135
- return fileByFileCoverage
136
- }
137
-
138
- const getCoverageFromReport = async ({ signal, report, onMissing }) => {
139
- const operation = Abort.startOperation()
140
- operation.addAbortSignal(signal)
141
-
142
- try {
143
- let v8Coverage
144
- let fileByFileIstanbulCoverage
145
-
146
- // collect v8 and istanbul coverage from executions
147
- await Object.keys(report).reduce(async (previous, file) => {
148
- operation.throwIfAborted()
149
- await previous
150
-
151
- const executionResultForFile = report[file]
152
- await Object.keys(executionResultForFile).reduce(
153
- async (previous, executionName) => {
154
- operation.throwIfAborted()
155
- await previous
156
-
157
- const executionResultForFileOnRuntime =
158
- executionResultForFile[executionName]
159
- const { coverageFileUrl } = executionResultForFileOnRuntime
160
- if (!coverageFileUrl) {
161
- onMissing({
162
- executionName,
163
- file,
164
- executionResult: executionResultForFileOnRuntime,
165
- })
166
- return
167
- }
168
-
169
- const executionCoverage = await readFile(coverageFileUrl, {
170
- as: "json",
171
- })
172
- if (isV8Coverage(executionCoverage)) {
173
- v8Coverage = v8Coverage
174
- ? composeTwoV8Coverages(v8Coverage, executionCoverage)
175
- : executionCoverage
176
- } else {
177
- fileByFileIstanbulCoverage = fileByFileIstanbulCoverage
178
- ? composeTwoFileByFileIstanbulCoverages(
179
- fileByFileIstanbulCoverage,
180
- executionCoverage,
181
- )
182
- : executionCoverage
183
- }
184
- },
185
- Promise.resolve(),
186
- )
187
- }, Promise.resolve())
188
-
189
- return {
190
- v8Coverage,
191
- fileByFileIstanbulCoverage,
192
- }
193
- } finally {
194
- await operation.end()
195
- }
196
- }
197
-
198
- const isV8Coverage = (coverage) => Boolean(coverage.result)
@@ -1,38 +0,0 @@
1
- import { createDetailedMessage } from "@jsenv/logger"
2
-
3
- export const composeV8AndIstanbul = (
4
- v8FileByFileCoverage,
5
- istanbulFileByFileCoverage,
6
- { coverageV8ConflictWarning },
7
- ) => {
8
- const fileByFileCoverage = {}
9
- const v8Files = Object.keys(v8FileByFileCoverage)
10
- const istanbulFiles = Object.keys(istanbulFileByFileCoverage)
11
-
12
- v8Files.forEach((key) => {
13
- fileByFileCoverage[key] = v8FileByFileCoverage[key]
14
- })
15
- istanbulFiles.forEach((key) => {
16
- const v8Coverage = v8FileByFileCoverage[key]
17
- if (v8Coverage) {
18
- if (coverageV8ConflictWarning) {
19
- console.warn(
20
- createDetailedMessage(
21
- `Coverage conflict on "${key}", found two coverage that cannot be merged together: v8 and istanbul. The istanbul coverage will be ignored.`,
22
- {
23
- "details": `This happens when a file is executed on a runtime using v8 coverage (node or chromium) and on runtime using istanbul coverage (firefox or webkit)`,
24
- "suggestion":
25
- "You can disable this warning with coverageV8ConflictWarning: false",
26
- "suggestion 2": `You can force usage of istanbul to prevent this conflict with coverageForceIstanbul: true`,
27
- },
28
- ),
29
- )
30
- }
31
- fileByFileCoverage[key] = v8Coverage
32
- } else {
33
- fileByFileCoverage[key] = istanbulFileByFileCoverage[key]
34
- }
35
- })
36
-
37
- return fileByFileCoverage
38
- }
@@ -1,23 +0,0 @@
1
- import { require } from "@jsenv/core/src/internal/require.js"
2
-
3
- export const composeTwoV8Coverages = (firstV8Coverage, secondV8Coverage) => {
4
- if (secondV8Coverage.result.length === 0) {
5
- return firstV8Coverage
6
- }
7
-
8
- const { mergeProcessCovs } = require("@c88/v8-coverage")
9
- // "mergeProcessCovs" do not preserves source-map-cache during the merge
10
- // so we store sourcemap cache now
11
- const sourceMapCache = {}
12
- const visit = (coverageReport) => {
13
- if (coverageReport["source-map-cache"]) {
14
- Object.assign(sourceMapCache, coverageReport["source-map-cache"])
15
- }
16
- }
17
- visit(firstV8Coverage)
18
- visit(secondV8Coverage)
19
- const v8Coverage = mergeProcessCovs([firstV8Coverage, secondV8Coverage])
20
- v8Coverage["source-map-cache"] = sourceMapCache
21
-
22
- return v8Coverage
23
- }
@@ -1,86 +0,0 @@
1
- import {
2
- assertAndNormalizeDirectoryUrl,
3
- readDirectory,
4
- readFile,
5
- resolveUrl,
6
- } from "@jsenv/filesystem"
7
- import { createDetailedMessage } from "@jsenv/logger"
8
- import { Abort } from "@jsenv/abort"
9
-
10
- export const visitNodeV8Directory = async ({
11
- logger,
12
- signal,
13
- NODE_V8_COVERAGE,
14
- onV8Coverage,
15
- }) => {
16
- const operation = Abort.startOperation()
17
- operation.addAbortSignal(signal)
18
-
19
- const tryReadDirectory = async () => {
20
- const dirContent = await readDirectory(NODE_V8_COVERAGE)
21
- if (dirContent.length > 0) {
22
- return dirContent
23
- }
24
- logger.warn(`v8 coverage directory is empty at ${NODE_V8_COVERAGE}`)
25
- return dirContent
26
- }
27
-
28
- try {
29
- operation.throwIfAborted()
30
- const dirContent = await tryReadDirectory()
31
-
32
- const coverageDirectoryUrl =
33
- assertAndNormalizeDirectoryUrl(NODE_V8_COVERAGE)
34
- await dirContent.reduce(async (previous, dirEntry) => {
35
- operation.throwIfAborted()
36
- await previous
37
-
38
- const dirEntryUrl = resolveUrl(dirEntry, coverageDirectoryUrl)
39
- const tryReadJsonFile = async (timeSpentTrying = 0) => {
40
- const fileContent = await readFile(dirEntryUrl, { as: "string" })
41
- if (fileContent === "") {
42
- if (timeSpentTrying < 400) {
43
- await new Promise((resolve) => setTimeout(resolve, 200))
44
- return tryReadJsonFile(timeSpentTrying + 200)
45
- }
46
- console.warn(`Coverage JSON file is empty at ${dirEntryUrl}`)
47
- return null
48
- }
49
-
50
- try {
51
- const fileAsJson = JSON.parse(fileContent)
52
- return fileAsJson
53
- } catch (e) {
54
- if (timeSpentTrying < 400) {
55
- await new Promise((resolve) => setTimeout(resolve, 200))
56
- return tryReadJsonFile(timeSpentTrying + 200)
57
- }
58
- console.warn(
59
- createDetailedMessage(`Error while reading coverage file`, {
60
- "error stack": e.stack,
61
- "file": dirEntryUrl,
62
- }),
63
- )
64
- return null
65
- }
66
- }
67
-
68
- const fileContent = await tryReadJsonFile()
69
- if (fileContent) {
70
- onV8Coverage(fileContent)
71
- }
72
- }, Promise.resolve())
73
- } finally {
74
- await operation.end()
75
- }
76
- }
77
-
78
- export const filterV8Coverage = (v8Coverage, { coverageIgnorePredicate }) => {
79
- const v8CoverageFiltered = {
80
- ...v8Coverage,
81
- result: v8Coverage.result.filter((fileReport) => {
82
- return !coverageIgnorePredicate(fileReport.url)
83
- }),
84
- }
85
- return v8CoverageFiltered
86
- }
@@ -1,100 +0,0 @@
1
- import { urlToFileSystemPath } from "@jsenv/filesystem"
2
- import { Abort } from "@jsenv/abort"
3
-
4
- import { require } from "@jsenv/core/src/internal/require.js"
5
-
6
- import { composeTwoFileByFileIstanbulCoverages } from "./istanbul_coverage_composition.js"
7
-
8
- export const v8CoverageToIstanbul = async (v8Coverage, { signal }) => {
9
- const operation = Abort.startOperation()
10
- operation.addAbortSignal(signal)
11
-
12
- try {
13
- const v8ToIstanbul = require("v8-to-istanbul")
14
- const sourcemapCache = v8Coverage["source-map-cache"]
15
- let istanbulCoverageComposed = null
16
-
17
- await v8Coverage.result.reduce(async (previous, fileV8Coverage) => {
18
- operation.throwIfAborted()
19
- await previous
20
-
21
- const { source } = fileV8Coverage
22
- let sources
23
- // when v8 coverage comes from playwright (chromium) v8Coverage.source is set
24
- if (typeof source === "string") {
25
- sources = { source }
26
- }
27
- // when v8 coverage comes from Node.js, the source can be read from sourcemapCache
28
- else if (sourcemapCache) {
29
- sources = sourcesFromSourceMapCache(fileV8Coverage.url, sourcemapCache)
30
- }
31
- const path = urlToFileSystemPath(fileV8Coverage.url)
32
-
33
- const converter = v8ToIstanbul(
34
- path,
35
- // wrapperLength is undefined we don't need it
36
- // https://github.com/istanbuljs/v8-to-istanbul/blob/2b54bc97c5edf8a37b39a171ec29134ba9bfd532/lib/v8-to-istanbul.js#L27
37
- undefined,
38
- sources,
39
- )
40
- await converter.load()
41
-
42
- converter.applyCoverage(fileV8Coverage.functions)
43
- const istanbulCoverage = converter.toIstanbul()
44
-
45
- istanbulCoverageComposed = istanbulCoverageComposed
46
- ? composeTwoFileByFileIstanbulCoverages(
47
- istanbulCoverageComposed,
48
- istanbulCoverage,
49
- )
50
- : istanbulCoverage
51
- }, Promise.resolve())
52
-
53
- if (!istanbulCoverageComposed) {
54
- return {}
55
- }
56
- istanbulCoverageComposed = markAsConvertedFromV8(istanbulCoverageComposed)
57
- return istanbulCoverageComposed
58
- } finally {
59
- await operation.end()
60
- }
61
- }
62
-
63
- const markAsConvertedFromV8 = (fileByFileCoverage) => {
64
- const fileByFileMarked = {}
65
- Object.keys(fileByFileCoverage).forEach((key) => {
66
- const fileCoverage = fileByFileCoverage[key]
67
- fileByFileMarked[key] = {
68
- ...fileCoverage,
69
- fromV8: true,
70
- }
71
- })
72
- return fileByFileMarked
73
- }
74
-
75
- const sourcesFromSourceMapCache = (url, sourceMapCache) => {
76
- const sourceMapAndLineLengths = sourceMapCache[url]
77
- if (!sourceMapAndLineLengths) {
78
- return {}
79
- }
80
-
81
- const { data, lineLengths } = sourceMapAndLineLengths
82
- // See: https://github.com/nodejs/node/pull/34305
83
- if (!data) {
84
- return undefined
85
- }
86
-
87
- const sources = {
88
- sourcemap: data,
89
- ...(lineLengths ? { source: sourcesFromLineLengths(lineLengths) } : {}),
90
- }
91
- return sources
92
- }
93
-
94
- const sourcesFromLineLengths = (lineLengths) => {
95
- let source = ""
96
- lineLengths.forEach((length) => {
97
- source += `${"".padEnd(length, ".")}\n`
98
- })
99
- return source
100
- }
@@ -1,54 +0,0 @@
1
- /* eslint-env browser, node */
2
-
3
- export const DataUrl = {
4
- parse: (string, { as = "raw" } = {}) => {
5
- const afterDataProtocol = string.slice("data:".length)
6
- const commaIndex = afterDataProtocol.indexOf(",")
7
- const beforeComma = afterDataProtocol.slice(0, commaIndex)
8
-
9
- let mediaType
10
- let base64Flag
11
- if (beforeComma.endsWith(`;base64`)) {
12
- mediaType = beforeComma.slice(0, -`;base64`.length)
13
- base64Flag = true
14
- } else {
15
- mediaType = beforeComma
16
- base64Flag = false
17
- }
18
-
19
- const afterComma = afterDataProtocol.slice(commaIndex + 1)
20
- return {
21
- mediaType: mediaType === "" ? "text/plain;charset=US-ASCII" : mediaType,
22
- base64Flag,
23
- data:
24
- as === "string" && base64Flag ? base64ToString(afterComma) : afterComma,
25
- }
26
- },
27
-
28
- stringify: ({ mediaType, base64Flag = true, data }) => {
29
- if (!mediaType || mediaType === "text/plain;charset=US-ASCII") {
30
- // can be a buffer or a string, hence check on data.length instead of !data or data === ''
31
- if (data.length === 0) {
32
- return `data:,`
33
- }
34
- if (base64Flag) {
35
- return `data:,${data}`
36
- }
37
- return `data:,${dataToBase64(data)}`
38
- }
39
- if (base64Flag) {
40
- return `data:${mediaType};base64,${dataToBase64(data)}`
41
- }
42
- return `data:${mediaType},${data}`
43
- },
44
- }
45
-
46
- const dataToBase64 =
47
- typeof window === "object"
48
- ? window.atob
49
- : (data) => Buffer.from(data).toString("base64")
50
-
51
- const base64ToString =
52
- typeof window === "object"
53
- ? window.btoa
54
- : (base64String) => Buffer.from(base64String, "base64").toString("utf8")
@@ -1,63 +0,0 @@
1
- /* eslint-env browser */
2
-
3
- import { createEventSourceConnection } from "./event_source_connection.js"
4
- import {
5
- getFileChanges,
6
- addFileChange,
7
- setFileChangeCallback,
8
- reloadIfNeeded,
9
- } from "./file_changes.js"
10
- import {
11
- isLivereloadEnabled,
12
- setLivereloadPreference,
13
- } from "./livereload_preference.js"
14
-
15
- const eventsourceConnection = createEventSourceConnection(
16
- document.location.href,
17
- {
18
- "file-added": ({ data }) => {
19
- addFileChange({
20
- file: data,
21
- eventType: "added",
22
- })
23
- },
24
- "file-modified": ({ data }) => {
25
- addFileChange({
26
- file: data,
27
- eventType: "modified",
28
- })
29
- },
30
- "file-removed": ({ data }) => {
31
- addFileChange({
32
- file: data,
33
- eventType: "removed",
34
- })
35
- },
36
- },
37
- {
38
- retryMaxAttempt: Infinity,
39
- retryAllocatedMs: 20 * 1000,
40
- },
41
- )
42
-
43
- const {
44
- connect,
45
- disconnect,
46
- setConnectionStatusChangeCallback,
47
- getConnectionStatus,
48
- } = eventsourceConnection
49
-
50
- connect()
51
-
52
- window.__jsenv_event_source_client__ = {
53
- connect,
54
- disconnect,
55
- getConnectionStatus,
56
- setConnectionStatusChangeCallback,
57
- getFileChanges,
58
- addFileChange,
59
- setFileChangeCallback,
60
- reloadIfNeeded,
61
- isLivereloadEnabled,
62
- setLivereloadPreference,
63
- }