@jsenv/core 24.1.0-alpha.0 → 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.
- package/{license → LICENSE} +0 -0
- package/dist/browser_runtime/browser_runtime-fbd309a1.js +5137 -0
- package/dist/browser_runtime/browser_runtime-fbd309a1.js.map +1064 -0
- package/dist/{jsenv_browser_system.js → browser_system/browser_system-29eda202.js} +12 -12
- package/dist/{jsenv_browser_system.js.map → browser_system/browser_system-29eda202.js.map} +64 -64
- package/dist/build_manifest.js +12 -0
- package/dist/compile_proxy/assets/s.js-749702e8.map +242 -0
- package/dist/compile_proxy/compile_proxy-405777e6.html +2074 -0
- package/dist/compile_proxy/compile_proxy.html__inline__20-39c0801c.js.map +385 -0
- package/dist/event_source_client/event_source_client-9f14c8b9.js +356 -0
- package/dist/event_source_client/event_source_client-9f14c8b9.js.map +127 -0
- package/dist/redirector/assets/s.js-749702e8.map +242 -0
- package/dist/redirector/redirector-237cd168.html +2118 -0
- package/dist/redirector/redirector.html__inline__15-33acb0b9.js.map +390 -0
- package/dist/toolbar/assets/compilation.css-209d68b4.map +12 -0
- package/dist/toolbar/assets/eventsource.css-38cd0a36.map +12 -0
- package/dist/toolbar/assets/execution.css-0ebe522f.map +12 -0
- package/dist/toolbar/assets/focus.css-3f9c156d.map +12 -0
- package/dist/toolbar/assets/light-theme.css-78b19a80.map +12 -0
- package/dist/toolbar/assets/overflow-menu.css-d9688a1c.map +12 -0
- package/dist/toolbar/assets/s.js-749702e8.map +242 -0
- package/dist/toolbar/assets/settings.css-2b81b245.map +12 -0
- package/dist/toolbar/assets/toolbar.main.css-846920e9.map +28 -0
- package/dist/toolbar/assets/tooltip.css-03395ee6.map +12 -0
- package/dist/toolbar/toolbar-d3d98c2e.html +4778 -0
- package/dist/toolbar/toolbar.main-cab36c15.js.map +795 -0
- package/dist/toolbar_injector/assets/jsenv-logo-188b9ca6.svg +95 -0
- package/dist/{jsenv_toolbar_injector.js → toolbar_injector/toolbar_injector-01f71ce3.js} +62 -137
- package/dist/toolbar_injector/toolbar_injector-01f71ce3.js.map +294 -0
- package/main.js +0 -1
- package/package.json +4 -2
- package/readme.md +10 -7
- package/src/buildProject.js +8 -2
- package/src/dev_server.js +45 -102
- package/src/importUsingChildProcess.js +1 -1
- package/src/internal/{runtime/detectBrowser/detectBrowser.js → browser_detection/browser_detection.js} +0 -0
- package/src/internal/{runtime/detectBrowser → browser_detection}/detectAndroid.js +0 -0
- package/src/internal/{runtime/detectBrowser → browser_detection}/detectChrome.js +0 -0
- package/src/internal/{runtime/detectBrowser → browser_detection}/detectEdge.js +0 -0
- package/src/internal/{runtime/detectBrowser → browser_detection}/detectElectron.js +0 -0
- package/src/internal/{runtime/detectBrowser → browser_detection}/detectFirefox.js +0 -0
- package/src/internal/{runtime/detectBrowser → browser_detection}/detectIOS.js +0 -0
- package/src/internal/{runtime/detectBrowser → browser_detection}/detectInternetExplorer.js +0 -0
- package/src/internal/{runtime/detectBrowser → browser_detection}/detectOpera.js +0 -0
- package/src/internal/{runtime/detectBrowser → browser_detection}/detectSafari.js +0 -0
- package/src/internal/{runtime/detectBrowser → browser_detection}/util.js +0 -0
- package/src/internal/{runtime/createBrowserRuntime/scanBrowserRuntimeFeatures.js → browser_feature_detection/browser_feature_detection.js} +116 -81
- package/src/internal/browser_feature_detection/compile_proxy.html +27 -0
- package/src/internal/{browser-launcher → browser_launcher}/createSharing.js +0 -0
- package/src/internal/{browser-launcher → browser_launcher}/executeHtmlFile.js +7 -4
- package/src/internal/{browser-launcher → browser_launcher}/trackPageToNotify.js +0 -0
- package/src/internal/{browser-launcher/jsenv-browser-system.js → browser_runtime/browser_runtime.js} +4 -4
- package/src/internal/{runtime/createBrowserRuntime/createBrowserSystem.js → browser_runtime/browser_system.js} +3 -2
- package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/createBrowserRuntime.js +7 -5
- package/src/internal/{browser-launcher → browser_runtime}/displayErrorInDocument.js +0 -0
- package/src/internal/{browser-launcher → browser_runtime}/displayErrorNotification.js +2 -4
- package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/evalSource.js +2 -0
- package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/makeNamespaceTransferable.js +0 -0
- package/src/internal/{browser-utils → browser_utils}/fetch-browser.js +2 -0
- package/src/internal/{browser-utils → browser_utils}/fetchAndEvalUsingFetch.js +3 -0
- package/src/internal/{browser-utils → browser_utils}/fetchAndEvalUsingScript.js +2 -0
- package/src/internal/{browser-utils → browser_utils}/fetchJson.js +0 -0
- package/src/internal/{browser-utils → browser_utils}/fetchUsingXHR.js +4 -4
- package/src/internal/building/buildUsingRollup.js +4 -0
- package/src/internal/building/createJsenvRollupPlugin.js +19 -9
- package/src/internal/building/css/applyPostCss.js +19 -8
- package/src/internal/building/css/moveCssUrls.js +44 -0
- package/src/internal/building/css/parseCssRessource.js +67 -17
- package/src/internal/building/css/parseCssUrls.js +29 -23
- package/src/internal/building/css/postcss_plugin_url_visitor.js +11 -20
- package/src/internal/building/css/replaceCssUrls.js +38 -19
- package/src/internal/building/css_module.js +6 -10
- package/src/internal/building/html/parseHtmlRessource.js +37 -11
- package/src/internal/building/parseRessource.js +3 -0
- package/src/internal/building/ressource_builder.js +12 -3
- package/src/internal/compiling/babel_plugin_import_assertions.js +1 -2
- package/src/internal/compiling/compile-directory/validateCache.js +0 -5
- package/src/internal/compiling/compileFile.js +17 -54
- package/src/internal/compiling/createCompiledFileService.js +2 -0
- package/src/internal/compiling/html_source_file_service.js +49 -13
- package/src/internal/compiling/jsenvCompilerForHtml.js +29 -12
- package/src/internal/compiling/startCompileServer.js +39 -33
- package/src/internal/dev_server/event_source_client/event_source_client.js +63 -0
- package/src/internal/{toolbar/eventsource/connectEventSource.js → dev_server/event_source_client/event_source_connection.js} +66 -88
- package/src/internal/dev_server/event_source_client/file_changes.js +82 -0
- package/src/internal/dev_server/event_source_client/livereload_preference.js +13 -0
- package/src/internal/{exploring → dev_server/exploring}/exploring.css +0 -0
- package/src/internal/{exploring → dev_server/exploring}/exploring.html +8 -3
- package/src/internal/{exploring → dev_server/exploring}/exploring.js +0 -0
- package/src/internal/{exploring → dev_server/exploring}/fetchExploringJson.js +4 -9
- package/src/internal/dev_server/redirector/redirector.html +48 -0
- package/src/internal/{toolbar → dev_server/toolbar}/animation/toolbar.animation.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/compilation/compilation.css +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/compilation/toolbar.compilation.js +4 -7
- package/src/internal/{toolbar → dev_server/toolbar}/eventsource/eventsource.css +0 -0
- package/src/internal/dev_server/toolbar/eventsource/toolbar.eventsource.js +83 -0
- package/src/internal/{toolbar → dev_server/toolbar}/execution/execution.css +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/execution/toolbar.execution.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/focus/focus.css +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/focus/toolbar.focus.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/jsenv-logo.svg +0 -0
- package/src/internal/dev_server/toolbar/notification/toolbar.notification.js +152 -0
- package/src/internal/{toolbar → dev_server/toolbar}/responsive/overflow-menu.css +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/responsive/toolbar.responsive.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/settings/settings.css +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/settings/toolbar.settings.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/theme/jsenv-theme.css +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/theme/light-theme.css +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/theme/toolbar.theme.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/toolbar.html +35 -42
- package/src/internal/{toolbar → dev_server/toolbar}/toolbar.injector.js +53 -125
- package/src/internal/{toolbar → dev_server/toolbar}/toolbar.main.css +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/toolbar.main.js +44 -31
- package/src/internal/{toolbar → dev_server/toolbar}/tooltip/tooltip.css +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/tooltip/tooltip.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/util/animation.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/util/dom.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/util/fetching.js +2 -2
- package/src/internal/{toolbar → dev_server/toolbar}/util/jsenvLogger.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/util/preferences.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/util/responsive.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/util/util.js +0 -0
- package/src/internal/{toolbar → dev_server/toolbar}/variant/variant.js +0 -0
- package/src/internal/generateGroupMap/one_runtime_compat.js +1 -1
- package/src/internal/generateGroupMap/runtime_compat_composition.js +1 -1
- package/src/internal/generateGroupMap/runtime_support.js +1 -1
- package/src/internal/jsenvInternalFiles.js +0 -84
- package/src/internal/jsenv_builds.js +19 -0
- package/src/internal/{runtime/node-feature-detect/feature-detect-dynamic-import.mjs → node_feature_detection/feature_detect_dynamic_import.mjs} +0 -0
- package/src/internal/{runtime/node-feature-detect/feature-detect-top-level-await.mjs → node_feature_detection/feature_detect_top_level_await.mjs} +0 -0
- package/src/internal/{runtime/node-feature-detect → node_feature_detection}/nodeSupportsDynamicImport.js +0 -0
- package/src/internal/node_feature_detection/nodeSupportsTopLevelAwait.js +16 -0
- package/src/internal/{runtime/createNodeRuntime/scanNodeRuntimeFeatures.js → node_feature_detection/node_feature_detection.js} +12 -13
- package/src/internal/{node-launcher → node_launcher}/createChildProcessOptions.js +0 -0
- package/src/internal/{node-launcher → node_launcher}/createControllableNodeProcess.js +9 -14
- package/src/internal/{node-launcher → node_launcher}/kill_process_tree.js +0 -0
- package/src/internal/{node-launcher → node_launcher}/processOptions.js +0 -0
- package/src/internal/{runtime/detectNode → node_runtime}/detectNode.js +0 -0
- package/src/internal/{runtime/createNodeRuntime → node_runtime}/evalSource.js +1 -1
- package/src/internal/{runtime/createNodeRuntime → node_runtime}/fetchSource.js +1 -1
- package/src/internal/{node-launcher → node_runtime}/nodeControllableFile.mjs +14 -11
- package/src/internal/{runtime/createNodeRuntime/createNodeExecutionWithDynamicImport.js → node_runtime/node_execution_dynamic_import.js} +34 -6
- package/src/internal/node_runtime/node_execution_performance.js +67 -0
- package/src/internal/{runtime/createNodeRuntime/createNodeExecutionWithSystemJs.js → node_runtime/node_execution_systemjs.js} +38 -24
- package/src/internal/{runtime/createNodeRuntime/createNodeSystem.js → node_runtime/node_system.js} +4 -4
- package/src/internal/runtime/computeCompileIdFromGroupId.js +1 -0
- package/src/internal/runtime/resolveGroup.js +1 -1
- package/src/internal/runtime/resolveRuntimeGroup.js +2 -2
- package/src/internal/{semantic-versioning → semantic_versioning}/findHighestVersion.js +0 -0
- package/src/internal/{semantic-versioning → semantic_versioning}/findLowestVersion.js +0 -0
- package/src/internal/{semantic-versioning → semantic_versioning}/index.js +0 -0
- package/src/internal/{semantic-versioning → semantic_versioning}/valueToVersion.js +0 -0
- package/src/internal/{semantic-versioning → semantic_versioning}/versionCompare.js +0 -0
- package/src/internal/{semantic-versioning → semantic_versioning}/versionIsAbove.js +0 -0
- package/src/internal/{semantic-versioning → semantic_versioning}/versionIsBelow.js +0 -0
- package/src/internal/{semantic-versioning → semantic_versioning}/versionIsEqual.js +0 -0
- package/src/launchBrowser.js +3 -3
- package/src/launchNode.js +33 -7
- package/src/requireUsingChildProcess.js +1 -1
- package/dist/jsenv_compile_proxy.js +0 -1339
- package/dist/jsenv_compile_proxy.js.map +0 -378
- package/dist/jsenv_exploring_index.js +0 -1092
- package/dist/jsenv_exploring_index.js.map +0 -353
- package/dist/jsenv_exploring_redirector.js +0 -1386
- package/dist/jsenv_exploring_redirector.js.map +0 -384
- package/dist/jsenv_toolbar.js +0 -3347
- package/dist/jsenv_toolbar.js.map +0 -846
- package/dist/jsenv_toolbar_injector.js.map +0 -320
- package/src/internal/browser-launcher/jsenv_compile_proxy.html +0 -13
- package/src/internal/browser-launcher/jsenv_compile_proxy.js +0 -5
- package/src/internal/exploring/exploring.redirector.html +0 -13
- package/src/internal/exploring/exploring.redirector.js +0 -28
- package/src/internal/node-launcher/node-js-file.js +0 -110
- package/src/internal/runtime/createNodeRuntime/createNodeRuntime.js +0 -32
- package/src/internal/runtime/node-feature-detect/nodeSupportsTopLevelAwait.js +0 -18
- package/src/internal/toolbar/backtolist/toolbar.backtolist.js +0 -33
- package/src/internal/toolbar/eventsource/connectCompileServerEventSource.js +0 -74
- package/src/internal/toolbar/eventsource/toolbar.eventsource.js +0 -239
- package/src/internal/toolbar/notification/toolbar.notification.js +0 -121
- package/src/nodeRuntime.js +0 -5
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
(function () {
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
/* eslint-env browser */
|
|
5
|
+
var createEventSourceConnection = function createEventSourceConnection(eventSourceUrl) {
|
|
6
|
+
var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7
|
+
|
|
8
|
+
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
|
|
9
|
+
_ref$retryMaxAttempt = _ref.retryMaxAttempt,
|
|
10
|
+
retryMaxAttempt = _ref$retryMaxAttempt === void 0 ? Infinity : _ref$retryMaxAttempt,
|
|
11
|
+
_ref$retryAllocatedMs = _ref.retryAllocatedMs,
|
|
12
|
+
retryAllocatedMs = _ref$retryAllocatedMs === void 0 ? Infinity : _ref$retryAllocatedMs,
|
|
13
|
+
lastEventId = _ref.lastEventId;
|
|
14
|
+
|
|
15
|
+
var _window = window,
|
|
16
|
+
EventSource = _window.EventSource;
|
|
17
|
+
|
|
18
|
+
if (typeof EventSource !== "function") {
|
|
19
|
+
return function () {};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
var eventSourceOrigin = new URL(eventSourceUrl).origin;
|
|
23
|
+
Object.keys(events).forEach(function (eventName) {
|
|
24
|
+
var eventCallback = events[eventName];
|
|
25
|
+
|
|
26
|
+
events[eventName] = function (e) {
|
|
27
|
+
if (e.origin === eventSourceOrigin) {
|
|
28
|
+
if (e.lastEventId) {
|
|
29
|
+
lastEventId = e.lastEventId;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
eventCallback(e);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
var connectionStatus = "default";
|
|
37
|
+
|
|
38
|
+
var connectionStatusChangeCallback = function connectionStatusChangeCallback() {};
|
|
39
|
+
|
|
40
|
+
var _disconnect = function _disconnect() {};
|
|
41
|
+
|
|
42
|
+
var goToStatus = function goToStatus(newStatus) {
|
|
43
|
+
if (newStatus !== connectionStatus) {
|
|
44
|
+
connectionStatus = newStatus;
|
|
45
|
+
connectionStatusChangeCallback();
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
var attemptConnection = function attemptConnection(url) {
|
|
50
|
+
var eventSource = new EventSource(url, {
|
|
51
|
+
withCredentials: true
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
_disconnect = function _disconnect() {
|
|
55
|
+
if (connectionStatus !== "connecting" && connectionStatus !== "connected") {
|
|
56
|
+
console.warn("disconnect() ignored because connection is ".concat(connectionStatus));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
eventSource.onerror = undefined;
|
|
61
|
+
eventSource.close();
|
|
62
|
+
Object.keys(events).forEach(function (eventName) {
|
|
63
|
+
eventSource.removeEventListener(eventName, events[eventName]);
|
|
64
|
+
});
|
|
65
|
+
goToStatus("disconnected");
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
var retryCount = 0;
|
|
69
|
+
var firstRetryMs = Date.now();
|
|
70
|
+
|
|
71
|
+
eventSource.onerror = function (errorEvent) {
|
|
72
|
+
if (errorEvent.target.readyState === EventSource.CONNECTING) {
|
|
73
|
+
if (retryCount > retryMaxAttempt) {
|
|
74
|
+
console.info("could not connect after ".concat(retryMaxAttempt, " attempt"));
|
|
75
|
+
|
|
76
|
+
_disconnect();
|
|
77
|
+
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (retryCount === 0) {
|
|
82
|
+
firstRetryMs = Date.now();
|
|
83
|
+
} else {
|
|
84
|
+
var allRetryDuration = Date.now() - firstRetryMs;
|
|
85
|
+
|
|
86
|
+
if (retryAllocatedMs && allRetryDuration > retryAllocatedMs) {
|
|
87
|
+
console.info("could not connect in less than ".concat(retryAllocatedMs, " ms"));
|
|
88
|
+
|
|
89
|
+
_disconnect();
|
|
90
|
+
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
retryCount++;
|
|
96
|
+
goToStatus("connecting");
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (errorEvent.target.readyState === EventSource.CLOSED) {
|
|
101
|
+
_disconnect();
|
|
102
|
+
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
eventSource.onopen = function () {
|
|
108
|
+
goToStatus("connected");
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
Object.keys(events).forEach(function (eventName) {
|
|
112
|
+
eventSource.addEventListener(eventName, events[eventName]);
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
if (!events.hasOwnProperty("welcome")) {
|
|
116
|
+
eventSource.addEventListener("welcome", function (e) {
|
|
117
|
+
if (e.origin === eventSourceOrigin && e.lastEventId) {
|
|
118
|
+
lastEventId = e.lastEventId;
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
goToStatus("connecting");
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
var _connect = function connect() {
|
|
127
|
+
attemptConnection(eventSourceUrl);
|
|
128
|
+
|
|
129
|
+
_connect = function connect() {
|
|
130
|
+
attemptConnection(lastEventId ? addLastEventIdIntoUrlSearchParams(eventSourceUrl, lastEventId) : eventSourceUrl);
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
var removePageUnloadListener = listenPageUnload(function () {
|
|
135
|
+
_disconnect();
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
var destroy = function destroy() {
|
|
139
|
+
removePageUnloadListener();
|
|
140
|
+
|
|
141
|
+
_disconnect();
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
return {
|
|
145
|
+
getConnectionStatus: function getConnectionStatus() {
|
|
146
|
+
return connectionStatus;
|
|
147
|
+
},
|
|
148
|
+
setConnectionStatusChangeCallback: function setConnectionStatusChangeCallback(callback) {
|
|
149
|
+
connectionStatusChangeCallback = callback;
|
|
150
|
+
},
|
|
151
|
+
connect: _connect,
|
|
152
|
+
disconnect: function disconnect() {
|
|
153
|
+
return _disconnect();
|
|
154
|
+
},
|
|
155
|
+
destroy: destroy
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
var addLastEventIdIntoUrlSearchParams = function addLastEventIdIntoUrlSearchParams(url, lastEventId) {
|
|
160
|
+
if (url.indexOf("?") === -1) {
|
|
161
|
+
url += "?";
|
|
162
|
+
} else {
|
|
163
|
+
url += "&";
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return "".concat(url, "last-event-id=").concat(encodeURIComponent(lastEventId));
|
|
167
|
+
}; // const listenPageMightFreeze = (callback) => {
|
|
168
|
+
// const removePageHideListener = listenEvent(window, "pagehide", (pageHideEvent) => {
|
|
169
|
+
// if (pageHideEvent.persisted === true) {
|
|
170
|
+
// callback(pageHideEvent)
|
|
171
|
+
// }
|
|
172
|
+
// })
|
|
173
|
+
// return removePageHideListener
|
|
174
|
+
// }
|
|
175
|
+
// const listenPageFreeze = (callback) => {
|
|
176
|
+
// const removeFreezeListener = listenEvent(document, "freeze", (freezeEvent) => {
|
|
177
|
+
// callback(freezeEvent)
|
|
178
|
+
// })
|
|
179
|
+
// return removeFreezeListener
|
|
180
|
+
// }
|
|
181
|
+
// const listenPageIsRestored = (callback) => {
|
|
182
|
+
// const removeResumeListener = listenEvent(document, "resume", (resumeEvent) => {
|
|
183
|
+
// removePageshowListener()
|
|
184
|
+
// callback(resumeEvent)
|
|
185
|
+
// })
|
|
186
|
+
// const removePageshowListener = listenEvent(window, "pageshow", (pageshowEvent) => {
|
|
187
|
+
// if (pageshowEvent.persisted === true) {
|
|
188
|
+
// removePageshowListener()
|
|
189
|
+
// removeResumeListener()
|
|
190
|
+
// callback(pageshowEvent)
|
|
191
|
+
// }
|
|
192
|
+
// })
|
|
193
|
+
// return () => {
|
|
194
|
+
// removeResumeListener()
|
|
195
|
+
// removePageshowListener()
|
|
196
|
+
// }
|
|
197
|
+
// }
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
var listenPageUnload = function listenPageUnload(callback) {
|
|
201
|
+
var removePageHideListener = listenEvent(window, "pagehide", function (pageHideEvent) {
|
|
202
|
+
if (pageHideEvent.persisted !== true) {
|
|
203
|
+
callback(pageHideEvent);
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
return removePageHideListener;
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
var listenEvent = function listenEvent(emitter, event, callback) {
|
|
210
|
+
emitter.addEventListener(event, callback);
|
|
211
|
+
return function () {
|
|
212
|
+
emitter.removeEventListener(event, callback);
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
/* eslint-env browser */
|
|
217
|
+
var isLivereloadEnabled = function isLivereloadEnabled() {
|
|
218
|
+
var value = window.localStorage.hasOwnProperty("livereload");
|
|
219
|
+
|
|
220
|
+
if (value === "0") {
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return true;
|
|
225
|
+
};
|
|
226
|
+
var setLivereloadPreference = function setLivereloadPreference(value) {
|
|
227
|
+
window.localStorage.setItem("livereload", value ? "1" : "0");
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
/* eslint-env browser */
|
|
231
|
+
var fileChanges = {};
|
|
232
|
+
|
|
233
|
+
var filechangeCallback = function filechangeCallback() {};
|
|
234
|
+
|
|
235
|
+
var getFileChanges = function getFileChanges() {
|
|
236
|
+
return fileChanges;
|
|
237
|
+
};
|
|
238
|
+
var addFileChange = function addFileChange(_ref) {
|
|
239
|
+
var file = _ref.file,
|
|
240
|
+
eventType = _ref.eventType;
|
|
241
|
+
fileChanges[file] = eventType;
|
|
242
|
+
|
|
243
|
+
if (isLivereloadEnabled()) {
|
|
244
|
+
reloadIfNeeded();
|
|
245
|
+
} else {
|
|
246
|
+
filechangeCallback();
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
var setFileChangeCallback = function setFileChangeCallback(callback) {
|
|
250
|
+
filechangeCallback = callback;
|
|
251
|
+
};
|
|
252
|
+
var reloadIfNeeded = function reloadIfNeeded() {
|
|
253
|
+
var customReloads = [];
|
|
254
|
+
var cssReloads = [];
|
|
255
|
+
var fullReloads = [];
|
|
256
|
+
Object.keys(fileChanges).forEach(function (key) {
|
|
257
|
+
var livereloadCallback = window.__jsenv__.livereloadingCallbacks[key];
|
|
258
|
+
|
|
259
|
+
if (livereloadCallback) {
|
|
260
|
+
customReloads.push(function () {
|
|
261
|
+
delete fileChanges[key];
|
|
262
|
+
livereloadCallback({
|
|
263
|
+
reloadPage: reloadPage
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
} else if (key.endsWith(".css") || key.endsWith(".scss") || key.endsWith(".sass")) {
|
|
267
|
+
cssReloads.push(function () {
|
|
268
|
+
delete fileChanges[key];
|
|
269
|
+
});
|
|
270
|
+
} else {
|
|
271
|
+
fullReloads.push(key);
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
if (fullReloads.length > 0) {
|
|
276
|
+
reloadPage();
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
customReloads.forEach(function (customReload) {
|
|
281
|
+
customReload();
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
if (cssReloads.length) {
|
|
285
|
+
reloadAllCss();
|
|
286
|
+
cssReloads.forEach(function (cssReload) {
|
|
287
|
+
cssReload();
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
filechangeCallback();
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
var reloadAllCss = function reloadAllCss() {
|
|
295
|
+
var links = Array.from(window.parent.document.getElementsByTagName("link"));
|
|
296
|
+
links.forEach(function (link) {
|
|
297
|
+
if (link.rel === "stylesheet") {
|
|
298
|
+
var url = new URL(link.href);
|
|
299
|
+
url.searchParams.set("t", Date.now());
|
|
300
|
+
link.href = String(url);
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
var reloadPage = function reloadPage() {
|
|
306
|
+
window.parent.location.reload(true);
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
/* eslint-env browser */
|
|
310
|
+
var eventsourceConnection = createEventSourceConnection(document.location.href, {
|
|
311
|
+
"file-added": function fileAdded(_ref) {
|
|
312
|
+
var data = _ref.data;
|
|
313
|
+
addFileChange({
|
|
314
|
+
file: data,
|
|
315
|
+
eventType: "added"
|
|
316
|
+
});
|
|
317
|
+
},
|
|
318
|
+
"file-modified": function fileModified(_ref2) {
|
|
319
|
+
var data = _ref2.data;
|
|
320
|
+
addFileChange({
|
|
321
|
+
file: data,
|
|
322
|
+
eventType: "modified"
|
|
323
|
+
});
|
|
324
|
+
},
|
|
325
|
+
"file-removed": function fileRemoved(_ref3) {
|
|
326
|
+
var data = _ref3.data;
|
|
327
|
+
addFileChange({
|
|
328
|
+
file: data,
|
|
329
|
+
eventType: "removed"
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
}, {
|
|
333
|
+
retryMaxAttempt: Infinity,
|
|
334
|
+
retryAllocatedMs: 20 * 1000
|
|
335
|
+
});
|
|
336
|
+
var connect = eventsourceConnection.connect,
|
|
337
|
+
disconnect = eventsourceConnection.disconnect,
|
|
338
|
+
setConnectionStatusChangeCallback = eventsourceConnection.setConnectionStatusChangeCallback,
|
|
339
|
+
getConnectionStatus = eventsourceConnection.getConnectionStatus;
|
|
340
|
+
connect();
|
|
341
|
+
window.__jsenv_event_source_client__ = {
|
|
342
|
+
connect: connect,
|
|
343
|
+
disconnect: disconnect,
|
|
344
|
+
getConnectionStatus: getConnectionStatus,
|
|
345
|
+
setConnectionStatusChangeCallback: setConnectionStatusChangeCallback,
|
|
346
|
+
getFileChanges: getFileChanges,
|
|
347
|
+
addFileChange: addFileChange,
|
|
348
|
+
setFileChangeCallback: setFileChangeCallback,
|
|
349
|
+
reloadIfNeeded: reloadIfNeeded,
|
|
350
|
+
isLivereloadEnabled: isLivereloadEnabled,
|
|
351
|
+
setLivereloadPreference: setLivereloadPreference
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
})();
|
|
355
|
+
|
|
356
|
+
//# sourceMappingURL=event_source_client-9f14c8b9.js.map
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"file": "event_source_client-9f14c8b9.js",
|
|
4
|
+
"sources": [
|
|
5
|
+
"../../src/internal/dev_server/event_source_client/event_source_connection.js",
|
|
6
|
+
"../../src/internal/dev_server/event_source_client/livereload_preference.js",
|
|
7
|
+
"../../src/internal/dev_server/event_source_client/file_changes.js",
|
|
8
|
+
"../../src/internal/dev_server/event_source_client/event_source_client.js"
|
|
9
|
+
],
|
|
10
|
+
"sourcesContent": [
|
|
11
|
+
"/* eslint-env browser */\n\nexport const createEventSourceConnection = (\n eventSourceUrl,\n events = {},\n { retryMaxAttempt = Infinity, retryAllocatedMs = Infinity, lastEventId } = {},\n) => {\n const { EventSource } = window\n if (typeof EventSource !== \"function\") {\n return () => {}\n }\n\n const eventSourceOrigin = new URL(eventSourceUrl).origin\n Object.keys(events).forEach((eventName) => {\n const eventCallback = events[eventName]\n events[eventName] = (e) => {\n if (e.origin === eventSourceOrigin) {\n if (e.lastEventId) {\n lastEventId = e.lastEventId\n }\n eventCallback(e)\n }\n }\n })\n\n let connectionStatus = \"default\"\n let connectionStatusChangeCallback = () => {}\n let _disconnect = () => {}\n\n const goToStatus = (newStatus) => {\n if (newStatus !== connectionStatus) {\n connectionStatus = newStatus\n connectionStatusChangeCallback()\n }\n }\n\n const attemptConnection = (url) => {\n const eventSource = new EventSource(url, {\n withCredentials: true,\n })\n _disconnect = () => {\n if (\n connectionStatus !== \"connecting\" &&\n connectionStatus !== \"connected\"\n ) {\n console.warn(\n `disconnect() ignored because connection is ${connectionStatus}`,\n )\n return\n }\n eventSource.onerror = undefined\n eventSource.close()\n Object.keys(events).forEach((eventName) => {\n eventSource.removeEventListener(eventName, events[eventName])\n })\n goToStatus(\"disconnected\")\n }\n let retryCount = 0\n let firstRetryMs = Date.now()\n eventSource.onerror = (errorEvent) => {\n if (errorEvent.target.readyState === EventSource.CONNECTING) {\n if (retryCount > retryMaxAttempt) {\n console.info(`could not connect after ${retryMaxAttempt} attempt`)\n _disconnect()\n return\n }\n\n if (retryCount === 0) {\n firstRetryMs = Date.now()\n } else {\n const allRetryDuration = Date.now() - firstRetryMs\n if (retryAllocatedMs && allRetryDuration > retryAllocatedMs) {\n console.info(\n `could not connect in less than ${retryAllocatedMs} ms`,\n )\n _disconnect()\n return\n }\n }\n\n retryCount++\n goToStatus(\"connecting\")\n return\n }\n\n if (errorEvent.target.readyState === EventSource.CLOSED) {\n _disconnect()\n return\n }\n }\n eventSource.onopen = () => {\n goToStatus(\"connected\")\n }\n Object.keys(events).forEach((eventName) => {\n eventSource.addEventListener(eventName, events[eventName])\n })\n if (!events.hasOwnProperty(\"welcome\")) {\n eventSource.addEventListener(\"welcome\", (e) => {\n if (e.origin === eventSourceOrigin && e.lastEventId) {\n lastEventId = e.lastEventId\n }\n })\n }\n goToStatus(\"connecting\")\n }\n\n let connect = () => {\n attemptConnection(eventSourceUrl)\n connect = () => {\n attemptConnection(\n lastEventId\n ? addLastEventIdIntoUrlSearchParams(eventSourceUrl, lastEventId)\n : eventSourceUrl,\n )\n }\n }\n\n const removePageUnloadListener = listenPageUnload(() => {\n _disconnect()\n })\n\n const destroy = () => {\n removePageUnloadListener()\n _disconnect()\n }\n\n return {\n getConnectionStatus: () => connectionStatus,\n setConnectionStatusChangeCallback: (callback) => {\n connectionStatusChangeCallback = callback\n },\n connect,\n disconnect: () => _disconnect(),\n destroy,\n }\n}\n\nconst addLastEventIdIntoUrlSearchParams = (url, lastEventId) => {\n if (url.indexOf(\"?\") === -1) {\n url += \"?\"\n } else {\n url += \"&\"\n }\n return `${url}last-event-id=${encodeURIComponent(lastEventId)}`\n}\n\n// const listenPageMightFreeze = (callback) => {\n// const removePageHideListener = listenEvent(window, \"pagehide\", (pageHideEvent) => {\n// if (pageHideEvent.persisted === true) {\n// callback(pageHideEvent)\n// }\n// })\n// return removePageHideListener\n// }\n\n// const listenPageFreeze = (callback) => {\n// const removeFreezeListener = listenEvent(document, \"freeze\", (freezeEvent) => {\n// callback(freezeEvent)\n// })\n// return removeFreezeListener\n// }\n\n// const listenPageIsRestored = (callback) => {\n// const removeResumeListener = listenEvent(document, \"resume\", (resumeEvent) => {\n// removePageshowListener()\n// callback(resumeEvent)\n// })\n// const removePageshowListener = listenEvent(window, \"pageshow\", (pageshowEvent) => {\n// if (pageshowEvent.persisted === true) {\n// removePageshowListener()\n// removeResumeListener()\n// callback(pageshowEvent)\n// }\n// })\n// return () => {\n// removeResumeListener()\n// removePageshowListener()\n// }\n// }\n\nconst listenPageUnload = (callback) => {\n const removePageHideListener = listenEvent(\n window,\n \"pagehide\",\n (pageHideEvent) => {\n if (pageHideEvent.persisted !== true) {\n callback(pageHideEvent)\n }\n },\n )\n return removePageHideListener\n}\n\nconst listenEvent = (emitter, event, callback) => {\n emitter.addEventListener(event, callback)\n return () => {\n emitter.removeEventListener(event, callback)\n }\n}\n",
|
|
12
|
+
"/* eslint-env browser */\n\nexport const isLivereloadEnabled = () => {\n const value = window.localStorage.hasOwnProperty(\"livereload\")\n if (value === \"0\") {\n return false\n }\n return true\n}\n\nexport const setLivereloadPreference = (value) => {\n window.localStorage.setItem(\"livereload\", value ? \"1\" : \"0\")\n}\n",
|
|
13
|
+
"/* eslint-env browser */\n\nimport { isLivereloadEnabled } from \"./livereload_preference.js\"\n\nlet fileChanges = {}\nlet filechangeCallback = () => {}\n\nexport const getFileChanges = () => fileChanges\n\nexport const addFileChange = ({ file, eventType }) => {\n fileChanges[file] = eventType\n if (isLivereloadEnabled()) {\n reloadIfNeeded()\n } else {\n filechangeCallback()\n }\n}\n\nexport const setFileChangeCallback = (callback) => {\n filechangeCallback = callback\n}\n\nexport const reloadIfNeeded = () => {\n const customReloads = []\n const cssReloads = []\n const fullReloads = []\n\n Object.keys(fileChanges).forEach((key) => {\n const livereloadCallback = window.__jsenv__.livereloadingCallbacks[key]\n if (livereloadCallback) {\n customReloads.push(() => {\n delete fileChanges[key]\n livereloadCallback({\n reloadPage,\n })\n })\n } else if (\n key.endsWith(\".css\") ||\n key.endsWith(\".scss\") ||\n key.endsWith(\".sass\")\n ) {\n cssReloads.push(() => {\n delete fileChanges[key]\n })\n } else {\n fullReloads.push(key)\n }\n })\n\n if (fullReloads.length > 0) {\n reloadPage()\n return\n }\n\n customReloads.forEach((customReload) => {\n customReload()\n })\n\n if (cssReloads.length) {\n reloadAllCss()\n cssReloads.forEach((cssReload) => {\n cssReload()\n })\n }\n\n filechangeCallback()\n}\n\nconst reloadAllCss = () => {\n const links = Array.from(window.parent.document.getElementsByTagName(\"link\"))\n links.forEach((link) => {\n if (link.rel === \"stylesheet\") {\n const url = new URL(link.href)\n url.searchParams.set(\"t\", Date.now())\n link.href = String(url)\n }\n })\n}\n\nconst reloadPage = () => {\n window.parent.location.reload(true)\n}\n",
|
|
14
|
+
"/* eslint-env browser */\n\nimport { createEventSourceConnection } from \"./event_source_connection.js\"\nimport {\n getFileChanges,\n addFileChange,\n setFileChangeCallback,\n reloadIfNeeded,\n} from \"./file_changes.js\"\nimport {\n isLivereloadEnabled,\n setLivereloadPreference,\n} from \"./livereload_preference.js\"\n\nconst eventsourceConnection = createEventSourceConnection(\n document.location.href,\n {\n \"file-added\": ({ data }) => {\n addFileChange({\n file: data,\n eventType: \"added\",\n })\n },\n \"file-modified\": ({ data }) => {\n addFileChange({\n file: data,\n eventType: \"modified\",\n })\n },\n \"file-removed\": ({ data }) => {\n addFileChange({\n file: data,\n eventType: \"removed\",\n })\n },\n },\n {\n retryMaxAttempt: Infinity,\n retryAllocatedMs: 20 * 1000,\n },\n)\n\nconst {\n connect,\n disconnect,\n setConnectionStatusChangeCallback,\n getConnectionStatus,\n} = eventsourceConnection\n\nconnect()\n\nwindow.__jsenv_event_source_client__ = {\n connect,\n disconnect,\n getConnectionStatus,\n setConnectionStatusChangeCallback,\n getFileChanges,\n addFileChange,\n setFileChangeCallback,\n reloadIfNeeded,\n isLivereloadEnabled,\n setLivereloadPreference,\n}\n"
|
|
15
|
+
],
|
|
16
|
+
"names": [
|
|
17
|
+
"createEventSourceConnection",
|
|
18
|
+
"eventSourceUrl",
|
|
19
|
+
"events",
|
|
20
|
+
"retryMaxAttempt",
|
|
21
|
+
"Infinity",
|
|
22
|
+
"retryAllocatedMs",
|
|
23
|
+
"lastEventId",
|
|
24
|
+
"window",
|
|
25
|
+
"EventSource",
|
|
26
|
+
"eventSourceOrigin",
|
|
27
|
+
"URL",
|
|
28
|
+
"origin",
|
|
29
|
+
"Object",
|
|
30
|
+
"keys",
|
|
31
|
+
"forEach",
|
|
32
|
+
"eventName",
|
|
33
|
+
"eventCallback",
|
|
34
|
+
"e",
|
|
35
|
+
"connectionStatus",
|
|
36
|
+
"connectionStatusChangeCallback",
|
|
37
|
+
"_disconnect",
|
|
38
|
+
"goToStatus",
|
|
39
|
+
"newStatus",
|
|
40
|
+
"attemptConnection",
|
|
41
|
+
"url",
|
|
42
|
+
"eventSource",
|
|
43
|
+
"withCredentials",
|
|
44
|
+
"console",
|
|
45
|
+
"warn",
|
|
46
|
+
"onerror",
|
|
47
|
+
"undefined",
|
|
48
|
+
"close",
|
|
49
|
+
"removeEventListener",
|
|
50
|
+
"retryCount",
|
|
51
|
+
"firstRetryMs",
|
|
52
|
+
"Date",
|
|
53
|
+
"now",
|
|
54
|
+
"errorEvent",
|
|
55
|
+
"target",
|
|
56
|
+
"readyState",
|
|
57
|
+
"CONNECTING",
|
|
58
|
+
"info",
|
|
59
|
+
"allRetryDuration",
|
|
60
|
+
"CLOSED",
|
|
61
|
+
"onopen",
|
|
62
|
+
"addEventListener",
|
|
63
|
+
"hasOwnProperty",
|
|
64
|
+
"connect",
|
|
65
|
+
"addLastEventIdIntoUrlSearchParams",
|
|
66
|
+
"removePageUnloadListener",
|
|
67
|
+
"listenPageUnload",
|
|
68
|
+
"destroy",
|
|
69
|
+
"getConnectionStatus",
|
|
70
|
+
"setConnectionStatusChangeCallback",
|
|
71
|
+
"callback",
|
|
72
|
+
"disconnect",
|
|
73
|
+
"indexOf",
|
|
74
|
+
"encodeURIComponent",
|
|
75
|
+
"removePageHideListener",
|
|
76
|
+
"listenEvent",
|
|
77
|
+
"pageHideEvent",
|
|
78
|
+
"persisted",
|
|
79
|
+
"emitter",
|
|
80
|
+
"event",
|
|
81
|
+
"isLivereloadEnabled",
|
|
82
|
+
"value",
|
|
83
|
+
"localStorage",
|
|
84
|
+
"setLivereloadPreference",
|
|
85
|
+
"setItem",
|
|
86
|
+
"fileChanges",
|
|
87
|
+
"filechangeCallback",
|
|
88
|
+
"getFileChanges",
|
|
89
|
+
"addFileChange",
|
|
90
|
+
"file",
|
|
91
|
+
"eventType",
|
|
92
|
+
"reloadIfNeeded",
|
|
93
|
+
"setFileChangeCallback",
|
|
94
|
+
"customReloads",
|
|
95
|
+
"cssReloads",
|
|
96
|
+
"fullReloads",
|
|
97
|
+
"key",
|
|
98
|
+
"livereloadCallback",
|
|
99
|
+
"__jsenv__",
|
|
100
|
+
"livereloadingCallbacks",
|
|
101
|
+
"push",
|
|
102
|
+
"reloadPage",
|
|
103
|
+
"endsWith",
|
|
104
|
+
"length",
|
|
105
|
+
"customReload",
|
|
106
|
+
"reloadAllCss",
|
|
107
|
+
"cssReload",
|
|
108
|
+
"links",
|
|
109
|
+
"Array",
|
|
110
|
+
"from",
|
|
111
|
+
"parent",
|
|
112
|
+
"document",
|
|
113
|
+
"getElementsByTagName",
|
|
114
|
+
"link",
|
|
115
|
+
"rel",
|
|
116
|
+
"href",
|
|
117
|
+
"searchParams",
|
|
118
|
+
"set",
|
|
119
|
+
"String",
|
|
120
|
+
"location",
|
|
121
|
+
"reload",
|
|
122
|
+
"eventsourceConnection",
|
|
123
|
+
"data",
|
|
124
|
+
"__jsenv_event_source_client__"
|
|
125
|
+
],
|
|
126
|
+
"mappings": "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"
|
|
127
|
+
}
|