@jsenv/core 25.6.2 → 27.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/main.js +18 -20
  2. package/package.json +38 -73
  3. package/readme.md +32 -44
  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/animation/toolbar.animation.js → 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/focus/toolbar.focus.js → dev/plugins/toolbar/client/focus/toolbar_focus.js} +0 -0
  30. package/src/{internal/dev_server/toolbar/jsenv-logo.svg → dev/plugins/toolbar/client/jsenv_logo.svg} +1 -1
  31. package/src/{internal/dev_server/toolbar/notification/toolbar.notification.js → dev/plugins/toolbar/client/notification/toolbar_notification.js} +0 -0
  32. package/src/{internal/dev_server/toolbar/responsive/overflow-menu.css → dev/plugins/toolbar/client/responsive/overflow_menu.css} +0 -0
  33. package/src/{internal/dev_server/toolbar/responsive/toolbar.responsive.js → 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/settings/toolbar.settings.js → dev/plugins/toolbar/client/settings/toolbar_settings.js} +1 -0
  36. package/src/{internal/dev_server/toolbar/theme/jsenv-theme.css → dev/plugins/toolbar/client/theme/jsenv_theme.css} +1 -15
  37. package/src/{internal/dev_server/toolbar/theme/light-theme.css → dev/plugins/toolbar/client/theme/light_theme.css} +0 -17
  38. package/src/{internal/dev_server/toolbar/theme/toolbar.theme.js → dev/plugins/toolbar/client/theme/toolbar_theme.js} +0 -0
  39. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar.html +42 -201
  40. package/src/{internal/dev_server/toolbar/toolbar.injector.js → dev/plugins/toolbar/client/toolbar_injector.js} +10 -29
  41. package/src/{internal/dev_server/toolbar/toolbar.main.css → dev/plugins/toolbar/client/toolbar_main.css} +2 -26
  42. package/src/{internal/dev_server/toolbar/toolbar.main.js → dev/plugins/toolbar/client/toolbar_main.js} +18 -64
  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/fetchUsingXHR.js → dev/plugins/toolbar/client/util/fetch_using_xhr.js} +0 -2
  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/util/jsenvLogger.js → 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/execute/runtimes/browsers/webkit.js +24 -0
  63. package/src/{internal/node_launcher/createChildProcessOptions.js → execute/runtimes/node/child_exec_options.js} +25 -36
  64. package/src/{internal/node_runtime/nodeControllableFile.mjs → execute/runtimes/node/controllable_file.mjs} +1 -18
  65. package/src/{internal/node_launcher/createControllableNodeProcess.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 +4 -2
  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/compiling/js-compilation-service → omega/core_plugins/babel/babel_helper}/babel_plugin_babel_helpers_as_jsenv_imports.js +16 -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_runtime/displayErrorInDocument.js → omega/core_plugins/html_supervisor/client/error_in_document.js} +10 -18
  176. package/src/{internal/browser_runtime/displayErrorNotification.js → omega/core_plugins/html_supervisor/client/error_in_notification.js} +0 -1
  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 → omega/core_plugins/html_supervisor/client}/perf_browser.js +0 -2
  180. package/src/{internal/unevalException.js → omega/core_plugins/html_supervisor/client/uneval_exception.js} +1 -1
  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 → 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/executePlan.js → test/execute_plan.js} +159 -213
  220. package/src/{executeTestPlan.js → test/execute_test_plan.js} +36 -84
  221. package/src/{internal/executing → test}/execution_colors.js +0 -0
  222. package/src/{internal/executing/generateFileExecutionSteps.js → test/execution_steps.js} +25 -4
  223. package/src/{internal/executing → test}/gc.js +0 -0
  224. package/src/test/logs_file_execution.js +223 -0
  225. package/dist/browser_runtime/asset-manifest.json +0 -4
  226. package/dist/browser_runtime/browser_runtime_c81cd9af.js +0 -5300
  227. package/dist/browser_runtime/browser_runtime_c81cd9af.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_c05fdc30.js.map +0 -343
  231. package/dist/compile_proxy/compile_proxy_93ec4247.html +0 -2247
  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_20421b23.js.map +0 -349
  237. package/dist/redirector/redirector_ddc79416.html +0 -2292
  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_72a60fa3.map +0 -12
  244. package/dist/toolbar/assets/overflow-menu.css_2859d519.map +0 -12
  245. package/dist/toolbar/assets/settings.css_942b5a9e.map +0 -12
  246. package/dist/toolbar/assets/toolbar.main.css_b7d8bec1.map +0 -28
  247. package/dist/toolbar/assets/tooltip.css_a94a8bdd.map +0 -12
  248. package/dist/toolbar/toolbar.main_7d7783d3.js.map +0 -776
  249. package/dist/toolbar/toolbar_d6045dd0.html +0 -4978
  250. package/dist/toolbar_injector/asset-manifest.json +0 -5
  251. package/dist/toolbar_injector/assets/jsenv-logo_188b9ca6.svg +0 -95
  252. package/dist/toolbar_injector/toolbar_injector_c8c214dd.js +0 -977
  253. package/dist/toolbar_injector/toolbar_injector_c8c214dd.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/buildProject.js +0 -336
  257. package/src/commonJsToJavaScriptModule.js +0 -180
  258. package/src/dev_server.js +0 -295
  259. package/src/execute.js +0 -184
  260. package/src/importUsingChildProcess.js +0 -68
  261. package/src/internal/argUtils.js +0 -12
  262. package/src/internal/babel_plugin_replace_expressions.js +0 -101
  263. package/src/internal/browser_detection/browser_detection.js +0 -68
  264. package/src/internal/browser_detection/detectAndroid.js +0 -13
  265. package/src/internal/browser_detection/detectChrome.js +0 -28
  266. package/src/internal/browser_detection/detectEdge.js +0 -13
  267. package/src/internal/browser_detection/detectElectron.js +0 -1
  268. package/src/internal/browser_detection/detectFirefox.js +0 -17
  269. package/src/internal/browser_detection/detectIOS.js +0 -19
  270. package/src/internal/browser_detection/detectInternetExplorer.js +0 -14
  271. package/src/internal/browser_detection/detectOpera.js +0 -27
  272. package/src/internal/browser_detection/detectSafari.js +0 -13
  273. package/src/internal/browser_detection/user_agent_data.js +0 -26
  274. package/src/internal/browser_detection/util.js +0 -13
  275. package/src/internal/browser_launcher/browser_runtime_profile.js +0 -81
  276. package/src/internal/browser_launcher/executeHtmlFile.js +0 -354
  277. package/src/internal/browser_launcher/from_playwright.js +0 -320
  278. package/src/internal/browser_launcher/trackPageToNotify.js +0 -77
  279. package/src/internal/browser_runtime/browser_runtime.js +0 -224
  280. package/src/internal/browser_runtime/browser_system.js +0 -218
  281. package/src/internal/browser_runtime/createBrowserRuntime.js +0 -146
  282. package/src/internal/browser_runtime/evalSource.js +0 -11
  283. package/src/internal/browser_runtime/makeNamespaceTransferable.js +0 -90
  284. package/src/internal/browser_utils/fetchAndEvalUsingFetch.js +0 -29
  285. package/src/internal/browser_utils/fetchAndEvalUsingScript.js +0 -49
  286. package/src/internal/browser_utils/fetchJson.js +0 -7
  287. package/src/internal/browser_utils/fetch_browser.js +0 -34
  288. package/src/internal/building/buildToCompilationResult.js +0 -183
  289. package/src/internal/building/buildUsingRollup.js +0 -359
  290. package/src/internal/building/build_logs.js +0 -133
  291. package/src/internal/building/build_stats.js +0 -100
  292. package/src/internal/building/build_url_generator.js +0 -153
  293. package/src/internal/building/css/applyPostCss.js +0 -55
  294. package/src/internal/building/css/moveCssUrls.js +0 -44
  295. package/src/internal/building/css/parseCssRessource.js +0 -259
  296. package/src/internal/building/css/parseCssUrls.js +0 -38
  297. package/src/internal/building/css/postcss_plugin_url_visitor.js +0 -244
  298. package/src/internal/building/css/replaceCssUrls.js +0 -67
  299. package/src/internal/building/css_module.js +0 -43
  300. package/src/internal/building/es_to_system.js +0 -34
  301. package/src/internal/building/html/htmlScan.js +0 -70
  302. package/src/internal/building/html/minifyHtml.js +0 -7
  303. package/src/internal/building/html/parseHtmlRessource.js +0 -814
  304. package/src/internal/building/import_references.js +0 -80
  305. package/src/internal/building/importmap/parseImportmapRessource.js +0 -28
  306. package/src/internal/building/js/babel_plugin_inline_worker_imports.js +0 -96
  307. package/src/internal/building/js/minifyJs.js +0 -33
  308. package/src/internal/building/js/parseJsRessource.js +0 -121
  309. package/src/internal/building/js/transform_worker.js +0 -55
  310. package/src/internal/building/json/parseJsonRessource.js +0 -11
  311. package/src/internal/building/parseRessource.js +0 -207
  312. package/src/internal/building/parsing.utils.js +0 -29
  313. package/src/internal/building/resolve_import_url_helper.js +0 -12
  314. package/src/internal/building/ressource_builder.js +0 -1097
  315. package/src/internal/building/ressource_builder_util.js +0 -194
  316. package/src/internal/building/rollup_plugin_jsenv.js +0 -1963
  317. package/src/internal/building/sortObjectByPathnames.js +0 -10
  318. package/src/internal/building/sourcemap_loader.js +0 -73
  319. package/src/internal/building/svg/parseSvgRessource.js +0 -111
  320. package/src/internal/building/url_fetcher.js +0 -85
  321. package/src/internal/building/url_loader.js +0 -127
  322. package/src/internal/building/url_trace.js +0 -229
  323. package/src/internal/building/url_versioning.js +0 -65
  324. package/src/internal/building/webmanifest/parseWebmanifestRessource.js +0 -48
  325. package/src/internal/compiling/babel_parse_error.js +0 -9
  326. package/src/internal/compiling/babel_plugin_global_this_as_jsenv_import.js +0 -34
  327. package/src/internal/compiling/babel_plugin_import_assertions.js +0 -120
  328. package/src/internal/compiling/babel_plugin_import_metadata.js +0 -18
  329. package/src/internal/compiling/babel_plugin_import_visitor.js +0 -84
  330. package/src/internal/compiling/babel_plugin_new_stylesheet_as_jsenv_import.js +0 -113
  331. package/src/internal/compiling/babel_plugin_proxy_external_imports.js +0 -31
  332. package/src/internal/compiling/babel_plugin_transform_import_meta.js +0 -134
  333. package/src/internal/compiling/babel_plugins.js +0 -37
  334. package/src/internal/compiling/compileFile.js +0 -271
  335. package/src/internal/compiling/compileHtml.js +0 -544
  336. package/src/internal/compiling/createCompiledFileService.js +0 -263
  337. package/src/internal/compiling/html_source_file_service.js +0 -453
  338. package/src/internal/compiling/js-compilation-service/ansiToHTML.js +0 -9
  339. package/src/internal/compiling/js-compilation-service/babelHelper.js +0 -145
  340. package/src/internal/compiling/js-compilation-service/babel_plugin_regenerator_runtime_as_jsenv_import.js +0 -48
  341. package/src/internal/compiling/js-compilation-service/babel_plugin_systemjs_prepend.js +0 -23
  342. package/src/internal/compiling/js-compilation-service/generateBabelHelper.js +0 -36
  343. package/src/internal/compiling/js-compilation-service/transformJs.js +0 -196
  344. package/src/internal/compiling/jsenvCompilerForHtml.js +0 -674
  345. package/src/internal/compiling/jsenvCompilerForImportmap.js +0 -28
  346. package/src/internal/compiling/jsenvCompilerForJavaScript.js +0 -61
  347. package/src/internal/compiling/jsenv_directory/comparison_utils.js +0 -27
  348. package/src/internal/compiling/jsenv_directory/compile_asset.js +0 -24
  349. package/src/internal/compiling/jsenv_directory/compile_context.js +0 -60
  350. package/src/internal/compiling/jsenv_directory/compile_profile.js +0 -217
  351. package/src/internal/compiling/jsenv_directory/file_lock_registry.js +0 -24
  352. package/src/internal/compiling/jsenv_directory/file_lock_registry.test.js +0 -47
  353. package/src/internal/compiling/jsenv_directory/fs-optimized-for-cache.js +0 -57
  354. package/src/internal/compiling/jsenv_directory/getOrGenerateCompiledFile.js +0 -269
  355. package/src/internal/compiling/jsenv_directory/jsenv_directory.js +0 -174
  356. package/src/internal/compiling/jsenv_directory/updateMeta.js +0 -150
  357. package/src/internal/compiling/jsenv_directory/validateCache.js +0 -264
  358. package/src/internal/compiling/load_babel_plugin_map_from_file.js +0 -49
  359. package/src/internal/compiling/rollup_plugin_commonjs_named_exports.js +0 -187
  360. package/src/internal/compiling/sse_service/sse_service.js +0 -369
  361. package/src/internal/compiling/startCompileServer.js +0 -518
  362. package/src/internal/compiling/transformResultToCompilationResult.js +0 -242
  363. package/src/internal/dataUrl.utils.js +0 -55
  364. package/src/internal/dev_server/event_source_client/event_source_client.js +0 -63
  365. package/src/internal/dev_server/event_source_client/file_changes.js +0 -82
  366. package/src/internal/dev_server/event_source_client/livereload_preference.js +0 -13
  367. package/src/internal/dev_server/exploring/exploring.css +0 -237
  368. package/src/internal/dev_server/exploring/exploring.html +0 -79
  369. package/src/internal/dev_server/exploring/exploring.js +0 -243
  370. package/src/internal/dev_server/exploring/fetchExploringJson.js +0 -19
  371. package/src/internal/dev_server/toolbar/compilation/compilation.css +0 -23
  372. package/src/internal/dev_server/toolbar/compilation/toolbar.compilation.js +0 -201
  373. package/src/internal/dev_server/toolbar/eventsource/toolbar.eventsource.js +0 -83
  374. package/src/internal/dev_server/toolbar/execution/toolbar.execution.js +0 -91
  375. package/src/internal/error-stack-remapping/getOriginalCallsites.js +0 -217
  376. package/src/internal/error-stack-remapping/installBrowserErrorStackRemapping.js +0 -45
  377. package/src/internal/error-stack-remapping/installErrorStackRemapping.js +0 -141
  378. package/src/internal/error-stack-remapping/installNodeErrorStackRemapping.js +0 -20
  379. package/src/internal/error-stack-remapping/remapCallSite.js +0 -314
  380. package/src/internal/error-stack-remapping/stackToString.js +0 -9
  381. package/src/internal/escapeRegexpSpecialCharacters.js +0 -34
  382. package/src/internal/escapeTemplateStringSpecialCharacters.js +0 -20
  383. package/src/internal/executing/coverage/babel_plugin_instrument.js +0 -90
  384. package/src/internal/executing/coverage/reportToCoverage.js +0 -198
  385. package/src/internal/executing/coverage_missing/createEmptyCoverage.js +0 -6
  386. package/src/internal/executing/coverage_missing/list_files_not_covered.js +0 -20
  387. package/src/internal/executing/coverage_missing/missing_coverage.js +0 -46
  388. package/src/internal/executing/coverage_missing/relativeUrlToEmptyCoverage.js +0 -63
  389. package/src/internal/executing/coverage_reporter/coverage_reporter_html_directory.js +0 -36
  390. package/src/internal/executing/coverage_reporter/coverage_reporter_json_file.js +0 -22
  391. package/src/internal/executing/coverage_reporter/coverage_reporter_text_log.js +0 -19
  392. package/src/internal/executing/coverage_reporter/istanbulCoverageMapFromCoverage.js +0 -16
  393. package/src/internal/executing/coverage_utils/file_by_file_coverage.js +0 -28
  394. package/src/internal/executing/coverage_utils/istanbul_coverage_composition.js +0 -28
  395. package/src/internal/executing/coverage_utils/v8_and_istanbul.js +0 -38
  396. package/src/internal/executing/coverage_utils/v8_coverage_composition.js +0 -23
  397. package/src/internal/executing/coverage_utils/v8_coverage_from_directory.js +0 -86
  398. package/src/internal/executing/coverage_utils/v8_coverage_to_istanbul.js +0 -100
  399. package/src/internal/executing/createSummaryLog.js +0 -143
  400. package/src/internal/executing/executionIsPassed.js +0 -2
  401. package/src/internal/executing/executionLogs.js +0 -159
  402. package/src/internal/executing/generateExecutionSteps.js +0 -29
  403. package/src/internal/executing/launchAndExecute.js +0 -458
  404. package/src/internal/features/browser_feature_detection/browser_feature_detect_dynamic_import.js +0 -20
  405. package/src/internal/features/browser_feature_detection/browser_feature_detect_import_assertions_css.js +0 -23
  406. package/src/internal/features/browser_feature_detection/browser_feature_detect_import_assertions_json.js +0 -25
  407. package/src/internal/features/browser_feature_detection/browser_feature_detect_importmap.js +0 -37
  408. package/src/internal/features/browser_feature_detection/browser_feature_detect_new_stylesheet.js +0 -9
  409. package/src/internal/features/browser_feature_detection/browser_feature_detect_top_level_await.js +0 -14
  410. package/src/internal/features/browser_feature_detection/browser_feature_detection.js +0 -89
  411. package/src/internal/features/browser_feature_detection/compile_proxy.html +0 -27
  412. package/src/internal/features/browser_feature_detection/execute_with_script_module.js +0 -24
  413. package/src/internal/features/features_compat_from_runtime.js +0 -38
  414. package/src/internal/features/features_compat_from_runtime_support.js +0 -31
  415. package/src/internal/features/features_compatibility.js +0 -37
  416. package/src/internal/features/node_feature_detection/feature_detect_dynamic_import.mjs +0 -5
  417. package/src/internal/features/node_feature_detection/feature_detect_top_level_await.mjs +0 -1
  418. package/src/internal/features/node_feature_detection/node_feature_detect_dynamic_import.js +0 -5
  419. package/src/internal/features/node_feature_detection/node_feature_detect_top_level_await.js +0 -16
  420. package/src/internal/features/node_feature_detection/node_feature_detection.js +0 -66
  421. package/src/internal/fetchUrl.js +0 -28
  422. package/src/internal/filePathUtils.js +0 -19
  423. package/src/internal/import-resolution/default-extension.js +0 -40
  424. package/src/internal/import-resolution/import-resolver-importmap.js +0 -64
  425. package/src/internal/import-resolution/import-resolver-node.js +0 -254
  426. package/src/internal/import-resolution/importmap_default.js +0 -37
  427. package/src/internal/jsenvCoreDirectoryUrl.js +0 -11
  428. package/src/internal/jsenvInternalFiles.js +0 -36
  429. package/src/internal/jsenv_builds.js +0 -19
  430. package/src/internal/jsenv_remote_directory.js +0 -156
  431. package/src/internal/logs/byte.js +0 -10
  432. package/src/internal/logs/byteAsFileSize.js +0 -9
  433. package/src/internal/logs/msAsDuration.js +0 -12
  434. package/src/internal/memoize.js +0 -24
  435. package/src/internal/node_launcher/node_runtime_report.js +0 -77
  436. package/src/internal/node_launcher/processOptions.js +0 -46
  437. package/src/internal/node_runtime/evalSource.js +0 -6
  438. package/src/internal/node_runtime/fetchSource.js +0 -8
  439. package/src/internal/node_runtime/node_execution_dynamic_import.js +0 -74
  440. package/src/internal/node_runtime/node_execution_performance.js +0 -67
  441. package/src/internal/node_runtime/node_execution_systemjs.js +0 -125
  442. package/src/internal/node_runtime/node_system.js +0 -191
  443. package/src/internal/origin_directory_converter.js +0 -62
  444. package/src/internal/perf_node.js +0 -13
  445. package/src/internal/promise_race.js +0 -19
  446. package/src/internal/redirector/redirector.html +0 -40
  447. package/src/internal/require.js +0 -3
  448. package/src/internal/response_validation.js +0 -130
  449. package/src/internal/runtime/module-registration.js +0 -207
  450. package/src/internal/runtime/s.js +0 -864
  451. package/src/internal/runtime/s.js.md +0 -1
  452. package/src/internal/runtime/valueInstall.js +0 -14
  453. package/src/internal/runtime_support/jsenv_runtime_support.js +0 -15
  454. package/src/internal/runtime_support/runtime_support.js +0 -70
  455. package/src/internal/semantic_versioning/findHighestVersion.js +0 -12
  456. package/src/internal/semantic_versioning/findLowestVersion.js +0 -12
  457. package/src/internal/semantic_versioning/index.js +0 -5
  458. package/src/internal/semantic_versioning/valueToVersion.js +0 -44
  459. package/src/internal/semantic_versioning/versionCompare.js +0 -32
  460. package/src/internal/semantic_versioning/versionIsAbove.js +0 -5
  461. package/src/internal/semantic_versioning/versionIsBelow.js +0 -5
  462. package/src/internal/semantic_versioning/versionIsEqual.js +0 -3
  463. package/src/internal/sourceMappingURLUtils.js +0 -112
  464. package/src/internal/url_conversion.js +0 -313
  465. package/src/internal/url_utils.js +0 -33
  466. package/src/internal/url_utils.test.js +0 -39
  467. package/src/jsenvCoverageConfig.js +0 -7
  468. package/src/jsenvExplorableConfig.js +0 -9
  469. package/src/jsenvRuntimeSupportDuringDev.js +0 -12
  470. package/src/jsenvServiceWorkerFinalizer.js +0 -55
  471. package/src/jsonToJavaScriptModule.js +0 -12
  472. package/src/launchBrowser.js +0 -43
  473. package/src/launchNode.js +0 -227
  474. package/src/playwright_browser_versions.js +0 -5
  475. package/src/requireUsingChildProcess.js +0 -67
  476. package/src/textToJavaScriptModule.js +0 -14
@@ -1,25 +0,0 @@
1
- import {
2
- asBase64Url,
3
- executeWithScriptModuleInjection,
4
- } from "./execute_with_script_module.js"
5
-
6
- export const supportsJsonImportAssertions = async () => {
7
- const jsonBase64Url = asBase64Url("42", "application/json")
8
- const moduleSource = asBase64Url(
9
- `import data from "${jsonBase64Url}" assert { type: "json" }
10
- export default data`,
11
- )
12
- try {
13
- await executeWithScriptModuleInjection(
14
- `window.__jsenv_runtime_test_json_import_assertion__ = import(${JSON.stringify(
15
- moduleSource,
16
- )})`,
17
- )
18
- const namespace = await window.__jsenv_runtime_test_json_import_assertion__
19
- const supported = namespace.default === 42
20
- delete window.__jsenv_runtime_test_json_import_assertion__
21
- return supported
22
- } catch (e) {
23
- return false
24
- }
25
- }
@@ -1,37 +0,0 @@
1
- import {
2
- asBase64Url,
3
- executeWithScriptModuleInjection,
4
- } from "./execute_with_script_module.js"
5
-
6
- export const supportsImportmap = async ({ remote = true } = {}) => {
7
- const specifier = asBase64Url(`export default false`)
8
- const importMap = {
9
- imports: {
10
- [specifier]: asBase64Url(`export default true`),
11
- },
12
- }
13
- const importmapScript = document.createElement("script")
14
- const importmapString = JSON.stringify(importMap, null, " ")
15
- importmapScript.type = "importmap"
16
- if (remote) {
17
- importmapScript.src = `data:application/json;base64,${window.btoa(
18
- importmapString,
19
- )}`
20
- } else {
21
- importmapScript.textContent = importmapString
22
- }
23
- document.body.appendChild(importmapScript)
24
-
25
- try {
26
- await executeWithScriptModuleInjection(
27
- `import supported from "${specifier}"; window.__jsenv_runtime_test_importmap__ = supported`,
28
- )
29
- document.body.removeChild(importmapScript)
30
- const supported = window.__jsenv_runtime_test_importmap__
31
- delete window.__jsenv_runtime_test_importmap__
32
- return supported
33
- } catch (e) {
34
- document.body.removeChild(importmapScript)
35
- return false
36
- }
37
- }
@@ -1,9 +0,0 @@
1
- export const supportsNewStylesheet = () => {
2
- try {
3
- // eslint-disable-next-line no-new
4
- new CSSStyleSheet()
5
- return true
6
- } catch (e) {
7
- return false
8
- }
9
- }
@@ -1,14 +0,0 @@
1
- import { executeWithScriptModuleInjection } from "./execute_with_script_module.js"
2
-
3
- export const supportsTopLevelAwait = async () => {
4
- try {
5
- await executeWithScriptModuleInjection(
6
- `window.__jsenv_runtime_test_top_level_await__ = await Promise.resolve(42)`,
7
- )
8
- const supported = window.__jsenv_runtime_test_top_level_await__ === 42
9
- delete window.__jsenv_runtime_test_top_level_await__
10
- return supported
11
- } catch (e) {
12
- return false
13
- }
14
- }
@@ -1,89 +0,0 @@
1
- import { fetchJson } from "../../browser_utils/fetchJson.js"
2
- import { detectBrowser } from "../../browser_detection/browser_detection.js"
3
-
4
- import { supportsImportmap } from "./browser_feature_detect_importmap.js"
5
- import { supportsDynamicImport } from "./browser_feature_detect_dynamic_import.js"
6
- import { supportsTopLevelAwait } from "./browser_feature_detect_top_level_await.js"
7
- import { supportsJsonImportAssertions } from "./browser_feature_detect_import_assertions_json.js"
8
- import { supportsCssImportAssertions } from "./browser_feature_detect_import_assertions_css.js"
9
- import { supportsNewStylesheet } from "./browser_feature_detect_new_stylesheet.js"
10
-
11
- export const scanBrowserRuntimeFeatures = async ({
12
- coverageHandledFromOutside = false,
13
- forceCompilation = false,
14
- forceSource = false,
15
- } = {}) => {
16
- const jsenvCompileProfileUrl = "/__jsenv_compile_profile__"
17
- const {
18
- jsenvDirectoryRelativeUrl,
19
- inlineImportMapIntoHTML,
20
- availableCompileIds,
21
- } = await fetchJson(jsenvCompileProfileUrl)
22
- const { name, version } = detectBrowser()
23
- const featuresReport = await detectSupportedFeatures({
24
- coverageHandledFromOutside,
25
- inlineImportMapIntoHTML,
26
- })
27
- const runtimeReport = {
28
- env: { browser: true },
29
- name,
30
- version,
31
- featuresReport,
32
- forceSource,
33
- forceCompilation,
34
- }
35
- const { compileProfile, compileId } = await fetchJson(
36
- jsenvCompileProfileUrl,
37
- {
38
- method: "POST",
39
- headers: {
40
- "content-type": "application/json",
41
- },
42
- body: JSON.stringify(runtimeReport),
43
- },
44
- )
45
- return {
46
- jsenvDirectoryRelativeUrl,
47
- inlineImportMapIntoHTML,
48
- availableCompileIds,
49
- runtimeReport,
50
- compileProfile,
51
- compileId,
52
- }
53
- }
54
-
55
- const detectSupportedFeatures = async ({
56
- coverageHandledFromOutside,
57
- inlineImportMapIntoHTML,
58
- }) => {
59
- const featuresReport = {}
60
- featuresReport["import_http"] = true
61
- featuresReport["coverage_js"] = coverageHandledFromOutside
62
- // new CSSStyleSheet
63
- featuresReport["new_stylesheet"] = supportsNewStylesheet()
64
- // importmap
65
- // start testing importmap support first and not in paralell
66
- // so that there is not module script loaded beore importmap is injected
67
- // it would log an error in chrome console and return undefined
68
- featuresReport.importmap = await supportsImportmap({
69
- // chrome supports inline but not remote importmap
70
- // https://github.com/WICG/import-maps/issues/235
71
- // at this stage we won't know if the html file will use
72
- // an importmap or not and if that importmap is inline or specified with an src
73
- // so we should test if browser support local and remote importmap.
74
- // But there exploring server can inline importmap by transforming html
75
- // and in that case we can test only the local importmap support
76
- // so we test importmap support and the remote one
77
- remote: !inlineImportMapIntoHTML,
78
- })
79
- // dynamic import
80
- featuresReport["import_dynamic"] = await supportsDynamicImport()
81
- // top level await
82
- featuresReport["top_level_await"] = await supportsTopLevelAwait()
83
- // import assertions
84
- featuresReport["import_assertion_type_json"] =
85
- await supportsJsonImportAssertions()
86
- featuresReport["import_assertion_type_css"] =
87
- await supportsCssImportAssertions()
88
- return featuresReport
89
- }
@@ -1,27 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Compile proxy</title>
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <meta charset="utf-8" />
7
- <link rel="icon" href="data:," />
8
- </head>
9
-
10
- <body>
11
- <script>
12
- window.readyPromise = new Promise((resolve) => {
13
- window.resolveReadyPromise = resolve
14
- })
15
- </script>
16
- <script
17
- type="importmap"
18
- src="../../../../node_resolution.importmap"
19
- ></script>
20
- <script type="module">
21
- import { scanBrowserRuntimeFeatures } from "./browser_feature_detection.js"
22
-
23
- window.scanBrowserRuntimeFeatures = scanBrowserRuntimeFeatures
24
- window.resolveReadyPromise()
25
- </script>
26
- </body>
27
- </html>
@@ -1,24 +0,0 @@
1
- export const executeWithScriptModuleInjection = (code) => {
2
- const scriptModule = document.createElement("script")
3
- scriptModule.type = "module"
4
-
5
- const loadPromise = new Promise((resolve, reject) => {
6
- scriptModule.onload = () => {
7
- document.body.removeChild(scriptModule)
8
- resolve()
9
- }
10
- scriptModule.onerror = () => {
11
- document.body.removeChild(scriptModule)
12
- reject()
13
- }
14
- document.body.appendChild(scriptModule)
15
- })
16
-
17
- scriptModule.src = asBase64Url(code)
18
-
19
- return loadPromise
20
- }
21
-
22
- export const asBase64Url = (text, mimeType = "application/javascript") => {
23
- return `data:${mimeType};base64,${window.btoa(text)}`
24
- }
@@ -1,38 +0,0 @@
1
- import { findHighestVersion } from "@jsenv/core/src/internal/semantic_versioning/index.js"
2
-
3
- import { featuresCompatMap } from "./features_compatibility.js"
4
-
5
- export const featuresCompatFromRuntime = ({
6
- runtimeName,
7
- runtimeVersion,
8
- featureNames,
9
- }) => {
10
- const availableFeatureNames = []
11
- // "minRuntimeVersion" is the first version where all
12
- // features in "availableFeatureNames" where available
13
- // can be lower or equal to "runtimeVersion"
14
- let minRuntimeVersion
15
- featureNames.forEach((featureName) => {
16
- const featureCompat = featuresCompatMap[featureName] || {}
17
- const runtimeVersionCompatible = featureCompat[runtimeName] || "Infinity"
18
- const highestVersion = findHighestVersion(
19
- runtimeVersion,
20
- runtimeVersionCompatible,
21
- )
22
- const compatible = highestVersion === runtimeVersion
23
- if (compatible) {
24
- availableFeatureNames.push(featureName)
25
- if (runtimeVersionCompatible !== "Infinity") {
26
- // there is a version from which runtime becomes compatible with this feature
27
- minRuntimeVersion = findHighestVersion(
28
- minRuntimeVersion || "0.0.0",
29
- runtimeVersionCompatible,
30
- )
31
- }
32
- }
33
- })
34
- return {
35
- availableFeatureNames,
36
- minRuntimeVersion: minRuntimeVersion || runtimeVersion,
37
- }
38
- }
@@ -1,31 +0,0 @@
1
- import { featuresCompatFromRuntime } from "./features_compat_from_runtime.js"
2
-
3
- export const featuresCompatFromRuntimeSupport = ({
4
- runtimeSupport,
5
- featureNames,
6
- }) => {
7
- const availableFeatureNames = []
8
- const minRuntimeVersions = {}
9
- const runtimeNames = Object.keys(runtimeSupport)
10
- runtimeNames.forEach((runtimeName) => {
11
- const runtimeVersion = runtimeSupport[runtimeName]
12
- const runtimeFeaturesCompat = featuresCompatFromRuntime({
13
- runtimeName,
14
- runtimeVersion,
15
- featureNames,
16
- })
17
-
18
- minRuntimeVersions[runtimeName] = runtimeFeaturesCompat.minRuntimeVersion
19
- runtimeFeaturesCompat.availableFeatureNames.forEach(
20
- (availableFeatureName) => {
21
- if (!availableFeatureNames.includes(availableFeatureName)) {
22
- availableFeatureNames.push(availableFeatureName)
23
- }
24
- },
25
- )
26
- })
27
- return {
28
- availableFeatureNames,
29
- minRuntimeVersions,
30
- }
31
- }
@@ -1,37 +0,0 @@
1
- import { babelPluginCompatMap } from "./babel_plugins_compatibility.js"
2
-
3
- export const featuresCompatMap = {
4
- script_type_module: {
5
- edge: "16",
6
- firefox: "60",
7
- chrome: "61",
8
- safari: "10.1",
9
- opera: "48",
10
- ios: "10.3",
11
- android: "61",
12
- samsung: "8.2",
13
- },
14
- // https://caniuse.com/import-maps
15
- importmap: {
16
- edge: "89",
17
- chrome: "89",
18
- opera: "76",
19
- samsung: "15",
20
- },
21
- import_assertion_type_json: {
22
- chrome: "91",
23
- edge: "91",
24
- },
25
- import_assertion_type_css: {
26
- chrome: "93",
27
- edge: "93",
28
- },
29
- worker_type_module: {
30
- chrome: "80",
31
- edge: "80",
32
- opera: "67",
33
- android: "80",
34
- },
35
- worker_importmap: {},
36
- ...babelPluginCompatMap,
37
- }
@@ -1,5 +0,0 @@
1
- const jsAsBase64 = Buffer.from("export default 42").toString("base64")
2
- const moduleSource = `data:text/javascript;base64,${jsAsBase64}`
3
- const namespacePromise = import(moduleSource)
4
-
5
- export default namespacePromise
@@ -1 +0,0 @@
1
- export default await Promise.resolve(42)
@@ -1,5 +0,0 @@
1
- import { memoize } from "@jsenv/filesystem"
2
-
3
- export const nodeSupportsDynamicImport = memoize(async () => {
4
- return true
5
- })
@@ -1,16 +0,0 @@
1
- import { memoize } from "@jsenv/filesystem"
2
-
3
- const FEATURE_DETECT_DYNAMIC_IMPORT_FILE_URL = new URL(
4
- "./feature_detect_top_level_await.mjs",
5
- import.meta.url,
6
- ).href
7
-
8
- export const nodeSupportsTopLevelAwait = memoize(async () => {
9
- try {
10
- const namespace = await import(FEATURE_DETECT_DYNAMIC_IMPORT_FILE_URL)
11
- const supported = namespace.default === 42
12
- return supported
13
- } catch (e) {
14
- return false
15
- }
16
- })
@@ -1,66 +0,0 @@
1
- import { fetchSource } from "@jsenv/core/src/internal/node_runtime/fetchSource.js"
2
-
3
- import { nodeSupportsDynamicImport } from "./node_feature_detect_dynamic_import.js"
4
- import { nodeSupportsTopLevelAwait } from "./node_feature_detect_top_level_await.js"
5
-
6
- export const scanNodeRuntimeFeatures = async ({
7
- compileServerOrigin,
8
- moduleOutFormat,
9
- forceSource,
10
- forceCompilation,
11
- coverageHandledFromOutside,
12
- }) => {
13
- const jsenvCompileProfileServerUrl = new URL(
14
- "__jsenv_compile_profile__",
15
- compileServerOrigin,
16
- ).href
17
- const { compileContext } = await fetchJson(jsenvCompileProfileServerUrl)
18
- const featuresReport = await detectSupportedFeatures({
19
- compileContext,
20
- coverageHandledFromOutside,
21
- })
22
- const runtimeReport = {
23
- env: { node: true },
24
- name: "node",
25
- version: process.version.slice(1),
26
- featuresReport,
27
- moduleOutFormat,
28
- forceSource,
29
- forceCompilation,
30
- }
31
- const { compileProfile, compileId } = await fetchJson(
32
- jsenvCompileProfileServerUrl,
33
- {
34
- method: "POST",
35
- headers: {
36
- "content-type": "application/json",
37
- },
38
- body: JSON.stringify(runtimeReport),
39
- },
40
- )
41
- return {
42
- compileProfile,
43
- compileId,
44
- }
45
- }
46
-
47
- const detectSupportedFeatures = async ({ coverageHandledFromOutside }) => {
48
- const featuresReport = {}
49
- // Node.js do not support http(s) imports, this information is important
50
- // so that we know we cannot use dynamic import
51
- featuresReport["import_http"] = false
52
- featuresReport["coverage_js"] = coverageHandledFromOutside
53
- featuresReport["import_dynamic"] = await nodeSupportsDynamicImport()
54
- featuresReport["top_level_await"] = await nodeSupportsTopLevelAwait()
55
- return featuresReport
56
- }
57
-
58
- const fetchJson = async (url, options) => {
59
- const response = await fetchSource(url, options)
60
- const status = response.status
61
- if (status !== 200) {
62
- throw new Error(`unexpected response status for ${url}, got ${status}`)
63
- }
64
- const object = await response.json()
65
- return object
66
- }
@@ -1,28 +0,0 @@
1
- import { globalAgent } from "node:https"
2
- import { fetchUrl as serverFetchUrl } from "@jsenv/server"
3
- import { headersToObject } from "@jsenv/server/src/internal/headersToObject.js"
4
-
5
- // ideally we should only pass this to the fetch below
6
- globalAgent.options.rejectUnauthorized = false
7
-
8
- export const fetchUrl = async (
9
- url,
10
- { ignoreHttpsError = true, ...rest } = {},
11
- ) => {
12
- const response = await serverFetchUrl(url, {
13
- ignoreHttpsError,
14
- ...rest,
15
- })
16
- const responseObject = {
17
- url: response.url,
18
- type: "default",
19
- status: response.status,
20
- statusText: response.statusText,
21
- headers: headersToObject(response.headers),
22
- text: response.text.bind(response),
23
- json: response.json.bind(response),
24
- blob: response.blob.bind(response),
25
- arrayBuffer: response.arrayBuffer.bind(response),
26
- }
27
- return responseObject
28
- }
@@ -1,19 +0,0 @@
1
- export const isWindowsFilePath = (path) =>
2
- startsWithWindowsDriveLetter(path) && path[2] === "\\"
3
-
4
- export const startsWithWindowsDriveLetter = (string) => {
5
- const firstChar = string[0]
6
- if (!/[a-zA-Z]/.test(firstChar)) return false
7
-
8
- const secondChar = string[1]
9
- if (secondChar !== ":") return false
10
-
11
- return true
12
- }
13
-
14
- export const windowsFilePathToUrl = (windowsFilePath) => {
15
- return `file:///${replaceBackSlashesWithSlashes(windowsFilePath)}`
16
- }
17
-
18
- export const replaceBackSlashesWithSlashes = (string) =>
19
- string.replace(/\\/g, "/")
@@ -1,40 +0,0 @@
1
- export const applyDefaultExtension = (specifier, importer) => {
2
- if (!importer) {
3
- return specifier
4
- }
5
-
6
- const importerExtension = urlToExtension(importer)
7
- const fakeUrl = new URL(specifier, importer).href
8
- const specifierExtension = urlToExtension(fakeUrl)
9
- if (specifierExtension !== "") {
10
- return specifier
11
- }
12
-
13
- // I guess typescript still expect default extension to be .ts
14
- // in a tsx file.
15
- if (importerExtension === "tsx") {
16
- return `${specifier}.ts`
17
- }
18
-
19
- // extension magic
20
- return `${specifier}${importerExtension}`
21
- }
22
-
23
- const urlToExtension = (url) => {
24
- return pathnameToExtension(urlToPathname(url))
25
- }
26
-
27
- const urlToPathname = (url) => new URL(url).pathname
28
-
29
- const pathnameToExtension = (pathname) => {
30
- const slashLastIndex = pathname.lastIndexOf("/")
31
- if (slashLastIndex !== -1) {
32
- pathname = pathname.slice(slashLastIndex + 1)
33
- }
34
-
35
- const dotLastIndex = pathname.lastIndexOf(".")
36
- if (dotLastIndex === -1) return ""
37
- // if (dotLastIndex === pathname.length - 1) return ""
38
- const extension = pathname.slice(dotLastIndex)
39
- return extension
40
- }
@@ -1,64 +0,0 @@
1
- import { createDetailedMessage } from "@jsenv/logger"
2
- import { resolveImport } from "@jsenv/importmap/src/resolveImport.js"
3
-
4
- import { tryToFindProjectRelativeUrl } from "@jsenv/core/src/internal/runtime/module-registration.js"
5
-
6
- import { applyDefaultExtension } from "./default-extension.js"
7
-
8
- export const createImportResolverForImportmap = async ({
9
- // projectDirectoryUrl,
10
- compileServerOrigin,
11
- compileDirectoryRelativeUrl,
12
- importMap,
13
- importMapUrl,
14
- importDefaultExtension,
15
- onBareSpecifierError = () => {},
16
- }) => {
17
- const _resolveImport = (specifier, importer) => {
18
- if (importDefaultExtension) {
19
- specifier = applyDefaultExtension(specifier, importer)
20
- }
21
- return resolveImport({
22
- specifier,
23
- importer,
24
- importMap,
25
- createBareSpecifierError: ({ specifier, importer }) => {
26
- const bareSpecifierError = createBareSpecifierError({
27
- specifier,
28
- importer:
29
- tryToFindProjectRelativeUrl(importer, {
30
- compileServerOrigin,
31
- compileDirectoryRelativeUrl,
32
- }) || importer,
33
- importMapUrl:
34
- tryToFindProjectRelativeUrl(importMapUrl, {
35
- compileServerOrigin,
36
- compileDirectoryRelativeUrl,
37
- }) || importMapUrl,
38
- importMap,
39
- })
40
- onBareSpecifierError(bareSpecifierError)
41
- return bareSpecifierError
42
- },
43
- })
44
- }
45
-
46
- return { resolveImport: _resolveImport }
47
- }
48
-
49
- const createBareSpecifierError = ({ specifier, importer, importMapUrl }) => {
50
- const detailedMessage = createDetailedMessage("Unmapped bare specifier.", {
51
- specifier,
52
- importer,
53
- ...(importMapUrl
54
- ? {
55
- "how to fix": `Add a mapping for "${specifier}" into the importmap file at "${importMapUrl}"`,
56
- }
57
- : {
58
- "how to fix": `Add an importmap with a mapping for "${specifier}"`,
59
- "suggestion": `Generate importmap using https://github.com/jsenv/importmap-node-module`,
60
- }),
61
- })
62
-
63
- return new Error(detailedMessage)
64
- }