@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,10 +0,0 @@
1
- import { comparePathnames } from "@jsenv/filesystem"
2
-
3
- export const sortObjectByPathnames = (object) => {
4
- const objectSorted = {}
5
- const keysSorted = Object.keys(object).sort(comparePathnames)
6
- keysSorted.forEach((key) => {
7
- objectSorted[key] = object[key]
8
- })
9
- return objectSorted
10
- }
@@ -1,70 +0,0 @@
1
- import { resolveUrl } from "@jsenv/filesystem"
2
- import { createDetailedMessage } from "@jsenv/logger"
3
-
4
- import { DataUrl } from "@jsenv/core/src/internal/data_url.js"
5
- import { fetchUrl } from "@jsenv/core/src/internal/fetching.js"
6
- import { validateResponse } from "@jsenv/core/src/internal/response_validation.js"
7
-
8
- export const loadSourcemap = async ({
9
- signal,
10
- logger,
11
-
12
- code,
13
- url,
14
- getSourceMappingUrl,
15
- } = {}) => {
16
- const sourcemapSpecifier = getSourceMappingUrl(code)
17
- if (!sourcemapSpecifier) {
18
- return null
19
- }
20
-
21
- const sourcemapUrl = resolveUrl(sourcemapSpecifier, url)
22
- if (sourcemapUrl.startsWith("data:")) {
23
- const sourcemapString = DataUrl.parse(sourcemapUrl, { as: "string" })
24
- return parseSourcemapString(
25
- sourcemapString,
26
- sourcemapUrl,
27
- `inline comment in ${url}`,
28
- )
29
- }
30
-
31
- const sourcemapResponse = await fetchUrl(sourcemapUrl, {
32
- signal,
33
- ignoreHttpsError: true,
34
- })
35
- const { isValid, details } = await validateResponse(sourcemapResponse, {
36
- // we could have a better trace
37
- // by appending the reference found in code
38
- // to an existing urlTrace array
39
- // good enough for now
40
- urlTrace: url,
41
- contentTypeExpected: ["application/json", "application/octet-stream"],
42
- })
43
- if (!isValid) {
44
- logger.warn(
45
- createDetailedMessage(`unexpected response for sourcemap`, details),
46
- )
47
- return null
48
- }
49
-
50
- const sourcemapBodyAsText = await sourcemapResponse.text()
51
- return parseSourcemapString(sourcemapBodyAsText, sourcemapUrl, url)
52
- }
53
-
54
- const parseSourcemapString = (sourcemapString, sourcemapUrl, importer) => {
55
- try {
56
- return JSON.parse(sourcemapString)
57
- } catch (e) {
58
- if (e.name === "SyntaxError") {
59
- console.error(
60
- createDetailedMessage(`syntax error while parsing sourcemap.`, {
61
- ["syntax error stack"]: e.stack,
62
- ["sourcemap url"]: sourcemapUrl,
63
- ["imported by"]: importer,
64
- }),
65
- )
66
- return null
67
- }
68
- throw e
69
- }
70
- }
@@ -1,112 +0,0 @@
1
- import {
2
- parseSvgString,
3
- parseHtmlAstRessources,
4
- getHtmlNodeAttributeByName,
5
- stringifyHtmlAst,
6
- getHtmlNodeLocation,
7
- } from "@jsenv/core/src/internal/compile_server/html/html_ast.js"
8
-
9
- import { getRessourceAsBase64Url } from "../ressource_builder_util.js"
10
- import { collectNodesMutations } from "../html/html_node_mutations.js"
11
- import { minifyHtml } from "../html/minify_html.js"
12
-
13
- export const parseSvgRessource = async (
14
- svgRessource,
15
- notifiers,
16
- { minify, minifyHtmlOptions },
17
- ) => {
18
- const svgString = String(svgRessource.bufferBeforeBuild)
19
- const svgAst = await parseSvgString(svgString)
20
- const htmlRessources = parseHtmlAstRessources(svgAst)
21
- const mutations = collectSvgMutations(htmlRessources, notifiers, svgRessource)
22
-
23
- return async ({ getUrlRelativeToImporter }) => {
24
- mutations.forEach((mutationCallback) => {
25
- mutationCallback({ getUrlRelativeToImporter })
26
- })
27
- const svgAfterTransformation = stringifyHtmlAst(svgAst)
28
- // could also benefit of minification https://github.com/svg/svgo
29
- if (minify) {
30
- svgRessource.buildEnd(
31
- await minifyHtml(svgAfterTransformation, minifyHtmlOptions),
32
- )
33
- return
34
- }
35
- svgRessource.buildEnd(svgAfterTransformation)
36
- }
37
- }
38
-
39
- export const collectSvgMutations = (
40
- { images, uses },
41
- notifiers,
42
- svgRessource,
43
- ) => {
44
- const imagesMutations = collectNodesMutations(
45
- images,
46
- notifiers,
47
- svgRessource,
48
- [imageHrefVisitor],
49
- )
50
- const usesMutations = collectNodesMutations(uses, notifiers, svgRessource, [
51
- useHrefVisitor,
52
- ])
53
- const svgMutations = [...imagesMutations, ...usesMutations]
54
- return svgMutations
55
- }
56
-
57
- const imageHrefVisitor = (image, { notifyReferenceFound }) => {
58
- const hrefAttribute = getHtmlNodeAttributeByName(image, "href")
59
- if (!hrefAttribute) {
60
- return null
61
- }
62
-
63
- const hrefReference = notifyReferenceFound({
64
- referenceLabel: "svg image href",
65
- ressourceSpecifier: hrefAttribute.value,
66
- ...referenceLocationFromHtmlNode(image, "href"),
67
- })
68
- return ({ getUrlRelativeToImporter }) => {
69
- const hrefNewValue = referenceToUrl(hrefReference, getUrlRelativeToImporter)
70
- hrefAttribute.value = hrefNewValue
71
- }
72
- }
73
-
74
- const useHrefVisitor = (use, { notifyReferenceFound }) => {
75
- const hrefAttribute = getHtmlNodeAttributeByName(use, "href")
76
- if (!hrefAttribute) {
77
- return null
78
- }
79
- const href = hrefAttribute.value
80
- if (href[0] === "#") {
81
- return null
82
- }
83
-
84
- const { hash } = new URL(href, "file://")
85
- const hrefReference = notifyReferenceFound({
86
- referenceLabel: "svg use href",
87
- ressourceSpecifier: href,
88
- ...referenceLocationFromHtmlNode(use, "href"),
89
- })
90
- return ({ getUrlRelativeToImporter }) => {
91
- const hrefNewValue = referenceToUrl(hrefReference, getUrlRelativeToImporter)
92
- hrefAttribute.value = `${hrefNewValue}${hash}`
93
- }
94
- }
95
-
96
- const referenceToUrl = (reference, getUrlRelativeToImporter) => {
97
- const { ressource } = reference
98
- if (ressource.isInline) {
99
- return getRessourceAsBase64Url(ressource)
100
- }
101
- return getUrlRelativeToImporter(ressource)
102
- }
103
-
104
- const referenceLocationFromHtmlNode = (htmlNode, htmlAttributeName) => {
105
- const locInfo = getHtmlNodeLocation(htmlNode, htmlAttributeName)
106
- return locInfo
107
- ? {
108
- referenceLine: locInfo.line,
109
- referenceColumn: locInfo.column,
110
- }
111
- : {}
112
- }
@@ -1,85 +0,0 @@
1
- import { createDetailedMessage } from "@jsenv/logger"
2
- import { urlToExtension, urlToRelativeUrl } from "@jsenv/filesystem"
3
-
4
- import { fetchUrl as jsenvFetchUrl } from "@jsenv/core/src/internal/fetching.js"
5
- import { validateResponse } from "@jsenv/core/src/internal/response_validation.js"
6
-
7
- export const createUrlFetcher = ({
8
- jsenvRemoteDirectory,
9
- asOriginalUrl,
10
- asProjectUrl,
11
- applyUrlMappings,
12
- urlImporterMap,
13
- beforeThrowingResponseValidationError,
14
- }) => {
15
- const urlRedirectionMap = {}
16
-
17
- const fetchUrl = async (
18
- url,
19
- { signal, urlTrace, contentTypeExpected, crossorigin },
20
- ) => {
21
- const urlToFetch = applyUrlMappings(url)
22
- const response = await jsenvFetchUrl(urlToFetch, {
23
- signal,
24
- ignoreHttpsError: true,
25
- credentials:
26
- crossorigin === "anonymous" || crossorigin === ""
27
- ? "same-origin"
28
- : crossorigin === "use-credentials"
29
- ? "include"
30
- : undefined,
31
- })
32
- const responseUrl = response.url
33
- const originalUrl =
34
- asOriginalUrl(responseUrl) || asProjectUrl(responseUrl) || responseUrl
35
- const responseValidity = await validateResponse(response, {
36
- originalUrl: jsenvRemoteDirectory.isFileUrlForRemoteUrl(originalUrl)
37
- ? jsenvRemoteDirectory.remoteUrlFromFileUrl(originalUrl)
38
- : originalUrl,
39
- urlTrace,
40
- contentTypeExpected,
41
- })
42
- if (!responseValidity.isValid) {
43
- const { message, details } = responseValidity
44
- if (
45
- responseValidity.contentType &&
46
- !responseValidity.contentType.isValid &&
47
- contentTypeExpected.includes("application/javascript")
48
- ) {
49
- const importerUrl = urlImporterMap[url].url
50
- const urlRelativeToImporter = `./${urlToRelativeUrl(url, importerUrl)}`
51
- details.suggestion = `use import.meta.url: new URL("${urlRelativeToImporter}", import.meta.url)`
52
- const extension = urlToExtension(url)
53
- if (extension === ".css") {
54
- details[
55
- "suggestion 2"
56
- ] = `use import assertion: import css from "${urlRelativeToImporter}" assert { type: "css" }`
57
- }
58
- if (extension === ".json") {
59
- details[
60
- "suggestion 2"
61
- ] = `use import assertion: import data from "${urlRelativeToImporter}" assert { type: "json" }`
62
- }
63
- }
64
- const responseValidationError = new Error(
65
- createDetailedMessage(message, details),
66
- )
67
- beforeThrowingResponseValidationError(responseValidationError)
68
- throw responseValidationError
69
- }
70
- if (url !== responseUrl) {
71
- urlRedirectionMap[url] = responseUrl
72
- }
73
- return response
74
- }
75
-
76
- const getUrlBeforeRedirection = (url) => {
77
- const urlBeforeRedirection = urlRedirectionMap[url]
78
- return urlBeforeRedirection
79
- }
80
-
81
- return {
82
- fetchUrl,
83
- getUrlBeforeRedirection,
84
- }
85
- }
@@ -1,127 +0,0 @@
1
- import { getJavaScriptSourceMappingUrl } from "@jsenv/core/src/internal/sourcemap_utils.js"
2
-
3
- import { convertJsonTextToJavascriptModule } from "./import_assertions/json_module.js"
4
- import { loadSourcemap } from "./sourcemap/sourcemap_loader.js"
5
-
6
- export const createUrlLoader = ({
7
- urlCustomLoaders,
8
- allowJson,
9
- urlImporterMap,
10
-
11
- asProjectUrl,
12
- asOriginalUrl,
13
-
14
- urlFetcher,
15
- }) => {
16
- const urlResponseBodyMap = {}
17
-
18
- const loadUrl = async (url, { signal, logger }) => {
19
- const customLoader = urlCustomLoaders[url]
20
- if (customLoader) {
21
- const result = await customLoader()
22
- return result
23
- }
24
- const response = await urlFetcher.fetchUrl(url, {
25
- signal,
26
- contentTypeExpected: [
27
- "application/javascript",
28
- ...(allowJson ? ["application/json"] : []),
29
- ],
30
- urlTrace: () => {
31
- const firstImporter = urlImporterMap[url]
32
- url = asOriginalUrl(url) || asProjectUrl(url) || url
33
- return createUrlTrace({
34
- url: firstImporter.url,
35
- line: firstImporter.line,
36
- column: firstImporter.column,
37
- })
38
- },
39
- })
40
-
41
- const contentType = response.headers["content-type"]
42
- if (contentType === "application/javascript") {
43
- const jsText = await response.text()
44
- saveUrlResponseBody(response.url, jsText)
45
- const map = await loadSourcemap({
46
- signal,
47
- logger,
48
-
49
- url,
50
- code: jsText,
51
- getSourceMappingUrl: getJavaScriptSourceMappingUrl,
52
- })
53
- return {
54
- url: response.url,
55
- code: jsText,
56
- map,
57
- }
58
- }
59
-
60
- // When json is referenced from js without import assertion and minify is enabled
61
- // you can get non-minified json (json with spaces)
62
- // We could fix that by removing white spaces here but that means forwarding minify
63
- // param and this is only possible in Node.js where minification is less (not?) important
64
- const jsonText = await response.text()
65
- saveUrlResponseBody(response.url, jsonText)
66
- const { code } = convertJsonTextToJavascriptModule({ code: jsonText })
67
- return {
68
- url: response.url,
69
- code,
70
- map: null,
71
- }
72
- }
73
-
74
- const saveUrlResponseBody = (url, responseBodyAsText) => {
75
- const urlBeforeRedirection = urlFetcher.getUrlBeforeRedirection(url)
76
- if (urlBeforeRedirection) {
77
- saveUrlResponseBody(urlBeforeRedirection, responseBodyAsText)
78
- }
79
-
80
- urlResponseBodyMap[url] = responseBodyAsText
81
- const projectUrl = asProjectUrl(url)
82
- if (projectUrl && projectUrl !== url) {
83
- urlResponseBodyMap[projectUrl] = responseBodyAsText
84
- }
85
- }
86
-
87
- const getUrlResponseTextFromMemory = (url) => {
88
- return urlResponseBodyMap[url]
89
- }
90
-
91
- const createUrlTrace = ({ url, line, column }) => {
92
- const trace = [
93
- {
94
- type: "entry",
95
- url: asOriginalUrl(url) || asProjectUrl(url) || url,
96
- line,
97
- column,
98
- },
99
- ]
100
- const next = (importerUrl) => {
101
- const previousImporter = urlImporterMap[importerUrl]
102
- if (!previousImporter) {
103
- return
104
- }
105
- trace.push({
106
- type: "import",
107
- url:
108
- asOriginalUrl(previousImporter.url) ||
109
- asProjectUrl(previousImporter.url) ||
110
- previousImporter.url,
111
- line: previousImporter.line,
112
- column: previousImporter.column,
113
- })
114
- next(previousImporter.url)
115
- }
116
- next(url)
117
-
118
- return trace
119
- }
120
-
121
- return {
122
- loadUrl,
123
- createUrlTrace,
124
- getUrlResponseTextFromMemory,
125
- getUrlResponseBodyMap: () => urlResponseBodyMap,
126
- }
127
- }
@@ -1,229 +0,0 @@
1
- // consider switching to https://babeljs.io/docs/en/babel-code-frame
2
- // https://github.com/postcss/postcss/blob/fd30d3df5abc0954a0ec642a3cdc644ab2aacf9c/lib/css-syntax-error.js#L43
3
- // https://github.com/postcss/postcss/blob/fd30d3df5abc0954a0ec642a3cdc644ab2aacf9c/lib/terminal-highlight.js#L50
4
- // https://github.com/babel/babel/blob/eea156b2cb8deecfcf82d52aa1b71ba4995c7d68/packages/babel-code-frame/src/index.js#L1
5
-
6
- import { urlToFileSystemPath } from "@jsenv/filesystem"
7
- import { ANSI } from "@jsenv/log"
8
-
9
- export const stringifyUrlTrace = (trace) => {
10
- let string = ""
11
- trace.forEach(({ type, url, line, column, source }, index) => {
12
- if (index === 0) {
13
- string += stringifyUrlSite({ url, line, column, source })
14
- return
15
- }
16
-
17
- if (type === "import") {
18
- string += `\n imported by ${stringifyUrlSite({
19
- url,
20
- line,
21
- column,
22
- })}`
23
- return
24
- }
25
-
26
- string += `\n referenced by ${stringifyUrlSite({
27
- url,
28
- line,
29
- column,
30
- })}`
31
- }, "")
32
-
33
- return string
34
- }
35
-
36
- export const stringifyUrlSite = (
37
- { url, line, column, source },
38
- {
39
- showCodeFrame = true,
40
- numberOfSurroundingLinesToShow,
41
- lineMaxLength,
42
- color,
43
- } = {},
44
- ) => {
45
- let string = `${humanizeUrl(url)}`
46
-
47
- if (typeof line === "number") {
48
- string += `:${line}`
49
- if (typeof column === "number") {
50
- string += `:${column}`
51
- }
52
- }
53
-
54
- if (!showCodeFrame || typeof line !== "number" || !source) {
55
- return string
56
- }
57
-
58
- const sourceLoc = showSourceLocation({
59
- source,
60
- line,
61
- column,
62
- numberOfSurroundingLinesToShow,
63
- lineMaxLength,
64
- color,
65
- })
66
-
67
- return `${string}
68
- ${sourceLoc}`
69
- }
70
-
71
- export const humanizeUrl = (url) => {
72
- if (url.startsWith("file://")) {
73
- // we prefer file system path because vscode reliably make them clickable
74
- // and sometimes it won't for file:// urls
75
- return urlToFileSystemPath(url)
76
- }
77
- return url
78
- }
79
-
80
- export const showSourceLocation = ({
81
- source,
82
- line,
83
- column,
84
- numberOfSurroundingLinesToShow = 1,
85
- lineMaxLength = 120,
86
- color = false,
87
- } = {}) => {
88
- let mark = (string) => string
89
- let aside = (string) => string
90
- if (color) {
91
- mark = (string) => ANSI.color(string, ANSI.RED)
92
- aside = (string) => ANSI.color(string, ANSI.GREY)
93
- }
94
-
95
- const lines = source.split(/\r?\n/)
96
- if (line === 0) line = 1
97
- let lineRange = {
98
- start: line - 1,
99
- end: line,
100
- }
101
- lineRange = moveLineRangeUp(lineRange, numberOfSurroundingLinesToShow)
102
- lineRange = moveLineRangeDown(lineRange, numberOfSurroundingLinesToShow)
103
- lineRange = lineRangeWithinLines(lineRange, lines)
104
- const linesToShow = lines.slice(lineRange.start, lineRange.end)
105
- const endLineNumber = lineRange.end
106
- const lineNumberMaxWidth = String(endLineNumber).length
107
-
108
- if (column === 0) column = 1
109
-
110
- const columnRange = {}
111
- if (column === undefined) {
112
- columnRange.start = 0
113
- columnRange.end = lineMaxLength
114
- } else if (column > lineMaxLength) {
115
- columnRange.start = column - Math.floor(lineMaxLength / 2)
116
- columnRange.end = column + Math.ceil(lineMaxLength / 2)
117
- } else {
118
- columnRange.start = 0
119
- columnRange.end = lineMaxLength
120
- }
121
-
122
- return linesToShow.map((lineSource, index) => {
123
- const lineNumber = lineRange.start + index + 1
124
- const isMainLine = lineNumber === line
125
- const lineSourceTruncated = applyColumnRange(columnRange, lineSource)
126
- const lineNumberWidth = String(lineNumber).length
127
- // ensure if line moves from 7,8,9 to 10 the display is still great
128
- const lineNumberRightSpacing = " ".repeat(
129
- lineNumberMaxWidth - lineNumberWidth,
130
- )
131
- const asideSource = `${lineNumber}${lineNumberRightSpacing} |`
132
- const lineFormatted = `${aside(asideSource)} ${lineSourceTruncated}`
133
- if (isMainLine) {
134
- if (column === undefined) {
135
- return `${mark(">")} ${lineFormatted}`
136
- }
137
- const spacing = stringToSpaces(
138
- `${asideSource} ${lineSourceTruncated.slice(
139
- 0,
140
- column - columnRange.start - 1,
141
- )}`,
142
- )
143
- return `${mark(">")} ${lineFormatted}
144
- ${spacing}${mark("^")}`
145
- }
146
- return ` ${lineFormatted}`
147
- }).join(`
148
- `)
149
- }
150
-
151
- const applyColumnRange = ({ start, end }, line) => {
152
- if (typeof start !== "number") {
153
- throw new TypeError(`start must be a number, received ${start}`)
154
- }
155
- if (typeof end !== "number") {
156
- throw new TypeError(`end must be a number, received ${end}`)
157
- }
158
- if (end < start) {
159
- throw new Error(
160
- `end must be greater than start, but ${end} is smaller than ${start}`,
161
- )
162
- }
163
-
164
- const prefix = "…"
165
- const suffix = "…"
166
- const lastIndex = line.length
167
-
168
- if (line.length === 0) {
169
- // don't show any ellipsis if the line is empty
170
- // because it's not truncated in that case
171
- return ""
172
- }
173
-
174
- const startTruncated = start > 0
175
- const endTruncated = lastIndex > end
176
-
177
- let from = startTruncated ? start + prefix.length : start
178
- let to = endTruncated ? end - suffix.length : end
179
- if (to > lastIndex) to = lastIndex
180
-
181
- if (start >= lastIndex || from === to) {
182
- return ""
183
- }
184
-
185
- let result = ""
186
- while (from < to) {
187
- result += line[from]
188
- from++
189
- }
190
-
191
- if (result.length === 0) {
192
- return ""
193
- }
194
- if (startTruncated && endTruncated) {
195
- return `${prefix}${result}${suffix}`
196
- }
197
- if (startTruncated) {
198
- return `${prefix}${result}`
199
- }
200
- if (endTruncated) {
201
- return `${result}${suffix}`
202
- }
203
- return result
204
- }
205
-
206
- const stringToSpaces = (string) => string.replace(/[^\t]/g, " ")
207
-
208
- // const getLineRangeLength = ({ start, end }) => end - start
209
-
210
- const moveLineRangeUp = ({ start, end }, number) => {
211
- return {
212
- start: start - number,
213
- end,
214
- }
215
- }
216
-
217
- const moveLineRangeDown = ({ start, end }, number) => {
218
- return {
219
- start,
220
- end: end + number,
221
- }
222
- }
223
-
224
- const lineRangeWithinLines = ({ start, end }, lines) => {
225
- return {
226
- start: start < 0 ? 0 : start,
227
- end: end > lines.length ? lines.length : end,
228
- }
229
- }
@@ -1,12 +0,0 @@
1
- /* eslint-env browser */
2
- window.__resolveImportUrl__ = (url, baseUrl) => {
3
- const importmapNode = document.querySelector('[type="importmap"]')
4
-
5
- if (importmapNode) {
6
- const importmap = JSON.parse(importmapNode.textContent)
7
- const specifier = importmap.imports[url] || url
8
- return new URL(specifier, baseUrl)
9
- }
10
-
11
- return new URL(url, baseUrl)
12
- }