@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 +4 -3
- package/build/assets/prod/lwr-error-shim.js +1 -1
- package/build/assets/prod/lwr-loader-shim-legacy.bundle.js +132 -167
- package/build/assets/prod/lwr-loader-shim-legacy.bundle.min.js +3 -3
- package/build/assets/prod/lwr-loader-shim-legacy.js +5 -6
- package/build/assets/prod/lwr-loader-shim.bundle.js +132 -164
- package/build/assets/prod/lwr-loader-shim.bundle.min.js +3 -3
- package/build/assets/prod/lwr-loader-shim.js +5 -5
- package/build/cjs/modules/lwr/loader/moduleRegistry/moduleRegistry.cjs +68 -88
- package/build/cjs/modules/lwr/loaderLegacy/importMap/utils.cjs +1 -1
- package/build/cjs/modules/lwr/loaderLegacy/moduleRegistry/moduleRegistry.cjs +68 -88
- package/build/modules/lwr/esmLoader/esmLoader.js +1 -2
- package/build/modules/lwr/loader/loader.js +127 -159
- package/build/modules/lwr/loaderLegacy/loaderLegacy.js +127 -162
- package/package.json +8 -8
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
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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-
|
|
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-
|
|
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-
|
|
402
|
-
GLOBAL.LWR.requiredModules.push('lwr/loaderLegacy/v/0_12_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-
|
|
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.
|
|
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 =
|
|
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.
|
|
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 (!
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
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
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
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
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
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
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
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
|
-
//
|
|
1401
|
-
|
|
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 (
|
|
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
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
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
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
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.
|
|
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-
|
|
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})}));
|