@openmrs/esm-dynamic-loading 5.4.1-pre.1608 → 5.4.1-pre.1620

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.
@@ -1,6 +1,8 @@
1
- @openmrs/esm-dynamic-loading:build: cache hit, replaying output 2ae0b0eb556a7d12
2
- @openmrs/esm-dynamic-loading:build: asset openmrs-esm-dynamic-loading.js 5.58 KiB [emitted] [minimized] (name: main) 1 related asset
1
+ @openmrs/esm-dynamic-loading:build: cache hit, replaying output dfa5d5233f80ad09
2
+ @openmrs/esm-dynamic-loading:build: asset openmrs-esm-dynamic-loading.js 6.24 KiB [emitted] [minimized] (name: main) 1 related asset
3
3
  @openmrs/esm-dynamic-loading:build: runtime modules 2.47 KiB 4 modules
4
- @openmrs/esm-dynamic-loading:build: orphan modules 14.9 KiB [orphan] 1 module
5
- @openmrs/esm-dynamic-loading:build: ./src/index.ts + 1 modules 15 KiB [built] [code generated]
6
- @openmrs/esm-dynamic-loading:build: webpack 5.88.0 compiled successfully in 7676 ms
4
+ @openmrs/esm-dynamic-loading:build: orphan modules 16.2 KiB [orphan] 1 module
5
+ @openmrs/esm-dynamic-loading:build: built modules 16.3 KiB [built]
6
+ @openmrs/esm-dynamic-loading:build:  ./src/index.ts + 1 modules 16.2 KiB [built] [code generated]
7
+ @openmrs/esm-dynamic-loading:build:  external "@openmrs/esm-globals" 42 bytes [built] [code generated]
8
+ @openmrs/esm-dynamic-loading:build: webpack 5.88.0 compiled successfully in 7222 ms
@@ -1,2 +1,2 @@
1
- System.register([],(function(e,t){return{execute:function(){e((()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}};(()=>{e.S={};var t={},r={};e.I=(n,o)=>{o||(o=[]);var i=r[n];if(i||(i=r[n]={}),!(o.indexOf(i)>=0)){if(o.push(i),t[n])return t[n];e.o(e.S,n)||(e.S[n]={}),e.S[n];var a=[];return t[n]=a.length?Promise.all(a).then((()=>t[n]=1)):1}}})();var t={};function r(e,t,r,n,o,i,a){try{var c=e[i](a),l=c.value}catch(e){return void r(e)}c.done?t(l):Promise.resolve(l).then(n,o)}function n(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var a=e.apply(t,n);function c(e){r(a,o,i,c,l,"next",e)}function l(e){r(a,o,i,c,l,"throw",e)}c(void 0)}))}}function o(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}function i(e){return e.replace(/[\/\-@]/g,"_")}function a(e){return c.apply(this,arguments)}function c(){return c=n((function(t){var r,n,a,c,u,s,d,f,p,h,m=arguments;return o(this,(function(o){switch(o.label){case 0:return r=m.length>1&&void 0!==m[1]?m[1]:"./start",a=!(null==(n=m.length>2?m[2]:void 0)?void 0:n.maxLoadingTime)||n.maxLoadingTime<=0?6e5:n.maxLoadingTime,c=void 0,[4,Promise.race([l(t,null==n?void 0:n.importMap),new Promise((function(e,r){c=setTimeout((function(){var e;r(new Error("Could not resolve requested script, ".concat(t,", within ").concat((e=a)<1e3?"".concat(e," milliseconds"):e<6e4?"".concat(Math.floor(e/1e3)," seconds"):e<36e5?"".concat(Math.floor(e/6e4)," minutes"):e<864e5?"".concat(Math.floor(e/36e5)," hours"):"".concat(Math.floor(e/864e5)," days"),".")))}),a)}))])];case 1:if(o.sent(),c&&clearTimeout(c),u=i(t),"object"!=typeof(v=s=window[u])||null===v||!("init"in v)||"function"!=typeof v.init||!("get"in v)||"function"!=typeof v.get)throw d="The global variable ".concat(u," does not refer to a federated module"),console.error(d),new Error(d);return s.init(e.S.default),[4,s.get(r)];case 2:if(f=o.sent(),"object"!=typeof(p=f())||null===p)throw h="Container for ".concat(t," did not return an ESM module as expected"),console.error(h),new Error(h);return[2,p]}var v}))})),c.apply(this,arguments)}function l(e,t){return u.apply(this,arguments)}function u(){return(u=n((function(e,t){var r,n,a,c,l,u;return o(this,(function(o){switch(o.label){case 0:if("string"!=typeof e||0===e.trim().length)throw r="Attempted to call importDynamic() without supplying a package to load",console.error(r),new Error(r);return n=i(e),window[n]?[3,5]:null==t?[3,1]:(c=t,[3,3]);case 1:return[4,s()];case 2:c=o.sent(),o.label=3;case 3:if(!(a=c).imports.hasOwnProperty(e))throw l="Could not find the package ".concat(e," defined in the current importmap"),console.error(l),new Error(l);return(u=a.imports[e]).startsWith("./")&&(u=window.spaBase+u.substring(1)),[4,new Promise((function(e,t){!function(e,t,r){var n=document.head.querySelector('script[src="'.concat(e,'"]')),o=window[f];if(o||(o=window[f]=new Set([])),n){var i,a;o.has(e)?(i=function(){n&&(n.removeEventListener("load",i),n.removeEventListener("error",a)),t(null)},a=function(e){n&&(n.removeEventListener("load",i),n.removeEventListener("error",a)),r(e.message)},n.addEventListener("load",i),n.addEventListener("error",a)):(console.warn("Script at ".concat(e," already loaded. Not loading it again.")),t(null))}else{o.add(e);var c=document.createElement("script");c.src=e,c.type="text/javascript",c.async=!0;var l,u,s,d=setTimeout((function(){console.error("The script at ".concat(e," did not load within 5 seconds. This may indicate an issue with the imports in the script's entry-point file or with the script's bundler configuration."))}),5e3);s=function(){clearTimeout(d),o.delete(e),l&&c.removeEventListener("load",l),u&&c.removeEventListener("error",u)},l=function(){s(),t(null)},u=function(t){s();var n,o="Failed to load script from ".concat(e);console.error(o,t),r(null!==(n=t.message)&&void 0!==n?n:o)},c.addEventListener("load",l),c.addEventListener("error",u),document.head.appendChild(c)}}(u,e,t)}))];case 4:return[2,o.sent()];case 5:return[2,Promise.resolve()]}}))}))).apply(this,arguments)}function s(){return d.apply(this,arguments)}function d(){return(d=n((function(){return o(this,(function(e){return[2,window.importMapOverrides.getCurrentPageMap()]}))}))).apply(this,arguments)}e.r(t),e.d(t,{getCurrentImportMap:()=>s,importDynamic:()=>a,preloadImport:()=>l,slugify:()=>i});var f=Symbol("__openmrs_script_loading");return t})())}}}));
1
+ System.register(["@openmrs/esm-globals"],(function(e,t){var r={};return{setters:[function(e){r.dispatchToastShown=e.dispatchToastShown}],execute:function(){e((()=>{"use strict";var e={728:e=>{e.exports=r}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{n.S={};var e={},t={};n.I=(r,o)=>{o||(o=[]);var i=t[r];if(i||(i=t[r]={}),!(o.indexOf(i)>=0)){if(o.push(i),e[r])return e[r];n.o(n.S,r)||(n.S[r]={}),n.S[r];var a=[];return e[r]=a.length?Promise.all(a).then((()=>e[r]=1)):1}}})();var o={};return(()=>{n.r(o),n.d(o,{getCurrentImportMap:()=>d,importDynamic:()=>c,preloadImport:()=>l,slugify:()=>a});var e=n(728);function t(e,t,r,n,o,i,a){try{var c=e[i](a),s=c.value}catch(e){return void r(e)}c.done?t(s):Promise.resolve(s).then(n,o)}function r(e){return function(){var r=this,n=arguments;return new Promise((function(o,i){var a=e.apply(r,n);function c(e){t(a,o,i,c,s,"next",e)}function s(e){t(a,o,i,c,s,"throw",e)}c(void 0)}))}}function i(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}function a(e){return e.replace(/[\/\-@]/g,"_")}function c(e){return s.apply(this,arguments)}function s(){return s=r((function(e){var t,r,o,c,s,u,d,p,f,h,m=arguments;return i(this,(function(i){switch(i.label){case 0:return t=m.length>1&&void 0!==m[1]?m[1]:"./start",o=!(null==(r=m.length>2?m[2]:void 0)?void 0:r.maxLoadingTime)||r.maxLoadingTime<=0?6e5:r.maxLoadingTime,c=void 0,[4,Promise.race([l(e,null==r?void 0:r.importMap),new Promise((function(t,r){c=setTimeout((function(){var t;r(new Error("Could not resolve requested script, ".concat(e,", within ").concat((t=o)<1e3?"".concat(t," milliseconds"):t<6e4?"".concat(Math.floor(t/1e3)," seconds"):t<36e5?"".concat(Math.floor(t/6e4)," minutes"):t<864e5?"".concat(Math.floor(t/36e5)," hours"):"".concat(Math.floor(t/864e5)," days"),".")))}),o)}))])];case 1:if(i.sent(),c&&clearTimeout(c),s=a(e),"object"!=typeof(v=u=window[s])||null===v||!("init"in v)||"function"!=typeof v.init||!("get"in v)||"function"!=typeof v.get)throw d="The global variable ".concat(s," does not refer to a federated module"),console.error(d),new Error(d);return u.init(n.S.default),[4,u.get(t)];case 2:if(p=i.sent(),"object"!=typeof(f=p())||null===f)throw h="Container for ".concat(e," did not return an ESM module as expected"),console.error(h),new Error(h);return[2,f]}var v}))})),s.apply(this,arguments)}function l(e,t){return u.apply(this,arguments)}function u(){return(u=r((function(t,r){var n,o,c,s,l,u,p,h;return i(this,(function(i){switch(i.label){case 0:if("string"!=typeof t||0===t.trim().length)throw n="Attempted to call importDynamic() without supplying a package to load",console.error(n),new Error(n);return o=a(t),window[o]?[3,7]:null==r?[3,1]:(s=r,[3,3]);case 1:return[4,d()];case 2:s=i.sent(),i.label=3;case 3:if(!(c=s).imports.hasOwnProperty(t))throw l="Could not find the package ".concat(t," defined in the current importmap"),console.error(l),new Error(l);(u=c.imports[t]).startsWith("./")&&(u=window.spaBase+u.substring(1)),p=!!window.localStorage.getItem("import-map-override:".concat(t)),i.label=4;case 4:return i.trys.push([4,6,,7]),[4,new Promise((function(e,t){!function(e,t,r){var n=document.head.querySelector('script[src="'.concat(e,'"]')),o=window[f];if(o||(o=window[f]=new Set([])),n){var i,a,c;o.has(e)?(c=function(){i&&n.removeEventListener("load",i),a&&n.removeEventListener("error",a)},i=function(){c(),t(null)},a=function(e){c(),r(e.message)},n.addEventListener("load",i),n.addEventListener("error",a)):(console.warn("Script at ".concat(e," already loaded. Not loading it again.")),t(null))}else{o.add(e);var s=document.createElement("script");s.src=e,s.type="text/javascript",s.async=!0;var l,u,d,p=setTimeout((function(){console.error("The script at ".concat(e," did not load within 5 seconds. This may indicate an issue with the imports in the script's entry-point file or with the script's bundler configuration."))}),5e3);d=function(){clearTimeout(p),o.delete(e),l&&s.removeEventListener("load",l),u&&s.removeEventListener("error",u)},l=function(){d(),t(null)},u=function(t){d();var n,o="Failed to load script from ".concat(e);console.error(o,t),r(null!==(n=t.message)&&void 0!==n?n:o)},s.addEventListener("load",l),s.addEventListener("error",u),document.head.appendChild(s)}}(u,e,t)}))];case 5:return[2,i.sent()];case 6:return h=i.sent(),p&&(0,e.dispatchToastShown)({kind:"error",title:"Error loading script",description:"Failed to load overridden script from ".concat(u,". Click below to reset all overrides."),actionButtonLabel:"Reload",onActionButtonClick:function(){window.importMapOverrides.resetOverrides(),window.location.reload()}}),[2,Promise.reject(h)];case 7:return[2,Promise.resolve()]}}))}))).apply(this,arguments)}function d(){return p.apply(this,arguments)}function p(){return(p=r((function(){return i(this,(function(e){return[2,window.importMapOverrides.getCurrentPageMap()]}))}))).apply(this,arguments)}var f=Symbol("__openmrs_script_loading")})(),o})())}}}));
2
2
  //# sourceMappingURL=openmrs-esm-dynamic-loading.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmrs-esm-dynamic-loading.js","mappings":"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","sources":["webpack://@openmrs/esm-dynamic-loading/webpack/bootstrap","webpack://@openmrs/esm-dynamic-loading/webpack/runtime/define property getters","webpack://@openmrs/esm-dynamic-loading/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-dynamic-loading/webpack/runtime/make namespace object","webpack://@openmrs/esm-dynamic-loading/webpack/runtime/sharing","webpack://@openmrs/esm-dynamic-loading/./src/dynamic-loading.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => {\n\t\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n\t};\n\tvar uniqueName = \"@openmrs/esm-dynamic-loading\";\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\n};","/** @module @category Dynamic Loading */\n'use strict';\n// hack to make the types defined in esm-globals available here\nimport type { ImportMap } from '@openmrs/esm-globals';\n\n/**\n * @internal\n *\n * Transforms an ESM module name to a valid JS identifier\n *\n * @param name the name of a module\n * @returns An opaque, equivalent JS identifier for the module\n */\nexport function slugify(name: string) {\n return name.replace(/[\\/\\-@]/g, '_');\n}\n\n/**\n * Loads the named export from a named package. This might be used like:\n *\n * ```js\n * const { someComponent } = importDynamic(\"@openmrs/esm-template-app\")\n * ```\n *\n * @param jsPackage The package to load the export from.\n * @param share Indicates the name of the shared module; this is an advanced feature if the package you are loading\n * doesn't use the default OpenMRS shared module name \"./start\".\n * @param options Additional options to control loading this script.\n * @param options.importMap The import map to use to load the script. This is useful for situations where you're\n * loading multiple scripts at a time, since it allows the calling code to supply an importMap, saving multiple\n * calls to `getCurrentImportMap()`.\n * @param options.maxLoadingTime A positive integer representing the maximum number of milliseconds to wait for the\n * script to load before the promise returned from this function will be rejected. Defaults to 600,000 milliseconds,\n * i.e., 10 minutes.\n */\nexport async function importDynamic<T = any>(\n jsPackage: string,\n share: string = './start',\n options?: {\n importMap?: ImportMap;\n maxLoadingTime?: number;\n },\n): Promise<T> {\n // default to 10 minutes\n const maxLoadingTime = !options?.maxLoadingTime || options.maxLoadingTime <= 0 ? 600_000 : options.maxLoadingTime;\n\n let timeout: ReturnType<typeof setTimeout> | undefined = undefined;\n await Promise.race([\n preloadImport(jsPackage, options?.importMap),\n new Promise((_, reject) => {\n timeout = setTimeout(() => {\n reject(\n new Error(`Could not resolve requested script, ${jsPackage}, within ${humanReadableMs(maxLoadingTime)}.`),\n );\n }, maxLoadingTime);\n }),\n ]);\n\n timeout && clearTimeout(timeout);\n\n const jsPackageSlug = slugify(jsPackage);\n\n const container = window[jsPackageSlug] as unknown;\n if (!isFederatedModule(container)) {\n const error = `The global variable ${jsPackageSlug} does not refer to a federated module`;\n console.error(error);\n throw new Error(error);\n }\n\n container.init(__webpack_share_scopes__.default);\n\n const factory = await container.get(share);\n const module = factory();\n\n if (!(typeof module === 'object') || module === null) {\n const error = `Container for ${jsPackage} did not return an ESM module as expected`;\n console.error(error);\n throw new Error(error);\n }\n\n return module as unknown as T;\n}\n\n/**\n * Utility function to convert milliseconds into human-readable strings with rather absurd\n * levels of precision.\n *\n * @param ms Number of milliseconds\n * @returns A human-readable string useful only for error logging, where we can assume English\n */\nfunction humanReadableMs(ms: number) {\n if (ms < 1_000) {\n return `${ms} milliseconds`;\n } else if (ms < 60_000) {\n return `${Math.floor(ms / 1000)} seconds`;\n } else if (ms < 3_600_000) {\n return `${Math.floor(ms / 60_000)} minutes`;\n } else if (ms < 86_400_000) {\n return `${Math.floor(ms / 3_600_000)} hours`;\n } else {\n return `${Math.floor(ms / 86_400_000)} days`;\n }\n}\n\n/**\n * @internal\n *\n * This internal method is used to ensure that the script belonging\n * to the given package is loaded and added to the head.\n *\n * @param jsPackage The package to load\n * @param importMap The import map to use for loading this package.\n * The main reason for specifying this is to avoid needing to call\n * `getCurrentPageMap()` for every script when bulk loading.\n */\nexport async function preloadImport(jsPackage: string, importMap?: ImportMap) {\n if (typeof jsPackage !== 'string' || jsPackage.trim().length === 0) {\n const error = 'Attempted to call importDynamic() without supplying a package to load';\n console.error(error);\n throw new Error(error);\n }\n\n const jsPackageSlug = slugify(jsPackage);\n\n if (!window[jsPackageSlug]) {\n const activeImportMap = importMap ?? (await getCurrentImportMap());\n if (!activeImportMap.imports.hasOwnProperty(jsPackage)) {\n const error = `Could not find the package ${jsPackage} defined in the current importmap`;\n console.error(error);\n throw new Error(error);\n }\n\n let url = activeImportMap.imports[jsPackage];\n if (url.startsWith('./')) {\n url = window.spaBase + url.substring(1);\n }\n\n return await new Promise<void>((resolve, reject) => {\n loadScript(url, resolve, reject);\n });\n }\n\n return Promise.resolve();\n}\n\n/**\n * @internal\n *\n * Used to load the current import map\n *\n * @returns The current page map\n */\nexport async function getCurrentImportMap() {\n return window.importMapOverrides.getCurrentPageMap();\n}\n\ninterface FederatedModule {\n init: (scope: typeof __webpack_share_scopes__.default) => void;\n get: (_export: string) => Promise<() => unknown>;\n}\n\nfunction isFederatedModule(a: unknown): a is FederatedModule {\n return (\n typeof a === 'object' &&\n a !== null &&\n 'init' in a &&\n typeof a['init'] === 'function' &&\n 'get' in a &&\n typeof a['get'] === 'function'\n );\n}\n\n// internals to track script loading\n// basically, if we're already loading a script, we should wait until the script is loaded\n// we use a global to track this\nconst OPENMRS_SCRIPT_LOADING = Symbol('__openmrs_script_loading');\n\n/**\n * Appends a `<script>` to the DOM with the given URL.\n */\nfunction loadScript(\n url: string,\n resolve: (value: unknown | PromiseLike<unknown>) => void,\n reject: (reason?: any) => void,\n) {\n const scriptElement = document.head.querySelector(`script[src=\"${url}\"]`);\n let scriptLoading: Set<String> = window[OPENMRS_SCRIPT_LOADING];\n if (!scriptLoading) {\n scriptLoading = window[OPENMRS_SCRIPT_LOADING] = new Set([]);\n }\n\n if (!scriptElement) {\n scriptLoading.add(url);\n const element = document.createElement('script');\n element.src = url;\n element.type = 'text/javascript';\n element.async = true;\n\n // loadTime() displays an error if a script takes more than 5 seconds to load\n const loadTimeout = setTimeout(() => {\n console.error(\n `The script at ${url} did not load within 5 seconds. This may indicate an issue with the imports in the script's entry-point file or with the script's bundler configuration.`,\n );\n }, 5_000); // 5 seconds; this is arbitrary\n\n let loadFn: () => void, errFn: (ev: ErrorEvent) => void, finishScriptLoading: () => void;\n\n finishScriptLoading = () => {\n clearTimeout(loadTimeout);\n scriptLoading.delete(url);\n loadFn && element.removeEventListener('load', loadFn);\n errFn && element.removeEventListener('error', errFn);\n };\n\n loadFn = () => {\n finishScriptLoading();\n resolve(null);\n };\n\n errFn = (ev: ErrorEvent) => {\n finishScriptLoading();\n const msg = `Failed to load script from ${url}`;\n console.error(msg, ev);\n reject(ev.message ?? msg);\n };\n\n element.addEventListener('load', loadFn);\n element.addEventListener('error', errFn);\n\n document.head.appendChild(element);\n } else {\n if (scriptLoading.has(url)) {\n let loadFn: () => void, errFn: (ev: ErrorEvent) => void;\n loadFn = () => {\n if (scriptElement) {\n scriptElement.removeEventListener('load', loadFn);\n scriptElement.removeEventListener('error', errFn);\n }\n\n resolve(null);\n };\n\n // this errFn does not log anything\n errFn = (ev: ErrorEvent) => {\n if (scriptElement) {\n scriptElement.removeEventListener('load', loadFn);\n scriptElement.removeEventListener('error', errFn);\n }\n\n reject(ev.message);\n };\n\n scriptElement.addEventListener('load', loadFn);\n scriptElement.addEventListener('error', errFn);\n } else {\n console.warn(`Script at ${url} already loaded. Not loading it again.`);\n resolve(null);\n }\n }\n}\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","S","initPromises","initTokens","I","name","initScope","initToken","indexOf","push","promises","length","Promise","all","then","slugify","replace","importDynamic","jsPackage","share","options","maxLoadingTime","timeout","jsPackageSlug","container","error","factory","module","undefined","race","preloadImport","importMap","_","reject","setTimeout","ms","Error","humanReadableMs","Math","floor","clearTimeout","a","window","console","init","__webpack_share_scopes__","default","activeImportMap","url","trim","getCurrentImportMap","imports","startsWith","spaBase","substring","resolve","scriptElement","document","head","querySelector","scriptLoading","OPENMRS_SCRIPT_LOADING","Set","loadFn","errFn","has","removeEventListener","ev","message","addEventListener","warn","add","element","createElement","src","type","async","finishScriptLoading","loadTimeout","delete","msg","appendChild","loadScript","importMapOverrides","getCurrentPageMap"],"sourceRoot":""}
1
+ {"version":3,"file":"openmrs-esm-dynamic-loading.js","mappings":"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","sources":["webpack://@openmrs/esm-dynamic-loading/external system \"@openmrs/esm-globals\"","webpack://@openmrs/esm-dynamic-loading/webpack/bootstrap","webpack://@openmrs/esm-dynamic-loading/webpack/runtime/define property getters","webpack://@openmrs/esm-dynamic-loading/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-dynamic-loading/webpack/runtime/make namespace object","webpack://@openmrs/esm-dynamic-loading/webpack/runtime/sharing","webpack://@openmrs/esm-dynamic-loading/./src/dynamic-loading.ts"],"sourcesContent":["module.exports = __WEBPACK_EXTERNAL_MODULE__728__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => {\n\t\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n\t};\n\tvar uniqueName = \"@openmrs/esm-dynamic-loading\";\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\n};","/** @module @category Dynamic Loading */\n'use strict';\n// hack to make the types defined in esm-globals available here\nimport { dispatchToastShown, type ImportMap } from '@openmrs/esm-globals';\n\n/**\n * @internal\n *\n * Transforms an ESM module name to a valid JS identifier\n *\n * @param name the name of a module\n * @returns An opaque, equivalent JS identifier for the module\n */\nexport function slugify(name: string) {\n return name.replace(/[\\/\\-@]/g, '_');\n}\n\n/**\n * Loads the named export from a named package. This might be used like:\n *\n * ```js\n * const { someComponent } = importDynamic(\"@openmrs/esm-template-app\")\n * ```\n *\n * @param jsPackage The package to load the export from.\n * @param share Indicates the name of the shared module; this is an advanced feature if the package you are loading\n * doesn't use the default OpenMRS shared module name \"./start\".\n * @param options Additional options to control loading this script.\n * @param options.importMap The import map to use to load the script. This is useful for situations where you're\n * loading multiple scripts at a time, since it allows the calling code to supply an importMap, saving multiple\n * calls to `getCurrentImportMap()`.\n * @param options.maxLoadingTime A positive integer representing the maximum number of milliseconds to wait for the\n * script to load before the promise returned from this function will be rejected. Defaults to 600,000 milliseconds,\n * i.e., 10 minutes.\n */\nexport async function importDynamic<T = any>(\n jsPackage: string,\n share: string = './start',\n options?: {\n importMap?: ImportMap;\n maxLoadingTime?: number;\n },\n): Promise<T> {\n // default to 10 minutes\n const maxLoadingTime = !options?.maxLoadingTime || options.maxLoadingTime <= 0 ? 600_000 : options.maxLoadingTime;\n\n let timeout: ReturnType<typeof setTimeout> | undefined = undefined;\n await Promise.race([\n preloadImport(jsPackage, options?.importMap),\n new Promise((_, reject) => {\n timeout = setTimeout(() => {\n reject(\n new Error(`Could not resolve requested script, ${jsPackage}, within ${humanReadableMs(maxLoadingTime)}.`),\n );\n }, maxLoadingTime);\n }),\n ]);\n\n timeout && clearTimeout(timeout);\n\n const jsPackageSlug = slugify(jsPackage);\n\n const container = window[jsPackageSlug] as unknown;\n if (!isFederatedModule(container)) {\n const error = `The global variable ${jsPackageSlug} does not refer to a federated module`;\n console.error(error);\n throw new Error(error);\n }\n\n container.init(__webpack_share_scopes__.default);\n\n const factory = await container.get(share);\n const module = factory();\n\n if (!(typeof module === 'object') || module === null) {\n const error = `Container for ${jsPackage} did not return an ESM module as expected`;\n console.error(error);\n throw new Error(error);\n }\n\n return module as unknown as T;\n}\n\n/**\n * Utility function to convert milliseconds into human-readable strings with rather absurd\n * levels of precision.\n *\n * @param ms Number of milliseconds\n * @returns A human-readable string useful only for error logging, where we can assume English\n */\nfunction humanReadableMs(ms: number) {\n if (ms < 1_000) {\n return `${ms} milliseconds`;\n } else if (ms < 60_000) {\n return `${Math.floor(ms / 1000)} seconds`;\n } else if (ms < 3_600_000) {\n return `${Math.floor(ms / 60_000)} minutes`;\n } else if (ms < 86_400_000) {\n return `${Math.floor(ms / 3_600_000)} hours`;\n } else {\n return `${Math.floor(ms / 86_400_000)} days`;\n }\n}\n\n/**\n * @internal\n *\n * This internal method is used to ensure that the script belonging\n * to the given package is loaded and added to the head.\n *\n * @param jsPackage The package to load\n * @param importMap The import map to use for loading this package.\n * The main reason for specifying this is to avoid needing to call\n * `getCurrentPageMap()` for every script when bulk loading.\n */\nexport async function preloadImport(jsPackage: string, importMap?: ImportMap) {\n if (typeof jsPackage !== 'string' || jsPackage.trim().length === 0) {\n const error = 'Attempted to call importDynamic() without supplying a package to load';\n console.error(error);\n throw new Error(error);\n }\n\n const jsPackageSlug = slugify(jsPackage);\n\n if (!window[jsPackageSlug]) {\n const activeImportMap = importMap ?? (await getCurrentImportMap());\n if (!activeImportMap.imports.hasOwnProperty(jsPackage)) {\n const error = `Could not find the package ${jsPackage} defined in the current importmap`;\n console.error(error);\n throw new Error(error);\n }\n\n let url = activeImportMap.imports[jsPackage];\n if (url.startsWith('./')) {\n url = window.spaBase + url.substring(1);\n }\n\n const isOverridden = !!window.localStorage.getItem(`import-map-override:${jsPackage}`);\n try {\n return await new Promise<void>((resolve, reject) => {\n loadScript(url, resolve, reject);\n });\n } catch (err: any) {\n if (isOverridden) {\n dispatchToastShown({\n kind: 'error',\n title: 'Error loading script',\n description: `Failed to load overridden script from ${url}. Click below to reset all overrides.`,\n actionButtonLabel: 'Reload',\n onActionButtonClick() {\n window.importMapOverrides.resetOverrides();\n window.location.reload();\n },\n });\n }\n\n return Promise.reject(err);\n }\n }\n\n return Promise.resolve();\n}\n\n/**\n * @internal\n *\n * Used to load the current import map\n *\n * @returns The current page map\n */\nexport async function getCurrentImportMap() {\n return window.importMapOverrides.getCurrentPageMap();\n}\n\ninterface FederatedModule {\n init: (scope: typeof __webpack_share_scopes__.default) => void;\n get: (_export: string) => Promise<() => unknown>;\n}\n\nfunction isFederatedModule(a: unknown): a is FederatedModule {\n return (\n typeof a === 'object' &&\n a !== null &&\n 'init' in a &&\n typeof a['init'] === 'function' &&\n 'get' in a &&\n typeof a['get'] === 'function'\n );\n}\n\n// internals to track script loading\n// basically, if we're already loading a script, we should wait until the script is loaded\n// we use a global to track this\nconst OPENMRS_SCRIPT_LOADING = Symbol('__openmrs_script_loading');\n\n/**\n * Appends a `<script>` to the DOM with the given URL.\n */\nfunction loadScript(\n url: string,\n resolve: (value: unknown | PromiseLike<unknown>) => void,\n reject: (reason?: any) => void,\n) {\n const scriptElement = document.head.querySelector(`script[src=\"${url}\"]`);\n let scriptLoading: Set<String> = window[OPENMRS_SCRIPT_LOADING];\n if (!scriptLoading) {\n scriptLoading = window[OPENMRS_SCRIPT_LOADING] = new Set([]);\n }\n\n if (!scriptElement) {\n scriptLoading.add(url);\n const element = document.createElement('script');\n element.src = url;\n element.type = 'text/javascript';\n element.async = true;\n\n // loadTime() displays an error if a script takes more than 5 seconds to load\n const loadTimeout = setTimeout(() => {\n console.error(\n `The script at ${url} did not load within 5 seconds. This may indicate an issue with the imports in the script's entry-point file or with the script's bundler configuration.`,\n );\n }, 5_000); // 5 seconds; this is arbitrary\n\n let loadFn: () => void, errFn: (ev: ErrorEvent) => void, finishScriptLoading: () => void;\n\n finishScriptLoading = () => {\n clearTimeout(loadTimeout);\n scriptLoading.delete(url);\n loadFn && element.removeEventListener('load', loadFn);\n errFn && element.removeEventListener('error', errFn);\n };\n\n loadFn = () => {\n finishScriptLoading();\n resolve(null);\n };\n\n errFn = (ev: ErrorEvent) => {\n finishScriptLoading();\n const msg = `Failed to load script from ${url}`;\n console.error(msg, ev);\n reject(ev.message ?? msg);\n };\n\n element.addEventListener('load', loadFn);\n element.addEventListener('error', errFn);\n\n document.head.appendChild(element);\n } else {\n if (scriptLoading.has(url)) {\n let loadFn: () => void, errFn: (ev: ErrorEvent) => void, finishScriptLoading: () => void;\n\n finishScriptLoading = () => {\n loadFn && scriptElement.removeEventListener('load', loadFn);\n errFn && scriptElement.removeEventListener('error', errFn);\n };\n\n loadFn = () => {\n finishScriptLoading();\n resolve(null);\n };\n\n // this errFn does not log anything\n errFn = (ev: ErrorEvent) => {\n finishScriptLoading();\n reject(ev.message);\n };\n\n scriptElement.addEventListener('load', loadFn);\n scriptElement.addEventListener('error', errFn);\n } else {\n console.warn(`Script at ${url} already loaded. Not loading it again.`);\n resolve(null);\n }\n }\n}\n\nfunction closureScope() {}\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__728__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","S","initPromises","initTokens","I","name","initScope","initToken","indexOf","push","promises","length","Promise","all","then","slugify","replace","importDynamic","jsPackage","share","options","maxLoadingTime","timeout","jsPackageSlug","container","error","factory","race","preloadImport","importMap","_","reject","setTimeout","ms","Error","humanReadableMs","Math","floor","clearTimeout","a","window","console","init","__webpack_share_scopes__","default","activeImportMap","url","isOverridden","err","trim","getCurrentImportMap","imports","startsWith","spaBase","substring","localStorage","getItem","resolve","scriptElement","document","head","querySelector","scriptLoading","OPENMRS_SCRIPT_LOADING","Set","loadFn","errFn","finishScriptLoading","has","removeEventListener","ev","message","addEventListener","warn","add","element","createElement","src","type","async","loadTimeout","delete","msg","appendChild","loadScript","dispatchToastShown","kind","title","description","actionButtonLabel","onActionButtonClick","importMapOverrides","resetOverrides","location","reload","getCurrentPageMap"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-dynamic-loading",
3
- "version": "5.4.1-pre.1608",
3
+ "version": "5.4.1-pre.1620",
4
4
  "license": "MPL-2.0",
5
5
  "description": "Utilities for dynamically loading code in OpenMRS",
6
6
  "browser": "dist/openmrs-esm-dynamic-loading.js",
@@ -42,7 +42,7 @@
42
42
  "@openmrs/esm-globals": "5.x"
43
43
  },
44
44
  "devDependencies": {
45
- "@openmrs/esm-globals": "5.4.1-pre.1608"
45
+ "@openmrs/esm-globals": "5.4.1-pre.1620"
46
46
  },
47
47
  "stableVersion": "5.4.0"
48
48
  }
@@ -1,7 +1,7 @@
1
1
  /** @module @category Dynamic Loading */
2
2
  'use strict';
3
3
  // hack to make the types defined in esm-globals available here
4
- import type { ImportMap } from '@openmrs/esm-globals';
4
+ import { dispatchToastShown, type ImportMap } from '@openmrs/esm-globals';
5
5
 
6
6
  /**
7
7
  * @internal
@@ -135,9 +135,27 @@ export async function preloadImport(jsPackage: string, importMap?: ImportMap) {
135
135
  url = window.spaBase + url.substring(1);
136
136
  }
137
137
 
138
- return await new Promise<void>((resolve, reject) => {
139
- loadScript(url, resolve, reject);
140
- });
138
+ const isOverridden = !!window.localStorage.getItem(`import-map-override:${jsPackage}`);
139
+ try {
140
+ return await new Promise<void>((resolve, reject) => {
141
+ loadScript(url, resolve, reject);
142
+ });
143
+ } catch (err: any) {
144
+ if (isOverridden) {
145
+ dispatchToastShown({
146
+ kind: 'error',
147
+ title: 'Error loading script',
148
+ description: `Failed to load overridden script from ${url}. Click below to reset all overrides.`,
149
+ actionButtonLabel: 'Reload',
150
+ onActionButtonClick() {
151
+ window.importMapOverrides.resetOverrides();
152
+ window.location.reload();
153
+ },
154
+ });
155
+ }
156
+
157
+ return Promise.reject(err);
158
+ }
141
159
  }
142
160
 
143
161
  return Promise.resolve();
@@ -230,23 +248,21 @@ function loadScript(
230
248
  document.head.appendChild(element);
231
249
  } else {
232
250
  if (scriptLoading.has(url)) {
233
- let loadFn: () => void, errFn: (ev: ErrorEvent) => void;
234
- loadFn = () => {
235
- if (scriptElement) {
236
- scriptElement.removeEventListener('load', loadFn);
237
- scriptElement.removeEventListener('error', errFn);
238
- }
251
+ let loadFn: () => void, errFn: (ev: ErrorEvent) => void, finishScriptLoading: () => void;
252
+
253
+ finishScriptLoading = () => {
254
+ loadFn && scriptElement.removeEventListener('load', loadFn);
255
+ errFn && scriptElement.removeEventListener('error', errFn);
256
+ };
239
257
 
258
+ loadFn = () => {
259
+ finishScriptLoading();
240
260
  resolve(null);
241
261
  };
242
262
 
243
263
  // this errFn does not log anything
244
264
  errFn = (ev: ErrorEvent) => {
245
- if (scriptElement) {
246
- scriptElement.removeEventListener('load', loadFn);
247
- scriptElement.removeEventListener('error', errFn);
248
- }
249
-
265
+ finishScriptLoading();
250
266
  reject(ev.message);
251
267
  };
252
268
 
@@ -258,3 +274,5 @@ function loadScript(
258
274
  }
259
275
  }
260
276
  }
277
+
278
+ function closureScope() {}