@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,359 +0,0 @@
1
- import {
2
- urlToFileSystemPath,
3
- ensureEmptyDirectory,
4
- readFile,
5
- urlToRelativeUrl,
6
- writeFile,
7
- resolveUrl,
8
- } from "@jsenv/filesystem"
9
- import { createDetailedMessage } from "@jsenv/logger"
10
-
11
- import { humanizeUrl } from "@jsenv/core/src/internal/building/url_trace.js"
12
-
13
- import { createRollupPlugins } from "./rollup_plugin_jsenv.js"
14
-
15
- export const buildUsingRollup = async ({
16
- buildOperation,
17
- logger,
18
-
19
- entryPoints,
20
- projectDirectoryUrl,
21
- buildDirectoryUrl,
22
- buildDirectoryClean,
23
- assetManifestFile,
24
- assetManifestFileRelativeUrl,
25
-
26
- urlMappings,
27
- importResolutionMethod,
28
- importMapFileRelativeUrl,
29
- importDefaultExtension,
30
- externalImportSpecifiers,
31
- preservedUrls,
32
- importPaths,
33
-
34
- format,
35
- systemJsUrl,
36
- globals,
37
- preservedDynamicImports,
38
- serviceWorkerFinalizer,
39
-
40
- node,
41
- browser,
42
- compileServer,
43
- compileProfile,
44
- compileId,
45
-
46
- urlVersioning,
47
- lineBreakNormalization,
48
- useImportMapToMaximizeCacheReuse,
49
- preserveEntrySignatures,
50
- treeshake,
51
- jsConcatenation,
52
- cssConcatenation,
53
-
54
- minify,
55
- minifyHtmlOptions,
56
- minifyJsOptions,
57
- minifyCssOptions,
58
-
59
- writeOnFileSystem,
60
- sourcemapExcludeSources,
61
- }) => {
62
- const {
63
- rollupPlugins,
64
- getLastErrorMessage,
65
- getResult,
66
- asOriginalUrl,
67
- asProjectUrl,
68
- } = await createRollupPlugins({
69
- buildOperation,
70
- logger,
71
-
72
- projectDirectoryUrl,
73
- entryPoints,
74
- buildDirectoryUrl,
75
-
76
- format,
77
- systemJsUrl,
78
- globals,
79
- preservedDynamicImports,
80
-
81
- urlMappings,
82
- importResolutionMethod,
83
- importMapFileRelativeUrl,
84
- importDefaultExtension,
85
- externalImportSpecifiers,
86
- importPaths,
87
- preservedUrls,
88
- serviceWorkerFinalizer,
89
-
90
- node,
91
- browser,
92
- compileServer,
93
- compileProfile,
94
- compileId,
95
-
96
- urlVersioning,
97
- lineBreakNormalization,
98
- jsConcatenation,
99
- cssConcatenation,
100
- useImportMapToMaximizeCacheReuse,
101
-
102
- minify,
103
- minifyJsOptions,
104
- minifyCssOptions,
105
- minifyHtmlOptions,
106
- })
107
-
108
- try {
109
- await useRollup({
110
- buildOperation,
111
- logger,
112
-
113
- rollupPlugins,
114
- compileProfile,
115
- format,
116
- sourcemapExcludeSources,
117
- preserveEntrySignatures,
118
- treeshake,
119
- // jsConcatenation,
120
- buildDirectoryUrl,
121
- buildDirectoryClean,
122
-
123
- asOriginalUrl,
124
- })
125
- } catch (e) {
126
- if (e.plugin === "jsenv") {
127
- const jsenvPluginErrorMessage = getLastErrorMessage()
128
- if (jsenvPluginErrorMessage) {
129
- // rollup is adding properties to the original error
130
- // making it a bit harder to read
131
- // It does not add useful information so we restore the error
132
- delete e.code
133
- delete e.hook
134
- delete e.id
135
- delete e.watchFiles
136
- delete e.plugin
137
- e.message = jsenvPluginErrorMessage
138
- throw e
139
- }
140
- throw e
141
- }
142
- if (e.code === "MISSING_EXPORT") {
143
- let message = e.message
144
- message = message.replace(e.id, (url) =>
145
- humanizeUrl(asOriginalUrl(url) || url),
146
- )
147
- message = message.replace(/(www|http:|https:)+[^\s]+[\w]/g, (url) =>
148
- humanizeUrl(asOriginalUrl(url) || url),
149
- )
150
- const importedFileRollupUrl = e.message.match(/not exported by (.*?),/)[1]
151
- const convertSuggestion = await getConvertSuggestion({
152
- importedFileRollupUrl,
153
- asProjectUrl,
154
- asOriginalUrl,
155
- projectDirectoryUrl,
156
- })
157
- const detailedMessage = createDetailedMessage(message, {
158
- frame: e.frame,
159
- ...convertSuggestion,
160
- })
161
- throw new Error(detailedMessage, { cause: e })
162
- }
163
- throw e
164
- }
165
-
166
- const {
167
- rollupBuild,
168
- urlResponseBodyMap,
169
- buildMappings,
170
- buildManifest,
171
- buildImportMap,
172
- buildFileContents,
173
- buildInlineFileContents,
174
- buildStats,
175
- } = await getResult()
176
-
177
- if (writeOnFileSystem) {
178
- if (buildDirectoryClean) {
179
- await ensureEmptyDirectory(buildDirectoryUrl)
180
- }
181
-
182
- if (assetManifestFile) {
183
- const assetManifestFileUrl = resolveUrl(
184
- assetManifestFileRelativeUrl,
185
- buildDirectoryUrl,
186
- )
187
- await writeFile(
188
- assetManifestFileUrl,
189
- JSON.stringify(buildManifest, null, " "),
190
- )
191
- }
192
-
193
- const buildRelativeUrls = Object.keys(buildFileContents)
194
- await Promise.all(
195
- buildRelativeUrls.map(async (buildRelativeUrl) => {
196
- const fileBuildUrl = resolveUrl(buildRelativeUrl, buildDirectoryUrl)
197
- await writeFile(fileBuildUrl, buildFileContents[buildRelativeUrl])
198
- }),
199
- )
200
- }
201
-
202
- return {
203
- rollupBuild,
204
- urlResponseBodyMap,
205
- buildMappings,
206
- buildManifest,
207
- buildImportMap,
208
- buildFileContents,
209
- buildInlineFileContents,
210
- buildStats,
211
- }
212
- }
213
-
214
- const useRollup = async ({
215
- buildOperation,
216
- logger,
217
- rollupPlugins,
218
- compileProfile,
219
- format,
220
- sourcemapExcludeSources,
221
- preserveEntrySignatures,
222
- treeshake,
223
- // jsConcatenation,
224
- buildDirectoryUrl,
225
- asOriginalUrl,
226
- }) => {
227
- buildOperation.throwIfAborted()
228
- const { rollup } = await import("rollup")
229
- const { importAssertions } = await import("acorn-import-assertions")
230
-
231
- const rollupInputOptions = {
232
- // about cache here, we should/could reuse previous rollup call
233
- // to get the cache from the entryPoints
234
- // as shown here: https://rollupjs.org/guide/en#cache
235
- // it could be passed in arguments to this function
236
- // however parallelism and having different rollup options per
237
- // call make it a bit complex
238
- // cache: null
239
- // https://rollupjs.org/guide/en#experimentaltoplevelawait
240
- // experimentalTopLevelAwait: true,
241
- // if we want to ignore some warning
242
- // please use https://rollupjs.org/guide/en#onwarn
243
- // to be very clear about what we want to ignore
244
- onwarn: (warning) => {
245
- if (warning.code === "THIS_IS_UNDEFINED") {
246
- return
247
- }
248
- if (
249
- warning.code === "EMPTY_BUNDLE" &&
250
- warning.chunkName === "__empty__"
251
- ) {
252
- return
253
- }
254
- // ignore file name conflict when sourcemap or importmap are re-emitted
255
- if (
256
- warning.code === "FILE_NAME_CONFLICT" &&
257
- (warning.message.includes(".map") ||
258
- warning.message.includes(".importmap"))
259
- ) {
260
- return
261
- }
262
- warning.message = warning.message.replace(
263
- /http:\/\/jsenv.com\/[^\s]+[\w]/g,
264
- (url) => {
265
- return humanizeUrl(asOriginalUrl(url) || url)
266
- },
267
- )
268
- if (warning.code === "CIRCULAR_DEPENDENCY") {
269
- warning.cycle.forEach((url, index) => {
270
- warning.cycle[index] = humanizeUrl(asOriginalUrl(url) || url)
271
- })
272
- }
273
- logger.warn(String(warning))
274
- },
275
- // on passe input: [] car c'est le plugin jsenv qui se chargera d'emit des chunks
276
- // en fonction de entryPoints
277
- // on fait cela car sinon rollup est pénible si on passe un input de type html
278
- input: [],
279
- preserveEntrySignatures,
280
- treeshake,
281
- plugins: rollupPlugins,
282
- acornInjectPlugins: [importAssertions],
283
- }
284
- const rollupOutputOptions = {
285
- // https://rollupjs.org/guide/en#experimentaltoplevelawait
286
- // experimentalTopLevelAwait: true,
287
- // https://rollupjs.org/guide/en/#outputgeneratedcode
288
- generatedCode: {
289
- arrowFunctions:
290
- compileProfile &&
291
- !compileProfile.missingFeatures["transform-arrow-functions"],
292
- constBindings:
293
- compileProfile &&
294
- !compileProfile.missingFeatures["transform-block-scoping"],
295
- objectShorthand:
296
- compileProfile &&
297
- !compileProfile.missingFeatures["transform-shorthand-properties"],
298
- reservedNamesAsProps:
299
- compileProfile &&
300
- !compileProfile.missingFeatures["transform-reserved-words"],
301
- },
302
- // https://rollupjs.org/guide/en#output-dir
303
- dir: urlToFileSystemPath(buildDirectoryUrl),
304
- // https://rollupjs.org/guide/en#output-format
305
- format: formatToRollupFormat(format),
306
- // https://rollupjs.org/guide/en#output-sourcemap
307
- sourcemap: true,
308
- sourcemapExcludeSources,
309
- // preserveModules: !jsConcatenation,
310
- }
311
-
312
- buildOperation.throwIfAborted()
313
- const rollupReturnValue = await rollup(rollupInputOptions)
314
-
315
- buildOperation.throwIfAborted()
316
- const rollupOutputArray = await rollupReturnValue.generate(
317
- rollupOutputOptions,
318
- )
319
-
320
- return rollupOutputArray
321
- }
322
-
323
- const formatToRollupFormat = (format) => {
324
- if (format === "global") return "esm" // will be handled by rollup_plugin_iife
325
- if (format === "commonjs") return "cjs"
326
- if (format === "systemjs") return "system"
327
- if (format === "esmodule") return "esm"
328
- throw new Error(`unexpected format, got ${format}`)
329
- }
330
-
331
- const getConvertSuggestion = async ({
332
- importedFileRollupUrl,
333
- asProjectUrl,
334
- asOriginalUrl,
335
- projectDirectoryUrl,
336
- }) => {
337
- const importedFileUrl = asProjectUrl(importedFileRollupUrl)
338
- const importedFileContent = await readFile(importedFileUrl)
339
- const looksLikeCommonJs =
340
- importedFileContent.includes("module.exports = ") ||
341
- importedFileContent.includes("exports.")
342
-
343
- if (!looksLikeCommonJs) {
344
- return null
345
- }
346
-
347
- const importerFileOriginalUrl = asOriginalUrl(importedFileUrl)
348
- const importedFileOriginalRelativeUrl = urlToRelativeUrl(
349
- importerFileOriginalUrl,
350
- projectDirectoryUrl,
351
- )
352
- return {
353
- suggestion: `The file seems written in commonjs, you should use "customCompiler" to convert it to js module
354
- {
355
- "./${importedFileOriginalRelativeUrl}": commonJsToJsModule
356
- }
357
- As documented in https://github.com/jsenv/jsenv-core/blob/master/docs/shared-parameters.md#customcompilers`,
358
- }
359
- }
@@ -1,55 +0,0 @@
1
- import { urlToFileSystemPath } from "@jsenv/filesystem"
2
-
3
- export const applyPostCss = async ({
4
- code,
5
- url,
6
- map,
7
- sourcemapMethod = "comment",
8
- plugins,
9
- // https://github.com/postcss/postcss#options
10
- options = {},
11
- }) => {
12
- const { default: postcss } = await import("postcss")
13
-
14
- try {
15
- const cssFileUrl = urlToFileUrl(url)
16
- const result = await postcss(plugins).process(code, {
17
- collectUrls: true,
18
- from: urlToFileSystemPath(cssFileUrl),
19
- to: urlToFileSystemPath(cssFileUrl),
20
- map: {
21
- annotation: sourcemapMethod === "comment",
22
- inline: sourcemapMethod === "inline",
23
- // https://postcss.org/api/#sourcemapoptions
24
- ...(map ? { prev: JSON.stringify(map) } : {}),
25
- },
26
- ...options,
27
- })
28
- return {
29
- code: result.css,
30
- map: result.map.toJSON(),
31
- postCssMessages: result.messages,
32
- }
33
- } catch (error) {
34
- if (error.name === "CssSyntaxError") {
35
- console.error(String(error))
36
- throw error
37
- }
38
- throw error
39
- }
40
- }
41
-
42
- // the goal of this function is to take an url that is likely an http url
43
- // info a file:// url
44
- // for instance http://example.com/dir/file.js
45
- // must becomes file:///dir/file.js
46
- // but in windows it must be file://C:/dir/file.js
47
- const filesystemRootUrl = new URL("/", import.meta.url)
48
- const urlToFileUrl = (url) => {
49
- if (url.startsWith("file://")) {
50
- return url
51
- }
52
- const origin = new URL(url).origin
53
- const afterOrigin = url.slice(origin.length)
54
- return new URL(afterOrigin, filesystemRootUrl).href
55
- }
@@ -1,260 +0,0 @@
1
- import {
2
- urlToFilename,
3
- urlToRelativeUrl,
4
- resolveUrl,
5
- fileSystemPathToUrl,
6
- } from "@jsenv/filesystem"
7
-
8
- import {
9
- generateSourcemapUrl,
10
- getCssSourceMappingUrl,
11
- setCssSourceMappingUrl,
12
- } from "@jsenv/core/src/internal/sourcemap_utils.js"
13
-
14
- import { getRessourceAsBase64Url } from "../ressource_builder_util.js"
15
- import { parseCssUrls } from "./parse_css_urls.js"
16
- import { replaceCssUrls } from "./replace_css_urls.js"
17
- import { moveCssUrls } from "./move_css_urls.js"
18
-
19
- export const parseCssRessource = async (
20
- cssRessource,
21
- { notifyReferenceFound },
22
- {
23
- jsenvRemoteDirectory,
24
- asProjectUrl,
25
- asOriginalUrl,
26
- minify,
27
- minifyCssOptions,
28
- cssConcatenation,
29
- },
30
- ) => {
31
- const cssString = String(cssRessource.bufferBeforeBuild)
32
- const cssSourcemapUrl = getCssSourceMappingUrl(cssString)
33
- const cssUrl = cssRessource.url
34
- let code = cssString
35
- let map
36
- let sourcemapReference
37
- if (cssSourcemapUrl) {
38
- sourcemapReference = notifyReferenceFound({
39
- referenceLabel: "css sourcemaping comment",
40
- contentTypeExpected: ["application/json", "application/octet-stream"],
41
- ressourceSpecifier: cssSourcemapUrl,
42
- // we don't really know the line or column
43
- // but let's asusme it the last line and first column
44
- referenceLine: cssString.split(/\r?\n/).length - 1,
45
- referenceColumn: 0,
46
- isSourcemap: true,
47
- })
48
- await sourcemapReference.ressource.getBufferAvailablePromise()
49
- map = JSON.parse(String(sourcemapReference.ressource.bufferBeforeBuild))
50
- } else {
51
- sourcemapReference = notifyReferenceFound({
52
- referenceLabel: "css sourcemaping comment",
53
- contentType: "application/octet-stream",
54
- ressourceSpecifier: urlToRelativeUrl(
55
- generateSourcemapUrl(cssUrl),
56
- cssUrl,
57
- ),
58
- isPlaceholder: true,
59
- isSourcemap: true,
60
- })
61
- }
62
-
63
- const { atImports, urlDeclarations } = await parseCssUrls({
64
- code,
65
- url: cssUrl,
66
- })
67
- const urlNodeReferenceMapping = new Map()
68
- const atImportReferences = []
69
- atImports.forEach((atImport) => {
70
- const importReference = notifyReferenceFound({
71
- referenceLabel: "css @import",
72
- ressourceSpecifier: atImport.specifier,
73
- ...cssNodeToReferenceLocation(atImport.urlDeclarationNode),
74
- })
75
- urlNodeReferenceMapping.set(atImport.urlNode, importReference)
76
- atImportReferences.push(importReference)
77
- })
78
- urlDeclarations.forEach((urlDeclaration) => {
79
- if (urlDeclaration.specifier[0] === "#") {
80
- return
81
- }
82
- const urlReference = notifyReferenceFound({
83
- referenceLabel: "css url",
84
- ressourceSpecifier: urlDeclaration.specifier,
85
- ...cssNodeToReferenceLocation(urlDeclaration.urlDeclarationNode),
86
- })
87
- urlNodeReferenceMapping.set(urlDeclaration.urlNode, urlReference)
88
- })
89
-
90
- return async ({ getUrlRelativeToImporter, buildDirectoryUrl }) => {
91
- const sourcemapRessource = sourcemapReference.ressource
92
- const cssCompiledUrl = cssRessource.url
93
- const cssOriginalUrl = asOriginalUrl(cssCompiledUrl)
94
-
95
- const replaceCssResult = await replaceCssUrls({
96
- url: asProjectUrl(cssCompiledUrl),
97
- code,
98
- map,
99
- urlVisitor: ({ urlNode }) => {
100
- const nodeCandidates = Array.from(urlNodeReferenceMapping.keys())
101
- const urlNodeFound = nodeCandidates.find((urlNodeCandidate) =>
102
- isSameCssDocumentUrlNode(urlNodeCandidate, urlNode),
103
- )
104
- if (!urlNodeFound) {
105
- return urlNode.value
106
- }
107
- // url node nous dit quel référence y correspond
108
- const urlNodeReference = urlNodeReferenceMapping.get(urlNodeFound)
109
- const cssUrlRessource = urlNodeReference.ressource
110
- const { isExternal } = cssUrlRessource
111
- if (isExternal) {
112
- return urlNode.value
113
- }
114
- const { isInline } = cssUrlRessource
115
- if (isInline) {
116
- return getRessourceAsBase64Url(cssUrlRessource)
117
- }
118
- return getUrlRelativeToImporter(cssUrlRessource)
119
- },
120
- cssConcatenation,
121
- loadCssImport: async (path) => {
122
- // const cssFileUrl = asProjectUrl(url)
123
- const importedCssFileUrl = fileSystemPathToUrl(path)
124
- const atImportReference = atImportReferences.find(
125
- (atImportReference) => {
126
- return (
127
- asProjectUrl(atImportReference.ressource.url) ===
128
- importedCssFileUrl
129
- )
130
- },
131
- )
132
- atImportReference.inlinedCallback()
133
- let code = String(atImportReference.ressource.bufferAfterBuild)
134
- const from = resolveUrl(
135
- atImportReference.ressource.buildRelativeUrl,
136
- buildDirectoryUrl,
137
- )
138
- const to = resolveUrl(
139
- cssRessource.buildRelativeUrlWithoutHash,
140
- buildDirectoryUrl,
141
- )
142
- const moveResult = await moveCssUrls({
143
- code,
144
- from,
145
- to,
146
- // moveCssUrls will change the css source code
147
- // Ideally we should update the sourcemap referenced by css
148
- // to target the one after css urls are moved.
149
- // It means we should force sourcemap ressource to the new one
150
- // until it's supported we prevent postcss from updating the
151
- // sourcemap comment, othwise css would reference a sourcemap
152
- // that won't by in the build directory
153
- sourcemapMethod: null,
154
- })
155
- code = moveResult.code
156
- return code
157
- },
158
- cssMinification: minify,
159
- cssMinificationOptions: minifyCssOptions,
160
- })
161
- code = replaceCssResult.code
162
- map = replaceCssResult.map
163
- cssRessource.buildEnd(code)
164
-
165
- // In theory code should never be modified once buildEnd() is called
166
- // because buildRelativeUrl might be versioned based on file content
167
- // There is an exception for sourcemap because we want to update sourcemap.file
168
- // to the cached filename of the css file.
169
- // To achieve that we set/update the sourceMapping url comment in compiled css file.
170
- // This is totally fine to do that because sourcemap and css file lives togethers
171
- // so this comment changes nothing regarding cache invalidation and is not important
172
- // to decide buildRelativeUrl for this css file.
173
- const cssBuildUrl = resolveUrl(
174
- cssRessource.buildRelativeUrl,
175
- buildDirectoryUrl,
176
- )
177
- const sourcemapPrecomputedBuildUrl = generateSourcemapUrl(cssBuildUrl)
178
- map.file = urlToFilename(cssBuildUrl)
179
- if (map.sources) {
180
- map.sources = map.sources.map((source) => {
181
- const sourceUrl = resolveUrl(source, cssOriginalUrl)
182
- if (jsenvRemoteDirectory.isFileUrlForRemoteUrl(sourceUrl)) {
183
- const sourceRemoteUrl =
184
- jsenvRemoteDirectory.remoteUrlFromFileUrl(sourceUrl)
185
- return sourceRemoteUrl
186
- }
187
- const sourceUrlRelativeToSourceMap = urlToRelativeUrl(
188
- sourceUrl,
189
- sourcemapPrecomputedBuildUrl,
190
- )
191
- return sourceUrlRelativeToSourceMap
192
- })
193
- }
194
- const mapSource = JSON.stringify(map, null, " ")
195
- sourcemapRessource.buildEnd(mapSource)
196
-
197
- const sourcemapBuildUrl = resolveUrl(
198
- sourcemapRessource.buildRelativeUrl,
199
- buildDirectoryUrl,
200
- )
201
- const sourcemapUrlForCss = urlToRelativeUrl(sourcemapBuildUrl, cssBuildUrl)
202
- const codeWithSourcemapComment = setCssSourceMappingUrl(
203
- code,
204
- sourcemapUrlForCss,
205
- )
206
- cssRessource.bufferAfterBuild = codeWithSourcemapComment
207
- }
208
- }
209
-
210
- const cssNodeToReferenceLocation = (node) => {
211
- const { line, column } = node.source.start
212
- return {
213
- referenceLine: line,
214
- referenceColumn: column,
215
- }
216
- }
217
-
218
- const isSameCssDocumentUrlNode = (firstUrlNode, secondUrlNode) => {
219
- if (!compareUrlNodeTypes(firstUrlNode.type, secondUrlNode.type)) {
220
- return false
221
- }
222
- if (!compareUrlNodeValue(firstUrlNode.value, secondUrlNode.value)) {
223
- return false
224
- }
225
- // maybe this sourceIndex should be removed in case there is some css transformation one day?
226
- // it does not seems to change though as if it was refering the original file source index
227
- if (firstUrlNode.sourceIndex !== secondUrlNode.sourceIndex) {
228
- return false
229
- }
230
- return true
231
- }
232
-
233
- // minification may change url node type from string to word
234
- // that's still the same node
235
- const compareUrlNodeTypes = (firstUrlNodeType, secondUrlNodeType) => {
236
- if (firstUrlNodeType === secondUrlNodeType) {
237
- return true
238
- }
239
- if (firstUrlNodeType === "word" && secondUrlNodeType === "string") {
240
- return true
241
- }
242
- if (firstUrlNodeType === "string" && secondUrlNodeType === "word") {
243
- return true
244
- }
245
- return false
246
- }
247
-
248
- // minification may change url node value from './whatever.png' to 'whatever.png'
249
- // the value still revolves to the same ressource
250
- const compareUrlNodeValue = (firstUrlNodeValue, secondUrlNodeValue) => {
251
- const firstValueNormalized = urlToRelativeUrl(
252
- resolveUrl(firstUrlNodeValue, "file:///"),
253
- "file:///",
254
- )
255
- const secondValueNormalized = urlToRelativeUrl(
256
- resolveUrl(secondUrlNodeValue, "file:///"),
257
- "file:///",
258
- )
259
- return firstValueNormalized === secondValueNormalized
260
- }