@lwrjs/everywhere 0.9.0-alpha.9 → 0.9.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.
Files changed (43) hide show
  1. package/README.md +1 -1
  2. package/build/__generated_site_amd_modules__/1/application/amd/l/en-US/ai/amd-bootstrap/configuration/ci/-/-/s/9c07e4a986679d89bf69e66fe60ce615/config.js +10 -0
  3. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/@lwrjs/app-service/amd-bootstrap/module/amd/v/0_9_0/s/c40e6caf07454ce13961de8ca76ab7f0/@lwrjs_app-service_amd-bootstrap_module_amd.js +18 -0
  4. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwc/v/2_38_1/s/8cf6b94d9c0b398c70c97fdca2759caa/lwc.js +8934 -0
  5. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/everywhereAmd/v/0_9_0/s/c538071acf5bde58e816967a14c465c3/lwr_everywhereAmd.js +66 -0
  6. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/init/v/0_9_0/s/206e6e0af6f019fdfd86d87d56331bc2/lwr_init.js +97 -0
  7. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/loader/v/{0_9_0-alpha_9/s/07df3ed331f5f6b3c21336c94dac7c0b → 0_9_0/s/37491c0be6765e2cd302cf146e9d624a}/lwr_loader.js +362 -137
  8. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/metrics/v/0_9_0/s/3426e42c3e22ce07ab2adc62c4c523a0/lwr_metrics.js +66 -0
  9. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/profiler/v/0_9_0/s/e25f3b0b8b5c096acebf847d0a83ea62/lwr_profiler.js +68 -0
  10. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/vault/v/0_9_0/s/c92abd8c1fec2d7eff62e4b097abbe14/lwr_vault.js +21 -0
  11. package/build/__generated_site_amd_modules__/1/resource/amd/lwr-error-shim.js/v/{0_9_0-alpha_9 → 0_9_0/lwr-error-shim.js} +1 -1
  12. package/build/__generated_site_amd_modules__/1/resource/amd/lwr-loader-shim.bundle.js/v/0_9_0/lwr-loader-shim.bundle.js +1547 -0
  13. package/build/assets/amd/lwr-everywhere-debug.js +39 -27
  14. package/build/assets/amd/lwr-everywhere-min.js +1 -1
  15. package/build/assets/amd/lwr-everywhere.js +39 -27
  16. package/build/assets/core/lwr-everywhere-debug.js +36 -24
  17. package/build/assets/core/lwr-everywhere-min.js +1 -1
  18. package/build/assets/core/lwr-everywhere.js +36 -24
  19. package/build/assets/esm/lwr-everywhere-debug.js +1 -1
  20. package/build/assets/esm/lwr-everywhere-min.js +1 -1
  21. package/build/assets/esm/lwr-everywhere.js +1 -1
  22. package/build/modules/@salesforce/lds-default-luvio/lds-default-luvio.js +11 -7
  23. package/build/modules/lwr/everywhere/everywhere.js +6 -7
  24. package/build/modules/lwr/everywhereAmd/everywhereAmd.js +9 -11
  25. package/build/modules/lwr/everywhereEsm/everywhereEsm.js +1 -2
  26. package/build/modules/lwr/host/host.js +23 -27
  27. package/build/modules/lwr/setupLDS/network.js +9 -17
  28. package/build/modules/lwr/setupLDS/setupLDS.js +6 -4
  29. package/build/modules/lwr/setupNodeLDS/network.js +9 -17
  30. package/build/modules/lwr/setupNodeLDS/setupNodeLDS.js +3 -1
  31. package/build/modules/lwr/vault/vault.js +3 -1
  32. package/package.json +11 -8
  33. package/build/__generated_site_amd_modules__/1/application/amd/l/en-US/ai/amd-bootstrap/configuration/ci/-/-/s/102a7c627b0f61cba691a7fa94d6a856/config.js +0 -10
  34. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/@lwrjs/app-service/amd-bootstrap/module/amd/v/0_9_0-alpha_9/s/c40e6caf07454ce13961de8ca76ab7f0/@lwrjs_app-service_amd-bootstrap_module_amd.js +0 -14
  35. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwc/v/2_33_0/s/90a5f16131da45cef1653112862ca9dc/lwc.js +0 -7090
  36. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/everywhereAmd/v/0_9_0-alpha_9/s/c538071acf5bde58e816967a14c465c3/lwr_everywhereAmd.js +0 -48
  37. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/init/v/0_9_0-alpha_9/s/6258bcb20cc2d5d6a9f3c5a6f9d0acaf/lwr_init.js +0 -58
  38. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/metrics/v/0_9_0-alpha_9/s/dfbc827104d50ff7d16b59c9d0e06aca/lwr_metrics.js +0 -56
  39. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/profiler/v/0_9_0-alpha_9/s/5a10236d8c52bc9f6dee22875cd7016d/lwr_profiler.js +0 -51
  40. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/vault/v/0_9_0-alpha_9/s/c92abd8c1fec2d7eff62e4b097abbe14/lwr_vault.js +0 -13
  41. package/build/__generated_site_amd_modules__/1/resource/amd/lwr-loader-shim.js/v/0_9_0-alpha_9 +0 -311
  42. package/build/__generated_site_amd_modules__/en-US/index.html +0 -26
  43. package/build/__generated_site_amd_modules__/index.html +0 -26
@@ -18,7 +18,7 @@ function getConfiguration(options) {
18
18
  ? `${ORIGIN}${PREFIX}/bundle/${format}/${POSTFIX}${BUNDLE_ID}-0/module/mi/`
19
19
  : `${ORIGIN}${PREFIX}/module/${format}/${POSTFIX}/mi/`;
20
20
  // Component specifiers and URIs
21
- const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_9_0-alpha_9`;
21
+ const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_9_0`;
22
22
  const BOOT_URI = `${ENDPOINT}${encodeURIComponent(BOOT_MODULE)}/latest${debug ? '?debug' : ''}`;
23
23
  // Client Bootstrap Config
24
24
  const config = {
@@ -48,7 +48,7 @@ function getConfiguration(options) {
48
48
  * SPDX-License-Identifier: MIT
49
49
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
50
50
  */
51
- /* LWR Module Loader v0.9.0-alpha.9 */
51
+ /* LWR Module Loader v0.9.0 */
52
52
  const templateRegex = /\{([0-9]+)\}/g;
53
53
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
54
  function templateString(template, args) {
@@ -146,7 +146,7 @@ const STALE_HOOK_ERROR = Object.freeze({
146
146
  const MODULE_ALREADY_LOADED = Object.freeze({
147
147
  code: 3017,
148
148
  level: 0,
149
- message: 'Marking module(s) as externally loaded, but they are already loaded: {0}',
149
+ message: 'Marking module(s) as externally loaded, but they are already loaded:',
150
150
  });
151
151
  const FAIL_HOOK_LOAD = Object.freeze({
152
152
  code: 3018,
@@ -345,11 +345,13 @@ if (hasDocument) {
345
345
 
346
346
  // Bootstrap / shim
347
347
 
348
+ // Loader: modules
348
349
  const LOADER_PREFIX = 'lwr.loader.';
349
350
  const MODULE_DEFINE = `${LOADER_PREFIX}module.define`;
350
351
  const MODULE_FETCH = `${LOADER_PREFIX}module.fetch`;
351
352
  const MODULE_ERROR = `${LOADER_PREFIX}module.error`;
352
353
 
354
+ // Loader: mappings
353
355
  const MAPPINGS_FETCH = `${LOADER_PREFIX}mappings.fetch`;
354
356
  const MAPPINGS_ERROR = `${LOADER_PREFIX}mappings.error`;
355
357
 
@@ -810,12 +812,8 @@ class ModuleRegistry {
810
812
  * @param modules - list of module identifiers
811
813
  */
812
814
  registerExternalModules(modules) {
813
- const alreadyRegistered = [];
814
815
  modules.map((id) => {
815
- if (this.namedDefineRegistry.has(id)) {
816
- alreadyRegistered.push(id);
817
- }
818
- else {
816
+ if (!this.namedDefineRegistry.has(id)) {
819
817
  let resolveExternal;
820
818
  let timer;
821
819
  const moduleDefPromise = new Promise((resolve, reject) => {
@@ -839,11 +837,11 @@ class ModuleRegistry {
839
837
  };
840
838
  this.namedDefineRegistry.set(id, moduleDef);
841
839
  }
840
+ else if (process.env.NODE_ENV !== 'production' && hasConsole) {
841
+ // eslint-disable-next-line lwr/no-unguarded-apis
842
+ console.warn(MODULE_ALREADY_LOADED.message, id);
843
+ }
842
844
  });
843
- // throw error for modules that were already registered
844
- if (alreadyRegistered.length) {
845
- throw new LoaderError(MODULE_ALREADY_LOADED, [alreadyRegistered.join(', ')]);
846
- }
847
845
  }
848
846
  getImportMetadataResolver() {
849
847
  return this.resolver;
@@ -985,7 +983,7 @@ class ModuleRegistry {
985
983
  moduleDefault = { default: moduleDefault };
986
984
  // __defaultInterop is ONLY used to support backwards compatibility
987
985
  // of importing default exports the "wrong" way (when not using named exports).
988
- // See https://github.com/salesforce/lwr/pull/816
986
+ // See https://github.com/salesforce-experience-platform-emu/lwr/pull/816
989
987
  Object.defineProperty(moduleDefault, '__defaultInterop', { value: true });
990
988
  }
991
989
  // if no return value, then we are using the exports object
@@ -1207,7 +1205,7 @@ class Loader {
1207
1205
  const appId = match && match[1];
1208
1206
  config.appMetadata.appId = appId;
1209
1207
  }
1210
- // TODO: https://github.com/salesforce/lwr/issues/1087
1208
+ // TODO: https://github.com/salesforce-experience-platform-emu/lwr/issues/1087
1211
1209
  this.services = Object.freeze({
1212
1210
  addLoaderPlugin: this.registry.addLoaderPlugin.bind(this.registry),
1213
1211
  handleStaleModule: this.registry.registerHandleStaleModuleHook.bind(this.registry),
@@ -1285,7 +1283,7 @@ const configuration = getConfiguration(configOptions);
1285
1283
  const { bootstrapModule, endpoints, baseUrl, imports, index } = configuration;
1286
1284
  // Initialize the AMD loader (its code is bundled into the LWR Everywhere module)
1287
1285
  const loader = new Loader({ endpoints, baseUrl });
1288
- loader.define('lwr/loader/v/0_9_0-alpha_9', ['exports'], (exports) => {
1286
+ loader.define('lwr/loader/v/0_9_0', ['exports'], (exports) => {
1289
1287
  Object.assign(exports, {
1290
1288
  define: loader.define.bind(loader),
1291
1289
  load: loader.load.bind(loader),
@@ -1294,9 +1292,11 @@ loader.define('lwr/loader/v/0_9_0-alpha_9', ['exports'], (exports) => {
1294
1292
  await loader.registerImportMappings({ imports, index }, [bootstrapModule]);
1295
1293
  globalThis.LWR = Object.freeze({ define: loader.define.bind(loader) });
1296
1294
  // Define preload modules (ie: ABS, vault, etc) BEFORE loading them
1297
- LWR.define("lwr/everywhereAmd/v/0_9_0-alpha_9", ["exports", "lwr/vault/v/0_9_0-alpha_9"], function (exports, _0_9_0Alpha_9) {
1298
- async function authFetch(url, accept = "javascript") {
1299
- const authInfo = _0_9_0Alpha_9.getAuthInfo();
1295
+ LWR.define('lwr/everywhereAmd/v/0_9_0', ['exports', 'lwr/vault/v/0_9_0'], function (exports, _0_9_0) {
1296
+ // IMPORTANT: Do not add any static imports to this file that are not bundled with the amd-client
1297
+ // Do an OAuthed fetch
1298
+ async function authFetch(url, accept = 'javascript') {
1299
+ const authInfo = _0_9_0.getAuthInfo();
1300
1300
  if (authInfo) {
1301
1301
  return fetch(url, {
1302
1302
  headers: {
@@ -1305,44 +1305,56 @@ LWR.define("lwr/everywhereAmd/v/0_9_0-alpha_9", ["exports", "lwr/vault/v/0_9_0-a
1305
1305
  }
1306
1306
  });
1307
1307
  }
1308
- return null;
1308
+ return null; // defer to loader
1309
1309
  }
1310
+ // Add a hook for adding OAuth headers to module and mapping requests
1311
+ // Workaround: core does not have proper versioning; replace all versions with 0_0_1
1310
1312
  function everywhereHooks(serviceAPI, mappingEndpoint, coreVersion) {
1311
1313
  serviceAPI.addLoaderPlugin({
1312
1314
  loadModule: async (url) => {
1313
1315
  return authFetch(url);
1314
1316
  },
1315
1317
  loadMapping: async (specifier) => {
1316
- const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, "json");
1318
+ const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, 'json');
1317
1319
  if (res && res.ok) {
1318
1320
  return res.json();
1319
1321
  }
1320
1322
  return null;
1321
1323
  },
1322
- resolveModule: (specifier) => {
1324
+ resolveModule: specifier => {
1325
+ // Workaround W-8010259 (dynamic imports without versions)
1326
+ // by adding a default version to version-less specifiers
1323
1327
  if (specifier && !/\/v\/[^/]+?$/.test(specifier)) {
1324
1328
  return `${specifier}/v/${coreVersion}`;
1325
1329
  }
1326
- return null;
1330
+ return null; // defer to loader
1327
1331
  }
1328
1332
  });
1329
1333
  }
1330
1334
  function initAmd(services, mappingEndpoint, coreVersion) {
1335
+ // Initialize the loader hooks for LWR-S endpoints
1331
1336
  if (mappingEndpoint.match(/\/v5\d\.0\//)) {
1332
1337
  everywhereHooks(services, mappingEndpoint, coreVersion);
1333
1338
  }
1334
1339
  }
1340
+ // Export the LWRE authenticate() API
1341
+ // This is a duplicate of the function exported from "lwr/everywhere"
1342
+ // because it MUST be bundled into the LWRE module via "lwr/everywhereAmd"
1335
1343
  function authenticate(authInfo) {
1344
+ // Put OAuth info into the vault
1336
1345
  if (authInfo) {
1337
- _0_9_0Alpha_9.setAuthInfo(authInfo);
1346
+ _0_9_0.setAuthInfo(authInfo);
1338
1347
  }
1339
1348
  }
1340
1349
  exports.authenticate = authenticate;
1341
1350
  exports.initAmd = initAmd;
1342
- Object.defineProperty(exports, "__esModule", { value: true });
1351
+ Object.defineProperty(exports, '__esModule', { value: true });
1343
1352
  });
1344
- LWR.define("lwr/vault/v/0_9_0-alpha_9", ["exports"], function (exports) {
1353
+ LWR.define('lwr/vault/v/0_9_0', ['exports'], function (exports) {
1354
+ // Credential vault for storing setters and subscribers for OAuth info
1355
+ // This module is a SINGLETON and must be excluded from ESM bundling
1345
1356
  let authInfo;
1357
+ // Get and set the OAuth info
1346
1358
  function getAuthInfo() {
1347
1359
  return authInfo;
1348
1360
  }
@@ -1351,11 +1363,11 @@ LWR.define("lwr/vault/v/0_9_0-alpha_9", ["exports"], function (exports) {
1351
1363
  }
1352
1364
  exports.getAuthInfo = getAuthInfo;
1353
1365
  exports.setAuthInfo = setAuthInfo;
1354
- Object.defineProperty(exports, "__esModule", { value: true });
1366
+ Object.defineProperty(exports, '__esModule', { value: true });
1355
1367
  });
1356
1368
  // Set up the AMD loader hooks for OAuth
1357
1369
  const { initAmd, authenticate } = await loader.load(bootstrapModule);
1358
- initAmd(loader.services, endpoints?.uris.mapping, '0_9_0-alpha_9');
1370
+ initAmd(loader.services, endpoints?.uris.mapping, '0_9_0');
1359
1371
  // Wrap the createComponent API to allow proper ordering of module definitions:
1360
1372
  // 1. LWRE module bundle (this): lwr/loader, lwr/everywhereAmd, lwr/vault
1361
1373
  // 2. lwr/everywhere (deps: lwc, synthetic shadow, lwr/host, etc)
@@ -1 +1 @@
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",h=s?`${d}${c}/bundle/${t}/${u}${p}-0/module/mi/`:`${d}${c}/module/${t}/${u}/mi/`,f=`lwr/everywhere${"esm"===t?"Esm":"Amd"}/v/0_9_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}/${u}${s?p:""}/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: {0}"}),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{constructor(e,t){this.importURICache=new Map,this.pendingURICache=new Map,this.loadMappingHooks=[],this.config=e,this.invalidationCallback=t}addLoadMappingHook(e){this.loadMappingHooks.push(e)}getMappingEndpoint(){return this.config.endpoints&&this.config.endpoints.uris?this.config.endpoints.uris.mapping:void 0}getModifiersAsUrlParams(){const e=this.config.endpoints?this.config.endpoints.modifiers:void 0;if(e){return`?${Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}`}return""}buildMappingUrl(e){return`${this.getMappingEndpoint()}${encodeURIComponent(e)}${this.getModifiersAsUrlParams()}`}getBaseUrl(){return this.config.baseUrl}registerImportMappings(e,t){if(!t||0===t.length){const r=e?JSON.stringify(e):"undefined";throw new LoaderError(BAD_IMPORT_METADATA,[r,t?"[]":"undefined"])}if(!e)throw new LoaderError(BAD_IMPORT_METADATA,["undefined",JSON.stringify(t)]);if(!e.imports||0===Object.keys(e.imports).length)throw new LoaderError(BAD_IMPORT_METADATA,[JSON.stringify(e),JSON.stringify(t)]);const r=e.index||{};for(const[o,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){this.namedDefineRegistry=new Map,this.moduleRegistry=new Map,this.aliases=new Map,this.profiler=e.profiler,this.resolver=new ImportMetadataResolver(e,this.importMetadataInvalidationCallback.bind(this))}async load(e,t){const r=await this.resolve(e,t),o=this.getModuleRecord(r,e);return o.evaluated?o.module:(o.evaluationPromise||(o.evaluationPromise=this.topLevelEvaluation(o)),o.evaluationPromise)}async resolve(e,t){const r=this.resolver.getBaseUrl();let o,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){const t=[];if(e.map((e=>{if(this.namedDefineRegistry.has(e))t.push(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)}})),t.length)throw new LoaderError(MODULE_ALREADY_LOADED,[t.join(", ")])}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)}}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_9_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_9_0-alpha_9",["exports","lwr/vault/v/0_9_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_9_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,endpoints?.uris.mapping,"0_9_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_9_0`,g=`${f}${encodeURIComponent(h)}/latest${a?"?debug":""}`,m={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&&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{constructor(e,t){this.importURICache=new Map,this.pendingURICache=new Map,this.loadMappingHooks=[],this.config=e,this.invalidationCallback=t}addLoadMappingHook(e){this.loadMappingHooks.push(e)}getMappingEndpoint(){return this.config.endpoints&&this.config.endpoints.uris?this.config.endpoints.uris.mapping:void 0}getModifiersAsUrlParams(){const e=this.config.endpoints?this.config.endpoints.modifiers:void 0;if(e){return`?${Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}`}return""}buildMappingUrl(e){return`${this.getMappingEndpoint()}${encodeURIComponent(e)}${this.getModifiersAsUrlParams()}`}getBaseUrl(){return this.config.baseUrl}registerImportMappings(e,t){if(!t||0===t.length){const r=e?JSON.stringify(e):"undefined";throw new LoaderError(BAD_IMPORT_METADATA,[r,t?"[]":"undefined"])}if(!e)throw new LoaderError(BAD_IMPORT_METADATA,["undefined",JSON.stringify(t)]);if(!e.imports||0===Object.keys(e.imports).length)throw new LoaderError(BAD_IMPORT_METADATA,[JSON.stringify(e),JSON.stringify(t)]);const r=e.index||{};for(const[o,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){this.namedDefineRegistry=new Map,this.moduleRegistry=new Map,this.aliases=new Map,this.profiler=e.profiler,this.resolver=new ImportMetadataResolver(e,this.importMetadataInvalidationCallback.bind(this))}async load(e,t){const r=await this.resolve(e,t),o=this.getModuleRecord(r,e);return o.evaluated?o.module:(o.evaluationPromise||(o.evaluationPromise=this.topLevelEvaluation(o)),o.evaluationPromise)}async resolve(e,t){const r=this.resolver.getBaseUrl();let o,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)}}))}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)}}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_9_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_9_0",["exports","lwr/vault/v/0_9_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_9_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,endpoints?.uris.mapping,"0_9_0");export{authenticate,createComponent};
@@ -18,7 +18,7 @@ function getConfiguration(options) {
18
18
  ? `${ORIGIN}${PREFIX}/bundle/${format}/${POSTFIX}${BUNDLE_ID}-0/module/mi/`
19
19
  : `${ORIGIN}${PREFIX}/module/${format}/${POSTFIX}/mi/`;
20
20
  // Component specifiers and URIs
21
- const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_9_0-alpha_9`;
21
+ const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_9_0`;
22
22
  const BOOT_URI = `${ENDPOINT}${encodeURIComponent(BOOT_MODULE)}/latest${debug ? '?debug' : ''}`;
23
23
  // Client Bootstrap Config
24
24
  const config = {
@@ -48,7 +48,7 @@ function getConfiguration(options) {
48
48
  * SPDX-License-Identifier: MIT
49
49
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
50
50
  */
51
- /* LWR Module Loader v0.9.0-alpha.9 */
51
+ /* LWR Module Loader v0.9.0 */
52
52
  const templateRegex = /\{([0-9]+)\}/g;
53
53
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
54
  function templateString(template, args) {
@@ -146,7 +146,7 @@ const STALE_HOOK_ERROR = Object.freeze({
146
146
  const MODULE_ALREADY_LOADED = Object.freeze({
147
147
  code: 3017,
148
148
  level: 0,
149
- message: 'Marking module(s) as externally loaded, but they are already loaded: {0}',
149
+ message: 'Marking module(s) as externally loaded, but they are already loaded:',
150
150
  });
151
151
  const FAIL_HOOK_LOAD = Object.freeze({
152
152
  code: 3018,
@@ -345,11 +345,13 @@ if (hasDocument) {
345
345
 
346
346
  // Bootstrap / shim
347
347
 
348
+ // Loader: modules
348
349
  const LOADER_PREFIX = 'lwr.loader.';
349
350
  const MODULE_DEFINE = `${LOADER_PREFIX}module.define`;
350
351
  const MODULE_FETCH = `${LOADER_PREFIX}module.fetch`;
351
352
  const MODULE_ERROR = `${LOADER_PREFIX}module.error`;
352
353
 
354
+ // Loader: mappings
353
355
  const MAPPINGS_FETCH = `${LOADER_PREFIX}mappings.fetch`;
354
356
  const MAPPINGS_ERROR = `${LOADER_PREFIX}mappings.error`;
355
357
 
@@ -810,12 +812,8 @@ class ModuleRegistry {
810
812
  * @param modules - list of module identifiers
811
813
  */
812
814
  registerExternalModules(modules) {
813
- const alreadyRegistered = [];
814
815
  modules.map((id) => {
815
- if (this.namedDefineRegistry.has(id)) {
816
- alreadyRegistered.push(id);
817
- }
818
- else {
816
+ if (!this.namedDefineRegistry.has(id)) {
819
817
  let resolveExternal;
820
818
  let timer;
821
819
  const moduleDefPromise = new Promise((resolve, reject) => {
@@ -839,11 +837,11 @@ class ModuleRegistry {
839
837
  };
840
838
  this.namedDefineRegistry.set(id, moduleDef);
841
839
  }
840
+ else if (process.env.NODE_ENV !== 'production' && hasConsole) {
841
+ // eslint-disable-next-line lwr/no-unguarded-apis
842
+ console.warn(MODULE_ALREADY_LOADED.message, id);
843
+ }
842
844
  });
843
- // throw error for modules that were already registered
844
- if (alreadyRegistered.length) {
845
- throw new LoaderError(MODULE_ALREADY_LOADED, [alreadyRegistered.join(', ')]);
846
- }
847
845
  }
848
846
  getImportMetadataResolver() {
849
847
  return this.resolver;
@@ -985,7 +983,7 @@ class ModuleRegistry {
985
983
  moduleDefault = { default: moduleDefault };
986
984
  // __defaultInterop is ONLY used to support backwards compatibility
987
985
  // of importing default exports the "wrong" way (when not using named exports).
988
- // See https://github.com/salesforce/lwr/pull/816
986
+ // See https://github.com/salesforce-experience-platform-emu/lwr/pull/816
989
987
  Object.defineProperty(moduleDefault, '__defaultInterop', { value: true });
990
988
  }
991
989
  // if no return value, then we are using the exports object
@@ -1207,7 +1205,7 @@ class Loader {
1207
1205
  const appId = match && match[1];
1208
1206
  config.appMetadata.appId = appId;
1209
1207
  }
1210
- // TODO: https://github.com/salesforce/lwr/issues/1087
1208
+ // TODO: https://github.com/salesforce-experience-platform-emu/lwr/issues/1087
1211
1209
  this.services = Object.freeze({
1212
1210
  addLoaderPlugin: this.registry.addLoaderPlugin.bind(this.registry),
1213
1211
  handleStaleModule: this.registry.registerHandleStaleModuleHook.bind(this.registry),
@@ -1285,7 +1283,7 @@ const configuration = getConfiguration(configOptions);
1285
1283
  const { bootstrapModule, endpoints, baseUrl, imports, index } = configuration;
1286
1284
  // Initialize the AMD loader (its code is bundled into the LWR Everywhere module)
1287
1285
  const loader = new Loader({ endpoints, baseUrl });
1288
- loader.define('lwr/loader/v/0_9_0-alpha_9', ['exports'], (exports) => {
1286
+ loader.define('lwr/loader/v/0_9_0', ['exports'], (exports) => {
1289
1287
  Object.assign(exports, {
1290
1288
  define: loader.define.bind(loader),
1291
1289
  load: loader.load.bind(loader),
@@ -1294,9 +1292,11 @@ loader.define('lwr/loader/v/0_9_0-alpha_9', ['exports'], (exports) => {
1294
1292
  await loader.registerImportMappings({ imports, index }, [bootstrapModule]);
1295
1293
  globalThis.LWR = Object.freeze({ define: loader.define.bind(loader) });
1296
1294
  // Define preload modules (ie: ABS, vault, etc) BEFORE loading them
1297
- LWR.define("lwr/everywhereAmd/v/0_9_0-alpha_9", ["exports", "lwr/vault/v/0_9_0-alpha_9"], function (exports, _0_9_0Alpha_9) {
1298
- async function authFetch(url, accept = "javascript") {
1299
- const authInfo = _0_9_0Alpha_9.getAuthInfo();
1295
+ LWR.define('lwr/everywhereAmd/v/0_9_0', ['exports', 'lwr/vault/v/0_9_0'], function (exports, _0_9_0) {
1296
+ // IMPORTANT: Do not add any static imports to this file that are not bundled with the amd-client
1297
+ // Do an OAuthed fetch
1298
+ async function authFetch(url, accept = 'javascript') {
1299
+ const authInfo = _0_9_0.getAuthInfo();
1300
1300
  if (authInfo) {
1301
1301
  return fetch(url, {
1302
1302
  headers: {
@@ -1305,44 +1305,56 @@ LWR.define("lwr/everywhereAmd/v/0_9_0-alpha_9", ["exports", "lwr/vault/v/0_9_0-a
1305
1305
  }
1306
1306
  });
1307
1307
  }
1308
- return null;
1308
+ return null; // defer to loader
1309
1309
  }
1310
+ // Add a hook for adding OAuth headers to module and mapping requests
1311
+ // Workaround: core does not have proper versioning; replace all versions with 0_0_1
1310
1312
  function everywhereHooks(serviceAPI, mappingEndpoint, coreVersion) {
1311
1313
  serviceAPI.addLoaderPlugin({
1312
1314
  loadModule: async (url) => {
1313
1315
  return authFetch(url);
1314
1316
  },
1315
1317
  loadMapping: async (specifier) => {
1316
- const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, "json");
1318
+ const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, 'json');
1317
1319
  if (res && res.ok) {
1318
1320
  return res.json();
1319
1321
  }
1320
1322
  return null;
1321
1323
  },
1322
- resolveModule: (specifier) => {
1324
+ resolveModule: specifier => {
1325
+ // Workaround W-8010259 (dynamic imports without versions)
1326
+ // by adding a default version to version-less specifiers
1323
1327
  if (specifier && !/\/v\/[^/]+?$/.test(specifier)) {
1324
1328
  return `${specifier}/v/${coreVersion}`;
1325
1329
  }
1326
- return null;
1330
+ return null; // defer to loader
1327
1331
  }
1328
1332
  });
1329
1333
  }
1330
1334
  function initAmd(services, mappingEndpoint, coreVersion) {
1335
+ // Initialize the loader hooks for LWR-S endpoints
1331
1336
  if (mappingEndpoint.match(/\/v5\d\.0\//)) {
1332
1337
  everywhereHooks(services, mappingEndpoint, coreVersion);
1333
1338
  }
1334
1339
  }
1340
+ // Export the LWRE authenticate() API
1341
+ // This is a duplicate of the function exported from "lwr/everywhere"
1342
+ // because it MUST be bundled into the LWRE module via "lwr/everywhereAmd"
1335
1343
  function authenticate(authInfo) {
1344
+ // Put OAuth info into the vault
1336
1345
  if (authInfo) {
1337
- _0_9_0Alpha_9.setAuthInfo(authInfo);
1346
+ _0_9_0.setAuthInfo(authInfo);
1338
1347
  }
1339
1348
  }
1340
1349
  exports.authenticate = authenticate;
1341
1350
  exports.initAmd = initAmd;
1342
- Object.defineProperty(exports, "__esModule", { value: true });
1351
+ Object.defineProperty(exports, '__esModule', { value: true });
1343
1352
  });
1344
- LWR.define("lwr/vault/v/0_9_0-alpha_9", ["exports"], function (exports) {
1353
+ LWR.define('lwr/vault/v/0_9_0', ['exports'], function (exports) {
1354
+ // Credential vault for storing setters and subscribers for OAuth info
1355
+ // This module is a SINGLETON and must be excluded from ESM bundling
1345
1356
  let authInfo;
1357
+ // Get and set the OAuth info
1346
1358
  function getAuthInfo() {
1347
1359
  return authInfo;
1348
1360
  }
@@ -1351,11 +1363,11 @@ LWR.define("lwr/vault/v/0_9_0-alpha_9", ["exports"], function (exports) {
1351
1363
  }
1352
1364
  exports.getAuthInfo = getAuthInfo;
1353
1365
  exports.setAuthInfo = setAuthInfo;
1354
- Object.defineProperty(exports, "__esModule", { value: true });
1366
+ Object.defineProperty(exports, '__esModule', { value: true });
1355
1367
  });
1356
1368
  // Set up the AMD loader hooks for OAuth
1357
1369
  const { initAmd, authenticate } = await loader.load(bootstrapModule);
1358
- initAmd(loader.services, endpoints?.uris.mapping, '0_9_0-alpha_9');
1370
+ initAmd(loader.services, endpoints?.uris.mapping, '0_9_0');
1359
1371
  // Wrap the createComponent API to allow proper ordering of module definitions:
1360
1372
  // 1. LWRE module bundle (this): lwr/loader, lwr/everywhereAmd, lwr/vault
1361
1373
  // 2. lwr/everywhere (deps: lwc, synthetic shadow, lwr/host, etc)
@@ -48,7 +48,7 @@ function getConfiguration(options) {
48
48
  * SPDX-License-Identifier: MIT
49
49
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
50
50
  */
51
- /* LWR Module Loader v0.9.0-alpha.9 */
51
+ /* LWR Module Loader v0.9.0 */
52
52
  const templateRegex = /\{([0-9]+)\}/g;
53
53
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
54
  function templateString(template, args) {
@@ -146,7 +146,7 @@ const STALE_HOOK_ERROR = Object.freeze({
146
146
  const MODULE_ALREADY_LOADED = Object.freeze({
147
147
  code: 3017,
148
148
  level: 0,
149
- message: 'Marking module(s) as externally loaded, but they are already loaded: {0}',
149
+ message: 'Marking module(s) as externally loaded, but they are already loaded:',
150
150
  });
151
151
  const FAIL_HOOK_LOAD = Object.freeze({
152
152
  code: 3018,
@@ -345,11 +345,13 @@ if (hasDocument) {
345
345
 
346
346
  // Bootstrap / shim
347
347
 
348
+ // Loader: modules
348
349
  const LOADER_PREFIX = 'lwr.loader.';
349
350
  const MODULE_DEFINE = `${LOADER_PREFIX}module.define`;
350
351
  const MODULE_FETCH = `${LOADER_PREFIX}module.fetch`;
351
352
  const MODULE_ERROR = `${LOADER_PREFIX}module.error`;
352
353
 
354
+ // Loader: mappings
353
355
  const MAPPINGS_FETCH = `${LOADER_PREFIX}mappings.fetch`;
354
356
  const MAPPINGS_ERROR = `${LOADER_PREFIX}mappings.error`;
355
357
 
@@ -810,12 +812,8 @@ class ModuleRegistry {
810
812
  * @param modules - list of module identifiers
811
813
  */
812
814
  registerExternalModules(modules) {
813
- const alreadyRegistered = [];
814
815
  modules.map((id) => {
815
- if (this.namedDefineRegistry.has(id)) {
816
- alreadyRegistered.push(id);
817
- }
818
- else {
816
+ if (!this.namedDefineRegistry.has(id)) {
819
817
  let resolveExternal;
820
818
  let timer;
821
819
  const moduleDefPromise = new Promise((resolve, reject) => {
@@ -839,11 +837,11 @@ class ModuleRegistry {
839
837
  };
840
838
  this.namedDefineRegistry.set(id, moduleDef);
841
839
  }
840
+ else if (process.env.NODE_ENV !== 'production' && hasConsole) {
841
+ // eslint-disable-next-line lwr/no-unguarded-apis
842
+ console.warn(MODULE_ALREADY_LOADED.message, id);
843
+ }
842
844
  });
843
- // throw error for modules that were already registered
844
- if (alreadyRegistered.length) {
845
- throw new LoaderError(MODULE_ALREADY_LOADED, [alreadyRegistered.join(', ')]);
846
- }
847
845
  }
848
846
  getImportMetadataResolver() {
849
847
  return this.resolver;
@@ -985,7 +983,7 @@ class ModuleRegistry {
985
983
  moduleDefault = { default: moduleDefault };
986
984
  // __defaultInterop is ONLY used to support backwards compatibility
987
985
  // of importing default exports the "wrong" way (when not using named exports).
988
- // See https://github.com/salesforce/lwr/pull/816
986
+ // See https://github.com/salesforce-experience-platform-emu/lwr/pull/816
989
987
  Object.defineProperty(moduleDefault, '__defaultInterop', { value: true });
990
988
  }
991
989
  // if no return value, then we are using the exports object
@@ -1207,7 +1205,7 @@ class Loader {
1207
1205
  const appId = match && match[1];
1208
1206
  config.appMetadata.appId = appId;
1209
1207
  }
1210
- // TODO: https://github.com/salesforce/lwr/issues/1087
1208
+ // TODO: https://github.com/salesforce-experience-platform-emu/lwr/issues/1087
1211
1209
  this.services = Object.freeze({
1212
1210
  addLoaderPlugin: this.registry.addLoaderPlugin.bind(this.registry),
1213
1211
  handleStaleModule: this.registry.registerHandleStaleModuleHook.bind(this.registry),
@@ -1294,9 +1292,11 @@ loader.define('lwr/loader/v/0_0_1', ['exports'], (exports) => {
1294
1292
  await loader.registerImportMappings({ imports, index }, [bootstrapModule]);
1295
1293
  globalThis.LWR = Object.freeze({ define: loader.define.bind(loader) });
1296
1294
  // Define preload modules (ie: ABS, vault, etc) BEFORE loading them
1297
- LWR.define("lwr/everywhereAmd/v/0_0_1", ["exports", "lwr/vault/v/0_0_1"], function (exports, _0_9_0Alpha_9) {
1298
- async function authFetch(url, accept = "javascript") {
1299
- const authInfo = _0_9_0Alpha_9.getAuthInfo();
1295
+ LWR.define('lwr/everywhereAmd/v/0_0_1', ['exports', 'lwr/vault/v/0_0_1'], function (exports, _0_9_0) {
1296
+ // IMPORTANT: Do not add any static imports to this file that are not bundled with the amd-client
1297
+ // Do an OAuthed fetch
1298
+ async function authFetch(url, accept = 'javascript') {
1299
+ const authInfo = _0_9_0.getAuthInfo();
1300
1300
  if (authInfo) {
1301
1301
  return fetch(url, {
1302
1302
  headers: {
@@ -1305,44 +1305,56 @@ LWR.define("lwr/everywhereAmd/v/0_0_1", ["exports", "lwr/vault/v/0_0_1"], functi
1305
1305
  }
1306
1306
  });
1307
1307
  }
1308
- return null;
1308
+ return null; // defer to loader
1309
1309
  }
1310
+ // Add a hook for adding OAuth headers to module and mapping requests
1311
+ // Workaround: core does not have proper versioning; replace all versions with 0_0_1
1310
1312
  function everywhereHooks(serviceAPI, mappingEndpoint, coreVersion) {
1311
1313
  serviceAPI.addLoaderPlugin({
1312
1314
  loadModule: async (url) => {
1313
1315
  return authFetch(url);
1314
1316
  },
1315
1317
  loadMapping: async (specifier) => {
1316
- const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, "json");
1318
+ const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, 'json');
1317
1319
  if (res && res.ok) {
1318
1320
  return res.json();
1319
1321
  }
1320
1322
  return null;
1321
1323
  },
1322
- resolveModule: (specifier) => {
1324
+ resolveModule: specifier => {
1325
+ // Workaround W-8010259 (dynamic imports without versions)
1326
+ // by adding a default version to version-less specifiers
1323
1327
  if (specifier && !/\/v\/[^/]+?$/.test(specifier)) {
1324
1328
  return `${specifier}/v/${coreVersion}`;
1325
1329
  }
1326
- return null;
1330
+ return null; // defer to loader
1327
1331
  }
1328
1332
  });
1329
1333
  }
1330
1334
  function initAmd(services, mappingEndpoint, coreVersion) {
1335
+ // Initialize the loader hooks for LWR-S endpoints
1331
1336
  if (mappingEndpoint.match(/\/v5\d\.0\//)) {
1332
1337
  everywhereHooks(services, mappingEndpoint, coreVersion);
1333
1338
  }
1334
1339
  }
1340
+ // Export the LWRE authenticate() API
1341
+ // This is a duplicate of the function exported from "lwr/everywhere"
1342
+ // because it MUST be bundled into the LWRE module via "lwr/everywhereAmd"
1335
1343
  function authenticate(authInfo) {
1344
+ // Put OAuth info into the vault
1336
1345
  if (authInfo) {
1337
- _0_9_0Alpha_9.setAuthInfo(authInfo);
1346
+ _0_9_0.setAuthInfo(authInfo);
1338
1347
  }
1339
1348
  }
1340
1349
  exports.authenticate = authenticate;
1341
1350
  exports.initAmd = initAmd;
1342
- Object.defineProperty(exports, "__esModule", { value: true });
1351
+ Object.defineProperty(exports, '__esModule', { value: true });
1343
1352
  });
1344
- LWR.define("lwr/vault/v/0_0_1", ["exports"], function (exports) {
1353
+ LWR.define('lwr/vault/v/0_0_1', ['exports'], function (exports) {
1354
+ // Credential vault for storing setters and subscribers for OAuth info
1355
+ // This module is a SINGLETON and must be excluded from ESM bundling
1345
1356
  let authInfo;
1357
+ // Get and set the OAuth info
1346
1358
  function getAuthInfo() {
1347
1359
  return authInfo;
1348
1360
  }
@@ -1351,7 +1363,7 @@ LWR.define("lwr/vault/v/0_0_1", ["exports"], function (exports) {
1351
1363
  }
1352
1364
  exports.getAuthInfo = getAuthInfo;
1353
1365
  exports.setAuthInfo = setAuthInfo;
1354
- Object.defineProperty(exports, "__esModule", { value: true });
1366
+ Object.defineProperty(exports, '__esModule', { value: true });
1355
1367
  });
1356
1368
  // Set up the AMD loader hooks for OAuth
1357
1369
  const { initAmd, authenticate } = await loader.load(bootstrapModule);