@jsenv/core 23.6.2 → 23.8.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 (135) hide show
  1. package/{license → LICENSE} +21 -21
  2. package/dist/jsenv_browser_system.js +35 -35
  3. package/dist/jsenv_browser_system.js.map +14 -14
  4. package/dist/jsenv_compile_proxy.js +47 -128
  5. package/dist/jsenv_compile_proxy.js.map +25 -62
  6. package/dist/jsenv_exploring_index.js.map +5 -5
  7. package/dist/jsenv_exploring_redirector.js +47 -54
  8. package/dist/jsenv_exploring_redirector.js.map +17 -19
  9. package/dist/jsenv_toolbar.js +47 -130
  10. package/dist/jsenv_toolbar.js.map +13 -48
  11. package/dist/jsenv_toolbar_injector.js.map +5 -5
  12. package/helpers/babel/.eslintrc.cjs +24 -24
  13. package/helpers/babel/AsyncGenerator/AsyncGenerator.js +81 -81
  14. package/helpers/babel/AwaitValue/AwaitValue.js +3 -3
  15. package/helpers/babel/applyDecoratorDescriptor/applyDecoratorDescriptor.js +33 -33
  16. package/helpers/babel/arrayLikeToArray/arrayLikeToArray.js +7 -7
  17. package/helpers/babel/arrayWithHoles/arrayWithHoles.js +4 -4
  18. package/helpers/babel/arrayWithoutHoles/arrayWithoutHoles.js +6 -6
  19. package/helpers/babel/assertThisInitialized/assertThisInitialized.js +7 -7
  20. package/helpers/babel/asyncGeneratorDelegate/asyncGeneratorDelegate.js +40 -40
  21. package/helpers/babel/asyncIterator/asyncIterator.js +12 -12
  22. package/helpers/babel/asyncToGenerator/asyncToGenerator.js +34 -34
  23. package/helpers/babel/awaitAsyncGenerator/awaitAsyncGenerator.js +5 -5
  24. package/helpers/babel/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +20 -20
  25. package/helpers/babel/classApplyDescriptorGet/classApplyDescriptorGet.js +6 -6
  26. package/helpers/babel/classApplyDescriptorSet/classApplyDescriptorSet.js +13 -13
  27. package/helpers/babel/classCallCheck/classCallCheck.js +5 -5
  28. package/helpers/babel/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +5 -5
  29. package/helpers/babel/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +6 -6
  30. package/helpers/babel/classExtractFieldDescriptor/classExtractFieldDescriptor.js +7 -7
  31. package/helpers/babel/classNameTDZError/classNameTDZError.js +4 -4
  32. package/helpers/babel/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +7 -7
  33. package/helpers/babel/classPrivateFieldGet/classPrivateFieldGet.js +7 -7
  34. package/helpers/babel/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +6 -6
  35. package/helpers/babel/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +5 -5
  36. package/helpers/babel/classPrivateFieldSet/classPrivateFieldSet.js +8 -8
  37. package/helpers/babel/classPrivateMethodGet/classPrivateMethodGet.js +6 -6
  38. package/helpers/babel/classPrivateMethodSet/classPrivateMethodSet.js +3 -3
  39. package/helpers/babel/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +9 -9
  40. package/helpers/babel/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +15 -15
  41. package/helpers/babel/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +6 -6
  42. package/helpers/babel/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +3 -3
  43. package/helpers/babel/construct/construct.js +16 -16
  44. package/helpers/babel/createClass/createClass.js +15 -15
  45. package/helpers/babel/createForOfIteratorHelper/createForOfIteratorHelper.js +60 -60
  46. package/helpers/babel/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +23 -23
  47. package/helpers/babel/createRawReactElement/createRawReactElement.js +50 -50
  48. package/helpers/babel/createSuper/createSuper.js +22 -22
  49. package/helpers/babel/decorate/decorate.js +403 -403
  50. package/helpers/babel/defaults/defaults.js +11 -11
  51. package/helpers/babel/defineEnumerableProperties/defineEnumerableProperties.js +23 -23
  52. package/helpers/babel/defineProperty/defineProperty.js +18 -18
  53. package/helpers/babel/extends/extends.js +14 -14
  54. package/helpers/babel/get/get.js +13 -13
  55. package/helpers/babel/getPrototypeOf/getPrototypeOf.js +4 -4
  56. package/helpers/babel/inherits/inherits.js +15 -15
  57. package/helpers/babel/inheritsLoose/inheritsLoose.js +7 -7
  58. package/helpers/babel/initializerDefineProperty/initializerDefineProperty.js +10 -10
  59. package/helpers/babel/initializerWarningHelper/initializerWarningHelper.js +6 -6
  60. package/helpers/babel/instanceof/instanceof.js +6 -6
  61. package/helpers/babel/interopRequireDefault/interopRequireDefault.js +3 -3
  62. package/helpers/babel/interopRequireWildcard/interopRequireWildcard.js +37 -37
  63. package/helpers/babel/isNativeFunction/isNativeFunction.js +4 -4
  64. package/helpers/babel/isNativeReflectConstruct/isNativeReflectConstruct.js +21 -21
  65. package/helpers/babel/iterableToArray/iterableToArray.js +7 -7
  66. package/helpers/babel/iterableToArrayLimit/iterableToArrayLimit.js +36 -36
  67. package/helpers/babel/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +10 -10
  68. package/helpers/babel/jsx/jsx.js +45 -45
  69. package/helpers/babel/maybeArrayLike/maybeArrayLike.js +10 -10
  70. package/helpers/babel/newArrowCheck/newArrowCheck.js +5 -5
  71. package/helpers/babel/nonIterableRest/nonIterableRest.js +5 -5
  72. package/helpers/babel/nonIterableSpread/nonIterableSpread.js +5 -5
  73. package/helpers/babel/objectDestructuringEmpty/objectDestructuringEmpty.js +3 -3
  74. package/helpers/babel/objectSpread/objectSpread.js +23 -23
  75. package/helpers/babel/objectSpread2/objectSpread2.js +33 -33
  76. package/helpers/babel/objectWithoutProperties/objectWithoutProperties.js +19 -19
  77. package/helpers/babel/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +13 -13
  78. package/helpers/babel/possibleConstructorReturn/possibleConstructorReturn.js +10 -10
  79. package/helpers/babel/readOnlyError/readOnlyError.js +4 -4
  80. package/helpers/babel/readme.md +9 -9
  81. package/helpers/babel/set/set.js +44 -44
  82. package/helpers/babel/setPrototypeOf/setPrototypeOf.js +6 -6
  83. package/helpers/babel/skipFirstGeneratorNext/skipFirstGeneratorNext.js +8 -8
  84. package/helpers/babel/slicedToArray/slicedToArray.js +10 -10
  85. package/helpers/babel/slicedToArrayLoose/slicedToArrayLoose.js +13 -13
  86. package/helpers/babel/superPropBase/superPropBase.js +10 -10
  87. package/helpers/babel/taggedTemplateLiteral/taggedTemplateLiteral.js +10 -10
  88. package/helpers/babel/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +7 -7
  89. package/helpers/babel/tdz/tdz.js +4 -4
  90. package/helpers/babel/temporalRef/temporalRef.js +6 -6
  91. package/helpers/babel/temporalUndefined/temporalUndefined.js +3 -3
  92. package/helpers/babel/toArray/toArray.js +10 -10
  93. package/helpers/babel/toConsumableArray/toConsumableArray.js +10 -10
  94. package/helpers/babel/toPrimitive/toPrimitive.js +10 -10
  95. package/helpers/babel/toPropertyKey/toPropertyKey.js +6 -6
  96. package/helpers/babel/typeof/typeof.js +14 -14
  97. package/helpers/babel/unsupportedIterableToArray/unsupportedIterableToArray.js +12 -12
  98. package/helpers/babel/wrapAsyncGenerator/wrapAsyncGenerator.js +8 -8
  99. package/helpers/babel/wrapNativeSuper/wrapNativeSuper.js +30 -30
  100. package/helpers/babel/wrapRegExp/wrapRegExp.js +63 -63
  101. package/helpers/babel/writeOnlyError/writeOnlyError.js +4 -4
  102. package/helpers/regenerator-runtime/regenerator-runtime.js +748 -748
  103. package/package.json +5 -3
  104. package/src/buildProject.js +300 -300
  105. package/src/execute.js +184 -184
  106. package/src/internal/browser-launcher/jsenv-browser-system.js +199 -199
  107. package/src/internal/compiling/babel_plugin_import_assertions.js +121 -100
  108. package/src/internal/compiling/babel_plugin_import_metadata.js +22 -0
  109. package/src/internal/compiling/babel_plugin_import_visitor.js +84 -0
  110. package/src/internal/compiling/compile-directory/getOrGenerateCompiledFile.js +268 -265
  111. package/src/internal/compiling/compile-directory/updateMeta.js +154 -150
  112. package/src/internal/compiling/compile-directory/validateCache.js +265 -265
  113. package/src/internal/compiling/compileFile.js +224 -194
  114. package/src/internal/compiling/compileHtml.js +550 -494
  115. package/src/internal/compiling/createCompiledFileService.js +291 -290
  116. package/src/internal/compiling/html_source_file_service.js +403 -379
  117. package/src/internal/compiling/js-compilation-service/jsenvTransform.js +270 -269
  118. package/src/internal/compiling/jsenvCompilerForHtml.js +300 -293
  119. package/src/internal/compiling/startCompileServer.js +1048 -1131
  120. package/src/internal/compiling/transformResultToCompilationResult.js +220 -217
  121. package/src/internal/executing/coverage/babel_plugin_instrument.js +90 -90
  122. package/src/internal/executing/coverage/reportToCoverage.js +187 -187
  123. package/src/internal/executing/executePlan.js +183 -183
  124. package/src/internal/executing/launchAndExecute.js +458 -450
  125. package/src/internal/runtime/createBrowserRuntime/scanBrowserRuntimeFeatures.js +246 -250
  126. package/src/internal/runtime/createNodeRuntime/scanNodeRuntimeFeatures.js +112 -115
  127. package/src/internal/runtime/s.js +727 -727
  128. package/src/internal/toolbar/jsenv-logo.svg +144 -144
  129. package/src/internal/toolbar/toolbar.main.css +196 -188
  130. package/src/internal/toolbar/toolbar.main.js +227 -228
  131. package/src/internal/url_conversion.js +317 -317
  132. package/src/startExploring.js +309 -309
  133. package/src/internal/compiling/babel_plugin_transform_import_specifier.js +0 -86
  134. package/src/internal/toolbar/animation/animation.css +0 -5
  135. package/src/internal/toolbar/variant/variant.css +0 -3
@@ -1,115 +1,112 @@
1
- import { detectNode } from "../detectNode/detectNode.js"
2
- import { resolveGroup } from "../resolveGroup.js"
3
- import { computeCompileIdFromGroupId } from "../computeCompileIdFromGroupId.js"
4
- import { nodeSupportsDynamicImport } from "../node-feature-detect/nodeSupportsDynamicImport.js"
5
- import { nodeSupportsTopLevelAwait } from "../node-feature-detect/nodeSupportsTopLevelAwait.js"
6
- import { fetchSource } from "./fetchSource.js"
7
-
8
- export const scanNodeRuntimeFeatures = async ({
9
- compileServerOrigin,
10
- outDirectoryRelativeUrl,
11
- }) => {
12
- const outDirectoryServerUrl = `${compileServerOrigin}/${outDirectoryRelativeUrl}`
13
- const groupMapServerUrl = String(
14
- new URL("groupMap.json", outDirectoryServerUrl),
15
- )
16
- const envFileServerUrl = String(new URL("env.json", outDirectoryServerUrl))
17
- const [groupMap, envJson] = await Promise.all([
18
- importJson(groupMapServerUrl),
19
- importJson(envFileServerUrl),
20
- ])
21
-
22
- const { importDefaultExtension, customCompilerPatterns } = envJson
23
-
24
- const node = detectNode()
25
- const compileId = computeCompileIdFromGroupId({
26
- groupId: resolveGroup(node, groupMap),
27
- groupMap,
28
- })
29
- const groupInfo = groupMap[compileId]
30
-
31
- const featuresReport = {
32
- dynamicImport: undefined,
33
- topLevelAwait: undefined,
34
- }
35
- await detectSupportedFeatures({
36
- featuresReport,
37
- failFastOnFeatureDetection: true,
38
- })
39
- const pluginRequiredNameArray = pluginRequiredNamesFromGroupInfo(groupInfo, {
40
- featuresReport,
41
- // https://nodejs.org/docs/latest-v15.x/api/cli.html#cli_node_v8_coverage_dir
42
- // instrumentation CAN be handed by process.env.NODE_V8_COVERAGE
43
- // "transform-instrument" becomes non mandatory
44
- coverageHandledFromOutside: process.env.NODE_V8_COVERAGE,
45
- })
46
-
47
- const canAvoidCompilation =
48
- // node native resolution will not auto add extension
49
- !importDefaultExtension &&
50
- customCompilerPatterns.length === 0 &&
51
- pluginRequiredNameArray.length === 0 &&
52
- featuresReport.dynamicImport &&
53
- featuresReport.topLevelAwait
54
-
55
- return {
56
- canAvoidCompilation,
57
- featuresReport,
58
- pluginRequiredNameArray,
59
- compileId,
60
- importDefaultExtension,
61
- node,
62
- }
63
- }
64
-
65
- const detectSupportedFeatures = async ({
66
- featuresReport,
67
- failFastOnFeatureDetection,
68
- }) => {
69
- const dynamicImport = await nodeSupportsDynamicImport()
70
- featuresReport.dynamicImport = dynamicImport
71
- if (failFastOnFeatureDetection && !dynamicImport) {
72
- return
73
- }
74
-
75
- const topLevelAwait = await nodeSupportsTopLevelAwait()
76
- featuresReport.topLevelAwait = topLevelAwait
77
- if (failFastOnFeatureDetection && !topLevelAwait) {
78
- return
79
- }
80
- }
81
-
82
- const importJson = async (url) => {
83
- const response = await fetchSource(url)
84
- const status = response.status
85
- if (status !== 200) {
86
- throw new Error(`unexpected response status for ${url}, got ${status}`)
87
- }
88
- const object = await response.json()
89
- return object
90
- }
91
-
92
- const pluginRequiredNamesFromGroupInfo = (
93
- groupInfo,
94
- { coverageHandledFromOutside },
95
- ) => {
96
- const { pluginRequiredNameArray } = groupInfo
97
- const requiredPluginNames = pluginRequiredNameArray.slice()
98
- const markPluginAsSupported = (name) => {
99
- const index = requiredPluginNames.indexOf(name)
100
- if (index > -1) {
101
- requiredPluginNames.splice(index, 1)
102
- }
103
- }
104
-
105
- if (coverageHandledFromOutside) {
106
- markPluginAsSupported("transform-instrument")
107
- }
108
- // We assume import assertions and constructable stylesheet won't be used
109
- // in code executed in Node.js
110
- // so event they are conceptually required, they are ignored
111
- markPluginAsSupported("transform-import-assertions")
112
- markPluginAsSupported("new-stylesheet-as-jsenv-import")
113
-
114
- return requiredPluginNames
115
- }
1
+ import { detectNode } from "../detectNode/detectNode.js"
2
+ import { resolveGroup } from "../resolveGroup.js"
3
+ import { computeCompileIdFromGroupId } from "../computeCompileIdFromGroupId.js"
4
+ import { nodeSupportsDynamicImport } from "../node-feature-detect/nodeSupportsDynamicImport.js"
5
+ import { nodeSupportsTopLevelAwait } from "../node-feature-detect/nodeSupportsTopLevelAwait.js"
6
+ import { fetchSource } from "./fetchSource.js"
7
+
8
+ export const scanNodeRuntimeFeatures = async ({
9
+ compileServerOrigin,
10
+ outDirectoryRelativeUrl,
11
+ }) => {
12
+ const outDirectoryServerUrl = `${compileServerOrigin}/${outDirectoryRelativeUrl}`
13
+ const {
14
+ importDefaultExtension,
15
+ customCompilerPatterns,
16
+ compileServerGroupMap,
17
+ } = await importJson(
18
+ new URL("__compile_server_meta__.json", outDirectoryServerUrl),
19
+ )
20
+
21
+ const node = detectNode()
22
+ const compileId = computeCompileIdFromGroupId({
23
+ groupId: resolveGroup(node, compileServerGroupMap),
24
+ groupMap: compileServerGroupMap,
25
+ })
26
+ const groupInfo = compileServerGroupMap[compileId]
27
+
28
+ const featuresReport = {
29
+ dynamicImport: undefined,
30
+ topLevelAwait: undefined,
31
+ }
32
+ await detectSupportedFeatures({
33
+ featuresReport,
34
+ failFastOnFeatureDetection: true,
35
+ })
36
+ const pluginRequiredNameArray = pluginRequiredNamesFromGroupInfo(groupInfo, {
37
+ featuresReport,
38
+ // https://nodejs.org/docs/latest-v15.x/api/cli.html#cli_node_v8_coverage_dir
39
+ // instrumentation CAN be handed by process.env.NODE_V8_COVERAGE
40
+ // "transform-instrument" becomes non mandatory
41
+ coverageHandledFromOutside: process.env.NODE_V8_COVERAGE,
42
+ })
43
+
44
+ const canAvoidCompilation =
45
+ // node native resolution will not auto add extension
46
+ !importDefaultExtension &&
47
+ customCompilerPatterns.length === 0 &&
48
+ pluginRequiredNameArray.length === 0 &&
49
+ featuresReport.dynamicImport &&
50
+ featuresReport.topLevelAwait
51
+
52
+ return {
53
+ canAvoidCompilation,
54
+ featuresReport,
55
+ pluginRequiredNameArray,
56
+ compileId,
57
+ importDefaultExtension,
58
+ node,
59
+ }
60
+ }
61
+
62
+ const detectSupportedFeatures = async ({
63
+ featuresReport,
64
+ failFastOnFeatureDetection,
65
+ }) => {
66
+ const dynamicImport = await nodeSupportsDynamicImport()
67
+ featuresReport.dynamicImport = dynamicImport
68
+ if (failFastOnFeatureDetection && !dynamicImport) {
69
+ return
70
+ }
71
+
72
+ const topLevelAwait = await nodeSupportsTopLevelAwait()
73
+ featuresReport.topLevelAwait = topLevelAwait
74
+ if (failFastOnFeatureDetection && !topLevelAwait) {
75
+ return
76
+ }
77
+ }
78
+
79
+ const importJson = async (url) => {
80
+ const response = await fetchSource(url)
81
+ const status = response.status
82
+ if (status !== 200) {
83
+ throw new Error(`unexpected response status for ${url}, got ${status}`)
84
+ }
85
+ const object = await response.json()
86
+ return object
87
+ }
88
+
89
+ const pluginRequiredNamesFromGroupInfo = (
90
+ groupInfo,
91
+ { coverageHandledFromOutside },
92
+ ) => {
93
+ const { pluginRequiredNameArray } = groupInfo
94
+ const requiredPluginNames = pluginRequiredNameArray.slice()
95
+ const markPluginAsSupported = (name) => {
96
+ const index = requiredPluginNames.indexOf(name)
97
+ if (index > -1) {
98
+ requiredPluginNames.splice(index, 1)
99
+ }
100
+ }
101
+
102
+ if (coverageHandledFromOutside) {
103
+ markPluginAsSupported("transform-instrument")
104
+ }
105
+ // We assume import assertions and constructable stylesheet won't be used
106
+ // in code executed in Node.js
107
+ // so event they are conceptually required, they are ignored
108
+ markPluginAsSupported("transform-import-assertions")
109
+ markPluginAsSupported("new-stylesheet-as-jsenv-import")
110
+
111
+ return requiredPluginNames
112
+ }