@jsenv/core 26.0.1 → 27.0.0-alpha.10

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 +867 -0
  5. package/src/build/build_urls_generator.js +73 -0
  6. package/src/build/inject_service_worker_urls.js +25 -0
  7. package/src/build/inject_version_mappings.js +63 -0
  8. package/src/build/plugins/bundle_js_module/jsenv_plugin_bundle_js_module.js +227 -0
  9. package/src/build/plugins/minify_html/jsenv_plugin_minify_html.js +30 -0
  10. package/src/build/plugins/minify_js/jsenv_plugin_minify_js.js +47 -0
  11. package/src/dev/plugins/autoreload/babel_plugin_metadata_import_meta_hot.js +98 -0
  12. package/src/dev/plugins/autoreload/client/autoreload_preference.js +11 -0
  13. package/src/dev/plugins/autoreload/client/event_source_client.js +186 -0
  14. package/src/{internal/dev_server/event_source_client → dev/plugins/autoreload/client}/event_source_connection.js +21 -25
  15. package/src/dev/plugins/autoreload/client/import_meta_hot.js +80 -0
  16. package/src/dev/plugins/autoreload/client/reload.js +101 -0
  17. package/src/dev/plugins/autoreload/client/url_helpers.js +20 -0
  18. package/src/dev/plugins/autoreload/html_hot_dependencies.js +156 -0
  19. package/src/dev/plugins/autoreload/jsenv_plugin_autoreload.js +374 -0
  20. package/src/dev/plugins/autoreload/sse_service.js +149 -0
  21. package/src/dev/plugins/explorer/client/explorer.html +607 -0
  22. package/src/{internal → dev/plugins/explorer/client}/jsenv.png +0 -0
  23. package/src/dev/plugins/explorer/jsenv_plugin_explorer.js +74 -0
  24. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/animation/toolbar_animation.js +0 -0
  25. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/eventsource/eventsource.css +2 -2
  26. package/src/dev/plugins/toolbar/client/eventsource/toolbar_eventsource.js +57 -0
  27. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/execution/execution.css +0 -0
  28. package/src/dev/plugins/toolbar/client/execution/toolbar_execution.js +88 -0
  29. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/focus/focus.css +0 -0
  30. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/focus/toolbar_focus.js +0 -0
  31. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/jsenv_logo.svg +0 -0
  32. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/notification/toolbar_notification.js +0 -0
  33. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/responsive/overflow_menu.css +0 -0
  34. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/responsive/toolbar_responsive.js +0 -0
  35. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/settings/settings.css +0 -0
  36. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/settings/toolbar_settings.js +1 -0
  37. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/theme/jsenv_theme.css +1 -15
  38. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/theme/light_theme.css +0 -17
  39. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/theme/toolbar_theme.js +0 -0
  40. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar.html +40 -199
  41. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar_injector.js +8 -28
  42. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar_main.css +0 -24
  43. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/toolbar_main.js +10 -56
  44. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/tooltip/tooltip.css +1 -1
  45. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/tooltip/tooltip.js +0 -0
  46. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/animation.js +0 -0
  47. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/dom.js +0 -0
  48. package/src/{internal/browser_utils → dev/plugins/toolbar/client/util}/fetch_using_xhr.js +0 -0
  49. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/fetching.js +2 -4
  50. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/iframe_to_parent_href.js +0 -0
  51. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/jsenv_logger.js +0 -0
  52. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/preferences.js +0 -0
  53. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/responsive.js +0 -0
  54. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/util/util.js +0 -0
  55. package/src/{internal/dev_server/toolbar → dev/plugins/toolbar/client}/variant/variant.js +0 -0
  56. package/src/dev/plugins/toolbar/jsenv_plugin_toolbar.js +62 -0
  57. package/src/dev/start_dev_server.js +108 -0
  58. package/src/execute/execute.js +138 -0
  59. package/src/execute/run.js +208 -0
  60. package/src/execute/runtimes/browsers/chromium.js +8 -0
  61. package/src/execute/runtimes/browsers/firefox.js +7 -0
  62. package/src/execute/runtimes/browsers/from_playwright.js +464 -0
  63. package/src/{browser_runtimes.js → execute/runtimes/browsers/webkit.js} +4 -18
  64. package/src/{internal/node_launcher/child_process_options.js → execute/runtimes/node/child_exec_options.js} +25 -36
  65. package/src/{internal/node_launcher/node_controllable_file.mjs → execute/runtimes/node/controllable_file.mjs} +1 -18
  66. package/src/{internal/node_launcher/node_controllable_process.js → execute/runtimes/node/controlled_process.js} +128 -150
  67. package/src/execute/runtimes/node/exec_options.js +44 -0
  68. package/src/{internal/node_launcher → execute/runtimes/node}/kill_process_tree.js +3 -1
  69. package/src/execute/runtimes/node/node_process.js +92 -0
  70. package/src/execute/runtimes/node/node_worker_thread.js +28 -0
  71. package/src/omega/core_plugins/babel/global_this/babel_plugin_global_this_as_jsenv_import.js +35 -0
  72. package/{helpers/global-this/global-this.js → src/omega/core_plugins/babel/global_this/client/global_this.js} +0 -0
  73. package/src/{internal/compile_server/js → omega/core_plugins/babel/helpers}/babel_plugin_babel_helpers_as_jsenv_imports.js +15 -20
  74. package/src/omega/core_plugins/babel/helpers/babel_plugin_structure.js +176 -0
  75. package/src/{internal/features → omega/core_plugins/babel/helpers}/babel_plugins_compatibility.js +1 -24
  76. package/src/omega/core_plugins/babel/jsenv_plugin_babel.js +111 -0
  77. package/src/omega/core_plugins/babel/new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js +117 -0
  78. package/{helpers/babel → src/omega/core_plugins/babel/new_stylesheet/client}/.eslintrc.cjs +1 -1
  79. package/{helpers/new_stylesheet → src/omega/core_plugins/babel/new_stylesheet/client}/new_stylesheet.js +0 -0
  80. package/src/omega/core_plugins/babel/regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js +34 -0
  81. package/{helpers/regenerator-runtime/regenerator-runtime.js → src/omega/core_plugins/babel/regenerator_runtime/client/regenerator_runtime.js} +0 -0
  82. package/src/omega/core_plugins/commonjs_globals/jsenv_plugin_commonjs_globals.js +169 -0
  83. package/src/omega/core_plugins/file_urls/jsenv_plugin_file_urls.js +67 -0
  84. package/src/omega/core_plugins/filesystem_magic/jsenv_plugin_filesystem_magic.js +58 -0
  85. package/src/{internal/browser_client → omega/core_plugins/html_supervisor/client}/error_in_document.js +10 -16
  86. package/src/{internal/browser_client → omega/core_plugins/html_supervisor/client}/error_in_notification.js +0 -0
  87. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_installer.js +168 -0
  88. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_setup.js +77 -0
  89. package/src/{internal/browser_client → omega/core_plugins/html_supervisor/client}/perf_browser.js +0 -0
  90. package/src/{internal/runtime_client → omega/core_plugins/html_supervisor/client}/uneval_exception.js +0 -0
  91. package/src/omega/core_plugins/html_supervisor/jsenv_plugin_html_supervisor.js +233 -0
  92. package/src/omega/core_plugins/import_assertions/helpers/babel_plugin_metadata_import_assertions.js +98 -0
  93. package/src/{internal/building/import_assertions → omega/core_plugins/import_assertions/helpers}/json_module.js +3 -2
  94. package/src/omega/core_plugins/import_assertions/helpers/text_module.js +6 -0
  95. package/src/omega/core_plugins/import_assertions/jsenv_plugin_import_assertions.js +211 -0
  96. package/src/omega/core_plugins/import_meta_scenarios/jsenv_plugin_import_meta_scenarios.js +90 -0
  97. package/src/omega/core_plugins/importmap/jsenv_plugin_importmap.js +212 -0
  98. package/src/omega/core_plugins/inject_globals/jsenv_plugin_inject_globals.js +27 -0
  99. package/src/omega/core_plugins/inline/client/inline_content.js +6 -0
  100. package/src/omega/core_plugins/inline/jsenv_plugin_data_urls.js +70 -0
  101. package/src/omega/core_plugins/inline/jsenv_plugin_inline.js +13 -0
  102. package/src/omega/core_plugins/inline/jsenv_plugin_inline_query_param.js +42 -0
  103. package/src/omega/core_plugins/inline/jsenv_plugin_js_and_css_inside_html.js +142 -0
  104. package/src/omega/core_plugins/inline/jsenv_plugin_new_inline_content.js +207 -0
  105. package/src/omega/core_plugins/leading_slash/jsenv_plugin_leading_slash.js +12 -0
  106. package/src/omega/core_plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +77 -0
  107. package/src/omega/core_plugins/url_resolution/jsenv_plugin_url_resolution.js +28 -0
  108. package/src/omega/core_plugins/url_version/jsenv_plugin_url_version.js +50 -0
  109. package/src/omega/core_plugins.js +42 -0
  110. package/src/omega/errors.js +168 -0
  111. package/src/omega/file_url_converter.js +21 -0
  112. package/src/omega/kitchen.js +776 -0
  113. package/src/omega/omega_server.js +129 -0
  114. package/src/omega/plugin_controller.js +240 -0
  115. package/src/omega/runtime_support/default_runtime_support.js +13 -0
  116. package/src/omega/runtime_support/features_compatibility.js +130 -0
  117. package/src/omega/runtime_support/runtime_support.js +52 -0
  118. package/src/omega/server/file_service.js +155 -0
  119. package/src/omega/server/user_agent.js +22 -0
  120. package/src/omega/url_graph/url_graph_load.js +69 -0
  121. package/src/omega/url_graph/url_graph_report.js +151 -0
  122. package/src/omega/url_graph/url_graph_sort.js +29 -0
  123. package/src/omega/url_graph/url_info_transformations.js +161 -0
  124. package/src/omega/url_graph.js +133 -0
  125. package/src/omega/url_mentions/css_url_mentions.js +63 -0
  126. package/src/omega/url_mentions/html_url_mentions.js +185 -0
  127. package/src/omega/url_mentions/js_module_url_mentions.js +91 -0
  128. package/src/omega/url_mentions/parse_url_mentions.js +37 -0
  129. package/src/omega/url_mentions/worker_classic_url_mentions.js +37 -0
  130. package/src/{internal/executing → test}/execute_plan.js +156 -211
  131. package/src/{execute_test_plan.js → test/execute_test_plan.js} +36 -81
  132. package/src/{internal/executing → test}/execution_colors.js +0 -0
  133. package/src/{internal/executing → test}/execution_steps.js +2 -8
  134. package/src/{internal/executing → test}/gc.js +0 -0
  135. package/src/test/logs_file_execution.js +223 -0
  136. package/dist/browser_client/asset-manifest.json +0 -4
  137. package/dist/browser_client/browser_client_fb33eaa4.js +0 -5320
  138. package/dist/browser_client/browser_client_fb33eaa4.js.map +0 -1089
  139. package/dist/build_manifest.js +0 -12
  140. package/dist/compile_proxy/asset-manifest.json +0 -4
  141. package/dist/compile_proxy/compile_proxy.html__inline__20_651d1e7b.js.map +0 -343
  142. package/dist/compile_proxy/compile_proxy_62f952c4.html +0 -2245
  143. package/dist/event_source_client/asset-manifest.json +0 -4
  144. package/dist/event_source_client/event_source_client_69f48287.js +0 -354
  145. package/dist/event_source_client/event_source_client_69f48287.js.map +0 -128
  146. package/dist/redirector/asset-manifest.json +0 -4
  147. package/dist/redirector/redirector.html__inline__12_171e07b4.js.map +0 -349
  148. package/dist/redirector/redirector_8117ec92.html +0 -2290
  149. package/dist/toolbar/asset-manifest.json +0 -13
  150. package/dist/toolbar/assets/compilation.css_7421bd55.map +0 -12
  151. package/dist/toolbar/assets/eventsource.css_c0c71e7b.map +0 -12
  152. package/dist/toolbar/assets/execution.css_f3377c10.map +0 -12
  153. package/dist/toolbar/assets/focus.css_896f3e45.map +0 -12
  154. package/dist/toolbar/assets/light_theme.css_5bff0336.map +0 -12
  155. package/dist/toolbar/assets/overflow_menu.css_9a0fc3d8.map +0 -12
  156. package/dist/toolbar/assets/settings.css_942b5a9e.map +0 -12
  157. package/dist/toolbar/assets/toolbar_main.css_b1c67dd7.map +0 -28
  158. package/dist/toolbar/assets/tooltip.css_a94a8bdd.map +0 -12
  159. package/dist/toolbar/toolbar_b0c9100c.html +0 -4976
  160. package/dist/toolbar/toolbar_main_f54c1bb0.js.map +0 -776
  161. package/dist/toolbar_injector/asset-manifest.json +0 -5
  162. package/dist/toolbar_injector/assets/jsenv_logo_192011c2.svg +0 -95
  163. package/dist/toolbar_injector/toolbar_injector_65b501eb.js +0 -976
  164. package/dist/toolbar_injector/toolbar_injector_65b501eb.js.map +0 -294
  165. package/helpers/babel/AsyncGenerator/AsyncGenerator.js +0 -81
  166. package/helpers/babel/AwaitValue/AwaitValue.js +0 -3
  167. package/helpers/babel/applyDecoratorDescriptor/applyDecoratorDescriptor.js +0 -33
  168. package/helpers/babel/arrayLikeToArray/arrayLikeToArray.js +0 -7
  169. package/helpers/babel/arrayWithHoles/arrayWithHoles.js +0 -4
  170. package/helpers/babel/arrayWithoutHoles/arrayWithoutHoles.js +0 -6
  171. package/helpers/babel/assertThisInitialized/assertThisInitialized.js +0 -7
  172. package/helpers/babel/asyncGeneratorDelegate/asyncGeneratorDelegate.js +0 -40
  173. package/helpers/babel/asyncIterator/asyncIterator.js +0 -65
  174. package/helpers/babel/asyncToGenerator/asyncToGenerator.js +0 -34
  175. package/helpers/babel/awaitAsyncGenerator/awaitAsyncGenerator.js +0 -5
  176. package/helpers/babel/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +0 -20
  177. package/helpers/babel/classApplyDescriptorGet/classApplyDescriptorGet.js +0 -6
  178. package/helpers/babel/classApplyDescriptorSet/classApplyDescriptorSet.js +0 -13
  179. package/helpers/babel/classCallCheck/classCallCheck.js +0 -5
  180. package/helpers/babel/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +0 -5
  181. package/helpers/babel/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +0 -6
  182. package/helpers/babel/classExtractFieldDescriptor/classExtractFieldDescriptor.js +0 -7
  183. package/helpers/babel/classNameTDZError/classNameTDZError.js +0 -4
  184. package/helpers/babel/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +0 -7
  185. package/helpers/babel/classPrivateFieldGet/classPrivateFieldGet.js +0 -7
  186. package/helpers/babel/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +0 -6
  187. package/helpers/babel/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +0 -5
  188. package/helpers/babel/classPrivateFieldSet/classPrivateFieldSet.js +0 -8
  189. package/helpers/babel/classPrivateMethodGet/classPrivateMethodGet.js +0 -6
  190. package/helpers/babel/classPrivateMethodSet/classPrivateMethodSet.js +0 -3
  191. package/helpers/babel/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +0 -9
  192. package/helpers/babel/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +0 -15
  193. package/helpers/babel/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +0 -6
  194. package/helpers/babel/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +0 -3
  195. package/helpers/babel/construct/construct.js +0 -16
  196. package/helpers/babel/createClass/createClass.js +0 -15
  197. package/helpers/babel/createForOfIteratorHelper/createForOfIteratorHelper.js +0 -60
  198. package/helpers/babel/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +0 -23
  199. package/helpers/babel/createRawReactElement/createRawReactElement.js +0 -50
  200. package/helpers/babel/createSuper/createSuper.js +0 -22
  201. package/helpers/babel/decorate/decorate.js +0 -403
  202. package/helpers/babel/defaults/defaults.js +0 -11
  203. package/helpers/babel/defineEnumerableProperties/defineEnumerableProperties.js +0 -23
  204. package/helpers/babel/defineProperty/defineProperty.js +0 -18
  205. package/helpers/babel/extends/extends.js +0 -14
  206. package/helpers/babel/get/get.js +0 -19
  207. package/helpers/babel/getPrototypeOf/getPrototypeOf.js +0 -4
  208. package/helpers/babel/inherits/inherits.js +0 -19
  209. package/helpers/babel/inheritsLoose/inheritsLoose.js +0 -7
  210. package/helpers/babel/initializerDefineProperty/initializerDefineProperty.js +0 -10
  211. package/helpers/babel/initializerWarningHelper/initializerWarningHelper.js +0 -6
  212. package/helpers/babel/instanceof/instanceof.js +0 -6
  213. package/helpers/babel/interopRequireDefault/interopRequireDefault.js +0 -3
  214. package/helpers/babel/interopRequireWildcard/interopRequireWildcard.js +0 -37
  215. package/helpers/babel/isNativeFunction/isNativeFunction.js +0 -4
  216. package/helpers/babel/isNativeReflectConstruct/isNativeReflectConstruct.js +0 -21
  217. package/helpers/babel/iterableToArray/iterableToArray.js +0 -7
  218. package/helpers/babel/iterableToArrayLimit/iterableToArrayLimit.js +0 -36
  219. package/helpers/babel/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +0 -10
  220. package/helpers/babel/jsx/jsx.js +0 -50
  221. package/helpers/babel/maybeArrayLike/maybeArrayLike.js +0 -10
  222. package/helpers/babel/newArrowCheck/newArrowCheck.js +0 -5
  223. package/helpers/babel/nonIterableRest/nonIterableRest.js +0 -5
  224. package/helpers/babel/nonIterableSpread/nonIterableSpread.js +0 -5
  225. package/helpers/babel/objectDestructuringEmpty/objectDestructuringEmpty.js +0 -3
  226. package/helpers/babel/objectSpread/objectSpread.js +0 -23
  227. package/helpers/babel/objectSpread2/objectSpread2.js +0 -41
  228. package/helpers/babel/objectWithoutProperties/objectWithoutProperties.js +0 -19
  229. package/helpers/babel/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +0 -13
  230. package/helpers/babel/possibleConstructorReturn/possibleConstructorReturn.js +0 -10
  231. package/helpers/babel/readOnlyError/readOnlyError.js +0 -4
  232. package/helpers/babel/readme.md +0 -8
  233. package/helpers/babel/set/set.js +0 -44
  234. package/helpers/babel/setPrototypeOf/setPrototypeOf.js +0 -6
  235. package/helpers/babel/skipFirstGeneratorNext/skipFirstGeneratorNext.js +0 -8
  236. package/helpers/babel/slicedToArray/slicedToArray.js +0 -10
  237. package/helpers/babel/slicedToArrayLoose/slicedToArrayLoose.js +0 -13
  238. package/helpers/babel/superPropBase/superPropBase.js +0 -10
  239. package/helpers/babel/taggedTemplateLiteral/taggedTemplateLiteral.js +0 -10
  240. package/helpers/babel/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +0 -7
  241. package/helpers/babel/tdz/tdz.js +0 -4
  242. package/helpers/babel/temporalRef/temporalRef.js +0 -6
  243. package/helpers/babel/temporalUndefined/temporalUndefined.js +0 -3
  244. package/helpers/babel/toArray/toArray.js +0 -10
  245. package/helpers/babel/toConsumableArray/toConsumableArray.js +0 -10
  246. package/helpers/babel/toPrimitive/toPrimitive.js +0 -10
  247. package/helpers/babel/toPropertyKey/toPropertyKey.js +0 -6
  248. package/helpers/babel/typeof/typeof.js +0 -14
  249. package/helpers/babel/unsupportedIterableToArray/unsupportedIterableToArray.js +0 -12
  250. package/helpers/babel/wrapAsyncGenerator/wrapAsyncGenerator.js +0 -8
  251. package/helpers/babel/wrapNativeSuper/wrapNativeSuper.js +0 -30
  252. package/helpers/babel/wrapRegExp/wrapRegExp.js +0 -63
  253. package/helpers/babel/writeOnlyError/writeOnlyError.js +0 -4
  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,7 +0,0 @@
1
- import { require } from "@jsenv/core/src/internal/require.js"
2
-
3
- export const minifyHtml = (htmlString, options) => {
4
- const { minify } = require("html-minifier")
5
- const htmlMinified = minify(htmlString, options)
6
- return htmlMinified
7
- }
@@ -1,43 +0,0 @@
1
- import { resolveUrl, urlToRelativeUrl } from "@jsenv/filesystem"
2
-
3
- import { escapeTemplateStringSpecialCharacters } from "@jsenv/core/src/internal/template_string_escape.js"
4
- import {
5
- getCssSourceMappingUrl,
6
- setCssSourceMappingUrl,
7
- } from "@jsenv/core/src/internal/sourcemap_utils.js"
8
- import { moveCssUrls } from "@jsenv/core/src/internal/building/css/move_css_urls.js"
9
-
10
- export const convertCssTextToJavascriptModule = async ({
11
- cssUrl,
12
- jsUrl,
13
- code,
14
- map,
15
- }) => {
16
- const directoryUrl = resolveUrl("./", cssUrl)
17
- const jsDirectoryUrl = resolveUrl("./", jsUrl)
18
- if (directoryUrl !== jsDirectoryUrl) {
19
- const moveUrlResult = await moveCssUrls({
20
- from: cssUrl,
21
- to: jsUrl,
22
- code,
23
- map,
24
- })
25
- code = moveUrlResult.code
26
- map = moveUrlResult.map
27
- const sourcemapUrlSpecifier = getCssSourceMappingUrl(code)
28
- const sourcemapUrlForCss = resolveUrl(sourcemapUrlSpecifier, cssUrl)
29
- const sourcemapUrlForJs = urlToRelativeUrl(sourcemapUrlForCss, jsUrl)
30
- code = setCssSourceMappingUrl(code, sourcemapUrlForJs)
31
- }
32
-
33
- const cssTextEscaped = escapeTemplateStringSpecialCharacters(code)
34
-
35
- return {
36
- code: `
37
- const stylesheet = new CSSStyleSheet()
38
-
39
- stylesheet.replaceSync(\`${cssTextEscaped}\`)
40
-
41
- export default stylesheet`,
42
- }
43
- }
@@ -1,80 +0,0 @@
1
- export const visitImportReferences = async ({
2
- ast,
3
- onReferenceWithImportMetaUrlPattern,
4
- onReferenceWithImportAssertion,
5
- }) => {
6
- const { asyncWalk } = await import("estree-walker")
7
- await asyncWalk(ast, {
8
- enter: async (node, parent) => {
9
- if (isNewUrlImportMetaUrl(node)) {
10
- await onReferenceWithImportMetaUrlPattern({
11
- importNode: node,
12
- })
13
- return
14
- }
15
-
16
- if (node.type === "ImportDeclaration") {
17
- const { assertions = [] } = node
18
- if (assertions.length === 0) {
19
- return
20
- }
21
- const assertionsDescriptor = getImportAssertionsDescriptor(assertions)
22
- await onReferenceWithImportAssertion({
23
- importNode: node,
24
- assertions: assertionsDescriptor,
25
- })
26
- return
27
- }
28
-
29
- if (
30
- node.type === "ObjectExpression" &&
31
- parent.type === "ImportExpression"
32
- ) {
33
- const { properties } = node
34
- const assertProperty = properties.find((property) => {
35
- return property.key.name === "assert"
36
- })
37
- if (!assertProperty) {
38
- return
39
- }
40
-
41
- const assertProperties = assertProperty.value.properties
42
- const typePropertyNode = assertProperties.find((property) => {
43
- return property.key.name === "type"
44
- })
45
- if (!typePropertyNode) {
46
- return
47
- }
48
-
49
- await onReferenceWithImportAssertion({
50
- importNode: parent,
51
- typePropertyNode,
52
- })
53
- return
54
- }
55
- },
56
- })
57
- }
58
-
59
- const isNewUrlImportMetaUrl = (node) => {
60
- return (
61
- node.type === "NewExpression" &&
62
- node.callee.type === "Identifier" &&
63
- node.callee.name === "URL" &&
64
- node.arguments.length === 2 &&
65
- node.arguments[0].type === "Literal" &&
66
- typeof node.arguments[0].value === "string" &&
67
- node.arguments[1].type === "MemberExpression" &&
68
- node.arguments[1].object.type === "MetaProperty" &&
69
- node.arguments[1].property.type === "Identifier" &&
70
- node.arguments[1].property.name === "url"
71
- )
72
- }
73
-
74
- const getImportAssertionsDescriptor = (importAssertions) => {
75
- const assertionAttributes = {}
76
- importAssertions.forEach((importAssertion) => {
77
- assertionAttributes[importAssertion.key.name] = importAssertion.value.value
78
- })
79
- return assertionAttributes
80
- }
@@ -1,28 +0,0 @@
1
- export const parseImportmapRessource = (
2
- importmapRessource,
3
- notifiers,
4
- { minify, importMapToInject },
5
- ) => {
6
- const importmapString = String(importmapRessource.bufferBeforeBuild)
7
-
8
- return () => {
9
- if (importMapToInject) {
10
- const jsonText = minify
11
- ? valueToCompactJsonString(importMapToInject)
12
- : valueToReadableJsonString(importMapToInject)
13
- importmapRessource.buildEnd(jsonText)
14
- return
15
- }
16
-
17
- const jsonText = minify
18
- ? valueToCompactJsonString(JSON.parse(importmapString))
19
- : importmapString
20
- importmapRessource.buildEnd(jsonText)
21
- }
22
- }
23
-
24
- // removes eventual whitespace in json
25
- const valueToCompactJsonString = (json) => JSON.stringify(json)
26
-
27
- // prefer a readable json when minification is disabled
28
- const valueToReadableJsonString = (json) => JSON.stringify(json, null, " ")
@@ -1,96 +0,0 @@
1
- import {
2
- resolveUrl,
3
- fileSystemPathToUrl,
4
- urlToFileSystemPath,
5
- } from "@jsenv/filesystem"
6
-
7
- export const babelPluginInlineWorkerImports = (
8
- babel,
9
- { readImportedScript },
10
- ) => {
11
- const { types } = babel
12
-
13
- return {
14
- name: "transform-inline-worker-imports",
15
-
16
- visitor: {
17
- CallExpression: (path, opts) => {
18
- const calleePath = path.get("callee")
19
-
20
- const replaceImportScriptsWithFileContents = () => {
21
- const filename = opts.filename
22
- const fileUrl = fileSystemPathToUrl(filename)
23
-
24
- let previousArgType = ""
25
- const importedUrls = path.get("arguments").map((arg, index) => {
26
- if (!types.isStringLiteral(arg)) {
27
- if (previousArgType && previousArgType !== "dynamic") {
28
- throw new Error(
29
- `importScript mixed arguments: arg number ${index} is dynamic while previous arg was ${previousArgType}`,
30
- )
31
- }
32
- previousArgType = "dynamic"
33
- return arg
34
- }
35
- const importedUrl = resolveUrl(arg.node.value, fileUrl)
36
- if (!importedUrl.startsWith("file://")) {
37
- if (previousArgType && previousArgType !== "remote") {
38
- throw new Error(
39
- `importScript mixed arguments: arg number ${index} targets a remote url while previous arg was ${previousArgType}`,
40
- )
41
- }
42
- previousArgType = "remote"
43
- return arg
44
- }
45
- previousArgType = "local"
46
- return importedUrl
47
- })
48
-
49
- if (previousArgType === "local") {
50
- const nodes = importedUrls.reduce((previous, importedUrl) => {
51
- const importedScriptCode = readImportedScript(importedUrl)
52
- const { ast } = babel.transformSync(importedScriptCode, {
53
- filename: urlToFileSystemPath(importedUrl),
54
- configFile: false,
55
- babelrc: false, // trust only these options, do not read any babelrc config file
56
- ast: true,
57
- sourceMaps: true,
58
- // sourceFileName: scriptPath,
59
- plugins: [
60
- [
61
- babelPluginInlineWorkerImports,
62
- {
63
- readImportedScript,
64
- },
65
- ],
66
- ],
67
- })
68
- return [...previous, ...ast.program.body]
69
- }, [])
70
-
71
- calleePath.parentPath.replaceWithMultiple(nodes)
72
- }
73
- }
74
-
75
- if (types.isIdentifier(calleePath.node, { name: "importScripts" })) {
76
- replaceImportScriptsWithFileContents()
77
- return
78
- }
79
-
80
- if (types.isMemberExpression(calleePath.node)) {
81
- const calleeObject = calleePath.get("object")
82
- const isSelf = types.isIdentifier(calleeObject.node, { name: "self" })
83
- if (isSelf) {
84
- const propertyPath = calleePath.get("property")
85
- if (
86
- types.isIdentifier(propertyPath.node, { name: "importScripts" })
87
- ) {
88
- replaceImportScriptsWithFileContents()
89
- return
90
- }
91
- }
92
- }
93
- },
94
- },
95
- }
96
- }
@@ -1,122 +0,0 @@
1
- import { urlToFilename, resolveUrl, urlToRelativeUrl } from "@jsenv/filesystem"
2
-
3
- import {
4
- generateSourcemapUrl,
5
- getJavaScriptSourceMappingUrl,
6
- setJavaScriptSourceMappingUrl,
7
- } from "@jsenv/core/src/internal/sourcemap_utils.js"
8
-
9
- import { transformWorker } from "./transform_worker.js"
10
-
11
- export const parseJsRessource = async (
12
- jsRessource,
13
- { notifyReferenceFound },
14
- { asProjectUrl, asOriginalUrl, minify, minifyJs },
15
- ) => {
16
- const jsUrl = jsRessource.url
17
- const jsString = String(jsRessource.bufferBeforeBuild)
18
- const jsSourcemapUrl = getJavaScriptSourceMappingUrl(jsString)
19
-
20
- let sourcemapReference
21
- if (jsSourcemapUrl) {
22
- sourcemapReference = notifyReferenceFound({
23
- referenceLabel: "js sourcemapping comment",
24
- contentTypeExpected: ["application/json", "application/octet-stream"],
25
- ressourceSpecifier: jsSourcemapUrl,
26
- // we don't really know the line or column
27
- // but let's asusme it the last line and first column
28
- referenceLine: jsString.split(/\r?\n/).length,
29
- // ${"//#"} is to avoid a parser thinking there is a sourceMappingUrl for this file
30
- referenceColumn: `${"//#"} sourceMappingURL=`.length + 1,
31
- isSourcemap: true,
32
- })
33
- } else {
34
- sourcemapReference = notifyReferenceFound({
35
- referenceLabel: "js sourcemapping comment",
36
- contentType: "application/octet-stream",
37
- ressourceSpecifier: urlToRelativeUrl(generateSourcemapUrl(jsUrl), jsUrl),
38
- isPlaceholder: true,
39
- isSourcemap: true,
40
- })
41
- }
42
-
43
- return async ({ buildDirectoryUrl }) => {
44
- const sourcemapRessource = sourcemapReference.ressource
45
- let code
46
- let map
47
- if (!sourcemapRessource.isPlaceholder) {
48
- map = JSON.parse(String(sourcemapRessource.bufferBeforeBuild))
49
- }
50
-
51
- // in case this js asset is a worker, we transform it so that
52
- // importScripts() calls are inlined
53
- // We could also parse each importScripts call and decide to inline
54
- // or not. For now inlining/concatenation is forced
55
- if (jsRessource.isWorker || jsRessource.isServiceWorker) {
56
- const transformResult = await transformWorker({
57
- url: asOriginalUrl(jsUrl),
58
- code: String(jsRessource.bufferBeforeBuild),
59
- map,
60
- })
61
- code = transformResult.code
62
- map = transformResult.map
63
- } else {
64
- code = jsString
65
- }
66
-
67
- const jsCompiledUrl = jsRessource.url
68
- const jsOriginalUrl = asOriginalUrl(jsCompiledUrl)
69
-
70
- if (minify) {
71
- const result = await minifyJs({
72
- url: map ? asProjectUrl(jsCompiledUrl) : jsOriginalUrl,
73
- code,
74
- map,
75
- toplevel: false,
76
- })
77
- code = result.code
78
- map = result.map
79
- }
80
- jsRessource.buildEnd(code)
81
- if (!map) {
82
- return
83
- }
84
- // In theory code should never be modified once buildEnd() is called
85
- // because buildRelativeUrl might be versioned based on file content
86
- // There is an exception for sourcemap because we want to update sourcemap.file
87
- // to the cached filename of the js file.
88
- // To achieve that we set/update the sourceMapping url comment in compiled js file.
89
- // This is totally fine to do that because sourcemap and js file lives togethers
90
- // so this comment changes nothing regarding cache invalidation and is not important
91
- // to decide buildRelativeUrl for this js file.
92
- const jsBuildUrl = resolveUrl(
93
- jsRessource.buildRelativeUrl,
94
- buildDirectoryUrl,
95
- )
96
- const sourcemapPrecomputedBuildUrl = generateSourcemapUrl(jsBuildUrl)
97
- map.file = urlToFilename(jsBuildUrl)
98
- if (map.sources) {
99
- map.sources = map.sources.map((source) => {
100
- const sourceUrl = resolveUrl(source, jsUrl)
101
- const sourceOriginalUrl = asOriginalUrl(sourceUrl) || sourceUrl
102
- const sourceUrlRelativeToSourceMap = urlToRelativeUrl(
103
- sourceOriginalUrl,
104
- sourcemapPrecomputedBuildUrl,
105
- )
106
- return sourceUrlRelativeToSourceMap
107
- })
108
- }
109
- const mapAsText = JSON.stringify(map, null, " ")
110
- sourcemapRessource.buildEnd(mapAsText)
111
- const sourcemapBuildUrl = resolveUrl(
112
- sourcemapRessource.buildRelativeUrl,
113
- buildDirectoryUrl,
114
- )
115
- const sourcemapUrlForJs = urlToRelativeUrl(sourcemapBuildUrl, jsBuildUrl)
116
- const codeWithSourcemapComment = setJavaScriptSourceMappingUrl(
117
- code,
118
- sourcemapUrlForJs,
119
- )
120
- jsRessource.bufferAfterBuild = codeWithSourcemapComment
121
- }
122
- }
@@ -1,33 +0,0 @@
1
- export const minifyJs = async ({
2
- url,
3
- code,
4
- map,
5
- sourcemapIncludeSources = true,
6
- ...rest
7
- }) => {
8
- // https://github.com/terser-js/terser#minify-options
9
- const { minify } = await import("terser")
10
-
11
- const terserResult = await minify(
12
- {
13
- [url]: code,
14
- },
15
- {
16
- sourceMap: {
17
- ...(map ? { content: JSON.stringify(map) } : {}),
18
- asObject: true,
19
- includeSources: sourcemapIncludeSources,
20
- },
21
- ...rest,
22
- },
23
- )
24
-
25
- code = terserResult.code
26
- map = terserResult.map
27
-
28
- if (!map.sourcesContent) {
29
- map.sourcesContent = [code]
30
- }
31
-
32
- return { code, map }
33
- }
@@ -1,55 +0,0 @@
1
- // we could inline a worker by doing
2
- // var blob = new Blob(code, { type: 'text/javascript' })
3
- // window.URL.createObjectURL(blob)
4
-
5
- import { readFileSync } from "node:fs"
6
- import { urlToFileSystemPath } from "@jsenv/filesystem"
7
- import { createDetailedMessage } from "@jsenv/logger"
8
-
9
- import { babelPluginInlineWorkerImports } from "./babel_plugin_inline_worker_imports.js"
10
-
11
- export const transformWorker = async ({ url, code, map }) => {
12
- const { transformSync } = await import("@babel/core")
13
-
14
- const transformResult = transformSync(code, {
15
- filename: urlToFileSystemPath(url),
16
- configFile: false,
17
- babelrc: false, // trust only these options, do not read any babelrc config file
18
- ast: false,
19
- inputSourceMap: map,
20
- sourceMaps: true,
21
- // sourceFileName: scriptPath,
22
- plugins: [
23
- [
24
- babelPluginInlineWorkerImports,
25
- {
26
- readImportedScript: readWorkerFile,
27
- },
28
- ],
29
- ],
30
- })
31
- code = transformResult.code
32
- map = transformResult.map
33
- return { code, map }
34
- }
35
-
36
- export const readWorkerFile = (url, importerUrl) => {
37
- const filePath = urlToFileSystemPath(url)
38
- try {
39
- const code = String(readFileSync(filePath))
40
- return code
41
- } catch (e) {
42
- if (e.code === "ENOENT") {
43
- if (importerUrl) {
44
- throw new Error(
45
- createDetailedMessage(`no file found for an import in a worker.`, {
46
- ["worker url"]: importerUrl,
47
- ["imported url"]: url,
48
- }),
49
- )
50
- }
51
- throw new Error(`no worker file at ${url}`)
52
- }
53
- throw e
54
- }
55
- }
@@ -1,11 +0,0 @@
1
- export const parseJsonRessource = (jsonRessource, notifiers, { minify }) => {
2
- const jsonString = String(jsonRessource.bufferBeforeBuild)
3
- return () => {
4
- if (minify) {
5
- // this is to remove eventual whitespaces
6
- jsonRessource.buildEnd(JSON.stringify(JSON.parse(jsonString)))
7
- return
8
- }
9
- jsonRessource.buildEnd(jsonString)
10
- }
11
- }
@@ -1,207 +0,0 @@
1
- import { readFile, urlToRelativeUrl } from "@jsenv/filesystem"
2
-
3
- import {
4
- jsenvSystemJsFileInfo,
5
- jsenvResolveImportUrlHelper,
6
- } from "@jsenv/core/src/jsenv_file_urls.js"
7
- import {
8
- parseHtmlString,
9
- findHtmlNode,
10
- htmlNodeIsScriptModule,
11
- getHtmlNodeAttributeByName,
12
- getHtmlNodeTextNode,
13
- manipulateHtmlAst,
14
- findFirstImportMapNode,
15
- } from "@jsenv/core/src/internal/compile_server/html/html_ast.js"
16
-
17
- import { parseHtmlRessource } from "./html/jsenv_parse_html.js"
18
- import { parseImportmapRessource } from "./importmap/jsenv_parse_importmap.js"
19
- import { parseSvgRessource } from "./svg/jsenv_parse_svg.js"
20
- import { parseCssRessource } from "./css/jsenv_parse_css.js"
21
- import { parseJsRessource } from "./js/jsenv_parse_js.js"
22
- import { parseJsonRessource } from "./json/jsenv_parse_json.js"
23
- import { parseWebmanifestRessource } from "./webmanifest/jsenv_parse_webmanifest.js"
24
-
25
- export const parseRessource = async (
26
- ressource,
27
- notifiers,
28
- {
29
- projectDirectoryUrl,
30
- jsenvRemoteDirectory,
31
- format,
32
- systemJsUrl,
33
- asProjectUrl,
34
- asOriginalUrl,
35
- asOriginalServerUrl,
36
- ressourceHintNeverUsedCallback,
37
- useImportMapToMaximizeCacheReuse,
38
- createImportMapForFilesUsedInJs,
39
- minify,
40
- minifyJs,
41
- minifyHtml,
42
- minifyCssOptions,
43
- cssConcatenation,
44
- },
45
- ) => {
46
- const { contentType } = ressource
47
- if (!contentType) {
48
- return null
49
- }
50
-
51
- if (contentType === "text/html") {
52
- return parseHtmlRessource(ressource, notifiers, {
53
- minify,
54
- minifyHtml,
55
- htmlStringToHtmlAst: async (htmlString) => {
56
- const htmlAst = parseHtmlString(htmlString)
57
-
58
- const { hasModuleScript, hasInlineModuleScript } =
59
- getHtmlModuleScriptInfo(htmlAst)
60
-
61
- if (hasModuleScript && format === "systemjs") {
62
- // force presence of systemjs script if html contains a module script
63
- // use our own version of systemjs by default
64
- if (typeof systemJsUrl === "undefined") {
65
- systemJsUrl = `/${urlToRelativeUrl(
66
- jsenvSystemJsFileInfo.url,
67
- projectDirectoryUrl,
68
- )}`
69
- }
70
-
71
- manipulateHtmlAst(htmlAst, {
72
- scriptInjections: [
73
- {
74
- id: "jsenv_inject_systemjs",
75
- src: systemJsUrl,
76
- ...(hasInlineModuleScript
77
- ? { "data-jsenv-force-inline": true }
78
- : {}),
79
- },
80
- ],
81
- })
82
- }
83
-
84
- if (useImportMapToMaximizeCacheReuse) {
85
- if (hasModuleScript && format === "esmodule") {
86
- // inject an inline script helper to resolve url
87
- manipulateHtmlAst(htmlAst, {
88
- scriptInjections: [
89
- {
90
- id: "jsenv_import_url_resolution_helper",
91
- text: await readFile(jsenvResolveImportUrlHelper.url),
92
- },
93
- ],
94
- })
95
- }
96
-
97
- if (!findFirstImportMapNode(htmlAst)) {
98
- // force the presence of a fake+inline+empty importmap script
99
- // if html contains no importmap and we useImportMapToMaximizeCacheReuse
100
- // this inline importmap will be transformed later to have top level remapping
101
- // required to target hashed js urls
102
- manipulateHtmlAst(htmlAst, {
103
- scriptInjections: [
104
- {
105
- type: "importmap",
106
- id: "jsenv_inject_importmap",
107
- text: "{}",
108
- },
109
- ],
110
- })
111
- }
112
- }
113
-
114
- return htmlAst
115
- },
116
- ressourceHintNeverUsedCallback: (info) => {
117
- ressourceHintNeverUsedCallback({
118
- ...info,
119
- htmlSource: String(ressource.bufferBeforeBuild),
120
- htmlUrl: asOriginalUrl(ressource.url),
121
- htmlAttributeName: "href",
122
- })
123
- },
124
- })
125
- }
126
-
127
- if (contentType === "text/css") {
128
- return parseCssRessource(ressource, notifiers, {
129
- jsenvRemoteDirectory,
130
- asProjectUrl,
131
- asOriginalUrl,
132
- asOriginalServerUrl,
133
- minify,
134
- minifyCssOptions,
135
- cssConcatenation,
136
- })
137
- }
138
-
139
- if (contentType === "application/importmap+json") {
140
- return parseImportmapRessource(ressource, notifiers, {
141
- minify,
142
- importMapToInject: useImportMapToMaximizeCacheReuse
143
- ? createImportMapForFilesUsedInJs()
144
- : undefined,
145
- })
146
- }
147
-
148
- if (
149
- contentType === "application/manifest+json" ||
150
- ressource.references[0].contentTypeExpected === "application/manifest+json"
151
- ) {
152
- return parseWebmanifestRessource(ressource, notifiers, { minify })
153
- }
154
-
155
- if (
156
- contentType === "application/javascript" ||
157
- contentType === "text/javascript"
158
- ) {
159
- return parseJsRessource(ressource, notifiers, {
160
- projectDirectoryUrl,
161
- jsenvRemoteDirectory,
162
- asProjectUrl,
163
- asOriginalUrl,
164
- asOriginalServerUrl,
165
- minify,
166
- minifyJs,
167
- })
168
- }
169
-
170
- if (contentType === "image/svg+xml") {
171
- return parseSvgRessource(ressource, notifiers, {
172
- minify,
173
- minifyHtml,
174
- })
175
- }
176
-
177
- if (contentType === "application/json" || contentType.endsWith("+json")) {
178
- return parseJsonRessource(ressource, notifiers, { minify })
179
- }
180
-
181
- return null
182
- }
183
-
184
- const getHtmlModuleScriptInfo = (htmlAst) => {
185
- let hasModuleScript = false
186
- let hasInlineModuleScript = false
187
- findHtmlNode(htmlAst, (htmlNode) => {
188
- const isScriptModule = htmlNodeIsScriptModule(htmlNode)
189
- if (!isScriptModule) {
190
- return false
191
- }
192
-
193
- hasModuleScript = true
194
-
195
- const isInline =
196
- getHtmlNodeAttributeByName(htmlNode, "data-jsenv-force-inline") ||
197
- (!getHtmlNodeAttributeByName(htmlNode, "src") &&
198
- getHtmlNodeTextNode(htmlNode))
199
- if (!isInline) {
200
- return false
201
- }
202
- hasInlineModuleScript = true
203
- return true
204
- })
205
-
206
- return { hasModuleScript, hasInlineModuleScript }
207
- }