@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,369 +0,0 @@
1
- import { createSSERoom } from "@jsenv/server"
2
- import {
3
- resolveUrl,
4
- registerDirectoryLifecycle,
5
- urlToExtension,
6
- urlIsInsideOf,
7
- urlToRelativeUrl,
8
- } from "@jsenv/filesystem"
9
- import { createLogger } from "@jsenv/logger"
10
- import { createCallbackList } from "@jsenv/abort"
11
-
12
- import { urlIsCompilationAsset } from "@jsenv/core/src/internal/compile_server/jsenv_directory/compile_asset.js"
13
-
14
- export const createSSEService = ({
15
- projectDirectoryUrl,
16
- jsenvDirectoryRelativeUrl,
17
- livereloadSSE,
18
- projectFileRequestedSignal,
19
-
20
- serverStopCallbackList,
21
- livereloadLogLevel,
22
- livereloadWatchConfig,
23
- }) => {
24
- let handleSSEClientRequest
25
- if (livereloadSSE) {
26
- handleSSEClientRequest = createSSEServiceWithLivereload({
27
- projectDirectoryUrl,
28
- jsenvDirectoryRelativeUrl,
29
- projectFileRequestedSignal,
30
-
31
- serverStopCallbackList,
32
- livereloadLogLevel,
33
- livereloadWatchConfig,
34
- })
35
- } else {
36
- const roomWhenLivereloadIsDisabled = createSSERoom()
37
- roomWhenLivereloadIsDisabled.open()
38
- handleSSEClientRequest = (request) => {
39
- return roomWhenLivereloadIsDisabled.join(request)
40
- }
41
- }
42
- return (request) => {
43
- const { accept } = request.headers
44
- if (!accept || !accept.includes("text/event-stream")) {
45
- return null
46
- }
47
- return handleSSEClientRequest(request)
48
- }
49
- }
50
-
51
- const createSSEServiceWithLivereload = ({
52
- projectDirectoryUrl,
53
- jsenvDirectoryRelativeUrl,
54
-
55
- projectFileRequestedSignal,
56
- serverStopCallbackList,
57
- livereloadLogLevel,
58
- livereloadWatchConfig,
59
- }) => {
60
- const livereloadLogger = createLogger({ logLevel: livereloadLogLevel })
61
- const trackerMap = new Map()
62
- const projectFileRequested = createCallbackList()
63
- const projectFileModified = createCallbackList()
64
- const projectFileRemoved = createCallbackList()
65
- const projectFileAdded = createCallbackList()
66
-
67
- /**
68
- * projectFileRequestedCallback
69
- * This function will be called by the compile server every time a file inside projectDirectory
70
- * is requested so that we can build up the dependency tree of any file
71
- *
72
- */
73
- projectFileRequestedSignal.onrequested = (relativeUrl, request) => {
74
- if (relativeUrl[0] === "/") {
75
- relativeUrl = relativeUrl.slice(1)
76
- }
77
- const url = `${projectDirectoryUrl}${relativeUrl}`
78
- if (
79
- // Do not watch sourcemap files
80
- urlToExtension(url) === ".map" ||
81
- // Do not watch compilation asset, watching source file is enough
82
- urlIsCompilationAsset(url)
83
- ) {
84
- return
85
- }
86
- projectFileRequested.notify({ relativeUrl, request })
87
- }
88
- const watchDescription = {
89
- ...livereloadWatchConfig,
90
- [jsenvDirectoryRelativeUrl]: false,
91
- }
92
- // wait 100ms to actually start watching
93
- // otherwise server starting is delayed by the filesystem scan done in
94
- // registerDirectoryLifecycle
95
- const timeout = setTimeout(() => {
96
- const unregisterDirectoryLifecyle = registerDirectoryLifecycle(
97
- projectDirectoryUrl,
98
- {
99
- watchDescription,
100
- updated: ({ relativeUrl }) => {
101
- projectFileModified.notify(relativeUrl)
102
- },
103
- removed: ({ relativeUrl }) => {
104
- projectFileRemoved.notify(relativeUrl)
105
- },
106
- added: ({ relativeUrl }) => {
107
- projectFileAdded.notify(relativeUrl)
108
- },
109
- keepProcessAlive: false,
110
- recursive: true,
111
- },
112
- )
113
- serverStopCallbackList.add(unregisterDirectoryLifecyle)
114
- }, 100)
115
- serverStopCallbackList.add(() => {
116
- clearTimeout(timeout)
117
- })
118
-
119
- const startTrackingRoot = (rootFile) => {
120
- stopTrackingRoot(rootFile)
121
- const set = new Set()
122
- set.add(rootFile)
123
- const depInfo = {
124
- set,
125
- cleanup: [],
126
- }
127
- trackerMap.set(rootFile, depInfo)
128
- return depInfo
129
- }
130
- const addStopTrackingCalback = (rootFile, callback) => {
131
- trackerMap.get(rootFile).cleanup.push(callback)
132
- }
133
- const stopTrackingRoot = (rootFile) => {
134
- const depInfo = trackerMap.get(rootFile)
135
- if (depInfo) {
136
- depInfo.cleanup.forEach((cb) => {
137
- cb()
138
- })
139
- trackerMap.delete(rootFile)
140
- }
141
- }
142
- const isDependencyOf = (file, rootFile) => {
143
- const depInfo = trackerMap.get(rootFile)
144
- return depInfo && depInfo.set.has(file)
145
- }
146
- const markAsDependencyOf = (file, rootFile) => {
147
- trackerMap.get(rootFile).set.add(file)
148
- }
149
-
150
- // each time a file is requested for the first time its dependencySet is computed
151
- projectFileRequested.add((requestInfo) => {
152
- const rootRelativeUrl = requestInfo.relativeUrl
153
- // for now no use case of livereloading on node.js
154
- // and for browsers only html file can be main files
155
- // this avoid collecting dependencies of non html files that will never be used
156
- if (!rootRelativeUrl.endsWith(".html")) {
157
- return
158
- }
159
-
160
- livereloadLogger.debug(`${rootRelativeUrl} requested -> start tracking it`)
161
- // when a file is requested, always rebuild its dependency in case it has changed
162
- // since the last time it was requested
163
- startTrackingRoot(rootRelativeUrl)
164
-
165
- const removeDependencyRequestedCallback = projectFileRequested.add(
166
- ({ relativeUrl, request }) => {
167
- if (isDependencyOf(relativeUrl, rootRelativeUrl)) {
168
- return
169
- }
170
- const dependencyReport = reportDependency(
171
- relativeUrl,
172
- rootRelativeUrl,
173
- request,
174
- )
175
- if (dependencyReport.dependency === false) {
176
- livereloadLogger.debug(
177
- `${relativeUrl} not a dependency of ${rootRelativeUrl} because ${dependencyReport.reason}`,
178
- )
179
- return
180
- }
181
- livereloadLogger.debug(
182
- `${relativeUrl} is a dependency of ${rootRelativeUrl} because ${dependencyReport.reason}`,
183
- )
184
- markAsDependencyOf(relativeUrl, rootRelativeUrl)
185
- },
186
- )
187
- addStopTrackingCalback(rootRelativeUrl, removeDependencyRequestedCallback)
188
- const removeRootRemovedCallback = projectFileRemoved.add((relativeUrl) => {
189
- if (relativeUrl === rootRelativeUrl) {
190
- stopTrackingRoot(rootRelativeUrl)
191
- livereloadLogger.debug(`${rootRelativeUrl} removed -> stop tracking it`)
192
- }
193
- })
194
- addStopTrackingCalback(rootRelativeUrl, removeRootRemovedCallback)
195
- })
196
-
197
- /**
198
- * trackMainAndDependencies
199
- * This function is meant to be used to implement server sent events in order for a client to know
200
- * when a given file or any of its dependencies changes in order to implement livereloading.
201
- * At any time this function can be called with (mainRelativeUrl, { modified, removed, lastEventId })
202
- * modified is called
203
- * - immediatly if lastEventId is passed and mainRelativeUrl or any of its dependencies have
204
- * changed since that event (last change is passed to modified if their is more than one change)
205
- * - when mainRelativeUrl or any of its dependencies is modified
206
- * removed is called
207
- * - with same spec as modified but when a file is deleted from the filesystem instead of modified
208
- */
209
- const trackMainAndDependencies = (
210
- mainRelativeUrl,
211
- { modified, removed, added },
212
- ) => {
213
- livereloadLogger.debug(`track ${mainRelativeUrl} and its dependencies`)
214
-
215
- const removeModifiedCallback = projectFileModified.add((relativeUrl) => {
216
- if (isDependencyOf(relativeUrl, mainRelativeUrl)) {
217
- modified(relativeUrl)
218
- }
219
- })
220
- const removeRemovedCallback = projectFileRemoved.add((relativeUrl) => {
221
- if (isDependencyOf(relativeUrl, mainRelativeUrl)) {
222
- removed(relativeUrl)
223
- }
224
- })
225
- const removeAddedCallback = projectFileAdded.add((relativeUrl) => {
226
- if (isDependencyOf(relativeUrl, mainRelativeUrl)) {
227
- added(relativeUrl)
228
- }
229
- })
230
-
231
- return () => {
232
- livereloadLogger.debug(
233
- `stop tracking ${mainRelativeUrl} and its dependencies.`,
234
- )
235
- removeModifiedCallback()
236
- removeRemovedCallback()
237
- removeAddedCallback()
238
- }
239
- }
240
-
241
- const reportDependency = (relativeUrl, mainRelativeUrl, request) => {
242
- if (relativeUrl === mainRelativeUrl) {
243
- return {
244
- dependency: true,
245
- reason: "it's main",
246
- }
247
- }
248
-
249
- if ("x-jsenv-execution-id" in request.headers) {
250
- const executionId = request.headers["x-jsenv-execution-id"]
251
- if (executionId === mainRelativeUrl) {
252
- return {
253
- dependency: true,
254
- reason: "x-jsenv-execution-id request header",
255
- }
256
- }
257
- return {
258
- dependency: false,
259
- reason: "x-jsenv-execution-id request header",
260
- }
261
- }
262
-
263
- const { referer } = request.headers
264
- if (referer) {
265
- // here we know the referer is inside compileServer
266
- const refererRelativeUrl = urlToOriginalRelativeUrl(
267
- referer,
268
- resolveUrl(jsenvDirectoryRelativeUrl, request.origin),
269
- )
270
- if (refererRelativeUrl) {
271
- // search if referer (file requesting this one) is tracked as being a dependency of main file
272
- // in that case because the importer is a dependency the importee is also a dependency
273
- // eslint-disable-next-line no-unused-vars
274
- for (const tracker of trackerMap) {
275
- if (
276
- tracker[0] === mainRelativeUrl &&
277
- tracker[1].set.has(refererRelativeUrl)
278
- ) {
279
- return {
280
- dependency: true,
281
- reason: "referer is a dependency",
282
- }
283
- }
284
- }
285
- }
286
- }
287
-
288
- return {
289
- dependency: true,
290
- reason: "it was requested",
291
- }
292
- }
293
-
294
- const cache = []
295
- const sseRoomLimit = 100
296
- const getOrCreateSSERoom = (mainFileRelativeUrl) => {
297
- const cacheEntry = cache.find(
298
- (cacheEntryCandidate) =>
299
- cacheEntryCandidate.mainFileRelativeUrl === mainFileRelativeUrl,
300
- )
301
- if (cacheEntry) {
302
- return cacheEntry.sseRoom
303
- }
304
-
305
- const sseRoom = createSSERoom({
306
- retryDuration: 2000,
307
- historyLength: 100,
308
- welcomeEventEnabled: true,
309
- })
310
-
311
- // each time something is modified or removed we send event to the room
312
- const stopTracking = trackMainAndDependencies(mainFileRelativeUrl, {
313
- modified: (relativeUrl) => {
314
- sseRoom.sendEvent({ type: "file-modified", data: relativeUrl })
315
- },
316
- removed: (relativeUrl) => {
317
- sseRoom.sendEvent({ type: "file-removed", data: relativeUrl })
318
- },
319
- added: (relativeUrl) => {
320
- sseRoom.sendEvent({ type: "file-added", data: relativeUrl })
321
- },
322
- })
323
-
324
- const removeSSECleanupCallback = serverStopCallbackList.add(() => {
325
- removeSSECleanupCallback()
326
- sseRoom.close()
327
- stopTracking()
328
- })
329
- cache.push({
330
- mainFileRelativeUrl,
331
- sseRoom,
332
- cleanup: () => {
333
- removeSSECleanupCallback()
334
- sseRoom.close()
335
- stopTracking()
336
- },
337
- })
338
- if (cache.length >= sseRoomLimit) {
339
- const firstCacheEntry = cache.shift()
340
- firstCacheEntry.cleanup()
341
- }
342
- return sseRoom
343
- }
344
-
345
- return (request) => {
346
- const requestUrl = resolveUrl(request.ressource, request.origin)
347
- const outDirectoryServerUrl = resolveUrl(
348
- jsenvDirectoryRelativeUrl,
349
- request.origin,
350
- )
351
- const originalRelativeUrl = urlToOriginalRelativeUrl(
352
- requestUrl,
353
- outDirectoryServerUrl,
354
- )
355
- const room = getOrCreateSSERoom(originalRelativeUrl)
356
- return room.join(request)
357
- }
358
- }
359
-
360
- const urlToOriginalRelativeUrl = (url, outDirectoryRemoteUrl) => {
361
- if (urlIsInsideOf(url, outDirectoryRemoteUrl)) {
362
- const afterCompileDirectory = urlToRelativeUrl(url, outDirectoryRemoteUrl)
363
- const fileRelativeUrl = afterCompileDirectory.slice(
364
- afterCompileDirectory.indexOf("/") + 1,
365
- )
366
- return fileRelativeUrl
367
- }
368
- return new URL(url).pathname.slice(1)
369
- }
@@ -1,90 +0,0 @@
1
- import {
2
- resolveUrl,
3
- normalizeStructuredMetaMap,
4
- urlToMeta,
5
- } from "@jsenv/filesystem"
6
-
7
- import { require } from "@jsenv/core/src/internal/require.js"
8
-
9
- // https://github.com/istanbuljs/babel-plugin-istanbul/blob/321740f7b25d803f881466ea819d870f7ed6a254/src/index.js
10
-
11
- export const babelPluginInstrument = (api, options) => {
12
- const { programVisitor } = require("istanbul-lib-instrument")
13
-
14
- const { types } = api
15
- const {
16
- useInlineSourceMaps = false,
17
- projectDirectoryUrl,
18
- coverageConfig = { "./**/*": true },
19
- } = options
20
-
21
- const structuredMetaMapForCover = normalizeStructuredMetaMap(
22
- {
23
- cover: coverageConfig,
24
- },
25
- projectDirectoryUrl,
26
- )
27
- const shouldInstrument = (relativeUrl) => {
28
- return urlToMeta({
29
- url: resolveUrl(relativeUrl, projectDirectoryUrl),
30
- structuredMetaMap: structuredMetaMapForCover,
31
- }).cover
32
- }
33
-
34
- return {
35
- name: "transform-instrument",
36
- visitor: {
37
- Program: {
38
- enter(path) {
39
- const { file } = this
40
- const { opts } = file
41
-
42
- const relativeUrl = optionsToRelativeUrl(opts)
43
- if (!relativeUrl) {
44
- console.warn("file without relativeUrl", relativeUrl)
45
- return
46
- }
47
- if (!shouldInstrument(relativeUrl)) return
48
-
49
- this.__dv__ = null
50
-
51
- let inputSourceMap
52
-
53
- if (useInlineSourceMaps) {
54
- // https://github.com/istanbuljs/babel-plugin-istanbul/commit/a9e15643d249a2985e4387e4308022053b2cd0ad#diff-1fdf421c05c1140f6d71444ea2b27638R65
55
- inputSourceMap =
56
- opts.inputSourceMap || file.inputMap
57
- ? file.inputMap.sourcemap
58
- : null
59
- } else {
60
- inputSourceMap = opts.inputSourceMap
61
- }
62
-
63
- this.__dv__ = programVisitor(
64
- types,
65
- opts.filenameRelative || opts.filename,
66
- {
67
- coverageVariable: "__coverage__",
68
- inputSourceMap,
69
- },
70
- )
71
- this.__dv__.enter(path)
72
- },
73
-
74
- exit(path) {
75
- if (!this.__dv__) {
76
- return
77
- }
78
- const object = this.__dv__.exit(path)
79
- // object got two properties: fileCoverage and sourceMappingURL
80
- this.file.metadata.coverage = object.fileCoverage
81
- },
82
- },
83
- },
84
- }
85
- }
86
-
87
- const optionsToRelativeUrl = ({ filenameRelative }) => {
88
- if (filenameRelative) return filenameRelative
89
- return ""
90
- }
@@ -1,37 +0,0 @@
1
- import { readFileSync } from "node:fs"
2
- import { resolveUrl, urlToFileSystemPath } from "@jsenv/filesystem"
3
-
4
- import { require } from "@jsenv/core/src/internal/require.js"
5
-
6
- import { istanbulCoverageMapFromCoverage } from "./istanbul_coverage_map_from_coverage.js"
7
-
8
- export const generateCoverageHtmlDirectory = async (
9
- coverage,
10
- {
11
- projectDirectoryUrl,
12
- coverageHtmlDirectoryRelativeUrl,
13
- coverageSkipEmpty,
14
- coverageSkipFull,
15
- },
16
- ) => {
17
- const libReport = require("istanbul-lib-report")
18
- const reports = require("istanbul-reports")
19
-
20
- const context = libReport.createContext({
21
- dir: urlToFileSystemPath(projectDirectoryUrl),
22
- coverageMap: istanbulCoverageMapFromCoverage(coverage),
23
- sourceFinder: (path) => {
24
- return readFileSync(
25
- urlToFileSystemPath(resolveUrl(path, projectDirectoryUrl)),
26
- "utf8",
27
- )
28
- },
29
- })
30
-
31
- const report = reports.create("html", {
32
- skipEmpty: coverageSkipEmpty,
33
- skipFull: coverageSkipFull,
34
- subdir: coverageHtmlDirectoryRelativeUrl,
35
- })
36
- report.execute(context)
37
- }
@@ -1,22 +0,0 @@
1
- import { writeFile, urlToFileSystemPath } from "@jsenv/filesystem"
2
-
3
- import { byteAsFileSize } from "@jsenv/core/src/internal/logs/byte_as_file_size.js"
4
-
5
- export const generateCoverageJsonFile = async ({
6
- coverage,
7
- coverageJsonFileUrl,
8
- coverageJsonFileLog,
9
- logger,
10
- }) => {
11
- const coverageAsText = JSON.stringify(coverage, null, " ")
12
-
13
- if (coverageJsonFileLog) {
14
- logger.info(
15
- `-> ${urlToFileSystemPath(coverageJsonFileUrl)} (${byteAsFileSize(
16
- Buffer.byteLength(coverageAsText),
17
- )})`,
18
- )
19
- }
20
-
21
- await writeFile(coverageJsonFileUrl, coverageAsText)
22
- }
@@ -1,20 +0,0 @@
1
- import { require } from "@jsenv/core/src/internal/require.js"
2
-
3
- import { istanbulCoverageMapFromCoverage } from "./istanbul_coverage_map_from_coverage.js"
4
-
5
- export const generateCoverageTextLog = (
6
- coverage,
7
- { coverageSkipEmpty, coverageSkipFull },
8
- ) => {
9
- const libReport = require("istanbul-lib-report")
10
- const reports = require("istanbul-reports")
11
-
12
- const context = libReport.createContext({
13
- coverageMap: istanbulCoverageMapFromCoverage(coverage),
14
- })
15
- const report = reports.create("text", {
16
- skipEmpty: coverageSkipEmpty,
17
- skipFull: coverageSkipFull,
18
- })
19
- report.execute(context)
20
- }
@@ -1,70 +0,0 @@
1
- import { require } from "@jsenv/core/src/internal/require.js"
2
-
3
- import { resolveUrl, urlToFileSystemPath, readFile } from "@jsenv/filesystem"
4
- import { Abort } from "@jsenv/abort"
5
-
6
- import {
7
- babelPluginsFromBabelPluginMap,
8
- getMinimalBabelPluginMap,
9
- } from "@jsenv/core/src/internal/compile_server/js/babel_plugins.js"
10
-
11
- import { babelPluginInstrument } from "./babel_plugin_instrument.js"
12
-
13
- export const relativeUrlToEmptyCoverage = async (
14
- relativeUrl,
15
- { signal, projectDirectoryUrl, babelPluginMap },
16
- ) => {
17
- const operation = Abort.startOperation()
18
- operation.addAbortSignal(signal)
19
-
20
- try {
21
- const { transformAsync } = await import("@babel/core")
22
- const fileUrl = resolveUrl(relativeUrl, projectDirectoryUrl)
23
- const source = await readFile(fileUrl)
24
-
25
- babelPluginMap = {
26
- ...getMinimalBabelPluginMap(),
27
- ...babelPluginMap,
28
- "transform-instrument": [babelPluginInstrument, { projectDirectoryUrl }],
29
- }
30
-
31
- operation.throwIfAborted()
32
- const { metadata } = await transformAsync(source, {
33
- filename: urlToFileSystemPath(fileUrl),
34
- filenameRelative: relativeUrl,
35
- configFile: false,
36
- babelrc: false,
37
- ast: true,
38
- parserOpts: {
39
- allowAwaitOutsideFunction: true,
40
- },
41
- plugins: babelPluginsFromBabelPluginMap(babelPluginMap),
42
- })
43
-
44
- const { coverage } = metadata
45
- if (!coverage) {
46
- throw new Error(`missing coverage for file`)
47
- }
48
-
49
- // https://github.com/gotwarlost/istanbul/blob/bc84c315271a5dd4d39bcefc5925cfb61a3d174a/lib/command/common/run-with-cover.js#L229
50
- Object.keys(coverage.s).forEach(function (key) {
51
- coverage.s[key] = 0
52
- })
53
-
54
- return coverage
55
- } catch (e) {
56
- if (e && e.code === "BABEL_PARSE_ERROR") {
57
- // return an empty coverage for that file when
58
- // it contains a syntax error
59
- return createEmptyCoverage(relativeUrl)
60
- }
61
- throw e
62
- } finally {
63
- await operation.end()
64
- }
65
- }
66
-
67
- const createEmptyCoverage = (relativeUrl) => {
68
- const { createFileCoverage } = require("istanbul-lib-coverage")
69
- return createFileCoverage(relativeUrl).toJSON()
70
- }
@@ -1,28 +0,0 @@
1
- import {
2
- urlToRelativeUrl,
3
- fileSystemPathToUrl,
4
- isFileSystemPath,
5
- resolveUrl,
6
- } from "@jsenv/filesystem"
7
-
8
- export const normalizeFileByFileCoveragePaths = (
9
- fileByFileCoverage,
10
- projectDirectoryUrl,
11
- ) => {
12
- const fileByFileNormalized = {}
13
-
14
- Object.keys(fileByFileCoverage).forEach((key) => {
15
- const fileCoverage = fileByFileCoverage[key]
16
- const { path } = fileCoverage
17
- const url = isFileSystemPath(path)
18
- ? fileSystemPathToUrl(path)
19
- : resolveUrl(path, projectDirectoryUrl)
20
- const relativeUrl = urlToRelativeUrl(url, projectDirectoryUrl)
21
- fileByFileNormalized[`./${relativeUrl}`] = {
22
- ...fileCoverage,
23
- path: `./${relativeUrl}`,
24
- }
25
- })
26
-
27
- return fileByFileNormalized
28
- }
@@ -1,28 +0,0 @@
1
- import { require } from "@jsenv/core/src/internal/require.js"
2
-
3
- export const composeTwoFileByFileIstanbulCoverages = (
4
- firstFileByFileIstanbulCoverage,
5
- secondFileByFileIstanbulCoverage,
6
- ) => {
7
- const fileByFileIstanbulCoverage = {}
8
- Object.keys(firstFileByFileIstanbulCoverage).forEach((key) => {
9
- fileByFileIstanbulCoverage[key] = firstFileByFileIstanbulCoverage[key]
10
- })
11
- Object.keys(secondFileByFileIstanbulCoverage).forEach((key) => {
12
- const firstCoverage = firstFileByFileIstanbulCoverage[key]
13
- const secondCoverage = secondFileByFileIstanbulCoverage[key]
14
- fileByFileIstanbulCoverage[key] = firstCoverage
15
- ? merge(firstCoverage, secondCoverage)
16
- : secondCoverage
17
- })
18
-
19
- return fileByFileIstanbulCoverage
20
- }
21
-
22
- const merge = (firstIstanbulCoverage, secondIstanbulCoverage) => {
23
- const { createFileCoverage } = require("istanbul-lib-coverage")
24
- const istanbulFileCoverageObject = createFileCoverage(firstIstanbulCoverage)
25
- istanbulFileCoverageObject.merge(secondIstanbulCoverage)
26
- const istanbulCoverage = istanbulFileCoverageObject.toJSON()
27
- return istanbulCoverage
28
- }
@@ -1,16 +0,0 @@
1
- import { require } from "@jsenv/core/src/internal/require.js"
2
-
3
- export const istanbulCoverageMapFromCoverage = (coverage) => {
4
- const { createCoverageMap } = require("istanbul-lib-coverage")
5
-
6
- const coverageAdjusted = {}
7
- Object.keys(coverage).forEach((key) => {
8
- coverageAdjusted[key.slice(2)] = {
9
- ...coverage[key],
10
- path: key.slice(2),
11
- }
12
- })
13
-
14
- const coverageMap = createCoverageMap(coverageAdjusted)
15
- return coverageMap
16
- }