@lwrjs/loader 0.24.2 → 0.24.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/build/assets/prod/lwr-error-shim.js +1 -1
  2. package/build/assets/prod/lwr-loader-shim-legacy.bundle.js +23 -10
  3. package/build/assets/prod/lwr-loader-shim-legacy.bundle.min.js +3 -3
  4. package/build/assets/prod/lwr-loader-shim-legacy.js +5 -5
  5. package/build/assets/prod/lwr-loader-shim.bundle.js +23 -10
  6. package/build/assets/prod/lwr-loader-shim.bundle.min.js +3 -3
  7. package/build/assets/prod/lwr-loader-shim.js +5 -5
  8. package/build/cjs/index.cjs +51 -36
  9. package/build/cjs/modules/lwr/esmLoader/esmLoader.cjs +31 -22
  10. package/build/cjs/modules/lwr/esmLoader/importResolver.cjs +24 -9
  11. package/build/cjs/modules/lwr/esmLoader/importResolverLegacy.cjs +24 -7
  12. package/build/cjs/modules/lwr/loader/constants/constants.cjs +19 -7
  13. package/build/cjs/modules/lwr/loader/errors/messages.cjs +14 -18
  14. package/build/cjs/modules/lwr/loader/errors/reportError.cjs +15 -20
  15. package/build/cjs/modules/lwr/loader/errors/utils.cjs +16 -4
  16. package/build/cjs/modules/lwr/loader/hooks/moduleInvalidation.cjs +17 -21
  17. package/build/cjs/modules/lwr/loader/hooks/resolveAndLoadHook.cjs +37 -37
  18. package/build/cjs/modules/lwr/loader/moduleRegistry/importMetadataResolver.cjs +48 -27
  19. package/build/cjs/modules/lwr/loader/moduleRegistry/moduleRegistry.cjs +131 -77
  20. package/build/cjs/modules/lwr/loader/moduleRegistry/scriptLoad.cjs +15 -19
  21. package/build/cjs/modules/lwr/loader/utils/dom.cjs +16 -4
  22. package/build/cjs/modules/lwr/loader/utils/url.cjs +20 -25
  23. package/build/cjs/modules/lwr/loader/utils/validation.cjs +21 -7
  24. package/build/cjs/modules/lwr/loader/validateLoadSpecifier.cjs +17 -5
  25. package/build/cjs/modules/lwr/loaderLegacy/constants/constants.cjs +19 -7
  26. package/build/cjs/modules/lwr/loaderLegacy/errors/messages.cjs +14 -18
  27. package/build/cjs/modules/lwr/loaderLegacy/errors/reportError.cjs +15 -20
  28. package/build/cjs/modules/lwr/loaderLegacy/errors/utils.cjs +16 -4
  29. package/build/cjs/modules/lwr/loaderLegacy/hooks/moduleInvalidation.cjs +17 -21
  30. package/build/cjs/modules/lwr/loaderLegacy/hooks/resolveAndLoadHook.cjs +37 -37
  31. package/build/cjs/modules/lwr/loaderLegacy/importMap/dom.cjs +24 -25
  32. package/build/cjs/modules/lwr/loaderLegacy/importMap/importMap.cjs +31 -25
  33. package/build/cjs/modules/lwr/loaderLegacy/importMap/importMapResolver.cjs +16 -19
  34. package/build/cjs/modules/lwr/loaderLegacy/importMap/utils.cjs +14 -18
  35. package/build/cjs/modules/lwr/loaderLegacy/importResolver/importResolver.cjs +14 -2
  36. package/build/cjs/modules/lwr/loaderLegacy/moduleRegistry/moduleRegistry.cjs +113 -77
  37. package/build/cjs/modules/lwr/loaderLegacy/moduleRegistry/scriptLoad.cjs +15 -19
  38. package/build/cjs/modules/lwr/loaderLegacy/utils/dom.cjs +16 -4
  39. package/build/cjs/modules/lwr/loaderLegacy/utils/url.cjs +20 -25
  40. package/build/cjs/modules/lwr/loaderLegacy/utils/validation.cjs +17 -19
  41. package/build/cjs/types.cjs +14 -2
  42. package/build/modules/lwr/esmLoader/esmLoader.js +1 -1
  43. package/build/modules/lwr/loader/hooks/resolveAndLoadHook.js +15 -3
  44. package/build/modules/lwr/loader/loader.js +18 -5
  45. package/build/modules/lwr/loaderLegacy/hooks/resolveAndLoadHook.js +15 -3
  46. package/build/modules/lwr/loaderLegacy/loaderLegacy.js +18 -5
  47. package/package.json +7 -7
@@ -1,48 +1,46 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
- var __getProtoOf = Object.getPrototypeOf;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
5
  var __export = (target, all) => {
9
6
  for (var name in all)
10
- __defProp(target, name, {get: all[name], enumerable: true});
7
+ __defProp(target, name, { get: all[name], enumerable: true });
11
8
  };
12
- var __exportStar = (target, module2, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && key !== "default")
16
- __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
14
  }
18
- return target;
19
- };
20
- var __toModule = (module2) => {
21
- return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
15
+ return to;
22
16
  };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
18
 
24
19
  // packages/@lwrjs/loader/src/modules/lwr/loader/moduleRegistry/moduleRegistry.ts
25
- __markAsModule(exports);
26
- __export(exports, {
20
+ var moduleRegistry_exports = {};
21
+ __export(moduleRegistry_exports, {
27
22
  ModuleRegistry: () => ModuleRegistry
28
23
  });
29
- var import_messages = __toModule(require("../errors/messages.cjs"));
30
- var import_url = __toModule(require("../utils/url.cjs"));
31
- var import_dom = __toModule(require("../utils/dom.cjs"));
32
- var import_scriptLoad = __toModule(require("./scriptLoad.cjs"));
33
- var import_importMetadataResolver = __toModule(require("./importMetadataResolver.cjs"));
34
- var import_moduleInvalidation = __toModule(require("../hooks/moduleInvalidation.cjs"));
35
- var import_resolveAndLoadHook = __toModule(require("../hooks/resolveAndLoadHook.cjs"));
36
- var import_metrics = __toModule(require("lwr/metrics"));
37
- var import_constants = __toModule(require("../constants/constants.cjs"));
24
+ module.exports = __toCommonJS(moduleRegistry_exports);
25
+ var import_messages = require("../errors/messages.cjs");
26
+ var import_url = require("../utils/url.cjs");
27
+ var import_dom = require("../utils/dom.cjs");
28
+ var import_scriptLoad = require("./scriptLoad.cjs");
29
+ var import_importMetadataResolver = require("./importMetadataResolver.cjs");
30
+ var import_moduleInvalidation = require("../hooks/moduleInvalidation.cjs");
31
+ var import_resolveAndLoadHook = require("../hooks/resolveAndLoadHook.cjs");
32
+ var import_metrics = require("lwr/metrics");
33
+ var import_constants = require("../constants/constants.cjs");
38
34
  var ModuleRegistry = class {
35
+ profiler;
36
+ warnings;
37
+ isAppMounted = false;
39
38
  constructor(config) {
40
- this.isAppMounted = false;
41
- this.namedDefineRegistry = new Map();
42
- this.moduleRegistry = new Map();
43
- this.aliases = new Map();
44
39
  this.profiler = config.profiler;
45
- this.resolver = new import_importMetadataResolver.ImportMetadataResolver(config, this.importMetadataInvalidationCallback.bind(this));
40
+ this.resolver = new import_importMetadataResolver.ImportMetadataResolver(
41
+ config,
42
+ this.importMetadataInvalidationCallback.bind(this)
43
+ );
46
44
  this.warnings = {
47
45
  [import_constants.MODULE_WARNING.MODULE_REDEFINE]: [],
48
46
  [import_constants.MODULE_WARNING.MODULE_ALREADY_LOADED]: [],
@@ -50,7 +48,7 @@ var ModuleRegistry = class {
50
48
  };
51
49
  }
52
50
  async load(id, importer) {
53
- const metadata = importer ? {importer} : {};
51
+ const metadata = importer ? { importer } : {};
54
52
  this.profiler.logOperationStart({
55
53
  id: import_metrics.MODULE_DYNAMIC_LOAD,
56
54
  specifier: id,
@@ -75,7 +73,7 @@ var ModuleRegistry = class {
75
73
  if (resolveHooks) {
76
74
  for (let i = 0; i < resolveHooks.length; i++) {
77
75
  const resolveHook = resolveHooks[i];
78
- const response = resolveHook(aliasedId, {parentUrl});
76
+ const response = resolveHook(aliasedId, { parentUrl });
79
77
  let result;
80
78
  if (response || response === null) {
81
79
  result = (0, import_resolveAndLoadHook.isResponseAPromise)(response) ? await response : response;
@@ -114,7 +112,9 @@ var ModuleRegistry = class {
114
112
  const resolvedUrl = this.resolver.resolveLocal(resolvedOrPlain);
115
113
  if (resolvedUrl) {
116
114
  if (this.namedDefineRegistry.has(resolvedOrPlain)) {
117
- const namedDefineRecord = this.namedDefineRegistry.get(resolvedOrPlain);
115
+ const namedDefineRecord = this.namedDefineRegistry.get(
116
+ resolvedOrPlain
117
+ );
118
118
  if (namedDefineRecord.external || namedDefineRecord.defined) {
119
119
  const record = this.moduleRegistry.get(resolvedUrl);
120
120
  if (!record || !this.aliases.has(resolvedOrPlain)) {
@@ -149,7 +149,12 @@ var ModuleRegistry = class {
149
149
  define(name, dependencies, exporter) {
150
150
  const mod = this.namedDefineRegistry.get(name);
151
151
  if (mod && mod.defined) {
152
- if (process.env.NODE_ENV !== "production" && import_dom.hasProcessEnv && process.env.MRT_HMR !== "true") {
152
+ if (
153
+ // note: we always expect process.env.NODE_ENV to be replaced at build time
154
+ // eslint-disable-next-line lwr/no-unguarded-apis
155
+ import_dom.hasProcessEnv && // eslint-disable-next-line lwr/no-unguarded-apis
156
+ process.env.MRT_HMR !== "true"
157
+ ) {
153
158
  if (!this.warnings[import_constants.MODULE_WARNING.MODULE_REDEFINE].includes(name)) {
154
159
  this.warnings[import_constants.MODULE_WARNING.MODULE_REDEFINE].push(name);
155
160
  }
@@ -169,10 +174,15 @@ var ModuleRegistry = class {
169
174
  if (mod && mod.external) {
170
175
  mod.external.resolveExternal(moduleDef);
171
176
  }
172
- this.profiler.logOperationStart({id: import_metrics.MODULE_DEFINE, specifier: name});
177
+ this.profiler.logOperationStart({ id: import_metrics.MODULE_DEFINE, specifier: name });
173
178
  this.namedDefineRegistry.set(name, moduleDef);
174
179
  this.lastDefine = moduleDef;
175
180
  }
181
+ /**
182
+ * Marks modules as "externally" loaded/provided, so that the loader does not attempt to fetch them.
183
+ *
184
+ * @param modules - list of module identifiers
185
+ */
176
186
  registerExternalModules(modules) {
177
187
  modules.map((id) => {
178
188
  if (!this.namedDefineRegistry.has(id)) {
@@ -195,7 +205,7 @@ var ModuleRegistry = class {
195
205
  }
196
206
  };
197
207
  this.namedDefineRegistry.set(id, moduleDef);
198
- } else if (process.env.NODE_ENV !== "production") {
208
+ } else if (true) {
199
209
  if (!this.warnings[import_constants.MODULE_WARNING.MODULE_ALREADY_LOADED].includes(id)) {
200
210
  this.warnings[import_constants.MODULE_WARNING.MODULE_ALREADY_LOADED].push(id);
201
211
  }
@@ -205,9 +215,29 @@ var ModuleRegistry = class {
205
215
  }
206
216
  });
207
217
  }
218
+ resolver;
219
+ // A registry for named AMD defines containing the *metadata* of AMD module
220
+ namedDefineRegistry = /* @__PURE__ */ new Map();
221
+ // The evaluated module registry where the module identifier (name or URL?) is the key
222
+ moduleRegistry = /* @__PURE__ */ new Map();
223
+ // Aliases of modules in the registry
224
+ aliases = /* @__PURE__ */ new Map();
225
+ lastDefine;
208
226
  getImportMetadataResolver() {
209
227
  return this.resolver;
210
228
  }
229
+ /**
230
+ * Gets or creates a module record for the given resolved ID and original ID.
231
+ *
232
+ * This function handles the complex logic of module resolution and ensures that:
233
+ * 1. Modules loaded via different paths (aliases, direct specifiers, URLs) return the same instance
234
+ * 2. Bundle URLs are properly resolved to their final specifier names after instantiation
235
+ * 3. Alias mappings are maintained for future lookups
236
+ *
237
+ * @param resolvedId - The resolved module identifier (could be a URL or specifier)
238
+ * @param originalId - The original module specifer that was requested
239
+ * @returns Promise<ModuleRecord> - The module record for the module
240
+ */
211
241
  async getModuleRecord(resolvedId, originalId) {
212
242
  const existingRecord = this.moduleRegistry.get(resolvedId);
213
243
  if (existingRecord) {
@@ -253,12 +283,19 @@ var ModuleRegistry = class {
253
283
  });
254
284
  const newModuleRecord = {
255
285
  id: resolvedId,
286
+ // Use resolved ID as the record identifier
256
287
  originalId,
257
- module: Object.create(null),
288
+ // Keep track of the original requested ID
289
+ module: /* @__PURE__ */ Object.create(null),
290
+ // Empty object for module exports
258
291
  dependencyRecords,
292
+ // Promise for dependency module records
259
293
  instantiation,
294
+ // Promise for module definition
260
295
  evaluated: false,
296
+ // Track if module has been evaluated
261
297
  evaluationPromise: null
298
+ // Promise for module evaluation
262
299
  };
263
300
  this.moduleRegistry.set(resolvedId, newModuleRecord);
264
301
  if (resolvedId !== originalId) {
@@ -270,7 +307,7 @@ var ModuleRegistry = class {
270
307
  if (aliasId !== resolvedId) {
271
308
  if (!this.aliases.has(aliasId)) {
272
309
  this.aliases.set(aliasId, resolvedId);
273
- } else if (process.env.NODE_ENV !== "production" && import_dom.hasConsole) {
310
+ } else if (import_dom.hasConsole) {
274
311
  const currentResolvedId = this.aliases.get(aliasId);
275
312
  if (currentResolvedId !== resolvedId) {
276
313
  const warningMsg = `${aliasId}=>${currentResolvedId}, ${resolvedId}`;
@@ -295,6 +332,7 @@ var ModuleRegistry = class {
295
332
  }
296
333
  return this.getModuleRecord(resolvedDepId, dependency);
297
334
  }
335
+ // execute the "top-level code" (the code outside of functions) of a module
298
336
  async topLevelEvaluation(moduleRecord) {
299
337
  return this.evaluateModule(moduleRecord, {});
300
338
  }
@@ -304,26 +342,28 @@ var ModuleRegistry = class {
304
342
  evaluationMap[moduleRecord.id] = true;
305
343
  await this.evaluateModuleDependencies(dependencyModuleRecords, evaluationMap);
306
344
  }
307
- const {exporter, dependencies} = await moduleRecord.instantiation;
308
- const exports2 = {};
309
- const depsMapped = dependencies ? await Promise.all(dependencies.map(async (dep) => {
310
- if (dep === "exports") {
311
- return exports2;
312
- }
313
- const resolvedDepId = await this.resolve(dep);
314
- const moduleRecord2 = this.moduleRegistry.get(resolvedDepId);
315
- if (!moduleRecord2) {
345
+ const { exporter, dependencies } = await moduleRecord.instantiation;
346
+ const exports = {};
347
+ const depsMapped = dependencies ? await Promise.all(
348
+ dependencies.map(async (dep) => {
349
+ if (dep === "exports") {
350
+ return exports;
351
+ }
352
+ const resolvedDepId = await this.resolve(dep);
353
+ const moduleRecord2 = this.moduleRegistry.get(resolvedDepId);
354
+ if (!moduleRecord2) {
355
+ throw new import_messages.LoaderError(import_messages.FAILED_DEP, [resolvedDepId]);
356
+ }
357
+ const module2 = moduleRecord2.module;
358
+ if (!moduleRecord2.evaluated) {
359
+ return this.getCircularDependencyWrapper(module2);
360
+ }
361
+ if (module2) {
362
+ return module2.__defaultInterop ? module2.default : module2;
363
+ }
316
364
  throw new import_messages.LoaderError(import_messages.FAILED_DEP, [resolvedDepId]);
317
- }
318
- const module2 = moduleRecord2.module;
319
- if (!moduleRecord2.evaluated) {
320
- return this.getCircularDependencyWrapper(module2);
321
- }
322
- if (module2) {
323
- return module2.__defaultInterop ? module2.default : module2;
324
- }
325
- throw new import_messages.LoaderError(import_messages.FAILED_DEP, [resolvedDepId]);
326
- })) : [];
365
+ })
366
+ ) : [];
327
367
  if (moduleRecord.evaluated) {
328
368
  return moduleRecord.module;
329
369
  }
@@ -334,14 +374,14 @@ var ModuleRegistry = class {
334
374
  throw new import_messages.LoaderError(import_messages.EXPORTER_ERROR, [moduleRecord.id, e.message || e]);
335
375
  }
336
376
  if (moduleDefault !== void 0) {
337
- moduleDefault = {default: moduleDefault};
338
- Object.defineProperty(moduleDefault, "__defaultInterop", {value: true});
377
+ moduleDefault = { default: moduleDefault };
378
+ Object.defineProperty(moduleDefault, "__defaultInterop", { value: true });
339
379
  } else {
340
- if (this.isNamedExportDefaultOnly(exports2)) {
341
- Object.defineProperty(exports2, "__useDefault", {value: true});
380
+ if (this.isNamedExportDefaultOnly(exports)) {
381
+ Object.defineProperty(exports, "__useDefault", { value: true });
342
382
  }
343
383
  }
344
- const moduleExports = moduleDefault || exports2;
384
+ const moduleExports = moduleDefault || exports;
345
385
  for (const key in moduleExports) {
346
386
  Object.defineProperty(moduleRecord.module, key, {
347
387
  enumerable: true,
@@ -354,21 +394,24 @@ var ModuleRegistry = class {
354
394
  });
355
395
  }
356
396
  if (moduleExports.__useDefault) {
357
- Object.defineProperty(moduleRecord.module, "__useDefault", {value: true});
397
+ Object.defineProperty(moduleRecord.module, "__useDefault", { value: true });
358
398
  }
359
399
  if (moduleExports.__defaultInterop) {
360
- Object.defineProperty(moduleRecord.module, "__defaultInterop", {value: true});
400
+ Object.defineProperty(moduleRecord.module, "__defaultInterop", { value: true });
361
401
  }
362
402
  if (moduleExports.__esModule) {
363
- Object.defineProperty(moduleRecord.module, "__esModule", {value: true});
403
+ Object.defineProperty(moduleRecord.module, "__esModule", { value: true });
364
404
  }
365
405
  moduleRecord.evaluated = true;
366
406
  Object.freeze(moduleRecord.module);
367
407
  return moduleRecord.module;
368
408
  }
369
- isNamedExportDefaultOnly(exports2) {
370
- return exports2 !== void 0 && Object.getOwnPropertyNames(exports2).length === 2 && Object.prototype.hasOwnProperty.call(exports2, "default") && Object.prototype.hasOwnProperty.call(exports2, "__esModule");
409
+ // Determines if named exports module has only default export
410
+ isNamedExportDefaultOnly(exports) {
411
+ return exports !== void 0 && Object.getOwnPropertyNames(exports).length === 2 && Object.prototype.hasOwnProperty.call(exports, "default") && Object.prototype.hasOwnProperty.call(exports, "__esModule");
371
412
  }
413
+ // Wrap the dependency in a function that can be called and detected by __circular__ property.
414
+ // The LWC engine checks for __circular__ to detect circular dependencies.
372
415
  getCircularDependencyWrapper(module2) {
373
416
  const tmp = () => {
374
417
  return module2.__useDefault || module2.__defaultInterop ? module2.default : module2;
@@ -397,14 +440,17 @@ var ModuleRegistry = class {
397
440
  }
398
441
  const parentUrl = this.resolver.getBaseUrl();
399
442
  const specifier = moduleName || originalId;
400
- this.profiler.logOperationStart({id: import_metrics.MODULE_FETCH, specifier});
443
+ this.profiler.logOperationStart({ id: import_metrics.MODULE_FETCH, specifier });
401
444
  return Promise.resolve().then(async () => {
402
445
  const loadHooks = this.loadHook;
403
446
  if (loadHooks) {
404
447
  for (let i = 0; i < loadHooks.length; i++) {
405
448
  const loadHook = loadHooks[i];
406
449
  const response = loadHook(resolvedId, parentUrl);
407
- const result = (0, import_resolveAndLoadHook.isResponseAPromise)(response) ? await (0, import_resolveAndLoadHook.evaluateLoadHook)(resolvedId, response) : response;
450
+ const result = (0, import_resolveAndLoadHook.isResponseAPromise)(response) ? (
451
+ // eslint-disable-next-line no-await-in-loop
452
+ await (0, import_resolveAndLoadHook.evaluateLoadHook)(resolvedId, response)
453
+ ) : response;
408
454
  if (result === void 0) {
409
455
  throw new import_messages.LoaderError(import_messages.INVALID_LOADER_SERVICE_RESPONSE);
410
456
  }
@@ -421,26 +467,31 @@ var ModuleRegistry = class {
421
467
  }).then(() => {
422
468
  moduleDef = moduleName && this.namedDefineRegistry.get(moduleName);
423
469
  if (!moduleDef) {
424
- this.logMessage("warning", `${moduleName} not found, falling back to the last loader.define call`);
470
+ this.logMessage(
471
+ "warning",
472
+ `${moduleName} not found, falling back to the last loader.define call`
473
+ );
425
474
  moduleDef = this.lastDefine;
426
475
  }
427
476
  if (!moduleDef) {
428
477
  throw new import_messages.LoaderError(import_messages.FAIL_INSTANTIATE, [resolvedId]);
429
478
  }
430
- this.profiler.logOperationEnd({id: import_metrics.MODULE_FETCH, specifier});
479
+ this.profiler.logOperationEnd({ id: import_metrics.MODULE_FETCH, specifier });
431
480
  return moduleDef;
432
481
  }).catch((e) => {
433
482
  if (!(e instanceof import_messages.LoaderError)) {
434
- this.profiler.logOperationStart({id: import_metrics.MODULE_ERROR, specifier});
483
+ this.profiler.logOperationStart({ id: import_metrics.MODULE_ERROR, specifier });
435
484
  }
436
485
  throw e;
437
486
  });
438
487
  }
488
+ resolveHook;
489
+ loadHook;
439
490
  addLoaderPlugin(hooks) {
440
491
  if (typeof hooks !== "object") {
441
492
  throw new import_messages.LoaderError(import_messages.INVALID_HOOK);
442
493
  }
443
- const {loadModule: loadHook, resolveModule: resolveHook, loadMapping} = hooks;
494
+ const { loadModule: loadHook, resolveModule: resolveHook, loadMapping } = hooks;
444
495
  if (resolveHook) {
445
496
  if (this.resolveHook) {
446
497
  this.resolveHook.push(resolveHook);
@@ -459,7 +510,7 @@ var ModuleRegistry = class {
459
510
  this.resolver.addLoadMappingHook(loadMapping);
460
511
  }
461
512
  }
462
- importMetadataInvalidationCallback({name, oldUrl, newUrl}) {
513
+ importMetadataInvalidationCallback({ name, oldUrl, newUrl }) {
463
514
  const handleStaleModuleHooks = this.handleStaleModuleHook;
464
515
  if (handleStaleModuleHooks) {
465
516
  (0, import_moduleInvalidation.evaluateHandleStaleModuleHooks)(handleStaleModuleHooks, {
@@ -468,11 +519,12 @@ var ModuleRegistry = class {
468
519
  newUrl
469
520
  });
470
521
  } else {
471
- if (process.env.NODE_ENV !== "production" && import_dom.hasConsole) {
522
+ if (import_dom.hasConsole) {
472
523
  console.warn(`stale module detected ${name}, current URL:${oldUrl}, new URL:${newUrl}`);
473
524
  }
474
525
  }
475
526
  }
527
+ handleStaleModuleHook;
476
528
  registerHandleStaleModuleHook(handleStaleModule) {
477
529
  if (this.handleStaleModuleHook) {
478
530
  this.handleStaleModuleHook.push(handleStaleModule);
@@ -488,7 +540,9 @@ var ModuleRegistry = class {
488
540
  return this.warnings;
489
541
  }
490
542
  logMessage(logType, message) {
491
- if (!import_dom.hasConsole || process.env.NODE_ENV === "production") {
543
+ if (!import_dom.hasConsole || // note: we always expect this to be replaced at build time
544
+ // eslint-disable-next-line lwr/no-unguarded-apis
545
+ false) {
492
546
  return;
493
547
  }
494
548
  if (logType == "warning") {
@@ -1,33 +1,29 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
- var __getProtoOf = Object.getPrototypeOf;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
5
  var __export = (target, all) => {
9
6
  for (var name in all)
10
- __defProp(target, name, {get: all[name], enumerable: true});
7
+ __defProp(target, name, { get: all[name], enumerable: true });
11
8
  };
12
- var __exportStar = (target, module2, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && key !== "default")
16
- __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
14
  }
18
- return target;
19
- };
20
- var __toModule = (module2) => {
21
- return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
15
+ return to;
22
16
  };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
18
 
24
19
  // packages/@lwrjs/loader/src/modules/lwr/loader/moduleRegistry/scriptLoad.ts
25
- __markAsModule(exports);
26
- __export(exports, {
20
+ var scriptLoad_exports = {};
21
+ __export(scriptLoad_exports, {
27
22
  loadModuleDef: () => loadModuleDef
28
23
  });
29
- var import_messages = __toModule(require("../errors/messages.cjs"));
30
- var import_dom = __toModule(require("../utils/dom.cjs"));
24
+ module.exports = __toCommonJS(scriptLoad_exports);
25
+ var import_messages = require("../errors/messages.cjs");
26
+ var import_dom = require("../utils/dom.cjs");
31
27
  function createScript(url) {
32
28
  const script = document.createElement("script");
33
29
  script.async = true;
@@ -1,19 +1,31 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
3
5
  var __export = (target, all) => {
4
6
  for (var name in all)
5
- __defProp(target, name, {get: all[name], enumerable: true});
7
+ __defProp(target, name, { get: all[name], enumerable: true });
6
8
  };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
7
18
 
8
19
  // packages/@lwrjs/loader/src/modules/lwr/loader/utils/dom.ts
9
- __markAsModule(exports);
10
- __export(exports, {
20
+ var dom_exports = {};
21
+ __export(dom_exports, {
11
22
  hasConsole: () => hasConsole,
12
23
  hasDocument: () => hasDocument,
13
24
  hasProcess: () => hasProcess,
14
25
  hasProcessEnv: () => hasProcessEnv,
15
26
  hasSetTimeout: () => hasSetTimeout
16
27
  });
28
+ module.exports = __toCommonJS(dom_exports);
17
29
  var hasDocument = typeof document !== "undefined";
18
30
  var hasSetTimeout = typeof setTimeout === "function";
19
31
  var hasConsole = typeof console !== "undefined";
@@ -1,35 +1,31 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
- var __getProtoOf = Object.getPrototypeOf;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
5
  var __export = (target, all) => {
9
6
  for (var name in all)
10
- __defProp(target, name, {get: all[name], enumerable: true});
7
+ __defProp(target, name, { get: all[name], enumerable: true });
11
8
  };
12
- var __exportStar = (target, module2, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && key !== "default")
16
- __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
14
  }
18
- return target;
19
- };
20
- var __toModule = (module2) => {
21
- return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
15
+ return to;
22
16
  };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
18
 
24
19
  // packages/@lwrjs/loader/src/modules/lwr/loader/utils/url.ts
25
- __markAsModule(exports);
26
- __export(exports, {
20
+ var url_exports = {};
21
+ __export(url_exports, {
27
22
  getBaseUrl: () => getBaseUrl,
28
23
  isUrl: () => isUrl,
29
24
  resolveIfNotPlainOrUrl: () => resolveIfNotPlainOrUrl,
30
25
  resolveUrl: () => resolveUrl
31
26
  });
32
- var import_dom = __toModule(require("./dom.cjs"));
27
+ module.exports = __toCommonJS(url_exports);
28
+ var import_dom = require("./dom.cjs");
33
29
  function getBaseUrl() {
34
30
  let baseUrl = void 0;
35
31
  if (import_dom.hasDocument) {
@@ -50,8 +46,7 @@ function isUrl(url) {
50
46
  }
51
47
  function resolveIfNotPlainOrUrl(relUrl, parentUrl) {
52
48
  const backslashRegEx = /\\/g;
53
- if (relUrl.indexOf("\\") !== -1)
54
- relUrl = relUrl.replace(backslashRegEx, "/");
49
+ if (relUrl.indexOf("\\") !== -1) relUrl = relUrl.replace(backslashRegEx, "/");
55
50
  if (relUrl[0] === "/" && relUrl[1] === "/") {
56
51
  return parentUrl.slice(0, parentUrl.indexOf(":") + 1) + relUrl;
57
52
  } else if (relUrl[0] === "." && (relUrl[1] === "/" || relUrl[1] === "." && (relUrl[2] === "/" || relUrl.length === 2 && (relUrl += "/")) || relUrl.length === 1 && (relUrl += "/")) || relUrl[0] === "/") {
@@ -65,10 +60,11 @@ function resolveIfNotPlainOrUrl(relUrl, parentUrl) {
65
60
  pathname = parentUrl.slice(8);
66
61
  }
67
62
  } else {
68
- pathname = parentUrl.slice(parentProtocol.length + (parentUrl[parentProtocol.length] === "/" ? 1 : 0));
63
+ pathname = parentUrl.slice(
64
+ parentProtocol.length + (parentUrl[parentProtocol.length] === "/" ? 1 : 0)
65
+ );
69
66
  }
70
- if (relUrl[0] === "/")
71
- return parentUrl.slice(0, parentUrl.length - pathname.length - 1) + relUrl;
67
+ if (relUrl[0] === "/") return parentUrl.slice(0, parentUrl.length - pathname.length - 1) + relUrl;
72
68
  const segmented = pathname.slice(0, pathname.lastIndexOf("/") + 1) + relUrl;
73
69
  const output = [];
74
70
  let segmentIndex = -1;
@@ -91,8 +87,7 @@ function resolveIfNotPlainOrUrl(relUrl, parentUrl) {
91
87
  segmentIndex = i;
92
88
  }
93
89
  }
94
- if (segmentIndex !== -1)
95
- output.push(segmented.slice(segmentIndex));
90
+ if (segmentIndex !== -1) output.push(segmented.slice(segmentIndex));
96
91
  return parentUrl.slice(0, parentUrl.length - pathname.length) + output.join("");
97
92
  }
98
93
  }
@@ -1,15 +1,27 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
3
5
  var __export = (target, all) => {
4
6
  for (var name in all)
5
- __defProp(target, name, {get: all[name], enumerable: true});
7
+ __defProp(target, name, { get: all[name], enumerable: true });
6
8
  };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
7
18
 
8
19
  // packages/@lwrjs/loader/src/modules/lwr/loader/utils/validation.ts
9
- __markAsModule(exports);
10
- __export(exports, {
20
+ var validation_exports = {};
21
+ __export(validation_exports, {
11
22
  validateAndWrapAsImportMetadata: () => validateAndWrapAsImportMetadata
12
23
  });
24
+ module.exports = __toCommonJS(validation_exports);
13
25
  function assertValidImportMapUrlKey(moduleScriptURL) {
14
26
  const lowerUri = moduleScriptURL.toLowerCase();
15
27
  if (lowerUri.startsWith("blob:")) {
@@ -19,7 +31,9 @@ function assertValidImportMapUrlKey(moduleScriptURL) {
19
31
  throw new Error(`Cannot map ${moduleScriptURL} to data: URL`);
20
32
  }
21
33
  if (!/^[./]|^https?:/.test(moduleScriptURL)) {
22
- throw new Error(`LWR.importMap(): "${moduleScriptURL}" is not a valid URL key. Keys must be URL paths (e.g. "/path/to/module.js"), not module specifiers. Transitive specifier aliasing is not supported by this loader.`);
34
+ throw new Error(
35
+ `LWR.importMap(): "${moduleScriptURL}" is not a valid URL key. Keys must be URL paths (e.g. "/path/to/module.js"), not module specifiers. Transitive specifier aliasing is not supported by this loader.`
36
+ );
23
37
  }
24
38
  }
25
39
  function validateAndWrapAsImportMetadata(update) {
@@ -30,7 +44,7 @@ function validateAndWrapAsImportMetadata(update) {
30
44
  if (entries.length === 0) {
31
45
  return null;
32
46
  }
33
- const seenSpecifiers = new Set();
47
+ const seenSpecifiers = /* @__PURE__ */ new Set();
34
48
  const validatedImports = {};
35
49
  for (const [moduleScriptURL, moduleNames] of entries) {
36
50
  if (!moduleScriptURL || typeof moduleScriptURL !== "string") {
@@ -57,5 +71,5 @@ function validateAndWrapAsImportMetadata(update) {
57
71
  if (Object.keys(validatedImports).length === 0) {
58
72
  return null;
59
73
  }
60
- return {imports: validatedImports};
74
+ return { imports: validatedImports };
61
75
  }