@jsenv/core 24.2.2 → 24.3.1

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 (150) hide show
  1. package/{license → LICENSE} +0 -0
  2. package/dist/browser_runtime/browser_runtime-fbd309a1.js +5137 -0
  3. package/dist/browser_runtime/browser_runtime-fbd309a1.js.map +1064 -0
  4. package/dist/{jsenv_browser_system.js → browser_system/browser_system-29eda202.js} +12 -12
  5. package/dist/{jsenv_browser_system.js.map → browser_system/browser_system-29eda202.js.map} +64 -64
  6. package/dist/build_manifest.js +12 -0
  7. package/dist/compile_proxy/assets/s.js-749702e8.map +242 -0
  8. package/dist/compile_proxy/compile_proxy-405777e6.html +2074 -0
  9. package/dist/compile_proxy/compile_proxy.html__inline__20-39c0801c.js.map +385 -0
  10. package/dist/{jsenv_event_source_client.js → event_source_client/event_source_client-9f14c8b9.js} +39 -21
  11. package/dist/event_source_client/event_source_client-9f14c8b9.js.map +127 -0
  12. package/dist/redirector/assets/s.js-749702e8.map +242 -0
  13. package/dist/redirector/redirector-237cd168.html +2118 -0
  14. package/dist/redirector/redirector.html__inline__15-33acb0b9.js.map +390 -0
  15. package/dist/toolbar/assets/compilation.css-209d68b4.map +12 -0
  16. package/dist/toolbar/assets/eventsource.css-38cd0a36.map +12 -0
  17. package/dist/toolbar/assets/execution.css-0ebe522f.map +12 -0
  18. package/dist/toolbar/assets/focus.css-3f9c156d.map +12 -0
  19. package/dist/toolbar/assets/light-theme.css-78b19a80.map +12 -0
  20. package/dist/toolbar/assets/overflow-menu.css-d9688a1c.map +12 -0
  21. package/dist/toolbar/assets/s.js-749702e8.map +242 -0
  22. package/dist/toolbar/assets/settings.css-2b81b245.map +12 -0
  23. package/dist/toolbar/assets/toolbar.main.css-846920e9.map +28 -0
  24. package/dist/toolbar/assets/tooltip.css-03395ee6.map +12 -0
  25. package/dist/toolbar/toolbar-d3d98c2e.html +4778 -0
  26. package/dist/toolbar/toolbar.main-cab36c15.js.map +795 -0
  27. package/dist/toolbar_injector/assets/jsenv-logo-188b9ca6.svg +95 -0
  28. package/dist/{jsenv_toolbar_injector.js → toolbar_injector/toolbar_injector-01f71ce3.js} +85 -65
  29. package/dist/toolbar_injector/toolbar_injector-01f71ce3.js.map +294 -0
  30. package/main.js +0 -1
  31. package/package.json +4 -2
  32. package/readme.md +10 -7
  33. package/src/buildProject.js +6 -2
  34. package/src/dev_server.js +22 -130
  35. package/src/importUsingChildProcess.js +1 -1
  36. package/src/internal/{runtime/detectBrowser/detectBrowser.js → browser_detection/browser_detection.js} +0 -0
  37. package/src/internal/{runtime/detectBrowser → browser_detection}/detectAndroid.js +0 -0
  38. package/src/internal/{runtime/detectBrowser → browser_detection}/detectChrome.js +0 -0
  39. package/src/internal/{runtime/detectBrowser → browser_detection}/detectEdge.js +0 -0
  40. package/src/internal/{runtime/detectBrowser → browser_detection}/detectElectron.js +0 -0
  41. package/src/internal/{runtime/detectBrowser → browser_detection}/detectFirefox.js +0 -0
  42. package/src/internal/{runtime/detectBrowser → browser_detection}/detectIOS.js +0 -0
  43. package/src/internal/{runtime/detectBrowser → browser_detection}/detectInternetExplorer.js +0 -0
  44. package/src/internal/{runtime/detectBrowser → browser_detection}/detectOpera.js +0 -0
  45. package/src/internal/{runtime/detectBrowser → browser_detection}/detectSafari.js +0 -0
  46. package/src/internal/{runtime/detectBrowser → browser_detection}/util.js +0 -0
  47. package/src/internal/{runtime/createBrowserRuntime/scanBrowserRuntimeFeatures.js → browser_feature_detection/browser_feature_detection.js} +116 -81
  48. package/src/internal/browser_feature_detection/compile_proxy.html +27 -0
  49. package/src/internal/{browser-launcher → browser_launcher}/createSharing.js +0 -0
  50. package/src/internal/{browser-launcher → browser_launcher}/executeHtmlFile.js +7 -4
  51. package/src/internal/{browser-launcher → browser_launcher}/trackPageToNotify.js +0 -0
  52. package/src/internal/{browser-launcher/jsenv-browser-system.js → browser_runtime/browser_runtime.js} +4 -4
  53. package/src/internal/{runtime/createBrowserRuntime/createBrowserSystem.js → browser_runtime/browser_system.js} +3 -2
  54. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/createBrowserRuntime.js +7 -5
  55. package/src/internal/{browser-launcher → browser_runtime}/displayErrorInDocument.js +0 -0
  56. package/src/internal/{browser-launcher → browser_runtime}/displayErrorNotification.js +2 -4
  57. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/evalSource.js +2 -0
  58. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/makeNamespaceTransferable.js +0 -0
  59. package/src/internal/{browser-utils → browser_utils}/fetch-browser.js +2 -0
  60. package/src/internal/{browser-utils → browser_utils}/fetchAndEvalUsingFetch.js +3 -0
  61. package/src/internal/{browser-utils → browser_utils}/fetchAndEvalUsingScript.js +2 -0
  62. package/src/internal/{browser-utils → browser_utils}/fetchJson.js +0 -0
  63. package/src/internal/{browser-utils → browser_utils}/fetchUsingXHR.js +4 -4
  64. package/src/internal/building/buildUsingRollup.js +4 -0
  65. package/src/internal/building/createJsenvRollupPlugin.js +19 -9
  66. package/src/internal/building/css/applyPostCss.js +19 -8
  67. package/src/internal/building/css/moveCssUrls.js +44 -0
  68. package/src/internal/building/css/parseCssRessource.js +67 -17
  69. package/src/internal/building/css/parseCssUrls.js +29 -23
  70. package/src/internal/building/css/postcss_plugin_url_visitor.js +11 -20
  71. package/src/internal/building/css/replaceCssUrls.js +38 -19
  72. package/src/internal/building/css_module.js +6 -10
  73. package/src/internal/building/html/parseHtmlRessource.js +37 -11
  74. package/src/internal/building/parseRessource.js +3 -0
  75. package/src/internal/building/ressource_builder.js +12 -3
  76. package/src/internal/compiling/babel_plugin_import_assertions.js +1 -2
  77. package/src/internal/compiling/html_source_file_service.js +23 -21
  78. package/src/internal/compiling/jsenvCompilerForHtml.js +15 -22
  79. package/src/internal/compiling/startCompileServer.js +34 -32
  80. package/src/internal/dev_server/event_source_client/event_source_connection.js +28 -19
  81. package/src/internal/dev_server/exploring/exploring.html +7 -2
  82. package/src/internal/dev_server/exploring/fetchExploringJson.js +4 -9
  83. package/src/internal/dev_server/redirector/redirector.html +37 -2
  84. package/src/internal/dev_server/toolbar/compilation/toolbar.compilation.js +4 -7
  85. package/src/internal/dev_server/toolbar/eventsource/toolbar.eventsource.js +2 -2
  86. package/src/internal/dev_server/toolbar/notification/toolbar.notification.js +75 -44
  87. package/src/internal/dev_server/toolbar/toolbar.html +31 -5
  88. package/src/internal/dev_server/toolbar/toolbar.injector.js +53 -36
  89. package/src/internal/dev_server/toolbar/toolbar.main.js +44 -31
  90. package/src/internal/dev_server/toolbar/util/fetching.js +1 -1
  91. package/src/internal/generateGroupMap/one_runtime_compat.js +1 -1
  92. package/src/internal/generateGroupMap/runtime_compat_composition.js +1 -1
  93. package/src/internal/generateGroupMap/runtime_support.js +1 -1
  94. package/src/internal/jsenvInternalFiles.js +0 -26
  95. package/src/internal/jsenv_builds.js +19 -0
  96. package/src/internal/{runtime/node-feature-detect/feature-detect-dynamic-import.mjs → node_feature_detection/feature_detect_dynamic_import.mjs} +0 -0
  97. package/src/internal/{runtime/node-feature-detect/feature-detect-top-level-await.mjs → node_feature_detection/feature_detect_top_level_await.mjs} +0 -0
  98. package/src/internal/{runtime/node-feature-detect → node_feature_detection}/nodeSupportsDynamicImport.js +0 -0
  99. package/src/internal/node_feature_detection/nodeSupportsTopLevelAwait.js +16 -0
  100. package/src/internal/{runtime/createNodeRuntime/scanNodeRuntimeFeatures.js → node_feature_detection/node_feature_detection.js} +12 -13
  101. package/src/internal/{node-launcher → node_launcher}/createChildProcessOptions.js +0 -0
  102. package/src/internal/{node-launcher → node_launcher}/createControllableNodeProcess.js +9 -14
  103. package/src/internal/{node-launcher → node_launcher}/kill_process_tree.js +0 -0
  104. package/src/internal/{node-launcher → node_launcher}/processOptions.js +0 -0
  105. package/src/internal/{runtime/detectNode → node_runtime}/detectNode.js +0 -0
  106. package/src/internal/{runtime/createNodeRuntime → node_runtime}/evalSource.js +1 -1
  107. package/src/internal/{runtime/createNodeRuntime → node_runtime}/fetchSource.js +1 -1
  108. package/src/internal/{node-launcher → node_runtime}/nodeControllableFile.mjs +14 -11
  109. package/src/internal/{runtime/createNodeRuntime/createNodeExecutionWithDynamicImport.js → node_runtime/node_execution_dynamic_import.js} +34 -6
  110. package/src/internal/node_runtime/node_execution_performance.js +67 -0
  111. package/src/internal/{runtime/createNodeRuntime/createNodeExecutionWithSystemJs.js → node_runtime/node_execution_systemjs.js} +38 -24
  112. package/src/internal/{runtime/createNodeRuntime/createNodeSystem.js → node_runtime/node_system.js} +4 -4
  113. package/src/internal/runtime/computeCompileIdFromGroupId.js +1 -0
  114. package/src/internal/runtime/resolveGroup.js +1 -1
  115. package/src/internal/runtime/resolveRuntimeGroup.js +2 -2
  116. package/src/internal/{semantic-versioning → semantic_versioning}/findHighestVersion.js +0 -0
  117. package/src/internal/{semantic-versioning → semantic_versioning}/findLowestVersion.js +0 -0
  118. package/src/internal/{semantic-versioning → semantic_versioning}/index.js +0 -0
  119. package/src/internal/{semantic-versioning → semantic_versioning}/valueToVersion.js +0 -0
  120. package/src/internal/{semantic-versioning → semantic_versioning}/versionCompare.js +0 -0
  121. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsAbove.js +0 -0
  122. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsBelow.js +0 -0
  123. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsEqual.js +0 -0
  124. package/src/launchBrowser.js +3 -3
  125. package/src/launchNode.js +33 -7
  126. package/src/requireUsingChildProcess.js +1 -1
  127. package/dist/jsenv_compile_proxy.js +0 -1339
  128. package/dist/jsenv_compile_proxy.js.map +0 -378
  129. package/dist/jsenv_event_source_client.js.map +0 -126
  130. package/dist/jsenv_exploring_index.js +0 -1092
  131. package/dist/jsenv_exploring_index.js.map +0 -353
  132. package/dist/jsenv_exploring_redirector.js +0 -1386
  133. package/dist/jsenv_exploring_redirector.js.map +0 -384
  134. package/dist/jsenv_redirector.js +0 -1388
  135. package/dist/jsenv_redirector.js.map +0 -384
  136. package/dist/jsenv_toolbar.js +0 -2880
  137. package/dist/jsenv_toolbar.js.map +0 -771
  138. package/dist/jsenv_toolbar_injector.js.map +0 -301
  139. package/src/internal/browser-launcher/jsenv_compile_proxy.html +0 -13
  140. package/src/internal/browser-launcher/jsenv_compile_proxy.js +0 -5
  141. package/src/internal/dev_server/event_source_client/event_source_client_file_info.js +0 -17
  142. package/src/internal/dev_server/exploring/exploring_file_info.js +0 -21
  143. package/src/internal/dev_server/redirector/redirector.js +0 -30
  144. package/src/internal/dev_server/redirector/redirector_file_info.js +0 -24
  145. package/src/internal/dev_server/toolbar/backtolist/toolbar.backtolist.js +0 -33
  146. package/src/internal/dev_server/toolbar/toolbar_file_info.js +0 -37
  147. package/src/internal/node-launcher/node-js-file.js +0 -110
  148. package/src/internal/runtime/createNodeRuntime/createNodeRuntime.js +0 -32
  149. package/src/internal/runtime/node-feature-detect/nodeSupportsTopLevelAwait.js +0 -18
  150. package/src/nodeRuntime.js +0 -5
@@ -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
- }