@lwrjs/loader 0.10.0-alpha.2 → 0.10.0-alpha.20
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/build/assets/prod/lwr-error-shim.js +2 -1
- package/build/assets/prod/lwr-loader-shim-legacy.bundle.js +636 -256
- package/build/assets/prod/lwr-loader-shim-legacy.bundle.min.js +6 -2
- package/build/assets/prod/lwr-loader-shim-legacy.js +150 -55
- package/build/assets/prod/lwr-loader-shim.bundle.js +583 -259
- package/build/assets/prod/lwr-loader-shim.bundle.min.js +6 -2
- package/build/assets/prod/lwr-loader-shim.js +149 -55
- package/build/bundle/prod/lwr/esmLoader/esmLoader.js +2 -1
- package/build/cjs/index.cjs +1 -1
- package/build/cjs/modules/lwr/esmLoader/importResolver.cjs +17 -0
- package/build/cjs/modules/lwr/esmLoader/importResolverLegacy.cjs +17 -0
- package/build/cjs/modules/lwr/loader/constants/constants.cjs +1 -1
- package/build/cjs/modules/lwr/loader/errors/reportError.cjs +1 -0
- package/build/cjs/modules/lwr/loader/hooks/moduleInvalidation.cjs +1 -0
- package/build/cjs/modules/lwr/loader/hooks/resolveAndLoadHook.cjs +3 -1
- package/build/cjs/modules/lwr/loader/moduleRegistry/importMetadataResolver.cjs +2 -0
- package/build/cjs/modules/lwr/loader/moduleRegistry/moduleRegistry.cjs +2 -0
- package/build/cjs/modules/lwr/loaderLegacy/constants/constants.cjs +1 -1
- package/build/cjs/modules/lwr/loaderLegacy/errors/reportError.cjs +1 -0
- package/build/cjs/modules/lwr/loaderLegacy/hooks/moduleInvalidation.cjs +1 -0
- package/build/cjs/modules/lwr/loaderLegacy/hooks/resolveAndLoadHook.cjs +3 -1
- package/build/cjs/modules/lwr/loaderLegacy/importMap/importMapResolver.cjs +1 -0
- package/build/cjs/modules/lwr/loaderLegacy/importResolver/importResolver.cjs +17 -0
- package/build/cjs/modules/lwr/loaderLegacy/moduleRegistry/moduleRegistry.cjs +3 -0
- package/build/index.d.ts +1 -1
- package/build/index.js +1 -1
- package/build/modules/lwr/esmLoader/esmLoader.js +45 -15
- package/build/modules/lwr/loader/loader.js +433 -203
- package/build/modules/lwr/loaderLegacy/loaderLegacy.js +485 -200
- package/package.json +16 -9
|
@@ -4,5 +4,9 @@
|
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
6
6
|
*/
|
|
7
|
-
/* LWR Module Loader Shim v0.10.0-alpha.
|
|
8
|
-
!function(){"use strict";var e;let t;function r(e){t=e}!function(e){e[e.Start=0]="Start",e[e.End=1]="End"}(e||(e={}));const o=globalThis.performance,i=void 0!==o&&"function"==typeof o.mark&&"function"==typeof o.clearMarks&&"function"==typeof o.measure&&"function"==typeof o.clearMeasures;function n({id:r,specifier:n}){t?t({id:r,phase:e.Start,specifier:n}):i&&o.mark(r+(n?`.${n}`:""))}function s({id:r,specifier:n}){if(t)t({id:r,phase:e.End,specifier:n});else if(i){const e=n?`.${n}`:"",t=r+e,i=`${r}.duration${e}`;o.measure(i,t),o.clearMarks(t),o.clearMeasures(i)}}function a(e,t,o,i){const{autoBoot:n,customInit:s}=e;if(function(e,t){if(!e&&!t)throw new Error("The customInit hook is required when autoBoot is false");if(e&&t)throw new Error("The customInit hook must not be defined when autoBoot is true")}(n,s),s){s({initializeApp:t,define:o,onBootstrapError:i,attachDispatcher:r},e)}}const l="function"==typeof setTimeout,d="undefined"!=typeof console;const c=globalThis;c.LWR.requiredModules=c.LWR.requiredModules||[],c.LWR.requiredModules.indexOf("lwr/loader/v/0_10_0-alpha_2")<0&&c.LWR.requiredModules.push("lwr/loader/v/0_10_0-alpha_2"),new class{constructor(e){this.defineCache={},this.orderedDefs=[],l&&(this.watchdogTimerId=this.startWatchdogTimer()),this.global=e,this.config=e.LWR,this.loaderSpecifier="lwr/loader/v/0_10_0-alpha_2",this.errorHandler=this.config.onError;const t=this.tempDefine.bind(this);e.LWR.define=t,this.bootReady=this.config.autoBoot;try{this.createProfilerModule(this.config),a(Object.freeze(this.config),this.postCustomInit.bind(this),t,(e=>{this.errorHandler=e}))}catch(e){this.enterErrorState(e)}}canInit(){const e=this.config.requiredModules.every((e=>this.orderedDefs.includes(e)));return this.bootReady&&e}tempDefine(...e){const t=e[0];this.defineCache[t]=e,this.orderedDefs.push(t),this.canInit()&&(l&&clearTimeout(this.watchdogTimerId),this.initApp())}postCustomInit(){this.bootReady=!0,this.canInit()&&this.initApp()}initApp(){try{const e={endpoints:this.config.endpoints,baseUrl:this.config.baseUrl,profiler:{logOperationStart:n,logOperationEnd:s},appMetadata:{appId:this.config.appId,bootstrapModule:this.config.bootstrapModule,rootComponent:this.config.rootComponent,rootComponents:this.config.rootComponents}},t=function(e,t,r,o){if(!t||"function"!=typeof t[2])throw new Error(`Expected loader with specifier "${e}" to be a module`);const i={};t[2].call(null,i);const{Loader:n}=i,s=new n(r);return o&&o.length&&s.registerExternalModules(o),s.define(e,["exports"],(e=>{Object.assign(e,{define:s.define.bind(s),load:s.load.bind(s),services:s.services})})),s}(this.loaderSpecifier,this.defineCache[this.loaderSpecifier],e,this.config.preloadModules);this.mountApp(t)}catch(e){this.enterErrorState(e)}}waitForDOMContentLoaded(){return void 0===typeof document||"interactive"===document.readyState||"complete"===document.readyState?Promise.resolve():new Promise((e=>{document.addEventListener("DOMContentLoaded",(()=>{e()}))}))}createProfilerModule(e){e.define("lwr/profiler/v/0_10_0-alpha_2",["exports"],(e=>{Object.assign(e,{logOperationStart:n,logOperationEnd:s})}))}mountApp(e){const{bootstrapModule:t,rootComponent:r,rootComponents:o,ssrProps:i,endpoints:n,imports:s,index:a}=this.config;this.global.LWR=Object.freeze({define:e.define.bind(e),rootComponent:r,rootComponents:o,ssrProps:i,endpoints:n,imports:s||{},index:a||{}}),this.orderedDefs.forEach((t=>{t!==this.loaderSpecifier&&e.define(...this.defineCache[t])}));const{disableInitDefer:l}=this.config;e.registerImportMappings({imports:s,index:a},[t,r]).then((()=>{if(!l)return this.waitForDOMContentLoaded()})).then((()=>e.load(t))).catch((e=>{this.enterErrorState(new Error(`Application ${r||t} could not be loaded: ${e}`))}))}enterErrorState(e){n({id:"lwr.bootstrap.error"}),this.errorHandler?this.errorHandler(e):d&&console.error(`An error occurred during LWR bootstrap. ${e.message}`,e.stack)}startWatchdogTimer(){return setTimeout((()=>{this.enterErrorState(new Error("Failed to load required modules - timed out"))}),3e5)}}(c)}(),LWR.define("lwr/loader/v/0_10_0-alpha_2",["exports"],(function(exports){"use strict";const templateRegex=/\{([0-9]+)\}/g;function templateString(e,t){return e.replace(templateRegex,((e,r)=>t[r]))}function generateErrorMessage(e,t){const r=Array.isArray(t)?templateString(e.message,t):e.message;return`LWR${e.code}: ${r}`}class LoaderError extends Error{constructor(e,t){super(),this.message=generateErrorMessage(e,t)}}function invariant(e,t){if(!e)throw new LoaderError(t)}const MISSING_NAME=Object.freeze({code:3e3,message:"A module name is required.",level:0}),FAIL_INSTANTIATE=Object.freeze({code:3004,message:"Failed to instantiate module: {0}",level:0}),NO_AMD_REQUIRE=Object.freeze({code:3005,message:"AMD require not supported.",level:0}),FAILED_DEP=Object.freeze({code:3006,level:0,message:"Failed to load dependency: {0}"}),INVALID_DEPS=Object.freeze({code:3007,message:"Unexpected value received for dependencies argument; expected an array.",level:0}),FAIL_LOAD=Object.freeze({code:3008,level:0,message:"Error loading {0}"}),UNRESOLVED=Object.freeze({code:3009,level:0,message:"Unable to resolve bare specifier: {0}"}),NO_BASE_URL=Object.freeze({code:3010,level:0,message:"baseUrl not set"});Object.freeze({code:3011,level:0,message:"Cannot set a loader service multiple times"});const INVALID_HOOK=Object.freeze({code:3012,level:0,message:"Invalid hook received"}),INVALID_LOADER_SERVICE_RESPONSE=Object.freeze({code:3013,level:0,message:"Invalid response received from hook"}),MODULE_LOAD_TIMEOUT=Object.freeze({code:3014,level:0,message:"Error loading {0} - timed out"}),HTTP_FAIL_LOAD=Object.freeze({code:3015,level:0,message:"Error loading {0}, status code {1}"}),STALE_HOOK_ERROR=Object.freeze({code:3016,level:0,message:"An error occurred handling module conflict"});Object.freeze({code:3017,level:0,message:"Marking module(s) as externally loaded, but they are already loaded:"});const FAIL_HOOK_LOAD=Object.freeze({code:3018,level:0,message:'Error loading "{0}" from hook'}),NO_MAPPING_URL=Object.freeze({code:3019,level:0,message:"Mapping endpoint not set"}),BAD_IMPORT_METADATA=Object.freeze({code:3020,level:0,message:"Invalid import metadata: {0} {1}"});Object.freeze({code:3011,level:0,message:"import map is not valid"});const hasDocument="undefined"!=typeof document,hasSetTimeout="function"==typeof setTimeout,hasConsole="undefined"!=typeof console;function getBaseUrl(){let e;if(hasDocument){const t=document.querySelector("base[href]");e=t&&t.href}if(!e&&"undefined"!=typeof location){e=location.href.split("#")[0].split("?")[0];const t=e.lastIndexOf("/");-1!==t&&(e=e.slice(0,t+1))}return e}function isUrl(e){return-1!==e.indexOf("://")}function resolveIfNotPlainOrUrl(e,t){if(-1!==e.indexOf("\\")&&(e=e.replace(/\\/g,"/")),"/"===e[0]&&"/"===e[1])return t.slice(0,t.indexOf(":")+1)+e;if("."===e[0]&&("/"===e[1]||"."===e[1]&&("/"===e[2]||2===e.length&&(e+="/"))||1===e.length&&(e+="/"))||"/"===e[0]){const r=t.slice(0,t.indexOf(":")+1);let o;if("/"===t[r.length+1]?"file:"!==r?(o=t.slice(r.length+2),o=o.slice(o.indexOf("/")+1)):o=t.slice(8):o=t.slice(r.length+("/"===t[r.length]?1:0)),"/"===e[0])return t.slice(0,t.length-o.length-1)+e;const i=o.slice(0,o.lastIndexOf("/")+1)+e,n=[];let s=-1;for(let e=0;e<i.length;e++)-1!==s?"/"===i[e]&&(n.push(i.slice(s,e+1)),s=-1):"."===i[e]?"."!==i[e+1]||"/"!==i[e+2]&&e+2!==i.length?"/"===i[e+1]||e+1===i.length?e+=1:s=e:(n.pop(),e+=2):s=e;return-1!==s&&n.push(i.slice(s)),t.slice(0,t.length-o.length)+n.join("")}}function resolveUrl(e,t){return resolveIfNotPlainOrUrl(e,t)||(isUrl(e)?e:resolveIfNotPlainOrUrl("./"+e,t))}function createScript(e){const t=document.createElement("script");return t.async=!0,t.crossOrigin="anonymous",t.src=e,t}let lastWindowError$1,lastWindowErrorUrl;function loadModuleDef(e){return new Promise((function(t,r){if(hasDocument){const o=createScript(e);o.addEventListener("error",(()=>{r(new LoaderError(FAIL_LOAD,[e]))})),o.addEventListener("load",(()=>{document.head.removeChild(o),lastWindowErrorUrl===e?r(lastWindowError$1):t()})),document.head.appendChild(o)}}))}hasDocument&&window.addEventListener("error",(e=>{lastWindowErrorUrl=e.filename,lastWindowError$1=e.error}));const LOADER_PREFIX="lwr.loader.",MODULE_DEFINE=`${LOADER_PREFIX}module.define`,MODULE_FETCH=`${LOADER_PREFIX}module.fetch`,MODULE_ERROR=`${LOADER_PREFIX}module.error`,MAPPINGS_FETCH=`${LOADER_PREFIX}mappings.fetch`,MAPPINGS_ERROR=`${LOADER_PREFIX}mappings.error`;class ImportMetadataResolver{constructor(e,t){this.importURICache=new Map,this.pendingURICache=new Map,this.loadMappingHooks=[],this.config=e,this.invalidationCallback=t}addLoadMappingHook(e){this.loadMappingHooks.push(e)}getMappingEndpoint(){return this.config.endpoints&&this.config.endpoints.uris?this.config.endpoints.uris.mapping:void 0}getModifiersAsUrlParams(){const e=this.config.endpoints?this.config.endpoints.modifiers:void 0;if(e){return`?${Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}`}return""}buildMappingUrl(e){return`${this.getMappingEndpoint()}${encodeURIComponent(e)}${this.getModifiersAsUrlParams()}`}getBaseUrl(){return this.config.baseUrl}registerImportMappings(e,t){if(!t||0===t.length){const r=e?JSON.stringify(e):"undefined";throw new LoaderError(BAD_IMPORT_METADATA,[r,t?"[]":"undefined"])}if(!e)throw new LoaderError(BAD_IMPORT_METADATA,["undefined",JSON.stringify(t)]);if(!e.imports||0===Object.keys(e.imports).length)throw new LoaderError(BAD_IMPORT_METADATA,[JSON.stringify(e),JSON.stringify(t)]);const r=e.index||{};for(const[o,i]of Object.entries(e.imports))i.forEach((e=>{const i=r[e],n=this.importURICache.get(e);if(n){const t=i||o,r=n.identity||n.uri;r!==t&&this.invalidationCallback({name:e,oldUrl:r,newUrl:t})}else this.saveImportURIRecord(e,o,i,t.includes(e))}))}getURI(e){return this.importURICache.has(e)?resolveUrl(this.importURICache.get(e).uri,this.getBaseUrl()):void 0}resolveLocal(e){const t=this.getURI(e);return t||(isUrl(e)||e.startsWith("/")?e:void 0)}async resolve(e){let t=this.getURI(e);if(t)return t;if(isUrl(e)||e.startsWith("/"))return e;{const r=this.pendingURICache.get(e);if(r)return r;this.config.profiler.logOperationStart({id:MAPPINGS_FETCH,specifier:e});const o=(this.hasMappingHooks()?this.evaluateMappingHooks:this.fetchNewMappings).bind(this)(e).then((r=>{if(!r||!r.imports)throw new LoaderError(UNRESOLVED,[e]);if(this.registerImportMappings(r,[e]),t=this.getURI(e),!t)throw new LoaderError(UNRESOLVED,[e]);return this.config.profiler.logOperationEnd({id:MAPPINGS_FETCH,specifier:e}),t})).finally((()=>{this.pendingURICache.delete(e)}));return this.pendingURICache.set(e,o),o}}hasMappingHooks(){return this.loadMappingHooks.length>0}async evaluateMappingHooks(e){const t=this.loadMappingHooks;if(t.length){const r=Array.from(this.importURICache.keys());for(let o=0;o<t.length;o++){const i=t[o],n=await i(e,{knownModules:r});if(n||void 0===n)return n}}return this.fetchNewMappings(e)}async fetchNewMappings(e){if("function"!=typeof globalThis.fetch)throw new LoaderError(UNRESOLVED,[e]);const t=resolveUrl(this.buildMappingUrl(e),this.getBaseUrl());return globalThis.fetch(t).then((t=>{if(!t.ok)throw this.config.profiler.logOperationStart({id:MAPPINGS_ERROR,specifier:e}),new LoaderError(UNRESOLVED,[e]);return t.json().then((e=>e)).catch((t=>{throw new LoaderError(UNRESOLVED,[e])}))}))}saveImportURIRecord(e,t,r,o){r&&t!==r?this.importURICache.set(e,{uri:t,identity:r,isRoot:o}):this.importURICache.set(e,{uri:t,isRoot:o})}}function reportError(e){hasConsole&&console.error(e)}function evaluateHandleStaleModuleHooks(e,t){const{name:r,oldUrl:o,newUrl:i}=t;for(let t=0;t<e.length;t++){const n=e[t];try{if(null!==n({name:r,oldUrl:o,newUrl:i}))break}catch(e){reportError(new LoaderError(STALE_HOOK_ERROR))}}}const MODULE_LOAD_TIMEOUT_TIMER=3e5;let lastWindowError;function isCustomResponse(e){return Object.prototype.hasOwnProperty.call(e,"data")&&!Object.prototype.hasOwnProperty.call(e,"blob")}function isFetchResponse(e){return"function"==typeof e.blob}function isResponseAPromise(e){return!(!e||!e.then)}async function evaluateLoadHookResponse(response,id){return Promise.resolve().then((async()=>{if(!response.status)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(200!==response.status)throw new LoaderError(HTTP_FAIL_LOAD,[id,`${response.status}`]);const isResponse=isFetchResponse(response);let code;if(isCustomResponse(response))code=response.data;else{if(!isResponse)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);code=await response.text()}if(!code)throw new LoaderError(FAIL_LOAD,[id]);code=`${code}\n//# sourceURL=${id}`;try{eval(code)}catch(e){throw new LoaderError(FAIL_LOAD,[id])}if(lastWindowError)throw new LoaderError(FAIL_LOAD,[id]);return!0}))}async function evaluateLoadHook(e,t){return hasSetTimeout?new Promise(((r,o)=>{const i=setTimeout((()=>{o(new LoaderError(MODULE_LOAD_TIMEOUT,[e]))}),MODULE_LOAD_TIMEOUT_TIMER);t.then((e=>{r(e)})).catch((()=>{o(new LoaderError(FAIL_HOOK_LOAD,[e]))})).finally((()=>{clearTimeout(i)}))})):t}hasDocument&&globalThis.addEventListener("error",(e=>{lastWindowError=e.error}));class ModuleRegistry{constructor(e){this.namedDefineRegistry=new Map,this.moduleRegistry=new Map,this.aliases=new Map,this.profiler=e.profiler,this.resolver=new ImportMetadataResolver(e,this.importMetadataInvalidationCallback.bind(this))}async load(e,t){const r=await this.resolve(e,t),o=this.getModuleRecord(r,e);return o.evaluated?o.module:(o.evaluationPromise||(o.evaluationPromise=this.topLevelEvaluation(o)),o.evaluationPromise)}async resolve(e,t){const r=this.resolver.getBaseUrl();let o,i=e;const n=this.resolveHook;if(n){for(let e=0;e<n.length;e++){const t=(0,n[e])(i,{parentUrl:r});let s;if((t||null===t)&&(s=isResponseAPromise(t)?await t:t),null!==s){if("string"==typeof s){if(resolveIfNotPlainOrUrl(s,r))throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);i=s;continue}if(o=s&&s.url&&(resolveIfNotPlainOrUrl(s.url,r)||s.url),!o)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);break}}if(i!==e){if(!o&&this.namedDefineRegistry.has(i))return i;e=i}}if(!o){const t=resolveIfNotPlainOrUrl(e,r)||e;if(this.moduleRegistry.has(t))return t;const i=this.resolver.resolveLocal(t);if(i){if(this.namedDefineRegistry.has(t)&&this.namedDefineRegistry.get(t).defined){if(!this.moduleRegistry.get(i)||!this.aliases.has(t))return t}return i}if(this.namedDefineRegistry.has(t))return t;try{o=await this.resolver.resolve(t)}catch(e){}}if(!o||!isUrl(o)){if(this.namedDefineRegistry.has(e))return e;throw new LoaderError(UNRESOLVED,[e])}return t&&isUrl(o)&&(o+=`?importer=${encodeURIComponent(t)}`),o}has(e){return this.moduleRegistry.has(e)}define(e,t,r){const o=this.namedDefineRegistry.get(e);if(o&&o.defined)return void(this.lastDefine=o);const i={name:e,dependencies:t,exporter:r,defined:!0};o&&o.external&&o.external.resolveExternal(i),this.profiler.logOperationStart({id:MODULE_DEFINE,specifier:e}),this.namedDefineRegistry.set(e,i),this.lastDefine=i}registerExternalModules(e){e.map((e=>{if(!this.namedDefineRegistry.has(e)){let t,r;const o=new Promise(((o,i)=>{t=o,r=setTimeout((()=>{i(new LoaderError(MODULE_LOAD_TIMEOUT,[e]))}),MODULE_LOAD_TIMEOUT_TIMER)})).finally((()=>{clearTimeout(r)})),i={name:e,defined:!1,external:{resolveExternal:t,moduleDefPromise:o}};this.namedDefineRegistry.set(e,i)}}))}getImportMetadataResolver(){return this.resolver}getExistingModuleRecord(e,t){const r=this.moduleRegistry.get(e);if(r)return this.storeModuleAlias(t,e),r;if(e!==t){const e=this.aliases.get(t);if(e){const t=this.moduleRegistry.get(e);if(t)return t}}return r}getModuleRecord(e,t){const r=this.getExistingModuleRecord(e,t);if(r)return r;const o=this.getModuleDef(e,t),i=o.then((e=>{const t=e.dependencies.map((e=>{if("exports"!==e)return invariant("require"!==e,NO_AMD_REQUIRE),this.getModuleDependencyRecord.call(this,e)})).filter((e=>void 0!==e));return Promise.all(t)})),n={id:e,module:Object.create(null),dependencyRecords:i,instantiation:o,evaluated:!1,evaluationPromise:null};return this.moduleRegistry.set(e,n),this.storeModuleAlias(t,e),n}storeModuleAlias(e,t){e!==t&&(this.aliases.has(e)||this.aliases.set(e,t))}async getModuleDependencyRecord(e){const t=await this.resolve(e);return this.getModuleRecord(t,e)}async topLevelEvaluation(e){return await this.instantiateAll(e,{}),this.evaluateModule(e,{})}async instantiateAll(e,t){if(!t[e.id]){t[e.id]=!0;const r=await e.dependencyRecords;if(r)for(let e=0;e<r.length;e++){const o=r[e];await this.instantiateAll(o,t)}}}async evaluateModule(e,t){const r=await e.dependencyRecords;r.length>0&&(t[e.id]=!0,await this.evaluateModuleDependencies(r,t));const{exporter:o,dependencies:i}=await e.instantiation,n={},s=await Promise.all(i.map((async e=>{if("exports"===e)return n;const t=await this.resolve(e),r=this.moduleRegistry.get(t);if(!r)throw new LoaderError(FAILED_DEP,[t]);const o=r.module;if(!r.evaluated)return this.getCircularDependencyWrapper(o);if(o)return o.__defaultInterop?o.default:o;throw new LoaderError(FAILED_DEP,[t])})));if(e.evaluated)return e.module;let a=o(...s);void 0!==a?(a={default:a},Object.defineProperty(a,"__defaultInterop",{value:!0})):this.isNamedExportDefaultOnly(n)&&Object.defineProperty(n,"__useDefault",{value:!0});const l=a||n;for(const t in l)Object.defineProperty(e.module,t,{enumerable:!0,set(e){l[t]=e},get:()=>l[t]});return l.__useDefault&&Object.defineProperty(e.module,"__useDefault",{value:!0}),l.__defaultInterop&&Object.defineProperty(e.module,"__defaultInterop",{value:!0}),l.__esModule&&Object.defineProperty(e.module,"__esModule",{value:!0}),e.evaluated=!0,Object.freeze(e.module),e.module}isNamedExportDefaultOnly(e){return void 0!==e&&2===Object.getOwnPropertyNames(e).length&&Object.prototype.hasOwnProperty.call(e,"default")&&Object.prototype.hasOwnProperty.call(e,"__esModule")}getCircularDependencyWrapper(e){const t=()=>e.__useDefault||e.__defaultInterop?e.default:e;return t.__circular__=!0,t}async evaluateModuleDependencies(e,t){for(let r=0;r<e.length;r++){const o=e[r];o.evaluated||t[o.id]||(t[o.id]=!0,await this.evaluateModule(o,t))}}async getModuleDef(e,t){this.lastDefine=void 0;const r=isUrl(e)?t!==e?t:void 0:e;let o=r&&this.namedDefineRegistry.get(r);if(o&&o.external)return o.external.moduleDefPromise;if(o&&o.defined)return o;const i=this.resolver.getBaseUrl(),n=r||t;return this.profiler.logOperationStart({id:MODULE_FETCH,specifier:n}),Promise.resolve().then((async()=>{const t=this.loadHook;if(t)for(let r=0;r<t.length;r++){const o=(0,t[r])(e,i),n=isResponseAPromise(o)?await evaluateLoadHook(e,o):o;if(void 0===n)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(n&&null!==n)return evaluateLoadHookResponse(n,e)}return!1})).then((t=>{if(!0!==t&&hasDocument)return loadModuleDef(e)})).then((()=>{if(o=r&&this.namedDefineRegistry.get(r),o||(o=this.lastDefine),!o)throw new LoaderError(FAIL_INSTANTIATE,[e]);return this.profiler.logOperationEnd({id:MODULE_FETCH,specifier:n}),o})).catch((e=>{throw this.profiler.logOperationStart({id:MODULE_ERROR,specifier:n}),e}))}addLoaderPlugin(e){if("object"!=typeof e)throw new LoaderError(INVALID_HOOK);const{loadModule:t,resolveModule:r,loadMapping:o}=e;r&&(this.resolveHook?this.resolveHook.push(r):this.resolveHook=[r]),t&&(this.loadHook?this.loadHook.push(t):this.loadHook=[t]),o&&this.resolver.addLoadMappingHook(o)}importMetadataInvalidationCallback({name:e,oldUrl:t,newUrl:r}){const o=this.handleStaleModuleHook;o&&evaluateHandleStaleModuleHooks(o,{name:e,oldUrl:t,newUrl:r})}registerHandleStaleModuleHook(e){this.handleStaleModuleHook?this.handleStaleModuleHook.push(e):this.handleStaleModuleHook=[e]}}class Loader{constructor(e){let t=e.baseUrl;const r=e.endpoints?e.endpoints.uris.mapping:void 0;let o=e.profiler;if(!r)throw new LoaderError(NO_MAPPING_URL);if(e.endpoints.uris.mapping=r.replace(/\/?$/,"/"),t&&(t=t.replace(/\/?$/,"/")),t||(t=getBaseUrl()),!t)throw new LoaderError(NO_BASE_URL);if(o||(o={logOperationStart:()=>{},logOperationEnd:()=>{}}),this.registry=new ModuleRegistry(Object.freeze({endpoints:e.endpoints,baseUrl:t,profiler:o})),e.appMetadata&&!e.appMetadata.appId){const t=e.appMetadata.bootstrapModule.match(/@lwr-bootstrap\/(.+)\/v\/.+/),r=t&&t[1];e.appMetadata.appId=r}this.services=Object.freeze({addLoaderPlugin:this.registry.addLoaderPlugin.bind(this.registry),handleStaleModule:this.registry.registerHandleStaleModuleHook.bind(this.registry),appMetadata:e.appMetadata})}define(e,t,r){invariant("string"==typeof e,MISSING_NAME);let o=r,i=t;"function"==typeof i&&(o=t,i=[]),invariant(Array.isArray(i),INVALID_DEPS),this.registry.define(e,i,o)}async load(e,t){return this.registry.load(e,t)}has(e){return this.registry.has(e)}async resolve(e,t){return this.registry.resolve(e,t)}async registerImportMappings(e,t){this.registry.getImportMetadataResolver().registerImportMappings(e,t)}registerExternalModules(e){this.registry.registerExternalModules(e)}}exports.Loader=Loader,Object.defineProperty(exports,"__esModule",{value:!0})}));
|
|
7
|
+
/* LWR Module Loader Shim v0.10.0-alpha.20 */
|
|
8
|
+
!function(){"use strict";var e=function(e){return e[e.Start=0]="Start",e[e.End=1]="End",e}(e||{});let t;function r(e){t=e}const o=globalThis.performance,i=void 0!==o&&"function"==typeof o.mark&&"function"==typeof o.clearMarks&&"function"==typeof o.measure&&"function"==typeof o.clearMeasures;function n(e,t){return t?`${e}-${t}`:e}function s(e,t,r){const o=n(e,t);return t&&r?`${o}_${r}`:o}function a(e,t){const r=e||t?{...t}:null;return r&&e&&(r.specifier=e),r}function l({id:r,specifier:n,specifierIndex:l,metadata:d}){if(t)t({id:r,phase:e.Start,specifier:n,metadata:d});else if(i){const e=s(r,n,l),t=a(n,d);o.mark(e,{detail:t})}}function d({id:r,specifier:l,specifierIndex:d,metadata:c}){if(t)t({id:r,phase:e.End,specifier:l,metadata:c});else if(i){const e=s(r,l,d),t=n(r,l),i=a(l,c);o.measure(t,{start:e,detail:i}),o.clearMarks(e),o.clearMeasures(t)}}function c(e,t,o,i){const{autoBoot:n,customInit:s}=e;if(function(e,t){if(!e&&!t)throw new Error("The customInit hook is required when autoBoot is false");if(e&&t)throw new Error("The customInit hook must not be defined when autoBoot is true")}(n,s),s){s({initializeApp:t,define:o,onBootstrapError:i,attachDispatcher:r},e)}}const p="function"==typeof setTimeout,u="undefined"!=typeof console;class h{__init(){this.defineCache={}}__init2(){this.orderedDefs=[]}constructor(e){h.prototype.__init.call(this),h.prototype.__init2.call(this),p&&(this.watchdogTimerId=this.startWatchdogTimer()),this.global=e,this.config=e.LWR,this.loaderSpecifier="lwr/loader/v/0_10_0-alpha_20",this.errorHandler=this.config.onError;const t=this.tempDefine.bind(this);e.LWR.define=t,this.bootReady=this.config.autoBoot;try{this.createProfilerModule(this.config),c(Object.freeze(this.config),this.postCustomInit.bind(this),t,(e=>{this.errorHandler=e}))}catch(e){this.enterErrorState(e)}}canInit(){const e=this.config.requiredModules.every((e=>this.orderedDefs.includes(e)));return this.bootReady&&e}tempDefine(...e){const t=e[0];this.defineCache[t]=e,this.orderedDefs.push(t),this.canInit()&&(p&&clearTimeout(this.watchdogTimerId),this.initApp())}postCustomInit(){this.bootReady=!0,this.canInit()&&this.initApp()}initApp(){try{const e={endpoints:this.config.endpoints,baseUrl:this.config.baseUrl,profiler:{logOperationStart:l,logOperationEnd:d},appMetadata:{appId:this.config.appId,bootstrapModule:this.config.bootstrapModule,rootComponent:this.config.rootComponent,rootComponents:this.config.rootComponents}},t=function(e,t,r,o){if(!t||"function"!=typeof t[2])throw new Error(`Expected loader with specifier "${e}" to be a module`);const i={};t[2].call(null,i);const{Loader:n}=i,s=new n(r);return o&&o.length&&s.registerExternalModules(o),s.define(e,["exports"],(e=>{Object.assign(e,{define:s.define.bind(s),load:s.load.bind(s),services:s.services})})),s}(this.loaderSpecifier,this.defineCache[this.loaderSpecifier],e,this.config.preloadModules);this.mountApp(t)}catch(e){this.enterErrorState(e)}}waitForDOMContentLoaded(){return void 0===typeof document||"interactive"===document.readyState||"complete"===document.readyState?Promise.resolve():new Promise((e=>{document.addEventListener("DOMContentLoaded",(()=>{e()}))}))}createProfilerModule(e){e.define("lwr/profiler/v/0_10_0-alpha_20",["exports"],(e=>{Object.assign(e,{logOperationStart:l,logOperationEnd:d})}))}mountApp(e){const{bootstrapModule:t,rootComponent:r,rootComponents:o,ssrProps:i,endpoints:n,imports:s,index:a}=this.config;this.global.LWR=Object.freeze({define:e.define.bind(e),rootComponent:r,rootComponents:o,ssrProps:i,endpoints:n,imports:s||{},index:a||{}}),this.orderedDefs.forEach((t=>{t!==this.loaderSpecifier&&e.define(...this.defineCache[t])}));const{disableInitDefer:l}=this.config;e.registerImportMappings({imports:s,index:a},[t,r]).then((()=>{if(!l)return this.waitForDOMContentLoaded()})).then((()=>e.load(t))).catch((e=>{this.enterErrorState(new Error(`Application ${r||t} could not be loaded: ${e}`))}))}enterErrorState(e){l({id:"lwr.bootstrap.error"}),this.errorHandler?this.errorHandler(e):u&&console.error(`An error occurred during LWR bootstrap. ${e.message}`,e.stack)}startWatchdogTimer(){return setTimeout((()=>{this.enterErrorState(new Error("Failed to load required modules - timed out"))}),6e4)}}const f=globalThis;f.LWR.requiredModules=f.LWR.requiredModules||[],f.LWR.requiredModules.indexOf("lwr/loader/v/0_10_0-alpha_20")<0&&f.LWR.requiredModules.push("lwr/loader/v/0_10_0-alpha_20"),new h(f)}(),LWR.define("lwr/loader/v/0_10_0-alpha_20",["exports"],(function(exports){"use strict";const templateRegex=/\{([0-9]+)\}/g;function templateString(e,t){return e.replace(templateRegex,((e,r)=>t[r]))}function generateErrorMessage(e,t){const r=Array.isArray(t)?templateString(e.message,t):e.message;return`LWR${e.code}: ${r}`}class LoaderError extends Error{constructor(e,t){super(),this.message=generateErrorMessage(e,t)}}function invariant(e,t){if(!e)throw new LoaderError(t)}const MISSING_NAME=Object.freeze({code:3e3,message:"A module name is required.",level:0}),FAIL_INSTANTIATE=Object.freeze({code:3004,message:"Failed to instantiate module: {0}",level:0}),NO_AMD_REQUIRE=Object.freeze({code:3005,message:"AMD require not supported.",level:0}),FAILED_DEP=Object.freeze({code:3006,level:0,message:"Failed to load dependency: {0}"}),INVALID_DEPS=Object.freeze({code:3007,message:"Unexpected value received for dependencies argument; expected an array.",level:0}),FAIL_LOAD=Object.freeze({code:3008,level:0,message:"Error loading {0}"}),UNRESOLVED=Object.freeze({code:3009,level:0,message:"Unable to resolve bare specifier: {0}"}),NO_BASE_URL=Object.freeze({code:3010,level:0,message:"baseUrl not set"});Object.freeze({code:3011,level:0,message:"Cannot set a loader service multiple times"});const INVALID_HOOK=Object.freeze({code:3012,level:0,message:"Invalid hook received"}),INVALID_LOADER_SERVICE_RESPONSE=Object.freeze({code:3013,level:0,message:"Invalid response received from hook"}),MODULE_LOAD_TIMEOUT=Object.freeze({code:3014,level:0,message:"Error loading {0} - timed out"}),HTTP_FAIL_LOAD=Object.freeze({code:3015,level:0,message:"Error loading {0}, status code {1}"}),STALE_HOOK_ERROR=Object.freeze({code:3016,level:0,message:"An error occurred handling module conflict"});Object.freeze({code:3017,level:0,message:"Marking module(s) as externally loaded, but they are already loaded:"});const FAIL_HOOK_LOAD=Object.freeze({code:3018,level:0,message:'Error loading "{0}" from hook'}),NO_MAPPING_URL=Object.freeze({code:3019,level:0,message:"Mapping endpoint not set"}),BAD_IMPORT_METADATA=Object.freeze({code:3020,level:0,message:"Invalid import metadata: {0} {1}"});Object.freeze({code:3011,level:0,message:"import map is not valid"});const hasDocument="undefined"!=typeof document,hasSetTimeout="function"==typeof setTimeout,hasConsole="undefined"!=typeof console;function getBaseUrl(){let e;if(hasDocument){const t=document.querySelector("base[href]");e=t&&t.href}if(!e&&"undefined"!=typeof location){e=location.href.split("#")[0].split("?")[0];const t=e.lastIndexOf("/");-1!==t&&(e=e.slice(0,t+1))}return e}function isUrl(e){return-1!==e.indexOf("://")}function resolveIfNotPlainOrUrl(e,t){if(-1!==e.indexOf("\\")&&(e=e.replace(/\\/g,"/")),"/"===e[0]&&"/"===e[1])return t.slice(0,t.indexOf(":")+1)+e;if("."===e[0]&&("/"===e[1]||"."===e[1]&&("/"===e[2]||2===e.length&&(e+="/"))||1===e.length&&(e+="/"))||"/"===e[0]){const r=t.slice(0,t.indexOf(":")+1);let o;if("/"===t[r.length+1]?"file:"!==r?(o=t.slice(r.length+2),o=o.slice(o.indexOf("/")+1)):o=t.slice(8):o=t.slice(r.length+("/"===t[r.length]?1:0)),"/"===e[0])return t.slice(0,t.length-o.length-1)+e;const i=o.slice(0,o.lastIndexOf("/")+1)+e,n=[];let s=-1;for(let e=0;e<i.length;e++)-1!==s?"/"===i[e]&&(n.push(i.slice(s,e+1)),s=-1):"."===i[e]?"."!==i[e+1]||"/"!==i[e+2]&&e+2!==i.length?"/"===i[e+1]||e+1===i.length?e+=1:s=e:(n.pop(),e+=2):s=e;return-1!==s&&n.push(i.slice(s)),t.slice(0,t.length-o.length)+n.join("")}}function resolveUrl(e,t){return resolveIfNotPlainOrUrl(e,t)||(isUrl(e)?e:resolveIfNotPlainOrUrl("./"+e,t))}function createScript(e){const t=document.createElement("script");return t.async=!0,t.crossOrigin="anonymous",t.src=e,t}let lastWindowError$1,lastWindowErrorUrl;function loadModuleDef(e){return new Promise((function(t,r){if(hasDocument){const o=createScript(e);o.addEventListener("error",(()=>{r(new LoaderError(FAIL_LOAD,[e]))})),o.addEventListener("load",(()=>{document.head.removeChild(o),lastWindowErrorUrl===e?r(lastWindowError$1):t()})),document.head.appendChild(o)}}))}hasDocument&&window.addEventListener("error",(e=>{lastWindowErrorUrl=e.filename,lastWindowError$1=e.error}));const LOADER_PREFIX="lwr.loader.",MODULE_DEFINE=`${LOADER_PREFIX}module.define`,MODULE_FETCH=`${LOADER_PREFIX}module.fetch`,MODULE_ERROR=`${LOADER_PREFIX}module.error`,MAPPINGS_FETCH=`${LOADER_PREFIX}mappings.fetch`,MAPPINGS_ERROR=`${LOADER_PREFIX}mappings.error`;class ImportMetadataResolver{__init(){this.importURICache=new Map}__init2(){this.pendingURICache=new Map}__init3(){this.loadMappingHooks=[]}constructor(e,t){ImportMetadataResolver.prototype.__init.call(this),ImportMetadataResolver.prototype.__init2.call(this),ImportMetadataResolver.prototype.__init3.call(this),this.config=e,this.invalidationCallback=t}addLoadMappingHook(e){this.loadMappingHooks.push(e)}getMappingEndpoint(){return this.config.endpoints&&this.config.endpoints.uris?this.config.endpoints.uris.mapping:void 0}getModifiersAsUrlParams(){const e=this.config.endpoints?this.config.endpoints.modifiers:void 0;if(e){return`?${Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}`}return""}buildMappingUrl(e){return`${this.getMappingEndpoint()}${encodeURIComponent(e)}${this.getModifiersAsUrlParams()}`}getBaseUrl(){return this.config.baseUrl}registerImportMappings(e,t){if(!t||0===t.length){const r=e?JSON.stringify(e):"undefined";throw new LoaderError(BAD_IMPORT_METADATA,[r,t?"[]":"undefined"])}if(!e)throw new LoaderError(BAD_IMPORT_METADATA,["undefined",JSON.stringify(t)]);if(!e.imports||0===Object.keys(e.imports).length)throw new LoaderError(BAD_IMPORT_METADATA,[JSON.stringify(e),JSON.stringify(t)]);const r=e.index||{};for(const[o,i]of Object.entries(e.imports))i.forEach((e=>{const i=r[e],n=this.importURICache.get(e);if(n){const t=i||o,r=n.identity||n.uri;r!==t&&this.invalidationCallback({name:e,oldUrl:r,newUrl:t})}else this.saveImportURIRecord(e,o,i,t.includes(e))}))}getURI(e){return this.importURICache.has(e)?resolveUrl(this.importURICache.get(e).uri,this.getBaseUrl()):void 0}resolveLocal(e){const t=this.getURI(e);return t||(isUrl(e)||e.startsWith("/")?e:void 0)}async resolve(e){let t=this.getURI(e);if(t)return t;if(isUrl(e)||e.startsWith("/"))return e;{const r=this.pendingURICache.get(e);if(r)return r;this.config.profiler.logOperationStart({id:MAPPINGS_FETCH,specifier:e});const o=(this.hasMappingHooks()?this.evaluateMappingHooks:this.fetchNewMappings).bind(this)(e).then((r=>{if(!r||!r.imports)throw new LoaderError(UNRESOLVED,[e]);if(this.registerImportMappings(r,[e]),t=this.getURI(e),!t)throw new LoaderError(UNRESOLVED,[e]);return this.config.profiler.logOperationEnd({id:MAPPINGS_FETCH,specifier:e}),t})).finally((()=>{this.pendingURICache.delete(e)}));return this.pendingURICache.set(e,o),o}}hasMappingHooks(){return this.loadMappingHooks.length>0}async evaluateMappingHooks(e){const t=this.loadMappingHooks;if(t.length){const r=Array.from(this.importURICache.keys());for(let o=0;o<t.length;o++){const i=t[o],n=await i(e,{knownModules:r});if(n||void 0===n)return n}}return this.fetchNewMappings(e)}async fetchNewMappings(e){if("function"!=typeof globalThis.fetch)throw new LoaderError(UNRESOLVED,[e]);const t=resolveUrl(this.buildMappingUrl(e),this.getBaseUrl());return globalThis.fetch(t).then((t=>{if(!t.ok)throw this.config.profiler.logOperationStart({id:MAPPINGS_ERROR,specifier:e}),new LoaderError(UNRESOLVED,[e]);return t.json().then((e=>e)).catch((t=>{throw new LoaderError(UNRESOLVED,[e])}))}))}saveImportURIRecord(e,t,r,o){r&&t!==r?this.importURICache.set(e,{uri:t,identity:r,isRoot:o}):this.importURICache.set(e,{uri:t,isRoot:o})}}function reportError(e){hasConsole&&console.error(e)}function evaluateHandleStaleModuleHooks(e,t){const{name:r,oldUrl:o,newUrl:i}=t;for(let t=0;t<e.length;t++){const n=e[t];try{if(null!==n({name:r,oldUrl:o,newUrl:i}))break}catch(e){reportError(new LoaderError(STALE_HOOK_ERROR))}}}const MODULE_LOAD_TIMEOUT_TIMER=6e4,SUPPORTS_TRUSTED_TYPES="undefined"!=typeof trustedTypes;
|
|
9
|
+
/*!
|
|
10
|
+
* Copyright (C) 2023 salesforce.com, inc.
|
|
11
|
+
*/function createTrustedTypesPolicy(e,t){return trustedTypes.createPolicy(e,t)}function createFallbackPolicy(e,t){return t}const createPolicy=SUPPORTS_TRUSTED_TYPES?createTrustedTypesPolicy:createFallbackPolicy,policyOptions={createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e},trusted=createPolicy("trusted",policyOptions);let lastWindowError;function isCustomResponse(e){return Object.prototype.hasOwnProperty.call(e,"data")&&!Object.prototype.hasOwnProperty.call(e,"blob")}function isFetchResponse(e){return"function"==typeof e.blob}function isResponseAPromise(e){return!(!e||!e.then)}async function evaluateLoadHookResponse(response,id){return Promise.resolve().then((async()=>{if(!response.status)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(200!==response.status)throw new LoaderError(HTTP_FAIL_LOAD,[id,`${response.status}`]);const isResponse=isFetchResponse(response);let code;if(isCustomResponse(response))code=response.data;else{if(!isResponse)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);code=await response.text()}if(!code)throw new LoaderError(FAIL_LOAD,[id]);code=`${code}\n//# sourceURL=${id}`;try{eval(trusted.createScript(code))}catch(e){throw new LoaderError(FAIL_LOAD,[id])}if(lastWindowError)throw new LoaderError(FAIL_LOAD,[id]);return!0}))}async function evaluateLoadHook(e,t){return hasSetTimeout?new Promise(((r,o)=>{const i=setTimeout((()=>{o(new LoaderError(MODULE_LOAD_TIMEOUT,[e]))}),MODULE_LOAD_TIMEOUT_TIMER);t.then((e=>{r(e)})).catch((()=>{o(new LoaderError(FAIL_HOOK_LOAD,[e]))})).finally((()=>{clearTimeout(i)}))})):t}hasDocument&&globalThis.addEventListener("error",(e=>{lastWindowError=e.error}));class ModuleRegistry{constructor(e){ModuleRegistry.prototype.__init.call(this),ModuleRegistry.prototype.__init2.call(this),ModuleRegistry.prototype.__init3.call(this),this.profiler=e.profiler,this.resolver=new ImportMetadataResolver(e,this.importMetadataInvalidationCallback.bind(this))}async load(e,t){const r=await this.resolve(e,t),o=this.getModuleRecord(r,e);return o.evaluated?o.module:(o.evaluationPromise||(o.evaluationPromise=this.topLevelEvaluation(o)),o.evaluationPromise)}async resolve(e,t){const r=this.resolver.getBaseUrl();let o,i=e;const n=this.resolveHook;if(n){for(let e=0;e<n.length;e++){const t=(0,n[e])(i,{parentUrl:r});let s;if((t||null===t)&&(s=isResponseAPromise(t)?await t:t),null!==s){if("string"==typeof s){if(resolveIfNotPlainOrUrl(s,r))throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);i=s;continue}if(o=s&&s.url&&(resolveIfNotPlainOrUrl(s.url,r)||s.url),!o)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);break}}if(i!==e){if(!o&&this.namedDefineRegistry.has(i))return i;e=i}}if(!o){const t=resolveIfNotPlainOrUrl(e,r)||e;if(this.moduleRegistry.has(t))return t;const i=this.resolver.resolveLocal(t);if(i){if(this.namedDefineRegistry.has(t)&&this.namedDefineRegistry.get(t).defined){if(!this.moduleRegistry.get(i)||!this.aliases.has(t))return t}return i}if(this.namedDefineRegistry.has(t))return t;try{o=await this.resolver.resolve(t)}catch(e){}}if(!o||!isUrl(o)){if(this.namedDefineRegistry.has(e))return e;throw new LoaderError(UNRESOLVED,[e])}return t&&isUrl(o)&&(o+=`?importer=${encodeURIComponent(t)}`),o}has(e){return this.moduleRegistry.has(e)}define(e,t,r){const o=this.namedDefineRegistry.get(e);if(o&&o.defined)return void(this.lastDefine=o);const i={name:e,dependencies:t,exporter:r,defined:!0};o&&o.external&&o.external.resolveExternal(i),this.profiler.logOperationStart({id:MODULE_DEFINE,specifier:e}),this.namedDefineRegistry.set(e,i),this.lastDefine=i}registerExternalModules(e){e.map((e=>{if(!this.namedDefineRegistry.has(e)){let t,r;const o=new Promise(((o,i)=>{t=o,r=setTimeout((()=>{i(new LoaderError(MODULE_LOAD_TIMEOUT,[e]))}),MODULE_LOAD_TIMEOUT_TIMER)})).finally((()=>{clearTimeout(r)})),i={name:e,defined:!1,external:{resolveExternal:t,moduleDefPromise:o}};this.namedDefineRegistry.set(e,i)}}))}__init(){this.namedDefineRegistry=new Map}__init2(){this.moduleRegistry=new Map}__init3(){this.aliases=new Map}getImportMetadataResolver(){return this.resolver}getExistingModuleRecord(e,t){const r=this.moduleRegistry.get(e);if(r)return this.storeModuleAlias(t,e),r;if(e!==t){const e=this.aliases.get(t);if(e){const t=this.moduleRegistry.get(e);if(t)return t}}return r}getModuleRecord(e,t){const r=this.getExistingModuleRecord(e,t);if(r)return r;const o=this.getModuleDef(e,t),i=o.then((e=>{const t=e.dependencies.map((e=>{if("exports"!==e)return invariant("require"!==e,NO_AMD_REQUIRE),this.getModuleDependencyRecord.call(this,e)})).filter((e=>void 0!==e));return Promise.all(t)})),n={id:e,module:Object.create(null),dependencyRecords:i,instantiation:o,evaluated:!1,evaluationPromise:null};return this.moduleRegistry.set(e,n),this.storeModuleAlias(t,e),n}storeModuleAlias(e,t){e!==t&&(this.aliases.has(e)||this.aliases.set(e,t))}async getModuleDependencyRecord(e){const t=await this.resolve(e);return this.getModuleRecord(t,e)}async topLevelEvaluation(e){return await this.instantiateAll(e,{}),this.evaluateModule(e,{})}async instantiateAll(e,t){if(!t[e.id]){t[e.id]=!0;const r=await e.dependencyRecords;if(r)for(let e=0;e<r.length;e++){const o=r[e];await this.instantiateAll(o,t)}}}async evaluateModule(e,t){const r=await e.dependencyRecords;r.length>0&&(t[e.id]=!0,await this.evaluateModuleDependencies(r,t));const{exporter:o,dependencies:i}=await e.instantiation,n={},s=await Promise.all(i.map((async e=>{if("exports"===e)return n;const t=await this.resolve(e),r=this.moduleRegistry.get(t);if(!r)throw new LoaderError(FAILED_DEP,[t]);const o=r.module;if(!r.evaluated)return this.getCircularDependencyWrapper(o);if(o)return o.__defaultInterop?o.default:o;throw new LoaderError(FAILED_DEP,[t])})));if(e.evaluated)return e.module;let a=o(...s);void 0!==a?(a={default:a},Object.defineProperty(a,"__defaultInterop",{value:!0})):this.isNamedExportDefaultOnly(n)&&Object.defineProperty(n,"__useDefault",{value:!0});const l=a||n;for(const t in l)Object.defineProperty(e.module,t,{enumerable:!0,set(e){l[t]=e},get:()=>l[t]});return l.__useDefault&&Object.defineProperty(e.module,"__useDefault",{value:!0}),l.__defaultInterop&&Object.defineProperty(e.module,"__defaultInterop",{value:!0}),l.__esModule&&Object.defineProperty(e.module,"__esModule",{value:!0}),e.evaluated=!0,Object.freeze(e.module),e.module}isNamedExportDefaultOnly(e){return void 0!==e&&2===Object.getOwnPropertyNames(e).length&&Object.prototype.hasOwnProperty.call(e,"default")&&Object.prototype.hasOwnProperty.call(e,"__esModule")}getCircularDependencyWrapper(e){const t=()=>e.__useDefault||e.__defaultInterop?e.default:e;return t.__circular__=!0,t}async evaluateModuleDependencies(e,t){for(let r=0;r<e.length;r++){const o=e[r];o.evaluated||t[o.id]||(t[o.id]=!0,await this.evaluateModule(o,t))}}async getModuleDef(e,t){this.lastDefine=void 0;const r=isUrl(e)?t!==e?t:void 0:e;let o=r&&this.namedDefineRegistry.get(r);if(o&&o.external)return o.external.moduleDefPromise;if(o&&o.defined)return o;const i=this.resolver.getBaseUrl(),n=r||t;return this.profiler.logOperationStart({id:MODULE_FETCH,specifier:n}),Promise.resolve().then((async()=>{const t=this.loadHook;if(t)for(let r=0;r<t.length;r++){const o=(0,t[r])(e,i),n=isResponseAPromise(o)?await evaluateLoadHook(e,o):o;if(void 0===n)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(n&&null!==n)return evaluateLoadHookResponse(n,e)}return!1})).then((t=>{if(!0!==t&&hasDocument)return loadModuleDef(e)})).then((()=>{if(o=r&&this.namedDefineRegistry.get(r),o||(o=this.lastDefine),!o)throw new LoaderError(FAIL_INSTANTIATE,[e]);return this.profiler.logOperationEnd({id:MODULE_FETCH,specifier:n}),o})).catch((e=>{throw this.profiler.logOperationStart({id:MODULE_ERROR,specifier:n}),e}))}addLoaderPlugin(e){if("object"!=typeof e)throw new LoaderError(INVALID_HOOK);const{loadModule:t,resolveModule:r,loadMapping:o}=e;r&&(this.resolveHook?this.resolveHook.push(r):this.resolveHook=[r]),t&&(this.loadHook?this.loadHook.push(t):this.loadHook=[t]),o&&this.resolver.addLoadMappingHook(o)}importMetadataInvalidationCallback({name:e,oldUrl:t,newUrl:r}){const o=this.handleStaleModuleHook;o&&evaluateHandleStaleModuleHooks(o,{name:e,oldUrl:t,newUrl:r})}registerHandleStaleModuleHook(e){this.handleStaleModuleHook?this.handleStaleModuleHook.push(e):this.handleStaleModuleHook=[e]}}class Loader{constructor(e){let t=e.baseUrl;const r=e.endpoints?e.endpoints.uris.mapping:void 0;let o=e.profiler;if(!r)throw new LoaderError(NO_MAPPING_URL);if(e.endpoints.uris.mapping=r.replace(/\/?$/,"/"),t&&(t=t.replace(/\/?$/,"/")),t||(t=getBaseUrl()),!t)throw new LoaderError(NO_BASE_URL);if(o||(o={logOperationStart:()=>{},logOperationEnd:()=>{}}),this.registry=new ModuleRegistry(Object.freeze({endpoints:e.endpoints,baseUrl:t,profiler:o})),e.appMetadata&&!e.appMetadata.appId){const t=e.appMetadata.bootstrapModule.match(/@lwr-bootstrap\/(.+)\/v\/.+/),r=t&&t[1];e.appMetadata.appId=r}this.services=Object.freeze({addLoaderPlugin:this.registry.addLoaderPlugin.bind(this.registry),handleStaleModule:this.registry.registerHandleStaleModuleHook.bind(this.registry),appMetadata:e.appMetadata})}define(e,t,r){invariant("string"==typeof e,MISSING_NAME);let o=r,i=t;"function"==typeof i&&(o=t,i=[]),invariant(Array.isArray(i),INVALID_DEPS),this.registry.define(e,i,o)}async load(e,t){return this.registry.load(e,t)}has(e){return this.registry.has(e)}async resolve(e,t){return this.registry.resolve(e,t)}async registerImportMappings(e,t){this.registry.getImportMetadataResolver().registerImportMappings(e,t)}registerExternalModules(e){this.registry.registerExternalModules(e)}}exports.Loader=Loader,Object.defineProperty(exports,"__esModule",{value:!0})}));
|
|
12
|
+
//# sourceMappingURL=lwr-loader-shim.bundle.min.js.map
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
6
6
|
*/
|
|
7
|
-
/* LWR Module Loader Shim v0.10.0-alpha.
|
|
7
|
+
/* LWR Module Loader Shim v0.10.0-alpha.20 */
|
|
8
8
|
(function () {
|
|
9
9
|
'use strict';
|
|
10
10
|
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
const BOOTSTRAP_PREFIX = 'lwr.bootstrap.';
|
|
13
13
|
const BOOTSTRAP_ERROR = `${BOOTSTRAP_PREFIX}error`;
|
|
14
14
|
|
|
15
|
-
var Phase
|
|
16
|
-
(function (Phase) {
|
|
15
|
+
var Phase = /*#__PURE__*/function (Phase) {
|
|
17
16
|
Phase[Phase["Start"] = 0] = "Start";
|
|
18
17
|
Phase[Phase["End"] = 1] = "End";
|
|
19
|
-
|
|
18
|
+
return Phase;
|
|
19
|
+
}(Phase || {});
|
|
20
20
|
// Attach a custom dispatcher
|
|
21
21
|
let customDispatcher;
|
|
22
22
|
function attachDispatcher(dispatcher) {
|
|
@@ -27,21 +27,46 @@
|
|
|
27
27
|
// e.g. JSDom (used in Jest) doesn't implement these
|
|
28
28
|
const perf = globalThis.performance;
|
|
29
29
|
const isPerfSupported = typeof perf !== 'undefined' && typeof perf.mark === 'function' && typeof perf.clearMarks === 'function' && typeof perf.measure === 'function' && typeof perf.clearMeasures === 'function';
|
|
30
|
+
function getMeasureName(id, specifier) {
|
|
31
|
+
return specifier ? `${id}-${specifier}` : id;
|
|
32
|
+
}
|
|
33
|
+
function getMarkName(id, specifier, specifierIndex) {
|
|
34
|
+
const measureName = getMeasureName(id, specifier);
|
|
35
|
+
return specifier && specifierIndex ? `${measureName}_${specifierIndex}` : measureName;
|
|
36
|
+
}
|
|
37
|
+
function getDetail(specifier, metadata) {
|
|
38
|
+
const detail = specifier || metadata ? {
|
|
39
|
+
...metadata
|
|
40
|
+
} : null;
|
|
41
|
+
if (detail && specifier) {
|
|
42
|
+
detail['specifier'] = specifier;
|
|
43
|
+
}
|
|
44
|
+
return detail;
|
|
45
|
+
}
|
|
30
46
|
|
|
31
47
|
// For marking request metrics
|
|
32
48
|
// Fallback to the Performance API if there is no custom dispatcher
|
|
33
49
|
function logOperationStart({
|
|
34
50
|
id,
|
|
35
|
-
specifier
|
|
51
|
+
specifier,
|
|
52
|
+
specifierIndex,
|
|
53
|
+
metadata
|
|
36
54
|
}) {
|
|
37
55
|
if (customDispatcher) {
|
|
38
56
|
customDispatcher({
|
|
39
57
|
id,
|
|
40
58
|
phase: Phase.Start,
|
|
41
|
-
specifier
|
|
59
|
+
specifier,
|
|
60
|
+
metadata
|
|
61
|
+
});
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (isPerfSupported) {
|
|
65
|
+
const markName = getMarkName(id, specifier, specifierIndex);
|
|
66
|
+
const detail = getDetail(specifier, metadata);
|
|
67
|
+
perf.mark(markName, {
|
|
68
|
+
detail
|
|
42
69
|
});
|
|
43
|
-
} else if (isPerfSupported) {
|
|
44
|
-
perf.mark(id + (specifier ? `.${specifier}` : ''));
|
|
45
70
|
}
|
|
46
71
|
}
|
|
47
72
|
|
|
@@ -50,19 +75,25 @@
|
|
|
50
75
|
/* istanbul ignore next */
|
|
51
76
|
function logOperationEnd({
|
|
52
77
|
id,
|
|
53
|
-
specifier
|
|
78
|
+
specifier,
|
|
79
|
+
specifierIndex,
|
|
80
|
+
metadata
|
|
54
81
|
}) {
|
|
55
82
|
if (customDispatcher) {
|
|
56
83
|
customDispatcher({
|
|
57
84
|
id,
|
|
58
85
|
phase: Phase.End,
|
|
59
|
-
specifier
|
|
86
|
+
specifier,
|
|
87
|
+
metadata
|
|
60
88
|
});
|
|
61
89
|
} else if (isPerfSupported) {
|
|
62
|
-
const
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
perf.measure(measureName,
|
|
90
|
+
const markName = getMarkName(id, specifier, specifierIndex);
|
|
91
|
+
const measureName = getMeasureName(id, specifier);
|
|
92
|
+
const detail = getDetail(specifier, metadata);
|
|
93
|
+
perf.measure(measureName, {
|
|
94
|
+
start: markName,
|
|
95
|
+
detail
|
|
96
|
+
});
|
|
66
97
|
|
|
67
98
|
// Clear the created mark and measure to avoid filling the performance entry buffer
|
|
68
99
|
// Even if they get deleted, existing PerformanceObservers preserve copies of the entries
|
|
@@ -71,18 +102,26 @@
|
|
|
71
102
|
}
|
|
72
103
|
}
|
|
73
104
|
|
|
74
|
-
function createLoader(
|
|
105
|
+
function createLoader(
|
|
106
|
+
name,
|
|
107
|
+
definition,
|
|
108
|
+
config,
|
|
109
|
+
externalModules,
|
|
110
|
+
) {
|
|
75
111
|
if (!definition || typeof definition[2] !== 'function') {
|
|
76
112
|
throw new Error(`Expected loader with specifier "${name}" to be a module`);
|
|
77
113
|
}
|
|
114
|
+
|
|
78
115
|
// Create a Loader instance
|
|
79
116
|
const exports = {};
|
|
80
117
|
definition[2].call(null, exports);
|
|
81
118
|
const { Loader } = exports;
|
|
82
119
|
const loader = new Loader(config);
|
|
120
|
+
|
|
83
121
|
if (externalModules && externalModules.length) {
|
|
84
122
|
loader.registerExternalModules(externalModules);
|
|
85
123
|
}
|
|
124
|
+
|
|
86
125
|
// Define the loader module with public API: { define, load, services }
|
|
87
126
|
const exporter = (exports) => {
|
|
88
127
|
Object.assign(exports, {
|
|
@@ -92,10 +131,11 @@
|
|
|
92
131
|
});
|
|
93
132
|
};
|
|
94
133
|
loader.define(name, ['exports'], exporter);
|
|
134
|
+
|
|
95
135
|
return loader;
|
|
96
136
|
}
|
|
97
137
|
|
|
98
|
-
const REQUIRED_MODULES_TIMEOUT =
|
|
138
|
+
const REQUIRED_MODULES_TIMEOUT = 60 * 1000; // 2m
|
|
99
139
|
|
|
100
140
|
// Check for errors with autoBoot and customInit
|
|
101
141
|
function validatePreInit(autoBoot, customInit) {
|
|
@@ -108,11 +148,18 @@
|
|
|
108
148
|
throw new Error('The customInit hook must not be defined when autoBoot is true');
|
|
109
149
|
}
|
|
110
150
|
}
|
|
151
|
+
|
|
111
152
|
// Process the customInit hook
|
|
112
|
-
function customInit(
|
|
153
|
+
function customInit(
|
|
154
|
+
config,
|
|
155
|
+
initializeApp,
|
|
156
|
+
define,
|
|
157
|
+
onBootstrapError,
|
|
158
|
+
) {
|
|
113
159
|
// Validate config
|
|
114
160
|
const { autoBoot, customInit } = config;
|
|
115
161
|
validatePreInit(autoBoot, customInit);
|
|
162
|
+
|
|
116
163
|
// Set up arguments and call the customInit hook, if available
|
|
117
164
|
if (customInit) {
|
|
118
165
|
const lwr = {
|
|
@@ -126,48 +173,74 @@
|
|
|
126
173
|
}
|
|
127
174
|
|
|
128
175
|
/* global document */
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
129
184
|
/* eslint-disable lwr/no-unguarded-apis */
|
|
130
185
|
const hasSetTimeout = typeof setTimeout === 'function';
|
|
131
186
|
const hasConsole = typeof console !== 'undefined';
|
|
132
187
|
/* eslint-enable lwr/no-unguarded-apis */
|
|
188
|
+
|
|
133
189
|
class LoaderShim {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
__init() {this.defineCache = {};}
|
|
195
|
+
__init2() {this.orderedDefs = [];}
|
|
196
|
+
|
|
197
|
+
// eslint-disable-line no-undef, lwr/no-unguarded-apis
|
|
198
|
+
|
|
199
|
+
constructor(global) {LoaderShim.prototype.__init.call(this);LoaderShim.prototype.__init2.call(this);
|
|
137
200
|
// Start watchdog timer
|
|
138
201
|
if (hasSetTimeout) {
|
|
139
202
|
this.watchdogTimerId = this.startWatchdogTimer();
|
|
140
203
|
}
|
|
204
|
+
|
|
141
205
|
// Parse configuration
|
|
142
206
|
this.global = global;
|
|
143
|
-
this.config = global.LWR;
|
|
144
|
-
this.loaderSpecifier = 'lwr/loader/v/0_10_0-
|
|
207
|
+
this.config = global.LWR ;
|
|
208
|
+
this.loaderSpecifier = 'lwr/loader/v/0_10_0-alpha_20';
|
|
209
|
+
|
|
145
210
|
// Set up error handler
|
|
146
211
|
this.errorHandler = this.config.onError;
|
|
212
|
+
|
|
147
213
|
// Set up the temporary LWR.define function and customInit hook
|
|
148
214
|
const tempDefine = this.tempDefine.bind(this);
|
|
149
215
|
global.LWR.define = tempDefine;
|
|
150
216
|
this.bootReady = this.config.autoBoot;
|
|
217
|
+
|
|
151
218
|
try {
|
|
152
219
|
this.createProfilerModule(this.config);
|
|
153
|
-
customInit(
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
220
|
+
customInit(
|
|
221
|
+
Object.freeze(this.config),
|
|
222
|
+
this.postCustomInit.bind(this),
|
|
223
|
+
tempDefine,
|
|
224
|
+
(e) => {
|
|
225
|
+
// customInit handlers can overwrite
|
|
226
|
+
// the error handler with onBootstrapError
|
|
227
|
+
this.errorHandler = e;
|
|
228
|
+
},
|
|
229
|
+
);
|
|
230
|
+
} catch (e) {
|
|
160
231
|
this.enterErrorState(e);
|
|
161
232
|
}
|
|
162
233
|
}
|
|
234
|
+
|
|
163
235
|
// Return true if the app can be initialized
|
|
164
|
-
|
|
236
|
+
canInit() {
|
|
165
237
|
// Initialize the app if:
|
|
166
238
|
// - bootReady: autoBoot is on OR customInit has finished
|
|
167
239
|
// - all required modules are defined
|
|
168
240
|
const allDefined = this.config.requiredModules.every((m) => this.orderedDefs.includes(m));
|
|
169
241
|
return this.bootReady && allDefined;
|
|
170
242
|
}
|
|
243
|
+
|
|
171
244
|
/**
|
|
172
245
|
* Create a temporary LWR.define() function which captures all
|
|
173
246
|
* calls that occur BEFORE the full loader module is available
|
|
@@ -177,7 +250,7 @@
|
|
|
177
250
|
* - each moduleName is pushed onto an array, to preserve
|
|
178
251
|
* the order in which the modules were defined
|
|
179
252
|
*/
|
|
180
|
-
|
|
253
|
+
tempDefine(...args) {
|
|
181
254
|
// Cache the incoming module
|
|
182
255
|
const moduleName = args[0];
|
|
183
256
|
this.defineCache[moduleName] = args;
|
|
@@ -191,15 +264,17 @@
|
|
|
191
264
|
this.initApp();
|
|
192
265
|
}
|
|
193
266
|
}
|
|
267
|
+
|
|
194
268
|
// Called by the customInit hook via lwr.initializeApp()
|
|
195
|
-
|
|
269
|
+
postCustomInit() {
|
|
196
270
|
this.bootReady = true;
|
|
197
271
|
if (this.canInit()) {
|
|
198
272
|
this.initApp();
|
|
199
273
|
}
|
|
200
274
|
}
|
|
275
|
+
|
|
201
276
|
// Create the loader and initialize the application
|
|
202
|
-
|
|
277
|
+
initApp() {
|
|
203
278
|
try {
|
|
204
279
|
const loaderConfig = {
|
|
205
280
|
endpoints: this.config.endpoints,
|
|
@@ -213,18 +288,24 @@
|
|
|
213
288
|
rootComponents: this.config.rootComponents,
|
|
214
289
|
},
|
|
215
290
|
};
|
|
216
|
-
const loader = createLoader(
|
|
291
|
+
const loader = createLoader(
|
|
292
|
+
this.loaderSpecifier,
|
|
293
|
+
this.defineCache[this.loaderSpecifier],
|
|
294
|
+
loaderConfig,
|
|
295
|
+
this.config.preloadModules,
|
|
296
|
+
);
|
|
217
297
|
this.mountApp(loader);
|
|
218
|
-
}
|
|
219
|
-
catch (e) {
|
|
298
|
+
} catch (e) {
|
|
220
299
|
this.enterErrorState(e);
|
|
221
300
|
}
|
|
222
301
|
}
|
|
223
|
-
|
|
302
|
+
|
|
303
|
+
waitForDOMContentLoaded() {
|
|
224
304
|
// eslint-disable-next-line lwr/no-unguarded-apis
|
|
225
305
|
if (typeof document === undefined) {
|
|
226
306
|
return Promise.resolve();
|
|
227
307
|
}
|
|
308
|
+
|
|
228
309
|
// Resolve if document is already "ready" https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState
|
|
229
310
|
// eslint-disable-next-line lwr/no-unguarded-apis
|
|
230
311
|
if (document.readyState === 'interactive' || document.readyState === 'complete') {
|
|
@@ -237,17 +318,21 @@
|
|
|
237
318
|
});
|
|
238
319
|
});
|
|
239
320
|
}
|
|
321
|
+
|
|
240
322
|
// Create a module out of the profiler
|
|
241
323
|
// Note: The profiler is also available as a module through lwc module resolution (see package.json)
|
|
242
|
-
|
|
324
|
+
createProfilerModule(globalLWR) {
|
|
243
325
|
const exporter = (exports) => {
|
|
244
326
|
Object.assign(exports, { logOperationStart, logOperationEnd });
|
|
245
327
|
};
|
|
246
|
-
globalLWR.define('lwr/profiler/v/0_10_0-
|
|
328
|
+
globalLWR.define('lwr/profiler/v/0_10_0-alpha_20', ['exports'], exporter);
|
|
247
329
|
}
|
|
330
|
+
|
|
248
331
|
// Set up the application globals, import map, root custom element...
|
|
249
|
-
|
|
250
|
-
const { bootstrapModule, rootComponent, rootComponents, ssrProps, endpoints, imports, index } =
|
|
332
|
+
mountApp(loader) {
|
|
333
|
+
const { bootstrapModule, rootComponent, rootComponents, ssrProps, endpoints, imports, index } =
|
|
334
|
+
this.config;
|
|
335
|
+
|
|
251
336
|
// Set global LWR.define to loader.define
|
|
252
337
|
this.global.LWR = Object.freeze({
|
|
253
338
|
define: loader.define.bind(loader),
|
|
@@ -258,42 +343,50 @@
|
|
|
258
343
|
imports: imports || {},
|
|
259
344
|
index: index || {},
|
|
260
345
|
});
|
|
346
|
+
|
|
261
347
|
// Redefine all modules in the temporary cache
|
|
262
348
|
this.orderedDefs.forEach((specifier) => {
|
|
263
349
|
if (specifier !== this.loaderSpecifier) {
|
|
264
350
|
loader.define(...this.defineCache[specifier]);
|
|
265
351
|
}
|
|
266
352
|
});
|
|
353
|
+
|
|
267
354
|
// by default, app initialization is gated on waiting for document to be parsed (via DOMContentLoaded)
|
|
268
355
|
const { disableInitDefer } = this.config;
|
|
356
|
+
|
|
269
357
|
// Load the import mappings and application bootstrap module
|
|
270
358
|
loader
|
|
271
359
|
.registerImportMappings({ imports, index }, [bootstrapModule, rootComponent])
|
|
272
360
|
.then(() => {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
361
|
+
if (!disableInitDefer) {
|
|
362
|
+
return this.waitForDOMContentLoaded();
|
|
363
|
+
}
|
|
364
|
+
})
|
|
277
365
|
.then(() => loader.load(bootstrapModule))
|
|
278
366
|
.catch((reason) => {
|
|
279
|
-
|
|
280
|
-
|
|
367
|
+
this.enterErrorState(
|
|
368
|
+
new Error(
|
|
369
|
+
`Application ${rootComponent || bootstrapModule} could not be loaded: ${reason}`,
|
|
370
|
+
),
|
|
371
|
+
);
|
|
372
|
+
});
|
|
281
373
|
}
|
|
374
|
+
|
|
282
375
|
// Trigger bootstrap error state, and call error handler if registered
|
|
283
|
-
|
|
376
|
+
enterErrorState(error) {
|
|
284
377
|
logOperationStart({ id: BOOTSTRAP_ERROR });
|
|
285
378
|
if (this.errorHandler) {
|
|
286
379
|
this.errorHandler(error);
|
|
287
|
-
}
|
|
288
|
-
else {
|
|
380
|
+
} else {
|
|
289
381
|
if (hasConsole) {
|
|
290
382
|
// eslint-disable-next-line lwr/no-unguarded-apis, no-undef
|
|
291
383
|
console.error(`An error occurred during LWR bootstrap. ${error.message}`, error.stack);
|
|
292
384
|
}
|
|
293
385
|
}
|
|
294
386
|
}
|
|
387
|
+
|
|
295
388
|
// eslint-disable-next-line no-undef, lwr/no-unguarded-apis
|
|
296
|
-
|
|
389
|
+
startWatchdogTimer() {
|
|
297
390
|
// eslint-disable-next-line lwr/no-unguarded-apis, no-undef
|
|
298
391
|
return setTimeout(() => {
|
|
299
392
|
this.enterErrorState(new Error('Failed to load required modules - timed out'));
|
|
@@ -302,11 +395,12 @@
|
|
|
302
395
|
}
|
|
303
396
|
|
|
304
397
|
// The loader module is ALWAYS required
|
|
305
|
-
const GLOBAL = globalThis;
|
|
398
|
+
const GLOBAL = globalThis ;
|
|
306
399
|
GLOBAL.LWR.requiredModules = GLOBAL.LWR.requiredModules || [];
|
|
307
|
-
if (GLOBAL.LWR.requiredModules.indexOf('lwr/loader/v/0_10_0-
|
|
308
|
-
GLOBAL.LWR.requiredModules.push('lwr/loader/v/0_10_0-
|
|
400
|
+
if (GLOBAL.LWR.requiredModules.indexOf('lwr/loader/v/0_10_0-alpha_20') < 0) {
|
|
401
|
+
GLOBAL.LWR.requiredModules.push('lwr/loader/v/0_10_0-alpha_20');
|
|
309
402
|
}
|
|
310
403
|
new LoaderShim(GLOBAL);
|
|
311
404
|
|
|
312
|
-
}()
|
|
405
|
+
})();
|
|
406
|
+
//# sourceMappingURL=lwr-loader-shim.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
function t(t){let i,o=t[0],e=1;for(;e<t.length;){const n=t[e],s=t[e+1];if(e+=2,("optionalAccess"===n||"optionalCall"===n)&&null==o)return;"access"===n||"optionalAccess"===n?(i=o,o=s(o)):"call"!==n&&"optionalCall"!==n||(o=s(((...t)=>o.call(i,...t))),i=void 0)}return o}class i{__init(){this.importURICache=new Map}__init2(){this.modifiers=""}constructor(o){i.prototype.__init.call(this),i.prototype.__init2.call(this),this.normalizeMetadata(o),this.mappingEndpoint=t([o,"optionalAccess",t=>t.importMappings])?void 0:t([o,"optionalAccess",t=>t.endpoints,"optionalAccess",t=>t.uris,"access",t=>t.mapping]),t([o,"optionalAccess",t=>t.endpoints,"optionalAccess",t=>t.modifiers])&&(this.modifiers=Object.entries(o.endpoints.modifiers).reduce(((t,[i,o])=>t+`${i}=${o}&`),"?"))}normalizeMetadata(t){if(t&&t.imports)for(const[i,o]of Object.entries(t.imports))if(i&&o){(Array.isArray(o)?o:[]).forEach((t=>{this.importURICache.set(t,i)}))}}async fetchMappings(t){const i=`${this.mappingEndpoint}${encodeURIComponent(t)}${this.modifiers}`,o=await globalThis.fetch(i);if(o.ok){const t=await o.json();this.normalizeMetadata(t)}}async resolve(t){let i=this.importURICache.get(t);return!i&&this.mappingEndpoint&&(await this.fetchMappings(t),i=this.importURICache.get(t)),i}}class o{constructor(t){this.importURICache=t&&t.imports?t:{imports:{}}}legacyResolve(t){return this.importURICache.imports[t]}}let e,n,s;function r(t){e=t;const{imports:r,index:a,importMappings:c,endpoints:p}=t;n=new i({imports:r,index:a,endpoints:p,importMappings:c}),s=new o(c)}async function a(t,i){const o=await async function(t,i){if(t.includes("://")||t.startsWith("/"))return t;if(!n||!s)throw new Error("The ESM Loader was not initialized");if(n){const i=await n.resolve(t);if(i)return i}if(s){const i=s.legacyResolve(t);if(i)return i}const{endpoints:o}=e;if(!function(t){let i,o=t[0],e=1;for(;e<t.length;){const n=t[e],s=t[e+1];if(e+=2,("optionalAccess"===n||"optionalCall"===n)&&null==o)return;"access"===n||"optionalAccess"===n?(i=o,o=s(o)):"call"!==n&&"optionalCall"!==n||(o=s(((...t)=>o.call(i,...t))),i=void 0)}return o}([o,"optionalAccess",t=>t.uris,"optionalAccess",t=>t.module]))throw new Error(`Unable to resolve the URL for "${t}"`);let r=o.uris.module+encodeURIComponent(t);i&&(r+=`?importer=${encodeURIComponent(i)}`);o.modifiers&&(r+=Object.entries(o.modifiers).reduce(((t,[i,o])=>t+`${i}=${o}&`),i?"&":"?"));return r}(t,i);return import(o)}export{r as init,a as load};
|
|
2
|
+
//# sourceMappingURL=esmLoader.js.map
|
package/build/cjs/index.cjs
CHANGED
|
@@ -59,7 +59,7 @@ var AmdLoaderShimService = class {
|
|
|
59
59
|
type: "application/javascript",
|
|
60
60
|
inline: specifier === this.errorShimName ? true : false,
|
|
61
61
|
stream: () => import_fs.default.createReadStream(absFilepath),
|
|
62
|
-
src: this.context.resourceRegistry.resolveResourceUri({specifier, version}, environment)
|
|
62
|
+
src: await this.context.resourceRegistry.resolveResourceUri({specifier, version}, environment)
|
|
63
63
|
};
|
|
64
64
|
} else {
|
|
65
65
|
return void 0;
|
|
@@ -1,15 +1,32 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
2
7
|
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
3
8
|
var __export = (target, all) => {
|
|
4
9
|
for (var name in all)
|
|
5
10
|
__defProp(target, name, {get: all[name], enumerable: true});
|
|
6
11
|
};
|
|
12
|
+
var __exportStar = (target, module2, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
16
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toModule = (module2) => {
|
|
21
|
+
return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
|
|
22
|
+
};
|
|
7
23
|
|
|
8
24
|
// packages/@lwrjs/loader/src/modules/lwr/esmLoader/importResolver.ts
|
|
9
25
|
__markAsModule(exports);
|
|
10
26
|
__export(exports, {
|
|
11
27
|
default: () => importResolver_default
|
|
12
28
|
});
|
|
29
|
+
var import_types = __toModule(require("@lwrjs/types"));
|
|
13
30
|
var ImportResolver = class {
|
|
14
31
|
constructor(config) {
|
|
15
32
|
this.importURICache = new Map();
|
|
@@ -1,15 +1,32 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
2
7
|
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
3
8
|
var __export = (target, all) => {
|
|
4
9
|
for (var name in all)
|
|
5
10
|
__defProp(target, name, {get: all[name], enumerable: true});
|
|
6
11
|
};
|
|
12
|
+
var __exportStar = (target, module2, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
16
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toModule = (module2) => {
|
|
21
|
+
return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
|
|
22
|
+
};
|
|
7
23
|
|
|
8
24
|
// packages/@lwrjs/loader/src/modules/lwr/esmLoader/importResolverLegacy.ts
|
|
9
25
|
__markAsModule(exports);
|
|
10
26
|
__export(exports, {
|
|
11
27
|
default: () => importResolverLegacy_default
|
|
12
28
|
});
|
|
29
|
+
var import_importMap = __toModule(require("../loaderLegacy/importMap/importMap"));
|
|
13
30
|
var ImportResolverLegacy = class {
|
|
14
31
|
constructor(importMap) {
|
|
15
32
|
this.importURICache = importMap && importMap.imports ? importMap : {imports: {}};
|
|
@@ -26,6 +26,7 @@ __markAsModule(exports);
|
|
|
26
26
|
__export(exports, {
|
|
27
27
|
reportError: () => reportError
|
|
28
28
|
});
|
|
29
|
+
var import_messages = __toModule(require("./messages"));
|
|
29
30
|
var import_dom = __toModule(require("../utils/dom"));
|
|
30
31
|
function reportError(error) {
|
|
31
32
|
if (import_dom.hasConsole)
|
|
@@ -28,6 +28,7 @@ __export(exports, {
|
|
|
28
28
|
});
|
|
29
29
|
var import_messages = __toModule(require("../errors/messages"));
|
|
30
30
|
var import_reportError = __toModule(require("../errors/reportError"));
|
|
31
|
+
var import_types = __toModule(require("@lwrjs/types"));
|
|
31
32
|
function evaluateHandleStaleModuleHooks(handleStaleModuleHooks, hookArgs) {
|
|
32
33
|
const {name, oldUrl, newUrl} = hookArgs;
|
|
33
34
|
for (let i = 0; i < handleStaleModuleHooks.length; i++) {
|