@jsenv/core 34.2.2 → 35.0.0

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 (87) hide show
  1. package/README.md +1 -1
  2. package/dist/html/explorer.html +5 -4
  3. package/dist/{jsenv.js → jsenv_core.js} +840 -3914
  4. package/package.json +7 -21
  5. package/src/build/build.js +34 -16
  6. package/src/build/version_mappings_injection.js +20 -27
  7. package/src/dev/file_service.js +9 -9
  8. package/src/dev/start_dev_server.js +3 -3
  9. package/src/dev/user_agent.js +1 -1
  10. package/src/kitchen/kitchen.js +5 -3
  11. package/src/main.js +0 -23
  12. package/src/plugins/autoreload/jsenv_plugin_autoreload_client.js +2 -2
  13. package/src/plugins/importmap/jsenv_plugin_importmap.js +6 -2
  14. package/src/plugins/{inline/jsenv_plugin_html_inline_content.js → inline_content_analysis/jsenv_plugin_html_inline_content_analysis.js} +12 -6
  15. package/src/plugins/{inline/jsenv_plugin_inline.js → inline_content_analysis/jsenv_plugin_inline_content_analysis.js} +8 -10
  16. package/src/plugins/{inline/jsenv_plugin_js_inline_content.js → inline_content_analysis/jsenv_plugin_js_inline_content_analysis.js} +4 -2
  17. package/src/plugins/inlining/jsenv_plugin_inlining.js +22 -0
  18. package/src/plugins/{inline/jsenv_plugin_inline_query_param.js → inlining/jsenv_plugin_inlining_as_data_url.js} +16 -9
  19. package/src/plugins/inlining/jsenv_plugin_inlining_into_html.js +149 -0
  20. package/src/plugins/plugins.js +5 -2
  21. package/src/plugins/ribbon/jsenv_plugin_ribbon.js +11 -10
  22. package/src/plugins/server_events/jsenv_plugin_server_events_client_injection.js +2 -2
  23. package/src/plugins/supervisor/html_supervisor_injection.js +23 -25
  24. package/src/plugins/supervisor/jsenv_plugin_supervisor.js +1 -1
  25. package/src/plugins/transpilation/babel/require_babel_plugin.js +1 -1
  26. package/src/plugins/transpilation/import_assertions/jsenv_plugin_import_assertions.js +20 -5
  27. package/src/plugins/transpilation/js_module_fallback/convert_js_module_to_js_classic.js +1 -1
  28. package/src/plugins/transpilation/js_module_fallback/jsenv_plugin_js_module_fallback_inside_html.js +2 -2
  29. package/src/plugins/transpilation/js_module_fallback/jsenv_plugin_js_module_fallback_on_workers.js +3 -3
  30. package/src/plugins/url_analysis/html/html_urls.js +1 -1
  31. package/dist/controllable_child_process.mjs +0 -129
  32. package/dist/controllable_worker_thread.mjs +0 -91
  33. package/dist/js/execute_using_dynamic_import.js +0 -850
  34. package/dist/js/v8_coverage.js +0 -508
  35. package/src/execute/execute.js +0 -109
  36. package/src/execute/run.js +0 -161
  37. package/src/execute/runtimes/browsers/chromium.js +0 -10
  38. package/src/execute/runtimes/browsers/firefox.js +0 -9
  39. package/src/execute/runtimes/browsers/from_playwright.js +0 -574
  40. package/src/execute/runtimes/browsers/middleware_istanbul.js +0 -65
  41. package/src/execute/runtimes/browsers/middleware_js_supervisor.js +0 -100
  42. package/src/execute/runtimes/browsers/webkit.js +0 -26
  43. package/src/execute/runtimes/node/child_exec_options.js +0 -166
  44. package/src/execute/runtimes/node/controllable_child_process.mjs +0 -135
  45. package/src/execute/runtimes/node/controllable_worker_thread.mjs +0 -103
  46. package/src/execute/runtimes/node/exec_options.js +0 -44
  47. package/src/execute/runtimes/node/execute_using_dynamic_import.js +0 -55
  48. package/src/execute/runtimes/node/exit_codes.js +0 -9
  49. package/src/execute/runtimes/node/kill_process_tree.js +0 -76
  50. package/src/execute/runtimes/node/node_child_process.js +0 -348
  51. package/src/execute/runtimes/node/node_execution_performance.js +0 -67
  52. package/src/execute/runtimes/node/node_worker_thread.js +0 -282
  53. package/src/execute/runtimes/node/profiler_v8_coverage.js +0 -56
  54. package/src/execute/runtimes/readme.md +0 -13
  55. package/src/execute/web_server_param.js +0 -74
  56. package/src/test/coverage/babel_plugin_instrument.js +0 -48
  57. package/src/test/coverage/coverage_reporter_html_directory.js +0 -32
  58. package/src/test/coverage/coverage_reporter_json_file.js +0 -17
  59. package/src/test/coverage/coverage_reporter_text_log.js +0 -19
  60. package/src/test/coverage/empty_coverage_factory.js +0 -52
  61. package/src/test/coverage/file_by_file_coverage.js +0 -25
  62. package/src/test/coverage/istanbul_coverage_composition.js +0 -28
  63. package/src/test/coverage/istanbul_coverage_map_from_coverage.js +0 -16
  64. package/src/test/coverage/list_files_not_covered.js +0 -15
  65. package/src/test/coverage/missing_coverage.js +0 -41
  66. package/src/test/coverage/report_to_coverage.js +0 -198
  67. package/src/test/coverage/v8_and_istanbul.js +0 -37
  68. package/src/test/coverage/v8_coverage.js +0 -26
  69. package/src/test/coverage/v8_coverage_composition.js +0 -24
  70. package/src/test/coverage/v8_coverage_node_directory.js +0 -85
  71. package/src/test/coverage/v8_coverage_to_istanbul.js +0 -99
  72. package/src/test/execute_steps.js +0 -425
  73. package/src/test/execute_test_plan.js +0 -372
  74. package/src/test/execution_colors.js +0 -10
  75. package/src/test/execution_steps.js +0 -65
  76. package/src/test/gc.js +0 -9
  77. package/src/test/logs_file_execution.js +0 -427
  78. package/src/test/logs_file_execution.test.mjs +0 -41
  79. package/src/test/readme.md +0 -3
  80. /package/src/{basic_fetch.js → helpers/basic_fetch.js} +0 -0
  81. /package/src/{lookup_package_directory.js → helpers/lookup_package_directory.js} +0 -0
  82. /package/src/{ping_server.js → helpers/ping_server.js} +0 -0
  83. /package/src/{require_from_jsenv.js → helpers/require_from_jsenv.js} +0 -0
  84. /package/src/{watch_source_files.js → helpers/watch_source_files.js} +0 -0
  85. /package/src/{web_url_converter.js → helpers/web_url_converter.js} +0 -0
  86. /package/src/plugins/{inline → inline_content_analysis}/client/inline_content.js +0 -0
  87. /package/src/plugins/{inline → inline_content_analysis}/jsenv_plugin_data_urls.js +0 -0
@@ -1,161 +0,0 @@
1
- /*
2
- * Export a function capable to run a file on a runtime.
3
- *
4
- * - Used internally by "executeTestPlan" part of the documented API
5
- * - Used internally by "execute" an advanced API not documented
6
- * - logs generated during file execution can be collected
7
- * - logs generated during file execution can be mirrored (re-logged to the console)
8
- * - File is given allocatedMs to complete
9
- * - Errors are collected
10
- * - File execution result is returned, it contains status/errors/namespace/consoleCalls
11
- */
12
-
13
- import { createId } from "@paralleldrive/cuid2"
14
- import { Abort, raceCallbacks } from "@jsenv/abort"
15
- import { ensureParentDirectories } from "@jsenv/filesystem"
16
-
17
- export const run = async ({
18
- signal = new AbortController().signal,
19
- logger,
20
- allocatedMs,
21
- keepRunning = false,
22
- mirrorConsole = false,
23
- collectConsole = false,
24
- coverageEnabled = false,
25
- coverageTempDirectoryUrl,
26
- collectPerformance = false,
27
-
28
- runtime,
29
- runtimeParams,
30
- }) => {
31
- const result = {
32
- status: "pending",
33
- errors: [],
34
- namespace: null,
35
- }
36
- const callbacks = []
37
-
38
- const onConsoleRef = { current: () => {} }
39
- const stopSignal = { notify: () => {} }
40
- const runtimeLabel = `${runtime.name}/${runtime.version}`
41
-
42
- const runOperation = Abort.startOperation()
43
- runOperation.addAbortSignal(signal)
44
- let timeoutAbortSource
45
- if (
46
- // ideally we would rather log than the timeout is ignored
47
- // when keepRunning is true
48
- !keepRunning &&
49
- typeof allocatedMs === "number" &&
50
- allocatedMs !== Infinity
51
- ) {
52
- timeoutAbortSource = runOperation.timeout(allocatedMs)
53
- }
54
- const consoleCalls = []
55
- onConsoleRef.current = ({ type, text }) => {
56
- if (mirrorConsole) {
57
- if (type === "error") {
58
- process.stderr.write(text)
59
- } else {
60
- process.stdout.write(text)
61
- }
62
- }
63
- if (collectConsole) {
64
- consoleCalls.push({ type, text })
65
- }
66
- }
67
- if (collectConsole) {
68
- result.consoleCalls = consoleCalls
69
- }
70
-
71
- // we do not keep coverage in memory, it can grow very big
72
- // instead we store it on the filesystem
73
- // and they can be read later at "coverageFileUrl"
74
- let coverageFileUrl
75
- if (coverageEnabled) {
76
- coverageFileUrl = new URL(
77
- `./${runtime.name}/${createId()}.json`,
78
- coverageTempDirectoryUrl,
79
- ).href
80
- await ensureParentDirectories(coverageFileUrl)
81
- if (coverageEnabled) {
82
- result.coverageFileUrl = coverageFileUrl
83
- // written within the child_process/worker_thread or during runtime.run()
84
- // for browsers
85
- // (because it takes time to serialize and transfer the coverage object)
86
- }
87
- }
88
-
89
- const startMs = Date.now()
90
- callbacks.push(() => {
91
- result.duration = Date.now() - startMs
92
- })
93
-
94
- try {
95
- logger.debug(`run() ${runtimeLabel}`)
96
- runOperation.throwIfAborted()
97
- const winnerPromise = new Promise((resolve) => {
98
- raceCallbacks(
99
- {
100
- aborted: (cb) => {
101
- runOperation.signal.addEventListener("abort", cb)
102
- return () => {
103
- runOperation.signal.removeEventListener("abort", cb)
104
- }
105
- },
106
- runned: async (cb) => {
107
- try {
108
- const runResult = await runtime.run({
109
- signal: runOperation.signal,
110
- logger,
111
- ...runtimeParams,
112
- collectConsole,
113
- collectPerformance,
114
- coverageFileUrl,
115
- keepRunning,
116
- stopSignal,
117
- onConsole: (log) => onConsoleRef.current(log),
118
- })
119
- cb(runResult)
120
- } catch (e) {
121
- cb({
122
- status: "failed",
123
- errors: [e],
124
- })
125
- }
126
- },
127
- },
128
- resolve,
129
- )
130
- })
131
- const winner = await winnerPromise
132
- if (winner.name === "aborted") {
133
- runOperation.throwIfAborted()
134
- }
135
- const { status, namespace, errors, performance } = winner.data
136
- result.status = status
137
- result.errors.push(...errors)
138
- result.namespace = namespace
139
- if (collectPerformance) {
140
- result.performance = performance
141
- }
142
- } catch (e) {
143
- if (Abort.isAbortError(e)) {
144
- if (timeoutAbortSource && timeoutAbortSource.signal.aborted) {
145
- result.status = "timedout"
146
- } else {
147
- result.status = "aborted"
148
- }
149
- } else {
150
- result.status = "failed"
151
- result.errors.push(e)
152
- }
153
- } finally {
154
- await runOperation.end()
155
- }
156
-
157
- callbacks.forEach((callback) => {
158
- callback()
159
- })
160
- return result
161
- }
@@ -1,10 +0,0 @@
1
- import { createRuntimeFromPlaywright } from "./from_playwright.js"
2
-
3
- export const chromium = createRuntimeFromPlaywright({
4
- browserName: "chromium",
5
- // browserVersion will be set by "browser._initializer.version"
6
- // see also https://github.com/microsoft/playwright/releases
7
- browserVersion: "unset",
8
- coveragePlaywrightAPIAvailable: true,
9
- })
10
- export const chromiumIsolatedTab = chromium.isolatedTab
@@ -1,9 +0,0 @@
1
- import { createRuntimeFromPlaywright } from "./from_playwright.js"
2
-
3
- export const firefox = createRuntimeFromPlaywright({
4
- browserName: "firefox",
5
- // browserVersion will be set by "browser._initializer.version"
6
- // see also https://github.com/microsoft/playwright/releases
7
- browserVersion: "unset",
8
- })
9
- export const firefoxIsolatedTab = firefox.isolatedTab