@lwrjs/everywhere 0.9.0-alpha.2 → 0.9.0-alpha.21

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 (61) hide show
  1. package/README.md +2 -7
  2. package/build/__generated_site_amd_modules__/1/application/amd/l/en-US/ai/amd-bootstrap/configuration/ci/-/-/s/1b0754f98a1d222fca718deb5838c625/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-alpha_21/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_33_0/s/90a5f16131da45cef1653112862ca9dc/lwc.js +8969 -0
  5. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/everywhereAmd/v/0_9_0-alpha_21/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-alpha_21/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_2/s/a7fb654bda624ba7d02dcd76e8d1217c → 0_9_0-alpha_21/s/64c5a2bb3dcf1759c879fc87bf2fdaf6}/lwr_loader.js +360 -131
  8. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/metrics/v/0_9_0-alpha_21/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-alpha_21/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-alpha_21/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_2 → 0_9_0-alpha_21/lwr-error-shim.js} +1 -1
  12. package/build/__generated_site_amd_modules__/1/resource/amd/lwr-loader-shim.js/v/{0_9_0-alpha_2 → 0_9_0-alpha_21/lwr-loader-shim.js} +18 -17
  13. package/build/amd-client.js +1 -2
  14. package/build/assets/amd/lwr-everywhere-debug.js +36 -23
  15. package/build/assets/amd/lwr-everywhere-min.js +1 -1
  16. package/build/assets/amd/lwr-everywhere.js +36 -23
  17. package/build/assets/core/lwr-everywhere-debug.js +33 -20
  18. package/build/assets/core/lwr-everywhere-min.js +1 -1
  19. package/build/assets/core/lwr-everywhere.js +33 -20
  20. package/build/assets/esm/lwr-everywhere-debug.js +4 -7
  21. package/build/assets/esm/lwr-everywhere-min.js +1 -1
  22. package/build/assets/esm/lwr-everywhere.js +4 -7
  23. package/build/esm-client.js +1 -2
  24. package/build/generate.js +4 -3
  25. package/build/index.js +2 -2
  26. package/build/modules/@salesforce/lds-default-luvio/lds-default-luvio.d.ts +24 -0
  27. package/build/modules/@salesforce/lds-default-luvio/lds-default-luvio.js +60 -0
  28. package/build/modules/lwr/everywhere/everywhere.d.ts +1 -1
  29. package/build/modules/lwr/everywhere/everywhere.js +8 -6
  30. package/build/modules/lwr/everywhereAmd/everywhereAmd.d.ts +1 -1
  31. package/build/modules/lwr/everywhereAmd/everywhereAmd.js +9 -11
  32. package/build/modules/lwr/everywhereEsm/everywhereEsm.js +1 -2
  33. package/build/modules/lwr/host/host.js +23 -27
  34. package/build/modules/lwr/setupLDS/network.d.ts +3 -0
  35. package/build/modules/lwr/setupLDS/network.js +88 -0
  36. package/build/modules/lwr/setupLDS/setupLDS.d.ts +2 -0
  37. package/build/modules/lwr/setupLDS/setupLDS.js +12 -0
  38. package/build/modules/lwr/setupNodeLDS/network.d.ts +3 -0
  39. package/build/modules/lwr/setupNodeLDS/network.js +88 -0
  40. package/build/modules/lwr/setupNodeLDS/setupNodeLDS.d.ts +2 -0
  41. package/build/modules/lwr/setupNodeLDS/setupNodeLDS.js +14 -0
  42. package/build/modules/lwr/vault/vault.d.ts +1 -1
  43. package/build/modules/lwr/vault/vault.js +3 -1
  44. package/build/utils.d.ts +1 -8
  45. package/build/utils.js +1 -4
  46. package/package.json +15 -8
  47. package/src/amd-client.ts +1 -2
  48. package/src/esm-client.ts +2 -3
  49. package/src/generate.ts +4 -3
  50. package/src/index.ts +2 -2
  51. package/src/utils.ts +2 -13
  52. package/build/__generated_site_amd_modules__/1/application/amd/l/en-US/ai/amd-bootstrap/configuration/ci/-/-/s/68e51659d71a9691c09702509beecf4f/config.js +0 -10
  53. 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_2/s/c40e6caf07454ce13961de8ca76ab7f0/@lwrjs_app-service_amd-bootstrap_module_amd.js +0 -14
  54. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwc/v/2_17_0/s/60dae7a83431c35c02c87ca8aaaa6044/lwc.js +0 -6244
  55. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/everywhereAmd/v/0_9_0-alpha_2/s/e66806169480601930ec9cfca972815e/lwr_everywhereAmd.js +0 -48
  56. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/init/v/0_9_0-alpha_2/s/6258bcb20cc2d5d6a9f3c5a6f9d0acaf/lwr_init.js +0 -58
  57. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/metrics/v/0_9_0-alpha_2/s/dfbc827104d50ff7d16b59c9d0e06aca/lwr_metrics.js +0 -56
  58. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/profiler/v/0_9_0-alpha_2/s/5a10236d8c52bc9f6dee22875cd7016d/lwr_profiler.js +0 -51
  59. package/build/__generated_site_amd_modules__/1/module/amd/1/l/en-US/mi/lwr/vault/v/0_9_0-alpha_2/s/6cbce1f9b7e815ee862b26f37ff4c76e/lwr_vault.js +0 -13
  60. package/build/__generated_site_amd_modules__/en-US/index.html +0 -26
  61. package/build/__generated_site_amd_modules__/index.html +0 -26
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: MIT
5
5
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
6
6
  */
7
+ globalThis.process = { env: { NODE_ENV: 'production' } };
7
8
  // Construct the Client Bootstrap Config object
8
9
  function getConfiguration(options) {
9
10
  const { format, server, apiVersion, apiPrefix, locale, bundle, debug } = options;
@@ -17,7 +18,7 @@ function getConfiguration(options) {
17
18
  ? `${ORIGIN}${PREFIX}/bundle/${format}/${POSTFIX}${BUNDLE_ID}-0/module/mi/`
18
19
  : `${ORIGIN}${PREFIX}/module/${format}/${POSTFIX}/mi/`;
19
20
  // Component specifiers and URIs
20
- const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_9_0-alpha_2`;
21
+ const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_9_0-alpha_21`;
21
22
  const BOOT_URI = `${ENDPOINT}${encodeURIComponent(BOOT_MODULE)}/latest${debug ? '?debug' : ''}`;
22
23
  // Client Bootstrap Config
23
24
  const config = {
@@ -38,10 +39,7 @@ function getConfiguration(options) {
38
39
  if (debug && config.endpoints) {
39
40
  config.endpoints.modifiers = { debug: 'true' };
40
41
  }
41
- return {
42
- options: { NODE_ENV: debug ? 'development' : 'production' },
43
- config, // globalThis.LWR
44
- };
42
+ return config;
45
43
  }
46
44
 
47
45
  /**
@@ -50,7 +48,7 @@ function getConfiguration(options) {
50
48
  * SPDX-License-Identifier: MIT
51
49
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
52
50
  */
53
- /* LWR Module Loader v0.9.0-alpha.2 */
51
+ /* LWR Module Loader v0.9.0-alpha.21 */
54
52
  const templateRegex = /\{([0-9]+)\}/g;
55
53
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
54
  function templateString(template, args) {
@@ -347,11 +345,13 @@ if (hasDocument) {
347
345
 
348
346
  // Bootstrap / shim
349
347
 
348
+ // Loader: modules
350
349
  const LOADER_PREFIX = 'lwr.loader.';
351
350
  const MODULE_DEFINE = `${LOADER_PREFIX}module.define`;
352
351
  const MODULE_FETCH = `${LOADER_PREFIX}module.fetch`;
353
352
  const MODULE_ERROR = `${LOADER_PREFIX}module.error`;
354
353
 
354
+ // Loader: mappings
355
355
  const MAPPINGS_FETCH = `${LOADER_PREFIX}mappings.fetch`;
356
356
  const MAPPINGS_ERROR = `${LOADER_PREFIX}mappings.error`;
357
357
 
@@ -987,7 +987,7 @@ class ModuleRegistry {
987
987
  moduleDefault = { default: moduleDefault };
988
988
  // __defaultInterop is ONLY used to support backwards compatibility
989
989
  // of importing default exports the "wrong" way (when not using named exports).
990
- // See https://github.com/salesforce/lwr/pull/816
990
+ // See https://github.com/salesforce-experience-platform-emu/lwr/pull/816
991
991
  Object.defineProperty(moduleDefault, '__defaultInterop', { value: true });
992
992
  }
993
993
  // if no return value, then we are using the exports object
@@ -1209,7 +1209,7 @@ class Loader {
1209
1209
  const appId = match && match[1];
1210
1210
  config.appMetadata.appId = appId;
1211
1211
  }
1212
- // TODO: https://github.com/salesforce/lwr/issues/1087
1212
+ // TODO: https://github.com/salesforce-experience-platform-emu/lwr/issues/1087
1213
1213
  this.services = Object.freeze({
1214
1214
  addLoaderPlugin: this.registry.addLoaderPlugin.bind(this.registry),
1215
1215
  handleStaleModule: this.registry.registerHandleStaleModuleHook.bind(this.registry),
@@ -1284,11 +1284,10 @@ class Loader {
1284
1284
  // Process the LWR Client Bootstrap Config
1285
1285
  const configOptions = { "format": "amd", "apiVersion": "1", "apiPrefix": "", "bundle": true, "debug": false };
1286
1286
  const configuration = getConfiguration(configOptions);
1287
- const { bootstrapModule, endpoints, baseUrl, imports, index } = configuration.config;
1288
- globalThis.process = { env: { NODE_ENV: configuration.options.NODE_ENV } }; // Required by LWC
1287
+ const { bootstrapModule, endpoints, baseUrl, imports, index } = configuration;
1289
1288
  // Initialize the AMD loader (its code is bundled into the LWR Everywhere module)
1290
1289
  const loader = new Loader({ endpoints, baseUrl });
1291
- loader.define('lwr/loader/v/0_9_0-alpha_2', ['exports'], (exports) => {
1290
+ loader.define('lwr/loader/v/0_9_0-alpha_21', ['exports'], (exports) => {
1292
1291
  Object.assign(exports, {
1293
1292
  define: loader.define.bind(loader),
1294
1293
  load: loader.load.bind(loader),
@@ -1297,9 +1296,11 @@ loader.define('lwr/loader/v/0_9_0-alpha_2', ['exports'], (exports) => {
1297
1296
  await loader.registerImportMappings({ imports, index }, [bootstrapModule]);
1298
1297
  globalThis.LWR = Object.freeze({ define: loader.define.bind(loader) });
1299
1298
  // Define preload modules (ie: ABS, vault, etc) BEFORE loading them
1300
- LWR.define("lwr/everywhereAmd/v/0_9_0-alpha_2", ["exports", "lwr/vault/v/0_9_0-alpha_2"], function (exports, _0_9_0Alpha_2) {
1301
- async function authFetch(url, accept = "javascript") {
1302
- const authInfo = _0_9_0Alpha_2.getAuthInfo();
1299
+ LWR.define('lwr/everywhereAmd/v/0_9_0-alpha_21', ['exports', 'lwr/vault/v/0_9_0-alpha_21'], function (exports, _0_9_0Alpha_21) {
1300
+ // IMPORTANT: Do not add any static imports to this file that are not bundled with the amd-client
1301
+ // Do an OAuthed fetch
1302
+ async function authFetch(url, accept = 'javascript') {
1303
+ const authInfo = _0_9_0Alpha_21.getAuthInfo();
1303
1304
  if (authInfo) {
1304
1305
  return fetch(url, {
1305
1306
  headers: {
@@ -1308,44 +1309,56 @@ LWR.define("lwr/everywhereAmd/v/0_9_0-alpha_2", ["exports", "lwr/vault/v/0_9_0-a
1308
1309
  }
1309
1310
  });
1310
1311
  }
1311
- return null;
1312
+ return null; // defer to loader
1312
1313
  }
1314
+ // Add a hook for adding OAuth headers to module and mapping requests
1315
+ // Workaround: core does not have proper versioning; replace all versions with 0_0_1
1313
1316
  function everywhereHooks(serviceAPI, mappingEndpoint, coreVersion) {
1314
1317
  serviceAPI.addLoaderPlugin({
1315
1318
  loadModule: async (url) => {
1316
1319
  return authFetch(url);
1317
1320
  },
1318
1321
  loadMapping: async (specifier) => {
1319
- const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, "json");
1322
+ const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, 'json');
1320
1323
  if (res && res.ok) {
1321
1324
  return res.json();
1322
1325
  }
1323
1326
  return null;
1324
1327
  },
1325
- resolveModule: (specifier) => {
1328
+ resolveModule: specifier => {
1329
+ // Workaround W-8010259 (dynamic imports without versions)
1330
+ // by adding a default version to version-less specifiers
1326
1331
  if (specifier && !/\/v\/[^/]+?$/.test(specifier)) {
1327
1332
  return `${specifier}/v/${coreVersion}`;
1328
1333
  }
1329
- return null;
1334
+ return null; // defer to loader
1330
1335
  }
1331
1336
  });
1332
1337
  }
1333
1338
  function initAmd(services, mappingEndpoint, coreVersion) {
1339
+ // Initialize the loader hooks for LWR-S endpoints
1334
1340
  if (mappingEndpoint.match(/\/v5\d\.0\//)) {
1335
1341
  everywhereHooks(services, mappingEndpoint, coreVersion);
1336
1342
  }
1337
1343
  }
1344
+ // Export the LWRE authenticate() API
1345
+ // This is a duplicate of the function exported from "lwr/everywhere"
1346
+ // because it MUST be bundled into the LWRE module via "lwr/everywhereAmd"
1338
1347
  function authenticate(authInfo) {
1348
+ // Put OAuth info into the vault
1339
1349
  if (authInfo) {
1340
- _0_9_0Alpha_2.setAuthInfo(authInfo);
1350
+ _0_9_0Alpha_21.setAuthInfo(authInfo);
1341
1351
  }
1342
1352
  }
1343
1353
  exports.authenticate = authenticate;
1344
1354
  exports.initAmd = initAmd;
1345
- Object.defineProperty(exports, "__esModule", { value: true });
1355
+ Object.defineProperty(exports, '__esModule', { value: true });
1346
1356
  });
1347
- LWR.define("lwr/vault/v/0_9_0-alpha_2", ["exports"], function (exports) {
1357
+ LWR.define('lwr/vault/v/0_9_0-alpha_21', ['exports'], function (exports) {
1358
+ // Credential vault for storing setters and subscribers for OAuth info
1359
+ // This module is a SINGLETON and must be excluded from ESM bundling
1348
1360
  let authInfo;
1361
+ // Get and set the OAuth info
1349
1362
  function getAuthInfo() {
1350
1363
  return authInfo;
1351
1364
  }
@@ -1354,11 +1367,11 @@ LWR.define("lwr/vault/v/0_9_0-alpha_2", ["exports"], function (exports) {
1354
1367
  }
1355
1368
  exports.getAuthInfo = getAuthInfo;
1356
1369
  exports.setAuthInfo = setAuthInfo;
1357
- Object.defineProperty(exports, "__esModule", { value: true });
1370
+ Object.defineProperty(exports, '__esModule', { value: true });
1358
1371
  });
1359
1372
  // Set up the AMD loader hooks for OAuth
1360
1373
  const { initAmd, authenticate } = await loader.load(bootstrapModule);
1361
- initAmd(loader.services, endpoints?.uris.mapping, '0_9_0-alpha_2');
1374
+ initAmd(loader.services, endpoints?.uris.mapping, '0_9_0-alpha_21');
1362
1375
  // Wrap the createComponent API to allow proper ordering of module definitions:
1363
1376
  // 1. LWRE module bundle (this): lwr/loader, lwr/everywhereAmd, lwr/vault
1364
1377
  // 2. lwr/everywhere (deps: lwc, synthetic shadow, lwr/host, etc)
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: MIT
5
5
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
6
6
  */
7
+ globalThis.process = { env: { NODE_ENV: 'development' } };
7
8
  // Construct the Client Bootstrap Config object
8
9
  function getConfiguration(options) {
9
10
  const { format, server, apiVersion, apiPrefix, locale, bundle, debug } = options;
@@ -38,10 +39,7 @@ function getConfiguration(options) {
38
39
  if (debug && config.endpoints) {
39
40
  config.endpoints.modifiers = { debug: 'true' };
40
41
  }
41
- return {
42
- options: { NODE_ENV: debug ? 'development' : 'production' },
43
- config, // globalThis.LWR
44
- };
42
+ return config;
45
43
  }
46
44
 
47
45
  /**
@@ -50,7 +48,7 @@ function getConfiguration(options) {
50
48
  * SPDX-License-Identifier: MIT
51
49
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
52
50
  */
53
- /* LWR Module Loader v0.9.0-alpha.2 */
51
+ /* LWR Module Loader v0.9.0-alpha.21 */
54
52
  const templateRegex = /\{([0-9]+)\}/g;
55
53
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
54
  function templateString(template, args) {
@@ -347,11 +345,13 @@ if (hasDocument) {
347
345
 
348
346
  // Bootstrap / shim
349
347
 
348
+ // Loader: modules
350
349
  const LOADER_PREFIX = 'lwr.loader.';
351
350
  const MODULE_DEFINE = `${LOADER_PREFIX}module.define`;
352
351
  const MODULE_FETCH = `${LOADER_PREFIX}module.fetch`;
353
352
  const MODULE_ERROR = `${LOADER_PREFIX}module.error`;
354
353
 
354
+ // Loader: mappings
355
355
  const MAPPINGS_FETCH = `${LOADER_PREFIX}mappings.fetch`;
356
356
  const MAPPINGS_ERROR = `${LOADER_PREFIX}mappings.error`;
357
357
 
@@ -987,7 +987,7 @@ class ModuleRegistry {
987
987
  moduleDefault = { default: moduleDefault };
988
988
  // __defaultInterop is ONLY used to support backwards compatibility
989
989
  // of importing default exports the "wrong" way (when not using named exports).
990
- // See https://github.com/salesforce/lwr/pull/816
990
+ // See https://github.com/salesforce-experience-platform-emu/lwr/pull/816
991
991
  Object.defineProperty(moduleDefault, '__defaultInterop', { value: true });
992
992
  }
993
993
  // if no return value, then we are using the exports object
@@ -1209,7 +1209,7 @@ class Loader {
1209
1209
  const appId = match && match[1];
1210
1210
  config.appMetadata.appId = appId;
1211
1211
  }
1212
- // TODO: https://github.com/salesforce/lwr/issues/1087
1212
+ // TODO: https://github.com/salesforce-experience-platform-emu/lwr/issues/1087
1213
1213
  this.services = Object.freeze({
1214
1214
  addLoaderPlugin: this.registry.addLoaderPlugin.bind(this.registry),
1215
1215
  handleStaleModule: this.registry.registerHandleStaleModuleHook.bind(this.registry),
@@ -1284,8 +1284,7 @@ class Loader {
1284
1284
  // Process the LWR Client Bootstrap Config
1285
1285
  const configOptions = { "format": "amd", "apiVersion": "v57.0", "apiPrefix": "/lwr", "bundle": false, "debug": true };
1286
1286
  const configuration = getConfiguration(configOptions);
1287
- const { bootstrapModule, endpoints, baseUrl, imports, index } = configuration.config;
1288
- globalThis.process = { env: { NODE_ENV: configuration.options.NODE_ENV } }; // Required by LWC
1287
+ const { bootstrapModule, endpoints, baseUrl, imports, index } = configuration;
1289
1288
  // Initialize the AMD loader (its code is bundled into the LWR Everywhere module)
1290
1289
  const loader = new Loader({ endpoints, baseUrl });
1291
1290
  loader.define('lwr/loader/v/0_0_1', ['exports'], (exports) => {
@@ -1297,9 +1296,11 @@ loader.define('lwr/loader/v/0_0_1', ['exports'], (exports) => {
1297
1296
  await loader.registerImportMappings({ imports, index }, [bootstrapModule]);
1298
1297
  globalThis.LWR = Object.freeze({ define: loader.define.bind(loader) });
1299
1298
  // Define preload modules (ie: ABS, vault, etc) BEFORE loading them
1300
- LWR.define("lwr/everywhereAmd/v/0_0_1", ["exports", "lwr/vault/v/0_0_1"], function (exports, _0_9_0Alpha_2) {
1301
- async function authFetch(url, accept = "javascript") {
1302
- const authInfo = _0_9_0Alpha_2.getAuthInfo();
1299
+ LWR.define('lwr/everywhereAmd/v/0_0_1', ['exports', 'lwr/vault/v/0_0_1'], function (exports, _0_9_0Alpha_21) {
1300
+ // IMPORTANT: Do not add any static imports to this file that are not bundled with the amd-client
1301
+ // Do an OAuthed fetch
1302
+ async function authFetch(url, accept = 'javascript') {
1303
+ const authInfo = _0_9_0Alpha_21.getAuthInfo();
1303
1304
  if (authInfo) {
1304
1305
  return fetch(url, {
1305
1306
  headers: {
@@ -1308,44 +1309,56 @@ LWR.define("lwr/everywhereAmd/v/0_0_1", ["exports", "lwr/vault/v/0_0_1"], functi
1308
1309
  }
1309
1310
  });
1310
1311
  }
1311
- return null;
1312
+ return null; // defer to loader
1312
1313
  }
1314
+ // Add a hook for adding OAuth headers to module and mapping requests
1315
+ // Workaround: core does not have proper versioning; replace all versions with 0_0_1
1313
1316
  function everywhereHooks(serviceAPI, mappingEndpoint, coreVersion) {
1314
1317
  serviceAPI.addLoaderPlugin({
1315
1318
  loadModule: async (url) => {
1316
1319
  return authFetch(url);
1317
1320
  },
1318
1321
  loadMapping: async (specifier) => {
1319
- const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, "json");
1322
+ const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, 'json');
1320
1323
  if (res && res.ok) {
1321
1324
  return res.json();
1322
1325
  }
1323
1326
  return null;
1324
1327
  },
1325
- resolveModule: (specifier) => {
1328
+ resolveModule: specifier => {
1329
+ // Workaround W-8010259 (dynamic imports without versions)
1330
+ // by adding a default version to version-less specifiers
1326
1331
  if (specifier && !/\/v\/[^/]+?$/.test(specifier)) {
1327
1332
  return `${specifier}/v/${coreVersion}`;
1328
1333
  }
1329
- return null;
1334
+ return null; // defer to loader
1330
1335
  }
1331
1336
  });
1332
1337
  }
1333
1338
  function initAmd(services, mappingEndpoint, coreVersion) {
1339
+ // Initialize the loader hooks for LWR-S endpoints
1334
1340
  if (mappingEndpoint.match(/\/v5\d\.0\//)) {
1335
1341
  everywhereHooks(services, mappingEndpoint, coreVersion);
1336
1342
  }
1337
1343
  }
1344
+ // Export the LWRE authenticate() API
1345
+ // This is a duplicate of the function exported from "lwr/everywhere"
1346
+ // because it MUST be bundled into the LWRE module via "lwr/everywhereAmd"
1338
1347
  function authenticate(authInfo) {
1348
+ // Put OAuth info into the vault
1339
1349
  if (authInfo) {
1340
- _0_9_0Alpha_2.setAuthInfo(authInfo);
1350
+ _0_9_0Alpha_21.setAuthInfo(authInfo);
1341
1351
  }
1342
1352
  }
1343
1353
  exports.authenticate = authenticate;
1344
1354
  exports.initAmd = initAmd;
1345
- Object.defineProperty(exports, "__esModule", { value: true });
1355
+ Object.defineProperty(exports, '__esModule', { value: true });
1346
1356
  });
1347
- LWR.define("lwr/vault/v/0_0_1", ["exports"], function (exports) {
1357
+ LWR.define('lwr/vault/v/0_0_1', ['exports'], function (exports) {
1358
+ // Credential vault for storing setters and subscribers for OAuth info
1359
+ // This module is a SINGLETON and must be excluded from ESM bundling
1348
1360
  let authInfo;
1361
+ // Get and set the OAuth info
1349
1362
  function getAuthInfo() {
1350
1363
  return authInfo;
1351
1364
  }
@@ -1354,7 +1367,7 @@ LWR.define("lwr/vault/v/0_0_1", ["exports"], function (exports) {
1354
1367
  }
1355
1368
  exports.getAuthInfo = getAuthInfo;
1356
1369
  exports.setAuthInfo = setAuthInfo;
1357
- Object.defineProperty(exports, "__esModule", { value: true });
1370
+ Object.defineProperty(exports, '__esModule', { value: true });
1358
1371
  });
1359
1372
  // Set up the AMD loader hooks for OAuth
1360
1373
  const { initAmd, authenticate } = await loader.load(bootstrapModule);
@@ -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",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_0_1`,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"}),{options:{NODE_ENV:a?"development":"production"},config:m}}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:"v57.0",apiPrefix:"/lwr",bundle:!0,debug:!1},configuration=getConfiguration(configOptions),{bootstrapModule:bootstrapModule,endpoints:endpoints,baseUrl:baseUrl,imports:imports,index:index}=configuration.config;globalThis.process={env:{NODE_ENV:configuration.options.NODE_ENV}};const loader=new Loader({endpoints:endpoints,baseUrl:baseUrl});loader.define("lwr/loader/v/0_0_1",["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_0_1",["exports","lwr/vault/v/0_0_1"],(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_0_1",["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_0_1");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_0_1`,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: {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:"v57.0",apiPrefix:"/lwr",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_0_1",["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_0_1",["exports","lwr/vault/v/0_0_1"],(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_0_1",["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_0_1");export{authenticate,createComponent};
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: MIT
5
5
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
6
6
  */
7
+ globalThis.process = { env: { NODE_ENV: 'production' } };
7
8
  // Construct the Client Bootstrap Config object
8
9
  function getConfiguration(options) {
9
10
  const { format, server, apiVersion, apiPrefix, locale, bundle, debug } = options;
@@ -38,10 +39,7 @@ function getConfiguration(options) {
38
39
  if (debug && config.endpoints) {
39
40
  config.endpoints.modifiers = { debug: 'true' };
40
41
  }
41
- return {
42
- options: { NODE_ENV: debug ? 'development' : 'production' },
43
- config, // globalThis.LWR
44
- };
42
+ return config;
45
43
  }
46
44
 
47
45
  /**
@@ -50,7 +48,7 @@ function getConfiguration(options) {
50
48
  * SPDX-License-Identifier: MIT
51
49
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
52
50
  */
53
- /* LWR Module Loader v0.9.0-alpha.2 */
51
+ /* LWR Module Loader v0.9.0-alpha.21 */
54
52
  const templateRegex = /\{([0-9]+)\}/g;
55
53
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
54
  function templateString(template, args) {
@@ -347,11 +345,13 @@ if (hasDocument) {
347
345
 
348
346
  // Bootstrap / shim
349
347
 
348
+ // Loader: modules
350
349
  const LOADER_PREFIX = 'lwr.loader.';
351
350
  const MODULE_DEFINE = `${LOADER_PREFIX}module.define`;
352
351
  const MODULE_FETCH = `${LOADER_PREFIX}module.fetch`;
353
352
  const MODULE_ERROR = `${LOADER_PREFIX}module.error`;
354
353
 
354
+ // Loader: mappings
355
355
  const MAPPINGS_FETCH = `${LOADER_PREFIX}mappings.fetch`;
356
356
  const MAPPINGS_ERROR = `${LOADER_PREFIX}mappings.error`;
357
357
 
@@ -987,7 +987,7 @@ class ModuleRegistry {
987
987
  moduleDefault = { default: moduleDefault };
988
988
  // __defaultInterop is ONLY used to support backwards compatibility
989
989
  // of importing default exports the "wrong" way (when not using named exports).
990
- // See https://github.com/salesforce/lwr/pull/816
990
+ // See https://github.com/salesforce-experience-platform-emu/lwr/pull/816
991
991
  Object.defineProperty(moduleDefault, '__defaultInterop', { value: true });
992
992
  }
993
993
  // if no return value, then we are using the exports object
@@ -1209,7 +1209,7 @@ class Loader {
1209
1209
  const appId = match && match[1];
1210
1210
  config.appMetadata.appId = appId;
1211
1211
  }
1212
- // TODO: https://github.com/salesforce/lwr/issues/1087
1212
+ // TODO: https://github.com/salesforce-experience-platform-emu/lwr/issues/1087
1213
1213
  this.services = Object.freeze({
1214
1214
  addLoaderPlugin: this.registry.addLoaderPlugin.bind(this.registry),
1215
1215
  handleStaleModule: this.registry.registerHandleStaleModuleHook.bind(this.registry),
@@ -1284,8 +1284,7 @@ class Loader {
1284
1284
  // Process the LWR Client Bootstrap Config
1285
1285
  const configOptions = { "format": "amd", "apiVersion": "v57.0", "apiPrefix": "/lwr", "bundle": true, "debug": false };
1286
1286
  const configuration = getConfiguration(configOptions);
1287
- const { bootstrapModule, endpoints, baseUrl, imports, index } = configuration.config;
1288
- globalThis.process = { env: { NODE_ENV: configuration.options.NODE_ENV } }; // Required by LWC
1287
+ const { bootstrapModule, endpoints, baseUrl, imports, index } = configuration;
1289
1288
  // Initialize the AMD loader (its code is bundled into the LWR Everywhere module)
1290
1289
  const loader = new Loader({ endpoints, baseUrl });
1291
1290
  loader.define('lwr/loader/v/0_0_1', ['exports'], (exports) => {
@@ -1297,9 +1296,11 @@ loader.define('lwr/loader/v/0_0_1', ['exports'], (exports) => {
1297
1296
  await loader.registerImportMappings({ imports, index }, [bootstrapModule]);
1298
1297
  globalThis.LWR = Object.freeze({ define: loader.define.bind(loader) });
1299
1298
  // Define preload modules (ie: ABS, vault, etc) BEFORE loading them
1300
- LWR.define("lwr/everywhereAmd/v/0_0_1", ["exports", "lwr/vault/v/0_0_1"], function (exports, _0_9_0Alpha_2) {
1301
- async function authFetch(url, accept = "javascript") {
1302
- const authInfo = _0_9_0Alpha_2.getAuthInfo();
1299
+ LWR.define('lwr/everywhereAmd/v/0_0_1', ['exports', 'lwr/vault/v/0_0_1'], function (exports, _0_9_0Alpha_21) {
1300
+ // IMPORTANT: Do not add any static imports to this file that are not bundled with the amd-client
1301
+ // Do an OAuthed fetch
1302
+ async function authFetch(url, accept = 'javascript') {
1303
+ const authInfo = _0_9_0Alpha_21.getAuthInfo();
1303
1304
  if (authInfo) {
1304
1305
  return fetch(url, {
1305
1306
  headers: {
@@ -1308,44 +1309,56 @@ LWR.define("lwr/everywhereAmd/v/0_0_1", ["exports", "lwr/vault/v/0_0_1"], functi
1308
1309
  }
1309
1310
  });
1310
1311
  }
1311
- return null;
1312
+ return null; // defer to loader
1312
1313
  }
1314
+ // Add a hook for adding OAuth headers to module and mapping requests
1315
+ // Workaround: core does not have proper versioning; replace all versions with 0_0_1
1313
1316
  function everywhereHooks(serviceAPI, mappingEndpoint, coreVersion) {
1314
1317
  serviceAPI.addLoaderPlugin({
1315
1318
  loadModule: async (url) => {
1316
1319
  return authFetch(url);
1317
1320
  },
1318
1321
  loadMapping: async (specifier) => {
1319
- const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, "json");
1322
+ const res = await authFetch(`${mappingEndpoint}${encodeURIComponent(specifier)}`, 'json');
1320
1323
  if (res && res.ok) {
1321
1324
  return res.json();
1322
1325
  }
1323
1326
  return null;
1324
1327
  },
1325
- resolveModule: (specifier) => {
1328
+ resolveModule: specifier => {
1329
+ // Workaround W-8010259 (dynamic imports without versions)
1330
+ // by adding a default version to version-less specifiers
1326
1331
  if (specifier && !/\/v\/[^/]+?$/.test(specifier)) {
1327
1332
  return `${specifier}/v/${coreVersion}`;
1328
1333
  }
1329
- return null;
1334
+ return null; // defer to loader
1330
1335
  }
1331
1336
  });
1332
1337
  }
1333
1338
  function initAmd(services, mappingEndpoint, coreVersion) {
1339
+ // Initialize the loader hooks for LWR-S endpoints
1334
1340
  if (mappingEndpoint.match(/\/v5\d\.0\//)) {
1335
1341
  everywhereHooks(services, mappingEndpoint, coreVersion);
1336
1342
  }
1337
1343
  }
1344
+ // Export the LWRE authenticate() API
1345
+ // This is a duplicate of the function exported from "lwr/everywhere"
1346
+ // because it MUST be bundled into the LWRE module via "lwr/everywhereAmd"
1338
1347
  function authenticate(authInfo) {
1348
+ // Put OAuth info into the vault
1339
1349
  if (authInfo) {
1340
- _0_9_0Alpha_2.setAuthInfo(authInfo);
1350
+ _0_9_0Alpha_21.setAuthInfo(authInfo);
1341
1351
  }
1342
1352
  }
1343
1353
  exports.authenticate = authenticate;
1344
1354
  exports.initAmd = initAmd;
1345
- Object.defineProperty(exports, "__esModule", { value: true });
1355
+ Object.defineProperty(exports, '__esModule', { value: true });
1346
1356
  });
1347
- LWR.define("lwr/vault/v/0_0_1", ["exports"], function (exports) {
1357
+ LWR.define('lwr/vault/v/0_0_1', ['exports'], function (exports) {
1358
+ // Credential vault for storing setters and subscribers for OAuth info
1359
+ // This module is a SINGLETON and must be excluded from ESM bundling
1348
1360
  let authInfo;
1361
+ // Get and set the OAuth info
1349
1362
  function getAuthInfo() {
1350
1363
  return authInfo;
1351
1364
  }
@@ -1354,7 +1367,7 @@ LWR.define("lwr/vault/v/0_0_1", ["exports"], function (exports) {
1354
1367
  }
1355
1368
  exports.getAuthInfo = getAuthInfo;
1356
1369
  exports.setAuthInfo = setAuthInfo;
1357
- Object.defineProperty(exports, "__esModule", { value: true });
1370
+ Object.defineProperty(exports, '__esModule', { value: true });
1358
1371
  });
1359
1372
  // Set up the AMD loader hooks for OAuth
1360
1373
  const { initAmd, authenticate } = await loader.load(bootstrapModule);
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: MIT
5
5
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
6
6
  */
7
+ globalThis.process = { env: { NODE_ENV: 'development' } };
7
8
  // Construct the Client Bootstrap Config object
8
9
  function getConfiguration(options) {
9
10
  const { format, server, apiVersion, apiPrefix, locale, bundle, debug } = options;
@@ -17,7 +18,7 @@ function getConfiguration(options) {
17
18
  ? `${ORIGIN}${PREFIX}/bundle/${format}/${POSTFIX}${BUNDLE_ID}-0/module/mi/`
18
19
  : `${ORIGIN}${PREFIX}/module/${format}/${POSTFIX}/mi/`;
19
20
  // Component specifiers and URIs
20
- const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_9_0-alpha_2`;
21
+ const BOOT_MODULE = `lwr/everywhere${format === 'esm' ? 'Esm' : 'Amd'}/v/0_9_0-alpha_21`;
21
22
  const BOOT_URI = `${ENDPOINT}${encodeURIComponent(BOOT_MODULE)}/latest${debug ? '?debug' : ''}`;
22
23
  // Client Bootstrap Config
23
24
  const config = {
@@ -38,18 +39,14 @@ function getConfiguration(options) {
38
39
  if (debug && config.endpoints) {
39
40
  config.endpoints.modifiers = { debug: 'true' };
40
41
  }
41
- return {
42
- options: { NODE_ENV: debug ? 'development' : 'production' },
43
- config, // globalThis.LWR
44
- };
42
+ return config;
45
43
  }
46
44
 
47
45
  /** LWR Everywhere module for ESM **/
48
46
  // Process the LWR Client Bootstrap Config
49
47
  const configOptions = { "format": "esm", "apiVersion": "1", "apiPrefix": "", "bundle": false, "debug": true };
50
48
  const configuration = getConfiguration(configOptions);
51
- const { bootstrapModule, imports, index = {}, importMappings, endpoints } = configuration.config;
52
- globalThis.process = { env: { NODE_ENV: configuration.options.NODE_ENV } }; // Required by LWC
49
+ const { bootstrapModule, imports, index = {}, importMappings, endpoints } = configuration;
53
50
  // Set up the ESM loader; Export the LWRE APIs
54
51
  const { initEsm, authenticate, createComponent } = await import(
55
52
  /* webpackIgnore: true */ index[bootstrapModule]);
@@ -1 +1 @@
1
- const e=function(e){const{format:o,server:i,apiVersion:n,apiPrefix:t,locale:p,bundle:r,debug:s}=e,m=new URL(import.meta.url),a=i||m.origin||"",d=`${t}/${n}`,$="0"+(p?`/l/${p}`:""),l="/bi/3_A,B,O,S,EG,JLMT,C,D,F,H,I,K,N,P,Q,R",u=r?`${a}${d}/bundle/${o}/${$}${l}-0/module/mi/`:`${a}${d}/module/${o}/${$}/mi/`,b=`lwr/everywhere${"esm"===o?"Esm":"Amd"}/v/0_9_0-alpha_2`,c=`${u}${encodeURIComponent(b)}/latest${s?"?debug":""}`,g={appId:"lwre",autoBoot:!0,bootstrapModule:b,baseUrl:a,imports:{[c]:[b]},index:{[b]:c},endpoints:{uris:{module:u,mapping:`${a}${d}/mapping/${o}/${$}${r?l:""}/mp/`}}};return s&&g.endpoints&&(g.endpoints.modifiers={debug:"true"}),{options:{NODE_ENV:s?"development":"production"},config:g}}({format:"esm",apiVersion:"1",apiPrefix:"",bundle:!0,debug:!1}),{bootstrapModule:o,imports:i,index:n={},importMappings:t,endpoints:p}=e.config;globalThis.process={env:{NODE_ENV:e.options.NODE_ENV}};const{initEsm:r,authenticate:s,createComponent:m}=await import(n[o]);r({imports:i,index:n,importMappings:t,endpoints:p});export{s as authenticate,m as createComponent};
1
+ globalThis.process={env:{NODE_ENV:"production"}};const e=function(e){const{format:o,server:i,apiVersion:n,apiPrefix:t,locale:p,bundle:r,debug:s}=e,a=new URL(import.meta.url),m=i||a.origin||"",d=`${t}/${n}`,$="0"+(p?`/l/${p}`:""),u="/bi/3_A,B,O,S,EG,JLMT,C,D,F,H,I,K,N,P,Q,R",l=r?`${m}${d}/bundle/${o}/${$}${u}-0/module/mi/`:`${m}${d}/module/${o}/${$}/mi/`,b=`lwr/everywhere${"esm"===o?"Esm":"Amd"}/v/0_9_0-alpha_21`,g=`${l}${encodeURIComponent(b)}/latest${s?"?debug":""}`,c={appId:"lwre",autoBoot:!0,bootstrapModule:b,baseUrl:m,imports:{[g]:[b]},index:{[b]:g},endpoints:{uris:{module:l,mapping:`${m}${d}/mapping/${o}/${$}${r?u:""}/mp/`}}};return s&&c.endpoints&&(c.endpoints.modifiers={debug:"true"}),c}({format:"esm",apiVersion:"1",apiPrefix:"",bundle:!0,debug:!1}),{bootstrapModule:o,imports:i,index:n={},importMappings:t,endpoints:p}=e,{initEsm:r,authenticate:s,createComponent:a}=await import(n[o]);r({imports:i,index:n,importMappings:t,endpoints:p});export{s as authenticate,a as createComponent};