@jsenv/core 27.0.0-alpha.8 → 27.0.0-alpha.82

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 (254) 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 +324 -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/main.js +13422 -0
  103. package/dist/other/jsenv.png +0 -0
  104. package/dist/s.js +626 -0
  105. package/dist/s.js.map +204 -0
  106. package/package.json +57 -51
  107. package/readme.md +6 -14
  108. package/src/build/build.js +1074 -563
  109. package/src/build/build_urls_generator.js +65 -24
  110. package/src/build/graph_utils.js +31 -0
  111. package/src/build/{inject_version_mappings.js → inject_global_version_mappings.js} +49 -18
  112. package/src/build/inject_service_worker_urls.js +79 -0
  113. package/src/build/resync_ressource_hints.js +115 -0
  114. package/src/build/start_build_server.js +210 -0
  115. package/src/dev/plugins/explorer/client/explorer.html +1 -1
  116. package/src/dev/plugins/explorer/jsenv_plugin_explorer.js +9 -13
  117. package/src/dev/plugins/toolbar/jsenv_plugin_toolbar.js +3 -1
  118. package/src/dev/start_dev_server.js +165 -38
  119. package/src/execute/execute.js +35 -8
  120. package/src/execute/run.js +21 -57
  121. package/src/execute/runtimes/browsers/from_playwright.js +220 -150
  122. package/src/execute/runtimes/node/child_exec_options.js +1 -1
  123. package/src/execute/runtimes/node/controllable_file.mjs +26 -10
  124. package/src/execute/runtimes/node/kill_process_tree.js +2 -4
  125. package/src/execute/runtimes/node/node_execution_performance.js +67 -0
  126. package/src/execute/runtimes/node/node_process.js +288 -39
  127. package/src/main.js +27 -0
  128. package/src/omega/{runtime_support/features_compatibility.js → compat/features_compats.js} +30 -7
  129. package/src/omega/{runtime_support/runtime_support.js → compat/runtime_compat.js} +14 -16
  130. package/src/omega/errors.js +63 -67
  131. package/src/omega/fetched_content_compliance.js +24 -0
  132. package/src/omega/file_url_converter.js +9 -51
  133. package/src/omega/kitchen.js +605 -467
  134. package/src/omega/omega_server.js +2 -3
  135. package/src/omega/server/file_service.js +88 -41
  136. package/src/omega/server/user_agent.js +5 -6
  137. package/src/omega/url_graph/url_graph_load.js +31 -23
  138. package/src/omega/url_graph/url_graph_report.js +94 -51
  139. package/src/omega/url_graph/url_info_transformations.js +37 -17
  140. package/src/omega/url_graph.js +88 -19
  141. package/src/omega/url_specifier_encoding.js +59 -0
  142. package/src/omega/web_workers.js +42 -0
  143. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/autoreload_preference.js +0 -0
  144. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/event_source_client.js +19 -12
  145. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/reload.js +0 -0
  146. package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/url_helpers.js +0 -0
  147. package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_client.js +41 -0
  148. package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_server.js +204 -0
  149. package/src/plugins/autoreload/jsenv_plugin_autoreload.js +25 -0
  150. package/src/plugins/autoreload/jsenv_plugin_hmr.js +35 -0
  151. package/src/plugins/bundling/css/bundle_css.js +140 -0
  152. package/src/plugins/bundling/js_classic_workers/bundle_js_classic_workers.js +13 -0
  153. package/src/plugins/bundling/js_module/bundle_js_module.js +343 -0
  154. package/src/plugins/bundling/jsenv_plugin_bundling.js +54 -0
  155. package/src/plugins/cache_control/jsenv_plugin_cache_control.js +34 -0
  156. package/src/{omega/core_plugins → plugins}/commonjs_globals/jsenv_plugin_commonjs_globals.js +54 -41
  157. package/src/plugins/file_urls/jsenv_plugin_file_urls.js +183 -0
  158. package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_document.js +0 -0
  159. package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_notification.js +0 -0
  160. package/src/plugins/html_supervisor/client/html_supervisor_installer.js +254 -0
  161. package/src/plugins/html_supervisor/client/html_supervisor_setup.js +82 -0
  162. package/src/{omega/core_plugins → plugins}/html_supervisor/client/perf_browser.js +0 -0
  163. package/src/{omega/core_plugins → plugins}/html_supervisor/client/uneval_exception.js +0 -0
  164. package/src/{omega/core_plugins → plugins}/html_supervisor/jsenv_plugin_html_supervisor.js +73 -55
  165. package/src/plugins/http_urls/jsenv_plugin_http_urls.js +12 -0
  166. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/babel_plugin_metadata_import_meta_hot.js +4 -5
  167. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/client/import_meta_hot.js +3 -1
  168. package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/html_hot_dependencies.js +7 -4
  169. package/src/plugins/import_meta_hot/jsenv_plugin_import_meta_hot.js +100 -0
  170. package/src/{omega/core_plugins → plugins}/import_meta_scenarios/jsenv_plugin_import_meta_scenarios.js +33 -8
  171. package/src/plugins/import_meta_url/client/import_meta_url_browser.js +52 -0
  172. package/src/plugins/import_meta_url/client/import_meta_url_commonjs.mjs +9 -0
  173. package/src/{omega/core_plugins → plugins}/importmap/jsenv_plugin_importmap.js +40 -36
  174. package/src/plugins/inject_globals/inject_globals.js +57 -0
  175. package/src/plugins/inject_globals/jsenv_plugin_inject_globals.js +24 -0
  176. package/src/{omega/core_plugins → plugins}/inline/client/inline_content.js +0 -0
  177. package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_data_urls.js +22 -21
  178. package/src/plugins/inline/jsenv_plugin_html_inline_content.js +161 -0
  179. package/src/plugins/inline/jsenv_plugin_inline.js +36 -0
  180. package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_inline_query_param.js +8 -11
  181. package/src/plugins/inline/jsenv_plugin_js_inline_content.js +294 -0
  182. package/src/plugins/leading_slash/jsenv_plugin_leading_slash.js +13 -0
  183. package/src/plugins/minification/css/minify_css.js +9 -0
  184. package/src/plugins/minification/html/minify_html.js +13 -0
  185. package/src/{build/plugins/minify_js/jsenv_plugin_minify_js.js → plugins/minification/js/minify_js.js} +6 -22
  186. package/src/plugins/minification/jsenv_plugin_minification.js +78 -0
  187. package/src/plugins/minification/json/minify_json.js +8 -0
  188. package/src/plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +162 -0
  189. package/src/plugins/node_runtime/jsenv_plugin_node_runtime.js +12 -0
  190. package/src/{omega → plugins}/plugin_controller.js +57 -12
  191. package/src/plugins/plugins.js +89 -0
  192. package/src/plugins/transpilation/as_js_classic/client/s.js +429 -0
  193. package/src/plugins/transpilation/as_js_classic/helpers/babel_plugin_transform_import_meta_url.js +47 -0
  194. package/src/plugins/transpilation/as_js_classic/helpers/systemjs_old.js +43 -0
  195. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic.js +211 -0
  196. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic_html.js +304 -0
  197. package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic_workers.js +55 -0
  198. package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/babel_plugin_global_this_as_jsenv_import.js +0 -0
  199. package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/client/global_this.js +0 -0
  200. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugin_babel_helpers_as_jsenv_imports.js +0 -0
  201. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugin_structure.js +14 -17
  202. package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugins_compatibility.js +0 -0
  203. package/src/{omega/core_plugins → plugins/transpilation}/babel/jsenv_plugin_babel.js +39 -32
  204. package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js +30 -6
  205. package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/client/new_stylesheet.js +0 -0
  206. package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js +0 -0
  207. package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/client/regenerator_runtime.js +0 -0
  208. package/src/plugins/transpilation/babel/require_babel_plugin.js +8 -0
  209. package/src/plugins/transpilation/css_parcel/jsenv_plugin_css_parcel.js +18 -0
  210. package/src/plugins/transpilation/import_assertions/jsenv_plugin_import_assertions.js +184 -0
  211. package/src/plugins/transpilation/jsenv_plugin_top_level_await.js +79 -0
  212. package/src/plugins/transpilation/jsenv_plugin_transpilation.js +46 -0
  213. package/src/plugins/url_analysis/css/css_urls.js +49 -0
  214. package/src/plugins/url_analysis/html/html_urls.js +272 -0
  215. package/src/plugins/url_analysis/js/js_urls.js +68 -0
  216. package/src/plugins/url_analysis/jsenv_plugin_url_analysis.js +103 -0
  217. package/src/plugins/url_analysis/webmanifest/webmanifest_urls.js +20 -0
  218. package/src/{omega/core_plugins → plugins}/url_resolution/jsenv_plugin_url_resolution.js +9 -5
  219. package/src/plugins/url_version/jsenv_plugin_url_version.js +28 -0
  220. package/src/require_from_jsenv.js +3 -0
  221. package/src/test/execute_plan.js +85 -44
  222. package/src/test/execute_test_plan.js +37 -25
  223. package/src/test/execution_steps.js +2 -5
  224. package/src/test/logs_file_execution.js +56 -49
  225. package/main.js +0 -19
  226. package/src/build/plugins/bundle_js_module/jsenv_plugin_bundle_js_module.js +0 -227
  227. package/src/build/plugins/minify_html/jsenv_plugin_minify_html.js +0 -30
  228. package/src/dev/plugins/autoreload/client/event_source_connection.js +0 -195
  229. package/src/dev/plugins/autoreload/jsenv_plugin_autoreload.js +0 -374
  230. package/src/dev/plugins/autoreload/sse_service.js +0 -149
  231. package/src/execute/runtimes/node/controlled_process.js +0 -316
  232. package/src/omega/core_plugins/babel/new_stylesheet/client/.eslintrc.cjs +0 -24
  233. package/src/omega/core_plugins/file_urls/jsenv_plugin_file_urls.js +0 -67
  234. package/src/omega/core_plugins/filesystem_magic/jsenv_plugin_filesystem_magic.js +0 -58
  235. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_installer.js +0 -168
  236. package/src/omega/core_plugins/html_supervisor/client/html_supervisor_setup.js +0 -77
  237. package/src/omega/core_plugins/import_assertions/helpers/babel_plugin_metadata_import_assertions.js +0 -98
  238. package/src/omega/core_plugins/import_assertions/helpers/json_module.js +0 -12
  239. package/src/omega/core_plugins/import_assertions/helpers/text_module.js +0 -6
  240. package/src/omega/core_plugins/import_assertions/jsenv_plugin_import_assertions.js +0 -211
  241. package/src/omega/core_plugins/inline/jsenv_plugin_inline.js +0 -13
  242. package/src/omega/core_plugins/inline/jsenv_plugin_js_and_css_inside_html.js +0 -142
  243. package/src/omega/core_plugins/inline/jsenv_plugin_new_inline_content.js +0 -207
  244. package/src/omega/core_plugins/leading_slash/jsenv_plugin_leading_slash.js +0 -12
  245. package/src/omega/core_plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +0 -77
  246. package/src/omega/core_plugins/url_version/jsenv_plugin_url_version.js +0 -50
  247. package/src/omega/core_plugins.js +0 -39
  248. package/src/omega/runtime_support/default_runtime_support.js +0 -13
  249. package/src/omega/url_graph/url_graph_sort.js +0 -29
  250. package/src/omega/url_mentions/css_url_mentions.js +0 -63
  251. package/src/omega/url_mentions/html_url_mentions.js +0 -185
  252. package/src/omega/url_mentions/js_module_url_mentions.js +0 -91
  253. package/src/omega/url_mentions/parse_url_mentions.js +0 -37
  254. package/src/omega/url_mentions/worker_classic_url_mentions.js +0 -37
@@ -3,37 +3,33 @@ import { memoryUsage } from "node:process"
3
3
  import wrapAnsi from "wrap-ansi"
4
4
  import stripAnsi from "strip-ansi"
5
5
  import cuid from "cuid"
6
+
7
+ import { URL_META } from "@jsenv/url-meta"
8
+ import { urlToFileSystemPath } from "@jsenv/urls"
6
9
  import {
7
- urlToFileSystemPath,
8
- writeDirectory,
9
- ensureEmptyDirectory,
10
- normalizeStructuredMetaMap,
11
- urlToMeta,
12
- writeFile,
13
- } from "@jsenv/filesystem"
14
- import {
15
- createLogger,
16
10
  createDetailedMessage,
17
11
  loggerToLevels,
18
- } from "@jsenv/logger"
19
- import { createLog, startSpinner } from "@jsenv/log"
12
+ createLog,
13
+ startSpinner,
14
+ } from "@jsenv/log"
20
15
  import { Abort, raceProcessTeardownEvents } from "@jsenv/abort"
16
+ import {
17
+ writeDirectory,
18
+ ensureEmptyDirectory,
19
+ writeFileSync,
20
+ } from "@jsenv/filesystem"
21
21
 
22
22
  import { babelPluginInstrument } from "@jsenv/utils/coverage/babel_plugin_instrument.js"
23
23
  import { reportToCoverage } from "@jsenv/utils/coverage/report_to_coverage.js"
24
24
  import { createUrlGraph } from "@jsenv/core/src/omega/url_graph.js"
25
- import { getCorePlugins } from "@jsenv/core/src/omega/core_plugins.js"
25
+ import { getCorePlugins } from "@jsenv/core/src/plugins/plugins.js"
26
26
  import { createKitchen } from "@jsenv/core/src/omega/kitchen.js"
27
27
  import { startOmegaServer } from "@jsenv/core/src/omega/omega_server.js"
28
28
  import { run } from "@jsenv/core/src/execute/run.js"
29
29
 
30
30
  import { ensureGlobalGc } from "./gc.js"
31
31
  import { generateExecutionSteps } from "./execution_steps.js"
32
- import {
33
- formatExecuting,
34
- formatExecutionResult,
35
- createSummaryLog,
36
- } from "./logs_file_execution.js"
32
+ import { createExecutionLog, createSummaryLog } from "./logs_file_execution.js"
37
33
 
38
34
  export const executePlan = async (
39
35
  plan,
@@ -42,6 +38,7 @@ export const executePlan = async (
42
38
  handleSIGINT,
43
39
  logger,
44
40
  logSummary,
41
+ logTimeUsage,
45
42
  logMemoryHeapUsage,
46
43
  logFileRelativeUrl,
47
44
  completedExecutionLogMerging,
@@ -62,9 +59,13 @@ export const executePlan = async (
62
59
  coverageV8ConflictWarning,
63
60
  coverageTempDirectoryRelativeUrl,
64
61
 
65
- plugins = [],
66
- scenario = "test",
67
- sourcemaps = "inline",
62
+ scenario,
63
+ sourcemaps,
64
+ plugins,
65
+ nodeEsmResolution,
66
+ fileSystemMagicResolution,
67
+ transpilation,
68
+ writeGeneratedFiles,
68
69
 
69
70
  protocol,
70
71
  privateKey,
@@ -132,12 +133,28 @@ export const executePlan = async (
132
133
  logger,
133
134
  rootDirectoryUrl,
134
135
  urlGraph,
136
+ scenario,
137
+ sourcemaps,
138
+ runtimeCompat: runtimes,
139
+ writeGeneratedFiles,
135
140
  plugins: [
136
141
  ...plugins,
137
142
  ...getCorePlugins({
138
- babel: {
139
- getCustomBabelPlugins: ({ runtimeSupport }) => {
140
- if (coverage && Object.keys(runtimeSupport)[0] !== "chrome") {
143
+ rootDirectoryUrl,
144
+ urlGraph,
145
+ scenario,
146
+ runtimeCompat: runtimes,
147
+
148
+ htmlSupervisor: true,
149
+ nodeEsmResolution,
150
+ fileSystemMagicResolution,
151
+ transpilation: {
152
+ ...transpilation,
153
+ getCustomBabelPlugins: ({ clientRuntimeCompat }) => {
154
+ if (
155
+ coverage &&
156
+ Object.keys(clientRuntimeCompat)[0] !== "chrome"
157
+ ) {
141
158
  return {
142
159
  "transform-instrument": [
143
160
  babelPluginInstrument,
@@ -153,13 +170,10 @@ export const executePlan = async (
153
170
  },
154
171
  }),
155
172
  ],
156
- scenario,
157
- sourcemaps,
158
173
  })
159
- const serverLogger = createLogger({ logLevel: "warn" })
160
174
  const server = await startOmegaServer({
161
175
  signal: multipleExecutionsOperation.signal,
162
- logger: serverLogger,
176
+ logLevel: "warn",
163
177
  rootDirectoryUrl,
164
178
  urlGraph,
165
179
  kitchen,
@@ -196,7 +210,13 @@ export const executePlan = async (
196
210
  const debugLogsEnabled = loggerToLevels(logger).debug
197
211
  const executionLogsEnabled = loggerToLevels(logger).info
198
212
  const executionSpinner =
199
- !debugLogsEnabled && executionLogsEnabled && process.stdout.isTTY
213
+ !debugLogsEnabled &&
214
+ executionLogsEnabled &&
215
+ process.stdout.isTTY &&
216
+ // if there is an error during execution npm will mess up the output
217
+ // (happens when npm runs several command in a workspace)
218
+ // so we enable spinner only when !process.exitCode (no error so far)
219
+ process.exitCode !== 1
200
220
 
201
221
  const startMs = Date.now()
202
222
  const report = {}
@@ -213,17 +233,16 @@ export const executePlan = async (
213
233
  ).href
214
234
 
215
235
  if (coverage) {
216
- const structuredMetaMapForCover = normalizeStructuredMetaMap(
217
- {
218
- cover: coverageConfig,
219
- },
236
+ const associations = URL_META.resolveAssociations(
237
+ { cover: coverageConfig },
220
238
  rootDirectoryUrl,
221
239
  )
222
240
  const urlShouldBeCovered = (url) => {
223
- return urlToMeta({
241
+ const { cover } = URL_META.applyAssociations({
224
242
  url: new URL(url, rootDirectoryUrl).href,
225
- structuredMetaMap: structuredMetaMapForCover,
226
- }).cover
243
+ associations,
244
+ })
245
+ return cover
227
246
  }
228
247
  runtimeParams.urlShouldBeCovered = urlShouldBeCovered
229
248
 
@@ -307,17 +326,29 @@ export const executePlan = async (
307
326
  runtimeVersion,
308
327
  executionIndex,
309
328
  executionParams,
329
+ startMs: Date.now(),
330
+ executionResult: {
331
+ status: "executing",
332
+ },
310
333
  }
311
334
  let spinner
312
335
  if (executionSpinner) {
313
- spinner = startSpinner({
314
- log: executionLog,
315
- text: formatExecuting(beforeExecutionInfo, {
336
+ const renderSpinnerText = () =>
337
+ createExecutionLog(beforeExecutionInfo, {
316
338
  counters,
339
+ ...(logTimeUsage
340
+ ? {
341
+ timeEllapsed: Date.now() - startMs,
342
+ }
343
+ : {}),
317
344
  ...(logMemoryHeapUsage
318
345
  ? { memoryHeap: memoryUsage().heapUsed }
319
346
  : {}),
320
- }),
347
+ })
348
+ spinner = startSpinner({
349
+ log: executionLog,
350
+ text: renderSpinnerText(),
351
+ update: renderSpinnerText,
321
352
  })
322
353
  }
323
354
  beforeExecutionCallback(beforeExecutionInfo)
@@ -349,10 +380,15 @@ export const executePlan = async (
349
380
  }
350
381
  }
351
382
  counters.done++
352
- if (fileRelativeUrl in report === false) {
353
- report[fileRelativeUrl] = {}
383
+ const fileReport = report[fileRelativeUrl]
384
+ if (fileReport) {
385
+ fileReport[executionName] = executionResult
386
+ } else {
387
+ report[fileRelativeUrl] = {
388
+ [executionName]: executionResult,
389
+ }
354
390
  }
355
- report[fileRelativeUrl][executionName] = executionResult
391
+
356
392
  const afterExecutionInfo = {
357
393
  ...beforeExecutionInfo,
358
394
  endMs: Date.now(),
@@ -373,9 +409,14 @@ export const executePlan = async (
373
409
  global.gc()
374
410
  }
375
411
  if (executionLogsEnabled) {
376
- let log = formatExecutionResult(afterExecutionInfo, {
412
+ let log = createExecutionLog(afterExecutionInfo, {
377
413
  completedExecutionLogAbbreviation,
378
414
  counters,
415
+ ...(logTimeUsage
416
+ ? {
417
+ timeEllapsed: Date.now() - startMs,
418
+ }
419
+ : {}),
379
420
  ...(logMemoryHeapUsage
380
421
  ? { memoryHeap: memoryUsage().heapUsed }
381
422
  : {}),
@@ -433,7 +474,7 @@ export const executePlan = async (
433
474
  }
434
475
  if (summary.counters.total !== summary.counters.completed) {
435
476
  const logFileUrl = new URL(logFileRelativeUrl, rootDirectoryUrl).href
436
- writeFile(logFileUrl, rawOutput)
477
+ writeFileSync(logFileUrl, rawOutput)
437
478
  logger.info(`-> ${urlToFileSystemPath(logFileUrl)}`)
438
479
  }
439
480
  const result = await transformReturnValue({
@@ -1,18 +1,24 @@
1
+ import { URL_META } from "@jsenv/url-meta"
2
+ import { urlToFileSystemPath, resolveDirectoryUrl } from "@jsenv/urls"
1
3
  import {
2
- normalizeStructuredMetaMap,
3
- urlToFileSystemPath,
4
4
  ensureEmptyDirectory,
5
- resolveDirectoryUrl,
6
- urlToMeta,
7
5
  assertAndNormalizeDirectoryUrl,
8
6
  } from "@jsenv/filesystem"
9
- import { createLogger, createDetailedMessage } from "@jsenv/logger"
7
+ import { createLogger, createDetailedMessage } from "@jsenv/log"
10
8
 
11
9
  import { generateCoverageJsonFile } from "@jsenv/utils/coverage/coverage_reporter_json_file.js"
12
10
  import { generateCoverageHtmlDirectory } from "@jsenv/utils/coverage/coverage_reporter_html_directory.js"
13
11
  import { generateCoverageTextLog } from "@jsenv/utils/coverage/coverage_reporter_text_log.js"
14
12
  import { executePlan } from "./execute_plan.js"
15
13
 
14
+ export const defaultCoverageConfig = {
15
+ "./index.js": true,
16
+ "./main.js": true,
17
+ "./src/**/*.js": true,
18
+ "./**/*.test.*": false, // contains .test. -> nope
19
+ "./**/test/": false, // inside a test folder -> nope,
20
+ }
21
+
16
22
  /**
17
23
  * Execute a list of files and log how it goes
18
24
  * @param {Object} testPlanParameters
@@ -34,6 +40,7 @@ export const executeTestPlan = async ({
34
40
  handleSIGINT = true,
35
41
  logLevel = "info",
36
42
  logSummary = true,
43
+ logTimeUsage = false,
37
44
  logMemoryHeapUsage = false,
38
45
  logFileRelativeUrl = ".jsenv/test_plan_debug.txt",
39
46
  completedExecutionLogAbbreviation = false,
@@ -57,13 +64,7 @@ export const executeTestPlan = async ({
57
64
  coverage = process.argv.includes("--cover") ||
58
65
  process.argv.includes("--coverage"),
59
66
  coverageTempDirectoryRelativeUrl = "./.coverage/tmp/",
60
- coverageConfig = {
61
- "./index.js": true,
62
- "./main.js": true,
63
- "./src/**/*.js": true,
64
- "./**/*.test.*": false, // contains .test. -> nope
65
- "./**/test/": false, // inside a test folder -> nope,
66
- },
67
+ coverageConfig = defaultCoverageConfig,
67
68
  coverageIncludeMissing = true,
68
69
  coverageAndExecutionAllowed = false,
69
70
  coverageForceIstanbul = false,
@@ -80,6 +81,12 @@ export const executeTestPlan = async ({
80
81
  // skip full means file with 100% coverage won't appear in coverage reports (log and html)
81
82
  coverageSkipFull = false,
82
83
 
84
+ sourcemaps = "inline",
85
+ plugins = [],
86
+ nodeEsmResolution,
87
+ fileSystemMagicResolution,
88
+ writeGeneratedFiles = false,
89
+
83
90
  protocol,
84
91
  privateKey,
85
92
  certificate,
@@ -103,25 +110,22 @@ export const executeTestPlan = async ({
103
110
  )
104
111
  }
105
112
  if (!coverageAndExecutionAllowed) {
106
- const structuredMetaMapForExecute = normalizeStructuredMetaMap(
107
- {
108
- execute: testPlan,
109
- },
113
+ const associationsForExecute = URL_META.resolveAssociations(
114
+ { execute: testPlan },
110
115
  "file:///",
111
116
  )
112
- const structuredMetaMapForCover = normalizeStructuredMetaMap(
113
- {
114
- cover: coverageConfig,
115
- },
117
+ const associationsForCover = URL_META.resolveAssociations(
118
+ { cover: coverageConfig },
116
119
  "file:///",
117
120
  )
118
121
  const patternsMatchingCoverAndExecute = Object.keys(
119
- structuredMetaMapForExecute.execute,
122
+ associationsForExecute.execute,
120
123
  ).filter((testPlanPattern) => {
121
- return urlToMeta({
124
+ const { cover } = URL_META.applyAssociations({
122
125
  url: testPlanPattern,
123
- structuredMetaMap: structuredMetaMapForCover,
124
- }).cover
126
+ associations: associationsForCover,
127
+ })
128
+ return cover
125
129
  })
126
130
  if (patternsMatchingCoverAndExecute.length) {
127
131
  // It would be strange, for a given file to be both covered and executed
@@ -139,12 +143,13 @@ export const executeTestPlan = async ({
139
143
  logger,
140
144
  logLevel,
141
145
  logSummary,
146
+ logTimeUsage,
142
147
  logMemoryHeapUsage,
143
148
  logFileRelativeUrl,
144
149
  completedExecutionLogMerging,
145
150
  completedExecutionLogAbbreviation,
146
-
147
151
  rootDirectoryUrl,
152
+
148
153
  maxExecutionsInParallel,
149
154
  defaultMsAllocatedPerExecution,
150
155
  failFast,
@@ -159,6 +164,13 @@ export const executeTestPlan = async ({
159
164
  coverageV8ConflictWarning,
160
165
  coverageTempDirectoryRelativeUrl,
161
166
 
167
+ scenario: "test",
168
+ sourcemaps,
169
+ plugins,
170
+ nodeEsmResolution,
171
+ fileSystemMagicResolution,
172
+ writeGeneratedFiles,
173
+
162
174
  protocol,
163
175
  privateKey,
164
176
  certificate,
@@ -1,17 +1,14 @@
1
1
  import { collectFiles } from "@jsenv/filesystem"
2
- import { createDetailedMessage } from "@jsenv/logger"
2
+ import { createDetailedMessage } from "@jsenv/log"
3
3
 
4
4
  export const generateExecutionSteps = async (
5
5
  plan,
6
6
  { signal, rootDirectoryUrl },
7
7
  ) => {
8
- const structuredMetaMap = {
9
- filePlan: plan,
10
- }
11
8
  const fileResultArray = await collectFiles({
12
9
  signal,
13
10
  directoryUrl: rootDirectoryUrl,
14
- structuredMetaMap,
11
+ associations: { filePlan: plan },
15
12
  predicate: ({ filePlan }) => filePlan,
16
13
  })
17
14
  const executionSteps = []
@@ -1,32 +1,14 @@
1
- import { ANSI, UNICODE } from "@jsenv/log"
2
-
3
- import { msAsDuration } from "@jsenv/utils/logs/duration_log.js"
4
- import { byteAsMemoryUsage } from "@jsenv/utils/logs/size_log.js"
1
+ import {
2
+ ANSI,
3
+ UNICODE,
4
+ msAsEllapsedTime,
5
+ msAsDuration,
6
+ byteAsMemoryUsage,
7
+ } from "@jsenv/log"
5
8
 
6
9
  import { EXECUTION_COLORS } from "./execution_colors.js"
7
10
 
8
- export const formatExecuting = (
9
- { executionIndex },
10
- { counters, memoryHeap },
11
- ) => {
12
- const description = ANSI.color(
13
- `executing ${executionIndex + 1} of ${counters.total}`,
14
- EXECUTION_COLORS.executing,
15
- )
16
- const summary =
17
- executionIndex === 0
18
- ? ""
19
- : `(${createIntermediateSummary({
20
- executionIndex,
21
- counters,
22
- memoryHeap,
23
- })})`
24
- return formatExecution({
25
- label: `${description} ${summary}`,
26
- })
27
- }
28
-
29
- export const formatExecutionResult = (
11
+ export const createExecutionLog = (
30
12
  {
31
13
  executionIndex,
32
14
  fileRelativeUrl,
@@ -34,34 +16,41 @@ export const formatExecutionResult = (
34
16
  runtimeVersion,
35
17
  executionParams,
36
18
  executionResult,
19
+ startMs,
20
+ endMs,
37
21
  },
38
- { completedExecutionLogAbbreviation, counters, memoryHeap },
22
+ { completedExecutionLogAbbreviation, counters, timeEllapsed, memoryHeap },
39
23
  ) => {
40
24
  const { status } = executionResult
41
- const description = descriptionFormatters[status]({
25
+ const descriptionFormatter = descriptionFormatters[status]
26
+ const description = descriptionFormatter({
42
27
  index: executionIndex,
43
28
  total: counters.total,
44
29
  executionParams,
45
30
  })
46
- const summary = `(${createIntermediateSummary({
31
+ const summary = createIntermediateSummary({
47
32
  executionIndex,
48
33
  counters,
34
+ timeEllapsed,
49
35
  memoryHeap,
50
- })})`
36
+ })
51
37
  if (completedExecutionLogAbbreviation && status === "completed") {
52
- return `${description} ${summary}`
38
+ return `${description}${summary}`
53
39
  }
54
- const { consoleCalls = [], error, duration } = executionResult
55
- const console = formatConsoleCalls(consoleCalls)
40
+ const { consoleCalls = [], error } = executionResult
41
+ const consoleOutput = formatConsoleCalls(consoleCalls)
56
42
  return formatExecution({
57
- label: `${description} ${summary}`,
43
+ label: `${description}${summary}`,
58
44
  details: {
59
45
  file: fileRelativeUrl,
60
46
  runtime: `${runtimeName}/${runtimeVersion}`,
61
- duration: msAsDuration(duration),
62
- ...(error ? { error: error.stack } : {}),
47
+ duration:
48
+ status === "executing"
49
+ ? msAsEllapsedTime(Date.now() - startMs)
50
+ : msAsDuration(endMs - startMs),
51
+ ...(error ? { error: error.stack || error.message || error } : {}),
63
52
  },
64
- console,
53
+ consoleOutput,
65
54
  })
66
55
  }
67
56
 
@@ -87,17 +76,29 @@ const createIntermediateSummary = ({
87
76
  executionIndex,
88
77
  counters,
89
78
  memoryHeap,
79
+ timeEllapsed,
90
80
  }) => {
91
- let intermediateSummary = createStatusSummary({
92
- counters: {
93
- ...counters,
94
- total: executionIndex + 1,
95
- },
96
- })
81
+ const parts = []
82
+ if (executionIndex > 0 || counters.done > 0) {
83
+ parts.push(
84
+ createStatusSummary({
85
+ counters: {
86
+ ...counters,
87
+ total: executionIndex + 1,
88
+ },
89
+ }),
90
+ )
91
+ }
92
+ if (timeEllapsed) {
93
+ parts.push(`duration: ${msAsEllapsedTime(timeEllapsed)}`)
94
+ }
97
95
  if (memoryHeap) {
98
- intermediateSummary += ` / memory heap: ${byteAsMemoryUsage(memoryHeap)}`
96
+ parts.push(`memory heap: ${byteAsMemoryUsage(memoryHeap)}`)
99
97
  }
100
- return intermediateSummary
98
+ if (parts.length === 0) {
99
+ return ""
100
+ }
101
+ return ` (${parts.join(` / `)})`
101
102
  }
102
103
 
103
104
  const createStatusSummary = ({ counters }) => {
@@ -161,6 +162,12 @@ const createMixedDetails = ({ counters }) => {
161
162
  }
162
163
 
163
164
  const descriptionFormatters = {
165
+ executing: ({ index, total }) => {
166
+ return ANSI.color(
167
+ `executing ${index + 1} of ${total}`,
168
+ EXECUTION_COLORS.executing,
169
+ )
170
+ },
164
171
  aborted: ({ index, total }) => {
165
172
  return ANSI.color(
166
173
  `${UNICODE.FAILURE_RAW} execution ${index + 1} of ${total} aborted`,
@@ -203,21 +210,21 @@ const formatConsoleCalls = (consoleCalls) => {
203
210
  if (consoleOutputTrimmed === "") {
204
211
  return ""
205
212
  }
206
- return `${ANSI.color(`-------- console --------`, ANSI.GREY)}
213
+ return `${ANSI.color(`-------- console output --------`, ANSI.GREY)}
207
214
  ${consoleOutputTrimmed}
208
215
  ${ANSI.color(`-------------------------`, ANSI.GREY)}`
209
216
  }
210
217
 
211
- const formatExecution = ({ label, details = {}, console }) => {
218
+ const formatExecution = ({ label, details = {}, consoleOutput }) => {
212
219
  let message = ``
213
220
  message += label
214
221
  Object.keys(details).forEach((key) => {
215
222
  message += `
216
223
  ${key}: ${details[key]}`
217
224
  })
218
- if (console) {
225
+ if (consoleOutput) {
219
226
  message += `
220
- ${console}`
227
+ ${consoleOutput}`
221
228
  }
222
229
  return message
223
230
  }
package/main.js DELETED
@@ -1,19 +0,0 @@
1
- export { startDevServer } from "./src/dev/start_dev_server.js"
2
- export { executeTestPlan } from "./src/test/execute_test_plan.js"
3
- export {
4
- chromium,
5
- chromiumIsolatedTab,
6
- } from "./src/execute/runtimes/browsers/chromium.js"
7
- export {
8
- firefox,
9
- firefoxIsolatedTab,
10
- } from "./src/execute/runtimes/browsers/firefox.js"
11
- export {
12
- webkit,
13
- webkitIsolatedTab,
14
- } from "./src/execute/runtimes/browsers/webkit.js"
15
- export { nodeProcess } from "./src/execute/runtimes/node/node_process.js"
16
- export { build } from "./src/build/build.js"
17
-
18
- // advanced
19
- export { execute } from "./src/execute/execute.js"