@lwrjs/everywhere 0.10.0-alpha.9 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/__generated_site_amd_modules__/1/application/amd/l/en-US/ai/amd-bootstrap/configuration/ci/-/-/s/ad26178e2b6a712bafbd34bfa576d557/config.js +10 -0
- package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/@lwrjs/app-service/amd-bootstrap/module/amd/v/{0_10_0-alpha_9 → 0_10_0}/s/c40e6caf07454ce13961de8ca76ab7f0/@lwrjs_app-service_amd-bootstrap_module_amd.js +4 -4
- package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwc/v/{2_45_2/s/97b809a5745ddedba3acd0433f339b58 → 2_50_0/s/b40440e2e29d782101f05d6085a324e9}/lwc.js +119 -164
- package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/everywhereAmd/v/{0_10_0-alpha_9/s/c538071acf5bde58e816967a14c465c3 → 0_10_0/s/cb931ebef2b89dcf8ab51456e3a68864}/lwr_everywhereAmd.js +3 -3
- package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/init/v/0_10_0/s/5e6db37af51f0d23be4893abe5eeb913/lwr_init.js +163 -0
- package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/loader/v/{0_10_0-alpha_9/s/885d9c7f6d74862b4f695fcac98b9d36 → 0_10_0/s/1344670ea0a1514a4e8da5ca7f382e45}/lwr_loader.js +73 -5
- package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/metrics/v/{0_10_0-alpha_9/s/3426e42c3e22ce07ab2adc62c4c523a0 → 0_10_0/s/7a802ee7a2430244c1f66bce2c2eafef}/lwr_metrics.js +13 -1
- package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/profiler/v/0_10_0/s/a152b8d35f12ca1b5147c5cd1ee155fb/lwr_profiler.js +102 -0
- package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/vault/v/{0_10_0-alpha_9 → 0_10_0}/s/c92abd8c1fec2d7eff62e4b097abbe14/lwr_vault.js +1 -1
- package/build/__generated_site_amd_modules__/1/resource/amd/lwr-error-shim.js/v/{0_10_0-alpha_9 → 0_10_0}/lwr-error-shim.js +1 -1
- package/build/__generated_site_amd_modules__/1/resource/amd/lwr-loader-shim.bundle.js/v/{0_10_0-alpha_9 → 0_10_0}/lwr-loader-shim.bundle.js +122 -19
- package/build/assets/amd/lwr-everywhere-debug.js +81 -10
- package/build/assets/amd/lwr-everywhere-min.js +5 -1
- package/build/assets/amd/lwr-everywhere.js +81 -10
- package/build/assets/core/lwr-everywhere-debug.js +77 -6
- package/build/assets/core/lwr-everywhere-min.js +5 -1
- package/build/assets/core/lwr-everywhere.js +77 -6
- package/build/assets/esm/lwr-everywhere-debug.js +1 -1
- package/build/assets/esm/lwr-everywhere-min.js +1 -1
- package/build/assets/esm/lwr-everywhere.js +1 -1
- package/build/generate.js +1 -1
- package/build/index.js +1 -1
- package/build/modules/lwr/everywhereAmd/everywhereAmd.d.ts +1 -1
- package/build/modules/lwr/host/host.html +1 -1
- package/build/modules/lwr/host/host.js +1 -1
- package/package.json +11 -10
- package/src/generate.ts +1 -1
- package/src/index.ts +4 -1
- package/build/__generated_site_amd_modules__/1/application/amd/l/en-US/ai/amd-bootstrap/configuration/ci/-/-/s/6516de68196276bf4003f2193ce83bb2/config.js +0 -10
- package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/init/v/0_10_0-alpha_9/s/8199fbc1a33dffe14973c3ee0a3f6aa3/lwr_init.js +0 -118
- package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/profiler/v/0_10_0-alpha_9/s/4e65d4b97b3cc3d2f06a4cc284f3dd68/lwr_profiler.js +0 -68
|
@@ -20,7 +20,7 @@ function getConfiguration(options) {
|
|
|
20
20
|
: `${ORIGIN}${PREFIX}/module/${format}/${POSTFIX}/mi/`;
|
|
21
21
|
|
|
22
22
|
// Component specifiers and URIs
|
|
23
|
-
const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_10_0
|
|
23
|
+
const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_10_0`;
|
|
24
24
|
const BOOT_URI = `${ENDPOINT}${encodeURIComponent(BOOT_MODULE)}/latest${debug ? '?debug' : ''}`;
|
|
25
25
|
|
|
26
26
|
// Client Bootstrap Config
|
|
@@ -52,7 +52,7 @@ function getConfiguration(options) {
|
|
|
52
52
|
* SPDX-License-Identifier: MIT
|
|
53
53
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
54
54
|
*/
|
|
55
|
-
/* LWR Module Loader v0.10.0
|
|
55
|
+
/* LWR Module Loader v0.10.0 */
|
|
56
56
|
const templateRegex = /\{([0-9]+)\}/g;
|
|
57
57
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
58
|
function templateString(template, args) {
|
|
@@ -625,7 +625,69 @@ function evaluateHandleStaleModuleHooks(
|
|
|
625
625
|
}
|
|
626
626
|
}
|
|
627
627
|
|
|
628
|
-
const MODULE_LOAD_TIMEOUT_TIMER =
|
|
628
|
+
const MODULE_LOAD_TIMEOUT_TIMER = 60 * 1000; // 1m
|
|
629
|
+
|
|
630
|
+
/*!
|
|
631
|
+
* Copyright (C) 2023 salesforce.com, inc.
|
|
632
|
+
*/
|
|
633
|
+
// @ts-ignore: Prevent cannot find name 'trustedTypes' error.
|
|
634
|
+
const SUPPORTS_TRUSTED_TYPES = typeof trustedTypes !== 'undefined';
|
|
635
|
+
function createTrustedTypesPolicy(name, options) {
|
|
636
|
+
// @ts-ignore: Prevent cannot find name 'trustedTypes' error.
|
|
637
|
+
return trustedTypes.createPolicy(name, options);
|
|
638
|
+
}
|
|
639
|
+
function createFallbackPolicy(_name, options) {
|
|
640
|
+
return options;
|
|
641
|
+
}
|
|
642
|
+
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/trusted-types
|
|
643
|
+
const createPolicy = SUPPORTS_TRUSTED_TYPES ? createTrustedTypesPolicy : createFallbackPolicy;
|
|
644
|
+
const policyOptions = {
|
|
645
|
+
createHTML(value) {
|
|
646
|
+
return value;
|
|
647
|
+
},
|
|
648
|
+
createScript(value) {
|
|
649
|
+
return value;
|
|
650
|
+
},
|
|
651
|
+
createScriptURL(value) {
|
|
652
|
+
return value;
|
|
653
|
+
}
|
|
654
|
+
};
|
|
655
|
+
// Temporarily surround in try-catch until migration to AMD run.
|
|
656
|
+
try {
|
|
657
|
+
createPolicy('default', {
|
|
658
|
+
createHTML(dirty) {
|
|
659
|
+
// Treat null & undefined separately
|
|
660
|
+
if (dirty === 'null' || dirty === 'undefined') {
|
|
661
|
+
return dirty;
|
|
662
|
+
}
|
|
663
|
+
return dirty;
|
|
664
|
+
},
|
|
665
|
+
// Ignore typescript type validation for this policy.
|
|
666
|
+
// Returning `undefined` from a TT policy blocks usages
|
|
667
|
+
// of specific DOM sinks affected by this hook.
|
|
668
|
+
// We want to block eval and inline scripts.
|
|
669
|
+
// @ts-ignore
|
|
670
|
+
createScript(dirty) {
|
|
671
|
+
// Treat null & undefined separately
|
|
672
|
+
if (dirty === 'null' || dirty === 'undefined') {
|
|
673
|
+
return dirty;
|
|
674
|
+
}
|
|
675
|
+
// Block script evaluation
|
|
676
|
+
return undefined;
|
|
677
|
+
},
|
|
678
|
+
createScriptURL(dirty) {
|
|
679
|
+
// Treat null & undefined separately
|
|
680
|
+
if (dirty === 'null' || dirty === 'undefined') {
|
|
681
|
+
return dirty;
|
|
682
|
+
}
|
|
683
|
+
return dirty;
|
|
684
|
+
}
|
|
685
|
+
});
|
|
686
|
+
} catch (_unused) {
|
|
687
|
+
// swallow
|
|
688
|
+
}
|
|
689
|
+
const trusted = createPolicy('trusted', policyOptions);
|
|
690
|
+
/*! version: 0.19.10 */
|
|
629
691
|
|
|
630
692
|
/* global console,process */
|
|
631
693
|
|
|
@@ -694,7 +756,7 @@ async function evaluateLoadHookResponse(response, id) {
|
|
|
694
756
|
code = `${code}\n//# sourceURL=${id}`; // append sourceURL for debugging
|
|
695
757
|
try {
|
|
696
758
|
// TODO eval source maps for debugging
|
|
697
|
-
eval(code);
|
|
759
|
+
eval(trusted.createScript(code));
|
|
698
760
|
} catch (e) {
|
|
699
761
|
throw new LoaderError(FAIL_LOAD, [id]);
|
|
700
762
|
}
|
|
@@ -818,6 +880,9 @@ class ModuleRegistry {
|
|
|
818
880
|
// eslint-disable-next-line no-await-in-loop
|
|
819
881
|
result = isResponseAPromise(response) ? await response : response;
|
|
820
882
|
}
|
|
883
|
+
if (!this.isValidResolveResponse(result)) {
|
|
884
|
+
throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);
|
|
885
|
+
}
|
|
821
886
|
|
|
822
887
|
// if result is not null, attempt resolution
|
|
823
888
|
if (result !== null) {
|
|
@@ -1346,6 +1411,12 @@ class ModuleRegistry {
|
|
|
1346
1411
|
this.handleStaleModuleHook = [handleStaleModule];
|
|
1347
1412
|
}
|
|
1348
1413
|
}
|
|
1414
|
+
|
|
1415
|
+
isValidResolveResponse(res) {
|
|
1416
|
+
return (
|
|
1417
|
+
res === null || typeof res === 'string' || (res && typeof (res ).url === 'string')
|
|
1418
|
+
);
|
|
1419
|
+
}
|
|
1349
1420
|
}
|
|
1350
1421
|
|
|
1351
1422
|
/**
|
|
@@ -1492,7 +1563,7 @@ const { bootstrapModule, endpoints, baseUrl, imports, index } = configuration;
|
|
|
1492
1563
|
|
|
1493
1564
|
// Initialize the AMD loader (its code is bundled into the LWR Everywhere module)
|
|
1494
1565
|
const loader = new Loader({ endpoints, baseUrl });
|
|
1495
|
-
loader.define('lwr/loader/v/0_10_0
|
|
1566
|
+
loader.define('lwr/loader/v/0_10_0', ['exports'], (exports) => {
|
|
1496
1567
|
Object.assign(exports, {
|
|
1497
1568
|
define: loader.define.bind(loader),
|
|
1498
1569
|
load: loader.load.bind(loader),
|
|
@@ -1502,12 +1573,12 @@ await loader.registerImportMappings({ imports, index }, [bootstrapModule]);
|
|
|
1502
1573
|
(globalThis ).LWR = Object.freeze({ define: loader.define.bind(loader) });
|
|
1503
1574
|
|
|
1504
1575
|
// Define preload modules (ie: ABS, vault, etc) BEFORE loading them
|
|
1505
|
-
LWR.define('lwr/everywhereAmd/v/0_10_0
|
|
1576
|
+
LWR.define('lwr/everywhereAmd/v/0_10_0', ['exports', 'lwr/vault/v/0_10_0'], (function (exports, _0_10_0) {
|
|
1506
1577
|
// IMPORTANT: Do not add any static imports to this file that are not bundled with the amd-client
|
|
1507
1578
|
|
|
1508
1579
|
// Do an OAuthed fetch
|
|
1509
1580
|
async function authFetch(url, accept = 'javascript') {
|
|
1510
|
-
const authInfo =
|
|
1581
|
+
const authInfo = _0_10_0.getAuthInfo();
|
|
1511
1582
|
if (authInfo) {
|
|
1512
1583
|
return fetch(url, {
|
|
1513
1584
|
headers: {
|
|
@@ -1557,7 +1628,7 @@ LWR.define('lwr/everywhereAmd/v/0_10_0-alpha_9', ['exports', 'lwr/vault/v/0_10_0
|
|
|
1557
1628
|
function authenticate(authInfo) {
|
|
1558
1629
|
// Put OAuth info into the vault
|
|
1559
1630
|
if (authInfo) {
|
|
1560
|
-
|
|
1631
|
+
_0_10_0.setAuthInfo(authInfo);
|
|
1561
1632
|
}
|
|
1562
1633
|
}
|
|
1563
1634
|
|
|
@@ -1567,7 +1638,7 @@ LWR.define('lwr/everywhereAmd/v/0_10_0-alpha_9', ['exports', 'lwr/vault/v/0_10_0
|
|
|
1567
1638
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
1568
1639
|
|
|
1569
1640
|
}));
|
|
1570
|
-
LWR.define('lwr/vault/v/0_10_0
|
|
1641
|
+
LWR.define('lwr/vault/v/0_10_0', ['exports'], (function (exports) {
|
|
1571
1642
|
// Credential vault for storing setters and subscribers for OAuth info
|
|
1572
1643
|
// This module is a SINGLETON and must be excluded from ESM bundling
|
|
1573
1644
|
|
|
@@ -1591,7 +1662,7 @@ LWR.define('lwr/vault/v/0_10_0-alpha_9', ['exports'], (function (exports) {
|
|
|
1591
1662
|
|
|
1592
1663
|
// Set up the AMD loader hooks for OAuth
|
|
1593
1664
|
const { initAmd, authenticate } = await loader.load(bootstrapModule);
|
|
1594
|
-
initAmd(loader.services, _optionalChain([endpoints, 'optionalAccess', _ => _.uris, 'access', _2 => _2.mapping]), '0_10_0
|
|
1665
|
+
initAmd(loader.services, _optionalChain([endpoints, 'optionalAccess', _ => _.uris, 'access', _2 => _2.mapping]), '0_10_0');
|
|
1595
1666
|
|
|
1596
1667
|
// Wrap the createComponent API to allow proper ordering of module definitions:
|
|
1597
1668
|
// 1. LWRE module bundle (this): lwr/loader, lwr/everywhereAmd, lwr/vault
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
function getConfiguration(e){const{format:t,server:r,apiVersion:o,apiPrefix:n,locale:i,bundle:s,debug:a}=e,l=new URL(import.meta.url),d=r||l.origin||"",c=`${n}/${o}`,p="0"+(i?`/l/${i}`:""),u="/bi/3_A,B,O,S,EG,JLMT,C,D,F,H,I,K,N,P,Q,R",h=s?`${d}${c}/bundle/${t}/${p}${u}-0/module/mi/`:`${d}${c}/module/${t}/${p}/mi/`,f=`lwr/everywhere${"esm"===t?"Esm":"Amd"}/v/0_10_0-alpha_9`,g=`${h}${encodeURIComponent(f)}/latest${a?"?debug":""}`,m={appId:"lwre",autoBoot:!0,bootstrapModule:f,baseUrl:d,imports:{[g]:[f]},index:{[f]:g},endpoints:{uris:{module:h,mapping:`${d}${c}/mapping/${t}/${p}${s?u:""}/mp/`}}};return a&&m.endpoints&&(m.endpoints.modifiers={debug:"true"}),m}globalThis.process={env:{NODE_ENV:"production"}};const templateRegex=/\{([0-9]+)\}/g;function templateString(e,t){return e.replace(templateRegex,((e,r)=>t[r]))}function generateErrorMessage(e,t){const r=Array.isArray(t)?templateString(e.message,t):e.message;return`LWR${e.code}: ${r}`}class LoaderError extends Error{constructor(e,t){super(),this.message=generateErrorMessage(e,t)}}function invariant(e,t){if(!e)throw new LoaderError(t)}const MISSING_NAME=Object.freeze({code:3e3,message:"A module name is required.",level:0}),FAIL_INSTANTIATE=Object.freeze({code:3004,message:"Failed to instantiate module: {0}",level:0}),NO_AMD_REQUIRE=Object.freeze({code:3005,message:"AMD require not supported.",level:0}),FAILED_DEP=Object.freeze({code:3006,level:0,message:"Failed to load dependency: {0}"}),INVALID_DEPS=Object.freeze({code:3007,message:"Unexpected value received for dependencies argument; expected an array.",level:0}),FAIL_LOAD=Object.freeze({code:3008,level:0,message:"Error loading {0}"}),UNRESOLVED=Object.freeze({code:3009,level:0,message:"Unable to resolve bare specifier: {0}"}),NO_BASE_URL=Object.freeze({code:3010,level:0,message:"baseUrl not set"});Object.freeze({code:3011,level:0,message:"Cannot set a loader service multiple times"});const INVALID_HOOK=Object.freeze({code:3012,level:0,message:"Invalid hook received"}),INVALID_LOADER_SERVICE_RESPONSE=Object.freeze({code:3013,level:0,message:"Invalid response received from hook"}),MODULE_LOAD_TIMEOUT=Object.freeze({code:3014,level:0,message:"Error loading {0} - timed out"}),HTTP_FAIL_LOAD=Object.freeze({code:3015,level:0,message:"Error loading {0}, status code {1}"}),STALE_HOOK_ERROR=Object.freeze({code:3016,level:0,message:"An error occurred handling module conflict"}),MODULE_ALREADY_LOADED=Object.freeze({code:3017,level:0,message:"Marking module(s) as externally loaded, but they are already loaded:"}),FAIL_HOOK_LOAD=Object.freeze({code:3018,level:0,message:'Error loading "{0}" from hook'}),NO_MAPPING_URL=Object.freeze({code:3019,level:0,message:"Mapping endpoint not set"}),BAD_IMPORT_METADATA=Object.freeze({code:3020,level:0,message:"Invalid import metadata: {0} {1}"});Object.freeze({code:3011,level:0,message:"import map is not valid"});const hasDocument="undefined"!=typeof document,hasSetTimeout="function"==typeof setTimeout,hasConsole="undefined"!=typeof console;function getBaseUrl(){let e;if(hasDocument){const t=document.querySelector("base[href]");e=t&&t.href}if(!e&&"undefined"!=typeof location){e=location.href.split("#")[0].split("?")[0];const t=e.lastIndexOf("/");-1!==t&&(e=e.slice(0,t+1))}return e}function isUrl(e){return-1!==e.indexOf("://")}function resolveIfNotPlainOrUrl(e,t){if(-1!==e.indexOf("\\")&&(e=e.replace(/\\/g,"/")),"/"===e[0]&&"/"===e[1])return t.slice(0,t.indexOf(":")+1)+e;if("."===e[0]&&("/"===e[1]||"."===e[1]&&("/"===e[2]||2===e.length&&(e+="/"))||1===e.length&&(e+="/"))||"/"===e[0]){const r=t.slice(0,t.indexOf(":")+1);let o;if("/"===t[r.length+1]?"file:"!==r?(o=t.slice(r.length+2),o=o.slice(o.indexOf("/")+1)):o=t.slice(8):o=t.slice(r.length+("/"===t[r.length]?1:0)),"/"===e[0])return t.slice(0,t.length-o.length-1)+e;const 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)}}))}hasDocument&&window.addEventListener("error",(e=>{lastWindowErrorUrl=e.filename,lastWindowError$1=e.error}));const LOADER_PREFIX="lwr.loader.",MODULE_DEFINE=`${LOADER_PREFIX}module.define`,MODULE_FETCH=`${LOADER_PREFIX}module.fetch`,MODULE_ERROR=`${LOADER_PREFIX}module.error`,MAPPINGS_FETCH=`${LOADER_PREFIX}mappings.fetch`,MAPPINGS_ERROR=`${LOADER_PREFIX}mappings.error`;class ImportMetadataResolver{__init(){this.importURICache=new Map}__init2(){this.pendingURICache=new Map}__init3(){this.loadMappingHooks=[]}constructor(e,t){ImportMetadataResolver.prototype.__init.call(this),ImportMetadataResolver.prototype.__init2.call(this),ImportMetadataResolver.prototype.__init3.call(this),this.config=e,this.invalidationCallback=t}addLoadMappingHook(e){this.loadMappingHooks.push(e)}getMappingEndpoint(){return this.config.endpoints&&this.config.endpoints.uris?this.config.endpoints.uris.mapping:void 0}getModifiersAsUrlParams(){const e=this.config.endpoints?this.config.endpoints.modifiers:void 0;if(e){return`?${Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}`}return""}buildMappingUrl(e){return`${this.getMappingEndpoint()}${encodeURIComponent(e)}${this.getModifiersAsUrlParams()}`}getBaseUrl(){return this.config.baseUrl}registerImportMappings(e,t){if(!t||0===t.length){const r=e?JSON.stringify(e):"undefined";throw new LoaderError(BAD_IMPORT_METADATA,[r,t?"[]":"undefined"])}if(!e)throw new LoaderError(BAD_IMPORT_METADATA,["undefined",JSON.stringify(t)]);if(!e.imports||0===Object.keys(e.imports).length)throw new LoaderError(BAD_IMPORT_METADATA,[JSON.stringify(e),JSON.stringify(t)]);const r=e.index||{};for(const[o,n]of Object.entries(e.imports))n.forEach((e=>{const n=r[e],i=this.importURICache.get(e);if(i){const t=n||o,r=i.identity||i.uri;r!==t&&this.invalidationCallback({name:e,oldUrl:r,newUrl:t})}else this.saveImportURIRecord(e,o,n,t.includes(e))}))}getURI(e){return this.importURICache.has(e)?resolveUrl(this.importURICache.get(e).uri,this.getBaseUrl()):void 0}resolveLocal(e){const t=this.getURI(e);return t||(isUrl(e)||e.startsWith("/")?e:void 0)}async resolve(e){let t=this.getURI(e);if(t)return t;if(isUrl(e)||e.startsWith("/"))return e;{const r=this.pendingURICache.get(e);if(r)return r;this.config.profiler.logOperationStart({id:MAPPINGS_FETCH,specifier:e});const o=(this.hasMappingHooks()?this.evaluateMappingHooks:this.fetchNewMappings).bind(this)(e).then((r=>{if(!r||!r.imports)throw new LoaderError(UNRESOLVED,[e]);if(this.registerImportMappings(r,[e]),t=this.getURI(e),!t)throw new LoaderError(UNRESOLVED,[e]);return this.config.profiler.logOperationEnd({id:MAPPINGS_FETCH,specifier:e}),t})).finally((()=>{this.pendingURICache.delete(e)}));return this.pendingURICache.set(e,o),o}}hasMappingHooks(){return this.loadMappingHooks.length>0}async evaluateMappingHooks(e){const t=this.loadMappingHooks;if(t.length){const r=Array.from(this.importURICache.keys());for(let o=0;o<t.length;o++){const n=t[o],i=await n(e,{knownModules:r});if(i||void 0===i)return i}}return this.fetchNewMappings(e)}async fetchNewMappings(e){if("function"!=typeof globalThis.fetch)throw new LoaderError(UNRESOLVED,[e]);const t=resolveUrl(this.buildMappingUrl(e),this.getBaseUrl());return globalThis.fetch(t).then((t=>{if(!t.ok)throw this.config.profiler.logOperationStart({id:MAPPINGS_ERROR,specifier:e}),new LoaderError(UNRESOLVED,[e]);return t.json().then((e=>e)).catch((t=>{throw new LoaderError(UNRESOLVED,[e])}))}))}saveImportURIRecord(e,t,r,o){r&&t!==r?this.importURICache.set(e,{uri:t,identity:r,isRoot:o}):this.importURICache.set(e,{uri:t,isRoot:o})}}function reportError(e){hasConsole&&console.error(e)}function evaluateHandleStaleModuleHooks(e,t){const{name:r,oldUrl:o,newUrl:n}=t;for(let t=0;t<e.length;t++){const i=e[t];try{if(null!==i({name:r,oldUrl:o,newUrl:n}))break}catch(e){reportError(new LoaderError(STALE_HOOK_ERROR))}}}const MODULE_LOAD_TIMEOUT_TIMER=3e5;let lastWindowError;function isCustomResponse(e){return Object.prototype.hasOwnProperty.call(e,"data")&&!Object.prototype.hasOwnProperty.call(e,"blob")}function isFetchResponse(e){return"function"==typeof e.blob}function isResponseAPromise(e){return!(!e||!e.then)}async function evaluateLoadHookResponse(response,id){return Promise.resolve().then((async()=>{if(!response.status)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(200!==response.status)throw new LoaderError(HTTP_FAIL_LOAD,[id,`${response.status}`]);const isResponse=isFetchResponse(response);let code;if(isCustomResponse(response))code=response.data;else{if(!isResponse)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);code=await response.text()}if(!code)throw new LoaderError(FAIL_LOAD,[id]);code=`${code}\n//# sourceURL=${id}`;try{eval(code)}catch(e){throw new LoaderError(FAIL_LOAD,[id])}if(lastWindowError)throw new LoaderError(FAIL_LOAD,[id]);return!0}))}async function evaluateLoadHook(e,t){return hasSetTimeout?new Promise(((r,o)=>{const n=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(n)}))})):t}hasDocument&&globalThis.addEventListener("error",(e=>{lastWindowError=e.error})),"production"!==process.env.NODE_ENV&&!hasSetTimeout&&hasConsole&&console.warn("setTimeout API is not available, watchdog timer on load hook will not be set");class ModuleRegistry{constructor(e){ModuleRegistry.prototype.__init.call(this),ModuleRegistry.prototype.__init2.call(this),ModuleRegistry.prototype.__init3.call(this),this.profiler=e.profiler,this.resolver=new ImportMetadataResolver(e,this.importMetadataInvalidationCallback.bind(this))}async load(e,t){const r=await this.resolve(e,t),o=this.getModuleRecord(r,e);return o.evaluated?o.module:(o.evaluationPromise||(o.evaluationPromise=this.topLevelEvaluation(o)),o.evaluationPromise)}async resolve(e,t){const r=this.resolver.getBaseUrl();let o,n=e;const i=this.resolveHook;if(i){for(let e=0;e<i.length;e++){const t=(0,i[e])(n,{parentUrl:r});let s;if((t||null===t)&&(s=isResponseAPromise(t)?await t:t),null!==s){if("string"==typeof s){if(resolveIfNotPlainOrUrl(s,r))throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);n=s;continue}if(o=s&&s.url&&(resolveIfNotPlainOrUrl(s.url,r)||s.url),!o)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);break}}if(n!==e){if(!o&&this.namedDefineRegistry.has(n))return n;e=n}}if(!o){const t=resolveIfNotPlainOrUrl(e,r)||e;if(this.moduleRegistry.has(t))return t;const n=this.resolver.resolveLocal(t);if(n){if(this.namedDefineRegistry.has(t)&&this.namedDefineRegistry.get(t).defined){if(!this.moduleRegistry.get(n)||!this.aliases.has(t))return t}return n}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"production"!==process.env.NODE_ENV&&hasConsole&&console.warn(`Module redefine attempted: ${e}`),void(this.lastDefine=o);const n={name:e,dependencies:t,exporter:r,defined:!0};o&&o.external&&o.external.resolveExternal(n),this.profiler.logOperationStart({id:MODULE_DEFINE,specifier:e}),this.namedDefineRegistry.set(e,n),this.lastDefine=n}registerExternalModules(e){e.map((e=>{if(this.namedDefineRegistry.has(e))"production"!==process.env.NODE_ENV&&hasConsole&&console.warn(MODULE_ALREADY_LOADED.message,e);else{let t,r;const o=new Promise(((o,n)=>{t=o,r=setTimeout((()=>{n(new LoaderError(MODULE_LOAD_TIMEOUT,[e]))}),MODULE_LOAD_TIMEOUT_TIMER)})).finally((()=>{clearTimeout(r)})),n={name:e,defined:!1,external:{resolveExternal:t,moduleDefPromise:o}};this.namedDefineRegistry.set(e,n)}}))}__init(){this.namedDefineRegistry=new Map}__init2(){this.moduleRegistry=new Map}__init3(){this.aliases=new Map}getImportMetadataResolver(){return this.resolver}getExistingModuleRecord(e,t){const r=this.moduleRegistry.get(e);if(r)return this.storeModuleAlias(t,e),r;if(e!==t){const e=this.aliases.get(t);if(e){const t=this.moduleRegistry.get(e);if(t)return t}}return r}getModuleRecord(e,t){const r=this.getExistingModuleRecord(e,t);if(r)return r;const o=this.getModuleDef(e,t),n=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)})),i={id:e,module:Object.create(null),dependencyRecords:n,instantiation:o,evaluated:!1,evaluationPromise:null};return this.moduleRegistry.set(e,i),this.storeModuleAlias(t,e),i}storeModuleAlias(e,t){if(e!==t)if(this.aliases.has(e)){if("production"!==process.env.NODE_ENV&&hasConsole){const r=this.aliases.get(e);r!==t&&console.warn(`Alias update attempt: ${e}=>${r}, ${t}`)}}else this.aliases.set(e,t)}async getModuleDependencyRecord(e){const t=await this.resolve(e);return this.getModuleRecord(t,e)}async topLevelEvaluation(e){return await this.instantiateAll(e,{}),this.evaluateModule(e,{})}async instantiateAll(e,t){if(!t[e.id]){t[e.id]=!0;const r=await e.dependencyRecords;if(r)for(let e=0;e<r.length;e++){const o=r[e];await this.instantiateAll(o,t)}}}async evaluateModule(e,t){const r=await e.dependencyRecords;r.length>0&&(t[e.id]=!0,await this.evaluateModuleDependencies(r,t));const{exporter:o,dependencies:n}=await e.instantiation,i={},s=await Promise.all(n.map((async e=>{if("exports"===e)return i;const t=await this.resolve(e),r=this.moduleRegistry.get(t);if(!r)throw new LoaderError(FAILED_DEP,[t]);const o=r.module;if(!r.evaluated)return this.getCircularDependencyWrapper(o);if(o)return o.__defaultInterop?o.default:o;throw new LoaderError(FAILED_DEP,[t])})));if(e.evaluated)return e.module;let a=o(...s);void 0!==a?(a={default:a},Object.defineProperty(a,"__defaultInterop",{value:!0})):this.isNamedExportDefaultOnly(i)&&Object.defineProperty(i,"__useDefault",{value:!0});const l=a||i;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 n=this.resolver.getBaseUrl(),i=r||t;return this.profiler.logOperationStart({id:MODULE_FETCH,specifier:i}),Promise.resolve().then((async()=>{const t=this.loadHook;if(t)for(let r=0;r<t.length;r++){const o=(0,t[r])(e,n),i=isResponseAPromise(o)?await evaluateLoadHook(e,o):o;if(void 0===i)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(i&&null!==i)return evaluateLoadHookResponse(i,e)}return!1})).then((t=>{if(!0!==t&&hasDocument)return loadModuleDef(e)})).then((()=>{if(o=r&&this.namedDefineRegistry.get(r),o||(o=this.lastDefine),!o)throw new LoaderError(FAIL_INSTANTIATE,[e]);return this.profiler.logOperationEnd({id:MODULE_FETCH,specifier:i}),o})).catch((e=>{throw this.profiler.logOperationStart({id:MODULE_ERROR,specifier:i}),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}):"production"!==process.env.NODE_ENV&&hasConsole&&console.warn(`stale module detected ${e}, current URL:${t}, new URL:${r}`)}registerHandleStaleModuleHook(e){this.handleStaleModuleHook?this.handleStaleModuleHook.push(e):this.handleStaleModuleHook=[e]}}class Loader{constructor(e){let t=e.baseUrl;const r=e.endpoints?e.endpoints.uris.mapping:void 0;let o=e.profiler;if(!r)throw new LoaderError(NO_MAPPING_URL);if(e.endpoints.uris.mapping=r.replace(/\/?$/,"/"),t&&(t=t.replace(/\/?$/,"/")),t||(t=getBaseUrl()),!t)throw new LoaderError(NO_BASE_URL);if(o||(o={logOperationStart:()=>{},logOperationEnd:()=>{}}),this.registry=new ModuleRegistry(Object.freeze({endpoints:e.endpoints,baseUrl:t,profiler:o})),e.appMetadata&&!e.appMetadata.appId){const t=e.appMetadata.bootstrapModule.match(/@lwr-bootstrap\/(.+)\/v\/.+/),r=t&&t[1];e.appMetadata.appId=r}this.services=Object.freeze({addLoaderPlugin:this.registry.addLoaderPlugin.bind(this.registry),handleStaleModule:this.registry.registerHandleStaleModuleHook.bind(this.registry),appMetadata:e.appMetadata})}define(e,t,r){invariant("string"==typeof e,MISSING_NAME);let o=r,n=t;"function"==typeof n&&(o=t,n=[]),invariant(Array.isArray(n),INVALID_DEPS),this.registry.define(e,n,o)}async load(e,t){return this.registry.load(e,t)}has(e){return this.registry.has(e)}async resolve(e,t){return this.registry.resolve(e,t)}async registerImportMappings(e,t){this.registry.getImportMetadataResolver().registerImportMappings(e,t)}registerExternalModules(e){this.registry.registerExternalModules(e)}}function _optionalChain(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}const configOptions={format:"amd",apiVersion:"1",apiPrefix:"",bundle:!0,debug:!1},configuration=getConfiguration(configOptions),{bootstrapModule:bootstrapModule,endpoints:endpoints,baseUrl:baseUrl,imports:imports,index:index}=configuration,loader=new Loader({endpoints:endpoints,baseUrl:baseUrl});loader.define("lwr/loader/v/0_10_0-alpha_9",["exports"],(e=>{Object.assign(e,{define:loader.define.bind(loader),load:loader.load.bind(loader)})})),await loader.registerImportMappings({imports:imports,index:index},[bootstrapModule]),globalThis.LWR=Object.freeze({define:loader.define.bind(loader)}),LWR.define("lwr/everywhereAmd/v/0_10_0-alpha_9",["exports","lwr/vault/v/0_10_0-alpha_9"],(function(e,t){async function r(e,r="javascript"){const o=t.getAuthInfo();return o?fetch(e,{headers:{Accept:`application/${r}`,Authorization:`Bearer ${o.access_token}`}}):null}e.authenticate=function(e){e&&t.setAuthInfo(e)},e.initAmd=function(e,t,o){t.match(/\/v5\d\.0\//)&&function(e,t,o){e.addLoaderPlugin({loadModule:async e=>r(e),loadMapping:async e=>{const o=await r(`${t}${encodeURIComponent(e)}`,"json");return o&&o.ok?o.json():null},resolveModule:e=>e&&!/\/v\/[^/]+?$/.test(e)?`${e}/v/${o}`:null})}(e,t,o)},Object.defineProperty(e,"__esModule",{value:!0})})),LWR.define("lwr/vault/v/0_10_0-alpha_9",["exports"],(function(e){let t;e.getAuthInfo=function(){return t},e.setAuthInfo=function(e){t=e},Object.defineProperty(e,"__esModule",{value:!0})}));const{initAmd:initAmd,authenticate:authenticate}=await loader.load(bootstrapModule);async function createComponent(e,t,r={},o){const{createComponent:n}=await loader.load(bootstrapModule.replace("Amd",""));return n(e,t,r,o)}initAmd(loader.services,_optionalChain([endpoints,"optionalAccess",e=>e.uris,"access",e=>e.mapping]),"0_10_0-alpha_9");export{authenticate,createComponent};
|
|
1
|
+
function getConfiguration(e){const{format:t,server:r,apiVersion:o,apiPrefix:n,locale:i,bundle:s,debug:a}=e,l=new URL(import.meta.url),d=r||l.origin||"",c=`${n}/${o}`,u="0"+(i?`/l/${i}`:""),p="/bi/3_A,B,O,S,EG,JLMT,C,D,F,H,I,K,N,P,Q,R",f=s?`${d}${c}/bundle/${t}/${u}${p}-0/module/mi/`:`${d}${c}/module/${t}/${u}/mi/`,h=`lwr/everywhere${"esm"===t?"Esm":"Amd"}/v/0_10_0`,g=`${f}${encodeURIComponent(h)}/latest${a?"?debug":""}`,E={appId:"lwre",autoBoot:!0,bootstrapModule:h,baseUrl:d,imports:{[g]:[h]},index:{[h]:g},endpoints:{uris:{module:f,mapping:`${d}${c}/mapping/${t}/${u}${s?p:""}/mp/`}}};return a&&E.endpoints&&(E.endpoints.modifiers={debug:"true"}),E}globalThis.process={env:{NODE_ENV:"production"}};const templateRegex=/\{([0-9]+)\}/g;function templateString(e,t){return e.replace(templateRegex,((e,r)=>t[r]))}function generateErrorMessage(e,t){const r=Array.isArray(t)?templateString(e.message,t):e.message;return`LWR${e.code}: ${r}`}class LoaderError extends Error{constructor(e,t){super(),this.message=generateErrorMessage(e,t)}}function invariant(e,t){if(!e)throw new LoaderError(t)}const MISSING_NAME=Object.freeze({code:3e3,message:"A module name is required.",level:0}),FAIL_INSTANTIATE=Object.freeze({code:3004,message:"Failed to instantiate module: {0}",level:0}),NO_AMD_REQUIRE=Object.freeze({code:3005,message:"AMD require not supported.",level:0}),FAILED_DEP=Object.freeze({code:3006,level:0,message:"Failed to load dependency: {0}"}),INVALID_DEPS=Object.freeze({code:3007,message:"Unexpected value received for dependencies argument; expected an array.",level:0}),FAIL_LOAD=Object.freeze({code:3008,level:0,message:"Error loading {0}"}),UNRESOLVED=Object.freeze({code:3009,level:0,message:"Unable to resolve bare specifier: {0}"}),NO_BASE_URL=Object.freeze({code:3010,level:0,message:"baseUrl not set"});Object.freeze({code:3011,level:0,message:"Cannot set a loader service multiple times"});const INVALID_HOOK=Object.freeze({code:3012,level:0,message:"Invalid hook received"}),INVALID_LOADER_SERVICE_RESPONSE=Object.freeze({code:3013,level:0,message:"Invalid response received from hook"}),MODULE_LOAD_TIMEOUT=Object.freeze({code:3014,level:0,message:"Error loading {0} - timed out"}),HTTP_FAIL_LOAD=Object.freeze({code:3015,level:0,message:"Error loading {0}, status code {1}"}),STALE_HOOK_ERROR=Object.freeze({code:3016,level:0,message:"An error occurred handling module conflict"}),MODULE_ALREADY_LOADED=Object.freeze({code:3017,level:0,message:"Marking module(s) as externally loaded, but they are already loaded:"}),FAIL_HOOK_LOAD=Object.freeze({code:3018,level:0,message:'Error loading "{0}" from hook'}),NO_MAPPING_URL=Object.freeze({code:3019,level:0,message:"Mapping endpoint not set"}),BAD_IMPORT_METADATA=Object.freeze({code:3020,level:0,message:"Invalid import metadata: {0} {1}"});Object.freeze({code:3011,level:0,message:"import map is not valid"});const hasDocument="undefined"!=typeof document,hasSetTimeout="function"==typeof setTimeout,hasConsole="undefined"!=typeof console;function getBaseUrl(){let e;if(hasDocument){const t=document.querySelector("base[href]");e=t&&t.href}if(!e&&"undefined"!=typeof location){e=location.href.split("#")[0].split("?")[0];const t=e.lastIndexOf("/");-1!==t&&(e=e.slice(0,t+1))}return e}function isUrl(e){return-1!==e.indexOf("://")}function resolveIfNotPlainOrUrl(e,t){if(-1!==e.indexOf("\\")&&(e=e.replace(/\\/g,"/")),"/"===e[0]&&"/"===e[1])return t.slice(0,t.indexOf(":")+1)+e;if("."===e[0]&&("/"===e[1]||"."===e[1]&&("/"===e[2]||2===e.length&&(e+="/"))||1===e.length&&(e+="/"))||"/"===e[0]){const r=t.slice(0,t.indexOf(":")+1);let o;if("/"===t[r.length+1]?"file:"!==r?(o=t.slice(r.length+2),o=o.slice(o.indexOf("/")+1)):o=t.slice(8):o=t.slice(r.length+("/"===t[r.length]?1:0)),"/"===e[0])return t.slice(0,t.length-o.length-1)+e;const 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)}}))}hasDocument&&window.addEventListener("error",(e=>{lastWindowErrorUrl=e.filename,lastWindowError$1=e.error}));const LOADER_PREFIX="lwr.loader.",MODULE_DEFINE=`${LOADER_PREFIX}module.define`,MODULE_FETCH=`${LOADER_PREFIX}module.fetch`,MODULE_ERROR=`${LOADER_PREFIX}module.error`,MAPPINGS_FETCH=`${LOADER_PREFIX}mappings.fetch`,MAPPINGS_ERROR=`${LOADER_PREFIX}mappings.error`;class ImportMetadataResolver{__init(){this.importURICache=new Map}__init2(){this.pendingURICache=new Map}__init3(){this.loadMappingHooks=[]}constructor(e,t){ImportMetadataResolver.prototype.__init.call(this),ImportMetadataResolver.prototype.__init2.call(this),ImportMetadataResolver.prototype.__init3.call(this),this.config=e,this.invalidationCallback=t}addLoadMappingHook(e){this.loadMappingHooks.push(e)}getMappingEndpoint(){return this.config.endpoints&&this.config.endpoints.uris?this.config.endpoints.uris.mapping:void 0}getModifiersAsUrlParams(){const e=this.config.endpoints?this.config.endpoints.modifiers:void 0;if(e){return`?${Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}`}return""}buildMappingUrl(e){return`${this.getMappingEndpoint()}${encodeURIComponent(e)}${this.getModifiersAsUrlParams()}`}getBaseUrl(){return this.config.baseUrl}registerImportMappings(e,t){if(!t||0===t.length){const r=e?JSON.stringify(e):"undefined";throw new LoaderError(BAD_IMPORT_METADATA,[r,t?"[]":"undefined"])}if(!e)throw new LoaderError(BAD_IMPORT_METADATA,["undefined",JSON.stringify(t)]);if(!e.imports||0===Object.keys(e.imports).length)throw new LoaderError(BAD_IMPORT_METADATA,[JSON.stringify(e),JSON.stringify(t)]);const r=e.index||{};for(const[o,n]of Object.entries(e.imports))n.forEach((e=>{const n=r[e],i=this.importURICache.get(e);if(i){const t=n||o,r=i.identity||i.uri;r!==t&&this.invalidationCallback({name:e,oldUrl:r,newUrl:t})}else this.saveImportURIRecord(e,o,n,t.includes(e))}))}getURI(e){return this.importURICache.has(e)?resolveUrl(this.importURICache.get(e).uri,this.getBaseUrl()):void 0}resolveLocal(e){const t=this.getURI(e);return t||(isUrl(e)||e.startsWith("/")?e:void 0)}async resolve(e){let t=this.getURI(e);if(t)return t;if(isUrl(e)||e.startsWith("/"))return e;{const r=this.pendingURICache.get(e);if(r)return r;this.config.profiler.logOperationStart({id:MAPPINGS_FETCH,specifier:e});const o=(this.hasMappingHooks()?this.evaluateMappingHooks:this.fetchNewMappings).bind(this)(e).then((r=>{if(!r||!r.imports)throw new LoaderError(UNRESOLVED,[e]);if(this.registerImportMappings(r,[e]),t=this.getURI(e),!t)throw new LoaderError(UNRESOLVED,[e]);return this.config.profiler.logOperationEnd({id:MAPPINGS_FETCH,specifier:e}),t})).finally((()=>{this.pendingURICache.delete(e)}));return this.pendingURICache.set(e,o),o}}hasMappingHooks(){return this.loadMappingHooks.length>0}async evaluateMappingHooks(e){const t=this.loadMappingHooks;if(t.length){const r=Array.from(this.importURICache.keys());for(let o=0;o<t.length;o++){const n=t[o],i=await n(e,{knownModules:r});if(i||void 0===i)return i}}return this.fetchNewMappings(e)}async fetchNewMappings(e){if("function"!=typeof globalThis.fetch)throw new LoaderError(UNRESOLVED,[e]);const t=resolveUrl(this.buildMappingUrl(e),this.getBaseUrl());return globalThis.fetch(t).then((t=>{if(!t.ok)throw this.config.profiler.logOperationStart({id:MAPPINGS_ERROR,specifier:e}),new LoaderError(UNRESOLVED,[e]);return t.json().then((e=>e)).catch((t=>{throw new LoaderError(UNRESOLVED,[e])}))}))}saveImportURIRecord(e,t,r,o){r&&t!==r?this.importURICache.set(e,{uri:t,identity:r,isRoot:o}):this.importURICache.set(e,{uri:t,isRoot:o})}}function reportError(e){hasConsole&&console.error(e)}function evaluateHandleStaleModuleHooks(e,t){const{name:r,oldUrl:o,newUrl:n}=t;for(let t=0;t<e.length;t++){const i=e[t];try{if(null!==i({name:r,oldUrl:o,newUrl:n}))break}catch(e){reportError(new LoaderError(STALE_HOOK_ERROR))}}}const MODULE_LOAD_TIMEOUT_TIMER=6e4,SUPPORTS_TRUSTED_TYPES="undefined"!=typeof trustedTypes;
|
|
2
|
+
/*!
|
|
3
|
+
* Copyright (C) 2023 salesforce.com, inc.
|
|
4
|
+
*/function createTrustedTypesPolicy(e,t){return trustedTypes.createPolicy(e,t)}function createFallbackPolicy(e,t){return t}const createPolicy=SUPPORTS_TRUSTED_TYPES?createTrustedTypesPolicy:createFallbackPolicy,policyOptions={createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e};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);
|
|
5
|
+
/*! version: 0.19.10 */let lastWindowError;function isCustomResponse(e){return Object.prototype.hasOwnProperty.call(e,"data")&&!Object.prototype.hasOwnProperty.call(e,"blob")}function isFetchResponse(e){return"function"==typeof e.blob}function isResponseAPromise(e){return!(!e||!e.then)}async function evaluateLoadHookResponse(response,id){return Promise.resolve().then((async()=>{if(!response.status)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(200!==response.status)throw new LoaderError(HTTP_FAIL_LOAD,[id,`${response.status}`]);const isResponse=isFetchResponse(response);let code;if(isCustomResponse(response))code=response.data;else{if(!isResponse)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);code=await response.text()}if(!code)throw new LoaderError(FAIL_LOAD,[id]);code=`${code}\n//# sourceURL=${id}`;try{eval(trusted.createScript(code))}catch(e){throw new LoaderError(FAIL_LOAD,[id])}if(lastWindowError)throw new LoaderError(FAIL_LOAD,[id]);return!0}))}async function evaluateLoadHook(e,t){return hasSetTimeout?new Promise(((r,o)=>{const n=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(n)}))})):t}hasDocument&&globalThis.addEventListener("error",(e=>{lastWindowError=e.error})),"production"!==process.env.NODE_ENV&&!hasSetTimeout&&hasConsole&&console.warn("setTimeout API is not available, watchdog timer on load hook will not be set");class ModuleRegistry{constructor(e){ModuleRegistry.prototype.__init.call(this),ModuleRegistry.prototype.__init2.call(this),ModuleRegistry.prototype.__init3.call(this),this.profiler=e.profiler,this.resolver=new ImportMetadataResolver(e,this.importMetadataInvalidationCallback.bind(this))}async load(e,t){const r=await this.resolve(e,t),o=this.getModuleRecord(r,e);return o.evaluated?o.module:(o.evaluationPromise||(o.evaluationPromise=this.topLevelEvaluation(o)),o.evaluationPromise)}async resolve(e,t){const r=this.resolver.getBaseUrl();let o,n=e;const i=this.resolveHook;if(i){for(let e=0;e<i.length;e++){const t=(0,i[e])(n,{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);n=s;continue}if(o=s&&s.url&&(resolveIfNotPlainOrUrl(s.url,r)||s.url),!o)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);break}}if(n!==e){if(!o&&this.namedDefineRegistry.has(n))return n;e=n}}if(!o){const t=resolveIfNotPlainOrUrl(e,r)||e;if(this.moduleRegistry.has(t))return t;const n=this.resolver.resolveLocal(t);if(n){if(this.namedDefineRegistry.has(t)&&this.namedDefineRegistry.get(t).defined){if(!this.moduleRegistry.get(n)||!this.aliases.has(t))return t}return n}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"production"!==process.env.NODE_ENV&&hasConsole&&console.warn(`Module redefine attempted: ${e}`),void(this.lastDefine=o);const n={name:e,dependencies:t,exporter:r,defined:!0};o&&o.external&&o.external.resolveExternal(n),this.profiler.logOperationStart({id:MODULE_DEFINE,specifier:e}),this.namedDefineRegistry.set(e,n),this.lastDefine=n}registerExternalModules(e){e.map((e=>{if(this.namedDefineRegistry.has(e))"production"!==process.env.NODE_ENV&&hasConsole&&console.warn(MODULE_ALREADY_LOADED.message,e);else{let t,r;const o=new Promise(((o,n)=>{t=o,r=setTimeout((()=>{n(new LoaderError(MODULE_LOAD_TIMEOUT,[e]))}),MODULE_LOAD_TIMEOUT_TIMER)})).finally((()=>{clearTimeout(r)})),n={name:e,defined:!1,external:{resolveExternal:t,moduleDefPromise:o}};this.namedDefineRegistry.set(e,n)}}))}__init(){this.namedDefineRegistry=new Map}__init2(){this.moduleRegistry=new Map}__init3(){this.aliases=new Map}getImportMetadataResolver(){return this.resolver}getExistingModuleRecord(e,t){const r=this.moduleRegistry.get(e);if(r)return this.storeModuleAlias(t,e),r;if(e!==t){const e=this.aliases.get(t);if(e){const t=this.moduleRegistry.get(e);if(t)return t}}return r}getModuleRecord(e,t){const r=this.getExistingModuleRecord(e,t);if(r)return r;const o=this.getModuleDef(e,t),n=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)})),i={id:e,module:Object.create(null),dependencyRecords:n,instantiation:o,evaluated:!1,evaluationPromise:null};return this.moduleRegistry.set(e,i),this.storeModuleAlias(t,e),i}storeModuleAlias(e,t){if(e!==t)if(this.aliases.has(e)){if("production"!==process.env.NODE_ENV&&hasConsole){const r=this.aliases.get(e);r!==t&&console.warn(`Alias update attempt: ${e}=>${r}, ${t}`)}}else this.aliases.set(e,t)}async getModuleDependencyRecord(e){const t=await this.resolve(e);return this.getModuleRecord(t,e)}async topLevelEvaluation(e){return await this.instantiateAll(e,{}),this.evaluateModule(e,{})}async instantiateAll(e,t){if(!t[e.id]){t[e.id]=!0;const r=await e.dependencyRecords;if(r)for(let e=0;e<r.length;e++){const o=r[e];await this.instantiateAll(o,t)}}}async evaluateModule(e,t){const r=await e.dependencyRecords;r.length>0&&(t[e.id]=!0,await this.evaluateModuleDependencies(r,t));const{exporter:o,dependencies:n}=await e.instantiation,i={},s=await Promise.all(n.map((async e=>{if("exports"===e)return i;const t=await this.resolve(e),r=this.moduleRegistry.get(t);if(!r)throw new LoaderError(FAILED_DEP,[t]);const o=r.module;if(!r.evaluated)return this.getCircularDependencyWrapper(o);if(o)return o.__defaultInterop?o.default:o;throw new LoaderError(FAILED_DEP,[t])})));if(e.evaluated)return e.module;let a=o(...s);void 0!==a?(a={default:a},Object.defineProperty(a,"__defaultInterop",{value:!0})):this.isNamedExportDefaultOnly(i)&&Object.defineProperty(i,"__useDefault",{value:!0});const l=a||i;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 n=this.resolver.getBaseUrl(),i=r||t;return this.profiler.logOperationStart({id:MODULE_FETCH,specifier:i}),Promise.resolve().then((async()=>{const t=this.loadHook;if(t)for(let r=0;r<t.length;r++){const o=(0,t[r])(e,n),i=isResponseAPromise(o)?await evaluateLoadHook(e,o):o;if(void 0===i)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(i&&null!==i)return evaluateLoadHookResponse(i,e)}return!1})).then((t=>{if(!0!==t&&hasDocument)return loadModuleDef(e)})).then((()=>{if(o=r&&this.namedDefineRegistry.get(r),o||(o=this.lastDefine),!o)throw new LoaderError(FAIL_INSTANTIATE,[e]);return this.profiler.logOperationEnd({id:MODULE_FETCH,specifier:i}),o})).catch((e=>{throw this.profiler.logOperationStart({id:MODULE_ERROR,specifier:i}),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}):"production"!==process.env.NODE_ENV&&hasConsole&&console.warn(`stale module detected ${e}, current URL:${t}, new URL:${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}}class Loader{constructor(e){let t=e.baseUrl;const r=e.endpoints?e.endpoints.uris.mapping:void 0;let o=e.profiler;if(!r)throw new LoaderError(NO_MAPPING_URL);if(e.endpoints.uris.mapping=r.replace(/\/?$/,"/"),t&&(t=t.replace(/\/?$/,"/")),t||(t=getBaseUrl()),!t)throw new LoaderError(NO_BASE_URL);if(o||(o={logOperationStart:()=>{},logOperationEnd:()=>{}}),this.registry=new ModuleRegistry(Object.freeze({endpoints:e.endpoints,baseUrl:t,profiler:o})),e.appMetadata&&!e.appMetadata.appId){const t=e.appMetadata.bootstrapModule.match(/@lwr-bootstrap\/(.+)\/v\/.+/),r=t&&t[1];e.appMetadata.appId=r}this.services=Object.freeze({addLoaderPlugin:this.registry.addLoaderPlugin.bind(this.registry),handleStaleModule:this.registry.registerHandleStaleModuleHook.bind(this.registry),appMetadata:e.appMetadata})}define(e,t,r){invariant("string"==typeof e,MISSING_NAME);let o=r,n=t;"function"==typeof n&&(o=t,n=[]),invariant(Array.isArray(n),INVALID_DEPS),this.registry.define(e,n,o)}async load(e,t){return this.registry.load(e,t)}has(e){return this.registry.has(e)}async resolve(e,t){return this.registry.resolve(e,t)}async registerImportMappings(e,t){this.registry.getImportMetadataResolver().registerImportMappings(e,t)}registerExternalModules(e){this.registry.registerExternalModules(e)}}function _optionalChain(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}const configOptions={format:"amd",apiVersion:"1",apiPrefix:"",bundle:!0,debug:!1},configuration=getConfiguration(configOptions),{bootstrapModule:bootstrapModule,endpoints:endpoints,baseUrl:baseUrl,imports:imports,index:index}=configuration,loader=new Loader({endpoints:endpoints,baseUrl:baseUrl});loader.define("lwr/loader/v/0_10_0",["exports"],(e=>{Object.assign(e,{define:loader.define.bind(loader),load:loader.load.bind(loader)})})),await loader.registerImportMappings({imports:imports,index:index},[bootstrapModule]),globalThis.LWR=Object.freeze({define:loader.define.bind(loader)}),LWR.define("lwr/everywhereAmd/v/0_10_0",["exports","lwr/vault/v/0_10_0"],(function(e,t){async function r(e,r="javascript"){const o=t.getAuthInfo();return o?fetch(e,{headers:{Accept:`application/${r}`,Authorization:`Bearer ${o.access_token}`}}):null}e.authenticate=function(e){e&&t.setAuthInfo(e)},e.initAmd=function(e,t,o){t.match(/\/v5\d\.0\//)&&function(e,t,o){e.addLoaderPlugin({loadModule:async e=>r(e),loadMapping:async e=>{const o=await r(`${t}${encodeURIComponent(e)}`,"json");return o&&o.ok?o.json():null},resolveModule:e=>e&&!/\/v\/[^/]+?$/.test(e)?`${e}/v/${o}`:null})}(e,t,o)},Object.defineProperty(e,"__esModule",{value:!0})})),LWR.define("lwr/vault/v/0_10_0",["exports"],(function(e){let t;e.getAuthInfo=function(){return t},e.setAuthInfo=function(e){t=e},Object.defineProperty(e,"__esModule",{value:!0})}));const{initAmd:initAmd,authenticate:authenticate}=await loader.load(bootstrapModule);async function createComponent(e,t,r={},o){const{createComponent:n}=await loader.load(bootstrapModule.replace("Amd",""));return n(e,t,r,o)}initAmd(loader.services,_optionalChain([endpoints,"optionalAccess",e=>e.uris,"access",e=>e.mapping]),"0_10_0");export{authenticate,createComponent};
|
|
@@ -20,7 +20,7 @@ function getConfiguration(options) {
|
|
|
20
20
|
: `${ORIGIN}${PREFIX}/module/${format}/${POSTFIX}/mi/`;
|
|
21
21
|
|
|
22
22
|
// Component specifiers and URIs
|
|
23
|
-
const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_10_0
|
|
23
|
+
const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_10_0`;
|
|
24
24
|
const BOOT_URI = `${ENDPOINT}${encodeURIComponent(BOOT_MODULE)}/latest${debug ? '?debug' : ''}`;
|
|
25
25
|
|
|
26
26
|
// Client Bootstrap Config
|
|
@@ -52,7 +52,7 @@ function getConfiguration(options) {
|
|
|
52
52
|
* SPDX-License-Identifier: MIT
|
|
53
53
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
54
54
|
*/
|
|
55
|
-
/* LWR Module Loader v0.10.0
|
|
55
|
+
/* LWR Module Loader v0.10.0 */
|
|
56
56
|
const templateRegex = /\{([0-9]+)\}/g;
|
|
57
57
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
58
|
function templateString(template, args) {
|
|
@@ -625,7 +625,69 @@ function evaluateHandleStaleModuleHooks(
|
|
|
625
625
|
}
|
|
626
626
|
}
|
|
627
627
|
|
|
628
|
-
const MODULE_LOAD_TIMEOUT_TIMER =
|
|
628
|
+
const MODULE_LOAD_TIMEOUT_TIMER = 60 * 1000; // 1m
|
|
629
|
+
|
|
630
|
+
/*!
|
|
631
|
+
* Copyright (C) 2023 salesforce.com, inc.
|
|
632
|
+
*/
|
|
633
|
+
// @ts-ignore: Prevent cannot find name 'trustedTypes' error.
|
|
634
|
+
const SUPPORTS_TRUSTED_TYPES = typeof trustedTypes !== 'undefined';
|
|
635
|
+
function createTrustedTypesPolicy(name, options) {
|
|
636
|
+
// @ts-ignore: Prevent cannot find name 'trustedTypes' error.
|
|
637
|
+
return trustedTypes.createPolicy(name, options);
|
|
638
|
+
}
|
|
639
|
+
function createFallbackPolicy(_name, options) {
|
|
640
|
+
return options;
|
|
641
|
+
}
|
|
642
|
+
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/trusted-types
|
|
643
|
+
const createPolicy = SUPPORTS_TRUSTED_TYPES ? createTrustedTypesPolicy : createFallbackPolicy;
|
|
644
|
+
const policyOptions = {
|
|
645
|
+
createHTML(value) {
|
|
646
|
+
return value;
|
|
647
|
+
},
|
|
648
|
+
createScript(value) {
|
|
649
|
+
return value;
|
|
650
|
+
},
|
|
651
|
+
createScriptURL(value) {
|
|
652
|
+
return value;
|
|
653
|
+
}
|
|
654
|
+
};
|
|
655
|
+
// Temporarily surround in try-catch until migration to AMD run.
|
|
656
|
+
try {
|
|
657
|
+
createPolicy('default', {
|
|
658
|
+
createHTML(dirty) {
|
|
659
|
+
// Treat null & undefined separately
|
|
660
|
+
if (dirty === 'null' || dirty === 'undefined') {
|
|
661
|
+
return dirty;
|
|
662
|
+
}
|
|
663
|
+
return dirty;
|
|
664
|
+
},
|
|
665
|
+
// Ignore typescript type validation for this policy.
|
|
666
|
+
// Returning `undefined` from a TT policy blocks usages
|
|
667
|
+
// of specific DOM sinks affected by this hook.
|
|
668
|
+
// We want to block eval and inline scripts.
|
|
669
|
+
// @ts-ignore
|
|
670
|
+
createScript(dirty) {
|
|
671
|
+
// Treat null & undefined separately
|
|
672
|
+
if (dirty === 'null' || dirty === 'undefined') {
|
|
673
|
+
return dirty;
|
|
674
|
+
}
|
|
675
|
+
// Block script evaluation
|
|
676
|
+
return undefined;
|
|
677
|
+
},
|
|
678
|
+
createScriptURL(dirty) {
|
|
679
|
+
// Treat null & undefined separately
|
|
680
|
+
if (dirty === 'null' || dirty === 'undefined') {
|
|
681
|
+
return dirty;
|
|
682
|
+
}
|
|
683
|
+
return dirty;
|
|
684
|
+
}
|
|
685
|
+
});
|
|
686
|
+
} catch (_unused) {
|
|
687
|
+
// swallow
|
|
688
|
+
}
|
|
689
|
+
const trusted = createPolicy('trusted', policyOptions);
|
|
690
|
+
/*! version: 0.19.10 */
|
|
629
691
|
|
|
630
692
|
/* global console,process */
|
|
631
693
|
|
|
@@ -694,7 +756,7 @@ async function evaluateLoadHookResponse(response, id) {
|
|
|
694
756
|
code = `${code}\n//# sourceURL=${id}`; // append sourceURL for debugging
|
|
695
757
|
try {
|
|
696
758
|
// TODO eval source maps for debugging
|
|
697
|
-
eval(code);
|
|
759
|
+
eval(trusted.createScript(code));
|
|
698
760
|
} catch (e) {
|
|
699
761
|
throw new LoaderError(FAIL_LOAD, [id]);
|
|
700
762
|
}
|
|
@@ -818,6 +880,9 @@ class ModuleRegistry {
|
|
|
818
880
|
// eslint-disable-next-line no-await-in-loop
|
|
819
881
|
result = isResponseAPromise(response) ? await response : response;
|
|
820
882
|
}
|
|
883
|
+
if (!this.isValidResolveResponse(result)) {
|
|
884
|
+
throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);
|
|
885
|
+
}
|
|
821
886
|
|
|
822
887
|
// if result is not null, attempt resolution
|
|
823
888
|
if (result !== null) {
|
|
@@ -1346,6 +1411,12 @@ class ModuleRegistry {
|
|
|
1346
1411
|
this.handleStaleModuleHook = [handleStaleModule];
|
|
1347
1412
|
}
|
|
1348
1413
|
}
|
|
1414
|
+
|
|
1415
|
+
isValidResolveResponse(res) {
|
|
1416
|
+
return (
|
|
1417
|
+
res === null || typeof res === 'string' || (res && typeof (res ).url === 'string')
|
|
1418
|
+
);
|
|
1419
|
+
}
|
|
1349
1420
|
}
|
|
1350
1421
|
|
|
1351
1422
|
/**
|
|
@@ -1492,7 +1563,7 @@ const { bootstrapModule, endpoints, baseUrl, imports, index } = configuration;
|
|
|
1492
1563
|
|
|
1493
1564
|
// Initialize the AMD loader (its code is bundled into the LWR Everywhere module)
|
|
1494
1565
|
const loader = new Loader({ endpoints, baseUrl });
|
|
1495
|
-
loader.define('lwr/loader/v/0_10_0
|
|
1566
|
+
loader.define('lwr/loader/v/0_10_0', ['exports'], (exports) => {
|
|
1496
1567
|
Object.assign(exports, {
|
|
1497
1568
|
define: loader.define.bind(loader),
|
|
1498
1569
|
load: loader.load.bind(loader),
|
|
@@ -1502,12 +1573,12 @@ await loader.registerImportMappings({ imports, index }, [bootstrapModule]);
|
|
|
1502
1573
|
(globalThis ).LWR = Object.freeze({ define: loader.define.bind(loader) });
|
|
1503
1574
|
|
|
1504
1575
|
// Define preload modules (ie: ABS, vault, etc) BEFORE loading them
|
|
1505
|
-
LWR.define('lwr/everywhereAmd/v/0_10_0
|
|
1576
|
+
LWR.define('lwr/everywhereAmd/v/0_10_0', ['exports', 'lwr/vault/v/0_10_0'], (function (exports, _0_10_0) {
|
|
1506
1577
|
// IMPORTANT: Do not add any static imports to this file that are not bundled with the amd-client
|
|
1507
1578
|
|
|
1508
1579
|
// Do an OAuthed fetch
|
|
1509
1580
|
async function authFetch(url, accept = 'javascript') {
|
|
1510
|
-
const authInfo =
|
|
1581
|
+
const authInfo = _0_10_0.getAuthInfo();
|
|
1511
1582
|
if (authInfo) {
|
|
1512
1583
|
return fetch(url, {
|
|
1513
1584
|
headers: {
|
|
@@ -1557,7 +1628,7 @@ LWR.define('lwr/everywhereAmd/v/0_10_0-alpha_9', ['exports', 'lwr/vault/v/0_10_0
|
|
|
1557
1628
|
function authenticate(authInfo) {
|
|
1558
1629
|
// Put OAuth info into the vault
|
|
1559
1630
|
if (authInfo) {
|
|
1560
|
-
|
|
1631
|
+
_0_10_0.setAuthInfo(authInfo);
|
|
1561
1632
|
}
|
|
1562
1633
|
}
|
|
1563
1634
|
|
|
@@ -1567,7 +1638,7 @@ LWR.define('lwr/everywhereAmd/v/0_10_0-alpha_9', ['exports', 'lwr/vault/v/0_10_0
|
|
|
1567
1638
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
1568
1639
|
|
|
1569
1640
|
}));
|
|
1570
|
-
LWR.define('lwr/vault/v/0_10_0
|
|
1641
|
+
LWR.define('lwr/vault/v/0_10_0', ['exports'], (function (exports) {
|
|
1571
1642
|
// Credential vault for storing setters and subscribers for OAuth info
|
|
1572
1643
|
// This module is a SINGLETON and must be excluded from ESM bundling
|
|
1573
1644
|
|
|
@@ -1591,7 +1662,7 @@ LWR.define('lwr/vault/v/0_10_0-alpha_9', ['exports'], (function (exports) {
|
|
|
1591
1662
|
|
|
1592
1663
|
// Set up the AMD loader hooks for OAuth
|
|
1593
1664
|
const { initAmd, authenticate } = await loader.load(bootstrapModule);
|
|
1594
|
-
initAmd(loader.services, _optionalChain([endpoints, 'optionalAccess', _ => _.uris, 'access', _2 => _2.mapping]), '0_10_0
|
|
1665
|
+
initAmd(loader.services, _optionalChain([endpoints, 'optionalAccess', _ => _.uris, 'access', _2 => _2.mapping]), '0_10_0');
|
|
1595
1666
|
|
|
1596
1667
|
// Wrap the createComponent API to allow proper ordering of module definitions:
|
|
1597
1668
|
// 1. LWRE module bundle (this): lwr/loader, lwr/everywhereAmd, lwr/vault
|
|
@@ -52,7 +52,7 @@ function getConfiguration(options) {
|
|
|
52
52
|
* SPDX-License-Identifier: MIT
|
|
53
53
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
54
54
|
*/
|
|
55
|
-
/* LWR Module Loader v0.10.0
|
|
55
|
+
/* LWR Module Loader v0.10.0 */
|
|
56
56
|
const templateRegex = /\{([0-9]+)\}/g;
|
|
57
57
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
58
|
function templateString(template, args) {
|
|
@@ -625,7 +625,69 @@ function evaluateHandleStaleModuleHooks(
|
|
|
625
625
|
}
|
|
626
626
|
}
|
|
627
627
|
|
|
628
|
-
const MODULE_LOAD_TIMEOUT_TIMER =
|
|
628
|
+
const MODULE_LOAD_TIMEOUT_TIMER = 60 * 1000; // 1m
|
|
629
|
+
|
|
630
|
+
/*!
|
|
631
|
+
* Copyright (C) 2023 salesforce.com, inc.
|
|
632
|
+
*/
|
|
633
|
+
// @ts-ignore: Prevent cannot find name 'trustedTypes' error.
|
|
634
|
+
const SUPPORTS_TRUSTED_TYPES = typeof trustedTypes !== 'undefined';
|
|
635
|
+
function createTrustedTypesPolicy(name, options) {
|
|
636
|
+
// @ts-ignore: Prevent cannot find name 'trustedTypes' error.
|
|
637
|
+
return trustedTypes.createPolicy(name, options);
|
|
638
|
+
}
|
|
639
|
+
function createFallbackPolicy(_name, options) {
|
|
640
|
+
return options;
|
|
641
|
+
}
|
|
642
|
+
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/trusted-types
|
|
643
|
+
const createPolicy = SUPPORTS_TRUSTED_TYPES ? createTrustedTypesPolicy : createFallbackPolicy;
|
|
644
|
+
const policyOptions = {
|
|
645
|
+
createHTML(value) {
|
|
646
|
+
return value;
|
|
647
|
+
},
|
|
648
|
+
createScript(value) {
|
|
649
|
+
return value;
|
|
650
|
+
},
|
|
651
|
+
createScriptURL(value) {
|
|
652
|
+
return value;
|
|
653
|
+
}
|
|
654
|
+
};
|
|
655
|
+
// Temporarily surround in try-catch until migration to AMD run.
|
|
656
|
+
try {
|
|
657
|
+
createPolicy('default', {
|
|
658
|
+
createHTML(dirty) {
|
|
659
|
+
// Treat null & undefined separately
|
|
660
|
+
if (dirty === 'null' || dirty === 'undefined') {
|
|
661
|
+
return dirty;
|
|
662
|
+
}
|
|
663
|
+
return dirty;
|
|
664
|
+
},
|
|
665
|
+
// Ignore typescript type validation for this policy.
|
|
666
|
+
// Returning `undefined` from a TT policy blocks usages
|
|
667
|
+
// of specific DOM sinks affected by this hook.
|
|
668
|
+
// We want to block eval and inline scripts.
|
|
669
|
+
// @ts-ignore
|
|
670
|
+
createScript(dirty) {
|
|
671
|
+
// Treat null & undefined separately
|
|
672
|
+
if (dirty === 'null' || dirty === 'undefined') {
|
|
673
|
+
return dirty;
|
|
674
|
+
}
|
|
675
|
+
// Block script evaluation
|
|
676
|
+
return undefined;
|
|
677
|
+
},
|
|
678
|
+
createScriptURL(dirty) {
|
|
679
|
+
// Treat null & undefined separately
|
|
680
|
+
if (dirty === 'null' || dirty === 'undefined') {
|
|
681
|
+
return dirty;
|
|
682
|
+
}
|
|
683
|
+
return dirty;
|
|
684
|
+
}
|
|
685
|
+
});
|
|
686
|
+
} catch (_unused) {
|
|
687
|
+
// swallow
|
|
688
|
+
}
|
|
689
|
+
const trusted = createPolicy('trusted', policyOptions);
|
|
690
|
+
/*! version: 0.19.10 */
|
|
629
691
|
|
|
630
692
|
/* global console,process */
|
|
631
693
|
|
|
@@ -694,7 +756,7 @@ async function evaluateLoadHookResponse(response, id) {
|
|
|
694
756
|
code = `${code}\n//# sourceURL=${id}`; // append sourceURL for debugging
|
|
695
757
|
try {
|
|
696
758
|
// TODO eval source maps for debugging
|
|
697
|
-
eval(code);
|
|
759
|
+
eval(trusted.createScript(code));
|
|
698
760
|
} catch (e) {
|
|
699
761
|
throw new LoaderError(FAIL_LOAD, [id]);
|
|
700
762
|
}
|
|
@@ -818,6 +880,9 @@ class ModuleRegistry {
|
|
|
818
880
|
// eslint-disable-next-line no-await-in-loop
|
|
819
881
|
result = isResponseAPromise(response) ? await response : response;
|
|
820
882
|
}
|
|
883
|
+
if (!this.isValidResolveResponse(result)) {
|
|
884
|
+
throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);
|
|
885
|
+
}
|
|
821
886
|
|
|
822
887
|
// if result is not null, attempt resolution
|
|
823
888
|
if (result !== null) {
|
|
@@ -1346,6 +1411,12 @@ class ModuleRegistry {
|
|
|
1346
1411
|
this.handleStaleModuleHook = [handleStaleModule];
|
|
1347
1412
|
}
|
|
1348
1413
|
}
|
|
1414
|
+
|
|
1415
|
+
isValidResolveResponse(res) {
|
|
1416
|
+
return (
|
|
1417
|
+
res === null || typeof res === 'string' || (res && typeof (res ).url === 'string')
|
|
1418
|
+
);
|
|
1419
|
+
}
|
|
1349
1420
|
}
|
|
1350
1421
|
|
|
1351
1422
|
/**
|
|
@@ -1502,12 +1573,12 @@ await loader.registerImportMappings({ imports, index }, [bootstrapModule]);
|
|
|
1502
1573
|
(globalThis ).LWR = Object.freeze({ define: loader.define.bind(loader) });
|
|
1503
1574
|
|
|
1504
1575
|
// Define preload modules (ie: ABS, vault, etc) BEFORE loading them
|
|
1505
|
-
LWR.define('lwr/everywhereAmd/v/0_0_1', ['exports', 'lwr/vault/v/0_0_1'], (function (exports,
|
|
1576
|
+
LWR.define('lwr/everywhereAmd/v/0_0_1', ['exports', 'lwr/vault/v/0_0_1'], (function (exports, _0_10_0) {
|
|
1506
1577
|
// IMPORTANT: Do not add any static imports to this file that are not bundled with the amd-client
|
|
1507
1578
|
|
|
1508
1579
|
// Do an OAuthed fetch
|
|
1509
1580
|
async function authFetch(url, accept = 'javascript') {
|
|
1510
|
-
const authInfo =
|
|
1581
|
+
const authInfo = _0_10_0.getAuthInfo();
|
|
1511
1582
|
if (authInfo) {
|
|
1512
1583
|
return fetch(url, {
|
|
1513
1584
|
headers: {
|
|
@@ -1557,7 +1628,7 @@ LWR.define('lwr/everywhereAmd/v/0_0_1', ['exports', 'lwr/vault/v/0_0_1'], (funct
|
|
|
1557
1628
|
function authenticate(authInfo) {
|
|
1558
1629
|
// Put OAuth info into the vault
|
|
1559
1630
|
if (authInfo) {
|
|
1560
|
-
|
|
1631
|
+
_0_10_0.setAuthInfo(authInfo);
|
|
1561
1632
|
}
|
|
1562
1633
|
}
|
|
1563
1634
|
|