@jsenv/core 27.0.0-alpha.9 → 27.0.0-alpha.92

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 (277) hide show
  1. package/dist/babel_helpers/AsyncGenerator/AsyncGenerator.js +95 -0
  2. package/dist/babel_helpers/AwaitValue/AwaitValue.js +3 -0
  3. package/dist/babel_helpers/applyDecoratorDescriptor/applyDecoratorDescriptor.js +29 -0
  4. package/dist/babel_helpers/applyDecs/applyDecs.js +756 -0
  5. package/dist/babel_helpers/arrayLikeToArray/arrayLikeToArray.js +9 -0
  6. package/dist/babel_helpers/arrayWithHoles/arrayWithHoles.js +4 -0
  7. package/dist/babel_helpers/arrayWithoutHoles/arrayWithoutHoles.js +5 -0
  8. package/dist/babel_helpers/assertThisInitialized/assertThisInitialized.js +8 -0
  9. package/dist/babel_helpers/asyncGeneratorDelegate/asyncGeneratorDelegate.js +52 -0
  10. package/dist/babel_helpers/asyncIterator/asyncIterator.js +78 -0
  11. package/dist/babel_helpers/asyncToGenerator/asyncToGenerator.js +39 -0
  12. package/dist/babel_helpers/awaitAsyncGenerator/awaitAsyncGenerator.js +4 -0
  13. package/dist/babel_helpers/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +24 -0
  14. package/dist/babel_helpers/classApplyDescriptorGet/classApplyDescriptorGet.js +7 -0
  15. package/dist/babel_helpers/classApplyDescriptorSet/classApplyDescriptorSet.js +14 -0
  16. package/dist/babel_helpers/classCallCheck/classCallCheck.js +5 -0
  17. package/dist/babel_helpers/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +5 -0
  18. package/dist/babel_helpers/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +6 -0
  19. package/dist/babel_helpers/classExtractFieldDescriptor/classExtractFieldDescriptor.js +8 -0
  20. package/dist/babel_helpers/classNameTDZError/classNameTDZError.js +4 -0
  21. package/dist/babel_helpers/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +6 -0
  22. package/dist/babel_helpers/classPrivateFieldGet/classPrivateFieldGet.js +6 -0
  23. package/dist/babel_helpers/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +7 -0
  24. package/dist/babel_helpers/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +5 -0
  25. package/dist/babel_helpers/classPrivateFieldSet/classPrivateFieldSet.js +7 -0
  26. package/dist/babel_helpers/classPrivateMethodGet/classPrivateMethodGet.js +7 -0
  27. package/dist/babel_helpers/classPrivateMethodSet/classPrivateMethodSet.js +3 -0
  28. package/dist/babel_helpers/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +8 -0
  29. package/dist/babel_helpers/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +9 -0
  30. package/dist/babel_helpers/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +5 -0
  31. package/dist/babel_helpers/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +3 -0
  32. package/dist/babel_helpers/construct/construct.js +15 -0
  33. package/dist/babel_helpers/createClass/createClass.js +18 -0
  34. package/dist/babel_helpers/createForOfIteratorHelper/createForOfIteratorHelper.js +63 -0
  35. package/dist/babel_helpers/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +22 -0
  36. package/dist/babel_helpers/createRawReactElement/createRawReactElement.js +50 -0
  37. package/dist/babel_helpers/createSuper/createSuper.js +22 -0
  38. package/dist/babel_helpers/decorate/decorate.js +622 -0
  39. package/dist/babel_helpers/defaults/defaults.js +14 -0
  40. package/dist/babel_helpers/defineEnumerableProperties/defineEnumerableProperties.js +26 -0
  41. package/dist/babel_helpers/defineProperty/defineProperty.js +19 -0
  42. package/dist/babel_helpers/extends/extends.js +16 -0
  43. package/dist/babel_helpers/get/get.js +21 -0
  44. package/dist/babel_helpers/getPrototypeOf/getPrototypeOf.js +2 -0
  45. package/dist/babel_helpers/identity/identity.js +3 -0
  46. package/dist/babel_helpers/inherits/inherits.js +21 -0
  47. package/dist/babel_helpers/inheritsLoose/inheritsLoose.js +6 -0
  48. package/dist/babel_helpers/initializerDefineProperty/initializerDefineProperty.js +10 -0
  49. package/dist/babel_helpers/initializerWarningHelper/initializerWarningHelper.js +3 -0
  50. package/dist/babel_helpers/instanceof/instanceof.js +7 -0
  51. package/dist/babel_helpers/interopRequireDefault/interopRequireDefault.js +5 -0
  52. package/dist/babel_helpers/interopRequireWildcard/interopRequireWildcard.js +49 -0
  53. package/dist/babel_helpers/isNativeFunction/isNativeFunction.js +4 -0
  54. package/dist/babel_helpers/isNativeReflectConstruct/isNativeReflectConstruct.js +21 -0
  55. package/dist/babel_helpers/iterableToArray/iterableToArray.js +3 -0
  56. package/dist/babel_helpers/iterableToArrayLimit/iterableToArrayLimit.js +38 -0
  57. package/dist/babel_helpers/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +13 -0
  58. package/dist/babel_helpers/jsx/jsx.js +49 -0
  59. package/dist/babel_helpers/maybeArrayLike/maybeArrayLike.js +10 -0
  60. package/dist/babel_helpers/newArrowCheck/newArrowCheck.js +5 -0
  61. package/dist/babel_helpers/nonIterableRest/nonIterableRest.js +3 -0
  62. package/dist/babel_helpers/nonIterableSpread/nonIterableSpread.js +3 -0
  63. package/dist/babel_helpers/objectDestructuringEmpty/objectDestructuringEmpty.js +3 -0
  64. package/dist/babel_helpers/objectSpread/objectSpread.js +22 -0
  65. package/dist/babel_helpers/objectSpread2/objectSpread2.js +41 -0
  66. package/dist/babel_helpers/objectWithoutProperties/objectWithoutProperties.js +20 -0
  67. package/dist/babel_helpers/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +15 -0
  68. package/dist/babel_helpers/possibleConstructorReturn/possibleConstructorReturn.js +10 -0
  69. package/dist/babel_helpers/readOnlyError/readOnlyError.js +4 -0
  70. package/dist/babel_helpers/set/set.js +51 -0
  71. package/dist/babel_helpers/setPrototypeOf/setPrototypeOf.js +5 -0
  72. package/dist/babel_helpers/skipFirstGeneratorNext/skipFirstGeneratorNext.js +8 -0
  73. package/dist/babel_helpers/slicedToArray/slicedToArray.js +5 -0
  74. package/dist/babel_helpers/slicedToArrayLoose/slicedToArrayLoose.js +7 -0
  75. package/dist/babel_helpers/superPropBase/superPropBase.js +10 -0
  76. package/dist/babel_helpers/taggedTemplateLiteral/taggedTemplateLiteral.js +11 -0
  77. package/dist/babel_helpers/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +8 -0
  78. package/dist/babel_helpers/tdz/tdz.js +4 -0
  79. package/dist/babel_helpers/temporalRef/temporalRef.js +5 -0
  80. package/dist/babel_helpers/temporalUndefined/temporalUndefined.js +3 -0
  81. package/dist/babel_helpers/toArray/toArray.js +5 -0
  82. package/dist/babel_helpers/toConsumableArray/toConsumableArray.js +5 -0
  83. package/dist/babel_helpers/toPrimitive/toPrimitive.js +14 -0
  84. package/dist/babel_helpers/toPropertyKey/toPropertyKey.js +5 -0
  85. package/dist/babel_helpers/typeof/typeof.js +7 -0
  86. package/dist/babel_helpers/unsupportedIterableToArray/unsupportedIterableToArray.js +10 -0
  87. package/dist/babel_helpers/wrapAsyncGenerator/wrapAsyncGenerator.js +7 -0
  88. package/dist/babel_helpers/wrapNativeSuper/wrapNativeSuper.js +35 -0
  89. package/dist/babel_helpers/wrapRegExp/wrapRegExp.js +67 -0
  90. package/dist/babel_helpers/writeOnlyError/writeOnlyError.js +4 -0
  91. package/dist/html/explorer.html +557 -0
  92. package/dist/js/controllable_file.mjs +227 -0
  93. package/dist/js/event_source_client.js +528 -0
  94. package/dist/js/global_this.js +32 -0
  95. package/dist/js/html_supervisor_installer.js +522 -0
  96. package/dist/js/html_supervisor_setup.js +82 -0
  97. package/dist/js/import_meta_hot.js +84 -0
  98. package/dist/js/inline_content.js +8 -0
  99. package/dist/js/new_stylesheet.js +409 -0
  100. package/dist/js/regenerator_runtime.js +721 -0
  101. package/dist/js/s.js +429 -0
  102. package/dist/js/uneval.js +804 -0
  103. package/dist/main.js +25163 -0
  104. package/dist/other/jsenv.png +0 -0
  105. package/dist/s.js +626 -0
  106. package/dist/s.js.map +205 -0
  107. package/package.json +61 -57
  108. package/readme.md +6 -14
  109. package/src/build/build.js +1040 -551
  110. package/src/build/build_urls_generator.js +65 -25
  111. package/src/build/graph_utils.js +31 -0
  112. package/src/build/inject_global_version_mappings.js +93 -0
  113. package/src/build/inject_service_worker_urls.js +79 -0
  114. package/src/build/resync_ressource_hints.js +114 -0
  115. package/src/build/start_build_server.js +217 -0
  116. package/src/build/version_generator.js +60 -0
  117. package/src/dev/plugins/explorer/client/explorer.html +1 -1
  118. package/src/dev/plugins/explorer/jsenv_plugin_explorer.js +9 -14
  119. package/src/dev/plugins/toolbar/client/util/fetching.js +1 -1
  120. package/src/dev/plugins/toolbar/jsenv_plugin_toolbar.js +6 -4
  121. package/src/dev/start_dev_server.js +173 -38
  122. package/src/execute/execute.js +35 -8
  123. package/src/execute/run.js +21 -57
  124. package/src/execute/runtimes/browsers/from_playwright.js +224 -153
  125. package/src/execute/runtimes/node/child_exec_options.js +1 -1
  126. package/src/execute/runtimes/node/controllable_file.mjs +26 -10
  127. package/src/execute/runtimes/node/kill_process_tree.js +2 -4
  128. package/src/execute/runtimes/node/node_execution_performance.js +67 -0
  129. package/src/execute/runtimes/node/node_process.js +288 -39
  130. package/src/helpers/command/command.js +73 -0
  131. package/src/{dev/plugins/autoreload/client/event_source_connection.js → helpers/event_source/event_source.js} +2 -0
  132. package/src/helpers/event_source/sse_service.js +53 -0
  133. package/src/helpers/worker_reload.js +57 -0
  134. package/src/main.js +27 -0
  135. package/src/omega/{runtime_support/features_compatibility.js → compat/features_compats.js} +30 -7
  136. package/src/omega/{runtime_support/runtime_support.js → compat/runtime_compat.js} +16 -17
  137. package/src/omega/errors.js +63 -67
  138. package/src/omega/fetched_content_compliance.js +24 -0
  139. package/src/omega/file_url_converter.js +9 -51
  140. package/src/omega/kitchen.js +607 -466
  141. package/src/omega/omega_server.js +2 -3
  142. package/src/omega/server/file_service.js +88 -41
  143. package/src/omega/server/user_agent.js +5 -5
  144. package/src/omega/url_graph/{url_graph_sort.js → sort_by_dependencies.js} +3 -5
  145. package/src/omega/url_graph/url_graph_load.js +31 -23
  146. package/src/omega/url_graph/url_graph_report.js +94 -51
  147. package/src/omega/url_graph/url_info_transformations.js +54 -24
  148. package/src/omega/url_graph.js +88 -19
  149. package/src/omega/url_specifier_encoding.js +59 -0
  150. package/src/omega/web_workers.js +42 -0
  151. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/autoreload_preference.js +0 -0
  152. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/event_source_client.js +19 -12
  153. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/reload.js +6 -3
  154. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/url_helpers.js +0 -0
  155. package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_client.js +41 -0
  156. package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_server.js +204 -0
  157. package/src/plugins/autoreload/jsenv_plugin_autoreload.js +25 -0
  158. package/src/plugins/autoreload/jsenv_plugin_hmr.js +35 -0
  159. package/src/plugins/bundling/css/bundle_css.js +140 -0
  160. package/src/plugins/bundling/js_classic_workers/bundle_js_classic_workers.js +13 -0
  161. package/src/plugins/bundling/js_module/bundle_js_module.js +362 -0
  162. package/src/plugins/bundling/jsenv_plugin_bundling.js +54 -0
  163. package/src/plugins/cache_control/jsenv_plugin_cache_control.js +34 -0
  164. package/src/{omega/core_plugins → plugins}/commonjs_globals/jsenv_plugin_commonjs_globals.js +56 -43
  165. package/src/plugins/file_urls/jsenv_plugin_file_urls.js +190 -0
  166. package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_document.js +0 -0
  167. package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_notification.js +0 -0
  168. package/src/plugins/html_supervisor/client/html_supervisor_installer.js +254 -0
  169. package/src/plugins/html_supervisor/client/html_supervisor_setup.js +82 -0
  170. package/src/{omega/core_plugins → plugins}/html_supervisor/client/perf_browser.js +0 -0
  171. package/src/{omega/core_plugins → plugins}/html_supervisor/client/uneval_exception.js +0 -0
  172. package/src/plugins/html_supervisor/jsenv_plugin_html_supervisor.js +239 -0
  173. package/src/plugins/http_urls/jsenv_plugin_http_urls.js +16 -0
  174. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/babel_plugin_metadata_import_meta_hot.js +4 -5
  175. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/client/import_meta_hot.js +3 -1
  176. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/html_hot_dependencies.js +15 -18
  177. package/src/plugins/import_meta_hot/jsenv_plugin_import_meta_hot.js +100 -0
  178. package/src/{omega/core_plugins → plugins}/import_meta_scenarios/jsenv_plugin_import_meta_scenarios.js +35 -10
  179. package/src/plugins/import_meta_url/client/import_meta_url_browser.js +52 -0
  180. package/src/plugins/import_meta_url/client/import_meta_url_commonjs.mjs +9 -0
  181. package/src/{omega/core_plugins → plugins}/importmap/jsenv_plugin_importmap.js +56 -54
  182. package/src/plugins/inject_globals/inject_globals.js +57 -0
  183. package/src/plugins/inject_globals/jsenv_plugin_inject_globals.js +24 -0
  184. package/src/{omega/core_plugins → plugins}/inline/client/inline_content.js +0 -0
  185. package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_data_urls.js +22 -21
  186. package/src/plugins/inline/jsenv_plugin_html_inline_content.js +159 -0
  187. package/src/plugins/inline/jsenv_plugin_inline.js +36 -0
  188. package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_inline_query_param.js +8 -11
  189. package/src/plugins/inline/jsenv_plugin_js_inline_content.js +294 -0
  190. package/src/plugins/leading_slash/jsenv_plugin_leading_slash.js +13 -0
  191. package/src/plugins/minification/css/minify_css.js +9 -0
  192. package/src/plugins/minification/html/minify_html.js +13 -0
  193. package/src/{build/plugins/minify_js/jsenv_plugin_minify_js.js → plugins/minification/js/minify_js.js} +6 -22
  194. package/src/plugins/minification/jsenv_plugin_minification.js +78 -0
  195. package/src/plugins/minification/json/minify_json.js +8 -0
  196. package/src/plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +162 -0
  197. package/src/plugins/node_runtime/jsenv_plugin_node_runtime.js +12 -0
  198. package/src/{omega → plugins}/plugin_controller.js +57 -12
  199. package/src/plugins/plugins.js +91 -0
  200. package/src/plugins/transpilation/as_js_classic/client/s.js +429 -0
  201. package/src/plugins/transpilation/as_js_classic/helpers/babel_plugin_transform_import_meta_url.js +47 -0
  202. package/src/plugins/transpilation/as_js_classic/helpers/systemjs_old.js +43 -0
  203. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic.js +209 -0
  204. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic_html.js +282 -0
  205. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic_workers.js +55 -0
  206. package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/babel_plugin_global_this_as_jsenv_import.js +2 -3
  207. package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/client/global_this.js +0 -0
  208. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugin_babel_helpers_as_jsenv_imports.js +3 -4
  209. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugin_structure.js +14 -17
  210. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugins_compatibility.js +0 -0
  211. package/src/{omega/core_plugins → plugins/transpilation}/babel/jsenv_plugin_babel.js +40 -33
  212. package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js +32 -9
  213. package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/client/new_stylesheet.js +0 -0
  214. package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js +2 -3
  215. package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/client/regenerator_runtime.js +0 -0
  216. package/src/plugins/transpilation/babel/require_babel_plugin.js +8 -0
  217. package/src/plugins/transpilation/css_parcel/jsenv_plugin_css_parcel.js +18 -0
  218. package/src/plugins/transpilation/import_assertions/jsenv_plugin_import_assertions.js +184 -0
  219. package/src/plugins/transpilation/jsenv_plugin_top_level_await.js +80 -0
  220. package/src/plugins/transpilation/jsenv_plugin_transpilation.js +46 -0
  221. package/src/plugins/url_analysis/css/css_urls.js +48 -0
  222. package/src/plugins/url_analysis/html/html_urls.js +257 -0
  223. package/src/plugins/url_analysis/js/js_urls.js +69 -0
  224. package/src/plugins/url_analysis/jsenv_plugin_url_analysis.js +110 -0
  225. package/src/plugins/url_analysis/webmanifest/webmanifest_urls.js +20 -0
  226. package/src/{omega/core_plugins → plugins}/url_resolution/jsenv_plugin_url_resolution.js +9 -5
  227. package/src/plugins/url_version/jsenv_plugin_url_version.js +28 -0
  228. package/src/require_from_jsenv.js +3 -0
  229. package/src/test/coverage/babel_plugin_instrument.js +82 -0
  230. package/src/test/coverage/coverage_reporter_html_directory.js +36 -0
  231. package/src/test/coverage/coverage_reporter_json_file.js +22 -0
  232. package/src/test/coverage/coverage_reporter_text_log.js +19 -0
  233. package/src/test/coverage/empty_coverage_factory.js +52 -0
  234. package/src/test/coverage/file_by_file_coverage.js +25 -0
  235. package/src/test/coverage/istanbul_coverage_composition.js +28 -0
  236. package/src/test/coverage/istanbul_coverage_map_from_coverage.js +16 -0
  237. package/src/test/coverage/list_files_not_covered.js +15 -0
  238. package/src/test/coverage/missing_coverage.js +41 -0
  239. package/src/test/coverage/report_to_coverage.js +196 -0
  240. package/src/test/coverage/v8_and_istanbul.js +37 -0
  241. package/src/test/coverage/v8_coverage_composition.js +24 -0
  242. package/src/test/coverage/v8_coverage_from_directory.js +87 -0
  243. package/src/test/coverage/v8_coverage_to_istanbul.js +99 -0
  244. package/src/test/execute_plan.js +87 -46
  245. package/src/test/execute_test_plan.js +40 -28
  246. package/src/test/execution_steps.js +2 -5
  247. package/src/test/logs_file_execution.js +56 -49
  248. package/main.js +0 -19
  249. package/src/build/inject_version_mappings.js +0 -62
  250. package/src/build/plugins/bundle_js_module/jsenv_plugin_bundle_js_module.js +0 -227
  251. package/src/build/plugins/minify_html/jsenv_plugin_minify_html.js +0 -30
  252. package/src/dev/plugins/autoreload/jsenv_plugin_autoreload.js +0 -374
  253. package/src/dev/plugins/autoreload/sse_service.js +0 -149
  254. package/src/execute/runtimes/node/controlled_process.js +0 -316
  255. package/src/omega/core_plugins/babel/new_stylesheet/client/.eslintrc.cjs +0 -24
  256. package/src/omega/core_plugins/file_urls/jsenv_plugin_file_urls.js +0 -67
  257. package/src/omega/core_plugins/filesystem_magic/jsenv_plugin_filesystem_magic.js +0 -58
  258. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_installer.js +0 -168
  259. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_setup.js +0 -77
  260. package/src/omega/core_plugins/html_supervisor/jsenv_plugin_html_supervisor.js +0 -233
  261. package/src/omega/core_plugins/import_assertions/helpers/babel_plugin_metadata_import_assertions.js +0 -98
  262. package/src/omega/core_plugins/import_assertions/helpers/json_module.js +0 -12
  263. package/src/omega/core_plugins/import_assertions/helpers/text_module.js +0 -6
  264. package/src/omega/core_plugins/import_assertions/jsenv_plugin_import_assertions.js +0 -211
  265. package/src/omega/core_plugins/inline/jsenv_plugin_inline.js +0 -13
  266. package/src/omega/core_plugins/inline/jsenv_plugin_js_and_css_inside_html.js +0 -142
  267. package/src/omega/core_plugins/inline/jsenv_plugin_new_inline_content.js +0 -207
  268. package/src/omega/core_plugins/leading_slash/jsenv_plugin_leading_slash.js +0 -12
  269. package/src/omega/core_plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +0 -77
  270. package/src/omega/core_plugins/url_version/jsenv_plugin_url_version.js +0 -50
  271. package/src/omega/core_plugins.js +0 -39
  272. package/src/omega/runtime_support/default_runtime_support.js +0 -13
  273. package/src/omega/url_mentions/css_url_mentions.js +0 -63
  274. package/src/omega/url_mentions/html_url_mentions.js +0 -185
  275. package/src/omega/url_mentions/js_module_url_mentions.js +0 -91
  276. package/src/omega/url_mentions/parse_url_mentions.js +0 -37
  277. package/src/omega/url_mentions/worker_classic_url_mentions.js +0 -37
@@ -1,227 +0,0 @@
1
- import { isFileSystemPath, urlToRelativeUrl } from "@jsenv/filesystem"
2
-
3
- import { applyRollupPlugins } from "@jsenv/utils/js_ast/apply_rollup_plugins.js"
4
- import { sourcemapConverter } from "@jsenv/utils/sourcemap/sourcemap_converter.js"
5
- import { fileUrlConverter } from "@jsenv/core/src/omega/file_url_converter.js"
6
-
7
- export const jsenvPluginBundleJsModule = () => {
8
- return {
9
- name: "jsenv:bundle_js_module",
10
- appliesDuring: {
11
- build: true,
12
- },
13
- bundle: {
14
- js_module: async (
15
- jsModuleUrlInfos,
16
- {
17
- signal,
18
- logger,
19
- rootDirectoryUrl,
20
- buildDirectoryUrl,
21
- urlGraph,
22
- runtimeSupport,
23
- sourcemaps,
24
- },
25
- ) => {
26
- const { jsModuleBundleUrlInfos } = await buildWithRollup({
27
- signal,
28
- logger,
29
- rootDirectoryUrl,
30
- buildDirectoryUrl,
31
- urlGraph,
32
- jsModuleUrlInfos,
33
-
34
- runtimeSupport,
35
- sourcemaps,
36
- })
37
- return jsModuleBundleUrlInfos
38
- },
39
- },
40
- }
41
- }
42
-
43
- export const buildWithRollup = async ({
44
- signal,
45
- logger,
46
- rootDirectoryUrl,
47
- buildDirectoryUrl,
48
- urlGraph,
49
- jsModuleUrlInfos,
50
-
51
- runtimeSupport,
52
- sourcemaps,
53
- }) => {
54
- const resultRef = { current: null }
55
- await applyRollupPlugins({
56
- rollupPlugins: [
57
- rollupPluginJsenv({
58
- signal,
59
- logger,
60
- rootDirectoryUrl,
61
- buildDirectoryUrl,
62
- urlGraph,
63
- jsModuleUrlInfos,
64
-
65
- runtimeSupport,
66
- sourcemaps,
67
- resultRef,
68
- }),
69
- ],
70
- inputOptions: {
71
- input: [],
72
- onwarn: (warning) => {
73
- if (warning.code === "CIRCULAR_DEPENDENCY") {
74
- return
75
- }
76
- logger.warn(String(warning))
77
- },
78
- },
79
- })
80
- return resultRef.current
81
- }
82
-
83
- const rollupPluginJsenv = ({
84
- // logger,
85
- rootDirectoryUrl,
86
- buildDirectoryUrl,
87
- urlGraph,
88
- jsModuleUrlInfos,
89
- sourcemaps,
90
-
91
- resultRef,
92
- }) => {
93
- let _rollupEmitFile = () => {
94
- throw new Error("not implemented")
95
- }
96
- const emitChunk = (chunk) => {
97
- return _rollupEmitFile({
98
- type: "chunk",
99
- ...chunk,
100
- })
101
- }
102
- const urlImporters = {}
103
-
104
- return {
105
- name: "jsenv",
106
- async buildStart() {
107
- _rollupEmitFile = (...args) => this.emitFile(...args)
108
- let previousNonEntryPointModuleId
109
- jsModuleUrlInfos.forEach((jsModuleUrlInfo) => {
110
- const id = jsModuleUrlInfo.url
111
- if (jsModuleUrlInfo.data.isEntryPoint) {
112
- emitChunk({
113
- id,
114
- })
115
- return
116
- }
117
- emitChunk({
118
- id,
119
- implicitlyLoadedAfterOneOf: previousNonEntryPointModuleId
120
- ? [previousNonEntryPointModuleId]
121
- : null,
122
- })
123
- previousNonEntryPointModuleId = id
124
- })
125
- },
126
- async generateBundle(outputOptions, rollupResult) {
127
- _rollupEmitFile = (...args) => this.emitFile(...args)
128
-
129
- const jsModuleBundleUrlInfos = {}
130
- Object.keys(rollupResult).forEach((fileName) => {
131
- const rollupFileInfo = rollupResult[fileName]
132
- // there is 3 types of file: "placeholder", "asset", "chunk"
133
- if (rollupFileInfo.type === "chunk") {
134
- const jsModuleBundleUrlInfo = {
135
- // buildRelativeUrl: rollupFileInfo.fileName,
136
- data: {
137
- generatedBy: "rollup",
138
- },
139
- contentType: "application/javascript",
140
- content: rollupFileInfo.code,
141
- sourcemap: rollupFileInfo.map,
142
- }
143
- let url
144
- if (rollupFileInfo.facadeModuleId) {
145
- url = fileUrlConverter.asFileUrl(rollupFileInfo.facadeModuleId)
146
- } else {
147
- url = new URL(rollupFileInfo.fileName, rootDirectoryUrl).href
148
- }
149
- jsModuleBundleUrlInfos[url] = jsModuleBundleUrlInfo
150
- }
151
- })
152
- resultRef.current = {
153
- jsModuleBundleUrlInfos,
154
- }
155
- },
156
- outputOptions: (outputOptions) => {
157
- // const sourcemapFile = buildDirectoryUrl
158
- Object.assign(outputOptions, {
159
- format: "esm",
160
- dir: fileUrlConverter.asFilePath(buildDirectoryUrl),
161
- sourcemap: sourcemaps === "file" || sourcemaps === "inline",
162
- // sourcemapFile,
163
- sourcemapPathTransform: (relativePath) => {
164
- return new URL(relativePath, buildDirectoryUrl).href
165
- },
166
- entryFileNames: () => {
167
- return `[name].js`
168
- },
169
- chunkFileNames: (chunkInfo) => {
170
- // preserves relative path parts:
171
- // the goal is to maintain the original relative path (relative to the root directory)
172
- // so that later in the build process, when resolving these urls, we are able to
173
- // re-resolve the specifier againt the original parent url and find the original url
174
- if (chunkInfo.facadeModuleId) {
175
- const fileUrl = fileUrlConverter.asFileUrl(chunkInfo.facadeModuleId)
176
- const relativePath = urlToRelativeUrl(fileUrl, rootDirectoryUrl)
177
- return relativePath
178
- }
179
- // chunk generated dynamically by rollup to share code.
180
- // we prefix with "__rollup__/" to avoid potential conflict of filename
181
- // between this one and a file with the same name existing in the root directory
182
- return `__rollup__/${chunkInfo.name}.js`
183
- },
184
- // https://rollupjs.org/guide/en/#outputpaths
185
- // paths: (id) => {
186
- // return id
187
- // },
188
- })
189
- },
190
- resolveId: (specifier, importer = rootDirectoryUrl) => {
191
- if (isFileSystemPath(importer)) {
192
- importer = fileUrlConverter.asFileUrl(importer)
193
- }
194
- const url = new URL(specifier, importer).href
195
- const existingImporter = urlImporters[url]
196
- if (!existingImporter) {
197
- urlImporters[url] = importer
198
- }
199
- if (!url.startsWith("file:")) {
200
- return { url, external: true }
201
- }
202
- const filePath = fileUrlConverter.asFilePath(url)
203
- return filePath
204
- },
205
- async load(rollupId) {
206
- const fileUrl = fileUrlConverter.asFileUrl(rollupId)
207
- const urlInfo = urlGraph.getUrlInfo(fileUrl)
208
- return {
209
- code: urlInfo.content,
210
- map: urlInfo.sourcemap
211
- ? sourcemapConverter.toFilePaths(urlInfo.sourcemap)
212
- : urlInfo.sourcemap,
213
- }
214
- },
215
- // resolveFileUrl: ({ moduleId }) => {
216
- // return `${fileUrlConverter.asFileUrl(moduleId)}`
217
- // },
218
- renderChunk: (code, chunkInfo) => {
219
- const { facadeModuleId } = chunkInfo
220
- if (!facadeModuleId) {
221
- // happens for inline module scripts for instance
222
- return null
223
- }
224
- return null
225
- },
226
- }
227
- }
@@ -1,30 +0,0 @@
1
- import { createRequire } from "node:module"
2
-
3
- const require = createRequire(import.meta.url)
4
-
5
- // https://github.com/kangax/html-minifier#options-quick-reference
6
- export const jsenvPluginMinifyHtml = ({
7
- collapseWhitespace = true,
8
- removeComments = true,
9
- } = {}) => {
10
- return {
11
- name: "jsenv:minify_html",
12
- appliesDuring: {
13
- build: true,
14
- },
15
- optimize: {
16
- html: async (htmlUrlInfo) => {
17
- return minifyHtml(htmlUrlInfo.content, {
18
- collapseWhitespace,
19
- removeComments,
20
- })
21
- },
22
- },
23
- }
24
- }
25
-
26
- const minifyHtml = (htmlString, options) => {
27
- const { minify } = require("html-minifier")
28
- const htmlMinified = minify(htmlString, options)
29
- return htmlMinified
30
- }
@@ -1,374 +0,0 @@
1
- import { urlToRelativeUrl } from "@jsenv/filesystem"
2
- import { createCallbackList } from "@jsenv/abort"
3
-
4
- import { injectQueryParams } from "@jsenv/utils/urls/url_utils.js"
5
- import { createMagicSource } from "@jsenv/utils/sourcemap/magic_source.js"
6
- import {
7
- parseHtmlString,
8
- stringifyHtmlAst,
9
- injectScriptAsEarlyAsPossible,
10
- createHtmlNode,
11
- } from "@jsenv/utils/html_ast/html_ast.js"
12
- import { applyBabelPlugins } from "@jsenv/utils/js_ast/apply_babel_plugins.js"
13
-
14
- import { createSSEService } from "./sse_service.js"
15
- import { collectHotDataFromHtmlAst } from "./html_hot_dependencies.js"
16
- import { babelPluginMetadataImportMetaHot } from "./babel_plugin_metadata_import_meta_hot.js"
17
-
18
- export const jsenvPluginAutoreload = ({
19
- rootDirectoryUrl,
20
- urlGraph,
21
- autoreloadPatterns,
22
- }) => {
23
- return [
24
- jsenvPluginHot(),
25
- jsenvPluginHotSSE({
26
- rootDirectoryUrl,
27
- urlGraph,
28
- autoreloadPatterns,
29
- }),
30
- ]
31
- }
32
-
33
- const jsenvPluginHot = () => {
34
- const eventSourceClientFileUrl = new URL(
35
- "./client/event_source_client.js",
36
- import.meta.url,
37
- ).href
38
- const importMetaHotClientFileUrl = new URL(
39
- "./client/import_meta_hot.js",
40
- import.meta.url,
41
- ).href
42
-
43
- return {
44
- name: "jsenv:hot",
45
- appliesDuring: { dev: true },
46
- normalize: ({ url, data }) => {
47
- const urlObject = new URL(url)
48
- if (!urlObject.searchParams.has("hmr")) {
49
- data.hmr = false
50
- return null
51
- }
52
- data.hmr = true
53
- // "hmr" search param goal is to mark url as enabling hmr:
54
- // this goal is achieved when we reach this part of the code
55
- // We get rid of this params so that urlGraph and other parts of the code
56
- // recognize the url (it is not considered as a different url)
57
- urlObject.searchParams.delete("hmr")
58
- urlObject.searchParams.delete("v")
59
- return urlObject.href
60
- },
61
- transformReferencedUrl: ({ parentUrl, url, data }, { urlGraph }) => {
62
- const parentUrlInfo = urlGraph.getUrlInfo(parentUrl)
63
- if (!parentUrlInfo || !parentUrlInfo.data.hmr) {
64
- return null
65
- }
66
- if (!data.hmrTimestamp) {
67
- return null
68
- }
69
- return injectQueryParams(url, {
70
- hmr: "",
71
- v: data.hmrTimestamp,
72
- })
73
- },
74
- transform: {
75
- html: ({ data, content }, { referenceUtils }) => {
76
- const htmlAst = parseHtmlString(content)
77
- const { hotReferences } = collectHotDataFromHtmlAst(htmlAst)
78
- data.hotDecline = false
79
- data.hotAcceptSelf = false
80
- data.hotAcceptDependencies = hotReferences.map(
81
- ({ type, specifier }) => {
82
- const [reference] = referenceUtils.inject({
83
- type,
84
- specifier,
85
- })
86
- return reference.url
87
- },
88
- )
89
- const [eventSourceClientReference] = referenceUtils.inject({
90
- type: "script_src",
91
- specifier: eventSourceClientFileUrl,
92
- })
93
- injectScriptAsEarlyAsPossible(
94
- htmlAst,
95
- createHtmlNode({
96
- "tagName": "script",
97
- "type": "module",
98
- "src": eventSourceClientReference.generatedSpecifier,
99
- "injected-by": "jsenv:hot",
100
- }),
101
- )
102
- const htmlModified = stringifyHtmlAst(htmlAst)
103
- return {
104
- content: htmlModified,
105
- }
106
- },
107
- css: ({ data }) => {
108
- data.hotDecline = false
109
- data.hotAcceptSelf = false
110
- data.hotAcceptDependencies = []
111
- },
112
- js_module: async (
113
- { url, generatedUrl, data, content },
114
- { referenceUtils },
115
- ) => {
116
- const { metadata } = await applyBabelPlugins({
117
- babelPlugins: [babelPluginMetadataImportMetaHot],
118
- url,
119
- generatedUrl,
120
- content,
121
- })
122
- const {
123
- importMetaHotDetected,
124
- hotDecline,
125
- hotAcceptSelf,
126
- hotAcceptDependencies,
127
- } = metadata
128
- data.hotDecline = hotDecline
129
- data.hotAcceptSelf = hotAcceptSelf
130
- data.hotAcceptDependencies = hotAcceptDependencies
131
- if (!importMetaHotDetected) {
132
- return null
133
- }
134
- // For some reason using magic source here produce
135
- // better sourcemap than doing the equivalent with babel
136
- // I suspect it's because I was doing injectAstAfterImport(programPath, ast.program.body[0])
137
- // which is likely not well supported by babel
138
- const [importMetaHotClientFileReference] = referenceUtils.inject({
139
- parentUrl: url,
140
- type: "js_import_export",
141
- specifier: importMetaHotClientFileUrl,
142
- })
143
- const magicSource = createMagicSource(content)
144
- magicSource.prepend(
145
- `import { createImportMetaHot } from ${importMetaHotClientFileReference.generatedSpecifier}
146
- import.meta.hot = createImportMetaHot(import.meta.url)
147
- `,
148
- )
149
- return magicSource.toContentAndSourcemap()
150
- },
151
- },
152
- }
153
- }
154
-
155
- const jsenvPluginHotSSE = ({
156
- rootDirectoryUrl,
157
- urlGraph,
158
- autoreloadPatterns,
159
- }) => {
160
- const hotUpdateCallbackList = createCallbackList()
161
- const notifyDeclined = ({ cause, reason, declinedBy }) => {
162
- hotUpdateCallbackList.notify({
163
- declined: true,
164
- cause,
165
- reason,
166
- declinedBy,
167
- })
168
- }
169
- const notifyAccepted = ({ cause, reason, instructions }) => {
170
- hotUpdateCallbackList.notify({
171
- accepted: true,
172
- cause,
173
- reason,
174
- instructions,
175
- })
176
- }
177
- const updateHmrTimestamp = (urlInfo, hmrTimestamp) => {
178
- const urlInfos = urlGraph.urlInfos
179
- const seen = []
180
- const iterate = (urlInfo) => {
181
- if (seen.includes(urlInfo.url)) {
182
- return
183
- }
184
- seen.push(urlInfo.url)
185
- urlInfo.data.hmrTimestamp = hmrTimestamp
186
- urlInfo.dependents.forEach((dependentUrl) => {
187
- const dependentUrlInfo = urlInfos[dependentUrl]
188
- if (
189
- !dependentUrlInfo.data.hotAcceptDependencies.includes(urlInfo.url)
190
- ) {
191
- iterate(dependentUrlInfo, hmrTimestamp)
192
- }
193
- })
194
- }
195
- iterate(urlInfo)
196
- }
197
- const propagateUpdate = (firstUrlInfo) => {
198
- const urlInfos = urlGraph.urlInfos
199
- const iterate = (urlInfo, trace) => {
200
- if (urlInfo.data.hotAcceptSelf) {
201
- return {
202
- accepted: true,
203
- reason:
204
- urlInfo === firstUrlInfo
205
- ? `file accepts hot reload`
206
- : `a dependent file accepts hot reload`,
207
- instructions: [
208
- {
209
- type: urlInfo.type,
210
- boundary: urlToRelativeUrl(urlInfo.url, rootDirectoryUrl),
211
- acceptedBy: urlToRelativeUrl(urlInfo.url, rootDirectoryUrl),
212
- },
213
- ],
214
- }
215
- }
216
- const { dependents } = urlInfo
217
- const instructions = []
218
- for (const dependentUrl of dependents) {
219
- const dependentUrlInfo = urlInfos[dependentUrl]
220
- if (dependentUrlInfo.data.hotDecline) {
221
- return {
222
- declined: true,
223
- reason: `a dependent file declines hot reload`,
224
- declinedBy: dependentUrl,
225
- }
226
- }
227
- if (dependentUrlInfo.data.hotAcceptDependencies.includes(urlInfo.url)) {
228
- instructions.push({
229
- type: dependentUrlInfo.type,
230
- boundary: urlToRelativeUrl(dependentUrl, rootDirectoryUrl),
231
- acceptedBy: urlToRelativeUrl(urlInfo.url, rootDirectoryUrl),
232
- })
233
- continue
234
- }
235
- if (trace.includes(dependentUrl)) {
236
- return {
237
- declined: true,
238
- reason: "circular dependency",
239
- declinedBy: urlToRelativeUrl(dependentUrl, rootDirectoryUrl),
240
- }
241
- }
242
- const dependentPropagationResult = iterate(dependentUrlInfo, [
243
- ...trace,
244
- dependentUrl,
245
- ])
246
- if (dependentPropagationResult.accepted) {
247
- instructions.push(...dependentPropagationResult.instructions)
248
- continue
249
- }
250
- if (
251
- // declined explicitely by an other file, it must decline the whole update
252
- dependentPropagationResult.declinedBy
253
- ) {
254
- return dependentPropagationResult
255
- }
256
- // declined by absence of boundary, we can keep searching
257
- continue
258
- }
259
- if (instructions.length === 0) {
260
- return {
261
- declined: true,
262
- reason: `there is no file accepting hot reload while propagating update`,
263
- }
264
- }
265
- return {
266
- accepted: true,
267
- reason: `${instructions.length} dependent file(s) accepts hot reload`,
268
- instructions,
269
- }
270
- }
271
- const trace = []
272
- return iterate(firstUrlInfo, trace)
273
- }
274
- const sseService = createSSEService({
275
- rootDirectoryUrl,
276
- autoreloadPatterns,
277
- onFileChange: ({ relativeUrl, event }) => {
278
- const url = new URL(relativeUrl, rootDirectoryUrl).href
279
- const urlInfo = urlGraph.urlInfos[url]
280
- // file not part of dependency graph
281
- if (!urlInfo) {
282
- return
283
- }
284
- updateHmrTimestamp(urlInfo, Date.now())
285
- const hotUpdate = propagateUpdate(urlInfo)
286
- if (hotUpdate.declined) {
287
- notifyDeclined({
288
- cause: `${relativeUrl} ${event}`,
289
- reason: hotUpdate.reason,
290
- declinedBy: hotUpdate.declinedBy,
291
- })
292
- } else {
293
- notifyAccepted({
294
- cause: `${relativeUrl} ${event}`,
295
- reason: hotUpdate.reason,
296
- instructions: hotUpdate.instructions,
297
- })
298
- }
299
- },
300
- hotUpdateCallbackList,
301
- })
302
- urlGraph.prunedCallbackList.add(({ prunedUrlInfos, firstUrlInfo }) => {
303
- prunedUrlInfos.forEach((prunedUrlInfo) => {
304
- prunedUrlInfo.data.hmrTimestamp = Date.now()
305
- // should we delete instead?
306
- // delete urlGraph.urlInfos[prunedUrlInfo.url]
307
- })
308
- const mainHotUpdate = propagateUpdate(firstUrlInfo)
309
- const cause = `following files are no longer referenced: ${prunedUrlInfos.map(
310
- (prunedUrlInfo) => urlToRelativeUrl(prunedUrlInfo.url, rootDirectoryUrl),
311
- )}`
312
- // now check if we can hot update the main ressource
313
- // then if we can hot update all dependencies
314
- if (mainHotUpdate.declined) {
315
- notifyDeclined({
316
- cause,
317
- reason: mainHotUpdate.reason,
318
- declinedBy: mainHotUpdate.declinedBy,
319
- })
320
- return
321
- }
322
- // main can hot update
323
- let i = 0
324
- const instructions = []
325
- while (i < prunedUrlInfos.length) {
326
- const prunedUrlInfo = prunedUrlInfos[i++]
327
- if (prunedUrlInfo.data.hotDecline) {
328
- notifyDeclined({
329
- cause,
330
- reason: `a pruned file declines hot reload`,
331
- declinedBy: urlToRelativeUrl(prunedUrlInfo.url, rootDirectoryUrl),
332
- })
333
- return
334
- }
335
- instructions.push({
336
- type: "prune",
337
- boundary: urlToRelativeUrl(prunedUrlInfo.url, rootDirectoryUrl),
338
- acceptedBy: urlToRelativeUrl(firstUrlInfo.url, rootDirectoryUrl),
339
- })
340
- }
341
- notifyAccepted({
342
- cause,
343
- reason: mainHotUpdate.reason,
344
- instructions,
345
- })
346
- })
347
-
348
- return {
349
- name: "jsenv:hot_sse",
350
- appliesDuring: { dev: true },
351
- serve: (request, { urlGraph, rootDirectoryUrl }) => {
352
- if (request.ressource === "/__graph__") {
353
- const graphJson = JSON.stringify(urlGraph.toJSON(rootDirectoryUrl))
354
- return {
355
- status: 200,
356
- headers: {
357
- "content-type": "application/json",
358
- "content-length": Buffer.byteLength(graphJson),
359
- },
360
- body: graphJson,
361
- }
362
- }
363
- const { accept } = request.headers
364
- if (accept && accept.includes("text/event-stream")) {
365
- const room = sseService.getOrCreateSSERoom(request)
366
- return room.join(request)
367
- }
368
- return null
369
- },
370
- destroy: () => {
371
- sseService.destroy()
372
- },
373
- }
374
- }