@lwrjs/loader 0.12.0-alpha.0 → 0.12.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  This package contains the client-side AMD (Async Module Definition) module loader for Lightning Web Runtime (LWR).
4
4
 
5
- _The LWR loader is inspired and borrows from the algorithms and native ESM loader principles of https://github.com/systemjs/systemjs. The north star of the LWR loader is to align with functionality and behavior of the ESM loader._
5
+ _The LWR loader is inspired and borrows from the algorithms and native ESM loader principles of <https://github.com/systemjs/systemjs>. The north star of the LWR loader is to align with functionality and behavior of the ESM loader._
6
6
 
7
7
  ## Basic Example
8
8
 
@@ -195,7 +195,8 @@ The ResolveModuleHook allows hooking into the resolution phase of the module lif
195
195
 
196
196
  - `id` - A module identifier or URL
197
197
  - `params` - Object containing additional parameters
198
- - `parentUrl` - the `baseUrl` of the loader
198
+ - `parentUrl`
199
+ - the `baseUrl` of the loader
199
200
 
200
201
  **return value**
201
202
 
@@ -416,7 +417,7 @@ Read more in the [bootstrap RFC](https://rfcs.lwc.dev/rfcs/lwr/0000-lwr-bootstra
416
417
 
417
418
  The AMD Loader Shim is pre-built provided as a static IIFE resource:
418
419
 
419
- ```
420
+ ```fs
420
421
  build/
421
422
  └── assets
422
423
  └── prod
@@ -4,5 +4,5 @@
4
4
  * SPDX-License-Identifier: MIT
5
5
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
6
6
  */
7
- /* LWR Error Shim v0.12.0-alpha.0 */
7
+ /* LWR Error Shim v0.12.0-alpha.10 */
8
8
  !function(){"use strict";if(!(globalThis.LWR&&globalThis.LWR.define)){const o=new Error("The LWR application failed to bootstrap");if(!globalThis.LWR||!globalThis.LWR.onError)throw o;globalThis.LWR.onError(o)}}();
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: MIT
5
5
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
6
6
  */
7
- /* LWR Legacy Module Loader Shim v0.12.0-alpha.0 */
7
+ /* LWR Legacy Module Loader Shim v0.12.0-alpha.10 */
8
8
  (function () {
9
9
  'use strict';
10
10
 
@@ -207,7 +207,7 @@
207
207
  // Parse configuration
208
208
  this.global = global;
209
209
  this.config = global.LWR ;
210
- this.loaderModule = 'lwr/loaderLegacy/v/0_12_0-alpha_0';
210
+ this.loaderModule = 'lwr/loaderLegacy/v/0_12_0-alpha_10';
211
211
 
212
212
  // Set up error handler
213
213
  this.errorHandler = this.config.onError;
@@ -327,7 +327,7 @@
327
327
  const exporter = (exports) => {
328
328
  Object.assign(exports, { logOperationStart, logOperationEnd });
329
329
  };
330
- globalLWR.define('lwr/profiler/v/0_12_0-alpha_0', ['exports'], exporter, {});
330
+ globalLWR.define('lwr/profiler/v/0_12_0-alpha_10', ['exports'], exporter, {});
331
331
  }
332
332
 
333
333
  // Set up the application globals, import map, root custom element...
@@ -398,15 +398,14 @@
398
398
  // The loader module is ALWAYS required
399
399
  const GLOBAL = globalThis ;
400
400
  GLOBAL.LWR.requiredModules = GLOBAL.LWR.requiredModules || [];
401
- if (GLOBAL.LWR.requiredModules.indexOf('lwr/loaderLegacy/v/0_12_0-alpha_0') < 0) {
402
- GLOBAL.LWR.requiredModules.push('lwr/loaderLegacy/v/0_12_0-alpha_0');
401
+ if (GLOBAL.LWR.requiredModules.indexOf('lwr/loaderLegacy/v/0_12_0-alpha_10') < 0) {
402
+ GLOBAL.LWR.requiredModules.push('lwr/loaderLegacy/v/0_12_0-alpha_10');
403
403
  }
404
404
  new LoaderShim(GLOBAL);
405
405
 
406
406
  })();
407
- //# sourceMappingURL=lwr-loader-shim-legacy.js.map
408
407
 
409
- LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports) { 'use strict';
408
+ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_10', ['exports'], (function (exports) { 'use strict';
410
409
 
411
410
  const templateRegex = /\{([0-9]+)\}/g;
412
411
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -780,7 +779,7 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
780
779
  // swallow
781
780
  }
782
781
  const trusted = createPolicy('trusted', policyOptions);
783
- /*! version: 0.20.6 */
782
+ /*! version: 0.21.0 */
784
783
 
785
784
  /* global console,process */
786
785
 
@@ -975,19 +974,32 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
975
974
 
976
975
 
977
976
 
978
-
979
-
980
977
 
981
978
 
982
979
 
983
980
  class ModuleRegistry {
984
981
 
982
+
983
+
984
+ // A registry for named AMD defines containing the *metadata* of AMD module
985
+ __init() {this.namedDefineRegistry = new Map();}
986
+ // The evaluated module registry where the module identifier (name or URL?) is the key
987
+ __init2() {this.moduleRegistry = new Map();}
988
+ // Aliases of modules in the registry
989
+ __init3() {this.aliases = new Map();}
990
+
991
+
992
+
993
+
985
994
 
986
995
  constructor(config) {ModuleRegistry.prototype.__init.call(this);ModuleRegistry.prototype.__init2.call(this);ModuleRegistry.prototype.__init3.call(this);
987
996
  this.baseUrl = config.baseUrl || '';
988
997
  this.profiler = config.profiler;
989
998
  }
990
999
 
1000
+ /**
1001
+ * Module import
1002
+ */
991
1003
  async load(id, importer) {
992
1004
  const metadata = importer ? { importer } : {};
993
1005
  this.profiler.logOperationStart({
@@ -996,17 +1008,21 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
996
1008
  metadata,
997
1009
  });
998
1010
  const resolvedId = await this.resolve(id, importer);
999
- const moduleRecord = await this.getModuleRecord(resolvedId, id);
1011
+ const moduleRecord = this.getModuleRecord(resolvedId, id);
1012
+
1000
1013
  if (moduleRecord.evaluated) {
1001
1014
  return moduleRecord.module;
1002
1015
  } else {
1003
1016
  if (!moduleRecord.evaluationPromise) {
1004
- moduleRecord.evaluationPromise = this.topLevelEvaluation(moduleRecord);
1017
+ moduleRecord.evaluationPromise = this.evaluateModule(moduleRecord, {});
1005
1018
  }
1006
1019
  return moduleRecord.evaluationPromise;
1007
1020
  }
1008
1021
  }
1009
1022
 
1023
+ /**
1024
+ * Resolve id for a module
1025
+ */
1010
1026
  async resolve(id, importer) {
1011
1027
  const parentUrl = this.baseUrl; // only support baseUrl for now
1012
1028
 
@@ -1023,7 +1039,7 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1023
1039
  // eslint-disable-next-line no-await-in-loop
1024
1040
  result = isResponseAPromise(response) ? await response : response;
1025
1041
  }
1026
- if (!this.isValidResolveResponse(result)) {
1042
+ if (!isValidResolveResponse(result)) {
1027
1043
  throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);
1028
1044
  }
1029
1045
 
@@ -1104,6 +1120,9 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1104
1120
  return this.moduleRegistry.has(id);
1105
1121
  }
1106
1122
 
1123
+ /**
1124
+ * Module entry point LWR.define()
1125
+ */
1107
1126
  define(
1108
1127
  name,
1109
1128
  dependencies,
@@ -1218,24 +1237,10 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1218
1237
  }
1219
1238
  }
1220
1239
 
1221
-
1222
1240
  setImportResolver(resolver) {
1223
1241
  this.resolver = resolver;
1224
1242
  }
1225
1243
 
1226
-
1227
-
1228
- // A registry for named AMD defines containing the *metadata* of AMD module
1229
- __init() {this.namedDefineRegistry = new Map();}
1230
-
1231
- // The evaluated module registry where the module identifier (name or URL?) is the key
1232
- __init2() {this.moduleRegistry = new Map();}
1233
-
1234
- // Aliases of modules in the registry
1235
- __init3() {this.aliases = new Map();}
1236
-
1237
-
1238
-
1239
1244
  // Returns an existing module record by the resolvedId or aliased id
1240
1245
  getExistingModuleRecord(resolvedId, aliasId) {
1241
1246
  const moduleRecord = this.moduleRegistry.get(resolvedId);
@@ -1257,7 +1262,8 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1257
1262
  return moduleRecord;
1258
1263
  }
1259
1264
 
1260
- async getModuleRecord(resolvedId, id) {
1265
+ // Module Records Inflight Cache
1266
+ getModuleRecord(resolvedId, id) {
1261
1267
  // Look for an existing record
1262
1268
  const existingRecord = this.getExistingModuleRecord(resolvedId, id);
1263
1269
  if (existingRecord) {
@@ -1265,37 +1271,17 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1265
1271
  return existingRecord;
1266
1272
  }
1267
1273
 
1268
- // Create a new Module Record
1269
- const instantiation = this.getModuleDef(resolvedId, id);
1270
- const dependencyRecords = instantiation.then((moduleDef) => {
1271
- const dependencies = (moduleDef && moduleDef.dependencies) || [];
1272
- // get dep and filter out exports
1273
- const filtered = dependencies
1274
- .map((dep) => {
1275
- if (dep === 'exports') {
1276
- return;
1277
- }
1278
- invariant(dep !== 'require', NO_AMD_REQUIRE);
1279
- return this.getModuleDependencyRecord.call(this, dep);
1280
- })
1281
- .filter((depRecord) => depRecord !== undefined) ;
1282
-
1283
- return Promise.all(filtered);
1284
- });
1285
-
1286
1274
  const newModuleRecord = {
1287
1275
  id: resolvedId,
1288
1276
  module: Object.create(null),
1289
- dependencyRecords,
1290
- instantiation,
1277
+ instantiation: this.getModuleDef(resolvedId, id),
1291
1278
  evaluated: false,
1292
1279
  evaluationPromise: null,
1293
1280
  };
1294
1281
  this.moduleRegistry.set(resolvedId, newModuleRecord);
1295
1282
  this.storeModuleAlias(id, resolvedId);
1296
1283
 
1297
- // Wait for the dependencies to resolve the return the moduleRecord
1298
- return dependencyRecords.then(() => newModuleRecord);
1284
+ return newModuleRecord;
1299
1285
  }
1300
1286
 
1301
1287
  storeModuleAlias(aliasId, resolvedId) {
@@ -1315,96 +1301,85 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1315
1301
  }
1316
1302
  }
1317
1303
 
1318
- async getModuleDependencyRecord(dependency) {
1319
- const resolvedDepId = await this.resolve(dependency);
1320
- return this.getModuleRecord(resolvedDepId, dependency);
1321
- }
1304
+ /**
1305
+ * Evaluate all module dependencies
1306
+ */
1307
+ async evaluateDependencies(
1308
+ dependencies,
1309
+ evaluationMap,
1310
+ ) {
1311
+ const exports = {};
1312
+ const promiseArray = [];
1313
+ if (dependencies) {
1314
+ for (const dep of dependencies) {
1315
+ if (dep === 'exports') {
1316
+ promiseArray.push(Promise.resolve(exports));
1317
+ } else {
1318
+ invariant(dep !== 'require', NO_AMD_REQUIRE);
1319
+ promiseArray.push(this.evaluateDependent(dep, evaluationMap));
1320
+ }
1321
+ }
1322
+ }
1322
1323
 
1323
- // execute the "top-level code" (the code outside of functions) of a module
1324
- async topLevelEvaluation(moduleRecord) {
1325
- await this.instantiateAll(moduleRecord, {});
1326
- return this.evaluateModule(moduleRecord, {});
1324
+ return Promise.all(promiseArray).then((results) => {
1325
+ const depsMapped = results.filter((result) => result !== undefined);
1326
+ return { depsMapped, exports };
1327
+ });
1327
1328
  }
1328
1329
 
1329
- // Returns a promise when a module and all of it's dependencies have finished instantiation
1330
- async instantiateAll(
1331
- moduleRecord,
1332
- instantiatedMap,
1333
- ) {
1334
- if (!instantiatedMap[moduleRecord.id]) {
1335
- instantiatedMap[moduleRecord.id] = true;
1336
- const dependencyModuleRecords = await moduleRecord.dependencyRecords;
1337
- if (dependencyModuleRecords) {
1338
- for (let i = 0; i < dependencyModuleRecords.length; i++) {
1339
- const depRecord = dependencyModuleRecords[i];
1340
- // eslint-disable-next-line no-await-in-loop
1341
- await this.instantiateAll(depRecord, instantiatedMap);
1342
- }
1330
+ async evaluateDependent(dep, evaluationMap) {
1331
+ const resolvedDepId = await this.resolve(dep);
1332
+
1333
+ const depModuleRecord = this.getModuleRecord(resolvedDepId, dep);
1334
+ let module = depModuleRecord.module;
1335
+ const handleReturn = (module) => {
1336
+ if (module) {
1337
+ return module.__defaultInterop ? module.default : module;
1343
1338
  }
1339
+ throw new LoaderError(FAILED_DEP, [resolvedDepId]);
1340
+ };
1341
+
1342
+ // If evaluated return the module
1343
+ if (depModuleRecord.evaluated) {
1344
+ return handleReturn(module);
1345
+ }
1346
+ /**
1347
+ * Circular dependencies are handled properly when named exports are used,
1348
+ * however, for default exports there is a bug: https://github.com/rollup/rollup/issues/3384
1349
+ *
1350
+ * The workaround below applies for circular dependencies (!moduleRecord.evaluated)
1351
+ */
1352
+ if (!evaluationMap[depModuleRecord.id]) {
1353
+ // If we have not started dependency evaluation kick it off
1354
+ if (!depModuleRecord.evaluationPromise) {
1355
+ depModuleRecord.evaluationPromise = this.evaluateModule(depModuleRecord, evaluationMap);
1356
+ }
1357
+ return depModuleRecord.evaluationPromise.then((module) => {
1358
+ return handleReturn(module);
1359
+ });
1360
+ } else {
1361
+ // Otherwise return a dummy circular module wrapper
1362
+ module = getCircularDependencyWrapper(module);
1344
1363
  }
1364
+ return handleReturn(module);
1345
1365
  }
1346
1366
 
1347
1367
  async evaluateModule(
1348
1368
  moduleRecord,
1349
1369
  evaluationMap,
1350
1370
  ) {
1351
- const dependencyModuleRecords = await moduleRecord.dependencyRecords;
1352
- if (dependencyModuleRecords.length > 0) {
1353
- evaluationMap[moduleRecord.id] = true;
1354
- // evaluate dependencies first
1355
- await this.evaluateModuleDependencies(dependencyModuleRecords, evaluationMap);
1356
- }
1371
+ // Create a evaluationMap to detect cycles in this dep chain
1372
+ const chainMap = { ...evaluationMap };
1373
+ chainMap[moduleRecord.id] = true;
1357
1374
 
1375
+ // Wait for load to finish
1358
1376
  const { exporter, dependencies } = await moduleRecord.instantiation;
1359
- // The exports object automatically gets filled in by the exporter evaluation
1360
- const exports = {};
1361
- const depsMapped = dependencies
1362
- ? await Promise.all(
1363
- dependencies.map(async (dep) => {
1364
- if (dep === 'exports') {
1365
- return exports;
1366
- }
1367
- const resolvedDepId = await this.resolve(dep);
1368
-
1369
- const moduleRecord = this.moduleRegistry.get(resolvedDepId) ;
1370
- if (!moduleRecord) {
1371
- throw new LoaderError(FAILED_DEP, [resolvedDepId]);
1372
- }
1373
-
1374
- const module = moduleRecord.module;
1375
-
1376
- /**
1377
- * Circular dependencies are handled properly when named exports are used,
1378
- * however, for default exports there is a bug: https://github.com/rollup/rollup/issues/3384
1379
- *
1380
- * The workaround below applies for circular dependencies (!moduleRecord.evaluated)
1381
- */
1382
- if (!moduleRecord.evaluated) {
1383
- return this.getCircularDependencyWrapper(module);
1384
- }
1385
-
1386
- if (module) {
1387
- return module.__defaultInterop ? module.default : module;
1388
- }
1389
-
1390
- throw new LoaderError(FAILED_DEP, [resolvedDepId]);
1391
- }),
1392
- )
1393
- : [];
1394
-
1395
- // W-10029836 - In the case where we could be instantiating multiple graphs at the same time lets make sure the module have not already been evaluated
1396
- if (moduleRecord.evaluated) {
1397
- return moduleRecord.module;
1398
- }
1399
1377
 
1400
- // evaluates the module function
1401
- let moduleDefault;
1402
- try {
1403
- moduleDefault = exporter(...depsMapped);
1404
- } catch (e) {
1405
- throw new LoaderError(EXPORTER_ERROR, [moduleRecord.id, e.message || e]);
1406
- }
1378
+ // Evaluate all it's dependents
1379
+ const { depsMapped, exports } = await this.evaluateDependencies(dependencies, chainMap);
1407
1380
 
1381
+ // evaluates the module function
1382
+ let moduleDefault = this.evaluateModuleCode(exporter, depsMapped, moduleRecord);
1408
1383
  // value is returned from exporter, then we are not using named exports
1409
1384
  if (moduleDefault !== undefined) {
1410
1385
  moduleDefault = { default: moduleDefault };
@@ -1416,7 +1391,7 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1416
1391
  // if no return value, then we are using the exports object
1417
1392
  else {
1418
1393
  // handle only default export with Rollup forced named exports
1419
- if (this.isNamedExportDefaultOnly(exports)) {
1394
+ if (isNamedExportDefaultOnly(exports)) {
1420
1395
  Object.defineProperty(exports, '__useDefault', { value: true });
1421
1396
  }
1422
1397
  }
@@ -1448,42 +1423,17 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1448
1423
  Object.defineProperty(moduleRecord.module, '__esModule', { value: true });
1449
1424
  }
1450
1425
 
1451
- moduleRecord.evaluated = true;
1452
1426
  Object.freeze(moduleRecord.module);
1427
+ moduleRecord.evaluated = true;
1428
+ moduleRecord.evaluationPromise = null;
1453
1429
  return moduleRecord.module;
1454
1430
  }
1455
1431
 
1456
- // Determines if named exports module has only default export
1457
- isNamedExportDefaultOnly(exports) {
1458
- return (
1459
- exports !== undefined &&
1460
- Object.getOwnPropertyNames(exports).length === 2 &&
1461
- Object.prototype.hasOwnProperty.call(exports, 'default') &&
1462
- Object.prototype.hasOwnProperty.call(exports, '__esModule')
1463
- );
1464
- }
1465
-
1466
- // Wrap the dependency in a function that can be called and detected by __circular__ property.
1467
- // The LWC engine checks for __circular__ to detect circular dependencies.
1468
- getCircularDependencyWrapper(module) {
1469
- const tmp = () => {
1470
- return module.__useDefault || module.__defaultInterop ? module.default : module;
1471
- };
1472
- tmp.__circular__ = true;
1473
- return tmp;
1474
- }
1475
-
1476
- async evaluateModuleDependencies(
1477
- dependencyModuleRecords,
1478
- evaluationMap,
1479
- ) {
1480
- for (let i = 0; i < dependencyModuleRecords.length; i++) {
1481
- const depRecord = dependencyModuleRecords[i];
1482
- if (!depRecord.evaluated && !evaluationMap[depRecord.id]) {
1483
- evaluationMap[depRecord.id] = true;
1484
- // eslint-disable-next-line no-await-in-loop
1485
- await this.evaluateModule(depRecord, evaluationMap);
1486
- }
1432
+ evaluateModuleCode(evaluatedExporter, depsMapped, moduleRecord) {
1433
+ try {
1434
+ return evaluatedExporter(...depsMapped);
1435
+ } catch (e) {
1436
+ throw new LoaderError(EXPORTER_ERROR, [moduleRecord.id, e.message || e]);
1487
1437
  }
1488
1438
  }
1489
1439
 
@@ -1563,8 +1513,6 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1563
1513
  });
1564
1514
  }
1565
1515
 
1566
-
1567
-
1568
1516
  addLoaderPlugin(hooks) {
1569
1517
  if (typeof hooks !== 'object') {
1570
1518
  throw new LoaderError(INVALID_HOOK);
@@ -1587,7 +1535,6 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1587
1535
  }
1588
1536
  }
1589
1537
 
1590
-
1591
1538
  registerHandleStaleModuleHook(handleStaleModule) {
1592
1539
  if (this.handleStaleModuleHook) {
1593
1540
  this.handleStaleModuleHook.push(handleStaleModule);
@@ -1595,12 +1542,30 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1595
1542
  this.handleStaleModuleHook = [handleStaleModule];
1596
1543
  }
1597
1544
  }
1545
+ }
1598
1546
 
1599
- isValidResolveResponse(res) {
1600
- return (
1601
- res === null || typeof res === 'string' || (res && typeof (res ).url === 'string')
1602
- );
1603
- }
1547
+ function isValidResolveResponse(res) {
1548
+ return res === null || typeof res === 'string' || (res && typeof (res ).url === 'string');
1549
+ }
1550
+
1551
+ // Determines if named exports module has only default export
1552
+ function isNamedExportDefaultOnly(exports) {
1553
+ return (
1554
+ exports !== undefined &&
1555
+ Object.getOwnPropertyNames(exports).length === 2 &&
1556
+ Object.prototype.hasOwnProperty.call(exports, 'default') &&
1557
+ Object.prototype.hasOwnProperty.call(exports, '__esModule')
1558
+ );
1559
+ }
1560
+
1561
+ // Wrap the dependency in a function that can be called and detected by __circular__ property.
1562
+ // The LWC engine checks for __circular__ to detect circular dependencies.
1563
+ function getCircularDependencyWrapper(module) {
1564
+ const tmp = () => {
1565
+ return module.__useDefault || module.__defaultInterop ? module.default : module;
1566
+ };
1567
+ tmp.__circular__ = true;
1568
+ return tmp;
1604
1569
  }
1605
1570
 
1606
1571
  // find the longest set of segments from path which are a key in matchObj
@@ -1615,7 +1580,7 @@ LWR.define('lwr/loaderLegacy/v/0_12_0-alpha_0', ['exports'], (function (exports)
1615
1580
  if (segment in matchObj) {
1616
1581
  return segment;
1617
1582
  }
1618
- } while ((sepIndex = path.lastIndexOf('/', sepIndex - 1)) !== -1);
1583
+ } while (path.length > 1 && (sepIndex = path.lastIndexOf('/', sepIndex - 1)) !== -1);
1619
1584
  }
1620
1585
  function targetWarning(match, target, msg) {
1621
1586
  if (hasConsole) {
@@ -4,8 +4,8 @@
4
4
  * SPDX-License-Identifier: MIT
5
5
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
6
6
  */
7
- /* LWR Legacy Module Loader Shim v0.12.0-alpha.0 */
8
- !function(){"use strict";var e=function(e){return e[e.Start=0]="Start",e[e.End=1]="End",e}(e||{});let t;function r(e){t=e}const o=globalThis.performance,s=void 0!==o&&"function"==typeof o.mark&&"function"==typeof o.clearMarks&&"function"==typeof o.measure&&"function"==typeof o.clearMeasures;function n(e,t){return t?`${e}-${t}`:e}function i(e,t,r){const o=n(e,t);return t&&r?`${o}_${r}`:o}function a(e,t){const r=e||t?{...t}:null;return r&&e&&(r.specifier=e),r}function l({id:r,specifier:n,specifierIndex:l,metadata:d}){if(t)t({id:r,phase:e.Start,specifier:n,metadata:d});else if(s){const e=i(r,n,l),t=a(n,d);o.mark(e,{detail:t})}}function d({id:r,specifier:l,specifierIndex:d,metadata:c}){if(t)t({id:r,phase:e.End,specifier:l,metadata:c});else if(s){const e=i(r,l,d),t=n(r,l),s=a(l,c);o.measure(t,{start:e,detail:s}),o.clearMarks(e),o.clearMeasures(t)}}function c(e,t,o,s){const{autoBoot:n,customInit:i}=e;if(function(e,t){if(!e&&!t)throw new Error("The customInit hook is required when autoBoot is false");if(e&&t)throw new Error("The customInit hook must not be defined when autoBoot is true")}(n,i),i){i({initializeApp:t,define:o,onBootstrapError:s,attachDispatcher:r},e)}}const u="function"==typeof setTimeout,p="undefined"!=typeof console;class f{__init(){this.defineCache={}}__init2(){this.orderedDefs=[]}constructor(e){f.prototype.__init.call(this),f.prototype.__init2.call(this),u&&(this.watchdogTimerId=this.startWatchdogTimer()),this.global=e,this.config=e.LWR,this.loaderModule="lwr/loaderLegacy/v/0_12_0-alpha_0",this.errorHandler=this.config.onError;const t=this.tempDefine.bind(this);e.LWR.define=t,this.bootReady=this.config.autoBoot;try{this.createProfilerModule(this.config),c(Object.freeze(this.config),this.postCustomInit.bind(this),t,(e=>{this.errorHandler=e}))}catch(e){this.enterErrorState(e)}}canInit(){const e=this.config.requiredModules.every((e=>this.orderedDefs.includes(e)));return this.bootReady&&e}tempDefine(...e){const t=e[0];this.defineCache[t]=e,this.orderedDefs.push(t),this.canInit()&&(u&&clearTimeout(this.watchdogTimerId),this.initApp())}postCustomInit(){this.bootReady=!0,this.canInit()&&this.initApp()}initApp(){try{const e={baseUrl:this.config.baseUrl,profiler:{logOperationStart:l,logOperationEnd:d},serverData:this.config.serverData,appMetadata:{appId:this.config.appId,bootstrapModule:this.config.bootstrapModule,rootComponent:this.config.rootComponent,rootComponents:this.config.rootComponents}},t=function(e,t,r,o){if(!t||"function"!=typeof t[2])throw new Error(`Expected loader with specifier "${e}" to be a module`);const s={};t[2].call(null,s);const{Loader:n}=s,i=new n(r);return o&&o.length&&i.registerExternalModules(o),i.define(e,["exports"],(e=>{Object.assign(e,{define:i.define.bind(i),load:i.load.bind(i),services:i.services})}),t[3]),i}(this.loaderModule,this.defineCache[this.loaderModule],e,this.config.preloadModules);this.mountApp(t)}catch(e){this.enterErrorState(e)}}waitForDOMContentLoaded(){return void 0===typeof document||"interactive"===document.readyState||"complete"===document.readyState?Promise.resolve():new Promise((e=>{document.addEventListener("DOMContentLoaded",(()=>{e()}))}))}createProfilerModule(e){e.define("lwr/profiler/v/0_12_0-alpha_0",["exports"],(e=>{Object.assign(e,{logOperationStart:l,logOperationEnd:d})}),{})}mountApp(e){const{bootstrapModule:t,rootComponent:r,importMappings:o,rootComponents:s,serverData:n,endpoints:i}=this.config;this.global.LWR=Object.freeze({define:e.define.bind(e),rootComponent:r,rootComponents:s,serverData:n,importMappings:o,endpoints:i}),this.orderedDefs.forEach((t=>{t!==this.loaderModule&&e.define(...this.defineCache[t])}));const{disableInitDefer:a}=this.config;e.registerImportMappings(o).then((()=>{if(!a)return this.waitForDOMContentLoaded()})).then((()=>e.load(t))).catch((e=>{this.enterErrorState(new Error(`Application ${r||t} could not be loaded: ${e}`))}))}enterErrorState(e){l({id:"lwr.bootstrap.error"}),this.errorHandler?this.errorHandler(e):p&&console.error(`An error occurred during LWR bootstrap. ${e.message}`,e.stack)}startWatchdogTimer(){return setTimeout((()=>{this.enterErrorState(new Error("Failed to load required modules - timed out"))}),6e4)}}const h=globalThis;h.LWR.requiredModules=h.LWR.requiredModules||[],h.LWR.requiredModules.indexOf("lwr/loaderLegacy/v/0_12_0-alpha_0")<0&&h.LWR.requiredModules.push("lwr/loaderLegacy/v/0_12_0-alpha_0"),new f(h)}(),LWR.define("lwr/loaderLegacy/v/0_12_0-alpha_0",["exports"],(function(exports){"use strict";const templateRegex=/\{([0-9]+)\}/g;function templateString(e,t){return e.replace(templateRegex,((e,r)=>t[r]))}function generateErrorMessage(e,t){const r=Array.isArray(t)?templateString(e.message,t):e.message;return`LWR${e.code}: ${r}`}class LoaderError extends Error{constructor(e,t){super(),this.message=generateErrorMessage(e,t)}}function invariant(e,t){if(!e)throw new LoaderError(t)}const MISSING_NAME=Object.freeze({code:3e3,message:"A module name is required.",level:0}),FAIL_INSTANTIATE=Object.freeze({code:3004,message:"Failed to instantiate module: {0}",level:0}),NO_AMD_REQUIRE=Object.freeze({code:3005,message:"AMD require not supported.",level:0}),FAILED_DEP=Object.freeze({code:3006,level:0,message:"Failed to load dependency: {0}"}),INVALID_DEPS=Object.freeze({code:3007,message:"Unexpected value received for dependencies argument; expected an array.",level:0}),FAIL_LOAD=Object.freeze({code:3008,level:0,message:"Error loading {0}"}),UNRESOLVED=Object.freeze({code:3009,level:0,message:"Unable to resolve bare specifier: {0}"}),NO_BASE_URL=Object.freeze({code:3010,level:0,message:"baseUrl not set"});Object.freeze({code:3011,level:0,message:"Cannot set a loader service multiple times"});const INVALID_HOOK=Object.freeze({code:3012,level:0,message:"Invalid hook received"}),INVALID_LOADER_SERVICE_RESPONSE=Object.freeze({code:3013,level:0,message:"Invalid response received from hook"}),MODULE_LOAD_TIMEOUT=Object.freeze({code:3014,level:0,message:"Error loading {0} - timed out"}),HTTP_FAIL_LOAD=Object.freeze({code:3015,level:0,message:"Error loading {0}, status code {1}"}),STALE_HOOK_ERROR=Object.freeze({code:3016,level:0,message:"An error occurred handling module conflict"});Object.freeze({code:3017,level:0,message:"Marking module(s) as externally loaded, but they are already loaded: {0}"});const FAIL_HOOK_LOAD=Object.freeze({code:3018,level:0,message:'Error loading "{0}" from hook'}),EXPORTER_ERROR=Object.freeze({code:3021,level:0,message:'Error evaluating module "{0}", error was {1}'}),BAD_IMPORT_MAP=Object.freeze({code:3011,level:0,message:"import map is not valid"}),hasDocument="undefined"!=typeof document,hasSetTimeout="function"==typeof setTimeout,hasConsole="undefined"!=typeof console;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 s=o.slice(0,o.lastIndexOf("/")+1)+e,n=[];let i=-1;for(let e=0;e<s.length;e++)-1!==i?"/"===s[e]&&(n.push(s.slice(i,e+1)),i=-1):"."===s[e]?"."!==s[e+1]||"/"!==s[e+2]&&e+2!==s.length?"/"===s[e+1]||e+1===s.length?e+=1:i=e:(n.pop(),e+=2):i=e;return-1!==i&&n.push(s.slice(i)),t.slice(0,t.length-o.length)+n.join("")}}function resolveUrl(e,t){return resolveIfNotPlainOrUrl(e,t)||(isUrl(e)?e:resolveIfNotPlainOrUrl("./"+e,t))}function createScript(e){const t=document.createElement("script");return t.async=!0,t.crossOrigin="anonymous",t.src=e,t}let lastWindowError$1,lastWindowErrorUrl;function loadModuleDef(e){return new Promise((function(t,r){if(hasDocument){const o=createScript(e);o.addEventListener("error",(()=>{r(new LoaderError(FAIL_LOAD,[e]))})),o.addEventListener("load",(()=>{document.head.removeChild(o),lastWindowErrorUrl===e?r(lastWindowError$1):t()})),document.head.appendChild(o)}}))}hasDocument&&window.addEventListener("error",(e=>{lastWindowErrorUrl=e.filename,lastWindowError$1=e.error}));const MODULE_LOAD_TIMEOUT_TIMER=6e4,SUPPORTS_TRUSTED_TYPES="undefined"!=typeof trustedTypes;
7
+ /* LWR Legacy Module Loader Shim v0.12.0-alpha.10 */
8
+ !function(){"use strict";var e=function(e){return e[e.Start=0]="Start",e[e.End=1]="End",e}(e||{});let t;function r(e){t=e}const o=globalThis.performance,s=void 0!==o&&"function"==typeof o.mark&&"function"==typeof o.clearMarks&&"function"==typeof o.measure&&"function"==typeof o.clearMeasures;function n(e,t){return t?`${e}-${t}`:e}function i(e,t,r){const o=n(e,t);return t&&r?`${o}_${r}`:o}function a(e,t){const r=e||t?{...t}:null;return r&&e&&(r.specifier=e),r}function l({id:r,specifier:n,specifierIndex:l,metadata:d}){if(t)t({id:r,phase:e.Start,specifier:n,metadata:d});else if(s){const e=i(r,n,l),t=a(n,d);o.mark(e,{detail:t})}}function d({id:r,specifier:l,specifierIndex:d,metadata:c}){if(t)t({id:r,phase:e.End,specifier:l,metadata:c});else if(s){const e=i(r,l,d),t=n(r,l),s=a(l,c);o.measure(t,{start:e,detail:s}),o.clearMarks(e),o.clearMeasures(t)}}function c(e,t,o,s){const{autoBoot:n,customInit:i}=e;if(function(e,t){if(!e&&!t)throw new Error("The customInit hook is required when autoBoot is false");if(e&&t)throw new Error("The customInit hook must not be defined when autoBoot is true")}(n,i),i){i({initializeApp:t,define:o,onBootstrapError:s,attachDispatcher:r},e)}}const u="function"==typeof setTimeout,p="undefined"!=typeof console;class f{__init(){this.defineCache={}}__init2(){this.orderedDefs=[]}constructor(e){f.prototype.__init.call(this),f.prototype.__init2.call(this),u&&(this.watchdogTimerId=this.startWatchdogTimer()),this.global=e,this.config=e.LWR,this.loaderModule="lwr/loaderLegacy/v/0_12_0-alpha_10",this.errorHandler=this.config.onError;const t=this.tempDefine.bind(this);e.LWR.define=t,this.bootReady=this.config.autoBoot;try{this.createProfilerModule(this.config),c(Object.freeze(this.config),this.postCustomInit.bind(this),t,(e=>{this.errorHandler=e}))}catch(e){this.enterErrorState(e)}}canInit(){const e=this.config.requiredModules.every((e=>this.orderedDefs.includes(e)));return this.bootReady&&e}tempDefine(...e){const t=e[0];this.defineCache[t]=e,this.orderedDefs.push(t),this.canInit()&&(u&&clearTimeout(this.watchdogTimerId),this.initApp())}postCustomInit(){this.bootReady=!0,this.canInit()&&this.initApp()}initApp(){try{const e={baseUrl:this.config.baseUrl,profiler:{logOperationStart:l,logOperationEnd:d},serverData:this.config.serverData,appMetadata:{appId:this.config.appId,bootstrapModule:this.config.bootstrapModule,rootComponent:this.config.rootComponent,rootComponents:this.config.rootComponents}},t=function(e,t,r,o){if(!t||"function"!=typeof t[2])throw new Error(`Expected loader with specifier "${e}" to be a module`);const s={};t[2].call(null,s);const{Loader:n}=s,i=new n(r);return o&&o.length&&i.registerExternalModules(o),i.define(e,["exports"],(e=>{Object.assign(e,{define:i.define.bind(i),load:i.load.bind(i),services:i.services})}),t[3]),i}(this.loaderModule,this.defineCache[this.loaderModule],e,this.config.preloadModules);this.mountApp(t)}catch(e){this.enterErrorState(e)}}waitForDOMContentLoaded(){return void 0===typeof document||"interactive"===document.readyState||"complete"===document.readyState?Promise.resolve():new Promise((e=>{document.addEventListener("DOMContentLoaded",(()=>{e()}))}))}createProfilerModule(e){e.define("lwr/profiler/v/0_12_0-alpha_10",["exports"],(e=>{Object.assign(e,{logOperationStart:l,logOperationEnd:d})}),{})}mountApp(e){const{bootstrapModule:t,rootComponent:r,importMappings:o,rootComponents:s,serverData:n,endpoints:i}=this.config;this.global.LWR=Object.freeze({define:e.define.bind(e),rootComponent:r,rootComponents:s,serverData:n,importMappings:o,endpoints:i}),this.orderedDefs.forEach((t=>{t!==this.loaderModule&&e.define(...this.defineCache[t])}));const{disableInitDefer:a}=this.config;e.registerImportMappings(o).then((()=>{if(!a)return this.waitForDOMContentLoaded()})).then((()=>e.load(t))).catch((e=>{this.enterErrorState(new Error(`Application ${r||t} could not be loaded: ${e}`))}))}enterErrorState(e){l({id:"lwr.bootstrap.error"}),this.errorHandler?this.errorHandler(e):p&&console.error(`An error occurred during LWR bootstrap. ${e.message}`,e.stack)}startWatchdogTimer(){return setTimeout((()=>{this.enterErrorState(new Error("Failed to load required modules - timed out"))}),6e4)}}const h=globalThis;h.LWR.requiredModules=h.LWR.requiredModules||[],h.LWR.requiredModules.indexOf("lwr/loaderLegacy/v/0_12_0-alpha_10")<0&&h.LWR.requiredModules.push("lwr/loaderLegacy/v/0_12_0-alpha_10"),new f(h)}(),LWR.define("lwr/loaderLegacy/v/0_12_0-alpha_10",["exports"],(function(exports){"use strict";const templateRegex=/\{([0-9]+)\}/g;function templateString(e,t){return e.replace(templateRegex,((e,r)=>t[r]))}function generateErrorMessage(e,t){const r=Array.isArray(t)?templateString(e.message,t):e.message;return`LWR${e.code}: ${r}`}class LoaderError extends Error{constructor(e,t){super(),this.message=generateErrorMessage(e,t)}}function invariant(e,t){if(!e)throw new LoaderError(t)}const MISSING_NAME=Object.freeze({code:3e3,message:"A module name is required.",level:0}),FAIL_INSTANTIATE=Object.freeze({code:3004,message:"Failed to instantiate module: {0}",level:0}),NO_AMD_REQUIRE=Object.freeze({code:3005,message:"AMD require not supported.",level:0}),FAILED_DEP=Object.freeze({code:3006,level:0,message:"Failed to load dependency: {0}"}),INVALID_DEPS=Object.freeze({code:3007,message:"Unexpected value received for dependencies argument; expected an array.",level:0}),FAIL_LOAD=Object.freeze({code:3008,level:0,message:"Error loading {0}"}),UNRESOLVED=Object.freeze({code:3009,level:0,message:"Unable to resolve bare specifier: {0}"}),NO_BASE_URL=Object.freeze({code:3010,level:0,message:"baseUrl not set"});Object.freeze({code:3011,level:0,message:"Cannot set a loader service multiple times"});const INVALID_HOOK=Object.freeze({code:3012,level:0,message:"Invalid hook received"}),INVALID_LOADER_SERVICE_RESPONSE=Object.freeze({code:3013,level:0,message:"Invalid response received from hook"}),MODULE_LOAD_TIMEOUT=Object.freeze({code:3014,level:0,message:"Error loading {0} - timed out"}),HTTP_FAIL_LOAD=Object.freeze({code:3015,level:0,message:"Error loading {0}, status code {1}"}),STALE_HOOK_ERROR=Object.freeze({code:3016,level:0,message:"An error occurred handling module conflict"});Object.freeze({code:3017,level:0,message:"Marking module(s) as externally loaded, but they are already loaded: {0}"});const FAIL_HOOK_LOAD=Object.freeze({code:3018,level:0,message:'Error loading "{0}" from hook'}),EXPORTER_ERROR=Object.freeze({code:3021,level:0,message:'Error evaluating module "{0}", error was {1}'}),BAD_IMPORT_MAP=Object.freeze({code:3011,level:0,message:"import map is not valid"}),hasDocument="undefined"!=typeof document,hasSetTimeout="function"==typeof setTimeout,hasConsole="undefined"!=typeof console;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 s=o.slice(0,o.lastIndexOf("/")+1)+e,n=[];let i=-1;for(let e=0;e<s.length;e++)-1!==i?"/"===s[e]&&(n.push(s.slice(i,e+1)),i=-1):"."===s[e]?"."!==s[e+1]||"/"!==s[e+2]&&e+2!==s.length?"/"===s[e+1]||e+1===s.length?e+=1:i=e:(n.pop(),e+=2):i=e;return-1!==i&&n.push(s.slice(i)),t.slice(0,t.length-o.length)+n.join("")}}function resolveUrl(e,t){return resolveIfNotPlainOrUrl(e,t)||(isUrl(e)?e:resolveIfNotPlainOrUrl("./"+e,t))}function createScript(e){const t=document.createElement("script");return t.async=!0,t.crossOrigin="anonymous",t.src=e,t}let lastWindowError$1,lastWindowErrorUrl;function loadModuleDef(e){return new Promise((function(t,r){if(hasDocument){const o=createScript(e);o.addEventListener("error",(()=>{r(new LoaderError(FAIL_LOAD,[e]))})),o.addEventListener("load",(()=>{document.head.removeChild(o),lastWindowErrorUrl===e?r(lastWindowError$1):t()})),document.head.appendChild(o)}}))}hasDocument&&window.addEventListener("error",(e=>{lastWindowErrorUrl=e.filename,lastWindowError$1=e.error}));const MODULE_LOAD_TIMEOUT_TIMER=6e4,SUPPORTS_TRUSTED_TYPES="undefined"!=typeof trustedTypes;
9
9
  /*!
10
10
  * Copyright (C) 2023 salesforce.com, inc.
11
- */function createTrustedTypesPolicy(e,t){return trustedTypes.createPolicy(e,t)}function createFallbackPolicy(e,t){return t}const createPolicy=SUPPORTS_TRUSTED_TYPES?createTrustedTypesPolicy:createFallbackPolicy,policyOptions={createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e};try{createPolicy("default",{createHTML:e=>e,createScript(e){if("null"===e||"undefined"===e)return e},createScriptURL:e=>e})}catch(e){}const trusted=createPolicy("trusted",policyOptions);let lastWindowError;function isCustomResponse(e){return Object.prototype.hasOwnProperty.call(e,"data")&&!Object.prototype.hasOwnProperty.call(e,"blob")}function isFetchResponse(e){return"function"==typeof e.blob}function isResponseAPromise(e){return!(!e||!e.then)}async function evaluateLoadHookResponse(response,id){return Promise.resolve().then((async()=>{if(!response||!response.status)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(200!==response.status)throw new LoaderError(HTTP_FAIL_LOAD,[id,`${response.status}`]);const isResponse=isFetchResponse(response);let code;if(isCustomResponse(response))code=response.data;else{if(!isResponse)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);code=await response.text()}if(!code)throw new LoaderError(FAIL_LOAD,[id]);code=`${code}\n//# sourceURL=${id}`;try{eval(trusted.createScript(code))}catch(e){throw new LoaderError(FAIL_LOAD,[id])}if(lastWindowError)throw new LoaderError(FAIL_LOAD,[id]);return!0}))}async function evaluateLoadHook(e,t){return hasSetTimeout?new Promise(((r,o)=>{const s=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(s)}))})):t}function reportError(e){hasConsole&&console.error(e)}function evaluateHandleStaleModuleHooks(e,t){const{name:r,oldHash:o,newHash:s}=t;for(let t=0;t<e.length;t++){const n=e[t];try{if(null!==n({name:r,oldHash:o,newHash:s}))break}catch(e){reportError(new LoaderError(STALE_HOOK_ERROR))}}}hasDocument&&globalThis.addEventListener("error",(e=>{lastWindowError=e.error}));const LOADER_PREFIX="lwr.loader.",MODULE_DEFINE=`${LOADER_PREFIX}module.define`,MODULE_DYNAMIC_LOAD=`${LOADER_PREFIX}moduleRegistry.dynamicLoad`,MODULE_FETCH=`${LOADER_PREFIX}module.fetch`,MODULE_ERROR=`${LOADER_PREFIX}module.error`;class ModuleRegistry{constructor(e){ModuleRegistry.prototype.__init.call(this),ModuleRegistry.prototype.__init2.call(this),ModuleRegistry.prototype.__init3.call(this),this.baseUrl=e.baseUrl||"",this.profiler=e.profiler}async load(e,t){const r=t?{importer:t}:{};this.profiler.logOperationStart({id:MODULE_DYNAMIC_LOAD,specifier:e,metadata:r});const o=await this.resolve(e,t),s=await this.getModuleRecord(o,e);return s.evaluated?s.module:(s.evaluationPromise||(s.evaluationPromise=this.topLevelEvaluation(s)),s.evaluationPromise)}async resolve(e,t){const r=this.baseUrl;let o,s=e;const n=this.resolveHook;let i=!0;if(n){for(let e=0;e<n.length;e++){const t=(0,n[e])(s,{parentUrl:r});let i;if((t||null===t)&&(i=isResponseAPromise(t)?await t:t),!this.isValidResolveResponse(i))throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(null!==i){if("string"==typeof i){if(resolveIfNotPlainOrUrl(i,r))throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);s=i;continue}if(o=i&&i.url&&(resolveIfNotPlainOrUrl(i.url,r)||i.url),!o)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);break}}if(s!==e){if(!o&&this.namedDefineRegistry.has(s))return s;e=s}}if(!o){const t=resolveIfNotPlainOrUrl(e,r)||e;if(this.moduleRegistry.has(t))return t;if(this.resolver){const e=this.resolver.resolve(t,r);if(o=e&&e.uri,i=e?!!e.defaultUri:i,this.namedDefineRegistry.has(t)){const e=this.namedDefineRegistry.get(t);if(e.external||e.defined){if(!this.moduleRegistry.get(o)||!this.aliases.has(t))return t}}}else o=t}if(!o||!isUrl(o)){if(this.namedDefineRegistry.has(e))return e;throw new LoaderError(UNRESOLVED,[e])}return i&&t&&isUrl(o)&&(o+=`?importer=${encodeURIComponent(t)}`),o}has(e){return this.moduleRegistry.has(e)}define(e,t,r,o){const s=this.namedDefineRegistry.get(e);if(s&&s.defined)return void(this.lastDefine=s);const n={name:e,dependencies:t,exporter:r,signatures:o,defined:!0};s&&s.external&&s.external.resolveExternal(n),this.profiler.logOperationStart({id:MODULE_DEFINE,specifier:e}),this.namedDefineRegistry.set(e,n),this.lastDefine=n,o.hashes&&Object.entries(o.hashes).forEach((([e,t])=>{this.checkModuleSignature(e,t)}))}registerExternalModules(e){e.map((e=>{if(!this.namedDefineRegistry.has(e)){let t,r;const o=new Promise(((o,s)=>{t=o,r=setTimeout((()=>{s(new LoaderError(MODULE_LOAD_TIMEOUT,[e]))}),MODULE_LOAD_TIMEOUT_TIMER)})).finally((()=>{clearTimeout(r)})),s={name:e,defined:!1,external:{resolveExternal:t,moduleDefPromise:o}};this.namedDefineRegistry.set(e,s)}}))}checkModuleSignature(e,t){const r=this.namedDefineRegistry.get(e);if(!r){const r={name:e,signatures:{ownHash:t},defined:!1};return void this.namedDefineRegistry.set(e,r)}const o=r.signatures?r.signatures.ownHash:void 0;if(o&&t!==o){const r=this.handleStaleModuleHook;r&&evaluateHandleStaleModuleHooks(r,{name:e,oldHash:o,newHash:t})}}setImportResolver(e){this.resolver=e}__init(){this.namedDefineRegistry=new Map}__init2(){this.moduleRegistry=new Map}__init3(){this.aliases=new Map}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}async getModuleRecord(e,t){const r=this.getExistingModuleRecord(e,t);if(r)return r;const o=this.getModuleDef(e,t),s=o.then((e=>{const t=(e&&e.dependencies||[]).map((e=>{if("exports"!==e)return invariant("require"!==e,NO_AMD_REQUIRE),this.getModuleDependencyRecord.call(this,e)})).filter((e=>void 0!==e));return Promise.all(t)})),n={id:e,module:Object.create(null),dependencyRecords:s,instantiation:o,evaluated:!1,evaluationPromise:null};return this.moduleRegistry.set(e,n),this.storeModuleAlias(t,e),s.then((()=>n))}storeModuleAlias(e,t){e!==t&&(this.aliases.has(e)?hasConsole&&this.aliases.get(e):this.aliases.set(e,t))}async getModuleDependencyRecord(e){const t=await this.resolve(e);return this.getModuleRecord(t,e)}async topLevelEvaluation(e){return await this.instantiateAll(e,{}),this.evaluateModule(e,{})}async instantiateAll(e,t){if(!t[e.id]){t[e.id]=!0;const r=await e.dependencyRecords;if(r)for(let e=0;e<r.length;e++){const o=r[e];await this.instantiateAll(o,t)}}}async evaluateModule(e,t){const r=await e.dependencyRecords;r.length>0&&(t[e.id]=!0,await this.evaluateModuleDependencies(r,t));const{exporter:o,dependencies:s}=await e.instantiation,n={},i=s?await Promise.all(s.map((async e=>{if("exports"===e)return n;const t=await this.resolve(e),r=this.moduleRegistry.get(t);if(!r)throw new LoaderError(FAILED_DEP,[t]);const o=r.module;if(!r.evaluated)return this.getCircularDependencyWrapper(o);if(o)return o.__defaultInterop?o.default:o;throw new LoaderError(FAILED_DEP,[t])}))):[];if(e.evaluated)return e.module;let a;try{a=o(...i)}catch(t){throw new LoaderError(EXPORTER_ERROR,[e.id,t.message||t])}void 0!==a?(a={default:a},Object.defineProperty(a,"__defaultInterop",{value:!0})):this.isNamedExportDefaultOnly(n)&&Object.defineProperty(n,"__useDefault",{value:!0});const l=a||n;for(const t in l)Object.defineProperty(e.module,t,{enumerable:!0,set(e){l[t]=e},get:()=>l[t]});return l.__useDefault&&Object.defineProperty(e.module,"__useDefault",{value:!0}),l.__defaultInterop&&Object.defineProperty(e.module,"__defaultInterop",{value:!0}),l.__esModule&&Object.defineProperty(e.module,"__esModule",{value:!0}),e.evaluated=!0,Object.freeze(e.module),e.module}isNamedExportDefaultOnly(e){return void 0!==e&&2===Object.getOwnPropertyNames(e).length&&Object.prototype.hasOwnProperty.call(e,"default")&&Object.prototype.hasOwnProperty.call(e,"__esModule")}getCircularDependencyWrapper(e){const t=()=>e.__useDefault||e.__defaultInterop?e.default:e;return t.__circular__=!0,t}async evaluateModuleDependencies(e,t){for(let r=0;r<e.length;r++){const o=e[r];o.evaluated||t[o.id]||(t[o.id]=!0,await this.evaluateModule(o,t))}}async getModuleDef(e,t){this.lastDefine=void 0;const r=isUrl(e)?t!==e?t:void 0:e;let o=r&&this.namedDefineRegistry.get(r);if(o&&o.external)return o.external.moduleDefPromise;if(o&&o.defined)return o;const s=this.baseUrl,n=r||t;return this.profiler.logOperationStart({id:MODULE_FETCH,specifier:n}),Promise.resolve().then((async()=>{const t=this.loadHook;if(t)for(let r=0;r<t.length;r++){const o=(0,t[r])(e,s),n=isResponseAPromise(o)?await evaluateLoadHook(e,o):o;if(void 0===n)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(n&&null!==n)return evaluateLoadHookResponse(n,e)}return!1})).then((t=>{if(!0!==t&&hasDocument)return loadModuleDef(e)})).then((()=>{if(o=r&&this.namedDefineRegistry.get(r),o||(o=this.lastDefine),!o)throw new LoaderError(FAIL_INSTANTIATE,[e]);return this.profiler.logOperationEnd({id:MODULE_FETCH,specifier:n}),o})).catch((e=>{throw e instanceof LoaderError||this.profiler.logOperationStart({id:MODULE_ERROR,specifier:n}),e}))}addLoaderPlugin(e){if("object"!=typeof e)throw new LoaderError(INVALID_HOOK);const{loadModule:t,resolveModule:r}=e;r&&(this.resolveHook?this.resolveHook.push(r):this.resolveHook=[r]),t&&(this.loadHook?this.loadHook.push(t):this.loadHook=[t])}registerHandleStaleModuleHook(e){this.handleStaleModuleHook?this.handleStaleModuleHook.push(e):this.handleStaleModuleHook=[e]}isValidResolveResponse(e){return null===e||"string"==typeof e||e&&"string"==typeof e.url}}function getMatch(e,t){if(t[e])return e;let r=e.length;do{const o=e.slice(0,r+1);if(o in t)return o}while(-1!==(r=e.lastIndexOf("/",r-1)))}function targetWarning(e,t,r){hasConsole&&console.warn("Package target "+r+", resolving target '"+t+"' for "+e)}function applyPackages(e,t,r){const o=getMatch(e,t);if(o){const r=t[o];if(null===r)return;if(!(e.length>o.length&&"/"!==r[r.length-1])){if(e.length>o.length&&"/"===r[r.length-1]&&r.lastIndexOf(o)===r.length-o.length){return{uri:r.substring(0,r.lastIndexOf(o))+encodeURIComponent(e)}}return{uri:r+e.slice(o.length)}}targetWarning(o,r,"should have a trailing '/'")}else if(r&&!isUrl(e)){return{uri:r+encodeURIComponent(e),defaultUri:!0}}}function resolveImportMapEntry(e,t,r){e.scopes||(e.scopes={}),e.imports||(e.imports={});const o=e.scopes;let s=r&&getMatch(r,o);for(;s;){const e=applyPackages(t,o[s]);if(e)return e;s=getMatch(s.slice(0,s.lastIndexOf("/")),o)}return applyPackages(t,e.imports,e.default)||isUrl(t)&&{uri:t}||void 0}function resolveAndComposePackages(e,t,r,o,s){for(const n in e){const i=resolveIfNotPlainOrUrl(n,r)||n,a=e[n];if("string"!=typeof a)continue;const l=resolveImportMapEntry(o,resolveIfNotPlainOrUrl(a,r)||a,s);l?t[i]=l.uri:targetWarning(n,a,"bare specifier did not resolve")}}function resolveAndComposeImportMap(e,t,r={imports:{},scopes:{}}){const o={imports:Object.assign({},r.imports),scopes:Object.assign({},r.scopes),default:e.default};if(e.imports&&resolveAndComposePackages(e.imports,o.imports,t,r),e.scopes)for(const s in e.scopes){const n=resolveUrl(s,t);resolveAndComposePackages(e.scopes[s],o.scopes[n]||(o.scopes[n]={}),t,r,n)}return e.default&&(o.default=resolveIfNotPlainOrUrl(e.default,t)),o}class ImportMapResolver{constructor(e){this.importMap=e}resolve(e,t){return resolveImportMapEntry(this.importMap,e,t)}}const IMPORTMAP_SCRIPT_TYPE="lwr-importmap";function iterateDocumentImportMaps(e,t){const r=document.querySelectorAll(`script[type="${IMPORTMAP_SCRIPT_TYPE}"]`+t),o=Array.from(r).filter((e=>!e.src||(hasConsole&&console.warn("LWR does not support import maps from script src"),!1)));Array.prototype.forEach.call(o,e)}async function getImportMapFromScript(e){return Promise.resolve(e.innerHTML)}async function evaluateImportMaps(e){let t={imports:{},scopes:{}},r=Promise.resolve(t);if(hasDocument){if(e||(e=getBaseUrl()),!e)throw new LoaderError(NO_BASE_URL);iterateDocumentImportMaps((o=>{r=r.then((()=>getImportMapFromScript(o))).then((e=>{try{return JSON.parse(e)}catch(e){throw new LoaderError(BAD_IMPORT_MAP)}})).then((r=>(t=resolveAndComposeImportMap(r,o.src||e,t),t)))}),"")}return r}class Loader{constructor(e){let t=(e=e||{}).baseUrl,r=e.profiler;if(t&&(t=t.replace(/\/?$/,"/")),t||(t=getBaseUrl()),!t)throw new LoaderError(NO_BASE_URL);this.baseUrl=t,r||(r={logOperationStart:()=>{},logOperationEnd:()=>{}}),this.registry=new ModuleRegistry({baseUrl:t,profiler:r}),this.services=Object.freeze({addLoaderPlugin:this.registry.addLoaderPlugin.bind(this.registry),handleStaleModule:this.registry.registerHandleStaleModuleHook.bind(this.registry),appMetadata:e.appMetadata,serverData:e.serverData||{}})}define(e,t,r,o){invariant("string"==typeof e,MISSING_NAME);let s=r,n=t,i=o;"function"==typeof n&&(s=t,n=[],i=r),i=i||{},invariant(Array.isArray(n),INVALID_DEPS),this.registry.define(e,n,s,i)}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){let t;if(t=e?resolveAndComposeImportMap(e,this.baseUrl,this.parentImportMap):await evaluateImportMaps(this.baseUrl),this.parentImportMap=t,this.parentImportMap){const e=new ImportMapResolver(this.parentImportMap);this.registry.setImportResolver(e)}}registerExternalModules(e){this.registry.registerExternalModules(e)}}exports.Loader=Loader,Object.defineProperty(exports,"__esModule",{value:!0})}));
11
+ */function createTrustedTypesPolicy(e,t){return trustedTypes.createPolicy(e,t)}function createFallbackPolicy(e,t){return t}const createPolicy=SUPPORTS_TRUSTED_TYPES?createTrustedTypesPolicy:createFallbackPolicy,policyOptions={createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e};try{createPolicy("default",{createHTML:e=>e,createScript(e){if("null"===e||"undefined"===e)return e},createScriptURL:e=>e})}catch(e){}const trusted=createPolicy("trusted",policyOptions);let lastWindowError;function isCustomResponse(e){return Object.prototype.hasOwnProperty.call(e,"data")&&!Object.prototype.hasOwnProperty.call(e,"blob")}function isFetchResponse(e){return"function"==typeof e.blob}function isResponseAPromise(e){return!(!e||!e.then)}async function evaluateLoadHookResponse(response,id){return Promise.resolve().then((async()=>{if(!response||!response.status)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(200!==response.status)throw new LoaderError(HTTP_FAIL_LOAD,[id,`${response.status}`]);const isResponse=isFetchResponse(response);let code;if(isCustomResponse(response))code=response.data;else{if(!isResponse)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);code=await response.text()}if(!code)throw new LoaderError(FAIL_LOAD,[id]);code=`${code}\n//# sourceURL=${id}`;try{eval(trusted.createScript(code))}catch(e){throw new LoaderError(FAIL_LOAD,[id])}if(lastWindowError)throw new LoaderError(FAIL_LOAD,[id]);return!0}))}async function evaluateLoadHook(e,t){return hasSetTimeout?new Promise(((r,o)=>{const s=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(s)}))})):t}function reportError(e){hasConsole&&console.error(e)}function evaluateHandleStaleModuleHooks(e,t){const{name:r,oldHash:o,newHash:s}=t;for(let t=0;t<e.length;t++){const n=e[t];try{if(null!==n({name:r,oldHash:o,newHash:s}))break}catch(e){reportError(new LoaderError(STALE_HOOK_ERROR))}}}hasDocument&&globalThis.addEventListener("error",(e=>{lastWindowError=e.error}));const LOADER_PREFIX="lwr.loader.",MODULE_DEFINE=`${LOADER_PREFIX}module.define`,MODULE_DYNAMIC_LOAD=`${LOADER_PREFIX}moduleRegistry.dynamicLoad`,MODULE_FETCH=`${LOADER_PREFIX}module.fetch`,MODULE_ERROR=`${LOADER_PREFIX}module.error`;class ModuleRegistry{__init(){this.namedDefineRegistry=new Map}__init2(){this.moduleRegistry=new Map}__init3(){this.aliases=new Map}constructor(e){ModuleRegistry.prototype.__init.call(this),ModuleRegistry.prototype.__init2.call(this),ModuleRegistry.prototype.__init3.call(this),this.baseUrl=e.baseUrl||"",this.profiler=e.profiler}async load(e,t){const r=t?{importer:t}:{};this.profiler.logOperationStart({id:MODULE_DYNAMIC_LOAD,specifier:e,metadata:r});const o=await this.resolve(e,t),s=this.getModuleRecord(o,e);return s.evaluated?s.module:(s.evaluationPromise||(s.evaluationPromise=this.evaluateModule(s,{})),s.evaluationPromise)}async resolve(e,t){const r=this.baseUrl;let o,s=e;const n=this.resolveHook;let i=!0;if(n){for(let e=0;e<n.length;e++){const t=(0,n[e])(s,{parentUrl:r});let i;if((t||null===t)&&(i=isResponseAPromise(t)?await t:t),!isValidResolveResponse(i))throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(null!==i){if("string"==typeof i){if(resolveIfNotPlainOrUrl(i,r))throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);s=i;continue}if(o=i&&i.url&&(resolveIfNotPlainOrUrl(i.url,r)||i.url),!o)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);break}}if(s!==e){if(!o&&this.namedDefineRegistry.has(s))return s;e=s}}if(!o){const t=resolveIfNotPlainOrUrl(e,r)||e;if(this.moduleRegistry.has(t))return t;if(this.resolver){const e=this.resolver.resolve(t,r);if(o=e&&e.uri,i=e?!!e.defaultUri:i,this.namedDefineRegistry.has(t)){const e=this.namedDefineRegistry.get(t);if(e.external||e.defined){if(!this.moduleRegistry.get(o)||!this.aliases.has(t))return t}}}else o=t}if(!o||!isUrl(o)){if(this.namedDefineRegistry.has(e))return e;throw new LoaderError(UNRESOLVED,[e])}return i&&t&&isUrl(o)&&(o+=`?importer=${encodeURIComponent(t)}`),o}has(e){return this.moduleRegistry.has(e)}define(e,t,r,o){const s=this.namedDefineRegistry.get(e);if(s&&s.defined)return void(this.lastDefine=s);const n={name:e,dependencies:t,exporter:r,signatures:o,defined:!0};s&&s.external&&s.external.resolveExternal(n),this.profiler.logOperationStart({id:MODULE_DEFINE,specifier:e}),this.namedDefineRegistry.set(e,n),this.lastDefine=n,o.hashes&&Object.entries(o.hashes).forEach((([e,t])=>{this.checkModuleSignature(e,t)}))}registerExternalModules(e){e.map((e=>{if(!this.namedDefineRegistry.has(e)){let t,r;const o=new Promise(((o,s)=>{t=o,r=setTimeout((()=>{s(new LoaderError(MODULE_LOAD_TIMEOUT,[e]))}),MODULE_LOAD_TIMEOUT_TIMER)})).finally((()=>{clearTimeout(r)})),s={name:e,defined:!1,external:{resolveExternal:t,moduleDefPromise:o}};this.namedDefineRegistry.set(e,s)}}))}checkModuleSignature(e,t){const r=this.namedDefineRegistry.get(e);if(!r){const r={name:e,signatures:{ownHash:t},defined:!1};return void this.namedDefineRegistry.set(e,r)}const o=r.signatures?r.signatures.ownHash:void 0;if(o&&t!==o){const r=this.handleStaleModuleHook;r&&evaluateHandleStaleModuleHooks(r,{name:e,oldHash:o,newHash:t})}}setImportResolver(e){this.resolver=e}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={id:e,module:Object.create(null),instantiation:this.getModuleDef(e,t),evaluated:!1,evaluationPromise:null};return this.moduleRegistry.set(e,o),this.storeModuleAlias(t,e),o}storeModuleAlias(e,t){e!==t&&(this.aliases.has(e)?hasConsole&&this.aliases.get(e):this.aliases.set(e,t))}async evaluateDependencies(e,t){const r={},o=[];if(e)for(const s of e)"exports"===s?o.push(Promise.resolve(r)):(invariant("require"!==s,NO_AMD_REQUIRE),o.push(this.evaluateDependent(s,t)));return Promise.all(o).then((e=>({depsMapped:e.filter((e=>void 0!==e)),exports:r})))}async evaluateDependent(e,t){const r=await this.resolve(e),o=this.getModuleRecord(r,e);let s=o.module;const n=e=>{if(e)return e.__defaultInterop?e.default:e;throw new LoaderError(FAILED_DEP,[r])};return o.evaluated?n(s):t[o.id]?(s=getCircularDependencyWrapper(s),n(s)):(o.evaluationPromise||(o.evaluationPromise=this.evaluateModule(o,t)),o.evaluationPromise.then((e=>n(e))))}async evaluateModule(e,t){const r={...t};r[e.id]=!0;const{exporter:o,dependencies:s}=await e.instantiation,{depsMapped:n,exports:i}=await this.evaluateDependencies(s,r);let a=this.evaluateModuleCode(o,n,e);void 0!==a?(a={default:a},Object.defineProperty(a,"__defaultInterop",{value:!0})):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}),Object.freeze(e.module),e.evaluated=!0,e.evaluationPromise=null,e.module}evaluateModuleCode(e,t,r){try{return e(...t)}catch(e){throw new LoaderError(EXPORTER_ERROR,[r.id,e.message||e])}}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 s=this.baseUrl,n=r||t;return this.profiler.logOperationStart({id:MODULE_FETCH,specifier:n}),Promise.resolve().then((async()=>{const t=this.loadHook;if(t)for(let r=0;r<t.length;r++){const o=(0,t[r])(e,s),n=isResponseAPromise(o)?await evaluateLoadHook(e,o):o;if(void 0===n)throw new LoaderError(INVALID_LOADER_SERVICE_RESPONSE);if(n&&null!==n)return evaluateLoadHookResponse(n,e)}return!1})).then((t=>{if(!0!==t&&hasDocument)return loadModuleDef(e)})).then((()=>{if(o=r&&this.namedDefineRegistry.get(r),o||(o=this.lastDefine),!o)throw new LoaderError(FAIL_INSTANTIATE,[e]);return this.profiler.logOperationEnd({id:MODULE_FETCH,specifier:n}),o})).catch((e=>{throw e instanceof LoaderError||this.profiler.logOperationStart({id:MODULE_ERROR,specifier:n}),e}))}addLoaderPlugin(e){if("object"!=typeof e)throw new LoaderError(INVALID_HOOK);const{loadModule:t,resolveModule:r}=e;r&&(this.resolveHook?this.resolveHook.push(r):this.resolveHook=[r]),t&&(this.loadHook?this.loadHook.push(t):this.loadHook=[t])}registerHandleStaleModuleHook(e){this.handleStaleModuleHook?this.handleStaleModuleHook.push(e):this.handleStaleModuleHook=[e]}}function isValidResolveResponse(e){return null===e||"string"==typeof e||e&&"string"==typeof e.url}function isNamedExportDefaultOnly(e){return void 0!==e&&2===Object.getOwnPropertyNames(e).length&&Object.prototype.hasOwnProperty.call(e,"default")&&Object.prototype.hasOwnProperty.call(e,"__esModule")}function getCircularDependencyWrapper(e){const t=()=>e.__useDefault||e.__defaultInterop?e.default:e;return t.__circular__=!0,t}function getMatch(e,t){if(t[e])return e;let r=e.length;do{const o=e.slice(0,r+1);if(o in t)return o}while(e.length>1&&-1!==(r=e.lastIndexOf("/",r-1)))}function targetWarning(e,t,r){hasConsole&&console.warn("Package target "+r+", resolving target '"+t+"' for "+e)}function applyPackages(e,t,r){const o=getMatch(e,t);if(o){const r=t[o];if(null===r)return;if(!(e.length>o.length&&"/"!==r[r.length-1])){if(e.length>o.length&&"/"===r[r.length-1]&&r.lastIndexOf(o)===r.length-o.length){return{uri:r.substring(0,r.lastIndexOf(o))+encodeURIComponent(e)}}return{uri:r+e.slice(o.length)}}targetWarning(o,r,"should have a trailing '/'")}else if(r&&!isUrl(e)){return{uri:r+encodeURIComponent(e),defaultUri:!0}}}function resolveImportMapEntry(e,t,r){e.scopes||(e.scopes={}),e.imports||(e.imports={});const o=e.scopes;let s=r&&getMatch(r,o);for(;s;){const e=applyPackages(t,o[s]);if(e)return e;s=getMatch(s.slice(0,s.lastIndexOf("/")),o)}return applyPackages(t,e.imports,e.default)||isUrl(t)&&{uri:t}||void 0}function resolveAndComposePackages(e,t,r,o,s){for(const n in e){const i=resolveIfNotPlainOrUrl(n,r)||n,a=e[n];if("string"!=typeof a)continue;const l=resolveImportMapEntry(o,resolveIfNotPlainOrUrl(a,r)||a,s);l?t[i]=l.uri:targetWarning(n,a,"bare specifier did not resolve")}}function resolveAndComposeImportMap(e,t,r={imports:{},scopes:{}}){const o={imports:Object.assign({},r.imports),scopes:Object.assign({},r.scopes),default:e.default};if(e.imports&&resolveAndComposePackages(e.imports,o.imports,t,r),e.scopes)for(const s in e.scopes){const n=resolveUrl(s,t);resolveAndComposePackages(e.scopes[s],o.scopes[n]||(o.scopes[n]={}),t,r,n)}return e.default&&(o.default=resolveIfNotPlainOrUrl(e.default,t)),o}class ImportMapResolver{constructor(e){this.importMap=e}resolve(e,t){return resolveImportMapEntry(this.importMap,e,t)}}const IMPORTMAP_SCRIPT_TYPE="lwr-importmap";function iterateDocumentImportMaps(e,t){const r=document.querySelectorAll(`script[type="${IMPORTMAP_SCRIPT_TYPE}"]`+t),o=Array.from(r).filter((e=>!e.src||(hasConsole&&console.warn("LWR does not support import maps from script src"),!1)));Array.prototype.forEach.call(o,e)}async function getImportMapFromScript(e){return Promise.resolve(e.innerHTML)}async function evaluateImportMaps(e){let t={imports:{},scopes:{}},r=Promise.resolve(t);if(hasDocument){if(e||(e=getBaseUrl()),!e)throw new LoaderError(NO_BASE_URL);iterateDocumentImportMaps((o=>{r=r.then((()=>getImportMapFromScript(o))).then((e=>{try{return JSON.parse(e)}catch(e){throw new LoaderError(BAD_IMPORT_MAP)}})).then((r=>(t=resolveAndComposeImportMap(r,o.src||e,t),t)))}),"")}return r}class Loader{constructor(e){let t=(e=e||{}).baseUrl,r=e.profiler;if(t&&(t=t.replace(/\/?$/,"/")),t||(t=getBaseUrl()),!t)throw new LoaderError(NO_BASE_URL);this.baseUrl=t,r||(r={logOperationStart:()=>{},logOperationEnd:()=>{}}),this.registry=new ModuleRegistry({baseUrl:t,profiler:r}),this.services=Object.freeze({addLoaderPlugin:this.registry.addLoaderPlugin.bind(this.registry),handleStaleModule:this.registry.registerHandleStaleModuleHook.bind(this.registry),appMetadata:e.appMetadata,serverData:e.serverData||{}})}define(e,t,r,o){invariant("string"==typeof e,MISSING_NAME);let s=r,n=t,i=o;"function"==typeof n&&(s=t,n=[],i=r),i=i||{},invariant(Array.isArray(n),INVALID_DEPS),this.registry.define(e,n,s,i)}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){let t;if(t=e?resolveAndComposeImportMap(e,this.baseUrl,this.parentImportMap):await evaluateImportMaps(this.baseUrl),this.parentImportMap=t,this.parentImportMap){const e=new ImportMapResolver(this.parentImportMap);this.registry.setImportResolver(e)}}registerExternalModules(e){this.registry.registerExternalModules(e)}}exports.Loader=Loader,Object.defineProperty(exports,"__esModule",{value:!0})}));