@sesamy/sesamy-js 1.118.0 → 1.119.0

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.
@@ -32,6 +32,17 @@ export interface BootstrapOptions {
32
32
  clientId?: string;
33
33
  /** Version channel served by scripts-host. Defaults to `stable`. */
34
34
  version?: string;
35
+ /**
36
+ * Per-entry version override for `sesamy-components`. When omitted, falls
37
+ * back to `version`. Useful because components release on their own track,
38
+ * so a sesamy-js semver like `1.118.1` does not resolve for components —
39
+ * publishers pinning one entry can leave the rest on `latest` / `stable`.
40
+ */
41
+ componentsVersion?: string;
42
+ /** Per-entry version override for `auth0-plugin`. Falls back to `version`. */
43
+ auth0PluginVersion?: string;
44
+ /** Per-entry version override for `capsule-plugin`. Falls back to `version`. */
45
+ capsulePluginVersion?: string;
35
46
  /**
36
47
  * Override the primary core bundle URL. When set, the bootstrap loads
37
48
  * only this one script and skips the plugin/components chain — intended
@@ -71,6 +82,13 @@ export interface BootstrapOptions {
71
82
  * config element. Same SSR caveat as `loadAuth0Plugin`.
72
83
  */
73
84
  loadCapsulePlugin?: boolean;
85
+ /**
86
+ * When true, emit `[sesamy-boot]` log lines for key decisions: chain entry
87
+ * selection (and why), userinfo prefetch source, script load/error events,
88
+ * and fallback trigger reason. No-op when unset — production overhead is
89
+ * zero. Useful for diagnosing chain regressions without a HAR capture.
90
+ */
91
+ debug?: boolean;
74
92
  }
75
93
  declare global {
76
94
  interface Window {
@@ -1 +1 @@
1
- var sesamyBootstrap=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){let t=e.namespace||`sesamy`,n=e.fallbackSrc,r=e.version||`stable`,i=e.environment===`dev`?`scripts.sesamy.dev`:`scripts.sesamy.com`,a={};try{let e=document.getElementById(`sesamy-js`);e&&e.textContent&&(a=JSON.parse(e.textContent)||{})}catch{}let o=e.clientId||a.clientId,s=o?`https://`+i+`/s/`+o:``,c=e.src||(o?s+`/sesamy-js/`+r+`.js`:void 0),l=!e.src&&!!s,u=window;if(!e.skipAuthPrefetch&&!u.__sesamyBoot){let t=null;try{let e=sessionStorage.getItem(`sesamy:userinfo`);if(e){let n=JSON.parse(e),r=n._cachedAt;r&&Date.now()-r<=36e5&&(t=n)}}catch{}t?u.__sesamyBoot=Promise.resolve(t):(`; `+document.cookie).indexOf(`; sesamy_is_authenticated=true`)>=0&&(u.__sesamyBoot=fetch((e.apiBaseUrl||``)+`/auth/userinfo`,{credentials:`include`,headers:{Accept:`application/json`}}).then(e=>e.ok?e.json():null).catch(()=>null))}if(!c)return;let d=a.auth&&a.auth.useHttpCookies===!0,f=l&&(e.loadAuth0Plugin===void 0?!d:e.loadAuth0Plugin),p=l&&(e.loadCapsulePlugin===void 0?a.capsule&&a.capsule.enabled===!0:e.loadCapsulePlugin),m=l&&!e.skipComponents,h=[];f&&h.push(s+`/auth0-plugin/`+r+`.js`),p&&h.push(s+`/capsule-plugin/`+r+`.js`),m&&h.push(s+`/sesamy-components/`+r+`.js`),h.push(c);let g=!1,_=()=>{if(g||!n||u[t])return;g=!0;let e=document.createElement(`script`);e.src=n,e.async=!0,document.head.appendChild(e)},v=null;for(let e of h){let t=document.createElement(`script`);t.src=e,t.async=!1,document.head.appendChild(t),e===c&&(v=t)}v&&(v.onerror=_),n&&setTimeout(_,e.fallbackTimeoutMs||3e3)}function n(e){return`(`+t.toString()+`)(`+JSON.stringify(e)+`);`}var r=[`clientId`,`environment`,`version`,`src`,`fallbackSrc`,`fallbackTimeoutMs`,`apiBaseUrl`,`namespace`,`skipAuthPrefetch`,`skipComponents`,`loadAuth0Plugin`,`loadCapsulePlugin`];if(typeof window<`u`){window.sesamyBootstrap=t;try{let e=document.getElementById(`sesamy-js`),n=e&&e.textContent?JSON.parse(e.textContent):null;if(n&&(n.clientId||n.src)){let e={};for(let t of r)n[t]!==void 0&&(e[t]=n[t]);t(e)}}catch{}}return e.renderBootstrapScript=n,e.sesamyBootstrap=t,e})({});
1
+ var sesamyBootstrap=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){let t=e.namespace||`sesamy`,n=e.fallbackSrc,r=e.version||`stable`,i=e.environment===`dev`?`scripts.sesamy.dev`:`scripts.sesamy.com`,a=e.debug?function(...e){try{console.log.apply(console,[`[sesamy-boot]`].concat(e))}catch{}}:function(){},o={};try{let e=document.getElementById(`sesamy-js`);e&&e.textContent&&(o=JSON.parse(e.textContent)||{})}catch{}let s=e.clientId||o.clientId,c=s?`https://`+i+`/s/`+s:``,l=e.src||(s?c+`/sesamy-js/`+r+`.js`:void 0),u=!e.src&&!!c,d=window;if(!e.skipAuthPrefetch&&!d.__sesamyBoot){let t=null;try{let e=sessionStorage.getItem(`sesamy:userinfo`);if(e){let n=JSON.parse(e),r=n._cachedAt;r&&Date.now()-r<=36e5&&(t=n)}}catch{}t?(d.__sesamyBoot=Promise.resolve(t),a(`userinfo: sessionStorage cache`)):(`; `+document.cookie).indexOf(`; sesamy_is_authenticated=true`)>=0?(a(`userinfo: fetching (hint cookie set)`),d.__sesamyBoot=fetch((e.apiBaseUrl||``)+`/auth/userinfo`,{credentials:`include`,headers:{Accept:`application/json`}}).then(e=>e.ok?e.json():null).catch(()=>null)):a(`userinfo: skipped (no hint cookie)`)}else e.skipAuthPrefetch&&a(`userinfo: skipped (skipAuthPrefetch)`);if(!l){a(`no coreSrc — neither clientId nor src resolved; nothing to load`);return}let f=o.auth&&o.auth.useHttpCookies===!0,p=u&&(e.loadAuth0Plugin===void 0?!f:e.loadAuth0Plugin),m=u&&(e.loadCapsulePlugin===void 0?o.capsule&&o.capsule.enabled===!0:e.loadCapsulePlugin),h=u&&!e.skipComponents;a(`chain`,{canChain:u,loadAuth:p,authSource:e.loadAuth0Plugin===void 0?`config`:`option`,loadCapsule:m,capsuleSource:e.loadCapsulePlugin===void 0?`config`:`option`,loadComponents:h});let g=e.auth0PluginVersion||r,_=e.capsulePluginVersion||r,v=e.componentsVersion||r,y=[];p&&y.push(c+`/auth0-plugin/`+g+`.js`),m&&y.push(c+`/capsule-plugin/`+_+`.js`),h&&y.push(c+`/sesamy-components/`+v+`.js`),y.push(l);let b=!1,x=e=>{if(b||!n)return;if(d[t]||d.__sesamyLoaded){a(`fallback: skipped (`+e+`; core loaded)`);return}b=!0,a(`fallback: firing (`+e+`)`,n);let r=document.createElement(`script`);r.src=n,r.async=!0,document.head.appendChild(r)},S=null;for(let t of y){a(`injecting`,t);let n=document.createElement(`script`);n.src=t,n.async=!1,e.debug&&(n.onload=function(){a(`loaded`,t)}),document.head.appendChild(n),t===l&&(S=n)}S&&(S.onerror=function(){x(`core onerror`)}),n&&setTimeout(function(){x(`timeout`)},e.fallbackTimeoutMs||3e3)}function n(e){return`(`+t.toString()+`)(`+JSON.stringify(e)+`);`}var r=[`clientId`,`environment`,`version`,`componentsVersion`,`auth0PluginVersion`,`capsulePluginVersion`,`src`,`fallbackSrc`,`fallbackTimeoutMs`,`apiBaseUrl`,`namespace`,`skipAuthPrefetch`,`skipComponents`,`loadAuth0Plugin`,`loadCapsulePlugin`,`debug`];if(typeof window<`u`){window.sesamyBootstrap=t;try{let e=document.getElementById(`sesamy-js`),n=e&&e.textContent?JSON.parse(e.textContent):null;if(n&&(n.clientId||n.src)){let e={};for(let t of r)n[t]!==void 0&&(e[t]=n[t]);t(e)}}catch{}}return e.renderBootstrapScript=n,e.sesamyBootstrap=t,e})({});
@@ -1,12 +1,16 @@
1
1
  //#region src/bootstrap.ts
2
2
  function e(e) {
3
- let t = e.namespace || "sesamy", n = e.fallbackSrc, r = e.version || "stable", i = e.environment === "dev" ? "scripts.sesamy.dev" : "scripts.sesamy.com", a = {};
3
+ let t = e.namespace || "sesamy", n = e.fallbackSrc, r = e.version || "stable", i = e.environment === "dev" ? "scripts.sesamy.dev" : "scripts.sesamy.com", a = e.debug ? function(...e) {
4
+ try {
5
+ console.log.apply(console, ["[sesamy-boot]"].concat(e));
6
+ } catch {}
7
+ } : function() {}, o = {};
4
8
  try {
5
9
  let e = document.getElementById("sesamy-js");
6
- e && e.textContent && (a = JSON.parse(e.textContent) || {});
10
+ e && e.textContent && (o = JSON.parse(e.textContent) || {});
7
11
  } catch {}
8
- let o = e.clientId || a.clientId, s = o ? "https://" + i + "/s/" + o : "", c = e.src || (o ? s + "/sesamy-js/" + r + ".js" : void 0), l = !e.src && !!s, u = window;
9
- if (!e.skipAuthPrefetch && !u.__sesamyBoot) {
12
+ let s = e.clientId || o.clientId, c = s ? "https://" + i + "/s/" + s : "", l = e.src || (s ? c + "/sesamy-js/" + r + ".js" : void 0), u = !e.src && !!c, d = window;
13
+ if (!e.skipAuthPrefetch && !d.__sesamyBoot) {
10
14
  let t = null;
11
15
  try {
12
16
  let e = sessionStorage.getItem("sesamy:userinfo");
@@ -15,25 +19,48 @@ function e(e) {
15
19
  r && Date.now() - r <= 36e5 && (t = n);
16
20
  }
17
21
  } catch {}
18
- t ? u.__sesamyBoot = Promise.resolve(t) : ("; " + document.cookie).indexOf("; sesamy_is_authenticated=true") >= 0 && (u.__sesamyBoot = fetch((e.apiBaseUrl || "") + "/auth/userinfo", {
22
+ t ? (d.__sesamyBoot = Promise.resolve(t), a("userinfo: sessionStorage cache")) : ("; " + document.cookie).indexOf("; sesamy_is_authenticated=true") >= 0 ? (a("userinfo: fetching (hint cookie set)"), d.__sesamyBoot = fetch((e.apiBaseUrl || "") + "/auth/userinfo", {
19
23
  credentials: "include",
20
24
  headers: { Accept: "application/json" }
21
- }).then((e) => e.ok ? e.json() : null).catch(() => null));
25
+ }).then((e) => e.ok ? e.json() : null).catch(() => null)) : a("userinfo: skipped (no hint cookie)");
26
+ } else e.skipAuthPrefetch && a("userinfo: skipped (skipAuthPrefetch)");
27
+ if (!l) {
28
+ a("no coreSrc — neither clientId nor src resolved; nothing to load");
29
+ return;
22
30
  }
23
- if (!c) return;
24
- let d = a.auth && a.auth.useHttpCookies === !0, f = l && (e.loadAuth0Plugin === void 0 ? !d : e.loadAuth0Plugin), p = l && (e.loadCapsulePlugin === void 0 ? a.capsule && a.capsule.enabled === !0 : e.loadCapsulePlugin), m = l && !e.skipComponents, h = [];
25
- f && h.push(s + "/auth0-plugin/" + r + ".js"), p && h.push(s + "/capsule-plugin/" + r + ".js"), m && h.push(s + "/sesamy-components/" + r + ".js"), h.push(c);
26
- let g = !1, _ = () => {
27
- if (g || !n || u[t]) return;
28
- g = !0;
29
- let e = document.createElement("script");
30
- e.src = n, e.async = !0, document.head.appendChild(e);
31
- }, v = null;
32
- for (let e of h) {
33
- let t = document.createElement("script");
34
- t.src = e, t.async = !1, document.head.appendChild(t), e === c && (v = t);
31
+ let f = o.auth && o.auth.useHttpCookies === !0, p = u && (e.loadAuth0Plugin === void 0 ? !f : e.loadAuth0Plugin), m = u && (e.loadCapsulePlugin === void 0 ? o.capsule && o.capsule.enabled === !0 : e.loadCapsulePlugin), h = u && !e.skipComponents;
32
+ a("chain", {
33
+ canChain: u,
34
+ loadAuth: p,
35
+ authSource: e.loadAuth0Plugin === void 0 ? "config" : "option",
36
+ loadCapsule: m,
37
+ capsuleSource: e.loadCapsulePlugin === void 0 ? "config" : "option",
38
+ loadComponents: h
39
+ });
40
+ let g = e.auth0PluginVersion || r, _ = e.capsulePluginVersion || r, v = e.componentsVersion || r, y = [];
41
+ p && y.push(c + "/auth0-plugin/" + g + ".js"), m && y.push(c + "/capsule-plugin/" + _ + ".js"), h && y.push(c + "/sesamy-components/" + v + ".js"), y.push(l);
42
+ let b = !1, x = (e) => {
43
+ if (b || !n) return;
44
+ if (d[t] || d.__sesamyLoaded) {
45
+ a("fallback: skipped (" + e + "; core loaded)");
46
+ return;
47
+ }
48
+ b = !0, a("fallback: firing (" + e + ")", n);
49
+ let r = document.createElement("script");
50
+ r.src = n, r.async = !0, document.head.appendChild(r);
51
+ }, S = null;
52
+ for (let t of y) {
53
+ a("injecting", t);
54
+ let n = document.createElement("script");
55
+ n.src = t, n.async = !1, e.debug && (n.onload = function() {
56
+ a("loaded", t);
57
+ }), document.head.appendChild(n), t === l && (S = n);
35
58
  }
36
- v && (v.onerror = _), n && setTimeout(_, e.fallbackTimeoutMs || 3e3);
59
+ S && (S.onerror = function() {
60
+ x("core onerror");
61
+ }), n && setTimeout(function() {
62
+ x("timeout");
63
+ }, e.fallbackTimeoutMs || 3e3);
37
64
  }
38
65
  function t(t) {
39
66
  return "(" + e.toString() + ")(" + JSON.stringify(t) + ");";
@@ -42,6 +69,9 @@ var n = [
42
69
  "clientId",
43
70
  "environment",
44
71
  "version",
72
+ "componentsVersion",
73
+ "auth0PluginVersion",
74
+ "capsulePluginVersion",
45
75
  "src",
46
76
  "fallbackSrc",
47
77
  "fallbackTimeoutMs",
@@ -50,7 +80,8 @@ var n = [
50
80
  "skipAuthPrefetch",
51
81
  "skipComponents",
52
82
  "loadAuth0Plugin",
53
- "loadCapsulePlugin"
83
+ "loadCapsulePlugin",
84
+ "debug"
54
85
  ];
55
86
  if (typeof window < "u") {
56
87
  window.sesamyBootstrap = e;