@jsenv/core 24.2.2 → 24.4.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 (156) hide show
  1. package/dist/browser_runtime/browser_runtime-fbd309a1.js +5137 -0
  2. package/dist/browser_runtime/browser_runtime-fbd309a1.js.map +1064 -0
  3. package/dist/{jsenv_browser_system.js → browser_system/browser_system-29eda202.js} +12 -12
  4. package/dist/{jsenv_browser_system.js.map → browser_system/browser_system-29eda202.js.map} +64 -64
  5. package/dist/build_manifest.js +12 -0
  6. package/dist/compile_proxy/assets/s.js-749702e8.map +242 -0
  7. package/dist/compile_proxy/compile_proxy-405777e6.html +2074 -0
  8. package/dist/compile_proxy/compile_proxy.html__inline__20-39c0801c.js.map +385 -0
  9. package/dist/{jsenv_event_source_client.js → event_source_client/event_source_client-9f14c8b9.js} +39 -21
  10. package/dist/event_source_client/event_source_client-9f14c8b9.js.map +127 -0
  11. package/dist/redirector/assets/s.js-749702e8.map +242 -0
  12. package/dist/redirector/redirector-237cd168.html +2118 -0
  13. package/dist/redirector/redirector.html__inline__15-33acb0b9.js.map +390 -0
  14. package/dist/toolbar/assets/compilation.css-209d68b4.map +12 -0
  15. package/dist/toolbar/assets/eventsource.css-38cd0a36.map +12 -0
  16. package/dist/toolbar/assets/execution.css-0ebe522f.map +12 -0
  17. package/dist/toolbar/assets/focus.css-3f9c156d.map +12 -0
  18. package/dist/toolbar/assets/light-theme.css-78b19a80.map +12 -0
  19. package/dist/toolbar/assets/overflow-menu.css-d9688a1c.map +12 -0
  20. package/dist/toolbar/assets/s.js-749702e8.map +242 -0
  21. package/dist/toolbar/assets/settings.css-2b81b245.map +12 -0
  22. package/dist/toolbar/assets/toolbar.main.css-846920e9.map +28 -0
  23. package/dist/toolbar/assets/tooltip.css-03395ee6.map +12 -0
  24. package/dist/toolbar/toolbar-29e91dcd.html +4779 -0
  25. package/dist/toolbar/toolbar.main-53e1ab2b.js.map +795 -0
  26. package/dist/toolbar_injector/assets/jsenv-logo-188b9ca6.svg +95 -0
  27. package/dist/{jsenv_toolbar_injector.js → toolbar_injector/toolbar_injector-0af91b43.js} +87 -65
  28. package/dist/toolbar_injector/toolbar_injector-0af91b43.js.map +294 -0
  29. package/main.js +0 -1
  30. package/package.json +2 -1
  31. package/readme.md +10 -7
  32. package/src/buildProject.js +6 -2
  33. package/src/dev_server.js +22 -130
  34. package/src/execute.js +7 -10
  35. package/src/executeTestPlan.js +7 -1
  36. package/src/importUsingChildProcess.js +1 -1
  37. package/src/internal/{runtime/detectBrowser/detectBrowser.js → browser_detection/browser_detection.js} +0 -0
  38. package/src/internal/{runtime/detectBrowser → browser_detection}/detectAndroid.js +0 -0
  39. package/src/internal/{runtime/detectBrowser → browser_detection}/detectChrome.js +0 -0
  40. package/src/internal/{runtime/detectBrowser → browser_detection}/detectEdge.js +0 -0
  41. package/src/internal/{runtime/detectBrowser → browser_detection}/detectElectron.js +0 -0
  42. package/src/internal/{runtime/detectBrowser → browser_detection}/detectFirefox.js +0 -0
  43. package/src/internal/{runtime/detectBrowser → browser_detection}/detectIOS.js +0 -0
  44. package/src/internal/{runtime/detectBrowser → browser_detection}/detectInternetExplorer.js +0 -0
  45. package/src/internal/{runtime/detectBrowser → browser_detection}/detectOpera.js +0 -0
  46. package/src/internal/{runtime/detectBrowser → browser_detection}/detectSafari.js +0 -0
  47. package/src/internal/{runtime/detectBrowser → browser_detection}/util.js +0 -0
  48. package/src/internal/{runtime/createBrowserRuntime/scanBrowserRuntimeFeatures.js → browser_feature_detection/browser_feature_detection.js} +116 -81
  49. package/src/internal/browser_feature_detection/compile_proxy.html +27 -0
  50. package/src/internal/browser_launcher/browser_runtime_report.js +75 -0
  51. package/src/internal/{browser-launcher → browser_launcher}/executeHtmlFile.js +13 -16
  52. package/src/internal/browser_launcher/from_playwright.js +314 -0
  53. package/src/internal/{browser-launcher → browser_launcher}/trackPageToNotify.js +0 -0
  54. package/src/internal/{browser-launcher/jsenv-browser-system.js → browser_runtime/browser_runtime.js} +4 -4
  55. package/src/internal/{runtime/createBrowserRuntime/createBrowserSystem.js → browser_runtime/browser_system.js} +3 -2
  56. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/createBrowserRuntime.js +7 -5
  57. package/src/internal/{browser-launcher → browser_runtime}/displayErrorInDocument.js +0 -0
  58. package/src/internal/{browser-launcher → browser_runtime}/displayErrorNotification.js +2 -4
  59. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/evalSource.js +2 -0
  60. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/makeNamespaceTransferable.js +0 -0
  61. package/src/internal/{browser-utils → browser_utils}/fetch-browser.js +2 -0
  62. package/src/internal/{browser-utils → browser_utils}/fetchAndEvalUsingFetch.js +3 -0
  63. package/src/internal/{browser-utils → browser_utils}/fetchAndEvalUsingScript.js +2 -0
  64. package/src/internal/{browser-utils → browser_utils}/fetchJson.js +0 -0
  65. package/src/internal/{browser-utils → browser_utils}/fetchUsingXHR.js +4 -4
  66. package/src/internal/building/buildUsingRollup.js +4 -0
  67. package/src/internal/building/createJsenvRollupPlugin.js +19 -9
  68. package/src/internal/building/css/applyPostCss.js +19 -8
  69. package/src/internal/building/css/moveCssUrls.js +44 -0
  70. package/src/internal/building/css/parseCssRessource.js +67 -17
  71. package/src/internal/building/css/parseCssUrls.js +29 -23
  72. package/src/internal/building/css/postcss_plugin_url_visitor.js +11 -20
  73. package/src/internal/building/css/replaceCssUrls.js +38 -19
  74. package/src/internal/building/css_module.js +6 -10
  75. package/src/internal/building/html/parseHtmlRessource.js +37 -11
  76. package/src/internal/building/parseRessource.js +3 -0
  77. package/src/internal/building/ressource_builder.js +12 -3
  78. package/src/internal/compiling/babel_plugin_import_assertions.js +1 -2
  79. package/src/internal/compiling/html_source_file_service.js +23 -21
  80. package/src/internal/compiling/jsenvCompilerForHtml.js +15 -22
  81. package/src/internal/compiling/startCompileServer.js +37 -32
  82. package/src/internal/dev_server/event_source_client/event_source_connection.js +28 -19
  83. package/src/internal/dev_server/exploring/exploring.html +7 -2
  84. package/src/internal/dev_server/exploring/fetchExploringJson.js +4 -9
  85. package/src/internal/dev_server/redirector/redirector.html +37 -2
  86. package/src/internal/dev_server/toolbar/compilation/toolbar.compilation.js +4 -7
  87. package/src/internal/dev_server/toolbar/eventsource/toolbar.eventsource.js +2 -2
  88. package/src/internal/dev_server/toolbar/notification/toolbar.notification.js +75 -44
  89. package/src/internal/dev_server/toolbar/toolbar.html +31 -5
  90. package/src/internal/dev_server/toolbar/toolbar.injector.js +55 -36
  91. package/src/internal/dev_server/toolbar/toolbar.main.js +45 -31
  92. package/src/internal/dev_server/toolbar/util/fetching.js +1 -1
  93. package/src/internal/executing/executeConcurrently.js +15 -11
  94. package/src/internal/executing/executePlan.js +3 -2
  95. package/src/internal/generateGroupMap/one_runtime_compat.js +1 -1
  96. package/src/internal/generateGroupMap/runtime_compat_composition.js +1 -1
  97. package/src/internal/generateGroupMap/runtime_support.js +1 -1
  98. package/src/internal/jsenvInternalFiles.js +0 -26
  99. package/src/internal/jsenv_builds.js +19 -0
  100. package/src/internal/{runtime/node-feature-detect/feature-detect-dynamic-import.mjs → node_feature_detection/feature_detect_dynamic_import.mjs} +0 -0
  101. package/src/internal/{runtime/node-feature-detect/feature-detect-top-level-await.mjs → node_feature_detection/feature_detect_top_level_await.mjs} +0 -0
  102. package/src/internal/{runtime/node-feature-detect → node_feature_detection}/nodeSupportsDynamicImport.js +0 -0
  103. package/src/internal/node_feature_detection/nodeSupportsTopLevelAwait.js +16 -0
  104. package/src/internal/{runtime/createNodeRuntime/scanNodeRuntimeFeatures.js → node_feature_detection/node_feature_detection.js} +12 -13
  105. package/src/internal/{node-launcher → node_launcher}/createChildProcessOptions.js +0 -0
  106. package/src/internal/{node-launcher → node_launcher}/createControllableNodeProcess.js +9 -14
  107. package/src/internal/{node-launcher → node_launcher}/kill_process_tree.js +0 -0
  108. package/src/internal/node_launcher/node_runtime_report.js +71 -0
  109. package/src/internal/{node-launcher → node_launcher}/processOptions.js +0 -0
  110. package/src/internal/{runtime/detectNode → node_runtime}/detectNode.js +0 -0
  111. package/src/internal/{runtime/createNodeRuntime → node_runtime}/evalSource.js +1 -1
  112. package/src/internal/{runtime/createNodeRuntime → node_runtime}/fetchSource.js +1 -1
  113. package/src/internal/{node-launcher → node_runtime}/nodeControllableFile.mjs +14 -11
  114. package/src/internal/{runtime/createNodeRuntime/createNodeExecutionWithDynamicImport.js → node_runtime/node_execution_dynamic_import.js} +34 -6
  115. package/src/internal/node_runtime/node_execution_performance.js +67 -0
  116. package/src/internal/{runtime/createNodeRuntime/createNodeExecutionWithSystemJs.js → node_runtime/node_execution_systemjs.js} +38 -24
  117. package/src/internal/{runtime/createNodeRuntime/createNodeSystem.js → node_runtime/node_system.js} +4 -4
  118. package/src/internal/runtime/computeCompileIdFromGroupId.js +1 -0
  119. package/src/internal/runtime/resolveGroup.js +1 -1
  120. package/src/internal/runtime/resolveRuntimeGroup.js +2 -2
  121. package/src/internal/{semantic-versioning → semantic_versioning}/findHighestVersion.js +0 -0
  122. package/src/internal/{semantic-versioning → semantic_versioning}/findLowestVersion.js +0 -0
  123. package/src/internal/{semantic-versioning → semantic_versioning}/index.js +0 -0
  124. package/src/internal/{semantic-versioning → semantic_versioning}/valueToVersion.js +0 -0
  125. package/src/internal/{semantic-versioning → semantic_versioning}/versionCompare.js +0 -0
  126. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsAbove.js +0 -0
  127. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsBelow.js +0 -0
  128. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsEqual.js +0 -0
  129. package/src/launchBrowser.js +33 -492
  130. package/src/launchNode.js +36 -7
  131. package/src/requireUsingChildProcess.js +1 -1
  132. package/dist/jsenv_compile_proxy.js +0 -1339
  133. package/dist/jsenv_compile_proxy.js.map +0 -378
  134. package/dist/jsenv_event_source_client.js.map +0 -126
  135. package/dist/jsenv_exploring_index.js +0 -1092
  136. package/dist/jsenv_exploring_index.js.map +0 -353
  137. package/dist/jsenv_exploring_redirector.js +0 -1386
  138. package/dist/jsenv_exploring_redirector.js.map +0 -384
  139. package/dist/jsenv_redirector.js +0 -1388
  140. package/dist/jsenv_redirector.js.map +0 -384
  141. package/dist/jsenv_toolbar.js +0 -2880
  142. package/dist/jsenv_toolbar.js.map +0 -771
  143. package/dist/jsenv_toolbar_injector.js.map +0 -301
  144. package/src/internal/browser-launcher/createSharing.js +0 -70
  145. package/src/internal/browser-launcher/jsenv_compile_proxy.html +0 -13
  146. package/src/internal/browser-launcher/jsenv_compile_proxy.js +0 -5
  147. package/src/internal/dev_server/event_source_client/event_source_client_file_info.js +0 -17
  148. package/src/internal/dev_server/exploring/exploring_file_info.js +0 -21
  149. package/src/internal/dev_server/redirector/redirector.js +0 -30
  150. package/src/internal/dev_server/redirector/redirector_file_info.js +0 -24
  151. package/src/internal/dev_server/toolbar/backtolist/toolbar.backtolist.js +0 -33
  152. package/src/internal/dev_server/toolbar/toolbar_file_info.js +0 -37
  153. package/src/internal/node-launcher/node-js-file.js +0 -110
  154. package/src/internal/runtime/createNodeRuntime/createNodeRuntime.js +0 -32
  155. package/src/internal/runtime/node-feature-detect/nodeSupportsTopLevelAwait.js +0 -18
  156. package/src/nodeRuntime.js +0 -5
@@ -1,37 +0,0 @@
1
- import { jsenvCoreDirectoryUrl } from "@jsenv/core/src/internal/jsenvCoreDirectoryUrl.js"
2
-
3
- const injectorSourceRelativeUrl =
4
- "./src/internal/dev_server/toolbar/toolbar.injector.js"
5
- const injectorBuildRelativeUrl = "./jsenv_toolbar_injector.js"
6
- const injectorBuildUrl = new URL(
7
- "./dist/jsenv_toolbar_injector.js",
8
- jsenvCoreDirectoryUrl,
9
- ).href
10
- export const toolbarInjectorFileInfo = {
11
- sourceRelativeUrl: injectorSourceRelativeUrl,
12
- buildRelativeUrl: injectorBuildRelativeUrl,
13
- buildUrl: injectorBuildUrl,
14
- }
15
-
16
- const htmlSourceUrl = new URL(
17
- "./src/internal/dev_server/toolbar/toolbar.html",
18
- jsenvCoreDirectoryUrl,
19
- ).href
20
- export const toolbarHtmlFileInfo = {
21
- sourceUrl: htmlSourceUrl,
22
- }
23
-
24
- const jsSourceRelativeUrl = "./src/internal/dev_server/toolbar/toolbar.main.js"
25
- const jsBuildRelativeUrl = "./jsenv_toolbar.js"
26
- const jsSourceUrl = new URL(
27
- "./src/internal/dev_server/toolbar/toolbar.main.js",
28
- jsenvCoreDirectoryUrl,
29
- ).href
30
- const jsBuildUrl = new URL("./dist/jsenv_toolbar.js", jsenvCoreDirectoryUrl)
31
- .href
32
- export const toolbarJsFileInfo = {
33
- sourceRelativeUrl: jsSourceRelativeUrl,
34
- buildRelativeUrl: jsBuildRelativeUrl,
35
- sourceUrl: jsSourceUrl,
36
- buildUrl: jsBuildUrl,
37
- }
@@ -1,110 +0,0 @@
1
- import { nodeRuntime } from "../../nodeRuntime.js"
2
- import { PerformanceObserver, performance } from "perf_hooks"
3
-
4
- export const execute = async ({
5
- projectDirectoryUrl,
6
- fileRelativeUrl,
7
- compileServerOrigin,
8
- outDirectoryRelativeUrl,
9
- executionId,
10
- // do not log in the console
11
- // because error handling becomes responsability
12
- // of node code launching node process
13
- // it avoids seeing error in runtime logs during testing
14
- errorExposureInConsole = false,
15
- collectCoverage,
16
- measurePerformance,
17
- collectPerformance,
18
- canUseNativeModuleSystem,
19
- }) => {
20
- let finalizeExecutionResult = (result) => result
21
-
22
- if (collectPerformance) {
23
- const measureEntries = []
24
- // https://nodejs.org/dist/latest-v16.x/docs/api/perf_hooks.html
25
- const perfObserver = new PerformanceObserver(
26
- (
27
- // https://nodejs.org/dist/latest-v16.x/docs/api/perf_hooks.html#perf_hooks_class_performanceobserverentrylist
28
- list,
29
- ) => {
30
- const perfMeasureEntries = list.getEntriesByType("measure")
31
- measureEntries.push(...perfMeasureEntries)
32
- },
33
- )
34
- perfObserver.observe({
35
- entryTypes: ["measure"],
36
- })
37
-
38
- finalizeExecutionResult = async (executionResult) => {
39
- // wait for node to call the performance observer
40
- await new Promise((resolve) => {
41
- setTimeout(resolve)
42
- })
43
- performance.clearMarks()
44
- perfObserver.disconnect()
45
- return {
46
- ...executionResult,
47
- performance: {
48
- ...readNodePerformance(),
49
- measures: measuresFromMeasureEntries(measureEntries),
50
- },
51
- }
52
- }
53
- }
54
-
55
- const { executeFile } = await nodeRuntime.create({
56
- projectDirectoryUrl,
57
- compileServerOrigin,
58
- outDirectoryRelativeUrl,
59
- canUseNativeModuleSystem,
60
- })
61
-
62
- const executionResult = await executeFile(fileRelativeUrl, {
63
- executionId,
64
- errorExposureInConsole,
65
- measurePerformance,
66
- collectCoverage,
67
- })
68
-
69
- return finalizeExecutionResult({
70
- ...executionResult,
71
- indirectCoverage: global.__indirectCoverage__,
72
- })
73
- }
74
-
75
- const readNodePerformance = () => {
76
- const nodePerformance = {
77
- nodeTiming: asPlainObject(performance.nodeTiming),
78
- timeOrigin: performance.timeOrigin,
79
- eventLoopUtilization: performance.eventLoopUtilization(),
80
- }
81
- return nodePerformance
82
- }
83
-
84
- // remove getters that cannot be stringified
85
- const asPlainObject = (objectWithGetters) => {
86
- const objectWithoutGetters = {}
87
- Object.keys(objectWithGetters).forEach((key) => {
88
- objectWithoutGetters[key] = objectWithGetters[key]
89
- })
90
- return objectWithoutGetters
91
- }
92
-
93
- const measuresFromMeasureEntries = (measureEntries) => {
94
- const measures = {}
95
- // Sort to ensure measures order is predictable
96
- // It seems to be already predictable on Node 16+ but
97
- // it's not the case on Node 14.
98
- measureEntries.sort((a, b) => {
99
- return a.startTime - b.startTime
100
- })
101
- measureEntries.forEach(
102
- (
103
- // https://nodejs.org/dist/latest-v16.x/docs/api/perf_hooks.html#perf_hooks_class_performanceentry
104
- perfMeasureEntry,
105
- ) => {
106
- measures[perfMeasureEntry.name] = perfMeasureEntry.duration
107
- },
108
- )
109
- return measures
110
- }
@@ -1,32 +0,0 @@
1
- import { scanNodeRuntimeFeatures } from "./scanNodeRuntimeFeatures.js"
2
- import { createNodeExecutionWithSystemJs } from "./createNodeExecutionWithSystemJs.js"
3
- import { createNodeExecutionWithDynamicImport } from "./createNodeExecutionWithDynamicImport.js"
4
-
5
- export const createNodeRuntime = async ({
6
- projectDirectoryUrl,
7
- compileServerOrigin,
8
- outDirectoryRelativeUrl,
9
- canUseNativeModuleSystem = true,
10
- }) => {
11
- const nodeFeatures = await scanNodeRuntimeFeatures({
12
- compileServerOrigin,
13
- outDirectoryRelativeUrl,
14
- })
15
- const { canAvoidCompilation, compileId, importDefaultExtension } =
16
- nodeFeatures
17
-
18
- if (canAvoidCompilation && canUseNativeModuleSystem) {
19
- return createNodeExecutionWithDynamicImport({
20
- projectDirectoryUrl,
21
- compileServerOrigin,
22
- })
23
- }
24
-
25
- return createNodeExecutionWithSystemJs({
26
- projectDirectoryUrl,
27
- compileServerOrigin,
28
- outDirectoryRelativeUrl,
29
- compileId,
30
- importDefaultExtension,
31
- })
32
- }
@@ -1,18 +0,0 @@
1
- import { memoize, resolveUrl } from "@jsenv/filesystem"
2
-
3
- import { jsenvCoreDirectoryUrl } from "@jsenv/core/src/internal/jsenvCoreDirectoryUrl.js"
4
-
5
- const featureDetetcTopLevelAwaitFileUrl = resolveUrl(
6
- "./src/internal/runtime/node-feature-detect/feature-detect-top-level-await.mjs",
7
- jsenvCoreDirectoryUrl,
8
- )
9
-
10
- export const nodeSupportsTopLevelAwait = memoize(async () => {
11
- try {
12
- const namespace = await import(featureDetetcTopLevelAwaitFileUrl)
13
- const supported = namespace.default === 42
14
- return supported
15
- } catch (e) {
16
- return false
17
- }
18
- })
@@ -1,5 +0,0 @@
1
- import { createNodeRuntime } from "./internal/runtime/createNodeRuntime/createNodeRuntime.js"
2
-
3
- export const nodeRuntime = {
4
- create: createNodeRuntime,
5
- }