@lwrjs/loader 0.23.11 → 0.23.13
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 +1 -1
- package/build/assets/prod/lwr-loader-shim-legacy.bundle.js +18 -9
- package/build/assets/prod/lwr-loader-shim-legacy.bundle.min.js +2 -2
- package/build/assets/prod/lwr-loader-shim-legacy.js +17 -8
- package/build/assets/prod/lwr-loader-shim.bundle.js +19 -42
- package/build/assets/prod/lwr-loader-shim.bundle.min.js +3 -3
- package/build/assets/prod/lwr-loader-shim.js +17 -9
- package/build/cjs/modules/lwr/loader/moduleRegistry/importMetadataResolver.cjs +0 -21
- package/build/modules/lwr/esmLoader/esmLoader.js +1 -1
- package/build/modules/lwr/loader/loader.js +2 -33
- package/build/modules/lwr/loader/moduleRegistry/importMetadataResolver.d.ts +0 -4
- package/build/modules/lwr/loader/moduleRegistry/importMetadataResolver.js +0 -24
- package/build/modules/lwr/loaderLegacy/loaderLegacy.js +1 -1
- package/build/shim/shim.d.ts +1 -0
- package/build/shim/shim.js +7 -4
- package/build/shim-legacy/shimLegacy.d.ts +1 -0
- package/build/shim-legacy/shimLegacy.js +7 -3
- package/build/types.d.ts +0 -3
- package/package.json +6 -6
|
@@ -4,5 +4,5 @@
|
|
|
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 Error Shim v0.23.
|
|
7
|
+
/* LWR Error Shim v0.23.13 */
|
|
8
8
|
!function(){"use strict";const o=globalThis;if(!(o.LWR&&o.LWR.define)){const r=new Error("The LWR application failed to bootstrap");if(!o.LWR||!o.LWR.onError)throw r;o.LWR.onError(r)}}();
|
|
@@ -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 Legacy Module Loader Shim v0.23.
|
|
7
|
+
/* LWR Legacy Module Loader Shim v0.23.13 */
|
|
8
8
|
(function () {
|
|
9
9
|
'use strict';
|
|
10
10
|
|
|
@@ -423,6 +423,11 @@
|
|
|
423
423
|
|
|
424
424
|
__init() {this.defineCache = {};}
|
|
425
425
|
__init2() {this.orderedDefs = [];}
|
|
426
|
+
// Snapshot of requiredModules not yet defined. Enables an O(1) readiness check in
|
|
427
|
+
// canInit() instead of re-scanning the growing orderedDefs array on every define().
|
|
428
|
+
// Assigned in the constructor (declared without an initializer, like bootReady, to
|
|
429
|
+
// avoid emitting a throwaway field-init helper in the minified bundle).
|
|
430
|
+
|
|
426
431
|
__init3() {this.importMapUpdatesCache = {};}
|
|
427
432
|
|
|
428
433
|
// eslint-disable-line no-undef, lwr/no-unguarded-apis
|
|
@@ -436,7 +441,10 @@
|
|
|
436
441
|
// Parse configuration
|
|
437
442
|
this.global = global;
|
|
438
443
|
this.config = global.LWR ;
|
|
439
|
-
|
|
444
|
+
// Snapshot the required modules that still need to be defined. `requiredModules` is
|
|
445
|
+
// fully populated before `new LoaderShim` (see shim-legacy/index.ts), so this is complete.
|
|
446
|
+
this.pendingRequired = new Set(this.config.requiredModules || []);
|
|
447
|
+
this.loaderModule = 'lwr/loaderLegacy/v/0_23_13';
|
|
440
448
|
|
|
441
449
|
// Set up error handler
|
|
442
450
|
this.errorHandler = this.config.onError ;
|
|
@@ -472,9 +480,8 @@
|
|
|
472
480
|
}
|
|
473
481
|
// Initialize the app if:
|
|
474
482
|
// - bootReady: autoBoot is on OR customInit has finished
|
|
475
|
-
// - all required modules are defined
|
|
476
|
-
|
|
477
|
-
return this.bootReady && allDefined;
|
|
483
|
+
// - all required modules are defined (tracked by the pendingRequired countdown)
|
|
484
|
+
return this.bootReady && this.pendingRequired.size === 0;
|
|
478
485
|
}
|
|
479
486
|
|
|
480
487
|
/**
|
|
@@ -491,6 +498,8 @@
|
|
|
491
498
|
const moduleName = args[0];
|
|
492
499
|
this.defineCache[moduleName] = args;
|
|
493
500
|
this.orderedDefs.push(moduleName);
|
|
501
|
+
// O(1) countdown: no-op for non-required modules (e.g. the ~hundreds of labels)
|
|
502
|
+
this.pendingRequired.delete(moduleName);
|
|
494
503
|
if (this.canInit()) {
|
|
495
504
|
if (hasSetTimeout) {
|
|
496
505
|
// requiredModules are defined, clear watchdog timer
|
|
@@ -636,7 +645,7 @@
|
|
|
636
645
|
const exporter = (exports) => {
|
|
637
646
|
Object.assign(exports, { logOperationStart, logOperationEnd });
|
|
638
647
|
};
|
|
639
|
-
define('lwr/profiler/v/
|
|
648
|
+
define('lwr/profiler/v/0_23_13', ['exports'], exporter, {});
|
|
640
649
|
}
|
|
641
650
|
|
|
642
651
|
// Set up the application globals, import map, root custom element...
|
|
@@ -733,14 +742,14 @@
|
|
|
733
742
|
// The loader module is ALWAYS required
|
|
734
743
|
const GLOBAL = globalThis ;
|
|
735
744
|
GLOBAL.LWR.requiredModules = GLOBAL.LWR.requiredModules || [];
|
|
736
|
-
if (GLOBAL.LWR.requiredModules.indexOf('lwr/loaderLegacy/v/
|
|
737
|
-
GLOBAL.LWR.requiredModules.push('lwr/loaderLegacy/v/
|
|
745
|
+
if (GLOBAL.LWR.requiredModules.indexOf('lwr/loaderLegacy/v/0_23_13') < 0) {
|
|
746
|
+
GLOBAL.LWR.requiredModules.push('lwr/loaderLegacy/v/0_23_13');
|
|
738
747
|
}
|
|
739
748
|
new LoaderShim(GLOBAL);
|
|
740
749
|
|
|
741
750
|
})();
|
|
742
751
|
|
|
743
|
-
LWR.define('lwr/loaderLegacy/v/
|
|
752
|
+
LWR.define('lwr/loaderLegacy/v/0_23_13', ['exports'], (function (exports) { 'use strict';
|
|
744
753
|
|
|
745
754
|
const templateRegex = /\{([0-9]+)\}/g;
|
|
746
755
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -4,8 +4,8 @@
|
|
|
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 Legacy Module Loader Shim v0.23.
|
|
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,n=void 0!==o&&"function"==typeof o.mark&&"function"==typeof o.clearMarks&&"function"==typeof o.measure&&"function"==typeof o.clearMeasures;function i(e,t){return t?`${e}-${t}`:e}function s(e,t,r){const o=i(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:i,specifierIndex:l,metadata:c}){if(t)t({id:r,phase:e.Start,specifier:i,metadata:c,specifierIndex:l});else if(n){const e=s(r,i,l),t=a(i,c);o.mark(e,{detail:t})}}function c({id:r,specifier:l,specifierIndex:c,metadata:d}){if(t)t({id:r,phase:e.End,specifier:l,metadata:d,specifierIndex:c});else if(n){const e=s(r,l,c),t=i(r,l),n=a(l,d);o.measure(t,{start:e,detail:n}),o.clearMarks(e),o.clearMeasures(t)}}function d(e){const[,t,r]=e;if(Array.isArray(t)&&"function"==typeof r)return{deps:t,factory:r};if("function"==typeof t)return{deps:[],factory:t};throw new Error("Invalid module definition")}function p(e,t,r){if("exports"===e)return t;const o=r[e];if(!o)throw new Error(`Dependency "${e}" not found in defineCache for loader`);try{return function(e){const{deps:t,factory:r}=d(e);if(t.length>1||1===t.length&&"exports"!==t[0])throw new Error(`Loader dependencies must have no deps or only ['exports']; got [${t.join(", ")}]`);const o={},n=r(o);return void 0!==n?n:o}(o)}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Loader dependency "${e}" has invalid definition: ${r}`)}}function u(e,t,r){try{const{deps:e,factory:o}=function(e){const{deps:t,factory:r}=d(e);if(t.includes("exports"))return{deps:t,factory:r};const o=0===t.length;return{deps:["exports",...t],factory:(e,...t)=>{const n=o?r(e):r(...t);void 0!==n&&"object"==typeof n&&Object.assign(e,n)}}}(t),n={};return{factory:o,args:e.map((e=>p(e,n,r))),exportsObj:n}}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Expected loader with specifier "${e}" to be a module. ${r}`)}}function f(e,t,o,n){const{autoBoot:i,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")}(i,s),s){s({initializeApp:t,define:o,onBootstrapError:n,attachDispatcher:r},e)}}const h="undefined"!=typeof console;function m(e,t){const r=e.toLowerCase();if(r.startsWith("blob:"))throw new Error(`Cannot map ${t} to blob: URL`);if(r.startsWith("data:"))throw new Error(`Cannot map ${t} to data: URL`)}function g(e){if("string"!=typeof e||0===e.length)throw new Error("Specifier must be a non-empty string")}function E(e,t,r){const o=r[e];void 0!==o?o!==t&&function(e,t,r){h&&console.warn("Package target "+r+", resolving target '"+t+"' for "+e)}(e,t,`already mapped to "${o}", ignoring conflicting mapping`):r[e]=t}function y(e){let t,r=e[0],o=1;for(;o<e.length;){const n=e[o],i=e[o+1];if(o+=2,("optionalAccess"===n||"optionalCall"===n)&&null==r)return;"access"===n||"optionalAccess"===n?(t=r,r=i(r)):"call"!==n&&"optionalCall"!==n||(r=i(((...e)=>r.call(t,...e))),t=void 0)}return r}"undefined"!=typeof process&&process.env;const O="function"==typeof setTimeout,M="undefined"!=typeof console;class R{__init(){this.defineCache={}}__init2(){this.orderedDefs=[]}__init3(){this.importMapUpdatesCache={}}constructor(e){R.prototype.__init.call(this),R.prototype.__init2.call(this),R.prototype.__init3.call(this),O&&(this.watchdogTimerId=this.startWatchdogTimer()),this.global=e,this.config=e.LWR,this.loaderModule="lwr/loaderLegacy/v/0_23_11",this.errorHandler=this.config.onError;const t=this.tempDefine.bind(this);e.LWR.define=t;const r=this.tempImportMap.bind(this);e.LWR.importMap=r,this.bootReady=this.config.autoBoot;try{this.createProfilerModule(e.LWR.define),f(Object.freeze(this.config),this.postCustomInit.bind(this),t,(e=>{this.errorHandler=e}))}catch(e){this.enterErrorState(e)}}canInit(){if(!this.config.requiredModules)throw new Error("Unexpected missing requiredModules");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()&&(O&&clearTimeout(this.watchdogTimerId),this.initApp())}tempImportMap(e){try{const t=function(e){if(!e||"object"!=typeof e)throw new Error("LWR.importMap() requires an object argument");const t=Object.entries(e);if(0===t.length)return h&&console.warn("LWR.importMap() called with empty update object"),null;const r={};for(const[e,o]of t){if(!Array.isArray(o))throw new Error("moduleNames must be an array");if(!e||"string"!=typeof e)throw new Error("moduleScriptURL must be a string");m(e,e);for(const t of o)g(t),t in r?h&&console.warn(`LWR.importMap(): duplicate module "${t}" — already mapped to "${r[t]}", ignoring mapping to "${e}"`):r[t]=e}return{imports:r}}(e);if(!t)return;for(const[e,r]of Object.entries(t.imports))E(e,r,this.importMapUpdatesCache)}catch(e){this.enterErrorState(e)}}getImportMappingsWithUpdates(){const e=this.config.importMappings,t={...y([e,"optionalAccess",e=>e.imports])||{}};for(const[e,r]of Object.entries(this.importMapUpdatesCache))E(e,r,t);return{...e||{},imports:t}}postCustomInit(){this.bootReady=!0,this.canInit()&&(O&&clearTimeout(this.watchdogTimerId),this.initApp())}initApp(){try{const e={baseUrl:this.config.baseUrl,profiler:{logOperationStart:l,logOperationEnd:c},appMetadata:{appId:this.config.appId,bootstrapModule:this.config.bootstrapModule,rootComponent:this.config.rootComponent,rootComponents:this.config.rootComponents}},t=function(e,t,r,o,n){if(!t||"function"!=typeof t[2])throw new Error(`Expected loader with specifier "${e}" to be a module`);const i={};if(n){const{factory:r,args:o,exportsObj:s}=u(e,t,n);r(...o),Object.assign(i,s)}else t[2].call(null,i);const{Loader:s}=i;if(!s)throw new Error("Expected Loader class to be defined");const a=new s(r);return o&&o.length&&a.registerExternalModules(o),a.define(e,["exports"],(e=>{Object.assign(e,{define:a.define.bind(a),load:a.load.bind(a),services:a.services,clearRegistry:a.clearRegistry.bind(a)})}),t[3]),a}(this.loaderModule,this.defineCache[this.loaderModule],e,this.config.preloadModules,this.defineCache);this.mountApp(t),t&&t.getModuleWarnings}catch(e){this.enterErrorState(e)}}waitForBody(){return new Promise((e=>{if(document.body)e();else{const t=new MutationObserver((()=>{document.body&&(t.disconnect(),e())}));t.observe(document.documentElement,{childList:!0})}}))}waitForDOMContentLoaded(){return"interactive"===document.readyState||"complete"===document.readyState?Promise.resolve():new Promise((e=>{document.addEventListener("DOMContentLoaded",(()=>{e()}))}))}createProfilerModule(e){e("lwr/profiler/v/0_23_11",["exports"],(e=>{Object.assign(e,{logOperationStart:l,logOperationEnd:c})}),{})}mountApp(e){const{bootstrapModule:t,rootComponent:r,rootComponents:o,serverData:n,endpoints:i}=this.config,s=this.getImportMappingsWithUpdates();this.global.LWR=Object.freeze({define:e.define.bind(e),importMap:e.importMap.bind(e),rootComponent:r,rootComponents:o,serverData:n||{},importMappings:s,endpoints:i,env:this.global.LWR.env}),this.orderedDefs.forEach((t=>{t!==this.loaderModule&&e.define(...this.defineCache[t])}));const{initDeferDOM:a}=this.config;e.registerImportMappings(s).then((()=>"undefined"==typeof window||"undefined"==typeof document?Promise.resolve():a?this.waitForDOMContentLoaded():this.waitForBody())).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):M&&console.error(`An error occurred during LWR bootstrap. ${e.message}`,e.stack)}startWatchdogTimer(){return setTimeout((()=>{const e=this.config.requiredModules&&this.config.requiredModules.filter((e=>!this.orderedDefs.includes(e)))||[];this.enterErrorState(new Error(`Failed to load required modules - timed out: ${e.join(", ")}`))}),6e4)}logWarnings(e){for(const t in e)e[t].length&&console.warn(t,e[t])}}const _=globalThis;_.LWR.requiredModules=_.LWR.requiredModules||[],_.LWR.requiredModules.indexOf("lwr/loaderLegacy/v/0_23_11")<0&&_.LWR.requiredModules.push("lwr/loaderLegacy/v/0_23_11"),new R(_)}(),LWR.define("lwr/loaderLegacy/v/0_23_11",["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}"});Object.freeze({code:3008,level:0,message:"Error loading empty code for {0}"});const 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: {0}"});const FAIL_HOOK_LOAD=Object.freeze({code:3018,level:0,message:'Error loading "{0}" from hook'}),EXPORTER_ERROR=Object.freeze({code:3021,level:0,message:'Error evaluating module "{0}", error was {1}'}),NO_IMPORT_LWC=Object.freeze({code:3022,level:0,message:'Cannot dynamically import "lwc" with importer "{0}"'}),NO_BLOB_IMPORT=Object.freeze({code:3023,level:0,message:"Cannot import a blob URL"}),NO_IMPORT_LOADER=Object.freeze({code:3024,level:0,message:'Cannot dynamically import the LWR loader with importer "{0}"'}),NO_IMPORT_TRANSPORT=Object.freeze({code:3025,level:0,message:'Cannot dynamically import "transport" with importer "{0}"'}),BAD_IMPORT_MAP=Object.freeze({code:3011,level:0,message:"import map is not valid"}),hasDocument="undefined"!=typeof document,hasSetTimeout="function"==typeof setTimeout,hasConsole="undefined"!=typeof console,hasProcess="undefined"!=typeof process;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 n=o.slice(0,o.lastIndexOf("/")+1)+e,i=[];let s=-1;for(let e=0;e<n.length;e++)-1!==s?"/"===n[e]&&(i.push(n.slice(s,e+1)),s=-1):"."===n[e]?"."!==n[e+1]||"/"!==n[e+2]&&e+2!==n.length?"/"===n[e+1]||e+1===n.length?e+=1:s=e:(i.pop(),e+=2):s=e;return-1!==s&&i.push(n.slice(s)),t.slice(0,t.length-o.length)+i.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)}}))}hasProcess&&process.env,hasDocument&&window.addEventListener("error",(e=>{lastWindowErrorUrl=e.filename,lastWindowError$1=e.error}));const MODULE_LOAD_TIMEOUT_TIMER=6e4;var MODULE_WARNING;!function(e){e.MODULE_REDEFINE="Module redefine attempted";e.MODULE_ALREADY_LOADED="Marking module(s) as externally loaded, but they are already loaded";e.ALIAS_UPDATE="Alias update attempt"}(MODULE_WARNING||(MODULE_WARNING={}));
|
|
7
|
+
/* LWR Legacy Module Loader Shim v0.23.13 */
|
|
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,n=void 0!==o&&"function"==typeof o.mark&&"function"==typeof o.clearMarks&&"function"==typeof o.measure&&"function"==typeof o.clearMeasures;function i(e,t){return t?`${e}-${t}`:e}function s(e,t,r){const o=i(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:i,specifierIndex:l,metadata:c}){if(t)t({id:r,phase:e.Start,specifier:i,metadata:c,specifierIndex:l});else if(n){const e=s(r,i,l),t=a(i,c);o.mark(e,{detail:t})}}function c({id:r,specifier:l,specifierIndex:c,metadata:d}){if(t)t({id:r,phase:e.End,specifier:l,metadata:d,specifierIndex:c});else if(n){const e=s(r,l,c),t=i(r,l),n=a(l,d);o.measure(t,{start:e,detail:n}),o.clearMarks(e),o.clearMeasures(t)}}function d(e){const[,t,r]=e;if(Array.isArray(t)&&"function"==typeof r)return{deps:t,factory:r};if("function"==typeof t)return{deps:[],factory:t};throw new Error("Invalid module definition")}function p(e,t,r){if("exports"===e)return t;const o=r[e];if(!o)throw new Error(`Dependency "${e}" not found in defineCache for loader`);try{return function(e){const{deps:t,factory:r}=d(e);if(t.length>1||1===t.length&&"exports"!==t[0])throw new Error(`Loader dependencies must have no deps or only ['exports']; got [${t.join(", ")}]`);const o={},n=r(o);return void 0!==n?n:o}(o)}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Loader dependency "${e}" has invalid definition: ${r}`)}}function u(e,t,r){try{const{deps:e,factory:o}=function(e){const{deps:t,factory:r}=d(e);if(t.includes("exports"))return{deps:t,factory:r};const o=0===t.length;return{deps:["exports",...t],factory:(e,...t)=>{const n=o?r(e):r(...t);void 0!==n&&"object"==typeof n&&Object.assign(e,n)}}}(t),n={};return{factory:o,args:e.map((e=>p(e,n,r))),exportsObj:n}}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Expected loader with specifier "${e}" to be a module. ${r}`)}}function f(e,t,o,n){const{autoBoot:i,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")}(i,s),s){s({initializeApp:t,define:o,onBootstrapError:n,attachDispatcher:r},e)}}const h="undefined"!=typeof console;function m(e,t){const r=e.toLowerCase();if(r.startsWith("blob:"))throw new Error(`Cannot map ${t} to blob: URL`);if(r.startsWith("data:"))throw new Error(`Cannot map ${t} to data: URL`)}function g(e){if("string"!=typeof e||0===e.length)throw new Error("Specifier must be a non-empty string")}function E(e,t,r){const o=r[e];void 0!==o?o!==t&&function(e,t,r){h&&console.warn("Package target "+r+", resolving target '"+t+"' for "+e)}(e,t,`already mapped to "${o}", ignoring conflicting mapping`):r[e]=t}function y(e){let t,r=e[0],o=1;for(;o<e.length;){const n=e[o],i=e[o+1];if(o+=2,("optionalAccess"===n||"optionalCall"===n)&&null==r)return;"access"===n||"optionalAccess"===n?(t=r,r=i(r)):"call"!==n&&"optionalCall"!==n||(r=i(((...e)=>r.call(t,...e))),t=void 0)}return r}"undefined"!=typeof process&&process.env;const O="function"==typeof setTimeout,R="undefined"!=typeof console;class M{__init(){this.defineCache={}}__init2(){this.orderedDefs=[]}__init3(){this.importMapUpdatesCache={}}constructor(e){M.prototype.__init.call(this),M.prototype.__init2.call(this),M.prototype.__init3.call(this),O&&(this.watchdogTimerId=this.startWatchdogTimer()),this.global=e,this.config=e.LWR,this.pendingRequired=new Set(this.config.requiredModules||[]),this.loaderModule="lwr/loaderLegacy/v/0_23_13",this.errorHandler=this.config.onError;const t=this.tempDefine.bind(this);e.LWR.define=t;const r=this.tempImportMap.bind(this);e.LWR.importMap=r,this.bootReady=this.config.autoBoot;try{this.createProfilerModule(e.LWR.define),f(Object.freeze(this.config),this.postCustomInit.bind(this),t,(e=>{this.errorHandler=e}))}catch(e){this.enterErrorState(e)}}canInit(){if(!this.config.requiredModules)throw new Error("Unexpected missing requiredModules");return this.bootReady&&0===this.pendingRequired.size}tempDefine(...e){const t=e[0];this.defineCache[t]=e,this.orderedDefs.push(t),this.pendingRequired.delete(t),this.canInit()&&(O&&clearTimeout(this.watchdogTimerId),this.initApp())}tempImportMap(e){try{const t=function(e){if(!e||"object"!=typeof e)throw new Error("LWR.importMap() requires an object argument");const t=Object.entries(e);if(0===t.length)return h&&console.warn("LWR.importMap() called with empty update object"),null;const r={};for(const[e,o]of t){if(!Array.isArray(o))throw new Error("moduleNames must be an array");if(!e||"string"!=typeof e)throw new Error("moduleScriptURL must be a string");m(e,e);for(const t of o)g(t),t in r?h&&console.warn(`LWR.importMap(): duplicate module "${t}" — already mapped to "${r[t]}", ignoring mapping to "${e}"`):r[t]=e}return{imports:r}}(e);if(!t)return;for(const[e,r]of Object.entries(t.imports))E(e,r,this.importMapUpdatesCache)}catch(e){this.enterErrorState(e)}}getImportMappingsWithUpdates(){const e=this.config.importMappings,t={...y([e,"optionalAccess",e=>e.imports])||{}};for(const[e,r]of Object.entries(this.importMapUpdatesCache))E(e,r,t);return{...e||{},imports:t}}postCustomInit(){this.bootReady=!0,this.canInit()&&(O&&clearTimeout(this.watchdogTimerId),this.initApp())}initApp(){try{const e={baseUrl:this.config.baseUrl,profiler:{logOperationStart:l,logOperationEnd:c},appMetadata:{appId:this.config.appId,bootstrapModule:this.config.bootstrapModule,rootComponent:this.config.rootComponent,rootComponents:this.config.rootComponents}},t=function(e,t,r,o,n){if(!t||"function"!=typeof t[2])throw new Error(`Expected loader with specifier "${e}" to be a module`);const i={};if(n){const{factory:r,args:o,exportsObj:s}=u(e,t,n);r(...o),Object.assign(i,s)}else t[2].call(null,i);const{Loader:s}=i;if(!s)throw new Error("Expected Loader class to be defined");const a=new s(r);return o&&o.length&&a.registerExternalModules(o),a.define(e,["exports"],(e=>{Object.assign(e,{define:a.define.bind(a),load:a.load.bind(a),services:a.services,clearRegistry:a.clearRegistry.bind(a)})}),t[3]),a}(this.loaderModule,this.defineCache[this.loaderModule],e,this.config.preloadModules,this.defineCache);this.mountApp(t),t&&t.getModuleWarnings}catch(e){this.enterErrorState(e)}}waitForBody(){return new Promise((e=>{if(document.body)e();else{const t=new MutationObserver((()=>{document.body&&(t.disconnect(),e())}));t.observe(document.documentElement,{childList:!0})}}))}waitForDOMContentLoaded(){return"interactive"===document.readyState||"complete"===document.readyState?Promise.resolve():new Promise((e=>{document.addEventListener("DOMContentLoaded",(()=>{e()}))}))}createProfilerModule(e){e("lwr/profiler/v/0_23_13",["exports"],(e=>{Object.assign(e,{logOperationStart:l,logOperationEnd:c})}),{})}mountApp(e){const{bootstrapModule:t,rootComponent:r,rootComponents:o,serverData:n,endpoints:i}=this.config,s=this.getImportMappingsWithUpdates();this.global.LWR=Object.freeze({define:e.define.bind(e),importMap:e.importMap.bind(e),rootComponent:r,rootComponents:o,serverData:n||{},importMappings:s,endpoints:i,env:this.global.LWR.env}),this.orderedDefs.forEach((t=>{t!==this.loaderModule&&e.define(...this.defineCache[t])}));const{initDeferDOM:a}=this.config;e.registerImportMappings(s).then((()=>"undefined"==typeof window||"undefined"==typeof document?Promise.resolve():a?this.waitForDOMContentLoaded():this.waitForBody())).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):R&&console.error(`An error occurred during LWR bootstrap. ${e.message}`,e.stack)}startWatchdogTimer(){return setTimeout((()=>{const e=this.config.requiredModules&&this.config.requiredModules.filter((e=>!this.orderedDefs.includes(e)))||[];this.enterErrorState(new Error(`Failed to load required modules - timed out: ${e.join(", ")}`))}),6e4)}logWarnings(e){for(const t in e)e[t].length&&console.warn(t,e[t])}}const _=globalThis;_.LWR.requiredModules=_.LWR.requiredModules||[],_.LWR.requiredModules.indexOf("lwr/loaderLegacy/v/0_23_13")<0&&_.LWR.requiredModules.push("lwr/loaderLegacy/v/0_23_13"),new M(_)}(),LWR.define("lwr/loaderLegacy/v/0_23_13",["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}"});Object.freeze({code:3008,level:0,message:"Error loading empty code for {0}"});const 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: {0}"});const FAIL_HOOK_LOAD=Object.freeze({code:3018,level:0,message:'Error loading "{0}" from hook'}),EXPORTER_ERROR=Object.freeze({code:3021,level:0,message:'Error evaluating module "{0}", error was {1}'}),NO_IMPORT_LWC=Object.freeze({code:3022,level:0,message:'Cannot dynamically import "lwc" with importer "{0}"'}),NO_BLOB_IMPORT=Object.freeze({code:3023,level:0,message:"Cannot import a blob URL"}),NO_IMPORT_LOADER=Object.freeze({code:3024,level:0,message:'Cannot dynamically import the LWR loader with importer "{0}"'}),NO_IMPORT_TRANSPORT=Object.freeze({code:3025,level:0,message:'Cannot dynamically import "transport" with importer "{0}"'}),BAD_IMPORT_MAP=Object.freeze({code:3011,level:0,message:"import map is not valid"}),hasDocument="undefined"!=typeof document,hasSetTimeout="function"==typeof setTimeout,hasConsole="undefined"!=typeof console,hasProcess="undefined"!=typeof process;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 n=o.slice(0,o.lastIndexOf("/")+1)+e,i=[];let s=-1;for(let e=0;e<n.length;e++)-1!==s?"/"===n[e]&&(i.push(n.slice(s,e+1)),s=-1):"."===n[e]?"."!==n[e+1]||"/"!==n[e+2]&&e+2!==n.length?"/"===n[e+1]||e+1===n.length?e+=1:s=e:(i.pop(),e+=2):s=e;return-1!==s&&i.push(n.slice(s)),t.slice(0,t.length-o.length)+i.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)}}))}hasProcess&&process.env,hasDocument&&window.addEventListener("error",(e=>{lastWindowErrorUrl=e.filename,lastWindowError$1=e.error}));const MODULE_LOAD_TIMEOUT_TIMER=6e4;var MODULE_WARNING;!function(e){e.MODULE_REDEFINE="Module redefine attempted";e.MODULE_ALREADY_LOADED="Marking module(s) as externally loaded, but they are already loaded";e.ALIAS_UPDATE="Alias update attempt"}(MODULE_WARNING||(MODULE_WARNING={}));
|
|
9
9
|
/*!
|
|
10
10
|
* Copyright (C) 2023 salesforce.com, inc.
|
|
11
11
|
*/
|
|
@@ -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 Legacy Module Loader Shim v0.23.
|
|
7
|
+
/* LWR Legacy Module Loader Shim v0.23.13 */
|
|
8
8
|
(function () {
|
|
9
9
|
'use strict';
|
|
10
10
|
|
|
@@ -423,6 +423,11 @@
|
|
|
423
423
|
|
|
424
424
|
__init() {this.defineCache = {};}
|
|
425
425
|
__init2() {this.orderedDefs = [];}
|
|
426
|
+
// Snapshot of requiredModules not yet defined. Enables an O(1) readiness check in
|
|
427
|
+
// canInit() instead of re-scanning the growing orderedDefs array on every define().
|
|
428
|
+
// Assigned in the constructor (declared without an initializer, like bootReady, to
|
|
429
|
+
// avoid emitting a throwaway field-init helper in the minified bundle).
|
|
430
|
+
|
|
426
431
|
__init3() {this.importMapUpdatesCache = {};}
|
|
427
432
|
|
|
428
433
|
// eslint-disable-line no-undef, lwr/no-unguarded-apis
|
|
@@ -436,7 +441,10 @@
|
|
|
436
441
|
// Parse configuration
|
|
437
442
|
this.global = global;
|
|
438
443
|
this.config = global.LWR ;
|
|
439
|
-
|
|
444
|
+
// Snapshot the required modules that still need to be defined. `requiredModules` is
|
|
445
|
+
// fully populated before `new LoaderShim` (see shim-legacy/index.ts), so this is complete.
|
|
446
|
+
this.pendingRequired = new Set(this.config.requiredModules || []);
|
|
447
|
+
this.loaderModule = 'lwr/loaderLegacy/v/0_23_13';
|
|
440
448
|
|
|
441
449
|
// Set up error handler
|
|
442
450
|
this.errorHandler = this.config.onError ;
|
|
@@ -472,9 +480,8 @@
|
|
|
472
480
|
}
|
|
473
481
|
// Initialize the app if:
|
|
474
482
|
// - bootReady: autoBoot is on OR customInit has finished
|
|
475
|
-
// - all required modules are defined
|
|
476
|
-
|
|
477
|
-
return this.bootReady && allDefined;
|
|
483
|
+
// - all required modules are defined (tracked by the pendingRequired countdown)
|
|
484
|
+
return this.bootReady && this.pendingRequired.size === 0;
|
|
478
485
|
}
|
|
479
486
|
|
|
480
487
|
/**
|
|
@@ -491,6 +498,8 @@
|
|
|
491
498
|
const moduleName = args[0];
|
|
492
499
|
this.defineCache[moduleName] = args;
|
|
493
500
|
this.orderedDefs.push(moduleName);
|
|
501
|
+
// O(1) countdown: no-op for non-required modules (e.g. the ~hundreds of labels)
|
|
502
|
+
this.pendingRequired.delete(moduleName);
|
|
494
503
|
if (this.canInit()) {
|
|
495
504
|
if (hasSetTimeout) {
|
|
496
505
|
// requiredModules are defined, clear watchdog timer
|
|
@@ -636,7 +645,7 @@
|
|
|
636
645
|
const exporter = (exports) => {
|
|
637
646
|
Object.assign(exports, { logOperationStart, logOperationEnd });
|
|
638
647
|
};
|
|
639
|
-
define('lwr/profiler/v/
|
|
648
|
+
define('lwr/profiler/v/0_23_13', ['exports'], exporter, {});
|
|
640
649
|
}
|
|
641
650
|
|
|
642
651
|
// Set up the application globals, import map, root custom element...
|
|
@@ -733,8 +742,8 @@
|
|
|
733
742
|
// The loader module is ALWAYS required
|
|
734
743
|
const GLOBAL = globalThis ;
|
|
735
744
|
GLOBAL.LWR.requiredModules = GLOBAL.LWR.requiredModules || [];
|
|
736
|
-
if (GLOBAL.LWR.requiredModules.indexOf('lwr/loaderLegacy/v/
|
|
737
|
-
GLOBAL.LWR.requiredModules.push('lwr/loaderLegacy/v/
|
|
745
|
+
if (GLOBAL.LWR.requiredModules.indexOf('lwr/loaderLegacy/v/0_23_13') < 0) {
|
|
746
|
+
GLOBAL.LWR.requiredModules.push('lwr/loaderLegacy/v/0_23_13');
|
|
738
747
|
}
|
|
739
748
|
new LoaderShim(GLOBAL);
|
|
740
749
|
|
|
@@ -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.23.
|
|
7
|
+
/* LWR Module Loader Shim v0.23.13 */
|
|
8
8
|
(function () {
|
|
9
9
|
'use strict';
|
|
10
10
|
|
|
@@ -297,6 +297,11 @@
|
|
|
297
297
|
|
|
298
298
|
__init() {this.defineCache = {};}
|
|
299
299
|
__init2() {this.orderedDefs = [];}
|
|
300
|
+
// Snapshot of requiredModules not yet defined. Enables an O(1) readiness check in
|
|
301
|
+
// canInit() instead of re-scanning the growing orderedDefs array on every define().
|
|
302
|
+
// Assigned in the constructor (declared without an initializer, like bootReady, to
|
|
303
|
+
// avoid emitting a throwaway field-init helper in the minified bundle).
|
|
304
|
+
|
|
300
305
|
|
|
301
306
|
// eslint-disable-line no-undef, lwr/no-unguarded-apis
|
|
302
307
|
|
|
@@ -310,7 +315,10 @@
|
|
|
310
315
|
// Parse configuration
|
|
311
316
|
this.global = global;
|
|
312
317
|
this.config = global.LWR ;
|
|
313
|
-
|
|
318
|
+
// Snapshot the required modules that still need to be defined. `requiredModules` is
|
|
319
|
+
// fully populated before `new LoaderShim` (see shim/index.ts), so this is complete.
|
|
320
|
+
this.pendingRequired = new Set(this.config.requiredModules || []);
|
|
321
|
+
this.loaderSpecifier = 'lwr/loader/v/0_23_13';
|
|
314
322
|
|
|
315
323
|
// Set up error handler
|
|
316
324
|
this.errorHandler = this.config.onError ;
|
|
@@ -347,9 +355,8 @@
|
|
|
347
355
|
}
|
|
348
356
|
// Initialize the app if:
|
|
349
357
|
// - bootReady: autoBoot is on OR customInit has finished
|
|
350
|
-
// - all required modules are defined
|
|
351
|
-
|
|
352
|
-
return this.bootReady && allDefined;
|
|
358
|
+
// - all required modules are defined (tracked by the pendingRequired countdown)
|
|
359
|
+
return this.bootReady && this.pendingRequired.size === 0;
|
|
353
360
|
}
|
|
354
361
|
|
|
355
362
|
/**
|
|
@@ -366,6 +373,8 @@
|
|
|
366
373
|
const moduleName = args[0];
|
|
367
374
|
this.defineCache[moduleName] = args;
|
|
368
375
|
this.orderedDefs.push(moduleName);
|
|
376
|
+
// O(1) countdown: no-op for non-required modules (e.g. the ~hundreds of labels)
|
|
377
|
+
this.pendingRequired.delete(moduleName);
|
|
369
378
|
if (this.canInit()) {
|
|
370
379
|
if (hasSetTimeout) {
|
|
371
380
|
// requiredModules are defined, clear watchdog timer
|
|
@@ -403,7 +412,6 @@
|
|
|
403
412
|
const loaderConfig = {
|
|
404
413
|
endpoints: this.config.endpoints,
|
|
405
414
|
baseUrl: this.config.baseUrl,
|
|
406
|
-
flags: this.config.flags,
|
|
407
415
|
profiler: { logOperationStart, logOperationEnd },
|
|
408
416
|
// TODO: can be removed following https://github.com/salesforce-experience-platform-emu/lwr/issues/1087
|
|
409
417
|
appMetadata: {
|
|
@@ -475,7 +483,7 @@
|
|
|
475
483
|
const exporter = (exports) => {
|
|
476
484
|
Object.assign(exports, { logOperationStart, logOperationEnd });
|
|
477
485
|
};
|
|
478
|
-
define('lwr/profiler/v/
|
|
486
|
+
define('lwr/profiler/v/0_23_13', ['exports'], exporter);
|
|
479
487
|
}
|
|
480
488
|
|
|
481
489
|
// Set up the application globals, import map, root custom element...
|
|
@@ -576,14 +584,14 @@
|
|
|
576
584
|
// The loader module is ALWAYS required
|
|
577
585
|
const GLOBAL = globalThis ;
|
|
578
586
|
GLOBAL.LWR.requiredModules = GLOBAL.LWR.requiredModules || [];
|
|
579
|
-
if (GLOBAL.LWR.requiredModules.indexOf('lwr/loader/v/
|
|
580
|
-
GLOBAL.LWR.requiredModules.push('lwr/loader/v/
|
|
587
|
+
if (GLOBAL.LWR.requiredModules.indexOf('lwr/loader/v/0_23_13') < 0) {
|
|
588
|
+
GLOBAL.LWR.requiredModules.push('lwr/loader/v/0_23_13');
|
|
581
589
|
}
|
|
582
590
|
new LoaderShim(GLOBAL);
|
|
583
591
|
|
|
584
592
|
})();
|
|
585
593
|
|
|
586
|
-
LWR.define('lwr/loader/v/
|
|
594
|
+
LWR.define('lwr/loader/v/0_23_13', ['exports'], (function (exports) { 'use strict';
|
|
587
595
|
|
|
588
596
|
const templateRegex = /\{([0-9]+)\}/g;
|
|
589
597
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -970,13 +978,7 @@ LWR.define('lwr/loader/v/0_23_11', ['exports'], (function (exports) { 'use stric
|
|
|
970
978
|
|
|
971
979
|
__init3() {this.loadMappingHooks = [];}
|
|
972
980
|
|
|
973
|
-
|
|
974
|
-
__init4() {this.batchSpecifiers = [];}
|
|
975
|
-
|
|
976
|
-
// eslint-disable-next-line lwr/no-unguarded-apis
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
constructor(config, invalidationCallback) {ImportMetadataResolver.prototype.__init.call(this);ImportMetadataResolver.prototype.__init2.call(this);ImportMetadataResolver.prototype.__init3.call(this);ImportMetadataResolver.prototype.__init4.call(this);
|
|
981
|
+
constructor(config, invalidationCallback) {ImportMetadataResolver.prototype.__init.call(this);ImportMetadataResolver.prototype.__init2.call(this);ImportMetadataResolver.prototype.__init3.call(this);
|
|
980
982
|
this.config = config;
|
|
981
983
|
this.invalidationCallback = invalidationCallback;
|
|
982
984
|
}
|
|
@@ -1157,30 +1159,6 @@ LWR.define('lwr/loader/v/0_23_11', ['exports'], (function (exports) { 'use stric
|
|
|
1157
1159
|
}
|
|
1158
1160
|
|
|
1159
1161
|
async fetchNewMappings(specifier) {
|
|
1160
|
-
if (!hasSetTimeout || !_optionalChain([this, 'access', _5 => _5.config, 'optionalAccess', _6 => _6.flags, 'optionalAccess', _7 => _7.batchMappings])) {
|
|
1161
|
-
return this.fetchNewMappingsInner(specifier);
|
|
1162
|
-
}
|
|
1163
|
-
|
|
1164
|
-
const batch = () => {
|
|
1165
|
-
const specifiers = this.batchSpecifiers.join(',');
|
|
1166
|
-
this.batchSpecifiers = []; // clear pending mapping requests
|
|
1167
|
-
// eslint-disable-next-line lwr/no-unguarded-apis
|
|
1168
|
-
clearTimeout(this.batchTimer); // cancel the batch timer
|
|
1169
|
-
this.batchTimer = undefined;
|
|
1170
|
-
return this.fetchNewMappingsInner(specifiers);
|
|
1171
|
-
};
|
|
1172
|
-
|
|
1173
|
-
if (!this.batchPromise || this.batchSpecifiers.length === 0) {
|
|
1174
|
-
this.batchPromise = new Promise((resolve) => {
|
|
1175
|
-
// eslint-disable-next-line lwr/no-unguarded-apis
|
|
1176
|
-
this.batchTimer = setTimeout(() => resolve(batch()), 0);
|
|
1177
|
-
});
|
|
1178
|
-
}
|
|
1179
|
-
this.batchSpecifiers.push(specifier);
|
|
1180
|
-
return this.batchPromise;
|
|
1181
|
-
}
|
|
1182
|
-
|
|
1183
|
-
async fetchNewMappingsInner(specifier) {
|
|
1184
1162
|
if (typeof globalThis.fetch !== 'function') {
|
|
1185
1163
|
throw new LoaderError(UNRESOLVED, [specifier]);
|
|
1186
1164
|
}
|
|
@@ -2388,7 +2366,6 @@ LWR.define('lwr/loader/v/0_23_11', ['exports'], (function (exports) { 'use stric
|
|
|
2388
2366
|
endpoints: config.endpoints,
|
|
2389
2367
|
baseUrl,
|
|
2390
2368
|
profiler,
|
|
2391
|
-
flags: config.flags || {},
|
|
2392
2369
|
}),
|
|
2393
2370
|
);
|
|
2394
2371
|
|
|
@@ -4,9 +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.23.
|
|
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,specifierIndex:l});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,specifierIndex:d});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){const[,t,r]=e;if(Array.isArray(t)&&"function"==typeof r)return{deps:t,factory:r};if("function"==typeof t)return{deps:[],factory:t};throw new Error("Invalid module definition")}function p(e,t,r){if("exports"===e)return t;const o=r[e];if(!o)throw new Error(`Dependency "${e}" not found in defineCache for loader`);try{return function(e){const{deps:t,factory:r}=c(e);if(t.length>1||1===t.length&&"exports"!==t[0])throw new Error(`Loader dependencies must have no deps or only ['exports']; got [${t.join(", ")}]`);const o={},i=r(o);return void 0!==i?i:o}(o)}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Loader dependency "${e}" has invalid definition: ${r}`)}}function u(e,t,r){try{const{deps:e,factory:o}=function(e){const{deps:t,factory:r}=c(e);if(t.includes("exports"))return{deps:t,factory:r};const o=0===t.length;return{deps:["exports",...t],factory:(e,...t)=>{const i=o?r(e):r(...t);void 0!==i&&"object"==typeof i&&Object.assign(e,i)}}}(t),i={};return{factory:o,args:e.map((e=>p(e,i,r))),exportsObj:i}}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Expected loader with specifier "${e}" to be a module. ${r}`)}}function h(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 f="function"==typeof setTimeout,g="undefined"!=typeof console;class m{__init(){this.defineCache={}}__init2(){this.orderedDefs=[]}constructor(e){m.prototype.__init.call(this),m.prototype.__init2.call(this),f&&(this.watchdogTimerId=this.startWatchdogTimer()),this.global=e,this.config=e.LWR,this.loaderSpecifier="lwr/loader/v/0_23_11",this.errorHandler=this.config.onError,this.initAppHandler=this.config.onInitApp;const t=this.tempDefine.bind(this);e.LWR.define=t,this.bootReady=this.config.autoBoot;try{this.createProfilerModule(e.LWR.define),h(Object.freeze(this.config),this.postCustomInit.bind(this),t,(e=>{this.errorHandler=e}))}catch(e){this.enterErrorState(e)}}canInit(){if(!this.config.requiredModules)throw new Error("Unexpected missing requiredModules");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()&&(f&&clearTimeout(this.watchdogTimerId),this.initApp())}postCustomInit(){this.bootReady=!0,this.canInit()&&(f&&clearTimeout(this.watchdogTimerId),this.initApp())}initApp(){try{this.initAppHandler&&this.initAppHandler()}catch(e){console.error(`An error occurred in the onInitApp function. ${e.message}`,e.stack)}try{const e={endpoints:this.config.endpoints,baseUrl:this.config.baseUrl,flags:this.config.flags,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,i){if(!t||"function"!=typeof t[2])throw new Error(`Expected loader with specifier "${e}" to be a module`);const n={};if(i){const{factory:r,args:o,exportsObj:s}=u(e,t,i);r(...o),Object.assign(n,s)}else t[2].call(null,n);const{Loader:s}=n;if(!s)throw new Error("Expected Loader class to be defined");const a=new s(r);return o&&o.length&&a.registerExternalModules(o),a.define(e,["exports"],(e=>{Object.assign(e,{define:a.define.bind(a),load:a.load.bind(a),services:a.services})})),a}(this.loaderSpecifier,this.defineCache[this.loaderSpecifier],e,this.config.preloadModules,this.defineCache);this.mountApp(t),t&&t.getModuleWarnings}catch(e){this.enterErrorState(e)}}waitForBody(){return new Promise((e=>{if(document.body)e();else{const t=new MutationObserver((()=>{document.body&&(t.disconnect(),e())}));t.observe(document.documentElement,{childList:!0})}}))}waitForDOMContentLoaded(){return"interactive"===document.readyState||"complete"===document.readyState?Promise.resolve():new Promise((e=>{document.addEventListener("DOMContentLoaded",(()=>{e()}))}))}createProfilerModule(e){e("lwr/profiler/v/0_23_11",["exports"],(e=>{Object.assign(e,{logOperationStart:l,logOperationEnd:d})}))}mountApp(e){const{bootstrapModule:t,rootComponent:r,rootComponents:o,serverData:i,endpoints:n,imports:s,index:a}=this.config,l=s||{};this.global.LWR=Object.freeze({define:e.define.bind(e),importMap:t=>e.importMap(t),rootComponent:r,rootComponents:o,serverData:i||{},endpoints:n,imports:l,index:a||{},env:this.global.LWR.env}),this.orderedDefs.forEach((t=>{t!==this.loaderSpecifier&&e.define(...this.defineCache[t])}));const{initDeferDOM:d}=this.config;e.importMap({imports:l,index:a},[t,r]).then((()=>"undefined"==typeof window||"undefined"==typeof document?Promise.resolve():d?this.waitForDOMContentLoaded():this.waitForBody())).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):g&&console.error(`An error occurred during LWR bootstrap. ${e.message}`,e.stack)}startWatchdogTimer(){return setTimeout((()=>{const e=this.config.requiredModules&&this.config.requiredModules.filter((e=>!this.orderedDefs.includes(e)))||[];this.enterErrorState(new Error(`Failed to load required modules - timed out: ${e.join(", ")}`))}),6e4)}logWarnings(e){for(const t in e)e[t].length&&console.warn(t,e[t])}}const E=globalThis;E.LWR.requiredModules=E.LWR.requiredModules||[],E.LWR.requiredModules.indexOf("lwr/loader/v/0_23_11")<0&&E.LWR.requiredModules.push("lwr/loader/v/0_23_11"),new m(E)}(),LWR.define("lwr/loader/v/0_23_11",["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}"});Object.freeze({code:3008,level:0,message:"Error loading empty code for {0}"});const 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}"}),EXPORTER_ERROR=Object.freeze({code:3021,level:0,message:'Error evaluating module "{0}", error was "{1}"'}),UNRESOLVEABLE_MAPPING_ERROR=Object.freeze({code:3022,level:0,message:'Unexpected undefined URI resolving mapping for "{0}"'}),NO_IMPORT_LWC=Object.freeze({code:3023,level:0,message:'Cannot dynamically import "lwc" with importer "{0}"'}),NO_IMPORT_LOADER=Object.freeze({code:3024,level:0,message:'Cannot dynamically import the LWR loader with importer "{0}"'}),NO_BLOB_IMPORT=Object.freeze({code:3024,level:0,message:"Cannot import a blob URL"}),NO_IMPORT_TRANSPORT=Object.freeze({code:3025,level:0,message:'Cannot dynamically import "transport" with importer "{0}"'});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,hasProcess="undefined"!=typeof process;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)}}))}hasProcess&&process.env,hasDocument&&window.addEventListener("error",(e=>{lastWindowErrorUrl=e.filename,lastWindowError$1=e.error}));const LOADER_PREFIX="lwr.loader.",MODULE_DEFINE=`${LOADER_PREFIX}module.define`,MODULE_DYNAMIC_LOAD=`${LOADER_PREFIX}module.dynamicLoad`,MODULE_FETCH=`${LOADER_PREFIX}module.fetch`,MODULE_ERROR=`${LOADER_PREFIX}module.error`,MAPPINGS_FETCH=`${LOADER_PREFIX}mappings.fetch`,MAPPINGS_ERROR=`${LOADER_PREFIX}mappings.error`;function _optionalChain(e){let t,r=e[0],o=1;for(;o<e.length;){const i=e[o],n=e[o+1];if(o+=2,("optionalAccess"===i||"optionalCall"===i)&&null==r)return;"access"===i||"optionalAccess"===i?(t=r,r=n(r)):"call"!==i&&"optionalCall"!==i||(r=n(((...e)=>r.call(t,...e))),t=void 0)}return r}class ImportMetadataResolver{__init(){this.importURICache=new Map}__init2(){this.pendingURICache=new Map}__init3(){this.loadMappingHooks=[]}__init4(){this.batchSpecifiers=[]}constructor(e,t){ImportMetadataResolver.prototype.__init.call(this),ImportMetadataResolver.prototype.__init2.call(this),ImportMetadataResolver.prototype.__init3.call(this),ImportMetadataResolver.prototype.__init4.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(!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))}))}getMappingUri(e){return _optionalChain([this,"access",e=>e.importURICache,"access",e=>e.get,"call",t=>t(e),"optionalAccess",e=>e.uri])}getURI(e){return this.importURICache&&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(!hasSetTimeout||!_optionalChain([this,"access",e=>e.config,"optionalAccess",e=>e.flags,"optionalAccess",e=>e.batchMappings]))return this.fetchNewMappingsInner(e);const t=()=>{const e=this.batchSpecifiers.join(",");return this.batchSpecifiers=[],clearTimeout(this.batchTimer),this.batchTimer=void 0,this.fetchNewMappingsInner(e)};return this.batchPromise&&0!==this.batchSpecifiers.length||(this.batchPromise=new Promise((e=>{this.batchTimer=setTimeout((()=>e(t())),0)}))),this.batchSpecifiers.push(e),this.batchPromise}async fetchNewMappingsInner(e){if("function"!=typeof globalThis.fetch)throw new LoaderError(UNRESOLVED,[e]);const t=resolveUrl(this.buildMappingUrl(e),this.getBaseUrl());if(!t)throw new LoaderError(UNRESOLVEABLE_MAPPING_ERROR,[e]);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;var MODULE_WARNING;!function(e){e.MODULE_REDEFINE="Module redefine attempted";e.MODULE_ALREADY_LOADED="Marking module(s) as externally loaded, but they are already loaded";e.ALIAS_UPDATE="Alias update attempt"}(MODULE_WARNING||(MODULE_WARNING={}));
|
|
7
|
+
/* LWR Module Loader Shim v0.23.13 */
|
|
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,specifierIndex:l});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,specifierIndex:d});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){const[,t,r]=e;if(Array.isArray(t)&&"function"==typeof r)return{deps:t,factory:r};if("function"==typeof t)return{deps:[],factory:t};throw new Error("Invalid module definition")}function p(e,t,r){if("exports"===e)return t;const o=r[e];if(!o)throw new Error(`Dependency "${e}" not found in defineCache for loader`);try{return function(e){const{deps:t,factory:r}=c(e);if(t.length>1||1===t.length&&"exports"!==t[0])throw new Error(`Loader dependencies must have no deps or only ['exports']; got [${t.join(", ")}]`);const o={},i=r(o);return void 0!==i?i:o}(o)}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Loader dependency "${e}" has invalid definition: ${r}`)}}function u(e,t,r){try{const{deps:e,factory:o}=function(e){const{deps:t,factory:r}=c(e);if(t.includes("exports"))return{deps:t,factory:r};const o=0===t.length;return{deps:["exports",...t],factory:(e,...t)=>{const i=o?r(e):r(...t);void 0!==i&&"object"==typeof i&&Object.assign(e,i)}}}(t),i={};return{factory:o,args:e.map((e=>p(e,i,r))),exportsObj:i}}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Expected loader with specifier "${e}" to be a module. ${r}`)}}function f(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 h="function"==typeof setTimeout,g="undefined"!=typeof console;class m{__init(){this.defineCache={}}__init2(){this.orderedDefs=[]}constructor(e){m.prototype.__init.call(this),m.prototype.__init2.call(this),h&&(this.watchdogTimerId=this.startWatchdogTimer()),this.global=e,this.config=e.LWR,this.pendingRequired=new Set(this.config.requiredModules||[]),this.loaderSpecifier="lwr/loader/v/0_23_13",this.errorHandler=this.config.onError,this.initAppHandler=this.config.onInitApp;const t=this.tempDefine.bind(this);e.LWR.define=t,this.bootReady=this.config.autoBoot;try{this.createProfilerModule(e.LWR.define),f(Object.freeze(this.config),this.postCustomInit.bind(this),t,(e=>{this.errorHandler=e}))}catch(e){this.enterErrorState(e)}}canInit(){if(!this.config.requiredModules)throw new Error("Unexpected missing requiredModules");return this.bootReady&&0===this.pendingRequired.size}tempDefine(...e){const t=e[0];this.defineCache[t]=e,this.orderedDefs.push(t),this.pendingRequired.delete(t),this.canInit()&&(h&&clearTimeout(this.watchdogTimerId),this.initApp())}postCustomInit(){this.bootReady=!0,this.canInit()&&(h&&clearTimeout(this.watchdogTimerId),this.initApp())}initApp(){try{this.initAppHandler&&this.initAppHandler()}catch(e){console.error(`An error occurred in the onInitApp function. ${e.message}`,e.stack)}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,i){if(!t||"function"!=typeof t[2])throw new Error(`Expected loader with specifier "${e}" to be a module`);const n={};if(i){const{factory:r,args:o,exportsObj:s}=u(e,t,i);r(...o),Object.assign(n,s)}else t[2].call(null,n);const{Loader:s}=n;if(!s)throw new Error("Expected Loader class to be defined");const a=new s(r);return o&&o.length&&a.registerExternalModules(o),a.define(e,["exports"],(e=>{Object.assign(e,{define:a.define.bind(a),load:a.load.bind(a),services:a.services})})),a}(this.loaderSpecifier,this.defineCache[this.loaderSpecifier],e,this.config.preloadModules,this.defineCache);this.mountApp(t),t&&t.getModuleWarnings}catch(e){this.enterErrorState(e)}}waitForBody(){return new Promise((e=>{if(document.body)e();else{const t=new MutationObserver((()=>{document.body&&(t.disconnect(),e())}));t.observe(document.documentElement,{childList:!0})}}))}waitForDOMContentLoaded(){return"interactive"===document.readyState||"complete"===document.readyState?Promise.resolve():new Promise((e=>{document.addEventListener("DOMContentLoaded",(()=>{e()}))}))}createProfilerModule(e){e("lwr/profiler/v/0_23_13",["exports"],(e=>{Object.assign(e,{logOperationStart:l,logOperationEnd:d})}))}mountApp(e){const{bootstrapModule:t,rootComponent:r,rootComponents:o,serverData:i,endpoints:n,imports:s,index:a}=this.config,l=s||{};this.global.LWR=Object.freeze({define:e.define.bind(e),importMap:t=>e.importMap(t),rootComponent:r,rootComponents:o,serverData:i||{},endpoints:n,imports:l,index:a||{},env:this.global.LWR.env}),this.orderedDefs.forEach((t=>{t!==this.loaderSpecifier&&e.define(...this.defineCache[t])}));const{initDeferDOM:d}=this.config;e.importMap({imports:l,index:a},[t,r]).then((()=>"undefined"==typeof window||"undefined"==typeof document?Promise.resolve():d?this.waitForDOMContentLoaded():this.waitForBody())).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):g&&console.error(`An error occurred during LWR bootstrap. ${e.message}`,e.stack)}startWatchdogTimer(){return setTimeout((()=>{const e=this.config.requiredModules&&this.config.requiredModules.filter((e=>!this.orderedDefs.includes(e)))||[];this.enterErrorState(new Error(`Failed to load required modules - timed out: ${e.join(", ")}`))}),6e4)}logWarnings(e){for(const t in e)e[t].length&&console.warn(t,e[t])}}const E=globalThis;E.LWR.requiredModules=E.LWR.requiredModules||[],E.LWR.requiredModules.indexOf("lwr/loader/v/0_23_13")<0&&E.LWR.requiredModules.push("lwr/loader/v/0_23_13"),new m(E)}(),LWR.define("lwr/loader/v/0_23_13",["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}"});Object.freeze({code:3008,level:0,message:"Error loading empty code for {0}"});const 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}"}),EXPORTER_ERROR=Object.freeze({code:3021,level:0,message:'Error evaluating module "{0}", error was "{1}"'}),UNRESOLVEABLE_MAPPING_ERROR=Object.freeze({code:3022,level:0,message:'Unexpected undefined URI resolving mapping for "{0}"'}),NO_IMPORT_LWC=Object.freeze({code:3023,level:0,message:'Cannot dynamically import "lwc" with importer "{0}"'}),NO_IMPORT_LOADER=Object.freeze({code:3024,level:0,message:'Cannot dynamically import the LWR loader with importer "{0}"'}),NO_BLOB_IMPORT=Object.freeze({code:3024,level:0,message:"Cannot import a blob URL"}),NO_IMPORT_TRANSPORT=Object.freeze({code:3025,level:0,message:'Cannot dynamically import "transport" with importer "{0}"'});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,hasProcess="undefined"!=typeof process;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)}}))}hasProcess&&process.env,hasDocument&&window.addEventListener("error",(e=>{lastWindowErrorUrl=e.filename,lastWindowError$1=e.error}));const LOADER_PREFIX="lwr.loader.",MODULE_DEFINE=`${LOADER_PREFIX}module.define`,MODULE_DYNAMIC_LOAD=`${LOADER_PREFIX}module.dynamicLoad`,MODULE_FETCH=`${LOADER_PREFIX}module.fetch`,MODULE_ERROR=`${LOADER_PREFIX}module.error`,MAPPINGS_FETCH=`${LOADER_PREFIX}mappings.fetch`,MAPPINGS_ERROR=`${LOADER_PREFIX}mappings.error`;function _optionalChain(e){let t,r=e[0],o=1;for(;o<e.length;){const i=e[o],n=e[o+1];if(o+=2,("optionalAccess"===i||"optionalCall"===i)&&null==r)return;"access"===i||"optionalAccess"===i?(t=r,r=n(r)):"call"!==i&&"optionalCall"!==i||(r=n(((...e)=>r.call(t,...e))),t=void 0)}return r}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(!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))}))}getMappingUri(e){return _optionalChain([this,"access",e=>e.importURICache,"access",e=>e.get,"call",t=>t(e),"optionalAccess",e=>e.uri])}getURI(e){return this.importURICache&&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());if(!t)throw new LoaderError(UNRESOLVEABLE_MAPPING_ERROR,[e]);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;var MODULE_WARNING;!function(e){e.MODULE_REDEFINE="Module redefine attempted";e.MODULE_ALREADY_LOADED="Marking module(s) as externally loaded, but they are already loaded";e.ALIAS_UPDATE="Alias update attempt"}(MODULE_WARNING||(MODULE_WARNING={}));
|
|
9
9
|
/*!
|
|
10
10
|
* Copyright (C) 2023 salesforce.com, inc.
|
|
11
11
|
*/
|
|
12
|
-
const SUPPORTS_TRUSTED_TYPES="undefined"!=typeof trustedTypes,trustedTypePolicyRegistry={__proto__:null};function createDuplicateSafeTrustedTypesPolicy(e,t){return trustedTypePolicyRegistry[e]?trustedTypePolicyRegistry[e]:trustedTypePolicyRegistry[e]=trustedTypes.createPolicy(e,t)}function createDuplicateSafeFallbackPolicy(e,t){return trustedTypePolicyRegistry[e]?trustedTypePolicyRegistry[e]:trustedTypePolicyRegistry[e]=t}const createPolicy=SUPPORTS_TRUSTED_TYPES?createDuplicateSafeTrustedTypesPolicy:createDuplicateSafeFallbackPolicy,policyOptions={createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e};try{createPolicy("default",{createHTML:e=>e,createScript(e){if("null"===e||"undefined"===e)return e},createScriptURL:e=>e})}catch(e){}const 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||!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,[`empty code for ${id}`]);code=`${code}\n//# sourceURL=${id}`;try{eval(trusted.createScript(code))}catch(e){throw new LoaderError(FAIL_LOAD,[`"${id}": ${e instanceof Error?e.message:String(e)}`])}if(lastWindowError)throw new LoaderError(FAIL_LOAD,[`"${id}": window error ${lastWindowError instanceof Error?lastWindowError.message:String(lastWindowError)}`]);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{__init(){this.isAppMounted=!1}constructor(e){ModuleRegistry.prototype.__init.call(this),ModuleRegistry.prototype.__init2.call(this),ModuleRegistry.prototype.__init3.call(this),ModuleRegistry.prototype.__init4.call(this),this.profiler=e.profiler,this.resolver=new ImportMetadataResolver(e,this.importMetadataInvalidationCallback.bind(this)),this.warnings={[MODULE_WARNING.MODULE_REDEFINE]:[],[MODULE_WARNING.MODULE_ALREADY_LOADED]:[],[MODULE_WARNING.ALIAS_UPDATE]:[]}}async load(e,t){const r=t?{importer:t}:{};this.profiler.logOperationStart({id:MODULE_DYNAMIC_LOAD,specifier:e,metadata:r});const o=await this.resolve(e,t),i=await this.getModuleRecord(o,e);return i.evaluated?i.module:(i.evaluationPromise||(i.evaluationPromise=this.topLevelEvaluation(i)),i.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),!this.isValidResolveResponse(s))throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(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)){const e=this.namedDefineRegistry.get(t);if(e.external||e.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)}}))}__init2(){this.namedDefineRegistry=new Map}__init3(){this.moduleRegistry=new Map}__init4(){this.aliases=new Map}getImportMetadataResolver(){return this.resolver}async getModuleRecord(e,t){const r=this.moduleRegistry.get(e);if(r)if(isUrl(e)){const o=await r.instantiation,i=await this.resolve(t);if(isUrl(i)||o.name===i)return this.storeModuleAlias(t,i),r;{e=i;const r=this.moduleRegistry.get(e);if(r)return this.storeModuleAlias(t,i),r}}else 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}}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,originalId:t,module:Object.create(null),dependencyRecords:i,instantiation:o,evaluated:!1,evaluationPromise:null};return this.moduleRegistry.set(e,n),e!==t&&this.storeModuleAlias(t,e),i.then((()=>n))}storeModuleAlias(e,t){e!==t&&(this.aliases.has(e)||this.aliases.set(e,t))}async getModuleDependencyRecord(e){let t=await this.resolve(e);if(isUrl(t)){const r=this.moduleRegistry.get(t);r&&!this.aliases.has(e)&&(await r.instantiation,t=await this.resolve(e))}return this.getModuleRecord(t,e)}async topLevelEvaluation(e){return this.evaluateModule(e,{})}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=i?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;try{a=o(...s)}catch(t){throw new LoaderError(EXPORTER_ERROR,[e.id,t.message||t])}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||(this.logMessage("warning",`${r} not found, falling back to the last loader.define call`),o=this.lastDefine),!o)throw new LoaderError(FAIL_INSTANTIATE,[e]);return this.profiler.logOperationEnd({id:MODULE_FETCH,specifier:n}),o})).catch((e=>{throw e instanceof LoaderError||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]}isValidResolveResponse(e){return null===e||"string"==typeof e||e&&"string"==typeof e.url}getModuleWarnings(e=!1){return this.isAppMounted=e,this.warnings}logMessage(e,t){}}function _nullishCoalesce(e,t){return null!=e?e:t()}function validateLoadSpecifier(e,t,r,o){const{LoaderError:i,NO_IMPORT_LWC:n,NO_IMPORT_LOADER:s,NO_IMPORT_TRANSPORT:a,NO_BLOB_IMPORT:l}=o;if("lwc"===e||e.startsWith("lwc/v/"))throw new i(n,[_nullishCoalesce(t,(()=>"unknown"))]);if(e===r||e.startsWith(`${r}/v/`))throw new i(s,[_nullishCoalesce(t,(()=>"unknown"))]);if("transport"===e||e.startsWith("transport/v/")||"webruntime/transport"===e||e.startsWith("webruntime/transport/v/"))throw new i(a,[_nullishCoalesce(t,(()=>"unknown"))]);if(e.toLowerCase().startsWith("blob:"))throw new i(l)}function assertValidImportMapUrlKey(e){const t=e.toLowerCase();if(t.startsWith("blob:"))throw new Error(`Cannot map ${e} to blob: URL`);if(t.startsWith("data:"))throw new Error(`Cannot map ${e} to data: URL`);if(!/^[./]|^https?:/.test(e))throw new Error(`LWR.importMap(): "${e}" is not a valid URL key. Keys must be URL paths (e.g. "/path/to/module.js"), not module specifiers. Transitive specifier aliasing is not supported by this loader.`)}function validateAndWrapAsImportMetadata(e){if(!e||"object"!=typeof e)throw new Error("LWR.importMap() requires an object argument");const t=Object.entries(e);if(0===t.length)return null;const r=new Set,o={};for(const[e,i]of t){if(!e||"string"!=typeof e)throw new Error("moduleScriptURL must be a string");if(!Array.isArray(i))throw new Error("moduleNames must be an array");assertValidImportMapUrlKey(e);const t=[];for(const e of i){if("string"!=typeof e||0===e.length)throw new Error("Specifier must be a non-empty string");r.has(e)||(r.add(e),t.push(e))}t.length>0&&(o[e]=t)}return 0===Object.keys(o).length?null:{imports:o}}function isImportMetadata(e){const t=e;return null!==t&&"object"==typeof t&&"imports"in t&&"object"==typeof t.imports&&!Array.isArray(t.imports)}class Loader{constructor(e){let t=e.baseUrl;const r=e.endpoints?e.endpoints.uris.mapping:void 0;let o=e.profiler;if(!r||!e.endpoints)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,flags:e.flags||{}})),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 validateLoadSpecifier(e,t,"lwr/loader",{LoaderError:LoaderError,NO_IMPORT_LWC:NO_IMPORT_LWC,NO_IMPORT_LOADER:NO_IMPORT_LOADER,NO_IMPORT_TRANSPORT:NO_IMPORT_TRANSPORT,NO_BLOB_IMPORT:NO_BLOB_IMPORT}),this.registry.load(e,t)}has(e){return this.registry.has(e)}async resolve(e,t){return this.registry.resolve(e,t)}async importMap(e,t){if(isImportMetadata(e))return void this.registry.getImportMetadataResolver().registerImportMappings(e,t);const r=this.registry.getImportMetadataResolver(),o=validateAndWrapAsImportMetadata(e);if(!o)return;const i={};for(const[e,t]of Object.entries(o.imports)){const o=[];for(const e of t){void 0!==r.getMappingUri(e)||o.push(e)}o.length>0&&(i[e]=o)}if(0===Object.keys(i).length)return;const n={imports:i},s=Object.values(n.imports).flat();r.registerImportMappings(n,s)}async registerImportMappings(e,t){return hasConsole&&console.warn("registerImportMappings() is deprecated. Use importMap() instead."),this.importMap(e,t)}registerExternalModules(e){this.registry.registerExternalModules(e)}getModuleWarnings(e=!1){return this.registry.getModuleWarnings(e)}}exports.Loader=Loader,Object.defineProperty(exports,"__esModule",{value:!0})}));
|
|
12
|
+
const SUPPORTS_TRUSTED_TYPES="undefined"!=typeof trustedTypes,trustedTypePolicyRegistry={__proto__:null};function createDuplicateSafeTrustedTypesPolicy(e,t){return trustedTypePolicyRegistry[e]?trustedTypePolicyRegistry[e]:trustedTypePolicyRegistry[e]=trustedTypes.createPolicy(e,t)}function createDuplicateSafeFallbackPolicy(e,t){return trustedTypePolicyRegistry[e]?trustedTypePolicyRegistry[e]:trustedTypePolicyRegistry[e]=t}const createPolicy=SUPPORTS_TRUSTED_TYPES?createDuplicateSafeTrustedTypesPolicy:createDuplicateSafeFallbackPolicy,policyOptions={createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e};try{createPolicy("default",{createHTML:e=>e,createScript(e){if("null"===e||"undefined"===e)return e},createScriptURL:e=>e})}catch(e){}const 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||!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,[`empty code for ${id}`]);code=`${code}\n//# sourceURL=${id}`;try{eval(trusted.createScript(code))}catch(e){throw new LoaderError(FAIL_LOAD,[`"${id}": ${e instanceof Error?e.message:String(e)}`])}if(lastWindowError)throw new LoaderError(FAIL_LOAD,[`"${id}": window error ${lastWindowError instanceof Error?lastWindowError.message:String(lastWindowError)}`]);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{__init(){this.isAppMounted=!1}constructor(e){ModuleRegistry.prototype.__init.call(this),ModuleRegistry.prototype.__init2.call(this),ModuleRegistry.prototype.__init3.call(this),ModuleRegistry.prototype.__init4.call(this),this.profiler=e.profiler,this.resolver=new ImportMetadataResolver(e,this.importMetadataInvalidationCallback.bind(this)),this.warnings={[MODULE_WARNING.MODULE_REDEFINE]:[],[MODULE_WARNING.MODULE_ALREADY_LOADED]:[],[MODULE_WARNING.ALIAS_UPDATE]:[]}}async load(e,t){const r=t?{importer:t}:{};this.profiler.logOperationStart({id:MODULE_DYNAMIC_LOAD,specifier:e,metadata:r});const o=await this.resolve(e,t),i=await this.getModuleRecord(o,e);return i.evaluated?i.module:(i.evaluationPromise||(i.evaluationPromise=this.topLevelEvaluation(i)),i.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),!this.isValidResolveResponse(s))throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(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)){const e=this.namedDefineRegistry.get(t);if(e.external||e.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)}}))}__init2(){this.namedDefineRegistry=new Map}__init3(){this.moduleRegistry=new Map}__init4(){this.aliases=new Map}getImportMetadataResolver(){return this.resolver}async getModuleRecord(e,t){const r=this.moduleRegistry.get(e);if(r)if(isUrl(e)){const o=await r.instantiation,i=await this.resolve(t);if(isUrl(i)||o.name===i)return this.storeModuleAlias(t,i),r;{e=i;const r=this.moduleRegistry.get(e);if(r)return this.storeModuleAlias(t,i),r}}else 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}}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,originalId:t,module:Object.create(null),dependencyRecords:i,instantiation:o,evaluated:!1,evaluationPromise:null};return this.moduleRegistry.set(e,n),e!==t&&this.storeModuleAlias(t,e),i.then((()=>n))}storeModuleAlias(e,t){e!==t&&(this.aliases.has(e)||this.aliases.set(e,t))}async getModuleDependencyRecord(e){let t=await this.resolve(e);if(isUrl(t)){const r=this.moduleRegistry.get(t);r&&!this.aliases.has(e)&&(await r.instantiation,t=await this.resolve(e))}return this.getModuleRecord(t,e)}async topLevelEvaluation(e){return this.evaluateModule(e,{})}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=i?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;try{a=o(...s)}catch(t){throw new LoaderError(EXPORTER_ERROR,[e.id,t.message||t])}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||(this.logMessage("warning",`${r} not found, falling back to the last loader.define call`),o=this.lastDefine),!o)throw new LoaderError(FAIL_INSTANTIATE,[e]);return this.profiler.logOperationEnd({id:MODULE_FETCH,specifier:n}),o})).catch((e=>{throw e instanceof LoaderError||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]}isValidResolveResponse(e){return null===e||"string"==typeof e||e&&"string"==typeof e.url}getModuleWarnings(e=!1){return this.isAppMounted=e,this.warnings}logMessage(e,t){}}function _nullishCoalesce(e,t){return null!=e?e:t()}function validateLoadSpecifier(e,t,r,o){const{LoaderError:i,NO_IMPORT_LWC:n,NO_IMPORT_LOADER:s,NO_IMPORT_TRANSPORT:a,NO_BLOB_IMPORT:l}=o;if("lwc"===e||e.startsWith("lwc/v/"))throw new i(n,[_nullishCoalesce(t,(()=>"unknown"))]);if(e===r||e.startsWith(`${r}/v/`))throw new i(s,[_nullishCoalesce(t,(()=>"unknown"))]);if("transport"===e||e.startsWith("transport/v/")||"webruntime/transport"===e||e.startsWith("webruntime/transport/v/"))throw new i(a,[_nullishCoalesce(t,(()=>"unknown"))]);if(e.toLowerCase().startsWith("blob:"))throw new i(l)}function assertValidImportMapUrlKey(e){const t=e.toLowerCase();if(t.startsWith("blob:"))throw new Error(`Cannot map ${e} to blob: URL`);if(t.startsWith("data:"))throw new Error(`Cannot map ${e} to data: URL`);if(!/^[./]|^https?:/.test(e))throw new Error(`LWR.importMap(): "${e}" is not a valid URL key. Keys must be URL paths (e.g. "/path/to/module.js"), not module specifiers. Transitive specifier aliasing is not supported by this loader.`)}function validateAndWrapAsImportMetadata(e){if(!e||"object"!=typeof e)throw new Error("LWR.importMap() requires an object argument");const t=Object.entries(e);if(0===t.length)return null;const r=new Set,o={};for(const[e,i]of t){if(!e||"string"!=typeof e)throw new Error("moduleScriptURL must be a string");if(!Array.isArray(i))throw new Error("moduleNames must be an array");assertValidImportMapUrlKey(e);const t=[];for(const e of i){if("string"!=typeof e||0===e.length)throw new Error("Specifier must be a non-empty string");r.has(e)||(r.add(e),t.push(e))}t.length>0&&(o[e]=t)}return 0===Object.keys(o).length?null:{imports:o}}function isImportMetadata(e){const t=e;return null!==t&&"object"==typeof t&&"imports"in t&&"object"==typeof t.imports&&!Array.isArray(t.imports)}class Loader{constructor(e){let t=e.baseUrl;const r=e.endpoints?e.endpoints.uris.mapping:void 0;let o=e.profiler;if(!r||!e.endpoints)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 validateLoadSpecifier(e,t,"lwr/loader",{LoaderError:LoaderError,NO_IMPORT_LWC:NO_IMPORT_LWC,NO_IMPORT_LOADER:NO_IMPORT_LOADER,NO_IMPORT_TRANSPORT:NO_IMPORT_TRANSPORT,NO_BLOB_IMPORT:NO_BLOB_IMPORT}),this.registry.load(e,t)}has(e){return this.registry.has(e)}async resolve(e,t){return this.registry.resolve(e,t)}async importMap(e,t){if(isImportMetadata(e))return void this.registry.getImportMetadataResolver().registerImportMappings(e,t);const r=this.registry.getImportMetadataResolver(),o=validateAndWrapAsImportMetadata(e);if(!o)return;const i={};for(const[e,t]of Object.entries(o.imports)){const o=[];for(const e of t){void 0!==r.getMappingUri(e)||o.push(e)}o.length>0&&(i[e]=o)}if(0===Object.keys(i).length)return;const n={imports:i},s=Object.values(n.imports).flat();r.registerImportMappings(n,s)}async registerImportMappings(e,t){return hasConsole&&console.warn("registerImportMappings() is deprecated. Use importMap() instead."),this.importMap(e,t)}registerExternalModules(e){this.registry.registerExternalModules(e)}getModuleWarnings(e=!1){return this.registry.getModuleWarnings(e)}}exports.Loader=Loader,Object.defineProperty(exports,"__esModule",{value:!0})}));
|
|
@@ -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.23.
|
|
7
|
+
/* LWR Module Loader Shim v0.23.13 */
|
|
8
8
|
(function () {
|
|
9
9
|
'use strict';
|
|
10
10
|
|
|
@@ -297,6 +297,11 @@
|
|
|
297
297
|
|
|
298
298
|
__init() {this.defineCache = {};}
|
|
299
299
|
__init2() {this.orderedDefs = [];}
|
|
300
|
+
// Snapshot of requiredModules not yet defined. Enables an O(1) readiness check in
|
|
301
|
+
// canInit() instead of re-scanning the growing orderedDefs array on every define().
|
|
302
|
+
// Assigned in the constructor (declared without an initializer, like bootReady, to
|
|
303
|
+
// avoid emitting a throwaway field-init helper in the minified bundle).
|
|
304
|
+
|
|
300
305
|
|
|
301
306
|
// eslint-disable-line no-undef, lwr/no-unguarded-apis
|
|
302
307
|
|
|
@@ -310,7 +315,10 @@
|
|
|
310
315
|
// Parse configuration
|
|
311
316
|
this.global = global;
|
|
312
317
|
this.config = global.LWR ;
|
|
313
|
-
|
|
318
|
+
// Snapshot the required modules that still need to be defined. `requiredModules` is
|
|
319
|
+
// fully populated before `new LoaderShim` (see shim/index.ts), so this is complete.
|
|
320
|
+
this.pendingRequired = new Set(this.config.requiredModules || []);
|
|
321
|
+
this.loaderSpecifier = 'lwr/loader/v/0_23_13';
|
|
314
322
|
|
|
315
323
|
// Set up error handler
|
|
316
324
|
this.errorHandler = this.config.onError ;
|
|
@@ -347,9 +355,8 @@
|
|
|
347
355
|
}
|
|
348
356
|
// Initialize the app if:
|
|
349
357
|
// - bootReady: autoBoot is on OR customInit has finished
|
|
350
|
-
// - all required modules are defined
|
|
351
|
-
|
|
352
|
-
return this.bootReady && allDefined;
|
|
358
|
+
// - all required modules are defined (tracked by the pendingRequired countdown)
|
|
359
|
+
return this.bootReady && this.pendingRequired.size === 0;
|
|
353
360
|
}
|
|
354
361
|
|
|
355
362
|
/**
|
|
@@ -366,6 +373,8 @@
|
|
|
366
373
|
const moduleName = args[0];
|
|
367
374
|
this.defineCache[moduleName] = args;
|
|
368
375
|
this.orderedDefs.push(moduleName);
|
|
376
|
+
// O(1) countdown: no-op for non-required modules (e.g. the ~hundreds of labels)
|
|
377
|
+
this.pendingRequired.delete(moduleName);
|
|
369
378
|
if (this.canInit()) {
|
|
370
379
|
if (hasSetTimeout) {
|
|
371
380
|
// requiredModules are defined, clear watchdog timer
|
|
@@ -403,7 +412,6 @@
|
|
|
403
412
|
const loaderConfig = {
|
|
404
413
|
endpoints: this.config.endpoints,
|
|
405
414
|
baseUrl: this.config.baseUrl,
|
|
406
|
-
flags: this.config.flags,
|
|
407
415
|
profiler: { logOperationStart, logOperationEnd },
|
|
408
416
|
// TODO: can be removed following https://github.com/salesforce-experience-platform-emu/lwr/issues/1087
|
|
409
417
|
appMetadata: {
|
|
@@ -475,7 +483,7 @@
|
|
|
475
483
|
const exporter = (exports) => {
|
|
476
484
|
Object.assign(exports, { logOperationStart, logOperationEnd });
|
|
477
485
|
};
|
|
478
|
-
define('lwr/profiler/v/
|
|
486
|
+
define('lwr/profiler/v/0_23_13', ['exports'], exporter);
|
|
479
487
|
}
|
|
480
488
|
|
|
481
489
|
// Set up the application globals, import map, root custom element...
|
|
@@ -576,8 +584,8 @@
|
|
|
576
584
|
// The loader module is ALWAYS required
|
|
577
585
|
const GLOBAL = globalThis ;
|
|
578
586
|
GLOBAL.LWR.requiredModules = GLOBAL.LWR.requiredModules || [];
|
|
579
|
-
if (GLOBAL.LWR.requiredModules.indexOf('lwr/loader/v/
|
|
580
|
-
GLOBAL.LWR.requiredModules.push('lwr/loader/v/
|
|
587
|
+
if (GLOBAL.LWR.requiredModules.indexOf('lwr/loader/v/0_23_13') < 0) {
|
|
588
|
+
GLOBAL.LWR.requiredModules.push('lwr/loader/v/0_23_13');
|
|
581
589
|
}
|
|
582
590
|
new LoaderShim(GLOBAL);
|
|
583
591
|
|
|
@@ -29,13 +29,11 @@ __export(exports, {
|
|
|
29
29
|
var import_messages = __toModule(require("../errors/messages.cjs"));
|
|
30
30
|
var import_url = __toModule(require("../utils/url.cjs"));
|
|
31
31
|
var import_metrics = __toModule(require("lwr/metrics"));
|
|
32
|
-
var import_dom = __toModule(require("../utils/dom.cjs"));
|
|
33
32
|
var ImportMetadataResolver = class {
|
|
34
33
|
constructor(config, invalidationCallback) {
|
|
35
34
|
this.importURICache = new Map();
|
|
36
35
|
this.pendingURICache = new Map();
|
|
37
36
|
this.loadMappingHooks = [];
|
|
38
|
-
this.batchSpecifiers = [];
|
|
39
37
|
this.config = config;
|
|
40
38
|
this.invalidationCallback = invalidationCallback;
|
|
41
39
|
}
|
|
@@ -158,25 +156,6 @@ var ImportMetadataResolver = class {
|
|
|
158
156
|
return this.fetchNewMappings(specifier);
|
|
159
157
|
}
|
|
160
158
|
async fetchNewMappings(specifier) {
|
|
161
|
-
if (!import_dom.hasSetTimeout || !this.config?.flags?.batchMappings) {
|
|
162
|
-
return this.fetchNewMappingsInner(specifier);
|
|
163
|
-
}
|
|
164
|
-
const batch = () => {
|
|
165
|
-
const specifiers = this.batchSpecifiers.join(",");
|
|
166
|
-
this.batchSpecifiers = [];
|
|
167
|
-
clearTimeout(this.batchTimer);
|
|
168
|
-
this.batchTimer = void 0;
|
|
169
|
-
return this.fetchNewMappingsInner(specifiers);
|
|
170
|
-
};
|
|
171
|
-
if (!this.batchPromise || this.batchSpecifiers.length === 0) {
|
|
172
|
-
this.batchPromise = new Promise((resolve) => {
|
|
173
|
-
this.batchTimer = setTimeout(() => resolve(batch()), 0);
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
this.batchSpecifiers.push(specifier);
|
|
177
|
-
return this.batchPromise;
|
|
178
|
-
}
|
|
179
|
-
async fetchNewMappingsInner(specifier) {
|
|
180
159
|
if (typeof globalThis.fetch !== "function") {
|
|
181
160
|
throw new import_messages.LoaderError(import_messages.UNRESOLVED, [specifier]);
|
|
182
161
|
}
|
|
@@ -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 ESM Module Loader v0.23.
|
|
7
|
+
/* LWR ESM Module Loader v0.23.13 */
|
|
8
8
|
function _optionalChain$1(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
9
9
|
|
|
10
10
|
|
|
@@ -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 v0.23.
|
|
7
|
+
/* LWR Module Loader v0.23.13 */
|
|
8
8
|
const templateRegex = /\{([0-9]+)\}/g;
|
|
9
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
10
|
function templateString(template, args) {
|
|
@@ -390,13 +390,7 @@ class ImportMetadataResolver {
|
|
|
390
390
|
|
|
391
391
|
__init3() {this.loadMappingHooks = [];}
|
|
392
392
|
|
|
393
|
-
|
|
394
|
-
__init4() {this.batchSpecifiers = [];}
|
|
395
|
-
|
|
396
|
-
// eslint-disable-next-line lwr/no-unguarded-apis
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
constructor(config, invalidationCallback) {ImportMetadataResolver.prototype.__init.call(this);ImportMetadataResolver.prototype.__init2.call(this);ImportMetadataResolver.prototype.__init3.call(this);ImportMetadataResolver.prototype.__init4.call(this);
|
|
393
|
+
constructor(config, invalidationCallback) {ImportMetadataResolver.prototype.__init.call(this);ImportMetadataResolver.prototype.__init2.call(this);ImportMetadataResolver.prototype.__init3.call(this);
|
|
400
394
|
this.config = config;
|
|
401
395
|
this.invalidationCallback = invalidationCallback;
|
|
402
396
|
}
|
|
@@ -577,30 +571,6 @@ class ImportMetadataResolver {
|
|
|
577
571
|
}
|
|
578
572
|
|
|
579
573
|
async fetchNewMappings(specifier) {
|
|
580
|
-
if (!hasSetTimeout || !_optionalChain([this, 'access', _5 => _5.config, 'optionalAccess', _6 => _6.flags, 'optionalAccess', _7 => _7.batchMappings])) {
|
|
581
|
-
return this.fetchNewMappingsInner(specifier);
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
const batch = () => {
|
|
585
|
-
const specifiers = this.batchSpecifiers.join(',');
|
|
586
|
-
this.batchSpecifiers = []; // clear pending mapping requests
|
|
587
|
-
// eslint-disable-next-line lwr/no-unguarded-apis
|
|
588
|
-
clearTimeout(this.batchTimer); // cancel the batch timer
|
|
589
|
-
this.batchTimer = undefined;
|
|
590
|
-
return this.fetchNewMappingsInner(specifiers);
|
|
591
|
-
};
|
|
592
|
-
|
|
593
|
-
if (!this.batchPromise || this.batchSpecifiers.length === 0) {
|
|
594
|
-
this.batchPromise = new Promise((resolve) => {
|
|
595
|
-
// eslint-disable-next-line lwr/no-unguarded-apis
|
|
596
|
-
this.batchTimer = setTimeout(() => resolve(batch()), 0);
|
|
597
|
-
});
|
|
598
|
-
}
|
|
599
|
-
this.batchSpecifiers.push(specifier);
|
|
600
|
-
return this.batchPromise;
|
|
601
|
-
}
|
|
602
|
-
|
|
603
|
-
async fetchNewMappingsInner(specifier) {
|
|
604
574
|
if (typeof globalThis.fetch !== 'function') {
|
|
605
575
|
throw new LoaderError(UNRESOLVED, [specifier]);
|
|
606
576
|
}
|
|
@@ -1809,7 +1779,6 @@ class Loader {
|
|
|
1809
1779
|
endpoints: config.endpoints,
|
|
1810
1780
|
baseUrl,
|
|
1811
1781
|
profiler,
|
|
1812
|
-
flags: config.flags || {},
|
|
1813
1782
|
}),
|
|
1814
1783
|
);
|
|
1815
1784
|
|
|
@@ -11,9 +11,6 @@ export declare class ImportMetadataResolver {
|
|
|
11
11
|
private config;
|
|
12
12
|
private invalidationCallback;
|
|
13
13
|
private loadMappingHooks;
|
|
14
|
-
private batchSpecifiers;
|
|
15
|
-
private batchPromise;
|
|
16
|
-
private batchTimer;
|
|
17
14
|
constructor(config: LoaderConfig, invalidationCallback: Function);
|
|
18
15
|
addLoadMappingHook(hook: LoadMappingHook): void;
|
|
19
16
|
getMappingEndpoint(): string | undefined;
|
|
@@ -49,7 +46,6 @@ export declare class ImportMetadataResolver {
|
|
|
49
46
|
*/
|
|
50
47
|
private evaluateMappingHooks;
|
|
51
48
|
private fetchNewMappings;
|
|
52
|
-
private fetchNewMappingsInner;
|
|
53
49
|
private saveImportURIRecord;
|
|
54
50
|
}
|
|
55
51
|
//# sourceMappingURL=importMetadataResolver.d.ts.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { LoaderError, BAD_IMPORT_METADATA, UNRESOLVED, UNRESOLVEABLE_MAPPING_ERROR, } from '../errors/messages.js';
|
|
2
2
|
import { isUrl, resolveUrl } from '../utils/url.js';
|
|
3
3
|
import { MAPPINGS_ERROR, MAPPINGS_FETCH } from 'lwr/metrics';
|
|
4
|
-
import { hasSetTimeout } from '../utils/dom.js';
|
|
5
4
|
/* spec based import map resolver */
|
|
6
5
|
export class ImportMetadataResolver {
|
|
7
6
|
constructor(config, invalidationCallback) {
|
|
@@ -9,8 +8,6 @@ export class ImportMetadataResolver {
|
|
|
9
8
|
this.importURICache = new Map();
|
|
10
9
|
this.pendingURICache = new Map();
|
|
11
10
|
this.loadMappingHooks = [];
|
|
12
|
-
// mapping request batching
|
|
13
|
-
this.batchSpecifiers = [];
|
|
14
11
|
this.config = config;
|
|
15
12
|
this.invalidationCallback = invalidationCallback;
|
|
16
13
|
}
|
|
@@ -178,27 +175,6 @@ export class ImportMetadataResolver {
|
|
|
178
175
|
return this.fetchNewMappings(specifier);
|
|
179
176
|
}
|
|
180
177
|
async fetchNewMappings(specifier) {
|
|
181
|
-
if (!hasSetTimeout || !this.config?.flags?.batchMappings) {
|
|
182
|
-
return this.fetchNewMappingsInner(specifier);
|
|
183
|
-
}
|
|
184
|
-
const batch = () => {
|
|
185
|
-
const specifiers = this.batchSpecifiers.join(',');
|
|
186
|
-
this.batchSpecifiers = []; // clear pending mapping requests
|
|
187
|
-
// eslint-disable-next-line lwr/no-unguarded-apis
|
|
188
|
-
clearTimeout(this.batchTimer); // cancel the batch timer
|
|
189
|
-
this.batchTimer = undefined;
|
|
190
|
-
return this.fetchNewMappingsInner(specifiers);
|
|
191
|
-
};
|
|
192
|
-
if (!this.batchPromise || this.batchSpecifiers.length === 0) {
|
|
193
|
-
this.batchPromise = new Promise((resolve) => {
|
|
194
|
-
// eslint-disable-next-line lwr/no-unguarded-apis
|
|
195
|
-
this.batchTimer = setTimeout(() => resolve(batch()), 0);
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
this.batchSpecifiers.push(specifier);
|
|
199
|
-
return this.batchPromise;
|
|
200
|
-
}
|
|
201
|
-
async fetchNewMappingsInner(specifier) {
|
|
202
178
|
if (typeof globalThis.fetch !== 'function') {
|
|
203
179
|
throw new LoaderError(UNRESOLVED, [specifier]);
|
|
204
180
|
}
|
|
@@ -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 Legacy Module Loader v0.23.
|
|
7
|
+
/* LWR Legacy Module Loader v0.23.13 */
|
|
8
8
|
const templateRegex = /\{([0-9]+)\}/g;
|
|
9
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
10
|
function templateString(template, args) {
|
package/build/shim/shim.d.ts
CHANGED
package/build/shim/shim.js
CHANGED
|
@@ -20,6 +20,9 @@ export default class LoaderShim {
|
|
|
20
20
|
// Parse configuration
|
|
21
21
|
this.global = global;
|
|
22
22
|
this.config = global.LWR;
|
|
23
|
+
// Snapshot the required modules that still need to be defined. `requiredModules` is
|
|
24
|
+
// fully populated before `new LoaderShim` (see shim/index.ts), so this is complete.
|
|
25
|
+
this.pendingRequired = new Set(this.config.requiredModules || []);
|
|
23
26
|
this.loaderSpecifier = 'lwr/loader/v/__VERSION__';
|
|
24
27
|
// Set up error handler
|
|
25
28
|
this.errorHandler = this.config.onError;
|
|
@@ -48,9 +51,8 @@ export default class LoaderShim {
|
|
|
48
51
|
}
|
|
49
52
|
// Initialize the app if:
|
|
50
53
|
// - bootReady: autoBoot is on OR customInit has finished
|
|
51
|
-
// - all required modules are defined
|
|
52
|
-
|
|
53
|
-
return this.bootReady && allDefined;
|
|
54
|
+
// - all required modules are defined (tracked by the pendingRequired countdown)
|
|
55
|
+
return this.bootReady && this.pendingRequired.size === 0;
|
|
54
56
|
}
|
|
55
57
|
/**
|
|
56
58
|
* Create a temporary LWR.define() function which captures all
|
|
@@ -66,6 +68,8 @@ export default class LoaderShim {
|
|
|
66
68
|
const moduleName = args[0];
|
|
67
69
|
this.defineCache[moduleName] = args;
|
|
68
70
|
this.orderedDefs.push(moduleName);
|
|
71
|
+
// O(1) countdown: no-op for non-required modules (e.g. the ~hundreds of labels)
|
|
72
|
+
this.pendingRequired.delete(moduleName);
|
|
69
73
|
if (this.canInit()) {
|
|
70
74
|
if (hasSetTimeout) {
|
|
71
75
|
// requiredModules are defined, clear watchdog timer
|
|
@@ -102,7 +106,6 @@ export default class LoaderShim {
|
|
|
102
106
|
const loaderConfig = {
|
|
103
107
|
endpoints: this.config.endpoints,
|
|
104
108
|
baseUrl: this.config.baseUrl,
|
|
105
|
-
flags: this.config.flags,
|
|
106
109
|
profiler: { logOperationStart, logOperationEnd },
|
|
107
110
|
// TODO: can be removed following https://github.com/salesforce-experience-platform-emu/lwr/issues/1087
|
|
108
111
|
appMetadata: {
|
|
@@ -23,6 +23,9 @@ export default class LoaderShim {
|
|
|
23
23
|
// Parse configuration
|
|
24
24
|
this.global = global;
|
|
25
25
|
this.config = global.LWR;
|
|
26
|
+
// Snapshot the required modules that still need to be defined. `requiredModules` is
|
|
27
|
+
// fully populated before `new LoaderShim` (see shim-legacy/index.ts), so this is complete.
|
|
28
|
+
this.pendingRequired = new Set(this.config.requiredModules || []);
|
|
26
29
|
this.loaderModule = 'lwr/loaderLegacy/v/__VERSION__';
|
|
27
30
|
// Set up error handler
|
|
28
31
|
this.errorHandler = this.config.onError;
|
|
@@ -51,9 +54,8 @@ export default class LoaderShim {
|
|
|
51
54
|
}
|
|
52
55
|
// Initialize the app if:
|
|
53
56
|
// - bootReady: autoBoot is on OR customInit has finished
|
|
54
|
-
// - all required modules are defined
|
|
55
|
-
|
|
56
|
-
return this.bootReady && allDefined;
|
|
57
|
+
// - all required modules are defined (tracked by the pendingRequired countdown)
|
|
58
|
+
return this.bootReady && this.pendingRequired.size === 0;
|
|
57
59
|
}
|
|
58
60
|
/**
|
|
59
61
|
* Create a temporary LWR.define() function which captures all
|
|
@@ -69,6 +71,8 @@ export default class LoaderShim {
|
|
|
69
71
|
const moduleName = args[0];
|
|
70
72
|
this.defineCache[moduleName] = args;
|
|
71
73
|
this.orderedDefs.push(moduleName);
|
|
74
|
+
// O(1) countdown: no-op for non-required modules (e.g. the ~hundreds of labels)
|
|
75
|
+
this.pendingRequired.delete(moduleName);
|
|
72
76
|
if (this.canInit()) {
|
|
73
77
|
if (hasSetTimeout) {
|
|
74
78
|
// requiredModules are defined, clear watchdog timer
|
package/build/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.23.
|
|
8
|
+
"version": "0.23.13",
|
|
9
9
|
"homepage": "https://developer.salesforce.com/docs/platform/lwr/overview",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
@@ -61,16 +61,16 @@
|
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@locker/trusted-types": "0.28.4",
|
|
64
|
-
"@lwrjs/diagnostics": "0.23.
|
|
65
|
-
"@lwrjs/types": "0.23.
|
|
64
|
+
"@lwrjs/diagnostics": "0.23.13",
|
|
65
|
+
"@lwrjs/types": "0.23.13",
|
|
66
66
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
67
67
|
"@rollup/plugin-sucrase": "^5.1.0",
|
|
68
68
|
"@rollup/plugin-terser": "^0.4.4",
|
|
69
69
|
"rollup": "^2.80.0"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@lwrjs/client-modules": "0.23.
|
|
73
|
-
"@lwrjs/shared-utils": "0.23.
|
|
72
|
+
"@lwrjs/client-modules": "0.23.13",
|
|
73
|
+
"@lwrjs/shared-utils": "0.23.13"
|
|
74
74
|
},
|
|
75
75
|
"lwc": {
|
|
76
76
|
"modules": [
|
|
@@ -90,5 +90,5 @@
|
|
|
90
90
|
"volta": {
|
|
91
91
|
"extends": "../../../package.json"
|
|
92
92
|
},
|
|
93
|
-
"gitHead": "
|
|
93
|
+
"gitHead": "e7cc5bc4c0f4919611ce9c0449f0690336fd9c1d"
|
|
94
94
|
}
|