@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,168 +0,0 @@
1
- import { unevalException } from "./uneval_exception.js"
2
- import { displayErrorInDocument } from "./error_in_document.js"
3
- import { displayErrorNotification } from "./error_in_notification.js"
4
-
5
- const { __html_supervisor__ } = window
6
-
7
- export const installHtmlSupervisor = ({ logs, measurePerf }) => {
8
- const errorTransformer = null // could implement error stack remapping if needed
9
- const scriptExecutionResults = {}
10
- let collectCalled = false
11
- let pendingExecutionCount = 0
12
- let resolveScriptExecutionsPromise
13
- const scriptExecutionsPromise = new Promise((resolve) => {
14
- resolveScriptExecutionsPromise = resolve
15
- })
16
- const onExecutionStart = (name) => {
17
- scriptExecutionResults[name] = null // ensure execution order is reflected into the object
18
- pendingExecutionCount++
19
- if (measurePerf) {
20
- performance.mark(`execution_start`)
21
- }
22
- }
23
- const onExecutionSettled = (name, executionResult) => {
24
- if (measurePerf) {
25
- performance.measure(`execution`, `execution_start`)
26
- }
27
- scriptExecutionResults[name] = executionResult
28
- pendingExecutionCount--
29
- if (pendingExecutionCount === 0 && collectCalled) {
30
- resolveScriptExecutionsPromise()
31
- }
32
- }
33
- const onExecutionError = (
34
- executionResult,
35
- {
36
- currentScript,
37
- errorExposureInNotification = false,
38
- errorExposureInDocument = true,
39
- },
40
- ) => {
41
- const error = executionResult.error
42
- if (error && error.code === "NETWORK_FAILURE") {
43
- if (currentScript) {
44
- const errorEvent = new Event("error")
45
- currentScript.dispatchEvent(errorEvent)
46
- }
47
- } else if (typeof error === "object") {
48
- const globalErrorEvent = new Event("error")
49
- globalErrorEvent.filename = error.filename
50
- globalErrorEvent.lineno = error.line || error.lineno
51
- globalErrorEvent.colno = error.column || error.columnno
52
- globalErrorEvent.message = error.message
53
- window.dispatchEvent(globalErrorEvent)
54
- }
55
- if (errorExposureInNotification) {
56
- displayErrorNotification(error)
57
- }
58
- if (errorExposureInDocument) {
59
- displayErrorInDocument(error)
60
- }
61
- executionResult.exceptionSource = unevalException(error)
62
- delete executionResult.error
63
- }
64
- const getNavigationStartTime = () => {
65
- try {
66
- return window.performance.timing.navigationStart
67
- } catch (e) {
68
- return Date.now()
69
- }
70
- }
71
-
72
- __html_supervisor__.addExecution = async ({
73
- type,
74
- src,
75
- currentScript,
76
- promise,
77
- }) => {
78
- if (logs) {
79
- console.group(`[jsenv] loading ${type} ${src}`)
80
- }
81
- onExecutionStart(src)
82
- promise.then(
83
- (namespace) => {
84
- const executionResult = {
85
- status: "completed",
86
- namespace,
87
- coverage: window.__coverage__,
88
- }
89
- onExecutionSettled(src, executionResult)
90
- if (logs) {
91
- console.log(`${type} load ended`)
92
-
93
- console.groupEnd()
94
- }
95
- },
96
- async (e) => {
97
- let error = e
98
- const executionResult = {
99
- status: "errored",
100
- coverage: window.__coverage__,
101
- }
102
- let errorExposureInConsole = true
103
- if (e.name === "SyntaxError") {
104
- // errorExposureInConsole = false
105
- }
106
- if (errorTransformer) {
107
- try {
108
- error = await errorTransformer(e)
109
- } catch (e) {}
110
- }
111
- executionResult.error = error
112
- onExecutionSettled(src, executionResult)
113
- onExecutionError(executionResult, {
114
- currentScript,
115
- })
116
- if (errorExposureInConsole) {
117
- if (typeof window.reportError === "function") {
118
- window.reportError(error)
119
- } else {
120
- console.error(error)
121
- }
122
- }
123
- console.groupEnd()
124
- },
125
- )
126
- }
127
- __html_supervisor__.collectScriptResults = async () => {
128
- collectCalled = true
129
- if (pendingExecutionCount === 0) {
130
- resolveScriptExecutionsPromise()
131
- } else {
132
- await scriptExecutionsPromise
133
- }
134
-
135
- let status = "completed"
136
- let exceptionSource = ""
137
- Object.keys(scriptExecutionResults).forEach((key) => {
138
- const scriptExecutionResult = scriptExecutionResults[key]
139
- if (scriptExecutionResult.status === "errored") {
140
- status = "errored"
141
- exceptionSource = scriptExecutionResult.exceptionSource
142
- }
143
- })
144
- return {
145
- status,
146
- ...(status === "errored" ? { exceptionSource } : {}),
147
- startTime: getNavigationStartTime(),
148
- endTime: Date.now(),
149
- scriptExecutionResults,
150
- }
151
- }
152
- }
153
-
154
- export const superviseScriptTypeModule = ({ src }) => {
155
- __html_supervisor__.addExecution({
156
- type: "js_module",
157
- currentScript: null,
158
- improveErrorWithFetch: true,
159
- src,
160
- promise: import(new URL(src, document.location.href).href),
161
- })
162
- }
163
-
164
- const { executions } = __html_supervisor__
165
- executions.forEach((execution) => {
166
- __html_supervisor__.addExecution(execution)
167
- })
168
- executions.length = 0
@@ -1,77 +0,0 @@
1
- window.__html_supervisor__ = {
2
- // "html_supervisor_installer.js" will implement
3
- // - "addExecution"
4
- // - "collectScriptResults"
5
- // - "superviseScriptTypeModule"
6
- // and take all executions in "executions" and implement their supervision
7
- executions: [],
8
- addExecution: (execution) => {
9
- window.__html_supervisor__.executions.push(execution)
10
- },
11
- collectScriptResults: () => {
12
- throw new Error("htmlSupervisor not installed")
13
- },
14
- superviseScriptTypeModule: () => {
15
- throw new Error("htmlSupervisor not installed")
16
- },
17
- superviseScript: ({ src, crossorigin, integrity }) => {
18
- window.__html_supervisor__.addExecution({
19
- type: "js_classic",
20
- improveErrorWithFetch: true,
21
- currentScript: document.currentScript,
22
- src,
23
- promise: new Promise((resolve, reject) => {
24
- const script = document.createElement("script")
25
- if (crossorigin) {
26
- script.crossorigin = crossorigin
27
- }
28
- if (integrity) {
29
- script.integrity = integrity
30
- }
31
- script.src = src
32
- const scriptUrl = new URL(src, window.location).href
33
- let lastWindowErrorUrl
34
- let lastWindowError
35
- const windowErrorCallback = (e) => {
36
- lastWindowErrorUrl = e.filename
37
- lastWindowError = e.error
38
- }
39
- const cleanup = () => {
40
- document.body.removeChild(script)
41
- window.removeEventListener("error", windowErrorCallback)
42
- }
43
- window.addEventListener("error", windowErrorCallback)
44
- script.addEventListener("error", () => {
45
- cleanup()
46
- reject(src)
47
- })
48
- script.addEventListener("load", () => {
49
- cleanup()
50
- if (lastWindowErrorUrl === scriptUrl) {
51
- reject(lastWindowError)
52
- } else {
53
- resolve()
54
- }
55
- })
56
- document.body.appendChild(script)
57
- }),
58
- })
59
- },
60
- getScriptExecutionResults: () => {
61
- // wait for page to load before collecting script execution results
62
- const htmlReadyPromise = new Promise((resolve) => {
63
- if (document.readyState === "complete") {
64
- resolve()
65
- return
66
- }
67
- const loadCallback = () => {
68
- window.removeEventListener("load", loadCallback)
69
- resolve()
70
- }
71
- window.addEventListener("load", loadCallback)
72
- })
73
- return htmlReadyPromise.then(() => {
74
- return window.__html_supervisor__.collectScriptResults()
75
- })
76
- },
77
- }
@@ -1,233 +0,0 @@
1
- /*
2
- * Things happening here
3
- * - html supervisor module injection
4
- * - scripts are wrapped to be supervised
5
- *
6
- * TODO:
7
- * - if ressource is referenced by ressource hint we should do sthing?
8
- * I think so when we inject ?js_classic
9
- */
10
-
11
- import { injectQueryParams } from "@jsenv/utils/urls/url_utils.js"
12
- import {
13
- parseHtmlString,
14
- stringifyHtmlAst,
15
- visitHtmlAst,
16
- getHtmlNodeAttributeByName,
17
- removeHtmlNodeAttributeByName,
18
- setHtmlNodeText,
19
- assignHtmlNodeAttributes,
20
- parseScriptNode,
21
- injectScriptAsEarlyAsPossible,
22
- createHtmlNode,
23
- htmlNodePosition,
24
- removeHtmlNodeText,
25
- getHtmlNodeTextNode,
26
- } from "@jsenv/utils/html_ast/html_ast.js"
27
- import { generateInlineContentUrl } from "@jsenv/utils/urls/inline_content_url_generator.js"
28
-
29
- export const jsenvPluginHtmlSupervisor = ({
30
- logs = false,
31
- measurePerf = false,
32
- } = {}) => {
33
- const htmlSupervisorSetupFileUrl = new URL(
34
- "./client/html_supervisor_setup.js",
35
- import.meta.url,
36
- ).href
37
- const htmlSupervisorInstallerFileUrl = new URL(
38
- "./client/html_supervisor_installer.js",
39
- import.meta.url,
40
- ).href
41
-
42
- return {
43
- name: "jsenv:html_supervisor",
44
- appliesDuring: {
45
- dev: true,
46
- test: true,
47
- },
48
- transform: {
49
- html: ({ url, content }, { referenceUtils }) => {
50
- const htmlAst = parseHtmlString(content)
51
- const scriptsToSupervise = []
52
-
53
- const handleInlineScript = (node, textNode) => {
54
- const scriptCategory = parseScriptNode(node)
55
- const { line, column, lineEnd, columnEnd, isOriginal } =
56
- htmlNodePosition.readNodePosition(node, {
57
- preferOriginal: true,
58
- })
59
- let inlineScriptUrl = generateInlineContentUrl({
60
- url,
61
- extension: ".js",
62
- line,
63
- column,
64
- lineEnd,
65
- columnEnd,
66
- })
67
- if (scriptCategory === "classic") {
68
- inlineScriptUrl = injectQueryParams(inlineScriptUrl, {
69
- js_classic: "",
70
- })
71
- }
72
- const [inlineScriptReference] = referenceUtils.foundInline({
73
- type: "script_src",
74
- line: line - 1,
75
- column,
76
- isOriginal,
77
- specifier: inlineScriptUrl,
78
- contentType: "application/javascript",
79
- content: textNode.value,
80
- })
81
- assignHtmlNodeAttributes(node, {
82
- "src": inlineScriptReference.generatedSpecifier,
83
- "src-generated-from-inline-content": "",
84
- })
85
- removeHtmlNodeText(node)
86
- scriptsToSupervise.push({
87
- node,
88
- type: scriptCategory,
89
- src: inlineScriptReference.generatedSpecifier,
90
- })
91
- }
92
- const handleScriptWithSrc = (node, srcAttribute) => {
93
- const scriptCategory = parseScriptNode(node)
94
- const integrityAttribute = getHtmlNodeAttributeByName(
95
- node,
96
- "integrity",
97
- )
98
- const integrity = integrityAttribute
99
- ? integrityAttribute.value
100
- : undefined
101
- const crossoriginAttribute = getHtmlNodeAttributeByName(
102
- node,
103
- "crossorigin",
104
- )
105
- const crossorigin = crossoriginAttribute
106
- ? crossoriginAttribute.value
107
- : undefined
108
- scriptsToSupervise.push({
109
- node,
110
- type: scriptCategory,
111
- src: srcAttribute.value,
112
- integrity,
113
- crossorigin,
114
- })
115
- }
116
- visitHtmlAst(htmlAst, (node) => {
117
- if (node.nodeName !== "script") {
118
- return
119
- }
120
- const scriptCategory = parseScriptNode(node)
121
- if (scriptCategory !== "classic" && scriptCategory !== "module") {
122
- return
123
- }
124
- const injectedByAttribute = getHtmlNodeAttributeByName(
125
- node,
126
- "injected-by",
127
- )
128
- if (injectedByAttribute) {
129
- return
130
- }
131
- const noHtmlSupervisor = getHtmlNodeAttributeByName(
132
- node,
133
- "no-html-supervisor",
134
- )
135
- if (noHtmlSupervisor) {
136
- return
137
- }
138
- const textNode = getHtmlNodeTextNode(node)
139
- if (textNode) {
140
- handleInlineScript(node, textNode)
141
- return
142
- }
143
- const srcAttribute = getHtmlNodeAttributeByName(node, "src")
144
- if (srcAttribute) {
145
- handleScriptWithSrc(node, srcAttribute)
146
- return
147
- }
148
- })
149
- if (scriptsToSupervise.length === 0) {
150
- return null
151
- }
152
- const [htmlSupervisorInstallerFileReference] = referenceUtils.inject({
153
- type: "js_import_export",
154
- specifier: htmlSupervisorInstallerFileUrl,
155
- })
156
- injectScriptAsEarlyAsPossible(
157
- htmlAst,
158
- createHtmlNode({
159
- "tagName": "script",
160
- "type": "module",
161
- "textContent": `
162
- import { installHtmlSupervisor } from ${
163
- htmlSupervisorInstallerFileReference.generatedSpecifier
164
- }
165
- installHtmlSupervisor(${JSON.stringify(
166
- {
167
- logs,
168
- measurePerf,
169
- },
170
- null,
171
- " ",
172
- )})`,
173
- "injected-by": "jsenv:html_supervisor",
174
- }),
175
- )
176
- const [htmlSupervisorSetupFileReference] = referenceUtils.inject({
177
- type: "script_src",
178
- specifier: injectQueryParams(htmlSupervisorSetupFileUrl, {
179
- js_classic: "",
180
- }),
181
- })
182
- injectScriptAsEarlyAsPossible(
183
- htmlAst,
184
- createHtmlNode({
185
- "tagName": "script",
186
- "src": htmlSupervisorSetupFileReference.generatedSpecifier,
187
- "injected-by": "jsenv:html_supervisor",
188
- }),
189
- )
190
- scriptsToSupervise.forEach(
191
- ({ node, type, src, integrity, crossorigin }) => {
192
- removeHtmlNodeAttributeByName(node, "src")
193
- assignHtmlNodeAttributes(node, {
194
- "content-src": src,
195
- })
196
- setHtmlNodeText(
197
- node,
198
- generateCodeToSuperviseScript({
199
- type,
200
- src,
201
- integrity,
202
- crossorigin,
203
- htmlSupervisorInstallerSpecifier:
204
- htmlSupervisorInstallerFileReference.generatedSpecifier,
205
- }),
206
- )
207
- },
208
- )
209
- const htmlModified = stringifyHtmlAst(htmlAst)
210
- return {
211
- content: htmlModified,
212
- }
213
- },
214
- },
215
- }
216
- }
217
-
218
- // Ideally jsenv should take into account eventual
219
- // "integrity" and "crossorigin" attribute during supervision
220
- const generateCodeToSuperviseScript = ({
221
- type,
222
- src,
223
- integrity,
224
- crossorigin,
225
- htmlSupervisorInstallerSpecifier,
226
- }) => {
227
- const paramsAsJson = JSON.stringify({ src, integrity, crossorigin })
228
- if (type === "module") {
229
- return `import { superviseScriptTypeModule } from ${htmlSupervisorInstallerSpecifier}
230
- superviseScriptTypeModule(${paramsAsJson})`
231
- }
232
- return `window.__html_supervisor__.superviseScript(${paramsAsJson})`
233
- }
@@ -1,98 +0,0 @@
1
- export const babelPluginMetadataImportAssertions = () => {
2
- return {
3
- name: "metadata-import-assertions",
4
- visitor: {
5
- Program: (programPath, state) => {
6
- const importAssertions = collectProgramImportAssertions(programPath)
7
- state.file.metadata.importAssertions = importAssertions
8
- },
9
- },
10
- }
11
- }
12
-
13
- /*
14
- * Jsenv wont touch code where "specifier" or "type" is dynamic (see code below)
15
- * ```js
16
- * const file ="./style.css"
17
- * const type = "css"
18
- * import(file, { assert: { type }})
19
- * ```
20
- * Jsenv could throw an error because we know browser will fail to execute the code
21
- * because import assertions are not supported.
22
- * But for now (as it is simpler to do so) we let the browser throw the error
23
- */
24
- const collectProgramImportAssertions = (programPath) => {
25
- const importAssertions = []
26
- programPath.traverse({
27
- CallExpression: (path) => {
28
- if (path.node.callee.type !== "Import") {
29
- // Some other function call, not import();
30
- return
31
- }
32
- if (path.node.arguments[0].type !== "StringLiteral") {
33
- // Non-string argument, probably a variable or expression, e.g.
34
- // import(moduleId)
35
- // import('./' + moduleName)
36
- return
37
- }
38
- const args = path.node.arguments
39
- const secondArg = args[1]
40
- if (!secondArg) {
41
- return
42
- }
43
- const { properties } = secondArg
44
- const assertProperty = properties.find((property) => {
45
- return property.key.name === "assert"
46
- })
47
- if (!assertProperty) {
48
- return
49
- }
50
- const assertProperties = assertProperty.value.properties
51
- const typePropertyNode = assertProperties.find((property) => {
52
- return property.key.name === "type"
53
- })
54
- if (!typePropertyNode) {
55
- return
56
- }
57
- const typePropertyValue = typePropertyNode.value
58
- if (typePropertyValue.type !== "StringLiteral") {
59
- return
60
- }
61
- const type = typePropertyValue.value
62
- importAssertions.push({
63
- path,
64
- assert: {
65
- type,
66
- },
67
- })
68
- },
69
-
70
- ImportDeclaration: (path) => {
71
- const { assertions } = path.node
72
- if (!assertions) {
73
- return
74
- }
75
- if (assertions.length === 0) {
76
- return
77
- }
78
- const typeAssertion = assertions.find(
79
- (assertion) => assertion.key.name === "type",
80
- )
81
- if (!typeAssertion) {
82
- return
83
- }
84
- const typeNode = typeAssertion.value
85
- if (typeNode.type !== "StringLiteral") {
86
- return
87
- }
88
- const type = typeNode.value
89
- importAssertions.push({
90
- path,
91
- assert: {
92
- type,
93
- },
94
- })
95
- },
96
- })
97
- return importAssertions
98
- }
@@ -1,12 +0,0 @@
1
- export const convertJsonTextToJavascriptModule = ({ content }) => {
2
- // here we could do the following
3
- // return export default jsonText
4
- // This would return valid js, that would be minified later
5
- // however we will prefer using JSON.parse because it's faster
6
- // for js engine to parse JSON than JS
7
-
8
- return {
9
- contentType: "application/javascript",
10
- content: `export default JSON.parse(${JSON.stringify(content.trim())})`,
11
- }
12
- }
@@ -1,6 +0,0 @@
1
- export const convertTextToJavascriptModule = ({ content }) => {
2
- return {
3
- contentType: "application/javascript",
4
- content: `export default ${JSON.stringify(content)}`,
5
- }
6
- }