@jsenv/core 27.0.0-alpha.64 → 27.0.0-alpha.65
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.
- package/dist/html/explorer.html +557 -0
- package/dist/js/controllable_file.mjs +227 -0
- package/dist/{event_source_client.js → js/event_source_client.js} +19 -244
- package/dist/js/global_this.js +32 -0
- package/dist/js/html_supervisor_installer.js +522 -0
- package/dist/js/html_supervisor_setup.js +79 -0
- package/dist/{import_meta_hot.js → js/import_meta_hot.js} +1 -3
- package/dist/js/inline_content.js +8 -0
- package/dist/js/new_stylesheet.js +409 -0
- package/dist/js/regenerator_runtime.js +721 -0
- package/dist/js/s.js +429 -0
- package/dist/main.js +13362 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/AsyncGenerator/AsyncGenerator.js +95 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/AwaitValue/AwaitValue.js +3 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/applyDecoratorDescriptor/applyDecoratorDescriptor.js +29 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/arrayLikeToArray/arrayLikeToArray.js +9 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/arrayWithHoles/arrayWithHoles.js +4 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/arrayWithoutHoles/arrayWithoutHoles.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/assertThisInitialized/assertThisInitialized.js +8 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/asyncGeneratorDelegate/asyncGeneratorDelegate.js +52 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/asyncIterator/asyncIterator.js +78 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/asyncToGenerator/asyncToGenerator.js +39 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/awaitAsyncGenerator/awaitAsyncGenerator.js +4 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +24 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classApplyDescriptorGet/classApplyDescriptorGet.js +7 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classApplyDescriptorSet/classApplyDescriptorSet.js +14 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classCallCheck/classCallCheck.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +6 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classExtractFieldDescriptor/classExtractFieldDescriptor.js +8 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classNameTDZError/classNameTDZError.js +4 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +6 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classPrivateFieldGet/classPrivateFieldGet.js +6 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +7 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classPrivateFieldSet/classPrivateFieldSet.js +7 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classPrivateMethodGet/classPrivateMethodGet.js +7 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classPrivateMethodSet/classPrivateMethodSet.js +3 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +8 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +9 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +3 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/construct/construct.js +15 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/createClass/createClass.js +18 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/createForOfIteratorHelper/createForOfIteratorHelper.js +63 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +22 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/createRawReactElement/createRawReactElement.js +50 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/createSuper/createSuper.js +22 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/decorate/decorate.js +622 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/defaults/defaults.js +14 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/defineEnumerableProperties/defineEnumerableProperties.js +26 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/defineProperty/defineProperty.js +19 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/extends/extends.js +16 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/get/get.js +21 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/getPrototypeOf/getPrototypeOf.js +2 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/inherits/inherits.js +21 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/inheritsLoose/inheritsLoose.js +6 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/initializerDefineProperty/initializerDefineProperty.js +10 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/initializerWarningHelper/initializerWarningHelper.js +3 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/instanceof/instanceof.js +7 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/interopRequireDefault/interopRequireDefault.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/interopRequireWildcard/interopRequireWildcard.js +49 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/isNativeFunction/isNativeFunction.js +4 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/isNativeReflectConstruct/isNativeReflectConstruct.js +21 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/iterableToArray/iterableToArray.js +3 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/iterableToArrayLimit/iterableToArrayLimit.js +38 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +13 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/jsx/jsx.js +49 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/maybeArrayLike/maybeArrayLike.js +10 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/newArrowCheck/newArrowCheck.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/nonIterableRest/nonIterableRest.js +3 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/nonIterableSpread/nonIterableSpread.js +3 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/objectDestructuringEmpty/objectDestructuringEmpty.js +3 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/objectSpread/objectSpread.js +22 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/objectSpread2/objectSpread2.js +41 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/objectWithoutProperties/objectWithoutProperties.js +20 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +15 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/possibleConstructorReturn/possibleConstructorReturn.js +10 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/readOnlyError/readOnlyError.js +4 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/readme.md +8 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/set/set.js +51 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/setPrototypeOf/setPrototypeOf.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/skipFirstGeneratorNext/skipFirstGeneratorNext.js +8 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/slicedToArray/slicedToArray.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/slicedToArrayLoose/slicedToArrayLoose.js +7 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/superPropBase/superPropBase.js +10 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/taggedTemplateLiteral/taggedTemplateLiteral.js +11 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +8 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/tdz/tdz.js +4 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/temporalRef/temporalRef.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/temporalUndefined/temporalUndefined.js +3 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/toArray/toArray.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/toConsumableArray/toConsumableArray.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/toPrimitive/toPrimitive.js +14 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/toPropertyKey/toPropertyKey.js +5 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/typeof/typeof.js +7 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/unsupportedIterableToArray/unsupportedIterableToArray.js +10 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/wrapAsyncGenerator/wrapAsyncGenerator.js +7 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/wrapNativeSuper/wrapNativeSuper.js +35 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/wrapRegExp/wrapRegExp.js +67 -0
- package/dist/node_modules/@jsenv/babel-plugins/src/babel_helpers/writeOnlyError/writeOnlyError.js +4 -0
- package/dist/other/jsenv.png +0 -0
- package/package.json +15 -11
- package/src/build/build.js +152 -67
- package/src/build/build_urls_generator.js +18 -2
- package/src/build/inject_service_worker_urls.js +1 -1
- package/src/build/resync_ressource_hints.js +56 -9
- package/src/dev/plugins/explorer/client/explorer.html +1 -1
- package/src/dev/start_dev_server.js +17 -3
- package/src/execute/execute.js +3 -0
- package/src/omega/errors.js +10 -7
- package/src/omega/kitchen.js +209 -216
- package/src/omega/url_graph/url_graph_report.js +2 -2
- package/src/omega/url_graph.js +1 -1
- package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_client.js +5 -10
- package/src/plugins/autoreload/jsenv_plugin_autoreload.js +1 -3
- package/src/plugins/bundling/js_module/bundle_js_module.js +66 -24
- package/src/plugins/file_urls/jsenv_plugin_file_urls.js +171 -53
- package/src/plugins/html_supervisor/jsenv_plugin_html_supervisor.js +9 -13
- package/src/plugins/http_urls/jsenv_plugin_http_urls.js +6 -6
- package/src/plugins/import_meta_hot/jsenv_plugin_import_meta_hot.js +5 -10
- package/src/plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +12 -2
- package/src/plugins/node_runtime/jsenv_plugin_node_runtime.js +12 -0
- package/src/plugins/plugin_controller.js +17 -3
- package/src/plugins/plugins.js +16 -19
- package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic.js +7 -13
- package/src/plugins/transpilation/as_js_classic/{jsenv_plugin_script_type_module_as_classic.js → jsenv_plugin_as_js_classic_html.js} +0 -0
- package/src/plugins/transpilation/jsenv_plugin_transpilation.js +1 -2
- package/src/plugins/url_analysis/html/html_urls.js +3 -0
- package/src/plugins/url_analysis/js/js_urls.js +2 -1
- package/src/plugins/url_analysis/jsenv_plugin_url_analysis.js +87 -1
- package/src/plugins/url_analysis/webmanifest/webmanifest_urls.js +3 -0
- package/src/plugins/url_resolution/jsenv_plugin_url_resolution.js +0 -3
- package/src/test/execute_plan.js +2 -0
- package/dist/event_source_client.js.map +0 -188
- package/dist/html_supervisor_installer.js +0 -1236
- package/dist/html_supervisor_installer.js.map +0 -337
- package/dist/html_supervisor_setup.js +0 -95
- package/dist/html_supervisor_setup.js.map +0 -57
- package/dist/import_meta_hot.js.map +0 -42
- package/dist/s.js +0 -626
- package/dist/s.js.map +0 -207
- package/src/jsenv_root_directory_url.js +0 -1
- package/src/omega/compat/default_runtime_compat.js +0 -11
- package/src/plugins/filesystem_magic/jsenv_plugin_filesystem_magic.js +0 -61
- package/src/plugins/transpilation/babel/new_stylesheet/client/.eslintrc.cjs +0 -24
|
@@ -14,7 +14,7 @@ import { createKitchen } from "@jsenv/core/src/omega/kitchen.js"
|
|
|
14
14
|
import { startOmegaServer } from "@jsenv/core/src/omega/omega_server.js"
|
|
15
15
|
|
|
16
16
|
import { jsenvPluginExplorer } from "./plugins/explorer/jsenv_plugin_explorer.js"
|
|
17
|
-
import { jsenvPluginToolbar } from "./plugins/toolbar/jsenv_plugin_toolbar.js"
|
|
17
|
+
// import { jsenvPluginToolbar } from "./plugins/toolbar/jsenv_plugin_toolbar.js"
|
|
18
18
|
|
|
19
19
|
export const startDevServer = async ({
|
|
20
20
|
signal = new AbortController().signal,
|
|
@@ -53,7 +53,18 @@ export const startDevServer = async ({
|
|
|
53
53
|
clientAutoreload = true,
|
|
54
54
|
|
|
55
55
|
sourcemaps = "inline",
|
|
56
|
+
// default runtimeCompat assume dev server will be request by recent browsers
|
|
57
|
+
// Used by "jsenv_plugin_node_runtime.js" to deactivate itself
|
|
58
|
+
// If dev server can be requested by Node.js to exec files
|
|
59
|
+
// we would add "node" to the potential runtimes. For now it's out of the scope of the dev server
|
|
60
|
+
// and "jsenv_plugin_node_runtime.js" applies only during build made for node.js
|
|
61
|
+
runtimeCompat = {
|
|
62
|
+
chrome: "100",
|
|
63
|
+
firefox: "100",
|
|
64
|
+
safari: "15.5",
|
|
65
|
+
},
|
|
56
66
|
plugins = [],
|
|
67
|
+
urlAnalysis = {},
|
|
57
68
|
htmlSupervisor = true,
|
|
58
69
|
injectedGlobals,
|
|
59
70
|
nodeEsmResolution,
|
|
@@ -68,7 +79,7 @@ export const startDevServer = async ({
|
|
|
68
79
|
"./test/**/*.test.html": true,
|
|
69
80
|
},
|
|
70
81
|
},
|
|
71
|
-
toolbar = false,
|
|
82
|
+
// toolbar = false,
|
|
72
83
|
writeGeneratedFiles = true,
|
|
73
84
|
}) => {
|
|
74
85
|
const logger = createLogger({ logLevel })
|
|
@@ -164,6 +175,7 @@ export const startDevServer = async ({
|
|
|
164
175
|
rootDirectoryUrl,
|
|
165
176
|
urlGraph,
|
|
166
177
|
scenario: "dev",
|
|
178
|
+
runtimeCompat,
|
|
167
179
|
sourcemaps,
|
|
168
180
|
writeGeneratedFiles,
|
|
169
181
|
plugins: [
|
|
@@ -172,7 +184,9 @@ export const startDevServer = async ({
|
|
|
172
184
|
rootDirectoryUrl,
|
|
173
185
|
urlGraph,
|
|
174
186
|
scenario: "dev",
|
|
187
|
+
runtimeCompat,
|
|
175
188
|
|
|
189
|
+
urlAnalysis,
|
|
176
190
|
htmlSupervisor,
|
|
177
191
|
injectedGlobals,
|
|
178
192
|
nodeEsmResolution,
|
|
@@ -185,7 +199,7 @@ export const startDevServer = async ({
|
|
|
185
199
|
jsenvPluginExplorer({
|
|
186
200
|
groups: explorerGroups,
|
|
187
201
|
}),
|
|
188
|
-
...(toolbar ? [jsenvPluginToolbar(toolbar)] : []),
|
|
202
|
+
// ...(toolbar ? [jsenvPluginToolbar(toolbar)] : []),
|
|
189
203
|
],
|
|
190
204
|
})
|
|
191
205
|
const server = await startOmegaServer({
|
package/src/execute/execute.js
CHANGED
|
@@ -68,6 +68,7 @@ export const execute = async ({
|
|
|
68
68
|
}
|
|
69
69
|
if (runtime.needsServer) {
|
|
70
70
|
const urlGraph = createUrlGraph()
|
|
71
|
+
const runtimeCompat = { [runtime.name]: runtime.version }
|
|
71
72
|
const kitchen = createKitchen({
|
|
72
73
|
signal,
|
|
73
74
|
logger,
|
|
@@ -75,6 +76,7 @@ export const execute = async ({
|
|
|
75
76
|
urlGraph,
|
|
76
77
|
scenario,
|
|
77
78
|
sourcemaps,
|
|
79
|
+
runtimeCompat,
|
|
78
80
|
writeGeneratedFiles,
|
|
79
81
|
plugins: [
|
|
80
82
|
...plugins,
|
|
@@ -82,6 +84,7 @@ export const execute = async ({
|
|
|
82
84
|
rootDirectoryUrl,
|
|
83
85
|
urlGraph,
|
|
84
86
|
scenario,
|
|
87
|
+
runtimeCompat,
|
|
85
88
|
|
|
86
89
|
htmlSupervisor,
|
|
87
90
|
injectedGlobals,
|
package/src/omega/errors.js
CHANGED
|
@@ -97,13 +97,16 @@ export const createTransformUrlContentError = ({
|
|
|
97
97
|
...details
|
|
98
98
|
}) => {
|
|
99
99
|
const transformError = new Error(
|
|
100
|
-
createDetailedMessage(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
100
|
+
createDetailedMessage(
|
|
101
|
+
`Failed to transform url content of "${urlInfo.type}"`,
|
|
102
|
+
{
|
|
103
|
+
reason,
|
|
104
|
+
...details,
|
|
105
|
+
"url": urlInfo.url,
|
|
106
|
+
"url reference trace": reference.trace,
|
|
107
|
+
...detailsFromPluginController(pluginController),
|
|
108
|
+
},
|
|
109
|
+
),
|
|
107
110
|
)
|
|
108
111
|
transformError.name = "TRANSFORM_URL_CONTENT_ERROR"
|
|
109
112
|
transformError.code = code
|
package/src/omega/kitchen.js
CHANGED
|
@@ -15,7 +15,6 @@ import { createPluginController } from "../plugins/plugin_controller.js"
|
|
|
15
15
|
import { urlSpecifierEncoding } from "./url_specifier_encoding.js"
|
|
16
16
|
import { createUrlInfoTransformer } from "./url_graph/url_info_transformations.js"
|
|
17
17
|
import { RUNTIME_COMPAT } from "./compat/runtime_compat.js"
|
|
18
|
-
import { defaultRuntimeCompat } from "./compat/default_runtime_compat.js"
|
|
19
18
|
import {
|
|
20
19
|
createResolveUrlError,
|
|
21
20
|
createFetchUrlContentError,
|
|
@@ -46,7 +45,7 @@ export const createKitchen = ({
|
|
|
46
45
|
build: true,
|
|
47
46
|
}[scenario],
|
|
48
47
|
sourcemapsRelativeSources,
|
|
49
|
-
runtimeCompat
|
|
48
|
+
runtimeCompat,
|
|
50
49
|
writeGeneratedFiles,
|
|
51
50
|
}) => {
|
|
52
51
|
const pluginController = createPluginController({
|
|
@@ -86,7 +85,7 @@ export const createKitchen = ({
|
|
|
86
85
|
specifierColumn,
|
|
87
86
|
baseUrl,
|
|
88
87
|
isOriginalPosition,
|
|
89
|
-
|
|
88
|
+
shouldHandle,
|
|
90
89
|
isInline = false,
|
|
91
90
|
injected = false,
|
|
92
91
|
isRessourceHint = false,
|
|
@@ -122,7 +121,7 @@ export const createKitchen = ({
|
|
|
122
121
|
specifierColumn,
|
|
123
122
|
baseUrl,
|
|
124
123
|
isOriginalPosition,
|
|
125
|
-
|
|
124
|
+
shouldHandle,
|
|
126
125
|
isInline,
|
|
127
126
|
injected,
|
|
128
127
|
isRessourceHint,
|
|
@@ -152,11 +151,6 @@ export const createKitchen = ({
|
|
|
152
151
|
}
|
|
153
152
|
resolvedUrl = normalizeUrl(resolvedUrl)
|
|
154
153
|
reference.url = resolvedUrl
|
|
155
|
-
if (reference.external) {
|
|
156
|
-
reference.generatedUrl = resolvedUrl
|
|
157
|
-
reference.generatedSpecifier = reference.specifier
|
|
158
|
-
return urlGraph.reuseOrCreateUrlInfo(reference.url)
|
|
159
|
-
}
|
|
160
154
|
pluginController.callHooks(
|
|
161
155
|
"redirectUrl",
|
|
162
156
|
reference,
|
|
@@ -259,10 +253,6 @@ export const createKitchen = ({
|
|
|
259
253
|
})
|
|
260
254
|
|
|
261
255
|
const fetchUrlContent = async (urlInfo, { reference, context }) => {
|
|
262
|
-
if (reference.external) {
|
|
263
|
-
urlInfo.external = true
|
|
264
|
-
return
|
|
265
|
-
}
|
|
266
256
|
try {
|
|
267
257
|
const fetchUrlContentReturnValue =
|
|
268
258
|
await pluginController.callAsyncHooksUntil(
|
|
@@ -273,18 +263,13 @@ export const createKitchen = ({
|
|
|
273
263
|
if (!fetchUrlContentReturnValue) {
|
|
274
264
|
logger.warn(
|
|
275
265
|
createDetailedMessage(
|
|
276
|
-
`no plugin has handled
|
|
266
|
+
`no plugin has handled url during "fetchUrlContent" hook -> url will be ignored`,
|
|
277
267
|
{
|
|
278
268
|
"url": urlInfo.url,
|
|
279
269
|
"url reference trace": reference.trace,
|
|
280
270
|
},
|
|
281
271
|
),
|
|
282
272
|
)
|
|
283
|
-
urlInfo.external = true
|
|
284
|
-
return
|
|
285
|
-
}
|
|
286
|
-
if (fetchUrlContentReturnValue.external) {
|
|
287
|
-
urlInfo.external = true
|
|
288
273
|
return
|
|
289
274
|
}
|
|
290
275
|
const {
|
|
@@ -367,206 +352,207 @@ export const createKitchen = ({
|
|
|
367
352
|
return fetchUrlContent(urlInfo, { reference, context })
|
|
368
353
|
}
|
|
369
354
|
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
return
|
|
374
|
-
}
|
|
355
|
+
if (urlInfo.shouldHandle) {
|
|
356
|
+
// "fetchUrlContent" hook
|
|
357
|
+
await fetchUrlContent(urlInfo, { reference: context.reference, context })
|
|
375
358
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
})
|
|
383
|
-
references.push(reference)
|
|
384
|
-
const referencedUrlInfo = resolveReference(reference)
|
|
385
|
-
return [reference, referencedUrlInfo]
|
|
386
|
-
}
|
|
387
|
-
const referenceUtils = {
|
|
388
|
-
readGeneratedSpecifier: async (reference) => {
|
|
389
|
-
// "formatReferencedUrl" can be async BUT this is an exception
|
|
390
|
-
// for most cases it will be sync. We want to favor the sync signature to keep things simpler
|
|
391
|
-
// The only case where it needs to be async is when
|
|
392
|
-
// the specifier is a `data:*` url
|
|
393
|
-
// in this case we'll wait for the promise returned by
|
|
394
|
-
// "formatReferencedUrl"
|
|
395
|
-
if (reference.generatedSpecifier.then) {
|
|
396
|
-
return reference.generatedSpecifier.then((value) => {
|
|
397
|
-
reference.generatedSpecifier = value
|
|
398
|
-
return value
|
|
399
|
-
})
|
|
400
|
-
}
|
|
401
|
-
return reference.generatedSpecifier
|
|
402
|
-
},
|
|
403
|
-
found: ({ specifierLine, specifierColumn, ...rest }) => {
|
|
404
|
-
const trace = stringifyUrlSite(
|
|
405
|
-
adjustUrlSite(urlInfo, {
|
|
406
|
-
urlGraph,
|
|
407
|
-
url: urlInfo.url,
|
|
408
|
-
line: specifierLine,
|
|
409
|
-
column: specifierColumn,
|
|
410
|
-
}),
|
|
411
|
-
)
|
|
412
|
-
// console.log(trace)
|
|
413
|
-
return addReference({
|
|
414
|
-
trace,
|
|
415
|
-
specifierLine,
|
|
416
|
-
specifierColumn,
|
|
417
|
-
...rest,
|
|
418
|
-
})
|
|
419
|
-
},
|
|
420
|
-
foundInline: ({ isOriginalPosition, line, column, ...rest }) => {
|
|
421
|
-
const parentUrl = isOriginalPosition
|
|
422
|
-
? urlInfo.url
|
|
423
|
-
: urlInfo.generatedUrl
|
|
424
|
-
const parentContent = isOriginalPosition
|
|
425
|
-
? urlInfo.originalContent
|
|
426
|
-
: urlInfo.content
|
|
427
|
-
return addReference({
|
|
428
|
-
trace: stringifyUrlSite({
|
|
429
|
-
url: parentUrl,
|
|
430
|
-
content: parentContent,
|
|
431
|
-
line,
|
|
432
|
-
column,
|
|
433
|
-
}),
|
|
434
|
-
isOriginalPosition,
|
|
435
|
-
line,
|
|
436
|
-
column,
|
|
437
|
-
isInline: true,
|
|
438
|
-
...rest,
|
|
359
|
+
// parsing
|
|
360
|
+
const references = []
|
|
361
|
+
const addReference = (props) => {
|
|
362
|
+
const reference = createReference({
|
|
363
|
+
parentUrl: urlInfo.url,
|
|
364
|
+
...props,
|
|
439
365
|
})
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
) {
|
|
460
|
-
context.urlGraph.deleteUrlInfo(currentReference.url)
|
|
461
|
-
}
|
|
462
|
-
return [nextReference, newUrlInfo]
|
|
463
|
-
},
|
|
464
|
-
becomesInline: (
|
|
465
|
-
reference,
|
|
466
|
-
{
|
|
467
|
-
isOriginalPosition,
|
|
468
|
-
specifier,
|
|
469
|
-
specifierLine,
|
|
470
|
-
specifierColumn,
|
|
471
|
-
contentType,
|
|
472
|
-
content,
|
|
366
|
+
references.push(reference)
|
|
367
|
+
const referencedUrlInfo = resolveReference(reference)
|
|
368
|
+
return [reference, referencedUrlInfo]
|
|
369
|
+
}
|
|
370
|
+
const referenceUtils = {
|
|
371
|
+
readGeneratedSpecifier: async (reference) => {
|
|
372
|
+
// "formatReferencedUrl" can be async BUT this is an exception
|
|
373
|
+
// for most cases it will be sync. We want to favor the sync signature to keep things simpler
|
|
374
|
+
// The only case where it needs to be async is when
|
|
375
|
+
// the specifier is a `data:*` url
|
|
376
|
+
// in this case we'll wait for the promise returned by
|
|
377
|
+
// "formatReferencedUrl"
|
|
378
|
+
if (reference.generatedSpecifier.then) {
|
|
379
|
+
return reference.generatedSpecifier.then((value) => {
|
|
380
|
+
reference.generatedSpecifier = value
|
|
381
|
+
return value
|
|
382
|
+
})
|
|
383
|
+
}
|
|
384
|
+
return reference.generatedSpecifier
|
|
473
385
|
},
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
386
|
+
found: ({ trace, ...rest }) => {
|
|
387
|
+
if (trace === undefined) {
|
|
388
|
+
trace = stringifyUrlSite(
|
|
389
|
+
adjustUrlSite(urlInfo, {
|
|
390
|
+
urlGraph,
|
|
391
|
+
url: urlInfo.url,
|
|
392
|
+
line: rest.specifierLine,
|
|
393
|
+
column: rest.specifierColumn,
|
|
394
|
+
}),
|
|
395
|
+
)
|
|
396
|
+
}
|
|
397
|
+
// console.log(trace)
|
|
398
|
+
return addReference({
|
|
399
|
+
trace,
|
|
400
|
+
...rest,
|
|
401
|
+
})
|
|
402
|
+
},
|
|
403
|
+
foundInline: ({ isOriginalPosition, line, column, ...rest }) => {
|
|
404
|
+
const parentUrl = isOriginalPosition
|
|
405
|
+
? urlInfo.url
|
|
406
|
+
: urlInfo.generatedUrl
|
|
407
|
+
const parentContent = isOriginalPosition
|
|
408
|
+
? urlInfo.originalContent
|
|
409
|
+
: urlInfo.content
|
|
410
|
+
return addReference({
|
|
411
|
+
trace: stringifyUrlSite({
|
|
412
|
+
url: parentUrl,
|
|
413
|
+
content: parentContent,
|
|
414
|
+
line,
|
|
415
|
+
column,
|
|
416
|
+
}),
|
|
417
|
+
isOriginalPosition,
|
|
502
418
|
line,
|
|
503
419
|
column,
|
|
420
|
+
isInline: true,
|
|
421
|
+
...rest,
|
|
504
422
|
})
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
423
|
+
},
|
|
424
|
+
update: (currentReference, newReferenceParams) => {
|
|
425
|
+
const index = references.indexOf(currentReference)
|
|
426
|
+
if (index === -1) {
|
|
427
|
+
throw new Error(`reference do not exists`)
|
|
428
|
+
}
|
|
429
|
+
const previousReference = currentReference
|
|
430
|
+
const nextReference = createReference({
|
|
431
|
+
...previousReference,
|
|
432
|
+
...newReferenceParams,
|
|
433
|
+
})
|
|
434
|
+
references[index] = nextReference
|
|
435
|
+
mutateReference(previousReference, nextReference)
|
|
436
|
+
const newUrlInfo = resolveReference(nextReference)
|
|
437
|
+
const currentUrlInfo = context.urlGraph.getUrlInfo(
|
|
438
|
+
currentReference.url,
|
|
519
439
|
)
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
440
|
+
if (
|
|
441
|
+
currentUrlInfo &&
|
|
442
|
+
currentUrlInfo !== newUrlInfo &&
|
|
443
|
+
currentUrlInfo.dependents.size === 0
|
|
444
|
+
) {
|
|
445
|
+
context.urlGraph.deleteUrlInfo(currentReference.url)
|
|
446
|
+
}
|
|
447
|
+
return [nextReference, newUrlInfo]
|
|
448
|
+
},
|
|
449
|
+
becomesInline: (
|
|
450
|
+
reference,
|
|
451
|
+
{
|
|
452
|
+
isOriginalPosition,
|
|
453
|
+
specifier,
|
|
454
|
+
specifierLine,
|
|
455
|
+
specifierColumn,
|
|
456
|
+
contentType,
|
|
457
|
+
content,
|
|
458
|
+
},
|
|
459
|
+
) => {
|
|
460
|
+
const parentUrl = isOriginalPosition
|
|
461
|
+
? urlInfo.url
|
|
462
|
+
: urlInfo.generatedUrl
|
|
463
|
+
const parentContent = isOriginalPosition
|
|
464
|
+
? urlInfo.originalContent
|
|
465
|
+
: urlInfo.content
|
|
466
|
+
return referenceUtils.update(reference, {
|
|
467
|
+
trace: stringifyUrlSite({
|
|
468
|
+
url: parentUrl,
|
|
469
|
+
content: parentContent,
|
|
470
|
+
line: specifierLine,
|
|
471
|
+
column: specifierColumn,
|
|
472
|
+
}),
|
|
473
|
+
isOriginalPosition,
|
|
474
|
+
isInline: true,
|
|
475
|
+
specifier,
|
|
476
|
+
specifierLine,
|
|
477
|
+
specifierColumn,
|
|
478
|
+
contentType,
|
|
479
|
+
content,
|
|
480
|
+
})
|
|
481
|
+
},
|
|
482
|
+
inject: ({ trace, ...rest }) => {
|
|
483
|
+
if (trace === undefined) {
|
|
484
|
+
const { url, line, column } = getCallerPosition()
|
|
485
|
+
trace = stringifyUrlSite({
|
|
486
|
+
url,
|
|
487
|
+
line,
|
|
488
|
+
column,
|
|
489
|
+
})
|
|
490
|
+
}
|
|
491
|
+
return addReference({
|
|
492
|
+
trace,
|
|
493
|
+
injected: true,
|
|
494
|
+
...rest,
|
|
495
|
+
})
|
|
496
|
+
},
|
|
497
|
+
findByGeneratedSpecifier: (generatedSpecifier) => {
|
|
498
|
+
const reference = references.find(
|
|
499
|
+
(ref) => ref.generatedSpecifier === generatedSpecifier,
|
|
537
500
|
)
|
|
501
|
+
if (!reference) {
|
|
502
|
+
throw new Error(
|
|
503
|
+
`No reference found using the following generatedSpecifier: "${generatedSpecifier}"`,
|
|
504
|
+
)
|
|
505
|
+
}
|
|
506
|
+
return reference
|
|
538
507
|
},
|
|
539
|
-
|
|
540
|
-
} catch (error) {
|
|
541
|
-
throw createTransformUrlContentError({
|
|
542
|
-
pluginController,
|
|
543
|
-
reference: context.reference,
|
|
544
|
-
urlInfo,
|
|
545
|
-
error,
|
|
546
|
-
})
|
|
547
|
-
}
|
|
548
|
-
// after "transform" all references from originalContent
|
|
549
|
-
// and the one injected by plugin are known
|
|
550
|
-
urlGraph.updateReferences(urlInfo, references)
|
|
508
|
+
}
|
|
551
509
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
510
|
+
// "transform" hook
|
|
511
|
+
urlInfo.references = references
|
|
512
|
+
context.referenceUtils = referenceUtils
|
|
513
|
+
try {
|
|
514
|
+
await pluginController.callAsyncHooks(
|
|
515
|
+
"transformUrlContent",
|
|
516
|
+
urlInfo,
|
|
517
|
+
context,
|
|
518
|
+
async (transformReturnValue) => {
|
|
519
|
+
await urlInfoTransformer.applyIntermediateTransformations(
|
|
520
|
+
urlInfo,
|
|
521
|
+
transformReturnValue,
|
|
522
|
+
)
|
|
523
|
+
},
|
|
524
|
+
)
|
|
525
|
+
} catch (error) {
|
|
526
|
+
throw createTransformUrlContentError({
|
|
527
|
+
pluginController,
|
|
528
|
+
reference: context.reference,
|
|
529
|
+
urlInfo,
|
|
530
|
+
error,
|
|
531
|
+
})
|
|
532
|
+
}
|
|
533
|
+
// after "transform" all references from originalContent
|
|
534
|
+
// and the one injected by plugin are known
|
|
535
|
+
urlGraph.updateReferences(urlInfo, references)
|
|
536
|
+
|
|
537
|
+
// "finalize" hook
|
|
538
|
+
try {
|
|
539
|
+
const finalizeReturnValue = await pluginController.callAsyncHooksUntil(
|
|
540
|
+
"finalizeUrlContent",
|
|
541
|
+
urlInfo,
|
|
542
|
+
context,
|
|
543
|
+
)
|
|
544
|
+
await urlInfoTransformer.applyFinalTransformations(
|
|
545
|
+
urlInfo,
|
|
546
|
+
finalizeReturnValue,
|
|
547
|
+
)
|
|
548
|
+
} catch (error) {
|
|
549
|
+
throw createFinalizeUrlContentError({
|
|
550
|
+
pluginController,
|
|
551
|
+
reference: context.reference,
|
|
552
|
+
urlInfo,
|
|
553
|
+
error,
|
|
554
|
+
})
|
|
555
|
+
}
|
|
570
556
|
}
|
|
571
557
|
|
|
572
558
|
// "cooked" hook
|
|
@@ -602,13 +588,17 @@ export const createKitchen = ({
|
|
|
602
588
|
} finally {
|
|
603
589
|
const { generatedUrl } = urlInfo
|
|
604
590
|
if (generatedUrl && generatedUrl.startsWith("file:")) {
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
writeFileSync(
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
591
|
+
if (urlInfo.type === "directory") {
|
|
592
|
+
// no need to write the directory
|
|
593
|
+
} else {
|
|
594
|
+
writeFileSync(new URL(generatedUrl), urlInfo.content)
|
|
595
|
+
const { sourcemapGeneratedUrl, sourcemap } = urlInfo
|
|
596
|
+
if (sourcemapGeneratedUrl && sourcemap) {
|
|
597
|
+
writeFileSync(
|
|
598
|
+
new URL(sourcemapGeneratedUrl),
|
|
599
|
+
JSON.stringify(sourcemap, null, " "),
|
|
600
|
+
)
|
|
601
|
+
}
|
|
612
602
|
}
|
|
613
603
|
}
|
|
614
604
|
}
|
|
@@ -671,6 +661,9 @@ const memoizeCook = (cook) => {
|
|
|
671
661
|
}
|
|
672
662
|
|
|
673
663
|
const applyReferenceEffectsOnUrlInfo = (reference, urlInfo, context) => {
|
|
664
|
+
if (reference.shouldHandle) {
|
|
665
|
+
urlInfo.shouldHandle = true
|
|
666
|
+
}
|
|
674
667
|
Object.assign(urlInfo.data, reference.data)
|
|
675
668
|
Object.assign(urlInfo.timing, reference.timing)
|
|
676
669
|
if (reference.injected) {
|
|
@@ -37,8 +37,8 @@ const createUrlGraphReport = (urlGraph) => {
|
|
|
37
37
|
const urlInfo = urlInfos[url]
|
|
38
38
|
// ignore:
|
|
39
39
|
// - inline files: they are already taken into account in the file where they appear
|
|
40
|
-
// -
|
|
41
|
-
if (urlInfo.isInline || urlInfo.
|
|
40
|
+
// - ignored files: we don't know their content
|
|
41
|
+
if (urlInfo.isInline || !urlInfo.shouldHandle) {
|
|
42
42
|
return
|
|
43
43
|
}
|
|
44
44
|
// file loaded via import assertion are already inside the graph
|
package/src/omega/url_graph.js
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
import { urlIsInsideOf } from "@jsenv/filesystem"
|
|
2
|
-
|
|
3
1
|
import {
|
|
4
2
|
parseHtmlString,
|
|
5
3
|
stringifyHtmlAst,
|
|
6
4
|
injectScriptAsEarlyAsPossible,
|
|
7
5
|
createHtmlNode,
|
|
8
6
|
} from "@jsenv/utils/html_ast/html_ast.js"
|
|
9
|
-
import { jsenvRootDirectoryUrl } from "@jsenv/core/src/jsenv_root_directory_url.js"
|
|
10
7
|
|
|
11
|
-
export const jsenvPluginDevSSEClient = (
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
? new URL("./client/event_source_client.js", import.meta.url).href
|
|
17
|
-
: new URL("./dist/event_source_client.js", jsenvRootDirectoryUrl).href
|
|
8
|
+
export const jsenvPluginDevSSEClient = () => {
|
|
9
|
+
const eventSourceClientFileUrl = new URL(
|
|
10
|
+
"./client/event_source_client.js",
|
|
11
|
+
import.meta.url,
|
|
12
|
+
).href
|
|
18
13
|
|
|
19
14
|
return {
|
|
20
15
|
name: "jsenv:dev_sse_client",
|