@jsenv/core 27.0.0-alpha.8 → 27.0.0-alpha.80
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/babel_helpers/AsyncGenerator/AsyncGenerator.js +95 -0
- package/dist/babel_helpers/AwaitValue/AwaitValue.js +3 -0
- package/dist/babel_helpers/applyDecoratorDescriptor/applyDecoratorDescriptor.js +29 -0
- package/dist/babel_helpers/arrayLikeToArray/arrayLikeToArray.js +9 -0
- package/dist/babel_helpers/arrayWithHoles/arrayWithHoles.js +4 -0
- package/dist/babel_helpers/arrayWithoutHoles/arrayWithoutHoles.js +5 -0
- package/dist/babel_helpers/assertThisInitialized/assertThisInitialized.js +8 -0
- package/dist/babel_helpers/asyncGeneratorDelegate/asyncGeneratorDelegate.js +52 -0
- package/dist/babel_helpers/asyncIterator/asyncIterator.js +78 -0
- package/dist/babel_helpers/asyncToGenerator/asyncToGenerator.js +39 -0
- package/dist/babel_helpers/awaitAsyncGenerator/awaitAsyncGenerator.js +4 -0
- package/dist/babel_helpers/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +24 -0
- package/dist/babel_helpers/classApplyDescriptorGet/classApplyDescriptorGet.js +7 -0
- package/dist/babel_helpers/classApplyDescriptorSet/classApplyDescriptorSet.js +14 -0
- package/dist/babel_helpers/classCallCheck/classCallCheck.js +5 -0
- package/dist/babel_helpers/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +5 -0
- package/dist/babel_helpers/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +6 -0
- package/dist/babel_helpers/classExtractFieldDescriptor/classExtractFieldDescriptor.js +8 -0
- package/dist/babel_helpers/classNameTDZError/classNameTDZError.js +4 -0
- package/dist/babel_helpers/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +6 -0
- package/dist/babel_helpers/classPrivateFieldGet/classPrivateFieldGet.js +6 -0
- package/dist/babel_helpers/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +7 -0
- package/dist/babel_helpers/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +5 -0
- package/dist/babel_helpers/classPrivateFieldSet/classPrivateFieldSet.js +7 -0
- package/dist/babel_helpers/classPrivateMethodGet/classPrivateMethodGet.js +7 -0
- package/dist/babel_helpers/classPrivateMethodSet/classPrivateMethodSet.js +3 -0
- package/dist/babel_helpers/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +8 -0
- package/dist/babel_helpers/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +9 -0
- package/dist/babel_helpers/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +5 -0
- package/dist/babel_helpers/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +3 -0
- package/dist/babel_helpers/construct/construct.js +15 -0
- package/dist/babel_helpers/createClass/createClass.js +18 -0
- package/dist/babel_helpers/createForOfIteratorHelper/createForOfIteratorHelper.js +63 -0
- package/dist/babel_helpers/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +22 -0
- package/dist/babel_helpers/createRawReactElement/createRawReactElement.js +50 -0
- package/dist/babel_helpers/createSuper/createSuper.js +22 -0
- package/dist/babel_helpers/decorate/decorate.js +622 -0
- package/dist/babel_helpers/defaults/defaults.js +14 -0
- package/dist/babel_helpers/defineEnumerableProperties/defineEnumerableProperties.js +26 -0
- package/dist/babel_helpers/defineProperty/defineProperty.js +19 -0
- package/dist/babel_helpers/extends/extends.js +16 -0
- package/dist/babel_helpers/get/get.js +21 -0
- package/dist/babel_helpers/getPrototypeOf/getPrototypeOf.js +2 -0
- package/dist/babel_helpers/inherits/inherits.js +21 -0
- package/dist/babel_helpers/inheritsLoose/inheritsLoose.js +6 -0
- package/dist/babel_helpers/initializerDefineProperty/initializerDefineProperty.js +10 -0
- package/dist/babel_helpers/initializerWarningHelper/initializerWarningHelper.js +3 -0
- package/dist/babel_helpers/instanceof/instanceof.js +7 -0
- package/dist/babel_helpers/interopRequireDefault/interopRequireDefault.js +5 -0
- package/dist/babel_helpers/interopRequireWildcard/interopRequireWildcard.js +49 -0
- package/dist/babel_helpers/isNativeFunction/isNativeFunction.js +4 -0
- package/dist/babel_helpers/isNativeReflectConstruct/isNativeReflectConstruct.js +21 -0
- package/dist/babel_helpers/iterableToArray/iterableToArray.js +3 -0
- package/dist/babel_helpers/iterableToArrayLimit/iterableToArrayLimit.js +38 -0
- package/dist/babel_helpers/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +13 -0
- package/dist/babel_helpers/jsx/jsx.js +49 -0
- package/dist/babel_helpers/maybeArrayLike/maybeArrayLike.js +10 -0
- package/dist/babel_helpers/newArrowCheck/newArrowCheck.js +5 -0
- package/dist/babel_helpers/nonIterableRest/nonIterableRest.js +3 -0
- package/dist/babel_helpers/nonIterableSpread/nonIterableSpread.js +3 -0
- package/dist/babel_helpers/objectDestructuringEmpty/objectDestructuringEmpty.js +3 -0
- package/dist/babel_helpers/objectSpread/objectSpread.js +22 -0
- package/dist/babel_helpers/objectSpread2/objectSpread2.js +41 -0
- package/dist/babel_helpers/objectWithoutProperties/objectWithoutProperties.js +20 -0
- package/dist/babel_helpers/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +15 -0
- package/dist/babel_helpers/possibleConstructorReturn/possibleConstructorReturn.js +10 -0
- package/dist/babel_helpers/readOnlyError/readOnlyError.js +4 -0
- package/dist/babel_helpers/readme.md +8 -0
- package/dist/babel_helpers/set/set.js +51 -0
- package/dist/babel_helpers/setPrototypeOf/setPrototypeOf.js +5 -0
- package/dist/babel_helpers/skipFirstGeneratorNext/skipFirstGeneratorNext.js +8 -0
- package/dist/babel_helpers/slicedToArray/slicedToArray.js +5 -0
- package/dist/babel_helpers/slicedToArrayLoose/slicedToArrayLoose.js +7 -0
- package/dist/babel_helpers/superPropBase/superPropBase.js +10 -0
- package/dist/babel_helpers/taggedTemplateLiteral/taggedTemplateLiteral.js +11 -0
- package/dist/babel_helpers/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +8 -0
- package/dist/babel_helpers/tdz/tdz.js +4 -0
- package/dist/babel_helpers/temporalRef/temporalRef.js +5 -0
- package/dist/babel_helpers/temporalUndefined/temporalUndefined.js +3 -0
- package/dist/babel_helpers/toArray/toArray.js +5 -0
- package/dist/babel_helpers/toConsumableArray/toConsumableArray.js +5 -0
- package/dist/babel_helpers/toPrimitive/toPrimitive.js +14 -0
- package/dist/babel_helpers/toPropertyKey/toPropertyKey.js +5 -0
- package/dist/babel_helpers/typeof/typeof.js +7 -0
- package/dist/babel_helpers/unsupportedIterableToArray/unsupportedIterableToArray.js +10 -0
- package/dist/babel_helpers/wrapAsyncGenerator/wrapAsyncGenerator.js +7 -0
- package/dist/babel_helpers/wrapNativeSuper/wrapNativeSuper.js +35 -0
- package/dist/babel_helpers/wrapRegExp/wrapRegExp.js +67 -0
- package/dist/babel_helpers/writeOnlyError/writeOnlyError.js +4 -0
- package/dist/html/explorer.html +557 -0
- package/dist/js/controllable_file.mjs +227 -0
- package/dist/js/event_source_client.js +324 -0
- package/dist/js/global_this.js +32 -0
- package/dist/js/html_supervisor_installer.js +522 -0
- package/dist/js/html_supervisor_setup.js +82 -0
- package/dist/js/import_meta_hot.js +84 -0
- 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 +13418 -0
- package/dist/other/jsenv.png +0 -0
- package/dist/s.js +626 -0
- package/dist/s.js.map +204 -0
- package/package.json +55 -48
- package/readme.md +6 -14
- package/src/build/build.js +1074 -563
- package/src/build/build_urls_generator.js +65 -24
- package/src/build/graph_utils.js +31 -0
- package/src/build/{inject_version_mappings.js → inject_global_version_mappings.js} +49 -18
- package/src/build/inject_service_worker_urls.js +79 -0
- package/src/build/resync_ressource_hints.js +115 -0
- package/src/build/start_build_server.js +210 -0
- package/src/dev/plugins/explorer/client/explorer.html +1 -1
- package/src/dev/plugins/explorer/jsenv_plugin_explorer.js +9 -13
- package/src/dev/plugins/toolbar/jsenv_plugin_toolbar.js +3 -1
- package/src/dev/start_dev_server.js +165 -38
- package/src/execute/execute.js +35 -8
- package/src/execute/run.js +21 -57
- package/src/execute/runtimes/browsers/from_playwright.js +220 -150
- package/src/execute/runtimes/node/child_exec_options.js +1 -1
- package/src/execute/runtimes/node/controllable_file.mjs +26 -10
- package/src/execute/runtimes/node/kill_process_tree.js +2 -4
- package/src/execute/runtimes/node/node_execution_performance.js +67 -0
- package/src/execute/runtimes/node/node_process.js +288 -39
- package/src/main.js +27 -0
- package/src/omega/{runtime_support/features_compatibility.js → compat/features_compats.js} +30 -7
- package/src/omega/{runtime_support/runtime_support.js → compat/runtime_compat.js} +14 -16
- package/src/omega/errors.js +63 -67
- package/src/omega/fetched_content_compliance.js +24 -0
- package/src/omega/file_url_converter.js +9 -51
- package/src/omega/kitchen.js +605 -467
- package/src/omega/omega_server.js +2 -3
- package/src/omega/server/file_service.js +88 -41
- package/src/omega/server/user_agent.js +5 -6
- package/src/omega/url_graph/url_graph_load.js +31 -23
- package/src/omega/url_graph/url_graph_report.js +94 -51
- package/src/omega/url_graph/url_info_transformations.js +37 -17
- package/src/omega/url_graph.js +88 -19
- package/src/omega/url_specifier_encoding.js +59 -0
- package/src/omega/web_workers.js +42 -0
- package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/autoreload_preference.js +0 -0
- package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/event_source_client.js +19 -12
- package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/reload.js +0 -0
- package/src/{dev/plugins/autoreload → plugins/autoreload/dev_sse}/client/url_helpers.js +0 -0
- package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_client.js +41 -0
- package/src/plugins/autoreload/dev_sse/jsenv_plugin_dev_sse_server.js +204 -0
- package/src/plugins/autoreload/jsenv_plugin_autoreload.js +25 -0
- package/src/plugins/autoreload/jsenv_plugin_hmr.js +35 -0
- package/src/plugins/bundling/css/bundle_css.js +140 -0
- package/src/plugins/bundling/js_classic_workers/bundle_js_classic_workers.js +13 -0
- package/src/plugins/bundling/js_module/bundle_js_module.js +343 -0
- package/src/plugins/bundling/jsenv_plugin_bundling.js +54 -0
- package/src/plugins/cache_control/jsenv_plugin_cache_control.js +34 -0
- package/src/{omega/core_plugins → plugins}/commonjs_globals/jsenv_plugin_commonjs_globals.js +54 -41
- package/src/plugins/file_urls/jsenv_plugin_file_urls.js +183 -0
- package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_document.js +0 -0
- package/src/{omega/core_plugins → plugins}/html_supervisor/client/error_in_notification.js +0 -0
- package/src/plugins/html_supervisor/client/html_supervisor_installer.js +254 -0
- package/src/plugins/html_supervisor/client/html_supervisor_setup.js +82 -0
- package/src/{omega/core_plugins → plugins}/html_supervisor/client/perf_browser.js +0 -0
- package/src/{omega/core_plugins → plugins}/html_supervisor/client/uneval_exception.js +0 -0
- package/src/{omega/core_plugins → plugins}/html_supervisor/jsenv_plugin_html_supervisor.js +73 -55
- package/src/plugins/http_urls/jsenv_plugin_http_urls.js +12 -0
- package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/babel_plugin_metadata_import_meta_hot.js +4 -5
- package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/client/import_meta_hot.js +3 -1
- package/src/{dev/plugins/autoreload → plugins/import_meta_hot}/html_hot_dependencies.js +7 -4
- package/src/plugins/import_meta_hot/jsenv_plugin_import_meta_hot.js +100 -0
- package/src/{omega/core_plugins → plugins}/import_meta_scenarios/jsenv_plugin_import_meta_scenarios.js +33 -8
- package/src/plugins/import_meta_url/client/import_meta_url_browser.js +52 -0
- package/src/plugins/import_meta_url/client/import_meta_url_commonjs.mjs +9 -0
- package/src/{omega/core_plugins → plugins}/importmap/jsenv_plugin_importmap.js +40 -36
- package/src/plugins/inject_globals/inject_globals.js +57 -0
- package/src/plugins/inject_globals/jsenv_plugin_inject_globals.js +24 -0
- package/src/{omega/core_plugins → plugins}/inline/client/inline_content.js +0 -0
- package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_data_urls.js +22 -21
- package/src/plugins/inline/jsenv_plugin_html_inline_content.js +161 -0
- package/src/plugins/inline/jsenv_plugin_inline.js +36 -0
- package/src/{omega/core_plugins → plugins}/inline/jsenv_plugin_inline_query_param.js +8 -11
- package/src/plugins/inline/jsenv_plugin_js_inline_content.js +294 -0
- package/src/plugins/leading_slash/jsenv_plugin_leading_slash.js +13 -0
- package/src/plugins/minification/css/minify_css.js +9 -0
- package/src/plugins/minification/html/minify_html.js +13 -0
- package/src/{build/plugins/minify_js/jsenv_plugin_minify_js.js → plugins/minification/js/minify_js.js} +6 -22
- package/src/plugins/minification/jsenv_plugin_minification.js +78 -0
- package/src/plugins/minification/json/minify_json.js +8 -0
- package/src/plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +162 -0
- package/src/plugins/node_runtime/jsenv_plugin_node_runtime.js +12 -0
- package/src/{omega → plugins}/plugin_controller.js +57 -12
- package/src/plugins/plugins.js +89 -0
- package/src/plugins/transpilation/as_js_classic/client/s.js +429 -0
- package/src/plugins/transpilation/as_js_classic/helpers/babel_plugin_transform_import_meta_url.js +47 -0
- package/src/plugins/transpilation/as_js_classic/helpers/systemjs_old.js +43 -0
- package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic.js +211 -0
- package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic_html.js +304 -0
- package/src/plugins/transpilation/as_js_classic/jsenv_plugin_as_js_classic_workers.js +55 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/babel_plugin_global_this_as_jsenv_import.js +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/global_this/client/global_this.js +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugin_babel_helpers_as_jsenv_imports.js +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugin_structure.js +14 -17
- package/src/{omega/core_plugins → plugins/transpilation}/babel/helpers/babel_plugins_compatibility.js +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/jsenv_plugin_babel.js +39 -32
- package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js +30 -6
- package/src/{omega/core_plugins → plugins/transpilation}/babel/new_stylesheet/client/new_stylesheet.js +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js +0 -0
- package/src/{omega/core_plugins → plugins/transpilation}/babel/regenerator_runtime/client/regenerator_runtime.js +0 -0
- package/src/plugins/transpilation/babel/require_babel_plugin.js +8 -0
- package/src/plugins/transpilation/css_parcel/jsenv_plugin_css_parcel.js +18 -0
- package/src/plugins/transpilation/import_assertions/jsenv_plugin_import_assertions.js +184 -0
- package/src/plugins/transpilation/jsenv_plugin_top_level_await.js +79 -0
- package/src/plugins/transpilation/jsenv_plugin_transpilation.js +46 -0
- package/src/plugins/url_analysis/css/css_urls.js +49 -0
- package/src/plugins/url_analysis/html/html_urls.js +272 -0
- package/src/plugins/url_analysis/js/js_urls.js +68 -0
- package/src/plugins/url_analysis/jsenv_plugin_url_analysis.js +103 -0
- package/src/plugins/url_analysis/webmanifest/webmanifest_urls.js +20 -0
- package/src/{omega/core_plugins → plugins}/url_resolution/jsenv_plugin_url_resolution.js +9 -5
- package/src/plugins/url_version/jsenv_plugin_url_version.js +28 -0
- package/src/require_from_jsenv.js +3 -0
- package/src/test/execute_plan.js +85 -44
- package/src/test/execute_test_plan.js +37 -25
- package/src/test/execution_steps.js +2 -5
- package/src/test/logs_file_execution.js +56 -49
- package/main.js +0 -19
- package/src/build/plugins/bundle_js_module/jsenv_plugin_bundle_js_module.js +0 -227
- package/src/build/plugins/minify_html/jsenv_plugin_minify_html.js +0 -30
- package/src/dev/plugins/autoreload/client/event_source_connection.js +0 -195
- package/src/dev/plugins/autoreload/jsenv_plugin_autoreload.js +0 -374
- package/src/dev/plugins/autoreload/sse_service.js +0 -149
- package/src/execute/runtimes/node/controlled_process.js +0 -316
- package/src/omega/core_plugins/babel/new_stylesheet/client/.eslintrc.cjs +0 -24
- package/src/omega/core_plugins/file_urls/jsenv_plugin_file_urls.js +0 -67
- package/src/omega/core_plugins/filesystem_magic/jsenv_plugin_filesystem_magic.js +0 -58
- package/src/omega/core_plugins/html_supervisor/client/html_supervisor_installer.js +0 -168
- package/src/omega/core_plugins/html_supervisor/client/html_supervisor_setup.js +0 -77
- package/src/omega/core_plugins/import_assertions/helpers/babel_plugin_metadata_import_assertions.js +0 -98
- package/src/omega/core_plugins/import_assertions/helpers/json_module.js +0 -12
- package/src/omega/core_plugins/import_assertions/helpers/text_module.js +0 -6
- package/src/omega/core_plugins/import_assertions/jsenv_plugin_import_assertions.js +0 -211
- package/src/omega/core_plugins/inline/jsenv_plugin_inline.js +0 -13
- package/src/omega/core_plugins/inline/jsenv_plugin_js_and_css_inside_html.js +0 -142
- package/src/omega/core_plugins/inline/jsenv_plugin_new_inline_content.js +0 -207
- package/src/omega/core_plugins/leading_slash/jsenv_plugin_leading_slash.js +0 -12
- package/src/omega/core_plugins/node_esm_resolution/jsenv_plugin_node_esm_resolution.js +0 -77
- package/src/omega/core_plugins/url_version/jsenv_plugin_url_version.js +0 -50
- package/src/omega/core_plugins.js +0 -39
- package/src/omega/runtime_support/default_runtime_support.js +0 -13
- package/src/omega/url_graph/url_graph_sort.js +0 -29
- package/src/omega/url_mentions/css_url_mentions.js +0 -63
- package/src/omega/url_mentions/html_url_mentions.js +0 -185
- package/src/omega/url_mentions/js_module_url_mentions.js +0 -91
- package/src/omega/url_mentions/parse_url_mentions.js +0 -37
- package/src/omega/url_mentions/worker_classic_url_mentions.js +0 -37
package/dist/js/s.js
ADDED
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is a modified version of https://github.com/systemjs/systemjs/blob/main/dist/s.js
|
|
3
|
+
* with the following changes:
|
|
4
|
+
*
|
|
5
|
+
* - Code can use aync/await, const, ... because an es5 version of this file is generated
|
|
6
|
+
* - Can use document.currentScript because we don't support IE
|
|
7
|
+
* - auto import inline System.register
|
|
8
|
+
* - auto import first System.register in web workers
|
|
9
|
+
* - queing events in web workers
|
|
10
|
+
* - no support for importmap because jsenv don't need it
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
;(function () {
|
|
14
|
+
/* eslint-env browser */
|
|
15
|
+
/* globals self */
|
|
16
|
+
|
|
17
|
+
const loadRegistry = Object.create(null)
|
|
18
|
+
const registerRegistry = Object.create(null)
|
|
19
|
+
let inlineScriptCount = 0
|
|
20
|
+
const System = {}
|
|
21
|
+
|
|
22
|
+
const hasDocument = typeof document === "object"
|
|
23
|
+
const envGlobal = self
|
|
24
|
+
const isWorker =
|
|
25
|
+
!hasDocument &&
|
|
26
|
+
typeof envGlobal.WorkerGlobalScope === "function" &&
|
|
27
|
+
envGlobal instanceof envGlobal.WorkerGlobalScope
|
|
28
|
+
const isServiceWorker = isWorker && typeof self.skipWaiting === "function"
|
|
29
|
+
envGlobal.System = System
|
|
30
|
+
|
|
31
|
+
let baseUrl = envGlobal.location.href.split("#")[0].split("?")[0]
|
|
32
|
+
const lastSlashIndex = baseUrl.lastIndexOf("/")
|
|
33
|
+
if (lastSlashIndex !== -1) {
|
|
34
|
+
baseUrl = baseUrl.slice(0, lastSlashIndex + 1)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const resolveUrl = (specifier, baseUrl) => new URL(specifier, baseUrl).href
|
|
38
|
+
|
|
39
|
+
if (hasDocument) {
|
|
40
|
+
const baseElement = document.querySelector("base[href]")
|
|
41
|
+
if (baseElement) {
|
|
42
|
+
baseUrl = baseElement.href
|
|
43
|
+
}
|
|
44
|
+
System.register = (deps, declare) => {
|
|
45
|
+
if (!document.currentScript) {
|
|
46
|
+
throw new Error("unexpected call")
|
|
47
|
+
}
|
|
48
|
+
if (document.currentScript.__s__) {
|
|
49
|
+
registerRegistry[document.currentScript.src] = [deps, declare]
|
|
50
|
+
return null
|
|
51
|
+
}
|
|
52
|
+
const url =
|
|
53
|
+
document.currentScript.src ||
|
|
54
|
+
`${window.location.href}__inline_script__${++inlineScriptCount}`
|
|
55
|
+
registerRegistry[url] = [deps, declare]
|
|
56
|
+
return _import(url)
|
|
57
|
+
}
|
|
58
|
+
System.instantiate = (url) => {
|
|
59
|
+
const script = createScript(url)
|
|
60
|
+
return new Promise(function (resolve, reject) {
|
|
61
|
+
let lastWindowErrorUrl
|
|
62
|
+
let lastWindowError
|
|
63
|
+
const windowErrorCallback = (event) => {
|
|
64
|
+
lastWindowErrorUrl = event.filename
|
|
65
|
+
lastWindowError = event.error
|
|
66
|
+
}
|
|
67
|
+
window.addEventListener("error", windowErrorCallback)
|
|
68
|
+
script.addEventListener("error", () => {
|
|
69
|
+
window.removeEventListener("error", windowErrorCallback)
|
|
70
|
+
reject(`An error occured while loading url with <script> for ${url}`)
|
|
71
|
+
})
|
|
72
|
+
script.addEventListener("load", () => {
|
|
73
|
+
window.removeEventListener("error", windowErrorCallback)
|
|
74
|
+
document.head.removeChild(script)
|
|
75
|
+
// Note that if an error occurs that isn't caught by this if statement,
|
|
76
|
+
// that getRegister will return null and a "did not instantiate" error will be thrown.
|
|
77
|
+
if (lastWindowErrorUrl === url) {
|
|
78
|
+
reject(lastWindowError)
|
|
79
|
+
} else {
|
|
80
|
+
resolve()
|
|
81
|
+
}
|
|
82
|
+
})
|
|
83
|
+
document.head.appendChild(script)
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
const createScript = (url) => {
|
|
87
|
+
const script = document.createElement("script")
|
|
88
|
+
script.async = true
|
|
89
|
+
// Only add cross origin for actual cross origin
|
|
90
|
+
// this is because Safari triggers for all
|
|
91
|
+
// - https://bugs.webkit.org/show_bug.cgi?id=171566
|
|
92
|
+
if (url.indexOf(`${self.location.origin}/`)) {
|
|
93
|
+
script.crossOrigin = "anonymous"
|
|
94
|
+
}
|
|
95
|
+
script.__s__ = true
|
|
96
|
+
script.src = url
|
|
97
|
+
return script
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (isWorker) {
|
|
101
|
+
/*
|
|
102
|
+
* SystemJs loads X files before executing the worker/service worker main file
|
|
103
|
+
* It mean events dispatched during this phase could be missed
|
|
104
|
+
* A warning like the one below is displayed in chrome devtools:
|
|
105
|
+
* "Event handler of 'install' event must be added on the initial evaluation of worker script"
|
|
106
|
+
* To fix that code below listen for these events early and redispatch them later
|
|
107
|
+
* once the worker file is executed (the listeners are installed)
|
|
108
|
+
*/
|
|
109
|
+
const firstImportCallbacks = []
|
|
110
|
+
if (isServiceWorker) {
|
|
111
|
+
// for service worker there is more events to listen
|
|
112
|
+
// and, to get rid of the warning, we override self.addEventListener
|
|
113
|
+
const eventsToCatch = ["message", "install", "activate", "fetch"]
|
|
114
|
+
const eventCallbackProxies = {}
|
|
115
|
+
const firstImportPromise = new Promise((resolve) => {
|
|
116
|
+
firstImportCallbacks.push(resolve)
|
|
117
|
+
})
|
|
118
|
+
eventsToCatch.forEach((eventName) => {
|
|
119
|
+
const eventsToDispatch = []
|
|
120
|
+
const eventCallback = (event) => {
|
|
121
|
+
const eventCallbackProxy = eventCallbackProxies[event.type]
|
|
122
|
+
if (eventCallbackProxy) {
|
|
123
|
+
eventCallbackProxy(event)
|
|
124
|
+
} else {
|
|
125
|
+
eventsToDispatch.push(event)
|
|
126
|
+
event.waitUntil(firstImportPromise)
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
self.addEventListener(eventName, eventCallback)
|
|
130
|
+
firstImportCallbacks.push(() => {
|
|
131
|
+
if (eventsToDispatch.length) {
|
|
132
|
+
const eventCallbackProxy =
|
|
133
|
+
eventCallbackProxies[eventsToDispatch[0].type]
|
|
134
|
+
if (eventCallbackProxy) {
|
|
135
|
+
eventsToDispatch.forEach((event) => {
|
|
136
|
+
eventCallbackProxy(event)
|
|
137
|
+
})
|
|
138
|
+
}
|
|
139
|
+
eventsToDispatch.length = 0
|
|
140
|
+
}
|
|
141
|
+
})
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
const addEventListener = self.addEventListener
|
|
145
|
+
self.addEventListener = function (eventName, callback, options) {
|
|
146
|
+
if (eventsToCatch.indexOf(eventName) > -1) {
|
|
147
|
+
eventCallbackProxies[eventName] = callback
|
|
148
|
+
return null
|
|
149
|
+
}
|
|
150
|
+
return addEventListener.call(self, eventName, callback, options)
|
|
151
|
+
}
|
|
152
|
+
} else {
|
|
153
|
+
const eventsToCatch = ["message"]
|
|
154
|
+
eventsToCatch.forEach((eventName) => {
|
|
155
|
+
var eventQueue = []
|
|
156
|
+
var eventCallback = (event) => {
|
|
157
|
+
eventQueue.push(event)
|
|
158
|
+
}
|
|
159
|
+
self.addEventListener(eventName, eventCallback)
|
|
160
|
+
firstImportCallbacks.push(() => {
|
|
161
|
+
self.removeEventListener(eventName, eventCallback)
|
|
162
|
+
eventQueue.forEach(function (event) {
|
|
163
|
+
self.dispatchEvent(event)
|
|
164
|
+
})
|
|
165
|
+
eventQueue.length = 0
|
|
166
|
+
})
|
|
167
|
+
})
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
System.register = async (deps, declare) => {
|
|
171
|
+
System.register = () => {
|
|
172
|
+
throw new Error("unexpected call")
|
|
173
|
+
}
|
|
174
|
+
const url = self.location.href
|
|
175
|
+
registerRegistry[url] = [deps, declare]
|
|
176
|
+
const namespace = await _import(url)
|
|
177
|
+
firstImportCallbacks.forEach((firstImportCallback) => {
|
|
178
|
+
firstImportCallback()
|
|
179
|
+
})
|
|
180
|
+
firstImportCallbacks.length = 0
|
|
181
|
+
return namespace
|
|
182
|
+
}
|
|
183
|
+
System.instantiate = async (url) => {
|
|
184
|
+
const response = await self.fetch(url, {
|
|
185
|
+
credentials: "same-origin",
|
|
186
|
+
})
|
|
187
|
+
if (!response.ok) {
|
|
188
|
+
throw Error(`Failed to fetch module at ${url}`)
|
|
189
|
+
}
|
|
190
|
+
let source = await response.text()
|
|
191
|
+
if (source.indexOf("//# sourceURL=") < 0) {
|
|
192
|
+
source += `\n//# sourceURL=${url}`
|
|
193
|
+
}
|
|
194
|
+
const register = System.register
|
|
195
|
+
System.register = (deps, declare) => {
|
|
196
|
+
registerRegistry[url] = [deps, declare]
|
|
197
|
+
}
|
|
198
|
+
;(0, self.eval)(source)
|
|
199
|
+
System.register = register
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const _import = (specifier, parentUrl) => {
|
|
204
|
+
const url = resolveUrl(specifier, parentUrl)
|
|
205
|
+
const load = getOrCreateLoad(url, parentUrl)
|
|
206
|
+
return load.completionPromise || startExecution(load)
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
const getOrCreateLoad = (url, firstParentUrl) => {
|
|
210
|
+
const existingLoad = loadRegistry[url]
|
|
211
|
+
if (existingLoad) {
|
|
212
|
+
return existingLoad
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
const load = {
|
|
216
|
+
url,
|
|
217
|
+
}
|
|
218
|
+
loadRegistry[url] = load
|
|
219
|
+
|
|
220
|
+
const importerSetters = []
|
|
221
|
+
load.importerSetters = importerSetters
|
|
222
|
+
|
|
223
|
+
const namespace = createNamespace()
|
|
224
|
+
load.namespace = namespace
|
|
225
|
+
|
|
226
|
+
load.instantiatePromise = (async () => {
|
|
227
|
+
try {
|
|
228
|
+
let registration = registerRegistry[url]
|
|
229
|
+
if (!registration) {
|
|
230
|
+
const instantiateReturnValue = System.instantiate(url, firstParentUrl)
|
|
231
|
+
if (instantiateReturnValue) {
|
|
232
|
+
await instantiateReturnValue
|
|
233
|
+
}
|
|
234
|
+
registration = registerRegistry[url]
|
|
235
|
+
}
|
|
236
|
+
if (!registration) {
|
|
237
|
+
throw new Error(`System.register() not called after executing ${url}`)
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
const _export = (firstArg, secondArg) => {
|
|
241
|
+
load.hoistedExports = true
|
|
242
|
+
let changed = false
|
|
243
|
+
if (typeof firstArg === "string") {
|
|
244
|
+
const name = firstArg
|
|
245
|
+
const value = secondArg
|
|
246
|
+
if (!(name in namespace) || namespace[name] !== value) {
|
|
247
|
+
namespace[name] = value
|
|
248
|
+
changed = true
|
|
249
|
+
}
|
|
250
|
+
} else {
|
|
251
|
+
Object.keys(firstArg).forEach((name) => {
|
|
252
|
+
const value = firstArg[name]
|
|
253
|
+
if (!(name in namespace) || namespace[name] !== value) {
|
|
254
|
+
namespace[name] = value
|
|
255
|
+
changed = true
|
|
256
|
+
}
|
|
257
|
+
})
|
|
258
|
+
if (firstArg && firstArg.__esModule) {
|
|
259
|
+
namespace.__esModule = firstArg.__esModule
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (changed) {
|
|
263
|
+
importerSetters.forEach((importerSetter) => {
|
|
264
|
+
if (importerSetter) {
|
|
265
|
+
importerSetter(namespace)
|
|
266
|
+
}
|
|
267
|
+
})
|
|
268
|
+
}
|
|
269
|
+
return secondArg
|
|
270
|
+
}
|
|
271
|
+
const [deps, declare] = registration
|
|
272
|
+
const { setters, execute = () => {} } = declare(_export, {
|
|
273
|
+
import: (importId) => _import(importId, url),
|
|
274
|
+
meta: createMeta(url),
|
|
275
|
+
})
|
|
276
|
+
load.deps = deps
|
|
277
|
+
load.setters = setters
|
|
278
|
+
load.execute = execute
|
|
279
|
+
} catch (e) {
|
|
280
|
+
load.error = e
|
|
281
|
+
load.execute = null
|
|
282
|
+
}
|
|
283
|
+
})()
|
|
284
|
+
|
|
285
|
+
load.linkPromise = (async () => {
|
|
286
|
+
await load.instantiatePromise
|
|
287
|
+
const dependencyLoads = await Promise.all(
|
|
288
|
+
load.deps.map(async (dep, index) => {
|
|
289
|
+
const setter = load.setters[index]
|
|
290
|
+
const dependencyUrl = resolveUrl(dep, url)
|
|
291
|
+
const dependencyLoad = getOrCreateLoad(dependencyUrl, url)
|
|
292
|
+
if (dependencyLoad.instantiatePromise) {
|
|
293
|
+
await dependencyLoad.instantiatePromise
|
|
294
|
+
}
|
|
295
|
+
if (setter) {
|
|
296
|
+
dependencyLoad.importerSetters.push(setter)
|
|
297
|
+
if (
|
|
298
|
+
dependencyLoad.hoistedExports ||
|
|
299
|
+
!dependencyLoad.instantiatePromise
|
|
300
|
+
) {
|
|
301
|
+
setter(dependencyLoad.namespace)
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return dependencyLoad
|
|
305
|
+
}),
|
|
306
|
+
)
|
|
307
|
+
load.dependencyLoads = dependencyLoads
|
|
308
|
+
})()
|
|
309
|
+
|
|
310
|
+
return load
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
const startExecution = async (load) => {
|
|
314
|
+
load.completionPromise = (async () => {
|
|
315
|
+
await instantiateAll(load, load, {})
|
|
316
|
+
await postOrderExec(load, {})
|
|
317
|
+
return load.namespace
|
|
318
|
+
})()
|
|
319
|
+
return load.completionPromise
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
const instantiateAll = async (load, parent, loaded) => {
|
|
323
|
+
if (loaded[load.url]) {
|
|
324
|
+
return
|
|
325
|
+
}
|
|
326
|
+
loaded[load.url] = true
|
|
327
|
+
try {
|
|
328
|
+
if (load.linkPromise) {
|
|
329
|
+
// load.linkPromise is null once instantiated
|
|
330
|
+
await load.linkPromise
|
|
331
|
+
}
|
|
332
|
+
// if (!load.parent || !load.parent.execute) {
|
|
333
|
+
// load.parent = parent
|
|
334
|
+
// }
|
|
335
|
+
await Promise.all(
|
|
336
|
+
load.dependencyLoads.map((dependencyLoad) => {
|
|
337
|
+
return instantiateAll(dependencyLoad, parent, loaded)
|
|
338
|
+
}),
|
|
339
|
+
)
|
|
340
|
+
} catch (error) {
|
|
341
|
+
if (load.error) {
|
|
342
|
+
throw error
|
|
343
|
+
}
|
|
344
|
+
load.execute = null
|
|
345
|
+
throw error
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
const postOrderExec = async (load, seen) => {
|
|
350
|
+
if (seen[load.url]) {
|
|
351
|
+
return
|
|
352
|
+
}
|
|
353
|
+
seen[load.url] = true
|
|
354
|
+
if (!load.execute) {
|
|
355
|
+
if (load.error) {
|
|
356
|
+
throw load.error
|
|
357
|
+
}
|
|
358
|
+
if (load.executePromise) {
|
|
359
|
+
await load.executePromise
|
|
360
|
+
}
|
|
361
|
+
return
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
// deps execute first, unless circular
|
|
365
|
+
const depLoadPromises = []
|
|
366
|
+
load.dependencyLoads.forEach((dependencyLoad) => {
|
|
367
|
+
try {
|
|
368
|
+
const depLoadPromise = postOrderExec(dependencyLoad, seen)
|
|
369
|
+
if (depLoadPromise) {
|
|
370
|
+
depLoadPromises.push(depLoadPromise)
|
|
371
|
+
}
|
|
372
|
+
} catch (err) {
|
|
373
|
+
load.execute = null
|
|
374
|
+
load.error = err
|
|
375
|
+
throw err
|
|
376
|
+
}
|
|
377
|
+
})
|
|
378
|
+
if (depLoadPromises.length) {
|
|
379
|
+
await Promise.all(depLoadPromises)
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
try {
|
|
383
|
+
const executeReturnValue = load.execute.call(nullContext)
|
|
384
|
+
if (executeReturnValue) {
|
|
385
|
+
load.executePromise = executeReturnValue.then(
|
|
386
|
+
() => {
|
|
387
|
+
load.executePromise = null
|
|
388
|
+
load.completionPromise = load.namespace
|
|
389
|
+
},
|
|
390
|
+
(error) => {
|
|
391
|
+
load.executePromise = null
|
|
392
|
+
load.error = error
|
|
393
|
+
throw error
|
|
394
|
+
},
|
|
395
|
+
)
|
|
396
|
+
return
|
|
397
|
+
}
|
|
398
|
+
load.instantiatePromise = null
|
|
399
|
+
load.linkPromise = null
|
|
400
|
+
load.completionPromise = load.namespace
|
|
401
|
+
} catch (error) {
|
|
402
|
+
load.error = error
|
|
403
|
+
throw error
|
|
404
|
+
} finally {
|
|
405
|
+
load.execute = null
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
// the closest we can get to call(undefined)
|
|
410
|
+
const nullContext = Object.freeze(Object.create(null))
|
|
411
|
+
|
|
412
|
+
const createMeta = (url) => {
|
|
413
|
+
return {
|
|
414
|
+
url,
|
|
415
|
+
resolve: (id, parentUrl) => resolveUrl(id, parentUrl),
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
const createNamespace =
|
|
420
|
+
typeof Symbol !== "undefined" && Symbol.toStringTag
|
|
421
|
+
? () => {
|
|
422
|
+
const namespace = Object.create(null)
|
|
423
|
+
Object.defineProperty(namespace, Symbol.toStringTag, {
|
|
424
|
+
value: "Module",
|
|
425
|
+
})
|
|
426
|
+
return namespace
|
|
427
|
+
}
|
|
428
|
+
: () => Object.create(null)
|
|
429
|
+
})();
|