@jsenv/core 23.6.2 → 23.7.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 (119) 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 -128
  10. package/dist/jsenv_toolbar.js.map +12 -47
  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 +4 -2
  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/createCompiledFileService.js +290 -290
  108. package/src/internal/compiling/startCompileServer.js +1052 -1131
  109. package/src/internal/executing/coverage/babel_plugin_instrument.js +90 -90
  110. package/src/internal/executing/coverage/reportToCoverage.js +187 -187
  111. package/src/internal/executing/executePlan.js +183 -183
  112. package/src/internal/executing/launchAndExecute.js +458 -450
  113. package/src/internal/runtime/createBrowserRuntime/scanBrowserRuntimeFeatures.js +246 -250
  114. package/src/internal/runtime/createNodeRuntime/scanNodeRuntimeFeatures.js +112 -115
  115. package/src/internal/runtime/s.js +727 -727
  116. package/src/internal/toolbar/jsenv-logo.svg +144 -144
  117. package/src/internal/url_conversion.js +317 -317
  118. package/src/launchNode.js +210 -210
  119. package/src/startExploring.js +309 -309
@@ -1,199 +1,199 @@
1
- /* eslint-env browser */
2
-
3
- import { unevalException } from "../unevalException.js"
4
- import { createBrowserRuntime } from "../runtime/createBrowserRuntime/createBrowserRuntime.js"
5
- import { installBrowserErrorStackRemapping } from "../error-stack-remapping/installBrowserErrorStackRemapping.js"
6
- import { fetchUrl } from "../browser-utils/fetch-browser.js"
7
- import { fetchAndEvalUsingFetch } from "../browser-utils/fetchAndEvalUsingFetch.js"
8
- import { memoize } from "../memoize.js"
9
-
10
- const getNavigationStartTime = () => {
11
- try {
12
- return window.performance.timing.navigationStart
13
- } catch (e) {
14
- return Date.now()
15
- }
16
- }
17
-
18
- const navigationStartTime = getNavigationStartTime()
19
-
20
- const readyPromise = new Promise((resolve) => {
21
- if (document.readyState === "complete") {
22
- resolve()
23
- } else {
24
- const loadCallback = () => {
25
- window.removeEventListener("load", loadCallback)
26
- resolve()
27
- }
28
- window.addEventListener("load", loadCallback)
29
- }
30
- })
31
-
32
- const fileExecutionMap = {}
33
-
34
- const executionResultPromise = readyPromise.then(async () => {
35
- const fileExecutionResultMap = {}
36
- const fileExecutionResultPromises = []
37
- let status = "completed"
38
- let exceptionSource = ""
39
- Object.keys(fileExecutionMap).forEach((key) => {
40
- fileExecutionResultMap[key] = null // to get always same order for Object.keys(executionResult)
41
- const fileExecutionResultPromise = fileExecutionMap[key]
42
- fileExecutionResultPromises.push(fileExecutionResultPromise)
43
- fileExecutionResultPromise.then((fileExecutionResult) => {
44
- fileExecutionResultMap[key] = fileExecutionResult
45
- if (fileExecutionResult.status === "errored") {
46
- status = "errored"
47
- exceptionSource = fileExecutionResult.exceptionSource
48
- }
49
- })
50
- })
51
- await Promise.all(fileExecutionResultPromises)
52
-
53
- return {
54
- status,
55
- ...(status === "errored" ? { exceptionSource } : {}),
56
- startTime: navigationStartTime,
57
- endTime: Date.now(),
58
- fileExecutionResultMap,
59
- }
60
- })
61
-
62
- const executeFileUsingDynamicImport = async (
63
- specifier,
64
- identifier = specifier,
65
- ) => {
66
- const { currentScript } = document
67
- const fileExecutionResultPromise = (async () => {
68
- try {
69
- const url = new URL(specifier, document.location.href).href
70
- performance.mark(`jsenv_file_import_start`)
71
- const namespace = await import(url)
72
- performance.measure(`jsenv_file_import`, `jsenv_file_import_start`)
73
- const executionResult = {
74
- status: "completed",
75
- namespace,
76
- }
77
- return executionResult
78
- } catch (e) {
79
- performance.measure(`jsenv_file_import`, `jsenv_file_import_start`)
80
- const executionResult = {
81
- status: "errored",
82
- exceptionSource: unevalException(e),
83
- }
84
- onExecutionError(executionResult, { currentScript })
85
- return executionResult
86
- }
87
- })()
88
- fileExecutionMap[identifier] = fileExecutionResultPromise
89
- return fileExecutionResultPromise
90
- }
91
-
92
- const executeFileUsingSystemJs = (specifier) => {
93
- // si on a déja importer ce fichier ??
94
- // if (specifier in fileExecutionMap) {
95
-
96
- // }
97
-
98
- const { currentScript } = document
99
-
100
- const fileExecutionResultPromise = (async () => {
101
- const browserRuntime = await getBrowserRuntime()
102
- const executionResult = await browserRuntime.executeFile(specifier, {
103
- measurePerformance: true,
104
- collectPerformance: true,
105
- })
106
- if (executionResult.status === "errored") {
107
- onExecutionError(executionResult, { currentScript })
108
- }
109
- return executionResult
110
- })()
111
- fileExecutionMap[specifier] = fileExecutionResultPromise
112
- return fileExecutionResultPromise
113
- }
114
-
115
- const onExecutionError = (executionResult, { currentScript }) => {
116
- // eslint-disable-next-line no-eval
117
- const originalError = window.eval(executionResult.exceptionSource)
118
- if (originalError.code === "NETWORK_FAILURE") {
119
- if (currentScript) {
120
- const errorEvent = new Event("error")
121
- currentScript.dispatchEvent(errorEvent)
122
- }
123
- } else {
124
- const { parsingError } = originalError
125
- const globalErrorEvent = new Event("error")
126
- if (parsingError) {
127
- globalErrorEvent.filename = parsingError.filename
128
- globalErrorEvent.lineno = parsingError.lineNumber
129
- globalErrorEvent.message = parsingError.message
130
- globalErrorEvent.colno = parsingError.columnNumber
131
- } else {
132
- globalErrorEvent.filename = originalError.filename
133
- globalErrorEvent.lineno = originalError.lineno
134
- globalErrorEvent.message = originalError.message
135
- globalErrorEvent.colno = originalError.columnno
136
- }
137
- window.dispatchEvent(globalErrorEvent)
138
- }
139
- }
140
-
141
- const getBrowserRuntime = memoize(async () => {
142
- const compileServerOrigin = document.location.origin
143
- const compileMetaResponse = await fetchUrl(
144
- `${compileServerOrigin}/.jsenv/compile-meta.json`,
145
- )
146
- const compileMeta = await compileMetaResponse.json()
147
- const { outDirectoryRelativeUrl, errorStackRemapping } = compileMeta
148
- const outDirectoryUrl = `${compileServerOrigin}/${outDirectoryRelativeUrl}`
149
- const afterOutDirectory = document.location.href.slice(outDirectoryUrl.length)
150
- const parts = afterOutDirectory.split("/")
151
- const compileId = parts[0]
152
-
153
- const browserRuntime = await createBrowserRuntime({
154
- compileServerOrigin,
155
- outDirectoryRelativeUrl,
156
- compileId,
157
- })
158
-
159
- if (errorStackRemapping && Error.captureStackTrace) {
160
- const { sourcemapMainFileRelativeUrl, sourcemapMappingFileRelativeUrl } =
161
- compileMeta
162
-
163
- await fetchAndEvalUsingFetch(
164
- `${compileServerOrigin}/${sourcemapMainFileRelativeUrl}`,
165
- )
166
- const { SourceMapConsumer } = window.sourceMap
167
- SourceMapConsumer.initialize({
168
- "lib/mappings.wasm": `${compileServerOrigin}/${sourcemapMappingFileRelativeUrl}`,
169
- })
170
- const { getErrorOriginalStackString } = installBrowserErrorStackRemapping({
171
- SourceMapConsumer,
172
- })
173
-
174
- const errorTransform = async (error) => {
175
- // code can throw something else than an error
176
- // in that case return it unchanged
177
- if (!error || !(error instanceof Error)) return error
178
- const originalStack = await getErrorOriginalStackString(error)
179
- error.stack = originalStack
180
- return error
181
- }
182
-
183
- const executeFile = browserRuntime.executeFile
184
- browserRuntime.executeFile = (file, options = {}) => {
185
- return executeFile(file, { errorTransform, ...options })
186
- }
187
- }
188
-
189
- return browserRuntime
190
- })
191
-
192
- const livereloadingCallbacks = {}
193
-
194
- window.__jsenv__ = {
195
- livereloadingCallbacks,
196
- executionResultPromise,
197
- executeFileUsingDynamicImport,
198
- executeFileUsingSystemJs,
199
- }
1
+ /* eslint-env browser */
2
+
3
+ import { unevalException } from "../unevalException.js"
4
+ import { createBrowserRuntime } from "../runtime/createBrowserRuntime/createBrowserRuntime.js"
5
+ import { installBrowserErrorStackRemapping } from "../error-stack-remapping/installBrowserErrorStackRemapping.js"
6
+ import { fetchUrl } from "../browser-utils/fetch-browser.js"
7
+ import { fetchAndEvalUsingFetch } from "../browser-utils/fetchAndEvalUsingFetch.js"
8
+ import { memoize } from "../memoize.js"
9
+
10
+ const getNavigationStartTime = () => {
11
+ try {
12
+ return window.performance.timing.navigationStart
13
+ } catch (e) {
14
+ return Date.now()
15
+ }
16
+ }
17
+
18
+ const navigationStartTime = getNavigationStartTime()
19
+
20
+ const readyPromise = new Promise((resolve) => {
21
+ if (document.readyState === "complete") {
22
+ resolve()
23
+ } else {
24
+ const loadCallback = () => {
25
+ window.removeEventListener("load", loadCallback)
26
+ resolve()
27
+ }
28
+ window.addEventListener("load", loadCallback)
29
+ }
30
+ })
31
+
32
+ const fileExecutionMap = {}
33
+
34
+ const executionResultPromise = readyPromise.then(async () => {
35
+ const fileExecutionResultMap = {}
36
+ const fileExecutionResultPromises = []
37
+ let status = "completed"
38
+ let exceptionSource = ""
39
+ Object.keys(fileExecutionMap).forEach((key) => {
40
+ fileExecutionResultMap[key] = null // to get always same order for Object.keys(executionResult)
41
+ const fileExecutionResultPromise = fileExecutionMap[key]
42
+ fileExecutionResultPromises.push(fileExecutionResultPromise)
43
+ fileExecutionResultPromise.then((fileExecutionResult) => {
44
+ fileExecutionResultMap[key] = fileExecutionResult
45
+ if (fileExecutionResult.status === "errored") {
46
+ status = "errored"
47
+ exceptionSource = fileExecutionResult.exceptionSource
48
+ }
49
+ })
50
+ })
51
+ await Promise.all(fileExecutionResultPromises)
52
+
53
+ return {
54
+ status,
55
+ ...(status === "errored" ? { exceptionSource } : {}),
56
+ startTime: navigationStartTime,
57
+ endTime: Date.now(),
58
+ fileExecutionResultMap,
59
+ }
60
+ })
61
+
62
+ const executeFileUsingDynamicImport = async (
63
+ specifier,
64
+ identifier = specifier,
65
+ ) => {
66
+ const { currentScript } = document
67
+ const fileExecutionResultPromise = (async () => {
68
+ try {
69
+ const url = new URL(specifier, document.location.href).href
70
+ performance.mark(`jsenv_file_import_start`)
71
+ const namespace = await import(url)
72
+ performance.measure(`jsenv_file_import`, `jsenv_file_import_start`)
73
+ const executionResult = {
74
+ status: "completed",
75
+ namespace,
76
+ }
77
+ return executionResult
78
+ } catch (e) {
79
+ performance.measure(`jsenv_file_import`, `jsenv_file_import_start`)
80
+ const executionResult = {
81
+ status: "errored",
82
+ exceptionSource: unevalException(e),
83
+ }
84
+ onExecutionError(executionResult, { currentScript })
85
+ return executionResult
86
+ }
87
+ })()
88
+ fileExecutionMap[identifier] = fileExecutionResultPromise
89
+ return fileExecutionResultPromise
90
+ }
91
+
92
+ const executeFileUsingSystemJs = (specifier) => {
93
+ // si on a déja importer ce fichier ??
94
+ // if (specifier in fileExecutionMap) {
95
+
96
+ // }
97
+
98
+ const { currentScript } = document
99
+
100
+ const fileExecutionResultPromise = (async () => {
101
+ const browserRuntime = await getBrowserRuntime()
102
+ const executionResult = await browserRuntime.executeFile(specifier, {
103
+ measurePerformance: true,
104
+ collectPerformance: true,
105
+ })
106
+ if (executionResult.status === "errored") {
107
+ onExecutionError(executionResult, { currentScript })
108
+ }
109
+ return executionResult
110
+ })()
111
+ fileExecutionMap[specifier] = fileExecutionResultPromise
112
+ return fileExecutionResultPromise
113
+ }
114
+
115
+ const onExecutionError = (executionResult, { currentScript }) => {
116
+ // eslint-disable-next-line no-eval
117
+ const originalError = window.eval(executionResult.exceptionSource)
118
+ if (originalError.code === "NETWORK_FAILURE") {
119
+ if (currentScript) {
120
+ const errorEvent = new Event("error")
121
+ currentScript.dispatchEvent(errorEvent)
122
+ }
123
+ } else {
124
+ const { parsingError } = originalError
125
+ const globalErrorEvent = new Event("error")
126
+ if (parsingError) {
127
+ globalErrorEvent.filename = parsingError.filename
128
+ globalErrorEvent.lineno = parsingError.lineNumber
129
+ globalErrorEvent.message = parsingError.message
130
+ globalErrorEvent.colno = parsingError.columnNumber
131
+ } else {
132
+ globalErrorEvent.filename = originalError.filename
133
+ globalErrorEvent.lineno = originalError.lineno
134
+ globalErrorEvent.message = originalError.message
135
+ globalErrorEvent.colno = originalError.columnno
136
+ }
137
+ window.dispatchEvent(globalErrorEvent)
138
+ }
139
+ }
140
+
141
+ const getBrowserRuntime = memoize(async () => {
142
+ const compileServerOrigin = document.location.origin
143
+ const compileMetaResponse = await fetchUrl(
144
+ `${compileServerOrigin}/.jsenv/__compile_server_meta__.json`,
145
+ )
146
+ const compileMeta = await compileMetaResponse.json()
147
+ const { outDirectoryRelativeUrl, errorStackRemapping } = compileMeta
148
+ const outDirectoryUrl = `${compileServerOrigin}/${outDirectoryRelativeUrl}`
149
+ const afterOutDirectory = document.location.href.slice(outDirectoryUrl.length)
150
+ const parts = afterOutDirectory.split("/")
151
+ const compileId = parts[0]
152
+
153
+ const browserRuntime = await createBrowserRuntime({
154
+ compileServerOrigin,
155
+ outDirectoryRelativeUrl,
156
+ compileId,
157
+ })
158
+
159
+ if (errorStackRemapping && Error.captureStackTrace) {
160
+ const { sourcemapMainFileRelativeUrl, sourcemapMappingFileRelativeUrl } =
161
+ compileMeta
162
+
163
+ await fetchAndEvalUsingFetch(
164
+ `${compileServerOrigin}/${sourcemapMainFileRelativeUrl}`,
165
+ )
166
+ const { SourceMapConsumer } = window.sourceMap
167
+ SourceMapConsumer.initialize({
168
+ "lib/mappings.wasm": `${compileServerOrigin}/${sourcemapMappingFileRelativeUrl}`,
169
+ })
170
+ const { getErrorOriginalStackString } = installBrowserErrorStackRemapping({
171
+ SourceMapConsumer,
172
+ })
173
+
174
+ const errorTransform = async (error) => {
175
+ // code can throw something else than an error
176
+ // in that case return it unchanged
177
+ if (!error || !(error instanceof Error)) return error
178
+ const originalStack = await getErrorOriginalStackString(error)
179
+ error.stack = originalStack
180
+ return error
181
+ }
182
+
183
+ const executeFile = browserRuntime.executeFile
184
+ browserRuntime.executeFile = (file, options = {}) => {
185
+ return executeFile(file, { errorTransform, ...options })
186
+ }
187
+ }
188
+
189
+ return browserRuntime
190
+ })
191
+
192
+ const livereloadingCallbacks = {}
193
+
194
+ window.__jsenv__ = {
195
+ livereloadingCallbacks,
196
+ executionResultPromise,
197
+ executeFileUsingDynamicImport,
198
+ executeFileUsingSystemJs,
199
+ }