@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,100 +0,0 @@
1
- import { resolveUrl, urlToExtension } from "@jsenv/filesystem"
2
-
3
- import { isReferencedOnlyByRessourceHint } from "./ressource_builder_util.js"
4
-
5
- export const createBuildStats = ({
6
- buildFileContents,
7
- ressourceBuilder,
8
- buildDuration,
9
- }) => {
10
- const projectFileContents = getProjectFileContents(ressourceBuilder)
11
- const projectFileSizeInfo = sizeInfoFromFileContents(projectFileContents)
12
-
13
- const { sourceFileContents, sourcemapFileContents } =
14
- extractSourcemapFiles(buildFileContents)
15
- const buildFileSizeInfo = sizeInfoFromFileContents(sourceFileContents)
16
- const sourcemapFileSizeInfo = sizeInfoFromFileContents(sourcemapFileContents)
17
-
18
- return {
19
- projectFileSizes: projectFileSizeInfo.fileSizes,
20
- projectTotalFileSize: projectFileSizeInfo.totalSize,
21
- buildFileSizes: buildFileSizeInfo.fileSizes,
22
- buildFileTotalSize: buildFileSizeInfo.totalSize,
23
- buildSourcemapFileSizes: sourcemapFileSizeInfo.fileSizes,
24
- buildSourcemapFileTotalSize: sourcemapFileSizeInfo.totalSize,
25
- buildDuration,
26
- }
27
- }
28
-
29
- const extractSourcemapFiles = (fileContents) => {
30
- const sourceFileContents = {}
31
- const sourcemapFileContents = {}
32
- Object.keys(fileContents).forEach((key) => {
33
- const url = resolveUrl(key, "http://example.com")
34
- if (urlToExtension(url) === ".map") {
35
- sourcemapFileContents[key] = fileContents[key]
36
- } else {
37
- sourceFileContents[key] = fileContents[key]
38
- }
39
- })
40
- return {
41
- sourceFileContents,
42
- sourcemapFileContents,
43
- }
44
- }
45
-
46
- const sizeInfoFromFileContents = (fileContents) => {
47
- const fileSizes = {}
48
- let totalSize = 0
49
- Object.keys(fileContents).forEach((key) => {
50
- const fileSize = Buffer.byteLength(fileContents[key])
51
- fileSizes[key] = fileSize
52
- totalSize += fileSize
53
- })
54
- return { fileSizes, totalSize }
55
- }
56
-
57
- const getProjectFileContents = (ressourceBuilder) => {
58
- const projectFileContents = {}
59
- const { ressourceMap } = ressourceBuilder.inspect()
60
-
61
- Object.keys(ressourceMap).forEach((url) => {
62
- const ressource = ressourceMap[url]
63
- const {
64
- isInline,
65
- isExternal,
66
- isPlaceholder,
67
- isSourcemap,
68
- bufferBeforeBuild,
69
- } = ressource
70
- if (isInline) {
71
- // inline ressources are not files
72
- return
73
- }
74
- if (isExternal) {
75
- // external ressource are not handled, we would not have the bufferBeforeBuild
76
- return
77
- }
78
- if (isReferencedOnlyByRessourceHint(ressource)) {
79
- // ressource is only referenced by ressource hint (link preload for example)
80
- // it's never actually loaded
81
- // -> we don't gave the bufferBeforeBuild (the ressource file content)
82
- return
83
- }
84
- if (isPlaceholder) {
85
- // placeholders (used for sourcemap files)
86
- // means the file did not exists in the project is there is a placeholder
87
- // to generate it in the build
88
- return
89
- }
90
- if (isSourcemap && !bufferBeforeBuild) {
91
- // sourcemap generated by rollup do not have bufferBeforeBuild
92
- return
93
- }
94
- if (!bufferBeforeBuild) {
95
- throw new Error(`bufferBeforeBuild missing for ${url}`)
96
- }
97
- projectFileContents[url] = bufferBeforeBuild
98
- })
99
- return projectFileContents
100
- }
@@ -1,153 +0,0 @@
1
- import { urlToBasename, urlToExtension } from "@jsenv/filesystem"
2
-
3
- import { generateContentHash } from "./url_versioning.js"
4
-
5
- export const createBuildUrlGenerator = ({
6
- entryPointUrls,
7
- asOriginalUrl,
8
- lineBreakNormalization,
9
- }) => {
10
- const availableNameGenerator = createAvailableNameGenerator()
11
-
12
- const prepareBuildUrlForRessource = (ressource) => {
13
- const buildRelativeUrlPattern = getBuildRelativeUrlPattern({
14
- entryPointUrls,
15
- asOriginalUrl,
16
- availableNameGenerator,
17
- ressource,
18
- })
19
- const buildRelativeUrlWithoutHash = buildRelativeUrlPattern.replace(
20
- "_[hash]",
21
- "",
22
- )
23
- return {
24
- buildRelativeUrlPattern,
25
- buildRelativeUrlWithoutHash,
26
- }
27
- }
28
-
29
- const computeBuildRelativeUrl = (ressource) => {
30
- const buildRelativeUrl = renderFileNamePattern(
31
- ressource.buildRelativeUrlPattern,
32
- {
33
- hash: () =>
34
- generateContentHash(ressource.bufferAfterBuild, {
35
- contentType: ressource.contentType,
36
- lineBreakNormalization,
37
- }),
38
- },
39
- )
40
- return buildRelativeUrl
41
- }
42
-
43
- return { prepareBuildUrlForRessource, computeBuildRelativeUrl }
44
- }
45
-
46
- const getBuildRelativeUrlPattern = ({
47
- entryPointUrls,
48
- asOriginalUrl,
49
- availableNameGenerator,
50
- ressource,
51
- }) => {
52
- if (ressource.isEntryPoint) {
53
- const originalUrl = asOriginalUrl(ressource.url)
54
- const entryPointBuildRelativeUrlPattern = entryPointUrls[originalUrl]
55
- return entryPointBuildRelativeUrlPattern
56
- }
57
-
58
- // inline ressource
59
- // TODO: should inherit importer directory location because inline
60
- if (ressource.isInline) {
61
- // const importerBuildRelativeUrlWithoutHash =
62
- // ressource.importer.buildRelativeUrlWithoutHash
63
- const name = urlToBasename(ressource.url)
64
- const extension = urlToExtension(ressource.url)
65
- // no need to ensure name is unique because it's already done
66
- return `${name}_[hash]${extension}`
67
- }
68
-
69
- // importmap.
70
- // the goal is to put the importmap at the same relative path
71
- // than in the project to avoid having to re-resolve mappings
72
- if (ressource.contentType === "application/importmap+json") {
73
- const name = availableNameGenerator.getAvailableNameInDirectory(
74
- urlToBasename(ressource.url),
75
- "/",
76
- )
77
- const extension = urlToExtension(ressource.url)
78
- return `${name}_[hash]${extension}`
79
- }
80
-
81
- // service worker:
82
- // - MUST be at the root (same level than the HTML file)
83
- // otherwise it might be registered for the scope "/assets/" instead of "/"
84
- // - MUST not be versioned
85
- if (ressource.isServiceWorker) {
86
- const name = availableNameGenerator.getAvailableNameInDirectory(
87
- urlToBasename(ressource.url),
88
- "/",
89
- )
90
- const extension = urlToExtension(ressource.url)
91
- return `${name}${extension}`
92
- }
93
-
94
- if (ressource.isWorker) {
95
- const name = availableNameGenerator.getAvailableNameInDirectory(
96
- urlToBasename(ressource.url),
97
- "/",
98
- )
99
- const extension = urlToExtension(ressource.url)
100
- return `${name}_[hash]${extension}`
101
- }
102
-
103
- if (ressource.isJsModule) {
104
- const name = availableNameGenerator.getAvailableNameInDirectory(
105
- urlToBasename(ressource.url),
106
- "/",
107
- )
108
- return `${name}_[hash].js`
109
- }
110
-
111
- const name = availableNameGenerator.getAvailableNameInDirectory(
112
- urlToBasename(ressource.url),
113
- "assets/",
114
- )
115
- const extension = urlToExtension(ressource.url)
116
- return ressource.urlVersioningDisabled
117
- ? `assets/${name}${extension}`
118
- : `assets/${name}_[hash]${extension}`
119
- }
120
-
121
- const createAvailableNameGenerator = () => {
122
- const cache = {}
123
- const getAvailableNameInDirectory = (name, directory) => {
124
- let names = cache[directory]
125
- if (!names) {
126
- names = []
127
- cache[directory] = names
128
- }
129
-
130
- let nameCandidate = name
131
- let integer = 1
132
- // eslint-disable-next-line no-constant-condition
133
- while (true) {
134
- if (!names.includes(nameCandidate)) {
135
- names.push(nameCandidate)
136
- return nameCandidate
137
- }
138
- integer++
139
- nameCandidate = `${name}${integer}`
140
- }
141
- }
142
-
143
- return {
144
- getAvailableNameInDirectory,
145
- }
146
- }
147
-
148
- const renderFileNamePattern = (pattern, replacements) => {
149
- return pattern.replace(/\[(\w+)\]/g, (_match, type) => {
150
- const replacement = replacements[type](_match)
151
- return replacement
152
- })
153
- }
@@ -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,44 +0,0 @@
1
- import { urlToRelativeUrl } from "@jsenv/filesystem"
2
-
3
- import { applyPostCss } from "./applyPostCss.js"
4
- import { postCssPluginUrlVisitor } from "./postcss_plugin_url_visitor.js"
5
-
6
- export const moveCssUrls = async ({
7
- code,
8
- from,
9
- to,
10
- map,
11
- sourcemapMethod,
12
- } = {}) => {
13
- const fromDirectoryUrl = new URL("./", from).href
14
- const toDirectoryUrl = new URL("./", to).href
15
- // same directory, nothing to do
16
- if (fromDirectoryUrl === toDirectoryUrl) {
17
- return { code, map }
18
- }
19
-
20
- const result = await applyPostCss({
21
- code,
22
- url: from,
23
- map,
24
- sourcemapMethod,
25
- plugins: [
26
- postCssPluginUrlVisitor({
27
- urlVisitor: ({ specifier }) => {
28
- if (specifier[0] === "#") {
29
- return null
30
- }
31
- const url = new URL(specifier, fromDirectoryUrl).href
32
- const relativeUrl = urlToRelativeUrl(url, toDirectoryUrl)
33
- return relativeUrl
34
- },
35
- }),
36
- ],
37
- })
38
- code = result.code
39
- map = result.map
40
- return {
41
- code,
42
- map,
43
- }
44
- }
@@ -1,259 +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/sourceMappingURLUtils.js"
13
- import { getRessourceAsBase64Url } from "../ressource_builder_util.js"
14
- import { parseCssUrls } from "./parseCssUrls.js"
15
- import { replaceCssUrls } from "./replaceCssUrls.js"
16
- import { moveCssUrls } from "./moveCssUrls.js"
17
-
18
- export const parseCssRessource = async (
19
- cssRessource,
20
- { notifyReferenceFound },
21
- {
22
- jsenvRemoteDirectory,
23
- asProjectUrl,
24
- asOriginalUrl,
25
- minify,
26
- minifyCssOptions,
27
- cssConcatenation,
28
- },
29
- ) => {
30
- const cssString = String(cssRessource.bufferBeforeBuild)
31
- const cssSourcemapUrl = getCssSourceMappingUrl(cssString)
32
- const cssUrl = cssRessource.url
33
- let code = cssString
34
- let map
35
- let sourcemapReference
36
- if (cssSourcemapUrl) {
37
- sourcemapReference = notifyReferenceFound({
38
- referenceLabel: "css sourcemaping comment",
39
- contentTypeExpected: ["application/json", "application/octet-stream"],
40
- ressourceSpecifier: cssSourcemapUrl,
41
- // we don't really know the line or column
42
- // but let's asusme it the last line and first column
43
- referenceLine: cssString.split(/\r?\n/).length - 1,
44
- referenceColumn: 0,
45
- isSourcemap: true,
46
- })
47
- await sourcemapReference.ressource.getBufferAvailablePromise()
48
- map = JSON.parse(String(sourcemapReference.ressource.bufferBeforeBuild))
49
- } else {
50
- sourcemapReference = notifyReferenceFound({
51
- referenceLabel: "css sourcemaping comment",
52
- contentType: "application/octet-stream",
53
- ressourceSpecifier: urlToRelativeUrl(
54
- generateSourcemapUrl(cssUrl),
55
- cssUrl,
56
- ),
57
- isPlaceholder: true,
58
- isSourcemap: true,
59
- })
60
- }
61
-
62
- const { atImports, urlDeclarations } = await parseCssUrls({
63
- code,
64
- url: cssUrl,
65
- })
66
- const urlNodeReferenceMapping = new Map()
67
- const atImportReferences = []
68
- atImports.forEach((atImport) => {
69
- const importReference = notifyReferenceFound({
70
- referenceLabel: "css @import",
71
- ressourceSpecifier: atImport.specifier,
72
- ...cssNodeToReferenceLocation(atImport.urlDeclarationNode),
73
- })
74
- urlNodeReferenceMapping.set(atImport.urlNode, importReference)
75
- atImportReferences.push(importReference)
76
- })
77
- urlDeclarations.forEach((urlDeclaration) => {
78
- if (urlDeclaration.specifier[0] === "#") {
79
- return
80
- }
81
- const urlReference = notifyReferenceFound({
82
- referenceLabel: "css url",
83
- ressourceSpecifier: urlDeclaration.specifier,
84
- ...cssNodeToReferenceLocation(urlDeclaration.urlDeclarationNode),
85
- })
86
- urlNodeReferenceMapping.set(urlDeclaration.urlNode, urlReference)
87
- })
88
-
89
- return async ({ getUrlRelativeToImporter, buildDirectoryUrl }) => {
90
- const sourcemapRessource = sourcemapReference.ressource
91
- const cssCompiledUrl = cssRessource.url
92
- const cssOriginalUrl = asOriginalUrl(cssCompiledUrl)
93
-
94
- const replaceCssResult = await replaceCssUrls({
95
- url: asProjectUrl(cssCompiledUrl),
96
- code,
97
- map,
98
- urlVisitor: ({ urlNode }) => {
99
- const nodeCandidates = Array.from(urlNodeReferenceMapping.keys())
100
- const urlNodeFound = nodeCandidates.find((urlNodeCandidate) =>
101
- isSameCssDocumentUrlNode(urlNodeCandidate, urlNode),
102
- )
103
- if (!urlNodeFound) {
104
- return urlNode.value
105
- }
106
- // url node nous dit quel référence y correspond
107
- const urlNodeReference = urlNodeReferenceMapping.get(urlNodeFound)
108
- const cssUrlRessource = urlNodeReference.ressource
109
- const { isExternal } = cssUrlRessource
110
- if (isExternal) {
111
- return urlNode.value
112
- }
113
- const { isInline } = cssUrlRessource
114
- if (isInline) {
115
- return getRessourceAsBase64Url(cssUrlRessource)
116
- }
117
- return getUrlRelativeToImporter(cssUrlRessource)
118
- },
119
- cssConcatenation,
120
- loadCssImport: async (path) => {
121
- // const cssFileUrl = asProjectUrl(url)
122
- const importedCssFileUrl = fileSystemPathToUrl(path)
123
- const atImportReference = atImportReferences.find(
124
- (atImportReference) => {
125
- return (
126
- asProjectUrl(atImportReference.ressource.url) ===
127
- importedCssFileUrl
128
- )
129
- },
130
- )
131
- atImportReference.inlinedCallback()
132
- let code = String(atImportReference.ressource.bufferAfterBuild)
133
- const from = resolveUrl(
134
- atImportReference.ressource.buildRelativeUrl,
135
- buildDirectoryUrl,
136
- )
137
- const to = resolveUrl(
138
- cssRessource.buildRelativeUrlWithoutHash,
139
- buildDirectoryUrl,
140
- )
141
- const moveResult = await moveCssUrls({
142
- code,
143
- from,
144
- to,
145
- // moveCssUrls will change the css source code
146
- // Ideally we should update the sourcemap referenced by css
147
- // to target the one after css urls are moved.
148
- // It means we should force sourcemap ressource to the new one
149
- // until it's supported we prevent postcss from updating the
150
- // sourcemap comment, othwise css would reference a sourcemap
151
- // that won't by in the build directory
152
- sourcemapMethod: null,
153
- })
154
- code = moveResult.code
155
- return code
156
- },
157
- cssMinification: minify,
158
- cssMinificationOptions: minifyCssOptions,
159
- })
160
- code = replaceCssResult.code
161
- map = replaceCssResult.map
162
- cssRessource.buildEnd(code)
163
-
164
- // In theory code should never be modified once buildEnd() is called
165
- // because buildRelativeUrl might be versioned based on file content
166
- // There is an exception for sourcemap because we want to update sourcemap.file
167
- // to the cached filename of the css file.
168
- // To achieve that we set/update the sourceMapping url comment in compiled css file.
169
- // This is totally fine to do that because sourcemap and css file lives togethers
170
- // so this comment changes nothing regarding cache invalidation and is not important
171
- // to decide buildRelativeUrl for this css file.
172
- const cssBuildUrl = resolveUrl(
173
- cssRessource.buildRelativeUrl,
174
- buildDirectoryUrl,
175
- )
176
- const sourcemapPrecomputedBuildUrl = generateSourcemapUrl(cssBuildUrl)
177
- map.file = urlToFilename(cssBuildUrl)
178
- if (map.sources) {
179
- map.sources = map.sources.map((source) => {
180
- const sourceUrl = resolveUrl(source, cssOriginalUrl)
181
- if (jsenvRemoteDirectory.isFileUrlForRemoteUrl(sourceUrl)) {
182
- const sourceRemoteUrl =
183
- jsenvRemoteDirectory.remoteUrlFromFileUrl(sourceUrl)
184
- return sourceRemoteUrl
185
- }
186
- const sourceUrlRelativeToSourceMap = urlToRelativeUrl(
187
- sourceUrl,
188
- sourcemapPrecomputedBuildUrl,
189
- )
190
- return sourceUrlRelativeToSourceMap
191
- })
192
- }
193
- const mapSource = JSON.stringify(map, null, " ")
194
- sourcemapRessource.buildEnd(mapSource)
195
-
196
- const sourcemapBuildUrl = resolveUrl(
197
- sourcemapRessource.buildRelativeUrl,
198
- buildDirectoryUrl,
199
- )
200
- const sourcemapUrlForCss = urlToRelativeUrl(sourcemapBuildUrl, cssBuildUrl)
201
- const codeWithSourcemapComment = setCssSourceMappingUrl(
202
- code,
203
- sourcemapUrlForCss,
204
- )
205
- cssRessource.bufferAfterBuild = codeWithSourcemapComment
206
- }
207
- }
208
-
209
- const cssNodeToReferenceLocation = (node) => {
210
- const { line, column } = node.source.start
211
- return {
212
- referenceLine: line,
213
- referenceColumn: column,
214
- }
215
- }
216
-
217
- const isSameCssDocumentUrlNode = (firstUrlNode, secondUrlNode) => {
218
- if (!compareUrlNodeTypes(firstUrlNode.type, secondUrlNode.type)) {
219
- return false
220
- }
221
- if (!compareUrlNodeValue(firstUrlNode.value, secondUrlNode.value)) {
222
- return false
223
- }
224
- // maybe this sourceIndex should be removed in case there is some css transformation one day?
225
- // it does not seems to change though as if it was refering the original file source index
226
- if (firstUrlNode.sourceIndex !== secondUrlNode.sourceIndex) {
227
- return false
228
- }
229
- return true
230
- }
231
-
232
- // minification may change url node type from string to word
233
- // that's still the same node
234
- const compareUrlNodeTypes = (firstUrlNodeType, secondUrlNodeType) => {
235
- if (firstUrlNodeType === secondUrlNodeType) {
236
- return true
237
- }
238
- if (firstUrlNodeType === "word" && secondUrlNodeType === "string") {
239
- return true
240
- }
241
- if (firstUrlNodeType === "string" && secondUrlNodeType === "word") {
242
- return true
243
- }
244
- return false
245
- }
246
-
247
- // minification may change url node value from './whatever.png' to 'whatever.png'
248
- // the value still revolves to the same ressource
249
- const compareUrlNodeValue = (firstUrlNodeValue, secondUrlNodeValue) => {
250
- const firstValueNormalized = urlToRelativeUrl(
251
- resolveUrl(firstUrlNodeValue, "file:///"),
252
- "file:///",
253
- )
254
- const secondValueNormalized = urlToRelativeUrl(
255
- resolveUrl(secondUrlNodeValue, "file:///"),
256
- "file:///",
257
- )
258
- return firstValueNormalized === secondValueNormalized
259
- }
@@ -1,38 +0,0 @@
1
- import { applyPostCss } from "./applyPostCss.js"
2
- import { postCssPluginUrlVisitor } from "./postcss_plugin_url_visitor.js"
3
-
4
- export const parseCssUrls = async ({ code, url = "file:///file.css" }) => {
5
- const atImports = []
6
- const urlDeclarations = []
7
- await applyPostCss({
8
- code,
9
- url,
10
- plugins: [
11
- postCssPluginUrlVisitor({
12
- urlVisitor: ({
13
- type,
14
- specifier,
15
- atImportNode,
16
- declarationNode,
17
- urlNode,
18
- }) => {
19
- if (type === "import") {
20
- atImports.push({
21
- specifier,
22
- urlNode,
23
- urlDeclarationNode: atImportNode,
24
- })
25
- }
26
- if (type === "asset") {
27
- urlDeclarations.push({
28
- specifier,
29
- urlNode,
30
- urlDeclarationNode: declarationNode,
31
- })
32
- }
33
- },
34
- }),
35
- ],
36
- })
37
- return { atImports, urlDeclarations }
38
- }