Lighthouse Mobile
· 0 checks — Mobile Lighthouse audit -- Performance, Accessibility, Best Practices, and SEO category breakdown.Detailed Report
Audit breakdown by category with detailed findings.
Performance
Insights
Remove large, duplicate JavaScript modules from bundles to reduce unnecessary bytes consumed by network activity.
Performance issues directly impact user engagement and conversion rates.
Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile Baseline features, unless you know you must support older browsers. Learn why most sites can deploy ES6+ code without transpiling
Performance issues directly impact user engagement and conversion rates.
3rd party code can significantly impact load performance. Reduce and defer loading of 3rd party code to prioritize your page's content.
Performance issues directly impact user engagement and conversion rates.
A long cache lifetime can speed up repeat visits to your page. Learn more about caching.
Performance issues directly impact user engagement and conversion rates.
Reducing the download time of images can improve the perceived load time of the page and LCP. Learn more about optimizing image size
Performance issues directly impact user engagement and conversion rates.
| URL | Resource Size | Est Savings | |
|---|---|---|---|
Welcome to CreamPiled preview image div.card > a > div.card-media > img.h-100 | /1027d7986f7e92422868ac756d081f5c/.preview/.thumb-1600-90... | 143.4 KiB | 69.3 KiB |
CreamPiled Episode #71 preview image div.card > a > div.card-media > img.h-100 | /30a9564b85a000c1e125bfe36c35f0e6/.preview/.thumb-400-225... | 19.3 KiB | 4.6 KiB |
Logo nav.navbar > div.min-h-60px > a.navbar-brand > img | creampiled.com/custom_assets/creampiled-logo4.png | 6.0 KiB | 4.5 KiB |
Each subpart has specific improvement strategies. Ideally, most of the LCP time should be spent on loading the resources, not within delays.
Performance issues directly impact user engagement and conversion rates.
Optimize LCP by making the LCP image discoverable from the HTML immediately, and avoiding lazy-loading
Performance issues directly impact user engagement and conversion rates.
Avoid chaining critical requests by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.
Performance issues directly impact user engagement and conversion rates.
These insights are also available in the Chrome DevTools Performance Panel - record a trace to view more detailed information.
The maximum potential First Input Delay that your users could experience is the duration of the longest task. Learn more about the Maximum Potential First Input Delay metric.
Performance issues directly impact user engagement and conversion rates.
Time to Interactive is the amount of time it takes for the page to become fully interactive. Learn more about the Time to Interactive metric.
Performance issues directly impact user engagement and conversion rates.
Diagnostics
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. Learn how to reduce unused JavaScript.
Performance issues directly impact user engagement and conversion rates.
| URL | Transfer Size | Est Savings |
|---|---|---|
| www.googletagmanager.com/gtag/js?id=G-RKW1M7TJDJ | 162.6 KiB | 68.4 KiB |
| creampiled.com/natscms-app/chunk-DV5By-zB.js | 52.1 KiB | 27.3 KiB |
Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to reduce Javascript execution time.
Performance issues directly impact user engagement and conversion rates.
| URL | Total CPU Time | Script Evaluation | Script Parse |
|---|---|---|---|
| creampiled.com/natscms-app/chunk-9PUs-3uH.js | 2.0 s | 1.5 s | 0.5 ms |
| creampiled.com/natscms-app/chunk-CuLoFmdF.js | 2.0 s | 1.1 s | 0.1 ms |
| creampiled.com/natscms-app/chunk-B9UmamBz.js | 1.7 s | 1.5 s | 2.9 ms |
| creampiled.com/ | 1.3 s | 50 ms | 4.4 ms |
| Unattributable | 1.1 s | 147 ms | 0.0 ms |
| creampiled.com/natscms-app/chunk-DV5By-zB.js | 981 ms | 193 ms | 1.3 ms |
| www.googletagmanager.com/gtag/js?id=G-RKW1M7TJDJ | 659 ms | 550 ms | 97 ms |
Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to minimize main-thread work
Performance issues directly impact user engagement and conversion rates.
| Category | Time Spent |
|---|---|
| Script Evaluation | 5.1 s |
| Other | 2.1 s |
| Parse HTML & CSS | 1.4 s |
| Style & Layout | 1.0 s |
| Rendering | 315 ms |
| Script Parsing & Compilation | 115 ms |
| Garbage Collection | 43 ms |
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. Learn how to reduce unused CSS.
Performance issues directly impact user engagement and conversion rates.
| URL | Transfer Size | Est Savings |
|---|---|---|
| creampiled.com/natscms-app/styles-KXRL3ZR4.css | 27.7 KiB | 23.5 KiB |
Large network payloads cost users real money and are highly correlated with long load times. Learn how to reduce payload sizes.
Performance issues directly impact user engagement and conversion rates.
Set an explicit width and height on image elements to reduce layout shifts and improve CLS. Learn how to set image dimensions
Performance issues directly impact user engagement and conversion rates.
| URL | |
|---|---|
div.content-box > div.modal-content > div.modal-header > img.img-fluid div.content-box > div.modal-content > div.modal-header > img.img-fluid | creampiled.com/custom_assets/creampiled-logo4.png |
Logo nav.navbar > div.min-h-60px > a.navbar-brand > img | creampiled.com/custom_assets/creampiled-logo4.png |
Logo nav.navbar > div.min-h-60px > a.navbar-brand > img | creampiled.com/custom_assets/creampiled-logo4.png |
More information about the performance of your application. These numbers don't directly affect the Performance score.
Accessibility
These checks highlight opportunities to improve the accessibility of your web app. Automatic detection can only detect a subset of issues and does not guarantee the accessibility of your web app, so manual testing is also encouraged.
Contrast
Low-contrast text is difficult or impossible for many users to read. Learn how to provide sufficient color contrast.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
ENTER div.content-box > div.modal-content > div.modal-footer > button.btn |
Exit div.content-box > div.modal-content > div.modal-footer > a.btn |
GET ACCESS div.html > div.container-fluid > div > a.joinBar |
GET ACCESS div.html > div.container-fluid > div > a.joinBar |
GET ACCESS div.html > div.container-fluid > div > a.joinBar |
These are opportunities to improve the legibility of your content.
Internationalization and localization
If a page doesn't specify a `lang` attribute, a screen reader assumes that the page is in the default language that the user chose when setting up the screen reader. If the page isn't actually in the default language, then the screen reader might not announce the page's text correctly. Learn more about the `lang` attribute.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
html html |
These are opportunities to improve the interpretation of your content by users in different locales.
Names and labels
Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. Learn more about the `alt` attribute.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
div.content-box > div.modal-content > div.modal-header > img.img-fluid div.content-box > div.modal-content > div.modal-header > img.img-fluid |
These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.
Tables and lists
Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. Learn more about proper list structure.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
Members
Support
Links
Reviews
Join nav.navbar > div.min-h-60px > div.collapse > ul.menu-a |
Screen readers require list items (`<li>`) to be contained within a parent `<ul>`, `<ol>` or `<menu>` to be announced properly. Learn more about proper list structure.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
Members div.collapse > ul.menu-a > nats-menu-item > li.nav-item |
Support div.collapse > ul.menu-a > nats-menu-item > li.nav-item |
Links div.collapse > ul.menu-a > nats-menu-item > li.nav-item |
Reviews div.collapse > ul.menu-a > nats-menu-item > li.nav-item |
Join div.collapse > ul.menu-a > nats-menu-item > li.nav-item |
These are opportunities to improve the experience of reading tabular or list data using assistive technology, like a screen reader.
Best Practices
User Experience
Image natural dimensions should be proportional to the display size and the pixel ratio to maximize image clarity. Learn how to provide responsive images.
Performance issues directly impact user engagement and conversion rates.
| URL | Displayed size | Actual size | Expected size | |
|---|---|---|---|---|
Logo nav.navbar > div.min-h-60px > a.navbar-brand > img | creampiled.com/custom_assets/creampiled-logo4.png | 250 x 39 | 250 x 39 | 375 x 59 |
SEO
These checks ensure that your page is following basic search engine optimization advice. There are many additional factors Lighthouse does not score here that may affect your search ranking, including performance on Core Web Vitals. Learn more about Google Search Essentials.
Content Best Practices
Descriptive link text helps search engines understand your content. Learn how to make links more accessible.
Performance issues directly impact user engagement and conversion rates.
| Link destination | Link Text |
|---|---|
| creampiled.com/testimonials | Read More |
Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. Learn more about the `alt` attribute.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
div.content-box > div.modal-content > div.modal-header > img.img-fluid div.content-box > div.modal-content > div.modal-header > img.img-fluid |
Format your HTML in a way that enables crawlers to better understand your app’s content.
Crawling and Indexing
Search engines may use `href` attributes on links to crawl websites. Ensure that the `href` attribute of anchor elements links to an appropriate destination, so more pages of the site can be discovered. Learn how to make links crawlable
Performance issues directly impact user engagement and conversion rates.
| Uncrawlable Link |
|---|
<< pagination.ng-untouched > ul.pagination > li.pagination-first > a.page-link |
< pagination.ng-untouched > ul.pagination > li.pagination-prev > a.page-link |
1 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
2 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
3 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
... pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
> pagination.ng-untouched > ul.pagination > li.pagination-next > a.page-link |
>> pagination.ng-untouched > ul.pagination > li.pagination-last > a.page-link |
<< pagination.ng-untouched > ul.pagination > li.pagination-first > a.page-link |
< pagination.ng-untouched > ul.pagination > li.pagination-prev > a.page-link |
1 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
2 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
3 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
... pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
> pagination.ng-untouched > ul.pagination > li.pagination-next > a.page-link |
>> pagination.ng-untouched > ul.pagination > li.pagination-last > a.page-link |
If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed. Learn more about robots.txt.
Performance issues directly impact user engagement and conversion rates.
| Line # | Content | Error |
|---|---|---|
| 1 | <!doctype html> | Syntax not understood |
| 2 | <html lang="en" data-beasties-container> | Syntax not understood |
| 3 | <head> | Syntax not understood |
| 4 | <meta charset="utf-8"> | Syntax not understood |
| 5 | <title></title> | Syntax not understood |
| 6 | <base href="/natscms-app/"> | Syntax not understood |
| 7 | <meta name="viewport" content="width=device-width, initial-scale=1"> | Syntax not understood |
| 8 | <!-- <link rel="icon" type="image/x-icon" href="favicon.ico" /> --> | Syntax not understood |
| 9 | <style>:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#014474;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:1, 68, 116;--bs-secondary-rgb:108, 117, 125;--bs-success-rgb:25, 135, 84;--bs-info-rgb:13, 202, 240;--bs-warning-rgb:255, 193, 7;--bs-danger-rgb:220, 53, 69;--bs-light-rgb:248, 249, 250;--bs-dark-rgb:33, 37, 41;--bs-primary-text-emphasis:rgb(.4, 27.2, 46.4);--bs-secondary-text-emphasis:rgb(43.2, 46.8, 50);--bs-success-text-emphasis:rgb(10, 54, 33.6);--bs-info-text-emphasis:rgb(5.2, 80.8, 96);--bs-warning-text-emphasis:rgb(102, 77.2, 2.8);--bs-danger-text-emphasis:rgb(88, 21.2, 27.6);--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:rgb(204.2, 217.6, 227.2);--bs-secondary-bg-subtle:rgb(225.6, 227.4, 229);--bs-success-bg-subtle:rgb(209, 231, 220.8);--bs-info-bg-subtle:rgb(206.6, 244.4, 252);--bs-warning-bg-subtle:rgb(255, 242.6, 205.4);--bs-danger-bg-subtle:rgb(248, 214.6, 217.8);--bs-light-bg-subtle:rgb(251.5, 252, 252.5);--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:rgb(153.4, 180.2, 199.4);--bs-secondary-border-subtle:rgb(196.2, 199.8, 203);--bs-success-border-subtle:rgb(163, 207, 186.6);--bs-info-border-subtle:rgb(158.2, 233.8, 249);--bs-warning-border-subtle:rgb(255, 230.2, 155.8);--bs-danger-border-subtle:rgb(241, 174.2, 180.6);--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255, 255, 255;--bs-black-rgb:0, 0, 0;--bs-font-sans-serif:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33, 37, 41;--bs-body-bg:#fff;--bs-body-bg-rgb:255, 255, 255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0, 0, 0;--bs-secondary-color:rgba(33, 37, 41, .75);--bs-secondary-color-rgb:33, 37, 41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233, 236, 239;--bs-tertiary-color:rgba(33, 37, 41, .5);--bs-tertiary-color-rgb:33, 37, 41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248, 249, 250;--bs-heading-color:inherit;--bs-link-color:#014474;--bs-link-color-rgb:1, 68, 116;--bs-link-decoration:underline;--bs-link-hover-color:rgb(.8, 54.4, 92.8);--bs-link-hover-color-rgb:1, 54, 93;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:rgb(255, 242.6, 205.4);--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, .175);--bs-border-radius:.375rem;--bs-border-radius-sm:.25rem;--bs-border-radius-lg:.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm:0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width:.25rem;--bs-focus-ring-opacity:.25;--bs-focus-ring-color:rgba(1, 68, 116, .25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}:root{--bs-btn-close-filter: }@-webkit-keyframes sk-bounce{0%,to{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}:root{--cms-consent-modal-background:var(--cms-background);--cms-consent-modal-foreground:var(--cms-foreground)}html{scroll-behavior:auto!important}body{font-family:Roboto Condensed,sans-serif;background-color:var(--cms-page-background);color:var(--cms-page-foreground)}body{overflow-x:hidden}</style><link rel="stylesheet" href="styles-KXRL3ZR4.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-KXRL3ZR4.css"></noscript></head> | Unknown directive |
| 10 | <body> | Syntax not understood |
| 11 | <nats-tours-root></nats-tours-root> | Syntax not understood |
| 13 | <script> | Syntax not understood |
| 14 | if (window) { | Syntax not understood |
| 15 | <!--Move this to main if SSR-ed--> | Syntax not understood |
| 17 | window['_natsCode'] = getNatsCode(); | Syntax not understood |
| 18 | window['_natsCodeCookie'] = getCookie('nats'); | Syntax not understood |
| 20 | function getNatsPreviewThemeData() { | Syntax not understood |
| 21 | let secretCode = | Syntax not understood |
| 22 | getParam('x-nats-cms-area-preview') || getCookie('nats_preview_data_secret_code'); | Syntax not understood |
| 23 | let themeId = | Syntax not understood |
| 24 | getParam('x-nats-cms-area-preview-theme') || getCookie('nats_preview_data_theme_id'); | Syntax not understood |
| 25 | return secretCode && themeId ? { secretCode, themeId } : null; | Unknown directive |
| 26 | } | Syntax not understood |
| 28 | window['_natsPreviewTheme'] = getNatsPreviewThemeData(); | Syntax not understood |
| 30 | function boot() { | Syntax not understood |
| 31 | return new Promise((resolve, reject) => { | Syntax not understood |
| 32 | Promise.all([ | Syntax not understood |
| 33 | fetch('./config.json').then(res => res.json()), | Syntax not understood |
| 34 | fetch('./version.json') | Syntax not understood |
| 35 | .then(res => res.json()) | Syntax not understood |
| 36 | .catch(() => ({ version: '0' })), | Unknown directive |
| 37 | ]) | Syntax not understood |
| 38 | .then(([conf, versionData]) => { | Syntax not understood |
| 39 | window['_config'] = conf; | Syntax not understood |
| 40 | window['_version'] = versionData; | Syntax not understood |
| 41 | const natsCode = window['_natsCode']; | Syntax not understood |
| 43 | const loadSite = () => { | Syntax not understood |
| 44 | window['_siteData'] = loadSiteData(conf, natsCode, window['_natsPreviewTheme']); | Syntax not understood |
| 45 | resolve(conf); | Syntax not understood |
| 46 | }; | Syntax not understood |
| 48 | const natsParam = getParam('nats'); | Syntax not understood |
| 49 | if (!natsParam) { | Syntax not understood |
| 50 | // if angular can read nats cookie, send it to tracking script as natscode=xxxx | Syntax not understood |
| 51 | // if angular can not read the nats_unique cookie, send unique=1 to the tracking script | Syntax not understood |
| 52 | trackCall(conf, window['_natsCodeCookie'], !getCookie('nats_unique')).then(() => | Syntax not understood |
| 53 | loadSite() | Syntax not understood |
| 54 | ); | Syntax not understood |
| 55 | } else { | Syntax not understood |
| 56 | loadSite(); | Syntax not understood |
| 57 | } | Syntax not understood |
| 58 | }) | Syntax not understood |
| 59 | .catch(err => { | Syntax not understood |
| 60 | console.error(err); | Syntax not understood |
| 61 | reject(err); | Syntax not understood |
| 62 | }); | Syntax not understood |
| 63 | }); | Syntax not understood |
| 64 | } | Syntax not understood |
| 66 | function loadSiteData(config, natsCode, previewThemeData) { | Syntax not understood |
| 67 | const version = window['_version']?.version || '0'; | Syntax not understood |
| 68 | const path = `${config.natsUrl}/tour_api.php/content/config?cms_area_id=${config.cms_area_id}&version=${version}`; | Syntax not understood |
| 69 | const headers = { | Syntax not understood |
| 70 | 'X-NATS-cms-area-id': config.cms_area_id, | Unknown directive |
| 71 | 'X-nats-entity-decode': '1', | Unknown directive |
| 72 | 'x-nats-natscode': natsCode || getCookie('nats') || '', | Unknown directive |
| 73 | }; | Syntax not understood |
| 75 | if (previewThemeData) { | Syntax not understood |
| 76 | headers['x-nats-cms-area-preview'] = previewThemeData.secretCode; | Syntax not understood |
| 77 | headers['x-nats-cms-area-preview-theme'] = previewThemeData.themeId; | Syntax not understood |
| 78 | } | Syntax not understood |
| 79 | return fetch(path, { headers }).then(res => res.json()); | Syntax not understood |
| 80 | } | Syntax not understood |
| 82 | function trackCall(config, natsCodeCookie, unique) { | Syntax not understood |
| 83 | let path = `${config.natsUrl}/track_cms.php?cms_area_id=${config.cms_area_id}`; | Syntax not understood |
| 84 | if (natsCodeCookie) path += `&natscode=${natsCodeCookie}`; | Syntax not understood |
| 85 | if (unique) path += `&unique=1`; | Syntax not understood |
| 87 | const headers = { 'X-NATS-cms-area-id': config.cms_area_id, 'X-nats-entity-decode': '1' }; | Unknown directive |
| 89 | return fetch(path, { headers }) | Syntax not understood |
| 90 | .then(res => res.json()) | Syntax not understood |
| 91 | .then(res => { | Syntax not understood |
| 92 | if (res && res.cookies && res.natscode) { | Syntax not understood |
| 93 | const { nats_unique: natsUniqueExpiration, nats: natsExpiration } = res.cookies; | Unknown directive |
| 94 | natsUniqueExpiration && | Syntax not understood |
| 95 | setCookie('nats_unique', res.natscode, natsUniqueExpiration); | Syntax not understood |
| 96 | natsExpiration && setCookie('nats', res.natscode, natsExpiration); | Syntax not understood |
| 97 | window['_natsCodeCookie'] = res.natscode; | Syntax not understood |
| 98 | } | Syntax not understood |
| 99 | }); | Syntax not understood |
| 100 | } | Syntax not understood |
| 102 | window['_boot'] = boot(); | Syntax not understood |
| 103 | } else { | Syntax not understood |
| 104 | fetch('./config.json').then(res => res.json()); | Syntax not understood |
| 105 | } | Syntax not understood |
| 107 | function getParam(name) { | Syntax not understood |
| 108 | const url = new URL(window.location.href); | Syntax not understood |
| 109 | return url.searchParams.get(name); | Syntax not understood |
| 110 | } | Syntax not understood |
| 112 | function getCookie(name) { | Syntax not understood |
| 113 | const value = `; ${document.cookie}`; | Syntax not understood |
| 114 | const parts = value.split(`; ${name}=`); | Syntax not understood |
| 115 | if (parts.length === 2) { | Syntax not understood |
| 116 | return parts.pop().split(';').shift(); | Syntax not understood |
| 117 | } | Syntax not understood |
| 118 | return null; | Syntax not understood |
| 119 | } | Syntax not understood |
| 121 | function setCookie(name, value, expiration) { | Syntax not understood |
| 122 | const d = new Date(); | Syntax not understood |
| 123 | d.setTime(expiration * 1000); | Syntax not understood |
| 124 | const expires = `expires=${d.toUTCString()}`; | Syntax not understood |
| 125 | document.cookie = `${name}=${value};${expires};path=/;`; | Syntax not understood |
| 126 | } | Syntax not understood |
| 128 | function getNatsCode() { | Syntax not understood |
| 129 | const natsCode = getParam('nats'); | Syntax not understood |
| 130 | // TODO: check this if SSR is implemented | Unknown directive |
| 131 | if (natsCode) { | Syntax not understood |
| 132 | sessionStorage.setItem('natsCode', natsCode); | Syntax not understood |
| 133 | return natsCode; | Syntax not understood |
| 134 | } else { | Syntax not understood |
| 135 | return sessionStorage.getItem('natsCode'); | Syntax not understood |
| 136 | } | Syntax not understood |
| 137 | } | Syntax not understood |
| 138 | </script> | Syntax not understood |
| 139 | <script src="main-SAOZX4LC.js" type="module"></script></body> | Syntax not understood |
| 140 | </html> | Syntax not understood |
To appear in search results, crawlers need access to your app.