@atlaspack/runtime-js 2.12.1-canary.3612 → 2.12.1-canary.3613
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/lib/helpers/browser/css-loader.js +3 -3
- package/lib/helpers/browser/esm-js-loader-retry.js +59 -125
- package/lib/helpers/browser/esm-js-loader-shards.js +3 -5
- package/lib/helpers/browser/html-loader.js +1 -1
- package/lib/helpers/browser/import-polyfill.js +7 -7
- package/lib/helpers/browser/js-loader.js +4 -4
- package/lib/helpers/browser/prefetch-loader.js +1 -1
- package/lib/helpers/browser/preload-loader.js +1 -1
- package/lib/helpers/browser/wasm-loader.js +1 -1
- package/lib/helpers/bundle-url.js +4 -4
- package/lib/helpers/cacheLoader.js +4 -4
- package/lib/helpers/conditional-loader-dev.js +1 -1
- package/lib/helpers/get-worker-url.js +1 -1
- package/lib/helpers/node/html-loader.js +2 -2
- package/lib/helpers/node/js-loader.js +2 -2
- package/lib/helpers/node/wasm-loader.js +2 -2
- package/lib/helpers/worker/js-loader.js +1 -1
- package/lib/helpers/worker/wasm-loader.js +1 -1
- package/package.json +8 -8
- package/src/helpers/.babelrc +0 -12
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const cacheLoader = require('../cacheLoader');
|
|
4
4
|
module.exports = cacheLoader(function (bundle) {
|
|
5
5
|
return new Promise(function (resolve, reject) {
|
|
6
6
|
// Don't insert the same link element twice (e.g. if it was already in the HTML)
|
|
7
|
-
|
|
8
|
-
if ([].concat(existingLinks).some(function
|
|
7
|
+
let existingLinks = document.getElementsByTagName('link');
|
|
8
|
+
if ([].concat(existingLinks).some(function (link) {
|
|
9
9
|
return link.href === bundle && link.rel.indexOf('stylesheet') > -1;
|
|
10
10
|
})) {
|
|
11
11
|
resolve();
|
|
@@ -1,130 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
jitter = Math.round(Math.random() * 100);
|
|
60
|
-
delay = Math.min(Math.pow(2, i), 8) * 1000;
|
|
61
|
-
_context.next = 5;
|
|
62
|
-
return new Promise(function (resolve) {
|
|
63
|
-
return setTimeout(resolve, delay + jitter);
|
|
64
|
-
});
|
|
65
|
-
case 5:
|
|
66
|
-
_context.next = 7;
|
|
67
|
-
return __parcel__import__("".concat(url, "?t=").concat(Date.now()));
|
|
68
|
-
case 7:
|
|
69
|
-
_context.t0 = _context.sent;
|
|
70
|
-
return _context.abrupt("return", {
|
|
71
|
-
v: _context.t0
|
|
72
|
-
});
|
|
73
|
-
case 11:
|
|
74
|
-
_context.prev = 11;
|
|
75
|
-
_context.t1 = _context["catch"](0);
|
|
76
|
-
if (!(i === maxRetries)) {
|
|
77
|
-
_context.next = 15;
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
throw _context.t1;
|
|
81
|
-
case 15:
|
|
82
|
-
// Dispatch event for reporting
|
|
83
|
-
event = {
|
|
84
|
-
detail: {
|
|
85
|
-
target: url,
|
|
86
|
-
attempt: i
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
globalThis.dispatchEvent(new CustomEvent('atlaspack:import_retry', event));
|
|
90
|
-
case 17:
|
|
91
|
-
case "end":
|
|
92
|
-
return _context.stop();
|
|
93
|
-
}
|
|
94
|
-
}, _loop, null, [[0, 11]]);
|
|
95
|
-
});
|
|
96
|
-
i = 1;
|
|
97
|
-
case 10:
|
|
98
|
-
if (!(i <= maxRetries)) {
|
|
99
|
-
_context2.next = 18;
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
return _context2.delegateYield(_loop(), "t1", 12);
|
|
103
|
-
case 12:
|
|
104
|
-
_ret = _context2.t1;
|
|
105
|
-
if (!_ret) {
|
|
106
|
-
_context2.next = 15;
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
109
|
-
return _context2.abrupt("return", _ret.v);
|
|
110
|
-
case 15:
|
|
111
|
-
i++;
|
|
112
|
-
_context2.next = 10;
|
|
113
|
-
break;
|
|
114
|
-
case 18:
|
|
115
|
-
case "end":
|
|
116
|
-
return _context2.stop();
|
|
117
|
-
}
|
|
118
|
-
}, _callee, null, [[0, 6]]);
|
|
119
|
-
}))();
|
|
120
|
-
}
|
|
121
|
-
return _context3.abrupt("return", retryState[url]);
|
|
122
|
-
case 9:
|
|
123
|
-
case "end":
|
|
124
|
-
return _context3.stop();
|
|
3
|
+
async function load(id) {
|
|
4
|
+
// Global state maps the initial url to the completed task.
|
|
5
|
+
// This ensures the same URL is used in subsequent imports
|
|
6
|
+
if (!parcelRequire._retryState) parcelRequire._retryState = {};
|
|
7
|
+
/** @type {Record<string, Promise<void>>} */
|
|
8
|
+
const retryState = parcelRequire._retryState;
|
|
9
|
+
|
|
10
|
+
// The number of retries before rethrowing the error
|
|
11
|
+
const maxRetries = 6;
|
|
12
|
+
|
|
13
|
+
// Resolve the request URL from the bundle ID
|
|
14
|
+
const url = require('../bundle-manifest').resolve(id);
|
|
15
|
+
|
|
16
|
+
// Wait for the user to go online before making a request
|
|
17
|
+
if (!globalThis.navigator.onLine) {
|
|
18
|
+
await new Promise(resolve => globalThis.addEventListener('online', resolve, {
|
|
19
|
+
once: true
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// If the import has not run or is not currently running
|
|
24
|
+
// then start the import retry task. Otherwise reuse the
|
|
25
|
+
// existing result or wait for the current task to complete
|
|
26
|
+
if (!retryState[url]) {
|
|
27
|
+
retryState[url] = (async () => {
|
|
28
|
+
// Try first request with normal import circuit
|
|
29
|
+
try {
|
|
30
|
+
// eslint-disable-next-line no-undef
|
|
31
|
+
return await __parcel__import__(url);
|
|
32
|
+
} catch {
|
|
33
|
+
/**/
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Attempt to retry request
|
|
37
|
+
for (let i = 1; i <= maxRetries; i++) {
|
|
38
|
+
try {
|
|
39
|
+
// Wait for an increasing delay time
|
|
40
|
+
const jitter = Math.round(Math.random() * 100);
|
|
41
|
+
const delay = Math.min(Math.pow(2, i), 8) * 1000;
|
|
42
|
+
await new Promise(resolve => setTimeout(resolve, delay + jitter));
|
|
43
|
+
|
|
44
|
+
// Append the current time to the request URL
|
|
45
|
+
// to ensure it has not been cached by the browser
|
|
46
|
+
// eslint-disable-next-line no-undef
|
|
47
|
+
return await __parcel__import__(`${url}?t=${Date.now()}`);
|
|
48
|
+
} catch (error) {
|
|
49
|
+
if (i === maxRetries) throw error;
|
|
50
|
+
// Dispatch event for reporting
|
|
51
|
+
const event = {
|
|
52
|
+
detail: {
|
|
53
|
+
target: url,
|
|
54
|
+
attempt: i
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
globalThis.dispatchEvent(new CustomEvent('atlaspack:import_retry', event));
|
|
58
|
+
}
|
|
125
59
|
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return
|
|
60
|
+
})();
|
|
61
|
+
}
|
|
62
|
+
return retryState[url];
|
|
129
63
|
}
|
|
130
64
|
module.exports = load;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
return __parcel__import__(require('@atlaspack/domain-sharding').shardUrl(require('../bundle-manifest').resolve(id), maxShards));
|
|
7
|
-
};
|
|
3
|
+
let load = maxShards => id => {
|
|
4
|
+
// eslint-disable-next-line no-undef
|
|
5
|
+
return __parcel__import__(require('@atlaspack/domain-sharding').shardUrl(require('../bundle-manifest').resolve(id), maxShards));
|
|
8
6
|
};
|
|
9
7
|
module.exports = load;
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const cacheLoader = require('../cacheLoader');
|
|
4
4
|
module.exports = cacheLoader(function (bundle) {
|
|
5
|
-
return new Promise(
|
|
5
|
+
return new Promise((resolve, reject) => {
|
|
6
6
|
// Add a global function to handle when the script loads.
|
|
7
|
-
|
|
8
|
-
global[globalName] =
|
|
7
|
+
let globalName = `i${('' + Math.random()).slice(2)}`;
|
|
8
|
+
global[globalName] = m => {
|
|
9
9
|
resolve(m);
|
|
10
10
|
cleanup();
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
// Remove script on load or error
|
|
14
|
-
|
|
14
|
+
let cleanup = () => {
|
|
15
15
|
delete global[globalName];
|
|
16
16
|
script.onerror = null;
|
|
17
17
|
script.remove();
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
// Append an inline script tag into the document head
|
|
21
|
-
|
|
21
|
+
let script = document.createElement('script');
|
|
22
22
|
script.async = true;
|
|
23
23
|
script.type = 'module';
|
|
24
24
|
script.charset = 'utf-8';
|
|
25
|
-
script.textContent =
|
|
25
|
+
script.textContent = `import * as m from '${bundle}'; ${globalName}(m);`;
|
|
26
26
|
script.onerror = function (e) {
|
|
27
27
|
reject(e);
|
|
28
28
|
cleanup();
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const cacheLoader = require('../cacheLoader');
|
|
4
4
|
module.exports = cacheLoader(function (bundle) {
|
|
5
5
|
return new Promise(function (resolve, reject) {
|
|
6
6
|
// Don't insert the same script twice (e.g. if it was already in the HTML)
|
|
7
|
-
|
|
8
|
-
if ([].concat(existingScripts).some(function
|
|
7
|
+
let existingScripts = document.getElementsByTagName('script');
|
|
8
|
+
if ([].concat(existingScripts).some(function (script) {
|
|
9
9
|
return script.src === bundle;
|
|
10
10
|
})) {
|
|
11
11
|
resolve();
|
|
@@ -21,7 +21,7 @@ module.exports = cacheLoader(function (bundle) {
|
|
|
21
21
|
script.type = 'text/javascript';
|
|
22
22
|
script.src = bundle;
|
|
23
23
|
script.onerror = function (e) {
|
|
24
|
-
var error = new TypeError(
|
|
24
|
+
var error = new TypeError(`Failed to fetch dynamically imported module: ${bundle}. Error: ${e.message}`);
|
|
25
25
|
script.onerror = script.onload = null;
|
|
26
26
|
script.remove();
|
|
27
27
|
reject(error);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const stackTraceUrlRegexp = /(https?|file|ftp|(chrome|moz|safari-web)-extension):\/\/[^)\n]+/g;
|
|
4
|
+
const bundleURL = {};
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Retrieves the cached bundle URL for a given identifier.
|
|
@@ -13,7 +13,7 @@ var bundleURL = {};
|
|
|
13
13
|
* @returns {string} The URL of the bundle, without file name.
|
|
14
14
|
*/
|
|
15
15
|
function getBundleURLCached(id, inputError) {
|
|
16
|
-
|
|
16
|
+
let value = bundleURL[id];
|
|
17
17
|
if (!value) {
|
|
18
18
|
value = getBundleURL(inputError);
|
|
19
19
|
bundleURL[id] = value;
|
|
@@ -31,7 +31,7 @@ function getBaseURL(url) {
|
|
|
31
31
|
}
|
|
32
32
|
function getBundleURL(inputError) {
|
|
33
33
|
try {
|
|
34
|
-
throw inputError
|
|
34
|
+
throw inputError ?? new Error();
|
|
35
35
|
} catch (err) {
|
|
36
36
|
var matches = ('' + err.stack).match(stackTraceUrlRegexp);
|
|
37
37
|
if (matches) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
let cachedBundles = {};
|
|
4
|
+
let cachedPreloads = {};
|
|
5
|
+
let cachedPrefetches = {};
|
|
6
6
|
function getCache(type) {
|
|
7
7
|
switch (type) {
|
|
8
8
|
case 'preload':
|
|
@@ -15,7 +15,7 @@ function getCache(type) {
|
|
|
15
15
|
}
|
|
16
16
|
module.exports = function (loader, type) {
|
|
17
17
|
return function (bundle) {
|
|
18
|
-
|
|
18
|
+
let cache = getCache(type);
|
|
19
19
|
if (cache[bundle]) {
|
|
20
20
|
return cache[bundle];
|
|
21
21
|
}
|
|
@@ -5,7 +5,7 @@ module.exports = function (cond, ifTrue, ifFalse) {
|
|
|
5
5
|
throw new TypeError('"globalThis.__MCOND" was not set to an object. Ensure the function is set to return the key condition for conditional bundles to load with.');
|
|
6
6
|
}
|
|
7
7
|
if (typeof globalThis.__MCOND(cond) === 'undefined') {
|
|
8
|
-
console.error("
|
|
8
|
+
console.error(`"${cond}" did not match on globalThis.__MCOND. The conditional dependency will be loaded with the false variant.`);
|
|
9
9
|
}
|
|
10
10
|
try {
|
|
11
11
|
return globalThis.__MCOND(cond) ? ifTrue() : ifFalse();
|
|
@@ -7,7 +7,7 @@ module.exports = function (workerUrl, origin, isESM) {
|
|
|
7
7
|
return workerUrl;
|
|
8
8
|
} else {
|
|
9
9
|
// Otherwise, create a blob URL which loads the worker bundle with `importScripts`.
|
|
10
|
-
|
|
10
|
+
let source = isESM ? 'import ' + JSON.stringify(workerUrl) + ';' : 'importScripts(' + JSON.stringify(workerUrl) + ');';
|
|
11
11
|
return URL.createObjectURL(new Blob([source], {
|
|
12
12
|
type: 'application/javascript'
|
|
13
13
|
}));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const cacheLoader = require('../cacheLoader');
|
|
5
5
|
module.exports = cacheLoader(function (bundle) {
|
|
6
6
|
return new Promise(function (resolve, reject) {
|
|
7
7
|
fs.readFile(__dirname + bundle, 'utf8', function (err, data) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const cacheLoader = require('../cacheLoader');
|
|
5
5
|
module.exports = cacheLoader(function (bundle) {
|
|
6
6
|
return new Promise(function (resolve, reject) {
|
|
7
7
|
fs.readFile(__dirname + bundle, 'utf8', function (err, data) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const cacheLoader = require('../cacheLoader');
|
|
5
5
|
module.exports = cacheLoader(function (bundle) {
|
|
6
6
|
return new Promise(function (resolve, reject) {
|
|
7
7
|
fs.readFile(__dirname + bundle, function (err, data) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
/* global __parcel__importScripts__:readonly*/
|
|
4
|
-
|
|
4
|
+
const cacheLoader = require('../cacheLoader');
|
|
5
5
|
module.exports = cacheLoader(function (bundle) {
|
|
6
6
|
return new Promise(function (resolve, reject) {
|
|
7
7
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaspack/runtime-js",
|
|
3
|
-
"version": "2.12.1-canary.
|
|
3
|
+
"version": "2.12.1-canary.3613+d904a75ee",
|
|
4
4
|
"license": "(MIT OR Apache-2.0)",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
"main": "lib/JSRuntime.js",
|
|
13
13
|
"source": "src/JSRuntime.js",
|
|
14
14
|
"engines": {
|
|
15
|
-
"atlaspack": "2.12.1-canary.
|
|
15
|
+
"atlaspack": "2.12.1-canary.3613+d904a75ee",
|
|
16
16
|
"node": ">= 16.0.0"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@atlaspack/diagnostic": "2.12.1-canary.
|
|
20
|
-
"@atlaspack/domain-sharding": "2.12.1-canary.
|
|
21
|
-
"@atlaspack/feature-flags": "2.12.1-canary.
|
|
22
|
-
"@atlaspack/plugin": "2.12.1-canary.
|
|
23
|
-
"@atlaspack/utils": "2.12.1-canary.
|
|
19
|
+
"@atlaspack/diagnostic": "2.12.1-canary.3613+d904a75ee",
|
|
20
|
+
"@atlaspack/domain-sharding": "2.12.1-canary.3613+d904a75ee",
|
|
21
|
+
"@atlaspack/feature-flags": "2.12.1-canary.3613+d904a75ee",
|
|
22
|
+
"@atlaspack/plugin": "2.12.1-canary.3613+d904a75ee",
|
|
23
|
+
"@atlaspack/utils": "2.12.1-canary.3613+d904a75ee",
|
|
24
24
|
"nullthrows": "^1.1.1"
|
|
25
25
|
},
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "d904a75eecaea2c2e62cd8ff18f217057d545fc4"
|
|
27
27
|
}
|