@merkur/integration 0.29.2 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.cjs +17 -17
- package/lib/index.es5.js +1 -1
- package/lib/index.es9.cjs +11 -34
- package/lib/index.es9.mjs +11 -33
- package/lib/index.js +17 -17
- package/lib/index.mjs +17 -17
- package/lib/index.umd.js +1 -1
- package/package.json +3 -3
package/lib/index.cjs
CHANGED
|
@@ -52,22 +52,15 @@ function _loadScript(asset, root) {
|
|
|
52
52
|
const scriptElement = root.querySelector(`script[src='${asset.source}']`);
|
|
53
53
|
|
|
54
54
|
if (scriptElement) {
|
|
55
|
-
if (
|
|
56
|
-
(
|
|
57
|
-
performance.getEntriesByName &&
|
|
58
|
-
performance
|
|
59
|
-
.getEntriesByName(scriptElement.src)
|
|
60
|
-
.find(
|
|
61
|
-
(entry) => entry.entryType === 'resource' && entry.responseEnd
|
|
62
|
-
)) ||
|
|
63
|
-
!performance ||
|
|
64
|
-
!performance.getEntriesByName
|
|
65
|
-
) {
|
|
66
|
-
setTimeout(resolve, 0);
|
|
67
|
-
return;
|
|
55
|
+
if (!asset.test) {
|
|
56
|
+
resolve();
|
|
68
57
|
}
|
|
69
58
|
|
|
70
59
|
scriptElement.addEventListener('load', resolve);
|
|
60
|
+
scriptElement.addEventListener(
|
|
61
|
+
'error',
|
|
62
|
+
asset.optional ? resolve : reject
|
|
63
|
+
);
|
|
71
64
|
return;
|
|
72
65
|
}
|
|
73
66
|
|
|
@@ -144,7 +137,7 @@ function loadStyleAssets(assets, root = document.head) {
|
|
|
144
137
|
return Promise.all(stylesToRender.map((asset) => _loadStyle(asset, root)));
|
|
145
138
|
}
|
|
146
139
|
|
|
147
|
-
function loadScriptAssets(assets, root = document.head) {
|
|
140
|
+
async function loadScriptAssets(assets, root = document.head) {
|
|
148
141
|
const scriptElements = root.querySelectorAll('script');
|
|
149
142
|
const scriptsToRender = assets.reduce((scripts, asset) => {
|
|
150
143
|
const { source } = asset;
|
|
@@ -164,9 +157,16 @@ function loadScriptAssets(assets, root = document.head) {
|
|
|
164
157
|
}
|
|
165
158
|
|
|
166
159
|
if (!_asset.source) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
)
|
|
160
|
+
const message = `Asset '${_asset.name}' is missing ES variant and could not be loaded.`;
|
|
161
|
+
|
|
162
|
+
if (!_asset.optional) {
|
|
163
|
+
const error = new Error(message);
|
|
164
|
+
error.asset = _asset;
|
|
165
|
+
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
console.warn(message);
|
|
170
170
|
return scripts;
|
|
171
171
|
}
|
|
172
172
|
}
|
package/lib/index.es5.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,r;require("core-js/modules/es.object.define-property.js"),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.object.values.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.array.find.js"),require("core-js/modules/web.timers.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.array.reduce.js"),require("core-js/modules/es.array.from.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.function.name.js"),Object.defineProperty(exports,"__esModule",{value:!0});var t={isES9Supported:function(){return void 0===e&&(e=t.test("return (() => { const o = { t: 1 }; return { ...o }; })() && (async () => ({}))()")&&!!Object.values),e},isES11Supported:function(){return void 0===r&&(r=t.test("return (() => { const o = { t: { q: true } }; return o?.t?.q && (o?.a?.q ?? true); })()")&&t.test('return typeof Promise.allSettled === "function"')&&t.test('return typeof globalThis !== "undefined"')&&t.test('return typeof 9007199254740991n === "bigint"')),r},test:function(e){try{return!!new Function(e)()}catch(e){return!1}}};function s(e,r){return new Promise((function(t,s){var o=r.querySelector("script[src='".concat(e.source,"']"));if(o)return performance&&performance.getEntriesByName&&performance.getEntriesByName(o.src).find((function(e){return"resource"===e.entryType&&e.responseEnd}))||!performance||!performance.getEntriesByName?void setTimeout(t,0):void o.addEventListener("load",t);var n=document.createElement("script");if("script"===e.type){n.defer=!0,n.onload=t,n.onerror=e.optional?t:s,n.src=e.source;var u=e.attr;if(u&&Object.keys(u).length)for(var c in u){var i=u[c];"boolean"==typeof i?i?n.setAttribute(c,""):n.removeAttribute(c):n.setAttribute(c,i)}}else n.text=e.source,t();r.appendChild(n)}))}function o(e,r){return new Promise((function(t,s){if("stylesheet"===e.type){var o=document.createElement("link");o.onload=t,o.onerror=s,o.rel="stylesheet",o.href=e.source,r.appendChild(o)}else{var n=document.createElement("style");n.innerHTML=e.source,r.appendChild(n),t()}}))}function n(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.head,t=r.querySelectorAll("style"),s=e.filter((function(e){return e.source&&("stylesheet"===e.type&&!r.querySelector("link[href='".concat(e.source,"']"))||"inlineStyle"===e.type&&Array.from(t).reduce((function(r,t){return t.innerHTML!==e.source&&r}),!0))}));return Promise.all(s.map((function(e){return o(e,r)})))}function u(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.head,o=r.querySelectorAll("script"),n=e.reduce((function(e,r){var s=r.source,n=Object.assign({},r);return"script"!==n.type&&"inlineScript"!==n.type?e:s!==Object(s)||(s.es11&&t.isES11Supported()?n.source=s.es11:s.es9&&t.isES9Supported()?n.source=s.es9:n.source=s.es5,n.source)?(Array.from(o).reduce((function(e,r){return r.text===n.source||e}),!1)||n.test&&t.test(n.test)||e.push(n),e):(console.warn("Asset '".concat(n.name,"' is missing ES variant and could not be loaded.")),e)}),[]);return Promise.all(n.map((function(e){return s(e,r)})))}exports.loadAssets=function(e,r){return Promise.all([u(e,r),n(e,r)])},exports.loadScriptAssets=u,exports.loadStyleAssets=n,exports.testScript=t;
|
|
1
|
+
"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */t=function(){return r};var r={},o=Object.prototype,n=o.hasOwnProperty,i=Object.defineProperty||function(e,t,r){e[t]=r.value},s="function"==typeof Symbol?Symbol:{},u=s.iterator||"@@iterator",c=s.asyncIterator||"@@asyncIterator",a=s.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function f(e,t,r,o){var n=t&&t.prototype instanceof d?t:d,s=Object.create(n.prototype),u=new O(o||[]);return i(s,"_invoke",{value:q(e,r,u)}),s}function h(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}r.wrap=f;var p={};function d(){}function y(){}function m(){}var v={};l(v,u,(function(){return this}));var j=Object.getPrototypeOf,g=j&&j(j(_([])));g&&g!==o&&n.call(g,u)&&(v=g);var b=m.prototype=d.prototype=Object.create(v);function w(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function x(t,r){function o(i,s,u,c){var a=h(t[i],t,s);if("throw"!==a.type){var l=a.arg,f=l.value;return f&&"object"==e(f)&&n.call(f,"__await")?r.resolve(f.__await).then((function(e){o("next",e,u,c)}),(function(e){o("throw",e,u,c)})):r.resolve(f).then((function(e){l.value=e,u(l)}),(function(e){return o("throw",e,u,c)}))}c(a.arg)}var s;i(this,"_invoke",{value:function(e,t){function n(){return new r((function(r,n){o(e,t,r,n)}))}return s=s?s.then(n,n):n()}})}function q(e,t,r){var o="suspendedStart";return function(n,i){if("executing"===o)throw new Error("Generator is already running");if("completed"===o){if("throw"===n)throw i;return P()}for(r.method=n,r.arg=i;;){var s=r.delegate;if(s){var u=E(s,r);if(u){if(u===p)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===o)throw o="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o="executing";var c=h(e,t,r);if("normal"===c.type){if(o=r.done?"completed":"suspendedYield",c.arg===p)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(o="completed",r.method="throw",r.arg=c.arg)}}}function E(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method))return p;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var o=h(r,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,p;var n=o.arg;return n?n.done?(t[e.resultName]=n.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,p):n:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,p)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function _(e){if(e){var t=e[u];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:P}}function P(){return{value:void 0,done:!0}}return y.prototype=m,i(b,"constructor",{value:m,configurable:!0}),i(m,"constructor",{value:y,configurable:!0}),y.displayName=l(m,a,"GeneratorFunction"),r.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},r.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,a,"GeneratorFunction")),e.prototype=Object.create(b),e},r.awrap=function(e){return{__await:e}},w(x.prototype),l(x.prototype,c,(function(){return this})),r.AsyncIterator=x,r.async=function(e,t,o,n,i){void 0===i&&(i=Promise);var s=new x(f(e,t,o,n),i);return r.isGeneratorFunction(t)?s:s.next().then((function(e){return e.done?e.value:s.next()}))},w(b),l(b,a,"Generator"),l(b,u,(function(){return this})),l(b,"toString",(function(){return"[object Generator]"})),r.keys=function(e){var t=Object(e),r=[];for(var o in t)r.push(o);return r.reverse(),function e(){for(;r.length;){var o=r.pop();if(o in t)return e.value=o,e.done=!1,e}return e.done=!0,e}},r.values=_,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(r,o){return s.type="throw",s.arg=e,t.next=r,o&&(t.method="next",t.arg=void 0),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var s=i?i.completion:{};return s.type=e,s.arg=t,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(s)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),p},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var o=r.completion;if("throw"===o.type){var n=o.arg;S(r)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:_(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},r}function r(e,t,r,o,n,i,s){try{var u=e[i](s),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(o,n)}function o(e){return function(){var t=this,o=arguments;return new Promise((function(n,i){var s=e.apply(t,o);function u(e){r(s,n,i,u,c,"next",e)}function c(e){r(s,n,i,u,c,"throw",e)}u(void 0)}))}}var n,i;require("core-js/modules/es.object.define-property.js"),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.object.values.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.array.reduce.js"),require("core-js/modules/es.array.from.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.symbol.js"),require("core-js/modules/es.symbol.description.js"),require("core-js/modules/es.symbol.iterator.js"),require("core-js/modules/es.symbol.async-iterator.js"),require("core-js/modules/es.symbol.to-string-tag.js"),require("core-js/modules/es.json.to-string-tag.js"),require("core-js/modules/es.math.to-string-tag.js"),require("core-js/modules/es.object.create.js"),require("core-js/modules/es.object.get-prototype-of.js"),require("core-js/modules/es.array.for-each.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/es.object.set-prototype-of.js"),require("core-js/modules/es.array.reverse.js"),require("core-js/modules/es.array.slice.js"),Object.defineProperty(exports,"__esModule",{value:!0});var s={isES9Supported:function(){return void 0===n&&(n=s.test("return (() => { const o = { t: 1 }; return { ...o }; })() && (async () => ({}))()")&&!!Object.values),n},isES11Supported:function(){return void 0===i&&(i=s.test("return (() => { const o = { t: { q: true } }; return o?.t?.q && (o?.a?.q ?? true); })()")&&s.test('return typeof Promise.allSettled === "function"')&&s.test('return typeof globalThis !== "undefined"')&&s.test('return typeof 9007199254740991n === "bigint"')),i},test:function(e){try{return!!new Function(e)()}catch(e){return!1}}};function u(e,t){return new Promise((function(r,o){var n=t.querySelector("script[src='".concat(e.source,"']"));if(n)return e.test||r(),n.addEventListener("load",r),void n.addEventListener("error",e.optional?r:o);var i=document.createElement("script");if("script"===e.type){i.defer=!0,i.onload=r,i.onerror=e.optional?r:o,i.src=e.source;var s=e.attr;if(s&&Object.keys(s).length)for(var u in s){var c=s[u];"boolean"==typeof c?c?i.setAttribute(u,""):i.removeAttribute(u):i.setAttribute(u,c)}}else i.text=e.source,r();t.appendChild(i)}))}function c(e,t){return new Promise((function(r,o){if("stylesheet"===e.type){var n=document.createElement("link");n.onload=r,n.onerror=o,n.rel="stylesheet",n.href=e.source,t.appendChild(n)}else{var i=document.createElement("style");i.innerHTML=e.source,t.appendChild(i),r()}}))}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.head,r=t.querySelectorAll("style"),o=e.filter((function(e){return e.source&&("stylesheet"===e.type&&!t.querySelector("link[href='".concat(e.source,"']"))||"inlineStyle"===e.type&&Array.from(r).reduce((function(t,r){return r.innerHTML!==e.source&&t}),!0))}));return Promise.all(o.map((function(e){return c(e,t)})))}function l(e){return f.apply(this,arguments)}function f(){return f=o(t().mark((function e(r){var o,n,i,c=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=c.length>1&&void 0!==c[1]?c[1]:document.head,n=o.querySelectorAll("script"),i=r.reduce((function(e,t){var r=t.source,o=Object.assign({},t);if("script"!==o.type&&"inlineScript"!==o.type)return e;if(r===Object(r)&&(r.es11&&s.isES11Supported()?o.source=r.es11:r.es9&&s.isES9Supported()?o.source=r.es9:o.source=r.es5,!o.source)){var i="Asset '".concat(o.name,"' is missing ES variant and could not be loaded.");if(!o.optional){var u=new Error(i);throw u.asset=o,u}return console.warn(i),e}return Array.from(n).reduce((function(e,t){return t.text===o.source||e}),!1)||o.test&&s.test(o.test)||e.push(o),e}),[]),e.abrupt("return",Promise.all(i.map((function(e){return u(e,o)}))));case 4:case"end":return e.stop()}}),e)}))),f.apply(this,arguments)}exports.loadAssets=function(e,t){return Promise.all([l(e,t),a(e,t)])},exports.loadScriptAssets=l,exports.loadStyleAssets=a,exports.testScript=s;
|
package/lib/index.es9.cjs
CHANGED
|
@@ -3,27 +3,20 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
let _isES9Supported;
|
|
8
|
-
|
|
9
7
|
let _isES11Supported;
|
|
10
|
-
|
|
11
8
|
function isES9Supported() {
|
|
12
9
|
if (_isES9Supported === undefined) {
|
|
13
10
|
_isES9Supported = exported.test('return (() => { const o = { t: 1 }; return { ...o }; })() && (async () => ({}))()') && !!Object.values;
|
|
14
11
|
}
|
|
15
|
-
|
|
16
12
|
return _isES9Supported;
|
|
17
13
|
}
|
|
18
|
-
|
|
19
14
|
function isES11Supported() {
|
|
20
15
|
if (_isES11Supported === undefined) {
|
|
21
16
|
_isES11Supported = exported.test('return (() => { const o = { t: { q: true } }; return o?.t?.q && (o?.a?.q ?? true); })()') && exported.test('return typeof Promise.allSettled === "function"') && exported.test('return typeof globalThis !== "undefined"') && exported.test('return typeof 9007199254740991n === "bigint"');
|
|
22
17
|
}
|
|
23
|
-
|
|
24
18
|
return _isES11Supported;
|
|
25
19
|
}
|
|
26
|
-
|
|
27
20
|
function test(snippet) {
|
|
28
21
|
try {
|
|
29
22
|
const fn = new Function(snippet);
|
|
@@ -33,29 +26,23 @@ function test(snippet) {
|
|
|
33
26
|
return false;
|
|
34
27
|
}
|
|
35
28
|
}
|
|
36
|
-
|
|
37
29
|
const exported = {
|
|
38
30
|
isES9Supported,
|
|
39
31
|
isES11Supported,
|
|
40
32
|
test
|
|
41
33
|
};
|
|
42
|
-
|
|
43
34
|
function _loadScript(asset, root) {
|
|
44
35
|
return new Promise((resolve, reject) => {
|
|
45
36
|
const scriptElement = root.querySelector(`script[src='${asset.source}']`);
|
|
46
|
-
|
|
47
37
|
if (scriptElement) {
|
|
48
|
-
if (
|
|
49
|
-
|
|
50
|
-
return;
|
|
38
|
+
if (!asset.test) {
|
|
39
|
+
resolve();
|
|
51
40
|
}
|
|
52
|
-
|
|
53
41
|
scriptElement.addEventListener('load', resolve);
|
|
42
|
+
scriptElement.addEventListener('error', asset.optional ? resolve : reject);
|
|
54
43
|
return;
|
|
55
44
|
}
|
|
56
|
-
|
|
57
45
|
const script = document.createElement('script');
|
|
58
|
-
|
|
59
46
|
if (asset.type === 'script') {
|
|
60
47
|
script.defer = true;
|
|
61
48
|
script.onload = resolve;
|
|
@@ -64,11 +51,9 @@ function _loadScript(asset, root) {
|
|
|
64
51
|
const {
|
|
65
52
|
attr
|
|
66
53
|
} = asset;
|
|
67
|
-
|
|
68
54
|
if (attr && Object.keys(attr).length) {
|
|
69
55
|
for (const name in attr) {
|
|
70
56
|
const value = attr[name];
|
|
71
|
-
|
|
72
57
|
if (typeof value === 'boolean') {
|
|
73
58
|
if (value) {
|
|
74
59
|
script.setAttribute(name, '');
|
|
@@ -84,11 +69,9 @@ function _loadScript(asset, root) {
|
|
|
84
69
|
script.text = asset.source;
|
|
85
70
|
resolve();
|
|
86
71
|
}
|
|
87
|
-
|
|
88
72
|
root.appendChild(script);
|
|
89
73
|
});
|
|
90
74
|
}
|
|
91
|
-
|
|
92
75
|
function _loadStyle(asset, root) {
|
|
93
76
|
return new Promise((resolve, reject) => {
|
|
94
77
|
if (asset.type === 'stylesheet') {
|
|
@@ -106,32 +89,26 @@ function _loadStyle(asset, root) {
|
|
|
106
89
|
}
|
|
107
90
|
});
|
|
108
91
|
}
|
|
109
|
-
|
|
110
92
|
function loadStyleAssets(assets, root = document.head) {
|
|
111
93
|
const styleElements = root.querySelectorAll('style');
|
|
112
94
|
const stylesToRender = assets.filter(asset => asset.source && (asset.type === 'stylesheet' && !root.querySelector(`link[href='${asset.source}']`) || asset.type === 'inlineStyle' && Array.from(styleElements).reduce((acc, cur) => {
|
|
113
95
|
if (cur.innerHTML === asset.source) {
|
|
114
96
|
return false;
|
|
115
97
|
}
|
|
116
|
-
|
|
117
98
|
return acc;
|
|
118
99
|
}, true)));
|
|
119
100
|
return Promise.all(stylesToRender.map(asset => _loadStyle(asset, root)));
|
|
120
101
|
}
|
|
121
|
-
|
|
122
|
-
function loadScriptAssets(assets, root = document.head) {
|
|
102
|
+
async function loadScriptAssets(assets, root = document.head) {
|
|
123
103
|
const scriptElements = root.querySelectorAll('script');
|
|
124
104
|
const scriptsToRender = assets.reduce((scripts, asset) => {
|
|
125
105
|
const {
|
|
126
106
|
source
|
|
127
107
|
} = asset;
|
|
128
|
-
|
|
129
108
|
const _asset = Object.assign({}, asset);
|
|
130
|
-
|
|
131
109
|
if (_asset.type !== 'script' && _asset.type !== 'inlineScript') {
|
|
132
110
|
return scripts;
|
|
133
111
|
}
|
|
134
|
-
|
|
135
112
|
if (source === Object(source)) {
|
|
136
113
|
if (source.es11 && exported.isES11Supported()) {
|
|
137
114
|
_asset.source = source.es11;
|
|
@@ -140,33 +117,33 @@ function loadScriptAssets(assets, root = document.head) {
|
|
|
140
117
|
} else {
|
|
141
118
|
_asset.source = source.es5;
|
|
142
119
|
}
|
|
143
|
-
|
|
144
120
|
if (!_asset.source) {
|
|
145
|
-
|
|
121
|
+
const message = `Asset '${_asset.name}' is missing ES variant and could not be loaded.`;
|
|
122
|
+
if (!_asset.optional) {
|
|
123
|
+
const error = new Error(message);
|
|
124
|
+
error.asset = _asset;
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
console.warn(message);
|
|
146
128
|
return scripts;
|
|
147
129
|
}
|
|
148
130
|
}
|
|
149
|
-
|
|
150
131
|
if (Array.from(scriptElements).reduce((acc, cur) => {
|
|
151
132
|
if (cur.text === _asset.source) {
|
|
152
133
|
return true;
|
|
153
134
|
}
|
|
154
|
-
|
|
155
135
|
return acc;
|
|
156
136
|
}, false) || (_asset.test ? exported.test(_asset.test) : false)) {
|
|
157
137
|
return scripts;
|
|
158
138
|
}
|
|
159
|
-
|
|
160
139
|
scripts.push(_asset);
|
|
161
140
|
return scripts;
|
|
162
141
|
}, []);
|
|
163
142
|
return Promise.all(scriptsToRender.map(asset => _loadScript(asset, root)));
|
|
164
143
|
}
|
|
165
|
-
|
|
166
144
|
function loadAssets(assets, root) {
|
|
167
145
|
return Promise.all([loadScriptAssets(assets, root), loadStyleAssets(assets, root)]);
|
|
168
146
|
}
|
|
169
|
-
|
|
170
147
|
exports.loadAssets = loadAssets;
|
|
171
148
|
exports.loadScriptAssets = loadScriptAssets;
|
|
172
149
|
exports.loadStyleAssets = loadStyleAssets;
|
package/lib/index.es9.mjs
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
let _isES9Supported;
|
|
2
|
-
|
|
3
2
|
let _isES11Supported;
|
|
4
|
-
|
|
5
3
|
function isES9Supported() {
|
|
6
4
|
if (_isES9Supported === undefined) {
|
|
7
5
|
_isES9Supported = exported.test('return (() => { const o = { t: 1 }; return { ...o }; })() && (async () => ({}))()') && !!Object.values;
|
|
8
6
|
}
|
|
9
|
-
|
|
10
7
|
return _isES9Supported;
|
|
11
8
|
}
|
|
12
|
-
|
|
13
9
|
function isES11Supported() {
|
|
14
10
|
if (_isES11Supported === undefined) {
|
|
15
11
|
_isES11Supported = exported.test('return (() => { const o = { t: { q: true } }; return o?.t?.q && (o?.a?.q ?? true); })()') && exported.test('return typeof Promise.allSettled === "function"') && exported.test('return typeof globalThis !== "undefined"') && exported.test('return typeof 9007199254740991n === "bigint"');
|
|
16
12
|
}
|
|
17
|
-
|
|
18
13
|
return _isES11Supported;
|
|
19
14
|
}
|
|
20
|
-
|
|
21
15
|
function test(snippet) {
|
|
22
16
|
try {
|
|
23
17
|
const fn = new Function(snippet);
|
|
@@ -27,29 +21,23 @@ function test(snippet) {
|
|
|
27
21
|
return false;
|
|
28
22
|
}
|
|
29
23
|
}
|
|
30
|
-
|
|
31
24
|
const exported = {
|
|
32
25
|
isES9Supported,
|
|
33
26
|
isES11Supported,
|
|
34
27
|
test
|
|
35
28
|
};
|
|
36
|
-
|
|
37
29
|
function _loadScript(asset, root) {
|
|
38
30
|
return new Promise((resolve, reject) => {
|
|
39
31
|
const scriptElement = root.querySelector(`script[src='${asset.source}']`);
|
|
40
|
-
|
|
41
32
|
if (scriptElement) {
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
return;
|
|
33
|
+
if (!asset.test) {
|
|
34
|
+
resolve();
|
|
45
35
|
}
|
|
46
|
-
|
|
47
36
|
scriptElement.addEventListener('load', resolve);
|
|
37
|
+
scriptElement.addEventListener('error', asset.optional ? resolve : reject);
|
|
48
38
|
return;
|
|
49
39
|
}
|
|
50
|
-
|
|
51
40
|
const script = document.createElement('script');
|
|
52
|
-
|
|
53
41
|
if (asset.type === 'script') {
|
|
54
42
|
script.defer = true;
|
|
55
43
|
script.onload = resolve;
|
|
@@ -58,11 +46,9 @@ function _loadScript(asset, root) {
|
|
|
58
46
|
const {
|
|
59
47
|
attr
|
|
60
48
|
} = asset;
|
|
61
|
-
|
|
62
49
|
if (attr && Object.keys(attr).length) {
|
|
63
50
|
for (const name in attr) {
|
|
64
51
|
const value = attr[name];
|
|
65
|
-
|
|
66
52
|
if (typeof value === 'boolean') {
|
|
67
53
|
if (value) {
|
|
68
54
|
script.setAttribute(name, '');
|
|
@@ -78,11 +64,9 @@ function _loadScript(asset, root) {
|
|
|
78
64
|
script.text = asset.source;
|
|
79
65
|
resolve();
|
|
80
66
|
}
|
|
81
|
-
|
|
82
67
|
root.appendChild(script);
|
|
83
68
|
});
|
|
84
69
|
}
|
|
85
|
-
|
|
86
70
|
function _loadStyle(asset, root) {
|
|
87
71
|
return new Promise((resolve, reject) => {
|
|
88
72
|
if (asset.type === 'stylesheet') {
|
|
@@ -100,32 +84,26 @@ function _loadStyle(asset, root) {
|
|
|
100
84
|
}
|
|
101
85
|
});
|
|
102
86
|
}
|
|
103
|
-
|
|
104
87
|
function loadStyleAssets(assets, root = document.head) {
|
|
105
88
|
const styleElements = root.querySelectorAll('style');
|
|
106
89
|
const stylesToRender = assets.filter(asset => asset.source && (asset.type === 'stylesheet' && !root.querySelector(`link[href='${asset.source}']`) || asset.type === 'inlineStyle' && Array.from(styleElements).reduce((acc, cur) => {
|
|
107
90
|
if (cur.innerHTML === asset.source) {
|
|
108
91
|
return false;
|
|
109
92
|
}
|
|
110
|
-
|
|
111
93
|
return acc;
|
|
112
94
|
}, true)));
|
|
113
95
|
return Promise.all(stylesToRender.map(asset => _loadStyle(asset, root)));
|
|
114
96
|
}
|
|
115
|
-
|
|
116
|
-
function loadScriptAssets(assets, root = document.head) {
|
|
97
|
+
async function loadScriptAssets(assets, root = document.head) {
|
|
117
98
|
const scriptElements = root.querySelectorAll('script');
|
|
118
99
|
const scriptsToRender = assets.reduce((scripts, asset) => {
|
|
119
100
|
const {
|
|
120
101
|
source
|
|
121
102
|
} = asset;
|
|
122
|
-
|
|
123
103
|
const _asset = Object.assign({}, asset);
|
|
124
|
-
|
|
125
104
|
if (_asset.type !== 'script' && _asset.type !== 'inlineScript') {
|
|
126
105
|
return scripts;
|
|
127
106
|
}
|
|
128
|
-
|
|
129
107
|
if (source === Object(source)) {
|
|
130
108
|
if (source.es11 && exported.isES11Supported()) {
|
|
131
109
|
_asset.source = source.es11;
|
|
@@ -134,31 +112,31 @@ function loadScriptAssets(assets, root = document.head) {
|
|
|
134
112
|
} else {
|
|
135
113
|
_asset.source = source.es5;
|
|
136
114
|
}
|
|
137
|
-
|
|
138
115
|
if (!_asset.source) {
|
|
139
|
-
|
|
116
|
+
const message = `Asset '${_asset.name}' is missing ES variant and could not be loaded.`;
|
|
117
|
+
if (!_asset.optional) {
|
|
118
|
+
const error = new Error(message);
|
|
119
|
+
error.asset = _asset;
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
122
|
+
console.warn(message);
|
|
140
123
|
return scripts;
|
|
141
124
|
}
|
|
142
125
|
}
|
|
143
|
-
|
|
144
126
|
if (Array.from(scriptElements).reduce((acc, cur) => {
|
|
145
127
|
if (cur.text === _asset.source) {
|
|
146
128
|
return true;
|
|
147
129
|
}
|
|
148
|
-
|
|
149
130
|
return acc;
|
|
150
131
|
}, false) || (_asset.test ? exported.test(_asset.test) : false)) {
|
|
151
132
|
return scripts;
|
|
152
133
|
}
|
|
153
|
-
|
|
154
134
|
scripts.push(_asset);
|
|
155
135
|
return scripts;
|
|
156
136
|
}, []);
|
|
157
137
|
return Promise.all(scriptsToRender.map(asset => _loadScript(asset, root)));
|
|
158
138
|
}
|
|
159
|
-
|
|
160
139
|
function loadAssets(assets, root) {
|
|
161
140
|
return Promise.all([loadScriptAssets(assets, root), loadStyleAssets(assets, root)]);
|
|
162
141
|
}
|
|
163
|
-
|
|
164
142
|
export { loadAssets, loadScriptAssets, loadStyleAssets, exported as testScript };
|
package/lib/index.js
CHANGED
|
@@ -52,22 +52,15 @@ function _loadScript(asset, root) {
|
|
|
52
52
|
const scriptElement = root.querySelector(`script[src='${asset.source}']`);
|
|
53
53
|
|
|
54
54
|
if (scriptElement) {
|
|
55
|
-
if (
|
|
56
|
-
(
|
|
57
|
-
performance.getEntriesByName &&
|
|
58
|
-
performance
|
|
59
|
-
.getEntriesByName(scriptElement.src)
|
|
60
|
-
.find(
|
|
61
|
-
(entry) => entry.entryType === 'resource' && entry.responseEnd
|
|
62
|
-
)) ||
|
|
63
|
-
!performance ||
|
|
64
|
-
!performance.getEntriesByName
|
|
65
|
-
) {
|
|
66
|
-
setTimeout(resolve, 0);
|
|
67
|
-
return;
|
|
55
|
+
if (!asset.test) {
|
|
56
|
+
resolve();
|
|
68
57
|
}
|
|
69
58
|
|
|
70
59
|
scriptElement.addEventListener('load', resolve);
|
|
60
|
+
scriptElement.addEventListener(
|
|
61
|
+
'error',
|
|
62
|
+
asset.optional ? resolve : reject
|
|
63
|
+
);
|
|
71
64
|
return;
|
|
72
65
|
}
|
|
73
66
|
|
|
@@ -144,7 +137,7 @@ function loadStyleAssets(assets, root = document.head) {
|
|
|
144
137
|
return Promise.all(stylesToRender.map((asset) => _loadStyle(asset, root)));
|
|
145
138
|
}
|
|
146
139
|
|
|
147
|
-
function loadScriptAssets(assets, root = document.head) {
|
|
140
|
+
async function loadScriptAssets(assets, root = document.head) {
|
|
148
141
|
const scriptElements = root.querySelectorAll('script');
|
|
149
142
|
const scriptsToRender = assets.reduce((scripts, asset) => {
|
|
150
143
|
const { source } = asset;
|
|
@@ -164,9 +157,16 @@ function loadScriptAssets(assets, root = document.head) {
|
|
|
164
157
|
}
|
|
165
158
|
|
|
166
159
|
if (!_asset.source) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
)
|
|
160
|
+
const message = `Asset '${_asset.name}' is missing ES variant and could not be loaded.`;
|
|
161
|
+
|
|
162
|
+
if (!_asset.optional) {
|
|
163
|
+
const error = new Error(message);
|
|
164
|
+
error.asset = _asset;
|
|
165
|
+
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
console.warn(message);
|
|
170
170
|
return scripts;
|
|
171
171
|
}
|
|
172
172
|
}
|
package/lib/index.mjs
CHANGED
|
@@ -48,22 +48,15 @@ function _loadScript(asset, root) {
|
|
|
48
48
|
const scriptElement = root.querySelector(`script[src='${asset.source}']`);
|
|
49
49
|
|
|
50
50
|
if (scriptElement) {
|
|
51
|
-
if (
|
|
52
|
-
(
|
|
53
|
-
performance.getEntriesByName &&
|
|
54
|
-
performance
|
|
55
|
-
.getEntriesByName(scriptElement.src)
|
|
56
|
-
.find(
|
|
57
|
-
(entry) => entry.entryType === 'resource' && entry.responseEnd
|
|
58
|
-
)) ||
|
|
59
|
-
!performance ||
|
|
60
|
-
!performance.getEntriesByName
|
|
61
|
-
) {
|
|
62
|
-
setTimeout(resolve, 0);
|
|
63
|
-
return;
|
|
51
|
+
if (!asset.test) {
|
|
52
|
+
resolve();
|
|
64
53
|
}
|
|
65
54
|
|
|
66
55
|
scriptElement.addEventListener('load', resolve);
|
|
56
|
+
scriptElement.addEventListener(
|
|
57
|
+
'error',
|
|
58
|
+
asset.optional ? resolve : reject
|
|
59
|
+
);
|
|
67
60
|
return;
|
|
68
61
|
}
|
|
69
62
|
|
|
@@ -140,7 +133,7 @@ function loadStyleAssets(assets, root = document.head) {
|
|
|
140
133
|
return Promise.all(stylesToRender.map((asset) => _loadStyle(asset, root)));
|
|
141
134
|
}
|
|
142
135
|
|
|
143
|
-
function loadScriptAssets(assets, root = document.head) {
|
|
136
|
+
async function loadScriptAssets(assets, root = document.head) {
|
|
144
137
|
const scriptElements = root.querySelectorAll('script');
|
|
145
138
|
const scriptsToRender = assets.reduce((scripts, asset) => {
|
|
146
139
|
const { source } = asset;
|
|
@@ -160,9 +153,16 @@ function loadScriptAssets(assets, root = document.head) {
|
|
|
160
153
|
}
|
|
161
154
|
|
|
162
155
|
if (!_asset.source) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
)
|
|
156
|
+
const message = `Asset '${_asset.name}' is missing ES variant and could not be loaded.`;
|
|
157
|
+
|
|
158
|
+
if (!_asset.optional) {
|
|
159
|
+
const error = new Error(message);
|
|
160
|
+
error.asset = _asset;
|
|
161
|
+
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
console.warn(message);
|
|
166
166
|
return scripts;
|
|
167
167
|
}
|
|
168
168
|
}
|
package/lib/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){if("function"==typeof define&&define.amd)define("@merkur/integration",["exports"],t);else if("undefined"!=typeof exports)t(exports);else{var r={exports:{}};t(r.exports),e.Merkur=e.Merkur||{},e.Merkur.Integration=r.exports}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,(function(e){var t,r;Object.defineProperty(e,"__esModule",{value:!0}),e.loadAssets=function(e,t){return Promise.all([
|
|
1
|
+
!function(e,t){if("function"==typeof define&&define.amd)define("@merkur/integration",["exports"],t);else if("undefined"!=typeof exports)t(exports);else{var r={exports:{}};t(r.exports),e.Merkur=e.Merkur||{},e.Merkur.Integration=r.exports}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,(function(e){function t(e,t,r,n,o,i,s){try{var u=e[i](s),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function r(e){return function(){var r=this,n=arguments;return new Promise((function(o,i){var s=e.apply(r,n);function u(e){t(s,o,i,u,c,"next",e)}function c(e){t(s,o,i,u,c,"throw",e)}u(void 0)}))}}var n,o;Object.defineProperty(e,"__esModule",{value:!0}),e.loadAssets=function(e,t){return Promise.all([a(e,t),c(e,t)])},e.loadScriptAssets=a,e.loadStyleAssets=c,e.testScript=void 0;var i={isES9Supported:function(){return void 0===n&&(n=i.test("return (() => { const o = { t: 1 }; return { ...o }; })() && (async () => ({}))()")&&!!Object.values),n},isES11Supported:function(){return void 0===o&&(o=i.test("return (() => { const o = { t: { q: true } }; return o?.t?.q && (o?.a?.q ?? true); })()")&&i.test('return typeof Promise.allSettled === "function"')&&i.test('return typeof globalThis !== "undefined"')&&i.test('return typeof 9007199254740991n === "bigint"')),o},test:function(e){try{return!!new Function(e)()}catch(e){return!1}}};function s(e,t){return new Promise((function(r,n){var o=t.querySelector("script[src='".concat(e.source,"']"));if(o)return e.test||r(),o.addEventListener("load",r),void o.addEventListener("error",e.optional?r:n);var i=document.createElement("script");if("script"===e.type){i.defer=!0,i.onload=r,i.onerror=e.optional?r:n,i.src=e.source;var s=e.attr;if(s&&Object.keys(s).length)for(var u in s){var c=s[u];"boolean"==typeof c?c?i.setAttribute(u,""):i.removeAttribute(u):i.setAttribute(u,c)}}else i.text=e.source,r();t.appendChild(i)}))}function u(e,t){return new Promise((function(r,n){if("stylesheet"===e.type){var o=document.createElement("link");o.onload=r,o.onerror=n,o.rel="stylesheet",o.href=e.source,t.appendChild(o)}else{var i=document.createElement("style");i.innerHTML=e.source,t.appendChild(i),r()}}))}function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.head,r=t.querySelectorAll("style"),n=e.filter((function(e){return e.source&&("stylesheet"===e.type&&!t.querySelector("link[href='".concat(e.source,"']"))||"inlineStyle"===e.type&&Array.from(r).reduce((function(t,r){return r.innerHTML!==e.source&&t}),!0))}));return Promise.all(n.map((function(e){return u(e,t)})))}function a(e){return l.apply(this,arguments)}function l(){return l=r((function*(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.head,r=t.querySelectorAll("script"),n=e.reduce((function(e,t){var n=t.source,o=Object.assign({},t);if("script"!==o.type&&"inlineScript"!==o.type)return e;if(n===Object(n)&&(n.es11&&i.isES11Supported()?o.source=n.es11:n.es9&&i.isES9Supported()?o.source=n.es9:o.source=n.es5,!o.source)){var s="Asset '".concat(o.name,"' is missing ES variant and could not be loaded.");if(!o.optional){var u=new Error(s);throw u.asset=o,u}return console.warn(s),e}return Array.from(r).reduce((function(e,t){return t.text===o.source||e}),!1)||o.test&&i.test(o.test)||e.push(o),e}),[]);return Promise.all(n.map((function(e){return s(e,t)})))})),l.apply(this,arguments)}e.testScript=i}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@merkur/integration",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"description": "Merkur module for easy integration with other apps.",
|
|
5
5
|
"main": "lib/index",
|
|
6
6
|
"module": "lib/index",
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
},
|
|
50
50
|
"homepage": "https://merkur.js.org/",
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@merkur/core": "^0.
|
|
52
|
+
"@merkur/core": "^0.30.0",
|
|
53
53
|
"rollup": "^2.70.2"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"@merkur/core": "*"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "13a0ac12f77f381b1d829cffe9b21d453c26ca7a"
|
|
59
59
|
}
|