@elliemae/pui-logrocket 1.2.3-alpha.1 → 1.2.3
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/build/docs/404.html +2 -2
- package/build/docs/api/functions/buildLogRocketQueryParams/index.html +2 -2
- package/build/docs/api/functions/hasUserConsentedToSessionRecording/index.html +2 -2
- package/build/docs/api/functions/initLogRocket/index.html +2 -2
- package/build/docs/api/index.html +2 -2
- package/build/docs/api/type-aliases/LROptions/index.html +2 -2
- package/build/docs/assets/js/04ee7372.91effd96.js +1 -0
- package/build/docs/assets/js/{7392.9b9efade.js → 6143.8bf840e9.js} +1 -1
- package/build/docs/assets/js/{7666.20fc9126.js → 7666.99e92eb2.js} +2 -2
- package/build/docs/assets/js/e376fc56.609d201b.js +1 -0
- package/build/docs/assets/js/main.7d3be447.js +2 -0
- package/build/docs/assets/js/{runtime~main.92c4c877.js → runtime~main.5e481bc4.js} +1 -1
- package/build/docs/compliance/index.html +2 -2
- package/build/docs/index.html +2 -2
- package/build/docs/usage-guide/index.html +26 -5
- package/dist/cjs/logrocket.js +36 -25
- package/dist/esm/logrocket.js +36 -25
- package/dist/public/index.html +1 -1
- package/dist/public/js/emuiLogrocket.32efbf89608d7f1ff787.js +45 -0
- package/dist/public/js/emuiLogrocket.32efbf89608d7f1ff787.js.br +0 -0
- package/dist/public/js/emuiLogrocket.32efbf89608d7f1ff787.js.gz +0 -0
- package/dist/public/js/emuiLogrocket.32efbf89608d7f1ff787.js.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/umd/index.js +16 -16
- package/dist/umd/index.js.br +0 -0
- package/dist/umd/index.js.gz +0 -0
- package/dist/umd/index.js.map +1 -1
- package/package.json +2 -2
- package/build/docs/assets/js/04ee7372.7628802a.js +0 -1
- package/build/docs/assets/js/e376fc56.4c90b364.js +0 -1
- package/build/docs/assets/js/main.01bafb97.js +0 -2
- package/dist/public/js/emuiLogrocket.ce70c014720a1d694f3a.js +0 -45
- package/dist/public/js/emuiLogrocket.ce70c014720a1d694f3a.js.br +0 -0
- package/dist/public/js/emuiLogrocket.ce70c014720a1d694f3a.js.gz +0 -0
- package/dist/public/js/emuiLogrocket.ce70c014720a1d694f3a.js.map +0 -1
- /package/build/docs/assets/js/{7666.20fc9126.js.LICENSE.txt → 7666.99e92eb2.js.LICENSE.txt} +0 -0
- /package/build/docs/assets/js/{main.01bafb97.js.LICENSE.txt → main.7d3be447.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e,a,r,t,o,c={},f={};function n(e){var a=f[e];if(void 0!==a)return a.exports;var r=f[e]={id:e,loaded:!1,exports:{}};return c[e].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}n.m=c,n.c=f,e=[],n.O=(a,r,t,o)=>{if(!r){var c=1/0;for(i=0;i<e.length;i++){for(var[r,t,o]=e[i],f=!0,d=0;d<r.length;d++)(!1&o||c>=o)&&Object.keys(n.O).every(e=>n.O[e](r[d]))?r.splice(d--,1):(f=!1,o<c&&(c=o));if(f){e.splice(i--,1);var b=t();void 0!==b&&(a=b)}}return a}o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[r,t,o]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var o=Object.create(null);n.r(o);var c={};a=a||[null,r({}),r([]),r(r)];for(var f=2&t&&e;("object"==typeof f||"function"==typeof f)&&!~a.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach(a=>c[a]=()=>e[a]);return c.default=()=>e,n.d(o,c),o},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((a,r)=>(n.f[r](e,a),a),[])),n.u=e=>"assets/js/"+({295:"51c4ceb1",594:"5e8c322a",2076:"common",3361:"c377a04b",3480:"e376fc56",4319:"211c08f1",4804:"7fcbe1af",5742:"aba21aa0",5754:"acaa8c75",5760:"552a934f",5908:"04ee7372",7098:"a7bd4aaa",8401:"17896441",9048:"a94703ab",9647:"5e95c892"}[e]||e)+"."+{200:"0310889b",295:"6fc4ec7b",483:"18c7d7f8",594:"503d46ea",638:"a021b03c",654:"0e97a121",764:"32783b8e",967:"d428fcf6",1138:"aa8c4e98",1370:"c8be4ee0",2076:"6c804366",2180:"31d6ce39",2327:"251d6533",2706:"74774645",3308:"78e397d4",3361:"2361a76f",3480:"
|
|
1
|
+
(()=>{"use strict";var e,a,r,t,o,c={},f={};function n(e){var a=f[e];if(void 0!==a)return a.exports;var r=f[e]={id:e,loaded:!1,exports:{}};return c[e].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}n.m=c,n.c=f,e=[],n.O=(a,r,t,o)=>{if(!r){var c=1/0;for(i=0;i<e.length;i++){for(var[r,t,o]=e[i],f=!0,d=0;d<r.length;d++)(!1&o||c>=o)&&Object.keys(n.O).every(e=>n.O[e](r[d]))?r.splice(d--,1):(f=!1,o<c&&(c=o));if(f){e.splice(i--,1);var b=t();void 0!==b&&(a=b)}}return a}o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[r,t,o]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var o=Object.create(null);n.r(o);var c={};a=a||[null,r({}),r([]),r(r)];for(var f=2&t&&e;("object"==typeof f||"function"==typeof f)&&!~a.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach(a=>c[a]=()=>e[a]);return c.default=()=>e,n.d(o,c),o},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((a,r)=>(n.f[r](e,a),a),[])),n.u=e=>"assets/js/"+({295:"51c4ceb1",594:"5e8c322a",2076:"common",3361:"c377a04b",3480:"e376fc56",4319:"211c08f1",4804:"7fcbe1af",5742:"aba21aa0",5754:"acaa8c75",5760:"552a934f",5908:"04ee7372",7098:"a7bd4aaa",8401:"17896441",9048:"a94703ab",9647:"5e95c892"}[e]||e)+"."+{200:"0310889b",295:"6fc4ec7b",483:"18c7d7f8",594:"503d46ea",638:"a021b03c",654:"0e97a121",764:"32783b8e",967:"d428fcf6",1138:"aa8c4e98",1370:"c8be4ee0",2076:"6c804366",2180:"31d6ce39",2327:"251d6533",2706:"74774645",3308:"78e397d4",3361:"2361a76f",3480:"609d201b",3725:"36fa16ca",3767:"2998632d",3899:"94243d47",4167:"eb3f034b",4319:"f5d0523b",4359:"6536c7a0",4390:"744aab40",4413:"e614d609",4453:"ef8b090c",4632:"aa312ff7",4804:"5999b9e8",4860:"cfa79720",5168:"97fb36dd",5179:"ccfc9ebc",5182:"30f41439",5275:"4ed9ae52",5742:"a5d4e000",5754:"70525e75",5760:"b125f196",5820:"2cd5bf53",5908:"91effd96",6143:"8bf840e9",6340:"eaf6d37a",6376:"13262bdb",6603:"cbc20a0f",6761:"0b26728e",6873:"83ee6c7c",7039:"3ca79f91",7098:"ad524078",7204:"1ce9a9b1",7616:"6501b368",7666:"99e92eb2",7876:"3ac89535",8071:"6922ccd8",8401:"dfa22f5b",8907:"4424af8f",9048:"5c63b074",9647:"2d99be36",9748:"cc3f89d3",9845:"d704e0f2"}[e]+".js",n.miniCssF=e=>{},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},o="@elliemae/pui-logrocket:",n.l=(e,a,r,c)=>{if(t[e])t[e].push(a);else{var f,d;if(void 0!==r)for(var b=document.getElementsByTagName("script"),i=0;i<b.length;i++){var l=b[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+r){f=l;break}}f||(d=!0,(f=document.createElement("script")).charset="utf-8",n.nc&&f.setAttribute("nonce",n.nc),f.setAttribute("data-webpack",o+r),f.src=e),t[e]=[a];var u=(a,r)=>{f.onerror=f.onload=null,clearTimeout(s);var o=t[e];if(delete t[e],f.parentNode&&f.parentNode.removeChild(f),o&&o.forEach(e=>e(r)),a)return a(r)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=u.bind(null,f.onerror),f.onload=u.bind(null,f.onload),d&&document.head.appendChild(f)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/logrocket/",n.gca=function(e){return e={17896441:"8401","51c4ceb1":"295","5e8c322a":"594",common:"2076",c377a04b:"3361",e376fc56:"3480","211c08f1":"4319","7fcbe1af":"4804",aba21aa0:"5742",acaa8c75:"5754","552a934f":"5760","04ee7372":"5908",a7bd4aaa:"7098",a94703ab:"9048","5e95c892":"9647"}[e]||e,n.p+n.u(e)},(()=>{var e={5354:0,1869:0};n.f.j=(a,r)=>{var t=n.o(e,a)?e[a]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var o=new Promise((r,o)=>t=e[a]=[r,o]);r.push(t[2]=o);var c=n.p+n.u(a),f=new Error;n.l(c,r=>{if(n.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var o=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;f.message="Loading chunk "+a+" failed.\n("+o+": "+c+")",f.name="ChunkLoadError",f.type=o,f.request=c,t[1](f)}},"chunk-"+a,a)}},n.O.j=a=>0===e[a];var a=(a,r)=>{var t,o,[c,f,d]=r,b=0;if(c.some(a=>0!==e[a])){for(t in f)n.o(f,t)&&(n.m[t]=f[t]);if(d)var i=d(n)}for(a&&a(r);b<c.length;b++)o=c[b],n.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return n.O(i)},r=globalThis.webpackChunk_elliemae_pui_logrocket=globalThis.webpackChunk_elliemae_pui_logrocket||[];r.forEach(a.bind(null,0)),r.push=a.bind(null,r.push.bind(r))})()})();
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.9.2">
|
|
6
6
|
<title data-rh="true">Compliance Requirements | LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/compliance"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Compliance Requirements | LogRocket"><meta data-rh="true" name="description" content="Due to wiretapping & privacy laws in certain jurisdictions, it is essential to ensure that our session recording practices comply with local regulations. Below are the key compliance requirements we need to adhere to when using LogRocket for recording user sessions and activities,"><meta data-rh="true" property="og:description" content="Due to wiretapping & privacy laws in certain jurisdictions, it is essential to ensure that our session recording practices comply with local regulations. Below are the key compliance requirements we need to adhere to when using LogRocket for recording user sessions and activities,"><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/compliance"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/compliance" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/compliance" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Compliance Requirements","item":"https://pui.ice.com/logrocket/compliance"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
|
|
7
|
-
<script src="/logrocket/assets/js/runtime~main.
|
|
8
|
-
<script src="/logrocket/assets/js/main.
|
|
7
|
+
<script src="/logrocket/assets/js/runtime~main.5e481bc4.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.7d3be447.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
package/build/docs/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.9.2">
|
|
6
6
|
<title data-rh="true">Getting Started | LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Getting Started | LogRocket"><meta data-rh="true" name="description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><meta data-rh="true" property="og:description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/logrocket/</span> </p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),o=window.location.pathname,s="/"===o.substr(-1)?o:o+"/";e.innerHTML=s}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Getting Started","item":"https://pui.ice.com/logrocket/"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
|
|
7
|
-
<script src="/logrocket/assets/js/runtime~main.
|
|
8
|
-
<script src="/logrocket/assets/js/main.
|
|
7
|
+
<script src="/logrocket/assets/js/runtime~main.5e481bc4.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.7d3be447.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.9.2">
|
|
6
6
|
<title data-rh="true">Usage Guide | LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/usage-guide"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Usage Guide | LogRocket"><meta data-rh="true" name="description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><meta data-rh="true" property="og:description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/usage-guide"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/usage-guide" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/usage-guide" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Usage Guide","item":"https://pui.ice.com/logrocket/usage-guide"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
|
|
7
|
-
<script src="/logrocket/assets/js/runtime~main.
|
|
8
|
-
<script src="/logrocket/assets/js/main.
|
|
7
|
+
<script src="/logrocket/assets/js/runtime~main.5e481bc4.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.7d3be447.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -32,9 +32,30 @@
|
|
|
32
32
|
<li class=""><code>appId</code> (string): LogRocket application ID allocated to the product.</li>
|
|
33
33
|
<li class=""><code>enable</code> (boolean): Flag to enable or disable LogRocket in the microapp. Defaults to <code>true</code>. If set to <code>false</code>, LogRocket will not be initialized even if <code>initLogRocket</code> is called. This can be useful for disabling LogRocket in certain environments (e.g., development or staging).</li>
|
|
34
34
|
<li class=""><code>localhostEnable</code> (boolean): Flag to enable LogRocket when running on localhost. Defaults to <code>false</code>. When set to <code>true</code>, LogRocket will be enabled on localhost even if the <code>LOGROCKET_ENABLE_ON_LOCALHOST</code> environment variable is not set. This is useful for local development and testing.</li>
|
|
35
|
-
<li class=""><code>childDomains</code> (array of strings, optional):
|
|
36
|
-
<
|
|
37
|
-
<li class=""><
|
|
35
|
+
<li class=""><code>childDomains</code> (array of strings, optional): Cross-origin child app origins to link sessions with when the page embeds them as iframes.<!-- -->
|
|
36
|
+
<ul>
|
|
37
|
+
<li class=""><strong>Default:</strong> the library always includes the current origin, so same-origin children stitch automatically with no configuration.</li>
|
|
38
|
+
<li class=""><strong>Set this when:</strong> the page is a parent that embeds <strong>cross-origin</strong> guest microapps (e.g. <code>https://app.ice.com</code> embedding <code>https://guest.example.com</code>). List each cross-origin child origin.</li>
|
|
39
|
+
<li class=""><strong>Format:</strong> array of full origins including protocol (e.g. <code>['https://guest.example.com']</code>). Bare hostnames, URLs with paths, and non-array values are dropped with a warning.</li>
|
|
40
|
+
<li class=""><strong>Note:</strong> the caller's array is merged with the current origin (it cannot be removed). Children themselves don't set this option — they need <code>parentDomain</code> (normally auto-detected). Both sides must be configured for cross-origin linking to work.</li>
|
|
41
|
+
</ul>
|
|
42
|
+
</li>
|
|
43
|
+
<li class=""><code>parentDomain</code> (string, optional): Origin of the page that embeds this one. Used by LogRocket for <code>postMessage</code>-based session linking between cross-origin frames.<!-- -->
|
|
44
|
+
<ul>
|
|
45
|
+
<li class=""><strong>Default:</strong> auto-detected from (1) the <code>lrParentOrigin</code> query parameter set by the parent via <code>buildLogRocketQueryParams</code>, (2) <code>window.parent.location.origin</code> for same-origin parents, or (3) <code>document.referrer</code>. This covers most embed scenarios when the parent uses <code>buildLogRocketQueryParams</code>.</li>
|
|
46
|
+
<li class=""><strong>Set this when:</strong> the parent is cross-origin, does <strong>not</strong> call <code>buildLogRocketQueryParams</code>, and your <code>Referrer-Policy</code> strips <code>document.referrer</code>. In that case auto-detection returns <code>null</code> and you must supply the parent origin yourself.</li>
|
|
47
|
+
<li class=""><strong>Format:</strong> a full origin (e.g. <code>https://parent.example.com</code>). Bare hostnames or URLs with paths are dropped with a warning.</li>
|
|
48
|
+
<li class=""><strong>Note:</strong> do not set this on a top-level page (no real parent). The validator only checks origin shape; on a top-level page a valid override tells LogRocket to wait on a parent that doesn't exist and stalls session start.</li>
|
|
49
|
+
</ul>
|
|
50
|
+
</li>
|
|
51
|
+
<li class=""><code>rootHostname</code> (string, optional): Cookie scope for stitching sessions across subdomains of the <strong>same site</strong> (see <a href="https://docs.logrocket.com/reference/roothostname" target="_blank" rel="noopener noreferrer" class="">LogRocket docs</a>).<!-- -->
|
|
52
|
+
<ul>
|
|
53
|
+
<li class=""><strong>Default:</strong> auto-detected as <code>.<last two hostname segments></code> (e.g. <code>beta.encompass.ice.com</code> → <code>.ice.com</code>). Same-site iframes converge on the same value automatically.</li>
|
|
54
|
+
<li class=""><strong>Set this when:</strong> you want to <strong>narrow</strong> the cookie scope to a deeper subtree so sessions in that subtree don't merge with the rest of the site (e.g. set <code>.beta.ice.com</code> on <code>app.beta.ice.com</code> to keep beta sessions isolated from prod).</li>
|
|
55
|
+
<li class=""><strong>Format:</strong> must start with <code>.</code> and end with the auto-detected value. A different site, a shallower scope, or a missing leading dot is rejected with a warning.</li>
|
|
56
|
+
<li class=""><strong>Note:</strong> cross-<strong>site</strong> frame linking is handled by <code>parentDomain</code>/<code>childDomains</code>, not this option.</li>
|
|
57
|
+
</ul>
|
|
58
|
+
</li>
|
|
38
59
|
</ul>
|
|
39
60
|
<h2 class="anchor anchorTargetStickyNavbar_UXZL" id="proxying-logrocket-calls-through-cdn-domain">Proxying LogRocket Calls Through CDN Domain<a href="#proxying-logrocket-calls-through-cdn-domain" class="hash-link" aria-label="Direct link to Proxying LogRocket Calls Through CDN Domain" title="Direct link to Proxying LogRocket Calls Through CDN Domain" translate="no"></a></h2>
|
|
40
61
|
<p>By default, all LogRocket network traffic (script loading and data ingestion) is proxied through the UI Platform CDN domain (<code>cdn.mortgagetech.*.ice.com</code>) instead of LogRocket's own servers. This improves ad-blocker resilience since requests to first-party domains are less likely to be blocked, and ensures compliance with network policies in environments that restrict traffic to known internal domains.</p>
|
package/dist/cjs/logrocket.js
CHANGED
|
@@ -114,9 +114,8 @@ const getParentDomain = () => {
|
|
|
114
114
|
}
|
|
115
115
|
return parentDomain;
|
|
116
116
|
};
|
|
117
|
-
const buildChildDomains = () => {
|
|
117
|
+
const buildChildDomains = (override) => {
|
|
118
118
|
const currentOrigin = window.location.origin;
|
|
119
|
-
const override = window.emui?.logRocketConfig?.childDomains;
|
|
120
119
|
if (override === void 0 || override === null) {
|
|
121
120
|
return [currentOrigin];
|
|
122
121
|
}
|
|
@@ -128,7 +127,11 @@ const buildChildDomains = () => {
|
|
|
128
127
|
}
|
|
129
128
|
const { valid, invalid } = override.reduce(
|
|
130
129
|
(acc, entry) => {
|
|
131
|
-
(
|
|
130
|
+
if (typeof entry === "string" && isValidOrigin(entry)) {
|
|
131
|
+
acc.valid.push(entry);
|
|
132
|
+
} else {
|
|
133
|
+
acc.invalid.push(String(entry));
|
|
134
|
+
}
|
|
132
135
|
return acc;
|
|
133
136
|
},
|
|
134
137
|
{ valid: [], invalid: [] }
|
|
@@ -142,8 +145,7 @@ const buildChildDomains = () => {
|
|
|
142
145
|
if (valid.includes(currentOrigin)) return valid;
|
|
143
146
|
return [...valid, currentOrigin];
|
|
144
147
|
};
|
|
145
|
-
const buildParentDomain = () => {
|
|
146
|
-
const override = window.emui?.logRocketConfig?.parentDomain;
|
|
148
|
+
const buildParentDomain = (override) => {
|
|
147
149
|
if (override !== void 0 && override !== null) {
|
|
148
150
|
if (typeof override === "string" && isValidOrigin(override)) {
|
|
149
151
|
return override;
|
|
@@ -156,24 +158,25 @@ const buildParentDomain = () => {
|
|
|
156
158
|
return getParentDomain();
|
|
157
159
|
};
|
|
158
160
|
const ROOT_HOSTNAME_RE = /[^.]+\.[^.]+$/;
|
|
159
|
-
const getRootHostname = () => {
|
|
161
|
+
const getRootHostname = (override) => {
|
|
160
162
|
const match = ROOT_HOSTNAME_RE.exec(window.location.hostname);
|
|
161
163
|
const auto = match ? `.${match[0]}` : void 0;
|
|
162
|
-
|
|
163
|
-
if (override && auto && override.startsWith(".") && override.endsWith(auto)) {
|
|
164
|
+
if (typeof override === "string" && auto && override.startsWith(".") && override.endsWith(auto)) {
|
|
164
165
|
return override;
|
|
165
166
|
}
|
|
166
|
-
if (override) {
|
|
167
|
+
if (override !== void 0 && override !== null) {
|
|
167
168
|
const autoLabel = auto ?? "(none)";
|
|
168
169
|
getLogger().warn(
|
|
169
|
-
`LogRocket rootHostname override "${
|
|
170
|
+
`LogRocket rootHostname override "${String(
|
|
171
|
+
override
|
|
172
|
+
)}" ignored: must start with "." and end with the auto-detected "${autoLabel}". Using auto-detected value.`
|
|
170
173
|
);
|
|
171
174
|
}
|
|
172
175
|
return auto;
|
|
173
176
|
};
|
|
174
|
-
const getDefaultOptions = () => {
|
|
175
|
-
const childDomains = buildChildDomains();
|
|
176
|
-
const parentDomain = buildParentDomain();
|
|
177
|
+
const getDefaultOptions = (overrides) => {
|
|
178
|
+
const childDomains = buildChildDomains(overrides.childDomains);
|
|
179
|
+
const parentDomain = buildParentDomain(overrides.parentDomain);
|
|
177
180
|
return {
|
|
178
181
|
browser: {
|
|
179
182
|
urlSanitizer: (url) => {
|
|
@@ -224,7 +227,7 @@ const getDefaultOptions = () => {
|
|
|
224
227
|
},
|
|
225
228
|
release: process?.env?.APP_VERSION,
|
|
226
229
|
// app sdk based applications use this env variable to specify the app code version
|
|
227
|
-
rootHostname: getRootHostname(),
|
|
230
|
+
rootHostname: getRootHostname(overrides.rootHostname),
|
|
228
231
|
childDomains,
|
|
229
232
|
...parentDomain ? { parentDomain } : {}
|
|
230
233
|
};
|
|
@@ -247,15 +250,6 @@ const isLogRocketDisabled = () => {
|
|
|
247
250
|
if (window.emui?.logRocketConfig?.enable === false || urlParams.get("lrEnabled") === "false") {
|
|
248
251
|
return true;
|
|
249
252
|
}
|
|
250
|
-
if (window.frameElement) {
|
|
251
|
-
try {
|
|
252
|
-
const frameUrl = new URL(window.frameElement.src);
|
|
253
|
-
if (frameUrl.searchParams.get("lrEnabled") === "false") {
|
|
254
|
-
return true;
|
|
255
|
-
}
|
|
256
|
-
} catch {
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
253
|
return false;
|
|
260
254
|
};
|
|
261
255
|
const hasUserConsentedToSessionRecording = () => {
|
|
@@ -307,8 +301,23 @@ const logInitOutcome = (sessionRecordingEnabled) => {
|
|
|
307
301
|
getLogger().info(`LogRocket session URL: ${sessionURL}`);
|
|
308
302
|
});
|
|
309
303
|
};
|
|
304
|
+
const resolveAutoDetectedOverrides = (fromOptions) => {
|
|
305
|
+
const windowConfig = window.emui?.logRocketConfig;
|
|
306
|
+
return {
|
|
307
|
+
rootHostname: fromOptions.rootHostname ?? windowConfig?.rootHostname,
|
|
308
|
+
childDomains: fromOptions.childDomains ?? windowConfig?.childDomains,
|
|
309
|
+
parentDomain: fromOptions.parentDomain ?? windowConfig?.parentDomain
|
|
310
|
+
};
|
|
311
|
+
};
|
|
310
312
|
const init = (options) => {
|
|
311
|
-
const {
|
|
313
|
+
const {
|
|
314
|
+
appId,
|
|
315
|
+
isReact = true,
|
|
316
|
+
rootHostname,
|
|
317
|
+
childDomains,
|
|
318
|
+
parentDomain,
|
|
319
|
+
...rest
|
|
320
|
+
} = options ?? {};
|
|
312
321
|
lrAppId = getLRAppId(appId);
|
|
313
322
|
if (!lrAppId) {
|
|
314
323
|
throw new Error(
|
|
@@ -322,7 +331,9 @@ const init = (options) => {
|
|
|
322
331
|
return;
|
|
323
332
|
}
|
|
324
333
|
window.emui.lrEnabled = true;
|
|
325
|
-
const defaultOptions = getDefaultOptions(
|
|
334
|
+
const defaultOptions = getDefaultOptions(
|
|
335
|
+
resolveAutoDetectedOverrides({ rootHostname, childDomains, parentDomain })
|
|
336
|
+
);
|
|
326
337
|
const consent = hasUserConsentedToSessionRecording();
|
|
327
338
|
window.emui.lrSessionRecordingConsent = consent;
|
|
328
339
|
if (defaultOptions.dom) {
|
package/dist/esm/logrocket.js
CHANGED
|
@@ -78,9 +78,8 @@ const getParentDomain = () => {
|
|
|
78
78
|
}
|
|
79
79
|
return parentDomain;
|
|
80
80
|
};
|
|
81
|
-
const buildChildDomains = () => {
|
|
81
|
+
const buildChildDomains = (override) => {
|
|
82
82
|
const currentOrigin = window.location.origin;
|
|
83
|
-
const override = window.emui?.logRocketConfig?.childDomains;
|
|
84
83
|
if (override === void 0 || override === null) {
|
|
85
84
|
return [currentOrigin];
|
|
86
85
|
}
|
|
@@ -92,7 +91,11 @@ const buildChildDomains = () => {
|
|
|
92
91
|
}
|
|
93
92
|
const { valid, invalid } = override.reduce(
|
|
94
93
|
(acc, entry) => {
|
|
95
|
-
(
|
|
94
|
+
if (typeof entry === "string" && isValidOrigin(entry)) {
|
|
95
|
+
acc.valid.push(entry);
|
|
96
|
+
} else {
|
|
97
|
+
acc.invalid.push(String(entry));
|
|
98
|
+
}
|
|
96
99
|
return acc;
|
|
97
100
|
},
|
|
98
101
|
{ valid: [], invalid: [] }
|
|
@@ -106,8 +109,7 @@ const buildChildDomains = () => {
|
|
|
106
109
|
if (valid.includes(currentOrigin)) return valid;
|
|
107
110
|
return [...valid, currentOrigin];
|
|
108
111
|
};
|
|
109
|
-
const buildParentDomain = () => {
|
|
110
|
-
const override = window.emui?.logRocketConfig?.parentDomain;
|
|
112
|
+
const buildParentDomain = (override) => {
|
|
111
113
|
if (override !== void 0 && override !== null) {
|
|
112
114
|
if (typeof override === "string" && isValidOrigin(override)) {
|
|
113
115
|
return override;
|
|
@@ -120,24 +122,25 @@ const buildParentDomain = () => {
|
|
|
120
122
|
return getParentDomain();
|
|
121
123
|
};
|
|
122
124
|
const ROOT_HOSTNAME_RE = /[^.]+\.[^.]+$/;
|
|
123
|
-
const getRootHostname = () => {
|
|
125
|
+
const getRootHostname = (override) => {
|
|
124
126
|
const match = ROOT_HOSTNAME_RE.exec(window.location.hostname);
|
|
125
127
|
const auto = match ? `.${match[0]}` : void 0;
|
|
126
|
-
|
|
127
|
-
if (override && auto && override.startsWith(".") && override.endsWith(auto)) {
|
|
128
|
+
if (typeof override === "string" && auto && override.startsWith(".") && override.endsWith(auto)) {
|
|
128
129
|
return override;
|
|
129
130
|
}
|
|
130
|
-
if (override) {
|
|
131
|
+
if (override !== void 0 && override !== null) {
|
|
131
132
|
const autoLabel = auto ?? "(none)";
|
|
132
133
|
getLogger().warn(
|
|
133
|
-
`LogRocket rootHostname override "${
|
|
134
|
+
`LogRocket rootHostname override "${String(
|
|
135
|
+
override
|
|
136
|
+
)}" ignored: must start with "." and end with the auto-detected "${autoLabel}". Using auto-detected value.`
|
|
134
137
|
);
|
|
135
138
|
}
|
|
136
139
|
return auto;
|
|
137
140
|
};
|
|
138
|
-
const getDefaultOptions = () => {
|
|
139
|
-
const childDomains = buildChildDomains();
|
|
140
|
-
const parentDomain = buildParentDomain();
|
|
141
|
+
const getDefaultOptions = (overrides) => {
|
|
142
|
+
const childDomains = buildChildDomains(overrides.childDomains);
|
|
143
|
+
const parentDomain = buildParentDomain(overrides.parentDomain);
|
|
141
144
|
return {
|
|
142
145
|
browser: {
|
|
143
146
|
urlSanitizer: (url) => {
|
|
@@ -188,7 +191,7 @@ const getDefaultOptions = () => {
|
|
|
188
191
|
},
|
|
189
192
|
release: process?.env?.APP_VERSION,
|
|
190
193
|
// app sdk based applications use this env variable to specify the app code version
|
|
191
|
-
rootHostname: getRootHostname(),
|
|
194
|
+
rootHostname: getRootHostname(overrides.rootHostname),
|
|
192
195
|
childDomains,
|
|
193
196
|
...parentDomain ? { parentDomain } : {}
|
|
194
197
|
};
|
|
@@ -211,15 +214,6 @@ const isLogRocketDisabled = () => {
|
|
|
211
214
|
if (window.emui?.logRocketConfig?.enable === false || urlParams.get("lrEnabled") === "false") {
|
|
212
215
|
return true;
|
|
213
216
|
}
|
|
214
|
-
if (window.frameElement) {
|
|
215
|
-
try {
|
|
216
|
-
const frameUrl = new URL(window.frameElement.src);
|
|
217
|
-
if (frameUrl.searchParams.get("lrEnabled") === "false") {
|
|
218
|
-
return true;
|
|
219
|
-
}
|
|
220
|
-
} catch {
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
217
|
return false;
|
|
224
218
|
};
|
|
225
219
|
const hasUserConsentedToSessionRecording = () => {
|
|
@@ -271,8 +265,23 @@ const logInitOutcome = (sessionRecordingEnabled) => {
|
|
|
271
265
|
getLogger().info(`LogRocket session URL: ${sessionURL}`);
|
|
272
266
|
});
|
|
273
267
|
};
|
|
268
|
+
const resolveAutoDetectedOverrides = (fromOptions) => {
|
|
269
|
+
const windowConfig = window.emui?.logRocketConfig;
|
|
270
|
+
return {
|
|
271
|
+
rootHostname: fromOptions.rootHostname ?? windowConfig?.rootHostname,
|
|
272
|
+
childDomains: fromOptions.childDomains ?? windowConfig?.childDomains,
|
|
273
|
+
parentDomain: fromOptions.parentDomain ?? windowConfig?.parentDomain
|
|
274
|
+
};
|
|
275
|
+
};
|
|
274
276
|
const init = (options) => {
|
|
275
|
-
const {
|
|
277
|
+
const {
|
|
278
|
+
appId,
|
|
279
|
+
isReact = true,
|
|
280
|
+
rootHostname,
|
|
281
|
+
childDomains,
|
|
282
|
+
parentDomain,
|
|
283
|
+
...rest
|
|
284
|
+
} = options ?? {};
|
|
276
285
|
lrAppId = getLRAppId(appId);
|
|
277
286
|
if (!lrAppId) {
|
|
278
287
|
throw new Error(
|
|
@@ -286,7 +295,9 @@ const init = (options) => {
|
|
|
286
295
|
return;
|
|
287
296
|
}
|
|
288
297
|
window.emui.lrEnabled = true;
|
|
289
|
-
const defaultOptions = getDefaultOptions(
|
|
298
|
+
const defaultOptions = getDefaultOptions(
|
|
299
|
+
resolveAutoDetectedOverrides({ rootHostname, childDomains, parentDomain })
|
|
300
|
+
);
|
|
290
301
|
const consent = hasUserConsentedToSessionRecording();
|
|
291
302
|
window.emui.lrSessionRecordingConsent = consent;
|
|
292
303
|
if (defaultOptions.dom) {
|
package/dist/public/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>LogRocket Test</title><script defer="defer" src="js/emuiLogrocket.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>LogRocket Test</title><script defer="defer" src="js/emuiLogrocket.32efbf89608d7f1ff787.js"></script></head><body><h1>LogRocket Test</h1><button id="testButton">Click me</button></body></html>
|