@patch-adams/core 1.5.21 → 1.5.22

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/dist/cli.js CHANGED
@@ -1774,8 +1774,8 @@ function generateLrsBridgeCode(options) {
1774
1774
  ', bravaisUserId=' + employeeData.bravaisUserId + ', tenantUrl=' + employeeData.tenantUrl
1775
1775
  : 'NO DATA'));
1776
1776
  if (employeeData && employeeData.email) {
1777
- actor.mbox = 'mailto:' + employeeData.email;
1778
- log('Enhanced actor with email:', employeeData.email);
1777
+ actor.mbox = 'mailto:' + employeeData.email.toLowerCase();
1778
+ log('Enhanced actor with email:', employeeData.email.toLowerCase());
1779
1779
 
1780
1780
  // Also update name if we got a better one
1781
1781
  if (employeeData.name && (!actor.name || actor.name === 'Unknown Learner')) {
@@ -1940,6 +1940,18 @@ function generateLrsBridgeCode(options) {
1940
1940
  return n === 'anonymous learner' || n === 'unknown learner' || n === 'anonymous' || n === 'unknown';
1941
1941
  }
1942
1942
 
1943
+ /**
1944
+ * Normalize actor IFI fields for consistent matching in Bravais Analytics.
1945
+ * Lowercases mbox email (RFC 5321: local-part is case-insensitive in practice).
1946
+ */
1947
+ function normalizeActor(actor) {
1948
+ if (!actor) return actor;
1949
+ if (actor.mbox && actor.mbox.indexOf('mailto:') === 0) {
1950
+ actor.mbox = 'mailto:' + actor.mbox.substring(7).toLowerCase();
1951
+ }
1952
+ return actor;
1953
+ }
1954
+
1943
1955
  /**
1944
1956
  * Persist actor to localStorage for cross-frame sharing.
1945
1957
  * Only stores non-anonymous actors.
@@ -1986,14 +1998,14 @@ function generateLrsBridgeCode(options) {
1986
1998
  (LRS.actor.account && shared.account && LRS.actor.account.name !== shared.account.name)) {
1987
1999
  log('Actor updated from cross-frame storage:', shared.name);
1988
2000
  }
1989
- LRS.actor = shared;
1990
- return shared;
2001
+ LRS.actor = normalizeActor(shared);
2002
+ return LRS.actor;
1991
2003
  }
1992
2004
  // Fallback to current actor or re-extract
1993
2005
  if (LRS.actor && !isAnonymousActor(LRS.actor)) {
1994
- return LRS.actor;
2006
+ return normalizeActor(LRS.actor);
1995
2007
  }
1996
- return LRS.actor || extractActor();
2008
+ return normalizeActor(LRS.actor || extractActor());
1997
2009
  }
1998
2010
 
1999
2011
  /**
@@ -2055,9 +2067,9 @@ function generateLrsBridgeCode(options) {
2055
2067
  function finalizeActor(actor) {
2056
2068
  // Try to enhance actor with email if missing
2057
2069
  enhanceActorWithEmail(actor, function(enhancedActor) {
2058
- LRS.actor = enhancedActor;
2059
- persistActor(enhancedActor);
2060
- callback(enhancedActor);
2070
+ LRS.actor = normalizeActor(enhancedActor);
2071
+ persistActor(LRS.actor);
2072
+ callback(LRS.actor);
2061
2073
  });
2062
2074
  }
2063
2075